(Linux Implementation)
 
(25 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
= TCP Westwood+ =
+
{{Westwood}}
 +
= TCP Westwood+ congestion control =
 
[[Category:Research]]
 
[[Category:Research]]
 +
'''TCP Westwood+''' is a sender-side only modification of the TCP Reno/NewReno classic congestion control protocol stack that optimizes the performance of TCP congestion control especially over wireless networks. TCPW is based on end-to-end bandwidth estimation to set congestion window and slow start threshold after a congestion episode, that is, after three duplicate acknowledgments or a timeout. The bandwidth is estimated by properly low-pass filtering the rate of returning acknowledgment packets. The rationale of this strategy is simple: in contrast with TCP Reno, which blindly halves the congestion window after three duplicate ACKs, TCP Westwood+ adaptively sets a slow start threshold and a congestion window which takes into account the bandwidth used at the time congestion is experienced. TCP Westwood significantly increases fairness wrt TCP (New) Reno in wired networks and throughput over wireless links.
  
  
'''TCP Westwood+''' is a sender-side only modification of the TCP Reno protocol stack that optimizes the performance of TCP congestion control over both wireline and wireless networks. TCPW is based on end-to-end bandwidth estimation to set congestion window and slow start threshold after a congestion episode, that is, after three duplicate acknowledgments or a timeout. The bandwidth is estimated by properly low-pass filtering the rate of returning acknowledgment packets. The rationale of this strategy is simple: in contrast with TCP Reno, which blindly halves the congestion window after three duplicate ACKs, TCP Westwood+ adaptively sets a slow start threshold and a congestion window which takes into account the bandwidth used at the time congestion is experienced. TCP Westwood significantly increases fairness wrt TCP (New) Reno in wired networks and throughput over wireless links.
+
[[Immagine:tcp_westwood.gif]]
  
== Software ==
+
== Links ==
=== Linux Implementation ===
+
* [http://www.quavlive.com/services  Commercial implementation of TCP Westwood+]
TCP Westwood+ has been implemented in the Linux kernel and it is included in the official Linux kernel from the release 2.6.3-rc1 and in the 2.4 kernels in the release 2.4.26-pre1.
+
* [[ Westwood:Linux | Linux Kernel Implementation]]
 
+
* [[ Westwood:Experimental | Experimental Implementation]]
How to select/deselect TCP Westwood+ congestion control
+
* [[ Westwood:NS2 | NS-2 Implementation]]
If you have a 2.6.x kernel with x>3 or a 2.4.x kernel with x>26 TCP Westwood+ support is compiled in the kernel. All you have to do to use TCP Westwood+ congestion control is to activate it through a sysctl call. As root user issue the following command:
+
* [[ Westwood:Publications | Papers ]]
 
+
* [[ TCP_over_Umts | TCP congestion control over a live UMTS (3G) network]]
  sysctl net.ipv4.tcp_westwood=1
+
* [[ TCP_over_Hsdpa | TCP congestion control over a live HSDPA (3.5G) network]]
 
+
* [http://www.cs.ucla.edu/NRL/hpi/tcpw/ Companion site at University of California at Los Angeles]
Alternatively you can issue the following command:
 
 
 
  echo 1 > /proc/sys/net/ipv4/tcp_westwood
 
 
 
If you want to use TCP Westwood+ as your default congestion control algorithm just edit /etc/sysctl.conf and add the line:
 
 
 
  net.ipv4.tcp_westwood=1
 
 
 
To switch off TCP Westwood congestion control just run one of the above commands with 0 instead of 1.
 
 
 
===NS-2 Implementation===
 
 
 
Ns-2 modules of Westwood+ TCP with the New Reno feature (ns2.1b9a version) are now available.
 
 
 
# Download the files tcp-westwood-nr.cc and tcp-westwood-nr.h (last update 23  June 2003)
 
# Edit the file Makefile.in so that it compiles and links the new module (i.e. add tcp-westwood-nr.o anywhere in the OBJ_CC variable, for example near the other TCP related modules like tcp-newreno.o or tcp-vegas.o). You can find the Makefile.in file under the main NS-2 directory
 
# Add the contents of this file to ns-default.tcl and recompile ns.  
 
 
 
You can also download all the requested files clicking here.
 
 
 
=== Scripts ===
 
The scripts singlebottleneck.tcl and mhop.tcl generate single bottleneck and multihop topologies.
 
Important Note
 
If you set filter_type_ 3 you use the original Westwood TCP that overestimates the bandwidth in the presence of ACK compression. If you set filter_type_ 4 you use Westwood+ TCP that eliminates this problem.
 

Versione attuale delle 23:02, 11 Lug 2011

Logo tcpw.png

TCP Westwood+ congestion control

TCP Westwood+ is a sender-side only modification of the TCP Reno/NewReno classic congestion control protocol stack that optimizes the performance of TCP congestion control especially over wireless networks. TCPW is based on end-to-end bandwidth estimation to set congestion window and slow start threshold after a congestion episode, that is, after three duplicate acknowledgments or a timeout. The bandwidth is estimated by properly low-pass filtering the rate of returning acknowledgment packets. The rationale of this strategy is simple: in contrast with TCP Reno, which blindly halves the congestion window after three duplicate ACKs, TCP Westwood+ adaptively sets a slow start threshold and a congestion window which takes into account the bandwidth used at the time congestion is experienced. TCP Westwood significantly increases fairness wrt TCP (New) Reno in wired networks and throughput over wireless links.


Tcp westwood.gif

Links

TCP Westwood+[edit]


TCP Westwood+ is a sender-side only modification of the TCP Reno protocol stack that optimizes the performance of TCP congestion control over both wireline and wireless networks. TCPW is based on end-to-end bandwidth estimation to set congestion window and slow start threshold after a congestion episode, that is, after three duplicate acknowledgments or a timeout. The bandwidth is estimated by properly low-pass filtering the rate of returning acknowledgment packets. The rationale of this strategy is simple: in contrast with TCP Reno, which blindly halves the congestion window after three duplicate ACKs, TCP Westwood+ adaptively sets a slow start threshold and a congestion window which takes into account the bandwidth used at the time congestion is experienced. TCP Westwood significantly increases fairness wrt TCP (New) Reno in wired networks and throughput over wireless links.

Software[edit]

Linux Implementation[edit]

TCP Westwood+ has been implemented in the Linux kernel and it is included in the official Linux kernel from the release 2.6.3-rc1 and in the 2.4 kernels in the release 2.4.26-pre1.

How to select/deselect TCP Westwood+ congestion control If you have a 2.6.x kernel with x>3 or a 2.4.x kernel with x>26 TCP Westwood+ support is compiled in the kernel. All you have to do to use TCP Westwood+ congestion control is to activate it through a sysctl call. As root user issue the following command:

  sysctl net.ipv4.tcp_westwood=1

Alternatively you can issue the following command:

  echo 1 > /proc/sys/net/ipv4/tcp_westwood

If you want to use TCP Westwood+ as your default congestion control algorithm just edit /etc/sysctl.conf and add the line:

  net.ipv4.tcp_westwood=1

To switch off TCP Westwood congestion control just run one of the above commands with 0 instead of 1.

NS-2 Implementation[edit]

Ns-2 modules of Westwood+ TCP with the New Reno feature (ns2.1b9a version) are now available.

  1. Download the files tcp-westwood-nr.cc and tcp-westwood-nr.h (last update 23 June 2003)
  2. Edit the file Makefile.in so that it compiles and links the new module (i.e. add tcp-westwood-nr.o anywhere in the OBJ_CC variable, for example near the other TCP related modules like tcp-newreno.o or tcp-vegas.o). You can find the Makefile.in file under the main NS-2 directory
  3. Add the contents of this file to ns-default.tcl and recompile ns.

You can also download all the requested files clicking here.

Scripts[edit]

The scripts singlebottleneck.tcl and mhop.tcl generate single bottleneck and multihop topologies. Important Note If you set filter_type_ 3 you use the original Westwood TCP that overestimates the bandwidth in the presence of ACK compression. If you set filter_type_ 4 you use Westwood+ TCP that eliminates this problem.