国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于UDP 改進(jìn)的可靠傳輸協(xié)議研究與實(shí)現(xiàn)

2015-06-02 11:57王玨何秋燕王露凱
電腦知識(shí)與技術(shù) 2015年9期

王玨 何秋燕 王露凱

摘要:在數(shù)據(jù)傳輸網(wǎng)絡(luò)中,與其它協(xié)議相比,UDP協(xié)議在速度上有一定的優(yōu)勢(shì), 但也存在著傳輸可靠性差及缺乏擁塞控制機(jī)制的問(wèn)題, 該文在UDP協(xié)議的基礎(chǔ)上,通過(guò)增加簡(jiǎn)單的三次握手,確認(rèn)重傳機(jī)制,滑動(dòng)窗口機(jī)制,設(shè)計(jì)出了一種基于UDP的可靠傳輸協(xié)議,使其在可靠性和傳輸效率之間達(dá)到一個(gè)良好的統(tǒng)一與折衷,并對(duì)協(xié)議的主要模塊的實(shí)現(xiàn)做出了具體描述并進(jìn)行了實(shí)際測(cè)試。

關(guān)鍵詞:可靠UDP;確認(rèn)重傳;滑動(dòng)窗口

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)09-0071-03

Abstract:In data transmission network, compared with the other protocol, UDP protocol has certain advantages in speed, but there is also the transmission reliability is poor and the problem of lack of congestion control mechanism in this paper, on the basis of the UDP protocol, by adding a simple three-way handshake, confirm the retransmission mechanism, the sliding window mechanism, designed a reliable transport protocol based on UDP, make it between the reliability and efficiency to achieve a good unity and compromise, and implementation of the agreement of the main module has made a detailed description and the actual test.

Key words: reliable UDP; confirm the retransmission; the sliding window

由于傳統(tǒng)的數(shù)據(jù)傳輸協(xié)議所針對(duì)的業(yè)務(wù)不同,在數(shù)據(jù)傳輸?shù)乃俣群涂煽啃灾g不能達(dá)到很好的平衡。車(chē)險(xiǎn)理賠系統(tǒng)中采用的是移動(dòng)理賠的思想,手持終端機(jī)通過(guò)移動(dòng)通信網(wǎng)絡(luò)和后臺(tái)中心系統(tǒng)進(jìn)行數(shù)據(jù)交互。目前國(guó)內(nèi)的通信事業(yè)并不是很發(fā)達(dá),信號(hào)覆蓋率并不全面,移動(dòng)通信網(wǎng)絡(luò)的帶寬和傳輸質(zhì)量會(huì)受到地域的影響,為確保理賠現(xiàn)場(chǎng)與后臺(tái)系統(tǒng)間數(shù)據(jù)的及時(shí)可靠傳輸,需要基于移動(dòng)通信的網(wǎng)絡(luò)環(huán)境設(shè)計(jì)高效可靠的數(shù)據(jù)傳輸功能。本章在UDP傳輸協(xié)議基礎(chǔ)上,通過(guò)應(yīng)用層封裝和可靠性設(shè)計(jì)的方法,采用數(shù)據(jù)包的確認(rèn)重傳、流量控制等機(jī)制,設(shè)計(jì)并實(shí)現(xiàn)基于UDP協(xié)議的可靠數(shù)據(jù)傳輸功能。

1 TCP與UDP的對(duì)比

TCP和UDP都屬于傳輸層協(xié)議,負(fù)責(zé)承擔(dān)數(shù)據(jù)傳輸?shù)娜蝿?wù)[1]。兩者之間的主要區(qū)別有:

(1) TCP和UDP是傳輸層的兩個(gè)協(xié)議,它們最大的區(qū)別是是否面向連接。TCP,在客戶(hù)端和服務(wù)器端進(jìn)行通信之前,首先要交換傳輸層控制信息,為雙方的通信做好準(zhǔn)備。UDP是一個(gè)非連接的協(xié)議,傳輸數(shù)據(jù)之前雙方不建立連接,當(dāng)傳送數(shù)據(jù)時(shí),簡(jiǎn)單的抓取來(lái)自應(yīng)用程序的數(shù)據(jù),并盡可能快的把數(shù)據(jù)傳送到網(wǎng)絡(luò)上。

(2) UDP協(xié)議的數(shù)據(jù)傳輸不需要維護(hù)收發(fā)狀態(tài)和連接狀態(tài)等,與TCP相比,網(wǎng)絡(luò)有效利用率得到很大的提高。

(3) TCP協(xié)議提供數(shù)據(jù)確認(rèn)重傳、擁塞控制等可靠性保證,UDP協(xié)議不提供可靠性保證,也不提供流量控制。

