网络系统原理实验(4):带宽统计2020.11.10
一、实验目的
1.学会硬件实现网络硬件设备的带宽统计功能;
2.了解网络设备硬件内部的定时机制;
3.掌握基于时钟频率和计数器的定时器实现机制;
4.掌握基于定时器和计数器的接口速率估算;
5.掌握iPerf等网络性能评测工具的使用。
二、实验内容
1.实验原理:
网络带宽是指在一个固定的时间内(例如以秒为单位),能通过的最大数据量(以位bit为单位)。就好象高速公路的车道一样,带宽越大,好比车道越多。网络带宽作为衡量网络使用情况的一个重要指标,日益受到人们的普遍关注。它不仅是政府或单位制订网络通信发展策略的重要依据,也是互联网用户和单位选择互联网接入服务商的主要因素之一。
2.实验内容:
(1)硬件实现部分—— 原有工程内编写计时器和留下计时探针标志,本硬件设备的硬件工作频率为125MHz。
(2)探测部分——在Signaltap上设置硬件探针实例,分别检测网络数据量计数器的值能够每秒钟展示上一秒通过的数据量。
(3)外部对比和测试部分——在主机A上通过iPerf工具,分别测试与主机B进行TCP和UDP的单流通信带宽;在主机A上通过iPerf工具,分别测试与主机B进行TCP和UDP的多流通信带宽;根据每次signaltap触发的定时器和计数器的数值,估算网络接口的通信带宽;比较iPerf测试的带宽与根据硬件定时器与计数器估算的带宽的差异。
三、实验环境
1.1台管理节点主机;1台主机A;(分别连接到2口和3口);
2.2根网线;
3.NetMagic08开发平台;
4.iPerf 3.0以上版本 建议直接到官网下载。
四、实验步骤
1.使用Quartus 打开上次实验完成好的in2out3目录下的硬件工程项目。
在工程项目中,打开文件列表对UM.v文件进行编写(用户模块文件)
2.在UM.v文件中增加计数和计时功能,新建信号量完成数据统计,设计信号拉出观测。
每秒钟输出一次有效通过的数据位数(提示:有效数据量字节数*8),详细代码如下所示
其中temp为时间累计器,total为最终输出的结果,counter是累计的。每次两个判断,如果报文有效counter就累加有效字节,当时间累计到125000000的时候,赋值并且清零counter。
3.点击编译命令,对代码进行编译,软件会完成硬件电路的设计和优化,生成和工程名同名的sof文件
4.打开SignalTap II Logic Analyzer。
5.添加bw_num,zh_num,zj_num,input_port_reg,total,counter,temp变量,结果如下:
6.添加时钟,操作步骤如上一步,结果如下:
7.将sof文件下载到NetMagic08中进行硬件调试,编译改文件。
8.下载完毕后,我们使用网线将两台PC(主机A与主机B)与NetMagic设备相连接,在设置了各自的静态IP地址后,使用iperf工具。
9.主机B打开命令提示符,输入命令“iperf –s –p 1234”,按下回车,执行命令;在主机A的命令提示符中输入“iperf –c 169.254.98.2 192.168.1.20 –p 1234 ”,按下回车执行命令
10.成功发送了TCP流之后,点击开始运行分析按钮,获取报文数据。注意此时不会主动停止,而是会进行持续的数据采集,将会不断发生改变
如图,从结果中看到total约等于925MB和传输数据994MB
11.在主机A的命令提示符中输入“iperf –c 192.168.1.20 –p 1234 –u –b 1000m”,按下回车执行命令,发送了UDP流之后,点击开始运行按钮,获取报文数据
如图,从结果中看到total约等于329MB和传输数据396MB