- 使用tcpdump命令獲取報文. -w爲寫入文件; -s0 每一個數據包的大小默認是68字節; 只抓取指定host的報文
sudo tcpdump -w ~/Desktop/a.cap host www.baidu.com -s0
複製代碼
- 使用vim讀取報文並分析。-x 以16進制形式展現
tcpdump -r ~/Desktop/a.cap -n -nn -A -x | vim -
複製代碼
- 以下報文,其中標黑的16位爲4+3+9 即4位首部長度(單位是字)+3位保留位+9位tcp標誌位(NS|CWR|ECE|URG|ACK|PSH|RST|SYN|FIN) 展開成二進制表示(只取後九位,這裏有咱們關心的tcp標誌位)
報文 |
二進制數據 |
報文1 |
b 0 0000 0010 |
報文2 |
b 0 0001 0010 |
報文3 |
b 0 0001 0000 |
- 能夠看到報文1的SYN位是1,即發起創建鏈接請求的SYN報文;報文2 的ACK+SYN均爲1 是服務器對客戶端的應答;報文3的 ACK是1;鏈接創建
- 紅框內的事seq值,藍框中的是ack值,能夠看到報文2中的ack=報文1的seq+1;而報文3ack=報文2seq+1;
驗證三次握手創建成功 html
參考連接vim