TCP協(xié)議由于需要確認(rèn)的狀態(tài)和對(duì)數(shù)據(jù)包的操作過(guò)多,數(shù)據(jù)傳輸?shù)乃俣炔桓咔揖W(wǎng)絡(luò)延遲較大,所以雖然協(xié)議可靠但并不適合面向移動(dòng)通信的數(shù)據(jù)傳輸;而UDP協(xié)議由于不用建立連接,沒(méi)有超時(shí)重發(fā)等可靠機(jī)制,網(wǎng)絡(luò)延遲小且數(shù)據(jù)傳輸速度很快。本文設(shè)計(jì)的理賠系統(tǒng)面向移動(dòng)通信網(wǎng)絡(luò)實(shí)現(xiàn)理賠現(xiàn)場(chǎng)與后臺(tái)系統(tǒng)間的數(shù)據(jù)傳輸,網(wǎng)絡(luò)環(huán)境不如光纖接入網(wǎng)絡(luò)穩(wěn)定可靠,對(duì)數(shù)據(jù)的高效可靠傳輸有著很高的要求。因此,本章選用UDP協(xié)議,并在其基礎(chǔ)上,設(shè)計(jì)了連接確認(rèn)、數(shù)據(jù)確認(rèn)等可靠機(jī)制,滿(mǎn)足了系統(tǒng)對(duì)于高效可靠傳輸功能的需求。

2基于UDP 改進(jìn)的可靠傳輸協(xié)議實(shí)現(xiàn)

2.1 主要功能模塊及任務(wù)結(jié)構(gòu)

綜合文獻(xiàn)【2】的可靠機(jī)制描述,可靠UDP數(shù)據(jù)傳輸協(xié)議的模塊結(jié)構(gòu)如圖1所示。

從模塊結(jié)構(gòu)上看,本模塊主要由以下幾個(gè)任務(wù)實(shí)現(xiàn)模塊功能:

? 通信處理模塊

1) 發(fā)送方發(fā)起數(shù)據(jù)傳輸請(qǐng)求,三次握手成功后,發(fā)送方進(jìn)入數(shù)據(jù)包封裝模塊。

2) 超時(shí)定時(shí)器的啟動(dòng)和關(guān)閉。

3) 當(dāng)數(shù)據(jù)傳輸結(jié)束時(shí),接收方向發(fā)送方主動(dòng)發(fā)起傳輸結(jié)束的請(qǐng)求。

? 數(shù)據(jù)包封裝/解析模塊

1) 發(fā)送方將要發(fā)送的的數(shù)據(jù)按照協(xié)商大小分塊,排序。

2) 發(fā)送方將分塊的數(shù)據(jù)協(xié)商的數(shù)據(jù)報(bào)文結(jié)構(gòu)封裝成要發(fā)送的消息包。

3) 接收方讀取數(shù)據(jù)包后根據(jù)協(xié)商的數(shù)據(jù)報(bào)文結(jié)構(gòu)拆分?jǐn)?shù)據(jù)包,根據(jù)數(shù)據(jù)包的類(lèi)型讀取信息。

? 消息發(fā)送/接收模塊

1) 發(fā)送方判斷發(fā)送隊(duì)列和消息隊(duì)列是否為空后,將要發(fā)送的數(shù)據(jù)包處理后發(fā)送。

2) 接收方從接收隊(duì)列中讀取數(shù)據(jù)包。

? 數(shù)據(jù)重組模塊

1) 由于網(wǎng)絡(luò)問(wèn)題,發(fā)送方按序發(fā)送的數(shù)據(jù)包不一定會(huì)按序到達(dá),所以接收方在經(jīng)過(guò)數(shù)據(jù)包解析模塊讀取數(shù)據(jù)后,根據(jù)該消息的字節(jié)序號(hào)判斷是否為亂序的分組。

2) 若是順序的分組,將分組與以前收到的消息按序排列;若是要求重傳的分組,將該分組放入到所應(yīng)在的位置中。

3) 如果滿(mǎn)足重發(fā)條件,則向發(fā)送方發(fā)送重發(fā)包請(qǐng)求。

2.2 核心事件處理流程

2.2.1 通信處理進(jìn)程

通信處理模塊中的通信處理進(jìn)程主要負(fù)責(zé)三次握手的發(fā)起和確認(rèn)的請(qǐng)求,數(shù)據(jù)傳輸結(jié)束后結(jié)束連接等任務(wù)。具體流程見(jiàn)圖2。首先,通信的接收方發(fā)起握手的請(qǐng)求,即建立一個(gè)虛連接,雙方必須確保該連接成功建立后才可以進(jìn)行下一步數(shù)據(jù)傳輸?shù)牟僮?。然后,在接收方一端啟?dòng)定時(shí)器,接收方的數(shù)據(jù)處理進(jìn)程接收發(fā)送方發(fā)送的數(shù)據(jù),同時(shí)接收方根據(jù)定時(shí)計(jì)時(shí)器發(fā)送反饋消息;或判斷接收到的報(bào)文數(shù),當(dāng)達(dá)到數(shù)據(jù)包累積計(jì)數(shù)器設(shè)定的數(shù)值時(shí),向發(fā)送方發(fā)送反饋消息。

2.2.2 發(fā)送方發(fā)送報(bào)文

