以太网数据帧(802.3)最大与最小长度

以太网数据帧(802.3)最大与最小长度
2017年03月20日 19:40:01 Farmwang 阅读数:5370更多
个人分类: TCP/IP
以太网(IEEE 802.3)帧格式:

1、前导码:7字节0x55,一串1、0间隔,用于信号同步
2、帧起始定界符:1字节0xD5(10101011),表示一帧开始
3、DA(目的MAC):6字节
4、SA(源MAC):6字节
5、类型/长度:2字节,0~1500保留为长度域值,1536~65535保留为类型域值(0x0600~0xFFFF)
6、数据:46~1500字节
7、帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据域这部分内容而得到的校验和。

据RFC894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步吗+1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+1500+4字节的FCS。

按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢?原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,其最大值是6+6+2+1500=1514。

以太网规定,以太网帧数据域部分最小为46字节,也就是以太网帧最小是6+6+2+46+4=64。除去4个字节的FCS,因此,抓包时就是60字节。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充以满足数据帧长不小于64字节。由于填充数据是由MAC子层负责,也就是设备驱动程序。

以CSMA/CD作为MAC算法的一类LAN称为以太网。CSMA/CD冲突避免的方法:先听后发、边听边发、随机延迟后重发。一旦发生冲突,必须让每台主机都能检测到。关于最小发送间隙和最小帧长的规定也是为了避免冲突。

考虑如下的情况,主机发送的帧很小,而两台冲突主机相距很远。在主机A发送的帧传输到B的前一刻,B开始发送帧。这样,当A的帧到达B时,B检测到冲突,于是发送冲突信号。假如在B的冲突信号传输到A之前,A的帧已经发送完毕,那么A将检测不到冲突而误认为已发送成功。由于信号传播是有时延的,因此检测冲突也需要一定的时间。这也是为什么必须有个最小帧长的限制。

按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500米,最多经过4个中继器,因此规定对10Mbps以太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位,因此也称该时间为512位时。这个时间定义为以太网时隙,或冲突时槽。512位=64字节,这就是以太网帧最小64字节的原因。

512位时是主机捕获信道的时间。如果某主机发送一个帧的64字节仍无冲突,以后也就不会再发生冲突了,称此主机捕获了信道。

由于信道是所有主机共享的,如果数据帧太长就会出现有的主机长时间不能发送数据,而且有的发送数据可能超出接收端的缓冲区大小,造成缓冲溢出。为避免单一主机占用信道时间过长,规定了以太网帧的最大帧长为1500。

100Mbps以太网的时隙仍为512位时,以太网规定一帧的最小发送时间必须为5.12μs。

1000Mbps以太网的时隙增至512字节,即4096位时,4.096μs。

原文地址:https://www.cnblogs.com/zhangmingda/p/9758655.html

时间: 2024-08-29 19:29:40

以太网数据帧(802.3)最大与最小长度的相关文章

TCP报文的最大负载和报文的最小长度

TCP报文的最大负载和报文的最小长度 MTU:最大传输单元,以太网的MTU为1500Bytes MSS:最大分解大小,为每次TCP数据包每次传输的最大数据的分段大小,由发送端通知接收端,发送大于MTU就会被分片. MSS默认最小为536B,最小的MTU576B,MSS = MTU - IP头(20B)- TCP头(20B) TCP最小数据长度为1460Bytes 以太网的最大数据帧是1518Bytes 以太网的帧头148Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B)

[RK_2014_0923]wireshark捕捉到的Ethernet II数据包的最小长度为60

一.关于wireshark中以太网数据包的最小长度,请看下面的文字: Packet format A physical Ethernet packet will look like this: Preamble Destination MAC address Source MAC address Type/Length User Data Frame Check Sequence (FCS) 8 6 6 2 46 - 1500 4 As the Ethernet hardware filters

以太网数据帧的结构分析

