[go: up one dir, main page]

CN102204183A - Message order-preserving processing method, order-preserving coprocessor and network equipment - Google Patents

Message order-preserving processing method, order-preserving coprocessor and network equipment Download PDF

Info

Publication number
CN102204183A
CN102204183A CN2011800005300A CN201180000530A CN102204183A CN 102204183 A CN102204183 A CN 102204183A CN 2011800005300 A CN2011800005300 A CN 2011800005300A CN 201180000530 A CN201180000530 A CN 201180000530A CN 102204183 A CN102204183 A CN 102204183A
Authority
CN
China
Prior art keywords
preserving
order
message
network
network message
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.)
Pending
Application number
CN2011800005300A
Other languages
Chinese (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102204183A publication Critical patent/CN102204183A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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

Landscapes

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

Abstract

本发明实施例提供一种报文保序处理方法、保序协处理器和网络设备。报文保序处理方法,包括:接收线程发送的网络报文,所述网络报文中包含报文标识;确定与所述报文标识对应的保序流,所述保序流与网络设备的一条通道对应且所述保序流中包含的报文处理顺序为网络报文进入所述通道的先后顺序;根据所述报文处理顺序,对所述网络报文进行保序处理。本发明实施例可以在多线程异步处理报文的情况下,对报文进行保序处理。

Figure 201180000530

Embodiments of the present invention provide a packet order-preserving processing method, an order-preserving coprocessor, and a network device. The message order-preserving processing method includes: receiving a network message sent by a thread, wherein the network message includes a message identifier; determining an order-preserving flow corresponding to the message identifier, and the order-preserving flow and the network device's The packet processing sequence corresponding to a channel and included in the sequence-preserving flow is the sequence in which network packets enter the channel; according to the packet processing sequence, the sequence-preserving processing is performed on the network packets. In the embodiment of the present invention, in the case of asynchronous processing of messages by multiple threads, the order-preserving processing of messages can be performed.

Figure 201180000530

Description

报文保序处理方法、保序协处理器和网络设备Packet order-preserving processing method, order-preserving coprocessor and network device

技术领域technical field

本发明实施例涉及通信领域,尤其涉及一种报文保序处理方法、保序协处理器和网络设备。The embodiments of the present invention relate to the field of communications, and in particular, to a packet order-preserving processing method, an order-preserving coprocessor, and a network device.

背景技术Background technique

随着互联网、移动通信网络等技术的不断发展,报文的传输可靠性也亟待提高,以尽可能减小网络传输后报文乱序的可能性。With the continuous development of technologies such as the Internet and mobile communication networks, the reliability of packet transmission also needs to be improved urgently, so as to minimize the possibility of packet disorder after network transmission.

所谓报文乱序,是指发送端发出的报文序列,经若干中间节点转发,但没有按照原始顺序到达目的端。报文乱序会严重影响某些网络应用的性能。比如传输控制协议(Transmission Control Protocol,以下简称:TCP)连接因为乱序导致大量的重传;实时压缩协议(Compressed Real-Time Protocol,以下简称:CRTP)业务会因为乱序而导致频繁的发送FULL_HEADER报文以同步上下文,从而导致压缩效率大大降低。因此,为了提高网络运行效率,现有通信标准要求网络设备,例如路由器,能够尽量避免报文乱序。The so-called packet out-of-order refers to the packet sequence sent by the sender, which is forwarded by several intermediate nodes, but does not reach the destination in the original order. Packet out-of-order will seriously affect the performance of some network applications. For example, transmission control protocol (Transmission Control Protocol, hereinafter referred to as: TCP) connection causes a large number of retransmissions due to out-of-order; real-time compression protocol (Compressed Real-Time Protocol, hereinafter referred to as: CRTP) business will frequently send FULL_HEADER due to out-of-order packets to synchronize the context, resulting in greatly reduced compression efficiency. Therefore, in order to improve network operation efficiency, existing communication standards require network devices, such as routers, to avoid packet disorder as much as possible.

但是,目前的网络设备大多采用多线程异步并行处理报文,而不同线程处理报文的速度受众多因素影响,从而使得报文保序的处理更加复杂。因此,如何在多线程异步处理报文的情况下,对报文进行保序处理成为亟待解决的问题。However, most current network devices use multiple threads to process packets asynchronously and in parallel, and the speed at which different threads process packets is affected by many factors, which makes the processing of packet order preservation more complicated. Therefore, in the case of multi-threaded asynchronous processing of messages, how to process messages in order has become an urgent problem to be solved.

发明内容Contents of the invention

本发明实施例提供一种报文保序处理方法、保序协处理器和网络设备,以在多线程异步处理报文的情况下,对报文进行保序处理。An embodiment of the present invention provides a message order-preserving processing method, an order-preserving coprocessor, and a network device, so as to perform order-preserving processing on messages in the case of multi-thread asynchronously processing messages.

本发明实施例提供一种报文保序处理方法,包括:An embodiment of the present invention provides a packet order-preserving processing method, including:

接收线程发送的网络报文,所述网络报文中包含报文标识;Receiving the network message sent by the thread, the network message includes a message identifier;

确定与所述报文标识对应的保序流,所述保序流与网络设备的一条通道对应且所述保序流中包含的报文处理顺序为网络报文进入所述通道的先后顺序;Determining an order-preserving flow corresponding to the message identifier, the order-preserving flow corresponding to a channel of the network device and the message processing sequence contained in the order-preserving flow is the order in which network messages enter the channel;

根据所述报文处理顺序,对所述网络报文进行保序处理。Perform sequence-preserving processing on the network packets according to the packet processing sequence.

本发明实施例提供一种保序协处理器,包括:An embodiment of the present invention provides an order-preserving coprocessor, including:

接收模块,用于接收线程发送的网络报文,所述网络报文中包含报文标识;A receiving module, configured to receive a network message sent by a thread, where the network message includes a message identifier;

确定模块,用于确定与所述报文标识对应的保序流,所述保序流与网络设备的一条通道对应且所述保序流中包含的报文处理顺序为网络报文进入所述通道的先后顺序;A determining module, configured to determine an order-preserving flow corresponding to the message identifier, the order-preserving flow corresponds to a channel of a network device and the message processing sequence contained in the order-preserving flow is that network messages enter the The sequence of the channels;

保序处理模块,用于根据所述报文处理顺序,对所述网络报文进行保序处理。The sequence-preserving processing module is configured to perform sequence-preserving processing on the network packets according to the packet processing sequence.

本发明实施例提供一种网络设备,包括:依次连接的网络处理器单元、保序协处理器以及协处理器,所述保序协处理器采用上述的保序协处理器。An embodiment of the present invention provides a network device, including: a sequentially connected network processor unit, an order-preserving coprocessor, and a coprocessor, and the order-preserving coprocessor adopts the above-mentioned order-preserving coprocessor.

本发明实施例,可以根据线程发送的网络报文中包含的报文标识确定对应的保序流,根据保序流中包含的网络报文进入通道的先后顺序,对网络报文进行保序处理。因此,即使由于各线程的异步并行处理使得网络报文乱序,通过保序流也可以将网络报文的发送顺序排序为与网络报文进入网络设备通道的顺序一致,从而使得网络报文可以按照进入通道的先后顺序依次被发送。In the embodiment of the present invention, the corresponding order-preserving flow can be determined according to the message identifier contained in the network message sent by the thread, and the order-preserving process is performed on the network messages according to the order in which the network messages included in the order-preserving flow enter the channel . Therefore, even if the network packets are out of order due to the asynchronous parallel processing of each thread, the sending order of the network packets can be sorted to be consistent with the order in which the network packets enter the channel of the network device through the order-preserving flow, so that the network packets can They are sent sequentially in the order in which they entered the channel.

附图说明Description of drawings

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description These are some embodiments of the present invention. For those skilled in the art, other drawings can also be obtained according to these drawings without any creative effort.

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description These are some embodiments of the present invention. For those skilled in the art, other drawings can also be obtained according to these drawings without any creative effort.

图1为本发明报文保序处理方法一个实施例的流程图;Fig. 1 is a flow chart of an embodiment of the message order preserving processing method of the present invention;

图2为本发明报文保序处理方法另一个实施例的流程图;Fig. 2 is a flow chart of another embodiment of the message order preserving processing method of the present invention;

图3为图2所示实施例中生成的报文标识与保序流之间的对应关系的一种结构示意图;Fig. 3 is a kind of schematic structural diagram of the corresponding relationship between the message identifier and the order-preserving flow generated in the embodiment shown in Fig. 2;

图4为本发明报文保序处理方法再一个实施例的流程图;Fig. 4 is a flow chart of another embodiment of the message order preserving processing method of the present invention;

图5为图4所示实施例在一种场景下的处理过程示意图;FIG. 5 is a schematic diagram of a processing procedure of the embodiment shown in FIG. 4 in a scenario;

图6为本发明保序协处理器一个实施例的结构示意图;FIG. 6 is a schematic structural diagram of an embodiment of the order-preserving coprocessor of the present invention;

图7为本发明保序协处理器另一个实施例的结构示意图;FIG. 7 is a schematic structural diagram of another embodiment of the order-preserving coprocessor of the present invention;

图8为本发明保序协处理器再一个实施例的结构示意图;FIG. 8 is a schematic structural diagram of another embodiment of the order-preserving coprocessor of the present invention;

图9为本发明网络设备一个实施例的结构示意图。FIG. 9 is a schematic structural diagram of an embodiment of a network device according to the present invention.

具体实施方式Detailed ways

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。In order to make the purpose, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments It is a part of embodiments of the present invention, but not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without creative efforts fall within the protection scope of the present invention.

图1为本发明报文保序处理方法一个实施例的流程图,如图1所示,本实施例的方法可以包括:Fig. 1 is a flow chart of an embodiment of the message order preserving processing method of the present invention, as shown in Fig. 1, the method of this embodiment may include:

步骤101、接收线程发送的网络报文,所述网络报文中包含报文标识。Step 101, receiving a network message sent by a thread, where the network message includes a message identifier.

举例来说,保序协处理器(Order Co-Processor,以下简称:OCP)可以接收线程发送的网络报文,该网络报文中可以包含报文标识,本实施例不限定该报文标识的具体形式。本实施例中的OCP可以使用专用集成电路(Application Specific Intergrated Circuits,以下简称:ASIC)技术实现,可以与网络处理器单元(Network Processer Units,以下简称:NPU)一起封装。For example, an order co-processor (Order Co-Processor, hereinafter referred to as: OCP) can receive a network message sent by a thread, and the network message can include a message identifier, and this embodiment does not limit the message identifier. Specific forms. The OCP in this embodiment can be implemented using application specific integrated circuits (Application Specific Integrated Circuits, hereinafter referred to as: ASIC) technology, and can be packaged together with network processor units (Network Processer Units, hereinafter referred to as: NPU).

具体来说,网络设备,例如路由器,其各通道可以接收其它网络设备发送的网络报文,然后各通道的网络报文可以被分配给多个线程并行处理,每个线程同时只能持有处理一个网络报文。网络报文进入各通道时是具有先后顺序的,也即在各通道中传输时,网络报文的先后顺序是正确的,但是各通道的报文被分配到多个线程进行处理时,由于各线程的处理受诸多因素影响,从各线程发出的网络报文则是乱序的,因此,OCP接收到的网络报文是乱序的。Specifically, each channel of a network device, such as a router, can receive network packets sent by other network devices, and then the network packets of each channel can be assigned to multiple threads for parallel processing, and each thread can only hold and process a network message. When network packets enter each channel, there is a sequence, that is, when they are transmitted in each channel, the sequence of network packets is correct, but when the packets of each channel are assigned to multiple threads for processing, due to the The processing of threads is affected by many factors, and the network packets sent from each thread are out of order. Therefore, the network packets received by OCP are out of order.

步骤102、确定与所述报文标识对应的保序流,所述保序流与网络设备的一条通道对应且所述保序流中包含的报文处理顺序为网络报文进入所述通道的先后顺序。Step 102: Determine the sequence-preserving flow corresponding to the packet identifier, the sequence-preserving flow corresponds to a channel of the network device, and the packet processing sequence contained in the sequence-preserving flow is the order in which network packets enter the channel sequence.

具体来说,本实施例可以包含多条保序流,每条保序流均与网络设备的一条通道对应,因此,本实施例中的保序流的条数可以等于网络设备的通道数。对于每条保序流来说,其中包含的报文处理顺序可以为网络报文进入该通道的先后顺序。举例来说,以第N个通道对应的保序流n来说,该保序流中可以包括进入第N个通道中的全部网络报文的报文标识,且报文标识可以按照对应的网络报文进入第N个通道的先后顺序排列。Specifically, this embodiment may include multiple order-preserving streams, and each order-preserving stream corresponds to a channel of the network device. Therefore, the number of order-preserving streams in this embodiment may be equal to the number of channels of the network device. For each sequence-preserving flow, the packet processing sequence contained therein may be the sequence in which network packets enter the channel. For example, taking the order-preserving flow n corresponding to the Nth channel as an example, the order-preserving flow may include the message identifiers of all network packets entering the Nth channel, and the message identifiers may be based on the corresponding network Packets are arranged in the order in which they enter the Nth channel.

举例来说,OCP可以监控各通道接收的报文,对于每个通道来说,OCP可以记录网络报文接收的先后顺序,根据该先后顺序,OCP即可生成该通道对应的保序流,需要说明的是,本实施例并不限定OCP如何获知网络报文进入通道的先后顺序,本领域技术人员还可以采用任意手段对网络报文进入通道的先后顺序进行监控并通知OCP。因此,利用各保序流对网络报文进行保序处理时,可以将乱序的网络报文恢复到网络报文进入通道的先后顺序。For example, OCP can monitor the packets received by each channel. For each channel, OCP can record the sequence in which network packets are received. According to the sequence, OCP can generate the sequence-preserving flow corresponding to the channel. It should be noted that this embodiment does not limit how the OCP learns the order in which network packets enter channels, and those skilled in the art may use any means to monitor the order in which network packets enter channels and notify the OCP. Therefore, when using the sequence-preserving streams to perform sequence-preserving processing on the network packets, the out-of-sequence network packets can be restored to the sequence in which the network packets entered the channel.

在具体实现时,OCP可以从各网络报文中提取报文标识,对于每个报文标识来说,OCP可以确定该报文标识所在的保序流,从而可以确定该报文标识对应的通道,也即可以确定该网络报文对应的保序流或者网络报文进入的通道。In actual implementation, OCP can extract the message ID from each network message. For each message ID, OCP can determine the sequence-preserving flow where the message ID is located, so as to determine the channel corresponding to the message ID. , that is, the sequence-preserving flow corresponding to the network message or the channel through which the network message enters can be determined.

由此可知,在执行步骤102之后,OCP可以将从各线程接收的乱序的网络报文分别对应到各个保序流。It can be seen that, after step 102 is executed, the OCP can map the out-of-order network packets received from each thread to each order-preserving flow.

步骤103、根据所述报文处理顺序,对所述网络报文进行保序处理。Step 103: Perform sequence-preserving processing on the network packets according to the packet processing sequence.

对于与每个通道对应的网络报文来说,OCP均可以根据该通道对应的保序流中包含的报文处理顺序,对网络报文进行保序处理,即按照保序流中记录的网络报文进入通道的先后顺序,依次发送网络报文,从而使得经过保序处理的网络报文的发送顺序与该网络报文进入通道的顺序一致。For the network packets corresponding to each channel, OCP can process the network packets according to the packet processing sequence contained in the sequence-preserving flow corresponding to the channel, that is, according to the network packets recorded in the sequence-preserving flow The order in which the packets enter the channel is to send the network packets sequentially, so that the sending order of the network packets that have been processed in order is consistent with the order in which the network packets enter the channel.

本实施例可以根据线程发送的网络报文中包含的报文标识确定对应的保序流,根据保序流中包含的网络报文进入通道的先后顺序,对网络报文进行保序处理。因此,即使由于各线程的异步并行处理使得网络报文乱序,通过保序流也可以将网络报文的发送顺序排序为与网络报文进入网络设备通道的顺序一致,从而使得网络报文可以按照进入通道的先后顺序依次被发送。In this embodiment, the corresponding order-preserving flow can be determined according to the message identifier included in the network message sent by the thread, and the order-preserving process is performed on the network messages according to the order in which the network messages included in the order-preserving flow enter the channel. Therefore, even if the network packets are out of order due to the asynchronous parallel processing of each thread, the sending order of the network packets can be sorted to be consistent with the order in which the network packets enter the channel of the network device through the order-preserving flow, so that the network packets can They are sent sequentially in the order in which they entered the channel.

图2为本发明报文保序处理方法另一个实施例的流程图,如图2所示,本实施例的方法可以包括:Fig. 2 is a flow chart of another embodiment of the message order preserving processing method of the present invention, as shown in Fig. 2, the method of this embodiment may include:

步骤201、根据网络报文进入通道的先后顺序,生成与该通道对应的保序流,并生成所述网络报文的报文标识与所述保序流之间的对应关系。Step 201 : Generate an order-preserving flow corresponding to the channel according to the order in which network packets enter the channel, and generate a correspondence between the message identifiers of the network packets and the order-preserving flow.

OCP可以在网络报文进入通道时,根据网络报文进入通道的先后顺序,生成与该通道对应的保序流,并生成所述网络报文的报文标识与所述保序流之间的对应关系,对于每个保序流来说,网络报文进入通道的先后顺序即为报文处理顺序。本实施例并不限定OCP获知网络报文进入通道的先后顺序的技术手段。举例来说,该保序流可以采用链表结构,图3为图2所示实施例中生成的报文标识与保序流之间的对应关系的一种结构示意图,如图3所示,保序流链表(Link)0~保序流link n分别对应网络设备的n+1个通道,Valid表示对应的保序流link有效,head为表头,tail为表尾,next为下一节点的指针,PKT_ID0~PKT_IDm为网络设备各通道上接收的网络报文的标识。举例来说,图3中的箭头所指示的对应关系即为保序流link1与PKT_ID之间的对应关系,其中,保序流link1的表头在PKT_ID1处,PKT_ID1处的next指针指向PKT_ID3,PKT_ID3处的next指针指向PKT_ID5,PKT_ID5也是保序流link1的表尾,且PKT_ID1、PKT_ID3以及PKT_ID5进入保序流link1对应的通道时具有先后顺序,以此类推,PKT_ID0~PKT_IDm可以对应到各个保序流link。OCP can generate an order-preserving flow corresponding to the channel according to the order in which the network messages enter the channel when network messages enter the channel, and generate a link between the message identifier of the network message and the order-preserving flow Corresponding relationship, for each sequence-preserving flow, the sequence in which network packets enter the channel is the packet processing sequence. This embodiment does not limit the technical means for the OCP to learn the order in which network packets enter the channel. For example, the sequence-preserving flow can adopt a linked list structure. FIG. 3 is a schematic structural diagram of the corresponding relationship between the message identifier and the sequence-preserving flow generated in the embodiment shown in FIG. 2. As shown in FIG. Sequence flow linked list (Link) 0~sequence-preserving flow link n correspond to n+1 channels of the network device respectively, Valid indicates that the corresponding sequence-preserving flow link is valid, head is the head of the table, tail is the tail of the table, and next is the next node Pointer, PKT_ID0~PKT_IDm are the identifiers of network packets received on each channel of the network device. For example, the corresponding relationship indicated by the arrow in Figure 3 is the corresponding relationship between the sequence-preserving flow link1 and PKT_ID, where the header of the sequence-preserving flow link1 is at PKT_ID1, and the next pointer at PKT_ID1 points to PKT_ID3, PKT_ID3 The next pointer at point points to PKT_ID5, and PKT_ID5 is also the end of the order-preserving stream link1, and PKT_ID1, PKT_ID3, and PKT_ID5 have a sequence when entering the channel corresponding to the order-preserving stream link1, and so on, PKT_ID0~PKT_IDm can correspond to each order-preserving stream link.

步骤202、接收各线程发送的网络报文,所述网络报文中包含报文标识。Step 202, receiving network packets sent by each thread, where the network packets include packet identifiers.

步骤203、缓存各线程发送的网络报文,并生成包含保序处理顺序的保序请求队列,所述保序处理顺序为各线程发送网络报文的先后顺序。Step 203: Buffer the network packets sent by each thread, and generate an order-preserving request queue including an order-preserving processing order, the order-preserving processing order being the sequence in which each thread sends network packets.

具体来说,各线程可以依次向OCP发送保序请求(以下简称:REQ),该REQ中包含网络报文的数据内容等。然后OCP即可缓存各线程发送的REQ,例如,将REQ缓存在BUFFER中。而且,OCP还可以生成保序请求队列,该保序请求队列中包含保序处理顺序,该保序处理顺序为各线程发送网络报文的先后顺序。Specifically, each thread may sequentially send an order-preserving request (hereinafter referred to as REQ) to the OCP, and the REQ includes the data content of the network message and the like. Then the OCP can cache the REQ sent by each thread, for example, cache the REQ in BUFFER. Moreover, the OCP can also generate an order-preserving request queue, which includes an order-preserving processing order, and the order-preserving processing order is the order in which each thread sends network packets.

举例来说,该保序处理顺序可以通过请求描述符(以下简称:REQ-ID)体现。表1为REQ-ID的一种描述方式。For example, the order-preserving processing sequence may be reflected by a request descriptor (hereinafter referred to as: REQ-ID). Table 1 is a description of REQ-ID.

表1Table 1

  NPU_IDNPU_ID   THREAD_IDTHREAD_ID   PKT_IDPKT_ID

其中,NPU_ID为并行处理器的标识,THREAD_ID为每个NPU的线程标识。保序处理队列中的每个REQ_ID可以索引一个REQ,REQ_ID的数目等于协处理器(Co-process,以下简称:COP)的个数与线程数的乘积。Wherein, NPU_ID is the identifier of the parallel processor, and THREAD_ID is the thread identifier of each NPU. Each REQ_ID in the order-preserving processing queue can index one REQ, and the number of REQ_IDs is equal to the product of the number of co-processors (Co-process, COP for short) and the number of threads.

表2为BUFFER中缓存的REQ的一种描述方式。Table 2 is a description of REQ cached in BUFFER.

表2Table 2

  OPOP   ADDRADDR   CTRLCTRL   DATADATA

其中,OP表示REQ的操作类型,例如,读操作的类型为READ、写操作的类型为WRITE,读写操作的类型为WRITE&READ;ADDR表示REQ所访问的外设地址;CTRL用于描述REQ的数据长度,是否保序等控制信息;DATA表示REQ携带的发送给COP的请求数据。Among them, OP represents the operation type of REQ, for example, the type of read operation is READ, the type of write operation is WRITE, and the type of read and write operation is WRITE&READ; ADDR represents the peripheral address accessed by REQ; CTRL is used to describe the data of REQ Control information such as length, order preservation or not; DATA indicates the request data carried by REQ and sent to COP.

BUFFER中缓存的例如表2中的REQ与保序请求队列中例如表1所示的REQ_ID之间具有对应关系。There is a corresponding relationship between the REQ cached in the BUFFER, such as in Table 2, and the REQ_ID in the order-preserving request queue, such as shown in Table 1.

步骤204、根据保序处理顺序,依次确定各网络报文的报文标识对应的保序流。Step 204: Determine the sequence-preserving flow corresponding to the packet identifier of each network packet in sequence according to the sequence-preserving processing sequence.

OCP可以根据保序请求队列中的保序处理顺序,依次处理对应的REQ,也即依次处理网络报文。在具体对网络报文进行处理时,OCP可以根据例如表1中的PKT_ID和保序流之间的对应关系,确定各网络报文对应的保序流。The OCP can sequentially process corresponding REQs according to the sequence-preserving processing sequence in the sequence-preserving request queue, that is, process network packets sequentially. When specifically processing network packets, the OCP may determine the sequence-preserving flow corresponding to each network packet according to, for example, the correspondence between PKT_ID and sequence-preserving flow in Table 1.

步骤205、根据各保序流的报文处理顺序,依次将与各通道对应的网络报文发送到数据总线上。Step 205: Send the network packets corresponding to each channel to the data bus sequentially according to the packet processing sequence of each sequence-preserving flow.

对于对应到每个保序流上的网络报文来说,各网络报文需要按照该保序流中的报文处理顺序依次被发送到数据总线BUS上。For the network packets corresponding to each sequence-preserving flow, each network packet needs to be sent to the data bus BUS sequentially according to the processing sequence of the packets in the sequence-preserving flow.

具体地,对于每个保序流来说,若网络报文的PKT_ID处于该保序流的链表头,则OCP可以发送该网络报文至总线BUS上,然后OCP可以将该保序流中的下一个PKT_ID设为链表头,从而使得下一次保序处理时是针对下一个网络报文。若该网络报文的PKT_ID未处于保序流的链表头,则OCP可以根据保序请求队列中的REQ_ID,对BUFFER中缓存的下一个REQ进行保序处理,而当前的REQ则需要等待下一次轮询。Specifically, for each sequence-preserving flow, if the PKT_ID of the network packet is at the head of the link list of the sequence-preserving flow, the OCP can send the network packet to the bus BUS, and then the OCP can send the PKT_ID of the sequence-preserving flow The next PKT_ID is set as the head of the linked list, so that the next sequence-preserving processing is for the next network message. If the PKT_ID of the network packet is not at the head of the sequence-preserving flow list, OCP can process the next REQ cached in BUFFER according to the REQ_ID in the sequence-preserving request queue, while the current REQ needs to wait for the next one polling.

本实施例,在网络报文进入各通道时,OCP可以针对每个通道记录网络报文进入的先后顺序,OCP可以将各线程发送的网络报文进行缓存,并根据各线程发送的网络报文中包含的报文标识确定对应的保序流,根据保序流中包含的网络报文进入通道的先后顺序,对网络报文进行保序处理。因此,即使由于各线程的异步并行处理使得网络报文乱序,通过保序流也可以将网络报文的发送顺序排序为与网络报文进入网络设备通道的顺序一致,从而使得网络报文可以按照进入通道的先后顺序依次被发送。In this embodiment, when network messages enter each channel, the OCP can record the order in which the network messages enter for each channel, and the OCP can cache the network messages sent by each thread, and according to the network messages sent by each thread The packet identifier contained in the , determines the corresponding sequence-preserving flow, and performs sequence-preserving processing on the network packets according to the order in which the network packets included in the sequence-preserving flow enter the channel. Therefore, even if the network packets are out of order due to the asynchronous parallel processing of each thread, the sending order of the network packets can be sorted to be consistent with the order in which the network packets enter the channel of the network device through the order-preserving flow, so that the network packets can They are sent sequentially in the order in which they entered the channel.

对于上述图1或图2所示的实施例来说,其既可以针对NPU侧的线程发送的网络报文进行保序处理,也可以针对COP侧的线程发送的网络报文进行保序处理。For the above-mentioned embodiment shown in FIG. 1 or FIG. 2 , it can not only perform order-preserving processing on network packets sent by threads on the NPU side, but also perform order-preserving processing on network packets sent by threads on the COP side.

在一种应用场景中,NPU侧的线程发送的网络报文需要COP侧的线程发送相应的响应报文。因此,OCP可以针对NPU侧的线程发送的网络报文进行保序处理,在COP侧的线程发送相应的响应报文时,OCP可以针对COP侧的线程发送的响应报文再次进行保序处理。In an application scenario, the network message sent by the thread on the NPU side requires the thread on the COP side to send a corresponding response message. Therefore, the OCP can perform order-preserving processing on the network packets sent by the thread on the NPU side, and when the thread on the COP side sends a corresponding response message, the OCP can perform order-preserving processing on the response message sent by the thread on the COP side again.

图4为本发明报文保序处理方法再一个实施例的流程图,图5为图4所示实施例在一种场景下的处理过程示意图,如图4和图5所示,不失一般性地,本实施例仅示出了三个线程,即线程A、线程B和线程C,且线程A当前持有的网络报文的PKT_ID为0,线程B当前持有的网络报文的PKT_ID为1,线程C当前持有的网络报文的PKT_ID为2,且这三个网络报文同属于一个通道。与该通道对应的保序流中对应的报文处理顺序为0、1、2,也即网络报文进入通道的先后顺序为0、1、2,而异步线程向OCP发送网络报文的先后顺序则为线程B、线程A、线程C。依据该场景,本实施例可以包括:Fig. 4 is a flow chart of another embodiment of the message order-preserving processing method of the present invention, and Fig. 5 is a schematic diagram of the processing process of the embodiment shown in Fig. 4 in a scenario, as shown in Fig. 4 and Fig. 5 , without loss of generality Specifically, this embodiment only shows three threads, namely thread A, thread B and thread C, and the PKT_ID of the network message currently held by thread A is 0, and the PKT_ID of the network message currently held by thread B is 0. is 1, the PKT_ID of the network packet currently held by thread C is 2, and these three network packets belong to the same channel. The corresponding message processing order in the sequence-preserving flow corresponding to this channel is 0, 1, 2, that is, the order in which network messages enter the channel is 0, 1, 2, and the order in which asynchronous threads send network messages to OCP The order is thread B, thread A, thread C. According to the scenario, this embodiment may include:

步骤401、线程B、线程A和线程C依次向OCP发送REQ。Step 401, thread B, thread A and thread C send REQ to OCP in sequence.

线程B、线程A和线程C依次向OCP发送REQ,每个REQ均可以采用表2所示的描述。Thread B, thread A, and thread C send REQs to the OCP in sequence, and each REQ can use the description shown in Table 2.

步骤402、OCP中的REQ BUFFER缓存REQ,并生成REQ_ID队列(以下简称:REQ_ID Queue)。Step 402, the REQ BUFFER in the OCP caches the REQ, and generates a REQ_ID queue (hereinafter referred to as: REQ_ID Queue).

在本实施例中,该REQ_ID队列中的保序处理顺序即为1、0、2。In this embodiment, the order-preserving processing order in the REQ_ID queue is 1, 0, 2.

步骤403、OCP中的调度单元(以下简称:Schedule)从REQ_ID Queue中按保序处理顺序调度一个REQ_ID。Step 403, the scheduling unit in the OCP (hereinafter referred to as: Schedule) schedules a REQ_ID from the REQ_ID Queue according to the order-preserving processing order.

步骤404、Schedule判断该REQ_ID是否处于保序流的链表头,若是,则执行步骤405,否则执行步骤403。Step 404, Schedule judges whether the REQ_ID is at the head of the linked list of the sequence-preserving flow, if so, executes step 405, otherwise executes step 403.

步骤405、Schedule向REQ BUFFER发送REQ授权,将保序流中的下一个REQ_ID设为链表头。Step 405, Schedule sends REQ authorization to REQ BUFFER, and sets the next REQ_ID in the sequence-preserving stream as the head of the linked list.

步骤406、REQ BUFFER将该REQ_ID对应的REQ发送到BUS上REQ先进先出(First In First Out,以下简称:FIFO)队列。Step 406, the REQ BUFFER sends the REQ corresponding to the REQ_ID to the REQ First In First Out (hereinafter referred to as: FIFO) queue on the BUS.

具体来说,Schedule可以从REQ_ID Queue中调度REQ_ID“1”,然后,Schedule可以将调度的REQ_ID“1”与保序流的链表头中包含的REQ_ID相比较,从而判断该调度的REQ_ID“1”是否处于保序流的链表头。在本实施例中,保序流当前的链表头为“0”,因此,Schedule调度的REQ_ID“1”对应的REQ不能发送到BUS FIFO队列上。此时,Schedule可以从REQ_ID Queue中调度REQ_ID“0”,然后,Schedule可以将调度的REQ_ID“0”与保序流的链表头中包含的REQ_ID相比较,从而判断该调度的REQ_ID“1”是否处于保序流的链表头。通过判断可知,REQ_ID“0”处于保序流的链表头,因此,Schedule可以向REQ BUFFER发送REQ授权,从而使得REQ BUFFER将REQ_ID“0”对应的REQ发送到BUS FIFO上,而且,Schedule可以将保序流中的下一个REQ_ID“1”设为链表头。接着,Schedule可以从REQ_ID Queue中调度REQ_ID“2”,然后,Schedule可以将调度的REQ_ID“2”与保序流当前的链表头中包含的REQ_ID相比较,从而判断该调度的REQ_ID“2”是否处于保序流的链表头。由于,保序流当前的链表头中包含的REQ_ID为“1”,因此,Schedule调度的REQ_ID“2’对应的REQ不能发送到BUS FIFO队列上。此时,Schedule可以从REQ_IDQueue中调度REQ_ID“1”,然后,Schedule可以将调度的REQ_ID“1”与保序流当前的链表头中包含的REQ_ID相比较,从而判断该调度的REQ_ID“1”是否处于保序流的链表头。通过判断可知,REQ_ID“1”处于保序流当前的链表头,因此,Schedule可以向REQ BUFFER发送REQ授权,从而使得REQ BUFFER将REQ_ID“1”对应的REQ发送到BUS FIFO上,而且,Schedule可以将保序流中的下一个REQ_ID“2”设为链表头。Schedule可以将调度的REQ_ID“2”与保序流当前的链表头中包含的REQ_ID相比较,从而判断该调度的REQ_ID“2”是否处于保序流的链表头。通过判断可知,REQ_ID“2”处于保序流当前的链表头,因此,Schedule可以向REQ BUFFER发送REQ授权,从而使得REQ BUFFER将REQ_ID“2”对应的REQ发送到BUS FIFO上。Specifically, Schedule can schedule REQ_ID "1" from the REQ_ID Queue, and then Schedule can compare the scheduled REQ_ID "1" with the REQ_ID contained in the head of the linked list of the sequence-preserving flow, thereby judging the scheduled REQ_ID "1" Whether it is at the head of the linked list of the order-preserving flow. In this embodiment, the current linked list head of the sequence-preserving flow is "0", therefore, the REQ corresponding to the REQ_ID "1" scheduled by the Schedule cannot be sent to the BUS FIFO queue. At this point, Schedule can schedule REQ_ID "0" from the REQ_ID Queue, and then Schedule can compare the scheduled REQ_ID "0" with the REQ_ID contained in the sequence-preserving link list header to determine whether the scheduled REQ_ID "1" is The head of the linked list in the order-preserving flow. It can be seen from the judgment that REQ_ID "0" is at the head of the linked list of the sequence-preserving flow. Therefore, Schedule can send REQ authorization to REQ BUFFER, so that REQ BUFFER sends REQ corresponding to REQ_ID "0" to BUS FIFO, and Schedule can send The next REQ_ID "1" in the sequence-preserving stream is set as the head of the linked list. Next, the Schedule can schedule REQ_ID "2" from the REQ_ID Queue, and then the Schedule can compare the scheduled REQ_ID "2" with the REQ_ID contained in the current link list header of the sequence-preserving flow, so as to determine whether the scheduled REQ_ID "2" is The head of the linked list in the order-preserving flow. Since the REQ_ID contained in the current linked list header of the sequence-preserving flow is "1", the REQ corresponding to the REQ_ID "2' scheduled by Schedule cannot be sent to the BUS FIFO queue. At this time, Schedule can schedule REQ_ID "1" from REQ_IDQueue ", and then, Schedule can compare the scheduled REQ_ID "1" with the REQ_ID contained in the current link list header of the sequence-preserving flow, so as to judge whether the scheduled REQ_ID "1" is in the link list header of the sequence-preserving flow. Through the judgment, it can be seen that, REQ_ID "1" is at the head of the current linked list of the sequence-preserving flow. Therefore, Schedule can send REQ authorization to REQ BUFFER, so that REQ BUFFER sends the REQ corresponding to REQ_ID "1" to the BUS FIFO. Moreover, Schedule can send the sequence-preserving flow The next REQ_ID "2" in the list is set as the head of the linked list. Schedule can compare the scheduled REQ_ID "2" with the REQ_ID contained in the current linked list header of the sequence-preserving stream, so as to judge whether the scheduled REQ_ID "2" is in the sequence-preserving The head of the linked list of the stream. It can be seen from the judgment that REQ_ID "2" is at the current linked list head of the sequence-preserving stream. Therefore, Schedule can send REQ authorization to REQ BUFFER, so that REQ BUFFER sends the REQ corresponding to REQ_ID "2" to the BUS FIFO .

对于更多个网络报文来说,其均可以采用上述处理过程,此处不再赘述。For more network packets, the above-mentioned processing procedure can be adopted, and details will not be repeated here.

通过上述处理过程,REQ FIFO队列中的REQ顺序即为REQA、REQB、REQC。Through the above process, the REQ sequence in the REQ FIFO queue is REQA, REQB, REQC.

步骤407、REQA、REQB、REQC按序访问COP。Step 407, REQA, REQB, and REQC access the COP in sequence.

对于COP反馈响应消息的处理过程来说,其可以将图5中乱序的响应消息(以下简称:RSP),即RSPC、RSPA、RSPB通过采用上述步骤401~407类似的步骤被保序为RSPA、RSPB、RSPC,从而被发送到对应的线程上。其中,对于RSP_ID以及RSP的描述结构来说,其对应地,与REQ_ID以及REQ的描述结构类似,此处不再赘述。For the processing process of the COP feedback response message, it can process the out-of-order response message (hereinafter referred to as: RSP) in Figure 5, that is, RSPC, RSPA, and RSPB are sequence-preserved as RSPA by adopting steps similar to the above steps 401-407 , RSPB, RSPC, which are sent to the corresponding thread. Wherein, the description structures of RSP_ID and RSP are correspondingly similar to the description structures of REQ_ID and REQ, and will not be repeated here.

本实施例,在上述图1或图2所示实施例的基础上,进一步地,还可以对COP发送的响应消息进行保序处理。In this embodiment, on the basis of the above embodiment shown in FIG. 1 or FIG. 2 , further, order-preserving processing may be performed on the response message sent by the COP.

图6为本发明保序协处理器一个实施例的结构示意图,如图6所示,本实施例的OCP可以包括:接收模块11、确定模块12以及保序处理模块13,其中,接收模块11用于接收线程发送的网络报文,所述网络报文中包含报文标识;确定模块12用于确定与所述报文标识对应的保序流,所述保序流与网络设备的一条通道对应且所述保序流中包含的报文处理顺序为网络报文进入所述通道的先后顺序;保序处理模块13用于根据所述报文处理顺序,对所述网络报文进行保序处理。FIG. 6 is a schematic structural diagram of an embodiment of the order-preserving coprocessor of the present invention. As shown in FIG. It is used to receive a network message sent by a thread, the network message includes a message identifier; the determination module 12 is used to determine an order-preserving flow corresponding to the message identifier, and the order-preserving flow is connected to a channel of the network device Correspondingly, the packet processing sequence included in the sequence-preserving flow is the sequence in which network packets enter the channel; the sequence-preserving processing module 13 is used to perform sequence-preserving on the network packets according to the packet processing sequence deal with.

本实施例的OCP可以用于执行图1所示方法实施例的方法,其实现原理和技术效果类似,此处不再赘述。The OCP of this embodiment can be used to execute the method of the method embodiment shown in FIG. 1 , and its implementation principle and technical effect are similar, and will not be repeated here.

图7为本发明保序协处理器另一个实施例的结构示意图,如图7所示,本实施例的OCP在图6所示OCP的基础上,进一步地可以包括:生成处理模块14和缓存处理模块15,其中,生成处理模块14用于根据所述网络报文进入通道的先后顺序,生成与该通道对应的保序流,并生成所述网络报文的报文标识与所述保序流之间的对应关系;确定模块12具体用于根据所述生成处理模块生成的所述对应关系,确定所述网络标识对应的保序流;缓存处理模块15,该缓存处理模块15用于缓存各线程发送的网络报文,并生成包含保序处理顺序的保序请求队列,所述保序处理顺序为各线程发送网络报文的先后顺序;确定模块12还可以具体用于根据所述保序处理顺序,依次确定各网络报文的报文标识对应的保序流。保序处理模块13包括判断单元131以及处理单元132,其中,判断单元131用于判断所述网络报文的报文标识是否处于所述保序流的链表头;处理单元132用于若所述网络报文的报文标识处于所述保序流的链表头,则发送所述网络报文,并将所述保序流中的下一个报文标识设为链表头;若所述网络报文的报文标识未处于所述保序流的链表头,则根据所述保序处理顺序对下一个网络报文进行保序处理。FIG. 7 is a schematic structural diagram of another embodiment of the order-preserving coprocessor of the present invention. As shown in FIG. 7 , the OCP of this embodiment may further include: a generation processing module 14 and a cache memory on the basis of the OCP shown in FIG. 6 The processing module 15, wherein, the generation processing module 14 is used to generate the sequence-preserving flow corresponding to the channel according to the order in which the network messages enter the channel, and generate the message identifier of the network message and the order-preserving flow Correspondence between streams; the determination module 12 is specifically configured to determine the sequence-preserving stream corresponding to the network identifier according to the correspondence generated by the generation processing module; a cache processing module 15, the cache processing module 15 is used for caching The network messages sent by each thread, and generate an order-preserving request queue that includes an order-preserving processing order, and the order-preserving processing order is the order in which each thread sends network messages; the determination module 12 can also be specifically used to The sequence processing sequence is determined sequentially to determine the sequence-preserving flow corresponding to the packet identifier of each network packet. The order-preserving processing module 13 includes a judging unit 131 and a processing unit 132, wherein the judging unit 131 is used to judge whether the message identifier of the network message is at the head of the linked list of the order-preserving flow; the processing unit 132 is used for if the The message identifier of the network message is at the head of the linked list of the order-preserving flow, then the network message is sent, and the next message identifier in the order-preserving flow is set as the head of the linked list; if the network message If the packet identifier is not at the head of the linked list of the sequence-preserving flow, then perform sequence-preserving processing on the next network packet according to the sequence-preserving processing sequence.

本实施例的OCP可以用于执行图2所示方法实施例的方法,其实现原理和技术效果类似,此处不再赘述。The OCP of this embodiment can be used to execute the method of the method embodiment shown in FIG. 2 , and its implementation principle and technical effect are similar, and will not be repeated here.

图8为本发明保序协处理器再一个实施例的结构示意图,如图8所示,本实施例的OCP在图6所示OCP的基础上,进一步地,接收模块11可以包括:第一接收单元111和第二接收单元112,其中,第一接收单元111用于接收网络处理器单元侧的线程发送的网络报文;第二接收单元112用于接收协处理器侧的线程发送的网络报文。FIG. 8 is a schematic structural diagram of another embodiment of the order-preserving coprocessor of the present invention. As shown in FIG. 8, the OCP of this embodiment is based on the OCP shown in FIG. 6. Further, the receiving module 11 may include: first The receiving unit 111 and the second receiving unit 112, wherein the first receiving unit 111 is used to receive the network message sent by the thread on the network processor unit side; the second receiving unit 112 is used to receive the network packet sent by the thread on the coprocessor side. message.

本实施例的OCP可以用于执行图4所示方法实施例的方法,其实现原理和技术效果类似,此处不再赘述。The OCP of this embodiment can be used to execute the method of the method embodiment shown in FIG. 4 , and its implementation principle and technical effect are similar, and will not be repeated here.

需要说明的是,本实施例中的第一接收单元111和第二接收单元112也可以择其一存在,其可以执行图1或者图2所示实施例的方法。It should be noted that the first receiving unit 111 and the second receiving unit 112 in this embodiment can also choose one of them, which can execute the method of the embodiment shown in FIG. 1 or FIG. 2 .

在图6~8所示的实施例中,保序协处理器均可以采用ASIC技术实现,本领域技术人员可以根据本发明实施例的构思,自行设计具体的电路图,本实施例不作限定。In the embodiments shown in FIGS. 6-8 , the order-preserving coprocessors can all be implemented using ASIC technology, and those skilled in the art can design specific circuit diagrams by themselves according to the concepts of the embodiments of the present invention, which is not limited in this embodiment.

图9为本发明网络设备一个实施例的结构示意图,如图9所示,本实施例的网络设备可以包括依次连接的网络处理器单元1、保序协处理器2以及协处理器3,其中,保序协处理器2可以采用图6~8中任一实施例所示的结构,其对应地可以执行图1、2或4所示方法实施例的方法,其实现原理和技术效果类似,此处不再赘述。FIG. 9 is a schematic structural diagram of an embodiment of the network device of the present invention. As shown in FIG. 9, the network device of this embodiment may include a network processor unit 1, an order-preserving coprocessor 2, and a coprocessor 3 connected in sequence, wherein The order-preserving coprocessor 2 can adopt the structure shown in any one of the embodiments in FIGS. 6 to 8, which can correspondingly execute the method of the method embodiment shown in FIG. I won't repeat them here.

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。Those of ordinary skill in the art can understand that all or part of the steps for realizing the above-mentioned method embodiments can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, the It includes the steps of the above method embodiments; and the aforementioned storage medium includes: ROM, RAM, magnetic disk or optical disk and other various media that can store program codes.

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: it can still be Modifications are made to the technical solutions described in the foregoing embodiments, or equivalent replacements are made to some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the various embodiments of the present invention.

Claims (12)

1. a packet order preserving processing method is characterized in that, comprising:
The network message that receiving thread sends comprises message identification in the described network message;
Determine the order-preserving stream corresponding with described message identification, described order-preserving stream is the sequencing that network message enters described passage with the message processing sequence that comprises during the corresponding and described order-preserving of a passage of the network equipment is flowed;
According to described message processing sequence, described network message is carried out order-preserving handle.
2. method according to claim 1 is characterized in that, before the network message that described receiving thread sends, also comprises:
According to the sequencing of network message admission passage, generate the order-preserving stream corresponding, and generate the message identification of described network message and the corresponding relation between the described order-preserving stream with this passage;
The described definite order-preserving corresponding with described message identification stream comprises:
According to described corresponding relation, determine the order-preserving stream of described network identity correspondence.
3. method according to claim 1 and 2 is characterized in that, determines also to comprise before the order-preserving stream corresponding with described message identification:
The network message that each thread of buffer memory sends, and generate the order-preserving request queue that comprises the order-preserving processing sequence, described order-preserving processing sequence sends the sequencing of network message for each thread;
The described definite order-preserving corresponding with described message identification stream comprises:
According to described order-preserving processing sequence, determine the order-preserving stream of the message identification correspondence of each network message successively.
4. method according to claim 3 is characterized in that, and is described according to the message processing sequence in the described order-preserving stream, described network message carried out order-preserving handle, and comprising:
If the message identification of described network message is in the linked list head of described order-preserving stream, then sends described network message, and the next message identification in the described order-preserving stream is made as linked list head;
If the message identification of described network message is not in the linked list head of described order-preserving stream, then next network message is carried out order-preserving and handle according to described order-preserving processing sequence.
5. method according to claim 1 and 2 is characterized in that, the network message that described receiving thread sends comprises:
Receive the network message of the thread transmission of network processor unit side; And/or,
Receive the network message of the thread transmission of coprocessor side.
6. an order-preserving coprocessor is characterized in that, comprising:
Receiver module is used for the network message that receiving thread sends, and comprises message identification in the described network message;
Determination module is used for determining the order-preserving stream corresponding with described message identification, and described order-preserving stream is the sequencing that network message enters described passage with the message processing sequence that comprises during the corresponding and described order-preserving of a passage of the network equipment is flowed;
The order-preserving processing module is used for according to described message processing sequence, described network message is carried out order-preserving handle.
7. order-preserving coprocessor according to claim 6 is characterized in that, also comprises:
Generate processing module, be used for sequencing, generate the order-preserving stream corresponding, and generate the message identification of described network message and the corresponding relation between the described order-preserving stream with this passage according to described network message admission passage;
Described determination module specifically is used for the described corresponding relation according to described generation processing module generation, determines the order-preserving stream of described network identity correspondence.
8. according to claim 6 or 7 described order-preserving coprocessors, it is characterized in that, also comprise:
Buffer process module is used for the network message that each thread of buffer memory sends, and generates the order-preserving request queue that comprises the order-preserving processing sequence, and described order-preserving processing sequence sends the sequencing of network message for each thread;
Described determination module specifically is used for according to described order-preserving processing sequence, determines the order-preserving stream of the message identification correspondence of each network message successively.
9. according to claim 6 or 7 described order-preserving coprocessors, it is characterized in that described order-preserving processing module comprises:
Judging unit is used to judge whether the message identification of described network message is in the linked list head of described order-preserving stream;
Processing unit is used for then sending described network message if the message identification of described network message is in the linked list head of described order-preserving stream, and the next message identification in the described order-preserving stream is made as linked list head; If the message identification of described network message is not in the linked list head of described order-preserving stream, then next network message is carried out order-preserving and handle according to described order-preserving processing sequence.
10. according to claim 6 or 7 described order-preserving coprocessors, it is characterized in that described receiver module comprises following at least one unit:
First receiving element is used to receive the network message that the thread of network processor unit side sends;
Second receiving element is used to receive the network message that the thread of coprocessor side sends.
11., it is characterized in that described order-preserving coprocessor adopts application-specific integrated circuit (ASIC) to realize according to claim 6 or 7 described order-preserving coprocessors.
12. a network equipment is characterized in that, comprising: the network processor unit of Lian Jieing, order-preserving coprocessor and coprocessor successively, described order-preserving coprocessor adopts the described order-preserving coprocessor of the arbitrary claim of claim 6~11.
CN2011800005300A 2011-05-09 2011-05-09 Message order-preserving processing method, order-preserving coprocessor and network equipment Pending CN102204183A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/073811 WO2011120467A2 (en) 2011-05-09 2011-05-09 Message order-preserving processing method, order-preserving coprocessor and network equipment

Publications (1)

Publication Number Publication Date
CN102204183A true CN102204183A (en) 2011-09-28

Family

ID=44662805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800005300A Pending CN102204183A (en) 2011-05-09 2011-05-09 Message order-preserving processing method, order-preserving coprocessor and network equipment

Country Status (2)

Country Link
CN (1) CN102204183A (en)
WO (1) WO2011120467A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710524A (en) * 2012-06-15 2012-10-03 大连梯耐德网络技术有限公司 A realization method of a multi-protocol network message transmission order guarantee system
CN102843235A (en) * 2012-09-06 2012-12-26 汉柏科技有限公司 Message encrypting/decrypting method
CN102932141A (en) * 2012-09-27 2013-02-13 汉柏科技有限公司 Order-preserving method and system for encrypting and decrypting messages by multiple encryption and decryption chips in parallel
CN103927123A (en) * 2013-01-15 2014-07-16 华为技术有限公司 Buffer management method and device
WO2016078212A1 (en) * 2014-11-20 2016-05-26 中兴通讯股份有限公司 Packet processing method and device, and storage medium
CN108093061A (en) * 2017-12-26 2018-05-29 北京天融信网络安全技术有限公司 Synchronous method, device, storage medium and the computer equipment of business board-to-board information
CN109697022A (en) * 2017-10-23 2019-04-30 深圳市中兴微电子技术有限公司 A kind of processing method, device and the computer readable storage medium of message descriptor PD
CN114448573A (en) * 2022-03-02 2022-05-06 新华三半导体技术有限公司 Message processing method and device
WO2024103891A1 (en) * 2022-11-15 2024-05-23 华为技术有限公司 Data processing method and apparatus

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111416776B (en) * 2019-01-07 2024-07-09 华为技术有限公司 Method for transmitting data and network device
CN113014528B (en) * 2019-12-19 2022-12-09 厦门网宿有限公司 Message processing method, processing unit and virtual private network server
CN114731334B (en) * 2020-02-14 2023-10-20 华为技术有限公司 Message order preserving method and device
CN113965347B (en) * 2021-09-09 2024-03-15 山石网科通信技术股份有限公司 Firewall data processing method and device
CN114338559B (en) * 2021-12-15 2024-03-22 杭州迪普信息技术有限公司 Message order preserving method and device
CN116155828B (en) * 2022-12-21 2023-06-23 北京云豹创芯智能科技有限公司 Message order keeping method and device for multiple virtual queues, storage medium and electronic equipment
CN116405443B (en) * 2023-03-28 2024-06-07 中科驭数(北京)科技有限公司 Message forwarding method, device, equipment and storage medium
CN118316888B (en) * 2024-06-11 2024-08-13 贵州华芯半导体技术有限公司 Message order-preserving transmission method, chip and electronic equipment
CN118519729B (en) * 2024-07-18 2024-10-22 贵州华芯半导体技术有限公司 Message scheduling method, system, storage medium and electronic equipment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102554A1 (en) * 2003-11-05 2005-05-12 Ofir Zohar Parallel asynchronous order-preserving transaction processing
CN1996958A (en) * 2006-12-30 2007-07-11 华为技术有限公司 Method and device for guaranteeing message sequence
CN101022411A (en) * 2007-03-07 2007-08-22 华为技术有限公司 Multi-link binding protocol message zone receiving method
CN101175033A (en) * 2007-11-27 2008-05-07 中兴通讯股份有限公司 Message order-preserving method and device thereof
CN101291194A (en) * 2008-05-20 2008-10-22 华为技术有限公司 Method and system for keeping sequence of report

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102554A1 (en) * 2003-11-05 2005-05-12 Ofir Zohar Parallel asynchronous order-preserving transaction processing
CN1996958A (en) * 2006-12-30 2007-07-11 华为技术有限公司 Method and device for guaranteeing message sequence
CN101022411A (en) * 2007-03-07 2007-08-22 华为技术有限公司 Multi-link binding protocol message zone receiving method
CN101175033A (en) * 2007-11-27 2008-05-07 中兴通讯股份有限公司 Message order-preserving method and device thereof
CN101291194A (en) * 2008-05-20 2008-10-22 华为技术有限公司 Method and system for keeping sequence of report

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王圣等: "《基于硬件的乱序报文重组算法》", 《计算机工程》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710524A (en) * 2012-06-15 2012-10-03 大连梯耐德网络技术有限公司 A realization method of a multi-protocol network message transmission order guarantee system
CN102710524B (en) * 2012-06-15 2015-01-21 大连梯耐德网络技术有限公司 A realization method of a multi-protocol network message transmission order guarantee system
CN102843235A (en) * 2012-09-06 2012-12-26 汉柏科技有限公司 Message encrypting/decrypting method
CN102932141A (en) * 2012-09-27 2013-02-13 汉柏科技有限公司 Order-preserving method and system for encrypting and decrypting messages by multiple encryption and decryption chips in parallel
CN102932141B (en) * 2012-09-27 2016-01-06 汉柏科技有限公司 Add order-preserving method and the system of deciphering chip parallel processing message encryption and decryption
CN103927123A (en) * 2013-01-15 2014-07-16 华为技术有限公司 Buffer management method and device
WO2016078212A1 (en) * 2014-11-20 2016-05-26 中兴通讯股份有限公司 Packet processing method and device, and storage medium
CN105656804A (en) * 2014-11-20 2016-06-08 中兴通讯股份有限公司 Message processing method and device
CN109697022A (en) * 2017-10-23 2019-04-30 深圳市中兴微电子技术有限公司 A kind of processing method, device and the computer readable storage medium of message descriptor PD
CN109697022B (en) * 2017-10-23 2022-03-04 深圳市中兴微电子技术有限公司 A method, device and computer-readable storage medium for processing message descriptor PD
CN108093061A (en) * 2017-12-26 2018-05-29 北京天融信网络安全技术有限公司 Synchronous method, device, storage medium and the computer equipment of business board-to-board information
CN114448573A (en) * 2022-03-02 2022-05-06 新华三半导体技术有限公司 Message processing method and device
CN114448573B (en) * 2022-03-02 2024-02-23 新华三半导体技术有限公司 Message processing method and device
WO2024103891A1 (en) * 2022-11-15 2024-05-23 华为技术有限公司 Data processing method and apparatus

Also Published As

Publication number Publication date
WO2011120467A3 (en) 2012-04-05
WO2011120467A2 (en) 2011-10-06

Similar Documents

Publication Publication Date Title
CN102204183A (en) Message order-preserving processing method, order-preserving coprocessor and network equipment
CN101616083B (en) Message forwarding method and device
US9356844B2 (en) Efficient application recognition in network traffic
CN113728596A (en) System and method for facilitating efficient management of idempotent operations in a Network Interface Controller (NIC)
US11750699B2 (en) Small message aggregation
US20070223472A1 (en) Network processing apparatus, multiprocessor system and network protocol processing method
US9094219B2 (en) Network processor having multicasting protocol
US8935329B2 (en) Managing message transmission and reception
KR102126592B1 (en) A look-aside processor unit with internal and external access for multicore processors
WO2015100915A1 (en) Queue scheduling method and device, and computer storage medium
EP2919426A1 (en) Concurrent hashes and sub-hashes on data streams
CN112671771A (en) Data transmission method, device, electronic equipment and medium
CN103312618B (en) Based on the flow management method of software and hardware combining
CN109587082B (en) Message asynchronous forwarding system and method based on Linux operating system
CN117560433A (en) DPU (digital versatile unit) middle report Wen Zhuaifa order preserving method and device, electronic equipment and storage medium
CN111026324B (en) Updating method and device of forwarding table entry
CN118200253A (en) RDMA UD transmission-oriented reliable communication method, electronic equipment and readable medium
CN118509399B (en) A message processing method, device, electronic device and storage medium
CN103955445B (en) A kind of data processing method, processor and data handling equipment
CN105763375A (en) Data packet transmission method, receiving method and microwave station
TWI465075B (en) Apparatus for processing packets and system for using the same
CN106372013B (en) Remote memory access method, device and system
CN111865811A (en) A data processing method, device, equipment and medium
Leira et al. Multimedia flow classification at 10 Gbps using acceleration techniques on commodity hardware
CN106059948A (en) A data packet block transmission method and system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110928