为什么有了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层分段导致的数据传输效率下降!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/832738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 之 布隆过滤器 与 布谷鸟过滤器

大家都知道,在计算机中IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们业务后端涉及数据库,当请求消息查询某些信息时,可能先检查缓存中是否有相关信息,有的话返回,如果没有的话可能就要去数据库里面查询,这时候有一个…

在echarts中使用geojson地图

以中国地图为例 先看效果 代码实现&#xff1a; <div id"refChinaMap" :style"{ width: 75%, height: 100% }"></div>import * as echarts from "echarts"; import ChinaJSON from "./chinaMap.json";const initChinaMa…

c语言数据结构之一(单链表)

前言 链表是最基础的数据结构&#xff0c;可以用于实现栈、队列等等。 实现原理 节点&#xff08;Node&#xff09;&#xff1a;链表的基本构建单元是节点&#xff0c;每个节点包含两部分&#xff1a;数据和指向下一个节点的指针。在C语言中&#xff0c;节点通常用结构体来表…

什么是分布式事务?

典型回答 分布式事务是指在分布式系统中涉及到多个数据库或多个应用程序之间的事务处理&#xff0c;这些数据库或应用程序可能分布在不同的物理节点上&#xff0c;甚至可能位于不同的地理位置。在分布式事务中&#xff0c;需要确保所有参与者的事务操作都能够保持一致性&#…

三步学会苹果手机怎么关震动的方法!

苹果手机的震动功能在某些情况下可能会被认为是不必要的&#xff0c;比如在会议、课堂或者晚间睡眠时。因此&#xff0c;学会如何关闭苹果手机的震动功能是非常实用的。苹果手机怎么关震动&#xff1f;在本文中&#xff0c;我们将介绍三个步骤&#xff0c;帮助你关闭苹果手机的…

XSS-Labs 靶场通过解析(下)

前言 XSS-Labs靶场是一个专门用于学习和练习跨站脚本攻击&#xff08;XSS&#xff09;技术的在线平台。它提供了一系列的实验场景和演示&#xff0c;帮助安全研究人员、开发人员和安全爱好者深入了解XSS攻击的原理和防御方法。 XSS-Labs靶场的主要特点和功能包括&#xff1a;…

K邻算法:在风险传导中的创新应用与实践价值

程序员的实用神器 ⛳️ 写在前面参与规则&#xff01;&#xff01;&#xff01; ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论三次&#xff09; ⛳️本次送书1~4本【取决于阅读量&#xff0c;阅读量越多&#xff0c;送的越…

Python 中使用私有成员的子类化

1、问题背景 Python 语言中&#xff0c;变量名与访问器同名是一个非常好的特性&#xff1a; self.__value 1def value():return self.__value但是&#xff0c;当我们想要子类化一个类&#xff0c;并访问其私有成员时&#xff0c;却没有一种简单的方法。通常&#xff0c;我们…

发挥企业力量,美乐家推动城市绿色发展

在当今时代&#xff0c;环保已成为衡量企业社会责任的重要标准之一。美乐家作为一个具有前瞻性的企业&#xff0c;深刻理解到这一点&#xff0c;并通过其行动积极展示了这种责任感。通过与中华环境保护基金会合作&#xff0c;美乐家开始全国范围内推动了“微行动&#xff0c;守…

C语言 | Leetcode C语言题解之第74题搜索二维矩阵

题目&#xff1a; 题解&#xff1a; bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target) {int m matrixSize, n matrixColSize[0];int low 0, high m * n - 1;while (low < high) {int mid (high - low) / 2 low;int x matrix[mid /…

等保测评—Linux-CentOS标准范例截图

密码输入错误无法登录 用户账户情况包含root、guanli、shenji 查看审计用户权限 身份鉴别&#xff1a; cat /etc/passwd&#xff0c;核查用户名和 UID&#xff0c;是否存在同样的用户名和 UID cat /etc/shadow&#xff0c;查看文件中各用户名状态 &#xff0c; 核查密码一栏为…

