2019/7/29秋招知识点补充

本文详细介绍了网络协议中的MTU概念,解释了IP报文和TCP报文首部长度的计算方式,探讨了最大报文段长度MSS的影响因素。此外,还深入解析了epoll在Linux系统中的底层实现,以及C++对象内存空间的计算。
摘要由CSDN通过智能技术生成

1.MTU(Maximum Transmission Unit)最大传输单元

以太网的MTU值是1500 bytes。
最大的IP包中IP净荷的长度 =MTU-IP包头长度=1500-20= 1480 bytes

假设发送者的协议高层向IP层发送了长度为3008 bytes的数据报文,则该报文在添加20 bytes的IP包头后IP包的总长度是 3028 bytes,因为3028 > 1500,所以该数据报文将被分片,分片时仅仅对上层的数据进行分片,不对原来的IP首部分片,所以要分片的数据长度只有3008,而不是3028. 这特别容易出错。

2.IP报文首部长度计算

IP报文首部长度最小是20字节,最大是60字节。

  • 为什么长度最小20字节?
    因为IP首部固定部分是5行,每行32位(4个字节),因此最小20字节。
  • 为什么长度最大60字节?
    因为IP首部字段有个报文长度选项,是4个bit,最大可以代表十进制的15,也就是15行32位数据,也就是15x4=60个字节。
  • 总长度数据项为16位,最大支持65535个字节。
    总长度=(4x首部长度)+数据长度。

3.TCP首部长度计算

TCP报文首部最小20字节,最大60字节,和ip报文首部一样。TCP报文首部在不添加任何选项的时候,长度为20字节。
TCP首部有一个数据偏移选项为4bit,最大表示15x4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值