网络课程做到“交换机和集线器”这一节,最容易被忽略的是:它们从外表看都是“把几台电脑连起来”的铁盒子,可实际工作方式差了整整一个维度。我曾经在实验课上见过有同学把Hub和Switch换着插,发现网络都能通,就说“这俩没区别”,直到我们用抓包软件把数据摆到屏幕上,他才意识到自己之前对链路层转发的理解全是模糊的。这篇实验笔记就围绕这个关键分歧展开:先讲清楚集线器和交换机在协议栈里所处的位置,然后用三台PC加一台Hub、一台Switch做一组对照实验,分别观察单播、广播和并发传输下的表现,最后说说那些报告中容易写错、实验里容易误读的结论。如果你正准备做计算机网络实验,或者想彻底理解数据链路层的转发原理,这篇文章可以当成一份能直接照着操作的实验记录。
1. 实验前先把一个分歧点想清楚:集线器和交换机差在哪一层
1.1 传声筒与派件员:两种完全不同的工作框架
我习惯把集线器比喻成办公室里的传声筒。你对着传声筒说一句话,传声筒并不关心这句话是说给谁的,它只负责把你的声音放大,然后送到连接在它身上的每一根线路上。集线器就是这样一个物理层设备,它处理的是电信号,只要某个端口收到电平变化,它就把这些信号整形、放大之后从其他所有端口发出去。它根本没有能力去看以太网帧里的MAC地址,因为“读地址”这件事需要理解帧的结构,而物理层设备只认比特,不认帧。
交换机就不一样了,它是数据链路层的设备,能够完整地识别以太网帧,读取帧头里的目的MAC地址和源MAC地址。为了完成转发,交换机内部维护着一张MAC地址表,专业一点叫CAM表。这张表记录着“哪个MAC地址从哪个端口学到”的对应关系。当一帧进入交换机,它会查找目的MAC对应的端口,如果找得到,就只从那个端口发出去;如果找不到,才把帧从除了接收端口以外的所有端口发送出去,这个过程叫泛洪。
所以在实验开始之前,你要在脑子里建立两个完全不同的模型:Hub是物理层的“无脑转发器”,它不查MAC、不学地址;Switch是链路层的“智能派件员”,它查表、学习、老化、定向投递。至于为什么两者都能把网络连通,是因为以太网本身就容忍“先把帧发给所有人,让接收方自己判断该不该收”的机制,但这不代表它们的工作方式相同。
1.2 一个冲突域与多个冲突域,最终表现为带宽模型不同
另一个必须提前理解的概念是冲突域。集线器把所有端口连接在同一个共享信道上,整个Hub就是一个冲突域。想象一条很窄的会议电话线,接进来的所有人都共享这条线,A说话的时候B如果也开口,声音就混在一起,谁也听不清。以太网解决这种冲突的办法是CSMA/CD,也就是先听再发、边发边听,发现冲突就随机退避后重传。Hub因为内部是共享总线结构,同一时刻只允许一个端口发送数据,而且工作在半双工状态,不能同时收和发。
交换机则把物理隔离做到了端口级别。每个交换端口通过独立的点到点链路连接一台主机,这个端口就是一个独立的冲突域。现代交换机几乎都支持全双工,发送和接收使用不同的线对,也就不存在冲突问题。正因如此,两台主机在一个Hub上通信时,总带宽被整个冲突域共享;而在交换机上,每个端口独享自己的线路带宽,多个端口可以同时通信。
很多人把这个区别简单记成“Hub共享带宽,Switch独享带宽”,这个说法基本不错,但理解时要小心:Hub是物理共享,所有主机抢同一条链路;Switch是逻辑转发,数据从背板或交换矩阵中走,各端口之间只要处理能力够,可以同时并行传输。实验中看不看得到这个差异,取决于你是否做了并发流量测试。
1.3 带着三个观测目标进实验室
直接连上设备就抓包容易变成“无头苍蝇”。我在做这个实验前,会在实验报告第一页写下三个要验证的问题。
第一个目标:验证集线器对单播帧是不是真的无差别转发。也就是说,当PC1向PC2发送一个目的MAC是PC2的数据帧时,PC3能不能同样收到。第二个目标:验证交换机是不是永远都“定向投递”。更准确地说,应该观察交换机在什么情况下会泛洪,什么情况下能精确定向转发。第三个目标:在广播和并发传输场景下,搞清楚冲突域数量和广播域范围是怎么变化的。把这三个目标写在前面,后面每一步操作就有了方向,报告也不容易写成流水账。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 实验台怎么搭:三台PC、一张拓扑、两类观察手段
2.1 最省事的拓扑和IP规划
这个实验不需要太复杂的网络结构,最典型的是星型拓扑,中间设备分别换成Hub和Swit
