文章目录
一、IPv4报文格式

bash
1、Version:4 bit,4:表示为IPv4。
2、Header Length:4 bit,首部长度,如果不带Option字段,则为20,最长为60。
3、Type of Service:8 bit,服务类型。只有在有QoS差分服务要求时,这个字段才起作用。
4、Total Length:16 bit,总长度,整个IP数据包的长度。
5、Identification:16 bit,发送主机赋予的标识,分片重组时会用到该字段。
6、Flags:3 bit,标志位。
保留段位(R):0,保留,没有定义用途。
不分段位(DF):1,表示"不能分片";0,表示"能分片"。
更多段位(MF):1,表示"后面还有分片";0,表示"最后一个数据片"。
7、Fragment Offset:12 bit,片偏移,分片重组时会用到该字段,在报文中需要乘以8才能得出真正的偏移量。指出较长的分组在分片后,该片在原分组中的相对位置,与更多段位组合,帮助接收方组合分段的报文。
8、Time to Live:8 bit,生存时间,255,跨网段转发时路由器减1,路由器收到包以后先进行TTL减1,收到为TTL为1的路由器减1后为0,此时路由器丢弃该包。
9、Protocol:8 bit,协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。
10、Header Checksum:16 bit,首部检验和。
11、Source IP Address:32 bit,源IP地址。
12、Destination IP Address:32 bit,目的IP地址。
13、Options:可变,选项字段。
14、 Padding:可变,填充字段,全填0。
二、IP地址类型和子网划分



三、ICMP相关知识
