在TCP剛出世的時(shí)候,其主要工作環(huán)境是以太網(wǎng)和SLIP之類的低速網(wǎng)絡(luò)。隨著高速網(wǎng)絡(luò)的出現(xiàn),讓TCP協(xié)議的吞吐量更大,效率更高的要求就愈來愈迫切。為此,TCP增加了三個(gè)重要機(jī)制來對(duì)應(yīng)現(xiàn)在的變化,他們是
顧名思義路徑MTU指的是源主機(jī)到墓地主機(jī)之間的路徑的可傳送最大單元的大小。其原理同樣是使用設(shè)置了不許分片的IP數(shù)據(jù)報(bào),并等待ICMP錯(cuò)誤,來估算MTU的大小。書中的P257介紹了TCP如何根據(jù)ICMP的報(bào)文來修改自己的MTU。具體如下:
所謂的長肥管道,說的就是發(fā)送時(shí)延長,帶寬寬的管道,衡量這一概念的標(biāo)準(zhǔn)是時(shí)延面積。如果碰上了網(wǎng)絡(luò)“又長又肥”,那么網(wǎng)絡(luò)的利用率就會(huì)大幅度的降低,普通的計(jì)時(shí)方法和窗口面積就不夠用了。就需要更多的措施來彌補(bǔ)這個(gè)缺陷。這就是時(shí)間戳和窗口擴(kuò)大選項(xiàng)。這些都是在經(jīng)典TCP協(xié)議頭之外定義的擴(kuò)展選項(xiàng),格式如下:
用戶在發(fā)送每一個(gè)TCP報(bào)文的時(shí)候都放置一個(gè)時(shí)間戳,接受方在確認(rèn)中返回這個(gè)時(shí)間戳值。發(fā)送方就可以根據(jù)這個(gè)時(shí)間戳來計(jì)算RTT。從而使得RTT更加精確,減少不必要的重傳。減低網(wǎng)絡(luò)的負(fù)載。
很奇怪的是為什么窗口最大的擴(kuò)展量只有14而不是64。因?yàn)楫吘勾翱跀U(kuò)大選項(xiàng)有一個(gè)字節(jié)那么長的數(shù)據(jù)可以用,不過,不管怎么樣,還是記住為好。窗口擴(kuò)大選項(xiàng)可以讓窗口擴(kuò)大到2的30次方。這就幾乎完美的解決了肥管道的問題。
聯(lián)系客服