Springboot工程创建

目录 一、步骤 二、遇到的问题及解决方案 一、步骤 打开idea,点击文件 ->新建 ->新模块 选择Spring Initializr&#xff0c;并设置相关信息。其中组为域名&#xff0c;如果没有公司&#xff0c;可以默认com.example。点击下一步 蓝色方框部分需要去掉&#xff0c;软件包…

Win11安装Docker Desktop运行Oracle 11g 【详细版】

oracle docker版本安装教程 步骤拉取镜像运行镜像进入数据库配置连接数据库&#xff0c;修改密码Navicat连接数据库 步骤 拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g运行镜像 docker run -d -p 1521:1521 --name oracle11g registry.cn-ha…

MySQL动态列转行

介绍​​ 在实际的数据库查询中&#xff0c;有时候我们需要将表中的动态列&#xff08;即列数不固定&#xff09;转换为行&#xff0c;以便更好地进行数据分析和展示。在MySQL中&#xff0c;可以通过使用一些技巧和函数来实现动态列转行的功能。本文将介绍怎么实现MySQL动态列…

延时任务通知服务的设计及实现(三)-- JDK的延迟队列DelayQueue

一、接着上文 上文我们讲述了使用redisson的RDelayedQueue实现分布式延迟队列&#xff0c;本文我们将自己JDK的延迟队列DelayQueue实现。 相比前者的实现&#xff0c;作为进程内的延迟队列&#xff0c;它会遇到许多技术难点&#xff1a; 如何支持分布式的多个节点部署场景应…

Game Theory In Competitive Programming|Part2(原创)

在上一个Part部分&#xff0c;我们介绍了Bash game、Nim game、Misere Nim game 这三个游戏的玩法、必胜策略&#xff0c;以及必胜策略的证明&#xff0c;并介绍了有关必胜态以及必败态的两条定理&#xff0c;接下来我们会以Part1为基础&#xff0c;深挖其中的理论。 文章目录 …

【Oracle直播课】5月19日Oracle 19c OCM认证大师课 (附课件预览)

Oracle 19c OCM认证大师培训 - 课程体系 - 云贝教育 (yunbee.net) 部分课件预览 OCM部分课件预览 Oracle Database 19c Certified Master Exam (OCM) 认证大师 25 天 / 150课时 什么是Oracle 19c OCM&#xff1f; Oracle Certified Master (OCM)是Oracle认证大师&#xff0c;…

如何使用 iOS系统恢复软件修复 iPhone 问题

苹果公司向世界推出了他们可以拥有的最智能的手机。但即使是 iPhone 也无法避免智能手机常见的损坏和问题。您将熟悉最常见的问题。屏幕黑屏或卡在 Apple 徽标上&#xff1b;冻结或卡在恢复模式的 iPhone。但这样的问题不胜枚举&#xff0c;每天都有 iOS 用户在他们的设备中遇到…

利用傅里叶变换公式理解camera raw中的纹理和清晰度的概念(可惜的是camera raw的计算公式应该不会是这个傅里叶变换,只能说类似于这里的效果)

知乎说&#xff1a;在Adobe官方的解释中&#xff0c;就像图片可以分解成彩色通道&#xff08;如&#xff1a;红绿蓝通道&#xff09;&#xff0c;同样的&#xff0c;图片也可以分解成不同的频率&#xff0c;一张图片可以是由高频&#xff0c;中频和低频组成&#xff0c;例如&am…

VALSE 2024年度进展评述内容分享-视觉基础大模型的进展

2024年视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;于5月5日到7日在重庆悦来国际会议中心举行。本公众号将全方位地对会议的热点进行报道&#xff0c;方便广大读者跟踪和了解人工智能的前沿理论和技术。欢迎广大读者对文章进行关注、阅读和转发。文章是对报告人…