WO2023165321A1 - Communication method and system for cloud desktop - Google Patents

Communication method and system for cloud desktop Download PDF

Info

Publication number
WO2023165321A1
WO2023165321A1 PCT/CN2023/075653 CN2023075653W WO2023165321A1 WO 2023165321 A1 WO2023165321 A1 WO 2023165321A1 CN 2023075653 W CN2023075653 W CN 2023075653W WO 2023165321 A1 WO2023165321 A1 WO 2023165321A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
dnat
mapping information
access token
cloud
Prior art date
Application number
PCT/CN2023/075653
Other languages
French (fr)
Chinese (zh)
Inventor
文敢
向亚
严力科
庞雄伟
何旻
彭成
Original Assignee
阿里巴巴(中国)有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 阿里巴巴(中国)有限公司 filed Critical 阿里巴巴(中国)有限公司
Publication of WO2023165321A1 publication Critical patent/WO2023165321A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Definitions

  • the present disclosure relates to the technical field of cloud desktops, in particular to a communication method and system for cloud desktops.
  • Cloud desktop also known as desktop virtualization, is a new model that replaces traditional computing devices (such as computers and mobile phones).
  • Cloud desktop products (such as cloud computers, cloud phones, etc.) are mainly composed of front-end equipment and back-end servers.
  • the front-end equipment mainly uses a thin client (such as a device similar to a TV set-top box) to connect to a monitor, keyboard and/or mouse.
  • a thin client such as a device similar to a TV set-top box
  • the user accesses the virtual machine on the back-end server through a unique communication protocol. Host to achieve interactive operation, to achieve the same experience as the computer.
  • the CPU, memory, hard disk and other components contained in the host can be virtualized in the back-end server.
  • a single high-performance server can virtualize 1-50 virtual hosts.
  • a technical problem to be solved in the present disclosure is to provide an effective communication solution for cloud desktop products.
  • a communication method for cloud desktops wherein the server for providing cloud desktop instances to clients is constructed based on cloud resources, and the method includes: using The authentication service of the client generates an access token for the client; determines the DNAT mapping information, which is used to represent the mapping relationship between the private network address of the server and the public network address of the NAT gateway associated with the server in the cloud resource; The token and DNAT mapping information are sent to the client so that the client can establish a connection with the server based on the access token and DNAT mapping information to access the cloud desktop instance.
  • the method further includes: providing a resource management device, the resource management device is used to provide resource management services for the client, wherein the step of sending the access token and DNAT mapping information to the client includes: sending the access token and/or Or the DNAT mapping information is sent to the resource management device, and the resource management device sends the access token and/or the DNAT mapping information to the client.
  • the step of using the authentication service in the cloud resource to generate the client's access token includes: in response to receiving an access request for the cloud desktop instance sent by the client, verifying the client's identity by the authentication service in the cloud resource Validity is verified; if the verification result is that the identity of the client is legal, an access token is generated.
  • the method before sending the access token to the client, the method also includes: generating a key pair by the authentication service, the key pair including a public key and a private key; sending the public key to the corresponding cloud desktop instance Signaling service: using the private key to sign the access token, wherein the step of sending the access token and DNAT mapping information to the client includes: sending the signed access token to the client.
  • the method further includes: in response to the signaling process initiated by the client for the signaling service based on the DNAT mapping information and the access token, the signaling service verifies the legitimacy of the access token based on the public key; if If the verification result shows that the access token is valid, the DNAT mapping information is passed to the server through the signaling service, and the signaling process is executed to negotiate the parameters involved in the connection between the client and the server.
  • the method further includes: after the signaling process is executed, in response to the client initiating an access request for the server, the server sends the cloud desktop instance data to the client, and/or obtains the cloud desktop instance data sent by the client for the cloud Operational data and/or locally collected data for desktop instances.
  • a communication system for cloud desktops including: a client; a server built based on cloud resources, used to provide a cloud desktop instance for the client; an authentication device for Generate an access token for the client; and a NAT gateway for providing network address translation services for the server, the client obtains the access token and DNAT mapping information, and establishes a connection with the server based on the access token and DNAT mapping information, wherein, The DNAT mapping information is used to represent the mapping relationship between the private network address of the server and the public network address of the NAT gateway.
  • the communication system may further include a resource management device, which is configured to acquire the access token and DNAT mapping information, and send the access token and DNAT mapping information to the client.
  • a resource management device which is configured to acquire the access token and DNAT mapping information, and send the access token and DNAT mapping information to the client.
  • the communication system further includes a network management device, the network management device is used to determine DNAT mapping information, and sends the DNAT mapping information to the resource management device, or the communication system further includes an open interface, and the open interface is used to provide DNAT query Service, so that the resource management device or client can obtain DNAT mapping information through an open interface.
  • a computing device including: a processor; and a memory, on which executable code is stored, and when the executable code is executed by the processor, the processor executes the above-mentioned first method described in the aspect.
  • a computer program product including executable code, when the executable code is executed by a processor of an electronic device, it causes the processor to execute the above-mentioned first aspect.
  • a non-transitory machine-readable storage medium on which executable code is stored, and when the executable code is executed by a processor of an electronic device, the processor executes the above-mentioned A method as described in one aspect.
  • this disclosure is deeply integrated with cloud resources, relying on cloud resources to deploy cloud desktop instances, performing user identity authentication based on authentication services in cloud resources, and issuing access tokens to legitimate users, based on the NAT gateway in cloud resources as Server Provide network address translation services, and send access tokens and DNAT mapping information to clients, making it lightweight, secure, and without the need to build STUN/TURN services in desktop streaming scenarios.
  • Fig. 1 shows a schematic diagram of the architecture of a communication system implemented based on WebRTC.
  • Fig. 2 shows a schematic diagram of the architecture of a communication system for cloud desktops implemented based on the communication method of the present disclosure.
  • FIG. 3 shows a schematic diagram of the architecture of a WebRTC-based desktop streaming system according to an embodiment of the present disclosure.
  • Fig. 4 shows a schematic diagram of an access process for a client to access a cloud desktop instance according to an embodiment of the present disclosure.
  • Fig. 5 shows a schematic structural diagram of a computing device according to an embodiment of the present disclosure.
  • P2P Point-To-Peer, point-to-point communication or end-to-end communication
  • C/S Client-Server, client-server
  • Each node not only acts as a server, provides services for other nodes, but also enjoys the services provided by other nodes.
  • the biggest feature of the P2P network is that it does not require the scheduling of the central server, self-organization and coordination, and direct communication between nodes.
  • WebRTC is an audio and video communication technology that integrates a variety of underlying protocols, which can realize P2P communication, that is, it can provide peer-to-peer communication for both parties.
  • Fig. 1 shows a schematic diagram of the architecture of a communication system implemented based on WebRTC.
  • a WebRTC-based communication system may include three parts: a peer-to-peer communication terminal, a signaling system, and a STUN/TURN service.
  • the two parties participating in the WebRTC communication (that is, the WebRTC communication terminal A and the WebRTC communication terminal B shown in Figure 1) will establish a peer-to-peer connection (Peer Connection) after signaling negotiation, and directly perform audio and video communication.
  • peer-to-peer connections are carried by UDP (User Datagram Protocol, User Datagram Protocol), and the two parties participating in the communication are equal, that is, UDP connections can be initiated by any party.
  • the WebRTC signaling service can be deployed independently from the communication terminal. In order to ensure the correct establishment of the subsequent peer-to-peer connection, it should be ensured that both communication parties can access the signaling service.
  • the communication parties can negotiate the connection communication parameters, and at the same time, through the ICE (Interactive Connectivity Establishment, interactive connection establishment) process, the two parties exchange The IP address and port number of the party behind NAT (Network Address Translation) to assist the peer-to-peer connection to complete the NAT gateway penetration.
  • NAT gateway refers to a gateway for providing network address translation services.
  • the STUN/TURN service is used for NAT gateway traversal.
  • STUN provides a way for the terminal to know its address (public network address) after NAT mapping, so as to replace the private network address in the application layer and achieve the purpose of NAT penetration.
  • a public network address also called a public address
  • a private network address refers to an address used internally by an organization, such as an address used by devices in a LAN.
  • TURN achieves penetration through the "middleman" method of two-party communication.
  • the two parties to communicate establish their own connections with the TURN server located on the public network to communicate.
  • the server is responsible for data forwarding between the two parties.
  • the peer-to-peer communication end learns its own NATed IP/port through the STUN service, and uses it in the subsequent ICE process to exchange the NATed IP/port information for subsequent establishment of a peer-to-peer connection.
  • Audio and video communication technology can be applied to the desktop streaming scenario of cloud desktop products to establish a communication connection between the client and the server.
  • Desktop streaming refers to the transmission of data related to cloud desktop instances between the client and the server.
  • the server can transmit the generated cloud desktop data (picture data) to the client, and the client can send the user's operation data on the cloud desktop or locally collected data (such as video data collected by a camera) to the server .
  • cloud desktop data picture data
  • client can send the user's operation data on the cloud desktop or locally collected data (such as video data collected by a camera) to the server .
  • STUN/TURN services need to be deployed independently.
  • the STUN service is based on UDP, and there is a security risk of DDOS.
  • the present disclosure proposes a communication method for cloud desktops.
  • Fig. 2 shows a schematic diagram of the architecture of a communication system for cloud desktops implemented based on the communication method of the present disclosure.
  • the communication method of the present disclosure is described below with reference to FIG. 2 .
  • a server for providing a cloud desktop instance to a client may be constructed based on cloud resources.
  • Cloud resources refer to resources on the cloud (computing resources on the cloud), which may specifically be public cloud computing resources, private cloud computing resources or hybrid cloud computing resources.
  • the server and client constitute a set of cloud desktop products.
  • authentication services in cloud resources authentication mechanisms, such as public
  • the AK/SK mechanism of the open interface openAPI in the cloud authenticates the user identity (that is, the client identity) and issues an access token for the legitimate user (that is, the legitimate client), which can solve the first problem above.
  • the NAT gateway in the cloud resources (such as the public cloud NAT gateway) to provide network address translation services for multiple cloud desktop instances (that is, multiple servers), so that multiple cloud desktop instances can share one Public network addresses save public network addresses and reduce customer costs, which can solve the second problem above.
  • the client can send an access request for the cloud desktop instance to the authentication service.
  • the access request can be sent to the authentication service through an out-of-band network (a network not directly connected to the cloud desktop instance). That is, the access request will not pass through the NAT gateway associated with the server, but may be sent to the authentication service through the local NAT gateway of the client.
  • the authentication service can verify the legality of the identity of the client. For example, it can be checked whether the identity of the client matches the requested cloud desktop instance to determine whether the client has access rights to the requested cloud desktop instance.
  • the authentication service can generate the client's access token; otherwise, if the verification result shows that the client's identity is not legal, the authentication process can be ended without generating an access token.
  • the authentication service Before sending the access token to the client, the authentication service can generate a key pair, which includes a public key and a private key.
  • the public key can be sent to the signaling service corresponding to the cloud desktop instance, and the private key is used to sign the access token. From this, a signed access token can be sent to the client.
  • the server can provide Internet services through the public network address.
  • the DNAT mapping information is used to characterize the mapping relationship between the private network address of the server (such as the first IP address and the first port number) and the public network address of the NAT gateway (such as the second IP address and the second port number).
  • the NAT gateway mentioned here refers to the gateway associated with the server located in the cloud resource.
  • the NAT gateway can be bound to one or more public network addresses (for example, it can be an elastic public network IP).
  • the DNAT mapping information and the access token can be sent to the client together or separately.
  • the DNAT mapping information When the DNAT mapping information is sent to the client, it may be sent to the client actively, or the client may obtain the DNAT mapping information from the cloud resource through an active query.
  • a resource management device can be created (provided) for providing clients with Resource management services.
  • the access token and/or DNAT mapping information may be sent to the resource management device, and the resource management device sends the access token and/or DNAT mapping information to the client.
  • an open interface may also be provided, for example, an open interface may be generated based on cloud resources, and the open interface is used to provide DNAT mapping information query service.
  • an open interface may be generated based on cloud resources, and the open interface is used to provide DNAT mapping information query service.
  • the DNAT mapping information can be sent to the client.
  • the client can also configure the DNAT mapping of the server through an open interface.
  • Signaling services can be deployed in cloud resources.
  • the signaling service corresponding to the cloud desktop instance can be deployed in the cloud resource, so as to customize the signaling service at the cloud desktop instance level.
  • the signaling service can also be deployed centrally, that is, the signaling service can be shared by multiple cloud desktop instances to serve multiple cloud desktop instances.
  • the signaling service In response to the signaling process initiated by the client for the signaling service based on the DNAT mapping information and the access token, the signaling service verifies the legitimacy of the access token based on the public key.
  • the DNAT mapping information can be transmitted to the server through the signaling service, and the signaling process is executed to negotiate the parameters involved in the connection between the client and the server. If the verification result is that the access token is invalid, the signaling process can be ended.
  • the client can initiate an access request (ie, a connection request) for the server.
  • the server can send the cloud desktop instance data to the client, and/or obtain the operation data and/or local collection data sent by the client for the cloud desktop instance.
  • FIG. 3 shows a schematic diagram of the architecture of a WebRTC-based desktop streaming system according to an embodiment of the present disclosure.
  • the WebRTC-based desktop streaming system mainly includes WebRTC server, authentication service, public cloud NAT gateway, resource management service, signaling service, network management and control module, and WebRTC client.
  • the WebRTC server is integrated in the public cloud and provides peer-to-peer connections and desktop streaming.
  • Signaling service and WebRTC server can be integrated in one cloud desktop instance.
  • the advantage of this sub-instance deployment is that the signaling service can be customized at the instance level, but the disadvantage is that some deployment resources will be wasted. Therefore, the signaling service can also be deployed centrally and shared with all cloud desktop instances (that is, different WebRTC servers).
  • the authentication service Before initiating a WebRTC connection, the authentication service needs to authenticate the identity of the connecter, and only legal users are allowed to perform signaling and peer-to-peer connections to the WebRTC server.
  • the system architecture can rely on existing public cloud authentication mechanisms (such as the AK/SK mechanism of openAPI), and issue access tokens to legitimate users.
  • the signaling process of WebRTC the user's access token is verified, and the connection request with an illegal token is rejected.
  • NAT gateway between the WebRTC client and the WebRTC server.
  • the public cloud NAT gateway can save a large number of public network IP addresses, which is of great benefit to saving user costs; at the same time, since the public cloud NAT gateway is a standard cloud product, users can directly implement it through openAPI. NAT mapping configuration, and query to obtain the existing configuration.
  • the resource management service is a service built by customers to manage their own resources on the public cloud. Through the resource management service, customers can perform authentication before accessing the cloud desktop instance, and at the same time obtain the DNAT mapping information required for the connection. Resource management services can be integrated with WebRTC clients or deployed independently of WebRTC clients.
  • the WebRTC client can obtain the DNAT mapping configuration (that is, DNAT mapping information) from the resource management service. If there is no DNAT mapping in the resource management service, the resource management service can obtain the DNAT mapping configuration from the network management and control module. Among them, the network management and control module can verify the identity of the client before sending the DNAT mapping configuration. If the verification is passed, the DNAT mapping configuration is sent to the resource management service, and then sent to the client via the resource management service.
  • the DNAT mapping configuration that is, DNAT mapping information
  • the WebRTC client is the initiator of the signaling process as well as the peer-to-peer connection. Generally, before accessing the remote desktop, the packets sent and received by the client may pass through the local NAT gateway.
  • Fig. 4 shows a schematic diagram of an access process for a client to access a cloud desktop instance according to an embodiment of the present disclosure.
  • the access process mainly includes an authentication process, a signaling process, and a desktop connection process.
  • the authentication process does not pass through the public cloud NAT gateway, but can pass through the local NAT gateway of the WebRTC client.
  • the WebRTC client can initiate an instance connection request (corresponding to the access request mentioned above) through the out-of-band network (not directly connected to the instance network).
  • the instance connection request can be sent to the authentication service via the local NAT gateway or the resource management service.
  • the authentication service can first verify the legality of the client's identity, and after verifying that the identity is legal, the authentication service can prepare for subsequent WebRTC signaling authentication.
  • the resource management service can send the DNAT map to the WebRTC client along with the access token.
  • the resource management service can obtain the DNAT mapping configuration from the public cloud NAT gateway, for example, the DNAT can be obtained from the network management and control module connected to the public cloud NAT gateway Mapping configuration.
  • Steps 1 to 10 shown in FIG. 4 are the authentication process.
  • step 1 the WebRTC client sends the instance connection request to the local NAT gateway.
  • step 2 the local NAT gateway sends the instance connection request to the resource management service.
  • step 3 the resource management service sends the instance connection request to the authentication service.
  • step 4 the authentication service generates a public-private key pair after verifying that the identity of the client is legal, and sends the public key to the signaling service corresponding to the cloud desktop instance.
  • step 5 the signaling service returns a public key delivery success message to the authentication service.
  • step 6 the authentication service generates a time-sensitive access token (token), signs it with a private key, and returns it to the resource management service.
  • token time-sensitive access token
  • step 7 if there is no DNAT mapping of the cloud desktop instance corresponding to the client in the resource management service, the resource management service can perform DNAT mapping configuration on the public cloud NAT gateway, for example, the public cloud NAT gateway can be configured through openAPI NAT mapping configuration.
  • step 8 the public cloud NAT gateway sends a configuration success message to the resource management service.
  • step 9 the resource management service sends the access token and DNAT mapping information to the local NAT gateway.
  • step 10 the local NAT gateway sends the access token and DNAT mapping information to the WebRTC client.
  • the signaling process can be sent to the signaling service through the local NAT gateway and the public cloud NAT gateway.
  • the WebRTC client After the WebRTC client obtains the access token, it initiates a signaling process to the signaling service.
  • the whole process basically follows the standard WebRTC signaling process. Key to verify the validity of the access token, if the verification fails, the entire WebRTC connection will be terminated directly.
  • both communicating parties may actively initiate a peer-to-peer connection.
  • desktop streaming systems always have WebRTC clients (client users) actively connect to WebRTC servers (cloud desktop instances) to obtain desktops. This is mainly reflected in two aspects of the signaling plane and the data plane.
  • the client On the signaling side, the client actively initiates a TCP (Transmission Control Protocol) connection to the signaling system of the cloud desktop instance.
  • TCP Transmission Control Protocol
  • the client On the data side, the client initiates a UDP connection to the server, obtains the desktop from the remote end (server) or pushes local video (such as a camera) to the remote end, and at the same time through SCTP over UDP (SCTP based on UDP, SCTP is a A stream control transmission protocol oriented to multimedia communication) sends events such as local peripherals (such as mouse/keyboard) to the remote end.
  • SCTP Transmission Control Protocol
  • the WebRTC client only needs to obtain the DNAT mapping of the WebRTC server without learning the NAT mapping of the local network to complete NAT penetration.
  • DNAT mapping information For the maintenance of DNAT mapping information, there may be two methods: 1) All configured DNAT mapping information can be maintained by the resource management service, and the client can directly query and obtain the resource management service (as shown in Figure 3 and Figure 4); 2) Clients can query the public cloud NAT gateway for DNAT mapping directly through openAPI.
  • the client can use it to directly initiate the signaling process, that is, initiate a TCP connection to the signaling service; on the other hand, the client can pass the DNAT mapping to the server through the signaling process, and pass Subsequent standard ICE procedures switch to the client to initiate a peer-to-peer connection.
  • the signaling procedure may include the ICE procedure.
  • the WebRTC server can exchange its public network address (such as IP address and port number) behind NAT according to the existing mechanism.
  • the public network address of the WebRTC server behind NAT can be passed from the WebRTC client to the WebRTC server in the signaling process.
  • the WebRTC client Since in the desktop streaming system, the WebRTC client always actively connects to the WebRTC server, so in the ICE process, the WebRTC client may not exchange its public network address (such as IP address and port number) behind the local NAT to WebRTC Server.
  • the WebRTC client may not exchange its public network address (such as IP address and port number) behind the local NAT to WebRTC Server.
  • NAT penetration can also be achieved without setting up STUN/TURN services.
  • Steps 11 to 18 shown in FIG. 4 are signaling procedures.
  • the WebRTC client sends the signaling connection request to the signaling service via the local NAT gateway or the public cloud NAT gateway.
  • the signaling service sends a connection success message to the WebRTC client via the public cloud NAT gateway and the local NAT gateway.
  • step 17 other signaling may be exchanged between the WebRTC client and the signaling service.
  • an ICE procedure may be performed between the WebRTC client and the signaling service.
  • Step 19 shown in FIG. 4 is a desktop connection process.
  • the WebRTC client and WebRTC server can be UDP client and UDP server respectively. That is, UDP can be used for communication between the WebRTC client and the WebRTC server.
  • the WebRTC client can send the operation data and/or local collection data for the cloud desktop instance to the WebRTC server.
  • the WebRTC server can send the cloud desktop instance data to the client.
  • the WebRTC-based cloud instance desktop streaming system of the present disclosure through deep integration with the public cloud, can have the advantages of light weight, security, and no need to build STUN/TURN services.
  • this disclosure can rely on the authentication system of the public cloud to perform user identity authentication, issue access tokens to legitimate users, and perform WebRTC connections; for public network streaming scenarios, between the WebRTC client and the server Set up a public network NAT gateway to save a lot of public network IP addresses and reduce customer costs; because the public network NAT gateway is also a product of the public cloud, its NAT mapping can be obtained by users, and because in the desktop streaming system, the signaling plane TCP connections and UDP connections on the data plane are always initiated by the WebRTC client, so NAT penetration can be performed without setting up STUN/TURN services.
  • the communication method of the present disclosure can also be implemented as a communication system.
  • the communication system may include a client, a server based on cloud resources, an authentication device, and a NAT gateway.
  • the server is used to provide cloud desktop instances to clients.
  • the authentication device is used to provide authentication service for the client to determine whether the client has the access authority of the cloud desktop instance.
  • the authentication device may be constructed based on cloud resources, for example, the authentication device may be provided by cloud resources.
  • the NAT gateway is used to provide network address translation services for cloud desktop instances.
  • the NAT gateway is located in the cloud, such as a public cloud NAT gateway.
  • the client may first obtain the access token and DNAT mapping information, and then establish a connection with the server based on the access token and the DNAT mapping information.
  • Clients can obtain access token and DNAT mapping information in various ways. For example, the authentication device can directly issue the access token to the client, and the client can actively query the DNAT mapping information through an open interface.
  • the communication system may also include resource management means.
  • the resource management apparatus is created for the client, and is used to provide the resource management service for the client, so as to manage the resources of the client on the cloud (such as on the public cloud).
  • the resource management device can be deployed on the client, or can be deployed independently of the client.
  • the resource management device can obtain the access token and DNAT mapping information, and send the access token and DNAT mapping information to the client, so that the client can establish a connection with the server based on the access token and DNAT mapping information to access the cloud desktop instance.
  • the resource management device may obtain the access token from the authentication device.
  • the communication system may also include a network management device, the network management device is used to determine the DNAT mapping information, and send the DNAT mapping information to the resource management device, or the communication system may also include an open interface, The open interface is used to provide DNAT query service.
  • the resource management device or the client can obtain the DNAT mapping information through an open interface.
  • the client can acquire DNAT mapping information through an open interface, and send the acquired DNAT mapping information to the resource management device for storage.
  • Fig. 5 shows a schematic structural diagram of a computing device that can be used to implement the above communication method according to an embodiment of the present disclosure.
  • a computing device 500 includes a memory 510 and a processor 520 .
  • the processor 520 may be a multi-core processor, or may include multiple processors.
  • the processor 520 may include a general-purpose main processor and one or more special co-processors, such as a graphics processing unit (GPU), a digital signal processor (DSP), and the like.
  • the processor 520 may be implemented using a customized circuit, such as an application specific integrated circuit (ASIC, Application Specific Integrated Circuit) or a field programmable logic gate array (FPGA, Field Programmable Gate Arrays).
  • ASIC application specific integrated circuit
  • FPGA Field Programmable Gate Arrays
  • the memory 510 may include various types of storage units, such as system memory, read only memory (ROM), and persistent storage. Wherein, the ROM can store static data or instructions required by the processor 520 or other modules of the computer.
  • the persistent storage device may be a readable and writable storage device. Persistent storage may be a non-volatile storage device that does not lose stored instructions and data even if the computer is powered off.
  • the permanent storage device adopts a mass storage device (such as a magnetic or optical disk, flash memory) as the permanent storage device.
  • the permanent storage device may be a removable storage device (such as a floppy disk, an optical drive).
  • the system memory can be a readable and writable storage device or a volatile readable and writable storage device, such as dynamic random access memory.
  • System memory can store some or all of the instructions and data that the processor needs at runtime.
  • memory 510 may include any combination of computer-readable storage media, including various types of semiconductor memory chips (DRAM, SRAM, SDRAM, flash memory, programmable read-only memory), magnetic disks and/or optical disks may also be used.
  • memory 510 may include a readable and/or writable removable storage device, such as a compact disc (CD), a read-only digital versatile disc (e.g., DVD-ROM, dual-layer DVD-ROM), Read-Only Blu-ray Disc, Super Density Disc, Flash memory card (such as SD card, min SD card, Micro-SD card, etc.), magnetic floppy disk, etc.
  • a readable and/or writable removable storage device such as a compact disc (CD), a read-only digital versatile disc (e.g., DVD-ROM, dual-layer DVD-ROM), Read-Only Blu-ray Disc, Super Density Disc, Flash memory card (such as SD card, min SD card, Micro-SD card, etc.), magnetic floppy disk, etc.
  • Computer-readable storage media do not contain carrier waves and transient electronic signals transmitted by wireless or wire.
  • Executable codes are stored in the memory 510 , and when the executable codes are processed by the processor 520 , the processor 520 can be made to execute the communication method mentioned above.
  • the method according to the present invention can also be realized as a computer program or computer program product, the computer program or computer program product including computer program code instructions for executing the above-mentioned steps defined in the above-mentioned method of the present invention.
  • the present invention can also be implemented as a non-transitory machine-readable storage medium (or computer-readable storage medium, or machine-readable storage medium), on which executable code (or computer program, or computer instruction code is stored) ), when the executable code (or computer program, or computer instruction code) is executed by the processor of the electronic device (or computing device, server, etc.), causing the processor to perform the steps of the above method according to the present invention .
  • each block in a flowchart or block diagram may represent a module, program segment, or part of code that includes one or more Executable instructions.
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved.
  • each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by a dedicated hardware-based system that performs the specified functions or operations , or may be implemented by a combination of dedicated hardware and computer instructions.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present disclosure relates to a communication method and system for a cloud desktop. A serving end for providing a cloud desktop instance for a client is constructed on the basis of a cloud resource. The method comprises: generating an access token of a client by using an authentication service in a cloud resource; determining DNAT mapping information, wherein the DNAT mapping information is used for representing a mapping relationship between a private network address of a serving end and a public network address of an NAT gateway which is located in the cloud resource and is associated with the serving end; and sending the access token and the DNAT mapping information to the client, such that the client establishes a connection with the serving end on the basis of the access token and the DNAT mapping information, so as to access a cloud desktop instance. Therefore, by means of deep fusion with a cloud resource, the disclosure has advantages such as being lightweight and secure and having no need to build an STUN/TURN service in a desktop streaming scenario of a cloud desktop instance.

