Gateway device and method for optimizing network packet size at application protocol level using same

The gateway device optimizes network packet sizes by aligning them with application protocol PDUs, addressing inefficiencies in TLS and NVMe-oF TCP, thus improving performance and reducing latency.

WO2026071387A1PCT designated stage Publication Date: 2026-04-02SEOUL NATIONAL UNIVERSITY R&DB FOUNDATION
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-06-13
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

The inefficiency in network transmission due to mismatched network MTU sizes with application protocol data units, leading to additional overhead and performance degradation in protocols like TLS and NVMe-oF TCP, particularly in high-performance storage systems.

Method used

A gateway device and method that dynamically recombines and converts network packets to match the Protocol Data Units (PDUs) of application protocols, optimizing packet sizes at the application protocol level.

Benefits of technology

Eliminates unnecessary packet reassembly and buffering, improving transmission speed and reducing latency, thereby enhancing network and application processing performance without requiring hardware or software changes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025008130_02042026_PF_FP_ABST
    Figure KR2025008130_02042026_PF_FP_ABST
Patent Text Reader

Abstract

According to an embodiment of the present application, a gateway device and a method for optimizing a network packet size at an application protocol level using same are provided. The method may comprise the steps of: receiving, from an external network, a plurality of first packets of a predetermined TCP-based application protocol on the basis of a first MTU size; identifying the plurality of received first packets as identical TCP flow units; dynamically reassembling a plurality of second packets identified as identical TCP flows according to a protocol data unit (PDU) of the application protocol; converting the reassembled packets into at least one third packet having a size equal to or less than a second MTU of an internal network; and transmitting the third packet to the internal network.
Need to check novelty before this filing date? Find Prior Art

Description

Gateway device and method for optimizing network packet size at the application protocol level using the same

[0001] The present application relates to a gateway device and a method for optimizing network packet size at the application protocol level using the same.

[0002] Currently, the size of IP packets transmitted over the Internet is determined and used within the minimum and maximum size range (64 bytes to 1500 bytes) of Ethernet frames proposed about 40 years ago. General TCP communication follows a method of constructing and transmitting packets based on the MTU (Maximum Transmission Unit) size on the network path. However, there are often cases where the data unit processed by application protocols (e.g., TLS records, block sizes of NVMe-of-F TCP) does not match the network MTU size, which leads to reduced efficiency in network transmission and requires an additional packet reassembly process at the receiving end.

[0003] Fundamentally, the TCP / IP protocol stack transmits packets based on the MTU size; it operates by having the sender divide large data into smaller packets for transmission, which the receiver then reassembles to restore the original data stream. However, since this method is performed only at the TCP layer and does not consider consistency with the data units of application protocols, it causes performance degradation. In particular, application protocols such as TLS and NVMe-of-TCP process data in units of specific records; consequently, if the network packet size does not match the record size of the application protocol, additional overhead is incurred for packet reassembly.

[0004]

[0005] For example, the Transport Layer Security (TLS) protocol has a structure that encrypts and protects data in units of fixed-size TLS records. However, in a network environment, if the MTU size differs from the TLS record size, the TLS record may be split into multiple packets for transmission. In such cases, the receiving end must reassemble the multiple packets to restore the TLS record to its complete form, requiring a separate buffering process. This process increases the computational burden on the receiving end's CPU and may cause latency until the packets are properly aligned.

[0006] The NVMe-of-Fab (NVMe over Fabrics over TCP) protocol also faces a similar problem. NVMe-of-Fab is a protocol that supports high-speed data transfer with remote storage devices, and it is generally optimal to process data based on a 4KB block size. However, if the existing network MTU is set to 1,500 bytes, a single 4KB block is split into multiple packets for transmission. In this case, the receiving end must reassemble the multiple packets to restore the 4KB block; this process causes unnecessary memory copying and buffering, leading to performance degradation. In particular, since NVMe-of-Fab TCP is used in high-performance storage systems, overall I / O performance can be significantly affected if data processing speeds are reduced due to the inefficient configuration of network packet sizes.

[0007] Therefore, to address these issues with existing technologies, a new method is needed to optimize packets in the middle of the network according to the record units of application protocols.

[0008] The present application aims to provide a gateway device and a method for optimizing network packet size at the application protocol level using the same.

