1. 概念

MSS(Maximum Segment Size,最大报文长度),是TCP协议定义的一个选项,MSS选项用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度

在以太网环境下,MSS=MTU-20字节TCP报头-20字节IP报头,MSS值一般就是1500-20-20=1460字节。

2. MSS的确定

MSS值只会出现在SYN报文中,即SYN=1时,才会有MSS字段值。

如图所示,服务器访问某网站时进行TCP的三次握手。

1)首先客户端会发送一个SYN请求报文,这个SYN报文的“选项”字段中会有MSS值(MSS = MUT - IP首部长度 - TCP首部长度)。该MSS值是为了告知对方最大的发送数据大小。

2)当服务器端收到SYN报文后,会向请求端返回SYN+ACK(同步确认报文)报文,其中的“选项”字段也会有MSS值。

3)通信双方选择SYN和SYN+ACK报文中最小的MSS最为此次TCP连接的MSS,从而达到通信双发协商MSS的效果。

结论: 在第二次握手后就可以确定TCP中最大传输报文(MSS)大小。

3. 确定MSS作用

在tcp交互之前避免分片的产生。

4. MTU

MTU 最大传输单元(Maximum Transmission Unit,MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。

利用ifconfig命令可以查看当前mtu的大小。

5. MTU和MSS的区分

最大报文段长度(MSS)与最大传输单元(Maximum Transmission Unit, MTU)均是协议用来定义最大长度的。

MTU应用于OSI模型的第二层数据链接层,并无具体针对的协议。MTU限制了数据链接层上可以传输的数据包的大小,也因此限制了上层(网络层)的数据包大小。例如,如果已知某局域网的MTU为1500字节,则在网络层的因特网协议(Internet Protocol, IP)里,最大的数据包大小为1500字节(包含IP协议头)。

MSS针对的是OSI模型里第四层传输层的TCP协议。因为MSS应用的协议在数据链接层的上层,MSS会受到MTU的限制。

6. PMTUD(路径MTU)

作用: 通过由中间设备修改经过其转发的TCP SYN报文中的MSS值,让中间设备参与进TCP 三次握手时SYN报文的MSS协商来避免分片。

一张参考图

部分参考:

https://zhuanlan.zhihu.com/p/139537936

最大报文段长度——MSS相关推荐

  1. TCP/IP协议:最大报文段长度(MSS)是如何确定的

    TCP提供的是一种面向连接的,可靠的字节流服务,TCP提供可靠性的一种重要的方式就是MSS.通过MSS,应用数据被分割成TCP认为最适合发送的数据块,由TCP传递给IP的信息单位称为报文段或段(seg ...

  2. TCP/IP协议:最大报文段长度(MSS)是如何确定的(3)

    一.实际使用中的问题 用户在使用路由器访问Internet时,经常会反馈不能访问网页(或部分网页)以及使用Outlook收发邮件(这些应用是基于TCP或UDP的),但进行Ping包时没有问题,这时候检 ...

  3. TCP/IP协议:最大报文段长度(MSS)是如何确定的(2)

    一旦DF位置一,将不允许中间设备对该报文进行分片,那么在遇到IP报文长度超过中间设备转发接口的MTU值时,该IP报文将会被中间设备丢弃.在丢弃之后,中间设备会向发送方发送ICMP差错报文. 为了简单直 ...

  4. TCP协议MSS最大报文段长度概述

    MSS,最大报文段长度(Maximum Segment Size ),是TCP协议的一个选项,用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度(不包括文段头). 在这之前, ...

  5. TCP协议的特点和TCP报文段格式

    参考:https://www.bilibili.com/video/BV19E411D78Q?p=62 传送数据之前必须建立连接,数据传送结束后要释放连接.不提供广播或多播服务.由于TCP要提 供可靠 ...

  6. 【计算机网络】传输层 : TCP 协议 ( TCP 协议特点 | TCP 报文段首部格式 | TCP 报文段控制位 )

    文章目录 一.TCP 协议 特点 二.TCP 报文段首部格式 三.TCP 报文段首部 666 控制位 一.TCP 协议 特点 TCP 协议 特点 : ① 面向连接 : TCP 协议的连接是 " ...

  7. TCP报文发送的那些事

     今天我们来总结学习一下TCP发送报文的相关知识,主要包括发送报文的步骤,MSS,滑动窗口和Nagle算法. 发送报文  该节主要根据陶辉大神的系列文章总结而来.如下图所示,我们一起来看一下TCP发送 ...

  8. TCP和UDP报文头格式(转)

    一.TCP    1.源端口和目的端口:各占2个字节. 2.序号:占4字节.序号范围是0~2^32-1.TCP是面向字节流的,TCP连接中传送的字节流中的每个字节都按顺序编号.整个要传送的字节流的起始 ...

  9. TCP报文发送的那些事 1

     今天我们来总结学习一下TCP发送报文的相关知识,主要包括发送报文的步骤,MSS,滑动窗口和Nagle算法. 发送报文  该节主要根据陶辉大神的系列文章总结而来.如下图所示,我们一起来看一下TCP发送 ...

最新文章

  1. 科技边框_智能手机窄边框喷射点胶机欧力克斯
  2. 从成本角度看Java微服务
  3. 一个简单的配置管理器(SettingManager)
  4. 【机器学习基础】时间序列基本概念
  5. Cortex-M3-栏目-文章来源
  6. ios下划线变量:为什么变量前要加下划线才有用?
  7. C++学习笔记(三)
  8. 六十五年来,他的祖国向他道歉了三次
  9. 程序员面试金典——3.3集合栈
  10. c语言编程:有理数比较,有理数类的设计
  11. saltstack实战--远程执行之返回(returner)
  12. 快读与快输(读入优化与输出优化、QIO优化)
  13. 关于js中的类式继承
  14. 听觉能力类毕业论文文献有哪些?
  15. 移动硬盘制作随身系统
  16. Net start 命令详
  17. ArcGIS教程:ArcGIS中的图表是什么
  18. blood pressure android app,BP(Blood Pressure) Diary
  19. Cocos Creator性能优化---DrawCall
  20. 主流网络文学网站流量分析用户需求

热门文章

  1. 个人实验第二次记录过程
  2. 数据挖掘综述——王光宏、蒋平
  3. 无法删除vmware较早版本,用用这个方法彻底清除
  4. 如何看懂MITRE安全评测报告
  5. 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚 DP + 线段树 / SPFA
  6. 用Python将《青花瓷》的歌词生成词云图
  7. android小结2(诚迈时期)
  8. 心领神会:英文广告语(转)
  9. PicGo+GitHub+jsDelivr搭建免费cdn加速图床
  10. linux随机删除指定文件夹中的部分数据