WO2012162949A1 - 一种报文重组重排序方法、装置和*** - Google Patents
一种报文重组重排序方法、装置和*** Download PDFInfo
- Publication number
- WO2012162949A1 WO2012162949A1 PCT/CN2011/078504 CN2011078504W WO2012162949A1 WO 2012162949 A1 WO2012162949 A1 WO 2012162949A1 CN 2011078504 W CN2011078504 W CN 2011078504W WO 2012162949 A1 WO2012162949 A1 WO 2012162949A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cell
- message
- queue
- sequence number
- source
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2408—Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/624—Altering the ordering of packets in an individual queue
Definitions
- the present invention relates to the field of communications technologies, and in particular, to a message reorganization reordering method, apparatus, and system.
- the data communication device is composed of a plurality of line cards and a switch circuit board, and the line card and the exchange card board are vertically connected.
- the input line card After receiving the packets of various lengths destined for different destinations from the upstream device, the input line card sends the packets to the packet processor (PP, Packet Processor), and the packet processor according to the packet
- PP Packet Processor
- TM Traffic Management
- TM Traffic Management
- the cells may be out of order (that is, the cells belonging to the same packet do not follow the letter).
- the position of the element in the message arrives in order), so the unordered cells need to be resequenced, and the cells belonging to the same message are reassembled into complete messages, and then
- the packets sent by the same source port are arranged in the order in which the source port is sent, and finally sent from the output port to the downstream device.
- a series of operations such as reassembling the cells that belong to the same packet, into a complete packet, and the packets sent by the same source port are arranged in the order in which the source port is sent.
- the embodiments of the present invention provide a packet reordering method, apparatus, and system, which can be applied to a high-performance device and occupy less memory and control resources.
- a text reorganization reordering method including: Receiving a cell sent by a source port, where the cell carries a source identifier, a message sequence number, and a cell sequence number;
- the correctly sorted message is a complete message
- the cells in the correctly sorted message are sorted according to the cell sequence number, to obtain correctly sorted cells
- a network device including:
- a receiving unit configured to receive a cell sent by the source port, where the cell carries a source identifier, a message sequence number, and a cell sequence number;
- a pre-processing unit configured to perform pre-processing on the cell received by the receiving unit according to the source identifier, to determine whether to insert the cell into the database
- a message sorting unit configured to sort the cells in the message reorganization database according to the message sequence number, to obtain correctly sorted messages
- a cell sorting unit configured to: when determining that the message is a complete message, sort the cells in the correctly sorted message according to the cell sequence number, to obtain correctly sorted cells;
- a reorganization unit configured to perform a "3 ⁇ 4 text reorganization" on the correctly sorted cells.
- a communication system including a source port device and any network device provided by the embodiment of the present invention; the source port device, configured to send a cell to a network device, where the cell carries a source identifier, a packet sequence number, and a letter Meta serial number.
- the received cell is preprocessed according to the source identifier to determine whether to insert the received cell into the message reassembly database, and then directly according to the message sequence number and the cell sequence number of the cell.
- the cells in the order are sorted, and finally the message is reorganized. Because the solution can re-reorder the packets according to the source, the re-sequencing of the packets based on the time-scale synchronization in the prior art can be applied to the high-performance device. Moreover, since the solution can control and manage the received cells (that is, the packets waiting to be reorganized), the utilization of resources is high, and less memory and control resources can be occupied.
- FIG. 1 is a flowchart of a packet reordering method according to Embodiment 1 of the present invention.
- FIG. 2a is a structural diagram of a packet reordering process according to an embodiment of the present invention
- FIG. 2b is a flowchart of a packet reordering method according to Embodiment 2 of the present invention.
- 2c is a schematic diagram of a message sequence and message reassembly database structure in unicast
- 2d is a flow chart of a method for preprocessing in an embodiment of the present invention.
- 2e is a schematic diagram of a cell sorting mechanism in a message reordering reordering method according to an embodiment of the present invention
- FIG. 3 is a schematic structural diagram of a network device according to an embodiment of the present disclosure.
- FIG. 3b is another schematic structural diagram of a network device according to an embodiment of the present invention.
- Embodiments of the present invention provide a message reorganization reordering method, apparatus, and system. The following is a detailed description. Embodiment 1
- a packet reordering method includes: receiving a cell sent by a source port, where the cell carries a source identifier, a message sequence number, and a cell sequence number; and preprocessing the received cell according to the source identifier, Determining whether to insert the cell into the message reassembly database; sorting the cells in the message reassembly database according to the message sequence number to obtain the correctly sorted message; if the correctly sorted message is a complete message, then according to The cell sequence number sorts the cells in the correctly sorted message to obtain correctly sorted cells; and reorganizes the correctly sorted cells.
- the specific process can be as follows:
- a source port where the cell carries a source identifier (SID, Source Identification), a sequence number, and a cell sequence number, as follows:
- Source ID It is used to identify the source and type of the cell. According to the source ID, you can know which source port the cell is from.
- the source ID can be divided into a unicast source identifier and a multicast source identifier.
- the unicast source identifier is the source port number.
- the multicast source identifier is the source port number, the service type, and the identifier of the multicast replication domain (MGID, Multicast Group)
- the set of IDs that is, ⁇ source port number, message service type, MGID ⁇ , where the MGID is assigned a multicast message by the PP of the source line card.
- Message sequence number Used to identify the location of the message in the data stream.
- Cell sequence number Used to identify the location of the cell in the message.
- the cell sent by the source port may be specifically received through a fabric.
- the cell is segmented by the source port, and the source port is given the cell sequence number and the cell sequence number; for example, two messages of the same destination port are divided into two
- the cell the first ⁇ 3 ⁇ 4 file is divided into 3 cells, and the second message is divided into 4 cells.
- the sequence numbers of the cells of the first message are (1, 1), (1, 2), (1, 3); the sequence numbers of the cells of the second message are (2, 1), respectively. (2, 2), (2, 3), (2, 4).
- the first number in parentheses is the message serial number, and the second number in parentheses is the cell serial number.
- the cell may include cell data and cell information.
- the details can be as follows:
- the cell data of the cell is saved in the payload memory (payload memory) according to the source identifier, and the corresponding load memory index value is configured according to the load memory.
- the index value can obtain corresponding cell data from the load memory;
- the cell information may include a source identifier of the cell, a local timestamp, a load memory index value, and a message sequence.
- Some information related to cells such as the serial number of the cell;
- the local timestamp is mainly used to judge the time that the cell waits locally. If the waiting time is too long, it will be discarded.
- the depth of all PF queues is less than a preset threshold, it is determined whether the cell corresponding to the hop queue information in the IF queue should be processed; if it should be processed, the hop queue information of the IF queue is popped; After being processed, the first cell information of the IF queue is pushed into one of the PF queues (the PF queue can be constructed with multiple cells for buffering different waiting times), and the team leader letter of the most full PF queue is popped up. Meta information
- the cell information is inserted into the message reassembly database; When the message sequence number of the cell is greater than the maximum open message sequence number of the same source in the message reassembly database, the cell information is inserted into one of the PF queues.
- the depth of the PF queue is greater than a preset threshold, it is determined whether the cell corresponding to the head cell information in the overflow PF queue should be processed; if it should not be processed, the overflow PF queue is recovered (ie, The cell corresponding to the head cell information of the PF queue whose queue depth is greater than the preset threshold, for example, the PF queue is full, and then determines whether the cell corresponding to the head cell information in the IF queue should be determined.
- the step to be processed (see the previous description); if it should be processed, the step of pushing the head cell information of the IF queue into one of the PF queues and popping up the head cell information of the most complete PF queue is performed.
- the PF queue is mainly used to store cells that reach the destination port too early. That is, if the cell reaches the destination port too early, it will not be processed at present, but will be placed in the PF queue, and then correctly. The time is taken out of the PF queue and inserted into the message reorganization database.
- Whether the cell should be processed may be determined according to the number of open packets (that is, packets waiting to be processed) in the queue, that is, the minimum message sequence number of the packet being processed and the current cell are determined. Whether the difference between the sequence number of the message is less than a preset value, if it is less than the preset value, It means that the cell should be processed. At this time, the current cell can be processed. Otherwise, it means that the cell should not be processed. At this time, the cell can be delayed, that is, put into the PF team. For example, the maximum number of open packets in the queue is 16 and the minimum message sequence number of the packets currently being processed is 1024. Then, the cells of all packets whose sequence number is less than 1024 should be discarded directly.
- the message sequence number is greater than or equal to 1024, and the "3 ⁇ 4" message of less than or equal to "1024+16" should be processed, for example, to further determine that the cell has not timed out, and the message sequence number of the cell is smaller than the message.
- the cell is inserted into the message reassembly database; and all cells with a sequence number greater than "1024+16" should be cached, that is, inserted into the PF. Queue. That is, the step "processes the cell information in the IF queue according to the source identification, the serial number of the serial number, and the state of the FIFO (Postponed FIFO) queue to determine whether to insert the cell information.
- the message reorganization database can be: 3 ⁇ 4 mouth:
- the depth of all the PF queues is less than the preset threshold, it is determined whether the difference between the message sequence number of the cell corresponding to the cell header information in the IF queue and the smallest message sequence number of the currently processed message is smaller than The fourth threshold; if yes, the head cell information of the IF queue is popped; if not, the head cell information of the IF queue is pushed into one of the PF queues, and the head cell information of the most complete PF queue is popped up.
- the cell information is inserted into the message reassembly database; When the message sequence number of the cell is larger than the largest message sequence number of the same source in the message reassembly database, the cell information is inserted into one of the PF queues.
- the difference between the message sequence number of the cell corresponding to the cell head cell information in the overflow PF queue and the minimum message sequence number of the currently processed message is determined. Whether it is less than the fifth threshold; if yes, recovering the cell corresponding to the head cell information of the overflow PF queue, and then performing a message sequence number determining that the cell corresponding to the first cell information in the IF queue is currently being Whether the difference of the minimum packet sequence number of the processed packet is less than the fourth threshold; if not, performing the process of pushing the head cell information of the IF queue into one of the PF queues, and popping the fullest PF queue The team's first cell information step.
- the fourth threshold and the fifth threshold may be set according to actual application requirements. Whether it is unicast or multicast, it can include a large number of message sorting queues, and each message sorting queue has several messages waiting for reordering. (The packets waiting for reorganization and reordering also become open reports. Text, ie open packet).
- the unicast may classify the message sorting queue according to the packet service type (CoS, Class of Service) and the source identifier (SID, Source Identification), that is, the cells of different packet service types and source identifiers should be different.
- the message is sorted in the queue.
- Multicast can divide the message sorting queue according to the CoS, Class of Service, SID, Source Identification and Multicast Group ID.
- Each message sorting queue has a message descriptor array, that is, a pre-allocated piece of memory as data to accommodate the messages waiting to be sorted.
- Each entry in the message descriptor array is actually a pointer to the cell descriptor belonging to the message.
- the cell descriptor also has a pointer to the next cell, so that all cells belonging to a message form a linked list and can traverse all cells starting from the first pointer in the message array.
- the size of the message descriptor array (that is, how many open messages can be accommodated) can be dynamically adjusted. For example, several message descriptor arrays of different sizes may be allocated in advance. If an open message of a sorting queue is increased, causing the message descriptor array to overflow, a larger message descriptor array can be used instead of the previous smaller message descriptor array. That is, it can be as follows:
- the message reassembly database may include source descriptor memory (SDM, Source Descriptor Memory) and source queue memory (SQM, Source Queue Memory); wherein the source descriptor memory is used for The source descriptor (Source Descriptor) is indexed by the packet service type and the source port number, that is, the ⁇ message service type, source port number ⁇ is used as an index; and the source queue memory is used to store the source description.
- SDM Source Descriptor Memory
- SQL Source Queue Memory
- the source queue corresponding to the source queue, the source queue memory includes a pointer to a Reorder-Packet-Array-Buffer, and the sort message buffer is used to store the message descriptor of the cell waiting for sorting (Packet) Descriptor ), each message descriptor points to the last cell descriptor (Cell Descriptor) of the cell that belongs to this message.
- the message reassembly database can include the MGID descriptor.
- the MGID descriptor memory is used to store the MGID descriptor, and the packet service type, MGID, and source port number are used as indexes, for example, ⁇ message service type, MGID, source port number ⁇
- the hash value is used as an index
- the MGID queue memory is used to store the MGID queue corresponding to the MGID descriptor.
- the MGID queue memory may include a pointer to the sorted message buffer area, and the sorted message buffer area is used for storing the wait.
- the sorting packet buffer is a dynamic packet descriptor array, and includes a memory block of a different type of M.
- the M is a positive integer, which is similar to the unicast, and is not described here.
- the MGID descriptor memory and the MGID queue memory can support the hash function, that is, each process (such as an IF queue, a PF queue, a full queue, a sorted message buffer, and a cell sort buffer) can pass through.
- the hash function accesses the MGID descriptor memory and the MGID queue memory; wherein, the hash function can be constructed as multiple hash buckets.
- the so-called hash function is to map the ⁇ message service type, MGID, source port number ⁇ into a relatively small space.
- the hash function can be input with ⁇ message service type, MGID, source port number ⁇ to calculate an index value, and the index value corresponds to one or more (that is, multiple hash buckets) message sorting. queue.
- the port of the current destination may be sent to the multicast source to reduce the amount of multicast data sent to the destination port.
- the first threshold may be set according to the requirements of the actual application.
- each hash table entry includes 2 hash buckets (ie, including two message sort queues), (1, 2, 128), (7, 0, 256), (11, 3, 567) ⁇ ⁇ ⁇ , etc. are all mapped to 16, which means that with these combinations as input, the result of the hash function is 16.
- the cells of (1, 2, 128) can use the first message sorting queue, and the cells of (7, 0, 256) can use the second message sorting queue, the cells of (11, 3, 567) It can only be discarded when it is reached (because there are only two message sorting queues per hash). of course, If all the cells of (1, 2, 128) are successfully reorganized, the sorting queue has been scheduled, and the first message sorting queue is empty.
- the resource conflict lookup table indicates which of these message sorting queues (SID, CoS, MGID) index values are occupied, and is dynamically maintained according to the current state.
- the specific information may be as follows:
- the message can be sorted as follows: The first message is sorted.
- the queue is: (1, 1), (1, 3), (1, 2);
- the second message sorting queue is: (2, 3), (2, 1), (2, 4), (2, 2).
- the correctly sorted message is a complete message
- the details can be as follows:
- the message descriptor of the complete message is added to the corresponding complete queue (CF, Complete-FIFO) according to the broadcast type of the cell and the type of the message service;
- the message descriptor inserts the corresponding cell information into the cell sorting buffer (also referred to as the cell reordering buffer, Complete Packets FIFO), and extracts the cell in the cell sorting buffer according to the cell sequence number.
- the cell information is sorted.
- the broadcast type of the cell may include unicast or multicast.
- the cell sorting buffer In order to improve the efficiency of sorting, the cell sorting buffer needs to ensure sufficient blank space when performing cell sorting. Therefore, it can be set that the blank space of the cell sorting buffer is larger than a preset threshold, for example, in cell sorting.
- a preset threshold for example, in cell sorting.
- the sorting the extracted cell information in the cell sorting buffer according to the cell sequence number may be as follows:
- the cell sort buffer maintains a read pointer and a write pointer, and the write pointer always points to the current
- the start position of the message sorted by the cell, and the read pointer is used to read the sorted cells one by one for message recombination; therefore, the write pointer and the cell sequence number can be added to calculate the inserted cell information.
- the offset position is then adjusted according to the offset position of the inserted cell information in the message (ie, the correct position in the message) to obtain correctly sorted cell information.
- the recombination resource performs message reorganization on the cell data.
- At least two recombination resources may be allocated for the message of the correctly sorted cell information.
- reorganized resources are managed in a pool of resources that are assigned to each source when needed. When it is needed, it means when the reorganization is about to start; for example, when the cells in the sorting buffer have been correctly ordered, an indication signal requesting message reorganization can be sent, such as FIFO-RDY signal to report After the message reorganization mechanism receives the indication signal of the request message reorganization, the message reorganization mechanism can start to reassemble the message in the sort buffer.
- the message reassembly mechanism may receive multiple indication signals for reassembly of the request message. In this case, the message reassembly mechanism may select a message according to the packet service type.
- the meta-sort buffer is processed, that is, at this time, the correct reordering of the cells can be:
- the cell sorting buffer is selected according to the message service type, and the correctly sorted cell information in the selected cell sorting buffer is read one by one, and the cell data is extracted according to the read cell information to reassemble the message.
- the packet will be discarded. . For example, it may be determined whether the arrival time of the first cell in the packet that reaches the destination port (for example, the local timestamp may be used to identify the arrival time) and the current time is greater than a preset second threshold, and if yes, determine Whether the message reassembly is timed out, and then the message is discarded; otherwise, if not, it is confirmed that there is no timeout for the reorganization of the message, and the reorganization of the message is continued.
- the timeout of the re-establishment timeout may also include the estimated time of the network delay.
- the time delay of the switching network may be estimated according to the sequence number of the packet. For details, refer to the related art, and details are not described herein. Then, if the message is too late in the switching network, it can be discarded directly without waiting for the reassembly super. Discard again. That is, the method may further include: before reorganizing the correctly sorted cells into a message, the method may further include:
- the packet is discarded.
- the second threshold and the third threshold may be set according to requirements of an actual application.
- the subsequent message such as the message with the sequence number of 124
- the subsequent message cannot be reorganized even if all the cells have been collected. Instead, it must wait for the message with the message sequence number 123 to receive all the cells, or wait for the message with the sequence number 123 to be discarded before it can be processed. Because the waiting timeout is generally a long time, if a packet whose packet sequence number is 123 is in the switching network, the delay is particularly long. At this time, the packet with the sequence number of 123 cannot be timed out.
- the third threshold for example, the third threshold is set to 100, so that it is not necessary to wait for the packet with the packet sequence number 123 to time out, but the packet with the sequence number of 123 can be directly discarded.
- the above reorganization reordering process may be divided into multiple parallel reordering engines to support unicast or multicast data streams of different message service types (CoS, Class of Service).
- the packet service type is equivalent to the packet priority.
- the received cell is preprocessed according to the source identifier to determine whether to insert the received cell into the message reassembly database, and then directly according to the cell sequence number and the cell sequence number of the cell to the database.
- the cells are sorted, and finally the message is reorganized. Since the solution can perform reordering of the packets directly according to the source, the re-reordering of the messages based on the time-scale synchronization in the prior art can be applied to the high-performance device. Moreover, since the scheme can control and manage the received cells (that is, the packets waiting to be reorganized), the utilization of resources is high, and less memory and control resources can be occupied.
- the figure is an architecture diagram of a message reorganization reordering process, which can be mainly divided into the following steps: Step 1. After the cell reaches the destination port, the memory allocation module allocates load memory for the received cell, and the pre-processing module saves the cell data of the cell in the load memory according to the source identifier, and according to the source identifier of the cell.
- the cell information of the cell is classified, and the cell information is stored in different IFs according to the category, for example, according to the broadcast type, and if it is unicast data, it is placed in the unicast input queue (UIF, Unicast Input) In FIFO, if it is multicast data, it is placed in the Multicast Input FIFO (MIF), see Figure 2a.
- the cell information may include information about a cell identifier, a local timestamp, a load memory index value, a message sequence number, and a cell sequence number.
- the preprocessing module processes the cell information in the UIF queue and the MIF queue according to the source identifier, the local timestamp, and the state of the PF queue to determine whether to insert the cell information into the message reassembly database of the message sorting module.
- the UIF queue and the MIF queue have corresponding processing modules in the message reorganization database. For example, referring to FIG. 2b, the UIF queue corresponds to the "unicast" module in the message reorganization database, and the MIF corresponds to the message. Reorganize the "multicast" module in the database.
- Step 2 Message sorting: The message sorting module sorts the packets in each source to obtain correctly sorted packets. For example, the message descriptors in the message buffer can be sorted according to the message sequence number. Sorting and placing cells with the same message sequence number in the message reassembly database into the same message sorting queue, see "CoSO, CoSl, CoS2" in Figure 2a, in this figure, CoS0, CoSl and CoS2 They respectively represent the packet sorting queues of different packet service types.
- the packets have been correctly sorted, but the cells in the packets are still out of order, that is, CoS0, CoSl, and CoS2 are correctly sorted, but CoS0, The cells in CoSl and CoS2 are still out of order.
- Step 3 Cell sorting: The cell sorting module respectively sorts the cells in each complete packet to obtain correctly sorted cells.
- the complete message means that the cells in the message have all been received in the afternoon.
- Step 4 The message reassembly module reassembles the correctly sorted cells into a complete message.
- the memory allocation unit may allocate a recombination resource for the message reassembly module, and the message reassembly module reads the correctly sorted cell information in the cell sorting module one by one, according to the read cell information in the load.
- the cell data is extracted in the memory to reassemble the message, and the reassembled message is output, see Figure 2a.
- the above reorganization reordering process can be further divided into multiple parallel reorganization engines to support Unicast traffic and multicast traffic with the same CoS (Class of Service).
- the design of the load memory should satisfy the read request of the message reassembly module once per clock cycle. In the process of message reorganization, it cannot be interrupted. Therefore, it is sufficient that the message reassembly module does not need a FIFO queue capable of accommodating the entire message, but only a FIFO queue capable of accommodating 2 to 4 cells. After a message begins to reorganize, it will complete the reorganization before another message begins.
- the memory allocation unit is mainly used to allocate and reclaim the following types of memory: cell descriptor, message descriptor array, MGID queue memory (MGID queue memory is for multicast data);
- the memory includes at least one FIFO queue for managing the allocatable buffer. Each FIFO queue should be able to allocate a buffer entry in one clock cycle.
- the packet sorting module After the packet sorting module dequeues a packet, it submits the packet to the packet recovery module.
- the packet recovery module submits the cells in the packet to the cell recovery module one by one. When a packet is discarded, it is also submitted to the packet collection module. The same processing is performed to discard the packet.
- the sequence number of all packets is also smaller than the sequence number of the discarded packet. A message that still resides in the message reassembly database.
- the source port divides the file into cells, and configures a corresponding sequence number and a cell sequence number for each cell.
- the serial numbers of the cells of the first text are (1, 1), (1, 2), (1, 3), (1, 4); the sequence numbers of the cells of the second message are ( 2, 1 ), ( 2, 2 ), ( 2, 3 ), ( 2, 4 ), ( 2, 5 ).
- the first number is the message serial number and the second number is the cell serial number.
- the message sequence number is inserted into each cell, and the message sequence number is maintained based on the data stream. For example, for unicast data, the message sequence number is maintained according to the destination port and the packet service type. For multicast data, the serial number is >3 ⁇ 4 according to the MGID and the message service type. Carry out maintenance.
- the source port transmits the cell to the destination port through the switching network, where the cell carries the source identifier, the packet sequence number, and the cell sequence number.
- the pre-processing module of the destination port After receiving the cells, the pre-processing module of the destination port adds the local timestamp of the received cells to the received cells, and saves the cell data of the cells in the memory allocation module. Load the memory, and configure the corresponding load memory index value. According to the load memory index value, the corresponding cell data can be obtained from the load memory.
- the pre-processing module of the destination port inserts the cell information of the cell into the UIF queue according to the source identifier, where the cell information may include a source identifier of the cell, a local timestamp, a load memory index value, and a message sequence number. Some information related to cells such as cell serial numbers.
- the pre-processing module of the destination port performs pre-processing on the cell information in the UIF queue according to the source identifier, the packet sequence number, and the state of the PF queue to determine whether to insert the cell information into the message reassembly database.
- the message reassembly database is composed of source descriptor memory and source queue memory, the source descriptor memory is used to store source descriptors, and each source descriptor corresponds to a source queue in the source queue memory; Queue memory is used to store source queues. Each source queue corresponds to multiple message descriptors in the sorted message buffer.
- the source queue memory contains a pointer to the sorted message buffer. This sorted message buffer can accommodate 32 to 512 message descriptors, each message descriptor pointing to the last received cell descriptor of the cell belonging to the message, each cell descriptor containing a cell data pointing into the payload memory
- the load memory index value is used.
- the message buffer can be directly accessed.
- the access index can be calculated by subtracting the first message sequence number (Packet-Sequence-Number - First-Packet-Sequence) from the current message sequence number.
- Source queue memory can be built into a dynamic array of message descriptors, including N types of memory blocks of different capacities. Each source descriptor contains a pointer to a memory block of this type, the type of memory block being determined by the size of the desired message descriptor array. Inserting or deleting a message descriptor may require switching from one memory block to another. In order to get bandwidth, the memory block supports simultaneous reading and writing, so there is no need to maintain the read pointer. The reason is that after the message is fetched, it causes a bit shift in the position of a message descriptor in the array, and the read pointer always points to the starting position.
- the pre-processing module (Prepare Packet) of the destination port determines whether the depth of all the PF queues is less than a preset threshold. If yes, step A2 is performed. If not, step A7 is performed.
- the depth of the PF queue is smaller than the preset threshold, indicating that there is enough space in the PF queue to cache more cells that need to be delayed.
- the threshold can be set according to the requirements of the actual application.
- the preprocessing module of the destination port It is determined whether the cell corresponding to the first cell information of the UIF queue in the UIF queue should be processed according to the local timestamp, and if yes, step A3 is performed; if not, step A9 is performed.
- the pre-processing module of the destination port pops up the first cell information of the IF queue, and then performs step A4.
- the pre-processing module of the destination port determines whether the cell corresponding to the cell head cell information of the popped IF queue or the cell corresponding to the cell head cell information of the PF queue times out. If yes, step A5 is performed. Otherwise, step A10 is performed.
- the pre-processing module of the destination port recovers the cell corresponding to the first cell information of the team and the message to which the cell belongs, for example, the cell corresponding to the first cell information of the team is sent.
- Send the cell reclaiming module Cell Recycle
- Packet Recycle Packet Recycle
- the cell recovery module is mainly used for recovering cells, and the message recovery module is mainly used for recovering packets.
- A6 If not all the depths of the PF queues are less than a preset threshold, the pre-processing module of the destination port determines, according to the local timestamp, whether the cells corresponding to the head cell information in the overflow PF queue should be processed. Then, step A7 is performed, and if not, step A8 is performed.
- the overflow PF queue refers to a PF queue whose depth of the PF queue is greater than a preset threshold. A7. If the cell corresponding to the first cell information in the overflow PF queue should not be processed, the pre-processing module pops up the first cell information in the overflow PF queue, and recovers the corresponding information of the first cell information of the team. Cell. For example, the cell corresponding to the first cell information of the team is sent to the cell recovery module, and then returns to step A2.
- the pre-processing module pops up the head cell information of the IF queue, and pushes the team first cell information into one of the PF queues. , then go to step A9.
- the pre-processing module pops up the first cell information of the most complete PF queue, and then returns to the execution step.
- the pre-processing module pops up the cell head cell information corresponding to the cell, and reads the source descriptor memory in the message reorganization database based on the source identifier, and then performs step All.
- the pre-processing module determines whether the message sequence number of the cell corresponding to the first cell information of the team is greater than the maximum open message sequence number in the source descriptor memory, and if yes, step A12 is performed, and if not, Go to step A13.
- the pre-processing module inserts the first cell information into the source descriptor memory.
- the pre-processing module inserts the first cell information into one of the PF queues.
- the pre-processing module delays the cells that are not in the current open message processing window until the open message processing window covers the cells.
- a monitor can also be set to check the PF queue. If it is checked that a non-empty PF queue has not been accessed for a long time, the monitor trigger pre-processing module preferentially processes the PF.
- the PF queue can be divided into multiple parallel queues according to the delay time required by the cells.
- the cell delay time can be evaluated by subtracting the largest message sequence number in the current message reassembly database with the message sequence number in the current cell. The larger the difference, the longer the delay time required by the cell. .
- the message sorting module puts the message descriptor into the sorting message buffer area, sorts the message descriptors in the sorted message buffer area according to the message sequence number, and has the same message in the message reorganization database.
- the cell information of the sequence number is placed in the message sorting queue corresponding to the message descriptor.
- the cell sorting module sorts the cell information in the correctly sorted message according to the cell serial number, and obtains the correctly sorted cell information.
- the cell sorting module can be constructed as a plurality of synchronized complete queues, and each service type (also referred to as priority, CoS) of the message can work independently with its own control logic and data buffer queue.
- service type also referred to as priority, CoS
- the cell sorting module extracts the message descriptor of each complete message from the message sorting queue, and adds it to the corresponding complete queue according to the broadcast type and the service type of the packet (ie, CoS);
- the message descriptor in the message inserts the corresponding cell information into the cell sorting buffer, and sorts the extracted cell information in the cell sorting buffer according to the cell sequence number.
- the complete message refers to all the cells that received the message in the message reorganization database.
- the cell sort buffer can hold 2 Jumbo Packets, which is about 20K bytes. Only when the amount of data is less than half, the message descriptor is extracted and the corresponding cell information is sorted into it.
- Figure 2e which is a schematic diagram of a cell sorting mechanism, the cell sorting buffer maintains a read pointer (RD_PTR) and a write pointer (WR_PTR).
- the write pointer always points to the beginning of the currently sorted message, and the offset position of the inserted cell information is calculated by adding the write pointer and the cell sequence number.
- the cell information of the message can be sorted only when the size of the message is smaller than the size of the blank position in the cell sorting buffer. After the read pointer waits until the cell information of the next message is sorted, the cell information in the message is read one by one.
- "EOP” in Figure 2e represents the last cell in a message
- "SOP" indicates the start position of the message.
- the concatenated cell (Concatenated-Cell) can be processed as follows: When the first message is inserted, the pointer of the last cell of the first message can be inserted twice in the input FIFO while the cell is in the cell.
- the Cell-Reorder-Buffer adds a flag indicating that the first cell cannot be extracted to the reassembly mechanism.
- the second cell is reassembled, the data is discarded. This is because when the source splits the message into cells, the last cell often has a data black hole, that is, the length of the message cannot be split into several complete cells, resulting in the last cell. The valid data is smaller than the previous complete cell. Such cells can cause resource waste during transmission and processing.
- the optimization measure is that the cells are no longer segmented according to the message boundary, but the continuous message is treated as a stream slice, so that all cells contain the complete data segment.
- it will inevitably result in some cells containing both the last piece of data of the previous message and the first piece of data of the latter message. This is the last piece of data containing the previous message, and the cell containing the first piece of data of the latter message is called a spliced cell.
- the cell needs to be inserted into the input FIFO queue twice, one as The E0P cell of the previous ⁇ , one SOP cell as the next one.
- the two cells will exist continuously in the cell sorting module. Since the contents of the two cells are the same, the two cells cannot be submitted to the message. Reorganization unit. Therefore, a flag bit identifier is required as the first cell of the E0P, and the message reassembly module cannot be submitted, but after the reordering of the message of the second cell is completed, the first cell is discarded to ensure the submission. There is only one copy of the data to the message reassembly module.
- the cell sort buffer When a message is ready for reorganization, the cell sort buffer will send a request to the reorganization mechanism. Find the indication signal for message reorganization, such as the FIFO-RDY signal.
- the cell sorting mechanism (including the cell sorting buffer and the full queue) is composed of a plurality of parallel first-input first-out (FIFO) queues, and the message-based service type between the queues (also known as priority, or CoS) is distinguished from the broadcast type, thus eliminating the need for an additional queue by the sorting mechanism, which can save resources.
- FIFO first-input first-out
- the message reassembly module receives the indication signal of the request message reorganization, for example, the FIFO_RDY signal, and reads the correctly sorted cell information in the cell sorting buffer one by one, and extracts according to the read cell information. Cell data to reassemble the message.
- the indication signal of the request message reorganization for example, the FIFO_RDY signal
- the message reassembly module can be based on the service type (ie priority) of the message, because there may be multiple cell sorting buffers simultaneously sending an indication signal of the request message reassembly to the message reassembly module.
- request signal reassembly indication signals such as FIFO_RDY signals
- the received cell information is preprocessed according to the source identifier to determine whether to insert the received cell information into the message reassembly database, and then directly according to the message sequence in the cell information.
- the number and the cell serial number sort the cell information in the database, and finally extract corresponding cell data according to the sorted cell information to implement message reorganization. Since the solution can perform reordering of the packets directly according to the source, the re-reordering of the messages based on the time-scale synchronization in the prior art can be applied to the high-performance device. Moreover, since the scheme can control and manage the received cells (that is, the packets waiting to be reorganized), the utilization of resources is high, and less memory and control resources can be occupied.
- Unicast messages require source descriptor memory, indexed by ⁇ priority, source port number ⁇ .
- the multicast message requires the MGID descriptor memory and is indexed by the hash value (Hash) of ⁇ priority, MGID, source port number ⁇ .
- the MGID represents a group of destination ports that belong to the same replication domain.
- the source queue memory in unicast is replaced by MGID queue memory. That is, the multicast message reorganization database
- the multicast reorganization database may include MGID descriptor memory and MGID queue memory; wherein, the MGID descriptor memory is used to store the MGID descriptor, and the hash value of ⁇ priority, MGID, source port number ⁇ is used as an index.
- the MGID queue memory is used to store the MGID queue corresponding to the MGID descriptor.
- the MGID queue memory may include a pointer to the sorted message buffer area, and the sorted message buffer area is used to store the message waiting for the sorted cell. Descriptor, each message descriptor points to the last received cell descriptor of the cell belonging to this message.
- the MGID queue memory can be constructed as a dynamic message descriptor array, including M types of different capacity memory blocks, where M is a positive integer; each MGID descriptor contains a pointer to such a memory block, a memory block The type is determined by the size of the desired message descriptor array.
- the rows of these memories may correspond to multiple sources (that is, ⁇ priority, MGID, source port number ⁇ ). Since these lines of memory are applied for one source, a new requirement has been introduced: When requesting resources for a new multicast source, it is necessary to check that the lines have been released. In order to solve this problem, another memory is needed to maintain this information.
- a threshold may be configured, which is referred to as a first threshold in this embodiment.
- a control information is sent to the source to reduce transmission. The traffic of multicast data to this destination port.
- the multicast sorting mechanism and the reorganization mechanism are the same as the unicast, and therefore will not be described here. For details, refer to the second embodiment.
- each message descriptor should include an earliest cell timestamp (Earliest-Cell-Timestamp) indicating that the first of all cells in the message arrived. The arrival time of the cell of the destination port. If the difference between the current time and the earliest cell timestamp is greater than the preset second threshold, the message is marked as a reassembly timeout, and when the message arrives at the head of the message descriptor array, even if the message is still Instead of receiving all of its cells, it does not wait for other cells to receive the message, but pops the message and discards it. Otherwise, before the message arrives at the head of the sorting array, it does not judge whether the message is reorganized or not, but performs the following operations: When inserting the first cell of each message, update the earliest in the message descriptor. Cell timestamp field.
- the oldest cell timestamp in the source descriptor is checked regardless of which message the arriving cell belongs to. For example, in the case where no data arrives from a source, Static Source Detection (SSD, Silent-Source-Detection) will trigger such a check.
- SSD Static Source Detection
- timeout messages For timeout messages, they will be transferred to the message collection mechanism for processing.
- the Chinese reorganization reordering method may further include:
- the destination port discards the packet when the estimated value of the delay of the switching network (that is, the transmission time of the packet in the switching network) exceeds the preset third threshold.
- the transmission time of the packet in the switching network can be estimated by the destination port according to the sequence number of the packet.
- the embodiment of the present invention further provides a network device, which can be specifically used as a destination port.
- the network device includes a receiving unit 301, a pre-processing unit 302, a message sorting unit 303, a cell sorting unit 304, and a recombining unit 305.
- the receiving unit 301 is configured to receive a cell that is sent by the source port, where the cell carries a source identifier, a message sequence number, and a cell sequence number, and the source identifier may be a source port number.
- the pre-processing unit 302 is configured to pre-process the cells received by the receiving unit 301 according to the source identifier to determine whether to insert the cell into the database;
- the message sorting unit 303 is configured to sort the cells in the message reorganization database according to the message sequence number, to obtain correctly sorted messages;
- the cell sorting unit 304 is configured to: when determining that the message is a complete message, sort the cells in the correctly sorted message obtained by the message sorting unit 303 according to the cell sequence number, to obtain the correctly sorted cells;
- the recombining unit 305 is configured to perform message reassembly on the correctly sorted cells obtained by the cell sorting unit 304.
- the cell may include cell data and cell information. To save resources, in the process of sorting, only the cell information may be operated.
- the recombining unit 305 reassembles the message, the corresponding information is extracted according to the cell information.
- the cell data is reorganized.
- the pre-processing unit 302 can include a data saving sub-unit 3021, an information insertion sub-unit 3022, and a decision sub-unit 3023.
- the data saving subunit 3021 is configured to: after the local timestamp of the arrival of the cell received by the receiving unit 301, save the cell data of the cell in the load memory according to the source identifier, and configure the corresponding load memory index value. ;
- the information insertion subunit 3022 is configured to insert the cell information of the cell received by the receiving unit 301 into the input FIFO queue, where the cell information includes a source identifier of the cell, a local timestamp, and a load memory index. Information such as value, message serial number, and cell serial number;
- the decision subunit 3023 is configured to process, according to the source identifier, the message sequence number, and the state of the PF queue, the cell information inserted into the IF queue by the information insertion subunit 3022 to determine whether to insert the cell information into the text reorganization database. Go in.
- the details can be as follows:
- the determining sub-unit 3023 is specifically configured to: when the depth of all the PF queues is less than a preset threshold, Whether the difference between the message sequence number of the cell corresponding to the first cell information of the IF queue and the minimum message sequence number of the currently processed message is less than the fourth threshold; if yes, the head of the IF queue is popped up. Cell information; if not, the head cell information of the IF queue is pushed into one of the PF queues, and the head cell information of the most complete PF queue is popped up; the head cell information of the popped IF queue is determined.
- the cell corresponding to the cell header information of the corresponding cell or PF queue times out; if it times out, recovers the cell corresponding to the cell information and the message to which the cell belongs; if there is no timeout,
- the cell information is inserted into the message reassembly database; the message sequence number of the cell is greater than the message reassembly
- the maximum open message sequence number of the same source in the database is used, the cell information is inserted into one of the PF queues.
- the decision subunit is further configured to: when the depth of the PF queue is greater than a preset threshold, determine, according to the local timestamp, the message sequence number of the cell corresponding to the cell head cell information in the overflow PF queue and is currently processing Whether the difference of the minimum message sequence number of the message is less than the fourth threshold; if yes, recovering the cell corresponding to the head cell information of the overflow PF queue, and then performing determining the IF queue squad first cell information The step of whether the difference between the packet sequence number of the corresponding cell and the minimum packet sequence number of the currently processed packet is less than the fourth threshold; if not, performing the step of pushing the cell header information of the IF queue into One of the PF queues, and pops up the leader cell information step of the fullest PF queue.
- the message reorganization database can be designed separately for unicast and multicast.
- a message reorganization database for unicast and a message reorganization database for multicast can be separately set in a message reassembly database.
- the message reorganization database may include source descriptor memory and source queue memory.
- the source descriptor memory is used to store the source descriptor, and the packet service type and the source port number are indexed, that is, the ⁇ message service type, source port number ⁇ is used as an index; and the source queue memory is used for storing
- the source queue corresponding to the source descriptor, the source queue memory may include a pointer to the sorting message buffer area, and the sorting message buffer area is used to store the message descriptors of the cells waiting for sorting, and each message descriptor points to The cell descriptor of the cell that was last received for this message.
- the source descriptor memory and the source queue memory may be created by a dynamic message descriptor array, including N types of memory blocks of different capacities, where N is a positive integer.
- the message reassembly database includes MGID descriptor memory and MGID queue memory.
- the source MGID descriptor memory is used to store the MGID descriptor, and is indexed by the packet service type, the MGID, and the source port number, for example, a hash value of the ⁇ message service type, MGID, source port number ⁇ .
- the MGID queue memory is used to store the MGID queue corresponding to the MGID descriptor, and the MGID queue memory may include a pointer to the sorting message buffer area, where the sorting message buffer area is used for waiting for sorting.
- the message descriptor of the cell each message descriptor pointing to the last received cell descriptor of the cell belonging to the message.
- the MGID descriptor memory and the MGID queue memory are dynamic message descriptor arrays, including M types of memory modules of different capacities, where M is a positive integer.
- the MGID descriptor memory and the MGID queue memory support the hash function, that is, each process (such as an IF queue, a PF queue, a full queue, a sorted message buffer, and a cell sort buffer) can access the MGID descriptor memory through a hash function.
- MGID queue memory ie:
- the message sorting unit 303 is specifically configured to access the MGID descriptor memory and the MGID queue memory by using a hash function;
- the hash function can be constructed as multiple hash buckets. Since the hash function is adopted, resource conflicts may occur. Therefore, it is also necessary to maintain a resource conflict lookup table (FAVT), so that when a resource conflict occurs, a resource conflict may occur according to the preset resource conflict lookup table. The cell is pushed into another MGID queue or discarded. Therefore, as shown in FIG. 3b, the network device may further include a conflict processing unit 306;
- the conflict processing unit 306 is configured to: when a resource conflict occurs, push a cell that has a resource conflict according to a preset resource conflict query table into another MGID queue or discard (ie, recycle). Specifically, when the packet sorting unit 303 accesses the MGID descriptor memory and the MGID queue memory through the hash function, if a resource conflict occurs, the cell in which the resource conflict occurs is pushed into another MGID according to the preset resource conflict query table. Queue or discard.
- a threshold may be configured, which is referred to as a first threshold in the embodiment of the present invention.
- a control information is sent to the source.
- the network device may further include a control message sending unit 307;
- the control message sending unit 307 is configured to: when the information amount of the resource conflict lookup table exceeds a preset first threshold, trigger the destination port to send control information to the multicast source, so as to reduce multicast sent to the destination port.
- the amount of data is configured to: when the information amount of the resource conflict lookup table exceeds a preset first threshold, trigger the destination port to send control information to the multicast source, so as to reduce multicast sent to the destination port. The amount of data.
- the cell sorting unit 304 may include an enqueue subunit 3041, a buffer subunit 3042, and a sorting subunit 3043;
- the enqueue sub-unit 3041 is configured to add the message descriptor of the complete message to the corresponding complete message according to the broadcast type and priority of the cell when determining that the packet ordered by the message sorting unit 302 is a complete message. In the queue;
- a buffer subunit 3042 configured to insert corresponding cell information into the cell sorting buffer according to a message descriptor in the complete queue
- the sorting sub-unit 3043 is configured to sort the extracted cell information in the cell sorting buffer according to the cell sequence number.
- the cell sorting buffer maintains a read pointer and a write pointer.
- the write pointer always points to the start position of the message currently being sorted by the cell, and the read pointer is used to read the sorted cell information one by one. Performing the reorganization of the text, therefore, the write pointer and the cell sequence number can be added to calculate the offset position of the inserted cell information, and then the position of the inserted cell information in the message is adjusted according to the offset position, Get the correctly sorted cell information; ie:
- the sorting sub-unit 3043 is specifically configured to add the write pointer and the cell sequence number to calculate an offset position of the inserted cell information, and adjust the position of the inserted cell information in the message according to the offset position.
- the reassembly unit 305 may include an allocation subunit 3051, a reading subunit 3052, and a recombination subunit 3053; the text of the correctly sorted cell information is allocated to the recombination resource;
- the reading subunit 3052 is configured to read out the correctly sorted cell information in the cell sorting buffer one by one;
- the recombination subunit 3053 is configured to obtain corresponding cell data according to the cell information read by the reading subunit 3052, and perform reassembly of the obtained cell data by using the recombination resource allocated by the allocation subunit. For example, the recombination subunit 3053 can read the cell data stored in the payload memory by the data storage subunit 3021 according to the cell information read by the subunit 3052.
- At least two recombination resources may be allocated to the packet of the correctly sorted cell information, that is, The allocation sub-unit 3051 is further configured to allocate at least two recombination resources for the belonging "3 ⁇ 4" of the correctly sorted cell information.
- the reorganized resources are managed in a resource pool and allocated to each source when needed.
- it means when the reorganization is about to start; for example, when the cells in the sorting buffer have been correctly ordered, an indication signal requesting message reorganization can be sent, such as FIFO-RDY signal to report
- the message reorganization mechanism can start to reassemble the message in the sort buffer.
- the message reassembly mechanism may receive multiple indication signals for reassembly of the request message. In this case, the message reassembly mechanism may select a message according to the packet service type.
- the meta-sort buffer is processed, that is, the reorganization unit may further include a selection sub-unit 3054;
- the selecting subunit 3054 is configured to select a cell sorting buffer according to the packet service type; then the subunit 3051 is configured to be used for selecting the correctly sorted cell information in the cell sorting buffer selected by the selecting subunit 3054. >3 ⁇ 4 text assigned to the reorganization resource;
- the reading subunit 3052 is configured to read out the correctly sorted cell information in the cell sorting buffer selected by the selecting subunit 3054 one by one.
- the network device may further include a discarding unit, and the discarding unit is configured to discard the packet when the packet reassembly timeout is determined.
- the discarding unit is configured to confirm that the packet reassembly is timed out when the difference between the arrival time of the first cell that reaches the destination port in the packet and the current time is greater than a preset second threshold.
- the details may be as follows: Each message descriptor includes an earliest cell timestamp indicating the arrival time of the first cell of the cell that reaches the destination port among all cells of the message.
- the message is marked as a reassembly timeout, and when the message arrives at the head of the message descriptor array, even if the message is still Instead of receiving all of its cells, it does not wait for other cells to receive the message, but pops the message and discards it.
- the receiving unit 301 is configured to receive the cell that is sent by the source port by using the switching network.
- the discarding unit is further configured to: when the estimated value of the switching network delay exceeds a preset third threshold, discard the packet.
- the transmission time of the packet in the switching network can be estimated by the destination port according to the sequence number of the packet.
- the specific values of the second threshold and the third threshold may be set according to actual application requirements.
- the foregoing units may be implemented as separate entities, or may be implemented as the same entity or multiple entities.
- the pre-processing unit 302 may be implemented by the pre-processing module in the second embodiment
- the message sorting unit 303 The message sorting module in the second embodiment can be implemented by the message sorting module in the second embodiment
- the reorganization unit 305 can be implemented by the message reassembly module in the second embodiment.
- the discarding unit can be implemented by the message reclamation module and the signaling reclaiming module in the second embodiment, and the like.
- the obtained cell is preprocessed to determine whether the received cell is inserted into the message reassembly database, and then the message sorting unit 303 and the cell sorting unit 304 directly access the database according to the message sequence number and the cell sequence number of the cell.
- the cells in the cell are sorted, and finally the reassembly unit 305 reassembles the message according to the ordered cells. Since the scheme can re-synthesize the text directly according to the source, it can be applied to the high-performance device as compared with the prior art, based on the time-scale synchronization to implement the reordering of the message. Moreover, since the scheme can control and manage the received cells (that is, the packets waiting to be reorganized), the utilization of resources is high, and less memory and control resources can be occupied.
- the embodiment of the present invention further provides a communication system, including a source port device and any network device provided by the embodiment of the present invention, where the network device serves as a destination port (referred to as a destination port device), and specifically See the previous embodiment; for example, it can be as follows:
- the destination port device is configured as a destination port, and is configured to receive a cell sent by the source port, where the cell carries the source identifier, the packet sequence number, and the cell sequence number, and performs pre-processing on the received cell according to the source identifier. Determining whether to insert the cell into the message reorganization database, sorting the cells in the message reassembly database according to the message sequence number, and obtaining the correctly sorted message, if the correctly sorted message is complete The message, according to the cell sequence number, sorts the cells in the correctly sorted message, obtains the correctly sorted cells, and performs the reorganization of the correctly sorted cells;
- the source port device is used as a source port to send a cell to the destination port device.
- the cell carries the source identifier, the packet sequence number, and the cell sequence number.
- the destination port device is specifically configured to: after receiving the local timestamp of the received cell, the cell data of the cell is saved in the load memory according to the source identifier, and the corresponding load memory index value is configured; The cell information of the cell is inserted into the IF queue, where the cell information includes the source identifier of the cell, the local timestamp, the load memory index value, the message sequence number, and the cell sequence number; according to the source identifier, the local timestamp, and The state of the PF queue processes the cell information in the IF queue to determine whether to insert the cell information into the "3" text reorganization database. See the previous method embodiment and Figure 2d for details.
- the destination port device of the communication system in this embodiment preprocesses the received cell according to the source identifier to determine whether to insert the received cell into the message reassembly database, and then directly according to the cell.
- the message sequence number and the cell sequence number sort the cells in the database, and finally the message is reorganized. Since the solution can re-sequence the packets according to the source, the re-reordering of the packets based on the time-scale synchronization in the prior art can be applied to the high-performance device. Moreover, since the solution can control the received cells (that is, the packets waiting to be reorganized), the utilization of resources is high, and less memory and control resources can be occupied.
- the program may be stored in a computer readable storage medium, and the storage medium may include: Read only memory (ROM, Read Only Memory), random access memory (RAM), disk or optical disk.
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
Claims
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201180001422.5A CN103069757B (zh) | 2011-08-17 | 2011-08-17 | 一种报文重组重排序方法、装置和*** |
KR1020147005957A KR101607180B1 (ko) | 2011-08-17 | 2011-08-17 | 패킷 재조립 및 재배열 방법, 장치 및 시스템 |
JP2014525279A JP5863076B2 (ja) | 2011-08-17 | 2011-08-17 | パケットを再構築し再順序付けするための方法、装置、およびシステム |
PCT/CN2011/078504 WO2012162949A1 (zh) | 2011-08-17 | 2011-08-17 | 一种报文重组重排序方法、装置和*** |
EP11866504.1A EP2736197B1 (en) | 2011-08-17 | 2011-08-17 | Packet reassembly and resequence method, apparatus and system |
US14/182,106 US9380007B2 (en) | 2011-08-17 | 2014-02-17 | Method, apparatus and system for packet reassembly and reordering |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/078504 WO2012162949A1 (zh) | 2011-08-17 | 2011-08-17 | 一种报文重组重排序方法、装置和*** |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/182,106 Continuation US9380007B2 (en) | 2011-08-17 | 2014-02-17 | Method, apparatus and system for packet reassembly and reordering |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012162949A1 true WO2012162949A1 (zh) | 2012-12-06 |
Family
ID=47258297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2011/078504 WO2012162949A1 (zh) | 2011-08-17 | 2011-08-17 | 一种报文重组重排序方法、装置和*** |
Country Status (6)
Country | Link |
---|---|
US (1) | US9380007B2 (zh) |
EP (1) | EP2736197B1 (zh) |
JP (1) | JP5863076B2 (zh) |
KR (1) | KR101607180B1 (zh) |
CN (1) | CN103069757B (zh) |
WO (1) | WO2012162949A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573711A (zh) * | 2014-10-14 | 2016-05-11 | 深圳市中兴微电子技术有限公司 | 一种数据缓存方法及装置 |
CN106911644A (zh) * | 2015-12-23 | 2017-06-30 | ***通信集团广西有限公司 | 一种报文重组方法和设备 |
CN109561443A (zh) * | 2017-09-26 | 2019-04-02 | 电信科学技术研究院 | 一种信息处理方法、装置、设备及计算机可读存储介质 |
CN114390004A (zh) * | 2022-03-24 | 2022-04-22 | 成都数联云算科技有限公司 | 一种报文处理方法及***及装置及介质 |
CN114679425B (zh) * | 2022-03-24 | 2024-05-31 | 深圳震有科技股份有限公司 | 一种5g网络下的报文处理方法、网络设备及存储介质 |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253248B2 (en) * | 2010-11-15 | 2016-02-02 | Interactic Holdings, Llc | Parallel information system utilizing flow control and virtual channels |
US9146677B2 (en) * | 2013-01-28 | 2015-09-29 | Applied Micro Circuits Corporation | Systems and methods for queue request ordering without stalling requests in aliasing conditions by using a hash indexed based table |
US10454714B2 (en) | 2013-07-10 | 2019-10-22 | Nicira, Inc. | Method and system of overlay flow control |
US9338105B2 (en) * | 2013-09-03 | 2016-05-10 | Broadcom Corporation | Providing oversubscription of pipeline bandwidth |
GB2533328A (en) * | 2014-12-16 | 2016-06-22 | Ibm | Message processing |
JP6342351B2 (ja) * | 2015-03-02 | 2018-06-13 | 東芝メモリ株式会社 | ストレージシステム |
US10135789B2 (en) | 2015-04-13 | 2018-11-20 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US20170017420A1 (en) * | 2015-07-15 | 2017-01-19 | Innovium, Inc. | System And Method For Enabling High Read Rates To Data Element Lists |
US20170017419A1 (en) * | 2015-07-15 | 2017-01-19 | Innovium, Inc. | System And Method For Enabling High Read Rates To Data Element Lists |
US9904635B2 (en) * | 2015-08-27 | 2018-02-27 | Samsung Electronics Co., Ltd. | High performance transaction-based memory systems |
KR101785821B1 (ko) | 2016-01-04 | 2017-10-16 | 엘에스산전 주식회사 | 시리얼 통신의 프레임 수신 모니터링 방법 |
US10089339B2 (en) * | 2016-07-18 | 2018-10-02 | Arm Limited | Datagram reassembly |
US9906821B1 (en) * | 2016-08-23 | 2018-02-27 | Cisco Technology, Inc. | Packet reordering system |
US10992568B2 (en) | 2017-01-31 | 2021-04-27 | Vmware, Inc. | High performance software-defined core network |
US20200036624A1 (en) | 2017-01-31 | 2020-01-30 | The Mode Group | High performance software-defined core network |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US20180219765A1 (en) | 2017-01-31 | 2018-08-02 | Waltz Networks | Method and Apparatus for Network Traffic Control Optimization |
US10686625B2 (en) | 2017-10-02 | 2020-06-16 | Vmware, Inc. | Defining and distributing routes for a virtual network |
US11115480B2 (en) | 2017-10-02 | 2021-09-07 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US10999100B2 (en) | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US11223514B2 (en) | 2017-11-09 | 2022-01-11 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
CN110391990A (zh) * | 2018-04-18 | 2019-10-29 | 中兴通讯股份有限公司 | 数据传输方法及装置、***、存储介质、电子装置 |
US10567307B2 (en) | 2018-04-27 | 2020-02-18 | Avago Technologies International Sales Pte. Limited | Traffic management for high-bandwidth switching |
US10686714B2 (en) * | 2018-04-27 | 2020-06-16 | Avago Technologies International Sales Pte. Limited | Traffic management for high-bandwidth switching |
US10820057B2 (en) | 2018-11-07 | 2020-10-27 | Nvidia Corp. | Scalable light-weight protocols for wire-speed packet ordering |
US11108704B2 (en) | 2018-12-04 | 2021-08-31 | Nvidia Corp. | Use of stashing buffers to improve the efficiency of crossbar switches |
US11805081B2 (en) * | 2019-03-04 | 2023-10-31 | Intel Corporation | Apparatus and method for buffer management for receive segment coalescing |
US10999137B2 (en) | 2019-08-27 | 2021-05-04 | Vmware, Inc. | Providing recommendations for implementing virtual networks |
US11044190B2 (en) | 2019-10-28 | 2021-06-22 | Vmware, Inc. | Managing forwarding elements at edge nodes connected to a virtual network |
EP4049421B1 (en) * | 2019-10-29 | 2023-11-29 | Huawei Technologies Co., Ltd. | Systems and methods for sorting data elements with approximation to o(1) |
US11489783B2 (en) | 2019-12-12 | 2022-11-01 | Vmware, Inc. | Performing deep packet inspection in a software defined wide area network |
US11606712B2 (en) | 2020-01-24 | 2023-03-14 | Vmware, Inc. | Dynamically assigning service classes for a QOS aware network link |
US11190457B2 (en) * | 2020-02-19 | 2021-11-30 | At&T Intellectual Property I, L.P. | Selectively bypassing a routing queue in a routing device in a fifth generation (5G) or other next generation network |
CN112511455A (zh) * | 2020-04-30 | 2021-03-16 | 中兴通讯股份有限公司 | 信元流特征值调整方法、装置、***和存储介质 |
US11363124B2 (en) | 2020-07-30 | 2022-06-14 | Vmware, Inc. | Zero copy socket splicing |
US11575591B2 (en) | 2020-11-17 | 2023-02-07 | Vmware, Inc. | Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN |
US11575600B2 (en) | 2020-11-24 | 2023-02-07 | Vmware, Inc. | Tunnel-less SD-WAN |
US11929903B2 (en) | 2020-12-29 | 2024-03-12 | VMware LLC | Emulating packet flows to assess network links for SD-WAN |
WO2022154725A1 (en) * | 2021-01-14 | 2022-07-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Packet tunneling in a wireless communication network |
US11792127B2 (en) | 2021-01-18 | 2023-10-17 | Vmware, Inc. | Network-aware load balancing |
US11979325B2 (en) | 2021-01-28 | 2024-05-07 | VMware LLC | Dynamic SD-WAN hub cluster scaling with machine learning |
CN113014586B (zh) * | 2021-03-04 | 2022-09-13 | 即时匹配(上海)网络科技有限公司 | Rtp数据包乱序处理及重组帧方法和*** |
US11381499B1 (en) | 2021-05-03 | 2022-07-05 | Vmware, Inc. | Routing meshes for facilitating routing through an SD-WAN |
US11729065B2 (en) | 2021-05-06 | 2023-08-15 | Vmware, Inc. | Methods for application defined virtual network service among multiple transport in SD-WAN |
US11681575B2 (en) * | 2021-06-10 | 2023-06-20 | Arm Limited | Ordered data sub-component extraction |
CN113691469B (zh) * | 2021-07-27 | 2023-12-26 | 新华三技术有限公司合肥分公司 | 报文乱序重排方法及单板 |
CN113676413B (zh) * | 2021-08-26 | 2024-05-17 | 锐捷网络股份有限公司 | 一种乱序报文的重排方法、装置及存储介质 |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
CN113965391B (zh) * | 2021-10-27 | 2023-10-20 | 成都数默科技有限公司 | 一种多数据包文件冒泡排序的方法 |
US11770215B2 (en) | 2022-02-17 | 2023-09-26 | Nvidia Corp. | Transceiver system with end-to-end reliability and ordering protocols |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
CN114968893B (zh) * | 2022-07-27 | 2022-09-30 | 井芯微电子技术(天津)有限公司 | 基于时间戳的PCIe报文队列调度方法、***及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6781992B1 (en) * | 2000-11-30 | 2004-08-24 | Netrake Corporation | Queue engine for reassembling and reordering data packets in a network |
US20090252168A1 (en) * | 2008-04-02 | 2009-10-08 | Alaxala Networks Corporation | Multi-plane cell switch fabric system |
CN101795236A (zh) * | 2010-03-31 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 报文保序方法及装置 |
CN101932006A (zh) * | 2009-06-19 | 2010-12-29 | 中兴通讯股份有限公司 | 数据包发送、接收、传输方法及装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2848784B2 (ja) * | 1994-08-02 | 1999-01-20 | 沖電気工業株式会社 | パケット交換方式 |
US5802050A (en) | 1996-06-10 | 1998-09-01 | Telefonaktiebolaget Lm Ericsson | Minicell sequence number count |
US6791947B2 (en) * | 1996-12-16 | 2004-09-14 | Juniper Networks | In-line packet processing |
US6148001A (en) * | 1997-06-12 | 2000-11-14 | Nokia Telecommunications, Oy | Multipoint-to-point system which multiplexes complete packets comprised of ATM cells on to a single virtual channel connection |
US6741552B1 (en) * | 1998-02-12 | 2004-05-25 | Pmc Sierra Inertnational, Inc. | Fault-tolerant, highly-scalable cell switching architecture |
JP2001036549A (ja) * | 1999-07-15 | 2001-02-09 | Toshiba Corp | データ処理システムおよびタイムスタンプ生成方法 |
US7102999B1 (en) * | 1999-11-24 | 2006-09-05 | Juniper Networks, Inc. | Switching device |
US6977930B1 (en) * | 2000-02-14 | 2005-12-20 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US7107359B1 (en) * | 2000-10-30 | 2006-09-12 | Intel Corporation | Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network |
US7095744B2 (en) * | 2000-11-22 | 2006-08-22 | Dune Networks | Method and system for switching variable sized packets |
JP4489308B2 (ja) * | 2001-01-05 | 2010-06-23 | 富士通株式会社 | パケットスイッチ |
US7342942B1 (en) * | 2001-02-07 | 2008-03-11 | Cortina Systems, Inc. | Multi-service segmentation and reassembly device that maintains only one reassembly context per active output port |
US7085274B1 (en) * | 2001-09-19 | 2006-08-01 | Juniper Networks, Inc. | Context-switched multi-stream pipelined reorder engine |
US7167476B1 (en) * | 2002-04-12 | 2007-01-23 | Juniper Networks, Inc. | Systems and methods for routing data in a network device |
US7124231B1 (en) * | 2002-06-14 | 2006-10-17 | Cisco Technology, Inc. | Split transaction reordering circuit |
US7486678B1 (en) | 2002-07-03 | 2009-02-03 | Greenfield Networks | Multi-slice network processor |
US20050100035A1 (en) * | 2003-11-11 | 2005-05-12 | Avici Systems, Inc. | Adaptive source routing and packet processing |
US7873693B1 (en) * | 2004-02-13 | 2011-01-18 | Habanero Holdings, Inc. | Multi-chassis fabric-backplane enterprise servers |
US8279866B2 (en) * | 2004-11-17 | 2012-10-02 | Samsung Electronics Co., Ltd. | Method and system for switching packets in a communication network |
US8553684B2 (en) * | 2006-04-24 | 2013-10-08 | Broadcom Corporation | Network switching system having variable headers and addresses |
JP4867778B2 (ja) | 2007-05-07 | 2012-02-01 | 株式会社日立製作所 | 分散型スイッチファブリックシステム |
ES2363942T3 (es) * | 2008-12-19 | 2011-08-19 | Alcatel Lucent | Elemento de red escalable con funcionalidad de segmentación y reensamblaje (sar) para conmutar señales de multiplexación por división de tiempo. |
US9602439B2 (en) * | 2010-04-30 | 2017-03-21 | Juniper Networks, Inc. | Methods and apparatus for flow control associated with a switch fabric |
US9071499B2 (en) * | 2011-03-28 | 2015-06-30 | Citrix Systems, Inc. | Systems and methods for emulating a NIC for packet transmission on hardware RSS unaware NICs in a multi-core system |
-
2011
- 2011-08-17 JP JP2014525279A patent/JP5863076B2/ja active Active
- 2011-08-17 EP EP11866504.1A patent/EP2736197B1/en not_active Not-in-force
- 2011-08-17 KR KR1020147005957A patent/KR101607180B1/ko active IP Right Grant
- 2011-08-17 WO PCT/CN2011/078504 patent/WO2012162949A1/zh active Application Filing
- 2011-08-17 CN CN201180001422.5A patent/CN103069757B/zh active Active
-
2014
- 2014-02-17 US US14/182,106 patent/US9380007B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6781992B1 (en) * | 2000-11-30 | 2004-08-24 | Netrake Corporation | Queue engine for reassembling and reordering data packets in a network |
US20090252168A1 (en) * | 2008-04-02 | 2009-10-08 | Alaxala Networks Corporation | Multi-plane cell switch fabric system |
CN101932006A (zh) * | 2009-06-19 | 2010-12-29 | 中兴通讯股份有限公司 | 数据包发送、接收、传输方法及装置 |
CN101795236A (zh) * | 2010-03-31 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 报文保序方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573711A (zh) * | 2014-10-14 | 2016-05-11 | 深圳市中兴微电子技术有限公司 | 一种数据缓存方法及装置 |
US10205673B2 (en) | 2014-10-14 | 2019-02-12 | Sanechips Technology Co. Ltd. | Data caching method and device, and storage medium |
CN105573711B (zh) * | 2014-10-14 | 2019-07-19 | 深圳市中兴微电子技术有限公司 | 一种数据缓存方法及装置 |
CN106911644A (zh) * | 2015-12-23 | 2017-06-30 | ***通信集团广西有限公司 | 一种报文重组方法和设备 |
CN109561443A (zh) * | 2017-09-26 | 2019-04-02 | 电信科学技术研究院 | 一种信息处理方法、装置、设备及计算机可读存储介质 |
CN109561443B (zh) * | 2017-09-26 | 2021-06-11 | 大唐移动通信设备有限公司 | 一种信息处理方法、装置、设备及计算机可读存储介质 |
CN114390004A (zh) * | 2022-03-24 | 2022-04-22 | 成都数联云算科技有限公司 | 一种报文处理方法及***及装置及介质 |
CN114679425B (zh) * | 2022-03-24 | 2024-05-31 | 深圳震有科技股份有限公司 | 一种5g网络下的报文处理方法、网络设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2736197A4 (en) | 2014-05-28 |
US20140160935A1 (en) | 2014-06-12 |
CN103069757A (zh) | 2013-04-24 |
EP2736197B1 (en) | 2016-03-09 |
EP2736197A1 (en) | 2014-05-28 |
JP2014522202A (ja) | 2014-08-28 |
KR20140046052A (ko) | 2014-04-17 |
US9380007B2 (en) | 2016-06-28 |
KR101607180B1 (ko) | 2016-03-29 |
JP5863076B2 (ja) | 2016-02-16 |
CN103069757B (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012162949A1 (zh) | 一种报文重组重排序方法、装置和*** | |
US8505013B2 (en) | Reducing data read latency in a network communications processor architecture | |
CN107948094B (zh) | 一种高速数据帧无冲突入队处理的装置及方法 | |
EP0960511B1 (en) | Method and apparatus for reclaiming buffers | |
US8514874B2 (en) | Thread synchronization in a multi-thread network communications processor architecture | |
US5311509A (en) | Configurable gigabits switch adapter | |
US9864633B2 (en) | Network processor having multicasting protocol | |
US7406041B2 (en) | System and method for late-dropping packets in a network switch | |
JP4779955B2 (ja) | パケット処理装置及びパケット処理方法 | |
US8910171B2 (en) | Thread synchronization in a multi-thread network communications processor architecture | |
CN112084136B (zh) | 队列缓存管理方法、***、存储介质、计算机设备及应用 | |
US8432908B2 (en) | Efficient packet replication | |
JP5892500B2 (ja) | メッセージ処理方法及び装置 | |
JPH07321822A (ja) | マルチキャスティング機能を備えた装置 | |
US8868889B2 (en) | Instruction breakpoints in a multi-core, multi-thread network communications processor architecture | |
EP2526478B1 (en) | A packet buffer comprising a data section an a data description section | |
WO2006098763A2 (en) | Intelligent memory interface | |
CN114531488B (zh) | 一种面向以太网交换器的高效缓存管理*** | |
CN104158770A (zh) | 一种交换机数据包切分与重组的方法与装置 | |
CN102916902A (zh) | 数据存储方法及装置 | |
WO2022121808A1 (zh) | 直通转发模式的调度方法、设备及存储介质 | |
US11201831B1 (en) | Packed ingress interface for network apparatuses | |
US7751422B2 (en) | Group tag caching of memory contents | |
CN111131089A (zh) | 改善多播业务hol阻塞的队列管理方法 | |
CN100495974C (zh) | 数据传输过程中的流量整形方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 201180001422.5 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11866504 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2014525279 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011866504 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 20147005957 Country of ref document: KR Kind code of ref document: A |