为什么有了MTU,还需要MSS?

为什么有了MTU,还需要MSS?

MTU

Maximum Transmit Unit,最大传输单元。由数据链路层提供给网络最大的一次传输数据的大小,一般MTU=1500Byte.
"车同轨",保证底层数据包能在物理网络中顺利传输!!!

例如:IP层有<=1500Bytes数据需要发送,发送一个IP包就可以完成了;IP层有>1500Bytes数据需要发送,则需要分片才能完成发送,发送后的IP Header ID相同

MSS

Maximum Segment Size,TCP提交给IP层最大分段大小,只包含TCP payload,MSS是TCP用来限制应用层最大的发送字节数。
优化上层传输效率,避免不必要的IP分片

例如:MTU=1500Bytes,那么MSS=1500-20(IP Header)-20(TCP Header)=1460Byte。如果应用层有2000Bytes数据要发送,那么需要切片才能完成,第一个TCP切片=1460,第二个TCP切片=540

TCP宁愿自己进行数据分片

TCP三次握手期间就会协商MSS值:是根据路径MTU的值计算而出的MSS。

TCP会在数据传输前将这些数据分割成多个不超过MSS大小的段(segment)。这样做的好处是,每个TCP段都是独立可确认的,如果某个段在网络中丢失,TCP可以通过其自身的重传机制只重新发送丢失的那段数据,而不是整个原始的大数据包。

相比之下,如果数据在TCP层未经适当分段就直接交给IP层,而这个大数据包又超过了路径中的MTU,那么IP层将不得不进行分片。IP分片的问题在于,所有分片都必须全部到达目的地才能重组原始数据包,如果其中任何一个分片丢失,则整个数据包都需要重传(发送方重传!如果是因为单个IP分片丢失导致TCP数据段不完整,TCP无法知道这一点,它只会注意到预期的ACK没有返回,从而触发重传),即使其他分片已经成功到达。这不仅增加了网络复杂性,还可能导致不必要的带宽浪费和延迟。

需要注意的是:在网络传输中可能会因为MTU或者MSS的值,导致包被丢弃或者分片,速度变慢!

总结

所以,两者作用的逻辑层次不一样。

好比现在有巨多的货物要从北京运到上海,你无法用一辆车完成运输。如果你说"可以创造一辆巨大的可以承载所有货物的车",但是道路的宽度和硬度不支持(MTU),所以你只能用许多辆车去承载。

然后车的大小在一个范围内基本确定,能装载的货物的大小也就限制在一定范围内,可是并不是每一个货物都是刚刚好。与其等到上货物的那一刻去裁剪货物的尺寸,何不在工厂内生产的时候就规范好货物的尺寸(MSS)呢?

所以MTU是规定了网络物理线路承载的范围,而MSS是TCP针对应用层数据进行的分片,防止IP层分段导致的数据传输效率下降!

相关推荐
易连EDI—EasyLink2 小时前
易连EDI–EasyLink实现OCR智能数据采集
网络·人工智能·安全·汽车·ocr·edi
@insist1233 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
SmartRadio3 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
_.Switch3 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
金色光环4 小时前
FreeModbus释放底层的 TCP 监听端口
服务器·网络·tcp/ip
数智化精益手记局4 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
灰子学技术6 小时前
Envoy HTTP 过滤器处理技术文档
网络·网络协议·http
Olivia051405148 小时前
Voohu:音频变压器的屏蔽接地技术对50Hz工频噪声抑制的影响
网络·机器人·信息与通信
2401_873479408 小时前
企业安全团队如何配合公安协查?IP查询在电子取证中的技术实践
tcp/ip·安全·网络安全·php
乌托邦的逃亡者8 小时前
Linux中如何检测IP冲突
linux·运维·tcp/ip