九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
TCP速率與窗口,帶寬,RTT之間的關(guān)系

轉(zhuǎn)自:http://blog.csdn.net/bad_sheep/article/details/6158676


以下部分內(nèi)容是自己的理解,可能會(huì)有差錯(cuò),如有發(fā)現(xiàn),歡迎指正。


窗口:
TCP是一個(gè)滑動(dòng)窗口協(xié)議,即一個(gè)TCP連接的發(fā)送端在某個(gè)時(shí)刻能發(fā)多少數(shù)據(jù)是由滑動(dòng)窗口控制的,而滑動(dòng)窗口的大小實(shí)際上是由兩個(gè)窗口共同決定的,一個(gè)是接收端的通告窗口,這個(gè)窗口值在TCP協(xié)議頭部信息中有,會(huì)隨著數(shù)據(jù)的ACK包發(fā)送給發(fā)送端,這個(gè)值表示的是在接收端的TCP協(xié)議緩存中還有多少剩余空間,發(fā)送端必須保證發(fā)送的數(shù)據(jù)不超過這個(gè)剩余空間以免造成緩沖區(qū)溢出,這個(gè)窗口是接收端用來進(jìn)行流量限制的,在傳輸過程中,通告窗口大小與接收端的進(jìn)程取出數(shù)據(jù)的快慢有關(guān)。另一個(gè)窗口是發(fā)送端的擁塞窗口(Congestion window),由發(fā)送端維護(hù)這個(gè)值,在協(xié)議頭部信息中沒有,滑動(dòng)窗口的大小就是通告窗口和擁塞窗口的較小值,所以擁塞窗口也看做是發(fā)送端用來進(jìn)行流量控制的窗口?;瑒?dòng)窗口的左邊沿向右移動(dòng)稱為窗口合攏,發(fā)生在發(fā)送的數(shù)據(jù)被確認(rèn)時(shí)(此時(shí),表明數(shù)據(jù)已被接收端收到,不會(huì)再被需要重傳,可以從發(fā)送端的發(fā)送緩存中清除了),滑動(dòng)窗口的右邊沿向右移動(dòng)稱為窗口張開,發(fā)生在接收進(jìn)程從接收端協(xié)議緩存中取出數(shù)據(jù)時(shí)。隨著發(fā)送端不斷收到的被發(fā)送數(shù)據(jù)的ACK包,根據(jù)ACK包中的確認(rèn)序號(hào)和通告窗口大小使滑動(dòng)窗口得以不斷的合攏和張開,形成滑動(dòng)窗口的向前滑動(dòng)。如果接收進(jìn)程一直不取數(shù)據(jù),則會(huì)出現(xiàn)0窗口現(xiàn)象,即滑動(dòng)窗口左邊沿與右邊沿重合,此時(shí)窗口大小為0,就無法再發(fā)送數(shù)據(jù)。

下面附一個(gè)TCP協(xié)議頭的格式和滑動(dòng)窗口的示意圖(截自TCPIP協(xié)議詳解):

 

                                                  圖1.TCP頭部結(jié)構(gòu)

 

                                                圖2.滑動(dòng)窗口示意圖

 

 

帶寬:
這里帶寬是指單位時(shí)間內(nèi)從發(fā)送端到接收端所能通過的“最高數(shù)據(jù)率”,是一種硬件限制。TCP發(fā)送端和接收端的數(shù)據(jù)傳輸數(shù)率不可能超過兩點(diǎn)間的帶寬限制。

 

RTT:
即Round Trip Time,表示從發(fā)送端到接收端的一去一回需要的時(shí)間,tcp在數(shù)據(jù)傳輸過程中會(huì)對(duì)RTT進(jìn)行采樣(即對(duì)發(fā)送的數(shù)據(jù)包及其ACK的時(shí)間差進(jìn)行測量,并根據(jù)測量值更新RTT值,具體的算法TCPIP詳解里面有),TCP根據(jù)得到的RTT值更新RTO值,即Retransmission TimeOut,就是重傳間隔,發(fā)送端對(duì)每個(gè)發(fā)出的數(shù)據(jù)包進(jìn)行計(jì)時(shí),如果在RTO時(shí)間內(nèi)沒有收到所發(fā)出的數(shù)據(jù)包的對(duì)應(yīng)ACK,則任務(wù)數(shù)據(jù)包丟失,將重傳數(shù)據(jù)。一般RTO值都比采樣得到的RTT值要大。

 

