基礎教程 TCP連線的建立和釋放 1

2021-12-29 20:52:57 字數 1545 閱讀 4499

tcp首部格式

先看tcp報文段的格式,如下;

tcp報文段首部的前20個位元組是固定的,後面有4n位元組是根據需要而增加的選項。因此tcp報文段的最小長度為20個位元組。

首部固定部分的各字段的意義如下:

1、源埠和目的埠:加上ip首部的源ip位址和目的ip位址,確定唯一的乙個tcp連線。另外通過目的埠來決定tcp將資料報交付於那個應用程式,從而實現tcp的分用功能。

2、序號:佔4個位元組,序號的範圍為[0,4284967296]。由於tcp是面向位元組流的,在乙個tcp連線中傳送的位元組流中的每乙個位元組都按順序編號,首部中的序號欄位則是指本報文段所傳送的資料的第乙個位元組的序號。另外,序號是迴圈使用的,當序號增加到最大值時,下乙個序號就又回到了0。

3、確認號:當ack標誌位為1時有效,表示期望收到的下乙個報文段的第乙個資料位元組的序號。確認號為n,則表明到序號n-1為止的所有資料位元組都已經被正確地接收到了。

4、頭部長度:tcp報文段的頭部長度,它指出tcp報文段的資料部分的起始位置與tcp報文段的起始位置的距離。頭部長度佔4個位元組,但它的單位是32位字,即以4位元組為計算單位,因此頭部長度的最大值為15*4=60個位元組,這就意味著選項的長度不超過40個位元組。

5、保留位:必須為0.

6、下面的六個控制位說明報文段的性質:

1)urg:與首部中的緊急指標字段配合使用。urg為1時,表明緊急指標字段有效,傳送應用程序告訴傳送方的tcp有緊急資料要傳送,於是傳送方tcp就把緊急資料插入到本報文段資料的最前面,而其後面仍是普通資料。

2)ack:僅當ack=1時確認號字段才有效,當ack=0時,確認號無效。tcp規定,在連線建立後所有的傳送報文段都必須把ack置1。

3)psh:如果傳送的報文段中psh為1,則接收方接受到該報文段後,直接將其交付給應用程序,而不再等待整個快取都填滿後再向上交付。

4)rst:復位標誌,rst=1時,表明tcp連線**現嚴重差錯,必須釋放連線,然後重新建立運輸連線。

5)syn:同步序號,用來發起乙個連線。當syn=1而ack=0時,表明這是乙個連線請求報文段,若對方同意建立連線,則應在響應的報文段中使syn=1和ack=1。

6)fin:用來釋放乙個連線。當fin=1時,表明此報文段的傳送方的資料已傳送完畢,並要求釋放連線。

7、視窗:接收方讓傳送方下次傳送報文段時設定的傳送視窗的大小。

8、校驗和:校驗的字段範圍包括首部和資料這兩部分。

9、緊急指標:緊急指標當urg=1時才有效,它指出本報文段中的緊急資料的位元組數。值得注意的是,即使視窗為0時,也可傳送緊急資料。

10、選項與填充:選項應該為4位元組的整數倍,否則用0填充。最常見的可選字段是最長報文大小mss(maximum segment size),每個連線方通常都在通訊的第乙個報文段中指明這個選項。它指明本端所能接收的最大長度的報文段。該選項如果不設定,預設為536(20+20+536=576位元組的ip資料報),其中ip首部和tcp首部各20個位元組,而internet 上標準的mtu (最小)為576b。

TCP連線建立和釋放

cp是面向連線的運輸層協議,它提供可靠交付的 全雙工的 面向位元組流的點對點服務。http協議便是基於tcp協議實現的。雖然作為應用層協議,http協議並沒有明確要求必須使用tcp協議作為運輸層協議,但是因為http協議對可靠性的的要求,預設http是基於tcp協議的。若是使用udp這種不可靠的 盡...

TCP建立連線與釋放連線

tcp建立連線與釋放連線 tcp建立連線與釋放連線 最近複習準備 計算機網路 考試,感覺tcp協議建立連線與釋放連線這兩個過程比較重要,所以把自己理解的部分寫下來。1.建立連線 三次握手 1 客戶端傳送乙個syn包給伺服器,然後等待應答。2 伺服器端回應給客戶端乙個ack 1 syn 1的tcp資料...

TCP建立連線與釋放連線

tcp建立連線與釋放連線 最近複習準備 計算機網路 考試,感覺tcp協議建立連線與釋放連線這兩個過程比較重要,所以把自己理解的部分寫下來。1.建立連線 三次握手 1 客戶端傳送乙個syn包給伺服器,然後等待應答。2 伺服器端回應給客戶端乙個ack 1 syn 1的tcp資料段。3 客戶必須再次回應伺...