Skip to content

We developed an Eifel Retransmission timer in ns-3 for the TCP bulk data transfers in steady-state, correcting the limitations that we had observed from TCP-Lite’s timer. Instead of using two constants alpha and beta, the Eifel retransmission timer uses one constant, gamma which is the ratio of RTT and RTO.

License

Notifications You must be signed in to change notification settings

Siddhartha15/Implementation-of-Eifel-Retransmission-Timer-ns-3

Repository files navigation

Implementation-of-Eifel-Retransmission-Timer-ns-3 (v-3.29)

Course Code: CO300

Assignment: # 5

Overview

Eifel retransmission timer is an alternative to the default Retransmission TimeOut (RTO) mechanism of TCP. Instead of using two constants like TCP retransmission timer: alpha and beta, Eifel retransmission timer uses one constant called gamma. Gamma is defined as a ratio between current sample of RTT and RTO. Depending on the value of gamma, the value of RTO is calculated. This project aims to implement Eifel retransmission timer in ns-3.

Simulating Eifel

To simulate Eifel algorithm, the attribute eifel must be set to true, as shown below:

Config::SetDefault("ns3::TcpSocketBase::Eifel",BooleanValue(true)); Config::SetDefault("ns3::RttMeanDeviation::Eifel",BooleanValue(true));

Eifel example

An example program for Eifel has been provided in

scratch/tcp-variants-comparison.cc

and should be executed as

./waf --run "scratch/tcp-variants-comparison -tracing=true -eifel=true -duration=10"

The following files are generated when the above command is executed.

  • TcpVariantsComparison-rto.data
  • TcpVariantsComparison-rtt.data
  • TcpVariantsComparison-cwnd.data
  • TcpVariantsComparison-ssth.data
  • TcpVariantsComparison-next-tx.data
  • TcpVariantsComparison-next-rx.data
  • TcpVariantsComparison-inflight.data

Gnuplot

The data files can be plot using Gnuplot.

plot "TcpVariantsComparison-rtt.data" with lines title "rtt-eifel", "TcpVariantsComparison-rto.data" with lines title "rto-eifel"

The xrange and yrange can be changed using the following commands:

set yrange[0.09:0.0927]
set xrange[0:10]

References:

[1] R. Ludwig and K. Sklower. 2000. The Eifel retransmission timer. SIGCOMM Comput. Commun. Rev. 30, 3 (July 2000), 17-27. DOI=http://dx.doi.org/10.1145/382179.383014

[2] The Eifel Detection Algorithm for TCP (RFC 3522) (Link: ​ https://www.rfc-editor.org/rfc/rfc3522.txt​ )

[3] https://www.nsnam.org/ns-3-29/

About

We developed an Eifel Retransmission timer in ns-3 for the TCP bulk data transfers in steady-state, correcting the limitations that we had observed from TCP-Lite’s timer. Instead of using two constants alpha and beta, the Eifel retransmission timer uses one constant, gamma which is the ratio of RTT and RTO.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published