CN110650064B - 一种通用且可配置的网络流量测量系统 - Google Patents
一种通用且可配置的网络流量测量系统 Download PDFInfo
- Publication number
- CN110650064B CN110650064B CN201910847949.8A CN201910847949A CN110650064B CN 110650064 B CN110650064 B CN 110650064B CN 201910847949 A CN201910847949 A CN 201910847949A CN 110650064 B CN110650064 B CN 110650064B
- Authority
- CN
- China
- Prior art keywords
- instruction
- address
- measurement
- jump
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000005259 measurement Methods 0.000 title claims abstract description 80
- 238000001914 filtration Methods 0.000 claims abstract description 24
- 238000004891 communication Methods 0.000 claims abstract description 9
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 claims description 15
- 230000007704 transition Effects 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 7
- 230000009471 action Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 230000000630 rising effect Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 10
- 230000008859 change Effects 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 5
- 238000000691 measurement method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 101100283411 Arabidopsis thaliana GMII gene Proteins 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于以太网通信领域,涉及网络流量测量,具体为一种通用且可配置的网络流量测量系统,即能解决采用Netflow方案中对重要资源的占用率过大且无法对网络流做到精细化测量的问题,又能解决传统基于处理器的软件测量方法带来的资源开销大、处理时延大的问题。本发明测量包括:测量控制器与数据采集点组成,数据采集点由MAC控制逻辑和规则过滤引擎构成,MAC控制逻辑用于实现交换机与计算机之间的双向通路、以及数据采集点与测量控制器之间的通信;本发明测量控制器可更改网络参数(自定义匹配规则),通过指令的形式下发给规则过滤引擎,从而实现对不同的流进行测量,配置灵活且支持通配符;并且处理速度快、测量精度高。
Description
技术领域
本发明属于以太网通信领域,涉及网络流量测量,具体为一种通用且可配置的网络流量测量系统。
背景技术
随着计算机技术与通信技术的飞速发展,网络业务种类越来越丰富,特别是基于网络之间互连的协议(IP)的网络极大地影响了人们工作、学习和生活的方式;以TCP/IP协议体系结构为基础组件的Internet成为了目前世界上最大的计算机互联网络。
现代网络的发展呈现出以下特点:全国各大网络运营商的网络规模越来越大、网络结构复杂性越来越高、网络业务越来越丰富、网络流量高速增长;与此同时,用户对于网络性能和网络通信服务质量要求越来越高,用户希望得到更好的服务质量,希望拥有更快的上网速度。此外,网络运营商需要加强网络管理,提高网络利用率。因此,对IP网络流量进行统计和分析就显得尤为重要,通过对IP网络流量的有效测量,获得准确的网络性能特征参数,从而指导网络管理人员能够有效的分配网络带宽,更加合理地利用网络资源。
传统的网络流量测量方法有两种:基于Netflow的网络测量技术,主机内嵌流量监测软件:
(1)Netflow是Cisco公司提出的网络数据包交换技术,通过包交换芯片可对IP数据流进行转发并可同步进行简单的测量与统计;由于采用Netflow方案不要求对从每个接口接收到的每个数据包进行处理,因此需要设定合适的采样率,如果采样率设置过高会对设备资源进行一定程度的消耗,特别是需要占用处理器和存储器等重要资源;在这样的采样方式下,设备的设置的采样率很大程度上决定了流量测量的准确性,无法对网络流做到精细化测量。
(2)软件实现流量监控方法是利用计算机网卡实现网络数据帧的截取然后进行进一步的分析,如SNIFFER、Wireshark、NetPeeker等;但是,在高速海量的网络流量下,网络业务种类越来越丰富,对于高速、大规模的网络流量监控变得愈加困难;传统的软件实现流量监控的方法必然会给处理器带来额外的资源开销,同时由于处理器速度和串行执行等原因的限制将会带来较大的处理时延,远远无法满足当今网络发展的需求。
发明内容
本发明的目的在于针对上述现有传统网络流量测量方法实现流量测量所存在的缺陷和局限性,本发明提供一种通用且可配置的网络流量测量系统,即能解决采用Netflow方案中对重要资源的占用率过大且无法对网络流做到精细化测量的问题,又能解决传统基于处理器的软件测量方法带来的资源开销大、处理时延大的问题;并且,本发明能够实现一种可配置网络参数的方法,进而实现对现有以太网进行复杂规则定义的高效测量。
为达到上述目的,本发明采用的技术方案如下:
一种通用且可配置的网络流量测量系统,包括:测量控制器与数据采集点,其中,数据采集点由MAC控制逻辑和规则过滤引擎构成,所述MAC控制逻辑用于实现交换机与计算机之间的双向通路、以及数据采集点与测量控制器之间的通信;其特征在于,所述测量控制器用于输入自定义匹配规则,根据自定义匹配规则构建出状态转移图,并将状态转移图编译成自定义指令集后封装发送至MAC控制逻辑;所述MAC控制逻辑对接收的以太网帧进行解帧操作,针对测量控制器下发的以太网帧、剥离得到自定义指令集,针对交换机与计算机之间交互的以太网帧、记录得到数据帧到达时间戳与字节数信息;规则过滤引擎以流水线方式执行自定义指令集中每一条指令,当执行完所有指令,最后一条指令对应的指定目的寄存器中的值发生改变,认定交换机与计算机之间交互的当前数据帧与自定义匹配规则相匹配,则当前数据帧的到达时间戳与字节数信息通过MAC控制逻辑上报给测量控制器,由测量控制器完成自定义匹配规则下的网络流量测量。
进一步的,所述自定义匹配规则包括五元组信息:源IP地址、源端口、目的IP地址、目的端口和传输层协议,具体支持的操作符为“·”、“|”、“*”及“?”四个操作符,其中,“·”操作符表示“与”操作符,“|”操作符表示“或”操作符;“*”、“?”操作符为通配符,对于“*”操作符匹配0至255之间任意数值,对于“?”操作符匹配0至65535范围内的任意端口号。
进一步的,所述MAC控制逻辑包括:发送模块、接收模块、CRC校验模块和缓存RAM模块;其中,所述接收模块用于接收以太网帧并进行解帧操作,将以太网帧净荷区数据缓冲至所述缓存RAM模块中,同时,针对测量控制器下发的以太网帧、剥离得到自定义指令集,针对交换机与计算机之间交互的以太网帧、记录得到以太网帧到达时间戳与字节数信息;所述发送模块用于对以太网帧净荷区数据进行MAC层以太网报文格式的封装并发送;所述CRC校验模块用于对解帧得到的MAC帧进行CRC-32计算,并与FCS校验字进行比较校验。
进一步的,所述规则过滤引擎将每一条指令拆分为“取指”、“译码”、“执行”、“写回”四个阶段,具体为:
取指阶段(IF)包括:指令指针自增加法器、指令指针(PC)、指令存储器(IM)和多路选择器(MUX);其中,指令指针自增加法器用于完成指令指针PC值的自增1操作,形成顺序读取的下一条指令的地址PC+1,作为转移地址1;所述指令指针用于存放下一条待读取指令的地址PC_NEXT,并在每个时钟周期的上升沿作为取指地址传送给指令存储器(IM);所述指令存储器(IM)用于存储测量控制器下发的自定义指令集;所述多路选择器(MUX)用于判断下一条指令的转移地址PC_NEXT,所述多路选择器(MUX)的三个输入地址为:转移地址1、无条件跳转指令的转移地址2、条件跳转指令的转移地址3,在选择信号JUMP_SEL的控制下选择正确的地址作为PC_NEXT;
译码阶段(ID)包括:寄存器堆(REG)、译码控制单元(DCU)和跳转条件判断模块;寄存器堆(REG)用于提供指令执行过程中所需要的操作数据、及存储指令执行结果;所述译码控制单元(DCU)用于对指令的指定字段以及跳转条件判断模块输出的跳转信号(EQU AL)进行识别,对指定字段进行识别产生控制信号:内部操作码、寄存器堆的读使能信号和写使能信号,读使能信号用于判断当前指令所需的源操作数是否需要从寄存器堆中读取,写使能信号则用于判断当前指令的运算结果是否需要写入寄存器堆;对跳转信号进行识别产生JUMP_SEL信号发送至译码控制单元(DCU);所述跳转条件判断模块对操作数据进行判断,产生跳转信号(EQUAL);
执行阶段(EXE)由一个算术逻辑单元(ALU)构成,根据译码阶段给出的内部操作码的作用下对译码阶段传递过来的两个源操作数据进行运算并得出运算结果;
写回阶段(WB)将运算结果写入寄存器堆(REG)中的当前指令对应的指定目的寄存器中。
本发明的有益效果在于:提供一种通用且可配置的网络流量测量系统,
1、解决了在高速海量网络流量下传统实现流量测量方法带来的资源开销大的问题,释放了CPU资源;
2、测量控制器可更改网络参数(自定义匹配规则),通过指令的形式下发给规则过滤引擎,从而实现对不同的流进行测量,配置灵活且支持通配符;
3、将流水线技术应用到硬件测量规则中,形成指令流水线,从而加快指令的执行效率;
4、本发明处理速度快,测量精度高。
附图说明
图1为本发明实施例中分布式多点测量体系的系统架构图;其中,测量系统分布在网络中指定的各个节点,既可以独立的进行网络测量,也可将测量数据发回给全局测量数据服务器。
图2为本发明实施例中规则处理引擎的四级流水线架构;共分为“取指”、“译码”、“执行”、“写回”四个阶段,每个阶段由专门的硬件单元构成,多个硬件单元以Pipeline的方式并行处理多条指令。
图3为本发明实施例中测量系统示例图。
图4为本发明实施例中输入规则对应的状态转移图(NFA);测量控制器负责参照正则表达式的定义,设置匹配规则:“(8080|1750)·?”和动作“测量”,采用Thompson方法构造出相应的NFA。
图5为本发明实施例中匹配规则所对应的指令集。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
本实施例提供一种通用且可配置的网络流量测量方法,应用于分布式多点测量体系,系统的总体架构如图1所示;测量系统分布在网络的各个节点当中,既可以独立的进行网络测量,也可将测量数据发回给全局测量数据服务器,使整个系统具有很强的可拓展性。当对网络拓扑结构进行拓展时,现有的系统不需要进行任何改变,只需在新增的节点上放置测量系统就可实现对拓展后的系统的测量。整个测量系统由测量控制器与数据采集点构成;其中,数据采集点由MAC控制逻辑和规则过滤引擎构成,数据采集点的控制电路由FPGA芯片设计完成。
正则表达式(RE)在计算领域是用于形成搜索模式的字符串序列,主要用在字符或字符串的模式匹配,其由字符和操作符构成,分别指代字符串的集合和在这些集合上的运算,由于其具有较强的逻辑性、功能性,因此在本发明中给出了新的定义用于实现五元组信息的匹配。
所述测量控制器负责参照正则表达式的定义,在规则设置界面上输入匹配规则:五元组和动作(如:丢弃、测量等),完成匹配规则后转化为状态转移图(NFA)、下发指令帧和处理上报数据帧的功能;在本发明中支持的操作符有“·”、“|”、“*”以及“?”操作符。
特别地,“·”操作符表示“与”操作符,“|”操作符表示“或”操作符;对于“*”、“?”操作符,在本发明中表示通配符,IP地址在计算机内部表示为32位的二进制数,通常表现出以“.”分隔的4组十进制数形式,如“192.168.0.1”;因此,对于“*”操作符可匹配0至255之间任意数值,相应地,对于“?”操作符针对的是端口号的匹配,其可匹配0至65535范围内的任意端口号;
规则配置完毕后,对已输入的规则进行解析,采用Thompson方法构造出相应的状态转移图(NFA)和状态转换表,状态机分别由起始节点、终止节点以及转移条件三要素组成;在本发明中其基本构造如下:
(1)对于Rule=ε,表示起始节点I无条件转向终止节点F;
(2)对于只含一个字符a的Rule,其含有一个起始节点I和一个终止节点F,以该字符为转移条件连接两个节点构成单字符匹配自动机;
(3)对于Rule=N(u)|N(v),起始节点到N(u)和N(v)各有一个ε转移,从N(u)和N(v)到终止节点也各有一个ε转移;起始节点可以选择任意一条路径到终止节点;
(4)对于Rule=N(u)·N N(v),此时只需将N(u)的起始节点I作为N(RE)的起始节点,N(v)的终止节点作F为N(RE)的终止节点,并在N(u)和N(v)之间增加一个ε转移,完成相连节点的自动机构造;
其中,起始节点执行的操作是将保存所有中间变量的寄存器清零同时指令指针指向指令存储器的地址1;终止节点执行的操作是按照不同的“动作”所对应不同的立即数指令改变通用寄存器模块中指定寄存器的值,当规则过滤引擎检测到该寄存器的值发生变化时说明规则匹配成功。测量控制器通过对规则的编译,形成数据采集点中规则过滤引擎可执行指令,发送至数据采集点。
所述MAC控制逻辑包括:发送模块、接收模块、CRC校验模块、缓存RAM模块和MDIO接口逻辑模块;主要有三个千兆以太网接口A、B、C,其中,A、B两个千兆以太网接口通过GMII交叉互连、直通以不影响原有通信的功能,C口与测量控制器相连。其中,缓存RAM模块用于缓冲以太网帧净荷区数据;这里以A口接收数据帧通过B口发送完成单向传输为例,发送模块主要用来将A口接收的净荷区数据进行MAC层以太网报文格式的封装,添加Preamble和SFD,以及将对MAC帧进行CRC-32计算出来的FCS附在包尾,最终以GMII格式通过B口发出。接收模块负责通过A口接收数据帧,检查link_up信号是否为高以及数据帧是否符合以太网802.3协议标准,将收到的GMII接口格式数据包进行MAC层的Preamble、SFD和FCS校验字剥离;CRC校验模块将剥离后的MAC帧重新进行CRC-32计算,并与剥离出来的FCS校验字进行比较判断是否接收到正确的数据包,当校验数据包错误时,则直接丢弃。B口接收数据帧通过A口发送的过程与之类似,在此不作过多赘述。值得注意的是,接收模块进行解帧操作时,数据帧的字节数、到达时间等信息将会被记录,与此同时数据帧的五元组信息将被剥离出来存入规则过滤引擎的寄存器堆(REG)中,以供后续规则过滤引擎的调用。另外,需要说明的是,所述MDIO模块负责对PHY芯片中的模式寄存器进行配置并读取数据以检测其是否完成自动协商且链路速率是否达到千兆速率,若满足条件、检测系统正常使用,反之、检测系统无法工作;本发明默认应用于千兆以太网,故MDIO接口逻辑模块并非必要;
所述规则过滤引擎在本发明中所支持的指令均采用固定长度32位,根据指令格式划分成三类,分别是立即数类指令、寄存器类指令和跳转类指令用于实现规则的匹配;规则处理引擎将一条指令的处理拆分成“取指”、“译码”、“执行”、“写回”四个阶段,其整体框图如图2所示;具体为:
取指阶段(IF)包含四部分,分别是指令指针自增加法器、指令指针(PC)、指令存储器(IM)和多路选择器(MUX);指令指针自增加法器负责完成PC值的自增1操作,形成顺序读取的下一条指令的地址PC+1,即转移地址1;指令指针是一个位宽为32位的特殊寄存器,其功能是用来存放下一条待读取指令的地址PC_NEXT,并在每个时钟周期的上升沿作为取指地址传送给指令存储器(IM);所述指令存储器(IM)用于存储测量控制器下发的指令;所述多路选择器(MUX)用于判断下一条指令的转移地址PC_NEXT;由于需要支持跳转类指令,因此下一条指令的地址有可能是转移地址1:PC+1,也可能是跳转类指令指定的转移地址;根据不同的跳转类指令,转移地址又有两个不同的来源,分别是无条件跳转指令的转移地址2、条件跳转指令的转移地址3;所以用来选取PC_NEXT的MUX会有三个输入地址,在选择信号JUMP_SEL的控制下选择正确的地址;
译码阶段(ID)由三个模块组成,分别是寄存器堆(REG)、译码控制单元(DCU)和跳转条件判断模块;寄存器堆(REG)由64个16位的寄存器组成,包含了两组读端口和一组写端口,负责提供指令执行过程中所需要的操作数据以及对指令执行结果进行保存;为了实现在译码阶段这一个时钟周期内就能够获得所需操作数据的要求,使用组合逻辑实现寄存器的读操作,而对寄存器的写操作则采用时序逻辑加以实现;译码控制单元(DCU)负责根据指令的指定字段以及跳转条件判断模块输出的跳转信号(EQUAL)进行识别,对指定字段进行识别产生控制信号:内部操作码、寄存器堆的读使能信号rd_reg1、rd_reg2和写使能信号wt_reg;读使能信号用于判断当前指令所需的源操作数是否需要从寄存器堆中读取,相应地,写使能信号则用于判断当前指令的运算结果是否需要写入寄存器堆;对EQUAL信号进行识别产生JUMP_SEL信号;所述跳转条件判断模块对操作数据进行判断,产生跳转信号(EQUAL);
执行阶段(EXE)由一个算术逻辑单元(ALU)构成,根据译码阶段给出的内部操作码的作用下对译码阶段传递过来的两个源操作数据进行运算并得出运算结果;
写回阶段(WB)将运算结果写入寄存器堆(REG)中的当前指令对应的指定目的寄存器中;
每个阶段由专门的硬件单元构成,多个硬件单元以流水线(Pipeline)的方式并行处理多条指令(即不等一条指令处理完成就开始处理下一条指令);
当执行完所有指令,最后一条指令对应的指定目的寄存器中的值发生改变,认定输入的规则与当前数据帧通过MAC控制逻辑剥离出来的五元组信息相匹配,则将该条数据帧所到达的时间戳、字节数信息通过MAC控制逻辑的发送模块上报给测量控制器,测量控制器完成测量。
综上所述,整个系统的工作流程如下:
(1)参照正则表达式的定义,在测量控制器中规则输入界面输入自定义的匹配规则,规则包括五元组信息;其中,五元组信息包括源IP地址、源端口、目的IP地址、目的端口和传输层协议,针对IP地址(包括源IP地址与目的IP地址)的匹配在规则输入界面表现为4组以“.”分隔的空白方框,对应32位二进制数的IP地址;每组方框都以转移条件加上操作符的形式输入实现精确匹配或通配符操作,将输入的自定义规则放入NFA引擎,构造出对应的状态转移图;最后编译器根据状态转移图翻译成自定义指令集,根据以太网802.3协议标准以及IP协议对指令集进行封装发送至数据采集点;该指令集可完成从状态转移图的初始节点到终止节点的所有遍历;
(2)数据采集点中的MAC控制逻辑对接收到测量控制器下发的数据帧进行解帧操作,将封装的指令帧剥离出来,以每32位二进制数为一个地址单元存放至规则过滤引擎的指令寄存器(IM)中,当接收模块接收完所有下发的数据帧后,此时规则过滤引擎开始工作;
(3)规则过滤引擎以Pipeline的方式对每一条指令进行“取指”、“译码”、“执行”、“写回”的操作,当执行完所有指令,最后一条指令对应的指定目的寄存器中的值发生改变,认定输入的规则与当前数据帧通过MAC控制逻辑剥离出来的五元组信息相匹配,则将该条数据帧所到达的时间戳、字节数信息通过MAC控制逻辑的发送模块上报给测量控制器,即测量控制器对符合匹配规则的数据帧的时间戳及字节数信息完成测量。
本实施例中可配置网络参数测量系统如图3所示,由一个数据采集点107、一个支持镜像操作功能的交换机105、一个测量控制器106以及一台计算机104组成;数据采集点由MAC控制逻辑和规则过滤引擎组成,MAC控制逻辑负责实现交换机与计算机之间的双向通路以及与测量控制器之间的通信;规则过滤引擎可依照Pipeline的方式执行测量控制器下发的指令实现对不同的流进行测量;详细工作流程如下:
(1)将所有设备按照图3所示进行级联,组成了整个可配置网络参数测量系统。在交换机配置界面将流至计算机101、计算机102、计算机103的端口设置成镜像端口,同时将流至计算机(104)的端口设置成观察端口;此时镜像端口收发的报文将被复制到观察端口发送给数据采集点;
(2)在测量控制器上设定相应的匹配规则,例如输入规则“(8080|1750)·?”实现对端口号进行匹配,其表示源端端口号既可以是8080也可以是1750,目的端口号可以是0至65535之间任意数值;对输入的规则进行解析,采用Thompson方法构造出相应的NFA如图4所示,其中节点I代表起始节点,节点F代表终止节点;测量控制器通过读取NFA的方式将所有状态的转移翻译成指令的形式,得到匹配规则所对应的指令集如图5所示,ADDI指令表示立即数加操作,将立即数与源寄存器的值相加后存入目的寄存器中;BEQ和BNE表示分支指令,其中BEQ指令表示相等转移操作,将源寄存器的值与目的寄存器的值相比较,若相等则跳转至指定地址,相应的BNE表示不相等转移操作;SLT指令表示当立即数大于源寄存器的值时,将目的寄存器的值置为1;J型指令表示无条件跳转至指定地址;下面将参照图4和图5给出具体说明;
图5的第0条指令对应的是状态机的初始节点,此时执行的操作是将保存所有中间变量的寄存器清零同时指令指针指向指令存储器的地址1,第1条指令表示将立即数“8080”与零号寄存器$0($0的值恒为零)的值相加后存入中间变量寄存器$at0,第2条指令表示将中间变量寄存器$at0的值与$s0(存放由MAC控制逻辑剥离出来的源端端口值的寄存器)相比较,若相等则跳转至LABEL0,不等则将会顺序取指,将立即数“1750”与$s0进行比较,相等则跳转至LABEL0,否则将会跳转至DEFAULT处;综上所述,第1至第3条指令表示的是判断源端端口的值是否等于“8080”,若等于8080则指令指针跳转至LABEL0处,对应的是图4中的“I”-“1”-“2”-“3”的路径;
第5至第7条指令表示的是判断源端端口的值是否等于“1750”,若相等则指令指针跳转至LABEL0处,否则跳转至DEFAULT处执行初始操作。与之对应的是图4中的“I”-“4”-“5”-“3”的路径;LABEL0和LABEL1执行的是针对目的端口号匹配的通配符操作,其中LABEL0判断剥离出来的端口号是否大于等于0,若结果为真则跳转至地址LABEL1,否则跳转至DEFAULT;LABEL1判断的是端口号是否小于等于65535,若结果为真则跳转至LABEL2,否则跳转至地址DEFAULT;LABEL2对应的是转态图中的终止状态,当跳转至该状态时,则说明输入的规则与五元组信息相匹配;寄存器$s2专门用于存放最终输出结果,在$s2进行addi操作时,由于其处于最后一条指令且不存在数据相关,该寄存器的值只会在“写回阶段”发生改变,因此将通用寄存器模块的写地址和写数据信号线从规则过滤引擎的TOP层拉出与MAC控制逻辑相连,若判断写地址为$s2且写数据为“3”则表示相应的动作为测量;经上所述,图5中的指令集完成了图4中从初始节点“I”到终止节点“F”路径的所有遍历,将所有指令封装成帧下发至数据采集点;
(3)数据采集点中的MAC控制逻辑对接收到测量控制器下发的数据帧进行解帧操作,将存放在数据帧中的指令剥离出来存放至规则过滤引擎的指令寄存器(IM)中,指令寄存器采用随机存储器(RAM)构建;由于指令字为32位,故IM中存储单元的位宽也是32位;指令接收完毕后规则过滤引擎开始工作,以Pipeline的方式并行处理多条指令,当处理完Label3对应的指令且写地址为$s2、写数据为“3”时,此时向测量控制器发送自定义格式的控制报文,自定义报文中包含记录的时间戳、字节数、帧数等信息;测量控制器接收到数据采集点上报的数据报进行处理提取并记录相关信息从而实现一种通用且可配置的网络流量测量方法。
以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。
Claims (4)
1.一种通用且可配置的网络流量测量系统,包括:测量控制器与数据采集点,其中,数据采集点由MAC控制逻辑和规则过滤引擎构成,所述MAC控制逻辑用于实现交换机与计算机之间的双向通路、以及数据采集点与测量控制器之间的通信;其特征在于,所述测量控制器用于输入自定义匹配规则,根据自定义匹配规则构建出状态转移图,并将状态转移图编译成自定义指令集后封装发送至MAC控制逻辑;所述MAC控制逻辑对接收的以太网帧进行解帧操作,针对测量控制器下发的以太网帧、剥离得到自定义指令集,针对交换机与计算机之间交互的以太网帧、记录得到数据帧到达时间戳与字节数信息;规则过滤引擎以流水线方式执行自定义指令集中每一条指令,当执行完所有指令,最后一条指令对应的指定目的寄存器中的值发生改变,认定交换机与计算机之间交互的当前数据帧与自定义匹配规则相匹配,则当前数据帧的到达时间戳与字节数信息通过MAC控制逻辑上报给测量控制器,由测量控制器完成自定义匹配规则下的网络流量测量。
2.按权利要求1所述通用且可配置的网络流量测量系统,其特征在于,所述自定义匹配规则包括五元组信息:源IP地址、源端口、目的IP地址、目的端口和传输层协议,具体支持的操作符为“·”、“|”、“*”及“?”四个操作符,其中,“·”操作符表示“与”操作符,“|”操作符表示“或”操作符;“*”、“?”操作符为通配符,对于“*”操作符匹配0至255之间任意数值,对于“?”操作符匹配0至65535范围内的任意端口号。
3.按权利要求1所述通用且可配置的网络流量测量系统,其特征在于,所述MAC控制逻辑包括:发送模块、接收模块、CRC校验模块和缓存RAM模块;其中,所述接收模块用于接收以太网帧并进行解帧操作,将以太网帧净荷区数据缓冲至所述缓存RAM模块中,同时,针对测量控制器下发的以太网帧、剥离得到自定义指令集,针对交换机与计算机之间交互的以太网帧、记录得到以太网帧到达时间戳与字节数信息;所述发送模块用于对以太网帧净荷区数据进行MAC层以太网报文格式的封装并发送;所述CRC校验模块用于对解帧得到的MAC帧进行CRC-32计算,并与FCS校验字进行比较校验。
4.按权利要求1所述通用且可配置的网络流量测量系统,其特征在于,所述规则过滤引擎将每一条指令拆分为“取指”、“译码”、“执行”、“写回”四个阶段,具体为:
取指阶段(IF)包括:指令指针自增加法器、指令指针(PC)、指令存储器(IM)和多路选择器(MUX);其中,指令指针自增加法器用于完成指令指针PC值的自增1操作,形成顺序读取的下一条指令的地址PC+1,作为转移地址1;所述指令指针用于存放下一条待读取指令的地址PC_NEXT,并在每个时钟周期的上升沿作为取指地址传送给指令存储器(IM);所述指令存储器(IM)用于存储测量控制器下发的自定义指令集;所述多路选择器(MUX)用于判断下一条指令的转移地址PC_NEXT,所述多路选择器(MUX)的三个输入地址为:转移地址1、无条件跳转指令的转移地址2、条件跳转指令的转移地址3,在选择信号JUMP_SEL的控制下选择正确的地址作为PC_NEXT;
译码阶段(ID)包括:寄存器堆(REG)、译码控制单元(DCU)和跳转条件判断模块;寄存器堆(REG)用于提供指令执行过程中所需要的操作数据、及存储指令执行结果;所述译码控制单元(DCU)用于对指令的指定字段以及跳转条件判断模块输出的跳转信号(EQUAL)进行识别,对指定字段进行识别产生控制信号:内部操作码、寄存器堆的读使能信号和写使能信号,读使能信号用于判断当前指令所需的源操作数是否需要从寄存器堆中读取,写使能信号则用于判断当前指令的运算结果是否需要写入寄存器堆;对跳转信号进行识别产生JUMP_SEL信号发送至译码控制单元(DCU);所述跳转条件判断模块对操作数据进行判断,产生跳转信号(EQUAL);
执行阶段(EXE)由一个算术逻辑单元(ALU)构成,根据译码阶段给出的内部操作码的作用下对译码阶段传递过来的两个源操作数据进行运算并得出运算结果;
写回阶段(WB)将运算结果写入寄存器堆(REG)中的当前指令对应的指定目的寄存器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910847949.8A CN110650064B (zh) | 2019-09-09 | 2019-09-09 | 一种通用且可配置的网络流量测量系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910847949.8A CN110650064B (zh) | 2019-09-09 | 2019-09-09 | 一种通用且可配置的网络流量测量系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110650064A CN110650064A (zh) | 2020-01-03 |
CN110650064B true CN110650064B (zh) | 2022-05-03 |
Family
ID=69010234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910847949.8A Expired - Fee Related CN110650064B (zh) | 2019-09-09 | 2019-09-09 | 一种通用且可配置的网络流量测量系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110650064B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688135A (zh) * | 2005-05-13 | 2005-10-26 | 清华大学 | 10g网络性能测试仪流量接收、抓取和统计电路组件 |
CN101420419A (zh) * | 2008-10-27 | 2009-04-29 | 吉林大学 | 一种自适应高速网络流量分层抽样采集方法 |
US7580356B1 (en) * | 2005-06-24 | 2009-08-25 | Packeteer, Inc. | Method and system for dynamically capturing flow traffic data |
CN104243240A (zh) * | 2014-09-23 | 2014-12-24 | 电子科技大学 | 一种基于OpenFlow的SDN流量测量方法 |
WO2016012992A1 (en) * | 2014-07-25 | 2016-01-28 | Telefonaktiebolaget L M Ericsson (Publ) | Data path performance measurement using network traffic in a software defined network |
GB201602098D0 (en) * | 2015-03-04 | 2016-03-23 | Fisher Rosemount Systems Inc | Anomaly detection in industrial communications |
CN106961445A (zh) * | 2017-04-28 | 2017-07-18 | 中国人民解放军信息工程大学 | 基于fpga硬件并行流水线的报文解析方法及其装置 |
CN108989147A (zh) * | 2018-07-16 | 2018-12-11 | 西安电子科技大学 | 基于fpga的sdn网络流量测量系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130343181A1 (en) * | 2012-06-21 | 2013-12-26 | Jonathan Stroud | Systems and methods of data processing using an fpga-implemented hash function |
-
2019
- 2019-09-09 CN CN201910847949.8A patent/CN110650064B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688135A (zh) * | 2005-05-13 | 2005-10-26 | 清华大学 | 10g网络性能测试仪流量接收、抓取和统计电路组件 |
US7580356B1 (en) * | 2005-06-24 | 2009-08-25 | Packeteer, Inc. | Method and system for dynamically capturing flow traffic data |
CN101420419A (zh) * | 2008-10-27 | 2009-04-29 | 吉林大学 | 一种自适应高速网络流量分层抽样采集方法 |
WO2016012992A1 (en) * | 2014-07-25 | 2016-01-28 | Telefonaktiebolaget L M Ericsson (Publ) | Data path performance measurement using network traffic in a software defined network |
CN104243240A (zh) * | 2014-09-23 | 2014-12-24 | 电子科技大学 | 一种基于OpenFlow的SDN流量测量方法 |
GB201602098D0 (en) * | 2015-03-04 | 2016-03-23 | Fisher Rosemount Systems Inc | Anomaly detection in industrial communications |
CN106961445A (zh) * | 2017-04-28 | 2017-07-18 | 中国人民解放军信息工程大学 | 基于fpga硬件并行流水线的报文解析方法及其装置 |
CN108989147A (zh) * | 2018-07-16 | 2018-12-11 | 西安电子科技大学 | 基于fpga的sdn网络流量测量系统及方法 |
Non-Patent Citations (2)
Title |
---|
"Analysis of various interesting measures in classification fule minig for traffic prediction";Xianneng Li等;《Proceedings of SICE Annual Conference 2010》;20100821;全文 * |
"基于FPGA的网络流量计设计与实现";胡匡生等;《微计算机信息》;20090408;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110650064A (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7299282B2 (en) | State processor for pattern matching in a network monitor device | |
JP4558879B2 (ja) | テーブルを用いたデータ処理装置および処理システム | |
EP1788490B1 (en) | Method and apparatus for monitoring traffic in a network | |
US11563643B2 (en) | Advanced network tracing in the data plane | |
US6944670B2 (en) | Method and apparatus for multiple processing of a plurality of communication protocols on a single processing machine | |
CN100372317C (zh) | 10g网络性能测试仪流量接收、抓取和统计电路组件 | |
US6976154B1 (en) | Pipelined processor for examining packet header information | |
US20190379770A1 (en) | Directed graph traversal using content-addressable memory | |
US20050010690A1 (en) | System and method for modifying data transferred from a source to a destination | |
Zazo et al. | Automated synthesis of FPGA-based packet filters for 100 Gbps network monitoring applications | |
CN110650064B (zh) | 一种通用且可配置的网络流量测量系统 | |
CN110933001B (zh) | 一种可扩展的可重构交换机包解析器基本处理单元结构 | |
Zhao et al. | High-performance implementation of dynamically configurable load balancing engine on FPGA | |
Baldi et al. | Network Function Modeling and Performance Estimation. | |
AU2004201908B2 (en) | A cache system | |
Engelmann et al. | Dynamic packet-filtering in high-speed networks using NetFPGAs | |
US11811637B1 (en) | Packet timestamp format manipulation | |
US20230121212A1 (en) | Network-Adapter Based Packet Coloring | |
Wang | Towards a Programmable Dataplane | |
Deri | Modern packet capture and analysis: Multi-core, multi-gigabit, and beyond | |
US11900024B1 (en) | Simulating network packets in a packet processing pipeline | |
Chen et al. | A large capacity programmable packet forwarding device | |
CN116074221A (zh) | 数据包处理管线的硬件无关性规范 | |
Tsai et al. | A Benchmarking Methodology | |
CN106529226A (zh) | 数据跟踪方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220503 |