學習計算機網絡很久了,但總是局限於書本知識,感覺get不到重點。經師兄建議用wireshark抓包分析看看。
我自己以前並沒有做過抓包分析,所以這篇博文可能會有很多錯誤,只是我自己的一個記錄,路過的親們千萬別當成教程,以免誤入歧途....
TCP協議首部:

在Filter中設置為:ip.dst == 222.199.191.33 or ip.src == 222.199.191.33
這個地址是干什么的不知道,只是跟它的交互特別多,就選他了。
分析第一個包:

源地址:我自己電腦的IP,就不放上來了
Destination: 222.199.191.33 目的地址
TCP:表明是個TCP協議
Length:66 表明包的長度是66個字節 ??
56739->443 :表明是從源地址的56739端口發送給目的地址的443端口
[SYN]表明這是一個TCP的同步請求,是TCP握手的第一步
Seq=0: TCP協議中的序號,這里為0.
在TCP中第一個SYN 包所包含的 sequence 是隨機的,而第一個 SYN+ACK包里的sequence 也是隨機的,wireshark 為了你便於觀察都使用相對值,初始化這兩個隨機值為0,后面的sequence 和 acknowledge 都在上面累加
Win=8192: 發送報文段一方的接收窗口。TCP協議中的字段
Len=0: 發送文件TCP報文段Datas段的長度
MSS=1460: 最大報文段長度,指每個TCP報文段中數據字段的最大長度。它不包含首部長度。是TCP首部中,選項中的字段。
WS=256:窗口擴大因子;只能在連接建立階段確定;在連接期間他的值不能夠改變;新的窗口值=首部中定義的窗口值乘以2的(窗口擴大因子)的次方;由於窗口值不夠用。選項中的字段。 ??書上說,窗口擴大選項占3個字節,其中一個字節表示移位值S,S最大為14,新的窗口值等於TCP首部中的窗口位數從16增大到(16+S)。可這里WS怎么會等於256呢??
答:這里的256是指窗口擴大了256倍,其S=8, 2的8次方 = 256. 符合S<=14. 打開軟件下面TCP部分的詳細說明,有介紹。
SACK_PERM=1: 允許選擇確認。 TCP選項中的字段。
恩,總算了解一點點了,這些信息是TCP協議上的內容。
下面,分析一下詳細的內容,點擊上面的包,下面會出現詳細的信息,比如下面這樣:

分別是什么意思呢?
經我思索了半天,才恍然大悟,這是根據網絡分層模型顯示的不同層的內容。
Frame 551: 對應的是這個包的概略信息,里面有我們是否對其做過標記,怎么用彩色顯示之類的內容。
Ethernet II: 對應網絡接口層,表明采用Ethernet II的太網標准幀格式。
Internet Protocal Version 4: 對應網絡層,表明采用IPv4
Transmission Control Protocol:對應傳輸層,表明采用TCP協議。
下面,一個一個點開,看看里面的詳細內容。
Ethernet II:

可以看到源和目標的硬件地址。
unicast表示單播。
??那一堆的...是什么? LG IG又是什么??
答:那些點是指要標明的字段中非重要的信息未,重要的位的數字被顯示出來了。
IPv4:
先把IP首部的格式放上來,有助於分析:


開始說明了使用的協議版本是IPv4, 首部長度是20字節。
Differentiated Services Field:區分服務字段
(DSCP 0x00: Default; ECN:0x00) 表示一個特定的上層協議所分配的重要級別,默認的DSCP值是0,相當於盡力傳送,ECN字段被分為ECN-Capable Transport(ECT)bit和CEbit, ECT bit設置為0,表明該傳輸協議將忽略CE bit. CE bit 將由路由器設置,設置為0說明對末端節點不擠塞。
IP包的總長度為52字節,標志字段為1302
標識字段為0x02,表明沒有分片,片偏移量為0,生存時間為128,上層協議為TCP
首部檢驗和下面的Good和Bad都是False, 我理解的是因為這是第一個包,不存在驗證問題。
TCP

TCP協議:
大多在上面顯示了。注意,下面Window scale:8,對應了上面紅字問題1的解釋。
