3.2.3 使用tcpdump观察TCP头部信息
在2.3节中,我们利用tcpdump抓取了一个数据包并分析了其中的IP头部信息,本节分析其中与TCP协议相关的部分(后面的分析中,我们将所有tcpdump抓取到的数据包都称为TCP报文段,因为TCP报文段既是数据包的主要内容,也是我们主要讨论的对象)。为了方便阅读,先将该TCP报文段的内容复制于代码清单3-1中。
代码清单3-1 用tcpdump抓取数据包
IP 127.0.0.1.41621>127.0.0.1.23: Flags [S], seq 3499745539, win 32792, options [mss 16396,sackOK,TS val 40781017 ecr 0,nop,wscale 6], length 0
0x0000: 4510 003c a5da 4000 4006 96cf 7f00 0001
0x0010: 7f00 0001 a295 0017 d099 e103 0000 0000
0x0020: a002 8018 fe30 0000 0204 400c 0402 080a
0x0030: 026e 44d9 0000 0000 0103 0306
tcpdump输出Flags[S],表示该TCP报文段包含SYN标志,因此它是一个同步报文段。如果TCP报文段包含其他标志,则tcpdump也会将该标志的首字母显示在“Flags”后的方括号中。
seq是序号值。因为该同步报文段是从127.0.0.1.41621(客户端IP地址和端口号)到127.0.0.1.23(服务器IP地址和端口号)这个传输方向上的***个TCP报文段,所以这个序号值也就是此次通信过程中该传输方向的ISN值。并且,因为这是整个通信过程中的***个TCP报文段,所以它没有针