Connection establishment in a cellular network
By establishing peer-to-peer connections between drones and their controllers in a cellular network, the problem of limited communication range of drones is solved, and high-security and high-quality long-distance communication is achieved, which is suitable for industrial applications.
Patent Information
- Application Number
- CN201780097939.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2017-12-27
- Publication Date
- 2025-07-11
- Estimated Expiration
- 2037-12-27
AI Technical Summary
The communication range between drones and their controllers is limited, especially in industrial applications, long-distance communication is required, and existing Wi-Fi network security and anti-interference capabilities are insufficient.
Establish peer-to-peer connections between the drone and its controller through the cellular network, and coordinate the optimal paths with the message broker and server to realize P2P connections of the cellular network, supporting network address translation and relay path selection.
It expands the communication range between the drone and the controller, improves communication security and connection quality, enhances anti-interference capabilities, and supports multiple connections and cloud applications.
Smart Images

Figure CN111512666B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to communication networks, and more particularly, to connection establishment in a cellular network. Background Art
[0002] This section introduces various aspects that may help better understand the present disclosure. Accordingly, the content stated in this section will be read in this manner and should not be construed as an admission of what is prior art and what is not prior art.
[0003] With the development of data communication and device manufacturing technologies, various communication devices have been designed and utilized to support diverse services. Recently, there has been an increasing trend of sharing videos captured in the air by cameras embedded in unmanned aerial vehicles (UAVs) through social networks. UAVs can include, for example, unmanned aerial vehicles (UAVs) or flying objects shaped like airplanes or helicopters that fly without a crew via control signals of radio waves. Various communication devices such as UAVs and remote controllers have been developed for entertainment and industrial uses (such as aerial photography and information collection). A UAV can receive control commands from its controller and send back real-time videos and other information collected by sensors on the UAV to the controller. In some applications, the communication between a UAV and its controller may span a large geographical area and / or be subject to various interferences. Therefore, it may be necessary to enhance the connectivity between communication devices such as UAVs and their controllers. Summary of the Invention
[0004] The Summary of the Invention is provided to introduce selected concepts in a simplified form, and the concepts will be further described in detail in the Detailed Description section. The Summary of the Invention is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
[0005] Unmanned vehicle technology is very popular in personal entertainment such as photography. Now, its applications have been extended to industrial fields, such as agricultural fertilization and pest control, geographical information mapping, etc. These application scenarios may require UAVs to achieve long-distance communication with remote controllers. However, currently, UAVs and their controllers are connected through wireless fidelity (Wi-Fi) networks or Bluetooth networks that typically support short-distance communication. Therefore, it may be desirable to extend the communication range of UAVs and their controllers.
[0006] The present disclosure proposes a solution for connection establishment in a cellular network, which can enable the establishment of a peer-to-peer (P2P) connection between two terminal devices such as a UAV and its controller on the cellular network, thereby enabling the improvement of the connectivity between these two terminal devices to meet various service requirements.
[0007] According to a first aspect of the present disclosure, a method implemented at a terminal device is provided. The method may include: obtaining a network address of another terminal device from a message broker, where the terminal device and the other terminal device are registered with the message broker. At least one of the terminal device and the other terminal device is connected to a cellular network. The method may further include: initiating a connectivity check process to determine one or more candidate paths, where the terminal device has connectivity with the other terminal device through the one or more candidate paths. The one or more candidate paths are from at least two paths associated with the network address of the other terminal device. The method may further include: selecting, at least in part based on predefined criteria, a path for the terminal device and the other terminal device from the one or more candidate paths.
[0008] According to an exemplary embodiment, the at least two paths may include two or more paths among a local path, a public path, and a relay path. The local path is associated with an internal network address of the other terminal device, and the public path and the relay path are associated with an external network address of the other terminal device.
[0009] According to an exemplary embodiment, the network address of the other terminal device may include one or more network addresses queried by the other terminal device from a server that can support traversal for network address translation.
[0010] According to an exemplary embodiment, the method according to the first aspect of the present disclosure may further include: querying at least one network address of the network addresses of the terminal device from the server.
[0011] According to an exemplary embodiment, the method according to the first aspect of the present disclosure may further include: sending the network address of the terminal device to the other terminal device through the message broker.
[0012] According to an exemplary embodiment, the method according to the first aspect of the present disclosure may further include: establishing a peer-to-peer connection for the terminal device and the other terminal device through the selected path on the cellular network.
[0013] According to an exemplary embodiment, establishing the peer-to-peer connection may include: exchanging one or more connection establishment messages with the other terminal device through the message broker.
[0014] According to a second aspect of the present disclosure, an apparatus is provided. The apparatus may include one or more processors and one or more memories including computer program code. The one or more memories and the computer program code may be configured to, together with the one or more processors, cause the apparatus to perform at least any of the steps of the method according to the first aspect of the present disclosure.
[0015] According to a third aspect of the present disclosure, a computer-readable medium is provided, on which computer program code is carried, and when the computer program code is executed on a computer, the computer program code causes the computer to perform at least any of the steps of the method according to the first aspect of the present disclosure.
[0016] According to a fourth aspect of the present disclosure, an apparatus is provided. The apparatus may include an acquisition unit, a triggering unit, and a selection unit. According to some exemplary embodiments, the acquisition unit may be operable to perform at least the acquisition step of the method according to the first aspect of the present disclosure. The triggering unit may be operable to perform at least the triggering step of the method according to the first aspect of the present disclosure. The selection unit may be operable to perform at least the selection step of the method according to the first aspect of the present disclosure.
[0017] According to a fifth aspect of the present disclosure, a method implemented at a terminal device is provided. The method may include: collecting a network address of the terminal device. The method may further include: sending the network address of the terminal device to another terminal device via a message broker, where the terminal device and the another terminal device are registered with the message broker. At least one of the terminal device and the another terminal device is connected to a cellular network. The method may further include: responding to a connectivity check process initiated from the another terminal device to determine one or more candidate paths, where the another terminal device has connectivity with the terminal device via the one or more candidate paths. Through the connectivity check process, the another terminal device may select, at least partially based on predefined criteria, a path for the terminal device and the another terminal device from the one or more candidate paths. The one or more candidate paths are from at least two paths associated with the network address of the terminal device.
[0018] According to an exemplary embodiment, the at least two paths may include two or more paths among a local path, a public path, and a relay path. The local path is associated with an internal network address of the terminal device, and the public path and the relay path are associated with an external network address of the terminal device.
[0019] According to an exemplary embodiment, collecting the network address of the terminal device may include: querying at least one network address of the terminal device from a server, where the server can support traversal for network address translation.
[0020] According to an exemplary embodiment, the method according to the fifth aspect of the present disclosure may further include: obtaining the network address of the other terminal device from the message broker.
[0021] According to an exemplary embodiment, the network address of the other terminal device may include one or more network addresses queried by the other terminal device from the server.
[0022] According to an exemplary embodiment, the method according to the fifth aspect of the present disclosure may further include: establishing a peer - to - peer connection for the terminal device and the other terminal device through a selected path on the cellular network.
[0023] According to an exemplary embodiment, establishing the peer - to - peer connection may include: exchanging one or more connection establishment messages with the other terminal device through the message broker.
[0024] According to a sixth aspect of the present disclosure, there is provided an apparatus. The apparatus may include one or more processors and one or more memories including computer program code. The one or more memories and the computer program code may be configured to, together with the one or more processors, cause the apparatus to at least implement any steps of the method according to the fifth aspect of the present disclosure.
[0025] According to a seventh aspect of the present disclosure, there is provided a computer - readable medium having computer program code carried thereon, and when the computer program code is executed on a computer, the computer program code causes the computer to implement any steps of the method according to the fifth aspect of the present disclosure.
[0026] According to an eighth aspect of the present disclosure, there is provided an apparatus. The apparatus may include a collection unit, a sending unit, and a response unit. According to some exemplary embodiments, the collection unit may be operable to at least perform the collection step of the method according to the fifth aspect of the present disclosure. The sending unit may be operable to at least perform the sending step of the method according to the fifth aspect of the present disclosure. The response unit may be operable to at least perform the response step of the method according to the fifth aspect of the present disclosure.
[0027] According to an exemplary embodiment, the predefined criteria may include one or more of the following requirements: latency requirement, bandwidth requirement, and reliability requirement.
[0028] According to an exemplary embodiment, the connectivity check process may be at least partially based on at least one of the following techniques: session traversal utilities for network address translation, and traversal using relays around network address translation.
[0029] According to a ninth aspect of the present disclosure, a method implemented at a message broker is provided. The method may include registering a terminal device and another terminal device at the message broker. At least one of the terminal device and the other terminal device is connected to a cellular network. The method may further include obtaining, at the message broker, a network address of the terminal device. The message broker may forward the network address of the terminal device to the other terminal device so that the other terminal device can select, from at least two paths associated with the network address of the terminal device, a path through which the other terminal device has connectivity with the terminal device.
[0030] According to an exemplary embodiment, the method according to the ninth aspect of the present disclosure may further include obtaining, from the other terminal device, a network address of the other terminal device.
[0031] According to an exemplary embodiment, the method according to the ninth aspect of the present disclosure may further include forwarding the network address of the other terminal device to the terminal device so that the terminal device can select, from at least two paths associated with the network address of the other terminal device, a path through which the terminal device has connectivity with the other terminal device.
[0032] According to an exemplary embodiment, the method according to the ninth aspect of the present disclosure may further include transmitting one or more connection establishment messages exchanged between the terminal device and the other terminal device. The one or more connection establishment messages may be related to the establishment of a peer connection for the terminal device and the other terminal device.
[0033] According to a tenth aspect of the present disclosure, an apparatus is provided. The apparatus may include one or more processors and one or more memories including computer program code. The one or more memories and the computer program code may be configured to, together with the one or more processors, cause the apparatus to at least implement any step of the method according to the ninth aspect of the present disclosure.
[0034] According to an eleventh aspect of the present disclosure, there is provided a computer-readable medium having computer program code embodied thereon, which when executed on a computer, causes the computer to perform any of the steps of the method according to the ninth aspect of the present disclosure.
[0035] According to a twelfth aspect of the present disclosure, there is provided an apparatus. The apparatus may include a registration unit, an acquisition unit, and a forwarding unit. According to some exemplary embodiments, the registration unit may be operable to at least perform the registration step of the method according to the ninth aspect of the present disclosure. The acquisition unit may be operable to at least perform the acquisition step of the method according to the ninth aspect of the present disclosure. The forwarding unit may be operable to at least perform the forwarding step of the method according to the ninth aspect of the present disclosure.
[0036] According to a thirteenth aspect of the present disclosure, there is provided a method implemented at a server. The method may include: receiving an address request from a terminal device. The server is capable of supporting traversal for network address translation. The method may further include: determining at least one network address of the terminal device at least partially based on the address request. The server may send a response to the address request to the terminal device. The response may include the at least one network address of the terminal device.
[0037] According to an exemplary embodiment, the network address of the terminal device may be adapted to enable another terminal device to select, from at least two paths associated with the network address of the terminal device, a path through which the other terminal device has connectivity with the terminal device. At least one of the terminal device and the other terminal device is connected to a cellular network.
[0038] According to an exemplary embodiment, the method according to the thirteenth aspect of the present disclosure may further include: receiving another address request from the other terminal device. At least partially based on the other address request, the server is capable of determining at least one network address of the other terminal device.
[0039] According to an exemplary embodiment, the method according to the thirteenth aspect of the present disclosure may further include: sending another response to the other address request to the other terminal device. The other response may include the at least one network address of the other terminal device.
[0040] According to an exemplary embodiment, the network address of the other terminal device may be adapted to enable the terminal device to select, from at least two paths associated with the network address of the other terminal device, a path through which the terminal device has connectivity with the other terminal device.
[0041] According to a fourteenth aspect of the present disclosure, an apparatus is provided. The apparatus may include one or more processors and one or more memories including computer program code. The one or more memories and the computer program code may be configured to, together with the one or more processors, cause the apparatus to perform at least any of the steps of the method according to the thirteenth aspect of the present disclosure.
[0042] According to a fifteenth aspect of the present disclosure, a computer-readable medium is provided, on which computer program code is carried. When the computer program code is executed on a computer, the computer program code causes the computer to perform at least any of the steps of the method according to the thirteenth aspect of the present disclosure.
[0043] According to a sixteenth aspect of the present disclosure, an apparatus is provided. The apparatus may include a receiving unit, a determining unit, and a transmitting unit. According to some exemplary embodiments, the receiving unit may be operable to perform at least the receiving step of the method according to the thirteenth aspect of the present disclosure. The determining unit may be operable to perform at least the determining step of the method according to the thirteenth aspect of the present disclosure. The transmitting unit may be operable to perform at least the transmitting step of the method according to the thirteenth aspect of the present disclosure. Description of the Drawings
[0044] When read in conjunction with the drawings, the present disclosure itself, preferred usage patterns, and further objects can be best understood by referring to the following detailed description of the embodiments, in which:
[0045] Figure 1 is a diagram showing an exemplary system architecture according to an embodiment of the present disclosure;
[0046] Figure 2 is a diagram showing an exemplary connection establishment process according to an embodiment of the present disclosure;
[0047] Figure 3 is a flowchart showing a method according to some embodiments of the present disclosure;
[0048] Figure 4 is a flowchart showing a method according to some embodiments of the present disclosure;
[0049] Figure 5 is a flowchart showing a method according to some embodiments of the present disclosure;
[0050] Figure 6 is a flowchart showing a method according to some embodiments of the present disclosure;
[0051] Figure 7 is a block diagram showing an apparatus according to some embodiments of the present disclosure;
[0052] Figure 8 is a block diagram showing a device according to some embodiments of the present disclosure;
[0053] Figure 9 is a block diagram showing a device according to some embodiments of the present disclosure;
[0054] Figure 10 is a block diagram showing a device according to some embodiments of the present disclosure; and
[0055] Figure 11 is a block diagram showing a device according to some embodiments of the present disclosure. Detailed Description of Specific Embodiments
[0056] Embodiments of the present disclosure are described in detail with reference to the accompanying drawings. It should be understood that the discussion of these embodiments is only for enabling those skilled in the art to better understand and thereby implement the present disclosure, rather than to imply any limitation in terms of the scope of the present disclosure. References to features, advantages or similar language throughout the specification do not mean that all features and advantages that can be achieved in accordance with the present disclosure should be present in or within any single embodiment of the present disclosure. On the contrary, the language referring to the said features and advantages is understood to mean that a particular feature, advantage or characteristic described in connection with an embodiment is included in at least one embodiment of the present disclosure. In addition, the features, advantages and characteristics of the present disclosure described herein can be combined in any suitable manner in one or more embodiments. Those skilled in the relevant art will recognize that the present disclosure can be practiced without one or more specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be found in certain embodiments that may not be present in all embodiments of the present disclosure.
[0057] As used herein, the term "cellular network" refers to a network that follows any suitable communication standard (such as New Radio (NR), Long Term Evolution (LTE), LTE-Advanced, Wideband Code Division Multiple Access (WCDMA), High Speed Packet Access (HSPA), etc.). In addition, the communication between the terminal device and the network node in the communication network can be implemented according to any suitable communication protocol, including but not limited to the first generation (1G), second generation (2G), 2.5G, 2.75G, third generation (3G), 4G, 4.5G, 5G communication protocols and / or any other protocol known currently or developed in the future).
[0058] The term "network node" refers to a network device in a communication network through which a terminal device accesses the network and receives services therefrom. A network node may refer to a base station (BS), an access point (AP), a mobility management entity (MME), a multi-cell / multicast coordination entity (MCE), a gateway, a server, a controller, or any other suitable device in a cellular network. A BS may be, for example, a Node B (NodeB or NB), an evolved Node B (eNodeB or eNB), a next-generation Node B (gNodeB or gNB), a remote radio unit (RRU), a radio head (RH), a remote radio head (RRH), a repeater, a low-power node such as a femtocell, a picocell, and so on.
[0059] Some further examples of network nodes include: an MSR radio device such as an MSR BS, a network controller such as a radio network controller (RNC) or a base station controller (BSC), a base transceiver station (BTS), a transmission point, a transmission node, an MCE, a core network node, and / or a positioning node, and so on. However, more generally, a network node may represent any suitable device (or group of devices) capable of, configured to, arranged to, and / or operable to enable and / or provide access of a terminal device to a cellular network or to provide some service to a terminal device already accessing the cellular network.
[0060] The term "terminal device" refers to any end device that can access a communication network and receive services therefrom. By way of example and not limitation, a terminal device may refer to a mobile terminal, a user equipment (UE), or other suitable device. A UE may be, for example, a subscriber station, a portable subscriber station, a mobile station (MS), or an access terminal (AT). A terminal device may include, but is not limited to: a portable computer, an image capture terminal device such as a digital camera, a game terminal device, a music storage and playback appliance, a mobile phone, a cellular phone, a smart phone, a tablet computer, a wearable device, a personal digital assistant (PDA), a vehicle, and so on.
[0061] As yet another specific example, in an Internet of Things (IoT) scenario, a terminal device may represent a machine or other device that implements monitoring and / or measurement and transmits the results of such monitoring and / or measurement to another terminal device and / or network device. In such a case, the terminal device may be a machine-to-machine (M2M) device, which in a 3GPP context may be referred to as a machine type communication (MTC) device.
[0062] As a specific example, the terminal device can be a UE implementing the 3GPP Narrowband Internet of Things (NB-IoT) standard. Specific examples of such machines or devices are sensors, drones, robots, controllers, metering devices such as power meters, industrial machinery, or household or personal appliances such as refrigerators, TVs, personal wearables such as watches, and so on. In other scenarios, the terminal device can represent a vehicle or other device, for example, a medical device capable of monitoring and / or reporting information about its operating state or other functions related to its operation.
[0063] As used herein, the terms "first", "second", etc. refer to different elements. Unless the context clearly dictates otherwise, the singular forms "a" and "an" are also intended to include the plural forms. The terms "comprising", "including", "having", "containing", "including having" and / or "containing having" as used herein indicate the presence of the described features, elements, and / or components, etc., but do not preclude the presence or addition of one or more other features, elements, components, and / or combinations thereof. The term "based on" should be understood as "at least partially based on". The terms "one embodiment" and "an embodiment" are to be construed as "at least one embodiment". The term "another embodiment" should be understood as "at least one other embodiment". Other definitions may be explicitly and implicitly included below.
[0064] In recent years, unmanned vehicles have become increasingly popular, especially for photography, surveillance, ground monitoring, spraying pesticides, and / or emergency or rescue operations, and so on. For example, drones may be well-suited for monitoring or surveilling remote sites, remotely located infrastructure, or other features on the ground that are not easily accessible by land, such as oil or water pipelines, power lines, coastlines, farmland, borders, forest fires, natural disasters, etc. Drones can be managed by an individual or via some commands by a drone controller (also referred to as a controller for ease of explanation). The controller can send control commands to the drone and obtain some video data and / or other sensing information from the drone. Currently, drones and their controllers are typically connected via a Wi-Fi network.
[0065] However, Wi-Fi can only support short-distance communication of less than 1 - 2 kilometers, which may not meet the long-distance communication requirements of industrial use cases. On the other hand, Wi-Fi uses unlicensed frequency bands such as 2.4 GHz and 5 GHz, and thus provides communication with a low security level, which clearly cannot meet the security level for certain high-security requirements. In addition, Wi-Fi has poor anti-interference ability and can thus provide low connection quality. For example, the connection may be lost in an interference area. Moreover, current Wi-Fi solutions have low scalability and thus cannot support multiple connections for drones and cloud applications.
[0066] According to some exemplary embodiments, the present disclosure provides a solution that enables communication between a pair of devices (such as a drone and its controller) through a connection in a cellular network (such as a 4G / LTE network or a 5G / NR network), rather than a Wi-Fi or other wireless connection. According to some exemplary embodiments, the pair of devices may have the ability to connect to a cellular network and may communicate with a message broker and a server to establish a connection through the cellular network. The message broker and the server may facilitate finding an optimal path to establish a connection for the pair of devices through the cellular network. In this way, compared with a Wi-Fi connection, the communication range of the drone and its controller can be greatly extended. Additionally, the security level and connection quality of the communication between the drone and its controller can be improved by using a cellular network connection.
[0067] Figure 1 is a diagram showing an exemplary system architecture according to an embodiment of the present disclosure. Although the embodiments disclosed herein are described with respect to a communication system conforming to the Figure 1 exemplary system architecture shown, the subject matter described herein may be implemented in any suitable system using any suitable components. For simplicity, Figure 1 the system architecture depicted only depicts some exemplary elements, for example, drone 101, controller 102, BS 103, firewall 104, message broker 105, server 106, and Internet 107. In fact, the communication system may further include any other elements suitable for supporting communication between wireless devices or between a wireless device and another communication device (such as a landline phone, a service provider, or any other network node or terminal device). The communication system may provide communication and other types of services to one or more wireless devices to facilitate the wireless devices' access to and / or use of services provided by or via the communication system.
[0068] According to an embodiment of the present disclosure, drone 101 and controller 102 may have the ability to connect to a cellular network, for example, by updating their software and / or hardware by utilizing an LTE / NR adapter (dongle) / modem. As Figure 1 shown, drone 101 may be attached to a cellular network such as an LTE network via a BS 103 such as an eNB. Similarly, controller 102 may also be attached to the cellular network via BS 103 or a different BS ( Figure 1(not shown in the figure) is attached to the cellular network. The drone 101 and the controller 102 can operate as ordinary UEs and obtain their respective Internet Protocol (IP) addresses from the core network. For example, during the attachment process for the drone 101 / controller 102, the IP address assigned to the drone 101 / controller 102 can be carried in the attachment acceptance message. As an example, this IP address can be assigned as a local network address to the corresponding adapter acting as the network adapter of the drone 101 / controller 102. It can be recognized that an LTE connection may not be mandatory for the controller 102 to access the Internet 107. In the case where the controller 102 is a computer or any other device with wired network access capabilities, the controller 102 can directly access the Internet 107 by using a cable broadband connection.
[0069] When the drone 101 and the controller 102 are attached to or connected to the cellular network, they can communicate with one or more cloud servers (such as the server 106 and the message broker 105 deployed in the Internet 107) through the firewall 104. According to some embodiments of the present disclosure, the message broker 105 can implement a communication message protocol such as the Message Queuing Telemetry Transport (MQTT) protocol to support message exchange between the drone 101 and the controller 102. After the drone 101 and the controller 102 are connected to the cellular network, they can communicate with the message broker 102 through paths 114 and 115 respectively. The message broker 105 can coordinate and relay some MQTT messages (such as authentication and / or signaling messages), so that the drone 101 and the controller 102 can communicate with each other. According to some embodiments of the present disclosure, the server 106 can support the traversal for NAT in the Interactive Connectivity Establishment (ICE) framework, for example, by implementing the Session Traversal Utilities for Network Address Translation (STUN) and / or using the Traversal Using Relay around NAT (TURN) protocol.
[0070] According to the embodiments of the present disclosure, the message broker 105 and the server 106 can coordinate the optimal process for establishing a connection between two peers, for example, by using the STUN and / or TURN protocol. In this process, the optimal path for establishing a P2P connection between the drone 101 and the controller 102 can be found. For example, a Virtual Private Network (VPN) connection can be established for the drone 101 and the controller 102 through the optimal path in the cellular network. Through the VPN connection, the drone 10 can receive control commands from the controller 102, and the controller 102 can receive various data collected from the sensors on the drone 101, such as the live video taken by the camera on the drone.
[0071] According to an embodiment of the present disclosure, a P2P connection for the drone 101 and the controller 102 can be established on a path specified by the STUN and / or TURN protocol. For example, as Figure 1 shown, a P2P connection can be established on the common path 112. Optionally, the relay function of the server 106 can also be adopted by using the TURN protocol. As an example, if the direct P2P connection requirement cannot be met due to certain firewall rules, for example, a relay connection for the drone 101 and the controller 102 can be established on the relay path 113. Optionally, when a local connection within the cellular network is available for the drone 101 and the controller 102, the local path 111 can be used for communication between the drone 101 and the controller 102. According to some exemplary embodiments, the optimal path (such as Figure 2 the local path 111, the common path 112, or the relay path 113 shown in Figure 1 ) for the connection between the drone 101 and the controller 102 can be determined by implementing a connectivity check process such as the ICE process (described below in conjunction with
[0072] According to an embodiment of the present disclosure, the message broker 105 can be centrally deployed in the Internet 107, while the server 106 for connectivity establishment can be regionally deployed in the Internet 107. In this regard, the drone 101 and the controller 102 can be connected to the message broker 105 and the server 106 through the cellular network. By leveraging the MQTT protocol implementation in the message broker 105 and the STUN / TURN protocol implementation in the server 106, the message broker 105 and the server 106 can facilitate the implementation of the ICE procedure to establish a P2P connection between the drone 101 and the controller 102 and enable IP communication on top of the cellular connectivity.
[0073] Many advantages can be achieved by applying the solution proposed according to the present disclosure. For example, if the latency requirement can be met, since the coverage of the cellular network is much larger than that of the Wi-Fi network, the drone can communicate with its controller at an unrestricted control distance over cellular connectivity. The drone can be controlled from different locations, and the communication distance can be greatly extended compared to Wi-Fi connections. On the other hand, the cellular network can operate with high security in the licensed frequency band. Therefore, compared to the Wi-Fi network, the drone can be served at a high security level and fly more safely. The cellular network also has high anti-interference ability, so the connection over the cellular network is robust and of high quality. Additionally, the cellular network according to some exemplary embodiments can be equipped with edge and cloud computing solutions, and thus can provide the drone with unrestricted computing power to enable some advanced functions with wide expansion capabilities. Furthermore, the proposed solution can also support swarm flight capabilities, so that one controller can control more than one drone at a time using cellular network connections.
[0074] It should be noted that some embodiments of the present disclosure are mainly described with respect to the LTE or NR specifications, which are used as non-limiting examples of specific exemplary network configurations and system deployments. Thus, the description of the exemplary embodiments given here specifically relates to the terms directly associated with them. Such terms are only used in the context of the presented non-limiting examples and embodiments and do not in any way limit the present disclosure naturally. Instead, any other system configuration or radio technology can be used equally as long as the exemplary embodiments described here are applicable.
[0075] Figure 2 is a diagram showing an exemplary connection establishment process according to an embodiment of the present disclosure. For simplicity, Figure 2 only some exemplary network elements are depicted, such as a controller 201, a message broker 202, a server 203, and a drone 204. It can be understood that Figure 2 the signaling messages and network elements shown are only examples, and more or fewer alternative signaling messages and network elements may be involved in the connection establishment process.
[0076] According to an embodiment of the present disclosure, the controller 201 can include a UE, a management device, a monitor, or a computer. The controller 201 can access Internet services through a cellular network or a cable broadband connection. The drone 204 can include an unmanned vehicle, a remotely piloted aircraft, or a robotic aircraft. The drone 204 can be connected to the Internet through a cellular network or other suitable radio access network. Although shown in combination with UAV applications Figure 2the message flows therein, but the exemplary connection establishment process may also be applied to other communication scenarios in which some of the end devices and terminal devices are capable of implementing similar capabilities as described for the controller 201 and the drone 204.
[0077] As Figure 2 shown, the drone 204 and its controller 201 can be connected to a cellular network, such as an LTE / NR network. Some cloud servers (such as the message broker 202 and the server 203) can enable P2P IP communication between the drone 204 and the controller 201 over the cellular connectivity. As described in connection with Figure 1 the message broker 202 can implement the MQTT protocol for signaling exchange between the drone 204 and the controller 201. The server 203 can be implemented as an ICE server, which can be configured with STUN functionality and / or TURN functionality. In the ICE framework, optimal IP routing exploration can be implemented between the controller 201 and the drone 204.
[0078] According to Figure 2 the exemplary connection establishment process shown, to establish a communication connection with the drone 204, the controller 201 connected to the cellular network can register 211 with a message broker 202 such as an MQTT server, for example, by sending a connection request command to the MQTT server and receiving a connection request confirmation message from the MQTT server. According to an exemplary embodiment, the controller 201 can communicate with the server 203 to query 213 the external network address of the controller, such as the public and / or relay IP address. For example, the controller 201 can send an allocation request to the server 203 (such as a STUN / TURN server) to query the network address. Accordingly, the controller 201 can receive an allocation success response from the server 203 containing the requested network address.
[0079] According to an exemplary embodiment, the server 203 can collect the public IP address of the controller 201 by using the STUN protocol. Optionally or additionally, the relay IP address of the controller 201 can also be determined by the server 203 using the TURN protocol. Optionally, even if the controller 201 may have obtained its local address as an internal network address in the cellular network, the controller 201 can query 213 its internal and external network addresses from the server 203. The server 203 can transmit the response 214 to the controller 201. The response 214 can include at least one of the external network addresses of the controller 201 (and optionally, the internal network address).
[0080] Similarly, a drone 204 connected to a cellular network may register 212 with a message broker 202, e.g., by sending a connection request command and receiving a connection request confirmation message from the message broker 202 accordingly. By querying 216 the address information from a server 203, the drone 204 may obtain at least one of its external network addresses (and optionally, internal network addresses) in a response 217 from the server 203. According to some exemplary embodiments, when accessing the network, the drone 204 may be directly assigned a public address instead of an internal network address. In this case, the drone 204 may not have an internal network address. Additionally, it is possible to assign one or more external network addresses to the controller 201 without an internal network address.
[0081] It can be appreciated that Figure 2 the exemplary message flows described are generally presented as logical flowcharts, and the depicted order and labeled steps are for convenience only and not for limitation. Thus, the order in which the connection establishment process occurs may not strictly follow Figure 2 the order of the corresponding steps shown. For example, the drone 204 may register with the message broker 202 and obtain network addresses from the server 203 simultaneously with, earlier than, or later than the controller 201.
[0082] In some cases, the controller 201 and the drone 204 may not be able to communicate directly with each other, e.g., because they are assigned dynamic IP addresses and local IP addresses. Additionally, some firewall rules may not allow a direct connection between the controller 201 and the drone 204. Thus, the communication between the controller 201 and the drone 204 may have to go through a firewall. In this case, compared to a local path (such as Figure 1 the path 111 shown), a public path (such as Figure 1 the path 112 shown) or a relay path (such as Figure 1 the path 113 shown) may be desirable. However, the local path may have better latency performance than the public path and the relay path. Additionally, if a relay path is used, the latency and bandwidth may not be manageable. Therefore, it may be beneficial to find an optimal path among the local path, the public path, and the relay path for the communication between the controller 201 and the drone 204 according to different application scenarios and network requirements.
[0083] According to embodiments of the present disclosure, a connectivity check may be implemented to find an optimal path. As Figure 2As shown, the controller 201 can initiate the ICE process by sending an invitation message 215 to the drone 204 via the message broker 202. In the invitation message (e.g., in the form of an MQTT command), the controller 201 can share its address information (such as local address, public address, and relay address) with the drone 204. Correspondingly, the drone 204 can respond to the invitation message by sending an acknowledgment message 218 to the controller 201 via the message broker 202. The acknowledgment message (such as an invitation confirmation message) can include the address information (such as local address, public address, and relay address) of the drone shared with the controller 201.
[0084] Optionally, the controller 201 can send an ICE command to the drone 204 via the message broker 202 to initiate the ICE process 219. Correspondingly, the drone 204 can send an ICE confirmation message to the controller 201 via the message broker 202 to inform the controller 201 that the ICE process 219 can start.
[0085] According to an embodiment of the present disclosure, the controller 201 can perform the ICE process 219 by performing a connectivity check on each address of the drone 204. For example, all IP address pairs of the controller 201 and the drone 204 may be cycled through to check connectivity. In particular, the controller 201 can check the connectivity of the local address, public address, and relay address of the drone 204 by using the local address of the controller 201. According to an exemplary embodiment, a binding request can be sent from the controller 201 to the drone 204 to check the connectivity of each IP address of the drone 204. If the check is successful, the drone 204 can reply by sending a success response back to the controller 201.
[0086] It is possible that the check of more than one address of the drone 204 can be successful, which means that there are at least two candidate paths available for the controller 201 to connect to the drone 204. Thus, selection criteria can be predefined to specify the optimal path from these candidate paths. The selection criteria can consider latency, bandwidth, reliability, and / or other potential requirements. Optionally, the drone 204 can also check the connectivity of each address of the controller 201 during the ICE process 219 and determine the optimal path for connecting to the controller 201 according to the specified selection criteria.
[0087] According to an exemplary embodiment, a User Datagram Protocol (UDP) path is desired during the ICE process. In this case, since UDP is a connectionless transport layer protocol and the network contexts of the controller 201 and the drone 204 may not necessarily be the same, the results of the connectivity checks performed by the controller 201 and the drone 204 may be different. Therefore, the optimal path from the controller 201 to the drone 204 and the optimal path from the drone 204 to the controller 201 can be processed separately. It can be understood that other transport protocols such as the Transmission Control Protocol (TCP) can also be applied to the routing exploration between the controller 201 and the drone 204. In this case, the controller 201 and the drone 204 can negotiate the optimal path between them, for example, through the TCP three-way handshake process. Therefore, the same optimal path can be selected for the traffic from the controller 201 to the drone 204 and the traffic from the drone 204 to the controller 201.
[0088] When specifying the optimal path for the controller 201 during the ICE process, as Figure 2 shown, the controller 201 can send a 220VPNUP command to the message broker 202. The message broker 202 can forward or relay the VPNUP command to the drone 204. Optionally, the drone 204 can send a VPNUP confirmation message back to the controller 201. Then, a 221VPN process can be implemented via the specified path to establish a VPN tunnel / connection for the controller 201 and the drone 204. The VPN tunnel / connection can carry Ethernet layer 2 messages as well as any other IP messages including TCP messages. Optionally, although not shown in Figure 2 , the VPN process can be initiated by the drone 204, for example, by sending a VPNUP command to the controller 201 via the message broker 202, so as to establish a VPN tunnel / connection for the controller 201 and the drone 204.
[0089] In another exemplary embodiment, instead of Figure 2 , a robot of the drone 204 can establish a P2P connection with the controller 201. The robot can fly in the air, walk on the ground, and / or perform specific behaviors according to some commands from the controller 201. Due to the unrestricted control distance and the robust connection, the action radius of the robot can be expanded, and the control accuracy can be increased. In this way, there will be more application scenarios for MTC implementation than before. For simplicity, the following will continue with the embodiments related to the drone to illustrate the methods and apparatuses of the present disclosure.
[0090] Figure 3 is a flowchart showing a method 300 according to some embodiments of the present disclosure. Figure 3The method 300 shown can be implemented by a device implemented in a terminal device or communicatively coupled to the terminal device. According to some exemplary embodiments, the terminal device may include a UE, a drone, a robot, a controller, a vehicle infotainment system, and / or other suitable computing devices that can be used to communicate with another terminal device via a P2P connection over a cellular network. According to an exemplary embodiment, the terminal device can be operated as an initiator for a connectivity check process for another terminal device.
[0091] According to an exemplary embodiment, at least one of the terminal device and another terminal device can be connected to a cellular network such as an LTE / NR network. For example, both the terminal device and another terminal device can be located in a cellular network and can access the Internet through the cellular network. Optionally, one of the terminal device and another terminal device can be a computer connected to the Internet via a cable broadband connection, and the other can be a wireless device accessing the Internet through a cellular network. Some services such as sensing data or control signaling may need to be communicated between the terminal device and another terminal device. Thus, it may be necessary to establish a connection for the terminal device and another terminal device.
[0092] According to Figure 3 the exemplary method 300 shown, a terminal device (such as controller 201 or drone 204) can obtain the network address of another terminal device (such as drone 204 or controller 201) from a message broker (such as message broker 202), where the terminal device and the other terminal device are registered with the message broker, as shown in block 302. In an exemplary embodiment, the network address of the other terminal device can include one or more network addresses queried by the other terminal device from a server that supports traversal for NAT (such as server 203). As described in connection with Figure 2 what is described, the network address of the other terminal device can include the internal and / or external network addresses of the other terminal device.
[0093] Optionally, the terminal device can send its network address to the other terminal device through the message broker. For example, the network address of the terminal device can be carried in an invitation message to the other terminal device, as Figure 2 shown. Optionally, the terminal device can share its network address with the other terminal device upon request.
[0094] According to an exemplary embodiment, the terminal device can query at least one of its network addresses from a server that supports traversal for NAT. As described with respect to Figure 2 what is described, one or more network addresses queried from the server can include an internal network address, one or more external network addresses (such as a public address and / or a relay address), or any combination thereof.
[0095] To determine whether the network address of the other terminal device obtained from the message broker is a valid address for the communication path from the terminal device to the other terminal device, a connectivity check process such as an ICE procedure may be implemented. According to an exemplary embodiment, the terminal device may initiate a connectivity check process to determine one or more candidate paths through which the terminal device has connectivity with the other terminal device, as shown in block 304. According to an exemplary embodiment, the connectivity check process may be at least partially based on STUN, TURN, and / or any other suitable technology.
[0096] Since a connectivity check process is implemented for the network address of the other terminal device, it can be recognized that the one or more candidate paths are from at least two paths associated with the network address of the other terminal device. The at least two paths may include two or more of a local path, a public path, and a relay path. The local path is associated with the internal network address of the other terminal device, while the public path and the relay path are associated with the external network address of the other terminal device.
[0097] According to Figure 3 the exemplary method 300 shown, based at least in part on predefined criteria, the terminal device may select a path for the terminal device and the other terminal device among the one or more candidate paths, as shown in block 306. According to an exemplary embodiment, the predefined criteria may include one or more of the following requirements: a latency requirement, a bandwidth requirement, and a reliability requirement. It can be understood that other appropriate factors may also be considered when selecting an optimal path for the terminal device and the other terminal device.
[0098] According to an exemplary embodiment, the terminal device may establish a P2P connection for the terminal device and the other terminal device via the selected path over a cellular network. During the establishment of the P2P connection, the terminal device may exchange one or more connection establishment messages with the other terminal device through the message broker. According to an exemplary embodiment, the P2P connection may be established at least in part based on the VPN process described in conjunction with Figure 2 Through the VPN connection, the terminal device may communicate various data or commands with the other terminal device.
[0099] Figure 4 is a flowchart showing a method 400 according to some embodiments of the present disclosure. Figure 4The method 400 shown can be implemented by a device implemented in a terminal device or communicatively coupled to a terminal device. According to some exemplary embodiments, the terminal device may include a UE, a drone, a controller, a vehicle infotainment system, and / or other suitable computing devices that can be used to communicate with another terminal device via a P2P connection over a cellular network. According to an exemplary embodiment, the terminal device described in conjunction with Figure 4 can be operated as a responder to a connectivity check process initiated by another terminal device. As previously mentioned, at least one of the terminal device and the other terminal device may be connected to a cellular network such as an LTE / NR network.
[0100] According to Figure 4 the exemplary method 400 shown, a terminal device (such as the drone 204 or the controller 201) can collect its network address, as shown in block 402. According to an exemplary embodiment, collecting the network address of the terminal device may include: querying at least one of the network addresses of the terminal device from a server (such as the server 203) that supports traversal for NAT. For example, the terminal device can obtain its internal network address from the cellular network and obtain at least one external network address from the server.
[0101] The terminal device can send its network address to another terminal device via a message broker (such as the message broker 202), where the terminal device and the other terminal device are registered with the message broker, as shown in block 404. Optionally, the terminal device can obtain the network address of the other terminal device from the message broker. The network address of the other terminal device may include one or more network addresses queried by the other terminal device from the server (such as the server 203).
[0102] According to an exemplary embodiment, the terminal device can respond to a connectivity check process initiated by the other terminal device to determine one or more candidate paths, where the other terminal device has connectivity with the terminal device via the one or more candidate paths, as shown in block 406. As previously mentioned, the connectivity check process can be at least partially based on STUN, TURN, and / or other suitable technologies. By using the connectivity check process, the other terminal device can select a path for the terminal device and the other terminal device from the one or more candidate paths at least partially based on predefined criteria. For example, the predefined criteria may include latency requirements, bandwidth requirements, reliability requirements, or any combination thereof.
[0103] According to an exemplary embodiment, the one or more candidate paths are from at least two paths associated with the network address of the terminal device. The at least two paths may include two or more paths among a local path, a public path, and a relay path. The local path is associated with the internal network address of the terminal device, while the public path and the relay path are associated with the external network address of the terminal device.
[0104] According to an exemplary embodiment, a P2P connection can be established for the terminal device and the other terminal device via a selected path on a cellular network. To establish the P2P connection, the terminal device may exchange one or more connection establishment messages (such as a VPN connection establishment message) with the other terminal device through a message broker.
[0105] Figure 5 is a flowchart showing a method 500 according to some embodiments of the present disclosure. Figure 5 The illustrated method 500 may be implemented by a device implemented in a message broker or communicatively coupled to a message broker. According to some exemplary embodiments, the message broker may include a server, a relay station, an intermediate device, and / or other suitable devices that can implement one or more communication message protocols (such as the MQTT protocol) for signaling exchange between two terminal devices.
[0106] According to Figure 5 the illustrated exemplary method 500, a terminal device and another terminal device can be registered at the message broker, as shown in block 502. As described with respect to Figure 3 and Figure 4 at least one of the terminal device and the other terminal device is connected to a cellular network. The message broker (such as message broker 202) may coordinate messages and / or signaling exchanged between the terminal device and the other terminal device, so that a P2P connection can be established for the two terminal devices on top of the cellular connectivity.
[0107] According to an exemplary embodiment, the message broker may obtain the network address of the terminal device from the terminal device, as shown in block 504. For example, the network address of the terminal device may be carried in an invitation confirmation message or an invitation command from the terminal device. Then, the message broker may forward the network address of the terminal device to the other terminal device, as shown in block 506, so that the other terminal device can select a path through which it has connectivity with the terminal device from at least two paths associated with the network address of the terminal device.
[0108] Optionally, the message broker may obtain the network address of the other terminal device from the other terminal device. The network address of the other terminal device may be forwarded from the message broker to the terminal device so that the terminal device can select, from at least two paths associated with the network address of the other terminal device, a path through which the terminal device has connectivity with the other terminal device.
[0109] According to an exemplary embodiment, in response to the path for the terminal device and the other terminal device being selected, a P2P connection establishment process may be initiated by the terminal device or the other terminal device. In this case, the message broker may transmit one or more connection establishment messages exchanged between the terminal device and the other terminal device. The one or more connection establishment messages (such as a VPNUP command or a VPNUP confirmation message) may be related to the establishment of a P2P connection for the terminal device and the other terminal device.
[0110] Figure 6 FIG. 7 is a flowchart showing a method 600 according to some embodiments of the present disclosure. Figure 6 The method 600 shown may be implemented by a device implemented in a server or communicatively coupled to a server. According to some exemplary embodiments, the server may be implemented as an ICE server, which may enable the establishment of a P2P connection for two terminal devices over a cellular connectivity.
[0111] According to Figure 6 the exemplary method 600 shown, the server may receive an address request from a terminal device (such as the drone 204 or the controller 201), as shown in block 602. The server may support traversal for NAT, for example, by implementing the STUN protocol, the TURN protocol, and / or any other suitable protocol.
[0112] According to an exemplary embodiment, the server may determine at least one network address of the terminal device at least partially based on the address request, as shown in block 604. For example, the determined one or more network addresses may include the internal network address of the terminal device and / or at least one external network address.
[0113] Then, the server can send a response to the address request to the terminal device, as shown in block 606. The response can include at least one network address of the network addresses of the terminal device. According to an exemplary embodiment, the network address of the terminal device can be adapted to enable another terminal device to select, from at least two paths associated with the network address of the terminal device, a path through which the other terminal device has connectivity with the terminal device. As previously described, at least one of the terminal device and the other terminal device is connected to a cellular network.
[0114] Optionally, the server can receive another address request from the other terminal device (such as the drone 204 or the controller 201). At least partially based on the other address request, the server can determine at least one network address of the network addresses of the other terminal device. Then, the server can send another response to the other address request to the other terminal device. The other response can include at least one network address of the network addresses of the other terminal device. Similarly, the network address of the other terminal device can be adapted to enable the terminal device to select, from at least two paths associated with the network address of the other terminal device, a path through which the terminal device has connectivity with the other terminal device.
[0115] According to an exemplary embodiment, by using the network address of a peer device, the terminal device and / or the other terminal device can implement a connectivity check process to select an optimal path for connection establishment, as described with respect to Figure 3 and Figure 4 Accordingly, a connection establishment process can be performed to establish a P2P connection between the terminal device and the other terminal device via an optimal path over cellular connectivity.
[0116] The solution proposed according to one or more exemplary embodiments can enable the establishment of a P2P connection for two terminal devices such as a drone and its controller over a cellular network. By leveraging the advantages of the proposed connection establishment mechanism, an optimal path can be selected from different paths for the two terminal devices to establish a P2P connection. In this way, the terminal device can find an optimal path that meets specific criteria to establish a P2P connection with another terminal device over a cellular network, which can help achieve low latency and / or high bandwidth.
[0117] According to some scenarios, a drone / robot can send pictures or real-time videos taken by it, or some sensing information detected by it, to a receiver that may not be the same entity as the controller of the drone / robot. Optionally, the drone / robot can send data to the controller and the receiver simultaneously. The receiver may be located at a different position from the controller, which means they have different address information. Therefore, according to the above solution, a P2P connection can be established between the drone / robot and the controller respectively, and a P2P connection can also be established between the drone / robot and the receiver.
[0118] Figure 3-6 The various blocks shown in can be regarded as method steps, and / or operations generated by the operations of computer program code, and / or multiple coupled logic circuit elements configured to perform related functions. The schematic flowcharts described above are generally presented as logic flowcharts. Thus, the depicted order and labeled steps indicate specific embodiments of the proposed method. Other steps and methods can be envisioned that are equivalent in function, logic, or effect to one or more steps or portions thereof of the method shown. Additionally, the order in which a particular method occurs may or may not strictly follow the order of the corresponding steps shown.
[0119] Figure 7 is a block diagram showing an apparatus 700 according to various embodiments of the present disclosure. As Figure 7 shown, the apparatus 700 may include one or more processors (such as processor 701) and one or more memories (such as memory 702 storing computer program code 703). The memory 702 may be a non-transitory machine / processor / computer-readable storage medium. According to some exemplary embodiments, the apparatus 700 may be implemented as an integrated circuit chip or module that can be inserted or welded into a terminal device as described with respect to Figure 3 or Figure 4 described.
[0120] In some implementations, the one or more memories 702 and the computer program code 703 may be configured to, together with the one or more processors 701, cause the apparatus 700 to at least implement any operations of the method described in connection with Figure 3 described.
[0121] In some implementations, the one or more memories 702 and the computer program code 703 may be configured to, together with the one or more processors 701, cause the apparatus 700 to at least implement any operations of the method described in connection with Figure 4 described.
[0122] In some implementations, the one or more memories 702 and the computer program code 703 may be configured to, together with the one or more processors 701, cause the apparatus 700 to perform at least any of the operations of the method as described in connection with Figure 5 the method described.
[0123] In some implementations, the one or more memories 702 and the computer program code 703 may be configured to, together with the one or more processors 701, cause the apparatus 700 to perform at least any of the operations of the method as described in connection with Figure 6 the method described.
[0124] Optionally or additionally, the one or more memories 702 and the computer program code 703 may be configured to, together with the one or more processors 701, cause the apparatus 700 to perform at least more or fewer operations to implement the method proposed according to the exemplary embodiments of the present disclosure.
[0125] Figure 8 FIG. is a block diagram of an apparatus 800 according to some embodiments of the present disclosure. As Figure 8 shown, the apparatus 800 may include an acquisition unit 801, a triggering unit 802, and a selection unit 803. In an exemplary embodiment, the apparatus 800 may be implemented at a terminal device such as a drone or a controller. The acquisition unit 801 may be operable to perform the operation in block 302, the triggering unit 802 may be operable to perform the operation in block 304, and the selection unit 803 may be operable to perform the operation in block 306. Optionally, the acquisition unit 801, the triggering unit 802, and / or the selection unit 803 may be operable to perform more or fewer operations to implement the method proposed according to the exemplary embodiments of the present disclosure.
[0126] Figure 9 FIG. is a block diagram of an apparatus 900 according to some embodiments of the present disclosure. As Figure 9 shown, the apparatus 900 may include a collection unit 901, a sending unit 902, and a response unit 903. In an exemplary embodiment, the apparatus 900 may be implemented at a terminal device such as a drone or a controller. The collection unit 901 may be operable to perform the operation in block 402, the sending unit 902 may be operable to perform the operation in block 404, and the response unit 903 may be operable to perform the operation in block 406. Optionally, the collection unit 901, the sending unit 902, and / or the response unit 903 may be operable to perform more or fewer operations to implement the method proposed according to the exemplary embodiments of the present disclosure.
[0127] Figure 10 FIG. is a block diagram of an apparatus 1000 according to some embodiments of the present disclosure. As Figure 10As shown, apparatus 1000 may include a registration unit 1001, an acquisition unit 1002, and a forwarding unit 1003. In an exemplary embodiment, apparatus 1000 may be implemented at a message broker such as an MQTT server. The registration unit 1001 may be operable to perform the operations in block 502, the acquisition unit 1002 may be operable to perform the operations in block 504, and the forwarding unit 1003 may be operable to perform the operations in block 506. Optionally, the registration unit 1001, the acquisition unit 1002, and / or the forwarding unit 1003 may be operable to perform more or fewer operations to implement the method proposed according to the exemplary embodiments of the present disclosure.
[0128] Figure 11 is a block diagram showing apparatus 1100 according to some embodiments of the present disclosure. As Figure 11 shown, apparatus 1100 may include a receiving unit 1101, a determining unit 1102, and a transmitting unit 1103. In an exemplary embodiment, apparatus 1100 may be implemented at a server such as an ICE server. The receiving unit 1101 may be operable to perform the operations in block 602, the determining unit 1102 may be operable to perform the operations in block 604, and the transmitting unit 1103 may be operable to perform the operations in block 606. Optionally, the receiving unit 1101, the determining unit 1102, and / or the transmitting unit 1103 may be operable to perform more or fewer operations to implement the method proposed according to the exemplary embodiments of the present disclosure.
[0129] In general, the various exemplary embodiments may be implemented using hardware or a dedicated chip, circuit, software, logic, or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software executable by a controller, microprocessor, or other computing device, although the present disclosure is not limited thereto. Although the various aspects of the exemplary embodiments of the present disclosure may be illustrated and described as block diagrams, flowcharts, or using some other graphical representation, it will be understood that the blocks, apparatus, systems, techniques, or methods described herein may be implemented as non-limiting examples in hardware, software, firmware, dedicated circuits or logic, general hardware or a controller, or other computing devices, or some combination thereof.
[0130] Thus, it should be recognized that at least some aspects of the exemplary embodiments of the present disclosure may be practiced in various components such as integrated circuit chips and modules. It should thus be recognized that the exemplary embodiments of the present disclosure may be implemented in an apparatus embodied as an integrated circuit, where the integrated circuit may include circuitry (and possibly firmware) for embodying at least one or more of a data processor, a digital signal processor, a baseband circuit, and a radio frequency circuit that may be configured to operate according to the exemplary embodiments of the present disclosure.
[0131] It should be understood that at least some aspects of the exemplary embodiments of the present disclosure may be embodied in computer-executable instructions executed by one or more computers or other devices, such as in one or more program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types when executed by a processor in a computer or other device. The computer-executable instructions may be stored on a computer-readable medium such as a hard disk, optical disk, removable storage medium, solid-state memory, random access memory (RAM), etc. As can be understood by those skilled in the art, the functions of program modules may be combined or distributed as needed in various embodiments. Additionally, the functions may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field-programmable gate arrays (FPGAs), etc.
[0132] The present disclosure includes any novel feature or combination of features explicitly disclosed herein or any generalization thereof. Given the foregoing description, various modifications and adaptations of the foregoing exemplary embodiments of the present disclosure may become apparent to those skilled in the relevant art when read in conjunction with the accompanying drawings. However, any and all modifications will still fall within the scope of the non-limiting and exemplary embodiments of the present disclosure.
Claims
1. A method (300) implemented at a terminal device, comprising: Obtaining (302) the network address of another terminal device from a message broker, where the terminal device and the other terminal device are registered with the message broker, and at least one of the terminal device and the other terminal device is connected to a cellular network; wherein one of the terminal device and the other terminal device includes a drone or a robot, and the other of the terminal device and the other terminal device includes a controller for the drone or the robot; Initiating (304) a connectivity check process to determine one or more candidate paths through which the terminal device has peer connectivity with the other terminal device, wherein the one or more candidate paths are from at least two paths associated with the network address of the other terminal device; Selecting (306) a path for the terminal device and the other terminal device from the one or more candidate paths, at least in part based on predefined criteria.
2. The method according to claim 1, wherein The at least two paths include two or more paths among a local path, a public path, and a relay path, and wherein the local path is associated with an internal network address of the other terminal device, and the public path and the relay path are associated with an external network address of the other terminal device.
3. The method according to claim 1 or 2, further comprising: Querying at least one of the network addresses of the terminal device from a server that supports traversal for network address translation.
4. The method according to claim 3, wherein The network address of the other terminal device includes one or more network addresses queried by the other terminal device from the server.
5. The method according to claim 3, further comprising: Sending the network address of the terminal device to the other terminal device via the message broker.
6. The method according to claim 1 or 2, wherein The predefined criteria include one or more of the following requirements: A latency requirement; A bandwidth requirement; and A reliability requirement.
7. The method according to claim 1 or 2, wherein The connectivity check process is at least in part based on at least one of the following techniques: Session Traversal Utilities for Network Address Translation; and Traversal using relays around network address translation.
8. The method according to claim 1 or 2, further comprising: Establishing a peer connection for the terminal device and the other terminal device via the selected path over the cellular network.
9. The method according to claim 8, wherein, Establishing the peer connection includes: Exchanging one or more connection establishment messages with the other terminal device via the message broker.
10. A terminal device (700), comprising: One or more processors (701); And One or more memories (702) including computer program code (703), The one or more memories (702) and the computer program code (703) are configured to, together with the one or more processors (701), cause the terminal device (700) to at least: Obtain the network address of another terminal device from a message broker, where the terminal device and the other terminal device are registered with the message broker, where at least one of the terminal device and the other terminal device is connected to a cellular network, where one of the terminal device and the other terminal device includes a drone or a robot, and the other of the terminal device and the other terminal device includes a controller for the drone or the robot; Initiate a connectivity check process to determine one or more candidate paths through which the terminal device has peer connectivity with the other terminal device, where the one or more candidate paths are from at least two paths associated with the network address of the other terminal device; Select, at least in part based on predefined criteria, a path for the terminal device and the other terminal device from the one or more candidate paths.
11. The terminal device according to claim 10, wherein, The one or more memories and the computer program code are configured to, together with the one or more processors, cause the terminal device to implement the method according to any one of claims 2-9.
12. A method (400) implemented at a terminal device, comprising: Collect (402) the network address of the terminal device; Send (404) the network address of the terminal device to another terminal device via a message broker, where the terminal device and the other terminal device are registered with the message broker, where at least one of the terminal device and the other terminal device is connected to a cellular network; where one of the terminal device and the other terminal device includes a drone or a robot, and the other of the terminal device and the other terminal device includes a controller for the drone or the robot; and Respond (406) to a connectivity check process initiated by the other terminal device to determine one or more candidate paths through which the other terminal device has peer connectivity with the terminal device, such that the other terminal device selects, at least in part based on predefined criteria, a path for the terminal device and the other terminal device from the one or more candidate paths, where the one or more candidate paths are from at least two paths associated with the network address of the terminal device.
13. The method according to claim 12, wherein, The at least two paths include two or more paths among a local path, a public path, and a relay path, and where the local path is associated with an internal network address of the other terminal device, and the public path and the relay path are associated with an external network address of the other terminal device.
14. The method according to claim 12, wherein Collecting the network address of the terminal device includes: Query at least one network address of the terminal device from a server that supports traversal for network address translation.
15. The method according to claim 14, further comprising: Obtain the network address of the other terminal device from the message broker.
16. The method according to claim 15, wherein The network address of the other terminal device includes one or more network addresses queried by the other terminal device from the server.
17. The method according to any one of claims 12 to 16, wherein The predefined criteria include one or more of the following requirements: Latency requirement; Bandwidth requirement; and Reliability requirement.
18. The method according to any one of claims 12 to 16, wherein, The connectivity check process is at least partially based on at least one of the following techniques: Session Traversal Utilities for Network Address Translation; and Traversal using relays around Network Address Translation.
19. The method according to any one of claims 12 to 16, further comprising: Establishing a peer connection for the terminal device and the other terminal device via a selected path on the cellular network.
20. The method according to claim 19, wherein, Establishing the peer connection includes: Exchanging one or more connection establishment messages with the other terminal device via the message broker.
21. A terminal device (700), comprising: One or more processors (701); And One or more memories (702) including computer program code (703), The one or more memories (702) and the computer program code (703) are configured to, together with the one or more processors (701), cause the terminal device (700) to at least: Collect the network address of the terminal device; Send the network address of the terminal device to another terminal device via a message broker, where the terminal device and the other terminal device are registered with the message broker, wherein at least one of the terminal device and the other terminal device is connected to a cellular network, wherein one of the terminal device and the other terminal device includes a drone or a robot, and the other of the terminal device and the other terminal device includes a controller for the drone or the robot; and Respond to a connectivity check process initiated from the other terminal device to determine one or more candidate paths, the other terminal device having peer connectivity with the terminal device via the one or more candidate paths, such that the other terminal device selects a path for the terminal device and the other terminal device from the one or more candidate paths at least partially based on predefined criteria, wherein the one or more candidate paths are from at least two paths associated with the network address of the terminal device.
22. The terminal device according to claim 21, wherein, The one or more memories and the computer program code are configured to, together with the one or more processors, cause the terminal device to implement the method according to any one of claims 13 - 20.
23. A method (500) implemented at a message broker, comprising: Registering (502) a terminal device and another terminal device at the message broker, wherein at least one of the terminal device and the other terminal device is connected to a cellular network, wherein one of the terminal device and the other terminal device includes a drone or a robot, and the other of the terminal device and the other terminal device includes a controller for the drone or the robot; Obtaining (504) the network address of the terminal device from the terminal device; and Forward (506) the network address of the terminal device to the other terminal device so that the other terminal device can select, from at least two paths associated with the network address of the terminal device, a path through which the other terminal device has peer connectivity with the terminal device.
24. The method according to claim 23, further comprising: Obtaining the network address of the other terminal device from the other terminal device; And Forwarding the network address of the other terminal device to the terminal device so that the terminal device can select, from at least two paths associated with the network address of the other terminal device, a path through which the terminal device has connectivity with the other terminal device.
25. The method according to claim 23 or 24, further comprising: Transmitting one or more connection establishment messages exchanged between the terminal device and the other terminal device, wherein the one or more connection establishment messages are related to the establishment of a peer connection for the terminal device and the other terminal device.
26. An agent device (700), comprising: One or more processors (701); And One or more memories (702) including computer program code (703), The one or more memories (702) and the computer program code (703) are configured to, together with the one or more processors (701), cause the agent device (700) to at least: Register a terminal device and another terminal device at the agent device, wherein at least one of the terminal device and the other terminal device is connected to a cellular network, one of the terminal device and the other terminal device includes a drone or a robot, and the other of the terminal device and the other terminal device includes a controller of the drone or the robot; Obtaining the network address of the terminal device from the terminal device; And Forwarding the network address of the terminal device to the other terminal device so that the other terminal device can select, from at least two paths associated with the network address of the terminal device, a path through which the other terminal device has peer connectivity with the terminal device.
27. The agent device according to claim 26, wherein the one or more memories and the computer program code are configured to, together with the one or more processors, cause the agent device to implement the method according to any one of claims 24-25.
28. A method (600) implemented at a server, comprising: Receiving (602) an address request from a terminal device, wherein the server supports traversal for network address translation; Determining (604) at least one network address of the network addresses of the terminal device at least partially based on the address request; And Sending (606) a response to the address request to the terminal device, wherein the response includes the at least one network address of the network addresses of the terminal device, and Wherein, the network address of the terminal device is adapted to enable another terminal device to select, from at least two paths associated with the network address of the terminal device, a path through which the other terminal device has peer connectivity with the terminal device, and wherein at least one of the terminal device and the other terminal device is connected to a cellular network.
29. The method according to claim 28, further comprising: Receiving, from the other terminal device, another address request; Determining at least one network address of the other terminal device, at least in part based on the other address request; And Sending, to the other terminal device, another response to the other address request, wherein the other response includes the at least one network address of the other terminal device, Wherein the network address of the other terminal device is adapted to enable the terminal device to select, from at least two paths associated with the network address of the other terminal device, a path through which the terminal device has connectivity with the other terminal device.
30. A server device (700), comprising: One or more processors (701); And One or more memories (702) including computer program code (703), The one or more memories (702) and the computer program code (703) are configured to, together with the one or more processors (701), cause the server device (700) to at least: Receive an address request from a terminal device, wherein the server device supports traversal for network address translation; Determine at least one network address of the terminal device, at least in part based on the address request; And Send a response to the address request to the terminal device, wherein the response includes the at least one network address of the terminal device, and Wherein the network address of the terminal device is adapted to enable another terminal device to select, from at least two paths associated with the network address of the terminal device, a path through which the other terminal device has peer connectivity with the terminal device, and wherein at least one of the terminal device and the other terminal device is connected to a cellular network, wherein one of the terminal device and the other terminal device includes a drone or a robot, and the other of the terminal device and the other terminal device includes a controller of the drone or the robot.
31. The server device according to claim 30, wherein, The one or more memories and the computer program code are configured to, together with the one or more processors, cause the server device to implement the method according to claim 29.
Citation Information
Patent Citations
Determining connectivity between endpoints in a network
EP2001204A1
Method and apparatus for network address translation and firewall traversal
US20150188882A1
Communication Channel Management for Real-Time Applications
US20150350599A1
Media Session between Network Endpoints
US20170142164A1