CN102598598A - 用于分析数据分组的设备、数据分组处理系统和方法 - Google Patents

用于分析数据分组的设备、数据分组处理系统和方法 Download PDF

Info

Publication number
CN102598598A
CN102598598A CN2010800408561A CN201080040856A CN102598598A CN 102598598 A CN102598598 A CN 102598598A CN 2010800408561 A CN2010800408561 A CN 2010800408561A CN 201080040856 A CN201080040856 A CN 201080040856A CN 102598598 A CN102598598 A CN 102598598A
Authority
CN
China
Prior art keywords
information
packet
output
relevant
data
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.)
Granted
Application number
CN2010800408561A
Other languages
English (en)
Other versions
CN102598598B (zh
Inventor
延斯·克里斯托弗森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Napatech AS
Original Assignee
Napatech AS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Napatech AS filed Critical Napatech AS
Publication of CN102598598A publication Critical patent/CN102598598A/zh
Application granted granted Critical
Publication of CN102598598B publication Critical patent/CN102598598B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了用于分析数据分组的设备和方法,其中,导出与数据分组相关的第一和第二信息。第一信息与数据分组的类型、数据分组符合的标准和/或数据分组中存在哪个/哪些数据项相关。第一信息用于标识第二信息所输入至以产生第三信息的函数,第三信息与数据分组的至少部分一起输出。

Description

用于分析数据分组的设备、数据分组处理系统和方法
技术领域
本发明涉及数据分组的处理,具体涉及对在数据连接上接收并且要由多个处理器进一步处理的数据分组进行预处理。
背景技术
目前,这种预处理尚不成熟,大部分处理留给后续处理器。典型地,这种预处理是确定数据分组的总体类型,如确定一个或多个封装(MPLS、VLAN等等)和/或数据类型(UDP、TCP等等),并将该信息与数据分组一起转发。备选地,对于特定类型的数据分组,可以通过从中导出特定信息(典型地从数据分组的地址字段中导出)并从中导出散列值(该散列值与数据分组一起转发),来对其进行预处理。在后一情形中,可以根据散列值来标识例如UDP/TCP业务或VoIP的各个流,并在期望时将各个流路由至相同处理器。然而,仅使用单一散列函数,从而只能对一些类型的数据分组进行预处理器。其他类型的数据分组则完全不进行预处理。
这种系统可以参见WO200999573、US7528242、US2007168377、US7212526或US6597661。
因此,期望在数据链中较早地以及在硬件中,而不是较晚地以及在软件中,提供更多处理。
发明内容
在第一方面,本发明涉及一种用于分析数据分组的设备,所述设备包括:
-用于访问数据分组的数据并输出与数据分组相关的第一信息和第二信息的装置,
-用于基于第一信息来选择多个预定函数之一的装置,
-用于通过对第二信息应用所选择的函数来导出第三信息的装置,以及
-用于将第三信息与数据分组的至少部分一起输出的装置
其中,访问装置适于输出与数据分组的类型、数据分组所符合的标准和/或数据分组中存在哪个/哪些数据项相关的第一信息。
在本上下文中,分析可以是根据数据分组中包含的数据来确定特定值、情形、类型、标识等等。分析可以或者可以不导致改变数据分组的内容,可以使用数据分组中的任何类型的信息或数据分组的任何类型的信息。
此外,数据分组可以是要在网络、数据线缆、数据总线、干线上传输或由网络、数据线缆、数据总线、干线传送的任何类型的数据单元。通常,数据单元符合一个或多个数据标准,如以太网标准,以太网标准是总括,其下存在多个不同的标准或数据分组类型,如UDP和TCP数据分组。数据分组通常具有多个不同的信息项或类型,如地址数据、净荷等等,这些分别位于数据分组内良好定义或已知的位置处。这种位置和典型地通常根据数据分组类型而不同,但是通常可以根据实际数据分组来确定数据分组类型从而确定其各个内容的位置,然后,可以在分析中导出、改变和/或使用在各个数据项,如地址数据和/或净荷。
在本上下文中,可以通过实际接收和/或存储数据或数据分组来访问数据。备选地,可以在另一位置或与本设备通信的设备中接收或存储数据分组,从而通过在数据存储于另一设备时读取数据来远程访问数据分组的数据。
此外,第二信息可以是从数据分组导出和/或与数据分组相关的任何类型的数据。第一信息和这种第二信息可以是从数据分组中直接拷贝或读取的数据/信息,或者可以是与例如数据分组的类型或数据分组所符合的标准相关的数据。例如,在分组的特定数据项标识了类型/标准时,可以从数据分组直接导出类型或标准;或者例如基于识别数据分组的数据项的类型和位置并且随后确定可以在这种位置找到这种数据的数据分组的类型或标准,从数据分组中导出的数据导出类型或标准。
第一信息和第二信息可以是相同的数据(从而仅单次导出或访问),或者可以是不同的信息。当第一信息与数据分组的类型或数据分组所符合的标准相关时,基于数据分组的类型和/或数据分组中存在哪个/哪些数据项以用于所标识的函数,来确定或选择函数。
然后,第二信息可以是专用于该类型的数据分组的数据。优选地,选择第二数据,使得单一流的数据分组具有相同的第二信息,而其他流的数据分组具有其他第二信息。
数据分组的流通常是从单一发射机向一个或多个接收机发送的数据分组的序列。这些数据分组与例如在较小部分(分组的净荷)中发送的单一文件等等相关。然后,在分组中通常还表示有发射机和接收机或任何中间网络单元的地址。此外,根据各个数据分组标准,其他流标识信息可以存在于数据分组中。
因此,可以基于例如地址和/或流标识信息来标识流,从而在一致使用的情况下,可以提供相同的第三信息,任何后续过程可以仅仅根据第三信息来标识流。
尽管原则上任何类型的函数可以用于任何类型的数据分组,但是本发明涉及多个函数之间的选择,使得可以在不同情形下使用或选择不同函数。因此,不同的第一信息可以导致选择不同的函数。这是有意义的,因为然后可以对第二信息执行所述函数中的一个或多个,第二信息并非在所有数据分组或所有类型的数据分组中都存在。对具有MPLS或VLAN标签的数据分组执行的函数的示例不适于不具有MPLS或VLAN标签的数据分组。
对此,函数可以是例如第二信息的元素之间的任何数学关系。例如在不同类型的数据分组导致第二信息中不同类型的信息的情形中,不同函数可以适于对不同类型的信息执行。备选地,不同函数可以基于相同的第二信息提供不同结果。通常期望这两者的组合。
总体目的是优选地针对相同流的数据分组提供相同的第三信息,而针对不同流的数据分组提供不同的第三信息。
在一个情形中,不同函数是对第二信息执行的不同类型的散列函数。
对信息应用函数意味着使用第三信息作为输入来执行函数。该输入可以是单一输入(如单一值),或者在期望时可以是多个输入。
第三信息和数据分组的至少部分的输出可以是输出包括第三信息和数据分组的所述至少部分在内的组合数据项,或者可以是在多个数据项中将其输出,如第三信息作为一个数据项,数据分组的所述至少部分作为数据项。根据例如接收数据分组以及数据分组的至少部分和第三信息的输出的带宽,可能期望仅输出数据分组的一部分,以具有充分的带宽从而还输出第三信息。
自然,可以使用相同或不同的带宽、协议、标准、通信类型(有线、无线、以太网、蓝牙、IR、射频等等)来执行数据分组的任何接收以及第三信息和数据分组的至少部分的输出。注意,以太网/ISDN/ADSL线缆等等上的通信可能非常不同于内部计算机/PC/服务器总线上的通信。因此,第三信息和/或数据分组的所述至少部分不需要符合在设备的输入出需要或期望的相同的数据类型。
如果利用第三信息来直接表示数据分组的一个或多个部分,则例如这种部分不需要输出,因为可以根据第三信息输出来导出这种部分。
在优选实施例中,输出装置适于进一步输出标识所选择的函数的信息。在这种情形中,还可以由接收第三信息、数据分组的所述至少部分和标识信息的单元根据标识信息来导出信息。例如,当基于确定类型的数据分组来选择函数时,随后可以仅仅根据标识信息来确定该类型,从而可以基于此来执行任何进一步处理,完全无需分析数据分组(或其部分)。
在该实施例或另一实施例中,所述设备还包括:用于保存用户定义信息的装置,所述用户定义信息将多个预定第一信息中的每一个与多个预定函数之一相关。因此,根据实际情形,如以下进一步详细描述的,用户可以自己关于第一信息来定义函数的使用。所述设备还可以包括:用于用户输入这种信息的装置,如键盘、计算机鼠标、触摸板/屏、用于接收口述指令的麦克风等等。
在一个情形中,数据分组是以太网分组。注意,“以太网包”是多种类型的数据分组标准的总括,包括多个不同类型的封装,但是一般而言,然后,访问装置可以适于输出与分组的任何封装和/或数据分组是多个预定义类型的以太网分组中的哪一个相关的信息,作为第一信息的至少部分。因此,然后,第一信息主要与分组的类型相关,如分组中提供了哪些类型的信息以及通常因此在分组中的哪些位置提供不同类型的信息。然后,第一信息不需要实际包括从数据分组直接拷贝的任何信息。
在优选实施例中,所述设备还包括:多个输出,其中,输出装置适于,针对数据分组基于与数据分组相关的第三信息来标识输出,并在所标识的输出上输出与数据分组相关的第三信息和数据分组的所述至少部分。备选方案是提供针对所有数据分组接收第三信息和数据分组的所述至少部分的单元,所述单元能够根据需要将第三信息和数据分组的至少部分的不同集合转发至各个输出。
在本发明的第二方面示意了提供不同输出的原因,本发明的第二方面涉及一种数据处理系统,包括根据本发明第一方面的设备,所述系统还包括多个处理单元,其中,输出装置适于基于数据分组和/或第一、第二和/或第三信息来标识处理单元,并向所标识的处理单元输出数据分组的所述至少部分和第三信息。
一般地,当单一处理单元不能执行预期任务时,可以使用多个处理单元。
因此,针对每个数据分组标识处理单元或输出,然后将相关第三信息和数据分组的至少部分发送至所标识的处理单元。
在处理单元中执行的处理可以是进一步分析数据分组的所述至少部分,其中,该分析也可以基于第三信息。备选地,处理可以是在多个输出之一上转发数据分组的所述至少部分、存储数据分组的所述至少部分和/或多种其他任务中的任一个。
处理单元可以均适于执行相同处理,使得处理单元的数目仅仅是性能的增加。然后,针对数据分组标识处理单元可以仅仅基于负载平衡分析。
备选地,不同处理单元可以具有不同能力。这种不同处理能力可以是由于处理单元在硬件和/或软件(如果由软件控制)方面不同。因此,一个处理单元可以用于进一步处理特定类型的特定流(例如具有预定地址)的数据分组,其他处理单元可以用于执行其他分析、用于存储数据、或用于转发单元。
在数据分组的各个流可标识(如根据数据分组的部分和/或第三信息)的情形中,可以确保将流的分组全部转发至相同输出或处理单元,因此不会互相赶超从而打乱序列顺序。
在一个情形中,输出装置适于基于第三信息来标识处理单元。在该情形中,可以在无需从数据分组导出附加信息的情况下标识处理单元。
在特别关注的实施例中,设备是具有多个输出的上述设备,其中每个处理单元适于从预定输出接收第三信息和数据分组的至少部分。按照这种方式,选择输出间接为选择处理单元。
本发明的第三方面涉及一种分析数据分组的方法,所述方法包括:
-从数据分组导出并输出与数据分组相关的第一信息和第二信息,
-基于第一信息来选择多个预定函数之一,
-通过对第二信息应用所选择的函数来导出第三信息,
-将第三信息与数据分组的至少部分一起输出
其中,第一信息与数据分组的类型、数据分组所符合的标准和/或数据分组中存在哪个/哪些数据项相关。
如上所述,分析可以是对数据分组的任何类型的分析,较宽地,数据分组的定义是能够在数据网络/干线/链路/线缆/总线上传输的任何类型的数据分组/元素/项目/单元/帧。
再次,导出和输出第一信息和第二信息的步骤不需要对数据分组的所有部分的完全访问。
对函数的选择基于第一信息,第一信息可以是从数据分组直接导出(如拷贝)的任何信息,或者可以是描述数据分组的信息,如数据分组的类型或数据分组所符合的标准和/或哪些类型的数据或信息项存在或从数据分组可用。
第一信息和第二信息可以是相同的,但优选地不同。第一信息例如与数据分组的类型(优选地,哪些类型的数据项可用于分析)相关,第二信息优选地与数据分组的数据(优选地,标识数据分组所属的数据分组流的数据)相关。
输出第三信息以及数据分组的至少部分可以是输出单一数据单元/项目/分组/帧或者分离地(在时间上分离或者作为分离的单元)输出第三信息以及数据分组的至少部分。
在一个情形中,输出步骤还包括:输出对所选择的函数进行标识的信息。按照这种方式,后续处理还可以基于或仅仅基于该信息。
在该情形或另一情形中,选择步骤包括:基于用户定义信息来选择函数,所述用户定义信息将多个预定第一信息中的每一个与多个预定函数之一相关。因此,所述方法可以适于指定情形和指定类型的数据分组,或数据分组类型的不同组合。所述方法还可以包括用户输入用户定义信息的步骤。
在一个情形中,数据分组是以太网分组,其中,导出/输出步骤包括:输出与分组的任何封装和/或数据分组是多个预定义类型的以太网分组中的哪一个相关的信息,作为第一信息的至少部分。
在该情形或另一情形中,输出步骤包括:针对数据分组,基于与数据分组相关的第三信息来标识多个输出之一,并将与数据分组相关的第三信息和数据分组的所述至少部分输出至所标识的输出。
如上所述,这带来了多种可能性,可以针对不同目的或针对相同目的使用各个过程,但是期望负载平衡和序列保持。
本发明的第四方面涉及一种对本发明第二方面的数据处理系统进行操作的方法,其中,输出步骤包括:基于数据分组和/或第一、第二和/或第三信息来标识处理单元,并向所标识的处理单元输出数据分组的所述至少部分和第三信息。
在该情形中,输出步骤优选地包括:基于第三信息来标识处理单元,因为这是执行标识的简单方式。此外,当第二信息以及从而第三信息指示或直接在数据流之间区分时,这仍将提供负载平衡和/或序列保持。备选地,可以利用所标识和使用的实际函数来标识处理单元。
此外,当设备还具有多个输出时,输出步骤优选地包括:针对数据分组,基于与数据分组相关的第三信息来标识输出,并在所标识的输出上输出与数据分组相关的第三信息和数据分组的所述至少部分。这具有以上进一步描述的优点。
一般地,动态散列特征或者选择利于计算更均匀分布的散列值。在所计算的散列值用于将帧负载平衡至多个CPU上的系统中,这是非常有用的。这些不同的散列函数从0开始向上编号,在以下描述中称为散列模式。
可以针对不同事物来使用所计算的散列值以及所选择的散列模式,如:
-基于散列值将帧和TAG一起发送至指定CPU。即,计算在NIC上接收的所有帧的散列值,并基于散列值的两个最低有效比特来向4个CPU之一发送帧+TAG。
-基于散列值,加速对不同帧和/或来自不同帧的信息的组合。
-唯一标识具有特定散列值的单一流的所有帧,其中,流指的是从特定源地址至特定目的地址的所有帧。由于特定流的所有帧具有相同的散列长度,基于散列值的最低有效比特向多个CPU使用负载平衡导致单一CPU接收来自流的所有帧。这导致改进的CPU存储器高速缓存性能,因为在从NIC传送至CPU时,相同流的帧连续存储在CPU存储器中。
附图说明
以下参照附图来描述本发明的优选实施例,其中:
-图1示意了具有数据处理器的数据分组处理系统,
-图2示意了数据分组的结构,
-图3示意了图1的数据预处理器的相关部分,
-图4示意了根据7字值来计算散列值,
-图5示意了不同散列函数及其所执行于的数据,
-图6示意了“最后MPLS”散列键类型,
-图7示意了“所有MPLS”散列键类型,
-图8示意了“2元组”散列,
-图9示意了“最后VLAN”散列值类型7中的数据字0,
-图10示意了“所有VLAN”散列函数或键类型,
-图11示意了“5元组UDP/TCP/SCTP”散列键类型8,
-图12示意了“3元组GREv0”散列键类型10,
-图13示意了“5元组SCTP”散列键类型12,
-图14示意了“3元组GTPv0”散列键类型14,以及
-图15示意了“3元组GTPv1/GTPv2”散列键类型16。
具体实施方式
在图1中,总体数据处理系统10包括:数据预处理器12,如网络检查卡(NIC),在通信链路16上接收多个数据分组。预处理器12预处理数据分组,并将这些数据分组中的每一个与在预处理器中导出的信息一起,经由链路18转发至多个处理器或过程14之一,处理器/过程14可以对数据分组执行进一步处理。
一般地,这种系统可以是数据存储器或数据业务监视系统,在链路16上接收具有数据分组形式的大量数据,该数据要由处理器14处理。通常,在单一处理器不能胜任时,提供多个处理器14。
在处理器14中,执行数据分组的进一步处理,以确定对数据分组进一步分析、传输、存储、改变,或者最终处理的可能的任何结果。根据处理器14中的处理结果,处理器14可以用于分析数据业务、存储数据和/或将数据发送至其他网络单元、计算机等等。
为了避免必须在通常由软件控制的处理器14中执行对数据分组的完全数据分组处理,将预处理器12中执行的预处理的结果与数据分组或其相关部分一起转发至处理器14。如果预处理结果唯一定义了数据分组的部分,则在共同发送至处理器14的结果中进行标识时,不需要将数据分组的这些部分转发至处理器14。
系统的总体功能是处理数据分组,具体处理数据分组流。当两个处理器或计算机交互时,交换数据分组流。该流可以是文件传送或者音频/视频的交换,如IP语音。流是类似的数据分组的序列,能够确定数据分组属于流,期望由相同处理器14来处理流的所有数据分组。因此,预处理器的目的是从流中的所有数据分组导出相同信息,使得处理器14可以仅仅根据所导出的信息来标识流的数据分组。
因此,可以通过根据处理器的负载来向处理器14分配流,从而平衡处理器14的负载。此外,或者备选地,通过将相同流的所有数据分组转发至相同处理器14,避免了流的各个数据分组赶超其他数据分组,使得例如由于例如一个处理器14中的延迟而导致VoIP流中断或损坏。此外,处理器14可以具有不同属性或能力,这些属性或能力适于向其转发的数据分组的类型和数目。在期望时,不同的处理器14可以具有不同的能力或编程,使得应当将不同类型的数据分组转发至不同处理器14。
在图2中,看到数据分组DP的一般结构。以太网包可以具有大量结构之一,因为大量的各个数据分组标准落入“以太网”的一般概念之内。
以太网数据分组可以在层3和/或层4传输。层3传输需要数据分组具有层3发射机地址和层3接收机地址,层4也是如此。因此,以太网数据分组DP可以具有多个地址A1-A4。此外,数据分组可以具有净荷PL和纠错数据CRC。根据实际标准和所传输的数据类型,可以存在多个其他字段或信息类型。
此外,分组DP可以具有不同类型的封装,如在E1和E2处示意的一个或多个MPLS和/或VLAN封装,还能够在数据分组DP中的特定位置(比特)处标识这些封装。
因此,可以根据地址A1-A4中的全部或一些地址来标识流,但是根据封装(如果有),其位置将根据数据分组类型而不同。
由于各种类型的以太网包被标准化,本领域技术人员知道这些并能够根据任何数据包来确定分组应用于哪个标准以及在数据分组中的何处存在各个类型的数据。
在图3中,看到预处理器12的必要单元及其操作方式。在该预处理器中,在接收机20中接收数据16,接收机20将数据分组DP转发至导出单元22、计算单元24和组装单元28。导出单元22从数据分组DP导出相关信息,并将其转发至计算单元24。该相关信息将唯一地或至少以较高概率标识所接收的数据分组的各个流,并且通常与数据分组中的地址以及其他特性(如存在哪个/哪些封装)相关。
从图2中清楚看到,地址(A1-4)和其他信息在数据分组DP中的位置可以由于是否存在封装数据(E1-2)而变化。因此,导出单元22的输出可以是关于分组是哪个类型的数据分组DP以及是否存在任何封装和/或在该特定数据分组DP中找到地址数据A1-A4的位置的信息。
根据流的数据类型,还可以使用不同于地址信息的其他信息,如端口地址或编号、验证数据、验证数据或例如向接收计算机标识该数据分组是流的一部分的其他数据。
将该信息转发至计算单元24,该信息可以具有数据分组中的比特位置的形式或者以下9比特值,计算单元24的功能是导出表征数据分组DP的信息,该信息被转发至处理器14。计算单元24还接收数据分组DP,并访问保存用户定义信息的数据存储器26,用户定义信息将数据分组类型与用于根据数据分组DP的相关部分来计算导出信息的函数相关。
在数据存储器26中,多个散列函数(以下进一步描述了20个)中的每一个与一个或多个不同类型的数据分组DP或不同类型的相关信息(如是否存在封装,以及如果存在封装,则数据分组是否是层3、层4数据分组等等)相关。与散列函数一起,数据存储器26还保存与要对数据分组DP的哪些部分执行散列函数相关的信息,以导出表征数据分组的信息。
因此,计算单元24从数据存储器26中导出正确的散列函数以及与要对数据分组的哪些部分执行该函数相关的信息。然后,执行散列函数(计算单元24还接收数据分组),并且将散列函数的结果输出至组合单元28,组合单元28也接收数据分组。
最终,组合单元28向适于与处理器24通信的输出单元30输出数据分组和散列函数的处理结果。可以以多种方式,例如根据散列函数的结果或散列函数的ID,选择输出单元30和后续处理器14。如以上进一步描述的,不同的处理器14可以具有不同属性,但是至少期望相同的处理器接收相同流的所有数据分组。
优选地,计算单元还向组合单元28输出与使用哪个散列函数相关的信息,然后,组合单元28也向输出30和处理器14输出该信息。散列函数的ID本身向处理器14指示哪种类型的数据在数据分组中,处理器14无需自己分析分组。此外,通过计算散列函数来减小数据量始终承担以下风险:两个不同流的数据分组具有相同结果,然后被混淆或混合。通过还提供散列函数的ID,可以进一步降低该问题的概率。
更准确地,优选实现为以下实现,其中:
1.基于封装和协议来对接收帧分类,得到9比特值。
该9比特值的比特由以下确定:
Figure BDA0000143297010000111
Figure BDA0000143297010000121
2.然后,使用该9比特值作为具有512个条目的用户定义查找表中的地址,其中每个条目由5比特散列模式值组成,即32个可能的不同散列函数之一。因此,用户能够确定针对每个单个9比特值使用哪些散列函数:
Figure BDA0000143297010000122
Figure BDA0000143297010000131
在图5中以及以下进一步给出这些函数的更具体描述。
在散列值计算期间出现差错的情况下,将散列值设为零,并且利用无效散列值比特来标记帧。仍利用要用于差错处理的散列模式值来标记帧。差错可能由于以下情形而发生:
·未定义的散列模式
·由于分组过短,不能包含所需协议而导致的协议差错
·由于分组过短,散列函数中使用的字段未包含在分组中
3.然后,使用从查找表中选择的散列函数来计算数据分组/帧的散列值。
自然,可以基于分组首部信息来计算不同散列值。当前,产生散列值作为散列键数据的28字节的IEEE 802.3 MAC CRC32校验和(多项式:G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1),如图4所示。
如果不能确定类型,例如简单地提供循环结果,向每个这种数据分组提供针对每个数据分组而增加的编号。
4.利用散列模式以及散列值来标记每个帧。
5.可以以上述不同方式来使用将每个帧组合为{散列模式,散列值}元组。
图5中给出了在不同散列函数中使用的数据的概述。未用于特定散列模式的字在计算期间设为零。
现在将更详细描述这些散列函数中的一些。
图6示意了根据数据分组导出的散列键或相关信息,该数据分组是MPLS封装/标记的,从而在9比特值的第一比特中具有“1”。在这种情形中,使用“最后MPLS”散列键,从而相应建立查找表,从图6可以看到,散列键数据字的第一字(字0)为数据分组或帧中的最后MPLS标签栈的20比特标签字段。散列键的其余字和字0的其余比特设为零。
图7示意了根据MPLS封装/标记的另一数据分组导出的散列键或相关信息。在该情形中,使用“所有MPLS”散列键类型,从图7可以看到,散列键数据字的第一字(字0)为数据分组或帧中的第一MPLS标签栈的20比特标签字段,后续字保存后续MPLS标签。散列键的其余字和MPLS标签保存字的其余比特设为零。
图8示意了“2元组”散列,从图8可以看到,散列键数据字的前两字(字0和1)分别为32比特IPv4源和目的地址。散列键的其余字设为零。
还可以对该函数以及上述多个其他散列函数进行排序,从而在字0中提供源和目的地址中的最高者,而在字1中提供另一个。按照这种方式,在两个计算机之间传输的数据分组将具有相同散列键,这可以是期望的。
图9示意了“最后VLAN”散列键类型7中的数据字0被设置为数据分组中的最后VLAN标记的12比特VLAN ID字段。散列键的其余字和字0的其余比特设为零。
图10示意了“所有VLAN”散列函数或键类型,并示意了在从字0开始的字中分别提供各个12比特VLAN ID字段。散列键的其余字和具有12比特VLAN ID的字的其余比特设为零。
图11示意了用于UDP、TCP和SCTP数据分组的“5元组UDP/TCP/SCTP”散列键类型8。可以看到,导出和引入了IPv4地址和协议。根据该协议,在提供了TCP、UDP或SCTP分组的源和目的端口的情况下,可以确定字2中表示哪个类型的数据分组。
图12示意了“3元组GREv0”散列键类型10,其中导出32比特IPv4地址以及32比特GREv0键。
图13示意了“5元组SCTP”散列键类型12,其中针对字0和1导出32比特IPv4地址,针对字2导出16比特SCTP源和目的端口。最后在字3中输入32比特验证标记。
图14示意了“3元组GTPv0”散列键类型14,其中针对字0和1导出32比特IPv4地址,在字2中引入16比特GTPv0流标签。
最终,图15示意了“3元组GTPv1/GTPv2”散列键类型16,其中针对字0和1导出32比特IPv4地址。然后,字2接收GTPv1或GPTv2分组的隧道端点标识符TEID。

Claims (16)

1.一种用于分析数据分组的设备,所述设备包括:
-用于访问数据分组的数据并输出与数据分组相关的第一信息和第二信息的装置,
-用于基于第一信息来选择多个预定函数之一的装置,
-用于通过对第二信息应用所选择的函数来导出第三信息的装置,以及
-用于将第三信息与数据分组的至少部分一起输出的装置,
其中,访问装置适于输出与数据分组的类型、数据分组所符合的标准和/或数据分组中存在哪个/哪些数据项相关的第一信息。
2.根据权利要求1所述的设备,其中,输出装置适于进一步输出标识所选择的函数的信息。
3.根据权利要求1或2所述的设备,还包括:
用于保存用户定义信息的装置,所述用户定义信息将多个预定第一信息中的每一个与多个预定函数之一相关。
4.根据前述任一权利要求所述的设备,其中,数据分组是以太网分组,访问装置适于输出与分组的任何封装和/或数据分组是多个预定义类型的以太网分组中的哪一个相关的信息来作为第一信息的至少部分。
5.根据权利要求1-4中任一项所述的设备,还包括:
多个输出,其中,输出装置适于,针对数据分组,基于与数据分组相关的第三信息来标识输出,并在所标识的输出上输出与数据分组相关的第三信息和数据分组的所述至少部分。
6.一种数据处理系统,包括根据权利要求1-5中任一项所述的设备,所述系统还包括多个处理单元,其中,输出装置适于基于数据分组和/或第一信息、第二信息和/或第三信息来标识处理单元,并向所标识的处理单元输出数据分组的所述至少部分和第三信息。
7.根据权利要求6所述的数据处理系统,其中,输出装置适于基于第三信息来标识处理单元。
8.根据权利要求6或7所述的数据处理系统,其中,所述设备是根据权利要求5所述的设备,每个处理单元适于从预定输出接收第三信息和数据分组的至少部分。
9.一种分析数据分组的方法,所述方法包括:
-从数据分组导出并输出与数据分组相关的第一信息和第二信息,
-基于第一信息来选择多个预定函数之一,
-通过对第二信息应用所选择的函数来导出第三信息,
-将第三信息与数据分组的至少部分一起输出,
其中,第一信息与数据分组的类型、数据分组所符合的标准和/或数据分组中存在哪个/哪些数据项相关。
10.根据权利要求9所述的方法,其中,输出步骤还包括:
输出标识所选择的函数的信息。
11.根据权利要求9或10所述的方法,其中,选择步骤包括:
基于用户定义信息来选择函数,所述用户定义信息将多个预定第一信息中的每一个与多个预定函数之一相关。
12.根据权利要求9-11中任一项所述的方法,其中,数据分组是以太网分组,导出/输出步骤包括:
输出与分组的任何封装和/或数据分组是多个预定义类型的以太网分组中的哪一个相关的信息来作为第一信息的至少部分。
13.根据权利要求9-12中任一项所述的方法,其中,输出步骤包括:
针对数据分组,基于与数据分组相关的第三信息来标识多个输出之一,并将与数据分组相关的第三信息和数据分组的所述至少部分输出至所标识的输出。
14.一种对根据权利要求6所述的数据处理系统进行操作的方法,其中,输出步骤包括:
基于数据分组和/或第一信息、第二信息和/或第三信息来标识处理单元,并向所标识的处理单元输出数据分组的所述至少部分和第三信息。
15.根据权利要求14所述的方法,其中,输出步骤包括:
基于第三信息来标识处理单元。
16.根据权利要求14或15所述的方法,其中,所述设备还具有多个输出,输出步骤包括:
针对数据分组,基于与数据分组相关的第三信息来标识输出,并在所标识的输出上输出与数据分组相关的第三信息和数据分组的所述至少部分。
CN201080040856.1A 2009-09-15 2010-09-15 用于分析数据分组的设备、数据分组处理系统和方法 Active CN102598598B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US24256709P 2009-09-15 2009-09-15
US61/242,567 2009-09-15
PCT/EP2010/063508 WO2011032954A1 (en) 2009-09-15 2010-09-15 An apparatus for analyzing a data packet, a data packet processing system and a method

Publications (2)

Publication Number Publication Date
CN102598598A true CN102598598A (zh) 2012-07-18
CN102598598B CN102598598B (zh) 2015-03-18

Family

ID=43228000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080040856.1A Active CN102598598B (zh) 2009-09-15 2010-09-15 用于分析数据分组的设备、数据分组处理系统和方法

Country Status (8)

Country Link
US (1) US8929378B2 (zh)
EP (1) EP2478677B1 (zh)
JP (1) JP5711237B2 (zh)
KR (1) KR101726359B1 (zh)
CN (1) CN102598598B (zh)
BR (1) BR112012005752A2 (zh)
DK (1) DK2478677T3 (zh)
WO (1) WO2011032954A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743610A (zh) * 2014-12-27 2016-07-06 英特尔公司 用于多网络分组操作的数据完整性的技术

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012034353A (ja) * 2010-06-28 2012-02-16 Panasonic Corp ネットワーク通信装置、通信方法および集積回路
US9473373B2 (en) 2012-04-04 2016-10-18 Viavi Solutions, Inc. Method and system for storing packet flows
US9276853B2 (en) 2012-04-10 2016-03-01 Viavi Solutions Inc. Hashing of network packet flows for efficient searching
EP2874362B1 (en) 2013-11-13 2019-10-02 Napatech A/S A system and a method of analysing a plurality of data packets
US9948579B1 (en) * 2015-03-30 2018-04-17 Juniper Networks, Inc. NIC-based packet assignment for virtual networks
US10733167B2 (en) 2015-06-03 2020-08-04 Xilinx, Inc. System and method for capturing data to provide to a data analyser
US10691661B2 (en) 2015-06-03 2020-06-23 Xilinx, Inc. System and method for managing the storing of data
CN114629972B (zh) * 2022-03-21 2024-03-22 中国科学院计算机网络信息中心 一种数据报文的处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030063611A1 (en) * 2001-09-28 2003-04-03 Marc Schaub Flexible application of mapping algorithms within a packet distributor
US20050254502A1 (en) * 2004-05-11 2005-11-17 Lynn Choi Packet classification method through hierarchical rulebase partitioning
US20080198867A1 (en) * 2003-10-14 2008-08-21 Broadcom Corporation Hash and Route Hardware with Parallel Routing Scheme

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3305279B2 (ja) * 1999-03-29 2002-07-22 日本電気株式会社 Ipアドレス動的割り当て装置
US6597661B1 (en) * 1999-08-25 2003-07-22 Watchguard Technologies, Inc. Network packet classification
US6904040B2 (en) * 2001-10-05 2005-06-07 International Business Machines Corporaiton Packet preprocessing interface for multiprocessor network handler
US7212526B2 (en) 2002-01-18 2007-05-01 Hitachi, Ltd. Method and apparatus for composing virtual links in a label switched network
US7529242B1 (en) 2002-02-15 2009-05-05 Symantec Corporation Routing network packets for multi-processor network flow analysis
JP2005318222A (ja) * 2004-04-28 2005-11-10 Mitsubishi Electric Corp パケット伝送システム及びパケット伝送方法
US8072901B1 (en) * 2005-05-09 2011-12-06 Cisco Technology, Inc. Technique for efficient probing to verify policy conformance
US7596141B2 (en) * 2005-06-30 2009-09-29 Intel Corporation Packet classification using encoded addresses
JP4547341B2 (ja) * 2005-09-05 2010-09-22 アラクサラネットワークス株式会社 通信品質制御機能を備えるパケット中継装置
US20070168377A1 (en) 2005-12-29 2007-07-19 Arabella Software Ltd. Method and apparatus for classifying Internet Protocol data packets
US20070248092A1 (en) * 2006-04-24 2007-10-25 Motorola, Inc. System and method for efficient traffic distribution in a network
US7948980B2 (en) * 2006-08-02 2011-05-24 University Of Florida Research Foundation, Inc. Succinct representation of static packet classifiers
JP5086585B2 (ja) * 2006-08-11 2012-11-28 アラクサラネットワークス株式会社 ネットワーク中継装置
KR20090099519A (ko) * 2006-12-19 2009-09-22 인터내셔널 비지네스 머신즈 코포레이션 네트워크 흐름을 분석하기 위한 장치 및 방법
JP2008167305A (ja) * 2006-12-28 2008-07-17 Mitsubishi Electric Corp パケット並列処理装置およびパケット並列処理方法
US7773510B2 (en) * 2007-05-25 2010-08-10 Zeugma Systems Inc. Application routing in a distributed compute environment
US20090006521A1 (en) * 2007-06-29 2009-01-01 Veal Bryan E Adaptive receive side scaling
US7706291B2 (en) * 2007-08-01 2010-04-27 Zeugma Systems Inc. Monitoring quality of experience on a per subscriber, per session basis
US8374102B2 (en) * 2007-10-02 2013-02-12 Tellabs Communications Canada, Ltd. Intelligent collection and management of flow statistics
WO2009099573A1 (en) 2008-02-08 2009-08-13 Rmi Corporation System and method for parsing and allocating a plurality of packets to processor core threads
US8665879B2 (en) * 2009-07-14 2014-03-04 Broadcom Corporation Flow based path selection randomization using parallel hash functions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030063611A1 (en) * 2001-09-28 2003-04-03 Marc Schaub Flexible application of mapping algorithms within a packet distributor
US20080198867A1 (en) * 2003-10-14 2008-08-21 Broadcom Corporation Hash and Route Hardware with Parallel Routing Scheme
US20050254502A1 (en) * 2004-05-11 2005-11-17 Lynn Choi Packet classification method through hierarchical rulebase partitioning

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743610A (zh) * 2014-12-27 2016-07-06 英特尔公司 用于多网络分组操作的数据完整性的技术
CN105743610B (zh) * 2014-12-27 2019-11-15 英特尔公司 用于多网络分组操作的数据完整性的技术

Also Published As

Publication number Publication date
BR112012005752A2 (pt) 2017-05-30
KR20120067345A (ko) 2012-06-25
JP2013504913A (ja) 2013-02-07
US8929378B2 (en) 2015-01-06
WO2011032954A1 (en) 2011-03-24
DK2478677T3 (da) 2013-09-30
EP2478677A1 (en) 2012-07-25
EP2478677B1 (en) 2013-07-10
CN102598598B (zh) 2015-03-18
JP5711237B2 (ja) 2015-04-30
KR101726359B1 (ko) 2017-04-12
US20120170584A1 (en) 2012-07-05

Similar Documents

Publication Publication Date Title
CN102598598B (zh) 用于分析数据分组的设备、数据分组处理系统和方法
US20200358886A1 (en) Data Transmission Method, Apparatus, And System
WO2016054992A1 (zh) 网络数据采集系统及方法
US9674315B2 (en) Methods for dynamically binding header field identifiers in a network control protocol
US7233594B2 (en) Apparatus for transmitting/receiving wireless data and method thereof
CN112311789B (zh) 深度报文处理方法、装置、电子设备及存储介质
US8130761B2 (en) Method and system for providing confirmed delivery of ethernet packets
CN103765848A (zh) 用于媒体访问控制替换的装置和方法
RU2003130091A (ru) Способ и устройство для обеспечения уровней с множеством показателей качества обслуживания в соединениях беспроводной передачи пакетов данных
US10355999B2 (en) Flow control with network named fragments
US7991008B2 (en) Method for identifying the transmission control protocol stack of a connection
US7961614B2 (en) Information processing device, information processing method, and recording medium for reducing consumption of memory capacity
US20090210770A1 (en) Method, system and computer program product for end to end error checking in ethernet
US9270489B1 (en) Explicit congestion notification in mixed fabric networks
EP2420936B1 (en) Protocol conversion Communication Device
US20120155472A1 (en) Apparatus and method for classifying packets
US8625619B2 (en) Domain gateway control system and method thereof
CN117014967A (zh) 移动通信系统、方法和用户面节点
US9553795B2 (en) Port switching method, analysis device, and recording medium
JP2014225157A (ja) 通信システム、負荷分散装置、および、負荷分散プログラム
US11089540B2 (en) Variable address length communication protocol
CN110891073B (zh) 一种用于移动通信核心网的多协议栈通信方法
CN116980657B (zh) 一种视频数据传输处理方法、装置及设备
KR20120067915A (ko) 패킷 분류 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant