以太网为什么要限制最小帧长?

来源:互联网 发布:好听有内涵的名字知乎 编辑:程序博客网 时间:2024/04/20 17:46

    以太网中传输的数据帧的长度并不是一个常数,而是一个范围内的,以太网帧长度最大限制(MTU)是1518字节,最小长度是64字节。限制帧的最大长度是为了避免一台设备长时间占用信道,所以在传输过程中一定要有机制强制一个设备停止传输,让出信道的使用。那么为何要限制最小的帧长度呢?一个过小的数据会让以太网不能正常工作吗?
    首先,这是一个历史问题,今天确实没有必要限制最小帧长了。早期的以太网使用总线拓扑,网络中多台设备共享一个物理信道。这样就导致了多台设备同时发送信号的时候会发生碰撞,导致多台设备传输失败。然而,经过长时间的演进,特别是交换机的出现,让以太网成为了一个星型拓扑、全双工独享链路的网络。我们使用的网线中有8根铜线,其中使用了4根,备用4根。收发采用的电平信号在两根铜线中传播。收发电路分离的方法使得全双工成为可能。
    现在开始回答这个历史上的问题。过短的数据帧确实会带来问题。原因在于电信号是非常快的,过短的帧会导致帧传输时间非常小。以至于在一个局域网的物理环境中,想要给远一点的设备传数据帧的时候。帧在发完之后还有设备没有探测到这个帧,于是也开始使用信道。这是就会发生碰撞。并且,帧的发出者并不知道帧发生了碰撞。因为以太网没有提供可靠传输的机制,帧的发出者在发送完帧后认为帧传输完成,不会再发送这一帧。
    解决这个问题就需要让发出者发送一个帧的时间不要太短。这个时间需要考虑最坏的情况。考虑网络中物理距离最远的两台设备,他们中一个发信号,另外一个是最晚得知这个信号的。因此帧传输时间至少要保证帧能传到最远的设备。这个时间是物理距离限制除以光速。如果以太网提升带宽,但是又要保证最小帧长度不变,就不得不牺牲线路的传输距离。因为带宽提高时,发送相同长度的数据帧的时间会缩短。我们又必须保证在这个时间内让网络内所有设备都能接受到这个信号。这就解释了为什么以太网带宽越来越大,但是最长传输距离却越来越小。
    仅仅让最远端的设备受到帧的传输时间能保证帧发送完之后不再发生碰撞吗?很可惜,这段时间还不够。再考虑一个最坏的情况,帧在最远点发生了碰撞,但是发出者必须要等待和第一次传输相同的时间才能发现碰撞的产生。因此,最小传输时间必须保证让最远端的设备收到信号,并且让信号发出者收到最远端是否发生了碰撞。这两个情景的最快情况决定了最小传输时间是网络最长距离的两倍处理除以光速。
    对于早期的以太网,传输带宽是10Mbps,最小帧是64Bytes。发送完最小帧的时间是:

tmin=64×8 bit10× 106=51.2μs

    最长传播距离是:
distence=12tmin×0.7c=5736m

    因此,CSMA/CD要求10M以太网的最大物理距离是5736米,超过这个距离,就会使得CSMA/CD出现错误。
    这个距离超出了电信号衰减的距离。

0 0
原创粉丝点击