WO2022172462A1 - 遅延制御装置、遅延制御方法及び遅延制御プログラム - Google Patents
遅延制御装置、遅延制御方法及び遅延制御プログラム Download PDFInfo
- Publication number
- WO2022172462A1 WO2022172462A1 PCT/JP2021/005577 JP2021005577W WO2022172462A1 WO 2022172462 A1 WO2022172462 A1 WO 2022172462A1 JP 2021005577 W JP2021005577 W JP 2021005577W WO 2022172462 A1 WO2022172462 A1 WO 2022172462A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- delay
- client
- server
- unit
- slg
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
Definitions
- the present disclosure relates to a delay control device, a delay control method, and a delay control program.
- Cloud gaming began in the early 2000s. Cloud gaming is known as a service that distributes computer games by streaming. Cloud games do not require stationary machines, and players can play games without being affected by device specifications. Due to such merits, cloud games are attracting attention.
- cloud games data processing is centralized on the server side compared to online games. Therefore, the cloud game can be operated and managed more easily.
- a big challenge for cloud gaming is the impact of infrastructure costs and delays.
- Non-Patent Document 1 it has been proposed to select a server placement location that minimizes the delay for multiple clients (see, for example, Non-Patent Document 1).
- This selection method takes into consideration the amount of delay for all clients, and can select a server with a smaller overall amount of delay.
- Non-Patent Document 1 the method of selecting the location of the server requires some mechanism to absorb the difference in delay performance in order to ensure higher fairness for a small number of users.
- This application was made in view of the above, and aims to ensure the fairness of delays.
- the delay control device has a plurality of delay differences respectively corresponding to a plurality of edge clouds, and each delay difference is assumed when the server is arranged in each edge cloud. Placing the server on one of the plurality of edge clouds based on a plurality of delay differences between the delay from the server to a first client and the delay from the server to a second client. and a delay from the server placed by the placement unit to the first client and a delay from the server placed by the placement unit to the second client are the same. , an imparting unit for imparting a delay to at least one of said first client or said second client.
- FIG. 1 is a diagram showing an example of the configuration of a delay control system according to an embodiment.
- FIG. 2 is a diagram illustrating an example of the configuration of a network according to the embodiment;
- FIG. 3A is an explanatory diagram showing an outline of delay control processing according to the embodiment.
- FIG. 3B is an explanatory diagram showing an overview of delay control processing according to the embodiment.
- FIG. 3C is an explanatory diagram showing an outline of delay control processing according to the embodiment.
- FIG. 4 is a diagram illustrating an example of the configuration of an orchestrator according to the embodiment;
- FIG. 5 is a diagram illustrating an example of a configuration of a controller according to the embodiment;
- FIG. 6 is a diagram illustrating an example of the configuration of an SLG according to the embodiment;
- FIG. 1 is a diagram showing an example of the configuration of a delay control system according to an embodiment.
- FIG. 2 is a diagram illustrating an example of the configuration of a network according to the embodiment;
- FIG. 7 is a diagram illustrating an example of the configuration of a game server according to the embodiment
- FIG. 8 is a diagram illustrating an example of the configuration of a user device according to the embodiment
- FIG. 9A is an explanatory diagram showing an example of delay control processing according to the embodiment.
- FIG. 9B is an explanatory diagram illustrating an example of delay control processing according to the embodiment;
- FIG. 9C is an explanatory diagram illustrating an example of delay control processing according to the embodiment;
- FIG. 10 is a flowchart illustrating an example of processing for eliminating delay differences while suppressing delays, which is executed by the orchestrator according to the embodiment.
- FIG. 11 is a diagram illustrating an example of another configuration of the orchestrator according to the embodiment;
- FIG. 12 is a flowchart illustrating an example of the procedure of additional delay control processing according to the embodiment.
- FIG. 13 is an explanatory diagram illustrating an example of additional delay control processing according to the embodiment.
- FIG. 14 is a diagram illustrating an example of a hardware configuration
- the server is arranged so that the total amount of delay for all clients is small. Therefore, it is difficult to strictly reduce the delay difference between a small number of users, such as the delay difference in a competitive online game, with the arrangement method described above.
- the orchestrator performs the delay control process described below in order to ensure the fairness of services among a small number of users.
- FIG. 1 is a diagram showing an example of the configuration of a delay control system 1 according to an embodiment.
- delay control system 1 includes orchestrator 100, controller 200, SLG 300a, SLG 300b, SLG 300c, SLG 300d, central game server 400a, edge game server 400b, user device 500a and user device 500b.
- the delay control system 1 may include multiple orchestrators 100 and multiple controllers 200 .
- SLG 300a to SLG 300d are collectively referred to as SLG 300 when there is no need to distinguish between SLG 300a to SLG 300d.
- the central game server 400a and the edge game server 400b are collectively referred to as the game server 400 when there is no need to distinguish between the central game server 400a and the edge game server 400b.
- the user device 500a and the user device 500b are collectively referred to as the user device 500.
- the orchestrator 100, the controller 200, the SLG 300, the game server 400, and the user device 500 communicate with each other via networks such as the Internet, WAN (Wide Area Network), and LAN (Local Area Network). can be done.
- networks such as the Internet, WAN (Wide Area Network), and LAN (Local Area Network).
- the orchestrator 100 is an information processing device that manages and controls the controller 200 .
- the orchestrator 100 performs delay control processing to ensure fairness in services (for example, cloud games) among a small number of users.
- Delay control processing is processing for controlling delays in the network. An overview of delay control processing is provided in Chapter 3.
- Orchestrator 100 may be any type of information processing device, including a server. An example configuration of the orchestrator 100 is detailed in Chapter 4.
- the controller 200 is an information processing device that manages the SLG 300. Controller 200 may be any type of information processing device, including a server. An example configuration of the controller 200 is detailed in Chapter 5.
- the SLG 300 is an SLG (Slice Gateway) that controls packet transfer.
- SLG 300 may be any type of information processing device, including a server.
- An example configuration of SLG 300 is detailed in Section 6.
- the game server 400 is an information processing device that provides cloud games.
- Game server 400 may be any type of information processing device, including a server.
- An example configuration of the game server 400 is detailed in Chapter 7.
- the user device 500 is an information processing device used by users of cloud games.
- User device 500 may be any type of information processing device, including a client device.
- An example configuration of the user device 500 is detailed in Chapter 8.
- FIG. 2 is a diagram showing an example of the network configuration according to the embodiment.
- a network according to the embodiment includes a NW (network) domain 10, a central cloud 20, an edge cloud 31, an edge cloud 32, an edge cloud 33, an edge cloud 34, a user NW (network) 41, and a user NW 42.
- the network according to the embodiment includes inter-SLG paths and forwarding equipment.
- the NW domain 10 includes SLG300a to SLG300g.
- SLG 300a-SLG 300g are used for transfer control.
- a game server is deployed on the central cloud 20 .
- User NW41 and user NW41 correspond to user section 50 .
- the environment within the user NW differs from user to user. Therefore, the delay occurring at user NW41 is different from the delay occurring at user NW42.
- the inter-SLG path is a preferentially controlled path (priority control path).
- a preferentially controlled path is established in the NW domain 10.
- Each SLG acquires the amount of delay in the path as telemetry information.
- the orchestrator 100 transmits various instructions to the SLG via the controller 200.
- a game server on the central cloud transmits various instructions to the orchestrator 100 .
- Figs. 3A, 3B and 3C are diagrams showing an overview of the delay control process according to the embodiment.
- the SLG near the game server performs (1) delay measurement within the NW domain 10 and (2) E2E (from the game server to the game application) delay measurement. is measured (step S1).
- the delay time occurring at user NW41 is 10 ms.
- the delay time occurring at the user NW 42 is 2 ms.
- the orchestrator 100 selects the edge cloud with the fairest E2E (deployed game server to game app) delay and selects A game server is deployed to the edge cloud (step S2).
- orchestrator 100 deploys game servers to edge cloud 31 .
- the SLG near the deployed game server then generates additional delay in the section of the NW domain 10 to match the delay performance of E2E (from the deployed game server to the game application) (step S3).
- the orchestrator 100 can instruct the SLG 300f, via the controller 200, to delay the target packet.
- the SLG 300f aligns the respective E2E delay times to 25 ms.
- the SLG 300f delays target packets by queuing or the like.
- the orchestrator 100 deploys game servers at locations with little E2E delay difference for two applications located at different locations. Then, the SLG 300 near the location where the delay difference in E2E is small adjusts the delay difference in E2E to a fair delay time.
- the orchestrator 100 can minimize delay performance in E2E and achieve the same delay performance. Therefore, the orchestrator 100 can ensure the fairness of services.
- FIG. 4 is a diagram showing an example of the configuration of the orchestrator according to the embodiment.
- the orchestrator 100 has a communication unit 110, a control unit 120, and a storage unit .
- the orchestrator 100 includes an input unit (for example, a keyboard, a mouse, etc.) that receives various operations from an administrator or the like who uses the orchestrator 100, and a display unit (organic EL (Electro Luminescence), liquid crystal display, etc.) for displaying various information. etc.).
- an input unit for example, a keyboard, a mouse, etc.
- a display unit organic EL (Electro Luminescence), liquid crystal display, etc.) for displaying various information. etc.
- the communication unit 110 is realized by, for example, a NIC (Network Interface Card) or the like.
- the communication unit 110 is connected to a network by wire or wirelessly.
- Communication unit 110 may be communicably connected to controller 200, SLG 300, game server 400, and user device 500 via a network.
- the communication unit 110 can transmit and receive information via a network.
- the control unit 120 is a controller.
- the control unit 120 uses, for example, a RAM (Random Access Memory) or the like as a work area, and executes various programs (corresponding to an example of a delay control program) stored in a storage device inside the orchestrator 100.
- a RAM Random Access Memory
- MPU Micro Processing Unit
- the control unit 120 may be implemented by an integrated circuit such as an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a GPGPU (General Purpose Graphic Processing Unit).
- the control unit 120 has a receiving unit 121, a selecting unit 122, a calculating unit 123, an arranging unit 124, a registering unit 125, and an assigning unit 126, which will be described below. Realize or perform an information processing function or action.
- One or more processors of orchestrator 100 may implement the functionality of each controller within controller 120 by executing instructions stored in one or more memories of orchestrator 100 .
- the internal configuration of the control unit 120 is not limited to the configuration shown in FIG. 4, and the internal configuration of the control unit 120 may be another configuration for performing information processing, which will be described later.
- the imparting unit 126 may perform all or part of the information processing described below with respect to units other than the imparting unit 126 .
- the receiving unit 121 has an information receiving function.
- the receiving unit 121 receives various information from the controller 200 and the game server 400 .
- the receiving unit 121 receives test and measurement results from the device to be managed.
- a device to be managed is, for example, the controller 200 .
- the receiving unit 121 receives the delay time from the controller 200. For example, the receiving unit 121 receives the E2E delay time for each edge cloud candidate location.
- the selection unit 122 has an edge cloud determination function. The selection unit 122 selects an edge cloud.
- the selecting unit 122 selects a candidate site where the server is to be deployed from among a plurality of edge clouds. For example, the selection unit 122 selects a candidate location whose E2E delay time is within a range in which the game operates normally.
- the calculation unit 123 has a delay difference calculation function. Based on information such as the amount of delay, perform the calculations required for deploying the server.
- the calculation unit 123 calculates the delay time difference for each candidate site selected by the selection unit 122 .
- the delay time difference is, for example, the difference between the delay time of the user device 500a and the delay time of the user device 500b.
- the placement unit 124 has a deploy function.
- the placement unit 124 deploys the game server to the edge cloud selected by the selection unit 122 .
- the placement unit 124 instructs the edge cloud selected by the selection unit 122 to deploy the game server.
- the placement unit 124 places the server in one of the plurality of edge clouds based on the plurality of delay differences. Multiple delay differences correspond to multiple edge clouds, respectively.
- the respective delay difference is the difference between the delay from the server to the first client and the delay from the server to the second client that would be expected if the servers were located in respective edge clouds.
- the placement unit 124 places the server in one of the plurality of edge clouds so as to minimize the difference between the delay from the server to the first client and the delay from the server to the second client. do.
- the registration unit 125 registers information about the game servers deployed by the placement unit 124 .
- the registration unit 125 registers a new flow.
- a new flow is a new E2E communication. That is, the new flow is communication between the deployed game server and user device 500 .
- the registration unit 125 may store information about the deployed game server in the resource storage unit 131, which will be described later.
- the granting unit 126 has an information transmission function.
- the granting unit 126 transmits the instruction to the device to be managed.
- the imparting unit 126 additionally imparts a delay to the E2E section so as to eliminate the difference in delay time. Specifically, the adding unit 126 instructs the SLG 300 to add a delay to the packet of the user device 500 . This instruction is transmitted from the granting unit 126 to the SLG 300 via the controller 200 .
- the storage unit 130 is realized by, for example, a semiconductor memory device such as a RAM or a flash memory, or a storage device such as a hard disk or an optical disk. As shown in FIG. 4 , storage unit 130 has resource storage unit 131 .
- the resource storage unit 131 stores various resources.
- the resource storage unit 131 has a resource management function.
- the resource storage unit 131 holds telemetry information as various resources.
- telemetry information includes telemetry information between SLG (eg, SLG 300a) and SLG (eg, SLG 300b) acquired by SLG 300, telemetry information between SLG 300 and game server 400 (eg, delay time, bandwidth, packet loss rate), etc.
- Various resources include edge cloud and central cloud information.
- various resources include telemetry information such as information on the SLG 300 connected to the candidate site of interest, and connection information between the SLG (eg, SLG 300a) and the SLG (eg, SLG 300b).
- Various resources include information on the user device 500 and the group to which the user device 500 belongs.
- Various resources include scenarios for converting various settings into information required to control the network.
- various resources include scenarios for converting various settings for each service level requested by the game server 400 .
- Various settings are, for example, the game server 400 of the connection destination.
- FIG. 5 is a diagram showing an example of the configuration of the controller 200 according to the embodiment.
- controller 200 has communication section 210 and control section 220 .
- the controller 200 has an input unit (for example, a keyboard, a mouse, etc.) that receives various operations from an administrator or the like who uses the controller 200, and a display unit (organic EL, liquid crystal display, etc.) for displaying various information. good too.
- input unit for example, a keyboard, a mouse, etc.
- a display unit organic EL, liquid crystal display, etc.
- the communication unit 210 is implemented by, for example, a NIC.
- Communication unit 210 is connected to a network by wire or wirelessly.
- the communication unit 210 may be communicably connected to the orchestrator 100, the SLG 300, the game server 400, and the user device 500 via a network.
- the communication unit 210 can transmit and receive information via a network.
- Control unit 220 is a controller.
- the control unit 220 is implemented by a processor such as a CPU or MPU that uses a RAM or the like as a work area and executes various programs stored in a storage device inside the controller 200, for example.
- the control unit 220 may be implemented by an integrated circuit such as an ASIC, FPGA, or GPGPU, for example.
- control unit 220 has a management unit 221, a reception unit 222, and a transmission unit 223, and implements or executes the information processing functions and actions described below.
- the one or more processors of controller 200 may implement the functionality of each control within control unit 220 by executing instructions stored in one or more memories of controller 200 .
- the internal configuration of the control unit 220 is not limited to the configuration shown in FIG. 5, and the internal configuration of the control unit 220 may be another configuration for performing information processing, which will be described later.
- the management unit 221 may perform all or part of the information processing described below with respect to units other than the management unit 221 .
- the management unit 221 has an SLG management function.
- the management unit 221 transmits the instruction transmitted from the granting unit 126 of the orchestrator 100 to the SLG 300 .
- the instructions are sent to commands that control the SLG 300 .
- the management unit 221 sets information about paths to which packets are to be distributed.
- the management unit 221 transmits information regarding this path to the SLG 300 .
- the receiving section 222 has an information receiving function.
- the receiving unit 222 receives various information (for example, instructions) from the orchestrator 100 . Also, the receiving unit 222 receives various information (eg, telemetry information) from the SLG 300 .
- the transmission unit 223 has an information transmission function.
- the transmission unit 223 transmits various types of information to the orchestrator 100 and the SLG 300 .
- the transmission unit 223 transmits information (for example, telemetry information) transmitted from the SLG 300 to the orchestrator 100 .
- FIG. 6 is a diagram showing an example of the configuration of the SLG 300 according to the embodiment.
- SLG 300 has communication section 310 , control section 320 , and storage section 330 .
- the SLG 300 may have an input unit (e.g., keyboard, mouse, etc.) for receiving various operations from an administrator or the like who uses the SLG 300, and a display unit (organic EL, liquid crystal display, etc.) for displaying various information. .
- an input unit e.g., keyboard, mouse, etc.
- a display unit organic EL, liquid crystal display, etc.
- the communication unit 310 is implemented by, for example, a NIC.
- Communication unit 310 is connected to a network by wire or wirelessly.
- the communication unit 310 may be communicably connected to the orchestrator 100, the controller 200, the game server 400, and the user device 500 via a network.
- the communication unit 310 can transmit and receive information via a network.
- Control unit 320 is a controller.
- the control unit 320 is implemented by a processor such as a CPU or MPU that uses a RAM or the like as a work area and executes various programs stored in a storage device inside the SLG 300, for example.
- the control unit 320 may be implemented by an integrated circuit such as an ASIC, FPGA, or GPGPU, for example.
- the control unit 320 includes an acquisition unit 321, a transmission unit 322, a delay control unit 323, a path control unit 324, and a distribution unit 325, and performs information processing described below. realize or perform the function or action of One or more processors of SLG 300 may implement the functionality of each control within control unit 320 by executing instructions stored in one or more memories of SLG 300 .
- the internal configuration of the control unit 320 is not limited to the configuration shown in FIG. 6, and the internal configuration of the control unit 320 may be another configuration for performing information processing, which will be described later.
- the delay control unit 323 may perform all or part of the information processing described below with respect to units other than the delay control unit 323 .
- Acquisition unit 321 has an information acquisition function. Acquisition unit 321 acquires various types of information. For example, the acquisition unit 321 acquires telemetry information.
- the acquisition unit 321 acquires telemetry information (eg, delay time, bandwidth, packet loss rate) for each path between an SLG (eg, SLG 300a) and an SLG (eg, SLG 300b).
- telemetry information eg, delay time, bandwidth, packet loss rate
- the acquisition unit 321 of this SLG 300 acquires telemetry information between this SLG 300 and the user device 500 .
- the acquisition unit 321 acquires telemetry information between the SLG 300 and the game server 400 .
- the transmission unit 322 has an information transmission function.
- the transmission unit 322 transmits various information. For example, the transmission unit 322 transmits telemetry information acquired by the acquisition unit 321 to the controller 200 .
- the delay control section 323 has a delay control function.
- the delay control unit 323 gives a delay time to the packet. For example, in response to receiving an instruction from the controller 200, 5-tuple packets corresponding to this instruction are queued intentionally. In this way, the delay control unit 323 gives a delay time to the corresponding 5-tuple packet.
- the path control unit 324 has a path control function. For example, the path control unit 324 performs path termination processing between an SLG (eg, SLG 300a) and an SLG (eg, SLG 300b). Path termination processing is addition and deletion of headers for tunnels. When a packet to the target path is output, the path control unit 324 performs priority control and bandwidth control according to the set values of this path. As a result, the path control unit 324 generates multiple paths with different communication requirements.
- SLG eg, SLG 300a
- SLG eg, SLG 300b
- Path termination processing is addition and deletion of headers for tunnels.
- the path control unit 324 performs priority control and bandwidth control according to the set values of this path. As a result, the path control unit 324 generates multiple paths with different communication requirements.
- the distribution unit 325 has a packet distribution function.
- the distribution unit 325 outputs an input packet to a target path based on path information stored in a table management unit 331, which will be described later.
- the distribution unit 325 may receive information about paths from the management unit 221 of the controller 200 . Also, the distribution unit 325 may store information about paths in the table management unit 331 .
- the storage unit 330 is realized by, for example, a semiconductor memory device such as a RAM or flash memory, or a storage device such as a hard disk or an optical disk. As shown in FIG. 6 , storage unit 330 has table management unit 331 .
- the table management unit 331 has a flow table management function.
- the table management unit 331 stores information about paths to which packets are distributed.
- Information about paths to which packets are to be distributed is set by the management unit 221 of the controller 200, for example.
- the information about the paths to which packets are distributed corresponds to 5-tuple packets.
- FIG. 7 is a diagram showing an example of the configuration of the game server 400 according to the embodiment.
- game server 400 has communication section 410 and control section 420 .
- the game server 400 has an input unit (for example, a keyboard, a mouse, etc.) that receives various operations from an administrator or the like who uses the game server 400, and a display unit (organic EL, liquid crystal display, etc.) for displaying various information. You may
- the communication unit 410 is implemented by, for example, a NIC.
- Communication unit 410 is connected to a network by wire or wirelessly.
- the communication unit 410 may be communicably connected to the orchestrator 100, the controller 200, the SLG 300, and the user device 500 via a network.
- the communication unit 410 can transmit and receive information via a network.
- Control unit 420 is a controller.
- the control unit 420 is implemented by a processor such as a CPU or MPU that uses a RAM or the like as a work area and executes various programs stored in a storage device inside the game server 400, for example.
- the control unit 420 may be implemented by an integrated circuit such as an ASIC, FPGA, or GPGPU, for example.
- the control unit 420 has a first instruction unit 421, an acquisition unit 422, a matching unit 423, an API unit 424, a data processing unit 425, and a second instruction unit 426, as shown in FIG. , implements or executes the information processing functions and actions described below.
- One or more processors of game server 400 may implement the functionality of each control within controls 420 by executing instructions stored in one or more memories of game server 400 .
- the internal configuration of the control unit 420 is not limited to the configuration shown in FIG. 7, and the internal configuration of the control unit 420 may be another configuration for performing information processing, which will be described later.
- the first instruction unit 421 may perform all or part of the information processing described below with respect to units other than the first instruction unit 421 .
- the first instruction section 421 has an instruction function.
- the first instruction unit 421 instructs the SLG 300 to measure the E2E delay time.
- the first instruction unit 421 of the central cloud game server 400 transmits an instruction to the SLG 300 via the orchestrator 100 .
- Acquisition unit 422 has an information acquisition function.
- the acquisition unit 422 acquires various types of information from the orchestrator 100 and the SLG 300 .
- the acquisition unit 422 acquires delay information via the orchestrator 100 .
- the matching unit 423 has a packet matching function.
- the matching unit 423 detects connection of applications for two users. Also, the matching unit 423 acquires information on two users.
- API section 424 has API functions.
- the API unit 424 puts together the information of the two users acquired by the matching unit 423 and transmits the put together information to the orchestrator 100 .
- the data processing unit 425 has a data processing function.
- the data processing unit 425 controls transmission and reception of packets between two users.
- the data processing unit 425 performs processing required for executing the game.
- the data processing unit 425 performs logical data processing, polygon data processing, drawing processing, and the like in the application.
- the second instruction section 426 has an instruction function.
- the second instruction unit 426 instructs the orchestrator 100 to register a new flow.
- the second instruction unit 426 of the edge cloud game server 400 sends an instruction to the orchestrator 100 .
- FIG. 8 is a diagram showing an example of the configuration of the user device 500 according to the embodiment.
- user device 500 has communication section 510 and control section 520 .
- the user device 500 has an input unit (e.g., keyboard, mouse, etc.) that receives various operations from a user or the like using the user device 500, and a display unit (organic EL, liquid crystal display, etc.) for displaying various information.
- an input unit e.g., keyboard, mouse, etc.
- a display unit organic EL, liquid crystal display, etc.
- the input unit and the output unit are integrated.
- the communication unit 510 is implemented by, for example, a NIC.
- Communication unit 510 is connected to a network by wire or wirelessly.
- the communication unit 510 may be communicably connected to the orchestrator 100, the controller 200, the SLG 300, and the game server 400 via a network.
- the communication unit 510 can transmit and receive information via a network.
- Control unit 520 is a controller.
- the control unit 520 is implemented by a processor such as a CPU or MPU that uses a RAM or the like as a work area and executes various programs stored in a storage device inside the user device 500, for example.
- the control unit 520 may be implemented by an integrated circuit such as an ASIC, FPGA, or GPGPU, for example.
- control unit 520 has a request unit 521, a change unit 522, and an application body 523, and implements or executes the information processing functions and actions described below.
- One or more processors of user device 500 may implement the functionality of each control within control unit 520 by executing instructions stored in one or more memories of user device 500 .
- the internal configuration of the control unit 520 is not limited to the configuration shown in FIG. 8, and the internal configuration of the control unit 520 may be another configuration for performing information processing, which will be described later.
- the request unit 521 may perform all or part of the information processing described later with respect to units other than the request unit 521 .
- the request unit 521 has a matching request function. At the start of the application, the request unit 521 requests the game server 400 to match the user with the user's opponent.
- the changing unit 522 has a setting value changing function. After the edge server is newly deployed, the change unit 522 receives a new connection destination from the central game server. The changing unit 522 changes the setting value of the connection destination of the application main body 523, which will be described later, according to the new connection destination.
- the application main body 523 is an application (for example, a battle game) installed on the user device 500 .
- Application body 523 communicates with data processing unit 425 of game server 400 .
- the application body 523 also performs calculations on data processed on the client side when the game is executed.
- 9A, 9B, and 9C are explanatory diagrams showing an example of delay control processing according to the embodiment.
- the user NW41 and the user NW43 start the game application.
- a first user and a second user start a game from an application.
- Each user's user device 500 connects to the game server of the central cloud 20 .
- the game server initiates a match between the player and the player's opponents.
- the SLG 300 measures the delay within the NW domain 10. The SLG 300 then acquires delay information between SLGs within the NW domain 10 .
- the game server of the central cloud 20 then instructs the SLG 300a via the orchestrator 100 to measure the E2E delay time.
- the SLG 300a is an SLG near the game server of the central cloud 20.
- the SLG 300a measures the E2E delay time using pings addressed to the user device 500, pings addressed to the game server, and the like.
- the SLG 300a compares the obtained delay time between the SLGs in the NW domain 10 with the measured E2E delay time, thereby determining the user interval (between the SLG and the game application). Find the delay time.
- the SLG 300a acquires the delay time of the user NW (that is, user section) based on the difference between the delay time between the SLGs in the NW domain 10 and the measured E2E delay time.
- the E2E delay time of user NW41 is 35 ms. Also, the intra-NW domain delay of user NW41 is 25 ms. Therefore, the delay time for the section of user NW41 is 10 ms.
- the E2E delay time of user NW42 is 32 ms. Also, the intra-NW domain delay of the user NW 42 is 30 ms. Therefore, the delay time of the section of user NW42 is 2 ms.
- the orchestrator 100 (for example, the receiving unit 121) then refers to the delay information between the SLG 300 near the user and the SLG near the edge cloud candidate site. For example, the orchestrator 100 obtains delay information from the SLG 300 via the controller 200 . Then, the orchestrator 100 (for example, the calculation unit 123) calculates the assumed value of the E2E delay time when the game server is deployed to each candidate site (edge cloud 31, edge cloud 32, edge cloud 33, and edge cloud 34). calculate.
- the SLG 300 measures the amount of delay between the SLG 300 at the edge cloud candidate site and the SLG near the user.
- the SLG 300 measures the E2E delay time by adding the measured delay amount to the delay amount of the user section.
- the SLG 300 provides the measured E2E delay time to the orchestrator 100 as delay information between the SLG 300 near the user and the SLG near the edge cloud candidate site.
- the SLG 300 notifies the orchestrator 100 of this delay information via the controller 200 .
- the orchestrator 100 calculates differences in the multiple E2E delay times for each user.
- the orchestrator 100 selects the candidate location with the smallest difference.
- the delay difference of 3 ms is the smallest delay difference among the plurality of delay differences. Therefore, the orchestrator 100 selects the edge cloud 31 as a candidate site.
- the orchestrator 100 selects a candidate location having a delay time within a range in which the game can operate normally from the edge cloud candidate locations. The orchestrator 100 then calculates the difference between the delay times.
- the orchestrator 100 (for example, the placement unit 124) then deploys the game server to the edge cloud 31.
- the edge cloud 31 is the edge cloud with the fairest E2E delay.
- the orchestrator 100 selects the edge cloud with the fairest E2E delay and deploys the game server to the selected edge cloud. For example, the orchestrator 100 deploys the game server to the edge cloud with the smallest delay time difference among the plurality of edge clouds.
- the game server on the central cloud 20 instructs each user's application via the orchestrator 100 to change the setting value of the connection destination to the newly deployed game server.
- an IP address addressed to a new game server is sent to each application via the orchestrator 100 and the game server on the central cloud 20.
- new setting values are reflected in the settings of each application.
- Each user then connects to the game server of the edge cloud 31 .
- each application initiates communication with the edge cloud game server.
- the game server of the edge cloud 31 then instructs the orchestrator 100 to register a new flow.
- the orchestrator 100 (for example, the registration unit 125) registers the 5-tuple information in the table management unit 331 of the SLG 300f near the edge cloud 31 via the controller.
- the orchestrator 100 (for example, the granting unit 126) adjusts the delay control unit 323 of the SLG 300f so that the E2E delay time falls within the range in which the application operates normally (20 ms to 30 ms in the example of FIG. 9C). change the value.
- the orchestrator 100 instructs the SLG 300f in the vicinity of the game server on the edge cloud 31 to give packets a delay within the range in which the game operates normally.
- the orchestrator 100 can unify E2E delay times. In the example of FIG. 9C, each user's E2E delay time is adjusted to 25 ms.
- An example of delay control processing includes processing for eliminating delay differences while suppressing delay.
- FIG. 10 is a flowchart showing an example of processing for eliminating the delay difference while suppressing the delay, which is executed by the orchestrator 100 according to the embodiment.
- the receiving unit 121 of the orchestrator 100 receives the E2E delay time for each edge cloud candidate site (step S101).
- the receiving unit 121 receives the E2E delay time from the controller 200, for example.
- the selection unit 122 of the orchestrator 100 selects a candidate location whose E2E delay time is within a range where the game can operate normally (step S102).
- the calculator 123 of the orchestrator 100 calculates the difference in delay time between the selected candidate sites (step S103).
- the placement unit 124 of the orchestrator 100 deploys the game server at the candidate location with the smallest delay time difference among the selected candidate locations (step S104).
- the registration unit 125 of the orchestrator 100 registers the new flow in the SLG according to the deployment of the game server (step S105).
- the imparting unit 126 of the orchestrator 100 additionally imparts a delay to the E2E section so that the delay time difference is eliminated (step S106).
- the delay control system 1 according to the above embodiment may be implemented in various different forms other than the above embodiment. Therefore, another embodiment of the delay control system 1 will be described below.
- FIG. 11 is a diagram showing another configuration example of the orchestrator according to the embodiment.
- the control unit 120 has a receiving unit 121 , a selecting unit 122 , a calculating unit 123 , an arranging unit 124 , a registering unit 125 and an assigning unit 126 as in the above-described embodiments. Duplicate descriptions are omitted here.
- the controller 120 has an additional delay controller 127 .
- the additional delay control unit 127 adjusts the additional delay when the delay increases while using the service.
- FIG. 12 is a flowchart showing an example of the procedure of additional delay control processing according to the embodiment.
- the example of FIG. 12 assumes that the game is out of range for normal operation.
- the additional delay control unit 127 starts the service (step S201).
- the additional delay control unit 127 identifies the section in which the delay occurred (step S202).
- the additional delay control unit 127 determines whether the delay can be controlled within the additional delay range (step S203). For example, if the added delay is 15 ms and the increased delay is 15 ms or less (eg, +10 ms), the additional delay control unit 127 reduces the additional delay (eg, adds The delay can be controlled by changing the delay from 15ms to 5ms).
- step S203 If it is determined in step S203 that the delay can be controlled within the additional delay range (step S203: Yes), the additional delay control unit 127 changes the value of the additional delay (step S204).
- step S203 when it is determined that the delay is not controllable within the range of the additional delay (step S203: No), the additional delay control unit 127 determines whether the place where the delay occurs is the NW section (step S205).
- step S205 when it is determined that the location where the delay occurs is the NW section (step S205: Yes), the additional delay control unit 127 determines whether the delay can be handled by switching to another path. (step S206).
- step S206 If it is determined in step S206 that the delay can be handled by switching to another path (step S206: Yes), the additional delay control unit 127 switches paths between SLGs (step S207).
- step S205 if it is determined that the location where the delay occurred is not the NW section (step S205: No), the additional delay control unit 127 can deal with the delay by moving the server to another edge cloud. (step S208).
- step S206 If it is determined in step S206 that the delay cannot be dealt with by switching to another path (step S206: No), the process proceeds to step S208.
- step S208 when it is determined that the delay can be dealt with by moving the server to another edge cloud (step S208: Yes), the additional delay control unit 127 redeploys to another edge cloud. (step S209).
- step S208 If it is determined in step S208 that the delay cannot be dealt with by moving the server to another edge cloud (step S208: No), the additional delay control unit 127 stops the service or lowers the service level. service is provided (step S210).
- FIG. 13 is an explanatory diagram showing an example of additional delay control processing according to the embodiment.
- the example of FIG. 13 assumes that the delay is within the range in which the game operates normally.
- the additional delay control unit 127 always acquires the E2E delay time and the delay time within the NW domain 10 even during service. When a delay occurs in some section of E2E, the additional delay control unit 127 controls the value of the additional delay to ensure the fairness of the delay time in E2E. The additional delay control unit 127 performs such control within the delay time range in which the game operates normally.
- the delay time of user NW42 changes from 2 ms to 10 ms. Therefore, the additional delay control section 127 changes the additional delay for the user NW 42 from 15 ms to 7 ms.
- Controller 200 and SLG 300 may perform some of the processing performed by orchestrator 100 in the embodiments described above. As described above with reference to FIG. 1, delay control system 1 includes controller 200 and SLG 300 . Controller 200 and SLG 300 may share part of the information processing described above with respect to receiving section 121 , selecting section 122 , calculating section 123 , arranging section 124 , registering section 125 and providing section 126 .
- the orchestrator 100 has the placement section 124 and the provision section 126 .
- the arrangement unit 124 sets a plurality of delay differences respectively corresponding to a plurality of edge clouds, and each delay difference is assumed when servers are arranged in individual edge clouds. Placing the server in one of the plurality of edge clouds based on a plurality of delay differences between the delay from the server to the first client and the delay from the server to the second client. Further, in the orchestrator 100 according to the embodiment, the granting unit 126 may calculate the delay from the server placed by the placement unit 124 to the first client and the delay from the server placed by the placement unit 124 to the second client. A delay is applied to at least one of the first client or the second client such that .
- the placement unit 124 calculates the difference between the delay from the server to the first client and the delay from the server to the second client as server placement based on a plurality of delay differences. Place the server in one of the edge clouds to minimize it.
- the imparting unit 126 causes delay between the deployed server and the first client to impart a delay to at least one of the first client and the second client. or packets between the deployed server and the second client.
- the granting unit 126 allows the application installed in the first client and the second client to operate normally. at least one of the
- the orchestrator 100 is configured such that at least one of the delay from the deployed server to the first client or the delay from the deployed server to the second client increases during operation of the application. delays are added such that the delay from the deployed server to the first client and the delay from the deployed server to the second client are within the range in which the application operates normally. It has an additional delay control unit 127 for adjustment.
- the orchestrator 100 can ensure fairness of delays.
- each component of each device illustrated is functionally conceptual and does not necessarily need to be physically configured as illustrated.
- the specific form of distribution/integration of each device is not limited to the illustrated one, and all or part of them can be functionally or physically distributed/integrated in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
- part or all of the storage unit 130 shown in FIG. 4 may be held in a storage server or the like instead of being held by the orchestrator 100.
- the orchestrator 100 acquires various information such as resources by accessing the storage server.
- FIG. 14 is a diagram illustrating an example of a hardware configuration;
- the orchestrator 100, the controller 200, the SLG 300, the game server 400, and the user device 500 according to the embodiments described above are implemented by a computer 1000 configured as shown in FIG. 14, for example.
- FIG. 14 shows an example of a computer that implements the orchestrator 100, the controller 200, the SLG 300, the game server 400, and the user device 500 by executing programs.
- the computer 1000 has a memory 1010 and a CPU 1020, for example.
- Computer 1000 also has hard disk drive interface 1030 , disk drive interface 1040 , serial port interface 1050 , video adapter 1060 and network interface 1070 . These units are connected by a bus 1080 .
- the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012.
- the ROM 1011 stores a boot program such as BIOS (Basic Input Output System).
- Hard disk drive interface 1030 is connected to hard disk drive 1090 .
- a disk drive interface 1040 is connected to the disk drive 1100 .
- a removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1100 .
- Serial port interface 1050 is connected to mouse 1110 and keyboard 1120, for example.
- Video adapter 1060 is connected to display 1130, for example.
- the hard disk drive 1090 stores, for example, an OS 1091, application programs 1092, program modules 1093, and program data 1094. That is, a program that defines each process of orchestrator 100, controller 200, SLG 300, game server 400, or user device 500 is implemented as program module 1093 in which code executable by computer 1000 is described. Program modules 1093 are stored, for example, on hard disk drive 1090 .
- the hard disk drive 1090 stores a program module 1093 for executing processing similar to the functional configuration in the orchestrator 100 , the controller 200 , the SLG 300 , the game server 400 or the user device 500 .
- the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).
- the setting data used in the processing of the embodiment described above is stored as program data 1094 in the memory 1010 or the hard disk drive 1090, for example. Then, the CPU 1020 reads out the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 to the RAM 1012 as necessary and executes them.
- the program modules 1093 and program data 1094 are not limited to being stored in the hard disk drive 1090, but may be stored in a removable storage medium, for example, and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, program modules 1093 and program data 1094 may be stored in other computers connected through a network (LAN, WAN, etc.). Program modules 1093 and program data 1094 may then be read by CPU 1020 through network interface 1070 from other computers.
- the "unit" mentioned above can be read as a module, section, means, circuit, etc.
- the imparting unit can be read as an imparting module or an imparting circuit.
- delay control system 100 orchestrator 110 communication unit 120 control unit 121 reception unit 122 selection unit 123 calculation unit 124 placement unit 125 registration unit 126 addition unit 127 additional delay control unit 130 storage unit 131 resource storage unit 200 controller 210 communication unit 220 control Section 221 Management Section 222 Reception Section 223 Transmission Section 300 SLG 310 communication unit 320 control unit 321 acquisition unit 322 transmission unit 323 delay control unit 324 path control unit 325 distribution unit 330 storage unit 331 table management unit 400 game server 410 communication unit 420 control unit 421 first instruction unit 422 acquisition unit 423 matching Part 424 API Part 425 Data Processing Part 426 Second Instruction Part 500 User Device 510 Communication Part 520 Control Part 521 Request Part 522 Change Part 523 Application Body
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022581162A JP7533639B2 (ja) | 2021-02-15 | 2021-02-15 | 遅延制御装置、遅延制御方法及び遅延制御プログラム |
| PCT/JP2021/005577 WO2022172462A1 (ja) | 2021-02-15 | 2021-02-15 | 遅延制御装置、遅延制御方法及び遅延制御プログラム |
| US18/276,921 US20240129362A1 (en) | 2021-02-15 | 2021-02-15 | Latency control apparatus, latency control method and latency control program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2021/005577 WO2022172462A1 (ja) | 2021-02-15 | 2021-02-15 | 遅延制御装置、遅延制御方法及び遅延制御プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022172462A1 true WO2022172462A1 (ja) | 2022-08-18 |
Family
ID=82837596
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2021/005577 Ceased WO2022172462A1 (ja) | 2021-02-15 | 2021-02-15 | 遅延制御装置、遅延制御方法及び遅延制御プログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20240129362A1 (https=) |
| JP (1) | JP7533639B2 (https=) |
| WO (1) | WO2022172462A1 (https=) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2024065543A (ja) * | 2022-10-31 | 2024-05-15 | 西日本電信電話株式会社 | 通信システム、通信方法、およびプログラム |
| WO2024190435A1 (ja) * | 2023-03-16 | 2024-09-19 | ソニーグループ株式会社 | 情報処理装置、端末装置、基地局、通信システム、情報処理方法及び通信方法 |
| WO2025224825A1 (ja) * | 2024-04-23 | 2025-10-30 | Ntt株式会社 | 通信経路最適化装置および通信経路最適化方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004072534A (ja) * | 2002-08-07 | 2004-03-04 | Nippon Telegr & Teleph Corp <Ntt> | マルチキャスト転送経路計算方法 |
| US9912562B2 (en) * | 2014-03-31 | 2018-03-06 | Microsoft Technology Licensing, Llc | Measuring latency in an interactive application |
| JP2018129718A (ja) * | 2017-02-09 | 2018-08-16 | 日本電気株式会社 | 管理サーバ、通信システム、管理サーバの制御方法、及びプログラム |
| WO2019195167A2 (en) * | 2018-04-02 | 2019-10-10 | Google Llc | Detecting and compensating for display lag in gaming systems |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2566008B (en) * | 2017-08-23 | 2020-04-22 | Falmouth Univ | Collaborative session over a network |
| JP7069672B2 (ja) * | 2017-12-05 | 2022-05-18 | コニカミノルタ株式会社 | アプリケーションの更新方法およびプログラム |
| JP6845168B2 (ja) * | 2018-02-27 | 2021-03-17 | 日本電信電話株式会社 | 通信システム、及びスライス制御方法 |
| AU2020325291A1 (en) * | 2019-08-06 | 2022-03-24 | Duration Media LLC | Technologies for content presentation |
-
2021
- 2021-02-15 JP JP2022581162A patent/JP7533639B2/ja active Active
- 2021-02-15 US US18/276,921 patent/US20240129362A1/en not_active Abandoned
- 2021-02-15 WO PCT/JP2021/005577 patent/WO2022172462A1/ja not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004072534A (ja) * | 2002-08-07 | 2004-03-04 | Nippon Telegr & Teleph Corp <Ntt> | マルチキャスト転送経路計算方法 |
| US9912562B2 (en) * | 2014-03-31 | 2018-03-06 | Microsoft Technology Licensing, Llc | Measuring latency in an interactive application |
| JP2018129718A (ja) * | 2017-02-09 | 2018-08-16 | 日本電気株式会社 | 管理サーバ、通信システム、管理サーバの制御方法、及びプログラム |
| WO2019195167A2 (en) * | 2018-04-02 | 2019-10-10 | Google Llc | Detecting and compensating for display lag in gaming systems |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2024065543A (ja) * | 2022-10-31 | 2024-05-15 | 西日本電信電話株式会社 | 通信システム、通信方法、およびプログラム |
| WO2024190435A1 (ja) * | 2023-03-16 | 2024-09-19 | ソニーグループ株式会社 | 情報処理装置、端末装置、基地局、通信システム、情報処理方法及び通信方法 |
| EP4683294A4 (en) * | 2023-03-16 | 2026-04-08 | Sony Group Corp | Information processing device, terminal device, base station, communication system, information processing method and communication method |
| WO2025224825A1 (ja) * | 2024-04-23 | 2025-10-30 | Ntt株式会社 | 通信経路最適化装置および通信経路最適化方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7533639B2 (ja) | 2024-08-14 |
| JPWO2022172462A1 (https=) | 2022-08-18 |
| US20240129362A1 (en) | 2024-04-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2022172462A1 (ja) | 遅延制御装置、遅延制御方法及び遅延制御プログラム | |
| US9509615B2 (en) | Managing link aggregation traffic in a virtual environment | |
| US10120729B2 (en) | Virtual machine load balancing | |
| JP2024041790A (ja) | マルチクラスタイングレス | |
| Lin et al. | Cloud fog: Towards high quality of experience in cloud gaming | |
| US9350666B2 (en) | Managing link aggregation traffic in a virtual environment | |
| US9686178B2 (en) | Configuring link aggregation groups to perform load balancing in a virtual environment | |
| Amiri et al. | An SDN controller for delay and jitter reduction in cloud gaming | |
| US10660069B2 (en) | Resource allocation device and resource allocation method | |
| US11297132B2 (en) | Methods and devices for orchestrating selection of a multi-access edge computing server for a multi-client application | |
| KR101989063B1 (ko) | VoIP에서 미디어 전송을 위한 최적 네트워크 경로를 선택하기 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체 | |
| US20140075433A1 (en) | Location-based component deployment for composite applications | |
| CN114008595A (zh) | 策略决定装置、策略决定方法以及程序 | |
| US11838212B2 (en) | Method and system for managing, optimizing, and routing internet traffic from a local area network (LAN) to internet based servers | |
| Rezende et al. | An SDN-based framework for routing multi-streams transport traffic over multipath networks | |
| JP7380827B2 (ja) | 管理装置、選定方法、及びプログラム | |
| JP6383336B2 (ja) | サーバ管理装置およびサーバ管理方法 | |
| Chen et al. | Network aware load-balancing via parallel VM migration for data centers | |
| US7711780B1 (en) | Method for distributed end-to-end dynamic horizontal scalability | |
| Du et al. | OpenFlow-Based Dynamic Server Cluster Load Balancing with Measurement Support. | |
| JP6053032B2 (ja) | 通信制御装置、通信制御方法及び通信制御プログラム | |
| KR102172056B1 (ko) | Icn 라우터 및 콘텐츠 제공자 단말을 포함하는 토큰 기반 캐싱 시스템의 제어 방법, 장치 및 프로그램 | |
| Oeldemann et al. | Inter-server RSS: Extending receive side scaling for inter-server workload distribution | |
| CN109302302A (zh) | 服务网元的扩缩方法、系统及计算机可读存储介质 | |
| Milajerdi et al. | A composite-metric based path selection technique for the Tor anonymity network |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ENP | Entry into the national phase |
Ref document number: 2022581162 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18276921 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 21925711 Country of ref document: EP Kind code of ref document: A1 |