Packet forwarding system and packet forwarding method
The packet forwarding system optimizes routing through a load balancer with user and kernel space data sharing, addressing latency and consistency issues to enhance communication efficiency and speed.
Patent Information
- Application Number
- JP2025024744
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-02-19
- Publication Date
- 2025-09-29
- Estimated Expiration
- 2045-02-19
AI Technical Summary
Conventional packet forwarding systems face challenges in achieving ultra-low latency delivery due to limitations in load balancer processing speed and inconsistent routing methods, leading to difficulties in maintaining consistent connections between terminal devices and servers.
A packet forwarding system utilizing a load balancer that operates on an operating system with a user space and kernel space, employing maps to share data between spaces, and records information for each pod on the server, enabling accurate routing based on connection IDs or CPU utilization rates to optimize packet forwarding.
The system achieves ultra-low latency delivery by accelerating packet forwarding and improving communication efficiency and consistency between terminal devices and servers.
Smart Images

Figure 0007745795000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a packet forwarding system and a packet forwarding method for forwarding packets with ultra-low latency delivery. [Background technology]
[0002] 2. Description of the Related Art In a conventional packet forwarding system, in order to avoid communication failures, it has been required to provide redundant servers for delivering packets and to connect client terminal devices to the appropriate servers.
[0003] For example, in Patent Document 1, a central station packet redundancy device included in a communication system includes a load balancer that forwards received packets so as to equalize the loads of multiple packet processing devices, multiple packet processing devices that process the packets forwarded by the load balancer, and a switch that forwards packets received from the multiple packet processing devices. The load balancer determines a forwarding destination of the packet based on a first part of the information processing device of the mobile station, and forwards the packet to the determined forwarding destination packet processing device. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Publication No. 2023-048396 Summary of the Invention [Problem to be solved by the invention]
[0005] In a packet forwarding system, in order for the server to deliver data in real time, it is required to forward packets with ultra-low latency between the client terminal device and the server. For example, some packet forwarding systems apply the QUIC protocol to the server, and forward packets by using UDP (User Datagram Protocol) to increase speed while providing communication reliability similar to TCP (Transmission Control Protocol). In a packet forwarding system, when ultra-low latency delivery using the QUIC protocol is used and the server is redundant, it is necessary to transfer each packet by establishing appropriate connections between multiple terminal devices and the redundant servers.
[0006] Some conventional packet forwarding systems implement a load balancer in the L7 application layer to achieve ultra-low latency delivery. However, such load balancers have limitations in processing speed, making it difficult to achieve ultra-low latency delivery even when the number of CPU cores is increased.
[0007] Furthermore, in a packet forwarding system, in order to maintain the consistency and efficiency of communication in ultra-low latency delivery using the QUIC protocol, it is important that a terminal device be accurately routed to the node of the server that first issued the packet. Specifically, in response to a request sent by a terminal device, the server responds with a response including a connection ID, and the terminal device then needs to connect to the server that issued the connection ID. However, in a packet forwarding system, the method by which a terminal device connects to the server and the method by which a server identifies the terminal device that will respond are not clearly defined, making it difficult to maintain a consistent connection between a terminal device and a server.
[0008] Therefore, in consideration of the above circumstances, the present invention aims to provide a packet forwarding system and a packet forwarding method that can improve the consistency and efficiency of communication between a terminal device and a server while accelerating packet forwarding and achieving ultra-low latency delivery. [Means for solving the problem]
[0009] In order to solve the above problem, the packet forwarding system of the present invention comprises a terminal device, a server that defines multiple pods consisting of one or more containers and is redundant, and that processes packets using the QUIC protocol, and a load balancer that forwards packets between the terminal device and the server, wherein the load balancer operates on an operating system having a user space and a kernel space, has a map that allows data to be shared between the user space and the kernel space, and for each pod present on the server, records first information consisting of a key including an identifier and a value including an IP address in the map, which is a first map, and when a packet is received from the terminal device, the load balancer refers to the first map, and if the connection ID set in the packet contains the identifier, forwards the packet to the pod with the IP address corresponding to the identifier, and if the connection ID set in the packet does not contain the identifier, forwards the packet to the pod with the lowest CPU utilization rate among the multiple pods present on the server.
[0010] In addition, in order to solve the above-mentioned problems, the packet forwarding method of the present invention is a packet forwarding method for forwarding packets between a terminal device and a redundant server that defines multiple pods consisting of one or more containers and processes packets using the QUIC protocol, and is characterized in that it operates on an operating system having a user space and a kernel space, and a load balancer having a map that can share data between the user space and the kernel space records first information for each pod present on the server, the first information consisting of a key including an identifier and a value including an IP address, in the map, and when a packet is received from the terminal device, it refers to the first map, and if the connection ID set in the packet includes the identifier, it forwards the packet with the pod having the IP address corresponding to the identifier as its destination, and if the connection ID set in the packet does not include the identifier, it forwards the packet with the pod having the lowest CPU utilization rate among the multiple pods present on the server as its destination. [Effects of the Invention]
[0011] According to the present invention, it is possible to provide a packet forwarding system and a packet forwarding method that can speed up packet forwarding and achieve ultra-low latency delivery while improving the consistency and efficiency of communication between a terminal device and a server. [Brief explanation of the drawings]
[0012] [Figure 1] 1 is a block diagram illustrating a packet forwarding system according to an embodiment of the present invention. [Figure 2] 10 is a flowchart illustrating an example of a packet forwarding operation in the packet forwarding system according to one embodiment of the present invention. [Figure 3] 10 is a flowchart illustrating an example of the operation of request packet processing in the load balancer of the packet forwarding system according to one embodiment of the present invention. [Figure 4]10 is a flowchart illustrating an example of the operation of response packet processing in the load balancer of the packet forwarding system according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0013] First, the overall configuration of a packet forwarding system 1 according to an embodiment of the present invention will be described with reference to Fig. 1. As shown in Fig. 1, the packet forwarding system 1 includes one or more terminal devices 2 that are clients, a server 3 that performs distribution and the like, and a load balancer 4 that forwards packets between the terminal devices 2 and the server 3. The terminal devices 2 and the load balancer 4 are connected to be able to communicate with each other via a network such as the Internet, and the server 3 and the load balancer 4 are connected to be able to communicate with each other via a network such as the Internet.
[0014] In this embodiment, the packet forwarding system 1 applies the QUIC (Quick UDP Internet Connections) protocol, which is based on the UDP (User Datagram Protocol). The QUIC packet structure used in the QUIC protocol includes a connection ID that indicates the destination. In this embodiment, the connection ID of the QUIC packet structure transmitted from the terminal device 2 to the server 3 includes an identifier portion for storing an identifier that identifies the pod 3a of the destination server 3.
[0015] The terminal device 2 is a so-called client that uses the service provided by the server 3. While Fig. 1 illustrates an example in which the packet forwarding system 1 has two terminal devices 2, the packet forwarding system 1 may have one or three or more terminal devices 2.
[0016] The terminal device 2 transmits a UDP packet including a QUIC packet structure to the server 3 via the load balancer 4. For example, in order to receive a service from the server 3, the terminal device 2 creates a request packet and transmits it to the server 3 via the load balancer 4, and receives a response packet from the server 3 in response to the request packet via the load balancer 4.
[0017] The terminal device 2 sets in the request packet source information including the IP address of the terminal device 2 and the port of the terminal device 2, and also sets in the request packet destination information including the IP address of the load balancer 4 and the listen port (waiting port) of the load balancer 4. Before the pod 3a issues a connection ID indicating the pod 3a that is its destination, the terminal device 2 sets in the request packet a connection ID with a random value, and after the pod 3a issues a connection ID indicating the pod 3a that is its destination, the terminal device 2 sets in the request packet a connection ID that includes the identifier of the pod 3a.
[0018] The terminal device 2 receives a response packet having source information including the IP address of the load balancer 4 and the listen port of the load balancer 4, and destination information including the IP address of the terminal device 2 and the port of the terminal device 2.
[0019] The server 3 is a so-called QUIC server that operates by applying the QUIC protocol in order to realize packet transfer with ultra-low latency delivery, and performs packet processing using the QUIC protocol.
[0020] The server 3 applies an orchestration system (container management system) such as Kubernetes (registered trademark) to define multiple pods 3a as container execution units each consisting of one or more containers. While FIG. 1 illustrates an example in which the server 3 has two pods 3a, the server 3 may have three or more pods 3a. The server 3 is configured with redundant packet processing functions so that the multiple pods 3a, which are container execution units, function as multiple packet processing units that process packets between the server 3 and the terminal device 2. In the server 3, when a packet communication request is received from one terminal device 2, one of the multiple pods 3a communicates one-to-one with the terminal device 2 and functions as a packet processing unit.
[0021] The server 3 transmits a QUIC packet or a UDP packet including a QUIC packet structure to the terminal device 2 via the load balancer 4. For example, in order to accept a request from the terminal device 2, the server 3 receives a request packet from the terminal device 2 via the load balancer 4, creates a response packet in response to the request packet, and transmits the response packet to the terminal device 2 via the load balancer 4.
[0022] The server 3 sets source information including the IP address of the pod 3a that is the source of the server 3 and the port of the server 3 in the response packet, and also sets destination information including the IP address of the load balancer 4 and the port of the terminal device 2 in the response packet. The server 3 receives a request packet having source information including the IP address of the load balancer 4 and the port of the terminal device 2, and destination information including the IP address of the pod 3a that is the destination of the server 3 and the listen port of the server 3. The server 3 has the same listen port as the load balancer 4.
[0023] Furthermore, the server 3 has an API (Application Programming Interface) that can provide information about the multiple pods 3a to the load balancer 4. For example, the server 3 has an API that provides the pod name and IP address of each of the multiple pods 3a that exist on the server 3, and an API that provides the CPU utilization rate and the pod name or IP address of each of the multiple pods 3a that exist on the server 3.
[0024] The load balancer 4 is configured to include, for example, a control unit 10, a storage unit 11, and a communication unit 12 as hardware.
[0025] The control unit 10 controls the various parts and functions of the load balancer 4, and is configured with a computer such as a CPU (Central Processing Unit), and is connected to a storage unit 11 and a communication unit 12. The storage unit 11 is configured with memories such as a ROM (Read Only Memory) and a RAM (Random Access Memory), and a recording medium such as a hard disk, and stores programs and data for controlling the various parts and functions of the load balancer 4. The communication unit 12 is an interface for connecting the load balancer 4 to a network, and in other words, connects the load balancer 4 to the terminal device 2 and the server 3 via the network.
[0026] The control unit 10 controls various components and functions of the load balancer 4 by executing arithmetic processing based on programs and data stored in the storage unit 11. For example, the control unit 10 operates as a first map creation unit 20, a packet determination unit 21, a first packet rewriting unit 22, a second map creation unit 23, and a second packet rewriting unit 24 by executing a program stored in the storage unit 11. The first map creation unit 20, the packet determination unit 21, the first packet rewriting unit 22, the second map creation unit 23, and the second packet rewriting unit 24 realize the first map creation step, the packet determination step, the first packet rewriting step, the second map creation step, and the second packet rewriting step of the packet forwarding method according to the present invention.
[0027] The load balancer 4 runs on an operating system such as Linux (registered trademark) that has a user space 11a and a kernel space 11b in the storage unit 11. In FIG. 1, the user space 11a and the kernel space 11b are illustrated as being separate from the storage unit 11, but the user space 11a and the kernel space 11b are actually deployed in the storage unit 11.
[0028] The load balancer 4 has a user space application 15, such as a golang application, implemented in a programming language such as golang and running in the user space 11a, and a kernel space program 16, such as an eBPF program implemented using a technology such as eBPF (extended Berkeley Packet Filter) for inserting and executing a program in the kernel space 11b and running in the kernel space 11b.
[0029] The load balancer 4 has a map 17 such as an eBPF map that allows data to be shared between the user space 11a and the kernel space 11b. The map 17 is composed of a data structure that can be used by technologies such as eBPF, and enables the kernel space program 16 to exchange data between a user space application 15 in the user space 11a and a kernel space program 16 in the kernel space 11b.
[0030] The load balancer 4 has in its memory unit 11 the above-mentioned maps 17, namely, a first map 17a that records first information regarding each of the multiple pods 3a present in the server 3, and a second map 17b that records second information for linking the terminal device 2 with the pods 3a of the server 3.
[0031] The first map creation unit 20 uses the API of the server 3 via the user space application 15 to acquire information about the multiple pods 3a from the server 3 at each predetermined timing, and creates or updates the first map 17a using first information based on the acquired information. The first map creation unit 20 sets a predetermined elapsed time (for example, 10 seconds) as the predetermined timing.
[0032] For example, the first map creation unit 20 acquires the pod name and IP address of each of the multiple pods 3a present in the server 3, and acquires the identifier of each pod 3a from the pod name of each pod 3a, specifically, acquires the last five characters of the pod name as the identifier (5 bytes).Then, the first map creation unit 20 records, for each pod 3a present in the server 3, first information consisting of a key including the identifier and a value including the IP address in the first map 17a.
[0033] The first map creation unit 20 also acquires the CPU utilization rate of each of the multiple pods 3a present in the server 3, and designates the pod 3a with the lowest CPU utilization rate among the multiple pods 3a as the specific pod 3a. Then, the first map creation unit 20 records, in the first map 17a, first information for the specific pod 3a, which is made up of a key including a fixed character string and a value including an IP address.
[0034] The packet determination unit 21 receives a packet from the terminal device 2 or the server 3 , and determines by the kernel space program 16 whether the packet received by the load balancer 4 is a packet from the terminal device 2 or a packet from the server 3 .
[0035] For example, the packet determination unit 21 determines whether the received packet is a UDP packet, and if it is a UDP packet, the packet determination unit 21 further disassembles the UDP packet to obtain the UDP header, and if the destination port is the listen port of the load balancer 4, determines that the packet is from the terminal device 2, and if not, determines that the packet is from the server 3.
[0036] When the packet received by the load balancer 4 is a packet from the terminal device 2, the first packet rewriting unit 22 uses the kernel space program 16 to determine the pod 3a of the server 3 to which the packet is destined, links the terminal device 2 with the pod 3a, and rewrites the destination information of the packet to the destination information of the pod 3a of the server 3 to which the packet is destined.
[0037] For example, the first packet rewriting unit 22 receives a request packet from the terminal device 2 in which source information including the IP address of the terminal device 2 and the port of the terminal device 2 is set.
[0038] The first packet rewriting unit 22 acquires the connection ID from the QUIC packet structure of the request packet from the terminal device 2, and extracts from the connection ID an identifier portion for storing an identifier for identifying the pod 3a of the destination server 3. The first packet rewriting unit 22 also refers to the first map 17a to determine whether or not there is first information about the pod 3a using the identifier indicated in the identifier portion as a key.
[0039] If the first information of the pod 3a using the identifier portion as a key exists in the first map 17a, the first packet rewriting unit 22 acquires the IP address of the pod 3a indicated by the value of the first information. If the first information of the pod 3a using the identifier portion as a key does not exist in the first map 17a, the first packet rewriting unit 22 refers to the first map 17a to acquire the first information of the specific pod 3a with the lowest CPU utilization rate using the fixed character string as a key, and acquires the IP address of the specific pod 3a indicated by the value of the first information.
[0040] Then, the first packet rewriting unit 22 rewrites the destination information of the request packet from the terminal device 2 to destination information including the acquired IP address of the pod 3a and the listen port of the server 3. The first packet rewriting unit 22 also rewrites the source information of the request packet from the terminal device 2 to source information including the IP address of the load balancer 4 and the port of the terminal device 2. The first packet rewriting unit 22 transmits the rewritten request packet to the pod 3a of the server 3 based on the destination information.
[0041] When the first packet rewriting unit 22 determines the pod 3a of the server 3 that is the destination of a packet upon receiving the packet from the terminal device 2, the second map creation unit 23 creates or updates the second map 17b with second information based on the source information and destination information of the packet, using the kernel space program 16. For example, the second map creation unit 23 records, in the second map 17b, second information consisting of a key including the IP address of the pod 3a in the destination information after rewriting and the port of the terminal device 2 in the source information before rewriting, and a value including the IP address of the terminal device 2 in the source information before rewriting, the IP address of the pod 3a in the destination information after rewriting, and the port of the terminal device 2 in the source information before rewriting.
[0042] When the packet received by the load balancer 4 is a packet from the pod 3a of the server 3, the second packet rewriting unit 24 uses the kernel space program 16 to determine the terminal device 2 that is the destination of the packet, links the pod 3a of the server 3 with the terminal device 2, and rewrites the destination information of the packet to the destination information of the terminal device 2 that is the destination.
[0043] For example, the second packet rewriting unit 24 receives a response packet from the server 3, in which source information is set that includes the IP address of the pod 3a that is the sender of the server 3 and the port of the server 3. The second packet rewriting unit 24 refers to the second map 17b to obtain second information using the IP address of the pod 3a and the port of the terminal device 2 in the source information as keys, and obtains the IP address of the terminal device 2 and the port of the terminal device 2 indicated in the value of the second information.
[0044] Then, the second packet rewriting unit 24 rewrites the destination information of the response packet from the server 3 to destination information including the acquired IP address of the terminal device 2 and the port of the terminal device 2. The second packet rewriting unit 24 also rewrites the source information of the response packet from the server 3 to source information including the IP address of the load balancer 4 and the port of the load balancer 4. The second packet rewriting unit 24 transmits the rewritten response packet to the terminal device 2 based on the destination information.
[0045] Next, an example of the operation of packet forwarding by the load balancer 4 of the packet forwarding system 1 will be described with reference to the flowcharts of FIGS.
[0046] First, when the load balancer 4 receives a packet (step S1), the packet determination unit 21 determines whether the received packet is a UDP packet (step S2).
[0047] If the received packet is not a UDP packet (step S2: No), the packet is not subject to this processing and normal processing is performed, ending the process.
[0048] If the received packet is a UDP packet (step S2: Yes), the packet determination unit 21 determines whether the destination port indicated in the UDP header of the UDP packet is the listen port of the load balancer 4 (step S4).
[0049] If the destination port is not the listen port of the load balancer 4 (step S4: No), the packet determination unit 21 determines that the received packet is a response packet from the server 3, and proceeds to response packet processing (step S3).
[0050] If the destination port is the listen port of the load balancer 4 (step S4: Yes), the packet determination unit 21 determines that the received packet is a request packet from the terminal device 2, and proceeds to request packet processing (step S5).
[0051] Next, the process of processing a request packet from the terminal device 2 (step S5) will be described with reference to the flowchart of FIG.
[0052] First, the first packet rewriting unit 22 extracts the identifier portion of the pod 3a of the server 3 from the connection ID of the request packet (step S11).
[0053] Furthermore, the first packet rewriting unit 22 refers to the first map 17a and determines whether or not there is first information of the pod 3a that uses the identifier indicated in the identifier portion as a key (step S12).
[0054] If the first information of pod 3a using the identifier included in the connection ID as a key exists in the first map 17a (step S12: Yes), the first packet rewriting unit 22 obtains the IP address of the destination pod 3a from the first information (step S13).
[0055] If the first information of the pod 3a using the identifier included in the connection ID as a key does not exist in the first map 17a (step S12: No), the first packet rewriting unit 22 refers to the first map 17a and obtains the IP address of the specific pod 3a from the first information of the specific pod 3a with the lowest CPU utilization rate using a fixed string as a key (step S14).
[0056] The first packet rewriting unit 22 rewrites the destination information of the request packet to destination information including the IP address of the pod 3a or the specific pod 3a acquired in step S13 or step S14 and the listen port of the server 3 (step S15).The first packet rewriting unit 22 also rewrites the source information of the request packet to source information including the IP address of the load balancer 4 and the port of the terminal device 2 (step S16).
[0057] The second map creation unit 23 records the second information consisting of the information of the destination pod 3a and the information of the source terminal device 2 in the second map 17b (step S17). Specifically, the second map creation unit 23 records the second information consisting of a key including the IP address of the pod 3a in the rewritten destination information and the port of the terminal device 2 in the source information before rewriting, and a value including the IP address of the terminal device 2 in the source information before rewriting, the IP address of the pod 3a in the destination information after rewriting, and the port of the terminal device 2 in the source information before rewriting in the second map 17b.
[0058] The first packet rewriting unit 22 transmits the rewritten request packet to the pod 3a of the server 3 based on the destination information (step S18).
[0059] Next, the response packet processing from the server 3 (step S3) will be described with reference to the flowchart of FIG.
[0060] First, the second packet rewriting unit 24 refers to the second map 17b to obtain second information using the IP address of the pod 3a in the source information of the response packet and the port of the terminal device 2 as keys, and obtains the IP address of the destination terminal device 2 and the port of the terminal device 2 from the second information (step S21).
[0061] The second packet rewriting unit 24 rewrites the destination information of the response packet to destination information including the IP address of the terminal device 2 and the port of the terminal device 2 acquired in step S21 (step S22). In addition, the second packet rewriting unit 24 rewrites the source information of the response packet to source information including the IP address of the load balancer 4 and the port of the load balancer 4 (step S23).
[0062] The second packet rewriting unit 24 transmits the rewritten response packet to the terminal device 2 based on the destination information (step S24).
[0063] In this embodiment, as described above, the packet forwarding system 1 includes a terminal device 2, a server 3 that performs packet processing using the QUIC protocol and that defines and redundancies multiple pods 3a each consisting of one or more containers, and a load balancer 4 that forwards packets between the terminal device 2 and the server 3. The load balancer 4 operates on an operating system having a user space 11a and a kernel space 11b, and has a map 17 that allows data to be shared between the user space 11a and the kernel space 11b. For each pod 3a existing in the server 3, first information consisting of a key including an identifier and a value including an IP address is recorded in the first map 17a, which is the map 17. When a packet is received from the terminal device 2, the load balancer 4 refers to the first map 17a. If the connection ID set in the packet contains an identifier, the packet is forwarded to the pod 3a having the IP address corresponding to the identifier. If the connection ID set in the packet does not contain an identifier, the packet is forwarded to the pod 3a with the lowest CPU utilization rate among the multiple pods 3a existing in the server 3.
[0064] In other words, the packet forwarding method of the present invention is a packet forwarding method for forwarding packets between a terminal device 2 and a server 3 that performs packet processing using the QUIC protocol and that defines and makes redundant multiple pods 3a consisting of one or more containers, and a load balancer 4 that operates on an operating system having a user space 11a and a kernel space 11b and has a map 17 that can share data between the user space 11a and the kernel space 11b.The load balancer 4 records, in the first map 17, first information for each pod 3a existing in the server 3, the first information consisting of a key including an identifier and a value including an IP address, and when a packet is received from the terminal device 2, the first map 17a is referenced, and if the connection ID set in the packet includes an identifier, the packet is forwarded to the pod 3a having the IP address corresponding to the identifier.If the connection ID set in the packet does not include an identifier, the packet is forwarded to the pod 3a with the lowest CPU utilization rate among the multiple pods 3a existing in the server 3.
[0065] With this configuration, according to this embodiment, when ultra-low latency delivery is performed using multiple redundant pods 3a in a server 3 that applies the QUIC protocol, if there is a pod 3a that has been performing packet forwarding with the terminal device 2, the pod 3a is used as the destination, and if there is no pod 3a that has been performing packet forwarding with the terminal device 2, the pod 3a with a low CPU utilization rate is used as the destination, thereby enabling high-speed packet forwarding. Thus, according to the packet forwarding system 1 of the present invention, the load balancer 4 clarifies the pod 3a that is the destination from the terminal device 2, and it is possible to speed up packet forwarding and achieve ultra-low latency delivery while improving the consistency and efficiency of communication between the terminal device 2 and the server 3.
[0066] Furthermore, in the packet forwarding system 1 of this embodiment, when the load balancer 4 receives a packet from the terminal device 2 and forwards it to the pod 3a as the destination, it records second information consisting of a key including the IP address of the pod 3a and the port of the terminal device 2, and a value including the IP address of the terminal device 2, the IP address of the pod 3a, and the port of the terminal device 2, in the second map 17b, which is the map 17, and when it receives a packet from the pod 3a, it obtains the IP address of the pod 3a from the source information set in the packet, and by referring to the second map 17b, forwards the packet to the IP address of the terminal device 2 corresponding to the IP address of the pod 3a as the destination.
[0067] With this configuration, according to this embodiment, when the server 3 sends a response packet in response to a request packet from the terminal device 2, it is possible to easily and quickly identify the IP address of the destination terminal device 2. In this way, according to the packet forwarding system 1 of the present invention, the load balancer 4 clarifies the terminal device 2 that is the destination from the server 3, and it is possible to speed up packet forwarding and achieve ultra-low latency delivery while improving the consistency and efficiency of communication between the terminal device 2 and the server 3.
[0068] In the above embodiment, the packet forwarding system 1 has been described as an example in which the source of a request packet and the destination of a response packet are the IP address and port of the terminal device 2, but the present invention is not limited to this example. The source of a request packet and the destination of a response packet may also be the IP address and port of a gateway connected to the terminal device 2.
[0069] The present invention can be modified as appropriate within the scope that does not contradict the gist or idea of the invention that can be read from the claims and the entire specification, and packet forwarding systems and packet forwarding methods involving such modifications are also included in the technical idea of the present invention. [Explanation of symbols]
[0070] 1 Packet forwarding system 2. Terminal Device 3 Server 3a pod 4. Load Balancer 10 Control Unit 11 Storage section 11a User Space 11b Kernel Space 12 Communications Department 15 User Space Applications 16 Kernel Space Programs 17 Maps 17a Map 1 17b 2nd map 20 First Map Creation Department 21 Packet determination unit 22 First packet rewriting unit 23 Second Map Creation Department 24 Second packet rewriting unit
Claims
1. A terminal device; A redundant server that defines multiple pods consisting of one or more containers and performs packet processing using the QUIC protocol; a load balancer that transfers packets between the terminal device and the server, The load balancer operates on an operating system having a user space and a kernel space, and has a map that allows data to be shared between the user space and the kernel space; For each pod present on the server, first information consisting of a key including an identifier and a value including an IP address is recorded in a first map that is the map; A packet forwarding system characterized in that when a packet is received from the terminal device, the first map is referenced, and if the identifier is included in the connection ID set in the packet, the packet is forwarded to the pod with the IP address corresponding to the identifier, and if the identifier is not included in the connection ID set in the packet, the packet is forwarded to the pod with the lowest CPU utilization rate among the multiple pods existing on the server.
2. When the load balancer receives a packet from the terminal device and forwards the packet to the pod as the destination, the load balancer records second information in the second map, which is the map, the second information being composed of a key including the IP address of the pod and a port of the terminal device, and a value including the IP address of the terminal device, the IP address of the pod, and a port of the terminal device; The packet forwarding system described in claim 1, characterized in that when a packet is received from the pod, the IP address of the pod is obtained from the source information set in the packet, and the packet is forwarded to the IP address of the terminal device corresponding to the IP address of the pod by referring to the second map.
3. A packet transfer method for transferring packets between a terminal device and a redundant server that performs packet processing using a QUIC protocol and defines a plurality of pods each consisting of one or more containers, A load balancer that operates on an operating system having a user space and a kernel space and has a map that allows data to be shared between the user space and the kernel space, For each pod present on the server, first information consisting of a key including an identifier and a value including an IP address is recorded in a first map that is the map; A packet forwarding method characterized by the fact that, when a packet is received from the terminal device, the first map is referenced, and if the identifier is included in the connection ID set in the packet, the packet is forwarded to the pod with the IP address corresponding to the identifier, and if the identifier is not included in the connection ID set in the packet, the packet is forwarded to the pod with the lowest CPU utilization rate among the multiple pods existing on the server.
4. When the load balancer receives a packet from the terminal device and forwards the packet to the pod as the destination, second information consisting of a key including the IP address of the pod and a port of the terminal device, and a value including the IP address of the terminal device, the IP address of the pod, and a port of the terminal device is recorded in a second map, which is the map; A packet forwarding method as described in claim 3, characterized in that when a packet is received from the pod, the IP address of the pod is obtained from the source information set in the packet, and the packet is forwarded to the IP address of the terminal device corresponding to the IP address of the pod by referring to the second map.
Citation Information
Patent Citations
Dynamic routing using container orchestration service
JP2020096357A
SYSTEM, METHOD, AND COMPUTER-READABLE MEDIUM FOR STREAMING DATA ACCESS - Patent application
JP2024504885A
Multi-cluster access method and system
JP2025523118A
Multifunctional application gateway for security and privacy
US20230073891A1
Encrypted data packet forwarding
US20230198964A1