# US 8,276,035 B1 · High performance digital communications resiliency in a roamable virtual private network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,276,035 B1
- Document ID: US8276035B1
- Status: Granted
- Kind: B1
- Application number: 12/435,018
- Filed: 2009-05-04
- Granted: 2012-09-25
- Earliest claimed: 2008-07-28
- Assignees: Netmotion Wireless, Inc.
- Inventors: Joseph T. Savarese; Erik Olson; Michael Snyder; David Thompson; Emil Sturniolo
- Web page: https://patentgrep.com/patent/US8276035B1

## CPC

- H04L 1/0007: {by modifying the frame length}
- H04L 1/188: {Time-out mechanisms}
- H04L 1/0057: {Block codes (H04L1/0061, H04L1/0064 take precedence)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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

### Claim 8 (depends on 1)

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

### Claim 9 (depends on 1)

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.

### Claim 10 (depends on 1)

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

### Claim 11 (depends on 1)

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

### Claim 12 (depends on 1)

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

### Claim 13 (depends on 1)

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.

### Claim 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.

### Claim 15 (depends on 14)

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.

### Claim 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.

### Claim 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.

### Claim 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.
