TCP傳輸協議詳解

2021-09-24 07:35:23 字數 829 閱讀 5312

最近重讀的 stevens 老先生的tcp/ip詳解,梳理了一下,打算把自己理解的寫出來。

tcp/ip是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議,它會保證資料不丟包、不亂序。tcp全名是transmission control protocol,它是位於網路osi模型中的第四層(transport layer)。

tcp的建立連線之前寫過一篇文章,所以就不在這裡細贅了,我們直接聊tcp資料傳輸中如何保證資料的傳輸順序和丟包問題的,以及怎麼提高tcp傳輸的吞吐量。

下面看一張tcp視窗滑動的示意圖:

tcp不僅可以可以控制端到端的資料傳輸,還可以對網路上的傳輸進行監控。這使得tcp非常強大智慧型,它會根據網路情況來調整自己的收發速度。網路順暢時就可以發的快,擁塞時就發的相對慢一些。擁塞控制演算法主要有四種:慢啟動,擁塞避免,快速重傳和快速恢復。

在該圖中我們可以清楚的看到,ssthresh最初等於8 mss 。 擁塞視窗在慢啟動期間以指數方式快速上公升並在第三次傳輸時達到ssthresh。 然後,擁塞視窗線性地爬公升,直到發生丟失(超時),就在傳送7之後。當發生丟失時,擁塞視窗是12 mss 。 然後將ssthresh設定為6 mss並且將cwnd設定為1,並且該過程繼續。

本來打算以最少的文字去解釋tcp,但是並不是很成功。tcp發展至今已經有幾十年了,其中的技術點都可以出好幾本書了。你可以把它當個索引,快速瀏覽一遍。下面我列一下在寫這篇文章時參考的文件,都很不錯,值得一讀。

tcp congestion control

transmission control protocol

tcp sliding window

tcp/ip guide

rfc 5681

傳輸協議 TCP

一tcp可靠資料傳輸 1 封裝tcp報文段 2 發出報文後啟動乙個計時器 3 通過校驗和發現資料差錯 4 通過序號重新排序,丟棄重複報文 5 流量控制 tcp的可靠傳說實現機制包括差錯編碼 確認 序號 重傳 計時器等 tcp的可靠資料傳輸是基於滑動視窗協議,但是傳送的視窗大小動態變化 二tcp流量控...

TCP 傳輸控制協議

推薦 tcp ip 簡直是程式設計師的福音 tcp 協議是 面向連線的,可靠的,流傳輸,協議。流 是指 不間斷 的資料結構,可以想象成排水管道中的水流。當應用程式採用 tcp 傳送訊息的時候,雖然可以保證傳送的順序,但是還是猶如沒有任何間隔的資料流,傳送給接收端。可以這麼理解 在傳送端,應用程式傳送...

TCP傳輸控制協議

tcp是網際網路中的傳輸層協議,使用三次握手協議建立連線。當主動方發出syn連線請求後,等待對方回答syn ack 1 並最終對對方的 syn 執行 ack 確認。這種建立連線的方法可以防止產生錯誤的連線,tcp使用的流量控制協議是可變大小的滑動視窗協議 tcp三次握手的過程如下 客戶端傳送syn ...