10g网络性能测试仪流量接收、抓取和统计电路组件的制作方法

文档序号:7612354阅读:153来源:国知局
专利名称:10g网络性能测试仪流量接收、抓取和统计电路组件的制作方法
技术领域
本发明属于高速网络及其网络设备性能测试中网络性能测试技术领域。
背景技术
网络性能测试是指测试网络系统和网络设备的性能,并对网络系统和网络设备的性能进行评价。性能测试关注被测对象的具体性能指标,如吞吐量、延迟、丢失率等,是准确地评价在不同网络负载下被测网络或网络设备的性能的一种重要手段。测试系统完成对被测网络或被测设备的测试功能,由被测设备(DUTDevice Under Test)、测试执行器(也称为“测试仪”)和测试监控器(也称为“监控机”)这三部分组成。测试仪实现测试端口,完成测试的基本功能,包括测试流量的产生和接收、测试统计量的测量、路由报文的产生和报文截取等。在高速网络性能测试中,一般用PC机作为测试监控器,测试监控器也称为“监控机”,提供用户交互界面,包括测试参数的设定、测试结果的分析和显示等;在网络性能测试中,采用主动测量方法,测试仪主动地生成和发送测试流量,经过被测设备转发回到测试仪,测试仪分析测试流量,从而得出网络或网络设备的性能指标。流量接收、抓取与统计电路组件是测试仪的重要组成部分,完成测试流量的接收、抓取和统计功能,实现相关测试对象性能指标的测试。
在国内外,测试流量接收、抓取和统计的实现有硬件和软件二种方法。单纯用软件来实现测试流量接收、抓取和统计,速率较低且实时性太差,无法满足高速网络或网络设备的性能测试需求,在10G网络条件下,唯有采用硬件方法实现才能达到rfc1242、rfc2544规定的性能测试要求。而硬件方法实现也可采用专用集成电路(ASIC)器件来实现,只是ASIC器件一旦设计成型,内部逻辑和功能就无法改变,升级性和可扩展性较差。因此,我们采用FPGA技术来实现测试流量的接收、抓取和统计。这目前在国内外各类文献中还未见有任何报道。

