TCP的建立和拆除

2021-05-22 22:08:13 字數 1785 閱讀 6233

tcp

建立過程

(三握手):

1.syn: a--->b

2.syn ack: b-->a

3.ack: a--->b

傳送端傳送乙個

syn=1

,ack=0

標誌的資料報給接收端,請求進行連線,這是第一次握手;接收端收到請求並且允許連線的話,就會傳送乙個

syn=1

,ack=1

標誌的資料報給傳送端,告訴它,可以通訊了,並且讓傳送端傳送乙個確認資料報,這是第二次握手;最後,傳送端傳送乙個

syn=0

,ack=1

的資料報給接收端,告訴它連線已被確認,這就是第三次握手。之後,乙個

tcp連線建立,開始通訊。

tcp拆除過程(四握手): 1.

fin ack: a--->b

2.ack: b-->a

3.fin ack: b-->a

4.ack: a--->b

syn:同步標誌

同步序列編號

(synchronize sequence numbers)

欄有效。該標誌僅在三次握手建立

tcp連線時有效。它提示

tcp連線的服務端檢查序列編號,該序列編號為

tcp連線初始端

(一般是客戶端

)的初始序列編號。在這裡,可以把

tcp序列編號看作是乙個範圍從0到

4,294,

967,

295的

32位計數器。通過

tcp連線交換的資料中每乙個位元組都經過序列編號。在

tcp報頭中的序列編號欄包括了

tcp分段中第乙個位元組的序列編號。

ack:確認標誌

確認編號

(acknowledgement number)

欄有效。大多數情況下該標誌位是置位的。

tcp報頭內的確認編號欄內包含的確認編號

(w+1

,figure-1)

為下乙個預期的序列編號,同時提示遠端系統已經成功接收所有資料。

rst:復位標誌

復位標誌有效。用於復位相應的

tcp連線。

有些時候用於緊急拆除

tcp連線。

urg:緊急標誌

緊急(the urgent pointer)

標誌有效。緊急標誌置位,

psh:推標誌

該標誌置位時,接收端不將該資料進行佇列處理,而是盡可能快將資料轉由應用處理。在處理

telnet

或rlogin

等互動模式的連線時,該標誌總是置位的。

有人提到:psh

psh ack

有什麼區別?無ack

psh

tcp

資料報,要求接收端盡可能快的上傳到應用層處理。估計telnet

使用的就是這種模式啦(沒有嘗試過).

fin:結束標誌

帶有該標誌置位的資料報用來結束乙個

tcp回話,但對應埠仍處於開放狀態,準備接收後續資料。

TCP建立連線和拆除連線的過程

2 tcp連線建立時三次握手的過程 圖示 文字說明 第一次握手 建立連線時,客戶端傳送syn包 seq x 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn包 seq y 即syn ack包,此時伺服...

TCP的建立和終止

先看看tcp的狀態變遷圖 tcp ip詳解上面的原圖,來自google 下面就圖中涉及到的問題做一些說明。下面是tcp連線建立與終止的時候的時序圖 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線 1 第一次握手 建立連線時,客戶端a傳送syn包 syn j 到伺服器b,...

TCP建立和終止

本文參考了 unix網路程式設計 主要內容分為以下兩部分 1 tcp客戶端和伺服器一些典型事件概述 2 tcp連線的建立和終止 1 1.1 tcp客戶端和伺服器一些典型事件時間表如下 connect函式出錯時主要有以下幾種情況 1 tcp客戶未收到syn分節的響應,返回etimedout 2 對客戶...