#include <TCPBaseAlg.h>
Public Member Functions | |
| TCPBaseAlgStateVariables () | |
| virtual std::string | info () const |
| virtual std::string | detailedInfo () const |
Public Attributes | |
| int | rexmit_count |
| retransmit count | |
| simtime_t | rexmit_timeout |
| current retransmission timeout (aka RTO) | |
| uint | persist_factor |
| persist factor | |
| simtime_t | persist_timeout |
| current persist timeout | |
| uint32 | snd_cwnd |
| uint32 | rtseq |
| round-trip time measurements | |
| 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) | |
| simtime_t | rttvar |
| variance of round-trip time | |
| uint32 | numRtos |
| number of RTOs | |
| uint32 | recover |
| RFC 3782 variables. | |
| bool | firstPartialACK |
| first partial acknowledgement (RFC 3782) | |
State variables for TCPBaseAlg.
Definition at line 29 of file TCPBaseAlg.h.
| TCPBaseAlgStateVariables::TCPBaseAlgStateVariables | ( | ) |
Definition at line 48 of file flavours/TCPBaseAlg.cc.
{
rexmit_count = 0;
rexmit_timeout = 3.0;
persist_factor = 0;
persist_timeout = 5.0;
snd_cwnd = 0; // will be set to SMSS when connection is established
rtseq = 0;
rtseq_sendtime = 0;
// Jacobson's alg: srtt must be initialized to 0, rttvar to a value which
// will yield rto = 3s initially.
srtt = 0;
rttvar = 3.0/4.0;
numRtos = 0;
// RFC 3782, page 4:
// "The algorithm specified in this document uses a variable "recover",
// whose initial value is the initial send sequence number."
recover = iss;
firstPartialACK = false;
}
| std::string TCPBaseAlgStateVariables::detailedInfo | ( | void | ) | const [virtual] |
Reimplemented from TCPStateVariables.
Reimplemented in TCPTahoeRenoFamilyStateVariables.
Definition at line 84 of file flavours/TCPBaseAlg.cc.
{
std::stringstream out;
out << TCPStateVariables::detailedInfo();
out << "snd_cwnd = " << snd_cwnd << "\n";
out << "rto = " << rexmit_timeout << "\n";
out << "persist_timeout = " << persist_timeout << "\n";
// TBD add others too
return out.str();
}
| std::string TCPBaseAlgStateVariables::info | ( | ) | const [virtual] |
Reimplemented from TCPStateVariables.
Reimplemented in TCPTahoeRenoFamilyStateVariables.
Definition at line 75 of file flavours/TCPBaseAlg.cc.
Referenced by TCPBaseAlg::processRexmitTimer().
{
std::stringstream out;
out << TCPStateVariables::info();
out << " snd_cwnd=" << snd_cwnd;
out << " rto=" << rexmit_timeout;
return out.str();
}
first partial acknowledgement (RFC 3782)
Definition at line 73 of file TCPBaseAlg.h.
Referenced by TCPNewReno::processRexmitTimer(), TCPNewReno::receivedDataAck(), TCPNewReno::receivedDuplicateAck(), and TCPBaseAlgStateVariables().
number of RTOs
total number of RTOs
Definition at line 67 of file TCPBaseAlg.h.
Referenced by TCPBaseAlg::processRexmitTimer(), and TCPBaseAlgStateVariables().
persist factor
factor needed for simplified PERSIST timer calculation
Definition at line 44 of file TCPBaseAlg.h.
Referenced by TCPBaseAlg::processPersistTimer(), TCPBaseAlg::receivedDataAck(), and TCPBaseAlgStateVariables().
current persist timeout
Definition at line 45 of file TCPBaseAlg.h.
Referenced by detailedInfo(), TCPBaseAlg::processPersistTimer(), TCPBaseAlg::receivedDataAck(), and TCPBaseAlgStateVariables().
RFC 3782 variables.
recover (RFC 3782)
Definition at line 72 of file TCPBaseAlg.h.
Referenced by TCPNewReno::processRexmitTimer(), TCPNewReno::receivedDataAck(), TCPNewReno::receivedDuplicateAck(), and TCPBaseAlgStateVariables().
retransmit count
number of retransmissions (=1 after first rexmit)
Definition at line 38 of file TCPBaseAlg.h.
Referenced by TCPBaseAlg::processRexmitTimer(), TCPBaseAlg::startRexmitTimer(), and TCPBaseAlgStateVariables().
| simtime_t TCPBaseAlgStateVariables::rexmit_timeout |
current retransmission timeout (aka RTO)
Definition at line 39 of file TCPBaseAlg.h.
Referenced by detailedInfo(), info(), TCPBaseAlg::processPersistTimer(), TCPBaseAlg::processRexmitTimer(), TCPBaseAlg::rttMeasurementComplete(), TCPBaseAlg::sendData(), TCPBaseAlg::startRexmitTimer(), and TCPBaseAlgStateVariables().
round-trip time measurements
starting sequence number of timed data
Definition at line 55 of file TCPBaseAlg.h.
Referenced by TCPBaseAlg::dataSent(), TCPBaseAlg::receivedDataAck(), and TCPBaseAlgStateVariables().
| simtime_t TCPBaseAlgStateVariables::rtseq_sendtime |
time when rtseq was sent (0 if RTT measurement is not running)
Definition at line 56 of file TCPBaseAlg.h.
Referenced by TCPBaseAlg::dataSent(), TCPBaseAlg::processRexmitTimer(), TCPBaseAlg::receivedDataAck(), and TCPBaseAlgStateVariables().
| simtime_t TCPBaseAlgStateVariables::rttvar |
variance of round-trip time
Definition at line 62 of file TCPBaseAlg.h.
Referenced by TCPBaseAlg::rttMeasurementComplete(), and TCPBaseAlgStateVariables().
congestion window
Definition at line 50 of file TCPBaseAlg.h.
Referenced by detailedInfo(), TCPBaseAlg::established(), info(), TCPNoCongestionControl::initialize(), TCPTahoe::processRexmitTimer(), TCPReno::processRexmitTimer(), TCPNewReno::processRexmitTimer(), TCPTahoe::recalculateSlowStartThreshold(), TCPReno::recalculateSlowStartThreshold(), TCPNewReno::recalculateSlowStartThreshold(), TCPTahoe::receivedDataAck(), TCPReno::receivedDataAck(), TCPNewReno::receivedDataAck(), TCPTahoe::receivedDuplicateAck(), TCPReno::receivedDuplicateAck(), TCPNewReno::receivedDuplicateAck(), TCPBaseAlg::receivedDuplicateAck(), TCPBaseAlg::sendData(), and TCPBaseAlgStateVariables().
| simtime_t TCPBaseAlgStateVariables::srtt |
round-trip time estimation (Jacobson's algorithm)
smoothed round-trip time
Definition at line 61 of file TCPBaseAlg.h.
Referenced by TCPBaseAlg::rttMeasurementComplete(), and TCPBaseAlgStateVariables().
1.7.1