帶寬時(shí)延乘積:
帶寬時(shí)延乘積=帶寬*RTT,實(shí)際上等于發(fā)送端到接收端單向通道的數(shù)據(jù)容積的兩倍,這里單向通道的數(shù)據(jù)容積可以這樣來理解,單向通道看成是一條單行道馬路,帶寬就是馬路的車道數(shù),路上跑的汽車就是數(shù)據(jù)(不過這里所有汽車的速率都是一樣的,且不會(huì)有人想超車,大家齊頭并進(jìn)),那么單向通道的數(shù)據(jù)容積就是這條單行道上擺滿車,一共可以擺多少輛。當(dāng)路面上已經(jīng)擺滿的時(shí)候,就不能再往里面放了。這里順便再說一下發(fā)送時(shí)延和傳播時(shí)延的差別,單位數(shù)據(jù)量發(fā)送時(shí)延是由帶寬決定的,就是帶寬的倒數(shù),以馬路來類比,比如有10輛車,如果車道數(shù)為1,那么這10輛車只能首尾相接的順序上路,從第一輛車的車頭到最后一輛車的車尾可以看作是發(fā)送時(shí)延,此時(shí)就是10輛車的車長,如果把車道數(shù)改成10,那么這10輛車可以并排上路,發(fā)送時(shí)延就變成了一輛車的車長了,由此可見,帶寬越高,則發(fā)送時(shí)延越短,反之則反。傳播時(shí)延則是由電的傳播速度(可以看做是一個(gè))常量以及發(fā)送和接收端線路的物理長度決定的,比如從美國到中國,傳播時(shí)延就很大,而一個(gè)局域網(wǎng)內(nèi)部,傳播時(shí)延就很小。因?yàn)榘l(fā)送時(shí)延是與數(shù)據(jù)量大小有關(guān)系的,RTT其實(shí)只是考慮傳播時(shí)延。

 

 

 

介紹了上面的概念后,現(xiàn)在再來看看TCP發(fā)送數(shù)據(jù)時(shí),其速率和這些有什么關(guān)系,下邊用一些符號(hào)表示前面提到過的值,
設(shè)滑動(dòng)窗口大小為W, 發(fā)送端和接收端的帶寬為B, RTT為Tr。


前面已經(jīng)說過了,TCP發(fā)送數(shù)據(jù)時(shí)受滑動(dòng)窗口的限制,當(dāng)TCP將滑動(dòng)窗口中的數(shù)據(jù)都發(fā)出后,在收到第一個(gè)ACK之前,滑動(dòng)窗口大小是0,不能再發(fā)送數(shù)據(jù)了,必須等待ACK包使滑動(dòng)窗口移動(dòng)。那么在理想情況下,ACK包應(yīng)該在什么時(shí)候到達(dá)呢?顯然,就是在數(shù)據(jù)發(fā)出后的RTT時(shí)間后,ACK包到達(dá)。這也就是說,現(xiàn)在在不考慮丟包和擁塞情況下,TCP在一個(gè)RTT時(shí)間內(nèi)能發(fā)出的最大數(shù)據(jù)量為W,所以不考慮帶寬限制下,TCP能一個(gè)時(shí)刻能達(dá)到的最大速度是 V = W/Tr


