記一次簡單的wireshark抓包TCP

1GANG發表於2020-12-20

記一次簡單的wireshark抓包TCP握手

前言

在學習計算機網路的過程中,看完書上的章節總是感覺不夠到位,似乎有哪裡,似懂非懂。毛主席說過,沒有實踐就沒有發言權,本著實踐學習,應用進步的思想。我使用了wireshark對tcp的三次握手與後續傳輸進行一波分析。

正題

隨便選了一個網址,是哪一個忘記了。因為HTTP其實是基於TCP的,所以我們這裡可以使用瀏覽器開啟某個網址。

過濾器設定http以後,選一條GET請求的。然後右鍵對他進行跟蹤tcp流,過濾器就會自動幫你設定啦。這裡它設定的是tcp.stream eq 24
在這裡插入圖片描述
一眼就發現,右上角那三條,不就是大名鼎鼎的三次握手麼。我們進去第一條看看。

第一次

在這裡插入圖片描述

我塗黃的地方可以得出兩條結論:1:第一條SYN位設為了1,此為意料之中。2:生成了一串長數字。據我目前所知,這是作業系統自動生成的一個叫做ISN的東西,INS還是ISN忘記了,相當於一個位元組序號的初始化吧。據流傳Windows的ISN生成演算法是最容易被破解的。
然後ACK位是0,ack當然也是0。意料之中。

第二次

第二次盲猜了,盲猜SYN+ACK,這不是廢話麼。
在這裡插入圖片描述
看,第一個籃圈,就是服務端OS生成的ISN了,把他裝在seq裡,然後ack也就是確認收到的最後一個位元組序號+1。可以看出 3870175763 = 3870175762 +1.意料之中。
然後SYN和ACK位都為1。

第三次

已經大致猜到了。ACK位為1,SYN位為0
ack= 1530130020。我們去檢驗一下對不對。
在這裡插入圖片描述
百密一疏,預測了ACK,沒有預測seq,令人奇怪的是為何seq仍然是上一條的seq而沒有+1,這是因為ACK是不佔位元組序列號的!
ACK是不佔位元組序列號的!
ACK是不佔位元組序列號的!

相關文章