微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > IPTV测试仪网络层测试的设计与实现

IPTV测试仪网络层测试的设计与实现

时间:08-11 来源:互联网 点击:




  控制模块负责IP流量发生器与CPU的交互,并控制测试仪处于何种状态:主机状态、从机状态、主从机状态;ARP/RARP模块主要负责ARP/RARP包的处理;同步模块负责主机向从机发送连接请求;响应模块负责从机向主机发送响应信息;转发模块完成主机发送来的IP包的转发;IP流量发生模块产生主机要发送的IP包;自身IP包处理模块完成对从机转发回的IP包进行分析处理,提取网络测试指标参数;接收模块完成网络上各种测试包的接收;接收调度模块调度接收到的测试包发送到相应的模块处理,如将ARP包送到ARP模块;发送模块负责将各种测试包发送到网络;发送调度模块完成各个模块测试包的发送顺序。

3.3 IP流量发生方案

  IP流量发生模块是整个IP流量发生器最重要的模块。用户在进行网络层测试时,启动IP流量发生器。用户输入每秒产生的IP包的个数、IP包的长度、IP包的类型、目的IP地址等关键参数。IP流量发生模块根据这些信息生成IP流量。
  发送的IP包的生成采用“定点填充、规律生成”的方案,即一些关键信息如测试时间、IP头长度、IP包总长度等在IP包中分配有固定的位置,且取值会对测试结果产生影响。对于这样的信息就要根据IP包的类型和用户填写的信息填充到固定的位置。如图5中的伪码所示。




  而IP包承载的一些数据信息可以是任何随意的值,取值多少对测试结果不会产生影响。对于这些信息,为了避免出现全0,将按一定规律产生。如伪码中所示,最高8位为一个固定前缀ti,低8位为位置偏移量的值offset(以4字节为单位)。当offset=x'01F4' 时,ti<=ti+1。这样规律产生的数据,便于测试时检查传输数据的正确性和纠错。

3.4 调度算法设计

  在IPTV测试仪的IP流量发生器中主要有2个重要的调度:接收调度和发送调度。测试仪处于不同的状态时,采用不同的调度算法。现在以调度最为复杂的主从机状态为例,介绍2个重要调度的算法设计。
  (1) 接收调度
  接收模块接收的测试包有4种可能:ARP/RARP包、作为从机要转发的包、应主机同步包的响应包、作为主机接收回的自身的IP包。
  接收调度就是判断测试包的类型,接收的是哪种类型的测试包就送到相应的处理模块进行处理。
  (2)发送调度
  相对接收调度,发送调度要复杂很多。因为测试仪同时处于主机和从机状态,它要发送的测试包有:ARP/RARP包、作为主机自身产生的IP包、请求从机建立连接的同步包、作为从机要转发回去的IP包。但是几种测试包可能都在等待发送。因此发送调度模块采用了“先来先服务,同在看级别”的算法思想。
  发送模块主要调度4种测试包的发送。当4种IP包到来时间不同时,且每次只有1种包需要发送时,则采用先来先服务FCFS(First Come First Serve)调度算法,哪种测试包先到达,调度模块则将其送到发送模块发送。当有2种或3种测试包在同时等待发送时,根据其优先级排队发送,优先发送级别高的测试包,然后发送级别低的测试包。本方案中ARP/RARP包的级别最高为1,同步包次之为2,转发的IP包级别为3,自身IP流量发生的IP包的级别最低为4。即如果3种包同时需要发送时,优先发送ARP包。
  这种算法思想结合了经典的先来先服务调度算法和优先级调度算法的优点,实现了发送模块的最优调度。

4 仿真结果及分析

  测试时,IP流量发生器接收用户输入的数据,根据这些数据产生IP包,发送模块在和从机建立连接后,按一定的帧间隔发送IP包,并在IP包头后打上发送时间戳。接收模块接收转发回来的IP包,记录每个IP包的时延,并统计接收到的IP包个数,送到上层应用程序进行计算。
  为了便于观察测试结果,测试输入如下:选择主机状态,发送时钟周期选择20 ns,1 s发送50 000个IP包,发送间隔为3个时钟周期,IP包头长度为20个字节,总长度为64字节,没有分片。主机IP地址为10.11.107.75(十六进制表示为0A0B6B4B),从机IP地址为10.11.105.34(十六进制表示为0A0B6922)。发送时间戳存放在IP包头的目的IP地址后。发送和接收模块的仿真图如图6所示。




  从图中可以看到,接收到的发送模块发送的IP包包头数据与用户输入数据完全吻合,且IP包数据完全按照IP流量产生算法规律产生。接收模块接收到的目的IP地址与发送模块的源IP地址相同都为主机的IP地址,说明主从机连接成功,通信正常。
  FPGA模块有一个公共时钟计数器,以时钟计数器值作为时间戳,接收和发送时的计数器值的差值,乘上时钟周期即为所求时延。统计接收到的IP包的个数,在开始接收时钟与当前时钟差值等于时钟频率时,即接收开始1 s后,输出和1 s钟丢包个数,时间未到时丢包个数保持为0。从图5可以看到,接收模块收到的第6个IP包的发送时间为0x000001F4,接收时钟为 0x000061AB,时延为124 500(0X00005FB4)个时钟周期。在未到1 s时,丢包个数保持为0。
  测试结果与预期结果完全一致。同时,经示波器测试,测试结果与仿真结果基本一致。
  本文首先介绍了IPTV测试仪的整体框架;然后分析了网络层测试指标算法,提出了利用IP流量发生器实现网络层测试的的设计方案;最后将方案在仿真软件上进行测试和仿真,并给出了部分结果。测试表明,本方案思路清晰,实现简单,程序稳定可靠。本方案已应用到“重邮东电IPTV测试仪”中,测试效果良好。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top