计算机网络原理
交换机工作原理分析报告
一、实验目的:
1、熟练搭建跨交换机交换式以太网的拓扑结构图,并构造以太网数据帧
2、通过发送不同的数据帧,观察并分析每台虚拟机捕获数据帧的情况和交换机转发表的变化情况
3、理解交换机的自学习算法、洪泛法、计时器以及交换机转发数据帧的规则
4、理解交换机的工作原理
二、实验原理:
1、转发表中保存硬件地址和端口号的映射关系,以太网交换机是利用转发表进行数据交换的。
2、交换机是利用自学习算法来动态建立和维护转发表的。
3、泛洪:交换机收到需转发的数据帧,但是MAC地址表中无目标端的MAC地址的对应关系,则会将此数据帧发送给所有端口(除源端口),例如:当交换机收到一个广播帧或未知的单播帧时,会进行泛洪。
4、交换机的工作原理:交换机刚开始加电时,转发表是空的,在接收到第一个数据帧时,只能采用洪泛法把数据帧从除接收端口外的所有端口进行转发,同时把数据帧的源MAC地址和接收该数据帧的端口之间的映射关系保存在转发表中。继续解析从以太网端口接收的数据帧,获得的源和目的MAC地址与转发表中的映射关系进行比较。如果目的地址和源地址对应的端口号相同,交换机将该数据帧过滤掉,即丢弃而不转发该帧。如果目的地址和源地址对应端口号不同,交换机就会查出哪个端口和目的地址相关,并将该数据帧转发到这个端口。如果目的地址不在地址数据库中,交换机采用洪泛法将该数据帧发往除接收端口以外的所有端口,并将该对应关系加人到地址映射表中。
三、实验设备:
Windows计算机、GNS3、Oracle VM VirtualBox虚拟机
四、实验过程:
1、在GNS3窗口中搭建跨交换机交换式以太网,网络拓扑结构图如下:
在GNS3窗口中单击Start/Resume all nodes按钮,启动交换机和所有虚拟机设备。
2、卸载PC1、PC2、PC3虚拟机中的TCP/IP协议
在桌面 “网上邻居”图标上单击右键,在弹出的快捷菜单上选“属性”命令,打开 “网络连接”窗口,在“网络连接”窗口中“本地连接3”图标上单击右键,在弹出的快捷菜单上选“属性”命令,打开 “本地连接3属性”对话框,在“本地连接3属性”对话框的“常规”选项卡中,选中“Internet协议(TCP/IP)”,单击“卸载”按钮 ,卸载TCP/IP协议后,需要重启计算机。
3、登录交换机SW1和SW2,禁用思科发现协议(CDP协议)和生成树协议(STP协议),并查看MAC地址表内容
enable 进入特权模式
configure terminal 进入全局配置模式
no cdp run 禁用CDP协议
no spanning-tree vlan 1 禁用STP协议
exit 退出系统视图
show mac-address-table 显示MAC地址表内容
SW1交换机MAC地址表内容:
SW2交换机MAC地址表内容:
3、构造以太网数据帧
在PC1、PC2、PC3虚拟机中运行xcap软件,根据PC1、PC2、PC3虚拟机的MAC地址构造以太网数据帧,并保存。点击“文件”,在弹出的快捷菜单上选“打开”命令,打开一个保存的以太网数据帧,然后再根据PC1、PC2、PC3虚拟机的MAC地址对数据帧的源MAC地址和目的MAC地址进行编辑修改。构造好要发送的报文后,保存为.xcap文件作为新的以太网数据帧,将新的以太网数据帧复制到共享文件夹中,PC2、PC3可以直接使用新的以太网数据帧,不需要再次修改。
4、发送以太网数据帧
在PC1、PC2、PC3虚拟机中的xcap软件中刷新接口,启动接口,开始抓包。在 “接口”上单击右键,点击“刷新接口”,刷新出接口,在刷新出的接口上单击右键,点击“启动接口”,再在启动后的接口上单击右键,点击“开始抓包”。
发送数据帧之前,设置发送策略。先选择发送报文的网络接口,设置发送数据帧的次数“循环”->“递增/递减”值(“递增/递减”值为0时,无限循环)或“限制”->“次数”。PC1、PC2、PC3三台虚拟机设置好后,在其中一台虚拟机上勾选要发送的数据帧,点击发送按钮。
- 在PC1中向PC2发送数据帧
SW1交换机MAC地址表内容:
SW2交换机MAC地址表内容:
PC1捕获的报文:
PC2捕获的报文:
PC3捕获的报文:
- 在PC3中向PC1发送数据帧
SW1交换机MAC地址表内容:
SW2交换机MAC地址表内容:
PC1捕获的报文:
PC2捕获的报文:
PC3捕获的报文:
- 在PC3中向PC2发送数据帧
SW1交换机MAC地址表内容:
SW2交换机MAC地址表内容:
PC1捕获的报文:
PC2捕获的报文:
PC3捕获的报文:
- 在PC1中发送广播帧
SW1交换机MAC地址表内容:
SW2交换机MAC地址表内容:
PC1捕获的报文:
PC2捕获的报文:
PC3捕获的报文:
在捕获报文的网络接口上右击,在弹出的快捷菜单上选择“查看接口捕获报文”菜单
命令后,因为已经安装了Wireshark软件,会运行Wireshark对捕获的报文进行分析,同时把捕获的报文自动保存到xcap应用程序所在文件夹的temp子文件夹中。找到该文件,放入共享文件夹中,就可以在自己的电脑中查看捕获的报文了。
结束之后,在启动的接口上单击右键,点击“停止抓包”,再在接口上单击右键,点击“停止接口”。
在GNS3窗口中单击Stop all nodes按钮,停止交换机和所有虚拟机设备。
五、实验结果:
1、虚拟机的MAC地址:
2、搭建跨交换机交换式以太网,网络拓扑结构图为:
3、构造以太网数据帧,确定合适的以太网数据帧发送顺序:
4、根据交换式以太网中数据帧的发送情况完成下表:
5、结果截图:
交换机SW1的转发表:
交换机SW2的转发表:
6、说明:
交换机SW1、SW2刚开始加电时,转发表是空的
- PC1-PC2:
PC1给PC2发送数据帧,作为发送的第一个数据帧,由于交换机 SW1的转发表为空,没有PC2的MAC地址和端口号,只能采用洪泛法把该数据帧从除接收端口外的所有端口进行转发,同时将PC1的MAC地址(08:00:27:46:AF:CE)和端口号(F0/0)保存在交换机SW1的转发表中。同理,将PC1的MAC地址(08:00:27:46:AF:CE)和端口号(F0/1)保存在交换机SW2的转发表中。PC1、PC2、PC3三台虚拟机都收到PC1-PC2的数据帧。
- PC3-PC1:
PC3给PC1发送数据帧,由于交换机SW1、SW2的转发表存在PC1的MAC地址和端口号,所以只向PC1发送数据帧,不向PC2发送数据帧,同时将PC3的MAC地址(08:00:27:8F:F9:06)和端口号(F0/6)保存在交换机SW1的转发表中。同理,将PC3的MAC地址(08:00:27:8F:F9:06)和端口号(F0/5)保存在交换机SW2的转发表中。PC1、PC3两台虚拟机收到PC3-PC1的数据帧,PC2虚拟机未收到PC3-PC1的数据帧。
- PC3-PC2:
PC3给PC2发送数据帧,由于交换机SW1、SW2的转发表中没有PC2的MAC地址和端口号,所以采用洪泛法把该数据帧从除接收端口外的所有端口进行转发。由于交换机SW1的转发表存在PC3的MAC地址和端口号,交换机SW2的转发表也存在PC3的MAC地址和端口号,所以两个交换机SW1、SW2的转发表不变。但是由于每次加入或更新地址映射表的表项时被赋予一个计数器,存储一段时间后,映射关系会被交换机删除,所以交换机SW1的转发表中PC1的MAC地址(08:00:27:46:AF:CE)和端口号(F0/0)被删除。同理,交换机SW2的转发表中PC1的MAC地址(08:00:27:46:AF:CE)和端口号(F0/1)被删除。PC1、PC2、PC3三台虚拟机都收到PC3-PC2的数据帧。
- PC1广播:
PC1发送广播帧,所有端口都能收到报文。但由于交换机SW1、SW2转发表中的PC1的映射关系都被删除了,所以将PC1的MAC地址(08:00:27:46:AF:CE)和端口号(F0/0)保存在交换机SW1的转发表中;将PC1的MAC地址(08:00:27:46:AF:CE)和端口号(F0/1)保存在交换机SW2的转发表中。PC1、PC2、PC3三台虚拟机都收到PC1广播数据帧。
六、实验心得:
通过本次实验,我学会了搭建跨交换机交换式以太网、构造数据帧和利用共享文件夹,并理解了交换机的自学习算法、洪泛法、计时器以及交换机转发数据帧的规则,可以根据发送不同的数据帧,观察并分析每台虚拟机捕获数据帧的情况和交换机转发表的变化情况,对交换机的工作原理进行分析。