Description

用于云桌面的通信方法及系统Communication method and system for cloud desktop
本申请要求于2022年03月03日提交中国专利局、申请号为202210209649.9、申请名称为“用于云桌面的通信方法及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with the application number 202210209649.9 and the application title "Communication Method and System for Cloud Desktop" submitted to the China Patent Office on March 3, 2022, the entire contents of which are incorporated herein by reference Applying.
技术领域technical field
本公开涉及云桌面技术领域,特别是涉及一种用于云桌面的通信方法及系统。The present disclosure relates to the technical field of cloud desktops, in particular to a communication method and system for cloud desktops.
背景技术Background technique
云桌面又称桌面虚拟化,是替代传统计算设备(如电脑、手机)的一种新模式。Cloud desktop, also known as desktop virtualization, is a new model that replaces traditional computing devices (such as computers and mobile phones).
云桌面产品(如云电脑、云手机等)主要由前端设备和后端服务器两部分组成。Cloud desktop products (such as cloud computers, cloud phones, etc.) are mainly composed of front-end equipment and back-end servers.
以云电脑为例,前端设备主要是采用瘦客户机(如与电视机顶盒类似的设备)连接显示器、键盘和/或鼠标,用户安装客户端后通过特有的通信协议访问后端服务器上的虚拟机主机来实现交互式操作,达到与电脑一致的体验效果。Taking cloud computer as an example, the front-end equipment mainly uses a thin client (such as a device similar to a TV set-top box) to connect to a monitor, keyboard and/or mouse. After installing the client, the user accesses the virtual machine on the back-end server through a unique communication protocol. Host to achieve interactive operation, to achieve the same experience as the computer.
采用云桌面后,用户无需再购买设备主机,主机所包含的CPU、内存、硬盘等组件都可以在后端的服务器中虚拟出来,单台高性能服务器可以虚拟1-50台不等的虚拟主机。After adopting the cloud desktop, users do not need to purchase equipment hosts. The CPU, memory, hard disk and other components contained in the host can be virtualized in the back-end server. A single high-performance server can virtualize 1-50 virtual hosts.
在云桌面产品的使用过程中,需要在前端设备和后端设备之间建立通信,以传输数据。如何针对云桌面产品提供一种行之有效的通信方案,则是目前亟需解决的技术问题。During the use of cloud desktop products, communication needs to be established between the front-end device and the back-end device to transmit data. How to provide an effective communication solution for cloud desktop products is a technical problem that needs to be solved urgently.
发明内容Contents of the invention
本公开要解决的一个技术问题是针对云桌面产品提供一种行之有效的通信方案。A technical problem to be solved in the present disclosure is to provide an effective communication solution for cloud desktop products.
根据本公开的第一个方面,提供了一种用于云桌面的通信方法,其中,用于为客户端提供云桌面实例的服务端是基于云资源构建的,该方法包括:利用云资源中的鉴权服务生成客户端的访问令牌;确定DNAT映射信息,DNAT映射信息用于表征服务端的私网地址与云资源中与服务端关联的NAT网关的公网地址之间的映射关系;将访问令牌和DNAT映射信息发送给客户端,以便客户端基于访问令牌和DNAT映射信息与服务端建立连接,以访问云桌面实例。According to a first aspect of the present disclosure, a communication method for cloud desktops is provided, wherein the server for providing cloud desktop instances to clients is constructed based on cloud resources, and the method includes: using The authentication service of the client generates an access token for the client; determines the DNAT mapping information, which is used to represent the mapping relationship between the private network address of the server and the public network address of the NAT gateway associated with the server in the cloud resource; The token and DNAT mapping information are sent to the client so that the client can establish a connection with the server based on the access token and DNAT mapping information to access the cloud desktop instance.
可选地,该方法还包括:提供资源管理装置,资源管理装置用于为客户端提供资源管理服务,其中,将访问令牌和DNAT映射信息发送给客户端的步骤包括:将访问令牌和/或DNAT映射信息发送给资源管理装置,由资源管理装置将访问令牌和/或DNAT映射信息发送给客户端。Optionally, the method further includes: providing a resource management device, the resource management device is used to provide resource management services for the client, wherein the step of sending the access token and DNAT mapping information to the client includes: sending the access token and/or Or the DNAT mapping information is sent to the resource management device, and the resource management device sends the access token and/or the DNAT mapping information to the client.
可选地,该方法还包括:提供开放式接口,开放式接口用于提供DNAT映射信息查询服务,其中,将访问令牌和DNAT映射信息发送给客户端的步骤包括:响应于接收到客户 端通过开放式接口发送的DNAT映射查询请求,将DNAT映射信息发送给客户端。Optionally, the method further includes: providing an open interface for providing DNAT mapping information query service, wherein the step of sending the access token and the DNAT mapping information to the client includes: responding to receiving The end sends the DNAT mapping query request through the open interface, and sends the DNAT mapping information to the client.
可选地,利用云资源中的鉴权服务生成客户端的访问令牌的步骤包括:响应于接收到客户端发送的针对云桌面实例的访问请求,由云资源中的鉴权服务对客户端的身份合法性进行校验;若校验结果为客户端的身份合法,则生成访问令牌。Optionally, the step of using the authentication service in the cloud resource to generate the client's access token includes: in response to receiving an access request for the cloud desktop instance sent by the client, verifying the client's identity by the authentication service in the cloud resource Validity is verified; if the verification result is that the identity of the client is legal, an access token is generated.
可选地,在将访问令牌发送给客户端之前,该方法还包括:由鉴权服务生成密钥对,密钥对包括公钥和私钥;将公钥发送到与云桌面实例对应的信令服务;使用私钥对访问令牌进行签名,其中,将访问令牌和DNAT映射信息发送给客户端的步骤包括:将签名后的访问令牌发送给客户端。Optionally, before sending the access token to the client, the method also includes: generating a key pair by the authentication service, the key pair including a public key and a private key; sending the public key to the corresponding cloud desktop instance Signaling service: using the private key to sign the access token, wherein the step of sending the access token and DNAT mapping information to the client includes: sending the signed access token to the client.
可选地,该方法还包括:响应于客户端基于DNAT映射信息和访问令牌针对信令服务发起的信令流程,由信令服务基于公钥对访问令牌的合法性进行校验;若校验结果为访问令牌合法,则通过信令服务将DNAT映射信息传递给服务端,并执行信令流程,以对客户端与服务端之间进行连接所涉及的参数进行协商。Optionally, the method further includes: in response to the signaling process initiated by the client for the signaling service based on the DNAT mapping information and the access token, the signaling service verifies the legitimacy of the access token based on the public key; if If the verification result shows that the access token is valid, the DNAT mapping information is passed to the server through the signaling service, and the signaling process is executed to negotiate the parameters involved in the connection between the client and the server.
可选地,该方法还包括:在信令流程执行完毕之后,响应于客户端发起针对服务端的访问请求,服务端将云桌面实例数据发送给客户端,并且/或者获取客户端发送的针对云桌面实例的操作数据和/或本地采集数据。Optionally, the method further includes: after the signaling process is executed, in response to the client initiating an access request for the server, the server sends the cloud desktop instance data to the client, and/or obtains the cloud desktop instance data sent by the client for the cloud Operational data and/or locally collected data for desktop instances.
根据本公开的第二个方面,提供了一种用于云桌面的通信系统,包括:客户端;基于云资源构建的服务端,用于为客户端提供云桌面实例;鉴权装置,用于生成客户端的访问令牌;以及NAT网关,用于为服务端提供网络地址转换服务,客户端获取访问令牌和DNAT映射信息,并基于访问令牌和DNAT映射信息与服务端建立连接,其中,DNAT映射信息用于表征服务端的私网地址与NAT网关的公网地址之间的映射关系。According to a second aspect of the present disclosure, a communication system for cloud desktops is provided, including: a client; a server built based on cloud resources, used to provide a cloud desktop instance for the client; an authentication device for Generate an access token for the client; and a NAT gateway for providing network address translation services for the server, the client obtains the access token and DNAT mapping information, and establishes a connection with the server based on the access token and DNAT mapping information, wherein, The DNAT mapping information is used to represent the mapping relationship between the private network address of the server and the public network address of the NAT gateway.
可选地,通信系统还可以包括资源管理装置,资源管理装置用于获取访问令牌和DNAT映射信息,并将访问令牌和DNAT映射信息发送给客户端。Optionally, the communication system may further include a resource management device, which is configured to acquire the access token and DNAT mapping information, and send the access token and DNAT mapping information to the client.
可选地,通信系统还包括网络管理装置,网络管理装置用于确定DNAT映射信息,并将DNAT映射信息发送给资源管理装置,或者通信系统还包括开放式接口,开放式接口用于提供DNAT查询服务,以便资源管理装置或客户端通过开放式接口获取DNAT映射信息。Optionally, the communication system further includes a network management device, the network management device is used to determine DNAT mapping information, and sends the DNAT mapping information to the resource management device, or the communication system further includes an open interface, and the open interface is used to provide DNAT query Service, so that the resource management device or client can obtain DNAT mapping information through an open interface.
根据本公开的第三个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。According to a third aspect of the present disclosure, there is provided a computing device, including: a processor; and a memory, on which executable code is stored, and when the executable code is executed by the processor, the processor executes the above-mentioned first method described in the aspect.
根据本公开的第四个方面,提供了一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上述第一方面所述的方法。According to a fourth aspect of the present disclosure, there is provided a computer program product, including executable code, when the executable code is executed by a processor of an electronic device, it causes the processor to execute the above-mentioned first aspect. Methods.
根据本公开的第五个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。According to a fifth aspect of the present disclosure, there is provided a non-transitory machine-readable storage medium, on which executable code is stored, and when the executable code is executed by a processor of an electronic device, the processor executes the above-mentioned A method as described in one aspect.
由此,本公开与云资源深度融合,依托云资源部署云桌面实例,基于云资源中的鉴权服务进行用户身份鉴权,并对合法用户颁发访问令牌,基于云资源中的NAT网关为服务端 提供网络地址转换服务,并将访问令牌和DNAT映射信息发送给客户端,使得在桌面串流场景下具备轻量、安全以及无需搭建STUN/TURN服务等优点。Therefore, this disclosure is deeply integrated with cloud resources, relying on cloud resources to deploy cloud desktop instances, performing user identity authentication based on authentication services in cloud resources, and issuing access tokens to legitimate users, based on the NAT gateway in cloud resources as Server Provide network address translation services, and send access tokens and DNAT mapping information to clients, making it lightweight, secure, and without the need to build STUN/TURN services in desktop streaming scenarios.
附图说明Description of drawings
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。The above and other objects, features and advantages of the present disclosure will become more apparent by describing the exemplary embodiments of the present disclosure in more detail with reference to the accompanying drawings, wherein, in the exemplary embodiments of the present disclosure, the same reference numerals generally represent same parts.
图1示出了基于WebRTC实现的通信系统的架构示意图。Fig. 1 shows a schematic diagram of the architecture of a communication system implemented based on WebRTC.
图2示出了基于本公开的通信方法实现的用于云桌面的通信系统的架构示意图。Fig. 2 shows a schematic diagram of the architecture of a communication system for cloud desktops implemented based on the communication method of the present disclosure.
图3示出了根据本公开一个实施例的基于WebRTC的桌面串流系统的架构示意图。FIG. 3 shows a schematic diagram of the architecture of a WebRTC-based desktop streaming system according to an embodiment of the present disclosure.
图4示出了根据本公开一个实施例的客户端访问云桌面实例的访问流程示意图。Fig. 4 shows a schematic diagram of an access process for a client to access a cloud desktop instance according to an embodiment of the present disclosure.
图5示出了根据本公开一个实施例的计算设备的结构示意图。Fig. 5 shows a schematic structural diagram of a computing device according to an embodiment of the present disclosure.
具体实施方式Detailed ways
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。Preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although preferred embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
P2P(Peer-To-Peer,点到点通信或端到端通信)打破了传统的C/S(Client-Server,客户机-服务器)模式,在网络中的每个节点的地位都是对等的。每个节点既充当服务器,为其他节点提供服务,同时也享用其他节点提供的服务。P2P网络最大的特点是不需要中央服务器的调度,自我组织协调,各个节点之间可以直接通信。WebRTC是一种集合了多种底层协议的音视频通信技术,可以实现P2P通信,即能够为通信双方提供对等通信。P2P (Peer-To-Peer, point-to-point communication or end-to-end communication) breaks the traditional C/S (Client-Server, client-server) mode, and the status of each node in the network is equal of. Each node not only acts as a server, provides services for other nodes, but also enjoys the services provided by other nodes. The biggest feature of the P2P network is that it does not require the scheduling of the central server, self-organization and coordination, and direct communication between nodes. WebRTC is an audio and video communication technology that integrates a variety of underlying protocols, which can realize P2P communication, that is, it can provide peer-to-peer communication for both parties.
图1示出了基于WebRTC实现的通信系统的架构示意图。Fig. 1 shows a schematic diagram of the architecture of a communication system implemented based on WebRTC.
如图1所示,基于WebRTC的通信系统可以包括对等通信端、信令系统以及STUN/TURN服务这三部分。As shown in Figure 1, a WebRTC-based communication system may include three parts: a peer-to-peer communication terminal, a signaling system, and a STUN/TURN service.
1、对等通信端1. Peer-to-peer communication terminal
参与WebRTC通信的双方(即图1中示出的WebRTC通信端A和WebRTC通信端B)在进行信令协商后,将建立对等连接(Peer Connection),直接进行音视频通信。在底层,对等连接均由UDP(User Datagram Protocol,用户数据报协议)承载,且参与通信的双方地位对等,即UDP连接可由任何一方发起。The two parties participating in the WebRTC communication (that is, the WebRTC communication terminal A and the WebRTC communication terminal B shown in Figure 1) will establish a peer-to-peer connection (Peer Connection) after signaling negotiation, and directly perform audio and video communication. At the bottom layer, peer-to-peer connections are carried by UDP (User Datagram Protocol, User Datagram Protocol), and the two parties participating in the communication are equal, that is, UDP connections can be initiated by any party.
2、信令系统2. Signaling system
WebRTC信令服务可以独立于通信端集中部署,为了保证后续的对等连接的正确建立,应确保通信双方均能访问到信令服务。通过信令服务,通信双方能够进行连接通信参数协商,同时通过ICE(Interactive Connectivity Establishment,交互式连接创建)流程,交换双 方在NAT(Network Address Translation,网络地址转换)之后的IP地址与端口号,以协助对等连接完成NAT网关穿透。NAT网关是指用于提供网络地址转换服务的网关。The WebRTC signaling service can be deployed independently from the communication terminal. In order to ensure the correct establishment of the subsequent peer-to-peer connection, it should be ensured that both communication parties can access the signaling service. Through the signaling service, the communication parties can negotiate the connection communication parameters, and at the same time, through the ICE (Interactive Connectivity Establishment, interactive connection establishment) process, the two parties exchange The IP address and port number of the party behind NAT (Network Address Translation) to assist the peer-to-peer connection to complete the NAT gateway penetration. A NAT gateway refers to a gateway for providing network address translation services.
3、STUN/TURN服务3. STUN/TURN service
在对等通信端之间存在NAT网关的情况下,STUN/TURN服务被用于NAT网关穿透。In the case where there is a NAT gateway between peers, the STUN/TURN service is used for NAT gateway traversal.
STUN为终端提供一种方式能够获知自己经过NAT映射后的地址(公网地址),从而替代位于应用层中的私网地址,达到NAT穿透的目的。公网地址(也可称为公有地址)是指在因特网(Internet)上直接可达的地址。私网地址(也可称为私有地址)是指为组织机构内部使用的地址,如局域网内设备使用的地址。STUN provides a way for the terminal to know its address (public network address) after NAT mapping, so as to replace the private network address in the application layer and achieve the purpose of NAT penetration. A public network address (also called a public address) refers to an address that is directly reachable on the Internet (Internet). A private network address (also called a private address) refers to an address used internally by an organization, such as an address used by devices in a LAN.
TURN解决NAT穿透的思路与STUN类似,都是通过修改应用层中的私网地址达到NAT穿透。与STUN不同的是,TURN是通过两方通讯的“中间人”的方式实现穿透,在这种方式下,要进行通讯的两方分别与位于公网上的TURN服务器建立各自的连接进行通讯,由服务器负责在两方之间进行数据转发。The idea of TURN to solve NAT penetration is similar to that of STUN, which achieves NAT penetration by modifying the private network address in the application layer. Different from STUN, TURN achieves penetration through the "middleman" method of two-party communication. In this way, the two parties to communicate establish their own connections with the TURN server located on the public network to communicate. The server is responsible for data forwarding between the two parties.
以STUN服务为例,对等通信端通过STUN服务学习自身NAT后的IP/端口,并用于后续ICE流程来交换NAT后的IP/端口信息,以便后续建立对等连接。Taking the STUN service as an example, the peer-to-peer communication end learns its own NATed IP/port through the STUN service, and uses it in the subsequent ICE process to exchange the NATed IP/port information for subsequent establishment of a peer-to-peer connection.
音视频通信技术(如WebRTC)可以应用于针对云桌面产品的桌面串流场景,在客户端和服务端之间建立通信连接。Audio and video communication technology (such as WebRTC) can be applied to the desktop streaming scenario of cloud desktop products to establish a communication connection between the client and the server.
桌面串流是指在客户端和服务端之间传输与云桌面实例相关的数据。具体而言,服务端可以将生成的云桌面数据(画面数据)传输给客户端,客户端可以将用户针对云桌面的操作数据或本地采集数据(如利用摄像头采集的视频数据)发送给服务端。Desktop streaming refers to the transmission of data related to cloud desktop instances between the client and the server. Specifically, the server can transmit the generated cloud desktop data (picture data) to the client, and the client can send the user's operation data on the cloud desktop or locally collected data (such as video data collected by a camera) to the server .
如果直接将P2P通信技术(如WebRTC)应用于云桌面实例的串流将会存在如下问题:If the P2P communication technology (such as WebRTC) is directly applied to the streaming of the cloud desktop instance, the following problems will exist:
1)如何进行用户身份的鉴权,防止非法用户获得不属于其自身的实例桌面;1) How to perform user identity authentication to prevent illegal users from obtaining instance desktops that do not belong to them;
2)如果连接桌面的客户端与服务端之间需要建立公网连接,则单个云桌面实例将占用一个公网IP地址,在大规模部署的场景下,会消耗大量公网地址,增加客户的成本;2) If a public network connection needs to be established between the client connected to the desktop and the server, a single cloud desktop instance will occupy a public network IP address. In a large-scale deployment scenario, a large number of public network addresses will be consumed, increasing the customer cost;
3)为了进行NAT穿透,需要独立部署STUN/TURN的服务。STUN服务基于UDP,存在DDOS的安全风险。3) In order to perform NAT penetration, STUN/TURN services need to be deployed independently. The STUN service is based on UDP, and there is a security risk of DDOS.
为了解决上述问题,本公开提出了一种用于云桌面的通信方法。In order to solve the above problems, the present disclosure proposes a communication method for cloud desktops.
图2示出了基于本公开的通信方法实现的用于云桌面的通信系统的架构示意图。Fig. 2 shows a schematic diagram of the architecture of a communication system for cloud desktops implemented based on the communication method of the present disclosure.
下面结合图2描述本公开的通信方法。The communication method of the present disclosure is described below with reference to FIG. 2 .
如图2所示,可以基于云资源构建用于为客户端提供云桌面实例的服务端。As shown in Figure 2, a server for providing a cloud desktop instance to a client may be constructed based on cloud resources.
云资源是指云上资源(云上计算资源),具体可以是公有云计算资源,也可以是私有云计算资源或混合云计算资源。服务端与客户端之间可以是一一对应关系,即单个服务端用于为特定客户端提供云桌面实例。服务端与客户端构成一套云桌面产品。Cloud resources refer to resources on the cloud (computing resources on the cloud), which may specifically be public cloud computing resources, private cloud computing resources or hybrid cloud computing resources. There can be a one-to-one correspondence between the server and the client, that is, a single server is used to provide a cloud desktop instance for a specific client. The server and client constitute a set of cloud desktop products.
通过将服务端部署(集成)在云资源中,使得可以利用云资源中的其他相关资源为客户端与服务端之间的通信提供支持,以解决上述问题。By deploying (integrating) the server in the cloud resource, other related resources in the cloud resource can be used to provide support for the communication between the client and the server, so as to solve the above problems.
具体而言,针对上述第一点问题,可以利用云资源中的鉴权服务(鉴权机制,比如公 有云中开放式接口openAPI的AK/SK机制)对用户身份(即客户端身份)进行鉴权,并为合法用户(即合法客户端)颁发访问令牌,如此可以解决上述第一点问题。Specifically, for the first point above, you can use authentication services in cloud resources (authentication mechanisms, such as public The AK/SK mechanism of the open interface openAPI in the cloud) authenticates the user identity (that is, the client identity) and issues an access token for the legitimate user (that is, the legitimate client), which can solve the first problem above.
针对上述第二点问题,可以利用云资源中的NAT网关(如公有云NAT网关)为多个云桌面实例(即多个服务端)提供网络地址转换服务,使得多个云桌面实例可以共用一个公网地址,节省公网地址,降低客户成本,如此可以解决上述第二点问题。For the second point above, you can use the NAT gateway in the cloud resources (such as the public cloud NAT gateway) to provide network address translation services for multiple cloud desktop instances (that is, multiple servers), so that multiple cloud desktop instances can share one Public network addresses save public network addresses and reduce customer costs, which can solve the second problem above.
针对上述第三点问题,由于桌面串流场景下总是由客户端主动连接服务端,使得无需学习客户端本地网络的NAT映射;由于为云桌面实例提供网络地址转换服务的NAT网关属于云资源,使得客户端连接服务端所需的DNAT(Destination Network Address Translation,目的网络地址转换)映射信息可以通过多种途径(例如openAPI)被客户端感知,客户端感知到的DNAT映射信息又可以反过来传递给服务端,使得服务端也无需学习自身的NAT映射。因此不需要部署STUN/TURN服务,即可完成NAT穿透,从而可以解决上述第三点问题。For the above third problem, since the client always actively connects to the server in the desktop streaming scenario, there is no need to learn the NAT mapping of the client's local network; because the NAT gateway that provides network address translation services for cloud desktop instances belongs to cloud resources , so that the DNAT (Destination Network Address Translation) mapping information required by the client to connect to the server can be perceived by the client through various channels (such as openAPI), and the DNAT mapping information perceived by the client can be reversed Pass it to the server, so that the server does not need to learn its own NAT mapping. Therefore, NAT penetration can be completed without deploying STUN/TURN services, thus solving the third problem above.
下面就本公开涉及的细节做进一步详细说明。The details involved in the present disclosure will be further described in detail below.
访问令牌access token
客户端可以向鉴权服务发送针对云桌面实例的访问请求。该访问请求可以通过带外网络(非直接连接云桌面实例的网络)发送给鉴权服务。即,该访问请求不会通过与服务端关联的NAT网关,但可能通过客户端本地NAT网关,发送给鉴权服务。The client can send an access request for the cloud desktop instance to the authentication service. The access request can be sent to the authentication service through an out-of-band network (a network not directly connected to the cloud desktop instance). That is, the access request will not pass through the NAT gateway associated with the server, but may be sent to the authentication service through the local NAT gateway of the client.
响应于接收到访问请求,鉴权服务可以对客户端的身份合法性进行校验。例如可以校验客户端身份是否与请求访问的云桌面实例相匹配,以判断客户端是否拥有其请求访问的云桌面实例的访问权限。In response to receiving the access request, the authentication service can verify the legality of the identity of the client. For example, it can be checked whether the identity of the client matches the requested cloud desktop instance to determine whether the client has access rights to the requested cloud desktop instance.
若校验结果为客户端的身份合法,则可以由鉴权服务生成客户端的访问令牌;反之,若校验结果为客户端的身份不合法,则可以结束鉴权流程,不生成访问令牌。If the verification result shows that the client's identity is legal, the authentication service can generate the client's access token; otherwise, if the verification result shows that the client's identity is not legal, the authentication process can be ended without generating an access token.
在将访问令牌发送给客户端之前,可以由鉴权服务生成密钥对,密钥对包括公钥和私钥。可以将公钥发送到与云桌面实例对应的信令服务,并使用私钥对访问令牌进行签名。由此,可以将签名后的访问令牌发送给客户端。Before sending the access token to the client, the authentication service can generate a key pair, which includes a public key and a private key. The public key can be sent to the signaling service corresponding to the cloud desktop instance, and the private key is used to sign the access token. From this, a signed access token can be sent to the client.
DNAT映射信息DNAT mapping information
通过将NAT网关上的公网地址(如IP地址+端口号)映射给服务端(也即云桌面实例)使用,使服务端能够通过该公网地址提供互联网服务。DNAT映射信息用于表征服务端的私网地址(如第一IP地址和第一端口号)与NAT网关的公网地址(如第二IP地址和第二端口号)之间的映射关系。此处述及的NAT网关是指位于云资源中的与服务端关联的网关。该NAT网关可以绑定一个或多个公网地址(如可以是弹性公网IP)。By mapping the public network address (such as IP address + port number) on the NAT gateway to the server (that is, the cloud desktop instance), the server can provide Internet services through the public network address. The DNAT mapping information is used to characterize the mapping relationship between the private network address of the server (such as the first IP address and the first port number) and the public network address of the NAT gateway (such as the second IP address and the second port number). The NAT gateway mentioned here refers to the gateway associated with the server located in the cloud resource. The NAT gateway can be bound to one or more public network addresses (for example, it can be an elastic public network IP).
DNAT映射信息与访问令牌可以一起发送给客户端,也可以分开发送给客户端。The DNAT mapping information and the access token can be sent to the client together or separately.
在将DNAT映射信息发送给客户端时,可以是主动下发给客户端,也可以是由客户端通过主动查询的方式从云资源获取DNAT映射信息。When the DNAT mapping information is sent to the client, it may be sent to the client actively, or the client may obtain the DNAT mapping information from the cloud resource through an active query.
在一个实施例中,可以创建(提供)资源管理装置,资源管理装置用于为客户端提供 资源管理服务。可以将访问令牌和/或DNAT映射信息发送给资源管理装置,由资源管理装置将所述访问令牌和/或DNAT映射信息发送给客户端。In one embodiment, a resource management device can be created (provided) for providing clients with Resource management services. The access token and/or DNAT mapping information may be sent to the resource management device, and the resource management device sends the access token and/or DNAT mapping information to the client.
在另一个实施例中,也可以提供开放式接口(openAPI),如可以基于云资源生成开放式接口,开放式接口用于提供DNAT映射信息查询服务。由此,可以响应于接收到客户端通过开放式接口发送的DNAT映射查询请求,将DNAT映射信息发送给客户端。其中,客户端还可以通过开放式接口对服务端的DNAT映射进行配置。In another embodiment, an open interface (openAPI) may also be provided, for example, an open interface may be generated based on cloud resources, and the open interface is used to provide DNAT mapping information query service. Thus, in response to receiving the DNAT mapping query request sent by the client through the open interface, the DNAT mapping information can be sent to the client. Among them, the client can also configure the DNAT mapping of the server through an open interface.
信令流程Signaling process
信令服务可以部署在云资源中。例如,可以在云资源中部署与云桌面实例对应的信令服务,以在云桌面实例层面对信令服务进行定制。再例如,信令服务也可以集中部署,即信令服务可以被多个云桌面实例共享,以为多个云桌面实例服务。Signaling services can be deployed in cloud resources. For example, the signaling service corresponding to the cloud desktop instance can be deployed in the cloud resource, so as to customize the signaling service at the cloud desktop instance level. For another example, the signaling service can also be deployed centrally, that is, the signaling service can be shared by multiple cloud desktop instances to serve multiple cloud desktop instances.
响应于客户端基于DNAT映射信息和访问令牌针对信令服务发起的信令流程,由信令服务基于公钥对访问令牌的合法性进行校验。In response to the signaling process initiated by the client for the signaling service based on the DNAT mapping information and the access token, the signaling service verifies the legitimacy of the access token based on the public key.
若校验结果为访问令牌合法,则可以通过信令服务将DNAT映射信息传递给服务端,并执行信令流程,以对客户端与服务端之间进行连接所涉及的参数进行协商。若校验结果为访问令牌不合法,则可以结束信令流程。If the verification result shows that the access token is valid, the DNAT mapping information can be transmitted to the server through the signaling service, and the signaling process is executed to negotiate the parameters involved in the connection between the client and the server. If the verification result is that the access token is invalid, the signaling process can be ended.
在信令流程执行完毕之后,客户端可以发起针对服务端的访问请求(即连接请求)。响应于客户端的访问请求,服务端可以将云桌面实例数据发送给客户端,并且/或者获取客户端发送的针对云桌面实例的操作数据和/或本地采集数据。After the signaling process is executed, the client can initiate an access request (ie, a connection request) for the server. In response to the client's access request, the server can send the cloud desktop instance data to the client, and/or obtain the operation data and/or local collection data sent by the client for the cloud desktop instance.
至此结合图2描述了本公开的通信方法的原理及实现流程。下面以云资源为公有云为例,对本公开做进一步示例性说明。So far, the principle and implementation process of the communication method of the present disclosure have been described with reference to FIG. 2 . In the following, the present disclosure will be further illustrated by taking the cloud resource as a public cloud as an example.
图3示出了根据本公开一个实施例的基于WebRTC的桌面串流系统的架构示意图。FIG. 3 shows a schematic diagram of the architecture of a WebRTC-based desktop streaming system according to an embodiment of the present disclosure.
如图3所示,基于WebRTC的桌面串流系统主要包含WebRTC服务端、鉴权服务、公有云NAT网关、资源管理服务、信令服务、网络管控模块以及WebRTC客户端。As shown in Figure 3, the WebRTC-based desktop streaming system mainly includes WebRTC server, authentication service, public cloud NAT gateway, resource management service, signaling service, network management and control module, and WebRTC client.
WebRTC服务端集成在公有云中,对外提供对等连接,以及桌面的串流。信令服务与WebRTC服务端可以集成在一个云桌面实例中。这种分实例部署的好处是信令服务可以在实例层面进行定制,但是缺点是会浪费一些部署资源。因此,也可以将信令服务集中部署,对所有的云桌面实例(即不同的WebRTC服务端)共享。The WebRTC server is integrated in the public cloud and provides peer-to-peer connections and desktop streaming. Signaling service and WebRTC server can be integrated in one cloud desktop instance. The advantage of this sub-instance deployment is that the signaling service can be customized at the instance level, but the disadvantage is that some deployment resources will be wasted. Therefore, the signaling service can also be deployed centrally and shared with all cloud desktop instances (that is, different WebRTC servers).
在发起WebRTC连接前,鉴权服务需要对连接者的身份进行鉴权,只有合法的用户才允许对WebRTC服务端进行信令以及对等连接。系统架构可以依托已有公有云的鉴权机制(比如openAPI的AK/SK机制),并对合法用户颁发访问令牌。在WebRTC的信令流程中,会对用户的访问令牌进行校验,并对持非法令牌的连接请求进行拒绝。Before initiating a WebRTC connection, the authentication service needs to authenticate the identity of the connecter, and only legal users are allowed to perform signaling and peer-to-peer connections to the WebRTC server. The system architecture can rely on existing public cloud authentication mechanisms (such as the AK/SK mechanism of openAPI), and issue access tokens to legitimate users. In the signaling process of WebRTC, the user's access token is verified, and the connection request with an illegal token is rejected.
在WebRTC的客户端与WebRTC服务端之间,可能存在NAT网关。在公有云侧,公有云NAT网关能节省大量的公网IP地址,对节省用户成本有很大的好处;同时由于公有云NAT网关是标准的云产品,用户可以通过openAPI的方式直接对其进行NAT映射配置,并查询获取已有的配置。 There may be a NAT gateway between the WebRTC client and the WebRTC server. On the public cloud side, the public cloud NAT gateway can save a large number of public network IP addresses, which is of great benefit to saving user costs; at the same time, since the public cloud NAT gateway is a standard cloud product, users can directly implement it through openAPI. NAT mapping configuration, and query to obtain the existing configuration.
资源管理服务是客户为管理自身在公有云上的资源而搭建的服务。通过资源管理服务,客户可以在访问云桌面实例之前进行鉴权,同时获得连接所需要的DNAT映射信息。资源管理服务可以与WebRTC客户端集成在一起,也可以独立于WebRTC客户端部署。The resource management service is a service built by customers to manage their own resources on the public cloud. Through the resource management service, customers can perform authentication before accessing the cloud desktop instance, and at the same time obtain the DNAT mapping information required for the connection. Resource management services can be integrated with WebRTC clients or deployed independently of WebRTC clients.
WebRTC客户端可以从资源管理服务获取DNAT映射配置(即DNAT映射信息),若资源管理服务中不存在DNAT映射,则资源管理服务可以从网络管控模块获取DNAT映射配置。其中,网络管控模块在发送DNAT映射配置之前,可以对客户端身份进行校验,校验通过则将DNAT映射配置发送给资源管理服务,经由资源管理服务下发给客户端。The WebRTC client can obtain the DNAT mapping configuration (that is, DNAT mapping information) from the resource management service. If there is no DNAT mapping in the resource management service, the resource management service can obtain the DNAT mapping configuration from the network management and control module. Among them, the network management and control module can verify the identity of the client before sending the DNAT mapping configuration. If the verification is passed, the DNAT mapping configuration is sent to the resource management service, and then sent to the client via the resource management service.
WebRTC客户端是信令流程以及对等连接的发起者。一般情况下,在访问远程桌面之前,客户端收发的报文也可能通过本地的NAT网关。The WebRTC client is the initiator of the signaling process as well as the peer-to-peer connection. Generally, before accessing the remote desktop, the packets sent and received by the client may pass through the local NAT gateway.
图4示出了根据本公开一个实施例的客户端访问云桌面实例的访问流程示意图。Fig. 4 shows a schematic diagram of an access process for a client to access a cloud desktop instance according to an embodiment of the present disclosure.
如图4所示,访问流程主要包括鉴权流程、信令流程以及桌面连接流程。As shown in Figure 4, the access process mainly includes an authentication process, a signaling process, and a desktop connection process.
鉴权流程Authentication process
鉴权流程不通过公有云NAT网关,但可以通过WebRTC客户端的本地NAT网关。The authentication process does not pass through the public cloud NAT gateway, but can pass through the local NAT gateway of the WebRTC client.
WebRTC客户端可以通过带外网络(非直连实例网络)发起实例连接请求(对应于上文述及的访问请求)。实例连接请求可以经由本地NAT网关、资源管理服务发送给鉴权服务。鉴权服务首先可以对客户端的身份合法性进行校验,在校验身份合法后,鉴权服务可以准备后续的WebRTC信令鉴权。The WebRTC client can initiate an instance connection request (corresponding to the access request mentioned above) through the out-of-band network (not directly connected to the instance network). The instance connection request can be sent to the authentication service via the local NAT gateway or the resource management service. The authentication service can first verify the legality of the client's identity, and after verifying that the identity is legal, the authentication service can prepare for subsequent WebRTC signaling authentication.
资源管理服务可以将DNAT映射和访问令牌一起发送给WebRTC客户端。其中,若资源管理服务不存在WebRTC客户端所请求连接的实例的DNAT映射,则资源管理服务可以从公有云NAT网关获取DNAT映射配置,例如可以从与公有云NAT网关连接的网络管控模块获取DNAT映射配置。The resource management service can send the DNAT map to the WebRTC client along with the access token. Among them, if the resource management service does not have the DNAT mapping of the instance requested by the WebRTC client, the resource management service can obtain the DNAT mapping configuration from the public cloud NAT gateway, for example, the DNAT can be obtained from the network management and control module connected to the public cloud NAT gateway Mapping configuration.
图4中示出的步骤1至10为鉴权流程。Steps 1 to 10 shown in FIG. 4 are the authentication process.
在步骤1,WebRTC客户端将实例连接请求发送给本地NAT网关。In step 1, the WebRTC client sends the instance connection request to the local NAT gateway.
在步骤2,本地NAT网关将实例连接请求发送给资源管理服务。In step 2, the local NAT gateway sends the instance connection request to the resource management service.
在步骤3,资源管理服务将实例连接请求发送给鉴权服务。In step 3, the resource management service sends the instance connection request to the authentication service.
在步骤4,鉴权服务在验证客户端身份合法后,生成公私密钥对,并将公钥下发到对对应云桌面实例的信令服务。In step 4, the authentication service generates a public-private key pair after verifying that the identity of the client is legal, and sends the public key to the signaling service corresponding to the cloud desktop instance.
在步骤5,信令服务将公钥下发成功消息返回给鉴权服务。In step 5, the signaling service returns a public key delivery success message to the authentication service.
在步骤6,鉴权服务生成具有时效性的访问令牌(token),用私钥签名,并返回给资源管理服务。In step 6, the authentication service generates a time-sensitive access token (token), signs it with a private key, and returns it to the resource management service.
在步骤7,如果资源管理服务中不存在与客户端对应的云桌面实例的DNAT映射,则资源管理服务可以对公有云NAT网关进行DNAT映射配置,如可以通过openAPI的方式对公有云NAT网关进行NAT映射配置。In step 7, if there is no DNAT mapping of the cloud desktop instance corresponding to the client in the resource management service, the resource management service can perform DNAT mapping configuration on the public cloud NAT gateway, for example, the public cloud NAT gateway can be configured through openAPI NAT mapping configuration.
在步骤8,公有云NAT网关向资源管理服务发送配置成功消息。In step 8, the public cloud NAT gateway sends a configuration success message to the resource management service.
在步骤9,资源管理服务将访问令牌和DNAT映射信息发送给本地NAT网关。 In step 9, the resource management service sends the access token and DNAT mapping information to the local NAT gateway.
在步骤10,本地NAT网关将访问令牌和DNAT映射信息发送给WebRTC客户端。In step 10, the local NAT gateway sends the access token and DNAT mapping information to the WebRTC client.
信令流程Signaling process
在信令服务与WebRTC服务端集成在一个云桌面实例中的情况下,信令流程可以通过本地NAT网关和公有云NAT网关发送到信令服务。When the signaling service and the WebRTC server are integrated in a cloud desktop instance, the signaling process can be sent to the signaling service through the local NAT gateway and the public cloud NAT gateway.
WebRTC客户端在获得访问令牌之后,向信令服务发起信令流程,整个过程基本遵从标准的WebRTC信令流程,不同的是在标准信令流程开始之前,信令服务会利用下发的公钥对访问令牌进行合法性校验,如果校验失败,则直接终止整个WebRTC连接。After the WebRTC client obtains the access token, it initiates a signaling process to the signaling service. The whole process basically follows the standard WebRTC signaling process. Key to verify the validity of the access token, if the verification fails, the entire WebRTC connection will be terminated directly.
在普通WebRTC系统中,通信双方均可能主动发起对等连接。不同于普通WebRTC系统,桌面串流系统总是由WebRTC客户端(即客户端用户)主动连接WebRTC服务端(云桌面实例),获取桌面。这主要体现在信令面和数据面两个方面。In an ordinary WebRTC system, both communicating parties may actively initiate a peer-to-peer connection. Different from ordinary WebRTC systems, desktop streaming systems always have WebRTC clients (client users) actively connect to WebRTC servers (cloud desktop instances) to obtain desktops. This is mainly reflected in two aspects of the signaling plane and the data plane.
在信令面是由客户端主动发起TCP(Transmission Control Protocol,传输控制协议)连接到云桌面实例的信令系统。在数据面是由客户端主动发起UDP连接到服务端,从远端(服务端)获取桌面或者推送本地视频(比如摄像头)到远端,同时通过SCTP over UDP(基于UDP的SCTP,SCTP是一种面向多媒体通信的流控制传输协议)发送本地外设(比如鼠标/键盘)等事件到远端。On the signaling side, the client actively initiates a TCP (Transmission Control Protocol) connection to the signaling system of the cloud desktop instance. On the data side, the client initiates a UDP connection to the server, obtains the desktop from the remote end (server) or pushes local video (such as a camera) to the remote end, and at the same time through SCTP over UDP (SCTP based on UDP, SCTP is a A stream control transmission protocol oriented to multimedia communication) sends events such as local peripherals (such as mouse/keyboard) to the remote end.
有鉴于此,WebRTC客户端只需要获取WebRTC服务端的DNAT映射,而无需学习本地网络的NAT映射,就可以完成NAT穿透。In view of this, the WebRTC client only needs to obtain the DNAT mapping of the WebRTC server without learning the NAT mapping of the local network to complete NAT penetration.
对于DNAT映射信息的维护,可能有两种方法:1)可以由资源管理服务维护所有配置的DNAT映射信息,客户端直接向资源管理服务进行查询获取(图3、图4所示);2)客户端可以直接通过openAPI的方式对公有云NAT网关进行DNAT映射查询。For the maintenance of DNAT mapping information, there may be two methods: 1) All configured DNAT mapping information can be maintained by the resource management service, and the client can directly query and obtain the resource management service (as shown in Figure 3 and Figure 4); 2) Clients can query the public cloud NAT gateway for DNAT mapping directly through openAPI.
在获得DNAT映射后,一方面,客户端可以用其直接发起信令流程,即向信令服务发起TCP连接;另一方面,客户端可以通过信令流程将DNAT映射传递给服务端,并通过后续的标准ICE流程交换到客户端发起对等连接。After obtaining the DNAT mapping, on the one hand, the client can use it to directly initiate the signaling process, that is, initiate a TCP connection to the signaling service; on the other hand, the client can pass the DNAT mapping to the server through the signaling process, and pass Subsequent standard ICE procedures switch to the client to initiate a peer-to-peer connection.
由此,信令流程可以包括ICE流程。在ICE流程中,WebRTC服务端可以按照现有机制交换其在NAT之后的公网地址(如IP地址和端口号)。WebRTC服务端在NAT之后的公网地址可以在信令流程由WebRTC客户端传递到WebRTC服务端。Thus, the signaling procedure may include the ICE procedure. In the ICE process, the WebRTC server can exchange its public network address (such as IP address and port number) behind NAT according to the existing mechanism. The public network address of the WebRTC server behind NAT can be passed from the WebRTC client to the WebRTC server in the signaling process.
由于桌面串流系统中,总是WebRTC客户端主动连接WebRTC服务端,所以在ICE流程中,WebRTC客户端可以不将其在本地NAT之后的公网地址(如IP地址和端口号)交换给WebRTC服务端。Since in the desktop streaming system, the WebRTC client always actively connects to the WebRTC server, so in the ICE process, the WebRTC client may not exchange its public network address (such as IP address and port number) behind the local NAT to WebRTC Server.
由此,在不搭建STUN/TURN服务的情况下,也能实现NAT穿透。As a result, NAT penetration can also be achieved without setting up STUN/TURN services.
图4中示出的步骤11至18为信令流程。Steps 11 to 18 shown in FIG. 4 are signaling procedures.
在步骤11至13,WebRTC客户端将信令连接请求经由本地NAT网关、公有云NAT网关发送给信令服务。In steps 11 to 13, the WebRTC client sends the signaling connection request to the signaling service via the local NAT gateway or the public cloud NAT gateway.
在步骤14至16,信令服务经由公有云NAT网关、本地NAT网关将连接成功消息发送给WebRTC客户端。 In steps 14 to 16, the signaling service sends a connection success message to the WebRTC client via the public cloud NAT gateway and the local NAT gateway.
在步骤17,在WebRTC客户端与信令服务之间可以交换其他信令。At step 17, other signaling may be exchanged between the WebRTC client and the signaling service.
在步骤18,在WebRTC客户端与信令服务之间可以执行ICE流程。In step 18, an ICE procedure may be performed between the WebRTC client and the signaling service.
图4中示出的步骤19为桌面连接流程。Step 19 shown in FIG. 4 is a desktop connection process.
在桌面连接流程,WebRTC客户端与WebRTC服务端可以分别是UDP客户端和UDP服务端。即,WebRTC客户端与WebRTC服务端之间可以利用UDP进行通信。In the desktop connection process, the WebRTC client and WebRTC server can be UDP client and UDP server respectively. That is, UDP can be used for communication between the WebRTC client and the WebRTC server.
在桌面连接流程中,WebRTC客户端可以将针对云桌面实例的操作数据和/或本地采集数据发送给WebRTC服务端。响应于WebRTC客户端发送的云桌面实例访问请求,WebRTC服务端可以将云桌面实例数据发送给客户端。During the desktop connection process, the WebRTC client can send the operation data and/or local collection data for the cloud desktop instance to the WebRTC server. In response to the cloud desktop instance access request sent by the WebRTC client, the WebRTC server can send the cloud desktop instance data to the client.
综上,本公开的基于WebRTC的云实例桌面串流系统,通过与公有云深度融合,可以具备轻量,安全以及无需搭建STUN/TURN服务等优点。To sum up, the WebRTC-based cloud instance desktop streaming system of the present disclosure, through deep integration with the public cloud, can have the advantages of light weight, security, and no need to build STUN/TURN services.
具体而言,本公开可以依托公有云的鉴权体系,进行用户身份鉴权,并对合法用户颁发访问令牌,进行WebRTC连接;对公网串流场景,在WebRTC客户端与服务端之间设立公网NAT网关,以大量节省公网IP地址,降低客户成本;由于公网NAT网关也是公有云的产品,其NAT映射可以被用户获取,同时由于在桌面串流系统中,信令面的TCP连接,以及数据面的UDP连接总是由WebRTC客户端发起,因此可以在不搭建STUN/TURN服务的情况下,也能进行NAT穿透。Specifically, this disclosure can rely on the authentication system of the public cloud to perform user identity authentication, issue access tokens to legitimate users, and perform WebRTC connections; for public network streaming scenarios, between the WebRTC client and the server Set up a public network NAT gateway to save a lot of public network IP addresses and reduce customer costs; because the public network NAT gateway is also a product of the public cloud, its NAT mapping can be obtained by users, and because in the desktop streaming system, the signaling plane TCP connections and UDP connections on the data plane are always initiated by the WebRTC client, so NAT penetration can be performed without setting up STUN/TURN services.
本公开的通信方法还可以实现为一种通信系统。The communication method of the present disclosure can also be implemented as a communication system.
通信系统可以包括客户端、基于云资源构建的服务端、鉴权装置以及NAT网关。服务端用于为客户端提供云桌面实例。鉴权装置用于为客户端提供鉴权服务,以判断客户端是否具有云桌面实例的访问权限。鉴权装置可以是基于云资源构建的,例如鉴权装置可以由云资源提供。The communication system may include a client, a server based on cloud resources, an authentication device, and a NAT gateway. The server is used to provide cloud desktop instances to clients. The authentication device is used to provide authentication service for the client to determine whether the client has the access authority of the cloud desktop instance. The authentication device may be constructed based on cloud resources, for example, the authentication device may be provided by cloud resources.
NAT网关用于为云桌面实例提供网络地址转换服务。NAT网关位于云端,如可以是指公有云NAT网关。The NAT gateway is used to provide network address translation services for cloud desktop instances. The NAT gateway is located in the cloud, such as a public cloud NAT gateway.
客户端可以首先获取访问令牌和DNAT映射信息,然后可以基于访问令牌和所述DNAT映射信息与服务端建立连接。客户端可以通过多种方式获取访问令牌和DNAT映射信息。例如,鉴权装置可以直接将访问令牌下发给客户端,至于DNAT映射信息则可以由客户端通过开放式接口主动查询。The client may first obtain the access token and DNAT mapping information, and then establish a connection with the server based on the access token and the DNAT mapping information. Clients can obtain access token and DNAT mapping information in various ways. For example, the authentication device can directly issue the access token to the client, and the client can actively query the DNAT mapping information through an open interface.
作为示例,通信系统还可以包括资源管理装置。资源管理装置是针对客户端创建的,用于为客户端提供资源管理服务,以管理客户在云上(如公有云上)的资源。资源管理装置可以部署在客户端上,也可以独立于客户端部署。As an example, the communication system may also include resource management means. The resource management apparatus is created for the client, and is used to provide the resource management service for the client, so as to manage the resources of the client on the cloud (such as on the public cloud). The resource management device can be deployed on the client, or can be deployed independently of the client.
资源管理装置可以获取访问令牌和DNAT映射信息,并将访问令牌和DNAT映射信息发送给户端,以便客户端基于访问令牌和DNAT映射信息与服务端建立连接,以访问云桌面实例。资源管理装置可以从鉴权装置获取访问令牌。The resource management device can obtain the access token and DNAT mapping information, and send the access token and DNAT mapping information to the client, so that the client can establish a connection with the server based on the access token and DNAT mapping information to access the cloud desktop instance. The resource management device may obtain the access token from the authentication device.
作为示例,通信系统还可以包括网络管理装置,网络管理装置用于确定DNAT映射信息,并将DNAT映射信息发送给所述资源管理装置,或者通信系统还可以包括开放式接口, 开放式接口用于提供DNAT查询服务。资源管理装置或客户端可以通过开放式接口获取DNAT映射信息。例如,客户端可以通过开放式接口获取DNAT映射信息,并将获取到的DNAT映射信息发送给资源管理装置进行保管。As an example, the communication system may also include a network management device, the network management device is used to determine the DNAT mapping information, and send the DNAT mapping information to the resource management device, or the communication system may also include an open interface, The open interface is used to provide DNAT query service. The resource management device or the client can obtain the DNAT mapping information through an open interface. For example, the client can acquire DNAT mapping information through an open interface, and send the acquired DNAT mapping information to the resource management device for storage.
图5示出了根据本公开一实施例可用于实现上述通信方法的计算设备的结构示意图。Fig. 5 shows a schematic structural diagram of a computing device that can be used to implement the above communication method according to an embodiment of the present disclosure.
参见图5,计算设备500包括存储器510和处理器520。Referring to FIG. 5 , a computing device 500 includes a memory 510 and a processor 520 .
处理器520可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器520可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器520可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。The processor 520 may be a multi-core processor, or may include multiple processors. In some embodiments, the processor 520 may include a general-purpose main processor and one or more special co-processors, such as a graphics processing unit (GPU), a digital signal processor (DSP), and the like. In some embodiments, the processor 520 may be implemented using a customized circuit, such as an application specific integrated circuit (ASIC, Application Specific Integrated Circuit) or a field programmable logic gate array (FPGA, Field Programmable Gate Arrays).
存储器510可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器520或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器510可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器510可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。The memory 510 may include various types of storage units, such as system memory, read only memory (ROM), and persistent storage. Wherein, the ROM can store static data or instructions required by the processor 520 or other modules of the computer. The persistent storage device may be a readable and writable storage device. Persistent storage may be a non-volatile storage device that does not lose stored instructions and data even if the computer is powered off. In some embodiments, the permanent storage device adopts a mass storage device (such as a magnetic or optical disk, flash memory) as the permanent storage device. In some other implementations, the permanent storage device may be a removable storage device (such as a floppy disk, an optical drive). The system memory can be a readable and writable storage device or a volatile readable and writable storage device, such as dynamic random access memory. System memory can store some or all of the instructions and data that the processor needs at runtime. In addition, memory 510 may include any combination of computer-readable storage media, including various types of semiconductor memory chips (DRAM, SRAM, SDRAM, flash memory, programmable read-only memory), magnetic disks and/or optical disks may also be used. In some embodiments, memory 510 may include a readable and/or writable removable storage device, such as a compact disc (CD), a read-only digital versatile disc (e.g., DVD-ROM, dual-layer DVD-ROM), Read-Only Blu-ray Disc, Super Density Disc, Flash memory card (such as SD card, min SD card, Micro-SD card, etc.), magnetic floppy disk, etc. Computer-readable storage media do not contain carrier waves and transient electronic signals transmitted by wireless or wire.
存储器510上存储有可执行代码,当可执行代码被处理器520处理时,可以使处理器520执行上文述及的通信方法。Executable codes are stored in the memory 510 , and when the executable codes are processed by the processor 520 , the processor 520 can be made to execute the communication method mentioned above.
上文中已经参考附图详细描述了根据本公开的通信方法、系统及计算设备。The communication method, system and computing device according to the present disclosure have been described in detail above with reference to the accompanying drawings.
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。In addition, the method according to the present invention can also be realized as a computer program or computer program product, the computer program or computer program product including computer program code instructions for executing the above-mentioned steps defined in the above-mentioned method of the present invention.
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。Alternatively, the present invention can also be implemented as a non-transitory machine-readable storage medium (or computer-readable storage medium, or machine-readable storage medium), on which executable code (or computer program, or computer instruction code is stored) ), when the executable code (or computer program, or computer instruction code) is executed by the processor of the electronic device (or computing device, server, etc.), causing the processor to perform the steps of the above method according to the present invention .
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、 电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。Those skilled in the art will also appreciate that the various exemplary logical blocks, modules, Circuitry and algorithm steps can be implemented as electronic hardware, computer software, or a combination of both.
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems and methods according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, program segment, or part of code that includes one or more Executable instructions. It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved. It should also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by a dedicated hardware-based system that performs the specified functions or operations , or may be implemented by a combination of dedicated hardware and computer instructions.
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。 Having described various embodiments of the present invention, the foregoing description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and alterations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principle of each embodiment, practical application or improvement of technology in the market, or to enable other ordinary skilled in the art to understand each embodiment disclosed herein.

