[發(fā)明專(zhuān)利]基于UDP的可靠傳輸方法有效
| 申請(qǐng)?zhí)枺?/td> | 201410471513.0 | 申請(qǐng)日: | 2014-09-17 |
| 公開(kāi)(公告)號(hào): | CN104202414A | 公開(kāi)(公告)日: | 2014-12-10 |
| 發(fā)明(設(shè)計(jì))人: | 石杰;張士波;楊敬宇;姚鍵;潘柏宇;盧述奇 | 申請(qǐng)(專(zhuān)利權(quán))人: | 合一網(wǎng)絡(luò)技術(shù)(北京)有限公司 |
| 主分類(lèi)號(hào): | H04L29/08 | 分類(lèi)號(hào): | H04L29/08 |
| 代理公司: | 無(wú) | 代理人: | 無(wú) |
| 地址: | 100080 北京市海淀區(qū)*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 udp 可靠 傳輸 方法 | ||
技術(shù)領(lǐng)域
?本申請(qǐng)涉及一種網(wǎng)絡(luò)傳輸方法,具體地,涉及一種基于UDP,且結(jié)合了TCP傳輸特點(diǎn)的可靠傳輸方法。
背景技術(shù)
目前,在設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)傳輸方案時(shí),常用到的有TCP(傳輸控制協(xié)議)傳輸方式和UDP(用戶(hù)數(shù)據(jù)報(bào)文協(xié)議)傳輸方式。
TCP傳輸
TCP是一種基于連接的協(xié)議,在數(shù)據(jù)通信之前需要通信雙方建立連接,事先為所發(fā)送的數(shù)據(jù)開(kāi)辟好通道,然后,再進(jìn)行數(shù)據(jù)發(fā)送。
TCP協(xié)議上規(guī)定類(lèi)流控制,確保通信數(shù)據(jù)可靠、順序到達(dá)目的地,因此有一個(gè)三次握手的要求。按照協(xié)議規(guī)范的要求,實(shí)現(xiàn)的路由設(shè)備提供相應(yīng)的支持,并且盡量不丟棄TCP數(shù)據(jù),實(shí)現(xiàn)協(xié)議的系統(tǒng)驅(qū)動(dòng)層進(jìn)行重發(fā)和滑動(dòng)窗口控制,并且通過(guò)增加重發(fā)時(shí)間減少可能帶來(lái)的網(wǎng)絡(luò)堵塞問(wèn)題。系統(tǒng)提供的API應(yīng)用上,針對(duì)不同的鏈接分配獨(dú)立緩沖區(qū),進(jìn)一步減少可能的丟包問(wèn)題(由于緩沖區(qū)滿(mǎn)造成數(shù)據(jù)無(wú)法接受引起數(shù)據(jù)包丟失問(wèn)題)。
TCP所支持的協(xié)議包括Telnet(遠(yuǎn)程登錄)、FTP(文件傳輸協(xié)議)、SMTP(簡(jiǎn)單郵件傳輸協(xié)議)等。
UDP傳輸
UDP是面向非連接的(正式通信前不必與對(duì)方建立連接,不管對(duì)方狀態(tài)就直接發(fā)送),不能提供可靠性、流控、差錯(cuò)恢復(fù)功能。UDP用于一次只傳送少量數(shù)據(jù),可靠性要求低、傳輸經(jīng)濟(jì)等應(yīng)用。
UDP沒(méi)有三次握手的需求,網(wǎng)絡(luò)設(shè)備在通信時(shí),UDP數(shù)據(jù)擁有比TCP數(shù)據(jù)更高的優(yōu)先通信權(quán)利,這點(diǎn)使得UDP數(shù)據(jù)在通信上更加的快速,但是當(dāng)網(wǎng)絡(luò)擁堵時(shí),通信設(shè)備同樣會(huì)優(yōu)先丟棄UDP數(shù)據(jù),這種設(shè)計(jì)方式會(huì)導(dǎo)致UDP數(shù)據(jù)出現(xiàn)丟失的問(wèn)題,同時(shí)協(xié)議沒(méi)有規(guī)定相應(yīng)的流控制方式,自然也不會(huì)保證數(shù)據(jù)的順序到達(dá)。在沒(méi)有流控制的情況下,UDP數(shù)據(jù)可能出現(xiàn)丟失、亂序到達(dá)的問(wèn)題,同樣由于沒(méi)有流控制,如果開(kāi)發(fā)控制不當(dāng),可能導(dǎo)致數(shù)據(jù)風(fēng)暴問(wèn)題。在系統(tǒng)驅(qū)動(dòng)實(shí)現(xiàn)上,由于所有的UDP數(shù)據(jù)接收時(shí),使用共享的數(shù)據(jù)緩沖區(qū),設(shè)置不當(dāng)大小的緩沖區(qū),可能會(huì)增加數(shù)據(jù)包的丟失問(wèn)題,這個(gè)就是為什么UDP協(xié)議無(wú)法實(shí)現(xiàn)高并發(fā)的服務(wù)器原因所在。
UDP支持的應(yīng)用協(xié)議:NFS(網(wǎng)絡(luò)文件系統(tǒng))、SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理系統(tǒng))、DNS(主域名稱(chēng)系統(tǒng))、TFTP(通用文件傳輸協(xié)議)等。
但現(xiàn)有技術(shù)中,上述兩種傳輸方法具有一定的缺陷,具體為:對(duì)于TCP傳輸,其速度慢、建立連接需要開(kāi)銷(xiāo)較多(時(shí)間,系統(tǒng)資源)、實(shí)時(shí)性較差。對(duì)于UDP傳輸,傳輸不可靠、在網(wǎng)絡(luò)擁堵的情況下容易丟包、數(shù)據(jù)包無(wú)序、重傳率高。
特別是在P2P網(wǎng)絡(luò)中,由于TCP需要對(duì)方的IP和端口固定,且能直接訪問(wèn),而在P2P網(wǎng)絡(luò)中大部分情況都是,主機(jī)掛在交換機(jī)或路由器后面,映射出來(lái)的外網(wǎng)端口不是固定的,也不能被直接訪問(wèn),所以,P2P網(wǎng)絡(luò)大部分采用的都是UDP,而不是TCP。因此,如何能夠結(jié)合兩種網(wǎng)絡(luò)傳輸協(xié)議的優(yōu)點(diǎn),形成一種新的網(wǎng)絡(luò)傳輸協(xié)議,特別的,能夠?qū)⑦@種網(wǎng)絡(luò)傳輸協(xié)議應(yīng)用在P2P等無(wú)法使用TCP網(wǎng)絡(luò)傳輸協(xié)議的網(wǎng)絡(luò)中,成為現(xiàn)有技術(shù)亟需解決的技術(shù)問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種新的基于UDP的可靠傳輸方法,使得該方法能夠適用于P2P等UDP使用的網(wǎng)絡(luò),?既保證傳輸?shù)男剩纸档土藬?shù)據(jù)的重傳率。
為達(dá)此目的,本發(fā)明采用以下技術(shù)方案:
一種基于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,至此雙方建立連接。
優(yōu)選地,在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ū)滿(mǎn)了,則停止放入,直到有空閑的緩沖區(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消息;
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于合一網(wǎng)絡(luò)技術(shù)(北京)有限公司;,未經(jīng)合一網(wǎng)絡(luò)技術(shù)(北京)有限公司;許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410471513.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 用戶(hù)數(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)