发明内容
本发明的目的在于提供一个可实时高速地实现测试流量接收、抓取和统计且升级性和可扩展性较好的10G网络性能测试仪流量接收、抓取和统计电路组件。
本发明的特征在于它由以下各个电路部分组成APL4 IPCore接收器简称IPCore电路,它的数据输入端与外部的帧控制器即Framer的相应输出端相连;B数据分路电路,它的转换为FPGA时序的数据输入端与上述IPCore电路的相应输出端相连;C协议帧上交电路,它的数据包输入端与上述数据分路电路相应的输出端相连;D数据分析预处理电路,它的数据包输入端与上述数据分路电路的相应输出端相连,以便对所接收的数据包作预处理操作;E数据包抓取电路,它的数据包输入端与上述数据分析预处理电路的相应输出端相连,以便对数据包进行抓取;同时它的SRAM数据端口与外部SRAM相应端口互连;F因特网信息包搜索协议包即ping包的统计电路,它的数据包输入端与上述数据分析预处理电路的相应输出端相连,以便完成ping包的统计工作,其中包括总包数、总延迟和当前延迟的统计;G流统计电路,它的数据流输入端与上述数据分析预处理电路的相应输出端相连,以便实现对数据流的性能状况的统计;H协议帧存储器,它的协议帧输入端与上述协议帧上交电路的相应输出端相连;I流统计结果存储器共5个,它们的数据端口分别与上述流统计电路的相应端口互连;JCPU接口电路,它的各输出端分别与上述数据包抓取电路、数据分析预处理电路、协议帧上交电路、流统计电路的相应输出端相连;CPU接口电路的各输入端与上述数据包抓取电路、ping包统计电路、流统计电路、各个流统计结果存储器、协议帧存储器的相应输出端相连;同时,上述CPU接口电路还有一个PORTX即通信接口收发的与外部互连的端口;其中,数据分路电路B包括B1输入寄存器,它的数据包输入端与上述IPCore电路的相应输出端相连;B2第一、第二输出寄存器,即输出寄存器1、2,它们的数据包输入端分别与上述输入寄存器的相应输出端相连;其中协议帧上交电路C包括C1协议帧筛选电路,包括C1a帧类型判别逻辑电路,它的数据包输入端与上述数据分路电路中第2输出寄存器的相应输出端相连;C1b数据锁存器,它的使能信号输入端、帧数据输入端分别与上述帧类型判别逻辑电路的相应输出端相连;C2有效数据检测逻辑电路,它的帧数据输入端与上述协议帧筛选电路中的数据锁存器的相应输出端相连;
C3数据寄存器,它的数据输入端与上述有效数据检测逻辑电路的输出端相连;C4存储空间计数器,上述有效数据检测逻辑电路输出的计数使能信号即有效信号经加1计数器后送往上述存储空间计数器的相应输入端,加1后的值送往上述加1计数器;C5空间阈值寄存器,它的配置值输入端与上述用J表示的CPU接口电路的相应输出端相连;C6时间阈值寄存器,它的配置值输入端与上述用J表示的CPU接口电路的相应输出端相连;C7内部时钟计数器,每个时钟周期计数器加1;C8第一比较器,它的两个输入端分别与上述空间阈值寄存器、存储空间计数器的相应输出端相连;C9第二比较器,它的两个输入端分别与上述时间阈值寄存器、内部时钟计数器的两个输出端相连;C10中断清除寄存器,它的中断清除信号输入端与上述用J表示的CPU接口电路的相应输出端相连;它的两个清零信号输出端分别与上述存储空间计数器、内部时钟计数器的相应输入端相连;C11中断控制逻辑电路,它的两个中断生成信号输入端分别与上述第一、第二比较器的相应输出端相连,它的中断清除信号输入端与上述中断清除寄存器的相应输出端相连;上述C2~C12各个电路共同组成中断电路,把从上述协议帧筛选电路C1送来的协议帧通过上述数据寄存器C3存储于上述协议帧存储器H,然后由上述中断控制逻辑电路的中断请求方式通过上述用J表示的CPU接口电路的PORTX输出提交给上层软件处理;其中,上述数据分析预处理电路D包括D1端口计数电路完成端口统计和数据的转发操作,它包括D1a帧数与字节数计数逻辑电路,一个输入端与上述数据分路电路中第1输出寄存器的相应输出端相连;D1b帧数计数器,上述帧数与字节数计数逻辑电路的帧数值输出端经加1加法器后与该帧数计数器的输入端相连,加1后帧数计数值又送回上述帧数与字节数计数逻辑电路,同时又送往上述用J表示的CPU接口电路;D1c字节数计数器,上述帧数与字节数计数逻辑电路的字节数输出端经过一个+α加法器后与该字节数计数器的输入端相连,+α后的字节数又送往上述帧数与字节数计数逻辑电路;同时,又送往上述用J表示的CPU接口电路的;α值是一个设定值;D2协议帧过滤电路,它把接收到的帧中所有协议帧过滤掉,它包括D2a帧类型判别逻辑电路,它的输入端与上述端口计数电路中的帧数与字节数计数逻辑电路的相应输出端相连;D2b数据锁存器,它的数据输入端与使能信号输入端分别与上述帧类型判别逻辑电路D2a的相应输出端相连;D3帧头剥离电路,它把上级电路输出的PPP数据帧或MAC帧帧头去除,包括D3a数据缓冲器一,其输入端接上述协议帧过滤电路中数据锁存器的输出端;D3b数据缓冲器二,其输入端接上述数据缓冲器一的输出端;D3c数据字拼接控制状态机,它的两个输入端分别接上述数据缓冲器一、二的相应输出端;D4流与ping数据标记电路,它检查每一个数据包是否带有流标签,再在边带信息上作相应标记,即流标记信号str和ping包标记信号png,它包括D4a流与ping数据判别逻辑电路,它的输入端接上述帧头剥离电路中数据字拼接控制状态机的相应输出端;D4b4拍延迟寄存器,其输入端接上述流与ping数据判别逻辑电路的输出端;D5背景流过滤电路,它对流标签中用可选项域标记的背景流进行过滤,包括D5a背景流判别逻辑电路,其输入端与上述流与ping数据标记电路中4拍延迟寄存器的输出端相连;同时,还有两个输入端与上述流与ping数据判别逻辑电路中的流标记信号str、ping包标记信号png相连;D5b数据锁存器,它的数据输入端、str信号输入端、png信号输入端与使能信号输入与上述背景流判别逻辑电路的相应输出端相连;D6错误包标记电路,它对接收到的每一个IPv4包进行头校验和计算并根据校验和是否有误,在该数据包边带信息处加上相应标记,即校验和标记chk,正确为0,错误为1,并进行校验和出错的包数的统计,它包括D6a校验和检查逻辑电路,它的数据、str信号、png信号输入端分别与上述背景流过滤电路中数据锁存器的相应输出端相连;D6b错误包计数器,上述校验和检查逻辑电路的输出端经一个加1加法器后与该错误包计数器的输入端相连,加1后的错误包数送回校验和检查逻辑电路,同时送往上述用J表示的CPU接口电路;D7路由错误计数电路,它判别每一个接收到的数据包是否发生路由错误,加上相应边带信息即路由错误标记mis,并进行路由错误包的计数;同时把数据分三路转发,把加好边带信息的数据分别送往下一个数据包抓取电路、流统计电路及ping包统计电路;所述路由错误统计电路包括D7a目的端口检查逻辑电路,它的数据输入端、str信号输入端、png信号输入端和chk信号输入端分别与上述错误包计数电路D6中校验和检查逻辑电路的相应输出端相连,而数据包的本地端口号输入端与上述用J表示的CPU接口电路的相应输出端相连;D7b路由错计数器,上述目的端口检查逻辑电路的一个输出端经过一个加1加法器后与该错误包计数器的相应输入端相连,再把加1后的路由错误包数返回上述目的端口检查逻辑电路;D7c4拍延迟寄存器,它的数据输入端、str信号输入端、png信号输入端、chk信号输入端分别与上述目的端口检查逻辑电路的相应输出端相连;D7d输出锁存器一,它的数据包输入端、使能信号str信号输入端分别与上述4拍延迟寄存器的相应输出端相连;该锁存器一的输出端与上述流统计电路G的相应输入端相连;D7e输出锁存器二,它的数据输入端、使能信号png信号分别与上述4拍延迟寄存器的相应输出端相连;该锁存器二的输出端与上述ping包统计电路的输入端相连;其中,上述数据包抓取电路对数据分析预处理电路送来的数据执行数据包抓取操作,它包括E1IP地址匹配电路,它对输入数据包进行源、目的地址的匹配性检查,并在边带信息上加上相应标记即源地址匹配信号sip、目的地址匹配信号dip后转发给下级电路,它包括E1aIP地址匹配逻辑电路,它的数据输入端、校验和标记chk输入端分别与上述路由错误计数电路D7中的4拍延迟寄存器D7c的相应输出端相连,它的路由错误标记mis信号输入端与上述目的端口检查逻辑电路D7a的相应输出端相连;该IP地址匹配逻辑电路的目的IP地址及匹配规则、源IP地址及匹配规则输入端分别与上述用J表示的CPU接口电路的相应输出端相连;E1b3拍延迟寄存器,它的数据输入端、chk信号输入端、mis信号输入端分别与上述IP地址匹配逻辑电路的相应输出端相连;E2包头协议与长度字段匹配电路,它对接收到的数据包进行协议号、长度的匹配性检查,并在数据包的边带信息上加上相应标记即协议号匹配信号pro、长度1匹配信号len1、长度2匹配信号len2后转发给下一级电路,它包括E2a包头协议与长度字段匹配逻辑电路,它的数据输入端、校验和标记chk输入端、路由错误标记mis输入端分别与上述IP地址匹配电路E1中的3拍延迟寄存器E1b的相应输出端相连,它的源地址匹配信号sip输入端、目的地址匹配信号dip输入端分别与上述IP地址匹配逻辑电路E1a的相应输出端相连;它的长度1及匹配规则、长度2及匹配规则、协议号及匹配规则输入端分别与上述用J表示的CPU接口电路的相应输出端相连;所谓协议号是指IPv4和IPv6报文头的协议字段;所谓长度1、长度2是给定的报文长度值;E2b1拍延迟寄存器,它的数据输入端、chk信号输入端、mis信号输入端、sip信号输入端、dip信号输入端分别与上述包头协议与长度字段匹配逻辑电路的相应输出端相连;E3触发器匹配电路,它对从上级电路接收到的数据包选取的部分内容进行触发信息即trigger匹配,并在数据包的边带信息上加上相应标记即触发器匹配信号trig1、trig2、trig3、trig4后转发给下一级电路,它包括E3a触发器匹配逻辑电路,它的数据输入端、校验和标记chk输入端、路由错误标记mis输入端、源地址匹配标记sip输入端、目的地址匹配标记dip输入端分别与上述包头协议与长度字段匹配电路中的1拍延迟寄存器E2b的相应输出端相连,它的另外3个边带信息pro、len1、len2输入端分别与上述包头协议与长度字段匹配逻辑电路E2a的相应输出端相连;它的4个触发信息即trigger1、2、3、4及相应匹配规则的4个输入端与上述用J表示的CPU接口电路的相应输出端相连;其中,所述的len1、len2是表示长度字段的边带信息,pro是指IPv4的protocol字段或IPv6的next header字段的边带信息,即协议号匹配信号;trig1~trig4是表示4个用于trigger规则的匹配信息,其中任一个trigger是一组匹配规则,完成对一个IP包某一区域内特定值的检查比较;E3b5拍延迟寄存器,它的数据输入端、各边带信息chk、mis、sip、dip、pro、len1、len2输入端分别与上述触发器匹配逻辑电路E3a的相应输出端相连;E4数据抓取控制电路,它根据配置的抓取方案对照数据包中的各边带标记决定一个数据包是否应该写到外部SRAM中去,生成SRAM写请求信号;它包括E4a抓取控制逻辑电路,它的各边带信息chk、mis、sip、dip、pro、len1、len2输入端与上述触发器匹配电路中5拍延迟寄存器E3b相连,另4个边带信息trig1~trig4与上述触发器匹配电路中的触发器匹配逻辑电路E3a相连;
E4b数据锁存器,它的数据输入端、使能信号分别与上述5拍延迟寄存器E3b、抓取控制逻辑电路E4a的相应输出端相连;E5SRAM仲裁电路,同时接收来自上述抓取控制电路的写请求和来自用J表示的CPU接口电路的读请求,生成符合片外SRAM时序的读写控制信号,其中,来自上述CPU接口电路的读请求具有更高优先级,它包括E5a读写仲裁逻辑电路,它与上述CPU接口电路互连,而它的另一个输入端与上述数据锁存器E4b的相应输出端相连,该读写仲裁逻辑电路又与片外SRAM互连;其中,ping包的统计电路实现ping数据包的总包数、总延迟和最后一个包的延迟的统计,它包括F1数据包检测逻辑电路;F2延迟提取逻辑电路;F1、F2这两个电路的输入端分别与上述数据分析预处理电路中路由错误计数电路内输出寄存器二的两个输出端相连;F3ping包数目寄存器,它的输入端与上述数据包检测逻辑电路的输出端相连;F4总延迟寄存器,它存储总延迟统计的结果;F5加法器,它的两个输入端分别接延迟提取逻辑电路和总延迟寄存器的相应输出端,而该加法器的输出端与总延迟寄存器的输入端相连;F6当前延迟寄存器,它的输入端与上述延迟提取逻辑电路的输出端相连;其中,流统计电路,它包括G1每流延迟统计电路,它对包括最大延迟、最小延迟和总延迟在内的每流数据包传输延迟进行统计并予以记录,供用J表示的CPU接口电路读取,它包括G1a流编号提取逻辑电路,它的数据输入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;G1b延迟提取逻辑电路,它的输入端与上述流编号提取逻辑电路的输入端是并接的;G1c总延迟寄存器;G1d加法器,它的两个输入端分别和上述延迟提取逻辑电路和总延迟寄存器的输出端相连;G1e最大延迟寄存器;G1f比较器一,它的两个输入端分别和上述最大延迟寄存器和延迟提取逻辑电路的各个输出端相连;G1g最小延迟寄存器;
G1h比较器二,它的两个输入端分别和上述最小延迟寄存器和延迟提取逻辑电路的各一个输出端相连;G1i2路数据选择器一,它的两个输入端分别和上述最大延迟寄存器和延迟提取逻辑电路的各一个输出端相连;G1j2路数据选择器二,它的两个输入端分别和上述最小延迟寄存器和延迟提取逻辑电路的各一个输出端相连;G1k写数据寄存器,它的三个输入端分别和上述加法器和两个数据选择器一、二的输出端相连;G1l读数据寄存器,它的数据输出端口与上述总延迟寄存器、最大延迟寄存器、最小延迟寄存器的输入端相连;G1m读写地址寄存器,它的数据输入端与上述流编号提取逻辑电路的输出端相连;G2每流乱序统计电路,它统计每流的丢包数、乱序和重传计数信息,并存储统计结果,供用J表示的CPU接口电路读取,它包括G2a流编号提取逻辑电路,它的数据输入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;G2b包序号提取逻辑电路,它的数据输入端与上述流编号提取逻辑电路G2a的输入端并接;G2c丢失包数目寄存器;G2d重传包数目寄存器;G2e乱序包数目寄存器;G2fRFC1242窗口机制控制器,它的4个输入端分别与上述包序号提取逻辑电路G2b以及丢失包、重传包、乱序包各个数目寄存器的输出端相连;G2g写数据寄存器,它的输入端与上述RFC1242窗口机制控制器的输出端相连;G2h读数据寄存器,它的数据输出端与上述丢失包、重传包、乱序包各个数目寄存器的输入端相连;G2i读写地址寄存器,它的数据输入端与上述流编号提取逻辑电路G2a的输出端相连;G3实时延迟统计电路,它根据流标签中可选项域来决定对哪一条流进行实时延迟统计,并存储相应统计结果,供用J表示的CPU接口电路读取,它包括G3a延迟提取逻辑电路,它的数据输入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;
G3b延迟寄存器,它的输入端与上述延迟提取逻辑电路的输出端相连;G3c写数据寄存器,它的输入端与上述延迟寄存器的输出端相连;G3d下一地址寄存器;G3e写地址寄存器,它的输入端与上述下一地址寄存器的输出端相连,而它的输出端经过一个加1加法器后与上述下一地址寄存器的输入端相连,加1后的值返回该写地址寄存器G4延迟分布统计电路,它根据流标签中可选项域决定对哪一条流做延迟分布统计,统计结果存储并供用J表示的CPU接口电路读取,它包括G4a延迟提取逻辑电路,它的数据输入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;G4b数据比较电路,它的两个输入端分别与上述延迟提取逻辑电路G4a、用J表示的CPU接口电路的15个延迟区间端点寄存器的输出端相连;G4c读写地址寄存器,它的输入端与上述数据比较电路G4b的输出端相连;G4d区间内延迟个数寄存器;G4e读数据寄存器,它的数据输出端与上述区间内延迟个数寄存器的输入端相连;G4f写数据寄存器,它的数据输入端与上述区间内延迟个数寄存器的输出端相连;G5每流统计电路,它统计接收到的包括每流字节数、总包数在内的数据,并存储供用J表示的CPU接口电路读取,它包括G5a流编号提取逻辑电路,它的数据入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;G5b字节数目寄存器;G5c包数目寄存器;G5d读数据寄存器,它的两个数据输出端分别与上述字节数目寄存器、包数目寄存器的输入端相连;G5e写数据寄存器,上述包数目寄存器的输出值加1后送往该写数据寄存器的输入端,上述字节数目寄存器的输出值加α后送往该写数据寄存器的输入端;G5f读写地址寄存器,它的输入端与上述流编号提取逻辑电路G5a的输出端相连;其中,5个流统计结果存储器I,它分另与上述每流延迟统计电路中、每流乱序统计电路中、延迟分布统计电路中以及每流统计电路中读数据寄存器的输入端相连,而与它们的写数据寄存器、读写地址寄存器的各输出端相连;该5个流统计结果存储器的输入端还与上述实时延迟统计电路中写数据寄存器、写地址寄存器的各输出端相连;
其中,CPU接口电路用J表示,它根据外部CPU指令完成各配置寄存器的配置以及各统计结果的提交,它包括J1CPU地址寄存器;J2CPU控制信号寄存器;J3CPU数据总线三态调度逻辑电路,它的输入端与上述CPU控制信号寄存器的输出端相连;上述电路J1~J3分别与外部CPU相应输出端相连;J4地址译码器,它的输入端与上述CPU地址寄存器的输出端相连;J5状态寄存器组,它的输入端分别和上述数据分析预处理电路中的帧数计数器D1b、字节计数器D1c、错误包计数器D6b、路由错计数器D7b的各输出端相连,它的输入端还和上述ping包统计电路中的ping包数目寄存器F3、总延迟寄存器F4、当前延迟寄存器F6的各输出端相连;J6配置寄存器组,它的各输出端分别连接到上述数据包抓取电路、数据分析预处理电路、协议帧上交电路、流统计电路的各相连输入端;◆J7外部SRAM数据寄存器,它的输入端与数据包抓取电路的SRAM仲裁电路相连;◆J8流统计结果存储器数据寄存器组,它的各输入端分别与上述5个流统计结果存储器的各输出端相连;◆J9协议帧存储器数据寄存器,它的各输入端与上述协议帧存储器的输出端相连;上述地址译码器J4的各输出端分别和上述J5~J9各电路的输入端相连;上述CPU数据总线三态调度逻辑电路的各输入端分别和上述状态寄存器组、外部SRAM数据寄存器以及协议帧存储器数据寄存器的各输出端相连;同时,又与上述流统计结果存储器数据寄存器组互连;它的输出端则与上述配置寄存器组的输入端相连。
本高速测试流量性能分析设备支持两种模式10G POS和10G Ethernet LAN/WAN的模式。它实现了从一个OC192或10G Ethernet接口接收测试数据包,进行实时统计和抓取,从而得到各种性能指标并将抓取后的数据存入片外SRAM供CPU读取。该设备同时支持IPv4和IPv6的性能测试,能够实现最小20字节数据包的线速度处理,并支持CPU实时读取各种性能指标。


