首页 > 其他分享 >MTU和MSS的作用

MTU和MSS的作用

时间:2022-12-17 11:11:09浏览次数:44  
标签:重传 IP MSS TCP MTU 分片 作用

MTU:一个网络包的最大长度,以太网中一般为 1500 字节;
MSS:除去 IP 和 TCP 头部之后,一个网络包所能容纳的 TCP 数据的最大长度。

如果在 TCP 的整个报文(头部 + 数据)交给 IP 层进行分片,会有什么异常呢?
当 IP 层有一个超过 MTU 大小的数据(TCP 头部 + TCP 数据)要发送,那么 IP 层就要进行分片,把数据分片成若干片,保证每一个分片都小于 MTU。把一份 IP 数据报进行分片以后,由目标主机的 IP 层来进行重新组装后,再交给上一层 TCP 传输层。

这看起来井然有序,但这存在隐患的,那么当如果一个 IP 分片丢失,整个 IP 报文的所有分片都得重传。

因为 IP 层本身没有超时重传机制,它由传输层的 TCP 来负责超时和重传。

当某一个 IP 分片丢失后,接收方的 IP 层就无法组装成一个完整的 TCP 报文(头部 + 数据),也就无法将数据报文送到 TCP 层,所以接收方不会响应 ACK 给发送方,因为发送方迟迟收不到 ACK 确认报文,所以会触发超时重传,就会重发「整个 TCP 报文(头部 + 数据)」。

因此,可以得知由 IP 层进行分片传输,是非常没有效率的。

所以,为了达到最佳的传输效能 TCP 协议在建立连接的时候通常要协商双方的 MSS 值,当 TCP 层发现数据超过 MSS 时,则就先会进行分片,当然由它形成的 IP 包的长度也就不会大于 MTU ,自然也就不用 IP 分片了。

经过 TCP 层分片后,如果一个 TCP 分片丢失后,进行重发时也是以 MSS 为单位,而不用重传所有的分片,大大增加了重传的效率。

标签:重传,IP,MSS,TCP,MTU,分片,作用
From: https://www.cnblogs.com/aiverhua/p/16988744.html

相关文章

  • electron transparent: true, isMaximized 不起作用
    electron13transparent为true时候isMaximized不起作用 electron13transparent为true时候isMaximized不起作用,网上好多人说总是返回false等。后来看gitub上说17版本......
  • Python SQL 驱动程序 - pymssql
    PythonSQL驱动程序-pymssql前言pymssql官方地址:https://pypi.org/project/pymssql/一、下载pymssql不通的操作系统,不同的Python版本下载对应的pymssql注意:博主运......
  • 痞子衡嵌入式:浅谈i.MXRT10xx系列MCU外接24MHz晶振的作用
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT10xx系列MCU外接24MHz晶振的作用。痞子衡之前写过一篇关于时钟引脚的文章​​《i.MXRT1xxx......
  • python编程中的if __name__ == 'main': 的作用和原理
    大多数编排得好一点的脚本或者程序里面都有这段if__name__=='main':,虽然一直知道他的作用,但是一直比较模糊,收集资料详细理解之后与打架分享。  1、这段代码的功能 ......
  • Java中Native关键字的作用
    初次遇见native是在java.lang.Object源码中的一个hashCode方法:​​publicnativeinthashCode();​​为什么有个native呢?这是我所要学习的地方。所以下面想要总结下nati......
  • 极进交换机vlan配置及MTU修改
    2000.12.15--22.55极进交换机vlan配置及MTU修改 1、查看设备物理接口及vlan信息2、配置vlan3、查看设备mtu及三层接口mtu信息4、修改设备mtu及三层接口mtu5、查看......
  • [Glib] GObject 的 dispose 和 finalize 成员函数的各自作用
    ​​GObject学习教程---第十一章8本文是学习学习他人的博客的心得(具体详见“楼主见解”),如果源网站可访问的话,建议直接访问源网站:楼主见解:主要讲解析构为什么需要2个函数来实......
  • 笔记-C语言中static作用
    C语言中,static关键词可以用来修饰变量和函数,用static关键词修饰的变量成为静态变量。static关键词的作用主要包括3个方面:1.隐藏一个项目中往往包括多个.c文件,所有未加st......
  • Netty中的Decoder和Encoder作用
    什么是编解码器每个网络应用程序都必须定义如何解析在两个节点之间来回传输的原始字节,以及如何将其和目标应用程序的数据格式做相互转换;这种转换逻辑有编解码器处理,编解码......
  • 链接脚本中 AT> 的作用
    缘由这两天在梳理芯片的启动流程,研究到了链接脚本(样本为stm32cubeide中的stm32f407的flash链接脚本).产生了一个疑问AT>是什么?答案AT>就是用于指定这个sectio......