MTU和MSS的区别

1、MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大小;以普遍使用的以太网接口为例,缺省MTU=1500 Byte,(缺省:系统默认状态)这是以太网接口对IP层的约束,如果IP层有<=1500 byte 需要发送,只需要一个IP包就可以完成发送任务;如果IP层有> 1500 byte 数据需要发送,需要分片才能完成发送,这些分片有一个共同点,即IP Header ID相同。

数据链路层,MTU为1500字节,包括IP首部等开销。一般IP首部为20字节,UDP首部为8字节,数据的有效负荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,(TCP则为1500-20-20=1460)就会出现分片现象。

2、MSS:Maximum Segment Size ,最大报文段长度,TCP提交给IP层最大分段大小,不包含TCP Header和 TCP Option,只包含TCP Payload ,MSS是TCP用来限制application层最大的发送字节数。如果底层物理接口MTU= 1500 byte,则 MSS = 1500- 20(IP Header) -20 (TCP Header) = 1460 byte,如果application 有2000 byte发送,需要两个segment才可以完成发送,第一个TCP segment = 1460,第二个TCP segment = 540。

MTU是网络传输最大报文包,MSS是网络传输数据最大值。
MSS就是你需要发出去的数据大小,MSS加包头数据就等于MTU 。
MSS就是TCP数据包每次能够传输的最大数据分段。

3、TCP通讯 MSS 确定
为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。
在这里插入图片描述

如上图 端口53842 为 A; 端口 80 为 B。

见上图,TCP SYN消息,A 发送给B 的MSS= 1460,B发给A最大MSS为1452 。

