TCP Low Priority (TCP-LP) is a distributed algorithm whose goal is to utilize network bandwidth, by using the excess portion of bandwidth. Compare to fair-sharing TCP, TCP-LP is non-intrusive to bandwidth competition and more flexible to control the priority of different processes.
TCP Low Priority module (TCP-LP-MOD) is an implementation of TCP-LP, as pluggable TCP congestion control module, for Linux kernel after version 2.6.14.
TCP-LP-MOD release 1.6 is patch version to Linux kernel 2.6.18. This release make sure no oops will happened on tcp_lp_remote_hz_estimator() due to return zero. It is highly recommended to apply this patch if you are using TCP-LP-MOD.
To apply this patch, please run the following command within your kernel source tree:
bzcat path_to_your_patch/tcp-lp-1.6.patch.bz2 | patch -p1You may find more information in our homepage
and download release 1.6 in here
Service prioritization among different traffic classes is an important goal for the future Internet. Conventional approaches to solving this problem consider the existing best-effort class as the low-priority class, and attempt to develop mechanisms that provide "better-than-best-effort" service.
Aleksandar Kuzmanovic and Edward W. Knightly explore the opposite approach, and devise a new distributed algorithm to realize a low-priority service (as compared to the existing best effort) from the network endpoints. To this end, they develop TCP Low Priority (TCP-LP), a distributed algorithm whose goal is to utilize only the excess network bandwidth as compared to the "fair share" of bandwidth as targeted by TCP.
The key mechanisms unique to TCP-LP congestion control are the use of one-way packet delays for congestion indications and a TCP-transparent congestion avoidance policy.
See TCP-LP Home Page for their implementation.
As of 2.6.13, Linux supports pluggable congestion control algorithms. Due
to the limitation of the API, we take the following changes from the original
TCP-LP implementation:
- We use newReno in most core CA handling. Only add some checking within
cong_avoid. - Add Error correcting in remote HZ, therefore remote HZ will be keeped on
checking and updating. - Handle calculation of One-Way-Delay (OWD) within rtt_sample, sicne OWD
have a similar meaning as RTT. Also correct the buggy formular. - Handle reaction for Early Congestion Indication (ECI) within pkts_acked,
as mentioned within pseudo code. - Handle OWD in relative format, where local time stamp will in
tcp_time_stamp format.

