[發(fā)明專利]基于UDP的可靠傳輸方法有效
| 申請(qǐng)?zhí)枺?/td> | 201410471513.0 | 申請(qǐng)日: | 2014-09-17 |
| 公開(公告)號(hào): | CN104202414A | 公開(公告)日: | 2014-12-10 |
| 發(fā)明(設(shè)計(jì))人: | 石杰;張士波;楊敬宇;姚鍵;潘柏宇;盧述奇 | 申請(qǐng)(專利權(quán))人: | 合一網(wǎng)絡(luò)技術(shù)(北京)有限公司 |
| 主分類號(hào): | H04L29/08 | 分類號(hào): | H04L29/08 |
| 代理公司: | 無(wú) | 代理人: | 無(wú) |
| 地址: | 100080 北京市海淀區(qū)*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 udp 可靠 傳輸 方法 | ||
1.一種基于UDP的可靠傳輸方法,其特征在于:在UDP傳輸中,模擬TCP的3次握手,建立連接,具體為:
1)發(fā)送端向接收端發(fā)送SYN,告訴對(duì)方要和它建立連接,同時(shí)將自己的狀態(tài)置為SYN_SEND;
2)當(dāng)接收方收到SYN消息后,給對(duì)方回應(yīng)ACK,同時(shí)在發(fā)一個(gè)SYN,并將自己的狀態(tài)置為SYN_RECEIVED;
3)當(dāng)發(fā)送端收到對(duì)方的回應(yīng)ACK和SYN后,再給對(duì)方發(fā)送一個(gè)ACK,同時(shí)將自己的狀態(tài)置為ESTABLISHED;
4)當(dāng)接收端收到對(duì)方的回應(yīng)ACK后,更新自己的狀態(tài)為ESTABLISHED,至此雙方建立連接。
2.根據(jù)權(quán)利要求1所述的基于UDP的可靠傳輸方法,其特征在于:
在UDP數(shù)據(jù)傳輸時(shí),采用如下步驟進(jìn)行數(shù)據(jù)傳輸:
1)對(duì)于發(fā)送方和接收方,分別分配發(fā)送緩沖區(qū)和接收緩沖區(qū),用來(lái)保存發(fā)送和接收的數(shù)據(jù);
2)應(yīng)用層將要傳輸?shù)臄?shù)據(jù)放到發(fā)送緩沖區(qū)中,當(dāng)緩沖區(qū)滿了,則停止放入,直到有空閑的緩沖區(qū)再繼續(xù)放入;
3)網(wǎng)絡(luò)層將緩沖區(qū)中的數(shù)據(jù)組上包頭,按數(shù)據(jù)包序號(hào)逐個(gè)發(fā)出去,同時(shí)等待接收方回應(yīng)ack;
4)接收方收到數(shù)據(jù)包,按照包的序號(hào)放到對(duì)應(yīng)的緩沖區(qū)位置,并需要根據(jù)當(dāng)前的緩沖區(qū)狀態(tài),計(jì)算出回應(yīng)的ack_no,即ack序號(hào),給對(duì)方回復(fù)一個(gè)ack消息;
5)發(fā)送端收到ack后,根據(jù)回應(yīng)的ack_no判斷,發(fā)送緩沖區(qū)的滑動(dòng)床后是否后移,當(dāng)滿足窗口后移條件后,可以把緩沖區(qū)前面的位置騰出來(lái),并通知上傳繼續(xù)放數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的基于UDP的可靠傳輸方法,其特征在于:
在采用UDP方式在傳輸數(shù)據(jù)時(shí),當(dāng)產(chǎn)生丟包現(xiàn)象,通過(guò)數(shù)據(jù)重傳,將丟棄的數(shù)據(jù)包重新發(fā)送給接收端。
4.根據(jù)權(quán)利要求3所述的基于UDP的可靠傳輸方法,其特征在于:
接收端在接收的時(shí)候,要把接收到的數(shù)據(jù)包按次序放到緩沖隊(duì)列中,同時(shí)根據(jù)當(dāng)前緩沖區(qū)的情況計(jì)算出對(duì)應(yīng)的ACK序號(hào),回復(fù)對(duì)方,發(fā)送端收到回復(fù)之后,根據(jù)對(duì)應(yīng)的ACK序號(hào),判斷是繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)包,還是重傳之前發(fā)過(guò)的數(shù)據(jù)包。
5.根據(jù)權(quán)利要求4所述的基于UDP的可靠傳輸方法,其特征在于:
接收端在接收的時(shí)候,要把接收到的數(shù)據(jù)包按次序放到緩沖隊(duì)列中,同時(shí)根據(jù)當(dāng)前緩沖區(qū)的情況計(jì)算出對(duì)應(yīng)的ACK序號(hào)和SACK序號(hào)。
6.根據(jù)權(quán)利要求2所述的基于UDP的可靠傳輸方法,其特征在于:
當(dāng)發(fā)送端發(fā)送的UDP數(shù)據(jù)塊過(guò)大,超過(guò)單個(gè)緩沖區(qū)的大小的時(shí)候,就需要把這塊數(shù)據(jù)拆成幾個(gè)小的數(shù)據(jù)包發(fā)送,拆包的時(shí)候,以緩沖區(qū)容量為限,將數(shù)據(jù)包從前往后依次放入到緩沖隊(duì)列中,若提示緩沖區(qū)滿,則需要將緩沖區(qū)鎖定,防止其他進(jìn)程寫入,造成數(shù)據(jù)破壞,等有空閑緩沖區(qū)的時(shí)候,再將剩余的數(shù)據(jù)塊寫入。
7.?根據(jù)權(quán)利要求6所述的基于UDP的可靠傳輸方法,其特征在于:
當(dāng)接收端收到數(shù)據(jù)后,分配一塊大的緩沖區(qū),將收到的包,按順序依次寫入緩沖區(qū),保證收到的順序和發(fā)送的順序是一致的,這樣組合出來(lái)的數(shù)據(jù)塊和發(fā)送的原數(shù)據(jù)塊就能保證是一致的。
8.根據(jù)權(quán)利要求1-7中任意一項(xiàng)所述的基于UDP的可靠傳輸方法,其特征在于:
在UDP連接時(shí),通過(guò)定時(shí)的向?qū)Ψ桨l(fā)送心跳包,告訴對(duì)方自己處于活躍狀態(tài),收到對(duì)方的心跳后更新一下?tīng)顟B(tài)。
9.?根據(jù)權(quán)利要求8所述的基于UDP的可靠傳輸方法,其特征在于:
在UDP斷開連接時(shí),傳輸?shù)囊环侥軌蛑鲃?dòng)斷開連接或者是長(zhǎng)時(shí)間等不到對(duì)方的心跳,將連接斷開。
10.?根據(jù)權(quán)利要求8所述的基于UDP的可靠傳輸方法,其特征在于:
對(duì)UDP數(shù)據(jù)傳輸進(jìn)行數(shù)據(jù)校驗(yàn)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于合一網(wǎng)絡(luò)技術(shù)(北京)有限公司;,未經(jīng)合一網(wǎng)絡(luò)技術(shù)(北京)有限公司;許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410471513.0/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 用戶數(shù)據(jù)報(bào)協(xié)議復(fù)用和復(fù)用協(xié)商的方法及裝置
- 一種流媒體支持TCP和UDP傳送的自適應(yīng)的方法
- 基于UDP協(xié)議實(shí)現(xiàn)教學(xué)通信的方法及系統(tǒng)
- 一種實(shí)現(xiàn)移動(dòng)app的定向UDP流量引導(dǎo)的方法和系統(tǒng)
- UDP數(shù)據(jù)傳輸?shù)姆椒ā⒀b置、存儲(chǔ)介質(zhì)及終端設(shè)備
- 一種網(wǎng)絡(luò)性能測(cè)試方法和系統(tǒng)
- 一種降低UDP報(bào)文發(fā)送時(shí)延的方法
- 一種數(shù)據(jù)處理方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì)
- 一種UDP數(shù)據(jù)包處理方法及裝置
- 一種高效可靠的數(shù)據(jù)傳輸方法及系統(tǒng)





