简介:这份文档面向计算机网络课程的初学者与实验课学生,聚焦交换机与集线器两种连接设备的工作原理差异,帮助读者通过 Cisco Packet Tracer 仿真实验理解二层转发机制与冲突域、广播域等核心概念。资源包共 1 个 doc 文件,约 1.34MB,内容为完整的实验报告,涵盖实验目的、实验内容、思考题解答与实验感想等模块。文档详细记录了集线器广播转发与交换机基于 MAC 地址转发表的自学习算法,并设计了三种典型场景:转发表无目标端口时泛洪、来源端口与目标端口相同时丢弃、目标端口已知时精确转发,同时配有思考题解析,说明集线器共享介质易产生冲突、交换机端口独立但可能因环路引发广播风暴,以及两者扩大网络规模时对性能的不同影响。目前已有 3406 人学习下载,适合需要完成实验报告、复习设备原理或准备网络基础考核的读者参考。
1. 从一份实验报告说起:为什么集线器和交换机的区别值得动手拆一遍
很多人第一次接触计算机网络,都是从“集线器和交换机到底差在哪”这个问题开始的。课本上写得很清楚:集线器工作在物理层,收到单播包也往所有端口灌;交换机工作在数据链路层,靠 MAC 地址转发表做定向转发。但真到了要给别人讲清楚、或者自己动手配一个能跑通的小型局域网时,光背结论是不够的。这份《实验一:交换机和集线器的工作原理》实验报告,就是一份典型的 Packet Tracer 仿真实验记录,覆盖了集线器广播行为、交换机自学习算法、ARP 协议工作过程以及 VLAN 广播域隔离四个核心实验。它适合正在学计算机网络、需要交实验报告、或者想用仿真工具把二层转发逻辑跑一遍的人。接下来我不复述报告原文,而是把它拆成能照着复现的操作路径,顺带把几个容易翻车的地方标出来。
2. 用 Packet Tracer 搭出集线器与交换机的对比拓扑:从 4 台主机到 5 台主机
2.1 为什么选 Packet Tracer 而不是真机
做二层转发实验,真机当然可以,但有几个现实问题:你需要至少两台交换机、一台集线器(现在市面上已经很少见)、若干台 PC,还得配串口线或者 console 线。成本高、占地方,而且集线器本身已经基本被淘汰,买回来也只能做实验。Packet Tracer 的好处是它把集线器和交换机都做成了可拖拽的模块,仿真模式下能逐帧查看数据包的转发路径,事件列表里会明确写出“转发到所有端口”还是“转发到指定端口”。常见做法是先用 Packet Tracer 把逻辑跑通,理解清楚冲突域和广播域的变化,再考虑要不要上真机验证。
选型上有一点要注意:Packet Tracer 的集线器模块默认就是物理层设备,你不需要做任何配置,插上线就能用。交换机模块默认所有端口在 VLAN1,自学习算法自动开启,也不需要额外命令。这跟真机不一样——真机交换机你至少得进 console 看一眼端口状态。所以仿真环境里“能通”不代表真机上“能通”,这是后面避坑部分要展开的。
2.2 集线器拓扑的搭建与观察
先搭集线器那组:4 台主机加 1 个集线器。IP 地址规划用 192.168.1.0/24,PC1 到 PC4 分别配 192.168.1.1 到 192.168.1.4,子网掩码 255.255.255.0。物理连接全部用直通线接到集线器端口。配完之后先别急着发数据,切到 Simulation 模式,把过滤器设成只显示 ICMP 和 ARP,这样事件列表不会被无关包刷屏。
# Packet Tracer 里没有命令行配置集线器的说法 # 但主机的 IP 配置可以在 Desktop -> IP Configuration 里完成 # 以下是对应的地址规划,方便你对照检查 PC1: 192.168.1.1/24 PC2: 192.168.1.2/24 PC3: 192.168.1.3/24 PC4: 192.168.1.4/24 Hub0: 无需配置,物理层设备配好之后,用 PC1 去 ping PC2。在 Simulation 模式下点“Play”,你会看到第一个包是 ARP 请求,源 MAC 是 PC1 的,目的 MAC 是 FF:FF:FF:FF:FF:FF,从集线器进去之后被复制到除接收端口以外的所有端口。PC3 和 PC4 也会收到这个 ARP 请求,只是它们发现目标 IP 不是自己,所以不回应。ARP 应答回来之后,ICMP 请求包同样被集线器广播到所有端口。这就是集线器的核心行为:它不查表,只做电信号复制。
这里有个参数值得留意:集线器所有端口共享同一个冲突域。也就是说,如果 PC1 和 PC3 同时发包,两个信号会在集线器内部叠加,导致冲突。Packet Tracer 在 Simulation 模式下会用一个红色的“碰撞”图标标出来。你可以试着让两台主机同时 ping 不同目标,观察事件列表里是否出现冲突标记。这个现象在交换机拓扑里不会出现,因为交换机每个端口是独立的冲突域。
2.3 交换机拓扑的搭建与自学习过程
交换机那组需要 5 台主机和 2 台交换机。拓扑可以这样设计:PC1、PC2、PC3 接 Switch0 的 Fa0/1、Fa0/2、Fa0/3;PC4、PC5 接 Switch1 的 Fa0/1、Fa0/2;两台交换机之间用 Fa0/24 互联。IP 规划用 192.168.2.0/24,PC1 到 PC5 依次配 192.168.2.1 到 192.168.2.5。
# 交换机在 Packet Tracer 里默认配置即可 # 但如果你想看转发表,需要进 CLI 敲命令 Switch> enable Switch# show mac address-table # 初始状态下表是空的,因为还没有流量经过关键操作是观察自学习算法。先让 PC1 ping PC2,事件列表里第一个包还是 ARP 请求,但这次交换机的行为不一样:它收到 ARP 请求后,先看源 MAC 地址,把 PC1 的 MAC 和 Fa0/1 的对应关系写进转发表;然后看目的 MAC 是广播地址,所以向除 Fa0/1 以外的所有端口转发。ARP 应答回来的时候,交换机又把 PC2 的 MAC 和 Fa0/2 写进表里。等 ICMP 请求再发的时候,交换机查表发现 PC2 在 Fa0/2,就直接从 Fa0/2 转发出去,不再广播。
你可以用show mac address-table验证这个学习过程。第一次 ping 之前表是空的,ping 完之后表里至少有两条目项。这里有个细节:转发表是有老化时间的,Packet Tracer 默认 300 秒。如果你等太久再去看,表项可能已经被清掉了。想稳定观察的话,ping 完立刻敲命令。
2.4 三种转发场景的构造与验证
实验报告里列了三种情况,我把它翻译成可操作的步骤。第一种:转发表里没有目标 MAC 的输出端口。这个最简单,刚启动交换机、还没任何流量的时候,直接让 PC1 ping PC2,交换机只能广播。第二种:转发表里有目标 MAC,但输出端口和来源端口相同。这个场景需要构造一下——先让 PC1 ping PC2,让交换机学到 PC2 在 Fa0/2;然后让 PC2 自己 ping 自己,或者让 PC1 再 ping 一次 PC2 但这次从 PC2 侧触发。实际上更常见的构造方式是:PC1 和 PC2 都接在同一个集线器上,集线器再接到交换机的一个端口。这样 PC1 发给 PC2 的帧会从同一个端口进来,交换机查表发现目标端口就是来源端口,直接丢弃。第三种:转发表里有目标 MAC,输出端口和来源端口不同。这个就是正常的定向转发,PC4 ping PC2 的时候,交换机查表发现 PC2 在 Fa0/2,PC4 在 Fa0/1,直接从 Fa0/2 转发。
提示:第二种场景在纯交换机拓扑里不太好构造,因为每台主机独占一个端口。用集线器串在交换机端口上,或者用 Packet Tracer 的“重复帧”功能,都能触发同端口丢弃的逻辑。
3. ARP 协议在 Packet Tracer 里的抓包与跨网段验证:从同网段到跨路由
3.1 ARP 请求与应答的报文结构
ARP 协议是二层和三层之间的桥梁。同网段通信时,主机只知道对方的 IP,不知道 MAC,所以先发 ARP 请求。这个请求的以太网帧头目的 MAC 是全 F 广播,源 MAC 是自己的;ARP 载荷里写着“谁的 IP 是 192.168.1.2,请告诉 192.168.1.1”。目标主机收到后,回一个单播 ARP 应答,把自己的 MAC 填进去。
在 Packet Tracer 里看这个过程的办法是:Simulation 模式下点开 ARP 请求包,看它的“Outbound PDU Details”。以太网帧头部分,DEST MAC 是 FFFF.FFFF.FFFF,SRC MAC 是发送方的;ARP 部分,Sender IP 和 Target IP 都能看到。ARP 应答包则是单播,DEST MAC 是请求方的 MAC。
# 在主机上查看 ARP 缓存的命令 arp -a # 输出示例: # Internet Address Physical Address Type # 192.168.1.2 00e0.8f6a.1234 dynamic # 192.168.1.1 00e0.8f6a.5678 dynamicarp -a显示的是当前 ARP 缓存表。-d可以删除指定项,-s可以添加静态项。实验里要求掌握这几个常用参数,实际排错的时候arp -d *清空缓存再重新 ping,是判断 ARP 问题的标准动作。
3.2 同网段与跨网段的 ARP 差异
同网段 ARP 请求的目标 IP 就是最终通信对端的 IP。跨网段就不一样了:PC5 要 ping PC9,但 PC9 在另一个网络,PC5 发现目标 IP 和自己不在同一个子网,于是它不会去 ARP 请求 PC9 的 MAC,而是 ARP 请求网关的 MAC。数据包先发给网关,网关再根据路由表转发到下一个网络。
实验报告里那个思考题问“PC5 ping PC9 一共出现几次 ARP 请求”,答案是两次:第一次 PC5 请求网关 MAC,第二次路由器请求 PC9 的 MAC。这个结论的前提是所有设备的 ARP 表都是空的。如果路由器已经学过 PC9 的 MAC,第二次 ARP 就不会发生。所以做这个实验的时候,一定要先清空所有设备的 ARP 缓存,否则观察到的次数会少。
# 清空 ARP 缓存的命令(在每台 PC 和路由器的 CLI 里执行) arp -d * # 或者用 Packet Tracer 的“Delete”按钮删掉所有场景重新来跨网段通信还有一个关键变化:MAC 地址会变,IP 地址不变。PC5 发出的帧,源 MAC 是 PC5,目的 MAC 是网关;路由器转发出去的时候,源 MAC 变成路由器出接口的 MAC,目的 MAC 变成 PC9 的 MAC。IP 层的源和目的 IP 从头到尾不变。这个“MAC 变、IP 不变”的规律,是理解路由器和交换机分工的核心。
3.3 用事件列表追踪 ICMP 与 ARP 的交替
Packet Tracer 的事件列表是分栏的,左边是时间戳,中间是设备名,右边是事件描述。看 ARP 和 ICMP 交替的时候,建议把过滤器设成只显示 ARP 和 ICMP,其他协议全部关掉。然后点“Auto Capture/Play”,让仿真自动跑。你会看到这样的顺序:ARP 请求(广播)→ ARP 应答(单播)→ ICMP 请求(单播)→ ICMP 应答(单播)。如果中间有跨网段,ARP 和 ICMP 会交替出现两次。
注意:Packet Tracer 的仿真速度可以调,在“Simulation”面板右下角有个播放速度滑块。调太快会看不清事件顺序,调太慢又浪费时间。我一般用默认速度,遇到关键包再手动单步。
4. VLAN 划分与广播域隔离:从 VLAN1 到 VLAN2/VLAN3 的实操
4.1 未划分 VLAN 时的广播行为
实验三的任务一是观察未划分 VLAN 前交换机对广播包的处理。默认情况下,交换机所有端口都在 VLAN1,广播域是整个交换机。PC0 发一个 ARP 请求,交换机会从除接收端口以外的所有端口转发出去,包括级联到另一台交换机的端口。另一台交换机收到后,同样向所有端口转发。最终结果是:整个网络里所有 PC 都收到了这个广播包。
这个现象在 Packet Tracer 里看得很清楚:事件列表里 ARP 请求会从 PC0 出发,经过 Switch0 扩散到所有端口,再经过 Switch1 扩散到所有端口。如果你有 10 台 PC,就有 10 台 PC 被这个广播打扰。广播域越大,广播流量占用的带宽越多,这就是实验报告思考题里说的“交换机扩大以太网规模可能导致性能下降”的原因。
4.2 创建 VLAN 并划分端口
任务二是在两台交换机上分别创建 VLAN2 和 VLAN3,然后把端口分进去。Packet Tracer 的交换机 CLI 和真机 Cisco 交换机基本一致,命令如下:
# 在 Switch0 上创建 VLAN2 和 VLAN3 Switch> enable Switch# configure terminal Switch(config)# vlan 2 Switch(config-vlan)# name vlan2 Switch(config-vlan)# exit Switch(config)# vlan 3 Switch(config-vlan)# name vlan3 Switch(config-vlan)# exit # 把 Fa0/1 到 Fa0/3 划入 VLAN2 Switch(config)# interface range fa0/1-3 Switch(config-if-range)# switchport mode access Switch(config-if-range)# switchport access vlan 2 Switch(config-if-range)# exit # 把 Fa0/4 到 Fa0/6 划入 VLAN3 Switch(config)# interface range fa0/4-6 Switch(config-if-range)# switchport mode access Switch(config-if-range)# switchport access vlan 3 Switch(config-if-range)# exit # 配置级联端口为 Trunk,允许 VLAN2 和 VLAN3 通过 Switch(config)# interface fa0/24 Switch(config-if)# switchport mode trunk Switch(config-if)# switchport trunk allowed vlan 2,3 Switch(config-if)# exit这里有几个参数需要解释。switchport mode access表示这个端口是接入端口,只属于一个 VLAN。switchport access vlan 2指定它属于 VLAN2。级联端口必须配成trunk,否则 VLAN2 和 VLAN3 的流量过不去。switchport trunk allowed vlan 2,3是白名单,只允许这两个 VLAN 通过,不写的话默认允许所有 VLAN。
4.3 验证 VLAN 隔离效果
配完 VLAN 之后,再让 PC0 发 ARP 请求。这次事件列表里,ARP 广播只在 VLAN2 内部扩散,VLAN3 的端口收不到。PC0 和 PC3 如果在同一个 VLAN,它们能通信;PC0 和 PC4 如果不在同一个 VLAN,即使 IP 在同一子网也 ping 不通。这就是 VLAN 在数据链路层隔离广播域的效果。
验证的时候有个常见问题:如果两台 PC 的 IP 在同一子网但 VLAN 不同,它们互相 ping 不通,但你看 ARP 缓存会发现 ARP 请求发出去了却没有应答。这不是 ARP 坏了,而是 VLAN 把广播包挡住了,目标 PC 根本没收到请求。解决办法是把它们划到同一个 VLAN,或者给它们配不同子网的 IP 然后走三层路由。
| 验证项 | 未划分 VLAN | 划分 VLAN 后 |
|---|---|---|
| 广播包传播范围 | 所有端口 | 同一 VLAN 内的端口 |
| 冲突域 | 每个端口独立 | 每个端口独立 |
| 广播域 | 整个交换机 | 每个 VLAN 一个 |
| 同 VLAN 通信 | 通 | 通 |
| 跨 VLAN 通信 | 通(同一广播域) | 不通(需三层设备) |
5. 避坑与排查:Packet Tracer 二层实验里最容易翻车的五个点
5.1 现象:PC 之间 ping 不通,但 IP 配置看起来没问题
原因通常是端口没起来。Packet Tracer 里交换机的端口默认是 up 的,但如果你手动 shutdown 过,或者用了某些模块化设备,端口可能处于 down 状态。另一个常见原因是线缆类型不对——PC 到交换机用直通线,交换机到交换机用交叉线(Packet Tracer 会自动识别,但真机不会)。解决方法是进交换机 CLI 敲show interfaces status,看端口是不是 connected。如果是 notconnect,检查线缆和端口状态。
5.2 现象:ARP 请求发出去了,但没有 ARP 应答
先看目标 IP 是否和源 IP 在同一子网。如果不在同一子网,源主机会 ARP 请求网关,而不是目标主机。如果网关地址没配或者配错了,ARP 请求就没人应答。另一个可能是 VLAN 隔离——源和目的在不同 VLAN,广播包过不去。解决办法是arp -a看缓存里有没有网关的 MAC,没有的话检查网关配置和 VLAN 划分。
5.3 现象:交换机转发表里学不到 MAC 地址
Packet Tracer 的转发表是动态学习的,只有流量经过才会写进去。如果你刚启动交换机就去看表,表是空的。另外,如果你在 Simulation 模式下单步执行,包还没走到交换机,表也不会更新。解决方法是先让 PC 之间 ping 一次,再敲show mac address-table。如果 ping 通了表还是空的,检查是不是所有流量都走了 Trunk 端口而你没看 Trunk 的表项。
5.4 现象:VLAN 配好了但跨交换机同 VLAN 不通
九成是 Trunk 没配或者 allowed vlan 没放行。Packet Tracer 里 Trunk 端口默认允许所有 VLAN,但如果你手动限制了 allowed vlan,漏掉了某个 VLAN,那个 VLAN 的流量就过不去。解决办法是show interfaces trunk看 Trunk 端口的状态和允许的 VLAN 列表。另外,两台交换机上的 VLAN 编号必须一致,一边有 VLAN2 另一边没有,流量也会被丢弃。
5.5 现象:仿真模式下包走到一半停住了
Packet Tracer 的 Simulation 模式是手动单步的,你不点“Play”它就不走。如果你点了“Play”还是停,检查是不是有包被丢弃了——比如 ARP 请求到了目标主机但目标主机没配 IP,或者交换机端口被 shutdown。事件列表里会写“Discarded”或者“Dropped”,点开看详情能定位到具体设备。
6. 从实验报告到真实排错:把 ARP 缓存和 MAC 表当成日常工具
这份实验报告的价值不在于它记录了四个实验步骤,而在于它逼你把二层转发的每个环节都看了一遍。我自己的习惯是:每次遇到网络不通的问题,先arp -a看缓存,再show mac address-table看交换机学到了什么,最后show interfaces trunk看 VLAN 放行情况。这三条命令覆盖了二层排错的大部分场景。
进阶一点的做法是,把 Packet Tracer 里的拓扑导出成图片,在旁边标注每个端口的 VLAN 和 Trunk 状态,形成一张“网络地图”。下次再搭类似拓扑的时候,直接照着地图配,不用从头想。另外,实验报告里的思考题其实比实验步骤更有价值——比如“集线器扩大以太网规模会不会导致性能下降”这个问题,答案是会,因为冲突域变大了。这个结论在真实网络里同样成立:如果你用集线器串了太多设备,碰撞概率会指数级上升,网络基本没法用。
从那以后我每次配完 VLAN 都强制走一遍show interfaces trunk和show mac address-table,确认 Trunk 放行了正确的 VLAN、转发表学到了正确的端口,再开始 ping 测试。这个习惯帮我省掉了至少一半的“玄学不通”问题。希望帮到你。
本文还有配套的精品资源,点击获取