我将工作中用到的报文格式进行了汇总,方便查阅:
解析:
- 4位版本:目前的协议版本号是4,因此IP有时也称作IPv4。
- 4位首部长度:普通的IP首部长为20个字节,除非含有选项字段。最高位在左边,记为0 bit;最低位在右边,记为31 bit。
- 8位服务类型(TOS):字段包括一个3 bit的优先权子字段(现在已被忽略),4 bit的TOS子字段和1 bit未用位,但必须置0。4 bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。 4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就意味着是一般服务。注意:现在大多数的TCP/IP实现都不支持TOS特性。
- 16位总长度:总长度字段是指整个IP数据报的长度,以字节为单位。由于该字段长16比特,所以IP数据报最长可达65535字节。
- 16位标识:标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1。
- 3位标志:共3位。R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。
- 13位偏移:IP分片包,本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)
- 8位生存时间(TTL):字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。 TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。
- 8位协议:该字段可以识别是哪个协议向IP传送数据。
- 16位首部检验和:首部检验和字段是根据IP首部计算的检验和码
- 32位源IP地址:标识IP数据报的源端设备。
- 32位目的IP地址:标识IP数据报的目的地址。
- ------- 上述总计20字节 -------
- 选项(如果有):