[發明專利]基于UDP的可靠傳輸方法有效
| 申請號: | 201410471513.0 | 申請日: | 2014-09-17 |
| 公開(公告)號: | CN104202414A | 公開(公告)日: | 2014-12-10 |
| 發明(設計)人: | 石杰;張士波;楊敬宇;姚鍵;潘柏宇;盧述奇 | 申請(專利權)人: | 合一網絡技術(北京)有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 無 | 代理人: | 無 |
| 地址: | 100080 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 udp 可靠 傳輸 方法 | ||
1.一種基于UDP的可靠傳輸方法,其特征在于:在UDP傳輸中,模擬TCP的3次握手,建立連接,具體為:
1)發送端向接收端發送SYN,告訴對方要和它建立連接,同時將自己的狀態置為SYN_SEND;
2)當接收方收到SYN消息后,給對方回應ACK,同時在發一個SYN,并將自己的狀態置為SYN_RECEIVED;
3)當發送端收到對方的回應ACK和SYN后,再給對方發送一個ACK,同時將自己的狀態置為ESTABLISHED;
4)當接收端收到對方的回應ACK后,更新自己的狀態為ESTABLISHED,至此雙方建立連接。
2.根據權利要求1所述的基于UDP的可靠傳輸方法,其特征在于:
在UDP數據傳輸時,采用如下步驟進行數據傳輸:
1)對于發送方和接收方,分別分配發送緩沖區和接收緩沖區,用來保存發送和接收的數據;
2)應用層將要傳輸的數據放到發送緩沖區中,當緩沖區滿了,則停止放入,直到有空閑的緩沖區再繼續放入;
3)網絡層將緩沖區中的數據組上包頭,按數據包序號逐個發出去,同時等待接收方回應ack;
4)接收方收到數據包,按照包的序號放到對應的緩沖區位置,并需要根據當前的緩沖區狀態,計算出回應的ack_no,即ack序號,給對方回復一個ack消息;
5)發送端收到ack后,根據回應的ack_no判斷,發送緩沖區的滑動床后是否后移,當滿足窗口后移條件后,可以把緩沖區前面的位置騰出來,并通知上傳繼續放數據。
3.根據權利要求2所述的基于UDP的可靠傳輸方法,其特征在于:
在采用UDP方式在傳輸數據時,當產生丟包現象,通過數據重傳,將丟棄的數據包重新發送給接收端。
4.根據權利要求3所述的基于UDP的可靠傳輸方法,其特征在于:
接收端在接收的時候,要把接收到的數據包按次序放到緩沖隊列中,同時根據當前緩沖區的情況計算出對應的ACK序號,回復對方,發送端收到回復之后,根據對應的ACK序號,判斷是繼續發送下一個數據包,還是重傳之前發過的數據包。
5.根據權利要求4所述的基于UDP的可靠傳輸方法,其特征在于:
接收端在接收的時候,要把接收到的數據包按次序放到緩沖隊列中,同時根據當前緩沖區的情況計算出對應的ACK序號和SACK序號。
6.根據權利要求2所述的基于UDP的可靠傳輸方法,其特征在于:
當發送端發送的UDP數據塊過大,超過單個緩沖區的大小的時候,就需要把這塊數據拆成幾個小的數據包發送,拆包的時候,以緩沖區容量為限,將數據包從前往后依次放入到緩沖隊列中,若提示緩沖區滿,則需要將緩沖區鎖定,防止其他進程寫入,造成數據破壞,等有空閑緩沖區的時候,再將剩余的數據塊寫入。
7.?根據權利要求6所述的基于UDP的可靠傳輸方法,其特征在于:
當接收端收到數據后,分配一塊大的緩沖區,將收到的包,按順序依次寫入緩沖區,保證收到的順序和發送的順序是一致的,這樣組合出來的數據塊和發送的原數據塊就能保證是一致的。
8.根據權利要求1-7中任意一項所述的基于UDP的可靠傳輸方法,其特征在于:
在UDP連接時,通過定時的向對方發送心跳包,告訴對方自己處于活躍狀態,收到對方的心跳后更新一下狀態。
9.?根據權利要求8所述的基于UDP的可靠傳輸方法,其特征在于:
在UDP斷開連接時,傳輸的一方能夠主動斷開連接或者是長時間等不到對方的心跳,將連接斷開。
10.?根據權利要求8所述的基于UDP的可靠傳輸方法,其特征在于:
對UDP數據傳輸進行數據校驗。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于合一網絡技術(北京)有限公司;,未經合一網絡技術(北京)有限公司;許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410471513.0/1.html,轉載請聲明來源鉆瓜專利網。





