抓取的網站http://www.cnblogs.com/tankxiao數據庫
ip地址42.121.252.58服務器
TCP三次握手(創建鏈接)抓包如圖。網站
在wireshark中輸入http過濾,選中Get/tankxiao HTTP/1.1進行分析。this
由此得出源端口2236,目的端口80。由此往前按照時間順序排列找出TCP的三次握手。spa
第一次握手3d
客戶端發送一個TCP,標誌位爲SYN=1,序列號Seq=x=0,表明客戶端請求創建鏈接。code
第二次握手blog
服務器發回確認包,標誌位爲SYN=1,ACK=1,此時確認號字段有效。將確認序號(Acknowledgement Number)設置爲客戶端第一次握手時Seq的值+1,即ack=x+1=0+1=1。此時Seq=y=0。排序
第三次握手進程
客戶端收到此報文段後向服務器給出確認,其ACK=1,確認號ack=y+1=1。客戶端的TCP通知上層應用進程,鏈接已經創建。
UDP報文格式
源端口56966;目標端口8000;用戶數據長度882;校驗和0x1b1a;數據874byte
(注:疑似博客園登陸的服務器地址和數據庫服務器不一樣)
IP抓包分析
版本ipv4
首部長度20bytes(4bit)
總長度52
標識(Identification)0x44b3(17587)
標誌(Flags)0x02
內部偏移(Fragment offset)0
生存時間64
協議TCP(6)
首部校驗和0x0d3a
源ip地址192.168.1.123
目的ip地址42.121.252.58
分析icmp:
ICMP報文格式
(1) 在cmd下執行ping www.cnblogs.com
(2)在wireshark抓到8個ICMP的查詢報文(分別是四次請求,四次應答)
分析:
① 紅色框中藍色爲IP首部,共同擁有20個字節
① 藍色爲ICMP報文字段,共同擁有40個字節
① ICMP報文內容
類型type爲8(回射請求/ping請求);
代碼code爲0;
校驗和checksum爲0x4a93
① 點擊下一個報文
類型type爲0(回射應答/ping應答);
代碼code爲0;
校驗和checksum爲0x5293
數據鏈路層分析:
抓包結果
Destination: Tp-LinkT_ d2: 58: c0 (80:89:17:d2: 58: c0) 目的地址:網卡地址
Address: Tp-LinkT_ d2: 58: c0 (80:89:17:d2: 58: c0) 網卡地址
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) 多點傳送
.... ...0 .... .... .... .... = IG bit: Individual address (unicast) 本地管理地址
Source: 9a: 59: 9e: ed: 65: e1 源地址:網卡地址
Address: 9a: 59: 9e: ed: 65: e1 網卡地址
.... ..1. .... .... .... .... = LG bit: Globally unique address (this is not factory default) 本地管理地址(非出廠設置)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast) 多點傳送
Type: IPv4 (0x0800) 幀內封裝的上層協議類型爲IPV4(十六進制碼0800)
TCP終止鏈接(四次握手)抓包如圖。
經過篩選含有FIN的過程和核對IP找出四次握手。
(注:未能找到源端口2237的四次含FIN過程,且覈對到IP相同的源端口2236含FIN過程僅此一次,排序相近。猜測是四次握手過程當中出現錯誤,服務器誤發往客戶端2236端口,且數據不相符,未經證明。)
第一次握手
客戶端的應用進程向其TCP發出鏈接釋放報文段,並中止再發送數據,主動關閉TCP鏈接。客戶端把鏈接釋放報文段首部的FIN=1,其序號seq=u=1,等待服務器確認。
第二次握手(疑似)
源端口爲2236而非猜測中的2237,且Seq,Ack數值也與理論數據相差過多,故不予討論,僅保留相關數據做參考。
根據第三次及第四次握手反推第二次握手的部分理論狀況:
服務器發出確認,確認號ACK=1,ack=u+1=2,報文段序號seq=?(無先後數值關聯,沒法推論)。TCP服務器進程通知高層應用進程。從客戶端到服務器這個方向的鏈接就釋放了,TCP鏈接處於半關閉狀態。服務器若發送數據,客戶端仍要接收。
第三次握手
服務器已經沒有要向客戶端發送的數據,其應用進程通知TCP釋放鏈接。FIN=1,seq=w=1,ACK=1,ack=u+1,客戶端收到鏈接釋放報文段後,必須發出確認。
第四次握手
在確認報文段中ACK=1,,確認號ack=w+1=2,序列號Seq=u+1=2。
鏈接終止。