Transfer device, transfer method, and transfer program
The transfer device addresses queue management challenges by distributing packets to logical paths, setting weights, and selecting queues based on packet amounts, achieving optimal queue management for network slicing and 5G requirements.
Patent Information
- Application Number
- JP2024526134
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-06-08
- Publication Date
- 2025-08-20
- Estimated Expiration
- 2042-06-08
AI Technical Summary
Conventional technologies struggle to manage queues appropriately according to network requirements, particularly in network slicing, and experience queuing delays when handling large numbers of packets in low-latency queues, failing to meet 5G network demands.
A transfer device that distributes packets to queues based on logical paths, sets weights for each queue according to packet amounts, and selects output queues based on these weights, using algorithms like CoDel for low latency and FIFO for high speed and large capacity.
Enables effective queue management that meets network requirements, ensuring high capacity and low latency by optimizing queue structure and algorithm selection for each logical path.
Smart Images

Figure 0007726399000001 
Figure 0007726399000002 
Figure 0007726399000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a transfer device, a transfer method, and a transfer program. [Background technology]
[0002] In recent years, 5G (5 th In the Next Generation Mobile Communication System (NGS), network slicing is known, which logically divides a network according to network requirements such as high speed, large capacity, and low latency to accommodate various use cases such as 4K streaming and remote control.
[0003] Segment Routing (SR) is a technology that assigns an identifier to the packet header in a network slice and performs routing control based on the identifier. A forwarding device that forwards this network slice can handle multiple network slices. The forwarding device stores packets that come in from an interface in a queue and then outputs them.
[0004] A simple queuing method is, for example, FIFO (First In, First Out), which places packets in a queue in the order they arrive and transmits them in the order they arrive.Methods such as CoDel (Controlled Delay), which increases the packet discard probability as the queuing delay increases, have been proposed as a way to solve the problem of increased queuing delay in FIFO.Also, there is QoS (Quality of Service), a technology for ensuring network quality.
[0005] QoS is a mechanism for performing priority control to prevent degradation of service quality such as IP telephony. A typical method for guaranteeing QoS is Differentiated Services (DiffServ), which uses the DSCP (Differentiated Services Code Point) value of IP packets. DiffServ is a method for classifying communication flows into several classes and controlling them by assigning priorities to each class. A queuing algorithm that also reserves bandwidth has been proposed as a QoS technology for guaranteeing quality on a traffic-by-traffic basis; this technology has multiple queues and controls the harvesting speed according to network requirements. [Prior art documents] [Non-patent literature]
[0006] [Non-Patent Document 1] RFC8289 “Controlled Delay Active Queue Management”, [online], [Retrieved June 2, 2022], Internet<https: / / www.rfc-editor.org / rfc / pdfrfc / rfc8289.txt.pdf> Summary of the Invention [Problem to be solved by the invention]
[0007] However, conventional technologies have the problem that they are sometimes unable to properly manage queues according to network requirements. For example, conventional technologies cannot be applied to network slicing because they use the option field of IP packets for packet allocation. Furthermore, conventional technologies have the problem that queuing delays can occur when a large number of packets are received in a low-latency queue, making them unable to meet network requirements such as 5G.
[0008] The present invention has been made in view of the above, and has an object to provide a transfer device, a transfer method, and a transfer program that are capable of appropriately performing queue management in accordance with network requirements. [Means for solving the problem]
[0009] In order to solve the above-mentioned problems and achieve the object, the transfer device of the present invention is characterized by having a distribution unit that distributes received packets to each queue provided on a logical path basis, a selection unit that sets a weight for each queue according to the amount of packets inside the queue provided on a logical path basis and selects a queue to output packets from according to the set weight, and an output unit that outputs packets from the queue selected by the selection unit. [Effects of the Invention]
[0010] According to the present invention, queue management can be performed appropriately in accordance with network requirements. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is a block diagram illustrating an example of a configuration of a system according to an embodiment. [Figure 2] FIG. 2 is a block diagram illustrating the configuration of the transfer device of this embodiment. [Figure 3] FIG. 3 is a diagram illustrating queue management by CoDel. [Figure 4] FIG. 4 is a diagram illustrating the queue management process performed by the transfer device of this embodiment. [Figure 5] FIG. 5 is a flowchart illustrating an example of a processing procedure performed by the transfer device according to the embodiment. [Figure 6] FIG. 6 is a diagram illustrating a computer that executes a program. DETAILED DESCRIPTION OF THE INVENTION
[0012] Hereinafter, embodiments of a transfer device, a transfer method, and a transfer program according to the present application will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described below.
[0013] [System Configuration] The configuration of a system including a transfer device according to an embodiment will be described. FIG. 1 is a block diagram showing an example of the configuration of a system according to an embodiment. As shown in FIG. 1, the system includes a plurality of transfer devices 10, a controller 20, an SMF (Session Management Function) 30, a UPF (User Plane Function) 40, a user terminal 50 such as a smartphone, an IoT device 60 installed in a factory or the like, and a server 70. Note that, in the network configuration shown in FIG. 1, each device may communicate via any communication network such as the Internet, a LAN, or a VPN (Virtual Private Network). Also, the configuration shown in FIG. 1 is merely an example, and the specific configuration and the number of devices are not particularly limited.
[0014] The system shown in Figure 1 is an environment where there are services that require high-speed, high-volume networks, such as 4K video, and services that require low-latency networks, such as remote control. Also, the network slice is a network made up of SRs and is composed of logical paths.
[0015] The transfer device 10 transfers packets transmitted and received between the user terminal 50 or IoT device 60 and the server 70. The transfer device 10 performs queue management for each network slice that logically divides the network, and transfers packets according to network requirements such as high speed, large capacity, and low latency. For example, the transfer device 10 performs queue management for each logical path by using a slice identifier such as an SR SID (Segment Identifier).
[0016] The controller 20 performs various controls on each transfer device 10. For example, the controller 20 acquires UE (User Equipment) information, QoS information, and the like as information required for slice generation and queuing setting from the SMF 30. Then, when generating optimal slices for each transfer device 10, the controller 20 performs queuing setting for each slice.
[0017] For example, if the network requirement is "low latency" (e.g., keeping the latency within a specified time), the controller 20 instructs the transfer device 10 to use "CoDel" as the queue algorithm, and if the network requirement is "high speed and large capacity," the controller 20 instructs the transfer device 10 to use "FIFO" since latency is not a concern.
[0018] The controller 20 also varies the queue size according to the network requirements. For example, if the network requirement is "low latency," the controller 20 instructs the transfer device 10 to reduce the queue size in order to discharge packets without queuing delay, and if the network requirement is "high speed and large capacity," the controller 20 instructs the transfer device 10 to increase the queue size in consideration of the possibility of storing packets with large data volumes.
[0019] The SMF 30 has functions such as session management and IP allocation management. For example, the SMF 30 selects the UPF 40 to be used in the session. The UPF 40 has a user plane processing function. The UPF 40 includes a routing / transfer function for data handled in the user plane.
[0020] [Transfer Device Configuration] 2 is a block diagram illustrating the configuration of a transfer device according to the present embodiment. As illustrated in FIG. 2, a transfer device according to the present embodiment includes a communication processing unit 11, a control unit 12, and a storage unit 13.
[0021] The communication processing unit 11 is realized by a NIC (Network Interface Card) or the like, and controls communication via a telecommunication line such as a LAN (Local Area Network) or the Internet.
[0022] The storage unit 13 stores data and programs necessary for various processes performed by the control unit 12. For example, the storage unit 13 is a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk.
[0023] The control unit 12 has an internal memory for storing programs that define various processing procedures and required data, and executes various processes using these. For example, the control unit 12 has a setting unit 12a, a distribution unit 12b, a selection unit 12c, and an output unit 12d. Here, the control unit 12 is an electronic circuit such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
[0024] The setting unit 12a sets the queue algorithm according to the network requirements of each queue. For example, if the network requirement is "low latency," the setting unit 12a sets "CoDel" as the queue algorithm, and if the network requirement is "high speed and large capacity," the setting unit 12a sets "FIFO" because latency is not a concern. Therefore, the transfer device 10 can perform appropriate queue management for a network logically separated by network slices, and can satisfy the network requirements.
[0025] The setting unit 12a may also set the size of each queue according to the network requirements of each queue. For example, when the network requirement is "low latency," the setting unit 12a sets the queue size to be small so that packets can be discharged without queuing delay, and when the network requirement is "high speed and large capacity," the setting unit 12a sets the queue size to be large in consideration of the possibility of storing packets with large data amounts. Note that the setting unit 12a may perform these settings at any timing. For example, the setting unit 12a may perform these settings in advance upon receiving a setting instruction from the controller 20.
[0026] The distribution unit 12b distributes the received packets to each queue provided for each logical path. For example, the distribution unit 12b manages the queue for each logical path by using the SID value for packet distribution.
[0027] The selector 12c sets a weight for each queue according to the amount of packets in the queue provided for each logical path, and selects a queue to output packets from according to the set weight. For example, the selector 12c adds up the weight values of queues provided for each logical path that have an amount of packets equal to or greater than a predetermined threshold, compares the weight values of each queue, and selects the queue with the highest weight value as the queue to output packets.
[0028] The output unit 12d outputs packets from the queue selected by the selection unit 12c. The output unit 12d also manages each queue using the queue algorithm set by the setting unit 12a. For example, the output unit 12d applies the "CoDel" method to a queue whose network requirement is "low latency," and applies the "FIFO" method to a queue whose network requirement is "high speed and large capacity."
[0029] Here, queue management using CoDel will be described with reference to Fig. 3. Fig. 3 is a diagram illustrating queue management using CoDel. As illustrated in Fig. 3, in queue management using CoDel, as a method of solving queuing delays, the transfer device 10 drops (discards) packets that have been accumulated in the queue for a time exceeding a threshold, assuming that packets will be discarded.
[0030] Next, the queue management process by the transfer device 10 will be described with reference to FIG. 4. FIG. 4 is a diagram illustrating the queue management process by the transfer device of this embodiment. As shown in FIG. 4, the transfer device 10 distributes received packets to one of the queues with the network requirement of "low latency," "high speed and large capacity," or "best effort." Queue management for each logical path is performed by using the SID value for packet distribution. For example, the transfer device 10 distributes received packets to a queue using the SID value.
[0031] The transfer device 10 then varies the weighting depending on the amount of packets in each queue and outputs packets according to the weighting. For example, the transfer device 10 adds up the weighting values of queues provided for each logical path that have an amount of packets equal to or greater than a predetermined threshold, compares the weighting values of each queue, selects the queue with the highest weighting value as the queue from which to output packets, and outputs the packets from the selected queue. In this way, the transfer device 10 makes the weighting variable, thereby varying the output interval and enabling packets in the queue to be output without queuing delays.
[0032] [Processing Procedure of Transfer Device 10] Next, an example of a processing procedure of processing executed by the transfer device 10 will be described with reference to Fig. 5. The transfer device 10 sets the default weighting value to "3" for a queue with a low latency network requirement (referred to as "low latency queue" in Fig. 5), "2" for a queue with a high speed and large capacity requirement (referred to as "high speed and large capacity queue" in Fig. 5), and "1" for a queue with a BE network requirement (referred to as "BE queue" in Fig. 5). The transfer device 10 sets the default weighting value by, for example, setting x = 1, calculating the weighting value of the low latency queue as "x + 2", the weighting value of the high speed and large capacity queue as "x + 1", and the weighting value of the BE queue as "x".
[0033] 5, the selector 12c of the transfer device 10 determines whether the amount of packets in the low latency queue is equal to or greater than a predetermined threshold (step S101). As a result, if the selector 12c determines that the amount of packets in the low latency queue is equal to or greater than the predetermined threshold (Yes in step S101), it adds "1" to the weighting value of the low latency queue (step S102) and proceeds to the processing of step S110.
[0034] Furthermore, if the selector 12c determines that the amount of packets in the low latency queue is less than the predetermined threshold (No at step S101), it sets the weighting of the low latency queue to a default value (step S103).
[0035] The selector 12c then determines whether the amount of packets in the high-speed / large-capacity queue is equal to or greater than a predetermined threshold (step S104). As a result, if the selector 12c determines that the amount of packets in the high-speed / large-capacity queue is equal to or greater than the predetermined threshold (Yes at step S104), it adds "1" to the weighting value of the high-speed / large-capacity queue (step S105) and proceeds to the process of step S110.
[0036] Furthermore, if the selector 12c determines that the amount of packets in the high-speed / large-capacity queue is less than the predetermined threshold (No at step S104), it sets the weighting of the high-speed / large-capacity queue to a default value (step S106).
[0037] Then, the selector 12c determines whether the amount of packets in the BE queue is equal to or greater than a predetermined threshold (step S107). As a result, if the selector 12c determines that the amount of packets in the BE queue is equal to or greater than the predetermined threshold (Yes in step S107), it adds "1" to the weighting value of the BE queue (step S108) and proceeds to the processing of step S110.
[0038] Furthermore, if the selector 12c determines that the amount of packets in the BE queue is less than the predetermined threshold (No at step S107), it sets the weighting of the BE queue to a default value (step S109).
[0039] Then, in step S110, the selector 12c compares the weighting of each queue (step S110). That is, the selector 12c selects the queue with the highest weighting value as the queue from which to output the packet.
[0040] Then, the output unit 12d determines whether the selection unit 12c has selected the low latency queue as the output queue (step S111). As a result, if the selection unit 12c has selected the low latency queue as the output queue (Yes at step S111), the output unit 12d outputs the packet from the low latency queue (step S113).
[0041] Furthermore, if the selection unit 12c has not selected a low-latency queue as the output queue (No at step S111), the output unit 12d determines whether the selection unit 12c has selected a high-speed, large-capacity queue as the output queue (step S112).As a result, if the selection unit 12c has selected a high-speed, large-capacity queue as the output queue (Yes at step S112), the output unit 12d outputs packets from the high-speed, large-capacity queue (step S113).
[0042] Furthermore, if the selection unit 12c has not selected a high-speed / large-capacity queue as the output queue (No at step S112), the output unit 12d outputs the packet from the BE queue (step S113). Note that if there are no packets in any queue other than the BE queue, the output unit 12d outputs the packet from the BE queue.
[0043] [Effects of the embodiment] In this way, the transfer device 10 according to the embodiment distributes received packets to each queue provided for each logical path. The transfer device 10 also sets a weight for each queue according to the amount of packets in the queue provided for each logical path, and selects a queue from which to output packets according to the set weight. The transfer device 10 then outputs packets from the selected queue. This allows the transfer device 10 to appropriately manage queues according to network requirements.
[0044] Furthermore, the transfer device 10 sets an algorithm for each queue according to the network requirements of each queue. Furthermore, the transfer device 10 sets the size of each queue according to the network requirements of each queue. Therefore, the transfer device 10 can apply an algorithm that configures an optimal queue structure for each application, thereby appropriately managing queues and maximizing network quality such as high capacity and low latency.
[0045] [System configuration, etc.] The components of each device shown in the drawings according to the above embodiments are conceptual functional units and do not necessarily have to be physically configured as shown. In other words, the specific form of distribution and integration of each device is not limited to that shown, and all or part of each device can be functionally or physically distributed and integrated in any unit depending on various loads, usage conditions, etc. Furthermore, all or any part of the processing functions performed by each device can be realized by a CPU and a program analyzed and executed by the CPU, or can be realized as hardware using wired logic.
[0046] Furthermore, among the processes described in the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically using a known method.In addition, the information including the processing procedures, control procedures, specific names, various data and parameters shown in the above documents and drawings can be changed as desired unless otherwise specified.
[0047] 〔program〕 It is also possible to create a program written in a computer-executable language that executes the processes performed by the transfer device described in the above embodiments. In this case, the same effects as those of the above embodiments can be achieved by having a computer execute the program. Furthermore, such a program may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read and executed by a computer to achieve the same processes as those of the above embodiments.
[0048] 6 is a diagram showing a computer that executes a program. As shown in the example of FIG. 6, a computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070, and these components are connected by a bus 1080.
[0049] The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012, as exemplified in FIG. 6. The ROM 1011 stores a boot program such as a BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to a hard disk drive 1031, as exemplified in FIG. 6. The disk drive interface 1040 is connected to a disk drive 1041, as exemplified in FIG. 6. A removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1041. The serial port interface 1050 is connected to a mouse 1051 and a keyboard 1052, as exemplified in FIG. 6. The video adapter 1060 is connected to a display 1061, as exemplified in FIG. 6.
[0050] 6, the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the above programs are stored, for example, on the hard disk drive 1031 as program modules in which instructions to be executed by the computer 1000 are written.
[0051] The various data described in the above embodiment are stored as program data, for example, in the memory 1010 or the hard disk drive 1031. The CPU 1020 then reads the program module 1093 and the program data 1094 stored in the memory 1010 or the hard disk drive 1031 into the RAM 1012 as needed, and executes various processing procedures.
[0052] Note that the program module 1093 and program data 1094 related to the program are not limited to being stored in the hard disk drive 1031, and may be stored in, for example, a removable storage medium and read by the CPU 1020 via a disk drive or the like. Alternatively, the program module 1093 and program data 1094 related to the program may be stored in another computer connected via a network (such as a LAN (Local Area Network) or WAN (Wide Area Network)) and read by the CPU 1020 via the network interface 1070.
[0053] Although the present invention has been described above as an embodiment, the present invention is not limited to the description and drawings that form part of the disclosure of the present invention. In other words, other embodiments, examples, and operational techniques that can be made by those skilled in the art based on the present invention are all included in the scope of the present invention. [Explanation of symbols]
[0054] 10 Teleporter 11. Communication processing unit 12 Control Unit 12a Setting section 12b Distribution section 12c Selection section 12d Output section 13 Storage section
Claims
1. a distribution unit that distributes received packets to each queue provided for each logical path; a selection unit that sets a weight for each queue according to the amount of packets in the queue provided for each logical path, and selects a queue to output packets according to the set weight; an output unit that outputs packets from the queue selected by the selection unit; and A transfer device further comprising a setting unit that sets an algorithm for each queue in accordance with a network requirement for each queue.
2. The transfer device according to claim 1, characterized in that the selection unit adds up the weighting values of queues, among the queues provided for each logical path, whose packet volume inside the queue is equal to or greater than a predetermined threshold, compares the weighting values of each queue, and selects the queue with the highest weighting value as the queue to output the packet.
3. 2. The transfer device according to claim 1, wherein the setting unit sets the size of each queue in accordance with a network requirement of each queue.
4. A transfer method performed by a transfer device, comprising: a distribution step of distributing received packets to each queue provided for each logical path; a selection step of setting a weight for each queue according to the amount of packets in the queue provided for each logical path, and selecting a queue to output packets according to the set weight; an output step of outputting packets from the queue selected by the selection step; Including, The transfer method further comprises a setting step of setting an algorithm for each queue in accordance with the network requirements of each queue.
5. a distribution step of distributing received packets to each queue provided for each logical path; a selection step of setting a weight for each queue according to the amount of packets in the queue provided for each logical path, and selecting a queue to output packets according to the set weight; an output step of outputting packets from the queue selected by the selection step; on the computer, The transfer program further causes a computer to execute a setting step of setting an algorithm for each queue in accordance with a network requirement of each queue.
Citation Information
Patent Citations
Call processing controller and control method of call processing controller
JP2006319914A
User data processing device, network interface, and method
JP2021170729A
Quality of service in virtual service networks
WO2020232182A1