图1 流标签结构图;图2 测试系统总体构成;图3 测试仪背板、主板和主控板连接情况;
图4 测试仪主板结构框图;图5 测试仪主板接收FPGA内部结构图;图6 数据分路电路;图7 协议帧上交电路;图8 数据分析预处理电路;图9 数据包抓取电路;图10 ping包统计电路;图11 流统计电路;图12 CPU接口电路。
具体实施例方式
本高速测试流量性能分析设备实现对于由本测试仪发送端口发出并经被测设备(DeviceUnder Test,DUT)转发的高速测试流量进行接收和分析,从而从测试流量中统计(Stat.)各种性能指标,并根据用户要求对各种符合要求的数据包进行抓取(Capture)。本设备内部采用128bit数据线加上若干位边带信息的格式,因此内部工作时钟采用100MHz即可满足对10Gbps数据进行实时分析的要求。本设备能够通过统计获得的性能指标包括端口计数、包错误计数、路由错误计数、每流计数、延迟分布统计、实时延迟统计、每流延迟计数、丢包计数、乱序包计数、重传包计数,利用本硬件电路得到的这些性能指标,上层软件经过处理可进一步获得吞吐量、丢失率、背靠背特性等性能指标;此外,该设备还可根据下列用户需求对数据包进行匹配并抓取IP源地址和目的地址、包头协议字段、包长度、部分数据包内容。
本设备中,对于测试数据流性能指标的统计和对于数据包的抓取是基于流标签进行的。流标签(signature)是由测试仪发送方电路填入的位于IP分组数据部分的与各种性能指标有关的标记。它的结构如图1所示。
本设备大部分电路模块的设计思路是这样的当收到一个数据分组时,根据操作目的找到流标签或IP报头中相应字段,据此得到某些性能指标或进行进一步操作。
整个测试仪系统由三部分组成监控机(monitor)、测试仪(tester)和被测设备(DUT),连接情况如图2所示。测试仪完成测试的基本功能,包括测试流量的产生和接收、测试统计量的测量、路由报文的产生和报文截取等。监控机通过消息机制完成对测试仪的控制,并负责与用户的交互,包括测试参数的设定、测试结果的分析和显示等。在测试系统中,测试仪的各测试接口与被测路由器的各接口直接相连,测试仪和监控机之间通过100M以太网相连。当有多台测试仪参与测试时,各测试仪同监控机使用100M Hub进行连接,由监控机完成各测试仪之间的协调工作。
测试仪(tester)包含了整个测试系统中的硬件电路设计,其各板卡连接图如图3所示。主板用于实现测试流量的生成和分析;主控板用于实现各主板之间的同步以及测试仪之间的级联;背板负责各测试仪主板和主控板之间控制信息的交互。
测试仪主板是测试仪中最重要的部分,其外部接口及内部电路结构如图4所示。它包括CPU控制模块、同步级联电路模块、以太网通讯模块(图中未画出)、FPGA流量生成与统计接收模块和10G光接口模块。
本发明在Altera公司的Stratix GX EP1SGX40DF1020C6型号的FPGA器件上得到了实现。分布在该器件周围并与其直接相连的外围芯片主要是帧控制器Framer芯片和静态存储器SRAM芯片,其工作环境如图4所示。实际工作时,FPGA通过SPI4.2接口从Framer接收测试数据流量;然后,测试数据流量在FPGA内部经过一步步地分析,从而得到各种性能指标并存储于内部的寄存器或内部开辟出的RAM中,同时符合用户匹配要求的一部分数据被抓取后存储于FPGA外部的SRAM中。FPGA内部的数据宽度采用128bit,内部处理时钟采用100MHz时钟。
下面结合附图详细介绍本发明的数据流程。
首先,如图5所示,从framer芯片而来的符合SPI4.2接口规范的622MHz的16bit差分数据被PL4 IPCore接收器所接收。经过PL4 IPCore接收器的处理,这些16bit的差分数据被转化成128bit的单端数据信号,并以符合Atlantic接口规范的信号形式输出。
数据分路电路通过Atlantic接口从PL4 IPCore接收器接收数据,然后它将数据复制成两路,一路送往数据分析预处理电路,用来进行统计和抓取,另一路送往协议帧上交电路,用于上层协议软件之间的交互。这两路数据的构成最初都包含协议帧和数据帧,其中数据帧既有带流标签的数据帧,也有不带流标签的数据帧,带有流标签的帧中还有一部分封装的是ping包。
对于送往数据分析预处理电路的一路数据,如图8所示,这些数据先后依次经过的电路结构以及相应的处理操作如下所述。
端口计数电路进行帧数目计数和接收字节数目计数。帧数与字节数计数逻辑每检测到一帧的结束标志就将帧数计数器加1;同时当它每检测到一个有效的数据字时,若该数据字不是一帧的结束,则将字节计数器加16(128bit=16字节),否则将字节计数器加上该数据字中的有效字节数。同时,数据无改变地输入到下一级电路。
协议帧过滤电路本路数据用来统计和抓取,因此这里将协议帧滤除掉。帧类型判别逻辑根据帧头的协议字段的值来判断正在处理的帧是IP数据帧还是协议帧,若是IP数据帧,则打开数据锁存器令其通过,否则不予通过。经过这一过滤电路处理后的数据将只剩下IP数据帧。
帧头剥离电路为进一步方便数据的处理,将IP数据帧的帧头剥掉。先将相继接收到的两个数据字存储于两个缓冲器中,然后由数据字拼接控制状态机负责各取两个缓冲器中的部分数据拼接成一个新的128bit字,送到下一级电路。经过帧头剥离电路处理后的数据完全由IP包组成。
流与Ping数据标记电路刚到达这里的IP包既有带有流标签的IP包,也有不带有流标签的IP包,其中还有一部分是ping包,相互之间没有区分标志。由于后续电路要对流数据(即带有流标签的IP包)和ping包特殊处理,因此这里用边带信息将它们区分出来。流与Ping数据判别逻辑通过检测流标签和IP包头protocol字段(或next header字段),甄别出流数据和ping包,并分别用边带信息str和png来标记。
背景流过滤电路背景流判别逻辑通过检查流标签中的Option字段来判断当前IP包是否属于背景流,若是背景流则不予通过。
错误包计数电路重新计算流标签校验和与IPv4包头校验和,检查是否有错误发生,若发现错误,则错误包计数器加1;同时再加1bit边带信息chk,用来记录当前IP包是否为错包。
路由错计数电路将流标签中DstPort域的值和本地端口号进行比较,若不等,则路由错计数器加1;同时再加1bit边带信息mis与延迟4个时钟节拍的数据一起同步输出给数据包抓取电路,用来记录当前IP包是否发生路由错误。另外,本路由错计数电路还将流数据和ping包分别输送给流统计电路和Ping包统计电路,流数据和ping包的识别分别根据边带信息str和png的值来决定。
IP包从路由错计数电路输出后分为三路一路送往数据包抓取电路,用来根据用户需求进行抓取;一路送往流统计电路,用来得到各种与流相关的性能指标;另一路送往Ping包统计电路,用来对ping包的包数及延迟等进行统计。
下面先介绍被送往数据包抓取电路的IP包的情况,如图9所示。
首先,数据穿过IP地址匹配电路,进行IP地址域的匹配。根据由CPU配置的源IP地址及匹配规则、目的IP地址及匹配规则,检查IP包头中的源IP地址和目的IP地址域,对于符合匹配规则的IP包分别在边带信息sip和dip上打上相应标记。然后,数据又穿过包头协议与长度字段匹配电路,该电路根据CPU配置的匹配规则检查IP包头的protocol字段(IPv4)或next header字段(IPv6)以及长度字段,其中长度匹配支持两个规则的匹配,因此这个过程共产生3bit边带信息(pro,len1和len2)。接下来,数据在穿过trigger匹配电路时,完成4个用户trigger规则的匹配,产生4bit边带信息(trig1,trig2,trig3和trig4)。一个trigger是一组匹配规则,可以完成对一个IP包某一区域内特定位的检查比较。
下一步,数据及其边带信息输入到数据抓取控制电路,其中的抓取控制逻辑根据各边带信息的值决定数据是否抓取,若决定抓取,则让数据通过该电路,送入SRAM仲裁电路。最后,SRAM仲裁电路同时处理数据抓取控制电路的写SRAM请求和CPU接口电路的读请求,产生正确的SRAM读写控制信号。
接下来再详细介绍从路由错计数电路送往流统计电路的一路数据,如图11所示。
在流统计电路中,所有IP包都是流数据,这些流数据被同时并行地输入给实时延迟统计电路、延迟分布统计电路、每流统计电路、每流延迟统计电路和每流乱序统计电路。
在实时延迟统计电路中,每个IP包的流标签中的时间戳被提取下来,然后用本地时钟计数器的值减去时间戳便得到延迟。在本电路中,每得到一个延迟便把它写入到第1个流统计结果存储器中。
在延迟分布统计电路中,仍类似前面所述的得到延迟值,然后将这个延迟值与CPU配置好的15个延迟区间端点进行比较,得出它属于0——15哪个区间,这个区间号便是相应的统计结果存储位置地址。然后从第2个流统计结果存储器中的该存储位置读出该区间延迟个数,加1后再写回该地址。
在每流统计电路中,每个IP包的流标签中的DstNo域被提取下来,作为相应的统计结果存储位置地址。根据这个地址,从第3个流统计结果存储器中的该存储位置读出IP包数目和字节数目,更新后再存入原位置。
在每流延迟统计电路中,类似前面所述的得到延迟值,并把IP包的流标签中的DstNo域作为相应的统计结果存储位置地址。根据这个地址,从第4个流统计结果存储器中的该存储位置读出最小延迟、最大延迟和总延迟,更新后再存入原位置。具体更新做法为最小延迟取原值和新延迟值的最小值,最大延迟取原值和新延迟值的最大值,总延迟取原值和新延迟值的和。
在每流乱序统计电路中,仍把IP包的流标签中的DstNo域提取下来作为相应的统计结果存储位置地址,同时还需要提取流标签中的包序号sequence域。应用RFC 1242中所述的窗口机制,结合接收包的包序号以及维护的窗口值,不断修改第5个流统计结果存储器中的丢失包数目、重传包数目和乱序包数目。
此外,从路由错计数电路输出的还有一路IP数据送往了Ping包统计电路,对接收到的ping包的包数目、总延迟和当前延迟进行了统计。
最后,在数据流的第一个分叉处,即数据分路电路处,还有一路数据被送往协议帧上交电路。如图7所示,在协议帧上交电路内部,数据先经过协议帧筛选电路将IP数据帧滤除掉,只剩下协议帧。然后,协议帧到达中断电路,首先被存入协议帧存储器,再根据一定条件产生中断,请求CPU来处理所有缓存的协议帧。产生中断的条件是,协议帧存储器中有数据,并且协议帧存储器的空间占用已经超过空间阈值或自上一中断请求以来的空闲时间已经超过一个时间阈值,便产生一次中断。
权利要求
1.10G网络性能测试仪流量接收、抓取和统计电路器件,其特征在于,它是用现场可编程门阵列即FPGA实现的一个大规模可编程数字集成电路器件,它由以下各个电路部分组成APL4 IPCore接收器简称IPCore电路,它的数据输入端与外部的帧控制器即Framer的相应输出端相连;B数据分路电路,它的转换为FPGA时序的数据输入端与上述IPCore电路的相应输出端相连;C协议帧上交电路,它的数据包输入端与上述数据分路电路相应的输出端相连;D数据分析预处理电路,它的数据包输入端与上述数据分路电路的相应输出端相连,以便对所接收的数据包作预处理操作;E数据包抓取电路,它的数据包输入端与上述数据分析预处理电路的相应输出端相连,以便对数据包进行抓取;同时它的SRAM数据端口与外部SRAM相应端口互连;F因特网信息包搜索协议包即ping包的统计电路,它的数据包输入端与上述数据分析预处理电路的相应输出端相连,以便完成ping包的统计工作,其中包括总包数、总延迟和当前延迟的统计;G流统计电路,它的数据流输入端与上述数据分析预处理电路的相应输出端相连,以便实现对数据流的性能状况的统计;H协议帧存储器,它的协议帧输入端与上述协议帧上交电路的相应输出端相连;I流统计结果存储器共5个,它们的数据端口分别与上述流统计电路的相应端口互连;JCPU接口电路,它的各输出端分别与上述数据包抓取电路、数据分析预处理电路、协议帧上交电路、流统计电路的相应输出端相连;CPU接口电路的各输入端与上述数据包抓取电路、ping包统计电路、流统计电路、各个流统计结果存储器、协议帧存储器的相应输出端相连;同时,上述CPU接口电路还有一个PORTX即通信接口收发的与外部互连的端口;其中,数据分路电路B包括B1输入寄存器,它的数据包输入端与上述IPCore电路的相应输出端相连;B2第一、第二输出寄存器,即输出寄存器1、2,它们的数据包输入端分别与上述输入寄存器的相应输出端相连;其中协议帧上交电路C包括C1协议帧筛选电路,包括C1a帧类型判别逻辑电路,它的数据包输入端与上述数据分路电路中第2输出寄存器的相应输出端相连;C1b数据锁存器,它的使能信号输入端、帧数据输入端分别与上述帧类型判别逻辑电路的相应输出端相连;C2有效数据检测逻辑电路,它的帧数据输入端与上述协议帧筛选电路中的数据锁存器的相应输出端相连;C3数据寄存器,它的数据输入端与上述有效数据检测逻辑电路的输出端相连;C4存储空间计数器,上述有效数据检测逻辑电路输出的计数使能信号即有效信号经加1计数器后送往上述存储空间计数器的相应输入端,加1后的值送往上述加1计数器;C5空间阈值寄存器,它的配置值输入端与上述用J表示的CPU接口电路的相应输出端相连;C6时间阈值寄存器,它的配置值输入端与上述用J表示的CPU接口电路的相应输出端相连;C7内部时钟计数器,每个时钟周期计数器加1;C8第一比较器,它的两个输入端分别与上述空间阈值寄存器、存储空间计数器的相应输出端相连;C9第二比较器,它的两个输入端分别与上述时间阈值寄存器、内部时钟计数器的两个输出端相连;C10中断清除寄存器,它的中断清除信号输入端与上述用J表示的CPU接口电路的相应输出端相连;它的两个清零信号输出端分别与上述存储空间计数器、内部时钟计数器的相应输入端相连;C11中断控制逻辑电路,它的两个中断生成信号输入端分别与上述第一、第二比较器的相应输出端相连,它的中断清除信号输入端与上述中断清除寄存器的相应输出端相连;上述C2~C12各个电路共同组成中断电路,把从上述协议帧筛选电路C1送来的协议帧通过上述数据寄存器C3存储于上述协议帧存储器H,然后由上述中断控制逻辑电路的中断请求方式通过上述用J表示的CPU接口电路的PORTX输出提交给上层软件处理;其中,上述数据分析预处理电路D包括D1端口计数电路完成端口统计和数据的转发操作,它包括D1a帧数与字节数计数逻辑电路,一个输入端与上述数据分路电路中第1输出寄存器的相应输出端相连;D1b帧数计数器,上述帧数与字节数计数逻辑电路的帧数值输出端经加1加法器后与该帧数计数器的输入端相连,加1后帧数计数值又送回上述帧数与字节数计数逻辑电路,同时又送往上述用J表示的CPU接口电路;D1c字节数计数器,上述帧数与字节数计数逻辑电路的字节数输出端经过一个+α加法器后与该字节数计数器的输入端相连,+α后的字节数又送往上述帧数与字节数计数逻辑电路;同时,又送往上述用J表示的CPU接口电路的;α值是一个设定值;D2协议帧过滤电路,它把接收到的帧中所有协议帧过滤掉,它包括D2a帧类型判别逻辑电路,它的输入端与上述端口计数电路中的帧数与字节数计数逻辑电路的相应输出端相连;D2b数据锁存器,它的数据输入端与使能信号输入端分别与上述帧类型判别逻辑电路D2a的相应输出端相连;D3帧头剥离电路,它把上级电路输出的PPP数据帧或MAC帧帧头去除,包括D3a数据缓冲器一,其输入端接上述协议帧过滤电路中数据锁存器的输出端;D3b数据缓冲器二,其输入端接上述数据缓冲器一的输出端;D3c数据字拼接控制状态机,它的两个输入端分别接上述数据缓冲器一、二的相应输出端;D4流与ping数据标记电路,它检查每一个数据包是否带有流标签,再在边带信息上作相应标记,即流标记信号str和ping包标记信号png,它包括D4a流与ping数据判别逻辑电路,它的输入端接上述帧头剥离电路中数据字拼接控制状态机的相应输出端;D4b4拍延迟寄存器,其输入端接上述流与ping数据判别逻辑电路的输出端;D5背景流过滤电路,它对流标签中用可选项域标记的背景流进行过滤,包括D5a背景流判别逻辑电路,其输入端与上述流与ping数据标记电路中4拍延迟寄存器的输出端相连;同时,还有两个输入端与上述流与ping数据判别逻辑电路中的流标记信号str、ping包标记信号png相连;D5b数据锁存器,它的数据输入端、str信号输入端、png信号输入端与使能信号输入与上述背景流判别逻辑电路的相应输出端相连;D6错误包标记电路,它对接收到的每一个IPv4包进行头校验和计算并根据校验和是否有误,在该数据包边带信息处加上相应标记,即校验和标记chk,正确为0,错误为1,并进行校验和出错的包数的统计,它包括D6a校验和检查逻辑电路,它的数据、str信号、png信号输入端分别与上述背景流过滤电路中数据锁存器的相应输出端相连;D6b错误包计数器,上述校验和检查逻辑电路的输出端经一个加1加法器后与该错误包计数器的输入端相连,加1后的错误包数送回校验和检查逻辑电路,同时送往上述用J表示的CPU接口电路;D7路由错误计数电路,它判别每一个接收到的数据包是否发生路由错误,加上相应边带信息即路由错误标记mis,并进行路由错误包的计数;同时把数据分三路转发,把加好边带信息的数据分别送往下一个数据包抓取电路、流统计电路及ping包统计电路;所述路由错误统计电路包括D7a目的端口检查逻辑电路,它的数据输入端、str信号输入端、png信号输入端和chk信号输入端分别与上述错误包计数电路D6中校验和检查逻辑电路的相应输出端相连,而数据包的本地端口号输入端与上述用J表示的CPU接口电路的相应输出端相连;D7b路由错计数器,上述目的端口检查逻辑电路的一个输出端经过一个加1加法器后与该错误包计数器的相应输入端相连,再把加1后的路由错误包数返回上述目的端口检查逻辑电路;D7c4拍延迟寄存器,它的数据输入端、str信号输入端、png信号输入端、chk信号输入端分别与上述目的端口检查逻辑电路的相应输出端相连;D7d输出锁存器一,它的数据包输入端、使能信号str信号输入端分别与上述4拍延迟寄存器的相应输出端相连;该锁存器一的输出端与上述流统计电路G的相应输入端相连;D7e输出锁存器二,它的数据输入端、使能信号png信号分别与上述4拍延迟寄存器的相应输出端相连;该锁存器二的输出端与上述ping包统计电路的输入端相连;其中,上述数据包抓取电路对数据分析预处理电路送来的数据执行数据包抓取操作,它包括E1IP地址匹配电路,它对输入数据包进行源、目的地址的匹配性检查,并在边带信息上加上相应标记即源地址匹配信号sip、目的地址匹配信号dip后转发给下级电路,它包括E1aIP地址匹配逻辑电路,它的数据输入端、校验和标记chk输入端分别与上述路由错误计数电路D7中的4拍延迟寄存器D7c的相应输出端相连,它的路由错误标记mis信号输入端与上述目的端口检查逻辑电路D7a的相应输出端相连;该IP地址匹配逻辑电路的目的IP地址及匹配规则、源IP地址及匹配规则输入端分别与上述用J表示的CPU接口电路的相应输出端相连;E1b3拍延迟寄存器,它的数据输入端、chk信号输入端、mis信号输入端分别与上述IP地址匹配逻辑电路的相应输出端相连;E2包头协议与长度字段匹配电路,它对接收到的数据包进行协议号、长度的匹配性检查,并在数据包的边带信息上加上相应标记即协议号匹配信号pro、长度1匹配信号len1、长度2匹配信号len2后转发给下一级电路,它包括E2a包头协议与长度字段匹配逻辑电路,它的数据输入端、校验和标记chk输入端、路由错误标记mis输入端分别与上述IP地址匹配电路E1中的3拍延迟寄存器E1b的相应输出端相连,它的源地址匹配信号sip输入端、目的地址匹配信号dip输入端分别与上述IP地址匹配逻辑电路E1a的相应输出端相连;它的长度1及匹配规则、长度2及匹配规则、协议号及匹配规则输入端分别与上述用J表示的CPU接口电路的相应输出端相连;所谓协议号是指IPv4和IPv6报文头的协议字段;所谓长度1、长度2是给定的报文长度值;E2b1拍延迟寄存器,它的数据输入端、chk信号输入端、mis信号输入端、sip信号输入端、dip信号输入端分别与上述包头协议与长度字段匹配逻辑电路的相应输出端相连;E3触发器匹配电路,它对从上级电路接收到的数据包选取的部分内容进行触发信息即trigger匹配,并在数据包的边带信息上加上相应标记即触发器匹配信号trig1、trig2、trig3、trig4后转发给下一级电路,它包括E3a触发器匹配逻辑电路,它的数据输入端、校验和标记chk输入端、路由错误标记mis输入端、源地址匹配标记sip输入端、目的地址匹配标记dip输入端分别与上述包头协议与长度字段匹配电路中的1拍延迟寄存器E2b的相应输出端相连,它的另外3个边带信息pro、len1、len2输入端分别与上述包头协议与长度字段匹配逻辑电路E2a的相应输出端相连;它的4个触发信息即trigger1、2、3、4及相应匹配规则的4个输入端与上述用J表示的CPU接口电路的相应输出端相连;其中,所述的len1、len2是表示长度字段的边带信息,pro是指IPv4的protocol字段或IPv6的next header字段的边带信息,即协议号匹配信号;trig1~trig4是表示4个用于trigger规则的匹配信息,其中任一个trigger是一组匹配规则,完成对一个IP包某一区域内特定值的检查比较;E3b5拍延迟寄存器,它的数据输入端、各边带信息chk、mis、sip、dip、pro、len1、len2输入端分别与上述触发器匹配逻辑电路E3a的相应输出端相连;E4数据抓取控制电路,它根据配置的抓取方案对照数据包中的各边带标记决定一个数据包是否应该写到外部SRAM中去,生成SRAM写请求信号;它包括E4a抓取控制逻辑电路,它的各边带信息chk、mis、sip、dip、pro、len1、len2输入端与上述触发器匹配电路中5拍延迟寄存器E3b相连,另4个边带信息trig1~trig4与上述触发器匹配电路中的触发器匹配逻辑电路E3a相连;E4b数据锁存器,它的数据输入端、使能信号分别与上述5拍延迟寄存器E3b、抓取控制逻辑电路E4a的相应输出端相连;E5SRAM仲裁电路,同时接收来自上述抓取控制电路的写请求和来自用J表示的CPU接口电路的读请求,生成符合片外SRAM时序的读写控制信号,其中,来自上述CPU接口电路的读请求具有更高优先级,它包括E5a读写仲裁逻辑电路,它与上述CPU接口电路互连,而它的另一个输入端与上述数据锁存器E4b的相应输出端相连,该读写仲裁逻辑电路又与片外SRAM互连;其中,ping包的统计电路实现ping数据包的总包数、总延迟和最后一个包的延迟的统计,它包括F1数据包检测逻辑电路;F2延迟提取逻辑电路;F1、F2这两个电路的输入端分别与上述数据分析预处理电路中路由错误计数电路内输出寄存器二的两个输出端相连;F3ping包数目寄存器,它的输入端与上述数据包检测逻辑电路的输出端相连;F4总延迟寄存器,它存储总延迟统计的结果;F5加法器,它的两个输入端分别接延迟提取逻辑电路和总延迟寄存器的相应输出端,而该加法器的输出端与总延迟寄存器的输入端相连;F6当前延迟寄存器,它的输入端与上述延迟提取逻辑电路的输出端相连;其中,流统计电路,它包括G1每流延迟统计电路,它对包括最大延迟、最小延迟和总延迟在内的每流数据包传输延迟进行统计并予以记录,供用J表示的CPU接口电路读取,它包括G1a流编号提取逻辑电路,它的数据输入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;G1b延迟提取逻辑电路,它的输入端与上述流编号提取逻辑电路的输入端是并接的;G1c总延迟寄存器;G1d加法器,它的两个输入端分别和上述延迟提取逻辑电路和总延迟寄存器的输出端相连;G1e最大延迟寄存器;G1f比较器一,它的两个输入端分别和上述最大延迟寄存器和延迟提取逻辑电路的各一个输出端相连;G1g最小延迟寄存器;G1h比较器二,它的两个输入端分别和上述最小延迟寄存器和延迟提取逻辑电路的各一个输出端相连;G1i2路数据选择器一,它的两个输入端分别和上述最大延迟寄存器和延迟提取逻辑电路的各一个输出端相连;G1j2路数据选择器二,它的两个输入端分别和上述最小延迟寄存器和延迟提取逻辑电路的各一个输出端相连;G1k写数据寄存器,它的三个输入端分别和上述加法器和两个数据选择器一、二的输出端相连;G1l读数据寄存器,它的数据输出端口与上述总延迟寄存器、最大延迟寄存器、最小延迟寄存器的输入端相连;G1m读写地址寄存器,它的数据输入端与上述流编号提取逻辑电路的输出端相连;G2每流乱序统计电路,它统计每流的丢包数、乱序和重传计数信息,并存储统计结果,供用J表示的CPU接口电路读取,它包括G2a流编号提取逻辑电路,它的数据输入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;G2b包序号提取逻辑电路,它的数据输入端与上述流编号提取逻辑电路G2a的输入端并接;G2c丢失包数目寄存器;G2d重传包数目寄存器;G2e乱序包数目寄存器;G2fRFC1242窗口机制控制器,它的4个输入端分别与上述包序号提取逻辑电路G2b以及丢失包、重传包、乱序包各个数目寄存器的输出端相连;G2g写数据寄存器,它的输入端与上述RFC1242窗口机制控制器的输出端相连;G2h读数据寄存器,它的数据输出端与上述丢失包、重传包、乱序包各个数目寄存器的输入端相连;G2i读写地址寄存器,它的数据输入端与上述流编号提取逻辑电路G2a的输出端相连;G3实时延迟统计电路,它根据流标签中可选项域来决定对哪一条流进行实时延迟统计,并存储相应统计结果,供用J表示的CPU接口电路读取,它包括G3a延迟提取逻辑电路,它的数据输入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;G3b延迟寄存器,它的输入端与上述延迟提取逻辑电路的输出端相连;G3c写数据寄存器,它的输入端与上述延迟寄存器的输出端相连;G3d下一地址寄存器;G3e写地址寄存器,它的输入端与上述下一地址寄存器的输出端相连,而它的输出端经过一个加1加法器后与上述下一地址寄存器的输入端相连,加1后的值返回该写地址寄存器;G4延迟分布统计电路,它根据流标签中可选项域决定对哪一条流做延迟分布统计,统计结果存储并供用J表示的CPU接口电路读取,它包括G4a延迟提取逻辑电路,它的数据输入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;G4b数据比较电路,它的两个输入端分别与上述延迟提取逻辑电路G4a、用J表示的CPU接口电路的15个延迟区间端点寄存器的输出端相连;G4c读写地址寄存器,它的输入端与上述数据比较电路G4b的输出端相连;G4d区间内延迟个数寄存器;G4e读数据寄存器,它的数据输出端与上述区间内延迟个数寄存器的输入端相连;G4f写数据寄存器,它的数据输入端与上述区间内延迟个数寄存器的输出端相连;G5每流统计电路,它统计接收到的包括每流字节数、总包数在内的数据,并存储供用J表示的CPU接口电路读取,它包括G5a流编号提取逻辑电路,它的数据输入端与上述数据分析预处理电路中路由错误计数电路内输出寄存器一的输出端相连;G5b字节数目寄存器;G5c包数目寄存器;G5d读数据寄存器,它的两个数据输出端分别与上述字节数目寄存器、包数目寄存器的输入端相连;G5e写数据寄存器,上述包数目寄存器的输出值加1后送往该写数据寄存器的输入端,上述字节数目寄存器的输出值加α后送往该写数据寄存器的输入端;G5f读写地址寄存器,它的输入端与上述流编号提取逻辑电路G5a的输出端相连;其中,5个流统计结果存储器I,它分别与上述每流延迟统计电路中、每流乱序统计电路中、延迟分布统计电路中以及每流统计电路中读数据寄存器的输入端相连,而与它们的写数据寄存器、读写地址寄存器的各输出端相连;该5个流统计结果存储器的输入端还与上述实时延迟统计电路中写数据寄存器、写地址寄存器的各输出端相连;其中,CPU接口电路用J表示,它根据外部CPU指令完成各配置寄存器的配置以及各统计结果的提交,它包括J1CPU地址寄存器;J2CPU控制信号寄存器;J3CPU数据总线三态调度逻辑电路,它的输入端与上述CPU控制信号寄存器的输出端相连;上述电路J1~J3分别与外部CPU相应输出端相连;J4地址译码器,它的输入端与上述CPU地址寄存器的输出端相连;J5状态寄存器组,它的输入端分别和上述数据分析预处理电路中的帧数计数器D1b、字节计数器D1c、错误包计数器D6b、路由错计数器D7b的各输出端相连,它的输入端还和上述ping包统计电路中的ping包数目寄存器F3、总延迟寄存器F4、当前延迟寄存器F6的各输出端相连;J6配置寄存器组,它的各输出端分别连接到上述数据包抓取电路、数据分析预处理电路、协议帧上交电路、流统计电路的各相连输入端;J7外部SRAM数据寄存器,它的输入端与数据包抓取电路的SRAM仲裁电路相连;J8流统计结果存储器数据寄存器组,它的各输入端分别与上述5个流统计结果存储器的各输出端相连;J9协议帧存储器数据寄存器,它的各输入端与上述协议帧存储器的输出端相连;上述地址译码器J4的各输出端分别和上述J5~J9各电路的输入端相连;上述CPU数据总线三态调度逻辑电路的各输入端分别和上述状态寄存器组、外部SRAM数据寄存器以及协议帧存储器数据寄存器的各输出端相连;同时,又与上述流统计结果存储器数据寄存器组互连;它的输出端则与上述配置寄存器组的输入端相连。
全文摘要
10G网络性能测试仪流量接收、抓取与统计电路组件属于高速网络性能测试技术领域,其特征在于,它是在FPGA上实现的,它在通过PL4 IPCore接收器从帧控制器中接收到帧数据后,用分路电路把数据分为两部分一部分通过协议帧上交电路及相应的存储器被CPU通过CPU接口电路读取,送往上一级应用程序;另一部分经过数据分析预处理电路后,进行流和ping包统计并经相应接口电路送往CPU;同时又送往数据包抓取电路,它根据设定的抓取方案来决定哪一个数据应该写到外部SRAM中,并生成写请求信号,送往仲裁电路,从CPU发出的读写指令中仲裁选取。它具有实时高速采集、可扩展性好、易于升级的优点。
文档编号H04L12/26GK1688135SQ20051001171
公开日2005年10月26日 申请日期2005年5月13日 优先权日2005年5月13日
发明者张小平, 张铁蕾, 吴建平, 陈荣第 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1