IP Library Granted Patent US 8,276,035
Granted Patent B1
US 8,276,035 · App. 12/435,018 · Granted Sep 25, 2012

High performance digital communications resiliency in a roamable virtual private network

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 8,276,035
App. No.
12/435,018
Granted
Sep 25, 2012
Kind
B1
Abstract

There is a class of applications that favor expediency of the communications over reliability. Counter-intuitively, the reliability aspect of a protocol may cause sub-optimal performance when considering this special class of applications in some environments. To resolve this performance issue, the exemplary illustrative non-limiting protocol implementation favors timeliness over reliability by allowing for loss of data, thus providing a non-guaranteed, order sensitive level of service. Such features can be combined in the same system and data stream/channel with a guaranteed-reliable protocol to provide a roamable VPN simultaneously providing both guaranteed-reliable and real-time, dynamically adaptable performance.

Claims (41)

1. A method of communicating first and second data streams over a network between a first node and a second node, comprising:

(a) packetizing a first data stream for transmission using a substantially guaranteed reliable communication protocol providing retransmission upon no acknowledgement;

(b) packetizing a second, real time data stream for transmission using an unreliable communication protocol that does not provide retransmission upon no acknowledgement;

(c) inserting first data stream packets and second data stream packets into a common transmission frame structure; and

(d) using at least one processor, automatically selectively protecting said second data stream packets but not said first data stream packets with a forward error correction having a block size that is dynamically adjusted based on network conditions,

wherein said selectively protecting adapts to ephemeral port allocation.

2. The method of claim 1 wherein said selectively protecting comprises delivering said second data stream packets with degrees of error correction that dynamically take timeliness and network conditions into account.

3. The method of claim 1 wherein said selectively protecting includes selectively applying optimizations depending on the application said second data stream is associated with.

4. The method of claim 1 wherein said selectively protecting includes automatically distinguishing between application protocol streams.

5. The method of claim 1 wherein said selectively protecting includes applying packet sized variance per K block.

6. The method of claim 1 wherein said selectively protecting includes providing N/K forward error correction and dynamically changing N based on at least one of packet size variance and observed decode error rate.

7. The method of claim 1 wherein said selectively protecting includes providing forward error correction for a number of parity packets N−K>K.

8. The method of claim 1 wherein said selectively protecting includes tuning optimizations to maintain acceptable real time data communication performance.

9. The method of claim 1 wherein said inserting comprises coalescing together real time data from different sources into a single frame structure and forwarding the frame structure including said coalesced data for demultiplexing at a receiver.

10. The method of claim 1 further including applying stream enciphering using counter mode.

11. The method of claim 1 further including applying quality of service marking to said streams.

12. The method of claim 1 further including allowing network point of presence to change without substantially affecting data flow.

13. The method of claim 1 further including using a depth limited queue and applying a head-end discard mechanism to effectively flush aged state data of said queue.

14. A system for transmitting first and second data streams over a network, comprising:

a packetizer that packetizes a first data stream for transmission using a substantially guaranteed reliable communication protocol providing retransmission upon no acknowledgement, and packetizes a second, real time data stream for transmission using an unreliable communication protocol that does not provide retransmission upon no acknowledgement;

an encoder that selectively protects said second data stream packets but not said first data stream packets with a forward error correction having a number of data packets per block K that is dynamically adjusted based on network conditions and having a total number N of packets per block;

a frame generator configured to insert first data stream packets and second data stream packets into a common frame structure for transmission; and

a transmitter that transmits said common frame structure,

wherein said transmitter transmits blocks with a number of parity packets N−K>K.

15. The system of claim 14 wherein said encoder dynamically monitors packet size variance to selective and dynamically adjusts the degree of forward error correction overhead to thereby take network congestion and other factors into account, thereby maximizing the benefit of forward error correction while minimizing potential adverse impact on network overhead and timeliness.

16. A system for transmitting first and second data streams over a network, comprising:

an encoder that selectively encodes first and second real time data streams with forward error correction, the encoder being configured to (a) packetize the first data stream for transmission using a substantially guaranteed reliable communication protocol providing retransmission upon no acknowledgement, (b) packetize the second, real time data stream for transmission using an unreliable communication protocol that does not provide retransmission upon no acknowledgement, (c) insert first data stream packets and second data stream packets into a common transmission frame structure, and (d) selectively protect said second data stream packets but not said first data stream packets with a forward error correction having a block size that is dynamically adjusted based on network conditions; and

a transmitter that transmits said encoded stream using an unreliable communication protocol that does not provide retransmission upon no acknowledgement,

wherein said encoder dynamically monitors packet size variance to selectively and dynamically adjust the degree of forward error correction overhead to thereby take at least one network condition including network congestion into account, thereby reducing potential adverse impact of said forward error correction on bandwidth constraints and timeliness.

17. A method of communicating first and second data streams over a network between a first node and a second node, comprising:

(a) packetizing a first data stream for transmission using a substantially guaranteed reliable communication protocol providing retransmission upon no acknowledgement;

(b) packetizing a second, real time data stream for transmission using an unreliable communication protocol that does not provide retransmission upon no acknowledgement;

(c) inserting first data stream packets and second data stream packets into a common transmission frame structure; and