Claims (13)

  1. 一种用于云桌面的通信方法,其中,用于为客户端提供云桌面实例的服务端是基于云资源构建的,该方法包括:A communication method for cloud desktops, wherein the server for providing cloud desktop instances to clients is constructed based on cloud resources, the method comprising:
    利用云资源中的鉴权服务生成客户端的访问令牌;Use the authentication service in the cloud resource to generate the client's access token;
    确定DNAT映射信息,所述DNAT映射信息用于表征所述服务端的私网地址与云资源中与所述服务端关联的NAT网关的公网地址之间的映射关系;Determine DNAT mapping information, where the DNAT mapping information is used to characterize the mapping relationship between the private network address of the server and the public network address of the NAT gateway associated with the server in the cloud resource;
    将所述访问令牌和所述DNAT映射信息发送给所述客户端,以便所述客户端基于所述访问令牌和所述DNAT映射信息与所述服务端建立连接,以访问所述云桌面实例。Send the access token and the DNAT mapping information to the client, so that the client establishes a connection with the server based on the access token and the DNAT mapping information to access the cloud desktop instance.
  2. 根据权利要求1所述的方法,还包括:The method according to claim 1, further comprising:
    提供资源管理装置,所述资源管理装置用于为所述客户端提供资源管理服务,providing a resource management device, the resource management device is used to provide resource management services for the client,
    其中,将所述访问令牌和所述DNAT映射信息发送给所述客户端的步骤包括:将所述访问令牌和/或所述DNAT映射信息发送给所述资源管理装置,由所述资源管理装置将所述访问令牌和/或所述DNAT映射信息发送给所述客户端。Wherein, the step of sending the access token and the DNAT mapping information to the client includes: sending the access token and/or the DNAT mapping information to the resource management device, and the resource management The device sends the access token and/or the DNAT mapping information to the client.
  3. 根据权利要求1所述的方法,还包括:The method according to claim 1, further comprising:
    提供开放式接口,所述开放式接口用于提供DNAT映射信息查询服务,Provide an open interface, the open interface is used to provide DNAT mapping information query service,
    其中,将所述访问令牌和所述DNAT映射信息发送给所述客户端的步骤包括:响应于接收到所述客户端通过所述开放式接口发送的DNAT映射查询请求,将所述DNAT映射信息发送给所述客户端。Wherein, the step of sending the access token and the DNAT mapping information to the client includes: in response to receiving the DNAT mapping query request sent by the client through the open interface, sending the DNAT mapping information to sent to the client.
  4. 根据权利要求1所述的方法,其中,利用云资源中的鉴权服务生成客户端的访问令牌的步骤包括:The method according to claim 1, wherein the step of using the authentication service in the cloud resource to generate the client's access token comprises:
    响应于接收到客户端发送的针对云桌面实例的访问请求,由云资源中的鉴权服务对所述客户端的身份合法性进行校验;In response to receiving the access request sent by the client for the cloud desktop instance, the identity legality of the client is verified by the authentication service in the cloud resource;
    若校验结果为所述客户端的身份合法,则生成访问令牌。If the verification result is that the identity of the client is legal, an access token is generated.
  5. 根据权利要求1所述的方法,其中,在将所述访问令牌发送给所述客户端之前,该方法还包括:The method according to claim 1, wherein, before sending the access token to the client, the method further comprises:
    由所述鉴权服务生成密钥对,所述密钥对包括公钥和私钥;generating a key pair by the authentication service, the key pair including a public key and a private key;
    将所述公钥发送到与所述云桌面实例对应的信令服务;Send the public key to the signaling service corresponding to the cloud desktop instance;
    使用私钥对所述访问令牌进行签名,Sign said access token with the private key,
    其中,将所述访问令牌和所述DNAT映射信息发送给所述客户端的步骤包括:将签名后的访问令牌发送给所述客户端。 Wherein, the step of sending the access token and the DNAT mapping information to the client includes: sending the signed access token to the client.
  6. 根据权利要求5所述的方法,还包括:The method according to claim 5, further comprising:
    响应于所述客户端基于所述DNAT映射信息和所述访问令牌针对信令服务发起的信令流程,由所述信令服务基于所述公钥对所述访问令牌的合法性进行校验;In response to the signaling process initiated by the client for the signaling service based on the DNAT mapping information and the access token, the signaling service verifies the validity of the access token based on the public key test;
    若校验结果为所述访问令牌合法,则通过所述信令服务将所述DNAT映射信息传递给所述服务端,并执行信令流程,以对所述客户端与所述服务端之间进行连接所涉及的参数进行协商。If the verification result is that the access token is legal, the DNAT mapping information is transmitted to the server through the signaling service, and a signaling process is executed to verify the relationship between the client and the server. The parameters involved in the connection are negotiated.
  7. 根据权利要求6所述的方法,还包括:The method of claim 6, further comprising:
    在所述信令流程执行完毕之后,响应于所述客户端发起针对所述服务端的访问请求,所述服务端将云桌面实例数据发送给所述客户端,并且/或者获取所述客户端发送的针对所述云桌面实例的操作数据和/或本地采集数据。After the signaling process is executed, in response to the client initiating an access request for the server, the server sends cloud desktop instance data to the client, and/or obtains the Operational data and/or local collection data for the cloud desktop instance.
  8. 一种用于云桌面的通信系统,包括:A communication system for cloud desktops, comprising:
    客户端;client;
    基于云资源构建的服务端,用于为客户端提供云桌面实例;The server built based on cloud resources is used to provide cloud desktop instances for clients;
    鉴权装置,用于生成所述客户端的访问令牌;以及authentication means for generating an access token for the client; and
    NAT网关,用于为所述服务端提供网络地址转换服务,a NAT gateway, configured to provide network address translation services for the server,
    所述客户端获取所述访问令牌和DNAT映射信息,并基于所述访问令牌和所述DNAT映射信息与所述服务端建立连接,其中,所述DNAT映射信息用于表征所述服务端的私网地址与所述NAT网关的公网地址之间的映射关系。The client obtains the access token and DNAT mapping information, and establishes a connection with the server based on the access token and the DNAT mapping information, wherein the DNAT mapping information is used to characterize the The mapping relationship between the private network address and the public network address of the NAT gateway.
  9. 根据权利要求8所述的系统,还包括:The system of claim 8, further comprising:
    资源管理装置,所述资源管理装置用于获取所述访问令牌和DNAT映射信息,并将所述访问令牌和所述DNAT映射信息发送给所述客户端。A resource management device, configured to obtain the access token and DNAT mapping information, and send the access token and the DNAT mapping information to the client.
  10. 根据权利要求9所述的通信系统,其中,The communication system according to claim 9, wherein,
    所述通信系统还包括网络管理装置,所述网络管理装置用于确定所述DNAT映射信息,并将所述DNAT映射信息发送给所述资源管理装置,或者The communication system further includes a network management device configured to determine the DNAT mapping information and send the DNAT mapping information to the resource management device, or
    所述通信系统还包括开放式接口,所述开放式接口用于提供DNAT查询服务,以便所述资源管理装置或所述客户端通过所述开放式接口获取所述DNAT映射信息。The communication system further includes an open interface, which is used to provide a DNAT query service, so that the resource management device or the client can obtain the DNAT mapping information through the open interface.
  11. 一种计算设备,包括:A computing device comprising:
    处理器;以及processor; and
    存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至7中任何一项所述的方法。 A memory on which executable code is stored, which, when executed by the processor, causes the processor to perform the method according to any one of claims 1 to 7.
  12. 一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任何一项所述的方法。A computer program product comprising executable codes, which, when executed by a processor of an electronic device, cause the processor to perform the method as claimed in any one of claims 1 to 7.
  13. 一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任何一项所述的方法。 A non-transitory machine-readable storage medium, on which executable code is stored, and when the executable code is executed by a processor of an electronic device, the processor can perform any one of claims 1 to 7 the method described.
