本文许多文字和图片使用了湖科大教书匠(高军老师)的 PPT,在此表示感谢。正是他让非科班的我能以奇妙的方式走进网络的世界。
早期的以太网最初采用无源的粗同轴电缆(即不包含电源线)作为共享总线来传输帧,属于基带总线局域网,传输速率为 2.94Mb/s。后来发展到使用价格相对便宜的细同轴电缆。
然而,实践证明这种使用无源电缆线和大量机械接口的总线型以太网并不像人们想象的那么可靠。若总线上的某个机械连接点接触不良或断开,则整个网络通信就不稳定或彻底断网。
于是,以太网发展出来了一种使用大规模集成电路来替代总线、并且可靠性非常高的设备,叫作集线器(Hub)。站点连接到集线器的传输媒体也转而使用更便宜、更灵活的双绞线电缆。目前最常用的是两端为 RJ-45 插头的双绞线电缆。
上图中,两种都属于共享式以太网(即使用集线器进行连接的以太网),它们的区别如下:
共享式以太网 | 逻辑拓扑 | 物理拓扑 | 碰撞检测(由网卡负责) |
---|---|---|---|
使用细同轴电缆的共享总线型以太网 | 总线型 | 总线型 | CSMA/CD 协议 |
使用集线器和双绞线的星型拓扑的共享式以太网 | 总线型 | 星型 | CSMA/CD 协议 |
集线器的特点如下:
共享总线以太网中两站点之间的距离不能太远,否则它们之间所传输的信号就会衰减到使 CSMA/CD 协议无法正常工作。
在早期广泛使用粗同轴电缆或细同轴电缆共享总线以太网时,为了提高网络的地理覆盖范围,常用的是工作在物理层的转发器(中继器)。IEEE802.3 标准规定,两个网段可用一个转发器连接起来,任意两个站点之间最多可以经过三个网段。如下图所示:
随着使用双绞线和集线器的 10BASE-T 星型以太网成为以太网的主流类型,扩展网络覆盖范围就很少使用转发器了。
【注】10BASE-T 星型以太网还可使用光纤和一对光纤调制解调器来扩展站点与集线器之间的距离。信号在光纤中的衰减和失真很小,因此使用这种方法可以很简单地将站点与集线器之间的距离扩展到 1000m 以上。
以太网集线器一般具有 8~32 个接口,如果要连接的站点数量超过了单个集线器能够提供的接口数量,就需要使用多个集线器,这样就可以连接成覆盖更大范围、连接更多站点的多级星型以太网(或多级共享式以太网)。
如下图,如果我们想在两个网段即部门 A 和部门 B 之间进行通信,就需要加入一个新的集线器,将部门 A 的集线器和部门 B 的集线器连接起来。这样,两个网段就合并为了一个网段。
假设部门 A 和部门 B 各有 x 台主机(或站点),则:
显然,网段扩大,可以广播的范围也变大了。我们把这种现象称为广播域扩大。然而这会出现一个负面情况:
我们把这种现象称为碰撞域(或冲突域)扩大。因此,使用集线器扩展的共享式以太网既是一个大的广播域,也是一个大的碰撞域,它会出现大量的碰撞冲突,导致平均吞吐量太低。
从以上分析我们可以看到,使用集线器扩展的共享式以太网,广播域和碰撞域是一对矛盾:若广播域变大,则碰撞域变大;若广播域变小,则碰撞域变小。但我们希望:广播域变大,而碰撞域不变。对于上面例子,我们希望将广播域扩大到两个网段,但碰撞域仍然保持在各网段自己的范围内。
为达成这个目的,我们引入了网桥。网桥在扩大广播域的同时,也隔断了碰撞域的扩大,从而加大了网络的吞吐量。网桥在数据链路层扩展了共享式以太网,它知道哪些帧需要广播、哪些帧去往哪个网段、哪些帧不去往哪个网段。从这个意义上来说,网桥比集线器更“聪明”了。
网桥一般包含以下几个结构:
不妨来讨论以下网络中网桥的工作情况。如图所示,该网桥有 2 个端口,端口连在每个网段的集线器上。每个网段即为一个碰撞域,而左右两个网段却成为了一个广播域。
网桥的转发表通常由自学习算法(下节将详细介绍)得出,这里暂且认为已得出了完整的转发表,则该转发表如下:
MAC 地址 | 接口 |
---|---|
A | 1 |
B | 1 |
C | 1 |
D | 2 |
E | 2 |
F | 2 |
(1)主机 A 发送 MAC 帧:A->D,即源 MAC 地址为 A,目的 MAC 地址为 D。
(2)主机 A 发送 MAC 帧:A->C,即源 MAC 地址为 A,目的 MAC 地址为 C。
(3)主机 A 发送 MAC 广播帧,即源 MAC 地址为 A,目的 MAC 地址为 FF-FF-FF-FF-FF-FF。
【注】网桥的接口在向其连接的网段转发帧时,会执行相应的媒体接入控制协议,对于共享式以太网就是 CSMA/CD 协议。
透明网桥(Transparent Bridge)中的“透明”,是指以太网中的各站点并不知道自己所发送的帧将会经过哪些网桥的转发,最终到达目的站点。也就是说,以太网中的各网桥对于各站点而言是看不见的。
透明网桥的标准是 IEEE802.1d,它通过一种自学习算法(基于以太网中各站点间的相互通信)逐步建立起自己的转发表。
自学习算法的规则如下:
依然以前面的例子说明自学习算法的流程。
(1)初始时,网桥的转发表为空白。
MAC 地址 | 接口 |
---|---|
(2)主机 A 发送 MAC 帧:A->B,即源 MAC 地址为 A,目的 MAC 地址为 B。
MAC 地址 | 接口 |
---|---|
A | 1 |
(3)主机 D 发送 MAC 帧:D->A,即源 MAC 地址为 D,目的 MAC 地址为 A。
MAC 地址 | 接口 |
---|---|
A | 1 |
D | 2 |
(4)主机 C 发送 MAC 帧:C->A,即源 MAC 地址为 C,目的 MAC 地址为 A。
MAC 地址 | 接口 |
---|---|
A | 1 |
D | 2 |
C | 1 |
以上即为透明网桥的自学习算法的过程。
网桥的接口数量很少,通常只有 2~4 个,一般只用来连接不同的网段,因此采用了一种交换式集线器(Switching Hub),它本质上是具有多个接口的网桥,常称为以太网交换机(Switch)或二层交换机。“二层”是指以太网交换机工作在数据链路层(包括物理层)。
交换机内部的转发表也是通过自学习算法,基于网络中各主机间的通信,自动地逐步建立起来的。
仅使用交换机(而不使用集线器)的以太网就是交换式以太网。现在使用的以太网基本上都是交换式以太网。
交换机的每个接口可以连接计算机,也可以连接集线器或另一个交换机。
(1)当交换机的接口与计算机或交换机连接时,可以工作在全双工方式,并能在自身内部同时连通多对接口,使每一对相互通信的计算机都能像独占传输媒体那样,无碰撞地传输数据,这样就不需要使用 CSMA/CD 协议了。
(2)当交换机的接口连接的是集线器时,该接口就只能使用 CSMA/CD 协议并只能工作在半双工方式。
交换机的自学习算法与网桥相同,通过下例说明交换机建立转发表的过程。为方便起见,把转发表的表项表示为
。
(1)初始时,两个交换机的转发表为空白。
交换机 1 的转发表 | 交换机 2 的转发表 |
---|---|
(2)主机 A 发送 MAC 帧:A->B,即源 MAC 地址为 A,目的 MAC 地址为 B。
表项 | 交换机 1 的转发表 | 交换机 2 的转发表 |
---|---|---|
1 |
表项 | 交换机 1 的转发表 | 交换机 2 的转发表 |
---|---|---|
1 |
(3)主机 H 发送 MAC 帧:H->A,即源 MAC 地址为 H,目的 MAC 地址为 A。
表项 | 交换机 1 的转发表 | 交换机 2 的转发表 |
---|---|---|
1 | ||
2 |
表项 | 交换机 1 的转发表 | 交换机 2 的转发表 |
---|---|---|
1 | ||
2 |
一般的交换机都采用存储转发方式。这种方式将帧放入高速缓存并检查是否正确,正确则转发,不正确则丢弃。延迟大,可靠性较高,可支持不同速率的端口转换。
为了减小交换机的转发时延,某些交换机采用了直通(Cut-Through)交换方式。
采用直通交换方式的交换机,在接收帧的同时就立即按帧的目的 MAC 地址决定该帧的转发接口,然后通过其内部基于硬件的交叉矩阵进行转发,而不必把整个帧先缓存后再进行处理。直通交换的时延非常小,但不检查差错就直接将帧转发出去,有可能会将一些无效帧转发给其他主机。不可支持不同速率的端口转换。
总结如下:
类型 | 使用缓存? | 检查差错? | 延迟 | 支持不同速率的端口转换? |
---|---|---|---|---|
存储转发方式 | √ | √ | 大 | √ |
直通交换方式 | x | x | 小 | x |
尽管路由器不属于链路层设备,但我认为还是很有必要提一下,为读者形成一个完整的网络设备体系。
路由器是一种具有多个输入和输出端口的计算机,其任务是连接不同的网络(异构网络)并完成路由转发。在多个逻辑网络(即广播域)互联时必须使用路由器。路由器可以连接不同的 LAN、WLAN 和 WAN,肩负起隔离广播域的责任。
当源主机向目的主机发送数据报时,路由器先检查源主机与目的主机是否连接在同一个网络上:
共享式以太网:
交换式以太网:
各种不同的以太网:
图片 | 类型 | 设备 | 碰撞检测? | 碰撞域隔离? |
---|---|---|---|---|
共享式以太网 | 同轴无源电缆 | √ | x | |
共享式以太网 | 集线器 | √ | x | |
物理层扩展的共享式以太网 | 集线器 | √ | x | |
链路层扩展的共享式以太网 | 网桥、集线器 | √ | √ | |
交换式以太网 | 交换机 | x | √ | |
链路层扩展的交换式以太网 | 交换机 | x | √ |
各种设备的区别:
设备 | 隔离碰撞域? | 隔离广播域? |
---|---|---|
集线器/转发器/中继器 | x | x |
网桥/交换机 | √ | x |
路由器 | √ | √ |