[0009] According to an embodiment of the present application, a method for optimizing network packet sizes at the application protocol level using a gateway device is provided. The method may include: receiving a plurality of first packets of a predetermined TCP-based application protocol based on a first MTU size from an external network; identifying the received plurality of first packets as the same TCP flow unit; dynamically recombining a plurality of second packets identified as the same TCP flow according to the Protocol Data Unit (PDU) unit of the application protocol; converting the recombined packets into at least one third packet with a second MTU size or smaller than that of an internal network; and transmitting the third packet to the internal network.

[0010] In addition, the second MTU size may be larger than the first MTU size.

[0011] Additionally, the recombining step may be performed by merging a plurality of the second packets so that the recombined packet contains an intact PDU of the application protocol.

[0012] Additionally, the step of converting to the third packet may be performed by dividing the recombined packet into a plurality of packets of the PDU size when the size of the recombined packet exceeds the PDU size.

[0013] Additionally, the step of converting to the third packet may be performed by merging the plurality of the recombined packets so that the third packet includes the PDUs of the plurality of the application protocols.

[0014] Additionally, the recombining step can be performed by merging the second packets in sequence based on the sequence number of the TCP header.

[0015] Additionally, the step of identifying the same TCP flow unit 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 packet.

[0016] In addition, the above application protocol may include the Transport Layer Security (TLS) protocol and the NVMe-oF TCP protocol.

