淺談TCP-BM對(duì)于異構(gòu)網(wǎng)絡(luò)TCP協(xié)議的重要性
出處:維庫(kù)電子市場(chǎng)網(wǎng) 發(fā)布于:2023-06-30 13:54:33
所謂異構(gòu)網(wǎng)絡(luò)(Heterogeneous Network)是一種類型的網(wǎng)絡(luò),其是由不同制造商生產(chǎn)的計(jì)算機(jī),網(wǎng)絡(luò)設(shè)備和系統(tǒng)組成的,大部分情況下運(yùn)行在不同的協(xié)議上支持不同的功能或應(yīng)用?;ヂ?lián)網(wǎng)可以由多個(gè)異構(gòu)網(wǎng)絡(luò)互聯(lián)組成。
TCP:Transmission Control Protocol 傳輸控制協(xié)議TCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運(yùn)輸層(Transport layer)通信協(xié)議,由IETF的RFC 793說(shuō)明(specified)。在簡(jiǎn)化的計(jì)算機(jī)網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能,UDP是同一層內(nèi)另一個(gè)重要的傳輸協(xié)議。在因特網(wǎng)協(xié)議族(Internet protocol suite)中,TCP層是位于IP層之上,應(yīng)用層之下的運(yùn)輸層。不同主機(jī)的應(yīng)用層之間經(jīng)常需要可靠的、像管道一樣的連接,但是IP層不提供這樣的流機(jī)制,而是提供不可靠的包交換。
應(yīng)用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)摹⒂?位字節(jié)表示的數(shù)據(jù)流,然后TCP把數(shù)據(jù)流分割成適當(dāng)長(zhǎng)度的報(bào)文段(通常受該計(jì)算機(jī)連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的傳送單元(MTU)的限制)。之后TCP把結(jié)果包傳給IP層,由它來(lái)通過網(wǎng)絡(luò)將包傳送給接收端實(shí)體的TCP層。TCP為了保證不發(fā)生丟包,就給每個(gè)字節(jié)一個(gè)序號(hào),同時(shí)序號(hào)也保證了傳送到接收端實(shí)體的包的按序接收。然后接收端實(shí)體對(duì)已成功收到的字節(jié)發(fā)回一個(gè)相應(yīng)的確認(rèn)(ACK);如果發(fā)送端實(shí)體在合理的往返時(shí)延(RTT)內(nèi)未收到確認(rèn),那么對(duì)應(yīng)的數(shù)據(jù)(假設(shè)丟失了)將會(huì)被重傳。TCP用一個(gè)校驗(yàn)和函數(shù)來(lái)檢驗(yàn)數(shù)據(jù)是否有錯(cuò)誤;在發(fā)送和接收時(shí)都要計(jì)算校驗(yàn)和。
首先,TCP建立連接之后,通信雙方都同時(shí)可以進(jìn)行數(shù)據(jù)的傳輸,其次,他是全雙工的;在保證可靠性上,采用超時(shí)重傳和捎帶確認(rèn)機(jī)制。
目前改善TCP協(xié)議在異構(gòu)網(wǎng)絡(luò)環(huán)境下的性能的方法主要分為以下三類:鏈路層方法、分離連接方法和端到端方法。
鏈路層方法是通過本地重傳和前向糾錯(cuò)屏蔽發(fā)送端與鏈路相關(guān)的丟包。但由于鏈路層協(xié)議與高層協(xié)議都有獨(dú)立的差錯(cuò)控制功能,存在一定的重復(fù)性,相互競(jìng)爭(zhēng)會(huì)降低無(wú)線信道的利用率,導(dǎo)致端到端吞吐量下降。代表性協(xié)議是Snoop[4]。
分離鏈接方法是在基站處將TCP連接分成有線連接和無(wú)線連接兩部分:有線連接部分使用傳統(tǒng)的TCP協(xié)議,無(wú)線連接部分使用改進(jìn)的TCP協(xié)議。它破壞了端到端的TCP語(yǔ)義連接性。代表性協(xié)議是Indirect-TCP[5]。
端到端方法只修改TCP發(fā)送端和接收端的協(xié)議,保證了端到端的TCP語(yǔ)義連接性。代表性協(xié)議是TCP Westwood[6]。該協(xié)議在發(fā)端監(jiān)視收到的ACK數(shù)據(jù)流,并以此來(lái)估計(jì)當(dāng)前鏈路的可用帶寬。一旦丟包,發(fā)端將利用估計(jì)的帶寬對(duì)慢啟動(dòng)閾值和擁塞窗口進(jìn)行適當(dāng)設(shè)置,保證了網(wǎng)絡(luò)的快速恢復(fù)并可更有效地避免擁塞。
本文提出了一種適用于異構(gòu)網(wǎng)絡(luò)的TCP算法TCP -BM(TCP Based Measurement),其基本思想是利用往返時(shí)延RTT來(lái)控制擁塞窗口的增長(zhǎng)速度,使發(fā)送窗口穩(wěn)定在一個(gè)比較理想的狀態(tài),在網(wǎng)絡(luò)發(fā)生丟包后,通過對(duì)RTT的實(shí)時(shí)分析判斷出丟包原因,從而采取相應(yīng)的控制措施。
1 傳統(tǒng)TCP Reno協(xié)議及分析
1.1 TCP Reno協(xié)議流程
TCP Reno協(xié)議包括慢啟動(dòng)、擁塞避免、快速重傳和快速恢復(fù)4個(gè)階段:
(a)慢啟動(dòng)階段:TCP將擁塞窗口值設(shè)為1,發(fā)送端每收到一個(gè)新的ACK就把擁塞窗口值增加一個(gè),即W=W+1,W表示擁塞窗口;
(b)擁塞避免階段:發(fā)送端每收到一個(gè)新的ACK就把擁塞窗口值增加擁塞窗口值的倒數(shù),即W=W+1/W;
(c)丟包標(biāo)志為3個(gè)重復(fù)ACK:發(fā)送端重傳丟失的包,并且在窗口范圍內(nèi)繼續(xù)發(fā)送新的數(shù)據(jù)包,此后發(fā)送端每收到1個(gè)重復(fù)的ACK就將擁塞窗口值增加1;
(d)丟包標(biāo)志為計(jì)時(shí)器超時(shí):發(fā)送端重傳丟失的包,然后將慢啟動(dòng)閾值設(shè)為當(dāng)前窗口的一半,將擁塞窗口設(shè)為1。
因?yàn)門CP協(xié)議是端到端的協(xié)議,因此這里的說(shuō)明只涉及發(fā)送端和接收端。在連接開始時(shí),發(fā)送端執(zhí)行(a), 直到擁塞窗口值大于(或等于)慢啟動(dòng)閾值或者出現(xiàn)丟包:(1)如果是出現(xiàn)丟包,發(fā)送端執(zhí)行策略與丟包標(biāo)志相關(guān),如果丟包標(biāo)志為3個(gè)重復(fù)ACK,則發(fā)送端執(zhí)行(c), 直到發(fā)送端收到新的ACK為止,然后發(fā)送端TCP將擁塞窗口和慢啟動(dòng)閾值都設(shè)為快速重傳前擁塞窗口值的一半,重新開始擁塞避免階段;如果丟包標(biāo)志為計(jì)時(shí)器超時(shí),則發(fā)送端執(zhí)行(d),重新開始慢啟動(dòng)階段;(2)如果是擁塞窗口大于(或等于)慢啟動(dòng)閾值,則發(fā)送端執(zhí)行(b),該策略一直持續(xù)到出現(xiàn)丟包為止,一旦出現(xiàn)丟包,發(fā)送端執(zhí)行策略同慢啟動(dòng)階段出現(xiàn)丟包時(shí)采取的策略一樣。
1.2 TCP Reno協(xié)議分析
快速恢復(fù)算法避免了在快速重傳之后通道為空的現(xiàn)象,從而避免了在單個(gè)報(bào)文丟失后重新開始慢啟動(dòng)階段。TCP發(fā)送端在每個(gè)往返時(shí)延內(nèi)多重傳1個(gè)包,因此在只有1個(gè)數(shù)據(jù)包丟失的情況下,該協(xié)議性能。當(dāng)1個(gè)窗口中有2個(gè)報(bào)文丟失時(shí),在TCP發(fā)送端快速重傳和快速恢復(fù)就將被執(zhí)行2次,因?yàn)樵诳焖倩謴?fù)階段窗口的調(diào)整策略為ssthresh=cwnd/2,cwnd=ssthresh,因此慢啟動(dòng)閾值和擁塞窗口都將被減小2次,這是不必要的。當(dāng)有更多數(shù)據(jù)包丟失時(shí),根據(jù)Reno協(xié)議TCP發(fā)送端就必須等待重發(fā)計(jì)時(shí)器超時(shí)才能恢復(fù)。
2 TCP-BM協(xié)議
該算法的基本思想是在慢啟動(dòng)階段根據(jù)網(wǎng)絡(luò)的實(shí)時(shí)狀況來(lái)合理地調(diào)節(jié)擁塞窗口的增長(zhǎng)速度;將擁塞避免過程分為正增長(zhǎng)過程和負(fù)增長(zhǎng)過程,從而使發(fā)送窗口穩(wěn)定在比較理想的狀態(tài)而有預(yù)見性地避免擁塞。在網(wǎng)絡(luò)發(fā)生丟包后,通過對(duì)RTT的實(shí)時(shí)分析以及估計(jì)的帶寬判斷出丟包原因,從而采取不同的恢復(fù)措施。下面詳細(xì)介紹TCP-BM協(xié)議的幾個(gè)階段,未說(shuō)明部分沿用傳統(tǒng)的TCP Reno協(xié)議。
2.1慢啟動(dòng)階段
開始時(shí)數(shù)據(jù)量較少,對(duì)帶寬的利用率較低,因此可以使擁塞窗口較快地增長(zhǎng);當(dāng)擁塞窗口增大到一定程度時(shí),減小其增長(zhǎng)速度,使其相對(duì)緩慢并且平滑地增加;當(dāng)擁塞窗口的大小接近于慢啟動(dòng)閾值時(shí),再次減小其增加速度,使其更加緩慢且平滑地接近于慢啟動(dòng)閾值。算法描述如下:
If (cwnd
If (cwnd*(1+(double)(rtt/rttmin))
cwnd+=(double)(rtt/rttmin);
else if (2*cwnd < ssthresh)
cwnd+=1;
else cwnd+=(double)(rttmin/ rtt)
其中,cwnd表示擁塞窗口;ssthresh表示慢啟動(dòng)閾值,rtt表示當(dāng)前的往返時(shí)延值,它反映當(dāng)前的網(wǎng)絡(luò)狀態(tài);rttmin表示往返時(shí)延歷史數(shù)據(jù)中的值,它反映歷史上網(wǎng)絡(luò)的狀態(tài)。在連接開始時(shí),擁塞窗口大小設(shè)為1,以后每收到一個(gè)ACK,擁塞窗口就增加(double)(rtt/rttmin);擁塞窗口增大到一定程度時(shí)降低其增長(zhǎng)速度,變?yōu)槊渴盏揭粋€(gè)ACK,擁塞窗口就增加1;當(dāng)擁塞窗口接近于慢啟動(dòng)閾值時(shí),擁塞窗口以更緩慢的方式進(jìn)行增長(zhǎng),cwnd+=(double)(rttmin/rtt), 直到擁塞窗口大于(或等于)慢啟動(dòng)閾值或者出現(xiàn)丟包為止。
2.2 擁塞避免階段
當(dāng)擁塞窗口大于(或等于)慢啟動(dòng)閾值后,TCP發(fā)送端發(fā)送的數(shù)據(jù)量已經(jīng)向網(wǎng)絡(luò)所能容忍的一個(gè)限度靠近,此時(shí)不能再使擁塞窗口像慢啟動(dòng)階段那樣快速地增長(zhǎng),因此利用往返時(shí)延值將此階段分為正增長(zhǎng)和負(fù)增長(zhǎng)2個(gè)階段,使傳輸過程能更長(zhǎng)時(shí)間地穩(wěn)定在該階段。算法描述如下:
if((rtt/rttmin)< A
cwnd = cwnd + B1*increment;
else
cwnd = cwnd - B2*increment;
令T=rtt/rttmin,則T表示當(dāng)前往返時(shí)延值是往返時(shí)延歷史數(shù)據(jù)中的值的多少倍,即當(dāng)前的網(wǎng)絡(luò)狀態(tài)比歷史上網(wǎng)絡(luò)的狀態(tài)差多少;A表示擁塞閾值,即當(dāng)前往返時(shí)延值達(dá)到往返時(shí)延歷史數(shù)據(jù)中的值的A倍時(shí),網(wǎng)絡(luò)將趨于擁塞。。經(jīng)過多次仿真分析A取1.5,B1取1,B2取0.5能達(dá)到較好的性能。
2.3快速重傳和快速恢復(fù)
網(wǎng)絡(luò)發(fā)生丟包后,TCP發(fā)送端采取快速重傳措施,重傳丟失的報(bào)文,然后根據(jù)丟包標(biāo)志的不同,通過比較的往返時(shí)延值和前的往返時(shí)延值以及估計(jì)的帶寬值來(lái)區(qū)分丟包原因,從而采取不同的控制措施。算法描述如下:
If (dupacks)
if(rtt>=lastrtt&&bw2
ssthresh= cwnd /2, cwnd =ssthresh;
if (timeout)
ssthresh=cwnd/2,cwnd=1;
其中,dupacks表示3個(gè)重復(fù)ACK的情況,lastrtt表示上的往返時(shí)延值,bw2和bw1分別表示第二個(gè)重復(fù)ACK時(shí)的測(cè)量帶寬和第三個(gè)重復(fù)ACK時(shí)的測(cè)量帶寬(bw1=d/(t2-t1),bw2=d/(t3-t2),d表示ACK所確認(rèn)的報(bào)文段的長(zhǎng)度,t1表示個(gè)重復(fù)ACK到來(lái)的時(shí)間,t2表示第二個(gè)重復(fù)ACK到來(lái)的時(shí)間,t3表示第三個(gè)重復(fù)ACK到來(lái)的時(shí)間),timeout表示計(jì)時(shí)器超時(shí)的情況。當(dāng)丟包標(biāo)志為timeout時(shí),因?yàn)橛?jì)時(shí)器超時(shí)是比3個(gè)重復(fù)ACK更嚴(yán)重的情況,所以此處沿用傳統(tǒng)的方法對(duì)擁塞窗口和慢啟動(dòng)閾值進(jìn)行調(diào)整,其調(diào)整策略見算法描述。
3 性能分析
在ns-2[7]仿真平臺(tái)上進(jìn)行仿真,其網(wǎng)絡(luò)拓?fù)?。網(wǎng)絡(luò)拓?fù)溆?段鏈路和4個(gè)節(jié)點(diǎn)組成,其中S表示TCP發(fā)送端,R表示路由器,BS表示基站,D表示TCP接收端,有線部分包括從發(fā)送端到路由器,從路由器到基站兩部分,一段為無(wú)線部分。其中發(fā)送端與路由器之間的有線鏈路帶寬為100 Mb/s,延遲為1 ms,路由器與基站之間的有線鏈路帶寬為100 Mb/s, 延遲為49 ms,基站與接收端之間的無(wú)線鏈路帶寬為1 Mb/s,延遲為0.01 ms。數(shù)據(jù)包的大小采用固定長(zhǎng)度,其值設(shè)為1 000 byte,無(wú)線誤碼率設(shè)為0,仿真時(shí)間設(shè)為200 s,且只采用一個(gè)FTP數(shù)據(jù)流,該數(shù)據(jù)流在10 s開始,在200 s結(jié)束。
在上述仿真環(huán)境下比較TCP-BM協(xié)議和TCP Reno協(xié)議擁塞窗口隨時(shí)間的變化情況。
橫軸表示時(shí)間,單位為s,縱軸表示擁塞窗口大小,單位為packet。不難看出,在整個(gè)200 s的仿真過程中,TCP Reno協(xié)議的擁塞窗口大小隨時(shí)間的變化非常劇烈,而TCP-BM協(xié)議的擁塞窗口的大小除了出現(xiàn)少數(shù)幾次較為劇烈的波動(dòng)之外,其余時(shí)間變化則較為平緩。對(duì)仿真追蹤所得到的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,TCP Reno協(xié)議的擁塞窗口值為1,值為26,且變化頻繁,變化范圍集中在10~18;而TCP-BM協(xié)議的擁塞窗口值為1,且只出現(xiàn)了屈指可數(shù)的幾次,值為21,穩(wěn)定之后變化范圍集中在13~17。
對(duì)擁塞窗口值在時(shí)間上進(jìn)行平均,TCP Reno協(xié)議的擁塞窗口平均值大小為13.10,而TCP-BM協(xié)議的擁塞窗口平均值大小為14.03,這說(shuō)明TCP-BM協(xié)議發(fā)送量比TCP Reno協(xié)議有明顯增加,這必將會(huì)導(dǎo)致業(yè)務(wù)吞吐量的提高。
對(duì)擁塞窗口值的方差在時(shí)間上進(jìn)行平均可得TCP Reno協(xié)議的擁塞窗口值的平均方差大小為28.86,而TCP-BM協(xié)議的擁塞窗口值的平均方差為1.72,這表明了TCP-BM協(xié)議的擁塞窗口變化情況要比改進(jìn)前緩和得多,說(shuō)明了TCP-BM協(xié)議的帶寬利用率較為穩(wěn)定。
對(duì)TCP Reno協(xié)議和TCP-BM協(xié)議吞吐量變化情況進(jìn)行比較。
橫軸表示時(shí)間,單位為s,縱軸表示吞吐量,單位為kb/s??梢悦黠@看出,TCP-BM協(xié)議的吞吐量比TCP Reno協(xié)議有明顯的提高。TCP-BM的擁塞窗口波動(dòng)也可以說(shuō)明這一問題。終其吞吐量穩(wěn)定在644 kb/s左右,TCP-BM協(xié)議的吞吐量比TCP Reno協(xié)議提高了大約19.3%。
對(duì)丟包率進(jìn)行統(tǒng)計(jì)分析,對(duì)上述仿真結(jié)果進(jìn)行計(jì)算可得,TCP Reno協(xié)議的丟包率為1.65%,而TCP-BM協(xié)議的丟包率為0.21%,對(duì)其進(jìn)行比較可發(fā)現(xiàn),TCP-BM協(xié)議的丟包率比TCP Reno協(xié)議的丟包率減小了1.44%,這也從一定程度上說(shuō)明了TCP-BM協(xié)議的吞吐量比TCP Reno協(xié)議的吞吐量有所提高。
在傳統(tǒng)的TCP Reno協(xié)議的基礎(chǔ)上提出了一種適用于異構(gòu)網(wǎng)絡(luò)的TCP擁塞控制協(xié)議,該協(xié)議在慢啟動(dòng)階段根據(jù)往返時(shí)延值適當(dāng)調(diào)整擁塞窗口的增長(zhǎng)速度,在擁塞避免階段利用當(dāng)前的往返時(shí)延與往返時(shí)延的歷史值的比值來(lái)控制擁塞窗口的增加與減小,不但能充分利用網(wǎng)絡(luò)資源。經(jīng)過仿真驗(yàn)證,改進(jìn)后的TCP算法性能優(yōu)于傳統(tǒng)的TCP Reno協(xié)議。下一步工作是要進(jìn)一步改進(jìn)該算法,使之適用于更復(fù)雜的網(wǎng)絡(luò)環(huán)境。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 工業(yè)5G技術(shù)在智能制造中的應(yīng)用與實(shí)踐解析2025/12/31 10:57:21
- 工業(yè)以太網(wǎng)交換機(jī)選型與現(xiàn)場(chǎng)應(yīng)用技術(shù)指南2025/12/18 10:48:14
- 無(wú)線傳輸電路基礎(chǔ),射頻前端設(shè)計(jì)、天線匹配與鏈路預(yù)算計(jì)算2025/10/27 13:55:50
- ASK 解調(diào)的核心要點(diǎn)與實(shí)現(xiàn)方式2025/9/5 16:46:17
- 雙偶極子天線:結(jié)構(gòu)、特性與應(yīng)用全解析2025/9/3 10:29:21
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









