引言
在数字化时代,数据包如何在复杂的网络中高效传输?集线器、交换机、路由器和ARP协议是网络通信的核心角色,但它们的具体工作原理和协作方式却常常被忽视。通过本次实验,我们借助PacketTracer模拟器搭建了一个包含两个局域网的网络环境,深入观察这些设备如何处理ARP和IP报文,揭开数据包穿越网络的"旅程"背后的奥秘。
正文
1. 在 PacketTracer 模拟器中配置网络拓扑
我们首先在PacketTracer中创建两个局域网(LAN),分别配置IP地址为220.24.4.0/24
和220.24.5.0/24
。通过连接PC机、交换机、集线器和路由器,搭建了一个典型的跨子网通信拓扑(如图1所示)。所有设备的IP地址和端口参数见图2------图7:

图1 网络拓扑

图2 路由器端口参数

图3 PC0参数

图4 PC1参数

图5 PC2参数

图6 PC3参数

图7 PC4参数
2. 根据要求完成实验环境设置
在该步骤中,首先需要将交换机中的MAC地址表清空,方式为在交换机的CLI界面输入指令enable进入特权模式,然后使用clear mac-address-table清除地址表,如图8所示:

图8 在Swith0中清除MAC地址表
对Swith1也进行上述去除MAC地址表操作,最后可得两张空的MAC地址表:

图9 Swith0和Swith1的MAC地址表
然后将主机PC0的ARP表置空,方法为在"命令提示符"界面输入"arp -d",见图10:

图10 清除PC0的ARP表
置空后的图见图11:

图11 PC0的ARP表
最后,我们需要在路由器Router0的ARP表中有PC4的MAC地址,这里只需要在PC4的"命令提示符"界面ping一下路由器的Fa1/0的IP地址,即输入指令:ping 220.24.5.1,运行结果见图12:

图12 ping命令的执行结果
这样我们就实现了在Router0的ARP表中有PC4的MAC地址,见图13:

图13 Router0的ARP表
3. 观察并分析实验现象
(1) 在模拟方式下用"Add simple PDU"方式PC0 发送一个报文给PC4。观察整个通信过程(设置过滤器,仅显示ICMP 和ARP 报文)。
(2)在实验报告中描述通信过程并按时间顺序,写出PC1,PC2,PC3,PC4 分别都收到了哪些报文:报文类型(ARP 请求/ARP 响应/IP 报文)?源MAC 地址(哪个PC 的MAC地址)?目的MAC 地址(哪个PC 的MAC 地址)?IP 报文的源IP 地址或ARP 报文的源IP 地址(哪个PC 的IP 地址)?IP 报文的目的IP 地址或ARP 报文的目标IP 地址(哪个PC的IP 地址)?
通信过程可以被表述为:
PC0 发送一个simple PDU给PC4,目的IP地址为PC4的IP地址,源IP地址为PC0的IP地址,见图14:

图14 Add simple PDU
因为PC0不知道PC4的MAC地址,所以PC0 发送ARP请求广播,询问PC4的MAC地址。PC0向Hub0转发 ARP请求报文,Hub0向PC1和Switch0转发,Switch0向Router0和PC2转发,在路由器中,Fa1/0中有PC4的信息,所以在这里会由路由器发送ARP 响应报文,告知PC4的MAC地址。Router0向Switch0转发,Switch0向Hub0转发,Hub0向PC0和PC1转发。PC0收到 ARP响应报文,得到 PC4 的MAC地址。
然后PC0向PC4发送ICMP回显请求,该请求先发到Hub0,然后被转发到PC1和Switch0,被Switch0转发给路由器,被路由器转发给Switch1,被Switch转发给PC3和PC4。PC4收到后发送ICMP应答报文,该报文先发到Switch1,被Switch1转发给路由器,被路由器转发给Switch0,被Switch0转发给Hub0,被Hub0转发给PC0和PC1,PC0收到后完成通信。
图15为上述描述的过程,图16为PC0收到ICMP应答报文(因为过程在文字中以叙述,图片较多,所以这里不一一放出,仅放置最后PC0收到ICMP应答报文的图片):

图15 Event List

