IP Library Granted Patent US 10,320,634
Granted Patent B2
US 10,320,634 · App. 15/395,887 · Granted Jun 11, 2019

Data communications employing packet report messages

Inventors: Sascha Kuemmel (Langebrueck, DE); Gregor Jasny (Dresden, DE); Jupp Mueller (Dresden, DE); Robert Chalmers (Longview, WA)
Assignee: LogMeIn, Inc.
H04L43/062H04L43/0829
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 10,320,634
App. No.
15/395,887
Granted
Jun 11, 2019
Kind
B2
Abstract

In communication between first and second endpoints, packets include respective sequence numbers reflecting a sequential order of transmission. The second endpoint (1) identifies reception times for the packets, and stores the sequence number and reception time of each received packet, and (2) sends packet report messages to the first endpoint, each identifying (i) a respective received packet by its position within the sequential order of transmission of the packets, and (ii) the reception time of the received packet. The first endpoint (1) receives the packet report messages from the second endpoint, and (2) processes the packet report messages to (i) detect missing packets not identified as received in the packet report messages, and initiating re-transmission of the missing packets, and (ii) based on the reception times for the received packets, calculate time-based performance characteristics for the communications link for use in higher-level control of the communications link.

Claims (42)

1. A method of communication between a first endpoint system and a second endpoint system connected to the first endpoint system by a communications link on which the first endpoint system sends packets to the second endpoint system, the packets including respective sequence numbers reflecting a sequential order of transmission of the packets, the method comprising:

by the second endpoint system, (1) identifying respective reception times for the packets, and storing, for each received packet, the respective sequence number and reception time, and (2) sending packet report messages to the first endpoint system for respective received packets, each packet report message identifying (i) a received packet by its position within the sequential order of transmission of the packets, and (ii) the reception time of the received packet; and

by the first endpoint system, (1) receiving the packet report messages from the second endpoint system, and (2) processing the packet report messages to (i) detect missing packets sent to the second endpoint system and not identified as received in the packet report messages, and initiating re-transmission of the missing packets, and (ii) based on the reception times for the received packets, calculate one or more time-based performance characteristics for the communications link for use in higher-level control of usage of the communications link,

wherein the first and second endpoints implement a logical connection using an application-level transport on the communications link, and wherein the packets are of the application-level transport and are structured to include a control portion and a channel portion, and wherein (1) the first endpoint system sends application data to the second endpoint system in the channel portion of the packets sent to the second endpoint system, and (2) the second endpoint system sends the packet report messages to the first endpoint system as control messages in the control portion of packets sent from the second endpoint system to the first endpoint system,

and wherein the packet report messages have structure including a variable number of reports along with a report-count identifying a number of reports included in a respective packet report message, each report identifying a respective received packet and the reception time thereof.

2. The method of claim 1 , wherein the reports of a packet report message are included in a report block of the packet report message and relate to an ordered set of packets that have been received.

3. The method of claim 2 , wherein the packet reports have a variable structure according to distinct report types including a long report, a short report, and a times report, the report type for a given report being identified in a control field of the report, the long report including full-length values for a packet sequence number and a reception time, the short report including differential values for a packet sequence difference and a time difference relative to a preceding report, and the times report including a differential value for the time difference relative to a preceding report and implicitly identifying a respective packet as immediately following the packet for the preceding report in the sequential order of transmission.

4. The method of claim 3 , wherein the second endpoint uses the distinct report types as follows:

issuing long reports until a first-sent long report has been confirmed as received by the first endpoint, and then switches to issuing short reports and times reports referring to previously confirmed reports;

issuing a short report when at least one previously sent packet report message has not yet been confirmed as received by the first endpoint system; and

issuing a times report when reporting receipt of packets sequentially following a packet identified as received in a preceding packet report message confirmed as received by the first endpoint system.

5. The method of claim 1 , wherein the packet reporting of the packet report messages is protected by a distinct reliability protocol in which the packet report messages include respective packet report sequence numbers, and the first endpoint responds to each packet report message by sending a packet report confirmation message including the packet report sequence number of a corresponding packet report message that has been received.

