首先,在 Packet Tracer 模拟器中配置好下面的网络网络拓扑,如图所示,其中通用交换机连接 4 台普通 PC,通用集线器 hub 连接 2 台普通 PC:
然后,对于每个设备,按照下表,点击 PC,在每台 PC 的配置窗口中配置合理的 IP 地址和子网掩码:
设置 IP 地址由左到右为 192.168.1.1, 192.168.1.2, 192.168.1.3, 192.168.1.4, 192.168.1.5, 192.168.1.6,子网掩码均为 255.255.255.0。
无需为交换机和集线器配置 IP 地址,因为交换机和集线器主要是处于 数据链路层 ,不涉及转发 IP 数据包,所以不必设置 IP 地址。
对于PC0的配置如图:
对于其它主机的IP地址和子网掩码,其配置原理与PC0相同,这里不再赘述。
若此时交换机端口指示灯呈橙色, 则单击主窗口右下角 Realtime (实时)Simulation(模拟)模式切换按钮数次,直至交换机指示灯呈绿色。此步骤可加速完成交换机的初始化。
添加PC0到PC2的简单PDU,切换到模拟模式进行观察:
单击 Add Simple PDU(添加简单 PDU)按钮,在拓扑图中添加 PC0 向 PC2 发送的数据包:
切换到模拟状态,设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件:
单击 Auto Capture/Play(自动捕获/播放)按钮,捕获数据包:
观察数据包的转发过程可以发现,出现的现象为:PC0 发送单播包到集线器 1,再通过集线器转发给 PC1、PC2、PC3,但只有 PC2 成功接收。而PC2 通过集线器发出单播包到 PC0、PC1、PC3,只有 PC0 可以成功地接收数据包。
点击 Info(信息)列中的彩色框以检查数据包的转发事件,如图所示:
切换到模拟状态,设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件:
单击 Auto Capture/Play(自动捕获/播放)按钮,捕获数据包:
PC6 发送单播包到交换机1,交换机1将其发送给 PC8,PC8 接收单播包,然后 PC8 经交换机将单播包返回给 PC6,结束执行。
经过上述步骤现象的对比,可以得出如下结论:
可见交换机与集线器的不同之处在于,交换机并没有进行广播,而可以直接将协议数据单元发给目标主机。
点击 Info(信息)列中的彩色框以检查数据包的转发事件,如图所示:
单击窗口下方的删除按钮,删除之前产生的场景:
单击 Add Complex PDU(添加复杂 PDU)按钮,单击 PC0,在弹出的对话框中设置参数如下图所示:
设置完成后,然后单击该对话框下方的创建PDU 按钮,点击创建协议数据单元,添加从PC0发出的复杂PDU(广播包),切换到模拟模式进行观察:
单击(捕获/执行)按钮,数据包到达集线器,再次单击(捕获/执行),集线器向与源站点 PC0 在同一广播域的所有站点转发数据包:
观察数据包的转发过程可以发现,出现的现象为:PC0 经集线器发送广播包到 PC1、PC2、PC3,在该网络中,多站点同时发送数据会发生冲突,导致数据包的转发过程失败。
点击 Info(信息)列中的彩色框以检查数据包的转发事件,如图所示:
单击窗口下方的删除按钮,删除之前产生的场景:
单击 Add Complex PDU(添加复杂 PDU)按钮,单击 PC6,在弹出的对话框中设置参数,其中参数与之前的设置相同。
设置完成后,然后单击该对话框下方的创建PDU按钮,点击创建协议数据单元。
添加从PC6发出的复杂PDU(广播包),设置自动捕获/播放,切换到模拟模式进行观察:
观察数据包的转发过程可以发现,出现的现象为:PC6 发送广播包给交换机,交换机接受;然后交换机将数据包转发给PC7、PC8和PC9;它们同时发送给交换机,交换机将其发送给 PC6,最终数据包的转发 成功完成:
点击 Info(信息)列中的彩色框以检查数据包的转发事件,如图所示:
单击窗口下方的删除按钮,删除之前产生的场景:
添加PC0到PC2和PC1到PC3的简单PDU:由PC0 向 PC2 发送数据包、由PC1 向 PC3 发送数据包。单击 Auto Capture/Play,切换到模拟模式进行观察:
观察数据包的转发过程可以发现,出现的现象为:从主机0和主机1发出的数据包在到达集线器时发生了冲突。而集线器发出数据包到各个主机也发生了 数据冲突,导致主机2和主机3丢弃了数据包。
单击窗口下方的删除按钮,删除之前产生的场景:
添加PC6到PC8和PC7到PC9的简单PDU:由PC6向 PC8 发送数据包、由PC7 向 PC9 发送数据包。单击 Auto Capture/Play,切换到模拟模式进行观察:
观察数据包各个节点的情况、交换机及主机对数据包的处理:
PC6和PC7向交换机发送数据包:
PC6到PC8的通信成功:
PC7到PC9的通信成功:
PC6和PC7向交换机发送数据包,然后交换机将数据包转发给 PC6、PC7、PC8、PC9。PC6发送的数据包被 PC8 接收,而其他 PC 丢弃收到的数据包;PC7发送的数据包被 PC9 接收,而其他 PC 丢弃 收到的数据包;之后PC8和PC9返回应答数据包,PC6到PC8和PC7到PC9的 通信成功。
点击 Info(信息)列中的彩色框以检查数据包的转发事件,如图所示:
首先,需要扩展集线器,用交叉线连接拓扑图中的两台集线器,如图所示:
单击 Add Complex PDU(添加复杂 PDU)按钮,单击 PC0,在弹出的对话框中设置参数如下图所示:
设置完成后,然后单击该对话框下方的创建PDU 按钮,点击创建协议数据单元,添加从PC0发出的复杂PDU(广播包),切换到模拟模式进行观察:
单击(捕获/执行)按钮,数据包到达集线器,再次单击(捕获/执行),集线器0向与源站点 PC0 在同一广播域的所有站点转发数据包:
点击 Info(信息)列中的彩色框以检查数据包的转发事件,如图所示:
添加PC0到PC2和PC4到PC5的简单PDU:由PC0 向 PC2 发送数据包、由PC4 向 PC5 发送数据包。单击 Auto Capture/Play,切换到模拟模式进行观察:
观察数据包的转发过程可以发现,出现的现象为:
1.在这一过程中,由于延迟的存在,在 PC4 发送的数据到达集线器 0 并发生冲突之前,PC0 发送的数据包已经到达 PC2;
2.而在 PC2 发送应答包时,与到达集线器 0 的数据冲突。间隔一定时间后,PC2 重新发送数据包,最终数据到达 PC0;
3.在 PC0 发送的数据到达集线器 1 并发生冲突之前,PC4 发送的数据包已经到达 PC5;
4.而在 PC5 发送应答包时,与到达集线器 1 的数据冲突。间隔一定时间后,PC5 重新发送数据包,最终数据到达 PC4。
由以上实验可以看出,集线器在扩大以太网规模的同时,也扩大了冲突域。当网络规模扩大,站点数量增加时,网络中发生冲突的可能性也将增加,这将导致 网络性能下降。
首先,需要扩展交换机,用交叉线连接拓扑图中的两台交换机,如图所示:
单击 Add Complex PDU(添加复杂 PDU)按钮,单击 PC6,在弹出的对话框中设置参数如下图所示:
设置完成后,然后单击该对话框下方的创建PDU 按钮,点击创建协议数据单元,添加从PC0发出的复杂PDU(广播包),切换到模拟模式进行观察:
单击(捕获/执行)按钮,数据包到达交换机,再次单击(捕获/执行),交换机向站点转发数据包:
添加PC6到PC8和PC10到PC11的简单PDU:由PC6向 PC8 发送数据包、由PC10 向 PC11 发送数据包。单击 Auto Capture/Play,切换到模拟模式进行观察:
观察数据包各个节点的情况、集线器及主机对数据包的处理:
PC8、PC11发送应答包,PC6、PC10 成功接收,最终通信成功结束:
由以上实验得知,虽然使用交换机解决了冲突域的问题,但是它并不能隔离广播域。
在使用交换机扩大网络规模的同时,也扩大了广播域。这将使以太网中广播包的数量增加,当广播包的数据量达到了一定数量时,网络性能就会 大幅度地下降。
经过本次实验关于 PDU 传输的模拟过程,可以分析得出:
集线器工作在物理层,仅对电信号进行 放大整形 ,然后向所有端口转发,并不识别数据链路层的帧,更不执行 CSMA/CD 协议。
而交换机工作在数据链路层,对从接口接收的数据链路层的帧进行处理,查看其目的 MAC 地址,并选择正确的接口进行存储转发,而且在向其他接口转发时要执行 CSMA/CD 协议。
交换机通过其接收的帧来学习每个端口连接的设备的物理地址,并将该信息存储在地址表中。如果交换机收到的帧的目的设备物理地址在其地址表中,它只会将该帧从连接该设备的端口发送出去。这称为 已知单播 。如果交换机收到一个广播,它就会将该帧从接收端口以外的所有其他端口泛洪出去。另外,如果交换机收到的帧的目的设备 MAC 地址不在其地址表中(即 未知单播 ),它也会将该帧从除接收端口以外的所有其他端口泛洪出去。当交换机将帧从除接收端口以外的所有其他端口泛洪出去时,其行为类似于集线器。
一个集线器形成了一个网络碰撞域;而对局域网交换机而言,每个端口可能构成一个独立的碰撞域,大大减少了分组访问网络冲突的机会。只要 PC 两两之间访问交换机的不同端口,并且这些端口配置为全双工的,它们之间就不存在碰撞域。广播域是对广播分组直接到达的区域而言的,由于局域网交换机转发广播报文,因此由交换机连接的局域网构成了一个广播域。