目录
实验004交换计数器实现
一、实验目的
1、学会硬件实现交换机的端口计数器;
2、进一步熟练捕获数据的方法
3、掌握多种计数方式的设计和实现
4、了解掌握网络接口性能测量的基本方法
二、实验内容
1、基础要求
在2口进3口出(或者n2n)的基本功能UM_my/UM.v模块中设计端口计数器,能统计某一个(自选)端口进入1、报文数量和2、数据链路层帧的数量。
2、第二要求
设计计数器能统计交换机通过的有效报文字节数量。
3、设计STP信号量并监视
设计完网络接口接收计数器模块的代码,初步掌握接收计数器模块的工作原理;使用接收计数器更新状态机的状态设置触发条件;在主机A上发送ping主机B的命令;使用抓包软件统计接口收发报文的计数接收计数器状态机的变化情况;对比软硬件计数器的统计结果。
三、实验环境
1、 1台管理节点主机;1台主机A;(分别连接到2口和3口)
2、 2根网线;
3、 NetMagic08开发平台;
4、 软件Quartus 16。
主机及网络详细配置参照附带的实验环境拓扑及软件配置文档。
四、实验步骤
1.使用Quartus 打开 上次实验完成好的in2out3目录下的硬件工程项目netFPGAmini-2-3.qar。
2.在工程项目中,打开文件列表对UM.v文件进行编写(用户模块文件)
①在UM.v中添加三个32位的信号量,记录通过交换机2/3口的数据帧数量,数据报文数和字节数,分别为zhen_num,baow_num和zijie_num,如下所示
②编写代码,当交换机端口接收到数据时,统计数据报文数、数据帧数和字节数。初始化两组端口的信号量为0,以免程序自动初始化影响实验观察结果。当报文到达时,有效字节数 = =先前字节数 + 这报文的有效字节数、报文数量=先前报文数量+1;报文头到达时,帧数量=先前帧数量 + 1。
3.在UM.v文件中增加一个新的处理逻辑,在一个always@(posedge clk or negedge reset)逻辑中完成N to N的硬件设计(已在第二次实验完成)。
4.新建信号量完成通过交换机某端口数据报文数量、数据帧数量和字节数的数据统计 ,设计信号拉出观测。
5.点击编译命令,对代码进行编译,软件会完成硬件电路的设计和优化,生成和工程名同名的sof文件。
6.将sof文件下载到NetMagic08中进行硬件调试,点击Aurorun Analysis一直监听端口。
五、实验验收
验收要求:指定的端口
1、帧数量:zhen_num[31..0]
2、数据报文数量:baow_num[31..0]
3、有效字节数:zijie_num[31..0]
观察到正确的计数信息,有效字节数会接近数据报文数量的16倍:
六、实验思考
在真实的交换机设备中这类信息都可以称为管理信息。一般会有管理信息库(MIB,Management Information Base)来综合管理。作为交换设备,还有那些性能数据是关键的数据。硬件中如何获取、保存、刷新?
答:任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个SNMP设备(Agent)都有自己的MIB。MIB也可以看作是NMS(网管系统)和Agent之间的沟通桥梁。它们之间的关系如图所示:
MIB文件中的变量使用的名字取自ISO和ITU管理的对象标识符(object identifier)名字空间。它是一种分级树的结构。如下图所示,第一级有三个节点:ccitt、iso、iso-ccitt。低级的对象ID分别由相关组织分配。一个特定对象的标识符可通过由根到该对象的路径获得。一般网络设备取iso节点下的对象内容。如名字空间ip结点下一个名字为ipInReceives的MIB变量被指派数字值3,因而该变量的名字为:
iso.org.dod.internet.mgmt.mib.ip.ipInReceives
相应的数字表示(对象标识符OID,唯一标识一个MIB对象)为:
1.3.6.1.2.1.4.3
当网络管理协议在报文中使用MIB变量时,每个变量名后还要加一个后缀,以作为该变量的一个实例。如ipInReceives的实例数字表示为:1.3.6.1.2.1.4.3.0.
关键性能数据:硬件之间通信的速度,信息交换的分组格式,对于信息的存储能力等。
硬件中如何获取:可通过与“抓包” 类似的流程进行信息的截取,使一些指令在硬件层面执行从而使硬件中的信息可视化。
硬件中如何保存:硬件中信息的可视化,把硬件中信息传播的电信号转化为波形图输出。
硬件中如何刷新:在代码实现功能的过程中适当添加时序电路,利用系统时钟来对信息进行周期性的获取然后将旧的信息覆盖,实现信息的刷新。
七、实验心得
这次实验依旧是上次实验的进阶,它需要我们另写一个代码来设计计数器能统计交换机通过的有效报文字节数量。首先这个实验设计到了有效报文字节数以与报文数的概念。所以当报文头到达我们就需要将报文数加1,而当报文字节有效时需要累加,并且设定初始化和重置情况。这次实验代码不是很困难,主要是考验我们对于报文格式以与报文各个字段表示的了解,通过此次实验可以更加深刻地理解报文容,并为下一次实验打下基础。