CN102696201B - 对读取和排序数据分组的多个分析装置进行操作的设备、组件和方法 - Google Patents

对读取和排序数据分组的多个分析装置进行操作的设备、组件和方法 Download PDF

Info

Publication number
CN102696201B
CN102696201B CN201080054597.8A CN201080054597A CN102696201B CN 102696201 B CN102696201 B CN 102696201B CN 201080054597 A CN201080054597 A CN 201080054597A CN 102696201 B CN102696201 B CN 102696201B
Authority
CN
China
Prior art keywords
packet
analytic unit
output
receiving
receive
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.)
Active
Application number
CN201080054597.8A
Other languages
English (en)
Other versions
CN102696201A (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 CN102696201A publication Critical patent/CN102696201A/zh
Application granted granted Critical
Publication of CN102696201B publication Critical patent/CN102696201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections

Abstract

本发明公开了一种系统和一种操作该系统的方法,该系统具有多个数据接收单元,每个数据接收单元从数据连接以及从另一接收单元接收数据分组,将两个数据分组以预定的顺序转发给另一接收单元。如果在一个时间点处,仅接收到一个数据分组,则允许经过一个时间段,如果接收到第二数据分组,则按顺序输出两个分组。如果没有,则输出接收到的数据分组。

Description

对读取和排序数据分组的多个分析装置进行操作的设备、组件和方法
技术领域
本发明涉及并行读取/分析数据分组、对分组排序并以所希望的顺序顺序输出这些分组的方式。
发明内容
在第一方面,本发明涉及以预定顺序对从数据连接接收到的多个数据分组进行排序和输出的设备,该设备包括多个分析单元,每个分析单元包括:
第一装置,用于从所述数据连接接收数据分组,
第二装置,用于从另一分析单元接收数据分组,
用于输出第一接收装置和第二接收装置接收到的数据分组的装置,以及
控制单元,包括:
装置,用于:
在一个时间点处,确定所述第一接收装置和/或所述第二接收装置是否已接收到数据分组,
如果在所述时间点处,已由所述第一接收装置和所述第二接收装置接收到数据分组,则确定两个数据分组的顺序,并指示所述输出装置以所确定的顺序输出所述两个数据分组,以及
如果在所述时间点处,仅从所述第一接收装置和所述第二接收装置中的一个接收到数据分组,则等待预定的时间段,以及
如果在所述预定的时间段内或者之后,已由所述第一接收装置和所述第二接收装置中的另一个接收到数据分组,则确定两个数据分组的顺序,并指示所述输出装置以所确定的顺序输出所述两个数据分组,
否则,在预定的时间段之后,指示所述输出装置输出接收到的数据分组。
在当前上下文中,该设备可以是单个外壳内的单片硬件,或者可以通过被互连以交换数据的多个分开的单元形成。该交换可以遵循任何数据传输协议,例如,TCP、以太网、Bluetooth等,并使用任何类型的数据传输(有线或无线的)。
此外,可以以单片的硬件提供分析单元,例如,由分开的PCB、处理器、FPGA等来具体化每个分析单元。备选地,同一个PCB/处理器/FPGA可以形成多个分析单元。此外,控制单元可以被集成到分析单元的其他部分中,或者可以是单独的实体。
数据分组可以是要通过网络、数据线缆、数据总线、干线等发送或传输的任何类型的数据单元。正常来说,数据单元符合一个或多个数据标准,例如,作为伞的以太网标准,在该标准下存在多种不同的标准或数据分组类型,例如,UDP和TCP数据分组。数据分组常常具有多个不同的信息项或类型,例如,地址数据、有效载荷等,每个都位于数据分组内很好地定义或者已知的位置处。这种位置和类型通常将基于数据分组类型而不同,然而常常可以由实际的数据分组来确定数据分组类型、因而确定其各自内容的位置,其中,可以之后在分析中推导、改变和/或使用单独的数据项,例如,地址数据和/或有效载荷。类型或标准可以根据数据分组进行直接推导(例如当分组的特定数据项标识了类型/标准时),或者可以根据从数据分组中推导出的数据进行推导(例如,基于对数据分组的数据项的类型和位置的识别,以及后续对数据分组的类型或标准的确定,其中,可以在这种位置处找到这种数据)。
在该上下文中,数据连接可以是使用任何数据传输协议的任何类型的数据传输连接(例如数据线缆或干线),可以是有线和/或无线的连接到计算机、服务器、网络或存储器。
可以在数据连接上转发数据分组,并以任何方式及使用任何分发方案等将其馈送到单独的第一装置。
在当前上下文中,数据分组的排序可以是这样的:从数据连接接收数据分组,或者将数据分组馈送给数据连接,例如,经由数据连接从存储器读出数据分组的顺序。优选地,该顺序也是可根据数据分组确定的,以使分析单元在后续能够根据任何两个数据分组来确定数据分组在该顺序中的相对位置,并因而确定首先要输出哪个数据分组。
可以通过多种方式并出于多种原因对数据分组排序。通常,计算机之间的数据交换是文件传递、TCP传递、VoIP等,其中,单独的分组的顺序是重要的。通常,这种传递被称为流。
正常来说,数据分组的流是从单个发射机向一个或多个接收机发送的数据分组序列。这些数据分组涉及例如作为分组的有效载荷的、在更小的部分中发送的单个文件等。然后,发射机和接收机、或者任何中间网络单元通常将具有也在分组中表示出的地址。此外,取决于单独的数据分组标准,其他的流标识信息可以出现在数据分组中。
因而,可以基于例如地址和/或流标识信息来标识流,由此,如果始终在使用,可以推导出相同的信息,并且任何后续的过程可以仅根据该信息来标识该流。
在另一情况下,可以向数据分组提供确定其顺序的信息,例如,序列号或时间戳。因而,可以使用该信息来对分组排序。时间戳的优点在于,任何两个分组可以相对于彼此排序。当顺序地应用时,序列号还具有如下优势:如下面进一步描述的,可以确定两个分组在序列中是否相邻,或者附加的分组是否要位于这两个分组之间。
使用多个第一装置。然而,例如由于数据分组不需要具有相同的大小这一事实,这些装置可以不同的速度或延迟来操作,由此,分析单元接收数据分组的顺序可能与从存储器输出数据分组的顺序不对应。序列,为了设备以所希望的顺序输出数据分组,期望重新排序。
当存在多个分析单元时,可以执行并行的读取/解除队列和/或排序。可以使用任何数目的分析单元,例如,2、3、4、5、6、7、8、10、15、20或更多。如下面进一步描述的,所有这些分析单元可以是相同的或者近似相同的,或者可以利用不同的操作,将其示例化或创建为不同的电路。
自然,可以使用任何所希望的公共或专有协议(例如,以太网、Bluetooth、TCP、PCIe等),通过任何方式(例如,经由有线和/或无线数据连接/总线),将数据分组从连接/PC/服务器/网络/存储器向单独的第一接收装置传输。第一装置可以各从连接直接接收数据分组,或者将第一装置设置为菊花链,其中,沿着菊花链转发数据分组,直到到达正确的第一装置。
通过第二接收装置和输出装置来执行数据分组在分析单元之间的传递。可以基于任何协议(例如,以太网、Bluetooth、PCIe或者在PC主板上或者在内部PC资源之间使用的其他协议,等等),使用任何类型的数据传递(有线的或者无线的、模拟的或者数字的、串行的或者并行的)来执行该传递。
当并行接收数据分组(其中,可能出现不同的处理延迟或传输延迟)时,希望能够再次对数据分组排序。根据本发明,在一个时间点处,确定数据分组是已经由第一装置和第二装置二者接收到,还是仅由其中的一个接收到。如果还没有接收到数据,则不需要动作。
自然,下面还将进一步描述,优选地,执行该确定和后续动作多次,例如,周期性地执行。备选地,可以每次接收到数据分组时,都运行该过程。
如果在第一和第二接收装置上均接收到数据分组,则可以没有延迟地输出这些数据分组,以及在顺序中排在第一的数据分组被首先输出。自然,第一装置和第二装置之一或二者可以已经接收到多个数据分组。在该情况下,在前两个数据分组之间做出确定,然后输出其中最早的分组。然后,可以再次对前两个数据分组做出确定,即,来自接收到“最早”的数据分组的第一或第二装置的下一个分组,以此类推。
如果在该时间点处仅接收到单个数据分组,则可以从第一装置和第二装置中的另一个接收另一数据分组,如果在沿着该另一数据分组所采用的路径的接收中的延迟长于接收到的数据分组所采用的路径,该另一数据分组实际可以在顺序上更早。因而,不立即输出已经接收到的分组,而是处理单元等待预定的时间段,看第一装置和第二装置中的另一个是否接收到数据分组。如果接收到,则如上所述排序并输出数据分组。如果没有,则输出已经接收到的数据分组。自然,如果从第一装置和第二装置中的另一个接收到数据分组,则控制单元需要在输出该数据分组之前等待完整的时间段。
一般而言,可以根据需要选择该预定的时间段。大的时间段会需要大的缓冲存储器,然而提供了对所有分组排序的更高概率,而较低的时间段则相反。当前,预定的时间段将在0和1000ms之间,例如,在0.1和100ms之间,优选地,0.2至50ms之间。如下面将要进一步描述的,在不同的分析单元之间,预定的时间段可以不同。
取决于该情况和设置,输出装置可以向另一分析单元的第二接收装置或者向另一单元输出数据分组。
在一个情况下,多个分析单元位于具有两个端的菊花链结构中,第一分析单元不从位于一端的另一分析单元接收数据分组,以及第二分析单元从菊花链向位于另一端的接收数据连接输出数据分组。
在该方面,菊花链是这样的设置:其中,分析单元适于沿着线性结构,从分析单元到分析单元转发数据分组,就像是串上的珍珠。自然,数据分组都在菊花链的一端处从菊花链输出,以及在菊花链的另一端处的分析单元不从另一分析单元、而是仅从数据连接接收数据分组。
通过这种方式,执行了并行的接收/读取/解除队列,同时按顺序执行的数据分组的单个串行/顺序的输出。在该方面,注意到,可以通过与分析单元之间所使用的不同的方式或者使用不同类型的数据通信(例如,协议)来执行向进行接收的数据连接输出数据分组。进行接收的数据连接可以是到任何类型的数据网络或者到任何类型的计算机的任何类型的数据连接(例如,有线或无线连接),并使用任何已知的数据通信类型和协议。通常,数据连接是计算机总线(例如,在计算机内部使用的总线类型)或者到计算机网络、WAN、LAN、WWW等的以太网连接。
在特别优选的实施例中,不同分析单元的预定时间段是不同的。这通常将是由于以下事实:在分析单元之间,从数据连接至分析单元的第一接收装置和第二接收装置的数据分组传输的延迟中的差异可以是不同的。优选地,特别是在以上的菊花链示例中,时间段随着位于实际的分析单元和第二分析单元之间的分析单元的数目而增大。一个示例是:在第一装置中从数据连接接收数据分组的所有分析单元中,可以存在着相同的延迟d-link。然而,第二装置接收到的数据分组将取决于分析单元在菊花链上的位置而不同。在分析单元的分析中以及在数据分组的输出中,可以看到延迟d-det。同样地,接收到的分组可能已经在等待了。下面将处理这种特别的情况。
因而,例如,不是第一分析单元的任何分析单元会经历或者预期第二装置接收到的数据分组所通过的分析单元的数目的d-det倍的延迟、以及由进行接收的分析单元从数据连接接收数据分组的延迟所导致的延迟d-link。在该方面,在第一装置上接收到的数据分组的延迟仅是d-link。
然后,可以将预定的时间段选择为差,例如从数据连接到分析单元的第一装置和该单元的第二装置的数据分组的传输时间中的最大延迟。
在一个实施例中,每个分析单元包括用于分析接收到的分组并从中推导出由控制单元使用的信息的装置。在当前上下文中,分析可以是根据数据分组中包含的数据对特定值、情况、类型、标识等的确定。分析可以或者不可以导致数据分组的内容的改变,以及可以在确定装置中使用数据分组中或者数据分组的任何类型的信息。
推导出的信息可以是从数据分组直接拷贝或读取的数据/信息,或者可以是与例如数据分组的类型或数据分组所遵循的标准有关的数据。类型或标准可以根据数据分组进行直接推导(例如当分组的特定数据项标识了类型/标准时),或者可以根据从数据分组中推导出的数据进行推导(例如,基于对数据分组的数据项的类型和位置的识别,以及后续对数据分组的类型或标准的确定,其中,可以在这种位置处找到这种数据)。
可以使用该信息来确定数据分组是否属于已知的数据分组流,并在后续,可以根据相同流的多个数据分组推导信息,以例如确定这些分组在流中的相对位置。
在该情况下,会希望输出装置适于将推导出的信息与数据分组一起输出,第二接收装置适于也接收与每个接收到的数据分组有关的推导出的信息。通过这种方式,可以在后续分析单元中重复使用推导出的信息。
存在多个例外,其中,可能不希望控制单元等待,即使仅接收到单个数据分组。在一个情况下,控制单元适于存储在顺序上最后一个输出的数据分组的位置,以及如果接收到的数据分组具有在顺序上下一个相邻位置,则指示输出装置输出该数据分组。在该情况下,数据分组在排序中的实际定位是可根据该数据分组推导出的。在一个情况下,当数据分组具有连续的/顺序的序列号,其中没有编号丢失时,这是可能的。另一情况是:在数据分组中存在标识相邻的、之前或之后的数据分组的其他数据。在该情况下,可以存储最后一个输出的分组的序列号,以及如果接收到序列中的下一个分组,可以将其没有延迟地输出。
在第二情况下,控制单元适于在预定的时间段内或之后,在第一接收装置和第二接收装置中的另一个还没有接收到数据分组时,输出对应的信息,控制装置适于在第二时间点处,当具有来自第二接收装置的数据分组而没有来自第一接收装置的数据分组时,指示输出装置输出数据分组,而无需等待。在本上下文中,“无需等待”意味着不预期有延迟。
然后,如果数据分组已经在一个控制单元处等待,那么在后续的分析单元中,可以没有进一步的延迟地输出该数据分组。其原因是,一旦延迟,当由后续分析单元接收该数据分组时,可以假定该数据分组确保在顺序上在分析单元接收到的任何将来的数据分组之前。
自然,在第二时间点处,在当来自第二接收装置的数据分组已正在等待时得到该数据分组的时候,以及当已接收到来自第一接收装置的数据分组并且该数据分组正在等待时,可以确定这两个数据分组的排序。如果来自第一接收装置的数据分组在顺序中早于从第二接收装置接收到的数据分组,则可以按照该顺序输出这两个数据分组。在这方面,即使将来自第一接收装置的数据分组设置为等待,也没有进一步延迟地输出该数据分组。
另一方面,如果在第二时间点处,来自第一接收装置的数据分组正在等待,并在顺序上比来自第二接收装置的数据分组(该数据分组再次等待)更晚,则等待中的数据分组可以保持等待,除非其在顺序上是下一个分组(如上所述,在可以对此进行确定的情况下)。在后一情况下,可以按照正确的顺序输出这两个分组,而没有进一步的延迟。
优选地,如上所述,控制单元适于在多个不同的时间点处执行确定和指示。从数据连接输出的数据分组的数目可以非常大,以使得在延长的时间段中期望确定和操作。优选地,周期性地执行每个控制单元中的确定,或者简单地,操作在一旦结束之后再次开始(循环)。应该注意到,单独的控制单元的操作不需要以任何方式同步。
在另一方面,本发明涉及组件,该组件包括根据第一方面的设备以及存储器,适于对来自存储器的数据分组进行读取/解除队列的第一装置。
自然,读取/解除队列将取决于存储器以及数据分组在存储器中存储的方式。优选地,如下将要更详细地描述的,将数据分组存储在队列中。通过该方式,可以通过指针来标识要读取/解除队列的下一个数据分组的地址,后续对指针进行更新,以再次指向要解除队列的下一个数据分组。
备选地,可以将数据分组存储在已链接的列表中,其中,每个“链接”包括数据分组和下一个链接的地址。或者,可以将数据分组的地址存储在单独的存储器中,或者存储器的单独部分中。可以按照或不按照所希望的顺序来存储数据分组。
在该情况下,优选地,存储器在队列中保持多个数据分组以及与队列的两个端点指针有关的信息,第一装置适于读取和更新这些指针中的至少一个。因而,一个指针将指向要解除队列的下一个数据分组,以及另一个指针可以指向队列中存储数据分组的下一个位置。可以由对数据分组进行读取/解除队列的分析单元来使用和更新读取指针,以及可以由将数据分组写到队列的进程、CPU、计算机、服务器或者分组单元来更新写指针。还可以将指针存储在存储器中,因而指针对分析单元是可用的。
优选地,由DMA来执行对在存储器中的数据的所有读取/解除队列/更新。
本发明的第三方面涉及对从数据连接接收到的多个数据分组进行排序和输出的方法,该方法包括以预定顺序输出数据分组和操作多个分析单元,每个分析单元:
从数据连接接收第一数据分组,
从另一分析单元接收第二数据分组,
输出第一数据分组和第二数据分组,输出步骤包括:
在一个时间点处,确定是否已经接收到第一数据分组和/或第二数据分组,
如果在所述时间点处,已经接收到第一数据分组和第二数据分组,则确定第一数据分组和第二数据分组的顺序,并以所确定的顺序输出第一数据分组和第二数据分组,
如果在该时间点处,仅接收到第一数据分组或第二数据分组,则等待预定的时间段,以及
如果在该预定的时间段内或者之后,已接收到第一数据分组和第二数据分组中的另一个,则确定先接收到的数据分组和后接收到的数据分组的顺序,并以所确定的顺序输出第一数据分组和第二数据分组,
否则,在该预定的时间段之后,输出接收到的数据分组。
如上所述,对来自数据连接(优选地,存储器)的数据分组的接收、读取或解除队列将取决于如何输出数据分组,或者例如如何将数据分组存储在存储器中。然而,在分析单元和连接/存储器之间,在单独的分析单元之间,并且在从分析单元输出数据时,如任何已知的数据通信方式一样,可以使用任何已知的传输存储/读取/解除队列技术。
如上所述,分组的排序是:在其中对数据分组进行输出/读取/解除队列。自然,可以将数据分组存储在存储器中,并以特定顺序输出,然而这绝不是必要的。
在一个情况下,多个分析单元位于具有两端的菊花链中,第一分析单元不从位于一端的另一分析单元接收数据分组,第二分析单元向位于另一端的接收数据连接输出数据分组。因而,除了一个分析单元之外的所有分析单元可以具有与剩下的分析单元相比不同的输出装置,或者分析单元之间并且在该剩下的分析单元之外的数据通信可以是相同的。备选地,分析装置可以适于使用多个协议来输出数据分组。
因而,在到达第二分析单元并从中输出之前,第一分析单元接收到的数据分组将通过所有其他分析单元。
优选地,如上进一步所述的,不同分析单元的预定时间段是不同的。优选地,时间段随着位于实际的分析单元和第二分析单元之间位于例如菊花链上的分析单元的数目而增大。一般而言,时间段可以随着实际的分析单元所接收到的数据分组所经过的分析单元的数目而增大。
如上所述,以下步骤是所希望的:分析第一数据分组并从中推导输出步骤的确定所使用的信息。在该情况下,优选地,输出步骤包括将推导出的信息与第一数据分组一起输出,接收步骤还包括接收与每个接收到的数据分组有关的推导出的信息。可以在后续分析中使用该信息,而不是从数据分组中重新推导出该信息。
如所提到的,可以存在例外:不希望等待预定的时间段,而是没有延迟地输出数据分组。一个这种情况是:其中,输出步骤包括:存储按照顺序的最后一个输出数据分组的位置,以及如果接收到具有按照所述顺序的下一个相邻位置的第一数据分组或第二数据分组,则输出所述数据分组。
另一情况是:其中,当在预定的时间段内或之后没有接收到第一数据分组或第二数据分组时,将对应的信息与数据分组一起输出,输出步骤包括:在第二时间点处,当已经接收到第二数据分组以及对应信息而没有第一数据分组时,输出接收到的第二数据分组(优选地,再次与对应信息一起),而无需等待。在该情况下,可以将第二数据分组与任何第一数据分组相比较。如果第一数据分组在顺序中较早,则可以没有延迟并在第二数据分组之前输出第一数据分组。备选地,如果第一数据分组在顺序上较晚并且正在等待,则可以输出第二数据分组,以及可以允许第一数据分组等待,就像是没有输出第二数据分组一样。
自然,因为从连接接收数据分组可以是在延长的时间段上发生的过程,如果不是持续的,分析单元优选适于在多个不同的时间点处执行该确定和指示。
优选地,接收步骤包括对来自存储器的数据分组进行读取/解除队列,以及具体地,当存储器保存队列中的多个数据分组以及与该队列的两个端点指针有关的信息时,读取/解除队列步骤包括读取和更新指针中的至少一个。
附图说明
下面将参考附图来描述优选的实施例,其中:
图1示出了仅使用数据分组的发送的实施例,
图2示出了数据分组的接收、分析和存储,以及
图3示出了图1和2的系统的组合。
具体实施方式
在图1中示出了组件10的实施例,其中,多个适配器12对来自公共数据连接或任何类型的数据存储器30的数据分组进行读取、接收或解除队列。
所读取/解除队列的数据分组被馈送到连接30,或者按照希望从适配器12输出数据分组的顺序,从存储器30的队列中读出该所读取/解除队列的数据分组。然而,如下面将要进一步描述的,适配器适于自己确定该顺序,或者至少数据分组在该顺序中的相对位置。
多种类型的数据传递(例如文件传递、VoIP等等)包括以特定的顺序输出并希望以相同的顺序接收到并使用的多个数据分组的交换。为此,应该保持分组的排序。在一些情况下,分组在该顺序中的位置可以是可根据分组确定的,或者可以确定按照顺序的两个分组的相对位置。在其他情况下,希望通过提供对分组的接收的时间戳记(或者简单地,相对编号)来保持该排序,并可能以(根据时间戳)接收的顺序将分组(或者与时间戳一起)存储在队列中,以使得可以根据队列中的排序,或者根据数据分组中存储或与数据分组一起存储的时间戳来推导出输出的顺序。
因而,也可以将数据分组的地址或时间戳等与数据分组一起向单独的适配器12传递。
适配器12包括传递单元28,适于对来自数据连接或存储器30的数据帧进行读取或解除队列。在一个情况下,由DMA来处理读取或解除队列,由此促进了数据分组的直接读取。在该情况下,传递单元28知道数据分组的实际地址。可以从存储器30的区域中接收该地址,在该区域中,适配器12在对数据帧进行解除队列或读取时更新地址或指针。正常来说,当对数据帧进行解除队列时,在队列中提供数据帧,以使得可以更新读取指针。此外,处理或处理器(或者适配器12)可以将数据帧添加到队列或数据存储器30中,并因而更新地址或指针,以间接通知适配器已经将更多数据添加到存储器30。
在已读取数据分组时,将其传递到分析单元26。可以执行任何类型的处理或分析。在一个情况下,分组在排序中的位置是可以通过数据分组的内容确定的。可以通过分析单元26推导出该内容。
此外,可以进行不与数据分组的排序相结合、而是与其内容(接收机、发送机、有效载荷等)相结合的其他类型的分析。注意,根本不需要分析。
将数据分组传递到合并单元24。可看出,中间的适配器12’和上部的适配器12的合并单元24从较低的适配器12’/12”以及适配器自己的分析单元26接收数据帧。下部的适配器12”的合并单元24仅向中间的适配器12转发接收到的数据分组。
一般而言,合并单元从较低的适配器12/12’和分析单元接收数据分组,并确定这些分组的顺序,以及以正确的顺序输出分组。
要注意到,中间的适配器12’的合并单元24不接收所有的数据分组,因而不被数据分组的顺序中存在“洞”这一事实转移注意力。以正确的顺序向上部的适配器12转发可用的数据分组。
所有合并单元24的操作可以是相同的,并旨在对由此接收到的分组进行排序。
一般而言,如果已从分析单元26和位于低处的适配器12’/12”接收到数据分组,则合并单元24将确定这两个数据分组的顺序,并以该顺序输出这两个数据分组。
然而,如果仅有单个数据分组可用,合并单元24将等待预定的时间段。这可以是由于从连接或存储器30经由不同的可能通道向合并单元24传递的数据中可能存在的不同延迟所造成的。自然,任何合并单元24可以从有关的分析单元26接收数据分组。然而,可以从位于低处的适配器12’/12”接收数据分组,位于低处的适配器12’/12”再次可以经由分析单元或再次从位于低处的适配器接收到数据分组。因而,优选地,适配器在所示出的菊花链中的位置越高,或者当前适配器可以经由其来接收数据分组的可能的适配器的数量越高,等待时间段越长。
在一个情况下,在从通道/存储器30直接接收数据分组时,两个合并单元24之间经历的延迟可以是50-500ns,例如,100-250ns。一个合并单元24中用于数据分组的分析并对其进行转发的时延可以是10-100ns的数量级,例如,25-75ns。因而,适配器12’可以等待例如500ns,而适配器12可以等待例如500+50ns。如果在图1中将附加的适配器设置得比适配器12还高,则该适配器可以等待例如500+50+50ns。
如果从较低的合并单元24和分析单元26中的另一个接收到数据分组,则不再需要等待,并促进了根据该顺序的输出。
如果在等待时间段内没有接收到其他数据分组,则输出接收到的数据分组。
因而,发生局部的排序,同时进行等待,以确保在顺序上实际更早的另一数据分组未被接收到并未被乱序转发。
自然,当已等待了所设置的时间段时,现在确定或假设在合并单元24中对数据分组进行了充分的延迟,以使得即使该数据分组是唯一可用的分组,也不需要该数据分组在下一个合并单元24中等待。因而优选地,当数据分组已经等待了一个合并单元24的完整时间段时,对其进行相应地标记,并在后续没有延迟地从后续的位于更高处的合并单元24输出,当然,与任何可用的数据分组一起按顺序输出。如果数据分组在后续的合并单元24中等待,如果其顺序比接收到的已标记的数据分组低,则可以立即输出该数据分组。如果等待的数据分组在顺序中较高,则其可以与所标记的数据分组的输出无关地保持等待。
此外,合并单元24可以存储在顺序上最后一个输出的数据分组的位置。当分组例如具有序列号时,这是可能的。在该情况下,如果接收到在序列中具有下一个编号的单个可用的数据分组,则不需要等待该时间段,因为必然不会接收到在顺序上更早的其他数据分组,因而可以没有延迟地输出该数据分组。
使用标准的PHY22向外部接收数据连接14(例如向或者经由WWW)输出要从上部的分析器12(所谓的主适配器12)的合并单元24输出的数据分组。
图2示出了使用相同的整体结构来接收、分析和存储来自连接14的数据分组。在该实施例10’中,数据分组被PHY22接收到,并向溢出单元24’转发。溢出单元24’将向主适配器12的分析器26’或传递单元28’转发与分析器26’/传递单元28’所能够处理的数据分组一样多的数据分组。如果接收到更多的数据分组,则这些更多的数据分组对执行相同功能的下一个适配器12’的溢出单元24’来说是“溢出的”,依此类推。
如上所述,可以通过对分组进行时间戳记来登记对通过PHY22接收到的数据分组的排序。
分析器26’中执行的分析可以是使用公共连接或存储器30的任何适合的分析,例如,在向公共存储器转发之前对分组的预分析,处理器/处理(未示出)从该公共连接或存储器30执行附加分析。
一种类型的分析可以是确定用于在存储器30中存储数据分组的地址。
然后,使用存储单元28’将已分析的数据分组存储在存储器中,或者简单地输出到数据连接。
在图3中,将图1和图2的实施例组合到单个实施例10”中。
注意,一般来说,所有的适配器12可以是相同的,并且可以作为单独的电子电路提供,或者在相同的电路中提供。
可以将适配器(具体地,主适配器12)的行为编程在该适配器的软件或硬件中,该适配器在电子上与其他适配器相同。备选地,可以提供两种或更多种不同类型的电路。

Claims (18)

1.一种以预定顺序对从数据连接接收到的多个数据分组进行排序和输出的设备,所述设备包括接收数据连接以及包括第一分析单元和第二分析单元的多个分析单元,所述多个分析单元中除第一分析单元之外的每个分析单元包括:
第一接收装置,用于从所述数据连接接收数据分组,
第二接收装置,用于从另一分析单元接收数据分组,
用于输出所述第一接收装置和所述第二接收装置接收到的数据分组的输出装置,以及
控制单元,包括:
装置,用于:
在一个时间点处,确定所述第一接收装置和/或所述第二接收装置是否已接收到数据分组,
如果在所述时间点处,所述第一接收装置和所述第二接收装置均已接收到数据分组,则确定两个数据分组的顺序,并指示所述输出装置以所确定的顺序输出所述两个数据分组,以及
如果在所述时间点处,仅从所述第一接收装置和所述第二接收装置中的一个接收到数据分组,则等待预定的时间段,以及
如果在所述预定的时间段内或者之后,所述第一接收装置和所述第二接收装置中的另一个已接收到数据分组,则确定两个数据分组的顺序,并指示所述输出装置以所确定的顺序输出所述两个数据分组,
否则,在预定的时间段之后,指示所述输出装置输出接收到的数据分组,
所述第一分析单元包括从所述数据连接接收数据分组的接收装置和输出接收到的分组的输出装置;
其中,所述多个分析单元位于具有两个端的菊花链结构中,所述第一分析单元位于一端,所述第二分析单元位于另一端,
所述多个分析单元中除第二分析单元之外的分析单元的输出装置被配置为:向菊花链上的下一个分析单元的第二接收装置输出数据分组,以及
所述第二分析单元的输出装置被配置为:向所述接收数据连接输出数据分组。
2.根据权利要求1所述的设备,其中,不同分析单元的所述预定的时间段不同。
3.根据前述权利要求中任一项所述的设备,其中,所述多个分析单元中除第一分析单元之外的每个分析单元包括:用于分析所述第一接收装置接收到的数据分组并从中推导出由所述控制单元使用的信息的装置。
4.根据权利要求3所述的设备,其中,所述多个分析单元中除第一分析单元之外的每个分析单元所包括的所述输出装置适于将所推导出的信息与所述第一接收装置接收到的数据分组一起输出,第二接收装置适于也接收与每个数据分组有关的所推导出的信息。
5.根据权利要求1或2所述的设备,其中,所述控制单元适于存储按照所述顺序的最后一个输出数据分组的位置,以及如果所述第一接收装置或所述第二接收装置接收到具有按照所述顺序的下一个相邻位置的数据分组,则指示包括所述第一接收装置或所述第二接收装置的相应分析单元中的输出装置输出所述数据分组。
6.根据权利要求1或2所述的设备,其中,所述控制单元适于在所述预定的时间段内或之后,在所述第一接收装置和所述第二接收装置中的另一个还没有接收到数据分组时,输出控制信息,所述控制单元适于:在第二时间点处,当有来自所述第二接收装置的数据分组而没有来自所述第一接收装置的数据分组时,通过所述控制信息指示包括所述第一接收装置或所述第二接收装置的相应分析单元中的输出装置无需等待而输出数据分组。
7.根据权利要求1或2所述的设备,其中,所述控制单元适于在多个不同的时间点处执行确定和指示。
8.一种对读取和排序数据分组的多个分析单元进行操作的组件,包括根据前述权利要求中任一项所述的设备以及存储器,所述第一接收装置适于对来自所述存储器的数据分组进行读取/解除队列。
9.根据权利要求8所述的组件,其中,所述存储器在队列中保持多个数据分组、以及与所述队列的两个端点指针有关的信息,以及所述第一接收装置适于读取并更新所述指针中的至少一个。
10.一种对从数据连接接收到的多个数据分组进行排序和向接收数据连接输出排序后的数据分组的方法,所述方法包括以预定顺序输出数据分组并操作包括第一分析单元和第二分析单元的多个分析单元,其中所述多个分析单元位于具有两个端的菊花链结构中,所述第一分析单元位于一端,所述第二分析单元位于另一端,
除第一分析单元之外的每个分析单元:
从数据连接接收第一数据分组,
从另一分析单元接收第二数据分组,
输出第一数据分组和第二数据分组,输出步骤包括:
在一个时间点处,确定是否已经接收到第一数据分组和/或第二数据分组,
如果在所述时间点处,已经接收到第一数据分组和第二数据分组,则确定第一数据分组和第二数据分组的顺序,并以所确定的顺序输出第一数据分组和第二数据分组,
如果在该时间点处,仅接收到第一数据分组或第二数据分组,则等待预定的时间段,以及
如果在该预定的时间段内或者之后,已接收到第一数据分组和第二数据分组中的另一个,则确定先接收到的数据分组和后接收到的数据分组的顺序,并以所确定的顺序输出第一数据分组和第二数据分组,
否则,在该预定的时间段之后,输出接收到的数据分组,
所述第一分析单元从所述数据连接接收数据分组,并输出接收到的数据分组,
其中除第二分析单元之外的所有分析单元中的输出步骤包括:向分析单元中的另一分析单元输出数据分组;所述第二分析单元的输出步骤包括:向所述接收数据连接输出数据分组。
11.根据权利要求10所述的方法,其中,不同分析单元的所述预定的时间段不同。
12.根据权利要求10-11中任一项所述的方法,还包括:分析第一数据分组,并从中推导出所述输出步骤的确定所使用的信息。
13.根据权利要求12所述的方法,其中,所述输出步骤包括:将所推导出的信息与第一数据分组一起输出,所述接收第二数据分组的步骤包括:也接收与每个接收到的数据分组有关的所推导出的信息。
14.根据权利要求10-11中任一项所述的方法,其中,所述输出步骤包括:存储按照所述顺序的最后一个输出数据分组的位置,以及如果接收到具有按照所述顺序的下一个相邻位置的第一数据分组或第二数据分组,则输出所述数据分组。
15.根据权利要求10-11中任一项所述的方法,其中,在所述预定的时间段内或之后,在还没有接收到第一数据分组和第二数据分组中的另一个时,将控制信息与数据分组一起输出,所述输出步骤包括:基于所述控制信息,在第二时间点处,当接收到第二数据分组以及所述控制信息而没有第一数据分组时,无需等待而输出接收到的第二数据分组。
16.根据权利要求10-11中任一项所述的方法,其中,除第一分析单元之外的每个分析单元适于在多个不同的时间点处执行确定。
17.根据权利要求10-11中任一项所述的方法,其中,所述接收第一数据分组的步骤包括:对经由数据连接来自存储器的第一数据分组进行读取/解除队列。
18.根据权利要求17所述的方法,其中,所述存储器在队列中保持多个数据分组、以及与所述队列的两个端点指针有关的信息,所述读取/解除队列步骤包括:读取并更新所述指针中的至少一个。
CN201080054597.8A 2009-12-04 2010-12-06 对读取和排序数据分组的多个分析装置进行操作的设备、组件和方法 Active CN102696201B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US26677509P 2009-12-04 2009-12-04
US61/266,775 2009-12-04
PCT/EP2010/068961 WO2011067406A1 (en) 2009-12-04 2010-12-06 An apparatus, an assembly and a method of operating a plurality of analyzing means reading and ordering data packets

Publications (2)

Publication Number Publication Date
CN102696201A CN102696201A (zh) 2012-09-26
CN102696201B true CN102696201B (zh) 2016-01-06

Family

ID=43920323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080054597.8A Active CN102696201B (zh) 2009-12-04 2010-12-06 对读取和排序数据分组的多个分析装置进行操作的设备、组件和方法

Country Status (7)

Country Link
US (1) US20120281703A1 (zh)
EP (1) EP2507949A1 (zh)
JP (1) JP5814253B2 (zh)
KR (1) KR20120102722A (zh)
CN (1) CN102696201B (zh)
BR (1) BR112012013259A2 (zh)
WO (1) WO2011067406A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189433B2 (en) 2012-12-18 2015-11-17 International Business Machines Corporation Tracking a relative arrival order of events being stored in multiple queues using a counter
US9575822B2 (en) 2014-08-01 2017-02-21 Globalfoundries Inc. Tracking a relative arrival order of events being stored in multiple queues using a counter using most significant bit values
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1946054A (zh) * 2006-09-30 2007-04-11 华为技术有限公司 一种高速数据流的传输方法、装置及数据交换设备
CN101199170A (zh) * 2005-04-18 2008-06-11 集成装置技术公司 分组处理交换机及其工作方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619497A (en) * 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
JP3743194B2 (ja) * 1999-02-25 2006-02-08 株式会社日立製作所 パケット中継装置
US6907041B1 (en) * 2000-03-07 2005-06-14 Cisco Technology, Inc. Communications interconnection network with distributed resequencing
US6816492B1 (en) * 2000-07-31 2004-11-09 Cisco Technology, Inc. Resequencing packets at output ports without errors using packet timestamps and timestamp floors
WO2002030047A2 (en) * 2000-10-04 2002-04-11 Vitesse Semiconductor Corporation A data communication network switching unit having a systolic ring structure
US20030214949A1 (en) * 2002-05-16 2003-11-20 Nadim Shaikli System for reordering sequenced based packets in a switching network
US9699102B2 (en) * 2004-08-09 2017-07-04 Arris Enterprises Llc Very high speed cable modem for increasing bandwidth
US8255599B2 (en) * 2006-03-28 2012-08-28 Integrated Device Technology Inc. Packets transfer device having data absorbing buffers with elastic buffer capacities
US20100241759A1 (en) * 2006-07-31 2010-09-23 Smith Donald L Systems and methods for sar-capable quality of service
JP4593540B2 (ja) * 2006-09-12 2010-12-08 Necエンジニアリング株式会社 Hdlc多重モニター装置
KR100826911B1 (ko) * 2006-12-08 2008-05-06 한국전자통신연구원 광-동축 혼합망에서 케이블 모뎀의 하향 패킷 처리 방법 및장치
JP2008301178A (ja) * 2007-05-31 2008-12-11 Fujitsu Ltd パケットデータ通信方法、無線基地局、および制御局
US8483223B2 (en) * 2008-02-01 2013-07-09 Qualcomm Incorporated Packet transmission via multiple links in a wireless communication system
JP5028431B2 (ja) * 2009-01-07 2012-09-19 株式会社日立製作所 ネットワーク中継装置およびパケット振り分け方法
WO2011038153A1 (en) * 2009-09-23 2011-03-31 Aerovironment, Inc. Active multi-path network redundancy with performance monitoring

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101199170A (zh) * 2005-04-18 2008-06-11 集成装置技术公司 分组处理交换机及其工作方法
CN1946054A (zh) * 2006-09-30 2007-04-11 华为技术有限公司 一种高速数据流的传输方法、装置及数据交换设备

Also Published As

Publication number Publication date
US20120281703A1 (en) 2012-11-08
KR20120102722A (ko) 2012-09-18
EP2507949A1 (en) 2012-10-10
JP5814253B2 (ja) 2015-11-17
CN102696201A (zh) 2012-09-26
BR112012013259A2 (pt) 2016-03-01
WO2011067406A1 (en) 2011-06-09
JP2013513271A (ja) 2013-04-18

Similar Documents

Publication Publication Date Title
CN102754395B (zh) 由中央控制器控制的接收和存储数据分组的设备和方法
CN101102305B (zh) 管理网络信息处理的系统和方法
US6967951B2 (en) System for reordering sequenced based packets in a switching network
CN102763381B (zh) 在通过控制对队列填充程度进行更新来节省带宽的同时接收并存储数据的组件和方法
EP3255553B1 (en) Transmission control method and device for direct memory access
US9602436B2 (en) Switching device
CN103339903B (zh) 用于接收和转发数据分组的装置和方法
CN101902395A (zh) 管理主机上的资源的系统和方法
US8050265B2 (en) Multicast data packet switching method
CN102696201B (zh) 对读取和排序数据分组的多个分析装置进行操作的设备、组件和方法
CN110661725A (zh) 用于对出口上的网络分组进行重排序的技术
US10146468B2 (en) Addressless merge command with data item identifier
EP2790109A1 (en) Switching device, packet control method, and data communication system
US9846662B2 (en) Chained CPP command
US11256550B2 (en) Estimating device and estimating method
US6628669B1 (en) LAN relaying/switching apparatus
US7228375B1 (en) System and method for efficient input/output of a computer system
US9338219B2 (en) Direct push operations and gather operations
CN113553279A (zh) 一种rdma通信加速集合通信的方法及系统
EP3965373B1 (en) Abnormality detection method and abnormality detection program
CN117278474A (zh) 一种卸载拥塞控制的方法及装置
JP2001127767A (ja) パケット転送システム及びそれを用いたパケット転送方法
CN103428110A (zh) 实时传输协议数据包的接收处理方法及装置
US7894452B2 (en) Method and apparatus for the creation of TCP segments by simultaneous use of computing device components
JPH01128638A (ja) ネツトワークシステム通信制御方式

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