×

Efficient network utilization using multiple physical interfaces

  • US 8,396,960 B2
  • Filed: 05/08/2009
  • Issued: 03/12/2013
  • Est. Priority Date: 05/08/2009
  • Status: Expired due to Fees
First Claim
Patent Images

1. An architecture for streaming data from a sending endpoint to a receiving endpoint which are connected to each other by multiple networks, wherein each of the sending endpoint and the receiving endpoint has multiple physical interfaces each for interfacing to a respective one of the multiple networks, and wherein the architecture is implemented on both the sending endpoint and the receiving endpoint and comprises:

  • a traffic monitor for gathering performance characteristics of each of the multiple physical interfaces; and

    a software library for controlling the sending of the data stream from the sending endpoint and controlling the receiving of the data stream at the receiving endpoint, wherein the traffic monitor and the software library communicate information to each other, and wherein the software library instantiates;

    a plurality of bondable virtual interfaces, instantiated by the software library based on the information communicated by the traffic monitor, for splitting the data stream into multiple data sub-streams at the sending endpoint, and for combining the multiple data sub-streams into the data stream at the receiving endpoint, wherein each of the plurality of bondable virtual interfaces is associated with a respective plurality of physical interfaces;

    one or more data organizers for designating one of the plurality of bondable virtual interfaces to be used to transmit the data stream, wherein the one or more data organizers instantiate;

    a data splitter for implementing the designated one of the plurality of bondable virtual interfaces at the sending endpoint, wherein the data stream is sent via the respective plurality of physical interfaces associated with the designated one of the plurality of bondable virtual interfaces; and

    a data combiner for implementing the designated one of the plurality of bondable virtual interfaces at the receiving endpoint, wherein the data stream is received via the respective plurality of physical interfaces associated with the designated one of the plurality of bondable virtual interfaces,wherein when designating ones of the plurality of bondable virtual interfaces to be used to transmit the data stream, the data splitter and the data combiner negotiate to designate one of the bondable virtual interfaces, based on the performance characteristics of the respective multiple physical interfaces that are mapped to each of the plurality of bondable virtual interfaces and available ones of the plurality of bondable virtual interfaces, and during the negotiation between the data splitter and the data combiner, the data splitter presents available ones of the plurality of bondable virtual interfaces, and the data combiner selects one of the available ones of the plurality of bondable virtual interfaces,wherein at least one of the traffic monitor and the software library is implemented by one or more processors,wherein one or more applications connected to the sending endpoint specify a time objective for the data to be sent between the sending endpoint and the receiving endpoint, wherein the time objective is one of a non-time critical objective, a time critical objective, or a near-time critical objective, and the time objective for the data to be sent is used when designating ones of the plurality of bondable virtual interfaces, andwherein said software library further instantiates;

    a plurality of bondable virtual interface connectors, each bondable virtual interface connector being associated with a specific bondable virtual interface, wherein the bondable virtual interface connectors ensure that the connections between the software library and the multiple physical interfaces via multiple endpoint channels, and the connections between the software library and one or more applications via the one or more application channels, are ready to accept data before sending data from the sending endpoint to the receiving endpoint.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×