由此可以看出,如果假設(shè)Tr是一個(gè)定值,那么決定TCP速率的唯一因素就是TCP的滑動(dòng)窗口大小。現(xiàn)在再考慮帶寬限制,前面說過當(dāng)馬路上擺滿車的時(shí)候,就無法再往里放車了,同理,TCP發(fā)送端在Tr/2時(shí)間內(nèi),能往通道上放的數(shù)據(jù)量為 V*Tr/2,當(dāng) V*Tr/2<=B*Tr/2時(shí),單向通道容積不構(gòu)成瓶頸,速率的限制主要來源于窗口大小限制。而當(dāng)V*Tr/2>B*Tr/2時(shí),則就受到容積限制,即此時(shí)速率限制來源于帶寬限制。
把V*Tr/2<=B*Tr/2和V*Tr/2>B*Tr/2兩邊的Tr/2約掉,再把V = W/Tr代入,則可以得到 :

 

W <= B*Tr 及 W > B*Tr


B*Tr就是帶寬時(shí)延乘積,取W為TCP能支持窗口的最大值Wmax,當(dāng)Wmax <= B*Tr時(shí),此時(shí)發(fā)送和接收端之間的通道就是所謂的長肥管道,即帶寬時(shí)延乘積大的通道。在我們平時(shí)生活中使用的寬帶網(wǎng)絡(luò),ADSL等環(huán)境下,因?yàn)閹挾急容^小,從而B*Tr也比較小,再加上網(wǎng)絡(luò)情況比較復(fù)雜,擁塞情況比較常見,所以這些網(wǎng)絡(luò)環(huán)境下,TCP速率的主要限制因素在于帶寬,丟包率等。長肥管道一般不太常見,多見于一些單位使用的專線網(wǎng)絡(luò),在這些網(wǎng)絡(luò)中速率的主要限制因素就是窗口大小了,這也是傳統(tǒng)TCP在這些網(wǎng)絡(luò)環(huán)境中不能充分利用帶寬的原因所在(因?yàn)閭鹘y(tǒng)TCP的窗口大小是用2字節(jié)表示的,所以最大只有65535(不考慮窗口擴(kuò)大選項(xiàng))),除了專線網(wǎng)絡(luò)外,隨著網(wǎng)絡(luò)硬件技術(shù)的發(fā)展,萬兆交換機(jī)的出現(xiàn),局域網(wǎng)中也可能會(huì)出現(xiàn)帶寬時(shí)延乘積較大的情況。

 

 

總結(jié),在W<B*Tr時(shí),影響TCP發(fā)送數(shù)據(jù)速率的最直接的因素是滑動(dòng)窗口的大小,TCP的流量控制策略(比如超時(shí)時(shí)窗口設(shè)置為1,重復(fù)ACK時(shí)窗口減半)最終都是通過控制窗口大小來控制速率,而慢啟動(dòng),擁塞避免這些流量控制算法實(shí)際上就是控制窗口增長方式的算法,也就是控制的是加速度大小。當(dāng)W>B*Tr時(shí),則影響速率的因素就是帶寬了。
現(xiàn)在出現(xiàn)很多基于UDP的可靠傳輸技術(shù),因?yàn)閁DP在IP的上層除了加了端口號(hào)之外基本上沒做其他什么事,所以提供給應(yīng)用層控制的空間就很大,這些技術(shù)也大致都是通過在應(yīng)用層添加可靠性保證,并擴(kuò)大窗口大小和改變流量控制策略來克服傳統(tǒng)TCP的缺點(diǎn)。

 

BTW,開源項(xiàng)目UDT其實(shí)是個(gè)好東西,也是基于UDP的可靠傳輸,還沒來得及深入研究。但是看了下文檔知道它給外部提供了流量控制策略定制化接口,這點(diǎn)很好,留給了使用者相當(dāng)大的靈活性,有時(shí)間要研究研究。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
深入理解 TCP 擁塞控制
HTTP請(qǐng)求的TCP瓶頸分析 // 灰主流創(chuàng)業(yè)者
tcpip詳解筆記(17) TCP的成塊數(shù)據(jù)流
TCP擁塞控制算法
新一代直播傳輸協(xié)議SRT
TCP 擁塞避免算法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服