TCP協議三次握手和四次揮手過程分析

2021-06-05 15:09:47 字數 2099 閱讀 2705

tcp(transmission control protocol) 傳輸控制協議

tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線:

位碼即tcp標誌位,有6種標示:syn(synchronous建立聯機) ack(acknowledgement 確認) psh(push傳送) fin(finish結束) rst(reset重置) urg(urgent緊急)

sequence number(順序號碼) acknowledge number(確認號碼)

第一次握手:主機a傳送位碼為syn=1,隨機產生seq number=1234567的資料報到伺服器,主機b由syn=1知道,a要求建立聯機;

第二次握手:主機b收到請求後要確認聯機資訊,向a傳送ack number=(主機a的seq+1),syn=1,ack=1,隨機產生seq=7654321的包

第三次握手:主機a收到後檢查ack number是否正確,即第一次傳送的seq number+1,以及位碼ack是否為1,若正確,主機a會再傳送ack number=(主機b的seq+1),ack=1,主機b收到後確認seq值與ack=1則連線建立成功。

完成三次握手,主機a與主機b開始傳送資料

**:

tcp連線建立

在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。

伺服器必須準備好接受外來的連線。這通過呼叫socket、 bind和listen函式來完成,稱為被動開啟(passive open)。

第一次握手:客戶通過呼叫connect進行主動開啟(active open)。這引起客戶tcp傳送乙個syn(表示同步)分節(syn=j),它告訴伺服器客戶將在連線中傳送到資料的初始序列號。並進入syn_send狀態,等待伺服器的確認。

第二次握手:伺服器必須確認客戶的syn,同時自己也得傳送乙個syn分節,它含有伺服器將在同一連線中傳送的資料的初始序列號。伺服器以單個位元組向客戶傳送syn和對客戶syn的ack(表示確認),此時伺服器進入syn_recv狀態。

第三次握手:客戶收到伺服器的syn+ack。向伺服器傳送確認分節,此分節傳送完畢,客戶伺服器進入established狀態,完成三次握手。

圖1:tcp握手建立連線

客戶端的初始序列號為j,而伺服器的初始序列號為k。在ack裡的確認號為傳送這個ack的一端所期待的下乙個序列號。因為syn只佔乙個位元組的序列號空間,所以每乙個syn的ack中的確認號都是相應的初始序列號加1,類似地,每乙個fin(表示結束)的ack中的確認號為fin的序列號加1。

完成三次握手,客戶端與伺服器開始傳送資料,在上述過程中還有一些重要概念。

未連線佇列:在三次握手協議中,伺服器維護乙個未連線佇列,該隊列為每個客戶端的syn包(syn=j)開設乙個條目,該條目表明伺服器已收到syn包,並向客戶發出確認,正在等待客戶端確認包。這些條目所標識的連線在伺服器處於syn_recv狀態,當伺服器收到客戶端確認包時,刪除該條目,伺服器進入established狀態。

tcp連線終止

tcp連線終止需四個分節。

圖2:tcp揮手關閉連線

第一次握手:某個應用程序首先呼叫close,我們稱這一端執行主動關閉。這一端的tcp於是傳送乙個fin分節,表示資料傳送完畢。

第二次握手:接收到fin的另一端執行被動關閉(passive close)。這個fin由tcp確認。它的接收也作為檔案結束符傳遞給接收端應用程序(放在已排隊等候應用程序接收到任何其他資料之後)。

第三次握手:一段時間後,接收到檔案結束符的應用程序將呼叫close關閉它的套介面。這導致它的tcp也傳送乙個fin。

第四次握手:接收到這個fin的原傳送端tcp對它進行確認。

面向位元組的資料傳送流(如tcp位元組流、unix管道等)也使用eof表示在某個方向上不再有資料待傳送。在tcp位元組流中,eof的讀或寫通過收發乙個特殊的fin分節來實現。

tcp協議三次握手 四次揮手

起初,伺服器和客戶端都為closed狀態。在通訊開始前,雙方都得建立各自的傳輸控制塊 tcb 伺服器建立完tcb後遍進入listen狀態,此時準備接收客戶端發來的連線請求。第一次握手 客戶端向服務端傳送連線請求報文段。該報文段的頭部中syn 1,ack 0,seq x。請求傳送後,客戶端便進入syn...

TCP協議三次握手四次揮手

1.什麼是tcp協議 tcp協議是作用在傳輸層的傳輸控制協議 tcp 提供一種面向連線的 可靠的位元組流服務 在乙個 tcp 連線中,僅有兩方進行彼此通訊。廣播和多播不能用於 tcp tcp 使用校驗和,確認和重傳機制來保證可靠傳輸 tcp 給資料分節進行排序,並使用累積確認保證資料的順序不變和非重...

TCP協議三次握手四次揮手

tcp有哪些過程?a.建立連線 b.資料傳輸 c.終止連線 tcp三次握手和四次揮手的過程?syn,ack是什麼?syn 請求建立連線 含有同步序列號的標誌位的資料,tcp建立連線時,將這個 位 置1 ack 針對syn的確認應答 fin是什麼?fin 傳送端完成傳送任務 位 當tcp完成資料傳輸需...