KR20130126789A - Apparatus and method for processing packet using flow and sequence information - Google Patents

Apparatus and method for processing packet using flow and sequence information Download PDF

Info

Publication number
KR20130126789A
KR20130126789A KR1020120040409A KR20120040409A KR20130126789A KR 20130126789 A KR20130126789 A KR 20130126789A KR 1020120040409 A KR1020120040409 A KR 1020120040409A KR 20120040409 A KR20120040409 A KR 20120040409A KR 20130126789 A KR20130126789 A KR 20130126789A
Authority
KR
South Korea
Prior art keywords
packet
flow
packets
output
flow information
Prior art date
Application number
KR1020120040409A
Other languages
Korean (ko)
Inventor
오상윤
Original Assignee
한국전자통신연구원
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 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020120040409A priority Critical patent/KR20130126789A/en
Publication of KR20130126789A publication Critical patent/KR20130126789A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first

Landscapes

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

Abstract

Disclosed are a device and method for processing packets by using flow and sequence information. The present invention comprises the following parts: a packet receiving part receiving packets; a scheduler generating packet flow information and packet storage addresses based on the received packets; a memory storing the received packets; multiple processors processing the packets stored in the memory by using the packet flow information and packet storage addresses generated by the scheduler; and a packet output part outputting the packets, which were processed by the processors, starting with the oldest packet according to the flow information by using the packet flow information and packet storage addresses generated by the scheduler. According to the present invention, packet data is assigned to all the processors regardless of the flow of packets, and then the multiple processors are efficiently scheduled by using the flow information and sequence information of the packets, thereby increasing the speed of packet processing and outputting packets with identical flow in the order of input. [Reference numerals] (100) Packet receiving part;(200) Scheduler;(300) Memory;(400-1) Processor 1;(400-2) Processor 2;(400-3) Processor 3;(400-j) Processor j;(500) Packet output part

Description

Apparatus and method for processing packet using flow and sequence information}

The present invention relates to a network device, and more particularly, to a packet processing device and a processing method using flow and order information.

With the development of network technology, the Internet has exploded. In addition, the data transmitted from the Internet occupies a large amount of multimedia data such as images, audio, and video as well as text.

In case of data transmission in audio, video, internet telephony and internet broadcasting, if the transmission data is large, it is divided into small data units called packets and transmitted sequentially. In this case, the transmission order of the packets must be maintained in order to transmit without interruption. The time should be within the allowable delay time.

Therefore, the network device requires a lot of data processing capability for quality of service (QoS) such as not only the transmission of the packet to the destination of the packet but also the maintenance of the packet transmission order and the maximum allowable delay time between packets. do.

In general, to improve the data throughput, rather than using a single processor to perform parallel processing using multiple processors to improve the overall throughput.

In this case, packet data transmission between the program transmitting the packet and the receiving program is regarded as one flow to maintain the packet transmission order. Processing can be done in parallel and transmission order is maintained on the receiving side. In this case, in general, since the number of flows is considerably larger than the number of processors, parallel processing may be performed by a plurality of processors, but only packets of the same flow may be input or only packets having a flow attribute that is considerably less than the number of processors. In this case, only a few processors process a packet and the remaining processors have a problem in that packet processing efficiency is lowered in a standby state.

In addition, if only packets of the same flow are input, if multiple processors perform parallel processing in the order of input, the flow properties are the same, but the attributes such as the size of each packet are different so that the packets are not processed in the assigned order. There is a problem that there is a possibility that a later allocated packet is outputted first.

The present invention is to solve this problem, by using the packet flow information and order information to allocate packet data to all processors regardless of the flow to improve the packet processing speed and in the order entered for packets of the same flow The purpose is to output the packet.

In order to achieve the above technical problem, a packet processing apparatus includes a packet receiving unit for receiving a packet, a scheduler for generating packet flow information and a packet storage address based on the received packet, and a memory for storing the received packet And a plurality of processors for processing the packets stored in the memory using the flow information and the packet storage address of the packet generated by the scheduler, and the flow information and the packet storage address of the packet generated by the scheduler. It may include a packet output unit for outputting the packet processed by the processor from the oldest packet for each flow information.