PCT/CN2023/075653 2022-03-03 2023-02-13 Communication method and system for cloud desktop WO2023165321A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210209649.9A CN114915420B (en) 2022-03-03 2022-03-03 Communication method and system for cloud desktop
CN202210209649.9 2022-03-03

Publications (1)

Publication Number Publication Date
WO2023165321A1 true WO2023165321A1 (en) 2023-09-07

Family

ID=82762969

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/075653 WO2023165321A1 (en) 2022-03-03 2023-02-13 Communication method and system for cloud desktop

Country Status (2)

Country Link
CN (1) CN114915420B (en)
WO (1) WO2023165321A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114915420B (en) * 2022-03-03 2024-04-26 阿里巴巴(中国)有限公司 Communication method and system for cloud desktop
CN115426313B (en) * 2022-08-31 2023-08-18 中电云数智科技有限公司 NAT optimization device and method based on OVN virtual machine network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753930A (en) * 2015-03-17 2015-07-01 成都盛思睿信息技术有限公司 Cloud desktop management system based on security gateway and security access control method thereof
US20160132214A1 (en) * 2014-11-11 2016-05-12 Amazon Technologies, Inc. Application delivery agents on virtual desktop instances
CN112311855A (en) * 2020-09-30 2021-02-02 新华三大数据技术有限公司 Data transmission method and device
CN113395272A (en) * 2021-06-09 2021-09-14 广东省城乡规划设计研究院有限责任公司 Remote office system based on data security
CN114915420A (en) * 2022-03-03 2022-08-16 阿里巴巴(中国)有限公司 Communication method and system for cloud desktop

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8374188B2 (en) * 2008-06-24 2013-02-12 Microsoft Corporation Techniques to manage a relay server and a network address translator
US9292248B2 (en) * 2011-06-22 2016-03-22 Microsoft Technology Licensing, Llc Span out load balancing model
CN103581350B (en) * 2012-07-25 2017-03-01 中国电信股份有限公司 Cross over method, terminal, equipment and the system that NAT issues Internet service
US10129243B2 (en) * 2013-12-27 2018-11-13 Avaya Inc. Controlling access to traversal using relays around network address translation (TURN) servers using trusted single-use credentials
US10268492B2 (en) * 2014-05-20 2019-04-23 Amazon Technologies, Inc. Low latency connections to workspaces in a cloud computing environment
JP6771650B2 (en) * 2016-08-09 2020-10-21 華為技術有限公司Huawei Technologies Co.,Ltd. Methods, devices, and systems for virtual machines to access physical servers in cloud computing systems
CN107707622B (en) * 2017-08-30 2020-11-17 华为技术有限公司 Method and device for accessing desktop cloud virtual machine and desktop cloud controller
US10848423B1 (en) * 2018-09-26 2020-11-24 Amazon Technologies, Inc. Multi-account gateway
MX2021010333A (en) * 2019-02-28 2021-09-28 Arris Entpr Llc Method to anonymize client mac addresses for cloud reporting.
CN110061993B (en) * 2019-04-23 2022-06-24 新华三技术有限公司 Log generation method and device containing public network exit address and access equipment
CN111327720B (en) * 2020-02-21 2022-11-29 北京百度网讯科技有限公司 Network address conversion method, device, gateway equipment and storage medium
US11463258B2 (en) * 2020-03-13 2022-10-04 Ebay Inc. Secure token refresh
CN113949695A (en) * 2020-06-29 2022-01-18 中兴通讯股份有限公司 Method for accessing network, media gateway, electronic equipment and storage medium
CN112583599B (en) * 2020-11-26 2022-02-22 新华三大数据技术有限公司 Communication method and device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160132214A1 (en) * 2014-11-11 2016-05-12 Amazon Technologies, Inc. Application delivery agents on virtual desktop instances
CN104753930A (en) * 2015-03-17 2015-07-01 成都盛思睿信息技术有限公司 Cloud desktop management system based on security gateway and security access control method thereof
CN112311855A (en) * 2020-09-30 2021-02-02 新华三大数据技术有限公司 Data transmission method and device
CN113395272A (en) * 2021-06-09 2021-09-14 广东省城乡规划设计研究院有限责任公司 Remote office system based on data security
CN114915420A (en) * 2022-03-03 2022-08-16 阿里巴巴(中国)有限公司 Communication method and system for cloud desktop