6. The method of claim 5 , wherein each packet report message contains a strictly monotonic messageSequence as well as a previousSequence which is a reference to a messageSequence of a preceding packet report message that has been positively confirmed.

7. The method of claim 6 , wherein the second endpoint sends new packet report messages without waiting for confirmation of receipt of all preceding packet report messages, and wherein multiple new packet report messages (1) each include the same previousSequence to refer a same preceding packet report message that has been confirmed, and (2) contain a potentially growing set of reports that represent all packets received since the preceding packet report message containing previousSequence was sent.

8. The method of claim 7 , wherein the first endpoint sends each packet report confirmation message as a control message in the control portion of the logical connection of the application-level transport.

9. The method of claim 1 , wherein each packet includes a packet header followed by messages grouped into two distinct message-chains for the control portion and channel portion respectively, each message-chain having a sequence of messages logically grouped by associated functionality, a control message-chain including control messages related to setup and control of the logical connection, a channel message-chain including channel messages related to setup and usage of channels used to deliver application data.

10. The method of claim 1 , wherein the application-level transport is logically above a network-level transport used in the communications link, and the packets of the application-level transport are carried in respective frames or packets of the network-level transport.

11. A method of operating a second endpoint system connected to a first endpoint system by a communications link on which the first endpoint system sends packets to the second endpoint system, the packets including respective sequence numbers reflecting a sequential order of transmission of the packets, the method comprising:

identifying respective reception times for the packets, and storing, for each received packet, the respective sequence number and reception time; and

sending packet report messages to the first endpoint system for respective received packets, each packet report message identifying (i) a received packet by its position within the sequential order of transmission of the packets, and (ii) the reception time of the received packet,

wherein the first and second endpoints implement a logical connection using an application-level transport on the communications link, and wherein the packets are of the application-level transport and are structured to include a control portion and a channel portion, and wherein (1) the first endpoint system sends application data to the second endpoint system in the channel portion of the packets sent to the second endpoint system, and (2) the second endpoint system sends the packet report messages to the first endpoint system as control messages in the control portion of packets sent from the second endpoint system to the first endpoint system,

and wherein the packet report messages have structure including a variable number of reports along with a report-count identifying a number of reports included in a respective packet report message, each report identifying a respective received packet and the reception time thereof.

12. The method of claim 11 , wherein:

the reports of a packet report message are included in a report block of the packet report message and relate to an ordered set of packets that have been received; and

the packet reports have a variable structure according to distinct report types including a long report, a short report, and a times report, the report type for a given report being identified in a control field of the report, the long report including full-length values for a packet sequence number and a reception time, the short report including differential values for a packet sequence difference and a time difference relative to a preceding report, and the times report including a differential value for the time difference relative to a preceding report and implicitly identifying a respective packet as immediately following the packet for the preceding report in the sequential order of transmission.

13. The method of claim 12 , wherein the second endpoint uses the distinct report types as follows:

issuing long reports until a first-sent long report has been confirmed as received by the first endpoint, and then switches to issuing short reports and times reports referring to previously confirmed reports;

issuing a short report when at least one previously sent packet report message has not yet been confirmed as received by the first endpoint system; and

issuing a times report when reporting receipt of packets sequentially following a packet identified as received in a preceding packet report message confirmed as received by the first endpoint system.

14. The method of claim 11 , wherein:

the packet reporting of the packet report messages is protected by a distinct reliability protocol in which the packet report messages include respective packet report sequence numbers, and the first endpoint responds to each packet report message by sending a packet report confirmation message including the packet report sequence number of a corresponding packet report message that has been received;

each packet report message contains a monotonic messageSequence as well as a previousSequence which is a reference to a messageSequence of a preceding packet report message that has been positively confirmed; and

the second endpoint sends new packet report messages without waiting for confirmation of receipt of all preceding packet report messages, and wherein multiple new packet report messages (1) each include the same previousSequence to refer a same preceding packet report message that has been confirmed, and (2) contain a potentially growing set of reports that represent all packets received since the preceding packet report message containing previousSequence was sent.

