以太⽹最⼩帧长为什么是64字节
最近由于要做⼀个关于以太⽹环境中⽹络设备时延⽅⾯的测试,在RFC2544 上⾯规定了⼀些测试时数据包的长度分别为64, 128, 256, 512, 1024, 1280, 1518 Byte("Frame sizes to be used on Ethernet:64, 128, 256, 512, 1024, 1280, 1518"),故重新温习了⼀下相关⽅⾯的知识。下⾯是⽹络上相关的⼀些资料!
总结⼀下:64字节的由来即以太⽹帧的18 Byte (⽬的MAC(6)+源MAC(6)+Type(2)+CRC(4))加上实际载荷的最⼩长度46 Byte(数据:46~1500字节) ,总共64字节!
以太⽹最⼩帧长为什么是64字节
⽂章⼀:
以太⽹(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到数据域这部分内容⽽得到的校验和。
以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。
⽂章⼆:
2.碰撞槽时间
假设公共总线媒体长度为S,帧在媒体上的传播速度为0.7C(光速),⽹络的传输率为R(bps),帧长为L(bps),tPHY为某站的物理层时延;
则有:
碰撞槽时间=2S/0.7C+2tPHY
因为Lmin/R=碰撞槽时间
所以:Lmin =(2S/0.7C+2tPHY )×R
Lmin 称为最⼩帧长度。
碰撞槽时间在以太⽹中是⼀个极为重要的参数,有如下特点:
(1)它是检测⼀次碰撞所需的最长时间。
(2)要求帧长度有个下限。(即最短帧长)
(3)产⽣碰撞,就会出现帧碎⽚。
(4)如发⽣碰撞,要等待⼀定的时间。t=rT。(T为碰撞槽时间)
2.下⾯我们来估计在最坏情况下,检测到冲突所需的时间
(1)A和B是⽹上相距最远的两个主机,设信号在A和B之间传播时延为τ,假定A在t时
刻开始发送⼀帧,则这个帧在t+τ时刻到达B,若B在t+τ-ε时刻开始发送⼀帧,则B在t+τ时就
会检测到冲突,并发出阻塞信号。
(2)阻塞信号将在t+2τ时到达A。所以A必须在t+2τ时仍在发送才可以检测到冲突,所以⼀帧的
发送时间必须⼤于2τ。
(3)按照标准,10Mbps以太⽹采⽤中继器时,连接最⼤长度为2500⽶,最多经过4个中继器,因此规定对于10Mbps以太⽹规定⼀帧的最⼩发送时间必须为51.2µs。
(3)51.2µs也就是512位数据在10Mbps以太⽹速率下的传播时间,常称为512位时。这个时间定义为以太⽹时隙。512位时=64字节,因此以太⽹帧的最⼩长度为512位时=64字节。
2,以太⽹18字节,我想应该是“⽬的MAC(6)+源MAC(6)+Type(2)+CRC(4)
3,⾄于IP最⼤传输单元1500,只是规定
⽂章三:
Lmin/R = 2*S/(0.7*C) + 2*Tphy + n*Tr
Lmin - 最⼩帧长
R - ⽹络速率(10M等)
S - 碰撞域(*2 表⽰⼀来⼀回,划个图就明⽩了)
C - 标准光速(*0.7表⽰在双绞线中,⽤光纤的话别论)
Tphy - 物理层延时(*2 是因为要经过⼀收⼀发两个主机的物理层)
Tr - 中继器延时(⼀般来说,相当于两个物理层的延时
原理:
如图⽰:
主机 A 中继器 B 主机 B
--------------------------------------------------
| 物理层 | | |
--------------------------------------------------
| | | |
+-----------------------+ +---------------+
|<------------------ S -------------------->|
根据以太⽹媒体访问控制机制,A 在发出长度为La的数据流后
如果收到B返回的碰撞指⽰,则停⽌该帧的发送,并且发32bit
的以强化碰撞;并延时t = r*T 这样长的时间;
其中T = 1/C,r是⼀个在(0, 2^k)内的随机数,k = min(n,10)
n 为本次发⽣连续碰撞的次数,如果n过⼤则上交⾼层处理。
如果我们先规定了碰撞域S。情况如下:
主机A以R的速率发送,以0.7*C的光速到达B,然后发⽣碰撞
返回A,⼀共的路程是2*S,此时对应的帧长度即为Lmin。因为
如果La
碰撞指⽰就失去了意义,媒体访问控制就失败了。
如果先定义了Lmin,同样可以定出S。
如 IEEE 802.3 Lmin = 64B;设R = 10M bps Tphy = 15us
Tr = 0 则可以计算出 S = 2.3km
在实际应⽤当中,还要考虑信号在介质上的有效距离,对于
双绞线来说,有效距离要⼩于S,这样就会引⼊中继器来延长
传输距离,但是可以看出,这⼜将减⼩S。所以这是⼀对⽭盾,
在设计以太⽹时,应该加以考虑。
以太⽹帧为什么最⼩是64个字节
以太⽹帧为什么最⼩要64个字节,512bit(个位)
看这个理论时,希望你能静下⼼来,看上⼆到三次再画个图想⼀想,真正了解原理
以太⽹是⽆连接的,不可靠的服务,采⽤尽⼒传输的机制。以太⽹CSMA/CD我就不多讲了,我相信⼤家都了解这个原理。
以太⽹是不可靠的,这意味着它并不知道对⽅有没有收到⾃⼰发出的数据包,但如果他发出的数据包发⽣错误,他会进⾏重传。以太⽹的错误主要是发⽣碰撞,碰撞是指两台机器同时监听到⽹络是空闲的,同时发送数据,就会发⽣碰撞,碰撞对于以太⽹来说是正常的。
我们来看⼀下,假设A检测到⽹络是空闲的,开始发数据包,尽⼒传输,当数据包还没有到达B时,B也监测到⽹络是空闲的,开始发数据包,这时就会发⽣碰撞,B ⾸先发现发⽣碰撞,开始发送碰撞信号,所谓碰撞信号,就是连续的01010101或者10101010,⼗六进制就是55或AA。这个碰撞信号会返回到 A,如果碰撞信号到达A时,A还没有发完这个数据包,A就知道这个数据包发⽣了错误,就会重传这个数据包。但如果碰撞信号会返回到A时,数据包已经发完,则A不会重传这个数据包。
我们先看⼀下,以太⽹为什么要设计这样的重传机制。⾸先,以太⽹不想采⽤连接机制,因为会降低效率,但他⼜想有⼀定的重传机制,因为以太⽹的重传是微秒级,⽽传输层的重传,如TCP的重传达到毫秒级,应⽤层的重传更达到秒级,我们可以看到越底层的重传,速度越快,所以对于以太⽹错误,以太⽹必须有重传机制。
要保证以太⽹的重传,必须保证A收到碰撞信号的时候,数据包没有传完,要实现这⼀要求,A和B之间的距离很关键,也就是说信号在A和B之间传输的来回时间必须控制在⼀定范围之内。IEEE定义了这个标准,⼀个碰撞域内,最远的两台机器之间的round-trip time 要⼩于512bit time.(来回时间⼩于512位时,所谓位时就是传输⼀个⽐特需要的时间)。这也是我们常说的⼀个碰撞域的直径。
512个位时,也就是64字节的传输时间,如果以太⽹数据包⼤于或等于64个字节,就能保证碰撞信号到达A的时候,数据包还没有传完。
这就是为什么以太⽹要最⼩64个字节,同样,在正常的情况下,碰撞信号应该出现在64个字节之内,这是正常的以太⽹碰撞,如果碰撞信号出现在64个字节之后,叫 late collision。这是不正常的。
我们以前学习CISCO⽹络的时候,CISCO交换机有⼀种转发⽅式叫fragment-free,叫⽆碎⽚转发,他就是检查64个字节之内有没有错误,有的话不转发,这样就排除了正常的以太⽹错误包。
[求助]关于以太⽹的最⼩帧64Bytes,1518 Bytes
⼤家好,记得以前在论坛上看到过关于以太⽹最⼩帧 64 Bytes 的由来,是⼀个算式,计算出来了这是CSMA/CD算法探测冲突的最⼩传输时间,但是刚才在论坛上翻了半天,没看到,哪位⼤虾能再为⼩弟解释⼀下么?谢谢了
另外,在有些资料上看到以太⽹的帧头开销是18字节,但是请问这是怎么得来的?因为 Dst MAC + Src MAC + Type(Length)只有12 Bytes(注意:这⾥应该是14字节),另外的 6 Bytes 从何⽽来呢?
最后⼀个问题,以太⽹为什么要规定最⼤传输单元 1518 Bytes?
8023是什么网络用语------
问题很菜,⼤家不要笑我
1,关于最⼩字节的由来
2.碰撞槽时间
假设公共总线媒体长度为S,帧在媒体上的传播速度为0.7C(光速),⽹络的传输率为R(bps),
帧长为L(bps),tPHY为某站的物理层时延;
则有:
碰撞槽时间=2S/0.7C+2tPHY
因为Lmin/R=碰撞槽时间
所以:Lmin =(2S/0.7C+2tPHY )×R
Lmin 称为最⼩帧长度。
碰撞槽时间在以太⽹中是⼀个极为重要的参数,有如下特点:
(1)它是检测⼀次碰撞所需的最长时间。
(2)要求帧长度有个下限。(即最短帧长)
(3)产⽣碰撞,就会出现帧碎⽚。
(4)如发⽣碰撞,要等待⼀定的时间。t=rT。(T为碰撞槽时间)
2.下⾯我们来估计在最坏情况下,检测到冲突所需的时间
(1)A和B是⽹上相距最远的两个主机,设信号在A和B之间传播时延为τ,假定A在t时
刻开始发送⼀帧,则这个帧在t+τ时刻到达B,若B在t+τ-ε时刻开始发送⼀帧,则B在t+τ时就
会检测到冲突,并发出阻塞信号。
(2)阻塞信号将在t+2τ时到达A。所以A必须在t+2τ时仍在发送才可以检测到冲突,所以⼀帧的
发送时间必须⼤于2τ。
(3)按照标准,10Mbps以太⽹采⽤中继器时,连接最⼤长度为2500⽶,最多经过4个中继器,因
此规定对于10Mbps以太⽹规定⼀帧的最⼩发送时间必须为51.2µs。
(3)51.2µs也就是512位数据在10Mbps以太⽹速率下的传播时间,常称为512位时。这个时间定
义为以太⽹时隙。512位时=64字节,因此以太⽹帧的最⼩长度为512位时=64字节。
2,以太⽹18字节,我想应该是“⽬的MAC(6)+源MAC(6)+Type(2)+CRC(4)
3,⾄于IP最⼤传输单元1500,只是规定
有些把以太⽹帧的前导字符部分也算到帧头⾥⾯了
IEEE 802.3标准的第⼀个版本于1983年6⽉24⽇发布,由于Xerox将关于CSMA/CD的4件专利转交给IEEE,IEEE以极低的价格授权⽣产企业使⽤相应专利,所以使⽤IEEE 802.3标准⽣产产品不存在⾼昂专利费⽤问题。随后,802.3标准得到了ANSI和ISO的认可,使IEEE 802.3标准成为⼀个开放的、权威
的标准。
虽然与Ethernet II标准发布时间差不多,⽽且IEEE 802.3的标准级别⽐前者⾼得多,但在标准发布后的⼗多年,802.3标准在应⽤中仅仅能与Ethernet II平分秋⾊,其本质原因是802.3标准中的帧结构必须配合802.2标准使⽤,这⼤⼤减⼩了应⽤的灵活性并显著增加了协议的开销,复杂加之效率低使 802.3难以占上风。
在1998年编辑中802.3⼯作组对802.3标准进⾏了重⼤改动,最后完成了新版标准IEEE 802.3-2002。2002版的802.3标准对MAC帧结构进⾏了重⼤改进使之具备Ethernet II封装灵活性,从⽽在应⽤中完全取代了Ethernet II,使IEEE 802.3-2002标准成为以太⽹的唯⼀标准。
2005年以来⼜开始制定802.3标准的新版本。
802.3-2002标准定了以太⽹的头结构为DA(6)+SA(6)+Len/Type(2)=14字节。
发布评论