Flow control method and apparatus
First Claim
Patent Images
1. A method, comprising:
- recurring adjustment of an ongoing data flow between a pair of nodes communicatively coupled by a network, said recurring adjustment performed by way of alterations made to characteristics of said flow, such alterations being scheduled and determined in response to ongoing observations of networking performance statistics related to said flow'"'"'s previous behavior;
said recurring adjustment including;
scheduling flow control adjustments specified by a flow timeout pointer positioned with respect to a flow timeout threshold value;
said positioning of said flow timeout pointer including setting a delay between when a last adjustment is made and when a next adjustment is made;
said setting a delay including;
calculating a first flow timeout threshold level;
calculating a second flow timeout threshold level; and
setting either the first flow timeout threshold level or the second flow timeout threshold level as the flow timeout threshold value based on a status of the ongoing data flow;
wherein;
setting said second flow timeout threshold level as the flow timeout threshold value makes the delay longer than setting said first flow timeout threshold level as the flow timeout threshold value.
1 Assignment
0 Petitions
Accused Products
Abstract
A method that schedules a data flow adjustment, the data flow between a pair of nodes communicatively coupled by a network, the scheduling responsive to networking performance statistics.
70 Citations
104 Claims
-
1. A method, comprising:
-
recurring adjustment of an ongoing data flow between a pair of nodes communicatively coupled by a network, said recurring adjustment performed by way of alterations made to characteristics of said flow, such alterations being scheduled and determined in response to ongoing observations of networking performance statistics related to said flow'"'"'s previous behavior; said recurring adjustment including; scheduling flow control adjustments specified by a flow timeout pointer positioned with respect to a flow timeout threshold value; said positioning of said flow timeout pointer including setting a delay between when a last adjustment is made and when a next adjustment is made; said setting a delay including; calculating a first flow timeout threshold level; calculating a second flow timeout threshold level; and setting either the first flow timeout threshold level or the second flow timeout threshold level as the flow timeout threshold value based on a status of the ongoing data flow; wherein; setting said second flow timeout threshold level as the flow timeout threshold value makes the delay longer than setting said first flow timeout threshold level as the flow timeout threshold value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method, comprising:
-
a) updating statistics that characterize an existing transaction over a network between a client and a server so that said statistics reflect an arrival event, said transaction comprising a series of messages sent to said client from said server that each contain their own portion of data that is desired by said client, wherein, said arrival event is the arrival of one of said messages at said client, said statistics being maintained by said client; and b) inquiring at said client whether increasing the informational flow of said transaction is appropriate in light of said arrival event wherein if said informational flow increase is deemed appropriate, said client scheduling said informational flow increase so as to be implemented not until after at least some of said data, that has yet to arrive at said client, arrives at said client; wherein said scheduling further includes identifying a specific amount of data that is to be received at said client after said client'"'"'s most recent, previous informational flow increase but before said information flow increase is to be implemented; wherein said identifying further includes setting a flow threshold pointer that points to a value indicative of said specific amount, said method further including advancing, as a result of a subsequent arrival event, a flow timeout pointer toward said flow threshold pointer, said advancing being an amount that is commensurate with the portion size of said data being carried by a message that was received by said client so as to trigger said subsequent arrival event. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A method, comprising:
-
a) updating statistics that characterize an existing transaction over a network between a client and a server so that said statistics reflect an arrival event, said transaction comprising a series of messages sent to said client from said server that each contain their own portion of data that is desired by said client, wherein, said arrival event is the arrival of one of said messages at said client, said statistics being maintained by said client; and b) said client increasing the informational flow of said transaction in light of said arrival event by scheduling said informational flow increase so as to be implemented not until after at least some of said data, that has yet to arrive at said client, arrives at said client, and wherein, said scheduling further includes identifying a specific amount of data that is to be received at said client after said client'"'"'s most recent, previous informational flow increase but before said information flow increase is to be implemented, and wherein, said identifying further includes setting a flow threshold pointer that points to a value that is indicative of said specific amount, said method further including advancing, as a result of a subsequent arrival event, a flow timeout pointer toward said flow threshold pointer, said advancing being an amount that is commensurate with the portion size of said data being carried by a message that was received by said client so as to trigger said subsequent arrival event. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52)
-
-
53. A machine readable storage medium having instructions that when executed by a processing system cause said processing system to perform a method, said method comprising:
-
a) updating statistics that characterize an existing transaction over a network between a client and a server so that said statistics reflect an arrival event, said transaction comprising a series of messages sent to said client from said server that each contain their own portion of data that is desired by said client, wherein, said arrival event is the arrival of one of said messages at said client, said statistics being maintained by said client; and b) inquiring at said client whether increasing the informational flow of said transaction is appropriate in light of said arrival event wherein if said informational flow increase is deemed appropriate, said client scheduling said informational flow increase so as to be implemented not until after at least some of said data, that has vet to arrive at said client, arrives at said client; wherein said scheduling further includes identifying a specific amount of data that is to be received at said client after said client'"'"'s most recent, previous informational flow increase but before said information flow increase is to be implemented; wherein said identifying further includes setting a flow threshold pointer that points to a value indicative of said specific amount, said method further including advancing, as a result of a subsequent arrival event, a flow timeout pointer toward said flow threshold pointer, said advancing being an amount that is commensurate with the portion size of said data being carried by a message that was received by said client so as to trigger said subsequent arrival event. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71)
-
-
72. A machine readable storage medium having instructions that when executed by a processing system cause said processing to perform a method, said method comprising:
-
a) updating statistics that characterize an existing transaction over a network between a client and a server so that said statistics reflect an arrival event, said transaction comprising a series of messages sent to said client from said server that each contain their own portion of data that is desired by said client, wherein, said arrival event is the arrival of one of said messages at said client, said statistics being maintained by said client; and b) said client increasing the informational flow of said transaction in light of said arrival event by scheduling said informational flow increase so as to be implemented not until after at least some of said data, that has yet to arrive at said client, arrives at said client, and wherein, said scheduling further includes identifying a specific amount of data that is to be received at said client after said client'"'"'s most recent, previous informational flow increase but before said information flow increase is to be implemented, and wherein, said identifying further includes setting a flow threshold pointer that points to a value that is indicative of said specific amount, said method further including advancing, as a result of a subsequent arrival event, a flow timeout pointer toward said flow threshold pointer, said advancing being an amount that is commensurate with the portion size of said data being carried by a message that was received by said client so as to trigger said subsequent arrival event. - View Dependent Claims (73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90)
-
-
91. A machine readable medium having instructions that when executed by a processing system cause said processing to perform a method, said method comprising:
-
recurring adjustment of an ongoing data flow between a pair of nodes communicatively coupled by a network, said recurring adjustment performed by way of alterations made to characteristics of said flow, such alterations being scheduled and determined in response to ongoing observations of networking performance statistics related to said flow'"'"'s previous behavior; said recurring adjustment including; scheduling flow control adjustments specified by a flow timeout pointer positioned with respect to a flow timeout threshold value; said positioning of said flow timeout pointer including setting a delay between when a last adjustment is made and when a next adjustment is made; said setting a delay including; calculating a first flow timeout threshold level; calculating a second flow timeout threshold level; and setting either the first flow timeout threshold level or the second flow timeout threshold level as the flow timeout threshold value based on a status of the ongoing data flow; wherein; setting said second flow timeout threshold level as the flow timeout threshold value makes the delay longer than setting said first flow timeout threshold level as the flow timeout threshold value. - View Dependent Claims (92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104)
-
Specification