#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 |
TCPNoCongestionControl::TCPNoCongestionControl | ( | ) |
Ctor
00023 : TCPBaseAlg(), 00024 state((TCPNoCongestionControlStateVariables *&)TCPAlgorithm::state) 00025 { 00026 }
virtual TCPStateVariables* TCPNoCongestionControl::createStateVariables | ( | ) | [inline, protected, virtual] |
Create and return a TCPNoCongestionControlStateVariables object.
Implements TCPAlgorithm.
00041 { 00042 return new TCPNoCongestionControlStateVariables(); 00043 }
void TCPNoCongestionControl::processRexmitTimer | ( | TCPEventCode & | event | ) | [protected, virtual] |
Redefine what should happen on retransmission
Reimplemented from TCPBaseAlg.
00037 { 00038 TCPBaseAlg::processRexmitTimer(event); 00039 if (event==TCP_E_ABORT) 00040 return; 00041 00042 // Tahoe-style retransmission: only one segment 00043 conn->retransmitOneSegment(); 00044 }
void TCPNoCongestionControl::initialize | ( | ) | [virtual] |
Initialize state vars
Reimplemented from TCPBaseAlg.
00029 { 00030 TCPBaseAlg::initialize(); 00031 00032 // set congestion window to a practically infinite value 00033 state->snd_cwnd = 0x7fffffff; 00034 }
void TCPNoCongestionControl::receivedDataAck | ( | uint32 | firstSeqAcked | ) | [virtual] |
Redefine what should happen when data got acked, to add congestion window management
Reimplemented from TCPBaseAlg.
00047 { 00048 TCPBaseAlg::receivedDataAck(firstSeqAcked); 00049 00050 // ack may have freed up some room in the window, try sending 00051 sendData(); 00052 }