网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

什么是最大段大小?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

在建立TCP连接的过程中,最大段大小(MSS)这非常重要。MSS指的是TCP头部中的一个字段,它表示设备能够接收的、以字节为单位的最大数据量。请考虑数据链路层中的帧结构。

什么是最大段大小?

最大段大小,即MSS,是对通过互联网等网络传输的数据包的大小进行限制的一个参数。在网络上传输的所有数据都会被分割成多个数据包。每个数据包中都会包含多个头部信息,这些头部信息包含了有关数据包的内容以及目标地址的信息。而数据包中的有效载荷部分,也就是不包含头部信息的那部分内容,其大小就是由MSS来决定的。

MSS就像是一个只能测量拖车的秤。而数据包则相当于一种运输工具,其中,负载就是拖车;而头部信息则相当于卡车本身。如果拖车的重量超过了允许的范围,那么卡车就无法到达目的地了。

数据链路层中的帧格式结构
  • 数据链路层的作用是将帧从一个节点传输到另一个节点。它由一个头部、一个尾部以及一部分有效载荷组成。头部包含了关于数据包数量的信息;尾部则标志着数据包传输的结束;而有效载荷则包含了实际的数据内容。
  • 这种载荷被称为“”。最大传输单元(Maximum Transmission Unit)这是网络中可以传输的最大数据包或帧的大小,以字节为单位来指定。比如,在互联网上就可以发送这样的数据包或帧。

示例 –以太网

  • 在以太网中,MTU的值为1500字节。这一数值是在数据链路层中确定的。
  • 该装置携带的载荷为1500 B,由……接收。网络层其数据报/负载部分的大小为1480字节,而头部部分的大小为20字节。
  • 当传输层接收到数据负载时,其大小为1480字节。而头部的大小则被记录为20字节。这里所说的“数据负载”实际上指的是“最大段大小”。为了确保通信能够顺利进行,数据段和头部的总字节数必须小于或等于最大传输单元中的字节数。

注意:因此,最大分段大小指的是单个数据包中可以承载的最大数据量。所谓“最大传输单元”,则是指能够在不被分割的情况下通过网络传输的最大数据包大小。

计算最大段大小

另一个用于确定MSS的包大小指标是最大传输单元(MTU),它包含了TCP和IP的相关信息。互联网协议为了继续这个例子,MTU会综合考虑车辆、拖车和货物的总重量,而不仅仅是拖车和货物的重量。本质上来说,MSS就是MTU减去IP地址的大小之后的数值。TCP头部:

MTU – (IP头部 + TCP头部)= 最大段大小(MSS)

MTU和MSS之间的一个重要区别在于:如果数据包的大小超过了设备的MTU值,那么该数据包就会被分割成多个较小的部分。另一方面,如果数据包的大小超过了MSS值,那么这个数据包就会被丢弃,无法被传输出去。

什么是TCP?

传输控制协议它被称为TCP。这是一种传输层协议,能够使得数据包更轻松地从一处传输到另一处。作为一种面向连接的协议,它在计算机设备之间建立连接之后才开始进行通信。

TCP头部是一个结构化的数据结构,它位于每个TCP数据包的开头部分,用于记录与传输数据相关的信息。TCP头部包含许多字段,这些字段中包含了诸如源端口、目标端口、序列号、确认号、窗口大小、校验和以及标志等关键信息。以下是TCP头部中常见的关键字段:

  • 源端口:指定了源端口号,该号码用于标识在供应工具上发送数据的设备。
  • 目标端口:指定了目标端口的多种类型,这些类型用于标识在目标工具上接收数据的设备。
  • 序列号:指定了 TCP段中第一个信息字节的序列类型。
  • 致谢编号:指的是通过TCP协议的发送方所预测的后续序列数量。
  • 数据偏移量:以32位字符串的形式,指定了TCP头部中的各个字段所占据的时间段。
  • 预留的/占用的预留供将来使用,需要将其设置为零。
  • 旗帜:这些标志用于操控TCP段的行为,包括SYN(同步)、ACK(确认)、FIN(结束)、RST(重置)等。
  • 窗口大小:它规定了“get hold of”窗口的大小,即在需要确认之前可以接收的记录数量。
  • 校验和:用于检测错误,以确保在传输过程中TCP部分的完整性。
  • 紧急提示:它表示了与整个序列的偏移量,从而指示了在TCP段中统计数据的结束位置。
  • 选项:这些可选字段可以包含额外的控制记录或参数。

TCP和IP头部的大小

TCP头部的大小通常为20字节。IP头部同样为20字节,其中包含了源地址和目的地址等信息。IP地址虽然TCP和IP数据包中都包含可选的头部字段,但实际上这些字段很少被使用。

字节是计算机科学中用来表示内存大小的单位,它相当于8个二进制数字,或者由8个1和0组成。

IPsec对MSS有哪些影响?

最大分段大小(Maximum Segment Size,MSS)是TCP传输控制协议中的一个参数,它规定了单个TCP数据包中可以包含的最大统计信息量。 它代表了以单一个数据包的形式传输的最大有效载荷长度,同时不会造成数据分片的情况。 MSS的成本是在TCP握手过程中协商确定的。通常,该成本是根据网络路径的最大传输单元大小来决定的。 当使用IPsec(互联网协议安全)时,它可能会以以下方式影响MSS:

  • 加密的额外成本:IPsec为IP数据包增加了额外的头部信息以及加密开销,这可能会导致TCP段的整体大小增加。这种额外的开销会占用更多的空间,从而减少了可用于传输TCP数据的空间。这无疑会降低MSS值,进而影响到数据传输的效率。
  • 碎片化在某些情况下,如果生成的数据包大小超过了网络节点的MTU限制,那么IPsec封装可能会导致数据包的碎片化。这种碎片化会引入效率问题,并影响整体性能,尤其是在那些延迟较高或存在数据包丢失问题的网络中。
  • 路径MTU发现(PMTUD):路径MTU发现是一种由TCP使用的机制,它根据网络路径的MTU值来动态确定最佳的MSS值。当使用IPsec时,PMTUD还需要考虑由于IPsec封装所带来的额外开销,以确保数据包不会不必要的被分片。
  • 隧道传输与传输模式:IPsec可以配置为在隧道模式或传输模式下运行。在隧道模式下,整个IP数据包(包括原始的IP头部)都会被封装在IPsec头部中,这可能会通过增加额外的开销来影响MSS的值。而在传输模式下,只需对原始IP数据包的有效载荷进行加密即可,这样对MSS的影响就会较小。

MSS夹紧装置

在这种情况下,确保数据包能够顺利到达目的地的一种方法是,将进入系统的数据包的负载规模缩小一些。 这可以通过设置服务器来实施,让服务器在TCP握手过程中,通过发送自己愿意接收的数据包的最大载荷大小信号,从而限制其他服务器所能传输的最大载荷大小。 例如,当服务器A和服务器B建立TCP连接时,如果服务器B发送的消息的最大有效载荷大小为1,436字节,那么服务器A在连接期间也会发送最大有效载荷为1,436字节的数据包。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料