什么是以太网?

早期,将总线网命名为以太网。总线网简单来说,就是一根电缆导线连接的多个电脑,多个电脑构成的网络。

但随着计算机网络结构发展,以太网已经不仅仅局限于一个电缆连接的多台主机形成的网络了。我们可以分为两类:

  • 经典以太网

    • 总线网
    • 集线器连接的多台主机,由集线器连接的多台主机虽然在物理上是星型结构,但是在逻辑上仍然是总线结构(仍然无法隔离冲突域,冲突域就是指一个主机发任意一个信息,这个信息会被这个网络中所有主机都收到)(广播域是指一个主机发送广播信息,这个广播信息会被这个网络所有主机收到,路由器才能隔离广播域)
  • 交换以太网

    • 交换机/网桥连接的多台主机

而我们教材上对以太网的最小帧长规定是对经典以太网而言的。

这个规定的原因就是经典以太网无法隔离冲突域,多台主机是共享信道,可能同时发送信息从而导致冲突。

发送冲突时,因为信号叠加与碰撞,那自然发送的帧就是坏帧(不是正确的数据了),为了区分好帧坏帧,就规定了一个最小帧长。如果收到帧的数据部分小于46字节(帧其他部分18字节),就是坏帧,就会被丢弃,并且要求重传。

这个东西听起来比较抽象,但它最终还是要在电缆上跑的,所以它就是电信号的一个封装,封装成一定格式的比特流(成帧方式)。


好了,上面都是可有可无的。下面正式开始。

经典以太网使用的是 802.3 或者 DIX Ethernet V2 协议。两者区别很小,作为我们学习者来说,有一个不太重要字段有区别,其他都是完全一样的。这完全是历史原因,就不赘述了。

这个协议规定的帧的格式是:

前导码(8字节)目的MAC地址(6字节)源MAC地址(6字节)长度/协议(2字节,这就是两个协议不同的字段)数据部分(46~1500字节)FCS校验码(4字节)

我们所说的帧大小是不包括前导码的。

前面说了,经典以太网中的多个主机共享信道,所以需要考虑这样几个问题:

  • 多个主机都要发信息,怎么安排?
  • 发生了冲突,如何解决?

第一个问题,以太网协议是这样规定的,大家想发就发,但前提是发的时候先看一下信道是空闲的。这就是载波监听
第二个问题,首先我们需要一种方式是知道是否发生冲突,这就是冲突检测,检测有冲突了,我们有多种处理方法,比如二进制后退指数后退。(这个方法我们这里不多说)

所以,连起来就是载波监听的冲突检测,即CSMA/CD(Carrier Sense Mutiple Access with Collision Detection)

这种方式很像我们开会的时候,

  • 多个人都要发表意见,随时可以站起来发表,但前提是没人在说话。我们人通过声音是否传到我们耳朵里判断当前是否没人说话。而主机则是通过自己的接收器是否收到电信号判断当前信道是否空闲。
  • 一般开会很少会出现两个同时说话情况,因为我们规定了先检查没人说话再站起来。但是偶尔也会发生两个人抢着站起来了。比如0.00 时候A同学没有听到声音,开启说话,声音传到B同学耳朵里需要1s中,于是B同学在0.49 时候也站起来说话,就发生了冲突。
  • 发生冲突本质原因是信息传递是需要时间的,但是我们平时声音传递很快,我们忽略了而已。
  • 我们人是怎么知道发生了冲突了呢?A和B的声音在空气中碰撞💥后会向两边返回。A、B都会受到碰撞后的声音,发现和自己说出去声音不一样就知道发生冲突了,于是两个人都停止说话了。
  • 两台主机如果发出的信息发生碰撞💥,碰撞信息也会像两边返回,当两台主机接收到碰撞后的信息,就知道自己的信息与别人冲突了,就停止发送更多信息。(在这个过程中发送的最多信息就是最大的坏帧,也就是最小的好帧长度)

了解了过程,我们现在可以来计算了。

制定规则一定是与当时的历史条件有关的。

以太网的传输距离一般是5KM(太长信号会衰减到无法识别),电磁波在5KM的以太网的电缆传播时间大约是25us。以太网的发送速率为10Mb/s。

计网这里有几个非常容易弄混的名词:

  • 传输速率 = 发送速率 是指某个主机发送比特的快慢。
  • 传播速率是指电磁波在电缆经过的速率。

根据前面分析,坏帧长度 = (从发送到碰撞时间 + 碰撞信息返回的时间)* 发送速率 (这段时间主机发送的数据长度)

要知道发送比特不是说一个时刻点就会同时发送N多个比特,而是1s中发送N个比特,但是都是先后排序的前进的。发生碰撞应该是最前面的第一个比特。

所以最大坏帧产生情况,应该是AB分别是在电缆的两端,A发的信息在接近B的时候碰撞了,然后碰撞信息返回到A,这时间最坏情况下接近 2*25us。

A ____________________________________________________________💥 B

而在这么长时间内,A发出了225us 10Mb/s = 500 bit。

而这个时间虽然理论是最长的,但是为了让帧长可以整除字节,所以规定了512bit为最小帧长。

总结:

  • 最短帧长 = 2传播时间发送速率
  • 2*传播时间 我们也称为争用期时间

(有任何知识性错误请指出,感谢)

最后修改:2021 年 08 月 17 日
喜欢我的文章吗?
别忘了点赞或赞赏,让我知道创作的路上有你陪伴。