|
INET Framework for OMNeT++/OMNEST
|
#include <TCPNoCongestionControl.h>
Public Member Functions | |
| TCPNoCongestionControl () | |
| virtual void | initialize () |
| virtual void | receivedDataAck (uint32 firstSeqAcked) |
Protected Member Functions | |
| virtual TCPStateVariables * | createStateVariables () |
| virtual void | processRexmitTimer (TCPEventCode &event) |
Protected Attributes | |
| TCPNoCongestionControlStateVariables *& | state |
TCP with no congestion control (i.e. congestion window kept very large). Can be used to demonstrate effect of lack of congestion control.
| TCPNoCongestionControl::TCPNoCongestionControl | ( | ) |
Ctor
| virtual TCPStateVariables* TCPNoCongestionControl::createStateVariables | ( | ) | [inline, protected, virtual] |
Create and return a TCPNoCongestionControlStateVariables object.
Implements TCPAlgorithm.
{
return new TCPNoCongestionControlStateVariables();
}
| void TCPNoCongestionControl::initialize | ( | ) | [virtual] |
Initialize state vars
Reimplemented from TCPBaseAlg.
{
TCPBaseAlg::initialize();
// set congestion window to a practically infinite value
state->snd_cwnd = 0x7fffffff;
}
| void TCPNoCongestionControl::processRexmitTimer | ( | TCPEventCode & | event | ) | [protected, virtual] |
Redefine what should happen on retransmission
Reimplemented from TCPBaseAlg.
{
TCPBaseAlg::processRexmitTimer(event);
if (event==TCP_E_ABORT)
return;
// Tahoe-style retransmission: only one segment
conn->retransmitOneSegment(true);
}
| void TCPNoCongestionControl::receivedDataAck | ( | uint32 | firstSeqAcked | ) | [virtual] |
Redefine what should happen when data got acked, to add congestion window management
Reimplemented from TCPBaseAlg.
{
TCPBaseAlg::receivedDataAck(firstSeqAcked);
// ack may have freed up some room in the window, try sending
sendData();
}
Reimplemented from TCPBaseAlg.
Referenced by initialize().