使用tcpdump驗證tcp三次握手

  1. 使用tcpdump命令獲取報文. -w爲寫入文件; -s0 每一個數據包的大小默認是68字節; 只抓取指定host的報文
sudo tcpdump -w ~/Desktop/a.cap host www.baidu.com -s0
複製代碼
  1. 使用vim讀取報文並分析。-x 以16進制形式展現
tcpdump -r ~/Desktop/a.cap -n -nn -A -x | vim -
複製代碼
  1. 以下報文,其中標黑的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

相關文章
相關標籤/搜索