网络系统原理实验(3):交换计数器2020.10.27
一、实验目的
1.学会硬件实现交换机的端口计数器;
2.进一步熟练捕获数据的方法
3.掌握多种计数方式的设计和实现
4.了解掌握网络接口性能测量的基本方法
二、实验内容
1.基础要求:在2口进3口出(或者n2n)的基本功能UM_my/UM.v模块中设计端口计数器,能统计某一个(自选)端口进入的以下两个数据:1、报文数量 2、帧的数量(以太网帧的数量和报文数量其中区别自己find)。
2.第二要求:设计计数器能统计交换机通过的有效报文字节数量。
3.设计STP信号量并监视
4.设计完网络接口接收计数器模块的代码,初步掌握接收计数器模块的工作原理;使用接收计数器更新状态机的状态设置触发条件;在主机A上发送ping主机B的命令;使用抓包软件统计接口收发报文的计数接收计数器状态机的变化情况;对比软硬件计数器的统计结果。
三、实验环境
1.1台管理节点主机;1台主机A;(分别连接到2口和3口);
2.2根网线;
3.NetMagic08开发平台;
4.软件Quartus 16。主机及网络详细配置参照附带的实验环境拓扑及软件配置文档。
四、实验步骤
1.使用Quartus 打开 上次实验完成好的in2out3目录下的硬件工程项目
2.在工程项目中,打开文件列表对UM.v文件进行编写(用户模块文件)
3.新建信号量完成通过交换机某端口数据报文数量、数据帧数量和字节数的数据统计 ,设计信号拉出观测,具体设计代码如下
以上部分是帧数计数器,帧的计数是只要判断是不是报文头,如果是报文头则计数加一,由于要判断帧的来源,所有增加端口判断,判断到来自端口2的,才累加
以上部分是有效字节和报文计数,报文来自的端口只会在报文头的时候才会标识,其他报文不包括端口标识,所以需要判断输入端口是不是端口2(这个unput_port_reg在2进3出的代码里会存储输入端口)。
当端口判断完之后,报文数加一,有效字节数保存在cdp2um_data[135:132],有效字节为1-16,但是这四位只够显示0-15,所以最终需要再加一,到此,有效字节和报文数统计完毕。
4.点击编译命令,对代码进行编译,软件会完成硬件电路的设计和优化,生成和工程名同名的sof文件
5.在工具栏的“TOOL”中打开SignalTap II Logic Analyzer。
6.在上一次的基础上添加bw_num,zh_num,zj_num变量
7.添加时钟
8.将sof文件下载到NetMagic08中进行硬件调试
9.下载完毕后,我们使用网线将两台千兆网卡PC与NetMagic设备相连接,在设置了各自的静态IP地址后,使用命令行名ping命令。
从图中的数据中显示,报文数6FE,十进制为1790,帧数100,十进制为256,有效字节为6969,十进制为26985
结论:帧数是最少的,然后有效字节数应该大约是报文数的16倍,26985/1790=15,这次实验中大概是15倍,基本接近16倍。