IPv4头部和IPv6头部
IPv4:
IPv4数据报。头部大小可变,4位的IHL字段被限制为15个32位字(60)字节。一个典型的IPv4头部包含20字节。源地址和目的地址的长度位32位。第二个32位字的大部分用于IPv4分片功能。头部校验和有助于确保头部字段被正确发送到目的地。
IPv6:
IPv6头部大小固定(40字节),并包含128位源地址和目的地址。下一个头部字段能用于说明IPv6头部之后其他扩展头部的存在和类型,他们形成一条包括特殊扩展或处理指令的头部链。应用数据跟在这条头部链之后,通常紧跟着一个传输层头部。
在关于IP头部和数据包的印象中,最高有效位在左侧且编号为0,一个32位值的最低有效位在右侧且编号为31。一个32位值的4字节按以下顺序传输:首先是0-7位,然后是8-15位,接着是16-32位,最后是24-31位。这就是所谓的高位优先字节序,它是TCP/IP头部中所有二进制整数在网络中传输时所需的字节顺序,也称为网络字节序。
版本字段:版本字段包含IP数据报的版本号,IPv4位4,IPv6位6。IPv4头部和IPv6头部除了版本字段位置相同,再无其他一样的。
Internet头部长度(IHL)字段:此字段保存IPv4头部中32位字的数量,包括任何选项。由于它是一个4位的字段,所以IPv4头部被限制为最多15个32位字,即60字节。IPv6头部不不存在这个字段,其头部长度固定位40字节。
DS字段与ECN字段:DS字段和ECN字段是由一个8位的服务类型(ToS)字段划分而来的,前6位被称为区分服务字段(DS字段),后2位是显式拥塞通知(ECN)字段或指示位。
总长度字段:总长度字段是IPv4数据报的总长度(以字节为单位)。通过这个字段和IHL字段,我们知道数据报的数据部分从哪里开始,以及它的长度。由于他是一个16位的字段,所以IPv4数据报的最大长度(包括头部)为65535字节。
标识字段:帮助识别IPv4的数据报。为了避免将一个数据报分片和其他数据报分片混淆,发送主机通常在每次发送数据报时都将一个内部计数器加1,并将该计数器值复制大oIPv4字段。
生存期(TTL):该字段用于设置一个数据报可以经过的路由器数量的上限。发送方将它初始化为某个值,每台路由器在转发数据报时将该值减1.当这个字段值减到0时,该数据被丢弃,并使用一个ICMP消息通知发送方。