什么是MTU?MSS?为什么要有MTU?对应以太网、TCP传输最小值?
系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目
文章目录
- 系列文章目录
- 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传输最小值?相关推荐
- TCP传输的单个报文最大字节(MSS和MTU)
TCP和1448 1448字节是实际场景下,单个TCP包的实际运载能力.也就是说,实际场景下,上层调用send(1000KB),下层会把这1000KB封装成多个TCP包进行发送.单个TCP包每次打包1 ...
- MTU MSS 详解记录
先学习理解一下帧的封装格式: 需要注意的是,区别两种帧封装格式:802标准帧和以太网帧 1,在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验码. ...
- 以太网帧格式 IP数据报格式 TCP数据报格式 MTU MSS
一.以太网帧格式 下图摘自<TCP IP详解卷1:协议(第2版)>第3.2.2节以太网帧格式. 以太网帧有最小和最大尺寸.最小的帧是64字节,要求数据区(有效载荷)长度(无标签)最小为48 ...
- MTU MSS 设置对网络环境的影响
MTU: Maxitum Transmission Unit 最大传输单元 MSS: Maxitum Segment Size 最大分段大小 PPPoE: PPP Over Ethernet(在以太网 ...
- 龙兄鼠弟:Ipv4, Ipv6, Mtu, Mss, Fragmentation 那些事.
1. Ipv4协议向Ipv6协议栈的过渡中, "市场机制失灵". 让我们首先看一组域间路由表, 纵轴表示的是Ipv6全球BGP路由条目数. 下图是另一组数据, 纵轴是Ipv4全球B ...
- mtu/mss 数据包分片详解
MTU是啥 MTU是Maximum Transmission Unit的缩写,意思是最大传输单元,这个值是作用于网卡上的,表示的是数据报文经过网卡时的最大大小,默认情况下网卡的MTU值都是1500,当 ...
- MTU MSS 详解
需要注意的是,区别两种帧封装格式:802标准帧和以太网帧 1,在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验码.RFC 1042(IEEE 802) 2,RFC ...
- 计算机网络原理如何修改本机mtu值,电脑的本地mtu值要怎么设置
相信很多人在玩dota2时都会出现使用wifi联网卡顿的现象,往往是电脑mtu值设置出现问题.下面由学习啦小编为你整理了电脑的本地mtu值要怎么设置的相关方法,希望对你有帮助! 电脑设置mtu值的方法 ...
- MTU其实可以分成二层MTU和三层MTU
MTU其实可以分成二层MTU和三层MTU. 二层MTU可以修改(二层1500 .9216 具体看设备),三层MTU也可以改! MTU >= IP MTU Router#sh ip int ...
最新文章
- windows7、windows 2008和windows 2008 R2 的系统封装介绍
- WebGL学习之纹理盒
- CentOS6 英文系统安装ibus
- JavaScript实现省市联动
- ue linux转dos格式,uestudio中如何把dos格式转为unix
- 数据库系统实训——实验七——触发器
- python path模块_python pathlib模块详解
- 电工模拟接线软件 app_电气工程师手机必备APP
- 学生:无效文件.dsn问题
- idea中module项目没有蓝色小方块问题
- php堆栈是什么意思,如何理解什么是堆栈
- ❤『面试知识集锦100篇』1.面试技巧篇丨HR的小心思,你真的懂吗?
- iOS使用UICollectionView只允许向左方向滑动,不允许向右方向滑动。
- 二叉树遍历(递归、非递归)
- 【Monkey测试】手机app测试性能测试,Monkey测试详解(全)
- 记事本编写的html乱码,记事本编写的HTML文件,用浏览器打开乱码
- 回溯法之N皇后问题——C++代码
- 解决远程桌面连接“这可能是由于CreddSSP加密数据库修正”的问题
- 怎么安装jdk6,怎么安装jdk-6u33-linux-i586.bin
- 物联lot是什么意思_新一代基于物联网NB-loT技术的智能共享单车解决
热门文章
- 授人以渔command not found: ***
- 距离产生的不是美,是小三
- 我讨厌计算机作文500,我讨厌的一个人
- lock与synchronized锁有什么区别?它们的底层实现原理是什么?
- 保健服务的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- php 正则表达式 环视,深入理解正则表达式高级教程
- 域泛化(Domain Generalization)相关知识学习
- 计算机课导入语,浅谈小学音乐课导入语的运用.doc
- 关于word中的插件Grammarly使用
- mysql coolshell_coolshell里的一些c++文章