MTU MSS 详解记录
MSS: Maxitum Segment Size 最大分段大小
•
|
发送符合 RFC 792 中最初定义的“ICMP Destination Unreachable-Fragmentation Needed and DF Set”消息,然后丢弃该包。
原始消息格式中不包含有关转发失败的链路的 IP MTU 的信息。
|
•
|
发送符合 RFC 1191 中重新定义的“ICMP Destination Unreachable-Fragmentation Needed and DF Set”消息,然后丢弃该包。此新消息格式包含一个 MTU字段,可指出转发失败的链路的 IP MTU。
RFC 1191 定义了路径 MTU (PMTU)发现,它使得成对的 TCP 对等方能够动态地发现二者之间路径的 IP MTU,从而发现该路径的 TCP MSS。一旦收到符合 RFC 1191定义的“Destination Unreachable-Fragmentation Needed and DF Set”消息,TCP就会将该连接的 MSS 调整为指定 IP MTU减去 TCP 和 IP报头的大小。这样,在该 TCP 连接上发送的后续包就不会超过最大大小,无需分段即可在该路径上传输。
|
•
|
直接丢弃包。
直接丢弃需分段但 DF 标记设置为 1的包的路由器称为 PMTU 黑洞路由器。
|
•
|
此处的 destination 可以是一个 IP地址,也可以是一个可解析为 IP 地址的名称。
|
•
|
-f 选项可将 DF标记设置为 1。
|
•
|
-l 选项指定 ICMP Echo消息的有效负载的大小。
|
•
|
ICMPEchoPayloadSize 是 ICMP Echo消息的有效负载的字节数。
|
PMTU 黑洞路由器的解决方案和工作方法
1. 配置中间路由器以支持路由器端 PMTU发现
1.
|
打开 Network Connections 文件夹,记下 LAN连接的名称,如“Local Area Connection”。
|
2.
|
单击开始,单击“运行”,键入“regedit.exe”,然后单击“确定”。
|
3.
|
使用注册表编辑器工具的树图(左边窗格)打开如下键:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \Network\{4D36E972-E325-11CE-BFC1-08002BE10318}
|
4.
|
此键下面是与已安装的 LAN 连接相关联的全局唯一标识符 (GUID)的一个或多个键。这些 GUID 键中的每一个都有一个 Connection子键。打开每个 GUID\Connection 键,寻找值与第一步中记下的 LAN连接的名称匹配的 Name 设置。
|
5.
|
如果找到包含与 LAN 连接匹配的 Name设置的 GUID\Connection 键,请写下或记下该 GUID值。
|
6.
|
使用注册表编辑器的树视图打开如下键:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip \Parameters\Interfaces\GUID
|
7.
|
右键单击树视图中的“GUID”键,指向“新建”,然后单击“双字节值”。
|
8.
|
在注册表编辑器工具的内容窗格(右窗格)中,为新注册表设置的值键入 MTU,然后按 ENTER。
|
9.
|
在内容窗格中,双击新的 MTU 设置,并在“编辑双字节值”对话框中选择“十进制”,然后在“数值数据”中键入有效 MTU 值。
|
10.
|
单击“确定”。关闭注册表编辑器工具。
|
11.
|
重新启动计算机使 MTU 设置生效。
|
组网:
PC-AR2831-AR2880-CISCO设备组成的核心网-SERVER
网络运行MPLS VPN;AR2880为PE;AR2831为CE,PE、CE间运行OSPF,多CE配置;路由器各接口MTU、TCP MSS值采用默认设置
AR2880:Version 3.30, Release 0008
AR2831:Version 3.30, Release 0008
现象1:
AR2880路由器的以太口MTU使用缺省设置时,使用的OA系统(BS架构)部分流程无法运行,上网发邮件时附件无法粘贴;但是在cisco设备上,同样的组网没有发现问题;
现象2:
将AR2880路由器的以太口MTU改为512测试,邮件附件可以粘贴,但OA主页打开后无内容,刷新不了;将AR2880路由器的以太口MTU改为1200测试,邮件附件可以粘贴,OA主页可以正常显示,但是点击OA系统的"起草公文"无页面弹出,正常状况下应弹出新建公文页面;
告警信息:
无
原因分析:
原因分析:
可能是应用软件问题;可能是MTU、TCP MSS值协商配置问题;
具体分析:
1、接口MTU、TCP MSS采用缺省值1500时,无法贴附件;
这是因为应用了三层MPLS VPN技术,增加了8bit的标签,MTU值协商出现问题。
AR28XX路由器默认在接口上自动分片,所以在普通的应用中采用默认值不会影响业务。但路由器接口上收到一个报文长度大于本接口MTU值的报文,如果该报文被强制打上不分片的标记,将丢弃报文,并返回一个ICMP差错报文(type 3,code 4),通知报文发起者丢弃原因。报文发起者将发送比较小的报文。通过多次上述报文协商,将得到对于某一个固定路径上的最小Mtu值,这个过程叫做Mtu Discovery,通过MTU Discovery来确定报文路径上最小可通过的MTU;如果两个设备相连,没有MTU Discovery功能并且MTU值不一致,将可能导致丢弃报文。只有把双方设备的Mtu为对端设备MRU的最小值,才能正常通信。由于某些组网考虑到网络安全问题和性能,往往会把ICMP报文过滤掉,引起Mtu Discovery不能正常运行;应用软件由于程序算法问题或根本没有相应协商功能,也会导致了部分应用异常。
2、更改接口MTU值以后,仍然有部分业务不正常;
这是因为TCP MSS值协商的问题。
MSS值的计算方法是:MSS=MTU-IP-TCP(如果有其他pppoe、加密报文头的话也同样减去),也就是说MSS值其实就是TCP所承载的净载荷的长度。由于AR28XX接口缺省的MTU是1500字节,故一般要求加密报文头+链路层开销+IP头(20-60字节)+TCP报文(20字节)小于1500字节,即TCP分片配置1200左右比较适合。缺省情况下,TCP报文不分片。因此TCP MSS不匹配也会引起部分应用异常。
处理过程:
本例中通过修改路由器接口MTU、TCP MSS值,解决问题。
具体报文mtu、tcp mss大小要根据具体应用,按经验值进行尝试,选择最佳值;其中MTU值的选择可以通过ping命令设置不分片来进行测试;TCP MSS值的选择则可以通过MTU减去相应其它加密、链路层开销、IP头、TCP头等字节计算。
具体过程如下:
1、本例中使用cisco路由器时相关应用正常。初步估计是mtu值问题,但是对普通应用AR28系列路由器会自动分片,不会影响业务。测试发现在client上ping大包的时候,如果不设置不允许分片,业务正常。看来客户应用中做了不允许分片的设置或其它原因mtu协商错误。更改路由器接口mtu为1500-8=1492以后,业务正常。
2、更改接口mtu以后,其它部分业务还不正常。分析原因是tcp mss值的问题。减小tcp mss值8字节1460-8=1452,但是还有部分业务不正常。询问软件集成商,得到答复部分软件中使用了加密技术。而且不同的应用加密强度不同。
3、逐步调整路由器接口的tcp mss值,减到到1200以后,所有业务测试通过。
命令说明:
1、mtu命令用来设置以太网接口的MTU(最大传输单元),undo mtu命令用来恢复MTU的缺省值。缺省的MTU为1500。使用mtu命令改变接口最大传输单元MTU后,需要先对接口执行shutdown命令,再执行undo shutdown命令将接口重启,以保证设置的MTU生效。
2、tcp mss命令用来配置TCP报文分片,undo tcp mss命令用来取消TCP报文分片。
本文出自 “我是木头” 博客,请务必保留此出处http://infotech.blog.51cto.com/391844/123859
MTU MSS 详解记录相关推荐
- MTU MSS 详解
需要注意的是,区别两种帧封装格式:802标准帧和以太网帧 1,在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验码.RFC 1042(IEEE 802) 2,RFC ...
- Linux中修改MTU值及MTU值详解
部分参考<鸟哥的Linux私房菜>http://cn.linux.vbird.org/ MTU( Maximum Transmission Unit,最大传输单位) 用来设置描述网络接口的 ...
- 【三维重建系列】相机模型部分公式详解记录
相机模型P矩阵 公式: P = K R [ I ∣ − C ∽ ] P = KR[I | -C^{\backsim}] P=KR[I∣−C∽] 其中 C ∽ C^{\backsim} C∽表示平移矩阵 ...
- 利用jquery操作ajax,利用jquery对ajax操作,详解原理(附代码)
1.jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector ...
- CATransform3D 特效详解
看了一篇关于CATransform3D 特效详解 记录一下 以后慢慢看 关于图层的几个坐标系. 对于ios来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大.越往右,X值越大. 一个图层的 ...
- MTU、IP MTU 和 MSS 参数详解
1. 概述 本文主要分析网络通信中MTU,IP MTU和MSS的概念以及它们之间的关系.这三个概念对于网络通信来说非常重要,常常很多网页打不开等问题都是这几个参数没配置好导致的. 2. MTU 最大传 ...
- 详解DNS的常用记录(下):DNS系列之三
详解DNS常用记录(下) 在上篇博文中我们介绍了DNS服务器中几种不可或缺的记录,包括A记录,NS记录和SOA记录.本篇博文中我们将继续为大家介绍DNS ...
- DNS(3)- 详解DNS的资源记录
资源记录:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 每个 ...
- 详解DNS的常用记录(上):DNS系列之二
详解DNS的常用记录(上) 在上篇博文中,我们介绍了DNS服务器的体系结构,从中我们了解到如果我们希望注册一个域名,那么必须经过顶级域名服务器或其下级的域名服务器为我们申请的域名进行委派,把解析权委派 ...
最新文章
- QT 文字字体和颜色设置
- Mac Apache 开启对php支持
- JavaScript循环及练习
- 申请购买计算机的报告,关于申请购买电脑的请示(最新整理)
- Protobuf报错Protocol message tag had invalid wire type
- echarts 其他样式 折线 重叠_echarts 折线图 areaStyle颜色重叠问题
- 南大电子机器人入驻云南_园区优秀企业| 中科恒清清淤机器人,以智能科技为水环境治理保驾护航...
- Excel 2016双击文件打开为空白的解决办法-亲测解决。
- Golang的聊天服务器实践(群聊,广播)(一)
- 【C#】SQL数据库助手类2.0(自用)
- 动态通讯录(动态内存开辟)(C语言)
- matlab打开模型步骤,基于Matlab/Simulink的模型开发(连载一)
- Python微信库:itchat的用法详解
- 什么是串行端口?分哪几种类?-道合顺大数据Infinigo
- 【JAVA】集合框架及复杂度
- 【微信网页授权】SpringBoot+uniapp实现网页授权获取用户基本信息
- 痔疮最佳治疗方法 十人九痔 不必害羞
- 解决打开文件、文件夹、拖拽复制删除时鼠标卡顿
- sas简单描述统计分析和散点图
- uva 1471	Defense Lines
热门文章
- SQLite shell操作
- 为什么人会摆高姿态_为什么感情相处中不要随意掏心掏肺?
- 计算机科学与技术班级口号八字,班级的八字口号
- matlab 8.4,《DSP using MATLAB》Problem 8.42
- python choose语句作用_理解闭包是如何与变量作用域相互影响的
- nuxt.js 配置后端的请求地址
- 【C语言进阶深度学习记录】二十九 main函数与命令行参数
- laravel框架的数据库链接
- Reason: image not found
- Android应用的安全的攻防之战