图16 PC0收到ICMP应答报文
按照时间顺序将PC1,PC2,PC3,PC4收到的报文可以统计为下表(表中PC3和相邻的PC4同时收到报文):
主机 | 报文类型 | 源MAC 地址 | 目的MAC 地址 | IP 报文的源IP 地址或ARP 报文的源IP 地址 | IP 报文的目的IP 地址或ARP 报文的目标IP 地址 |
---|---|---|---|---|---|
PC1 | ARP 请求 | PC0的MAC地址 | 广播地址 | PC0的IP地址 | Router0的Fa0/0端口IP地址 |
PC2 | ARP 请求 | PC0的MAC地址 | 广播地址 | PC0的IP地址 | Router0的Fa0/0端口IP地址 |
PC1 | ARP 响应 | Router0的Fa0/0端口MAC地址 | PC0的MAC地址 | Router0的Fa0/0端口IP地址 | PC0的IP地址 |
PC1 | IP 报文 | PC0的MAC地址 | Router0的Fa0/0端口MAC地址 | PC0的IP地址 | PC4的IP地址 |
PC3 | IP 报文 | Router0的Fa1/0端口MAC地址 | PC4的MAC地址 | PC0的IP地址 | PC4的IP地址 |
PC4 | IP 报文 | Router0的Fa1/0端口MAC地址 | PC4的MAC地址 | PC0的IP地址 | PC4的IP地址 |
PC4 | IP 报文 | PC4的MAC地址 | Router0的Fa1/0端口MAC地址 | PC4的IP地址 | PC0的IP地址 |
PC1 | IP 报文 | Router0的Fa0/0端口MAC地址 | PC0的MAC地址 | PC4的IP地址 | PC0的IP地址 |
(3)分析在上述过程中交换机是如何学习MAC 地址表的。
交换机通过动态构建 MAC 地址表来优化网络流量的路由。当 PC0 发起一个 ARP 查询时,Hub0 会将这个查询扩散给网络中的所有设备,包括交换机Switch0。起初,Switch0 并不知道 PC4 的位置,因此它会将 ARP 查询转发至除了最初接收到该查询的那个端口外的所有端口。当传到路由器时,由于他的端口Fa1/0中有PC4的信息,所以会发送 ARP 回复来响应,其中包含了PC4的 MAC 地址。这条回复路径会穿过 Switch0最终回到 PC0。在处理 ARP 回复的过程中,Switch0 获得了 PC0 和 PC4 的 MAC 地址信息,并相应地更新了它们的 MAC 地址表。
这种机制让交换机能够持续积累有关网络设备位置的知识。如果遇到未知的 MAC 地址,交换机会采取广播策略,将数据包发送给尽可能多的端口,直到确定正确的传输路径。
(4)观察交换机如何处理广播和已知单播。
对于广播,交换机会转发至除了最初接收到该广播的那个端口外的所有端口;对于已知单播,交换机会转发至相应端口。
(5)分析上述过程中交换机接收到一个未知目的MAC 地址的帧是如何处理的。
它会将该帧从除了接收该帧的端口之外的所有其他端口转发出去。
(6)请解释该过程,即PC1,PC2,PC3,PC4 为什么会收到这些报文。
PC1,PC2收到ARP 请求是因为ARP 请求报文是一个广播报文;PC1收到ARP响应报文是因为集线器会从除了接收该帧的端口之外的所有其他端口转发出去;PC1会收到IP报文是因为该帧在集线器以广播形式发出的,PC3和PC4会收到则是因为交换机还没有学习目的MAC地址从而广播发出该帧;PC4和PC1再次收到IP报文原因则不太相同,这次的IP报文是PC4发出的,而PC1则是因为集线器广播发出的原因。
(7)PC0 发送的ARP 请求的目标是不是PC4,为什么?
并不是。在不同子网间的通信中,PC0需要首先找到通往目标网络的网关(在这里是路由器的Fa0/0端口)的MAC地址。因此,PC0会发送ARP请求来查找路由器Fa0/0端口的MAC地址。一旦获得了路由器的MAC地址,PC0就可以将数据包发送到路由器,由路由器负责将数据转发到PC4所在的子网。路由器再在其另一侧(这里是Fa1/0端口)进行类似的ARP请求来获取PC4的MAC地址,从而完成跨子网的数据传输。
(8)分析集线器、交换机和路由器的转发分组的方式有何不同。
集线器:作为一种工作在物理层的装置,集线器不具备智能筛选功能,当接收到数据帧时,会将其发送至每个相连端口,这意味所有接入的机器都将接收这些数据帧,即便是非目标的信息也会被送达。其工作模式为广播。
交换机:作为数据链路层的一个组件,交换机会检查数据帧的目标MAC地址,并据此决定哪个端口应该接收该帧,从而仅向对应的设备发送数据,避免了不必要的广播。这种机制意味着交换机通过MAC地址来指导数据流。
路由器:在网络层运作的路由器,则更加高级,它依据数据包的目标IP地址来做出决策,确定如何将数据从一个网络传递到另一个网络。路由器能够解析多个网络拓扑,并利用内置的路由算法来挑选最优路径。这样,路由器的运作依赖于IP地址来指引数据传输的方向。
结语
本次实验通过PacketTracer模拟器搭建了一个包含两个局域网的网络拓扑,其中配置了相应的IP地址段、PC机和路由器参数。实验开始前,我们清空了交换机的MAC地址表以及PC0的ARP缓存,确保实验在干净的环境中进行。为了保证后续通信,我们在路由器的ARP表中加入了PC4的MAC地址。在实验过程中,我们观察到了PC0发送给PC4的ICMP请求及其响应的完整流程。实验结果显示,当PC0试图与不同子网的PC4通信时,它首先通过ARP请求找到了路由器的MAC地址,之后路由器负责将数据包转发至PC4。此外,我们还注意到交换机如何通过学习MAC地址来优化数据包的转发,并区分了集线器、交换机和路由器在数据包转发方式上的差异。实验验证了集线器采用广播方式转发数据,交换机基于MAC地址进行有选择性的转发,而路由器则根据IP地址进行更为复杂的网络间转发。这些发现加深了我们对网络设备工作机制的理解,并提供了实际配置网络的经验。
网络世界的"交通规则"远比我们想象的复杂,但通过实验和模拟,我们得以揭开其神秘面纱。无论是优化局域网性能,还是设计跨区域网络,理解这些基础设备的原理都是迈向网络高手的第一步。下次当你连接Wi-Fi或访问网页时,不妨想想:你的数据包正在经历一场怎样的"冒险"?
补充
此处为实验中的一些注意事项:
在实验过程中需要按照要求配置各设备的IP地址,设置完路由器的端口IP地址后还需要启动路由器,需要清除的信息在清除之后可以再查看一下确保已经删除。