系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目

文章目录

  • 系列文章目录
    • 1.什么是MTU、MSS
    • 2.为什么会有MTU?
    • 3.为什么会有MSS?
    • 4.MTU为什么是1500?
    • 5.MSS为什么是1460 ?
  • 总结
    • 参考:

1.什么是MTU、MSS

Maximum Transmission Unit,MTU,最大传输单元。网络层最大管控值。

Maximum Segment Size,MSS, 最大报文段长度。传输层最大管控值。

2.为什么会有MTU?

MTU其实就是在每一个节点的最大管控值,只要是大于这个值的数据帧,要么选择分片,要么直接丢弃。

因为根据当前节点的属性(主要是速度),要是没有MTU管控,都将大量数据包发来,当前节点都来不及处理了,全卡住不就完蛋了。

其实就是因为兼顾延迟,使得大数据能发的同时,可以穿插的发送别的数据,不至于让其他的数据不能发送。

3.为什么会有MSS?

MSS就是TCP数据包每次能够传输的最大数据分段。

为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值。

出现MSS是为了避免让ip分片.
IP分片只有第一个带有传输层(tcp)或ICMP首部,其余的分片只有IP头。至于怎么重组就是到对端以后IP层的事情了。TCP分段每个都有完整首部。

如果交给IP层分片会怎样?
只丢失一片数据也要重新传整个数据报。
因为IP层本身没有超时重传机制。只能让更高层(比如TCP)来负责超时和重传。当来自TCP报文段的某一片丢失后,TCP在超时后会重发整个TCP报文段,该报文段对应于一份IP数据报(而不是一个分片),没有办法只重传数据报中的一个数据分片。

这是因为IP分包后,除了第一个包有TCP报头信息,中间和后面的只有IP报头,所以没法重发一个。而TCP分包,会让每个IP包都有TCP报头信息和IP报头信息,可以做到重发只重发一个包。

所以很可能造成经常大量重传。

那么IP层分片难道用不上了?
当然不是!上层还有UDP不会分段,当然就由IP来分了。

4.MTU为什么是1500?

下面这个作者讲的很好。
魔兽世界掉线引起的:MTU兴趣

其实一个标准的以太网数据帧大小是:1518,头信息有14字节,尾部校验和FCS占了4字节。
所以真正留给上层协议传输数据的大小就是:1518 - 14 - 4 = 1500,那么,1518这个值又是从哪里来的呢?

就像前面(2.为什么会有MTU?)讲的,过大的MTU*导致占用网络时间太长,造成了网络拥堵与高延迟。

而MTU过短,因为报头长度固定,使得报文中有效数据的占用率下降,网络传输有效数据就很差。所以需要折中。

5.MSS为什么是1460 ?

这个值TCP协议在实现的时候往往参考了MTU值。

所以往往MSS为1460 = MTU - 20 - 20(减去TCP、IP报头)。

通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

当然为了减少IP层的分片,所以设置MSS加上报头也要小于MTU。

总结

其实就是:
为了照顾网络延迟,引入一个差不多大小的MTU来限制单个IP包的大小,而为了让IP层少分包或是不分包(因为IP分包中间丢了一个就得整个重传,而TCP分包只需要重传丢的那一个),传输层引入小于MTU的MSS来限制单个TCP包的大小。

参考:

https://www.cnblogs.com/silyvin/p/12009252.html
https://developer.aliyun.com/article/222535

