TCP三次握手

2021-09-29 13:50:58 字數 910 閱讀 6053

1、剛開始客戶端和服務端都處於closed狀態,服務端先監聽某個埠,處於listen狀態;

2、客戶端主動發起連線請求syn=1,ack=0,初始序號為x,之後處於syn-sent狀態;

3、服務端收到發起的連線請求,如果同意連線就返回syn=1,ack=1,確認號為 x+1,同時也選擇乙個初始的序號 y,之後處於syn-rcvd狀態;

4、客戶端收到服務端傳送的syn和ack之後,傳送ack的ack,確認號為 y+1,序號為 x+1。之後處於established狀態,因為它一發一收成功了;

5、服務端收到ack的ack之後,處於established狀態,因為它也一發一收了。

在乙個網路環境不可靠的情況下,a發出乙個連線請求,發出乙個請求杳無音信就會一直發,終於有乙個包到b了,但是a還不知道會繼續發;

收到a的請求之後,b如果同意連線就會傳送應答包給a;但是b的應答包也是一入網路深似海啊,不知道能不能到a,所以當然不能認為和a已經建立了連線;

還有乙個問題就是,a和b建立起短暫的連線通訊之後,a之前傳送的請求包饒了地球不知道多少圈竟然又到了b,假如b認為這是乙個正常的連線請求,同意建立連線,但這個連線不會進行下去,也沒有個終結的時候,純屬單相思了,因而兩次握手肯定不行。

b傳送的應答可能會傳送多次,但是只要一次到達a,a就認為連線已經建立了,因為對於a來講,他的訊息有去有回。a會給b傳送應答之應答,而b也在等這個訊息,才能確認連線的建立,只有等到了這個訊息,對於b來講,才算它的訊息有去有回。

當然a發給b的應答之應答也會丟,也會繞路,甚至b掛了。按理來說,還應該有個應答之應答之應答,這樣下去就沒底了。四次握手、還是四十次握手都是可以的,哪怕四百次握手也不能百分百保證可靠,只要雙方的訊息都有去有回就可以了。

tcp三次握手 TCP 三次握手總結

tcp特點概述 tcp segment structure 段結構 step2 server host receives syn,replie with syn ack segment 答覆syn ack報文段 step3 client receives synack,replies with ac...

TCP 三次握手

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

TCP三次握手

1.伺服器準備好接受外來連線。passive open 被動開啟 需呼叫 socket bind listen 函式來完成。2.客戶端通過呼叫 connect 主動開啟 active open 這使得客戶 tcp傳送乙個 syn 表示同步 分節,這個分節告訴伺服器,客戶端將在待建立的連線中傳送的資料...