以太网最小帧长问题

转自:http://cao4141.blog.163.com/blog/static/686704132009079480351/

 

1.以太网(IEEE 802.3)帧格式:
1、前导码:7字节0x55,一串1、0间隔,用于信号同步
2、帧起始定界符(SFD):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位时。这个时间定义为以太网时隙(slot time),或冲突时槽。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,只是规定

  3) 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 的010101...以强化碰撞;并延时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。所以这是一对矛盾, 在设计以太网时,应该加以考虑。


 

你可能感兴趣的:(以太网最小帧长问题,帧长)