当前位置: 首页 > ops >正文

理解协议最大传输单元(MTU)和TCP 最大报文段长度(MSS)

1. 背景

公司的网络使用办公防火墙NAT代理访问互联网,托管在IDC的服务器也在机房防火墙后,也经过NAT。公司访问IDC服务器,通过SSL VPN连接,访问某些网页时,经常会打不开或页面错误。怀疑是MTU值造成的。

2. 测试

2.1 测试VPN链路中最大MTU

1. SSL VPN客户端不限制MTU
在这里插入图片描述

2. 测试访问IDC内网服务器
经测试,发现数据包长度1384时可以通过,1385时就被丢弃。

  • 172.27.2.3 IDC内服务器IP
  • f 在数据包中设置“不分段”标记(仅适用于 IPv4)。
  • l 1384 设置数据部分长度为1384

在这里插入图片描述

2.2 测试结果说明

  1. 网络链路
    办公网IP --> 办公网网关防火墙(MTU=1472)–> 互联网链路 --> IDC防火墙 --> IDC内服务器IP
  • 最小MTU限制是1472(办公网网关防火墙)
  • 1384字节(数据包)+8字节(ICMP)+20字节(IP)=1412字节
  • 1472- 1412 =60字节,应该是SSL VPN 二次封装的头部字节

3. 解决

3.1 修改VPN客户端

直接修改VPN客户端设置,配置“虚拟网卡MTU值”小于1400(图中设置1384)
在这里插入图片描述

3.2 修改VPN服务端

修改华为防火墙设置,指定“TCP 最大报文段长度(MSS)”小于1384(图中设置1384)
在这里插入图片描述

4. 概念

4.1 说明

  1. 最大报文段长度(MSS,Maximum Segment Size)
  2. 最大传输单元(MTU,Maximum Transmission Unit)
属性MTU(最大传输单元)MSS(TCP 最大报文段长度)
所属层次数据链路层(如以太网、VPN 隧道等)TCP 传输层
定义链路层一次能传输的最大字节数(含所有头部)TCP 报文段中数据部分的最大字节数(不含头部)
包含内容包含 IP 头部、TCP/UDP 头部、应用层数据(即 “整个数据包”)仅包含 TCP 协议承载的应用层数据(纯 payload)
典型值以太网默认 1500 字节,VPN 隧道可能更小(本例中 1472)通常为 MTU 减去 IP 头部(20 字节)和 TCP 头部(20 字节),如 1460 字节

4.2 关系

参考: TCP/IP协议-最大传输单元MTU和最大分段大小MSS

  1. 当IP数据包在相应链路层传输前,若检测到IP数据包的长度大于MTU的值,则IP数据包在IP层进行分片,使得每个数据包的长度小于MTU,且每个数据包到达目的地之前不会被重组。
  2. 若数据长度超过MSS长度,则TCP协议就会分片,而不是等到IP层再分片。
  3. MSS 是基于 MTU 计算的,目的是避免 TCP 数据包在 IP 层被分片(分片会降低效率,甚至可能被某些设备丢弃)。
    计算公式(简化版):
  4. MSS = MTU - IP头部长度 - TCP头部长度
http://www.xdnf.cn/news/17383.html

相关文章:

  • 【ros_humble】3.人脸检测python(服务通讯和参数通讯介绍)
  • jenkins-飞书通知机制
  • mac安装node.js
  • 前端懒加载技术全面解析
  • Yi大模型-零一万物发布的开源大模型
  • [FOC电机控制]霍尔传感器于角度问题
  • Docker容器部署Tomcat线上商城
  • golang的二维数组
  • AI工具在数据质量管理中的应用
  • windows10 ubuntu 24.04 双系统 安装教程
  • Ubuntu和Windows系统Kafka配置方法
  • Linux的软件防火墙iptables
  • 机器翻译实战:使用Gensim训练中英文词向量模型及可视化
  • QML开发:高级布局组件
  • 【Python 语法糖小火锅 · 第 1 涮】
  • 论文阅读 2025-8-3 [FaceXformer, RadGPT , Uni-CoT]
  • 矩阵的条件数 向量的条件数
  • 大疆上云之SRS视频流服务配置
  • “黑影御剑飞行”视频引发的思考
  • 人类语义认知统一模型:融合脑科学与AI的突破
  • Linux网络子系统架构分析
  • Linux网络编程:TCP的远程多线程命令执行
  • 商品、股指及ETF期权五档盘口Tick级与分钟级历史行情数据多维解析
  • 元数据管理与数据治理平台:Apache Atlas 词汇表 Glossary
  • DeepPHY Benchmarking Agentic VLMs on Physical Reasoning
  • QML 鼠标穿透
  • dokcer 容器里面安装vim 编辑器
  • 【lucene】HitsThresholdChecker命中阈值检测器
  • 闲鱼智能监控机器人:基于 Playwright 与 AI 的多任务监控分析工具
  • PNPM总结