[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 optimizing network packet size at the application protocol level is provided. The device may include: a packet receiving unit that receives a plurality of first packets of a predetermined TCP-based application protocol based on a first MTU size from an external network; a flow processing unit that identifies the received plurality of first packets as the same TCP flow unit; a packet conversion unit that dynamically recombines a plurality of second packets identified as the same TCP flow according to the PDU (Protocol Data Unit) unit of the application protocol and converts the recombined packets into at least one third packet with a second MTU size or smaller of an internal network; and a packet transmitting unit that transmits the third packet to the internal network.

[0019] According to the embodiments of the present application, network packets can be optimized by dynamically merging and splitting them to match the record units of an application protocol. This eliminates unnecessary packet combination and buffering processes at the receiving end, and consequently, packet transmission speed is improved and latency is reduced, thereby significantly increasing network and application processing performance.

[0020] In addition, according to the embodiments of the present application, packet reassembly overhead occurring in application protocols such as TLS and NVMe-oF TCP can be eliminated, thereby preventing inefficient data processing between the network and application layers.

[0021] In addition, according to the embodiments of the present application, since high compatibility with existing TCP-based networks and applications can be maintained, it can be applied immediately without additional software or hardware changes, and performance improvement effects can be obtained immediately in various network environments.

[0022] 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.

[0023] A brief description of each drawing is provided to help to better understand the drawings cited in this application.

[0024] FIG. 1 is a system for optimizing network packet size at the application protocol level according to an embodiment of the present application.

[0025] FIG. 2 is a block diagram illustrating the hardware configuration of a gateway device for optimizing network packet size at the application protocol level according to an embodiment of the present application.

[0026] FIG. 3 is a block diagram illustrating the functional configuration of a gateway device for optimizing network packet size at the application protocol level according to an embodiment of the present application.

[0027] FIG. 4 is a flowchart of a method for optimizing network packet size at the application protocol level according to an embodiment of the present application.

[0028] FIG. 5 is a diagram showing an example of an implementation of a system for optimizing network packet size at the application protocol level according to an embodiment of the present application.

[0029] 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.

[0030] 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.

[0031] 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.

[0032] 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.

[0033] 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.

[0034] 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.

[0035] 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 of other components in addition to its own primary function, and it is obvious that some of the primary functions of each component may be exclusively performed by other components.

[0036]

[0037] Hereinafter, embodiments of the present application will be described in detail in turn.

[0038]

[0039] FIG. 1 is a system that performs network packet size optimization at the application protocol level according to an embodiment of the present application.

[0040] Referring to FIG. 1, a system for optimizing network packet size at the application protocol level according to an embodiment of the present application may be composed of an external network and an internal network, and may include a gateway device (200) that converts packet size according to an application protocol record unit.

[0041] The external network may include a general public network such as the Internet, and data may be transmitted based on various application protocols such as TLS (Transport Layer Security), NVMe-of TCP, and HTTP. External servers (110) requiring high-speed data processing, such as NVMe SSDs, streaming devices, etc., may be connected to the external network. These external servers (110) can transmit high-resolution video, large-capacity storage data, real-time streaming data, etc., to a target node in the internal network through the external network, the gateway device (200), and the internal network.

[0042] Data can be divided and transmitted based on the first MTU size in an external network. For example, when using the TLS protocol, data is first divided into TLS record units and then encrypted, and then divided again into IP packets (10) to match the first MTU (e.g., 1500 bytes) of the external network via TCP and transmitted. Similarly, when using NVMe-oF TCP, data is generated based on the storage block unit or data transmission unit (e.g., 4KB block size) of NVMe-oF, but the data can be divided into multiple packets (10) and transmitted according to the first MTU size of the external network.

[0043] The gateway device (200) performs the function of optimizing packet size at the application protocol level. After receiving a packet (10) transmitted from an external network, it identifies packets belonging to the same TCP flow and can dynamically merge or split packets according to the Protocol Data Unit (PDU) unit of the application protocol, that is, the protocol data unit of the application layer (Layer 7). Through this, packets can be reassembled so that the PDU of the application protocol is fully included. Additionally, the gateway device (200) can convert the reassembled packets to match the MTU size of the internal network and transmit them to the internal network.

[0044] The internal network may include various network functions (NF) (120) and host devices (130). The host devices (130) may be implemented as various devices, such as computers, smartphones, VR devices, IPTVs, etc., and may communicate with the external network through the internal network. The internal network transmits packets (20) based on a second MTU size, which may differ from the first MTU size of the external network. For example, the internal network may transmit packets (20) by setting the second MTU size to 9000 bytes for high-performance data processing.

[0045] A host device (130) of an internal network receives a converted packet (20) through a gateway device (200) and can perform application protocol processing based on the converted packet (20). Since the record unit of the application protocol is fully contained within the received packet (20), the host device (130) can immediately perform decoding and application data processing, etc., without separate additional recombination.

[0046] 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.

[0047]

[0048] 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.

[0049] Referring to FIG. 2, the gateway device (200) may include a network interface card (NIC) (210) and a computation unit (220).

[0050] 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 separating the packets by the same TCP flow. In addition, the network interface card (210) can directly process at least a portion of the packets or transmit data to the computation unit (220) by utilizing the LRO (Large Receive Offload) module and the TSO (TCP Segmentation Offload) module. For example, the LRO module can merge packets up to the size of the PDU of the application protocol, and the TSO module can divide the packets into PDU units if the packets merged through the LRO module exceed the size of the PDU of the application protocol.

[0051] 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.

[0052] The operation unit (220) is a central operation module that recombines packets transmitted from the network interface card (210) and performs packet size conversion.

[0053] The operation unit (220) may include a processor (221) and memory (222).

[0054] The processor (221) performs major operations, such as managing packet flow, reassembling packets, and adjusting packet sizes, 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.

[0055] The memory (222) performs functions such as packet buffering, packet header and metadata storage, 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.

[0056] 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.

[0057]

[0058] 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.

[0059] 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.

[0060] The packet receiving unit (310) is implemented in the network graphics card (210) and can receive a plurality of first packets based on a first MTU size from an external network. Here, the plurality of first packets can be generated by dividing data in PDU units of an application protocol into multiple packets based on the first MTU. As described above, the first packets can be merged into a third packet of a second MTU size or smaller suitable for the application protocol and the internal network through the packet conversion unit (330).

[0061] The flow processing unit (320) is implemented in the network graphics card (210) and can identify a plurality of first packets in units of TCP flows. In an embodiment, the identification of flows may 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 first packet received. 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 packet received, and to quickly map the first packets to a specific flow based on this.

[0062] The packet conversion unit (330) can dynamically merge multiple second packets identified as the same TCP flow according to the PDU unit of the application protocol. Through this, the packets can be reassembled so that the PDU of the application protocol is fully included. Additionally, the packet conversion unit (330) can divide the reassembled packets to match the size of the PDU of the application protocol and convert them into at least one third packet.

[0063] The packet conversion unit (330) can be implemented by the Large Receive Offload (LRO) module and / or TCP Segmentation Offload (TSO) module of the network graphics card (210) and the computation unit (220). For example, the LRO module and the computation unit (220) can merge packets belonging to the same TCP flow in order into PDU units of the application protocol, and the TSO module can perform the role of dividing packets transmitted to the internal network into appropriate sizes according to the PDU size of the application protocol and transmitting them.

[0064] The packet transmission unit (340) can transmit the third packet, which is converted and generated by the packet conversion unit (330), to an internal network or a destination node (host device).

[0065] The configuration of the device (200) shown in FIG. 3 is exemplary and can be varied according to the embodiments of the present application.

[0066]

[0067] FIG. 4 is a flowchart of a method for optimizing network packet size at the application protocol level according to an embodiment of the present application.

[0068] In step S410, the gateway device (200) may receive a plurality of first packets of a predetermined application protocol based on a first MTU size from an external network. Step S410 may be performed by the packet receiving unit (310) of FIG. 3.

[0069] Here, the application protocol may include TLS (Transport Layer Security) and NVMe-oF TCP.

[0070] In the embodiment, the external network may be a public network such as the Internet, and the first MTU may be 1500 bytes. That is, data from the external network may be divided and transmitted according to the first MTU size. For example, when using the TLS protocol, encryption is performed in units of TLS records, and then, via TCP, the data may be divided into multiple first packets according to the first MTU (1500 bytes) of the external network and transmitted to the gateway device (200). Similarly, when using NVMe-oF TCP, data is generated based on the storage block unit or data transmission unit of NVMe-oF (e.g., 4KB block size), and the data may be divided into multiple first packets according to the first MTU size of the external network and transmitted to the gateway device (200).

[0071] In step S420, the gateway device (200) can identify a plurality of received first packets as the same TCP flow unit. Step S420 can be performed by the flow processing unit (320) of FIG. 3.

[0072] Here, a flow may mean a series of packet streams having the same 5-tuple.

[0073] 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 the first packet. For example, packets having the same source and destination IP addresses and port information and transmitted using the same protocol may be considered as a single flow.

[0074] In an embodiment, 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, a hash value is generated by extracting the source IP, destination IP, source port, destination port, protocol information, etc. from the packet header, and based on this, the packet can be quickly mapped to a specific flow through a data structure such as a hash table.

[0075] In step S430, the gateway device (200) can dynamically reassemble multiple second packets identified as the same TCP flow according to the PDU size of the application protocol.

[0076] In an embodiment, step S430 may be performed by merging consecutive second packets in order based on the sequence number of the TCP header. First, the gateway device (200) may sort consecutive packets based on the TCP sequence number of the second packets. Subsequently, the gateway device (200) may merge the second packets sorted based on the record or storage block boundary of the application protocol, and may adjust them so that at least one PDU of the application protocol is fully included in one reassembled packet. For example, in the case of the TLS protocol, multiple second packets may be merged so that an entire TLS record is included, and in the case of NVMe-oF TCP, multiple second packets may be merged so that a storage block of size 4KB or 8KB is included in one packet.

[0077] In step S440, the gateway device (200) can convert the recombined packet into at least one third packet of a second MTU or smaller based on the PDU size of the application protocol and / or the second MTU size of the internal network.

[0078] First, the gateway device (200) can transmit the reassembled packet to the internal network as is if the size of the packet is less than or equal to the second MTU size.

[0079] Additionally, according to an embodiment, the gateway device (200) may merge a plurality of recombined PDUs to a size less than or equal to a second MTU to form a single third packet (e.g., merging three PDUs of 3000 bytes).

[0080] In step S450, the gateway device (200) can transmit the third packet to a destination node (i.e., a host device) of the internal network. Step S450 can be performed by the packet transmitter (340) of FIG. 3.

[0081] In an embodiment, the third packet can be transmitted to an internal network via the TSO module of the network interface card (210).

[0082] Through the packet conversion and optimization process according to the embodiment of the present application, the packet processing efficiency of an internal network can be improved, and system performance can be enhanced by reducing unnecessary packet recombination and overhead at the application protocol level in a host device.

[0083] 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.

[0084]

[0085] FIG. 5 is a diagram illustrating an example of an implementation of a system for optimizing network packet size at the application protocol level according to an embodiment of the present application. Specifically, FIG. 5 exemplarily illustrates a gateway device (200) that performs packet size conversion and optimization based on the NVMe-oF-TCP protocol and a system including the same.

[0086] Referring to FIG. 5, the system may include an external server (110) and a gateway device (200) that form an external network, and a host device (130) that forms an internal network.

[0087] The external server (110) may include an NVMe-oF controller, a TCP stack, a file system, an NVMe disk, a network interface card (NIC), etc. The external server (110) performs storage data input / output based on the NVMe-oF protocol and can convert data into network packets and transmit them through the TCP stack. The network interface card (NIC) can divide packets into MTU units of 1500 bytes suitable for an external network through the TSO and transmit them to the gateway device (200).

[0088] The gateway device (200) analyzes an MTU packet of size 1500 bytes received from an external network and performs the function of optimizing the packet size at the application protocol level to convert it to fit the MTU size of the internal network.

[0089] Specifically, the gateway device (200) can identify packets belonging to the same TCP flow based on the TCP stack and analyze the NVMe-oF protocol to reassemble the packets into storage block units of the application protocol. Through this, packets that have been divided and transmitted in units of 1500 bytes can be merged into one complete NVMe-oF data block unit (e.g., 4KB), and the optimized packet can be converted to match the MTU size of the internal network. At this time, the MTU of the internal network may be 4096B, and accordingly, the gateway device (200) can transmit data in the form of one storage block unit to the internal network.

[0090] At this time, the gateway device (200) is composed of a network interface card (210) and a computation unit (220), and in particular, the packet conversion process can be optimized by utilizing network offload functions such as TSO (TCP Segmentation Offload) and LRO (Large Receive Offload) of the network interface card (210).

[0091] The packet converted through the gateway device (200) can be transmitted to a host device (130) which is a destination in the internal network.

[0092] The host device (130) may include an application, an NVMe-oF controller, a TCP stack, etc. The host device (130) can process storage block-unit packets received from the gateway device (200) and perform storage data input / output based on the NVMe-oF protocol. To this end, the TCP stack can receive converted packets from the gateway device (200) and transmit them to the NVMe-oF controller. The NVMe-oF controller can interpret the data transmitted from the TCP stack and save the data to an NVMe disk via a file system, or read data from the NVMe disk and transmit it to the application.

[0093] In this way, the system according to the embodiment of the present application is implemented to convert packets received from an external network through a gateway device (200) into storage block units of an application protocol and transmit them to an internal network in a form optimized for the internal network, thereby enabling the host device (130) to immediately utilize the received data in the application without additional packet reassembly.

[0094] Meanwhile, the configuration of the system illustrated in FIG. 5 is exemplary and can be modified in various ways according to the embodiments of the present application.

[0095]

[0096] 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.

[0097] 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.

[0098] 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.

[0099] 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.

[0100] 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.

[0101] 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.

[0102]

[0103] 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 optimizing network packet size at the application protocol level using a gateway device, A step of receiving a plurality of first packets of a predetermined application protocol based on a first MTU size from an external network; A step of identifying the received plurality of first packets as the same TCP flow unit; A step of dynamically recombining a plurality of second packets identified as the same TCP flow according to the PDU (Protocol Data Unit) unit of the application protocol; A step of converting the recombined packet into at least one third packet with a second MTU size or smaller than that of the internal network; and A method comprising the step of transmitting the third packet to the internal network.

2. In Paragraph 1, The above second MTU size is larger than the above first MTU size, method.

3. In Paragraph 1, The above-mentioned recombining step is, A method performed by merging a plurality of the second packets such that the recombined packet contains the complete PDU of the application protocol.

4. In Paragraph 3, The step of converting to the third packet above is, A method performed by dividing the recombined packet into a plurality of packets of the PDU size or smaller than the second MTU size when the size of the recombined packet exceeds the PDU size.

5. In Paragraph 3, The step of converting to the third packet above is, A method performed by merging a plurality of the recombined packets such that a plurality of the application protocol PDUs are included in the third packet.

6. In Paragraph 3, The above-mentioned recombining step is, A method performed by merging the second packets in sequence according to the sequence number of the TCP header.

7. In Paragraph 1, The step of identifying the above identical TCP flow units is, A method 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 the first packet.

8. In Paragraph 1, The above application protocol includes a Transport Layer Security (TLS) protocol and an NVMe-of-F TCP protocol, a method.

9. A computer program stored on a recording medium to execute a method according to any one of paragraphs 1 through 8.

10. A gateway device for optimizing network packet size at the application protocol level, A packet receiving unit that receives a plurality of first packets of a predetermined application protocol based on a first MTU size from an external network; A flow processing unit that identifies a plurality of received first packets into the same TCP flow unit; A packet conversion unit that dynamically recombines a plurality of second packets identified as the same TCP flow according to the PDU (Protocol Data Unit) unit of the application protocol and converts the recombined packets into at least one third packet with a second MTU size or smaller than that of the internal network; and A gateway device comprising a packet transmitter that transmits the third packet to the internal network.

Citation Information

Patent Citations

  • Traffic data processing method, device and equipment and computer storage medium

    CN112751781A

  • A user terminal and method for providing market prices for food ingredients selected by the user, and a system therefor

    KR1020250147427A

  • Length indicator optimization

    US20100074276A1

  • Hypervisor implemented PMTU functionality and fragmentation in a cloud datacenter

    US20230006941A1

  • KR20240140765A