为提升大规模网络的整体运行性能,对网络的运行质量需要进行有效的测量,可以使用大量的分布式探针来监测网络各个节点的数据。主流的网络测量标准分为主动式和被动式测量。为了监测大规模网络的性能,单点测量所关注的数据远远不够,往往需要在网络的关键节点处部署探针进行多点测量。树莓派功能强大、设备小巧、可整合丰富的Linux类软件,可以方便的在节点作为探针发起主动的TCP\UDP网络性能测试。使用树莓派网络探针可以测量内容包括吞吐量、延迟、丢包率,并作网络可靠性、稳定性、 可达性等方面的分析,保障网络服务质量。树莓派网络探针的网络性能测量指标主要关注如下内容:
(1)可用性(Availability)
通过采用ICMP协议发送测试包测试样本测试点是否可达,根据ICMP测试的回显数据分析,从而监测网络的可用性。通过ICMP测试时,可以根据需要发送包的数量和包的大小。
(2)网络时延(Network Delay)
监测端到端的网络时延是监测网络质量的一个重要指标,可以综合监测数据包的正向时延、反向时延、往返时延来分析评估。
(3)丢包率(Packet Loss Rate)
网络丢包率是数据包丢失部分与所传数据包总数的比值。正常传输时网络丢包率应该控制在一定范围内。丢包率与数据包长度以及包发送频率相关。通常情况下,千兆网络丢包率应小于万分之五;百兆网络丢包率应小于万分之一。
(4)网络吞吐量(Network Throughput)
网络吞吐量是指在某个时刻,在网络中的端到端之间,实际可用的有效带宽。网络吞吐量非常依赖于当前的网络负载情况,必须综合多个情况的综合吞吐量测试,才能测量出相对准确的网络吞吐量。
(5)网络抖动(Jitter)
网络抖动用于描述包在网络中的传输延时的变化,抖动越小,说明网络质量越稳定越好。抖动是评价一个网络性能好坏的较为重要的因素。
为了综合的测得网络整体的性能指标需要,需要采用易于部署的测试设备分布在网络的各个节点进行测量,从而整体的监测全网数据,树莓派是成熟的嵌入式ARM开发平台,适合承担这个任务。
2树莓派及其开发环境
树莓派Raspberry PI是一个采用ARM架构的开放式嵌入式系统,外形小巧,却具有强大的系统功能和接口资源。它是以ARM11处理器为核心的单板计算机,拥有256MB、 512MB甚至1G的内存,具有USB接口、快速以太网接口、SD插槽、HDMI输出接口。树莓派小巧玲珑,能提供 1080p 全高清影像输出。在搭载基于ARM的Debian和Arch等Linux的发行版后,便可使用大量现有的软件库,使用大量的开源软件,也便于实行开发扩展。
树莓派支持多种语言进行应用开发,包括C语言和Python脚本等。树莓派预装了Python运行环境,由于Python语言的简单易用,使得Python开发在树莓派上非常流行。Python是一门解释型语言,这意味着代码运行前不需要编译,即程序直接执行而不需要编译为机器语言,Python用在树莓派上进行编程开发就非常方便。Python语言发展多年,有着成熟而广泛的开发者社区,使得树莓派上的Python开发者具备了强大的社区支持。
3 Netperf网络测量
Netperf是著名的网络性能测试工具,支持测试TCP和UDP应用的网络性能。Netperf工具以客户机/服务器(client/server)模式工作。Netperf服务器端运行netserver守护进程,用来侦听来自Netperf客户端的连接。Netperf客户端向Netperf服务器端发起各种模式的网络测试。客户端发起测试后,首先和服务器端建立一个控制连接,初始化连接的网络测试基本信息。初始化控制连接成功后,Netperf客户端向Netperf服务器端之间会再建立一个具体的网络性能测试连接,进行预设置测试流量模式的测试网络数据数据传输,以测试网络的性能并返回测试结果的各项信息。Netperf可以模拟Client/Server长连接或短连接场景,因此能更接近实际网络的使用环境进行测试和评估
Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。
Netperf支持如下模式的TCP流量性能测试:
(1)单个TCP连接,批量传输大量单TCP连接;
(2)单个TCP连接,客户端请求/服务器应答的TCP连接;
(3)多个TCP连接,每个连接支持请求/应答处理。
Netperf支持如下模式的UDP流量测试:
(1)UDP客户端/服务器模式的单向批量传输;
(2)请求/应答模式的UDP处理。
在进行Netperf网络测试,可以设置基本的TCP_STREAM和UDP_STREAM模式的网络流进行测试,也可以设置TCP_RR、TCP_CRR、UDP_RR的请求\应答网络流来进行测试。TCP_RR方式的支持多次同一TCP连接的TCP request和response的交互测试,各类数据库应用场景基本是这个模式,可以基于这种模式对数据库类TCP应用进行网络性能测试。TCP_CRR方式的支持多次新建TCP连接的TCP request和response的交互测试,各类无会话的TCP应用场景基本是这个模式,可以基于这种模式对无须会话保持的TCP应用(比如HTTP应用)进行网络性能测试。
4基于树莓派的网络探针
在树莓派上安装Netperf作为网络探针测试各个节点的网络性能,是一个较为便捷且方便的解决方案。在树莓派的Raspian系统上安装Netperf客户端,并执行Netperf客户端向专门部署的Netperf服务器发起测试,并检测综合测试的网络性能数据。
安装Raspian操作系统,在网站http://raspbian.org下载基于Debian的Raspian系统发行版压缩包。将压缩包解压缩后得到的映像文件,通过镜像写入工具Win32DiskImager将映像文件写入树莓派的SD卡。镜像写入成功后,将SD卡插入到树莓派的SD 卡插槽中,加电启动。第一次启动树莓派,要对进Raspian操作系统进行必要的配置。
(1)在树莓派下安装Netperf:
可以到Netperf官网(ftp://ftp.netperf.org/netperf/)下载当前最新版的netperf-2.7.0.tar.gz手动编译安装,或者直接通过Raspian软件库安装。
通过SSH客户端工具登录树莓派后,执行如下步骤通过Raspian软件库安装完成Netperf客户端的安装:
sudo apt-get update
sudo apt-get install netperf
(2)使用树莓派作为网络探针测试网络性能:
以下测试使用8字节的请求包/512字节的应答包进行模拟测试。使用测试参数-r设置请求包大小\应答包大小参数来进行测试。
测试截图如图1所示
图1树莓派TCP_RR测试
以下测试模拟大量新建连接的TCP测试,树莓派模拟客户端向目标TCP服务器发起大量的TCP新建连接请求,具体测试结果如图2所示:
图2树莓派TCP_CRR测试
5结语
树莓派是一个优秀的ARM嵌入式平台,基于树莓派灵活的体系架构可方便灵活的部署网络测试软件,树莓派和功能强大的Netperf网络测试工具结合后,就可以灵活方便的在网络节点中部署网络探针监测网络性能,有助于大规模网络提升网络运行质量。
参考文献
[1]钱洁,邱航,吴晓晖.基于主动网络的多路径流量均衡模型研究[J].计算机工程与应用, 2007,45( 14):107110.
[2]徐武平,晏蒲柳,夏德麟,等.主动网络中基于多代理系统的流量均衡[J].计算机应用研究, 2005( 5):227232.
[3]王群.物联网体系结构研究及模拟实验平台的组建[J].实验技术与管理, 2010,27(10):178-181.
[4]孙利民,李建中,陈渝,等.无线传感器网络[J].北京:清华大学出版社, 2005.
[5]汪鑫,彭丽薇.基于树莓派的网络监控系统的研究与发现[J]. Silicon Valley,2014,14(5):23-26.
作者简介
解攀科(1981-) 男 华中师范大学 工程师 研究方向:物联网,教育信息化和数字化学习
郭伟秀(1980-) 女 华中师范大学一附中 工程师 研究方向:数字化学习
共0条 [查看全部] 网友评论