KR101635732B1 - Method for processing fragment packets and nework device using the same - Google Patents
Method for processing fragment packets and nework device using the same Download PDFInfo
- Publication number
- KR101635732B1 KR101635732B1 KR1020150185396A KR20150185396A KR101635732B1 KR 101635732 B1 KR101635732 B1 KR 101635732B1 KR 1020150185396 A KR1020150185396 A KR 1020150185396A KR 20150185396 A KR20150185396 A KR 20150185396A KR 101635732 B1 KR101635732 B1 KR 101635732B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- core
- session
- fragmentation
- fragmented
- Prior art date
Links
Images
Classifications
-
- 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/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The present invention minimizes waste of processing resources required for fragmented packet processing in a network device having a multicore, and enables a non-session core to compete with another core for accessing a session table, And a method and apparatus for processing a fragmented packet in a network device that minimizes packet fragmentation. To this end, the present invention provides a method for processing a fragmented packet in a network device, the method comprising: (a) receiving a first fragmented packet from a network device; and (b) The second fragmented packet is allocated to the remaining non-session cores except for the session core, the second fragmented packet is the 4-tuple information of the first fragmented packet (protocol, Directing the second fragmentation packet assigned to the non-session core to the session core, if it is determined to have the same information as the destination ip, source ip, Ip id.
Description
BACKGROUND OF THE
Generally, the sizes of the packets processed in the network apparatus are different from each other. The network device divides the received packet into two or more fragmented packets if the size of the received packet is larger than the processable size, and the generated packet is called a fragment packet. The fragmentation packet must be reassembled back into the original packet.
Network devices such as routers, switches, hubs and routers tend to mount multicore in order to increase packet processing capability, and network devices located between nodes or terminals process the received packets and forward them to the next node or terminal , A fragmentation packet can be distributed and processed to a core where a session is formed and a core that is not. In this case, it is preferable that the fragmented packet is reassembled in a core in which a session is formed (hereinafter referred to as a session core). In a remaining core (hereinafter referred to as a non-session core) To finally reassemble the fragmented packet at the session core.
Here, the fragmented packet flowing into the non-session core is delivered to the session core through the output end of the non-session core, and the non-session core must determine the core to reassemble the fragmented packet in the core by referring to the session information . Since the session information resides in a RAM (Random Access Memory), each core (a thin core and a non-session core) accesses a memory to acquire session information. At this time, Lt; / RTI > This means that each core is competing for the incoming fragmented packet processing, which may degrade the processing speed of each core. Also, since two cores can not access two cores at the same time, when one core accesses the memory, the other cores must wait for memory access, and this state is called a lock. The fact that multiple cores are idle in the locked state means that many cores must be idle and can not effectively exploit the packet processing capability.
For such a fragmented packet processing problem, the patent document 10-2009-0089690 proposes a communication system that avoids buffer waste and processing load waste by discarding received fragmented packets when fragmented packets are not all received in the buffer , And has proposed a session management method that minimizes the competition of processors for accessing session information when fragmented packets are processed by independently managing session state information on fragmented packets and non-fragmented packets .
However, when the fragmented packets having the same identifier are not all received in the buffer, the processing time of the processor is minimized by minimizing the time loss and the buffer loss. However, according to the buffering time, There is a question as to whether the fragmented packets that can arrive beforehand are discarded and re-received in order to maximize the processing performance. In the case of the fragmented packet, session information for fragmented packets and session information for unfragmented packets are separately generated However, if the amount of received fragmentation packets increases, the effectiveness may be deteriorated.
It is an object of the present invention to provide a method and apparatus for processing a fragmented packet in a network device that minimizes the time spent by the non-session core to process the fragmented packet, .
It is another object of the present invention to provide a fragmentation packet eliminating unnecessary processing load applied to a non-session core by causing fragmented packets to be sent from a network interface unit to a session core, And to provide a method and an apparatus for processing the same.
According to an aspect of the present invention, there is provided a method of processing a fragmentation packet in a network device, the method comprising: (a) receiving a first fragmentation packet from a network device; and (b) When a second fragmented packet is allocated to a remaining non-session core other than the session core, when the first fragmented packet is a session core, the network device transmits the second fragmented packet to the first fragmented packet, (Re-directing) the second fragmentation packet assigned to the non-session core to the session core if it is determined to have the same information as the 4-tuple (protocol, destination ip, source ip, directing the method.
According to another aspect of the present invention, there is provided a method for processing a fragmented packet in a network device, the method comprising the steps of: (a) recording a core processing a received first fragmentation packet as a session core; (b) Comparing the 4-tuple information of the subsequently received second fragmentation packet with reference to the 4-tuple information (protocol, destination ip, source ip, Ip id) of the first fragmentation packet; and ) The network device further comprises: means for sending the subsequently received second fragmentation packet to the session core if the 4-tuple information of the subsequently received second fragmentation packet matches the 4-tuple information of the first fragmentation packet The method comprising the steps of:
According to another aspect of the present invention, there is provided a network device for processing a fragmented packet in a network device, the network device comprising: a communication unit for receiving a first fragmented packet and a multicore, The core is called a session core and the second fragmentation packet is allocated to the remaining non-session cores except for the session core, the second fragmentation packet includes 4-tuple information (protocol, destination ip, source ip And re-directs the second fragmented packet assigned to the non-session core to the session core if it is determined to have the same information as the first fragmented packet, Ip id.
According to another aspect of the present invention, there is provided a network device for processing a fragmented packet, the network device comprising: a processor having a plurality of cores; and a core that is a session with the first fragmented packet among the plurality of cores, Wherein if the 4-Tuple (protocol, destination ip, source ip, Ip id) information of the second fragmentation packet following the first fragmentation packet is the same as the 4-Tuple information of the first fragmentation packet, To a session core.
Industrial Applicability According to the present invention, it is possible to minimize processing resource waste required for fragmented packet processing in a network device having a multicore.
In addition, by transferring fragmented packets of the same group only to the session core in the multicore, the non-session core can be excluded from the fragmented packet processing, thereby securing the processing resources of the non-session core. At this time, the non-session core may not compete with other cores to access the session table, or may not cause lock.
1 shows a conceptual diagram of a method for processing a fragmentation packet of a network device and a network device according to an embodiment of the present invention.
2 illustrates a conceptual diagram of a method for processing a fragmentation packet of a network device and a network device according to another embodiment of the present invention.
3 shows a fragmented packet processing method of the present invention and a conventional fragmented packet processing method for comparison.
FIG. 4 shows a conceptual diagram of a cache allocation method for allocating a cache to a processor in the embodiment described with reference to FIG.
The network devices referred to herein may be devices such as switches, routers, and routers. In addition, if the device includes an Ethernet connector, a network interface card (NIC), and a processor, And the like.
Hereinafter, the present invention will be described in detail with reference to the drawings.
1 shows a conceptual diagram of a method for processing a fragmented packet of a network device and a network device according to an embodiment of the present invention.
Referring to FIG. 1, the network device according to the embodiment may include an
The
The
Specifically, when the fragmentation packets are introduced, the
When fragmenting a packet, 5-Tuple information is included in the first packet that can establish a session, but since the port information is not included in the subsequent packet, each of the
Accordingly, the
Here, the Ip id value conforms to the RFC 791 protocol defined for the Internet Protocol (IPv4). In the fragmented packet fragmented at the IP protocol level, TCP / UDP information is included only in the packet that is initially fragmented, Port information is omitted in the packet, and instead, the fragmented packet is defined to be distinguished by using the Ip Id information of each fragmented packet, and is used as a value for distinguishing the fragmented packet. In the present embodiment, the details of the Ip-Id value are referred to the RFC 791 protocol defined for the Internet Protocol (IPv4).
When the fragmentation packet is received, the
This means that there is no need to receive the processed fragmented packets in the
Here, the Re-direct process is implemented by the interrupt method, and the
Here, in the
1) The
2) When the
3) delivering each fragmented packet (s) in
4) The
The
On the other hand, if the fragmented packets are introduced into the
Table 1 illustrates a packet having a length of 4000 bytes. When a fragmentation packet (divided into three according to MTU = 1500) is introduced into the
If a packet of 4000 bytes is divided under the condition of MTU = 1500, three fragmentation packets can be generated. In Table 1, the packets are fragmented into P1, P2 and P3. P1 and P2 are divided into 1500 bytes according to the MTU value (1500 bytes), and fragmentation packets (P3) are divided into 1000 bytes (4000 bytes - 3000 bytes) . However, since the header length of each fragmented packet P1, P2, P3 is allocated by 20 bytes, the data length of each fragmented packet P1, P2, P3 actually corresponds to 1480 bytes. Data lengths (P1, P2 = 1480 bytes, P3 = 980 bytes), a packet ID, an MF flag, and a fragment offset value are recorded in the header of each of the fragmented packets P1, P2, and P3. Here, the packet ID is given the same value for each fragmented packet P1, P2, P3 divided in the same packet. The MF flag is a 1-bit flag, and each fragmented packet P1, P2, Indicates whether a fragmented packet exists. If the MF flag value is "0 ", it means that there is no additional fragmentation packet after the fragmentation packets P1, P2 and P3. It means that there is a fragmentation packet to be added.
The structure and description of the fragmentation packet described in Table 1 are applied to the packet structure described later in the following description, and redundant description will be omitted.
2 shows a conceptual diagram of a method for processing a fragmentation packet of a network device and a network device according to another embodiment of the present invention.
Referring to FIG. 2, the
The
The
For reference, only the first fragmented packet among the fragmented packets has 5-Tuple information (protocol, destination address, source address, destination port, source port) The fragmentation packet can be distinguished by reference.
When the session core among the
According to the fragmentation packet processing method of the
3, a conventional fragmentation packet processing method is a method in which a plurality of cores 10a to 10n respectively receive fragmented packets FP1 to FPn and processes each fragmented packet FP1 to FPn, 10a to 10n are configured to assemble the fragmented packets FP1 to FPn into the original packet.
In FIG. 3, each of the cores 10a to 10n shares a fragment list, and a fragment list is generated to acquire packet information (for example, 4-tuple information) of the fragmentation packet being processed It is possible to access the stored memory (for example, RAM). Since the cores 10a to 10n can not access the memory at the same time, the cores 10a to 10n generate contention for accessing one fragment list, The race condition is generally referred to as a race condition. Race condition is a condition in which the cores other than one core (10a to 10n) in which a plurality of cores (10a to 10n) have successfully access to the memory due to a contest for accessing a single memory wait for memory access Thereby degrading the performance of the entire network device.
2, each of the
FIG. 4 illustrates a conceptual diagram of a cache allocation method for allocating a cache to the
The Applicant has described that the combination of fragmented packets is a key to processing in one core (session core).
It can be predicted that the processing efficiency will increase if the
In this embodiment, independent caches allocated independently for each of the
4, the present applicant proposes a scheme in which each of the cores processes a packet reassembly operation using an independent cache. If each of the cores assembles the fragmented packet using the independent cache, the main body that reads / writes the fragmented list in the independent cache is limited to each of the cores. Since the other core does not access the independent cache, , There is no possibility that a cache miss occurs.
This is equivalent to a meaning that the cache hit rate of each of the
In addition, the embodiments of the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer-readable recording medium may be those specially designed and constructed for the present invention or may be those known and used by those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.
Therefore, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the following claims, I will say.
110: Ethernet connector 120: Network interface unit
121: Session table 130: Processor
130a to 130n:
Claims (18)
The network device includes a plurality of cores, each core having a separate independent cache that can be accessed only by each of the cores, and each of the independent caches includes 4-tuple information (protocol, destination ip , Source ip, Ip id) is recorded in the fragment table,
(a) the network device receiving a first fragmentation packet; And
(b) a core that is in session with the first fragmented packet among the plurality of cores included in the network device is a session core, and a second fragmented packet is allocated to remaining non-session cores except for the session core , The network device interrupts the second fragmentation packet assigned to the non-session core to the session core if it is determined that the second fragmentation packet has the same information as the 4-tuple information of the first fragmentation packet And re-directing the re-directed signal,
Wherein the fragmentation table is managed for each core.
In the step (b)
The session core comprises:
Determining a combination order of the first fragmentation packet and the second fragmentation packet with reference to a fragment offset value of the second fragmentation packet flowing from the non-session core to the session core.
In the step (a)
And notifies the non-session core of information on the session core as a target of re-directing with reference to the fragmentation table.
Wherein the session core is determined with reference to 5-tuple information (protocol, destination ip, source ip, destination port, source port) of the first fragmentation packet.
The network device includes a plurality of cores, each core having a separate independent cache that can be accessed only by each of the cores, and each of the independent caches includes 4-tuple information (protocol, destination ip , Source ip, Ip id) is recorded in the fragment table,
(a) the network device comprises: recording a core processing a received first fragmentation packet as a session core;
(b) comparing the 4-tuple information of the first fragmented packet with the 4-tuple information of the subsequently received second fragmented packet with reference to 4-tuple information of the first fragmented packet; And
(c) if the 4-tuple information of the subsequently received second fragmentation packet matches the 4-tuple information of the first fragmentation packet, the network device transmits the subsequently received second fragmentation packet to the session To the core,
Wherein the fragmentation table is managed for each core.
In the step (b)
The network device comprising:
i) extracting 4-tuple information from header information of the fragmentation packets when fragmented packets are received, ii) comparing the 4-tuple information with fragmentation tables, and classifying packets belonging to the same group.
Wherein the session core is determined with reference to 5-tuple information (protocol, destination ip, source ip, destination port, source port) of the first fragmentation packet.
A communication unit for receiving the first fragmentation packet; And
A processor comprising a plurality of cores, wherein each core has a separate independent cache accessible only to each of the cores, and each of the independent caches includes 4-tuple information (protocol, destination ip, source ip, Ip id) is recorded, and a core that forms a session with the first fragmented packet among the plurality of cores is called a session core, and a second fragmented packet is a non-session core excluding the session core Session core, if the second fragmentation packet is determined to have the same information as the 4-tuple information of the first fragmentation packet, the second fragmentation packet allocated to the non-session core is interrupted to the session core A processor for performing a re-directing process,
Wherein the fragmentation table is managed for each core.
The session core comprises:
And determines a combination order of the first fragmentation packet and the second fragmentation packet with reference to a fragment offset value of the second fragmentation packet flowing into the session core in the non-session core.
The non-session core comprises:
And judges information on the session core as a re-direct target core, with reference to a fragmentation table in which the 4-tuple information is recorded.
The session core comprises:
Tuple information (protocol, destination ip, source ip, destination port, source port) of the first fragmented packet.
A processor comprising a plurality of cores, wherein each core has a separate independent cache accessible only to each of the cores, and each of the independent caches includes 4-tuple information (protocol, destination ip, source ip, Ip id) in the fragmented table; And
Tuple information of a second fragmented packet following the first fragmented packet is the 4-Tuple information of the first fragmented packet, when the core that is in session with the first fragmented packet is a session core, And a communication unit for delivering the second fragmented packet to the session core if the first fragmented packet is identical to the first fragmented packet,
Wherein the fragmentation table is managed for each core.
Wherein,
Extracts the 4-Tuple information from the header information of the second fragmentation packet, and compares the 4-Tuple information with the fragmentation table to determine the identity.
Wherein,
And determines the session core with reference to 5-tuple information (protocol, destination ip, source ip, destination port, source port) of the first fragmentation packet.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150185396A KR101635732B1 (en) | 2015-12-23 | 2015-12-23 | Method for processing fragment packets and nework device using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150185396A KR101635732B1 (en) | 2015-12-23 | 2015-12-23 | Method for processing fragment packets and nework device using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101635732B1 true KR101635732B1 (en) | 2016-07-04 |
Family
ID=56501653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150185396A KR101635732B1 (en) | 2015-12-23 | 2015-12-23 | Method for processing fragment packets and nework device using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101635732B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110060534A (en) * | 2009-11-30 | 2011-06-08 | 한국전자통신연구원 | Apparatus and method for session management |
KR20110106096A (en) * | 2010-03-22 | 2011-09-28 | 주식회사 퓨쳐시스템 | Flow processing unit and method for controlling flow processing unit |
US20140115122A1 (en) * | 2009-12-23 | 2014-04-24 | Citrix Systems, Inc. | Systems and methods for managing ports for rtsp across cores in a multi-core system |
-
2015
- 2015-12-23 KR KR1020150185396A patent/KR101635732B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110060534A (en) * | 2009-11-30 | 2011-06-08 | 한국전자통신연구원 | Apparatus and method for session management |
US20140115122A1 (en) * | 2009-12-23 | 2014-04-24 | Citrix Systems, Inc. | Systems and methods for managing ports for rtsp across cores in a multi-core system |
KR20110106096A (en) * | 2010-03-22 | 2011-09-28 | 주식회사 퓨쳐시스템 | Flow processing unit and method for controlling flow processing unit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11855895B2 (en) | Systems, apparatuses and methods for network packet management | |
US10694005B2 (en) | Hardware-based packet forwarding for the transport layer | |
US7535907B2 (en) | TCP engine | |
US9166921B2 (en) | Selective packet sequence acceleration in a network environment | |
US9246825B2 (en) | Accelerated processing of aggregate data flows in a network environment | |
US8792353B1 (en) | Preserving sequencing during selective packet acceleration in a network environment | |
US9722933B2 (en) | Selective packet sequence acceleration in a network environment | |
US8175116B2 (en) | Multiprocessor system for aggregation or concatenation of packets | |
WO2018165009A1 (en) | Vertical packet aggregation using a distributed network | |
US20060056406A1 (en) | Packet queuing, scheduling and ordering | |
WO2017050117A1 (en) | Network load balance processing system, method, and apparatus | |
US8867568B2 (en) | Method for parsing network packets having future defined tags | |
US20040213278A1 (en) | System, method, and computer program product for in-place, lightweight Ack promotion in a cable modem environment | |
EP3122012B1 (en) | Data processing method and apparatus for openflow network | |
US7969977B2 (en) | Processing apparatus and method for processing IP packets | |
CN114268518A (en) | Method and system for realizing forwarding acceleration of sdwan data tunnel | |
WO2024037366A1 (en) | Forwarding rule issuing method, and intelligent network interface card and storage medium | |
EP2996291B1 (en) | Packet processing method, device, and system | |
KR101635732B1 (en) | Method for processing fragment packets and nework device using the same | |
US20050198007A1 (en) | Method, system and algorithm for dynamically managing a connection context database | |
US8719902B2 (en) | Secure communication device, secure communication method, and program | |
US10110977B2 (en) | Photonic frame switching system determining moment of transmitting photonic frame based on time used for changing wavelength of tunable laser diode | |
US9641461B2 (en) | Relay device, communication system, and communication method | |
JP2010011344A (en) | Packet processor | |
CN114567484A (en) | Message processing method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190625 Year of fee payment: 4 |