15. The method of claim 11 , wherein each packet includes a packet header followed by messages grouped into two distinct message-chains for the control portion and channel portion respectively, each message-chain having a sequence of messages logically grouped by associated functionality, a control message-chain including control messages related to setup and control of the logical connection, a channel message-chain including channel messages related to setup and usage of channels used to deliver application data.

16. The method of claim 11 , wherein the application-level transport is logically above a network-level transport used in the communications link, and the packets of the application-level transport are carried in respective frames or packets of the network-level transport.

17. A method of operating a first endpoint system connected to a second endpoint system by a communications link on which the first endpoint system sends packets to the second endpoint system, the packets including respective sequence numbers reflecting a sequential order of transmission of the packets, the method comprising:

receiving the packet report messages from the second endpoint system for respective packets received by the second endpoint system, each packet report message identifying (i) a received packet by its position within the sequential order of transmission of the packets, and (ii) the reception time of the received packet; and

processing the packet report messages to (i) detect missing packets sent to the second endpoint system and not identified as received in the packet report messages, and initiating re-transmission of the missing packets, and (ii) based on the reception times for the received packets, calculate one or more time-based performance characteristics for the communications link for use in higher-level control of usage of the communications link,

wherein the first and second endpoints implement a logical connection using an application-level transport on the communications link, and wherein the packets are of the application-level transport and are structured to include a control portion and a channel portion, and wherein (1) the first endpoint system sends application data to the second endpoint system in the channel portion of the packets sent to the second endpoint system, and (2) the second endpoint system sends the packet report messages to the first endpoint system as control messages in the control portion of packets sent from the second endpoint system to the first endpoint system,

and wherein the packet report messages have structure including a variable number of reports along with a report-count identifying a number of reports included in a respective packet report message, each report identifying a respective received packet and the reception time thereof.

18. The method of claim 17 , wherein each packet includes a packet header followed by messages grouped into two distinct message-chains for the control portion and channel portion respectively, each message-chain having a sequence of messages logically grouped by associated functionality, a control message-chain including control messages related to setup and control of the logical connection, a channel message-chain including channel messages related to setup and usage of channels used to deliver application data.

19. The method of claim 17 , wherein the application-level transport is logically above a network-level transport used in the communications link, and the packets of the application-level transport are carried in respective frames or packets of the network-level transport.

Assignments (11)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 053667/0169, REEL/FRAME 060450/0171, REEL/FRAME 063341/0051) Recorded Mar 15, 2024
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: GOTO GROUP, INC. (F/K/A LOGMEIN, INC.)
Reel/Frame 066800/0145 →
SECURITY INTEREST Recorded Feb 16, 2024
From: GOTO COMMUNICATIONS, INC.; GOTO GROUP, INC.; LASTPASS US LP
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS THE NOTES COLLATERAL AGENT
Reel/Frame 066614/0355 →
SECURITY INTEREST Recorded Feb 16, 2024
From: GOTO COMMUNICATIONS, INC.,; GOTO GROUP, INC., A; LASTPASS US LP,
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS THE NOTES COLLATERAL AGENT
Reel/Frame 066614/0402 →
SECURITY INTEREST Recorded Feb 7, 2024
From: GOTO GROUP, INC.,; GOTO COMMUNICATIONS, INC.; LASTPASS US LP
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 066508/0443 →
CHANGE OF NAME Recorded Apr 8, 2022
From: LOGMEIN, INC.
To: GOTO GROUP, INC.
Reel/Frame 059644/0090 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (SECOND LIEN) Recorded Feb 16, 2021
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: LOGMEIN, INC.
Reel/Frame 055306/0200 →
NOTES LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: LOGMEIN, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 053667/0032 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: LOGMEIN, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 053667/0079 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: LOGMEIN, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 053667/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2019
From: GETGO, INC.
To: LOGMEIN, INC.
Reel/Frame 049843/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2017
From: KUEMMEL, SASCHA; JASNY, GREGOR; MUELLER, JUPP; CHALMERS, ROBERT
To: GETGO, INC.
Reel/Frame 041078/0791 →
Continuity (1)
Related Publication 20180191588A1 · Jul 5, 2018