Network streaming of a single data stream simultaneously over multiple physical interfaces
First Claim
1. A method for sending a data stream from a sending endpoint to a receiving endpoint, wherein the data stream is split into a series of data packets having an order and sent over multiple physical interfaces, the method comprising:
- determining an expected difference in arrival time at the receiving endpoint between respective arrival times at the receiving endpoint of data packets sent concurrently by the sending endpoint to the receiving endpoint via different ones of the multiple physical interfaces, wherein each of the multiple physical interfaces connects the sending endpoint and the receiving endpoint over a respective path;
sending a next available data packet in the order of the series of data packets to the receiving endpoint over a fastest one of the multiple physical interfaces, wherein the fastest one of the multiple physical interfaces is determined based on the determined expected difference in arrival time at the receiving endpoint;
repositioning, within the sending endpoint, a data packet which is further back in the order of the series of data packets than the next available data packet, to the front of the order of the series of data packets in accordance with the determined expected difference in arrival time at the receiving endpoint; and
sending the repositioned data packet on one of the multiple physical interfaces which is slower than the fastest one of the multiple physical interfaces before sending the next available data packet over the fastest one of the multiple physical interfaces,wherein the receiving endpoint maintains a history of the multiple physical interfaces on which ones of the extracted data packets continue to be delayed, and ones of the extracted data packets which arrive early, and creates a predictability model to more accurately predict future expected differences in arrival times.
1 Assignment
0 Petitions
Accused Products
Abstract
Sending a data stream from a sending endpoint to a receiving endpoint, wherein both of the sending endpoint and the receiving endpoint each have multiple physical interfaces connecting the sending endpoint and the receiving endpoint to multiple networks, respectively, is provided. The data stream is split into a series of data packets and sent over the multiple physical interfaces. A next available data packet of the series is sent over a fastest one of the multiple physical interfaces. A data packet from further back in the series is extracted in accordance with a determined expected difference in arrival time, and sent on a corresponding slower one of the multiple physical interfaces. The next available data packet is sent from the sending endpoint nearly simultaneously as the extracted data packet is sent from the sending endpoint.
79 Citations
28 Claims
-
1. A method for sending a data stream from a sending endpoint to a receiving endpoint, wherein the data stream is split into a series of data packets having an order and sent over multiple physical interfaces, the method comprising:
-
determining an expected difference in arrival time at the receiving endpoint between respective arrival times at the receiving endpoint of data packets sent concurrently by the sending endpoint to the receiving endpoint via different ones of the multiple physical interfaces, wherein each of the multiple physical interfaces connects the sending endpoint and the receiving endpoint over a respective path; sending a next available data packet in the order of the series of data packets to the receiving endpoint over a fastest one of the multiple physical interfaces, wherein the fastest one of the multiple physical interfaces is determined based on the determined expected difference in arrival time at the receiving endpoint; repositioning, within the sending endpoint, a data packet which is further back in the order of the series of data packets than the next available data packet, to the front of the order of the series of data packets in accordance with the determined expected difference in arrival time at the receiving endpoint; and sending the repositioned data packet on one of the multiple physical interfaces which is slower than the fastest one of the multiple physical interfaces before sending the next available data packet over the fastest one of the multiple physical interfaces, wherein the receiving endpoint maintains a history of the multiple physical interfaces on which ones of the extracted data packets continue to be delayed, and ones of the extracted data packets which arrive early, and creates a predictability model to more accurately predict future expected differences in arrival times. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for sending a data stream from a sending endpoint to a receiving endpoint, wherein the data stream is split into a series of data packets having an order and sent over multiple physical interfaces, and wherein in said method the sending endpoint performs the steps of:
-
sending a next available data packet in the order of the series of data packets to the receiving endpoint over a fastest one of the multiple physical interfaces, wherein a determination is made of an expected difference in arrival time between respective arrival times at the receiving endpoint of data packets sent concurrently by the sending endpoint to the receiving endpoint via different ones of the multiple physical interfaces, wherein each of the multiple physical interfaces connects the sending endpoint and the receiving endpoint over a respective path, and wherein the fastest one of the multiple physical interfaces is determined based on the determined expected difference in arrival time at the receiving endpoint; repositioning, within the sending endpoint, a data packet which is further back in the order of the series of data packets than the next available data packet, to the front of the order of the series of data packets in accordance with the determined expected difference in arrival time at the receiving endpoint; and sending the repositioned data packet on one of the multiple physical interfaces which is slower than the fastest one of the multiple physical interfaces before sending the next available data packet over the fastest one of the multiple physical interfaces, wherein the receiving endpoint maintains a history of the multiple physical interfaces on which ones of the extracted data packets continue to be delayed, and ones of the extracted data packets which arrive early, and creates a predictability model to more accurately predict future expected differences in arrival times. - View Dependent Claims (23)
-
-
24. A method for sending a data stream from a sending endpoint to a receiving endpoint, wherein the data stream is split into a series of data packets having an order and sent over multiple physical interfaces, and wherein in said method the receiving endpoint performs the steps of:
-
communicating a difference in arrival time between each of the sent data packets to the sending endpoint, wherein a determination is made, based on the communication, of an expected difference in arrival time at the receiving endpoint between respective arrival times at the receiving endpoint of data packets sent concurrently by the sending endpoint to the receiving endpoint via different ones of the multiple physical interfaces, and wherein each of the multiple physical interfaces connects the sending endpoint and the receiving endpoint over a respective path, and the sending endpoint sends a next available data packet in the order of the series of data packets to the receiving endpoint over a fastest one of the multiple physical interfaces, the fastest one of the multiple physical interfaces being determined based on the determined expected difference in arrival time at the receiving endpoint, repositions, within the sending endpoint, a data packet which is further back in the order of the series of data packets than the next available data packet, to the front of the order of the series of data packets in accordance with the determined difference in arrival time at the receiving endpoint, and sends the repositioned data packet on one of the multiple physical interfaces which is slower than the fastest one of the multiple physical interfaces before sending the next available data packet over the fastest one of the multiple physical interfaces, wherein the receiving endpoint maintains a history of the multiple physical interfaces on which ones of the extracted data packets continue to be delayed, and ones of the extracted data packets which arrive early, and creates a predictability model to more accurately predict future expected differences in arrival times.
-
-
25. A sending endpoint comprising:
-
a computer-readable memory constructed to store computer-executable process steps; and a processor constructed to execute the computer-executable process steps stored in the memory; wherein the process steps stored in the memory cause the processor to send a data stream from the sending endpoint to a receiving endpoint, wherein the data stream is split into a series of data packets having an order and sent over multiple physical interfaces, and wherein the process steps stored in the memory include computer-executable process steps to; send a next available data packet in the order of the series of data packets to the receiving endpoint over a fastest one of the multiple physical interfaces, wherein a determination is made of an expected difference in arrival time at the receiving endpoint between respective arrival times at the receiving endpoint of data packets sent concurrently by the sending endpoint to the receiving endpoint via different ones of the multiple physical interfaces, wherein each of the multiple physical interfaces connects the sending endpoint and the receiving endpoint over a respective path, and wherein the fastest one of the multiple physical interfaces is determined based on the determined expected difference in arrival time at the receiving endpoint; reposition, within the sending endpoint, a data packet which is further back in the order of the series of data packets than the next available data packet, to the front of the order of the series of data packets in accordance with the determined expected difference in arrival time at the receiving endpoint; and send the repositioned data packet on one of the multiple physical interfaces which is slower than the fastest one of the multiple physical interfaces before sending the next available data packet over the fastest one of the multiple physical interfaces, wherein the receiving endpoint maintains a history of the multiple physical interfaces on which ones of the extracted data packets continue to be delayed, and ones of the extracted data packets which arrive early, and creates a predictability model to more accurately predict future expected differences in arrival times.
-
-
26. A receiving endpoint comprising:
-
a computer-readable memory constructed to store computer-executable process steps; and a processor constructed to execute the computer-executable process steps stored in the memory; wherein the process steps stored in the memory cause the processor to receive a data stream sent from a sending endpoint to the receiving endpoint, the data stream is split into a series of data packets having an order and sent over multiple physical interfaces, and wherein the process steps stored in the memory include computer-executable process steps to; communicate a difference in arrival time between each of the sent data packets to the sending endpoint, wherein a determination is made, based on the communication, of an expected difference in arrival time at the receiving endpoint between respective arrival times at the receiving endpoint of data packets sent concurrently by the sending endpoint to the receiving endpoint via different ones of the multiple physical interfaces, and wherein each of the multiple physical interfaces connects the sending endpoint and the receiving endpoint over a respective path, and the sending endpoint sends a next available data packet in the order of the series of data packets to the receiving endpoint over a fastest one of the multiple physical interfaces, the fastest one of the multiple physical interfaces being determined based on the determined expected difference in arrival time at the receiving endpoint, repositions, within the sending endpoint, a data packet which is further back in the order of the series of data packets than the next available data packet, to the front of the order of the series of data packets in accordance with the determined difference in arrival time at the receiving endpoint, and sends the repositioned data packet on one of the multiple physical interfaces which is slower than the fastest one of the multiple physical interfaces before sending the next available data packet over the fastest one of the multiple physical interfaces, wherein the receiving endpoint maintains a history of the multiple physical interfaces on which ones of the extracted data packets continue to be delayed, and ones of the extracted data packets which arrive early, and creates a predictability model to more accurately predict future expected differences in arrival times.
-
-
27. A non-transitory computer-readable memory medium on which is stored computer-executable process steps for causing a processor to send a data stream from a sending endpoint to a receiving endpoint, wherein the data stream is split into a series of data packets having an order and sent over multiple physical interfaces to said process steps comprising:
-
sending a next available data packet in the order of the series of data packets to the receiving endpoint over a fastest one of the multiple physical interfaces, wherein a determination is made of an expected difference in arrival time between respective arrival times at the receiving endpoint of data packets sent concurrently by the sending endpoint to the receiving endpoint via different ones of the multiple physical interfaces, wherein each of the multiple physical interfaces connects the sending endpoint and the receiving endpoint over a respective path, and wherein the fastest one of the multiple physical interfaces is determined based on the determined expected difference in arrival time at the receiving endpoint; repositioning, within the sending endpoint, a data packet which is further back in the order of the series of data packets than the next available data packet, to the front of the order of the series of data packets in accordance with the determined expected difference in arrival time at the receiving endpoint; and sending the repositioned data packet on one of the multiple physical interfaces which is slower than the fastest one of the multiple physical interfaces before sending the next available data packet over the fastest one of the multiple physical interfaces, wherein the receiving endpoint maintains a history of the multiple physical interfaces on which ones of the extracted data packets continue to be delayed, and ones of the extracted data packets which arrive early, and creates a predictability model to more accurately predict future expected differences in arrival times.
-
-
28. A non-transitory computer-readable memory medium on which is stored computer-executable process steps for causing a processor to receive a data stream sent from a sending endpoint to the receiving endpoint, wherein the data stream is split into a series of data packets having an order and sent over multiple physical interfaces, said process steps comprising:
-
communicating a difference in arrival time between each of the sent data packets to the sending endpoint, wherein a determination is made, based on the communication, of an expected difference in arrival time at the receiving endpoint between respective arrival times at the receiving endpoint of data packets sent concurrently by the sending endpoint to the receiving endpoint via different ones of the multiple physical interfaces, and wherein each of the multiple physical interfaces connects the sending endpoint and the receiving endpoint over a respective path, and the sending endpoint sends a next available data packet in the order of the series of data packets to the receiving endpoint over a fastest one of the multiple physical interfaces, the fastest one of the multiple physical interfaces being determined based on the determined expected difference in arrival time at the receiving endpoint, repositions, within the sending endpoint, a data packet which is further back in the order of the series of data packets than the next available data packet, to the front of the order of the series of data packets in accordance with the determined difference in arrival time at the receiving endpoint, and sends the repositioned data packet on one of the multiple physical interfaces which is slower than the fastest one of the multiple physical interfaces before sending the next available data packet over the fastest one of the multiple physical interfaces, wherein the receiving endpoint maintains a history of the multiple physical interfaces on which ones of the extracted data packets continue to be delayed, and ones of the extracted data packets which arrive early, and creates a predictability model to more accurately predict future expected differences in arrival times.
-
Specification