Also Published As

Publication number Publication date
CN114915420A (en) 2022-08-16
CN114915420B (en) 2024-04-26

Similar Documents

Publication Publication Date Title
WO2023165321A1 (en) Communication method and system for cloud desktop
US10681131B2 (en) Source network address translation detection and dynamic tunnel creation
US11356417B2 (en) Private cloud routing server connection mechanism for use in a private communication architecture
US10701060B2 (en) Public key infrastructure exchange using netconf for Openflow enabled switches
US9135037B1 (en) Virtual network protocol
US10237253B2 (en) Private cloud routing server, private network service and smart device client architecture without utilizing a public cloud based routing server
US9203807B2 (en) Private cloud server and client architecture without utilizing a routing server
US11909712B2 (en) Network address translation for virtual machines
US7941549B2 (en) Protocol exchange and policy enforcement for a terminal server session
US20150288679A1 (en) Interposer with Security Assistant Key Escrow
US9781087B2 (en) Private and secure communication architecture without utilizing a public cloud based routing server
US8533343B1 (en) Virtual network pairs
US20110320821A1 (en) Federation among services for supporting virtual-network overlays
US9935930B2 (en) Private and secure communication architecture without utilizing a public cloud based routing server
TWI632465B (en) Method for use with a public cloud network, private cloud routing server and smart device client
US20150381567A1 (en) Cleartext gateway for secure enterprise communications
US11689522B2 (en) Method and apparatus for secure hybrid cloud connectivity
CN111614596B (en) Remote equipment control method and system based on IPv6 tunnel technology
US11556662B2 (en) Secure communications between virtual computing instances
US9619662B1 (en) Virtual network pairs
TWI629598B (en) Method for use with a public cloud network, private cloud routing server and smart device client
TWI537744B (en) Private cloud routing server, private network service and smart device client architecture without utilizing a public cloud based routing server
WO2023241331A1 (en) Internet of things system, authentication and communication method therefor, and related device
US11683292B2 (en) Private cloud routing server connection mechanism for use in a private communication architecture
US11546297B2 (en) Secure communication method, client and non-public server

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23762722

Country of ref document: EP

Kind code of ref document: A1