通信人家园

标题: 以太网最小,最大字节长度  [查看完整版帖子] [打印本页]

时间:  2011-7-13 14:36
作者: ruanshuxian     标题: 以太网最小,最大字节长度

以太网最小字节长度(64 bytes)
以太网为什么要有最小字节限制:以太网采用的是CSMA/CD方法在介质上传输数据,而CSMA/CD的特性要求有最小字节限制
CSMA/CD 为什么要有最小字节限制:在CSMA/CD网络中,发送数据的一方在发送数据的同时会监听网络是否有碰撞。
一旦发送方发送完一个最后一个bit以后,仍然没有检测到碰撞,它就会认为,这次传输已经成功

A----------------------c(冲突)------------------------------------B

如果发送方(A)传输的是一个非常小的帧的话,它发送完帧以后,认为这次传输已经成功,并会在继续监听碰撞。
当数据在A与B之间进行传输时,B并没有检测到A发送帧的第一个bit,认为线路是空闲的,所以B就会发送帧,这样在线路上肯定会有碰撞。
碰撞发送以后,由于A不监听碰撞,所以A也不会进行碰撞处理,不会再重传帧,导致发出去的这个帧丢失,从而导致数据丢失
这就要求有最小的帧长限制

在IEEE802.3 Baseband 5-4-3中规定:在任意两个节点之间,最大的physical segments为5个,所以最多可以有4个repeaters在两个节点之间。
这5个physical segments 之间, 只有三个可以连接节点,而其它的两个只能被当作延长网络之用
在使用10Base-5线缆的网络中,每个physical segment 最长是500米,所以,每个Ethernet的最大长度是2500米

A------------Repeater1---------- Repeater2--------- Repeater3----------- Repeater4-----------B
|----------------------------------------------2500meter-------------------------------------|

最小时间要求:

A传送帧的第一个bit到达B,B开始传输,产生碰撞,发出碰撞信号,碰撞信号要在A传输完最后一个bit时,能够到达A,从而让A感知到碰撞,从而重传这个帧。
一个帧从A-B,B-A的这个时间被称为slot time,这个时间计算出来为57.6 μs.

在10Mbit/s的网络中,在57.6μs的时间内,能够传输576个bit,所以要求以太网帧的大小最小为576个bits,从而让所有的碰撞都能够被检测到

以太网帧的构成:


Preamble
Start-of-
Frame-Delimiter
Destination MAC
Source MAC
Type
Payload
CRC
Interframe
Gap
7 bytes
10101010
1 bytes
10101011
6 bytes
6bytes
2 Bytes
46-1500
bytes
4 Bytes
12 bytes


在传输完一个数据帧以后,在传输下一个数据帧之前,要传输12bytes的空闲帧

12 bytes = 12×8 = 96 bits
在10Mbit/s的网络中,传输1个bit 需要的时间为 1×10-7s
所以Interframe Gap 的时间为 96×10-7=9.6×10-6 s= 9.6μs
在一个数据帧发送完以后,要等待9.6μs的时间,然后再传输下一个数据帧

576bits= 72 bytes
通常情况下我们所说的以太网长度,不包括preamble和start of frame delimiter,所以以太网最小长度为:72-8= 64 bytes
以太网的最大字节长度(1518/1522)
为什么在以太网中,三层的IP包长要规定为64~1500 字节,都是二层的Ethernet特性来决定的:
最小包长由CSMA/CD的最小检测碰撞时间来决定
最大包长没有特别的规定,但是考虑到如下的因数,将IP最大包长设置为1500 bytes:
1.       以太网是所有的终端共享传输介质,如果一台终端发送一个很长的帧,传输时将占用太多的时间,其它的终端将等待,直到这个帧传输完毕。帧越长,等待的时间将越长
2.       如果一个帧太长,如果在传输的过程中,发生一个传输错误,那么整个帧要重传,这样又要占有大量的时间,导致效率不高---—早期的以太网由于传输的错误率非常高
3.       帧越长,需要的缓存越大,1979年在设计网卡时,缓存的价格非常昂贵,所以当时选用1500 bytes作为最大的长度。

标准的以太网的最大字节长度为1518/1522:
untagged的frame最大帧长为1518
tagged的frame 最大帧长为1522
其它的长度都是设备厂商自己规定的:如Jumbo frame 等
MTU1.  MTU:Maximum Transmission Unit,设备发送数据时,任何比MTU大的数据包都会被分片,分片是在三层进行的,所以这里所说的MTU,指的是三层报文的长度,不包括二层的信息-------指的是最大IP报文的长度
2.  标准的以太网上,MTU值为1500bytes,不包括以太网头和CRC(Cyclic Redundancy Check),总共18bytes
时间:  2011-7-13 15:16
作者: lizer

技术贴!顶一个
时间:  2011-8-22 10:54
作者: 冷笑书生

谢谢分享!!
时间:  2011-11-29 22:17
作者: 527wxq

好贴!说的很详细




通信人家园 (https://www.txrjy.com/) Powered by C114