TCPBaseAlgStateVariables Class Reference

#include <TCPBaseAlg.h>

Inheritance diagram for TCPBaseAlgStateVariables:

TCPStateVariables TCPTahoeRenoFamilyStateVariables List of all members.

Detailed Description

State variables for TCPBaseAlg.


Public Member Functions

 TCPBaseAlgStateVariables ()
virtual std::string info () const
virtual std::string detailedInfo () const

Public Attributes

bool delayed_acks_enabled
 TCP features delayed ACKs enabled/disabled; FIXME make this a socket option.
bool nagle_enabled
 Nagle's algorithm (off = NODELAY socket option).
int rexmit_count
 retransmit count number of retransmissions (=1 after first rexmit)
simtime_t rexmit_timeout
 current retransmission timeout (aka RTO)
uint snd_cwnd
 congestion window congestion window
uint32 rtseq
 round-trip time measurements starting sequence number of timed data
simtime_t rtseq_sendtime
 time when rtseq was sent (0 if RTT measurement is not running)
simtime_t srtt
 round-trip time estimation (Jacobson's algorithm) smoothed round-trip time
simtime_t rttvar
 variance of round-trip time


Constructor & Destructor Documentation

TCPBaseAlgStateVariables::TCPBaseAlgStateVariables (  ) 

00041 {
00042     // We disable delayed acks, since it appears that it isn't used in real-life TCPs.
00043     //
00044     // In SSFNet test suite http://www.ssfnet.org/Exchange/tcp/test/f5.html
00045     // the rule for delayed ACK is:
00046     //   An ACK must be sent immediatly when either of the following conditions exist:
00047     //    * Two full-sized packets received (to avoid too few ACKs).
00048     //    * Out of order packets received (to help trigger fast retransmission).
00049     //    * Received packet fills in all gap or part of gap of out of order data.
00050     // We do not implement this rule. In our measurements on network traffic, we
00051     // never encountered delayed ACKs.
00052     //
00053     delayed_acks_enabled = false;
00054 
00055     nagle_enabled = true; // FIXME this should be parameter eventually
00056 
00057     rexmit_count = 0;
00058     rexmit_timeout = 3.0;
00059 
00060     snd_cwnd = 0; // will be set to MSS when connection is established
00061 
00062     rtseq = 0;
00063     rtseq_sendtime = 0;
00064 
00065     // Jacobson's alg: srtt must be initialized to 0, rttvar to a value which
00066     // will yield rto = 3s initially.
00067     srtt = 0;
00068     rttvar = 3.0/4.0;
00069 }


Member Function Documentation

std::string TCPBaseAlgStateVariables::detailedInfo (  )  const [virtual]

Reimplemented from TCPStateVariables.

Reimplemented in TCPTahoeRenoFamilyStateVariables.

00081 {
00082     std::stringstream out;
00083     out << TCPStateVariables::detailedInfo();
00084     out << "snd_cwnd = " << snd_cwnd << "\n";
00085     out << "rto = " << rexmit_timeout << "\n";
00086     // TBD add others too
00087     return out.str();
00088 }

std::string TCPBaseAlgStateVariables::info (  )  const [virtual]

Reimplemented from TCPStateVariables.

Reimplemented in TCPTahoeRenoFamilyStateVariables.

00072 {
00073     std::stringstream out;
00074     out << TCPStateVariables::info();
00075     out << " snd_cwnd=" << snd_cwnd;
00076     out << " rto=" << rexmit_timeout;
00077     return out.str();
00078 }


Member Data Documentation

bool TCPBaseAlgStateVariables::delayed_acks_enabled

TCP features delayed ACKs enabled/disabled; FIXME make this a socket option.

bool TCPBaseAlgStateVariables::nagle_enabled

Nagle's algorithm (off = NODELAY socket option).

int TCPBaseAlgStateVariables::rexmit_count

retransmit count number of retransmissions (=1 after first rexmit)

simtime_t TCPBaseAlgStateVariables::rexmit_timeout

current retransmission timeout (aka RTO)

uint32 TCPBaseAlgStateVariables::rtseq

round-trip time measurements starting sequence number of timed data

simtime_t TCPBaseAlgStateVariables::rtseq_sendtime

time when rtseq was sent (0 if RTT measurement is not running)

simtime_t TCPBaseAlgStateVariables::rttvar

variance of round-trip time

uint TCPBaseAlgStateVariables::snd_cwnd

congestion window congestion window

simtime_t TCPBaseAlgStateVariables::srtt

round-trip time estimation (Jacobson's algorithm) smoothed round-trip time


The documentation for this class was generated from the following files:
Generated on Wed Apr 4 13:20:24 2007 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.7