IP段格式
IP数据报的首部长度和数据长度都是可变长的,但总是4字节的整数倍。
4位版本: 对于IPv4,4位版本字段是4。
4为首部长度: 4位首部长度的数值是以4字节为单位的,最小值为5,也就是说首部长度最小是4x5=20字节,也就是不带任何选项的IP首部,4位能表示的最大值是15,也就是说首部长度最大是60字节。
8位服务类型(TOS): 8位TOS字段有3个位用来指定IP数据报的优先级(目前已经废弃不用),还有4个位表示可选的服务类型(最小延迟、最大?吐量、最大可靠性、最小成本),还有一个位总是0。
16位总长度(字节数): 总长度是整个数据报(包括IP首部和IP层payload)的字节数。
16位标识: 每传一个IP数据报,16位的标识加1,可用于分片和重新组装数据报。
3位标志: 3位标志和13位片偏移用于分片。
8位生存时间(TTL): TTL(Time to live)是这样用的:源主机为数据包设定一个生存时间,比如64,每过一个路由器就把该值减1,如果减到0就表示路由已经太长了仍然找不到目的主机的网络,就丢弃该包,因此这个生存时间的单位不是秒,而是跳(hop)。
8位协议: 协议字段指示上层协议是TCP、UDP、ICMP还是IGMP。
16位首部检验和: 然后是校验和,只校验IP首部,数据的校验由更高层协议负责。IPv4的IP地址长度为32位。
参考资料: https://www.bilibili.com/video/BV1iJ411S7UA?p=131&spm_id_from=pageDriver