我们来逐字节分析。
字节值 字节含义0x4 IP版本为ipv4
0x5 首部长度为5 * 4字节=20B
0x00 服务类型,现在基本都置为0
0x0295 总长度为661字节,即整个包的长度是661字节
0x0000 标识。同一个数据报的唯一标识。当IP数据报被拆分时,会复制到每一个数据中。
0x4000 3bit 标志 + 13bit 片偏移。3bit 标志对应 R、DF、MF。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。13bit 片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8 )
0x36 生存时间TTL。IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为 0 时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。TTL可以防止数据报陷入路由循环。 此处为54.
0x06 协议类型。指出IP报文携带的数据使用的是哪种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程。TCP 的协议号为6,UDP 的协议号为17。ICMP 的协议号为1,IGMP 的协议号为2。该 IP 报文携带的数据使用 TCP 协议,得到了验证。
0x623b 16bitIP首部校验和。
0xac17 ccdc 32bit源ip地址。
0x0a60 5cd4 32bit目的ip地址。
剩余的数据部分即为TCP协议相关的。TCP也是20B固定长度+可变长度部分。
字节值 字节含义0xdb9b 16bit源端口。56219
0x1ba8 16bit目的端口7080
0xa59a 46ce 32bit序列号。2778351310
0x6d03 e87d 32bit确认号。1828972669
0x8 4bit首部长度,以4byte为单位。共8*4=32字节。因此TCP报文的可选长度为32-20=12字节
0b000000 6bit保留位。目前置为0.
0b011000 6bitTCP标志位。从左到右依次是紧急 URG、确认 ACK、推送 PSH、复位 RST、同步 SYN 、终止 FIN。ack有效,同时psh有效
0x1015 滑动窗口大小,滑动窗口即tcp接收缓冲区的大小,用于tcp拥塞控制。4117
0x0ee7 16bit校验和。
0x0000 紧急指针。仅在 URG = 1时才有意义,它指出本报文段中的紧急数据的字节数。当 URG = 1 时,发送方 TCP 就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍是普通数据。