1. TCP的路徑MTU探測(cè)
(1)根據(jù)自身MTU及對(duì)方SYN中攜帶的MSS確定發(fā)送報(bào)文數(shù)據(jù)部分的最大容量(如果對(duì)方?jīng)]有指定MSS,,則默認(rèn)為536); TCP Path MTU探詢的好處是: 2. 長(zhǎng)肥管道 帶寬延時(shí)積很大的網(wǎng)絡(luò)叫做長(zhǎng)肥網(wǎng)絡(luò)(LFN, long fat network,,單位為字節(jié)), 在LFN上建立的TCP鏈接叫做長(zhǎng)肥管. 長(zhǎng)肥管道帶來(lái)的一些問(wèn)題: (1)長(zhǎng)肥管的帶寬延時(shí)積很大, TCP頭部的窗口大小字段只能最多聲明65535(2^16)字節(jié)大小的窗口, 因此不能充分利用網(wǎng)絡(luò), 由此提出了窗口擴(kuò)大選項(xiàng)以聲明更大的窗口. (2)由于長(zhǎng)肥管的延時(shí)較高, 出現(xiàn)丟包的情況會(huì)使得管道枯竭(即網(wǎng)絡(luò)通信速度急劇下降), 快重傳快恢復(fù)算法就是用以削弱這一問(wèn)題的影響, SACK選項(xiàng)也有使用. (3)為了提高長(zhǎng)肥管的吞吐量, 長(zhǎng)肥管一般聲明很大的窗口值, 而這樣不利于RTT的測(cè)量(因?yàn)門(mén)CP只有一個(gè)RTT計(jì)時(shí)器, 啟動(dòng)RTT計(jì)時(shí)的數(shù)據(jù)在沒(méi)有被ACK前, TCP無(wú)法進(jìn)行下一次RTT的測(cè)量, 而由于發(fā)送延時(shí)一般大于傳播延時(shí), 所以TCP往往是發(fā)送完一個(gè)窗口的數(shù)據(jù)計(jì)算一次RTT), 所以需要引入時(shí)間戳選項(xiàng)提高測(cè)試RTT的頻率. (4)由于長(zhǎng)肥管的發(fā)送速度非??? 所以導(dǎo)致很短時(shí)間內(nèi)數(shù)據(jù)的序號(hào)就會(huì)重復(fù)(在gigabit網(wǎng)絡(luò)只需要34秒就會(huì)出現(xiàn)序號(hào)重復(fù)). 因此引入PAWS算法應(yīng)對(duì)這種情況. 3. 窗口擴(kuò)大選項(xiàng) 使用窗口擴(kuò)大選項(xiàng)需要鏈接的兩端同時(shí)啟用這個(gè)選項(xiàng)(雙方的), 并且鏈接雙方聲明的擴(kuò)大偏移量不需要相等(不對(duì)稱(chēng)), 并且聲明后偏移量不能改變(固定). TCP遇到自己不支持的選項(xiàng)時(shí), 那么它會(huì)忽略這個(gè)選項(xiàng), 這么做是為了向一些老版本的TCP提供兼容. 所以如果一方A向另外一方B發(fā)送了窗口擴(kuò)大選項(xiàng), 如果B不支持這個(gè)選項(xiàng), 那么在B的回應(yīng)中就不會(huì)包含這個(gè)選項(xiàng), 而A就只能沿用老的窗口大小聲明方法. 4. 時(shí)間戳選項(xiàng) 時(shí)間戳選項(xiàng)的工作原理是向?qū)Ψ桨l(fā)送一個(gè)隨著時(shí)間單調(diào)遞增的值, 對(duì)方收到后在后續(xù)的ACK中的時(shí)間戳選項(xiàng)中的回應(yīng)段回應(yīng)相同的值, TCP記錄發(fā)送時(shí)間戳和收到回應(yīng)的時(shí)間, 從而獲得RTT. 時(shí)間戳選項(xiàng)需要占用12個(gè)字節(jié), 因?yàn)檫x項(xiàng)本身是10個(gè)字節(jié), 另外還要補(bǔ)充兩個(gè)nop使得協(xié)議長(zhǎng)度為4的倍數(shù)(12). 時(shí)間戳選項(xiàng)的建議增長(zhǎng)速度為1ms~1000ms/次. 時(shí)間戳的記錄方式為記錄第一個(gè)未被順序ACK的報(bào)文的時(shí)間戳的值, 在下一個(gè)ACK回應(yīng)這個(gè)值. 這么做的好處有二:
PAWS算法的本質(zhì)就是利用時(shí)間戳選項(xiàng)的單調(diào)遞增性來(lái)判斷相同報(bào)文的先后. PAWS算法不需要在發(fā)送方和接收方之間進(jìn)行任何形式的時(shí)間同步,。接收方所需要的就是時(shí)間戳的值單調(diào)遞增,,并且每個(gè)窗口至少增加1,。 6. T/TCP:為事務(wù)用的TCP擴(kuò)展 7. 鏈路, 內(nèi)存帶寬, 接收窗口大小都會(huì)影響到網(wǎng)絡(luò)的性能, 但是最終決定網(wǎng)絡(luò)速度的是窗口的大小和光的速度(也就是往返時(shí)間).
《TCP/IP詳解》 |
|
來(lái)自: xn00 > 《TCP/IP詳解》