以太网帧,属于二层数据. wireshark(或其他抓包工具)进行抓包可以发现,原本最小数据帧的大小为64字节,但抓到的只有60字节或者更少. 原因:数据帧是由网卡的driver抓取到并传送到TCP/IP协议栈,而很多网卡的driver都会把帧最后面的4个字节的FCS字段去掉,从而抓包软件无法抓取到这个字段. 另外数据段部分如果太小(不足46字节),网卡会进行自动填充(全0).在抓取的时候,存在一个优先级的问题,有时可能数据还没有填充或者没完全填充就被抓取了,导致整个数据帧的长度不足60(去掉那

Server 2019域控更改密码的复杂性+密码最小长度

其实是重复的问题了,但是为了方便,还是记录下,方便自己查看. 更改原因: 用户反馈密码太长.太复杂,难记. 本着服务的态度,只能是按他们的要求来处理. 自己在新建帐号时,有上面的提示.更改的方法: 注:有的网上说是直接更改本地安全策略>>>>>这个只是没有域的情况下 如果是配置了 域的情况下,只能是在组策略管理器上操作,本地安全策略处是显示灰色 原文地址:https://blog.51cto.com/hznethome/2438866

以太网技术原理

1.以太网两个逻辑 以太网设备发展和链路物理介质速率提升 2.以太网诞生 开始以同轴电缆作为网络媒体,采用载波多路访问和冲突检测(CSMA/CD )机制,传输速率10Mbps 以太网原理-----CSMA/CD CSMA/CD-载波侦听多路访问/冲突检测,是一种在共享介质条件下多点通讯的有效手段,其基本规则如下: (1)若介质空闲,传输:否则,转2): (2)若介质忙,一直监听到信道空闲,然后立即传输: (3)若在传输中测得冲突,则发出一个短小的人为干扰(jamming)信号,使得所有站点都知道

转自:Tsihang 三层网络设备对于IP报文的分片和重组处理原理

三层网络设备对于IP报文的分片和重组处理原理 对于网络分片,我一年前就想整理出来,虽然说网络上的资料很多,但是真正掌握精髓的除非真正做过分片程序,不然很难将协议栈整体联系起来理解.这篇文章,包括设计分片原理图,耗时一小时完成,算是记录一点理解. 三层网络设备,即能够基于IP头信息对报文进行识别和处理的网络设备,在转发IP报文的时候,经常会遇到来自上层的数据包过长,从而导致打上MAC头的帧不符合IEEE802.3标准规定的最大帧长,造成不能被转发和对端解析的问题.这样就需要在三层进行分片,将过长的

在传统以太网中,为什么要有最小帧长度和最大帧长度的限制

在传统以太网中,为什么要有最小帧长度和最大帧长度的限制? 以太网(IEEE 802.3)帧格式: 1.前导码:7字节0x55,一串1.0间隔,用于信号同步 2.帧起始定界符:1字节0xD5(10101011),表示一帧开始 3.DA(目的MAC):6字节 4.SA(源MAC):6字节 5.类型/长度:2字节,0-1500保留为长度域值,1536-65535保留为类型域值(0x0600-0xFFFF) 6.数据:46-1500字节 7.帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据

802.3和以太网帧结构-路由交换原理1-【HCNA笔记】

1.RAW 802.3帧格式 前导字段 帧起始符 DMAC SMAC Length Data FCS 7字节 1字节 6字节 6字节 2字节 46-1500字节 4字节 前导字段:每个帧以7个字节的前导字段开头,以0.1间隔代码组成,用以通知目标端作好接收准备(10101010 10101010 10101010 10101010 10101010 10101010 10101010). 帧起始符:紧跟前导字段,值为10101011,最后两位‘11’表示帧的实际开始.前导字段与起始符由物理设备自

【HCNA笔记】路由交换原理-1 802.3和以太网帧结构

1.RAW 802.3帧格式 前导字段 帧起始符 DMAC SMAC Length Data FCS 7字节 1字节 6字节 6字节 2字节 46-1500字节 4字节 前导字段:每个帧以7个字节的前导字段开头,以0.1间隔代码组成,用以通知目标端作好接收准备(10101010 10101010 10101010 10101010 10101010 10101010 10101010). 帧起始符:紧跟前导字段,值为10101011,最后两位'11'表示帧的实际开始.前导字段与起始符由物理设备自