您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > 关于MTU及TCP-MSS学习及总结1.1
关于MTU及TCP-MSS主动学习及总结上海博达公司数据通信有限公司2009年6月版本作者描述日期1.1王军关于MTU及TCP-MSS主动学习及总结.doc2009-6-14目录一.概述...............................................................................................................................................3二.实验环境.....................................................................................................................................41、设备型号及版本..........................................................................................................42、实验拓扑.......................................................................................................................4三.实验过程及分析.......................................................................................................................51、MTU................................................................................................................................51.1、故障及处理.......................................................................................................81.2、PPPOE环境下的MTU值设定....................................................................91.3、MTU分片........................................................................................................132、TCP-MSS....................................................................................................................18四.小结.............................................................................................................................................24一.概述在网路技术里,有很多技术和概念是大家耳熟能详的,平时在工作中也常常用到,但真要深究起它的工作原理、流程及实际应用时,却是似懂非懂无从说起。这些技术是常常挂在嘴边,却被忽略的,它们是很不起眼却作用巨大。若使用不当,造成的故障也是很隐蔽的,排查起来十分困难。比如MTU值及TCPMSS。MTU是MaximumTransmissionUnit的缩写,意为最大传输单元,通俗的理解就是在网络上传送的最大数据包,单位是字节。以太网对数据帧的长度都有一个限制,其最大值为1500,这个特性被称作MTU,不同类型的网络大多数都有一个上限。如果IP层有一个IP包要传,而且数据的长度比链路层上的MTU值还要大,那么就需要对这个数据包进行分片处理,而且要求被分片的每个数据包都要等于或小于这个MTU值,一般是最后一个数据包小于这个值。例如,一个大小为5000字节的数据包在穿越网络时,如果遇到一条MTU大小为1500字节的数据链路,即数据帧对多能容纳大小为1500字节的数据包。需要在数据成帧之前将数据包分片成多个小的数据包。被分片后,每片数据包的标示字段上打上相同的标记,以便接收者可以识别出属于同一个数据包的分片。如果不分片,该数据包就会被丢弃,从而造成数据包丢失。但是,如果因为MTU值设定得太小,以致于一个不是很大的数据包被分成许多片进行传输,这样就会产生很多数据包碎片,增加了设备负担,降低了网络使用率。TCP-MSS大多数人对它是比较陌生的(当然也包括我),不知道它是什么意思,其作用是什么。MSS是MaxitumSegmentSize最大分段大小的缩写,意为TCP数据包每次能够传输的最大数据分段,是TCP协议里面的一个概念。MSS值所表示的是TCP报文的净载荷数据大小。通过设置其大小可以达到与设置MTU值一样的效果,都是为了避免主机发送的数据包大小超过网络链路MTU值而造成数据包被丢弃的情况。但是在实际情况中,该MSS值在TCP协议中实现的时候往往被MTU所代替。其实现原理是:一些TCP实现只有当目的主机在一个非直接连接网络上才发送MSS选项,pc上网或者别的一些tcp连接,PC会与目的地的IP地址,协商一次mss参数,作为自己发送数据包的参考。mss参数就是告诉对端本端最大支持不分片的数据包大小,只含净荷。在后续的部分中,将会通过一个简单的实验进一步学习理解MTU及TCP-MSS的原理及应用。二.实验环境本文档以试验作为理论依据,在简单的试验结果的基础上挖掘潜在的原理、处理机制以及应用。环境较简单,所有的试验都基于本拓扑结构。1、设备型号及版本型号版本数量备注(MAC)26211.3.3G100e0.0fb1.04d122262.0.1L100e0.0f61.0107主机1001D.729A.7D292、实验拓扑2621作为出口路由器,通过PPPOE拨号上网方式已经连接上internet。F0/1作为外网口连接ADSLMODEM,F0/0作为内网口,连接2226交换机;2226上只配置了一个管理地址为192.168.1.254。三.实验过程及分析1、MTU先仔细回忆一下EthernetII帧的结构DMAC+SMAC+Type+Data+CRC。由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes,最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。小于64Bytes的数据帧一般是由于以太网冲突产生的“碎片”或者线路干扰或者坏的以太网接口产生的,对于这些小于64Bytes的“碎片”,MAC子层就会在数据字段的后面填充以满足整个数据帧长不小于64字节,以便传输。为什么以太网规定会规定数据帧长度不小于64字节?以太网是不可靠的,这就意味着发送者并不知道自己发出的数据对端是否收到,但如果它发出的数据包出现错误,则会进行重传。什么时候会发生错误,发生错误是指什么呢,以太网是如何检测到错误的?以太网的错误主要是发生碰撞,碰撞是指两台机器同时监听到网络是空闲的,同时发送数据,就会发生碰撞,碰撞对于以太网来说是正常的。非常有名的CSMA/CD就是用来检测冲突的。假设A检测到网络是空闲的,开始发数据包,尽力传输,当数据包还没有到达B时,B也监测到网络是空闲的,开始发数据包,这时就会发生碰撞,B发现发生碰撞,开始发送碰撞信号,所谓碰撞信号,就是连续的01010101或者10101010,十六进制就是55或AA。这个碰撞信号会返回到A,如果碰撞信号到达A时,A还没有发完这个数据包,A就知道这个数据包发生了错误,就会重传这个数据包。但如果碰撞信号会返回到A时,数据包已经发完(在数据包比较短的情况下),则A不会重传这个数据包。以太网为什么要设计这样的重传机制。首先,以太网不想采用连接机制,因为会降低效率,但他又想有一定的重传机制,因为以太网的重传是微秒级,而传输层的重传,如TCP的重传达到毫秒级,应用层的重传更达到秒级,我们可以看到越底层的重传,速度越快,所以对于以太网错误,以太网必须有重传机制。要保证以太网的重传,必须保证A收到碰撞信号的时候,数据包没有传完,要实现这一要求,A和B之间的距离很关键,也就是说信号在A和B之间传输的来回时间必须控制在一定范围之内。IEEE定义了这个标准,一个碰撞域内,最远的两台机器之间的round-triptime要小于512bittime.(来回时间小于512位时,所谓位时就是传输一个比特需要的时间)。这也是我们常说的一个碰撞域的直径。512个位时,也就是64字节的传输时间,如果以太网数据包大于或等于64个字节,就能保证碰撞信号到达A的时候,数据包还没有传完。再来看一下这个512bittime是如何得来的?先看一下一个比较古老但流行一时的标准:10BASE5,一种以太网标准,该标准用于使用粗同轴电缆、速度为10Mbps的基带局域网络,在总线型网络中,最远传输距离为500米。网络节点装有收发器,该收发器插在网卡上的15针连接单元接口(AttachmentUnitInterface)中,并接到电缆上。也作thickEthernet,ThickNet,ThickWare。另见coaxialcable,Ethernet,指的是使用标准的(粗)50Ω基带同轴电缆的10Mbit/s的基带以太网规范。它是IEEE802.3基带物理层规范的一部分,在每个网段上的距离限制是500m,整个网络最大跨度为2500m,每个网段最多终端数量为100台,每个工作站距离为2.5m的整数倍。上面提到的这个碰撞域的来回时间其实就是当时依据10M网络的标准来定义的,10BASE5允许最远的两个工作站间距离2.5公里,电子信号在2.5公里來回时间约为51.2us。根据CSMA/CD,最小封包以51.2us计算和10Mbps计算:51.2us*10Mbps=512bit=64byte。这就是为什么以太网要最小64个字节的历史原因了,一个是基于CSMA/CD的需要,另外一个就是依据了当时10M网络的标准进行了计算和定义。以太网帧最大不能超过1518bytes,这也是一个规定,但没有上述的这些限制,之所以规定为1518,主要是考虑到传输效率正确率吧。由于以太网EthernetII最大的数据帧是1518Bytes,这样,除去以太网帧的帧头(DMAC目的MAC地址48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和帧尾CRC(FCS)校验部分4Bytes。那么剩下承载上层协议的地方也就是Data域最大就只能有1500Bytes这个值我们就把它称之为MTU。这个就是网络层协议非常关心的地方,因为网络层协议比如IP协议会根据这个值来决定是否把上层传下来的数据进行分片。就好比一个盒子没法装下一大块面包,我们需要把面包切成片,装在多个盒子里面一样的道理。1.1、故障及处理遇到问题:在主机A上使用ping,返回请求超时提示,但是使用默认ping值(32Byte)时是能够ping通的。解决问题:怀疑是MTU值设置不合理,登陆到路由器,查看PPPOE拨号配置及虚拟接口状态,如下:interfaceVirtual-tunnel0ipaddressnegotiatednoipdirected-broadcastnoipunreachablepppchaphostnamekmljh123456pppchapp
本文标题:关于MTU及TCP-MSS学习及总结1.1
链接地址:https://www.777doc.com/doc-4283143 .html