【技术实现步骤摘要】
本专利技术属于计算机网络领域,尤其是对应用到高速网络报文构造和多接口发送控制的方法及设备。
技术介绍
网络流量测试仪是网络设备和系统性能、安全测试的一个重要工具,并能够对网络设备和系统的各项指标(丢包率,网络吞口量,网络延时)进行有效的评价,应用网络测试仪是评价网络系统和网络安全设备的一项重要手段。用测试仪测试被测设备时,需要网络测试仪构造和发送高速流量,高速数据包构造和发送速率控制是网络测试仪的重要模块。在国内外,已实现的网络数据包生成技术,一般是基于软件构造网络数据包和发送数据包,或者是基于硬件FPGA实现网络数据包构造和发送。大部分基于软件实现的数据包发送工具采用x86结构,着力于提高运算性能,集中在Cache一致性、分支预测等方面进行优化,而在访存性能的优化上则较少,导致构造数据包和发送数据包速率较低,仅能够满足低速网络设备的测试,并不能满足对数据包流量要求很高的网络设备和系统的测试。基于硬件技术实现的数据包发送工具虽然能够满足对数据包速率要求较高的设备测试,但测试的数据包比较单一,且数据包的类型和长度基本比较固定,不能动态的调整数据包的类型和内容,不能准确的反映被测设备的性能指标,且只能适应于某些特定的测试设备。因此,基于现有数据包构造和分发控制方法及设备实现高速数据包构造和发送,难以同时满足报文的多样性构造和高速数据包发送。
技术实现思路
本专利技术提供一种高速数据包构造和分发控制方法及设备,目的是克服现有的数据包多样性构造和发送速率等技术的不足,在多核NPU(Network Processing Unit,网络处理器)+FPGA平台上实现,以解 ...
【技术保护点】
一种高速数据包构造和分发控制方法,其特征在于,步骤包括:第一步,线程调度模块根据定制任务从线程池中取线程并将线程调度至报文载荷构造模块、报文封装模块、发送流量控制模块,记处理报文载荷构造模块、报文封装模块、发送流量控制模块的线程分别为报文载荷构造线程、报文封装线程、发送流量控制线程;第二步,报文载荷构造线程执行报文载荷构造模块,读取载荷配置参数,构造报文载荷数据,然后将报文载荷数据放入构造载荷队列;第三步,报文封装线程执行报文封装模块,从构造载荷队列读取报文载荷构造模块构造的报文载荷数据,读取报文配置,封装报文头,且在以太网报文头部自定义域中指定报文输出接口;然后将封装好的报文放入发送队列;第四步,发送流量控制线程执行发送流量控制模块,从发送队列读取报文,根据多接口之间流量控制机制将报文发送给输出接口选择模块;第五步,输出接口选择模块将从发送流量控制模块接收的报文分流至指定的输出接口。
【技术特征摘要】
1.一种高速数据包构造和分发控制方法,其特征在于,步骤包括:第一步,线程调度模块根据定制任务从线程池中取线程并将线程调度至报文载荷构造模块、报文封装模块、发送流量控制模块,记处理报文载荷构造模块、报文封装模块、发送流量控制模块的线程分别为报文载荷构造线程、报文封装线程、发送流量控制线程;第二步,报文载荷构造线程执行报文载荷构造模块,读取载荷配置参数,构造报文载荷数据,然后将报文载荷数据放入构造载荷队列;第三步,报文封装线程执行报文封装模块,从构造载荷队列读取报文载荷构造模块构造的报文载荷数据,读取报文配置,封装报文头,且在以太网报文头部自定义域中指定报文输出接口;然后将封装好的报文放入发送队列;第四步,发送流量控制线程执行发送流量控制模块,从发送队列读取报文,根据多接口之间流量控制机制将报文发送给输出接口选择模块;第五步,输出接口选择模块将从发送流量控制模块接收的报文分流至指定的输出接口。2.如权利要求1所述的高速数据包构造和分发控制方法,其特征在于,所述高速数据包构造和分发控制方法还固定使用一个线程心跳读取系统时间,并将系统时间共享给发送流量控制线程使用,其他线程不需要频繁读取系统时间,减少系统调用上下文切换时间。3.如权利要求1所述的高速数据包构造和分发控制方法,其特征在于,所述高速数据包构造和分发控制方法的各个执行线程之间使用队列共享数据,线程之间用生产者/消费者模型来处理多样性数据包构造和发送,报文封装线程从空闲队列获取数据包描述符并将已构造的数据包描述符插入发送队列,发送流量控制线程从发送队列中取发送数据包描述符发送且将数据包描述符还至空闲队列。4.如权利要求1所述的高速数据包构造和分发控制方法,其特征在于,所述线程调度模块采用分组线程调度方法,每组线程内包含一个处理报文载荷构造模块的报文载荷构造线程、一个处理报文封装模块的报文封装线程和一个处理发送流量控制模块的发送流量控制线程;且线程分组内共享一个生产者/消费者队列。5.如权利要求1所述的高速数据包构造和分发控制方法,其特征在于,所述高速数据包构造和分发控制方法第二步中报文载荷构造线程步骤包括:步骤101、初始化空闲载荷队列,给空闲载荷队列分配空闲载荷缓存块;空闲载荷缓存块是由报文载荷构造线程从空闲载荷队列中读取并存储已构造数据的缓存块;步骤102、初始化构造载荷队列,报文载荷构造线程填充空闲载荷缓存块并插入至构造
\t载荷队列中;步骤103、判断空闲载荷队列是否为空,如果不为空则执行步骤104,否则继续执行步骤103;步骤104、从空闲载荷队列中取空闲载荷缓存块,读取构造配置数据生成载荷数据,并将载荷数据填充至空闲载荷缓存块;步骤105、判断构造载荷队列是否满,如果未满执行步骤107...
【专利技术属性】
技术研发人员:王飞,陈曙晖,王小峰,李振兴,罗艳,孙一品,刘宇靖,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。