深度解秘HTTP通信细节 (2)

我们来逐字节分析。

字节值 字节含义
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 就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍是普通数据。  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpywyy.html