TCP三次握手四次揮手

2021-09-24 10:36:04 字數 1917 閱讀 8446

客戶端:主動開啟連線

服務端:被動開啟連線

客戶端向伺服器傳送同步請求報文段(不攜帶資料):syn=1,seq=x(選擇1個初始序列號);客戶端進入syn-sent狀態

伺服器接收到請求報文段之後,向客戶端傳送同步確認報文段(不攜帶資料):syn=1,ack=1,seq=y(選擇1個初始序列號),ack=x+1(確認收到x序列號);伺服器端進入syn-rcvd狀態

客戶端收到同步確認報文段之後,向伺服器端傳送確認報文段(可以攜帶資料):ack=1,seq=x+1,ack=y+1(確認收到y序列號);客戶端和伺服器進入established狀態,完成3次握手。

1.為了初始化sequence number的初始值(上面的x和y),通訊雙方要互相通知對方子集初始化的sequence number,作為以後資料通訊的序號,保證應用層接受到的資料不會因為網路上的傳輸問題而亂序(tcp會根據序號拼接資料)。

客戶端:主動開啟連線

服務端:被動開啟連線

客戶端向伺服器傳送請求終止報文段(停止傳送資料):fin=1,seq=u(之前最後傳輸位元組序號+1);客戶端進入fin-wait-1狀態

伺服器接收到連線釋放報文段之後,向客戶端傳送確認報文段(不攜帶資料):ack=1,seq=v,ack=u+1(確認收到u序列號);伺服器端進入close-wait狀態(半關閉),通知高層的應用程序:客戶端要釋放與伺服器端的tcp連線了。客戶端收到確認報文段之後,進入fin-wait-2狀態:等待伺服器傳送確認終止報文。

伺服器將資料傳送完畢後,向客戶端傳送確認終止報文:fin=1,ack=1,seq=w(半關閉狀態,伺服器可能傳送了一些資料,假定此時序號為w),ack=u+1;伺服器端進入last-ack狀態,等待客戶端的最終確認。

客戶端接收到確認終止報文之後,向伺服器傳送確認報文段:ack=1,seq=u+1,ack=w+1;客戶端進入time-wait狀態(此時客戶端的tcp連線還沒有釋放),等待2msl(最長報文段壽命)時間之後,連線才真正的釋放closed。

伺服器端只要收到客戶端的確認,立即closed狀態。

客戶端傳送fin報文之後,伺服器沒有進一步傳送連線釋放報文 :程式沒有檢測到,或者程式忘了關閉連線。

TCP三次握手 四次揮手

tcp 三次握手 tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程 1.客戶端向伺服器傳送乙個syn置位的tcp報文,其中包含連線的初始序列號x和乙個視窗大小 表示客戶端上用來...

TCP三次握手 四次揮手

服務端的tcp程序先建立傳輸控制塊tcb,準備接受客戶端程序的連線請求,然後服務端程序處於listen狀態,等待客戶端的連線請求,如有,則作出響應。1 客戶端的tcp程序也首先建立傳輸控制模組tcb,然後向服務端發出連線請求報文段,該報文段首部中的syn 1,ack 0,同時選擇乙個初始序號seq ...

TCP三次握手四次揮手

tcp transmission control protocol 傳輸控制協議 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線。位碼即tcp標誌位,有6種標誌 urg urgent緊急 ack acknowledgement 確認 psh push傳送 rst...