参考资料:
do-you-know-the-differences-between-hubs-switches-and-routers
network-devices-hub-repeater-bridge-switch-router-gateways
博客文章
Repeater 中继器
中继器在物理层运行, 2 端口设备。放大信号,从而延长信号在同一网络上传输的长度。
Hub 集线器
集线器在物理层运行,基本上是一个多端口中继器。集线器连接来自不同分支的多条电线,例如连接星形拓扑中的不同节点。集线器不能过滤数据,因此数据包将发送到所有连接的设备(广播)。集线器都有碰撞检测功能,每次只允许一个设备发送广播信号,效率低。
bridge 网桥
网桥在数据链路层运行,2 端口设备。跟集线器相比,网桥可以通过读取源和目的地的 MAC 地址来过滤内容,从而隔离网络。
网桥为每个端口维护了一张 MAC 地址表,表中包含所有连接到这个端口的设备的 MAC 地址。
下图中,LAN1 这个局域网中的主机发送数据后,LAN1 中的集线器会向所有连接到这个集线器的设备广播这个数据,包括网桥。当网桥的左侧端口收到数据后:
- 提取数据中的目的地的 MAC 地址
- 如果这个地址在左侧端口的 MAC 地址表中,则丢弃数据
- 如果这个地址在右侧端口的 MAC 地址表中,则将数据转发到右侧的集线器,由其广播给所有主机
- 提取数据中的源 MAC 地址
- 如果左侧端口的 MAC 地址表中包含这个 MAC 地址,则忽略。否则,将这个地址写入左侧端口的 MAC 地址表中。
网桥刚开机时,每个端口的 MAC 地址表都是空的,这时收到数据时会转发到另一个端口,同时把数据中的 MAC 地址记录到收到数据的端口对于的 MAC 地址表。工作一段时候后,两个端口的 MAC 地址表就会建立完成。当再有数据从 LAN1 发送给网桥时,网桥会先看看数据包的目的 MAC 地址是属于 LAN1 还是 LAN2,从而决定数据是否转发。同时再检查数据的源 MAC 地址,如果在 LAN1 的地址表中不存在这条记录,则写入。
网桥将一个局域网分成两个,可以减少碰撞。
switch 交换机
交换机在数据链路层运行,是一个多端口网桥。
交换机中维护一张 Port-MAC 映射表,记录每个端口上的主机的 MAC 地址。
跟集线器相比,交换机记录每个端口上主机的 MAC 地址,每次转发数据时都只会发送到指定的端口,而不是广播到所有主机,效率高。
router 路由器
路由器在网络层运行,类似交换机,但是根据 IP 地址发送数据包。家庭路由器通常将局域网和广域网连接在一起。路由器中有一个动态更新的路由表,以此作为决策依据。
现在的路由器通常集成了多个功能,包括有 4 个端口的集线器、NAT(Network Address Translator 网络地址转换)、DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)、DNS(Domain Name Service 域名服务)代理服务器和硬件防火墙。
路由器有一个 WAN 端口,可以连接到电信或联通的网络。通过路由器内部的集线器可以方便的创建 LAN。借助 DHCP 和 NAT,这个 LAN 中的所有设备都可以使用唯一的 IP 地址访问网络。
gateway 网关
网关是将两个网络连接在一起的通道,可以在不同的网络协议下工作。网关也称为协议转换器,可以在任何网络层运行。网关通常比交换机或路由器更复杂。
路由器可以在相同网络间移动数据,相当于特殊的网关(IP 网关)。
网卡
网卡在数据链路层工作,是连接计算机和传输介质的接口,实现与传输介质的物理连接和电信号匹配,同时还负责帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。