MSS 是TCP选项中最经常出现,也是最早出现的选项。MSS选项占4byte。MSS是每一个TCP报文段中数据字段的最大长度,注意:只是数据部分的字段,不包括TCP的头部。TCP在三次握手中,每一方都会通告其期望收到的MSS(MSS只出现在SYN数据包中)如果一方不接受另一方的MSS值则定位默认值536byte。
MSS值太小或太大都是不合适。太小,例如MSS值只有1byte,那么为了传输这1byte数据,至少要消耗20字节IP头部+20字节TCP头部=40byte,这还不包括其二层头部所需要的开销,显然这种数据传输效率是很低的。MSS过大,导致数据包可以封装很大,那么在IP传输中分片的可能性就会增大,接受方在处理分片包所消耗的资源和处理时间都会增大,如果分片在传输中还发生了重传,那么其网络开销也会增大。因此合理的MSS是至关重要的。MSS的合理值应为保证数据包不分片的最大值。对于以太网MSS可以达到1460byte.
不MSS相似的在IP层也有一个类似的概念---MTU(Maximum Transfer Unit)下图可以清晰翻译MSS不MTU 的关系:

MTU=MSS+TCP Header+IP Header.

事实是发送方和接收方存在很多中间设备,那MSS是如何协商的呢?

请看下图:

TCP中的MSS解读相关推荐

  1. TCP中的粘包、拆包问题产生原因及解决方法

    目录 粘包/拆包 问题产生原因: 解决 粘包/拆包 问题: 为什么TCP有粘包? 为什么UDP没有粘包? 发生在网络的哪些层上? 粘包/拆包 问题产生原因: 发生TCP粘包或拆包有很多原因,现列出常见 ...

  2. TCP中RTT时延的理解

    最近服务器环境部署了tcprtt网络时延监控,发现不同服务器不同节点之间的RTT时延表象非常奇怪,无法准确的判断服务器的网络情况.因此需要弄清楚什么是RTT,以及能否作为服务器网络性能的检测指标. 1 ...

  3. TCP中的拆包及粘包

    拆包 粘包 TCP是一个字节流的协议,即我们通过TCP传输的数据是一连串没有界限的数据,TCP只会根据缓冲区的大小和实际情况进行数据包的分割,那么我们一个完整的业务数据,可能会被TCP拆分成多个包进行 ...

  4. linux内核协议栈 TCP选项之MSS

    目录 1 MSS概述 2 客户端三次握手 2.1 发送SYN段MSS选项值 2.1.1 tcp_advertise_mss() 2.1.2 tp->advmss的初始化 2.2 接收SYN+AC ...

  5. HashMap中ConcurrentModificationException异常解读

    HashMap中ConcurrentModificationException异常解读 参考文章: (1)HashMap中ConcurrentModificationException异常解读 (2) ...

  6. /proc/net/tcp中各项参数说明

    /proc/net/tcp中的内容由tcp4_seq_show()函数打印,该函数中有三种打印形式,我们这里这只列出状态是TCP_SEQ_STATE_LISTENING或TCP_SEQ_STATE_E ...

  7. TCP中recv解阻塞的两种方式

    TCP中recv解阻塞的两种方式 1.收到客户端发送的数据 2.客户端关闭了套接字,可以通过判断收到数据的长度来判断客户端是否下线,长度为0代表已下线. send操作 1.在阻塞模式下send操作将会 ...

  8. wireshark提取RTSP over TCP中的视频流

    wireshark提取RTSP over TCP中的视频流 文章目录 wireshark提取RTSP over TCP中的视频流 1 背景 2 提取前准备 3 H264提取步骤 4 后记 1 背景 前 ...

  9. 计算机网络之TCP中6种标识位

    文章目录 计算机网络之TCP中6种标识位 1.TCP中6种标识位 2.SYN 3.ACK 4.FIN 计算机网络之TCP中6种标识位 1.TCP中6种标识位 标志位也叫位码.也叫控制位 SYN (sy ...

最新文章

  1. layui 下拉选择框可以选择但不显示数据值_你想做的quot;基因药物疾病quot;网络数据在这里!...
  2. 人工智能 | SLAM与Visual Odometry技术综述(浙江大学智能系统和控制研究所)
  3. Python接口自动化-接口基础(二)
  4. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第2节 Stream流式思想概述_1_使用传统的方式,遍历集合,对集合进行过滤...
  5. LINUX SHELL中echo如何处理特殊字符
  6. java aspose例子_在Java中使用Aspose对文档操作示例
  7. 勤哲excel服务器自动计算工资,用勤哲Excel服务器做财务软件
  8. NBU备份速度快慢调整
  9. 布料仿真先导2-带阻尼的单个小球单摆下的拉格朗日方程列些和matlab仿真
  10. SQL实现对销售表现重要指标的计算,对用户特征分层看销售贡献,并统计消费的二八法则
  11. 草莓电吉他音源 Orange Tree Samples Evolution Strawberry Kontakt
  12. Android 屏蔽home键
  13. pdf照片显示正常打印时被翻转_注意!五省二级建造师考试准考证开始打印
  14. 机器学习_经典模型_逻辑回归(logistic regression)
  15. 崩坏35.4版本什么时候更新
  16. 树莓派声音输出设置_Raspberry Pi(树莓派)声音输出的设置
  17. UEFI开发与调试---edk2中的Module
  18. 用C语言写俄罗斯方块
  19. 怎样将腾讯视频下载到的电影传入手机_腾讯视频怎么缓存视频
  20. LCD段码液晶屏PIN脚间距

热门文章

  1. rabbitmq 连接失败pika.exceptions.ProbableAccessDeniedError
  2. 计算机技术英语教学,计算机技术在英语教学中的应用
  3. php 支付宝回调验证失败,支付宝回调验证签名失败怎么解决?
  4. 三星s9 测试性能软件,三星S9+和iPhone8+软件打开速度测试:谁才是状元郎
  5. lwIP 操作系统模拟层
  6. 踩坑:preventDefault
  7. event.preventDefault VS return false
  8. macport mysql_Mac系统中使用MacPorts安装MySQL
  9. groovy 规则引擎 java_Java内嵌Groovy脚本引擎进行业务规则剥离(一)
  10. Charles设置断点