數(shù)據(jù)報(bào)文的發(fā)送,主要是發(fā)送方向接收方發(fā)送數(shù)據(jù)報(bào)文和消息報(bào)文,流程如圖3所示,具體的算法為:

if(發(fā)送隊(duì)列非空)

{

從隊(duì)列中取出消息;

if (消息類(lèi)型為數(shù)據(jù)包)

發(fā)送數(shù)據(jù)包;

else 發(fā)送確認(rèn)包;

}

else if (消息隊(duì)列非空)

{

打包要發(fā)送的數(shù)據(jù)并將數(shù)據(jù)放入發(fā)送隊(duì)列中;

套接口處當(dāng)前序號(hào)加1;

}

3 實(shí)驗(yàn)結(jié)果與分析

3.1 開(kāi)發(fā)環(huán)境

系統(tǒng)的編程實(shí)現(xiàn)是在Windows XP上進(jìn)行的,使用的編程工具為Visual C++6.0。

3.2 系統(tǒng)測(cè)試

3.2.1 測(cè)試環(huán)境

本測(cè)試是是在無(wú)線通信網(wǎng)絡(luò)下進(jìn)行的,配置了兩臺(tái)計(jì)算機(jī)用作數(shù)據(jù)間收發(fā)的測(cè)試,操作系統(tǒng)為Windows XP。華為E261 3G上網(wǎng)卡兩張,用于連接無(wú)線網(wǎng)絡(luò),測(cè)試拓?fù)浣Y(jié)構(gòu)如圖4所示。

3.2.2 測(cè)試內(nèi)容

本測(cè)試采用傳輸不同大小文件的方式來(lái)對(duì)數(shù)據(jù)速度進(jìn)行測(cè)試,每次傳輸重復(fù)測(cè)試三次,然后取平均值作為參考數(shù)據(jù),測(cè)試結(jié)果見(jiàn)表1和表2。其中,表1是在最大連接速率7.2Mbps環(huán)境下的測(cè)試結(jié)果,表2是在連接速率為2.2Mbps環(huán)境下的測(cè)試結(jié)果。

由表1可見(jiàn),在移動(dòng)通信的網(wǎng)絡(luò)連接環(huán)境為7.2Mbps時(shí),當(dāng)傳輸1MB的數(shù)據(jù)時(shí),TCP協(xié)議測(cè)試耗時(shí)9.75s,平均傳輸速度約為105KB/s;可靠UDP耗時(shí)8.25s,平均傳輸速度約為124KB/s。當(dāng)傳輸數(shù)據(jù)為32MB時(shí),TCP耗時(shí)295.89s,平均傳輸速度約為120KB/s;可靠UDP耗時(shí)197.05s平均傳輸速度約為168KB/s。

由表2可見(jiàn),在移動(dòng)通信的網(wǎng)絡(luò)連接環(huán)境為2.2Mbps時(shí),由于連接環(huán)境較差,測(cè)試文件并不大,當(dāng)傳輸0..36s,平均傳輸速度約為21KB/s;可靠UDP耗時(shí)190.81s,平均傳輸速度約為43KB/s。

由此可得出:

(1) 可靠UDP傳輸協(xié)議的優(yōu)勢(shì)隨著傳輸數(shù)據(jù)量的增大而越來(lái)越明顯。

(2) 可靠UDP傳輸協(xié)議的優(yōu)勢(shì)隨著網(wǎng)絡(luò)環(huán)境的變差而越來(lái)越明顯。

參考文獻(xiàn):

[1] Douglas E.Comer. 用TCP/IP進(jìn)行網(wǎng)際互聯(lián)——原理、協(xié)議與結(jié)構(gòu)(第五版)[M]. 林瑤, 張娟, 王海,等譯. 北京:電子工業(yè)出版社,2009.

[2] 王玨, 何秋燕, 王露凱.基于UDP 改進(jìn)的可靠傳輸協(xié)議設(shè)計(jì)[J].電子世界,2014(22).

[3] 王繼剛, 顧國(guó)昌, 徐立峰,等.可靠UDP數(shù)據(jù)傳輸協(xié)議的研究與設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2006(15):113-116.

[4] 靳海力.一種增強(qiáng)型可靠UDP的設(shè)計(jì)及應(yīng)用[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2009.

[5] 王艷芳.基于UDP的數(shù)據(jù)可靠傳輸技術(shù)研究與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2012(1).

略阳县| 连州市| 锡林郭勒盟| 白朗县| 宝鸡市| 汨罗市| 荣成市| 棋牌| 安福县| 祁门县| 海盐县| 十堰市| 万州区| 精河县| 拉孜县| 苏尼特左旗| 墨玉县| 平安县| 饶阳县| 西安市| 阳东县| 铜陵市| 金湖县| 丽水市| 铁岭市| 太仓市| 河东区| 清涧县| 海盐县| 拉萨市| 张家界市| 嘉祥县| 洛川县| 哈密市| 太仆寺旗| 东莞市| 宕昌县| 中卫市| 通海县| 浦县| 晋宁县|