以后每次通讯,可以看出发送的数据都是 1452 byte。最终为双方中MSS较小的。
其中部分内容参考于:
链接:https://www.jianshu.com/p/3be7582ddf78

  • 18
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
目录 第1章 贡献 1 第2章 简介 2 2.1. 除外责任与许可 2 2.2. 预备知识 2 2.3. LINUX能为你做什么 3 2.4. 内务声明 3 2.5. 访问,CVS和提交更新 4 2.6. 邮件列表 4 2.7. 本文档的布局 4 第3章 介绍 IPROUTE2 6 3.1 为什么使用 IPROUTE2 6 3.2 IPROUTE2 概览 6 3.3 先决条件 6 3.4 浏览你的当前配置 7 3.4.1. 让ip显示我们的链路 7 3.4.2. 让ip显示我们的 IP 地址 7 3.4.3. 让ip显示路由 8 3.5. ARP 9 第4章 规则——路由策略数据库 11 4.1. 简单的源策略路由 11 4.2. 多重上连ISP的路由 12 4.2.1. 流量分割 13 4.2.2. 负载均衡 14 第5章 GRE 和其他隧道 15 5.1. 关于隧道的几点注释 15 5.2. IP-IN-IP 隧道 15 5.3. GRE 隧道 16 4 5.3.1. IPv4隧道 16 5.3.2. IPv6隧道 18 5.4. 用户级隧道 18 第6章 用CISCO和6BONE实现IPV6隧道 19 6.1. IPV6隧道 19 第7章 IPSEC:INTERNET上安全的IP 22 7.1. 从手动密钥管理开始 22 7.2. 自动密钥管理 25 7.2.1. 理论 26 7.2.2. 举例 26 7.2.3. 使用X.509证书进行自动密钥管理 29 7.3. IPSEC隧道 32 7.4. 其它IPSEC软件 33 7.5. IPSEC与其它系统的互操作 33 7.5.1. Windows 33 第8章 多播路由 34 第9章 带宽管理的队列规定 36 9.1. 解释队列和队列规定 36 9.2. 简单的无类队列规定 37 9.2.1. pfifo_fast 37 9.2.2. 令牌桶过滤器(TBF) 39 9.2.3. 随机公平队列(SFQ) 41 9.3. 关于什么时候用哪种队列的建议 42 9.4. 术语 43 9.5. 分类的队列规定 45 9.5.1. 分类的队列规定及其类中的数据流向 45 9.5.2. 队列规定家族:根,句柄,兄弟和父辈 45 9.5.3. PRIO队列规定 46 9.5.4. 著名的CBQ队列规定 48 9.5.5. HTB(Hierarchical Token Bucket, 分层的令牌桶) 54 5 9.6. 使用过滤器对数据包进行分类 55 9.6.1. 过滤器的一些简单范例 56 9.6.2. 常用到的过滤命令一览 57 9.7. IMQ(INTERMEDIATE QUEUEING DEVICE,中介队列设备) 58 9.7.1. 配置范例 58 第10章 多网卡的负载均衡 60 10.1. 告诫 61 10.2. 其它可能性 61 第11章 NETFILTER和IPROUTE——给数据包作标记 62 第12章 对包进行分类的高级过滤器 64 12.1. U32分类器 65 12.1.1. U32选择器 65 12.1.2. 普通选择器 66 12.1.3. 特殊选择器 67 12.2. 路由分类器 67 12.3. 管制分类器 68 12.3.1. 管制的方式 68 12.3.2. 越限动作 69 12.3.3. 范例 70 12.4. 当过滤器很多时如何使用散列表 70 第13章 内核网络参数 72 13.1. 反向路径过滤 72 13.2. 深层设置 73 13.2.1. ipv4一般设置 73 13.2.2. 网卡的分别设置 78 13.2.3. 邻居策略 79 13.2.4. 路由设置 80 第14章 不经常使用的高级队列规定 82 14.1. BFIFO/PFIFO 82 14.1.1. 参数与使用 82 6 14.2. CLARK-SHENKER-ZHANG算法 (CSZ) 82 14.3. DSMARK 83 14.3.1. 介绍 83 14.3.2. Dsmark与什么相关? 83 14.3.3. Differentiated Services指导 84 14.3.4. 使用Dsmark 84 14.3.5. SCH_DSMARK如何工作 84 14.3.6. TC_INDEX过滤器 85 14.4. 入口队列规定 87 14.4.1. 参数与使用 87 14.5. RED(RANDOM EARLY DETECTION,随机提前检测) 87 14.6. GRED(GENERIC RANDOM EARLY DETECTION,一般的随机提前检测) 88 14.7. VC/ATM模拟 89 14.8. WRR(WEIGHTED ROUND ROBIN,加权轮转) 89 第15章 方便菜谱 90 15.1. 用不同的SLA运行多个网站. 90 15.2. 防护SYN洪水攻击 90 15.3. 为防止DDOS而对ICMP限速 91 15.4. 为交互流量设置优先权 92 15.5. 使用NETFILTER,IPROUTE2和SQUID实现WEB透明代理 93 15.5.1. 实现之后的数据流图 96 15.6. 与PMTU发现有关的"基于路由的MTU设置" 96 15.6.1. 解决方案 97 15.7. 与PMTU发现有关的MSS箝位(给ADSL,CABLE,PPPOE和PPTP用户) 98 15.8. 终极的流量控制:低延迟,高速上/下载 98 15.8.1. 为什么缺省设置不让人满意 99 15.8.2. 实际的脚本(CBQ) 100 15.8.3. 实际的脚本(HTB) 102 15.9. 为单个主机或子网限速 103 15.10. 一个完全NAT和QOS的范例 104 7 15.10.1. 开始优化那不多的带宽 104 15.10.2. 对数据包分类 106 15.10.3. 改进设置 107 15.10.4. 让上面的设置开机时自动执行 108 第16章 构建网桥以及用ARP代理构建伪网桥 109 16.1. 桥接与IPTABLES的关系 109 16.2. 桥接与流量整形 109 16.3. 用ARP代理实现伪网桥 109 16.3.1. ARP和ARP代理 110 16.3.2. 实现 110 第17章 动态路由——OSPF和BGP 112 17.1. 用ZEBRA设置OSPF 112 17.1.1. 必要条件 113 17.1.2. 配置Zebra 113 17.1.3. 运行Zebra 115 第18章 其它可能性 117 第19章 进一步学习 119 第20章 鸣谢 120
TCP MSSMTU是与网络通信中数据包大小相关的概念。 TCP MSS(Maximum Segment Size,最大分段大小)是TCP头部中的一个字段,表示TCP报文段中数据部分的最大大小,即TCP协议传输数据时,每个TCP报文段中数据字段的最大大小。通过TCP MSS可以限制TCP报文段的大小,以便适应网络传输的要求和限制,避免因数据过大而导致的分片和重传。 MTU(Maximum Transmission Unit,最大传输单元)是数据链路层中的一个概念,表示在网络通信中,数据链路层所能传输的最大数据包大小。MTU包括了网络协议的头部和数据部分的大小。网络中的各个设备(如路由器、交换机等)都有不同的MTU值,而且不同的网络链路也可能有不同的MTU值。MTU决定了网络传输时每个数据包的最大大小,更大的MTu可以传输更多的数据,但会增加传输时的延迟和网络拥塞的可能性。 TCP MSSMTU有一定的关联性。由于网络链路中的设备都有不同的MTU值,当发送的TCP报文段的大小超过某个网络设备的MTU时,就会发生分片(fragmentation)。分片会增加网络传输的开销,降低传输效率。为了避免分片,TCP可以在连接建立时通过协商的方式确定合适的MSS,使得TCP报文段的大小不超过中间设备的MTU值。 总结起来,TCP MSSMTU都是为了适应网络传输而限制数据包大小的概念,TCP MSS限制了TCP报文段的大小,避免了分片和重传,MTU表示数据链路层所能传输的最大数据包大小,决定了网络传输时每个数据包的最大大小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值