- 使用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