
简介这份文档面向计算机网络课程的初学者与实验课学生围绕交换机与集线器的工作原理展开帮助读者理解两种设备在数据转发机制上的本质差异。内容以Cisco Packet Tracer为实验平台涵盖集线器的物理层广播行为、交换机基于MAC地址转发表的自学习与定向转发过程并设计了三种典型转发场景加以验证同时附有思考题解答涉及冲突域、广播域及网络规模扩展对性能的影响。资源包共1个doc文件大小约1.34MB结构完整适合作为实验报告参考或复习提纲。目前已有3406人学习下载读者可借此掌握自学习算法的具体流程、单播包在两类设备中的不同处理方式以及环路与重复帧的判定思路为后续网络设计与排错打下基础。1. 交换机与集线器到底差在哪一个寄快递的类比你可能遇到过这种场景办公室里几台电脑用同一个网络有人一下载大文件其他人网速立刻卡成幻灯片。很多人第一反应是路由器不行了其实问题可能出在更基础的设备上——集线器还是交换机。这两个东西长得差不多都是一堆网线插口但工作方式差得远直接决定了你的网络是各走各的路还是大家一起挤独木桥。打个比方。集线器像一个没有分拣能力的前台收到任何一封信不管收件人是谁直接复印一份塞进所有房间的门缝。交换机则像一个训练有素的快递分拣员它记得每个房间住的是谁收到信先看收件人名字然后只送到对应的房间。这个记得谁住哪的能力就是交换机最核心的本事——自学习算法和 MAC 地址转发表。搞懂这两者的区别你就能理解为什么同样数量的电脑换个设备网络体验完全不同也能看懂网络实验里那些广播冲突域转发表到底在说什么。2. 为什么集线器会被淘汰共享介质的代价2.1 集线器的本质是一根公共总线集线器工作在物理层它不理解数据帧里的任何地址信息。你可以把它想象成一根被拉长的网线所有插在上面的设备共享同一段通信介质。当一台主机发送数据帧时集线器做的唯一一件事就是把这个信号放大然后从除接收端口以外的所有端口送出去。这意味着什么假设一个集线器上接了 4 台主机PC1 要给 PC2 发数据PC3 和 PC4 也会收到这份数据。它们虽然发现目的 MAC 地址不是自己会选择丢弃但带宽已经被占用了。更麻烦的是如果 PC3 恰好也在同一时刻发送数据两个信号就会在共享介质上碰撞双方都得退避重发。这就是冲突域的概念——集线器连接的整个网络就是一个冲突域同一时刻只能有一台设备在说话。用生活中的场景类比集线器就像一间没有隔断的大办公室所有人共用同一个空间。一个人打电话所有人都得听着两个人同时开口谁也听不清谁。人越多有效沟通效率越低。2.2 冲突域扩大带来的性能塌方实验里有一个很关键的思考题用集线器扩大以太网规模会不会导致性能下降答案是会而且原因很直接——集线器在扩展网络覆盖范围的同时也把冲突域一起扩大了。假设原来一个集线器上接了 4 台主机冲突概率还不算太高。现在你为了多接几台电脑再级联一个集线器变成 8 台甚至更多主机共享同一个冲突域。设备数量翻倍冲突概率不是翻倍而是按组合数增长。每台设备发送数据前都要先监听介质是否空闲一旦冲突就执行退避算法等待随机时间重发。设备越多等待越久有效吞吐量断崖式下跌。这里有一个容易踩坑的地方很多人以为集线器级联后每个端口是独立的带宽。不是的。集线器所有端口共享总带宽10Mbps 的集线器不管接几台设备大家加起来最多就是 10Mbps。这跟交换机完全不同交换机的每个端口都是独立带宽5 口千兆交换机意味着每个口都能跑满千兆。2.3 广播域和冲突域不是一回事在讨论集线器和交换机时有两个概念经常被混在一起冲突域和广播域。它们描述的是不同层面的问题。冲突域关注的是同一时刻能不能有多台设备同时发送数据。集线器的所有端口属于同一个冲突域因为它们是共享介质。交换机的每个端口是独立的冲突域因为交换机内部有缓存和转发机制不同端口的数据不会直接在物理介质上碰撞。广播域关注的是一个广播帧能传到多远。集线器不隔离广播域交换机默认也不隔离广播域——除非你划分了 VLAN。实验三做的就是这件事通过 VLAN 把一台交换机在逻辑上切成多个广播域让广播包只在自己所属的 VLAN 内传播。理解这两个概念的区别很重要因为用交换机替代集线器解决的是冲突域问题而划分 VLAN解决的是广播域问题。它们是两个不同层面的优化手段不能互相替代。3. 交换机的自学习算法它怎么知道该往哪个口转发3.1 转发表不是预先配好的是自己学出来的交换机最让人困惑的一点是它刚上电的时候转发表是空的它什么都不知道。但它不需要管理员手动配置每条记录而是通过观察数据帧的源 MAC 地址来自动学习。具体过程是这样的当一帧数据从某个端口进入交换机交换机会读取帧的源 MAC 地址然后记录一条这个 MAC 地址对应这个端口的映射关系。下次如果有数据要发往这个 MAC 地址交换机查表就知道该从哪个端口转发了。这个过程叫自学习它的精妙之处在于完全被动——交换机不需要主动去探测网络里有哪些设备只需要在转发过程中顺便记录就行。就像前台一开始不认识任何人但每次有人寄信他记下寄件人的房间号时间一长就形成了一本通讯录。3.2 三种转发场景覆盖了交换机的全部行为实验里设计了三种典型场景实际上覆盖了交换机处理数据帧的所有可能情况。第一种转发表里没有目标 MAC 地址。这时候交换机没有别的办法只能把帧从除接收端口以外的所有端口发出去这叫泛洪。注意泛洪和集线器的广播有本质区别——泛洪是交换机在未知情况下的临时行为一旦目标设备回了包交换机就学到了它的端口位置后续就不再泛洪了。集线器则是永远泛洪没有学习能力。第二种转发表里有目标 MAC 地址但记录的端口和帧的来源端口相同。这种情况交换机会直接丢弃该帧。为什么因为如果目标设备和发送设备在同一端口上说明它们连在同一个网段里数据帧不需要经过交换机转发就能到达。如果交换机再转发回去反而会造成重复帧。这个逻辑在实验报告里解释得很清楚数据来自端口 1转发表记录目标也在端口 1交换机不转发。第三种转发表里有目标 MAC 地址且端口不同。这是最理想的情况交换机直接按转发表把帧从对应端口送出去实现点对点传输。这时候其他端口完全不受影响带宽利用率最高。用伪代码表示这个逻辑def switch_forward(frame, source_port): # 第一步学习源 MAC 地址和端口的映射 mac_table[frame.src_mac] source_port # 第二步查找目标 MAC 地址 if frame.dst_mac not in mac_table: # 未知目标泛洪到所有其他端口 flood(frame, excludesource_port) elif mac_table[frame.dst_mac] source_port: # 目标在同一端口丢弃不转发 discard(frame) else: # 已知目标且在不同端口精确转发 forward(frame, portmac_table[frame.dst_mac])这段逻辑里mac_table就是转发表source_port是帧进入交换机的端口。每次收到帧先更新表项再根据目标地址决定动作。参数excludesource_port表示泛洪时不从来源端口发回去避免不必要的回环。3.3 转发表会老化不是永久有效有一个容易被忽略的细节转发表里的条目不是永久的它们有老化时间。通常默认是 300 秒也就是说如果某个 MAC 地址在 5 分钟内没有再发送过数据交换机就会把这条记录删掉。为什么要老化因为网络拓扑可能变化。比如一台电脑从交换机的端口 3 拔下来插到了端口 5如果转发表不更新交换机还会往端口 3 发数据结果就是丢包。老化机制保证了转发表能跟上网络的变化虽然会带来短暂的泛洪但整体上比死记硬背要可靠。这也解释了为什么实验里第一步 PC1 向 PC2 发数据时交换机会泛洪——因为转发表是空的它还没学到 PC2 在哪里。等 PC2 回了包交换机学到了 PC2 的端口位置后续再通信就是精确转发了。4. 常见误区这些概念别搞混了4.1 交换机不隔离广播域很多人以为换了交换机就没有广播了这是一个典型误解。交换机默认情况下所有端口属于同一个广播域广播帧比如 ARP 请求仍然会被转发到所有端口。实验三专门验证了这一点未划分 VLAN 时PC0 发 ARP 请求所有 PC 都能收到。要隔离广播域必须划分 VLAN。VLAN 把一台物理交换机在逻辑上切成多台虚拟交换机每个 VLAN 是一个独立的广播域。实验里创建 VLAN2 和 VLAN3 之后PC0 的 ARP 广播只在 VLAN2 内传播VLAN3 的设备收不到。区分方法很简单问自己这个操作影响的是冲突域还是广播域。换交换机解决冲突域问题划 VLAN 解决广播域问题。4.2 泛洪不等于广播交换机的泛洪和集线器的广播表面上看起来都是把数据从所有端口发出去但本质不同。集线器的广播是物理层面的信号被复制到所有端口没有条件、没有学习、永远如此。交换机的泛洪是逻辑层面的只在转发表中没有目标地址时才发生一旦学到了就不会再泛洪。而且泛洪不会从来源端口发回去集线器也没有这个判断。另一个区别是泛洪针对的是单播帧目标 MAC 是某个具体设备只是交换机暂时不知道它在哪。广播帧目标 MAC 是全 F则是另一回事交换机会始终转发广播帧到同一广播域的所有端口。4.3 ARP 请求是广播ARP 应答是单播实验二涉及 ARP 协议这里有一个容易混淆的点ARP 请求和 ARP 应答的传播方式不同。ARP 请求的目标 MAC 地址是全 F广播地址因为发送方还不知道目标 IP 对应的 MAC 地址只能问所有人。ARP 应答则是单播因为被请求方已经知道请求者的 MAC 地址了直接回给它就行。这也解释了为什么 ARP 请求会出现在交换机的泛洪里——广播帧本来就要发给所有端口。而 ARP 应答如果目标 MAC 在转发表里就是精确转发。4.4 MAC 地址和 IP 地址各管一段实验二还涉及 IP 地址和 MAC 地址的关系。简单说IP 地址负责跨网段的寻址MAC 地址负责同一网段内的交付。当 PC5 要 ping PC9 且它们不在同一网段时PC5 发现目标 IP 不在本地子网于是把数据包发给网关路由器。这时候 PC5 的 ARP 请求问的不是 PC9 的 MAC 地址而是路由器接口的 MAC 地址。数据包到达路由器后路由器再根据目标 IP 查路由表找到下一跳重新封装 MAC 地址后转发。整个过程中源 IP 和目的 IP 不变但源 MAC 和目的 MAC 每经过一个路由器就会变一次。实验报告里明确写了这一点经过路由器之前源 MAC 是 PC5 的目的 MAC 是路由器端口的经过路由器之后源 MAC 变成了路由器另一个端口的目的 MAC 变成了 PC9 的。4.5 交换机扩大网络也可能降低性能很多人以为交换机只有好处没有坏处其实不然。实验思考题里专门问了这个问题用交换机扩大以太网规模会不会导致性能下降答案是会。虽然交换机隔离了冲突域但所有端口默认在同一个广播域里。网络越大广播包ARP 请求、DHCP 发现等的绝对数量越多占用的带宽也越多。当广播流量大到一定程度就会挤占正常数据的传输空间。解决办法就是划分 VLAN把大广播域切成小广播域。这也是为什么大型网络里 VLAN 几乎是标配——不是为了隔离冲突而是为了控制广播。5. 什么时候用哪个一个实验场景的完整推演假设你被要求搭建一个实验网络5 台主机、2 台交换机要观察交换机在三种情况下的转发行为。这个场景几乎就是实验一的翻版但我们可以把它拆得更细看看每一步为什么这么设计。第一步先让 PC1 向 PC2 发数据。这时候两台交换机的转发表都是空的所以交换机会泛洪。你在仿真模式里能看到数据包从 PC1 出发经过集线器如果有的话到达交换机然后被复制到所有端口。这一步的目的是让你亲眼看到未知目标时交换机会泛洪。第二步让 PC1 再向 PC2 发一次数据。这次不一样了——因为第一步里 PC2 回了包交换机已经学到了 PC2 的端口位置。但注意如果 PC1 和 PC2 连在同一个交换机的同一个端口下比如中间有个集线器交换机会发现目标端口和来源端口相同于是丢弃数据帧。这就是实验里第二种场景转发表有记录但端口相同不转发。第三步让 PC4 向 PC2 发数据。PC4 连在另一台交换机上数据经过级联链路到达 PC2 所在的交换机。这时候转发表里已经有 PC2 的记录了而且来源端口级联口和目标端口PC2 所在口不同所以交换机会精确转发。这是第三种场景已知目标且端口不同按表转发。这三个步骤的设计逻辑是层层递进的先制造未知再制造同端口最后制造跨端口。每一步都对应交换机的一种核心行为合起来就是自学习算法的完整展示。那什么时候不该用交换机或者说交换机不是万能的地方在哪如果你的网络规模很小只有三四台设备且对性能要求不高集线器其实够用成本也更低。但今天集线器基本已经买不到了所以这个选择实际上不存在。更现实的边界是交换机适合作为接入层设备但如果你需要跨网段通信就需要路由器如果你需要隔离广播域就需要 VLAN如果你需要连接不同速率的网络可能需要更上层的设备。还有一个容易翻车的地方交换机级联时如果接成了环路又没有启用生成树协议就会产生广播风暴整个网络瞬间瘫痪。这不是交换机本身的问题而是拓扑设计的问题。实验里没有涉及环路场景但实际组网时这是必须注意的。从那以后我每次配交换机都会先确认三件事转发表是不是空的、有没有环路、广播域要不要划。这三步走完基本不会出大问题。希望帮到你。本文还有配套的精品资源点击获取