IP数据包长度问题_第1页
IP数据包长度问题_第2页
IP数据包长度问题_第3页
IP数据包长度问题_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、IP分类:Linux总结2011-11-1912:4754人阅读评论(0)收藏举报首先要看协议,涉及到四层:链路层,网络层,传输层,应用层。其中以太网()的数据帧在链路层包在网络层或包在传输层或中的数据(在应用层它们的关系是数据帧包或包在应用程序中我们用到的我们从下到上分析一下:在应用程序中我们用到的我们从下到上分析一下:的长度最大是多少,直接取决于底层的限制。0018),0不0包括帧头和帧尾),0018),0不0包括帧头和帧尾),在网络层,因为在传输层,对于所以,在应用层,你的,包的首部要占用包的首部要占用最大长度为0字节,所以这的字节,所以这的7(当我们的为-=为-=包,中的数据多于时,发

2、送方的层需要分片进行传输,而在接收方层则需要进行数.在链路层,由以太网的物理特性决定了数据帧的长度为(461)8(其中的18是数据帧的头和尾,也就是说数据帧的内容最大为据报重组,由于是不可靠的传输协议,如果分片丢失导致重组失败,将导致数据包被丢弃)。从上面的分析来看,在普通的局域网环境下,的数据最大为字节最好(避免分片重组)。但在网络编程中,中的路由器可能有设置成不同的值(小于默认值),TOC o 1-5 h z上的标准值为,所以的编程时数据长度最好在=字节以内。对我们的编程很重要,那如何查看路由的值呢?对于如:如果提示:则表明小于,不断改小值,可以最终测算出的值;对于如:如果提示则表明小于,

3、可以再测以推算的T,因为在包头中用个字节描述报文长度,因为在包头中用个字节描述报文长度,个字节所能表达的最大数字就是由于协议提供为上层协议分割和重组报文的功能,因此传输层协议的数据包长度原则上来说没有限制。实际上限制还是有的,因为包的标识字段终究不可能无限长,按照,好像上限应该是K依靠这种机制,包头中就没有“包长度”字段,而完全依靠层去处理分帧。这就是为什么常常被称作一种“流协议”的原因,开发者在使用服务的时候,不必去关心数据包的大小,只需讲看作一条数据流的入口,往里面放数据就是了,协议本身会进行拥塞流量控制。则与不同,包头内有总长度字段,同样为两个字节,因此数据包的总长度被限制为5这样恰好可

4、以放进一个包内,使得协议栈的实现非常简单和高效。再减去头本身所占据的个字节,服务中的最大有效载荷长度仅为5这个值也就是你在调用时指定所得到返回值,任何使用属性的,一次的数据都不能超过这个值,否则必然得到一个错误。那么,包提交给下层协议时将会得到怎样的处理呢?这就取决于数据链路层协议了,一般的数据链路层协议都会负责将包分割成更小的帧,然后在目的端重组它。在上,e攵据链路帧的大小如以上几位大侠所言。而如果是,则包将被切分成一个一个的,大小为字节。*提供的是一种面向连接的,可靠的字节流服务,提供可靠性的一种重要的方式就是。通过,应用数据被分割成认为最适合发送的数据块,由传递给的信息单位称为报文段或段

5、。代表一个的结构体中有多个成员用于确定应用数据被分割成最。代表一个的结构体中有多个成员用于确定应用数据被分割成最大为多大的数据块较为合适(最大报文段长度我们不难联想到,跟最大报文段长度最为相关的一个参数是网络设备接口的,以太网的是基本首部长度为首部是,所以的值可达不包括协议首部,只包含应用数据。基本首部长度为首部是,所以的值可达不包括协议首部,只包含应用数据。前面的三次握手协议中我们看到,通讯的双方都通过选项通告了自己期望接收的值,该值直接来源于的成员k而这个值直接取自于网络设备接口的值直接来源于的成员k而这个值直接取自于网络设备接口的减去首部和首部的长度。在本地以太网中可达如果首部都不含选项

6、的话,而成员是一个结构体首部的长度。在本地以太网中可达如果首部都不含选项的话,而成员是一个结构体,它记录的是来自对端的选项通告,其成员表示的上限值,其来源就是对端的通告,而是用户设置的其优先级最高,如果有,它记录的是来自对端的选项通告,其成员表示的上限值,其来源就是对端的通告,而是用户设置的其优先级最高,如果有_,则使而用而忽略其它。从上面我们可以看到,是可以通过段进行协商的选项只能出现在报文段中,但它并忽略其它。从上面我们可以看到,是可以通过段进行协商的选项只能出现在报文段中,但它并不是任何条件下都可以协商的,如果一方不接受来自另一方的值,并且没有就定为不是任何条件下都可以协商的,如果一方不

7、接受来自另一方的值,并且没有就定为默认值字节(加上首部,允许字节的数据报。实际上,的初始值就定为,等收到来自对端的通告后,才进行修改。而结构体的成员TOC o 1-5 h z用于缓存上次的有效的,其初始值也被定为。函数为一个中的相关的成员进行数据同步,其基本的一个算法是:、当前的正常情况下应该为首部首部不包括选项)、,2truc中含有对端通告的能够接受的值,如果该值小于第一步计算所得到的,则以该值为准。、首部如果带有选项,则中要减去选项长度。TOC o 1-5 h z、如果已经小于了,则令其等于8、减去首部中选项的长度。、如果当前已经大于滑动窗口大小的,则取滑动窗口大小的作为值但不能小于。、成

8、员用于缓存下刚刚计算所得的。所以,说本地以太网中为的说法并不正确,它还会动态变化,如果首部和首部中出现选项,则要相应的减小,一般首部中会有字节的时间戳选项外加两字节的填充选项,这时的就等于4的主要作用是限制另一端主机发送的数据的长度,同时,主机本身也控制自己发送数据报的长度,这将使以较小连接到一个网络上的主机避免分段。有一个成员,用于记录该发送数据报时的的大小,一般情况下它的值就等于特殊情况有例外,以后再分析,网关经过测试为1472字节。测试方法为:ping-f-l1472192.168.0.1以太网(IEEE802.3)帧格式:1、前导码:7字节0 x55,串1、0间隔,用于信号同步2、帧起

9、始定界符:1字节0 xD5(10101011),表示一帧开始3、DA(目的MAC):6字节4、SA(源MAC):6字节5、类型/长度:2字节,01500保留为长度域值,153665535保留为类型域值(0 x06000 xFFFF)6、数据:461500字节7、帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据域这部分内容而得到的校验和。以CSMA/CD作为MAC算法的一类LAN称为以太网。CSMA/CD冲突避免的方法:先听后发、边听边发、随机延迟后重发。一旦发生冲突,必须让每台主机都能检测到。关于最小发送间隙和最小帧长的规定也是为了避免冲突。考虑如下的情况,主机发送的帧很小,而两

10、台冲突主机相距很远。在主机A发送的帧传输到B的前一刻,B开始发送帧。这样,当A的帧到达B时,B检测到冲突,于是发送冲突信号。假如在B的冲突信号传输到A之前,A的帧已经发送完毕,那么A将检测不到冲突而误认为已发送成功。由于信号传播是有时延的,因此检测冲突也需要一定的时间。这也是为什么必须有个最小帧长的限制。按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500米,最多经过4个中继器,因此规定对10Mbps以太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位,因此也称该时间为512位时。这个时间定义为以太网时隙,或冲突时槽。512位=64字节,这就是以太网帧最小64

11、字节的原因。512位时是主机捕获信道的时间。如果某主机发送一个帧的64字节仍无冲突,以后也就不会再发生冲突了,称此主机捕获了信道。由于信道是所有主机共享的,如果数据帧太长就会出现有的主机长时间不能发送数据,而且有的发送数据可能超出接收端的缓冲区大小,造成缓冲溢出。为避免单一主机占用信道时间过长,规定了以太网帧的最大帧长为1500。100Mbps以太网的时隙仍为512位时,以太网规定一帧的最小发送时间必须为5.12ps。1000Mbps以太网的时隙增至512字节,即4096位时,4.096ps。*MTU的含义:MAC帧内的数据(Payload)字段的最大长度我们使用Ping命令时,-I参数所指定

12、的数据包大小,是指的ICMP报文中的ICMPData字段的长度,不包括ICMPHeader,更不包括IPHeader.以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步吗1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+1500+4字节的FCS。按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢?原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果

13、帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,其最大值是6+6+2+1500=1514。以太网规定,以太网帧数据域部分最小为46字节,也就是以太网帧最小是6+6+2+46+4=64。除去4个字节的FCS,因此,抓包时就是60字节。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充以满足数据帧长不小于64字节。由于填充数据是由MAC子层负责,也就是设备驱动程序。不同的抓包程序和设备驱动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论