Channel bonding
AssigneeWeigel Broadcasting Co.
InventorsAaron N. Levinson, Kyle B. Walker, Christopher P. Olson
Life of this patent
Estimating the term…
Abstract
A system and method for channel bonding is disclosed. The system and method enable transmission of data across multiple connections using multiple network interfaces. Further, the system and method are configured to handle slow or problematic connections and are configured to dynamically modify the bit rate of one or more media data streams.
Claims25
An apparatus configured to communicate via a plurality of network interfaces, the apparatus comprising:
- the plurality of network interfaces;
- a memory configured to store at least a part of one or more data streams in a particular bonding session;
- and
- at least one processor in communication with the plurality of network interfaces and the memory, the processor configured to:
- establish, for each of the plurality of network interfaces, a respective network connection with a remote device in order to establish a plurality of network connections;
- packetize the one or more data streams into a plurality of packets;
- transmit the plurality of packets using the plurality of network connections to the remote device for the particular bonding session;
- evaluate performance of one network connection in transmitting the packets for the particular bonding session in relation to one or more remainder network connections;
- determine, based on the evaluated performance of the one network connection in transmitting the packets for the particular bonding session in relation to the one or more remainder network connections, whether to cease using the one network connection to transmit, at least in part, the plurality of packets;
- in response to determining to cease using the one network connection to transmit, at least in part, the plurality of packets:
- cease using the one network connection to transmit, at least in part, the plurality of packets during the particular bonding session while still using the one or more remainder network connections;
- and
- establish another network connection during the particular bonding session using another network interface, from the plurality of network interfaces, the another network interface previously idle during the particular bonding session and not transmitting the plurality of packets;
- and
- in response to determining not to cease using the one network connection to transmit, at least in part, the plurality of packets, continue transmitting, at least in part, the plurality of packets using the one network connection.
An apparatus configured to communicate via a plurality of network interfaces, the apparatus comprising:
- the plurality of network interfaces;
- a memory configured to store at least a part of one or more data streams in a particular bonding session;
- and
- at least one processor in communication with the plurality of network interfaces and the memory, the processor configured to:
- establish, for a first cellular network interface and a second cellular network interface of the plurality of network interfaces, a first cellular network connection and a second cellular network connection, respectively, with a remote device;
- packetize the one or more data streams into a plurality of packets;
- transmit the plurality of packets using each of the first cellular network interface and second cellular network interface to the remote device for the particular bonding session;
- evaluate performance of the first cellular network connection in relation to performance of the second cellular network connection in transmitting the plurality of packets for the particular bonding session;
- in response to evaluating the performance of the first cellular network connection in relation to the performance of the second cellular network connection, establish for the particular bonding session a non-cellular connection using a non-cellular interface, from the plurality of network interfaces, that is currently idle, the non-cellular interface being a different type than the first cellular network interface and the second cellular network interface;
- and
- transmit packets for the particular bonding session using the non-cellular interface to the remote device.
An apparatus configured to communicate via a plurality of network interfaces, the apparatus comprising:
- the plurality of network interfaces;
- a memory configured to store at least a part of one or more data streams in a particular bonding session;
- and
- at least one processor in communication with the plurality of network interfaces and the memory, the processor configured to:
- receive an indication to transmit the one or more data streams to a remote device in the particular bonding session;
- in response to receiving the indication to transmit the one or more data streams;
- establish, for each of the plurality of network interfaces, a respective network connection with a remote device for the particular bonding session;
- packetize the one or more data streams into a plurality of packets;
- assign ownership for the particular bonding session of packets to respective ones of the plurality of network interfaces up to a respective predetermined number of packets;
- transmit, for the particular bonding session, the plurality of packets, using the respective ones of the plurality of network connections assigned ownership of the packets, to the remote device;
- determine a number of acknowledgements of owned packets for a respective one of the plurality of network interfaces during the particular bonding session;
- responsive to determining the number of the acknowledgments of the owned packets, assign to the respective one of the plurality of network interfaces additional owned packets, a number of the additional owned packets is the number of the acknowledgments of the owned packets up to the respective predetermined number of packets such that each respective one of the plurality of network interfaces is assigned a respective number of additional owned packets independently of each other based on the respective predetermined number of packets and based on the respective number of acknowledgements of the owned packets;
- and
- transmit, for the particular bonding session, the number of additional owned packets using the respective one of the plurality of network interfaces.
A method of communicating via a plurality of network interfaces, the method comprising:
- establishing, for each of the plurality of network interfaces, a respective network connection with a remote device for a particular bonding session in order to establish a plurality of network connections;
- packetizing one or more data streams into a plurality of packets;
- transmitting the plurality of packets using the plurality of network connections to the remote device for the particular bonding session;
- evaluating performance of one network connection in transmitting the packets for the particular bonding session in relation to one or more remainder network connections;
- determining, based on the evaluated performance of the one network connection in transmitting the packets in relation to the one or more remainder of the network connections, whether to cease using the one network connection to transmit, at least in part, the plurality of packets;
- in response to determining to cease using the one network connection to transmit, at least in part, the plurality of packets:
- ceasing using the one network connection to transmit, at least in part, the plurality of packets during the particular bonding session while still using the one or more remainder network connections;
- and
- establishing another network connection during the particular bonding session using another network interface, from the plurality of network interfaces, the another network interface previously idle during the particular bonding session and not transmitting the plurality of packets;
- and
- in response to determining not to cease using the one network connection to transmit, at least in part, the plurality of packets, continuing to transmit, at least in part, the plurality of packets using the one network connection.
An apparatus configured to communicate via a plurality of network interfaces, the apparatus comprising:
- the plurality of network interfaces comprising a cellular network interface and a satellite network interface;
- a memory configured to store at least a part of one or more data streams in a particular bonding session;
- and
- at least one processor in communication with the plurality of network interfaces and the memory, the processor configured to:
- establish, for the cellular network interface, a cellular network connection with a remote device;
- packetize the one or more data streams into a plurality of packets;
- transmit, via the cellular network connection to the remote device, the plurality of packets using the cellular network interface for the particular bonding session;
- evaluate performance of the cellular network connection in transmitting the plurality of packets for the particular bonding session;
- in response to evaluating the performance of the cellular network connection, establish a satellite network connection during the particular bonding session using a satellite network interface, from the plurality of network interfaces, that is currently idle, the satellite network interface being a different type than the cellular network interface;
- transmit packets using the satellite network interface to the remote device;
- operate for the particular bonding session the cellular network connection in test mode;
- analyze the cellular network connection in the test mode by determining whether the cellular network connection continues to fail;
- and
- after terminating the cellular network connection based on the analysis of the cellular network connection in test mode, re-establish connection with the cellular network connection for the particular bonding session by dynamically determining at least one criterion and using the dynamically determined criterion in order to determine whether to re-establish the connection with the cellular network connection.
Dependencies are inferred from the claim text.