因為tcp連線是雙向的,因此需要四個包的傳輸,才能保證雙方向的連線都能關閉
由服務端發出要關閉連線,傳送syn+ack+fin(syn=2fbb ae27,ack=a2e8 a508)
15:20:21.352228 00:22:19:4f:7c:f2 > 00:22:19:4f:7a:09, ethertype ipv4 (0x0800), length 54: ip localhost.localdomain.9900 > 192.168.20.17.2513: f 800828967:800828967(0) ack 2733155592 win 6816
0x0000: 4500 0028 42a8 4000 4006 2fbd c0a8 3309 e..(b.@.@./...3.
0x0010: c0a8 1411 26ac 09d1 2fbb ae27 a2e8 a508 ....&.../..'....
0x0020: 5011 1aa0 7677 0000 p...vw..
code位為:010001,傳送ack+fin位
客戶端接收到上述包,向伺服器端傳送ack位(syn=a2e8 a508,ack=2fbb ae28)
15:20:21.355614 00:22:19:4f:7a:09 > 00:22:19:4f:7c:f2, ethertype ipv4 (0x0800), length 60: ip 192.168.20.17.2513 > localhost.localdomain.9900: . ack 800828968 win 65332
0x0000: 4500 0028 aca4 4000 7b06 8ac0 c0a8 1411 e..(..@.{.......
0x0010: c0a8 3309 09d1 26ac a2e8 a508 2fbb ae28 ..3...&...../..(
0x0020: 5010 ff34 91e2 0000 0000 0000 0000 p..4..........
code位為:010000,傳送ack位
此時,由伺服器到客戶端的連線關閉
由客戶端向伺服器傳送syn+ack+fin(syn=a2e8 a508,ack=2fbb ae28)
15:20:21.455779 00:22:19:4f:7a:09 > 00:22:19:4f:7c:f2, ethertype ipv4 (0x0800), length 60: ip 192.168.20.17.2513 > localhost.localdomain.9900: f 2733155592:2733155592(0) ack 800828968 win 65332
0x0000: 4500 0028 acb0 4000 7b06 8ab4 c0a8 1411 e..(..@.{.......
0x0010: c0a8 3309 09d1 26ac a2e8 a508 2fbb ae28 ..3...&...../..(
0x0020: 5011 ff34 91e1 0000 0000 0000 0000 p..4..........
code位為:010001,傳送ack+fin位
最後由伺服器傳送包到客戶端,傳送ack位(syn=2fbb ae28,ack=a2e8 a509)
15:20:21.455790 00:22:19:4f:7c:f2 > 00:22:19:4f:7a:09, ethertype ipv4 (0x0800), length 54: ip localhost.localdomain.9900 > 192.168.20.17.2513: . ack 2733155593 win 6816
0x0000: 4500 0028 42aa 4000 4006 2fbb c0a8 3309 e..(b.@.@./...3.
0x0010: c0a8 1411 26ac 09d1 2fbb ae28 a2e8 a509 ....&.../..(....
0x0020: 5010 1aa0 7676 0000 p...vv..
code位為:010000,傳送ack位
此時,由客戶端到伺服器的連線關閉
tcp斷開連線四次揮手
tcp斷開連線是經歷了四次揮手的過程 1 客戶端主動斷開連線向服務端傳送 請求標誌位 fin 連線序號 seq 2 服務端收到請求後向客戶端傳送 確認請求標誌位 ack 確認連線序號 ack 3 服務端還會向客戶端傳送 請求標誌位 fin 連線序號 seq 4 客戶端在收到服務端資料後想服務端傳送 ...
TCP斷開連線的四次揮手
之前學習了tcp建立連線的三次握手,現在來學習一下tcp斷開連線的四次揮手。簡單描述一下tcp斷開連線的原理。下面是我自己的理解圖。這裡是比較官方的圖。重點說一下各個狀態把 msl就是maximum segment lifetime 最大分節生命期 這是乙個ip資料報能在網際網路上生存的最長時間,超...
TCP斷開連線四次揮手詳解
首先來一張最經典的四次揮手示意圖 四次揮手即終止tcp連線,就是指斷開乙個tcp連線時,需要客戶端和服務端總共傳送4個包以確認連線的斷開。在socket程式設計中,這一過程由客戶端或服務端任一方執行close socket來觸發。由於tcp連線是全雙工的,因此,每個方向都必須要單獨進行關閉,這一原則...