MSS与MTU的关系

MSS: Maximum Segment Size,即最大报文段长度。MSS是TCP协议的一个选项,用于在TCP连接建立时,收发双方可以通知对方通信时每一个报文段所能承载的最大数据长度。注意该选项不是协商选项,只是一种通知。即接收方告知发送方自己的MSS大小,对方使用该值与否,取决于对方。

MTU: Maximum Transmission Unit,即最大传输单元,表示数据链路层可以传输的最大数据包(不包含帧首部和尾部)。每个网络都有其MTU值。该值大小可能是由于技术限制,也可能是工程、技术或管理上的考虑。即使是同一种网络在不同的环境中或设置下,MTU也是不同的。一些流行的网络中,MTU的值如下:


ARPANET, MILNET    = 1007

Ethernet(以太网)    = 1500


MTU作用于数据链路层,因网路不同而不同。MSS作用域传输层,表明传输层能够传输的数据大小。高层协议必然受到低层协议和数据链路的限制。因此,MSS也受限于MTU.具体的关系如下:

在最好的情况下,即IP数据报和TCP报文段都只使用最小的首部,则

MSS = MTU - 20(IP首部) - 20 (TCP首部)

MSS = MTU - 40

在最坏的情况下,IP数据报和TCP报文段都使用最大的首部长度,则

MSS = MTU - 60(IP首部) - 60 (TCP首部)

MSS = MTU - 120

也就是说在以太网环境中,最大MSS = 1500 - 40 = 1460字节。

为什么我们要十分注意MSS以及MTU ?

如果我们的IP数据包交付给数据链路层封装成帧时,如果IP数据包的大小大于MTU,我们就必须对IP数据报进行分片,等到达终点后再对IP分片进行组装,这无疑降低了网络利用率和网络吞吐量。因此,我们必须尽量控制MSS大小不超过最大大小,从而使得IP数据报交付给数据链路层时能够不分片。

现实

在当今流行的操作系统中,在使用IPv4时都将MTU设置为576,因此MSS也就被限制在536以内。为什么操作系统实现中将MTU设置为576呢?因为老的ISP拨号网络的标准值为576,甚至Internet上以下路由器的MTU也是576.原则上来说,只要网络连接稳定性高,MTU越大则传输效率越高。但是,如果接收机器所在网络或传输路径上路由器的MTU小的话,数据帧将不得不再次被拆分,这样反而降低了效率。

在使用IPv6时,MTU默认设置为1280,则MSS为1220( 1280 - 20字节TCP首部-40字节IP首部)

区分

最大报文段长度(MSS)与最大传输单元(Maximum Transmission Unit, MTU)均是协议用来定义最大长度的。不同的是,MTU应用于OSI模型的第二层数据链接层,并无具体针对的协议。MTU限制了数据链接层上可以传输的数据包的大小,也因此限制了上层(网络层)的数据包大小

 

 

 

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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表示数据链路层所能传输的最大数据包大小,决定了网络传输时每个数据包的最大大小。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值