从20世纪90年代以来,以太网在局域网市场中占据了垄断地位。那么这个局域网“大佬“到底长啥样呢?
简单来说,就是把N多台电脑连在一起啦~
那么这么多电脑连在一起,他们会不会”打架”呢?答案是肯定的,多台电脑共用一个信道,一定会发生两个电脑同时发送数据帧的情况,也就是我们所说的“碰撞”。
遇到碰撞怎么解决?
首先,我们要普及一些预备知识:
1 以太网将物理信道视为理想信道,没有采用确认、序号、超时重传等可靠传输机制,也就是说,当数据帧发送完毕,他就会在缓存中被清除。
2 发送一个数据帧需要一个发送时间(数据帧大小除以发送速度),传到目的地需要一个传输时间(传输距离除以传输速度)。
那么遇到碰撞怎么办呢?对信道进行监听咯如果监听到信道中数据发生了异常,那就把数据帧再发一遍
怎么将数据再发呢?
首先,我们要确保监听到异常时数据帧还在缓存,所以发送时间一定要大于传输时间*2(因为发生异常后还要再传回来才能被监听到)。
那么问题来了,虽然对于同一信道,发送速度是固定的,但是发送时间会随着数据帧的大小发生变化;传输时间也会随着传输距离的变化。两个变化的量,怎样才能保证大小关系恒成立呢?
答案也容易想到,发送时间的最小值大于最大的传输时间*2.我们规定每个数据帧不得小于一个固定量(如果不足则进行补充),这样发送时间就存在了一个最小值;同时,我们限定了信道长度, 这样,传输时间也就存在了最大值。通过这些操作,我们就能保证发送时间大于监听到异常的时间啦~如果在发送是监听到了异常,再 找个时间重发进行了~
PS: 重发其实还涉及到很多机制,但是这里不进行讨论~
然而,好景不长,计算机科技迅猛发展,发送速度提升了10倍,发送时间大大缩短。。。。。。。
机智的科学家很快想出了方法,缩短信道长度,原来1000m长的信道就变成了100m。
然而,好景又不长,计算机技术迅猛发展,发送速度又提升了10倍,发送时间有一次大大缩短,而且10m的信道似乎不太可用。。。。(10m信道的局域网连一个教室都无法满足)
机智的科学家又很快想出了办法,加大数据帧的最小长度,这样又能提升发送时间(虽然这样好像很鸡肋)。不过在发送多个小数据帧时,可以先用第一个加大了的数据帧占据信道,然后把其他小数据帧一并发送。
以下为科学用语:
吉比特以太网仍然保持一个网段的最大长度为100m,但采用了“载波延伸”的办法,使最短帧长仍为64字节,同时将争用期增大为512字节;也就说凡发送的MAC帧不足512字节,就用一些特殊字节填充在帧的后面,使MAC帧的长度增大到512字节;其实是变相的增加了最小帧长的办法,代价是减低了传输效率。
吉比特以太网还增加了一种功能称为分组突发,这就是当很多短帧要发送时,第一个短帧要采用上面所说的载波延伸的方法填充,但随后的一些短帧则可一个接一个的发送;这里是为了提高传输效率。
我们上面所讨论的冲突解决方案,就是大名鼎鼎的CSMA/CD协议的一部分(~不包括重发)
后来,你懂的,计算机技术迅猛发展。。。。
科学家们忍不了了,发明了交换器,从根本上解决了“冲突”的问题。10吉比特和100吉比特以太网中帧格式与10Mb/s,100Mb/s以及1Gb/s以太网的帧格式完全相同,并保留了802.3标准规定的以太网最小帧和最大帧长;10G、100G以太网规定只能工作在全交换的环境中,不存在争用的问题,也不使用CSMA/CD协议,从根本上解决了最小帧长和信道长度之间的矛盾。
这个故事告诉我们,一个协议的完善不是一蹴而就的。机智的科学家利用他们简单粗暴的解决方案(我上我也行),让我们享受到了网络的便捷。由上可知,做个科学家也不是件多么难的事哈哈~