According to another aspect, a packet processing method includes receiving a packet, generating a flow information and a packet storage address based on the received packet, generating a flow-specific linked list based on the flow information and the packet storage address; Processing the received packet, comparing the packet storage address of the processed packet with the link list for each flow, and outputting if the processed packet is the packet of the oldest packet storage address for each flow information and storing the oldest packet for each flow information. If not the packet of the address may include the step of waiting.

According to the present invention, by using packet flow information and sequence information, packet data is allocated to all processors irrespective of the flow of packets to efficiently schedule a plurality of processors, thereby improving packet processing speed and inputting packets of the same flow. This has the effect of outputting the packets in the correct order.

1 is a block diagram showing the configuration of a packet processing apparatus according to an embodiment of the present invention.
2 is a flowchart illustrating a packet processing method according to an embodiment of the present invention.

Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. In addition, the terms described below are defined in consideration of the functions of the present invention, and this may vary depending on the intention of the user, the operator, or the like. Therefore, the definition should be based on the contents throughout this specification.

1 is a block diagram showing the configuration of a packet processing apparatus according to an embodiment of the present invention. As shown, the packet processing apparatus according to an embodiment includes a packet receiver 100, a scheduler 200, a memory 300, a plurality of processors 400-1 to 400-j, and a packet output unit 500. It includes.

The packet receiving unit 100 receives a packet input through an input port.

The scheduler 200 transmits the received packet to the memory 300, generates flow information and packet storage address of the packet based on the received packet, and transmits the flow information and packet storage address to the packet output unit 500. Send. For example, the flow information is generated based on the 5-tuple information of the packet data header. In this case, the 5 tuple information of the packet data header includes a source IP address, a destination IP address, a source port number, a destination port number, It may be divided into protocol information.

The scheduler 200 receives the processor IDs from each of the processors 400-1 through 400-j and stores them sequentially. When the scheduler 200 receives the packets, the scheduler 200 reads the processor IDs in the oldest order and flows the packets received by the processor. Send information and packet storage address. If there is no processor ID stored in the scheduler 200, the flow information of the packet and the packet storage address are sequentially stored, and when the processor ID is received from the processor (for example, 400-1), the flow information and packet of the stored packet are received. The packet flow information and the packet storage address are transmitted to the processor (for example, 400-1) corresponding to the received processor ID in the oldest order among the storage addresses.

The memory 300 receives the packet from the scheduler 200 and stores the packet data. Although not illustrated, the memory 300 may include a memory controller for arbitrating the memory 300 when multiple processors 400-1 to 400-j request read and write simultaneously.

Each processor 400-1 through 400-j transmits each processor ID to the scheduler 200 in a standby state and is stored in the memory 300 using the flow information and the packet storage address received from the scheduler 200. Process the packet. In this case, the standby state refers to a state in which there are no packets to be processed by the processors 400-1 to 400-j.

In detail, each of the processors 400-1 through 400-j reads packet data of the memory 300 corresponding to the received packet storage address and calculates data such as an output port and an output time.

Each processor 400-1 to 400-j transmits output information such as the output port of the packet and the packet storage address to the packet output unit 500, and transmits each processor ID to the scheduler 200. After that, it waits until it receives new packet flow information and packet storage address from the scheduler 200.

The packet output unit 500 receives the packet flow information and the packet storage address from the scheduler 200 and stores the packet flow information as a linked list for each flow. For example, upon receiving the flow information of the packet and the packet storage address from the scheduler 200, the association list is generated based on the received flow information, and the packet storage address is stored in the association list. Here, the association list for each flow refers to an association list for storing packet storage addresses having the same flow information in an old order.

If the packet storage address and flow information of the same flow is received later from the scheduler 200, the packet storage address and flow information of the other flow is added to the generated association list, and if the packet storage address and flow information of another flow is received from the scheduler 200, the received flow information is received. Create a new linkage list and save the packet storage address to the newly created linkage list.

