1、为什么ip数据包的头部要记录数据包(包括头部在内)的长度?
主要原因是一些携带IPv4数据包的底层协议无法准确描述自己的载荷长度
比如以太网mac帧的长度为头部(14B)+数据(46-1500B)+校验和(4B)其最小长度为64字节。如果头部+载荷<64字节,这个时候会对其进行填充至最小长度的操作。
而如果IPv4数据包头部不指定其长度的话,将无法区分一个数据包是否进行过填充。
主要原因是一些携带IPv4数据包的底层协议无法准确描述自己的载荷长度
比如以太网mac帧的长度为头部(14B)+数据(46-1500B)+校验和(4B)其最小长度为64字节。如果头部+载荷<64字节,这个时候会对其进行填充至最小长度的操作。
而如果IPv4数据包头部不指定其长度的话,将无法区分一个数据包是否进行过填充。