什么是MTU?MSS?为什么要有MTU?对应以太网、TCP传输最小值?相关推荐

  1. TCP传输的单个报文最大字节(MSS和MTU)

    TCP和1448 1448字节是实际场景下,单个TCP包的实际运载能力.也就是说,实际场景下,上层调用send(1000KB),下层会把这1000KB封装成多个TCP包进行发送.单个TCP包每次打包1 ...

  2. MTU MSS 详解记录

              先学习理解一下帧的封装格式: 需要注意的是,区别两种帧封装格式:802标准帧和以太网帧 1,在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验码. ...

  3. 以太网帧格式 IP数据报格式 TCP数据报格式 MTU MSS

    一.以太网帧格式 下图摘自<TCP IP详解卷1:协议(第2版)>第3.2.2节以太网帧格式. 以太网帧有最小和最大尺寸.最小的帧是64字节,要求数据区(有效载荷)长度(无标签)最小为48 ...

  4. MTU MSS 设置对网络环境的影响

    MTU: Maxitum Transmission Unit 最大传输单元 MSS: Maxitum Segment Size 最大分段大小 PPPoE: PPP Over Ethernet(在以太网 ...

  5. 龙兄鼠弟:Ipv4, Ipv6, Mtu, Mss, Fragmentation 那些事.

    1. Ipv4协议向Ipv6协议栈的过渡中, "市场机制失灵". 让我们首先看一组域间路由表, 纵轴表示的是Ipv6全球BGP路由条目数. 下图是另一组数据, 纵轴是Ipv4全球B ...

  6. mtu/mss 数据包分片详解

    MTU是啥 MTU是Maximum Transmission Unit的缩写,意思是最大传输单元,这个值是作用于网卡上的,表示的是数据报文经过网卡时的最大大小,默认情况下网卡的MTU值都是1500,当 ...

  7. MTU MSS 详解

    需要注意的是,区别两种帧封装格式:802标准帧和以太网帧 1,在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验码.RFC 1042(IEEE 802) 2,RFC ...

  8. 计算机网络原理如何修改本机mtu值,电脑的本地mtu值要怎么设置

    相信很多人在玩dota2时都会出现使用wifi联网卡顿的现象,往往是电脑mtu值设置出现问题.下面由学习啦小编为你整理了电脑的本地mtu值要怎么设置的相关方法,希望对你有帮助! 电脑设置mtu值的方法 ...

  9. MTU其实可以分成二层MTU和三层MTU

    MTU其实可以分成二层MTU和三层MTU. 二层MTU可以修改(二层1500 .9216 具体看设备),三层MTU也可以改!    MTU >= IP MTU  Router#sh ip int ...

最新文章

  1. windows7、windows 2008和windows 2008 R2 的系统封装介绍
  2. WebGL学习之纹理盒
  3. CentOS6 英文系统安装ibus
  4. JavaScript实现省市联动
  5. ue linux转dos格式,uestudio中如何把dos格式转为unix
  6. 数据库系统实训——实验七——触发器
  7. python path模块_python pathlib模块详解
  8. 电工模拟接线软件 app_电气工程师手机必备APP
  9. 学生:无效文件.dsn问题
  10. idea中module项目没有蓝色小方块问题
  11. php堆栈是什么意思,如何理解什么是堆栈
  12. ❤『面试知识集锦100篇』1.面试技巧篇丨HR的小心思,你真的懂吗?
  13. iOS使用UICollectionView只允许向左方向滑动,不允许向右方向滑动。
  14. 二叉树遍历(递归、非递归)
  15. 【Monkey测试】手机app测试性能测试,Monkey测试详解(全)
  16. 记事本编写的html乱码,记事本编写的HTML文件,用浏览器打开乱码
  17. 回溯法之N皇后问题——C++代码
  18. 解决远程桌面连接“这可能是由于CreddSSP加密数据库修正”的问题
  19. 怎么安装jdk6,怎么安装jdk-6u33-linux-i586.bin
  20. 物联lot是什么意思_新一代基于物联网NB-loT技术的智能共享单车解决

热门文章

  1. 授人以渔command not found: ***
  2. 距离产生的不是美,是小三
  3. 我讨厌计算机作文500,我讨厌的一个人
  4. lock与synchronized锁有什么区别?它们的底层实现原理是什么?
  5. 保健服务的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. php 正则表达式 环视,深入理解正则表达式高级教程
  7. 域泛化(Domain Generalization)相关知识学习
  8. 计算机课导入语,浅谈小学音乐课导入语的运用.doc
  9. 关于word中的插件Grammarly使用
  10. mysql coolshell_coolshell里的一些c++文章