The packet output unit 500 outputs the packet processed by the processors 400-1 to 400-j using the stored flow-associated link list. For example, by comparing the flow information of the packet processed by the processor (for example, 400-1) with the flow information of the stored flow association list, the association list having the same flow information and the processed packet is If the flow information is a packet of the oldest packet storage address of the same association list, it is outputted and waits if the flow information is not a packet of the oldest packet storage address of the same association list. Also, if the packet of the oldest packet storage address of the association list having the same flow information than the waiting packet is processed by another processor (for example, 400-2 to 400-j), the packet of the association list having the same flow information is received. Print packets in the oldest order in the list.

When the packet output unit 500 receives output information such as a packet output port from the processors 400-1 to 400-j, the packet output unit 500 changes the output flag of the corresponding packet to an output in the link list for each flow and outputs the output information data. Link to set the output module of the packet output unit 500 to read and output the corresponding output information data. Here, the output flag includes an output in which there is output information and thus an output wait state and an unoutput state in which there is no output information.

The packet output unit 500 periodically checks the output flag of all flow-specific linked list packets.

For example, when the output flag of the oldest packet among the packets in the association list is the output, the output time is compared with the current time.

Figure pat00001
) Is the current time (
Figure pat00002
) And some time (
Figure pat00003
) Within
Figure pat00004
) Sends the output information such as the output port to the output module along with the packet storage address and deletes the packet related node sent from the link list for each flow. Packets of all nodes are output and the association list in which all nodes of the association list for each flow is deleted is deleted.

The output module receiving the output information outputs the packet to the corresponding output port using the packet storage address, and transmits the packet storage address to the scheduler 200 to store the new packet at the corresponding packet storage address.

When the output flag of the oldest packet among the packets of the flow-specific association list is not output and the output flag of the remaining one or more packets is output, the packet output unit 500 outputs the output time of the packet whose output flag is the output (

Figure pat00005
) Is the current time (
Figure pat00006
) And some time (
Figure pat00007
Even if it is within), the output flag does not output the output packet and waits until the output flag of the oldest packet is output.

At this time, a predetermined time (

Figure pat00008
If all the output flags of old packet are changed to output within), the output time (
Figure pat00009
) Is the current time (
Figure pat00010
) And some time (
Figure pat00011
All packets within) are transmitted to the output module and the packet-related nodes sent from the flow related list are deleted.

On the other hand, some time (

Figure pat00012
If the output flag of the old packet does not become output even after the elapse of), the packet whose output flag is not output is processed as an error and deleted from the association list. And the output time (for the packet whose output flag is output in the order of the old packet in the related list)
Figure pat00013
) Is the current time (
Figure pat00014
) And some time (
Figure pat00015
All packets within) are transmitted to the output module and the packet-related nodes sent from the flow related list are deleted.

If the output flag of all packets of the flow-associated association list is not output, the packet output unit 500 checks and processes the output flags of the other flow-related association lists, and if all are not output, the processors 400-1 to 400-j. Waits for the packet to complete.

As described above, in the packet processing apparatus according to the present exemplary embodiment, the packet output unit 500 holds order information of packets for each flow, so that all the processors 400-1 to 400-j receive packets regardless of the flow information. After processing without waiting, the packet processing performance can be improved by maintaining and processing the packet order for each flow based on the flow and order information stored in the packet output unit 500.

2 is a flowchart illustrating a packet processing method according to an embodiment of the present invention.

The packet is received (600) and generates flow information and a packet storage address based on the received packet. (610) In this case, the flow information may be generated based on 5-tuple information of the packet data header of the received packet. . In this case, the 5-tuple information of the packet data header may be classified into a source IP address, a destination IP address, a source port number, a destination port number, and protocol information.

A link list for each flow is generated based on the generated flow information and the packet storage address. In operation 620, a link list is generated based on the generated flow information, and the packet storage address is stored in the link list.

The received packet is processed (630), and the flow information of the processed packet is compared with the flow information of the flow-specific association list (640). Review if they are the same (650)

If the processed packet is the same as the packet of the oldest packet storage address of the association list of the same flow, the processed packet is output (660), while the processed packet is of the oldest packet storage address of the association list of the same flow. If it is not the same as the packet, it waits until the packet of the oldest packet storage address of the association list of the same flow is processed and output.

