計算機網路協議包頭賞析 TCP

2021-06-19 05:11:31 字數 1785 閱讀 4445

本原創文章屬於《linux大棚》部落格。

部落格位址為

文章作者為roc

仍然先把tcp報文段的格式放在這裡,然後我們看圖說話:

tcp報文段也分為首部和資料兩部分,首部預設情況下一般是20位元組長度,但在一些需求情況下,會使用「可選字段」,這時,首部長度會有所增加。

下面,我們仍然延續講解ip協議的思路,針對不同的域,分別進行講解:

【源埠】- 16bit

**處的埠號;

【目的埠】- 16bit

目的處的埠號;

【序號】- 32bit

每乙個tcp報文段都會有乙個序號,序號欄位的值其實是本報文段所傳送的資料的第乙個位元組的序號。這是因為tcp是面向連線的可靠服務,其每乙個位元組都會對應乙個序號,通過序號來確保服務的可靠性和有序性。

【確認號】- 32bit

【資料偏移】- 4bit

其實它本質上就是「首部長度」,因為「資料偏移」是指tcp報文段的資料部分的起始處距離tcp報文段的起始處的距離。(仍然很拗口,但相信你能明白)。

資料偏移總共佔4bit,因此最大能表示的數值為15。而資料偏移的單位是「4位元組」,此處的設計和ip資料報的設計是完全相同的,所以說tcp報文段首部的長度最長為15×4=60位元組,且首部長度必須為4位元組的整數倍。

【保留字段】- 6bit

這6bit在標準中是保留字段,我猜測,有兩個目的,第乙個是預留除urg/ack/psh/rst/syn/fin/之外的冗餘功能位;第二個是為了對其位元組位。

【緊急欄位urg】- 1bit

此欄位告訴系統此報文段中有緊急資料,應盡快傳送。當urg=1時,

【確認欄位ack】- 1bit

當ack=1時,表示確認,且確認號有效;當ack=0時,確認號字段無效。

【推送欄位psh】- 1bit

當psh=1時,則報文段會被盡快地交付給目的方,不會對這樣的報文段使用快取策略。

【復位欄位rst】- 1bit

當rst為1時,表明tcp連線中出現了嚴重的差錯,必須釋放連線,然後再重新建立連線。

【同步欄位syn】- 1bit

當syn=1時,表示發起乙個連線請求。

【終止欄位fin】- 1bit

用來釋放連線。當fin=1時,表明此報文段的傳送端的資料已傳送完成,並要求釋放連線。

【視窗字段】- 16bit

此欄位用來控制對方傳送的資料量,單位為位元組。

一般tcp連線的其中一端會根據自身的快取空間大小來確定自己的接收視窗大小,然後告知另一端以確定另一端的傳送視窗大小。

【校驗和字段】- 16bit

這個校驗和是針對首部和資料兩部分的。

【緊急指標字段】- 16bit

緊急指標指出在本報文段中的緊急資料的最後乙個位元組的序號。

ps:對於後面的選項字段,後續會安排單獨講解:)

謝謝!

計算機網路 TCP協議

tcp 傳送的資料單元稱為報文段。乙個 tcp 報文段分為 tcp 首部和 tcp 資料兩部分,整個 tcp 報文段作為 ip 資料報的資料部分封裝在 ip 資料報中,如圖所示 各欄位意義如下 tcp 是面向連線的協議,因此每個 tcp 連線都有三個階段 建立連線 資料傳送和連線釋放。tcp 連線的...

計算機網路 TCP協議

tcp協議是面向連線的協議,把連線作為最基本的抽象。每一條tcp連線唯一的被通訊兩端的兩個端點所確定。tcp協議是點對點,而不是點對多點。端點又被稱為套接字,tcp協議規定,ip位址拼接埠號就構成套接字。1 可靠資料運輸原理 1 tcp協議傳送兩種資料報,一種資料報用來傳輸資料,一種資料報用來傳送控...

計算機網路 協議

網路檔案服務 在nfs的應用中,本地nfs的客戶端應用可以透明地讀寫位於遠端nfs伺服器上的檔案,就像訪問本地檔案一樣。snmp network management protocol 簡單網路管理協議 能夠使網路管理員提高網路管理效能,及時發現並解決網路問題以及規劃網路的增長 smtp mail ...