IP Library Granted Patent US 11,032,219
Granted Patent B2
US 11,032,219 · App. 14/978,316 · Granted Jun 8, 2021

Network aware application dependent adaptive protocol selection for IoT communications

Inventors: John Brady (Celbridge, IE); Wael Guibene (Leixlip, IE); Keith Nolan (Mullingar, IE); Michael Nolan (Maynooth, IE); Mark Kelly (Leixlip, IE)
Assignee: Intel Corporation
H04L51/04H04L51/066
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,032,219
App. No.
14/978,316
Granted
Jun 8, 2021
Kind
B2
Abstract

Disclosed in some examples are methods, systems, and devices which perform automatic selection of an application-layer communication protocol based upon one or more communication characteristics of the sending application and one or more characteristics of the network connection between the sending device and the recipient. The selection of which protocol to use may be made on a message-by-message basis, periodically at various intervals (e.g., every predetermined time period), once upon application initialization, or the like. By dynamically selecting an application-layer communications protocol, an application may leverage the advantages of a specific protocol given the communication characteristics of the application and characteristics of the network connection at that time.

Claims (61)

1. A method for communicating with a remote device, the method comprising:

using a computer processor and a network interface:

discovering, by communicating with the remote device, a set of at least two supported application-layer communications protocols of the remote device;

receiving a message from a source application executing on the computer processor;

selecting a first application-layer communications protocol from the set of supported application-layer communications protocols for transmission of the message, the selection based upon a characteristic of a computer network used to communicate with the remote device and a communication characteristic of the source application of the message;

constructing the message according to the first application-layer communications protocol;

transmitting the message to the remote device over the computer network using the first application-layer communications protocol and the network interface; and

subsequent to transmitting the message:

selecting a second application-layer communications protocol from the set of supported application-layer communications protocols, the second application-layer communications protocol different from the first application-layer communications protocol;

constructing a second message from the source application according to the second application-layer communications protocol; and

transmitting the second message to the remote device over the computer network using the second application-layer communications protocol.

2. The method of claim 1 , wherein the set of at least two supported application-layer communications protocols comprise two or more of: a HyperText Transfer Protocol (HTTP), a Constrained Application Protocol (CoAP), MQ Telemetry Transport (MQTT) protocol, and an OPC Unified Architecture (UA) protocol.

3. The method of claim 1 , wherein discovering the set of supported application-layer communications protocols of the remote device comprises requesting available message brokers from the remote device using a Hypertext Transfer Protocol (HTTP) GET request.

4. The method of claim 1 , wherein selecting the first application-layer communications protocol from the set of supported application-layer communications protocols for transmission of the message, the selection based upon the characteristic of the network used to communicate with the remote device and the communication characteristic of the source application comprises:

detecting the characteristic of the computer network;

determining the communication characteristic of the source application;

selecting rows of a database matching the characteristic of the computer network and the communication characteristic of the source application; and

selecting the first application-layer communications protocol corresponding to a selected row that has a lowest transmission time.

5. The method of claim 4 , wherein the characteristic of the computer network is one of: one way latency, two way latency, packet loss, jitter, bandwidth, bit-error rate, error rate, or availability.

6. The method of claim 5 , wherein the communication characteristic is one of: one-way latency tolerance, two-way latency tolerance, packet loss tolerance, jitter tolerance, bandwidth requirements, whether an acknowledgement is required, bit-error rate tolerance, error rate tolerances, availability, whether the message needs to be delivered at least once, or whether the message may only be delivered once.

7. The method of claim 6 , comprising, updating the database based upon a communication parameter of the transmitted message.

8. A device comprising:

a processor;

a network interface; and

a non-transitory machine readable medium, comprising instructions, which when performed by the processor, cause the processor to:

discover, by communications with the remote device, a set of at least two supported application-layer communications protocols of a remote device;

receive a message from a source application executing on the computer processor;

select a first application-layer communications protocol from of the set of supported application-layer communications protocols for transmission of the message, the selection based upon a characteristic of a computer network used to communicate with the remote device and a communication characteristic of the source application of the message;

construct the message according to the first application-layer communications protocol;

transmit the message to the remote device over the computer network using the first application-layer communications protocol and the network interface; and

subsequent to transmitting the message:

select a second application-layer communications protocol from the set of supported application-layer communication protocols, the second application-layer communications protocol different from the first application-layer communications protocol;

construct a second message from the source application according to the second application-layer communications protocol; and

transmit the second message to the remote device over the computer network using the second application-layer communications protocol.

9. The device of claim 8 , wherein the set of at least two supported application-layer communications protocols comprises two or more of: a HyperText Transfer Protocol (HTTP), a Constrained Application Protocol (CoAP), MQ Telemetry Transport (MQTT) protocol, and an OPC Unified Architecture (UA) protocol.

10. The device of claim 8 , wherein the instructions that cause the processor to discover the set of supported application-layer communications protocols of the remote device comprises instructions to cause the processor to: request available message brokers from the remote device using a Hypertext Transfer Protocol (HTTP) GET request.

11. The device of claim 8 , wherein the instructions that cause the processor to select the first application-layer communications protocol from the set of supported application-layer communications protocols based upon the characteristic of the network used to communicate with the remote device and the communication characteristic of the source application comprises the instructions to cause the processor to:

detect the characteristic of the computer network;

determine the communication characteristic of the source application;

select rows of a database matching the characteristic of the computer network and the communication characteristic of the source application; and

select the first application-layer communications protocol corresponding to a selected row that has a lowest transmission time.

12. The device of claim 11 , wherein the characteristic of the computer network is one of: one way latency, two way latency, packet loss, jitter, bandwidth, bit-error rate, error rate, or availability.

13. The device of claim 11 , wherein the communication characteristic is one of: one-way latency tolerance, two-way latency tolerance, packet loss tolerance, jitter tolerance, bandwidth requirements, whether an acknowledgement is required, bit-error rate tolerance, error rate tolerances, availability, whether the message needs to be delivered at least once, or whether the message may only be delivered once.

14. The device of claim 11 , wherein the instructions comprise instructions to cause the processor to: update the database based upon a communication parameter of the transmitted message.

15. A non-transitory machine readable medium, comprising instructions, which when performed by the machine, cause the machine to:

discover, through communication with the remote device, a set of at least two supported application-layer communications protocols of a remote device;

receive a message from a source application executing on the machine;

select a first application-layer communications protocol from of the set of supported application-layer communications protocols for transmission of the message, the selection based upon a characteristic of a computer network used to communicate with the remote device and a communication characteristic of the source application of the message;

construct the message according to the first application-layer communications protocol;

transmit the message to the remote device over the computer network using the first application-layer communications protocol; and

subsequent to transmitting the message:

select a second application-layer communications protocol from the set of supported application-layer communication protocols, the second application-layer communication protocol different from the first application-layer communication protocol;

construct a second message from the source application according to the second application-layer communication protocol; and

transmit the second message to the remote device over the computer network using the second application-layer communication protocol.

16. The non-transitory machine readable medium of claim 15 , wherein the set of at least two supported application-layer communications protocols comprises two or more of: a HyperText Transfer Protocol (HTTP), a Constrained Application Protocol (CoAP), MQ Telemetry Transport (MQTT) protocol, and an OPC Unified Architecture (UA) protocol.

17. The non-transitory machine readable medium of claim 15 , wherein the instructions that cause the machine to discover the set of supported application-layer communications protocols of the remote device comprises instructions to cause the machine to: request available message brokers from the remote device using a Hypertext Transfer Protocol (HTTP) GET request.

18. The non-transitory machine readable medium of claim 15 , wherein the instructions that cause the machine to select the first application-layer communications protocol from the set of supported application-layer communications protocols based upon the characteristic of the network used to communicate with the remote device and the communication characteristic of the source application comprises instructions to cause the machine to:

detect the characteristic of the computer network;

determine the communication characteristic of the source application;

select rows of a database matching the characteristic of the computer network and the communication characteristic of the source application; and

select the first application-layer communications protocol corresponding to a selected row that has a lowest transmission time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2016
From: BRADY, JOHN; GUIBENE, WAEL; NOLAN, KEITH; NOLAN, MICHAEL; KELLY, MARK
To: INTEL CORPORATION
Reel/Frame 037777/0663 →
Continuity (1)
Related Publication 20170180277A1 · Jun 22, 2017