最大报文段长度——MSS

2023-11-12

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的限制。

MSS与MTU的区分

6. PMTUD(路径MTU)

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

一张参考图

部分参考:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最大报文段长度——MSS 的相关文章

  • MSYS2:设置国内源,加速下载

    https mirror tuna tsinghua edu cn help msys2 收录架构 MINGW i686 x86 64 MSYS i686 x86 64 安装 请访问该镜像目录下的 distrib 目录 x86 64 i68

随机推荐

  • YOLOV5改进:CVPR 2023

    显著的渠道或空间有效性注意力产生机制更加可辨特征表示用各种计算机进行了说明视觉任务 然而 跨通道建模关系与通道降维可能在提取深度视觉表征时带来副作用 本文提出了一种新的高效多尺度注意力 EMA 方法 模块提出 专注于保留信息每个通道上 并减
  • 10.6-7 Java.抽象类与其最佳实践-模板设计模式.课堂笔记

    10 6 抽象类 10 6 1 问题引入 10 6 2 解决之道 抽象类快速入门 要点 1 当一个类中存在抽象方法时 需要将该类声明为 abstract 类 2 一般来说 抽象类会被继承 有其子类来实现抽象方法 package Senior
  • gsoap报文打印

    作为客户端的时候 soap begin recv 发送完请求报文 获取请求报文信息 g str reqXml clear std string strBuf std string size type pos1 std string npos
  • Java基本语法(初学者必看,值得收藏)

    目录 一 计算机基础 1 计算机组成 2 程序 3 编程语言 二 Java 1 Java简介 2 发展历史 3 JDK的安装和配置 4 第一个Java程序 三 Java基础 1 输出 2 代码注释 3 变量 1 概念 2 变量三要素 3 数
  • 计算机基础——Word 2010

    天软备考交流群 365218976 1 Office应用程序的启动与退出 1 1 Office程序启动 1 2 Office程序退出 2 Word窗口组成 2 1 标题栏 2 1 1 快速访问工具栏 2 2 选项卡 2 3 文档编辑区 2
  • cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize CUDA中的屏障同步

    cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize These are all barriers Barriers prevent code exe
  • python中import与from方法总结

    这篇文章主要介绍了python中import与from方法总结 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友们下面随着小编来一起学习学习吧 一 模块 包简介 模块 所谓模块就是一个 py文件 用来存
  • ufo帧率测试网站_移动全平台性能测试分析工具:PerfDog性能狗

    点击关注 我们共同每天进步一点点 PerfDog是腾讯出品的移动端性能测试工具 致力于提升移动应用和游戏的性能和品质 主打游戏APP 当然应用APP也能用 介绍 移动全平台iOS Android性能测试 分析工具平台 快速定位分析性能问题
  • Linux下安装单节点kafka

    Linux下单节点kafka的安装 官网下载地址 http kafka apache org downloads 1 查看Linux防火墙 firewall cmd state 2 解压kafka到想要安装的Linux目录下 tar zxv
  • Gogs push 报 HTTP 401 错误解决方法

    Gogs push 报 HTTP 401 错误解决方法 error RPC failed HTTP 401 curl 22 The requested URL returned error 401 错误原因 用户名和密码错误 导致验证不通过
  • 笔记 学习51单片机串口中断

    单片机的串口通信功能是比较常用的功能 80C51的串行口 我在学习的过程中 觉得SBUF的使用方法是最难的 于是对着这个图和资料一步步理解 才搞明白一点 A SBUF 和 SBUF A 的意思 51单片机通过特殊功能寄存器SBUF对串行接收
  • 【前端】Vue项目:旅游App-(8)city:标签页Tabs动态数据:网络请求axios与request、数据管理store与pinia、各种封装

    文章目录 目标 过程与代码 安装相关库 封装网络请求相关代码 网络请求数据 网络请求数据操作封装 pinia管理数据并封装 tab栏改为动态数据 效果 本篇总结 总代码 修改或新建的文件 service index modules的city
  • pytorch:计算网络模型在gpu上的推理时间

    计算网络模型的推理时间 网络模型的推理过程是在gpu上进行的 方法一 import torch import time net net to cuda 网络模型 input input to cuda 输入 time start time
  • 最详细小白入门Python7-bug和调试

    bug调试工具的使用 打断点 在行号后边点击出现小红点 右键debug进入调试模式 代码执行暂停到断点位置代码执行之前 debugger 查看参数及变量在执行过程中的变化情况 console 查看控制台输出内容 step over 单步执行
  • pytorch图像检索评价指标MAP

    map是图像检索模型的一个评价指标 以图片中第一个计算AP值为例 P的分别是 1 2 3 3 6 4 9 5 10 R值分别是 1 5 2 5 3 5 4 5 1 AP计算结果 1 2 3 3 6 4 9 5 10 5 https blog
  • c语言蝴蝶图案代码,通达信指标公式,临界点蝴蝶图案出现,暴涨趋势出现(附源码)...

    暴涨临界点指标 如上图所示 保障临界点指标专门用于监控起爆买点 当临界点出现后期一定会有上升 一战成名主图 指标源码 DRAWGBK 1 RGB 36 38 40 RGB 24 16 51 0 1 0 VAR1B 100 EMA EMA C
  • UE4中英文语言切换的三种方式(当然也可以多种语言)

    一 用ue4的Localization Dashboard 1 2 3 4 5 最后 必须独立运行游戏才能看到效果 二 使用WidgetSwitcher 1 2 3 4 用一个按钮点击进行Index的修改 就可以完成中英文切换 三 用两个T
  • 2-软件生命周期模型

    软件生命周期模型 软件工程过程 工程项目的PDCA循环 戴明环 美国质量管理专家戴明博士针对工程项目的质量目标 将全面质量管理思想引入工程项目过程 提出了PDCA循环 也称为戴明环 即Plan 规划 Do 执行 Check 检查 Actio
  • PTA9文件操作(python3)

    python程序设计09 文件操作 9 1 从文件中查找最长的单词 20分 请勿修改 20 分 9 2 求文件行数 20 分 9 3 analyze the character distribution of a document 20 分
  • 最大报文段长度——MSS

    1 概念 MSS Maximum Segment Size 最大报文长度 是TCP协议定义的一个选项 MSS选项用于在TCP连接建立时 收发双方协商通信时每一个报文段所能承载的最大数据长度 在以太网环境下 MSS MTU 20字节TCP报头