After the packet of the oldest packet storage address in the association list of the same flow is processed and outputted, it is checked whether the waiting packet is the oldest packet in the association list, and (680) the waiting packet is the oldest in the association list. If it is not the old packet, the oldest packet in the corresponding list is processed and waited until output (690). If the waiting packet is the oldest packet in the corresponding list, the waiting packet is output.

After outputting the waiting packet, if the old packet of the relevant list is a packet to be output, the packets of the linked list are output in order, and the processed packet is output until the oldest packet of the linked list becomes an unprinted packet.

 According to the present invention, the packet output unit 500 maintains the order for the same flow by using the flow information and the order information of the packets, and processes them independently when the flows are different, thereby waiting for the plurality of processors 400-1 to 400-j. There is an effect of improving the processing efficiency by minimizing the state.

The present invention has been described with reference to the preferred embodiments. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be construed to include various embodiments within the scope of the claims.

100: packet receiving unit, 200: scheduler,
300: memory, 400-1 to 400-j: processor,
500: packet output unit.

Claims (1)

In the packet processing apparatus for processing a received packet using a plurality of processors,
A packet receiver for receiving a packet;
A scheduler for generating packet flow information and a packet storage address based on the received packet;
A memory for storing the received packet;
A plurality of processors for processing the packets stored in the memory using flow information and packet storage addresses of the packets generated by the scheduler; And
A packet output unit configured to output the packet processed by the processor from the oldest packet for each flow information using flow information and packet storage address of the packet generated by the scheduler;
Packet processing apparatus comprising a.
KR1020120040409A 2012-04-18 2012-04-18 Apparatus and method for processing packet using flow and sequence information KR20130126789A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120040409A KR20130126789A (en) 2012-04-18 2012-04-18 Apparatus and method for processing packet using flow and sequence information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120040409A KR20130126789A (en) 2012-04-18 2012-04-18 Apparatus and method for processing packet using flow and sequence information

Publications (1)

Publication Number Publication Date
KR20130126789A true KR20130126789A (en) 2013-11-21

Family

ID=49854613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120040409A KR20130126789A (en) 2012-04-18 2012-04-18 Apparatus and method for processing packet using flow and sequence information

Country Status (1)

Country Link
KR (1) KR20130126789A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200126542A (en) * 2019-04-30 2020-11-09 동의대학교 산학협력단 Packet processing apparatus and method in network processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200126542A (en) * 2019-04-30 2020-11-09 동의대학교 산학협력단 Packet processing apparatus and method in network processor

Similar Documents

Publication Publication Date Title
US10135636B2 (en) Method for generating forwarding information, controller, and service forwarding entity
WO2018086076A1 (en) Data transmission method and apparatus
US11722407B2 (en) Packet processing method and apparatus
US8229705B1 (en) Performance monitoring in computer networks
US8711752B2 (en) Distributed multicast packet replication with centralized quality of service
KR101893963B1 (en) System and method for a software defined protocol network node
US20130033978A1 (en) Source Alive Route Injection
US10104006B2 (en) Bus interface apparatus, router, and bus system including them
US20140222960A1 (en) Method and Apparatus for Rapid Data Distribution
JP2013034164A (en) Relay device, and relay method
KR102430395B1 (en) Method, apparatus, and system for transmitting multicast packets
EP2919426A1 (en) Concurrent hashes and sub-hashes on data streams
US20130003748A1 (en) Relay apparatus and relay control method
US7233578B1 (en) Network with self regulating quality of service (QoS)
CN100561978C (en) A kind of strategy route device and method
WO2016150020A1 (en) Scheduling flow identifier-based packet scheduling method and device
US9942161B1 (en) Methods and systems for configuring and updating session-based quality of service for multimedia traffic in a local area network
US7961612B2 (en) Limiting transmission rate of data
JP5414506B2 (en) Data processing apparatus, data processing method, and program
CN115037399A (en) Message forwarding method, electronic device and storage medium
KR20130126789A (en) Apparatus and method for processing packet using flow and sequence information
US20230385264A1 (en) Managing subscriptions to data queries that react and update to change notifications
CN113518046B (en) Message forwarding method and frame type switching equipment
Cavalieri Modelling and analysing congestion in KNXnet/IP
JP2005033351A (en) Packet relaying apparatus

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination