Patent ID: 8325601

Claim:
A method for sending a single 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, the method comprising: determining a data capacity throughput for each of the multiple physical interfaces, wherein the data capacity throughput is an amount of data throughput which is currently possible of being sent over a respective physical interface; partitioning the single data stream into multiple data packets, wherein each of the multiple data packets has header information which identifies a sequence identifier indicating an in-sequence position of the data packet in the single data stream; designating on a sending side of the sending endpoint, for each said data packet, a send-side physical interface and a receive-side physical interface, wherein the designation depends at least partly on the data capacity throughput; sending different portions of the partitioned data packets over different ones of the multiple physical interfaces in accordance with the designation; receiving the different portions of the partitioned data packets at the receiving endpoint; determining by the receiving endpoint an amount of data received on each of the multiple physical interfaces, and any changes in the data capacity throughput for each of the multiple physical interfaces on a recipient side of the receiving endpoint; reconstructing the single data stream at the receiving endpoint by combining the received partitioned data packets into the single data stream in accordance with the header information of the multiple data packets; and sending an acknowledgment over each of the multiple physical interfaces from the receiving endpoint to the sending endpoint indicating the determined amount of data received on each of the different ones of the multiple physical interfaces, wherein the acknowledgment includes an indication of the determined changes in the data capacity throughput for each of the multiple physical interfaces on the recipient side, wherein, when the acknowledgment indicates that an amount of a portion of data packets was not received over one of the multiple physical interfaces, then, depending on the data capacity throughput of the multiple physical interfaces, the sending endpoint repartitions the portion of the data stream corresponding to the not received data packets, and sends the repartitioned data packets over one or more of available ones of the multiple physical interfaces, and wherein at least some of the repartitioned data packets are sent over physical interfaces which are different than the physical interfaces on which the data packets of the data stream, corresponding to the repartitioned data packets, were originally sent.