Gateway device and method for dynamically converting network packet size using same
The gateway device dynamically adjusts packet sizes to address MTU discrepancies, enhancing network performance and reducing CPU load by merging or splitting packets based on flow identification, thus improving transmission efficiency and reliability.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-05-02
- Publication Date
- 2026-04-02
AI Technical Summary
Existing network equipment faces performance degradation and increased CPU load due to IP fragmentation when transmitting packets between networks with different Maximum Transmission Units (MTUs), leading to issues like increased latency, packet loss, and inefficient network resource utilization.
A gateway device and method that dynamically converts network packet sizes by merging or splitting packets based on flow identification, using techniques like Large Receive Offload (LRO) and TCP Segmentation Offload (TSO) to optimize packet transmission for different MTUs, reducing CPU load and improving network efficiency.
Optimized data transmission across networks with varying MTUs, reducing CPU load and improving processing speed, especially in high-speed environments, by distinguishing between small and large flows and applying appropriate merging or splitting methods for TCP and UDP packets.
Smart Images

Figure KR2025005962_02042026_PF_FP_ABST
Abstract
Description
Gateway device and method for dynamic conversion of network packet size using the same
[0001] The present application relates to a gateway device and a method for dynamically converting network packet sizes using the same.
[0002] One of the key elements of packet transmission in the Internet and various network environments is the Maximum Transmission Unit (MTU). The MTU determines the maximum packet size that can be transmitted at once within a specific network and directly impacts network performance and processing speed. Generally, the standard MTU used in the Internet and enterprise networks is 1,500 bytes, which stems from the maximum frame size defined by the Ethernet standard. However, recent data centers, 5G networks, and cloud environments are aiming to improve performance by supporting MTUs up to 9,000 bytes (Jumbo Frame). Nevertheless, in Wide Area Networks (WANs) such as the Internet, the 1,500-byte MTU remains the standard, resulting in performance degradation and reduced network efficiency when transmitting packets between networks with different MTUs.
[0003] When traversing networks with different MTUs, existing network equipment forcibly fragments large packets into smaller ones for transmission. However, IP fragmentation causes problems such as increased network latency, packet loss, and increased CPU load during the process of reassembling packets divided into multiple small pieces. In particular, since the IP layer lacks a function to automatically retransmit lost fragmented packets and relies solely on simple timeouts for detecting packet loss, transmission speeds can be significantly degraded.
[0004] Furthermore, during the process of handling packets in a network, the CPU load on network equipment such as routers, switches, and firewalls, as well as servers, increases as the number of packets increases. For example, in high-speed network environments (100Gbps or higher), processing 1500B packets requires transmitting millions of packets per second; therefore, as the number of packets increases, CPU and memory usage increase exponentially. To solve this problem, setting the MTU to a large value can reduce the burden on network equipment, but most networks maintain a 1500B MTU due to compatibility issues with external networks.
[0005] Therefore, if the MTU varies depending on the network environment, a new method is required to dynamically convert the packet size and adjust it to a size suitable for the network path.
[0006] The present application aims to provide a gateway device and a method for dynamically converting network packet sizes using the same.
[0007] According to an embodiment of the present application, a method for dynamically converting network packet sizes using a gateway device is provided. The method may include: receiving a plurality of first IP packets of a size less than or equal to a first MTU from at least one external network; identifying the received plurality of first IP packets in units of a flow; merging the first IP packets identified as the same flow to convert them into at least one second IP packet of a size less than or equal to a second MTU for use within an internal network; and transmitting the second IP packet to the internal network.
[0008] Additionally, the step of identifying the first IP packet in units of flows may be performed based on at least one of the source IP address, destination IP address, source port number, destination port number, and protocol information extracted from the header of the first IP packet.
[0009] Additionally, the step of identifying the first IP packet in units of flow includes the step of identifying whether the flow to which the first IP packet belongs is a small flow or a large flow, and the step of converting into the second IP packet may be performed only for the first IP packet identified as a large flow.
[0010] In addition, the first IP packet identified as the small flow can be transmitted to the internal network without an additional packet merging process.
[0011] In addition, if the first IP packet is a TCP packet, the step of converting it into the second IP packet can be performed by merging the first IP packets consecutively in order based on the sequence number in the TCP header.
[0012] Additionally, if the first IP packet is a TCP packet, the step of converting it into the second IP packet may include: identifying a plurality of discontinuous packets among the received first IP packets; rearranging the order of the discontinuous packets based on sequence numbers; and merging the first IP packets based on the rearranged order.
[0013] In addition, if the first IP packet is a UDP packet, the step of converting it into the second IP packet can be performed by adding original packet length information of at least one of the first IP packets to the additional header of the second IP packet.
[0014] In addition, if the first IP packet is a non-contiguous UDP packet, the step of converting it into the second IP packet can be performed by adding original packet size information of each of the first IP packets to the header of the second IP packet and concatenating the datagrams of the first IP packet in sequence.
[0015] In addition, if the first IP packet is a continuous UDP packet, the step of converting it into the second IP packet can be performed by adding single packet size information of the first IP packet to the header of the second IP packet and concatenating the payloads from which the UDP header of the first IP packet has been removed in sequence.
[0016] Additionally, the method may further include the step of dividing at least one third IP packet of the second MTU size or smaller generated within the internal network into fourth IP packets of the first MTU size or smaller suitable for each of the external networks, and then transmitting them to the external networks.
[0017] A computer program is provided according to an embodiment of the present application. The program may be stored on a recording medium to execute a method according to an embodiment of the present application.
[0018] According to an embodiment of the present application, a gateway device for dynamic conversion of network packet sizes is provided. The device may include: a packet receiving unit that receives a plurality of first IP packets of a first MTU size or smaller from at least one external network; a flow processing unit that identifies the received plurality of first IP packets in units of flows; a packet conversion unit that merges the first IP packets identified as the same flow and converts them into at least one second IP packet of a second MTU size or smaller for use within an internal network; and a packet transmitting unit that transmits the converted second IP packet to the internal network.
[0019] According to the embodiments of the present application, optimized data transmission is possible even in different MTU environments through dynamic conversion of network packet sizes.
[0020] In addition, according to the embodiments of the present application, the CPU load of network equipment and transmitting / receiving terminals can be reduced by merging TCP and UDP packets to reduce the number of packets. Through this, processing speed can be improved even in high-speed network environments.
[0021] In addition, according to the embodiments of the present application, network resources can be efficiently utilized by distinguishing between small flows and large flows and distributing them in an appropriate processing manner.
[0022] In addition, according to the embodiments of the present application, UDP packets can be effectively merged to increase transmission efficiency and improve the reliability of network traffic.
[0023] In addition, according to the embodiments of the present application, WAN traffic transmission performance can be improved by increasing the TCP congestion control window more quickly through a larger MTU.
[0024] The effects obtainable from the embodiments of the present application are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art to which the present application belongs from the description below.
[0025] A brief description of each drawing is provided to help to better understand the drawings cited in this application.
[0026] FIG. 1 is a system for dynamic conversion of network packet size according to an embodiment of the present application.
[0027] FIG. 2 is a block diagram illustrating the hardware configuration of a gateway device for dynamic conversion of network packet size according to an embodiment of the present application.
[0028] FIG. 3 is a block diagram illustrating the functional configuration of a gateway device for dynamic conversion of network packet size according to an embodiment of the present application.
[0029] FIG. 4 is a flowchart of a method for dynamically converting network packet sizes according to an embodiment of the present application.
[0030] Figure 5 is an example of step S430 of Figure 4.
[0031] FIG. 6 is a diagram illustrating, by way of example, the process of merging UDP packets according to an embodiment of the present application.
[0032] FIG. 7 is a flowchart of a method for dynamically converting network packet sizes according to an embodiment of the present application.
[0033] FIG. 8 is a diagram showing an example of an implementation of a gateway device for dynamic conversion of network packet size according to an embodiment of the present application.
[0034] The technical concept of the present application is subject to various modifications and may have various embodiments, and specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the technical concept of the present application to specific embodiments, and it should be understood that it includes all modifications, equivalents, and substitutions that fall within the scope of the technical concept of the present application.
[0035] In explaining the technical concept of the present application, detailed descriptions of related prior art are omitted if it is determined that such descriptions may unnecessarily obscure the essence of the present application.
[0036] The terms used herein are for describing embodiments and are not intended to limit or / or restrict the present application. Singular expressions include plural expressions unless the context clearly indicates otherwise. Additionally, numbers used herein (e.g., First, Second, etc.) are merely identifiers to distinguish one component from another.
[0037] In this specification, when it is stated that a part is connected to another part, this includes not only cases where they are directly connected, but also cases where they are indirectly connected with other components in between. Furthermore, when it is stated that a part includes a certain component, this means that, unless specifically stated otherwise, it does not exclude other components but may include additional components.
[0038] Furthermore, in this application, the term "or" is intended to mean an implicit "or" rather than an exclusive "or." That is, unless otherwise specified or evident from the context, "X uses A or B" is intended to mean one of the natural implicit substitutions. In other words, if X uses A; if X uses B; or if X uses both A and B, "X uses A or B" may apply to any of these cases. Additionally, the term "and / or" as used herein should be understood to refer to and include all possible combinations of one or more of the enumerated related configurations.
[0039] In addition, terms such as “~part,” “~device,” “~device,” and “~module” described in this application refer to a unit that processes at least one function or operation, and this can be implemented as hardware or software or a combination of hardware and software, such as a processor, microprocessor, microcontroller, CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerate Processor Unit), DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), etc.
[0040] Furthermore, it is intended to clarify that the classification of the components in this application is merely based on the primary function each component is responsible for. That is, two or more components described below may be combined into a single component, or a single component may be divided into two or more components based on more subdivided functions. Additionally, each component described below may additionally perform some or all of the functions performed by other components in addition to its own primary function, and it is obvious that some of the primary functions performed by each component may be exclusively performed by other components.
[0041] Hereinafter, embodiments of the present application will be described in detail in turn.
[0042]
[0043] FIG. 1 is a system for dynamic conversion of network packet size according to an embodiment of the present application.
[0044] Referring to FIG. 1, a system for dynamic conversion of network packet sizes according to an embodiment of the present application may be composed of an internal network and an external network, and may include a gateway device (200) that performs packet size conversion between the internal network and the external network.
[0045] The internal network may include various network functions (NF) (110) and client terminals (120). The client terminals (120) may be implemented as various devices, such as computers, smartphones, etc., and may communicate with the external network through the internal network. The internal network transmits packets based on the iMTU size, which may differ from the MTU size (eMTU) of the external network.
[0046] The gateway device (200) is a core device that performs packet size conversion between an internal network and an external network, and can dynamically convert packets by considering the iMTU size of the internal network and the eMTU size of the external network. For example, the gateway device (200) can merge small packets received from the external network to fit the iMTU size of the internal network and transmit them, and conversely, it can split large packets received from the internal network to fit the path MTU size of the external network and transmit them. Through this, network transmission efficiency can be maximized and performance degradation due to IP fragmentation can be prevented.
[0047] The external network may consist of a public network such as the Internet or server infrastructure (130) such as a data center or cloud service. The external network may have various MTU sizes, and the MTU size may vary due to intermediate network devices such as routers, firewalls, and switches located on the network path. The gateway device (200) can dynamically calculate an optimal path MTU value by taking these changes into account and adjust the packet size to ensure optimal network transmission.
[0048] The configuration of the system illustrated in FIG. 1 is exemplary and can be modified in various ways according to the embodiments of the present application.
[0049]
[0050] FIG. 2 is a block diagram illustrating the hardware configuration of a gateway device for dynamic conversion of network packet size according to an embodiment of the present application.
[0051] Referring to FIG. 2, the gateway device (200) may include a network interface card (NIC) (210) and a computation unit (220).
[0052] The network interface card (210) is a hardware module that performs data transmission and reception with an external network and an internal network, and can perform the function of receiving and transmitting network packets. In addition, it can perform the function of identifying a flow by analyzing the header information of the received packet and distinguishing between a large flow and a small flow. In an embodiment, the network interface card (210) can perform the function of directly transmitting packets identified as small flows to the internal network without a separate merging process. To this end, the network interface card (210) can be configured to directly transmit packets of a specific flow to the internal network without the intervention of the processor (221) by utilizing special hardware functions within the card.
[0053] Additionally, the network interface card (210) can utilize the Large Receive Offload (LRO) module and the TCP Segmentation Offload (TSO) module to process at least some of the large packets and transmit the data to the computation unit (220). For example, among the TCP packets identified as large flows, packets with guaranteed order are merged via the LRO and then transmitted to the internal network, while packets that are out of order or missing are transmitted to the computation unit (220) to perform sorting and merging processes.
[0054] For example, the network interface card (210) may be configured to include a data processing and transmission module, a packet offloading module (LRO module, TSO module, etc.), a buffer, an internal memory, a controller, etc., but is not limited thereto.
[0055] The computation unit (220) is a central computation module that processes packets transmitted from the network interface card (210) and performs network packet size conversion. The computation unit (220) determines an appropriate processing method for each flow and can merge multiple TCP packets and / or UDP packets belonging to the same flow. In addition, it can manage Path MTU information and adjust packet sizes to perform optimized data transmission between the internal network and the external network.
[0056] The operation unit (220) may include a processor (221) and memory (222).
[0057] The processor (221) performs major operations such as managing packet flow, merging packets, searching for a path MTU, and resizing packets using programs and / or data stored in memory (222). The processor (221) may mean a Central Processing Unit (CPU) or a dedicated processor on which at least some of the methods according to the embodiments of the present application are performed.
[0058] The memory (222) performs functions such as packet buffering, storing a path MTU table, storing packet headers and metadata, and can support data processing of the computation unit (220). For example, the memory (222) may include at least one type of storage medium among flash memory type, hard disk type, multimedia card micro type, card type memory (e.g., SD or XD memory), RAM, SRAM, ROM, EEPROM, PROM, magnetic memory, magnetic disk, and optical disk.
[0059] The configuration of the device (200) shown in FIG. 2 is exemplary and can be modified in various ways according to the embodiments of the present application.
[0060]
[0061] FIG. 3 is a block diagram illustrating the functional configuration of a gateway device for dynamic conversion of network packet size according to an embodiment of the present application.
[0062] Referring to FIG. 3, the gateway device (200) may include a packet receiving unit (310), a flow processing unit (320), a packet conversion unit (330), and a packet transmitting unit (340). The functional configurations of FIG. 3 may be implemented by the hardware configuration and / or software described above with reference to FIG. 2.
[0063] The packet receiving unit (310) is implemented in the network graphics card (210) and can receive a plurality of first IP packets with a size of less than or equal to the first MTU (eMTU) from an external network, or receive a third IP packet with a size of less than or equal to the second MTU (iMTU) from an internal network. As described above, through the packet conversion unit (330), the first IP packet is merged into a second IP packet with a size of less than or equal to the second MTU suitable for the internal network, and the third IP packet can be divided into a fourth IP packet with a size of less than or equal to the first MTU of the path MTU of the flow to which the packet belongs or the external network. The flow processing unit (320) is implemented in the network graphics card (210) and can identify a plurality of first IP packets in units of flows. In an embodiment, flow identification can be performed based on at least two of the source IP address, destination IP address, source port number, destination port number, and protocol information extracted from the header of the received first IP packet. For example, the flow processing unit (320) may be configured to generate an RSS (Receive Side Scaling) hash value based on the information extracted from the header of the first IP packet being received, and to quickly map the first IP packets to a specific flow based on this.
[0064] In an embodiment, the flow processing unit (320) can distinguish between a small flow and a large flow. For example, the flow processing unit (320) can identify a large flow if the number of packets exceeds a certain threshold during a specific time period, and a small flow if it is less than or equal to the threshold.
[0065] The packet conversion unit (330) can merge a first IP packet received from an external network and convert it into at least one second IP packet of a second MTU size or smaller for use within an internal network. Additionally, the packet conversion unit (330) can divide a third IP packet of a second MTU size or smaller for an internal network into fourth IP packets of a first MTU size or smaller that correspond to the path MTU of the flow to which the packet belongs or to each of the external networks.
[0066] To this end, the packet conversion unit (330) may include a first packet conversion unit, a second packet conversion unit, and a third packet conversion unit.
[0067] The first packet conversion unit may be implemented in a network interface card (210). Specifically, the first packet conversion unit may include an LRO module and a TSO module of the network interface card (210). For example, the LRO module may perform merging of packets with guaranteed order among TCP packets identified as large flows. Additionally, the TSO module may split large packets generated in an internal network (using iMTU) to match the path MTU of the flow to which the packet belongs or an external network (using eMTU), or subdivide merged packets to support transmission optimized for the internal network.
[0068] The second packet conversion unit and the third packet conversion unit can be implemented in the operation unit (220).
[0069] First, the second packet conversion unit may include a GRO module driven by a processor (221). The GRO module may perform additional merging on TCP packets. Specifically, the GRO module may perform reordering based on sequence numbers for TCP packets that are out of order or missing, and perform merging according to the reordered order.
[0070] The third packet conversion unit can perform merging of IP packets other than TCP packets, in particular, UDP packets. Since it is difficult to guarantee the order of UDP packets unlike TCP packets, the third packet conversion unit can perform this by adding information on the original packet length of each UDP packet to an additional header of the second IP packet being merged, so that the original packet boundaries can be restored at the destination of the internal network.
[0071] The packet transmission unit (340) can transmit a second IP packet generated by merging first IP packets of an external network to an internal network, or transmit a fourth IP packet generated by splitting third IP packets of an internal network to an external network.
[0072] The configuration of the device (200) shown in FIG. 3 is exemplary and can be varied according to the embodiments of the present application.
[0073]
[0074] FIG. 4 is a flowchart of a method for dynamically converting network packet size according to an embodiment of the present application, and FIG. 5 is an example of step S430 of FIG. 4.
[0075] In step S410, the gateway device (200) may receive a plurality of first IP packets of a size less than or equal to a first MTU (eMTU used) from at least one external network. Step S410 may be performed by the packet receiving unit (310) of FIG. 3.
[0076] For example, the external network may be a public network such as the Internet, and the first MTU (using eMTU) may be 1500 bytes. That is, the gateway device (200) can receive multiple first IP packets of size less than or equal to 1500 bytes from the external network.
[0077] In step S420, the gateway device (200) can identify a plurality of received first IP packets in units of flows. Step S420 can be performed by the flow processing unit (320) of FIG. 3.
[0078] Here, a flow can refer to a series of packet streams having the same source and destination.
[0079] In an embodiment, step S420 may be performed based on at least one of a source IP address, a destination IP address, a source port number, a destination port number, and protocol information extracted from the header of a first IP packet. For example, packets having the same source and destination IP addresses and port information and transmitted via the same transmission protocol (TCP or UDP) may be considered as a single flow.
[0080] The gateway device (200) can utilize the RSS (Receive Side Scaling) hash value of the network interface card (210) to optimize flow identification. That is, it can generate a hash value by extracting the source IP, destination IP, source port, destination port, protocol information, etc. from the packet header, and quickly map the packet to a specific flow based on this.
[0081] In an embodiment, the gateway device (200) can identify small flows and large flows. For example, the gateway device (200) can identify a large flow if the number of packets exceeds a certain threshold during a specific period, and a small flow if it is less than or equal to that threshold. In this case, the small flow can be transmitted directly to the internal network. This is because small flow packets contain a large amount of short-term traffic (e.g., web requests, DNS queries, etc.), which results in a low merging effect and may instead increase transmission delay. Meanwhile, the packet merging process described below can be performed on the large flow.
[0082] In step S430, the gateway device (200) can merge a first IP packet identified as the same flow and convert it into at least one second IP packet of a size less than or equal to a second MTU (iMTU) for use within an internal network. Step S430 can be performed by the packet conversion unit (330) of FIG. 3.
[0083] For example, the second MTU (iMTU) can be 9000 bytes. That is, in step S130, the first IP packet of a small size can be merged and converted into a large packet suitable for the internal network.
[0084] If the first IP packet to be merged is a TCP packet, the gateway device (200) can merge consecutive first IP packets in order based on the sequence number in the TCP header.
[0085] First, the first packet merging unit in the network interface card (210) can merge TCP packets with guaranteed order within the same flow using an LRO module. That is, the first packet merging unit can merge packets that belong to the same TCP flow and are in a continuous order into one large TCP packet. The merged large TCP packets can be transmitted to the processing unit (220).
[0086] In the embodiment, merging of discontinuous TCP packets can be performed through steps S431 to S433, as illustrated in FIG. 5.
[0087] First, in step S431, a plurality of discontinuous packets among the received first IP packets can be identified. For example, the first packet merging unit can identify out-of-order packets (discontinuous TCP packets) and transmit them to the computation unit (220). Subsequently, in steps S432 and S433, the second packet conversion unit of the computation unit (220) can rearrange the discontinuous packets based on sequence numbers and merge the packets based on the rearranged order.
[0088] In an embodiment, the second packet conversion unit may be implemented to perform merging by waiting for a certain period of time for subsequently received packets when some packets are missing, or to perform merging by aligning the remaining packets excluding the missing packets.
[0089] Meanwhile, if the first IP packet is a UDP packet, the gateway device (200) can perform the merging by adding original packet length information of at least one of the first IP packets to an additional header of the second IP packet generated by the merging.
[0090] In step S420, if the first IP packet is a UDP packet according to the identified flow, the UDP packet may be transmitted to the computation unit (220) for merging. At this time, the third packet conversion unit of the computation unit (220) may perform merging in different ways for non-contiguous UDP packets and continuous UDP packets having datagrams independent of each other based on IP ID. Here, continuous UDP packets may refer to packets generated continuously in applications such as streaming, VoIP (Voice over IP), and real-time data transmission.
[0091] Referring to FIG. 6(a), a merging process for non-contiguous UDP packets is illustrated as an example. As illustrated, in the case of non-contiguous UDP packets, merging can be performed by concatenating UDP packets in the form of individual datagrams in sequence and adding the original packet size information (pktlen1, pktlen2, pktlen3) of each first IP packet to the additional header of the second IP packet. Through this, individual datagrams can be accurately divided using header information at the destination of the internal network and the original packet boundaries can be restored.
[0092] Next, referring to FIG. 6(b), a merging process for a continuous UDP packet is illustrated as an example. As illustrated, for a continuous UDP packet, the merging can be performed by removing the UDP header and sequentially concatenating only the payloads, and including only single packet size (pktlen) information in the additional header of the second IP packet. This allows the continuous UDP packet to be used as is at the destination without the need for packet splitting.
[0093] In this way, the gateway device (200) can maximize the transmission efficiency of the network by distinguishing between discontinuous UDP packets and continuous UDP packets and applying an optimized merging method suitable for each characteristic.
[0094] In step S440, the gateway device (200) can transmit the second IP packet to a destination of the internal network. Step S440 can be performed by the packet transmitter (340) of FIG. 3.
[0095] In an embodiment, the second IP packet can be transmitted to an internal network via the TSO module of the network interface card (210). The TSO module can optimize transmission by adjusting the packet to fit the size of the second MTU (iMTU) of the internal network.
[0096] Meanwhile, the method (400) illustrated in FIG. 4 is exemplary and can be modified in various ways according to the embodiments of the present application.
[0097]
[0098] FIG. 7 is a flowchart of a method for dynamically converting network packet sizes according to an embodiment of the present application.
[0099] The method (700) of FIG. 7 may further include step S710 in addition to the method (400) described above with reference to FIG. 4.
[0100] In step S710, the gateway device (200) can divide the third IP packet generated within the internal network into fourth IP packets of a first MTU size or smaller suitable for each external network, and then transmit them to the external network.
[0101] In an embodiment, the first MTU may be a path MTU value stored in a transmission path table or an MTU value of at least one external network.
[0102] In an embodiment, the gateway device (200) can split packets by utilizing the TSO module of the network interface card (210). The TSO module automatically splits large packets formed in the internal network to fit the MTU size, allowing them to adapt to the external network with optimized packet sizes.
[0103] Meanwhile, the method (700) illustrated in FIG. 7 is exemplary and can be modified in various ways according to the embodiments of the present application.
[0104]
[0105] FIG. 8 is a diagram showing an example of an implementation of a gateway device for dynamic conversion of network packet size according to an embodiment of the present application.
[0106] Referring to FIG. 8, the gateway device (200) may include various hardware and software modules for performing dynamic conversion of network packet sizes. The gateway device (200) may be composed of a network interface card (210) and a computation unit (220), and each component may be responsible for merging and splitting packets and managing the optimal path MTU.
[0107] First, the network interface card (210) may include several modules for effectively processing received packets. The LRO module (810) can reduce the network processing burden by merging correctly ordered TCP packets within the same flow. Meanwhile, the TSO module (820) can perform the role of splitting packets sent to the internal network (using iMTU) into iMTU sizes for transmission. Through this structure, the gateway device (200) can improve MTU conversion speed and packet processing speed.
[0108] The computation unit (220) controls the overall operation of the gateway device (200) and, in particular, can play a key role in controlling packet merging and transmission. The computation unit (220) performs merging of discontinuous TCP packets transmitted from the network interface card (210) and can also perform merging of UDP packets. Additionally, the computation unit (220) can store and manage the optimal path MTU value to a destination in an external network.
[0109] Meanwhile, as described, the gateway device (200) can receive large flow packets (10) and small flow packets (20) from an external network (using eMTU) and can identify them by flow unit and process them in an appropriate manner. First, the small flow packets (20) can be transmitted directly to the internal network (using iMTU) without an additional merging process.
[0110] On the other hand, a large flow packet (10) can be merged into a second IP packet (30) through the LRO module (810) and / or computation unit (220) of the network interface card (210), and if the packet merged through the LRO module (810) and / or computation unit (220) is larger than iMTU, a segmentation process can be applied in the TSO module (820).
[0111] Meanwhile, the configuration of the gateway device illustrated in FIG. 8 is exemplary and can be modified in various ways according to the embodiments of the present application.
[0112]
[0113] The method according to an embodiment of the present application may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., either alone or in combination. The program instructions recorded on the medium may be those specifically designed and configured for the present application or may be those known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical recording media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, and flash memory. Examples of program instructions include machine code, such as that generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.
[0114] Additionally, the method according to the disclosed embodiments may be provided by being included in a computer program product. The computer program product may be traded between a seller and a buyer as a product.
[0115] A computer program product may include a software program and a computer-readable storage medium on which the software program is stored. For example, a computer program product may include a product in the form of a software program (e.g., a downloadable app) that is electronically distributed through a manufacturer of an electronic device or an electronic market (e.g., Google Play Store, App Store). For electronic distribution, at least a portion of the software program may be stored on a storage medium or temporarily created. In this case, the storage medium may be a server of the manufacturer, a server of the electronic market, or a storage medium of a relay server that temporarily stores the software program.
[0116] A computer program product may include a storage medium of a server or a storage medium of a client device in a system composed of a server and a client device. Alternatively, if there is a third device (e.g., a smartphone) that communicates with the server or the client device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include the S / W program itself that is transmitted from the server to the client device or the third device, or transmitted from the third device to the client device.
[0117] In this case, one of the server, the client device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of the server, the client device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments in a distributed manner.
[0118] For example, a server (e.g., a cloud server or an artificial intelligence server, etc.) can execute a computer program product stored on the server to control a client device connected to the server in communication to perform a method according to the disclosed embodiments.
[0119]
[0120] Although the embodiments have been described in detail above, the scope of the present application is not limited thereto, and various modifications and improvements by those skilled in the art using the basic concept of the present application as defined in the following claims also fall within the scope of the present application.
Claims
1. A method for dynamically converting network packet sizes using a gateway device, A step of receiving a plurality of first IP packets of a first MTU size or smaller from at least one external network; A step of identifying the received plurality of first IP packets in flow units; A step of merging the first IP packet identified as having the same flow and converting it into at least one second IP packet with a second MTU size or smaller for use within an internal network; and A method comprising the step of transmitting the second IP packet to the internal network.
2. In Paragraph 1, The step of identifying the first IP packet in flow units is: A method performed based on at least two of the source IP address, destination IP address, source port number, destination port number, and protocol information extracted from the header of the first IP packet.
3. In Paragraph 1, The step of identifying the above-mentioned first IP packet in terms of flow units is: The method includes a step of identifying whether the flow to which the first IP packet belongs is a small flow or a large flow, and A method in which the step of converting to the second IP packet is performed only on the first IP packet identified as the large flow.
4. In Paragraph 1, If the above first IP packet is a TCP packet, A method in which the step of converting to the second IP packet is performed by merging the first IP packet in order based on the sequence number in the TCP header.
5. In Paragraph 4 If the above first IP packet is a TCP packet, The step of converting into the above second IP packet is, A step of identifying a plurality of discontinuous packets among the received first IP packets; The step of rearranging the order of the above discontinuous packets based on sequence numbers; and A method comprising the step of merging the first IP packets based on the rearranged order.
6. In Paragraph 1, If the above first IP packet is a UDP packet, A method in which the step of converting into the second IP packet is performed by adding original packet length information of at least one of the first IP packets to the header of the second IP packet.
7. In Paragraph 6, If the above first IP packet is a non-contiguous UDP packet, A method in which the step of converting into the second IP packet is performed by adding original packet size information of each of the first IP packets to an additional header of the second IP packet and concatenating the datagrams of the first IP packets in sequence.
8. In Paragraph 6, If the above first IP packet is a continuous UDP packet, A method in which the step of converting to the second IP packet is performed by adding single packet size information of the first IP packet to an additional header of the second IP packet and sequentially concatenating the payloads from which the UDP header of the first IP packet has been removed.
9. In Paragraph 1, A method further comprising the step of dividing at least one third IP packet of the second MTU size or smaller generated within the internal network into fourth IP packets of the first MTU size or smaller suitable for each of the external networks, and then transmitting them to the external networks.
10. A computer program stored on a recording medium to execute a method according to any one of paragraphs 1 through 9.
11. In a gateway device for dynamic conversion of network packet size, A packet receiving unit that receives a plurality of first IP packets of a first MTU size or smaller from at least one external network; and A flow processing unit that identifies a plurality of received first IP packets in flow units; A packet conversion unit that merges the first IP packet identified as having the same flow and converts it into at least one second IP packet with a second MTU size or smaller for use within an internal network; and A gateway device comprising a packet transmitter that transmits the converted second IP packet to the internal network.
Citation Information
Patent Citations
A method, device and system for controlling the packet size for media transmission
EP2237499A1
Network device and packet transmission method of the network device
KR1020180090019A
Dynamic discovery of network packet size
US20180198723A1
Efficient packet queueing for computer networks
US20210051116A1
KR20240140765A