(d) selectively protecting said second data stream packets but not said first data stream packets with a forward error correction having a block size that is dynamically adjusted based on network conditions,

wherein said selectively protecting includes using at least one processor to dynamically monitoring packet size variance to selectively and dynamically adjust the degree of forward error correction overhead to thereby take network congestion and other factors into account, thereby maximizing the benefit of forward error correction while minimizing potential adverse impact on network overhead and timeliness.

18. A method of communicating first and second data streams over a network between a first node and a second node, comprising:

(a) packetizing a first data stream for transmission using a substantially guaranteed reliable communication protocol providing retransmission upon no acknowledgement;

(b) packetizing a second, real time data stream for transmission using an unreliable communication protocol that does not provide retransmission upon no acknowledgement;

(c) inserting first data stream packets and second data stream packets into a common transmission frame structure; and

(d) selectively protecting said second data stream packets but not said first data stream packets with a forward error correction having a block size that is dynamically adjusted based on network conditions,

wherein said selectively protecting includes using at least one processor to automatically determine when to reduce or turn off forward error correction based on packet size variance.

Assignments (16)
SECURITY INTEREST Recorded Jul 31, 2023
From: ABSOLUTE SOFTWARE CORPORATION; MOBILE SONIC, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 064434/0284 →
RELEASE OF SECURITY INTEREST Recorded Jul 28, 2023
From: BSP AGENCY, LLC, AS COLLATERAL AGENT
To: NETMOTION SOFTWARE, INC.; NETMOTION WIRELESS HOLDINGS, INC.
Reel/Frame 064425/0370 →
MERGER Recorded Oct 18, 2022
From: NETMOTION WIRELESS HOLDINGS, INC.
To: MOBILE SONIC INTERMEDIATE, INC.
Reel/Frame 061700/0772 →
MERGER Recorded Oct 18, 2022
From: NETMOTION SOFTWARE, INC.
To: NETMOTION WIRELESS HOLDINGS, INC.
Reel/Frame 062079/0669 →
MERGER Recorded Oct 18, 2022
From: MOBILE SONIC INTERMEDIATE, INC.
To: MOBILE SONIC, INC.
Reel/Frame 061700/0675 →
SECURITY INTEREST Recorded Jul 23, 2021
From: NETMOTION SOFTWARE, INC.; NETMOTION WIRELESS HOLDINGS, INC.
To: BSP AGENCY, LLC, AS COLLATERAL AGENT
Reel/Frame 056955/0961 →
RELEASE OF SECURITY INTEREST Recorded Jul 1, 2021
From: MUFG UNION BANK, N.A., AS COLLATERAL AGENT
To: MOBILE SONIC INTERMEDIATE, INC.; NETMOTION WIRELESS HOLDINGS, INC.; NETMOTION SOFTWARE, INC.
Reel/Frame 056739/0087 →
CHANGE OF NAME Recorded Aug 26, 2020
From: NETMOTION WIRELESS, INC.
To: NETMOTION SOFTWARE, INC.
Reel/Frame 053597/0526 →
SECURITY INTEREST Recorded Aug 15, 2020
From: MOBILE SONIC INTERMEDIATE, INC.; NETMOTION WIRELESS HOLDINGS, INC.; NETMOTION SOFTWARE, INC.
To: MUFG UNION BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 053506/0256 →
RELEASE OF SECURITY INTEREST Recorded Aug 14, 2020
From: GOLUB CAPITAL LLC, AS ADMINISTRATIVE AGENT
To: NETMOTION WIRELESS, INC.; NETMOTION WIRELESS HOLDINGS, INC.
Reel/Frame 053498/0726 →
RELEASE OF SECURITY INTEREST Recorded Oct 27, 2016
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: NETMOTION WIRELESS HOLDINGS, INC.; NETMOTION WIRELESS, INC.
Reel/Frame 040154/0978 →
RELEASE OF SECURITY INTEREST Recorded Oct 25, 2016
From: CONSORTIUM FINANCE, LLC
To: NETMOTION WIRELESS HOLDINGS, INC.; NETMOTION WIRELESS, INC.; LUMENSION SECURITY, INC.
Reel/Frame 040479/0001 →
RELEASE OF SECURITY INTERESTS IN PATENTS Recorded Oct 20, 2016
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (ON BEHALF OF ITSELF AND EACH MEMBER OF THE LENDER GROUP AND THE BANK PRODUCT PROVIDERS)
To: NETMOTION WIRELESS HOLDINGS, INC.; NETMOTION WIRELESS, INC.
Reel/Frame 040424/0424 →
SECURITY INTEREST Recorded Oct 7, 2016
From: NETMOTION WIRELESS HOLDINGS, INC.; NETMOTION WIRELESS, INC.
To: GOLUB CAPITAL LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 039969/0073 →
PATENT SECURITY AGREEMENT (SECOND LIEN) Recorded Jul 23, 2014
From: NETMOTION WIRELESS HOLDINGS, INC.; NETMOTION WIRELESS, INC.; LUMENSION SECURITY, INC.
To: CONSORTIUM FINANCE, LLC
Reel/Frame 033381/0536 →
SECOND AMENDMENT TO PATENT SECURITY AGREEMENT Recorded Jul 22, 2014
From: NETMOTION WIRELESS HOLDINGS, INC.; NETMOTION WIRELESS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 033380/0679 →