龙兄鼠弟:Ipv4, Ipv6, Mtu, Mss, Fragmentation 那些事.
通过上面的两组图表, 大家对Ipv6和Ipv4在路由体系中的相对规模有了大致的认识吧. 下面这幅图, 描述在同一时刻, Ipv6 BGP路由表相对Ipv4 BGP路由表的百分比.
(注:小于64Bytes的数据帧一般是由于以太网冲突产生的“碎片”或者线路干扰或者坏的以太网接口产生的,对于大于1518Bytes的数据帧我们一般把它叫做Giant帧,这种一般是由于线路干扰或者坏的以太网口产生)具体有关MTU的数值可以参考文档http://jasonccie.blog.51cto.com/2143955/391047
MSS最大传输大小的缩写,是TCP协议里面的一个概念。MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。
PC1(192.168.0.1)―――Router――――Internet――――www server(238.135.1.1)
建立tcp连接的两端在三次握手时会协商tcp mss大小,具体如下:
pc1 发出syn报文,其中option选项填充的mss字段一般为1460,同样www server收到syn报文后,会发送syn+ack报文应答,option选项填充的mss字段也为1460;协商双方会比较syn和syn+ack报文中mss字段大小,选择较小的mss作为发送tcp分片的大小。通过比较,协商双方的tcp mss都是1460。
对于涉及mpls l3vpn、pppoe+nat、ipsec、l2tp、gre等组网,通常由于报文太大需要分片,一般可以通过设置tcp mss解决。
针对上例说明tcp mss如何实现
假设在路由器内网口配置tcp mss 1200
路由器收到www server的syn+ack报文时会修改option选项中的mss字段为1200,然后再转发给PC1,PC1收到报文后认为对端的tcp mss为1200,这样PC1发送资料(已经协商完了)给www server时会以1200作为分片大小;但路由器修改tcp mss为1200的操作www server是不知道的,因此www server还会以1460作为分片大小发送报文。
假设再路由器外网口配置tcp mss 1200
路由器收到PC1的syn报文时会修改option选项中的mss字段为1200,然后再转发给www server,同样www server发送资料给PC1时会以1200作为分片大小;同样PC1不知道路由器修改tcp mss为1200,因为PC1还会以1460作为分片大小发送报文。
因此在实现双向大包传输时需要在内外网同时修改tcp mss
综上所述:在路由器接口上配置的tcp mss命令仅对出接口方向的syn报文和syn+ack报文有效,对于入接口方向的syn和syn+ack报文无效。
龙兄鼠弟:Ipv4, Ipv6, Mtu, Mss, Fragmentation 那些事.相关推荐
- 以太网帧格式 IP数据报格式 TCP数据报格式 MTU MSS
一.以太网帧格式 下图摘自<TCP IP详解卷1:协议(第2版)>第3.2.2节以太网帧格式. 以太网帧有最小和最大尺寸.最小的帧是64字节,要求数据区(有效载荷)长度(无标签)最小为48 ...
- MTU MSS 详解记录
先学习理解一下帧的封装格式: 需要注意的是,区别两种帧封装格式:802标准帧和以太网帧 1,在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验码. ...
- 牛客21781 牛兄牛弟
链接:https://ac.nowcoder.com/acm/problem/21781 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- mysql ip v4 v6_mysql IPv4 IPv6
w如何通过一个mysql方法,而不是借助脚本判断?INET6_ATON(expr) https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-func ...
- php7 ipv6,php将ipv4/ipv6的真实ip转换为数字
php将ipv4/ipv6的真实ip转换为数字 2020-09-15 59 方法一:** * Description: 此函数用来将Ip转换为数字,便于存储 * ip:IPv6.Ipv6 * PS:需 ...
- ipv4和计算机地址是什么意思,什么是ipv4 ipv6 ipv9 区别是什么(一) -电脑资料
自从接触到windows 7操作系统以后,对里面的一些网络连接,什么ipv4与ipv6等,开始也多数不明白是什么意思,今天刚好有网友问到笔者什么是ipv4.ipv6,还有ipv9?围绕这个问题,笔者以 ...
- 天融信防火墙web配置_天融信协议转换交付系统震撼发布——IPv4/IPv6融合改造利器...
需求背景 随着物联网的高速发展,全球物联网设备数量超过百亿,而IPv4仅能提供40亿地址空间,不能满足日益增长的地址空间需求.尽管动态IP地址分配.NAT地址转换等技术能够使问题在一定程度上得到缓解, ...
- 洛谷-2028 龙兄摘苹果
题目描述 龙兄在淘淘摘苹果的那个果园里摘了n个完全互不相同的苹果,好客的园主为他提供了k个篮子,他想把苹果装在篮子里拎回家(由于龙兄的手是无限大的,所以你不必考虑他能不能同时拎这么多篮子).同时,他不 ...
- IPv4/IPv6、DHCP、网关、路由
IPv4地址参考:https://zhuanlan.zhihu.com/p/126753536 IPv4/IPv6 1.IPv4是Internet Protocol Version 4的缩写.IPv6 ...
最新文章
- 阿里大佬分享API网关在微服务架构中的应用
- python测试代码_python入门-测试代码
- Elasticsearch聚合初探——metric篇
- 澳门关键字:葡萄牙、天主教、dc
- 《统计学习方法》代码更新了-(github的star数5300+)
- 「2018山东一轮集训」Game
- Java IO: 文件
- 使用idea创建JavaWeb项目
- php mail执行命令,PHPMailer 命令执行 任意文件读取漏洞利用 【含POC】
- 演说之禅:演说中的图效优势
- reactor-netty中TcpClient的newHandler过程
- 对于处理上传图片添加水印的简单操作
- 如何安装PDF打印机
- php获取openid 40163报错,微信支付授权获取 openId {\errcode\:40163,\errmsg\:\code been used, hints: [ req_id:...
- VScode插件管理(C/C++)
- 截止2017年5月19日小虎软考粉丝有798人
- Linux下十大命令行下载工具
- linux双显卡配置_Linux系统怎么配置双显卡
- 当初的愿望实现了么? .
- 秒懂机器学习---k-近邻算法实战