
如果“段总长度”字段为2位,则只能表示0b00、0b01、0b10、0b11,数据包的最大长度为0b11,即为3(2^2-1)
同理,如果“段总长度”字段为3位,则数据包的最大长度0b111,即7(2^3-1)
…………
如果“段总长度”字段为16位,则数据包的最大长度0xFFFF,即65535(2^16-1)
说得有点啰嗦,能明白吧?
因为IP数据报报文总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节。
这个和IP数据报的格式有关,IP数据报中有一个16位的字段表示IP数据报的长度,这个16位是二进制表示的,每一位中可以为0或者1,那最大可表示的数据报的长度就是16个1,也就是1111 1111 1111 1111表示IP数据报的长度,这16位二进制数转换成十进制就是65535。
扩展资料
IP数据报的构成:
1、固定部分
版本占4位、首部长度占4位、区分服务占8位、总长度、标识(identification)占16位、标志(flag)占3位、片偏移占13位、生存时间占8位、协议占8位、首部检验和占16位、源地址占32位和目的地址占32位。
2、可变部分
可变部分
IP首部的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。某些选项项目只需要1个字节,它只包括1个字节的选项代码。
参考资料来源:百度百科-IP数据报
会。根据网关链路层的数据帧,最大帧数,来确定数据包的长度字节大小,所以网关会限制数据包大小。
网络通讯质量很差的场合,如果发送的数据包长度很大,那么在经过IP层时就会进行分包发送,在传输过程中任何一个子数据包的丢失,都会导致整个数据包在IP层被丢弃。注意字段2字节定义的是是IP数据包的长度,因为是二进制 他表示的是有2的16次方(全是1)减1(全是0)的可能性的组合数量,注意是数量(有这么多个字节),和你说的比特没有单位上的联系。eg:xxxxxxxx xxxxxxxx 告诉你有X可以是0或者1 有这么多种组合的方法 每一个组合说明有一个字节(这个时候你要把16个x组合它当个数来看不能当成16bit,16bit只是要和你说有16个X 这样排序组合,觉得烧脑就多看几次)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)