网站首页 > 文章精选 正文
今天我们来讲下MSS最大报文段长度概述。
MSS,最大报文段长度(Maximum Segment Size ),是TCP协议的一个选项,用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度(不包括文段头)。
在这之前,我们需要先来看一下IP分片。IP协议的设计初衷是应用于广泛的传输介质。IPv4数据包的最大长度为65535字节。带有逐跳扩展头部和巨型帧负载选项的IPv6数据包最长可以支持4294967295字节。但多数传输链路都会强制使用一个比较小的最大数据包长度,这个长度称为最大传输单元(Maximum Transmission Unit,MTU)。
当路由器收到比出接口MTU更大的IPv4数据包时,它就必须对数据包进行分片。IP分片发生在IP层,不仅源端主机会进行分片,中间的路由器也有可能分片,因为不同的网络的MTU是不一样的,如果传输路径上的某个网络的MTU比源端网络的MTU要小,路由器就可能对IP数据报再次进行分片。而分片数据的重组只会发生在目的端的IP层。
IP分片会造成以下问题:
1、对数据进行分片会消耗CPU和内存;
2、目标设备重组时也会消耗CPU和内存 资源;
3、分片之后,如果有一个分片被丢弃,则整个数据需要重传;
4、执行4到7层过滤的防火墙有可能无法正确处理IPv4分片。
为了避免出现这样的情况,TCP最大分段长度(Maximum Segment Size,MSS)定义了接收方设备在一个TCP段中可以接受的最大数据量。TCP段可以通过一个IPv4数据包进行发送,也可以分片后使用多个IPv4数据包发送。发送方和接收方之间不会对MSS进行协商。发送设备需要对TCP分段的尺寸进行限制,使其不大于接收方设备所报告的MSS长度。
为了对避免IPv4数据包进行分片,所选TCP MSS为出接口的最小缓冲区大小和MTU减40字节。40字节包含了20字节的IPv4头部和20字节的TCP头部。比如说,默认的以太网MTU是1500字节。那么,通过以太网接口发出的IPv4数据包,其TCP段的TCP MSS就应该是1460,即用以太网 MTU的1500字节减去IPv4头部的20字节,再减去TCP头部的20字节。对于UDP包,我们需要在应用层去限制每个包的大小,一般不要超过1472字节,即以太网MTU(1500)—UDP首部(8)—IP首部(20)。
TCP MSS有助于避免在TCP连接两端对数据包进行分片,但是并不能避免因路径中的链路MTU更小而造成的分段。
在IPv6上,IPv6路由器不会对数据包进行分片,除非这台设备是数据包的源。如果一台IPv6路由器收到了比其出接口MTU大的数据包,它会丢弃这个数据包并向源发送一个ICMPv6数据包过大消息,其中会包含这个较小的MTU。
每天都有新收获! 学网络,就在IE-LAB 国内高端网络工程师培养基地
IE-LAB有优质雄厚师资力量支撑,全面的学习平台和完善的教学服务,我们培养了一批又一批的HCIE/CCIE学员,加入我们,成就未来。
猜你喜欢
- 2025-02-03 「ModbusTCP协议详解」内容有点多,但讲得很详细
- 2025-02-03 tcpdump抓udp包示例 及IP、TCP、UDP协议格式
- 2025-02-03 网络隐蔽通道构建关键技术研究综述
- 2025-02-03 为什么TCP要做成流式协议,而非包?
- 2025-02-03 计算机网络中MSS和MTU的区别(mss与mtu区别及对应关系)
- 2025-02-03 存储FC 网络(简述存储网络引入fc后的优点有哪些)
- 2025-02-03 苹果iphone12充电器品牌选择哪个 充电器功率推荐
- 2025-02-03 作为一名架构师,需要掌握的一些基础网络知识
- 2025-02-03 计算机网络参考模型(计算机网络参考模型有哪些)
- 2025-02-03 关于TCP协议的基础知识(关于tcp/ip协议)
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)