TCP連線的未來和效能

2021-12-29 16:24:18 字數 986 閱讀 5822

tcp連線的未來和效能

在tcp剛出世的時候,其主要工作環境是乙太網和slip之類的低速網路。隨著高速網路的出現,讓tcp協議的吞吐量更大,效率更高的要求就愈來愈迫切。為此,tcp增加了三個重要機制來對應現在的變化,他們是

路徑mtu發現。

視窗擴**項和時間戳。

t/tcp(增加了事務功能的tcp協議)。

1.路徑mtu發現

顧名思義路徑mtu指的是源主機到目的主機之間的路徑的可傳送最大單元的大小。其原理同樣是使用設定了不許分片的ip資料報,並等待icmp錯誤,來估算mtu的大小。書中的p257介紹了tcp如何根據icmp的報文來修改自己的mtu。具體如下:

當源主機接收到較新的icmp差錯報文時,就直接修改自己的最大傳送報文段大小為傳送icmp差錯報文的傳送端的mtu與ip頭和tcp頭的差值。

當源主機接收到較新的icmp差錯報文時,則必須嘗試下乙個mtu(各種不同的網路裝置都有乙個mtu,各個mtu從大到小為"65535,17914,4464,4352,1500,1492,576,296")。

因為路由可以動態變化,所以每隔10分鐘,傳送端就可以用比較大的報文來偵測一下路徑mtu。

2.長肥管道

所謂的長肥管道,說的就是傳送時延長,帶寬寬的管道,衡量這一概念的標準是時延面積。如果碰上了網路「又長又肥」,那麼網路的利用率就會大幅度的降低,普通的計時方法和視窗面積就不夠用了。就需要更多的措施來彌補這個缺陷。這就是時間戳和視窗擴**項。這些都是在經典tcp協議頭之外定義的擴充套件選項,格式如下:

2.1.時間戳選項

使用者在傳送每乙個tcp報文的時候都放置乙個時間戳,接受方在確認中返回這個時間戳值。傳送方就可以根據這個時間戳來計算rtt。從而使得rtt更加精確,減少不必要的重傳。減低網路的負載。

2.2.視窗擴**項

很奇怪的是為什麼視窗最大的擴充套件量只有14而不是64。因為畢竟視窗擴**項有乙個位元組那麼長的資料可以用,不過,不管怎麼樣,還是記住為好。視窗擴**項可以讓視窗擴大到2的30次方。這就幾乎完美的解決了肥管道的問題。

Android Http連線和TCP連線的區別

最近看到 裡提到某個架構選用tcp連線而不是http連線,意識到自己不知道這兩者的區別,遂查資料補一下知識。再用自己的話總結提煉一下 題目是android http連線和tcp連線的區別,因為我關注的使用場景是android環境,其實不管是android還是pc,應該都是一樣的。http是應用層協議...

TCP連線和斷開連線

4.4 tcp資料報結構 帶陰影的幾個字段需要重點說明一下 1 序號 seq sequence number 序號佔32位,用來標識從計算機a傳送到計算機b的資料報的序號,計算機傳送資料時對此進行標記。2 確認號 ack acknowledge number 確認號佔32位,客戶端和伺服器端都可以傳...

TCP的連線和斷開

1.tcp的三次握手連線 l請求端 通常稱為客戶端 傳送乙個syn段指名客戶端打算連線的伺服器的埠,以及初始序號。序號 3662298720確認序號 0 l伺服器端發回包含伺服器的初始序號的 syn段,同時對客戶端的序號進行加1作為應答 序號 1139382973,確認序號 3662298721 l...