WO2009073312A2

Network bandwidth detection, distribution and traffic prioritization

Abstract

Network bandwidth detection and distribution and prioritizing network traffic among two or more distinct channels of communication within a single application in a node configured to communicate with one or more other nodes over a network is disclosed. An available bandwidth may be detected for communication between the first node and a second node. A distribution may be determined for the available bandwidth among the two or more communication channels. A sending rate may be adjusted for data sent from the first node to the second node over one or more of the two or more communication channels in response to a detected change in the available bandwidth. For a particular time quantum, a bandwidth quantum may be distributed amongst two or more communication channels according to priorities associated with those channels.

WO2009073312A2, drawing sheet 1
Sheet 1 of 17

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

82 claims: 9 independent, 73 dependent

  1. 1
    WHAT IS CLAIMED IS:1. In a node configured to communicate with one or more other nodes over a network, a method for network bandwidth detection, distribution and traffic prioritization, the method comprising: a) detecting an available bandwidth for communication between the first node and a second node;b) determining a distribution for the available bandwidth among the two or more communication channels by distributing a bandwidth quantum BQ for a time quantum T amongst N>2 communication channels Ci...CN, based on priorities Pi...PN correspondingly assigned to channels Ci...C N , wherein each channel is assigned a reserved portion of the bandwidth quantum BQ, wherein a size R 1 of the reserved portion assigned to a given channel Ci of the N channels Ci...CN, is greater than zero and wherein R 1 is determined based on the corresponding priority P 1 assigned to the given channel C 1 ;c) transmitting an amount of ready data, if any, for each channel C 1 that is greater than zero and less than or equal to the size R 1 of the reserved portion for that channel;and d) redistributing any unused part of any reserved portion R 1 amongst any of the N communication channels Ci...C N having un-transmitted ready data.
  2. 21
    A node configured to communicate with one or more other nodes over a network, the node comprising:a processor;and a memory coupled to the processor, the memory having therein a set of instructions executable by the processor, the instructions being configured to implement a method for prioritizing network traffic among two or more distinct channels of communication within a single application, the method comprising: a) detecting an available bandwidth for communication between the first node and a second node;b) determining a distribution for the available bandwidth among the two or more communication channels by distributing a bandwidth quantum BQ for a time quantum T amongst N>2 communication channels Ci...C N , based on priorities Pi...P N correspondingly assigned to channels Ci...C N , wherein each channel is assigned a reserved portion of the bandwidth quantum BQ, wherein a size R 1 of the reserved portion assigned to a given channel C 1 of the N channels Ci...C N , is greater than zero and wherein R 1 is determined based on the corresponding priority P 1 assigned to the given channel C 1 ;c) transmitting an amount of ready data, if any, for each channel C 1 that is greater than zero and less than or equal to the size R 1 of the reserved portion for that channel;and d) redistributing any unused part of any reserved portion R 1 amongst any of the N communication channels Ci...C N having un-transmitted ready data.
  3. 34
    A tangible, computer-accessible storage medium comprising program instructions, wherein the program instructions are computer-executable on a node to implement a method for prioritizing network traffic among two or more distinct channels of communication within a single application, the method comprising:a) detecting an available bandwidth for communication between the first node and a second node;b) determining a distribution for the available bandwidth among the two or more communication channels by distributing a bandwidth quantum BQ for a time quantum T amongst N>2 communication channels Ci...CN, based on priorities Pi...PN correspondingly assigned to channels Ci...C N , wherein each channel is assigned a reserved portion of the bandwidth quantum BQ, wherein a size Ri of the reserved portion assigned to a given channel C 1 of the N channels Ci...C N , is greater than zero and wherein R 1 is determined based on the corresponding priority P 1 assigned to the given channel C 1 ;c) transmitting an amount of ready data, if any, for each channel C 1 that is greater than zero and less than or equal to the size R 1 of the reserved portion for that channel;and d) redistributing any unused part of any reserved portion R 1 amongst any of the N communication channels Ci...C N having un-transmitted ready data.
  4. 35
    In a node configured to communicate with one or more other nodes over a network, a method for prioritizing network traffic among two or more distinct channels of communication within a single application, the method comprising:a) distributing a bandwidth quantum BQ for a time quantum T amongst N>2 communication channels Ci...C N , based on priorities Pi...P N correspondingly assigned to channels Ci... C N , wherein each channel is assigned a reserved portion of the bandwidth quantum BQ, wherein a size R 1 of the reserved portion assigned to a given channel C 1 of the N channels Ci... C N , is greater than zero and wherein R 1 is determined based on the corresponding priority P 1 assigned to the given channel C 1 ;b) transmitting an amount of ready data, if any, for each channel C 1 that is greater than zero and less than or equal to the size R 1 of the reserved portion for that channel;and c) redistributing any unused part of any reserved portion R 1 amongst any of the N communication channels Ci...C N having un-transmitted ready data.
  5. 51
    A node configured to communicate with one or more other nodes over a network, the node comprising:a processor;and a memory coupled to the processor, the memory having therein a set of instructions executable by the processor, the instructions being configured to implement a method for prioritizing network traffic among two or more distinct channels of communication within a single application, the method comprising: a) distributing a bandwidth quantum BQ for a time quantum T amongst N>2 communication channels Ci...C N , based on priorities Pi...P N correspondingly assigned to channels Ci... C N , wherein each channel is assigned a reserved portion of the bandwidth quantum BQ, wherein a size R 1 of the reserved portion assigned to a given channel C 1 of the N channels Ci... CN, is greater than zero and wherein R 1 is determined based on the corresponding priority P 1 assigned to the given channel C 1 ;b) transmitting an amount of ready data, if any, for each channel C 1 that is greater than zero and less than or equal to the size R 1 of the reserved portion for that channel;and c) redistributing any unused part of any reserved portion R 1 amongst any of the N communication channels Ci...C N having un-transmitted ready data.
  6. 64
    A tangible, computer-accessible storage medium comprising program instructions, wherein the program instructions are computer-executable on a node to implement a method for prioritizing network traffic among two or more distinct channels of communication within a single application, the method comprising:a) distributing a bandwidth quantum BQ for a time quantum T amongst N>2 communication channels Ci...C N , based on priorities Pi...P N correspondingly assigned to channels Ci... C N , wherein each channel is assigned a reserved portion of the bandwidth quantum BQ, wherein a size Ri of the reserved portion assigned to a given channel Ci of the N channels Ci... C N , is greater than zero and wherein Ri is determined based on the corresponding priority Pi assigned to the given channel Ci;b) transmitting an amount of ready data, if any, for each channel Ci that is greater than zero and less than or equal to the size Ri of the reserved portion for that channel;and c) redistributing any unused part of any reserved portion Ri amongst any of the N communication channels Ci...C N having un-transmitted ready data.
  7. 65
    In a node configured to communicate with one or more other nodes over a network, a method for distributing available bandwidth for network traffic among two or more distinct channels of communication within a single application running on the node, the method comprising:a) detecting an available bandwidth for communication between the first node and a second node;b) determining a distribution for the available bandwidth among the two or more communication channels;and c) adjusting a sending rate for data sent from the first node to the second node over one or more of the two or more communication channels in response to a detected change in the available bandwidth.
  8. 78
    A node configured to communicate with one or more other nodes over a network and distribute available bandwidth for network traffic among two or more distinct channels of communication within a single application running on the node, the node comprising:a) means for detecting an available bandwidth for communication between the first node and a second node;b) means for determining a distribution for the available among the two or more communication channels;and c) means for adjusting a sending rate for data sent from the first node to the second node over one or more of the two or more communication channels in response to a detected change in the available bandwidth.
  9. 79
    A node configured to communicate with one or more other nodes over a network and distribute available bandwidth for network traffic among two or more distinct channels of communication within a single application running on the node, the node comprising:a) a processor;and b) a set of computer executable instructions operably to implement a bandwidth detection module and a bandwidth distribution module on the processor, wherein the bandwidth module is configured to: i) determine an available bandwidth for communication between the first node and a second node;and ii) adjust a sending rate for data sent from the first node to the second node over one or more of the two or more communication channels in response to a detected change in the available bandwidth;wherein the bandwidth distribution module is configured to manage a distribution for the available bandwidth among the two or more communication channels.