日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

一個nagel算法的例子,Nagle算法

TCP的傳輸策略是什么?

一個nagel算法的例子,Nagle算法


window size流控過程:TCP是以數(shù)據(jù)段的形式傳輸數(shù)據(jù)的,一個數(shù)據(jù)段包含很多個字節(jié),相當于批量傳輸為避免大量數(shù)據(jù)淹沒接收方,采用流控技術(shù),利用的是段頭中的一個字段叫窗口尺寸(window size)一個簡單例子從上往下過程:sender發(fā)送了一個2K的數(shù)據(jù),因為SEQ=0,所以這個2K的字節(jié)編號是從0一直到2047這個數(shù)據(jù)到達receiver之后receiver的內(nèi)存就被占據(jù)了一半,還剩下2K,所以這個接收方會回發(fā)一個確認:ACK=2048,WIN=2048,分別表示(累計)確認和剩下空間的大小sender再次發(fā)送了一個2K的數(shù)據(jù),接收方的緩存全部被充滿,會發(fā)確認:ACK=4096,WIN=0過一段時間接收方對緩存里面的數(shù)據(jù)進行了處理,從而空出了2K的空間,于是它馬上發(fā)送了一個更新窗口,當然,這個更新窗口數(shù)據(jù)段里面WIN=2048,而中間因為沒有再接受數(shù)據(jù)所以ACK=4096不變……別忘了TCP傳輸是雙工的,也就是說sender/receiver可以交換,它們可以互為收發(fā)方一些發(fā)送策略:當窗口數(shù)為0時發(fā)送者不能正常發(fā)送數(shù)據(jù)段,除非發(fā)送緊急(Urgent)數(shù)據(jù)(例如用戶想殺掉遠端機器上的進程的時候)發(fā)送者可以發(fā)送一個字節(jié)的數(shù)據(jù)段,以便讓接收者再次發(fā)送期待接收的字節(jié)號和窗口數(shù)(避免死鎖)發(fā)送者不需要馬上發(fā)送應(yīng)用程序產(chǎn)生的數(shù)據(jù),接收者也不需要馬上發(fā)送應(yīng)答(當收到數(shù)據(jù)的時候)接收方/發(fā)送方的優(yōu)化遠程交互telnet的最壞情形圖示:優(yōu)化方法:接收端可以推遲500ms發(fā)送確認分組和窗口更新窗口,以便可以免費搭載在處理后的回顯分組內(nèi)(free ride)發(fā)送端優(yōu)化Nagle算法當數(shù)據(jù)以一次一字節(jié)的速度到達的時候,只發(fā)送第一個字節(jié),然后將后續(xù)的字節(jié)緩存起來,直到發(fā)出的字節(jié)得到確認將緩存起來的字節(jié)在一個數(shù)據(jù)段中發(fā)出,再繼續(xù)緩存,直到發(fā)出的數(shù)據(jù)得到確認Nagle算法在很多TCP上實現(xiàn),但是有些時候最好禁用,例如當一個X-Windows應(yīng)用在互聯(lián)網(wǎng)運行的時候,鼠標的移動事件必須發(fā)送給遠程計算機,把這些移動事件收集起來一批一批發(fā)送出去,使得鼠標的移動極不連貫傻瓜窗口綜合癥有大塊數(shù)據(jù)被傳遞給發(fā)送端TCP實體,然而接收端的交互式應(yīng)用每次只讀取一個字節(jié)的時候,如下Clark解決方案 :阻止接收方發(fā)送只有1個字節(jié)的窗口更新,它必須等待一段時間,當有了一定數(shù)量的空間之后再告訴發(fā)送方總結(jié) 。
TCP到底怎樣流量控制的?
一個nagel算法的例子,Nagle算法


所謂流量控制就是讓發(fā)送發(fā)送速率不要過快,讓接收方來得及接收 。利用滑動窗口機制就可以實施流量控制 。原理這就是運用TCP報文段中的窗口大小字段來控制,發(fā)送方的發(fā)送窗口不可以大于接收方發(fā)回的窗口大小 ??紤]一種特殊的情況,就是接收方若沒有緩存足夠使用,就會發(fā)送零窗口大小的報文,此時發(fā)送放將發(fā)送窗口設(shè)置為0,停止發(fā)送數(shù)據(jù) 。
之后接收方有足夠的緩存,發(fā)送了非零窗口大小的報文,但是這個報文在中途丟失的,那么發(fā)送方的發(fā)送窗口就一直為零導致死鎖 。解決這個問題,TCP為每一個連接設(shè)置一個持續(xù)計時器(persistence timer) 。只要TCP的一方收到對方的零窗口通知,就啟動該計時器,周期性的發(fā)送一個零窗口探測報文段 。對方就在確認這個報文的時候給出現(xiàn)在的窗口大?。ㄗ⒁猓篢CP規(guī)定,即使設(shè)置為零窗口,也必須接收以下幾種報文段:零窗口探測報文段、確認報文段和攜帶緊急數(shù)據(jù)的報文段) 。
TCP原理應(yīng)用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)?、?位字節(jié)表示的數(shù)據(jù)流,然后TCP把數(shù)據(jù)流分區(qū)成適當長度的報文段(通常受該計算機連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的最大傳輸單元(MTU)的限制) 。之后TCP把結(jié)果包傳給IP層,由它來通過網(wǎng)絡(luò)將包傳送給接收端實體的TCP層 。TCP為了保證不發(fā)生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收 。

推薦閱讀