tcp wireshark 过滤syn_使用 WireShark 分析 TCP/IP 三次握手 和 四次挥手
TCP 三次握手 示意圖
Wireshark 抓包注意事項
為了演示一個TCP三次握手建立連接的過程,我們通過 Chrome 訪問一個網(wǎng)頁。
已知 HTTP 協(xié)議就是建立在TCP鏈接上的
通過 Cmd 的 ping 命令獲取 這個網(wǎng)站對應(yīng)的 IP地址 183.136.236.13
確定 這個IP 有一個非常重要的好處,就是我們只需要
電腦 -> 網(wǎng)站 的數(shù)據(jù)包
網(wǎng)站->電腦 的數(shù)據(jù)包
所以,可以使用Wireshark的顯示過濾規(guī)則,只顯示我們需要的數(shù)據(jù),不然你一定看著滿屏幕的數(shù)據(jù)抓狂的。
過濾規(guī)則如下:
ip.src==183.136.236.13 or ip.dst==183.136.236.13
截圖:
分析TCP握手包
概覽
通過圖片,可以看到 先 進行了 TCP 三次傳輸 然后才 開始 HTTP 傳輸
第一次 客戶端發(fā)送 SYN 報文 到服務(wù)器
第二次 ,服務(wù)器接收到 客戶端的SYN 報文,回復(fù) SYN + ACK 報文
第三次 ,客戶端接收到服務(wù)端的 SYN+ACK 報文后,回復(fù) ACK報文
注意:
這里有個坑:Wireshark 顯示的 Syn Ack的數(shù)目是不準(zhǔn)確的
理論上,Syn 應(yīng)該初始值是個隨機數(shù)的,后面的要根據(jù)初始值增加
TCP 三次握手總結(jié)
建立一個穩(wěn)定的 雙向 連接,最少需要 幾次 通信呢?
以打電話為例
小明 給小紅 打電話
小明 : 喂,小紅 聽得到么?
小紅: 嗯,我聽到你說話了,你能聽到我么?
小明:我能聽到你。
只有這三個傳輸都正確了,才能保障雙方是 連通的
TCP 四次揮手
由于TCP連接是全雙工的,因此每個方向都必須單獨進行關(guān)閉。這個原則是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個FIN來終止這個方向的連接。收到一個 FIN只意味著這一方向上沒有數(shù)據(jù)流動,一個TCP連接在收到一個FIN后仍能發(fā)送數(shù)據(jù)。首先進行關(guān)閉的一方將執(zhí)行主動關(guān)閉,而另一方執(zhí)行被動關(guān)閉。
CP的連接的拆除需要發(fā)送四個包,因此稱為四次揮手(four-way handshake)。客戶端或服務(wù)器均可主動發(fā)起揮手動作,在socket編程中,任何一方執(zhí)行close()操作即可產(chǎn)生揮手操作。
(1)客戶端A發(fā)送一個FIN,用來關(guān)閉客戶A到服務(wù)器B的數(shù)據(jù)傳送。
(2)服務(wù)器B收到這個FIN,它發(fā)回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。
(3)服務(wù)器B關(guān)閉與客戶端A的連接,發(fā)送一個FIN給客戶端A。
(4)客戶端A發(fā)回ACK報文確認,并將確認序號設(shè)置為收到序號加1。
TCP采用四次揮手關(guān)閉連接如圖2所示。
抓包截圖
其中 183.136.236.13 是服務(wù)器的ip
可以看到 這一次揮手是由 服務(wù)器 發(fā)起的
第一次揮手 FIN +ACK
第二次揮手 ACK
第三次揮手 FIN +ACK
第四次揮手 ACK
總結(jié)
TCP 由于是全雙工的,斷開鏈接需要四次揮手
總結(jié)
以上是生活随笔為你收集整理的tcp wireshark 过滤syn_使用 WireShark 分析 TCP/IP 三次握手 和 四次挥手的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么自定义字体_自定义字体@fontfa
- 下一篇: 原理图中如何连线_Altium Desi