建立連線
資料傳輸
連線釋放
////
////
////
////
////
////
////
////
////
////
////
///////
建立連線
seq=
5000,ack=
0,syn=
1seq就是傳送第乙個位元組的序號
seq=
8000 ackn=
5001 syn=
1,ack=
1seq是目標回訊息的第乙個位元組的序號
ackn期待下乙個要傳送位元組的起始序列號
seq=
5000 ackn=
5001 syn=
0,ack=
1你懂得
記住seq是自己傳送位元組的第乙個序列號
和其他沒有任何關係
ackn有關係
第三次握手看起來優點多餘、其實一點也不多餘
如果沒有第三次,第二次握手中間假如出現一些失敗,那麼伺服器可能會認為已經建立成功
然後為其分配資源
////
////
////
////
////
////
////
////
////
////
////
////
////
/資料傳輸
給你我的第乙個位元組序列在x+
1,我想要你的y+
1序列---
> x+
1 y+
1給你我的y+
1序列處,我想要你的x+
101處序列--
-< y+
1 x+
101
後面自己推--
-> x+
101 y+
101---
< y+
101 x+
201等等
這一過程稱為累計確認,他不是只發乙個位元組進行確認
////
////
////
////
////
////
////
////
////
////
////
////
////
/連線釋放
fin=
1,ack=1-
---> a:沒有資料了
ack=1-
---< b:好的
fin=
1,ack=1-
---< b:我也沒資料了
ack=1-
---> a:好的
TCP 協議 三次握手 四次揮手 資料傳輸
為什麼要三次握手 在一次溝通過程中,當然是要兩方的,我們就來甲乙好了 甲說 hi!乙如果沒聽到,或者中途斷了,那麼乙根本不知道甲要和他溝通 甲也不知道乙沒有聽到 所以一次握手是不行的 甲說 hi 乙說 hi 同樣的,甲知道乙收到了,但是乙不知道甲收到沒有,只是單向的建立了連線 那麼四次呢,甲2次知道...
三次握手和四次揮手
三次握手和四次揮手如圖所示 為什麼是三次握手而不是兩次 因為當客戶端第傳送syn到服務端的時候,如果有幾次請求是因為網路等原因延時等情況的時候,如果沒有第三次握手的確定。服務端就會認為客戶端重寫傳送請求了,就會去開啟連線相應。為什麼關閉連線的時候是四次握手而不是三次?當客戶端傳送請求關閉連線的時候,...
三次握手和四次揮手
tcp三次握手和四次揮手的全過程 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線 位碼即tcp標誌位,有6種表示 syn synchronous建立連線 ack acknowledgement 表示響應 確認 psh push表示有data資料傳輸 fin fi...