Claims
- 1. A method of setting a parameter for a transport protocol used by a source to transmit data to a receiver across a connection through a computer network, comprising:
generating an estimate of end-to-end bandwidth share available to the connection through the computer network; and setting the parameter using the estimated end-to-end bandwidth share for the connection if congestion is detected on the computer network.
- 2. The method of claim 1, wherein generating the estimated end-to-end bandwidth share further includes:
generating a sample bandwidth share; and filtering the sample bandwidth share to generate the estimated end-to-end bandwidth share.
- 3. The method of claim 2, wherein generating the sample bandwidth share further includes:
determining a quantity of data transmitted by the source to the receiver over the connection; determining an elapsed time for transmission of the quantity of data; and using the quantity of data transmitted and the elapsed time to generate the sample bandwidth share.
- 4. The method of claim 3, wherein determining the elapsed time further includes:
receiving by the source from the receiver a first acknowledgment at a first time and a second acknowledgment at a second time; and determining the elapsed time using the difference between the first time and the second time.
- 5. The method of claim 3, wherein determining the quantity of data further includes:
receiving duplicate acknowledgments by the source; and determining the quantity of data using an average of segment sizes of data packets transmitted by the source to the receiver.
- 6. The method of claim 2, wherein the sample bandwidth share is filtered using an exponential filter.
- 7. The method of claim 2, wherein the sample bandwidth share is filtered using a discrete time filter.
- 8. The method of claim 1, wherein the parameter is a congestion window used in a transmission control protocol.
- 9. The method of claim 1, wherein the parameter is a slow start threshold used in a transmission control protocol.
- 10. A method of setting a parameter for a transmission control protocol used by a source to transmit data to a receiver across a connection through a computer network, comprising:
receiving by the source from the receiver a first acknowledgment at a first time and a second acknowledgment at a second time; determining an elapsed time using the difference between the first time and the second time; determining a quantity of data transmitted by the source to the receiver using the first acknowledgment and the second acknowledgment; generating a sample bandwidth share using the quantity of data transmitted and the elapsed time; generating an estimated end-to-end bandwidth share available to the connection by filtering the sample bandwidth share; and performing the following if congestion is detected on the computer network:
generating a congestion window using the estimated end-to-end bandwidth share; and generating a slow start threshold using the estimated end-to-end bandwidth share.
- 11. An apparatus for setting a parameter for a transport protocol used by a source to transmit data to a receiver across a connection through a computer network, comprising:
a processor; and a memory coupled to the processor, the memory having processor executable program instructions stored therein, the program instructions including:
generating an estimate of end-to-end bandwidth share available to the connection through the computer network; and setting the parameter using the estimated end-to-end bandwidth share for the connection if congestion is detected on the computer network.
- 12. The apparatus of claim 11, wherein the program instructions for generating the estimated end-to-end bandwidth share further include:
generating a sample bandwidth share; and filtering the sample bandwidth share to generate the estimated end-to-end bandwidth share.
- 13. The apparatus of claim 12, wherein the program instructions for generating the sample bandwidth share further include:
determining a quantity of data transmitted by the source to the receiver over the connection; determining an elapsed time for transmission of the quantity of data; and using the quantity of data transmitted and the elapsed time to generate the sample bandwidth share.
- 14. The apparatus of claim 13, wherein the program instructions for determining the elapsed time further include:
receiving by the source from the receiver a first acknowledgment at a first time and a second acknowledgment at a second time; and determining the elapsed time using the difference between the first time and the second time.
- 15. The apparatus of claim 13, wherein the program instructions for determining the quantity of data further include:
receiving duplicate acknowledgments by the source; and determining the quantity of data using an average of segment sizes of data packets transmitted by the source to the receiver.
- 16. The apparatus of claim 12, wherein the sample bandwidth share is filtered using an exponential filter.
- 17. The apparatus of claim 12, wherein the sample bandwidth share is filtered using a discrete time filter.
- 18. The apparatus of claim 11, wherein the parameter is a congestion window used in a transmission control protocol.
- 19. The apparatus of claim 11, wherein the parameter is a slow start threshold used in a transmission control protocol.
- 20. An apparatus for setting a parameter for a transmission control protocol used by a source to transmit data to a receiver across a connection through a computer network, comprising:
a processor; and a memory coupled to the processor, the memory having processor executable program instructions stored therein, the program instructions including:
receiving by the source from the receiver a first acknowledgment at a first time and a second acknowledgment at a second time; determining an elapsed time using the difference between the first time and the second time; determining a quantity of data transmitted by the source to the receiver using the first acknowledgment and the second acknowledgment; generating a sample bandwidth share using the quantity of data transmitted and the elapsed time; generating an estimated end-to-end bandwidth share available to the connection by filtering the sample bandwidth share; and performing the following if congestion is detected on the computer network:
generating a congestion window using the estimated end-to-end bandwidth share; and generating a slow start threshold using the estimated end-to-end bandwidth share.
- 21. A computer-readable medium embodying program instructions for setting a parameter for a transport protocol used by a source to transmit data to a receiver across a connection through a computer network, the program instructions comprising:
generating an estimate of end-to-end bandwidth share available to the connection through the computer network; and setting the parameter using the estimated end-to-end bandwidth share for the connection if congestion is detected on the computer network.
- 22. The computer-readable medium of claim 21, wherein the program instructions for generating the estimated end-to-end bandwidth share further comprise:
generating a sample bandwidth share; and filtering the sample bandwidth share to generate the estimated end-to-end bandwidth share.
- 23. The computer-readable medium of claim 22, wherein the program instructions for generating the sample bandwidth share further comprise:
determining a quantity of data transmitted by the source to the receiver over the connection; determining an elapsed time for transmission of the quantity of data; and using the quantity of data transmitted and the elapsed time to generate the sample bandwidth share.
- 24. The computer-readable medium of claim 23, wherein the program instructions for determining the elapsed time further comprise:
receiving by the source from the receiver a first acknowledgment at a first time and a second acknowledgment at a second time; and determining the elapsed time using the difference between the first time and the second time.
- 25. The computer-readable medium of claim 23, wherein the program instructions for determining the quantity of data further comprise:
receiving duplicate acknowledgments by the source; and determining the quantity of data using an average of segment sizes of data packets transmitted by the source to the receiver.
- 26. The computer-readable medium of claim 22, wherein the sample bandwidth share is filtered using an exponential filter.
- 27. The computer-readable medium of claim 22, wherein the sample bandwidth share is filtered using a discrete time filter.
- 28. The computer-readable medium of claim 21, wherein the parameter is a congestion window used in a transmission control protocol.
- 29. The computer-readable medium of claim 21, wherein the parameter is a slow start threshold used in a transmission control protocol.
- 30. A computer-readable medium embodying program instructions for setting a parameter for a transmission control protocol used by a source to transmit data to a receiver across a connection through a computer network, the program instructions comprising:
receiving by the source from the receiver a first acknowledgment at a first time and a second acknowledgment at a second time; determining an elapsed time using the difference between the first time and the second time; determining a quantity of data transmitted by the source to the receiver using the first acknowledgment and the second acknowledgment; generating a sample bandwidth share using the quantity of data transmitted and the elapsed time; generating an estimated end-to-end bandwidth share available to the connection by filtering the sample bandwidth share; and performing the following if congestion is detected on the computer network:
generating a congestion window using the estimated end-to-end bandwidth share; and generating a slow start threshold using the estimated end-to-end bandwidth share.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application claims priority to U.S. Provisional Patent Application No. 60/330,364, filed Oct. 17, 2001 which is hereby incorporated by reference as if set forth in full herein.
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
[0002] The U.S. Government has certain rights in this invention pursuant to grants ANI-9983138 and ANI-9805436 awarded by the National Science Foundation and grant NAG2-1249 awarded by the National Aeronautics and Space Administration.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60330364 |
Oct 2001 |
US |