INET Framework for OMNeT++/OMNEST
|
Implements TCP NewReno. More...
#include <TCPNewReno.h>
Public Member Functions | |
TCPNewReno () | |
Ctor. More... | |
virtual void | receivedDataAck (uint32 firstSeqAcked) override |
Redefine what should happen when data got acked, to add congestion window management. More... | |
virtual void | receivedDuplicateAck () override |
Redefine what should happen when dupAck was received, to add congestion window management. More... | |
Public Member Functions inherited from inet::tcp::TCPTahoeRenoFamily | |
TCPTahoeRenoFamily () | |
Ctor. More... | |
Public Member Functions inherited from inet::tcp::TCPBaseAlg | |
TCPBaseAlg () | |
Ctor. More... | |
virtual | ~TCPBaseAlg () |
Virtual dtor. More... | |
virtual void | initialize () override |
Create timers, etc. More... | |
virtual void | established (bool active) override |
Called when the connection is going to ESTABLISHED from SYN_SENT or SYN_RCVD. More... | |
virtual void | connectionClosed () override |
Called when the connection closes, it should cancel all running timers. More... | |
virtual void | processTimer (cMessage *timer, TCPEventCode &event) override |
Process REXMIT, PERSIST, DELAYED-ACK and KEEP-ALIVE timers. More... | |
virtual void | sendCommandInvoked () override |
Called after user sent TCP_C_SEND command to us. More... | |
virtual void | receivedOutOfOrderSegment () override |
Called after receiving data which are in the window, but not at its left edge (seq != rcv_nxt). More... | |
virtual void | receiveSeqChanged () override |
Called after rcv_nxt got advanced, either because we received in-sequence data ("text" in RFC 793 lingo) or a FIN. More... | |
virtual void | receivedAckForDataNotYetSent (uint32 seq) override |
Called after we received an ACK for data not yet sent. More... | |
virtual void | ackSent () override |
Called after we sent an ACK. More... | |
virtual void | dataSent (uint32 fromseq) override |
Called after we sent data. More... | |
virtual void | segmentRetransmitted (uint32 fromseq, uint32 toseq) override |
Called after we retransmitted segment. More... | |
virtual void | restartRexmitTimer () override |
Restart REXMIT timer. More... | |
Public Member Functions inherited from inet::tcp::TCPAlgorithm | |
TCPAlgorithm () | |
Ctor. More... | |
virtual | ~TCPAlgorithm () |
Virtual dtor. More... | |
void | setConnection (TCPConnection *_conn) |
Assign this object to a TCPConnection. More... | |
TCPStateVariables * | getStateVariables () |
Creates and returns the TCP state variables. More... | |
Protected Member Functions | |
virtual TCPStateVariables * | createStateVariables () override |
Create and return a TCPNewRenoStateVariables object. More... | |
virtual void | recalculateSlowStartThreshold () |
Utility function to recalculate ssthresh. More... | |
virtual void | processRexmitTimer (TCPEventCode &event) override |
Redefine what should happen on retransmission. More... | |
Protected Member Functions inherited from inet::tcp::TCPBaseAlg | |
virtual void | startRexmitTimer () |
Start REXMIT timer and initialize retransmission variables. More... | |
virtual void | rttMeasurementComplete (simtime_t tSent, simtime_t tAcked) |
Update state vars with new measured RTT value. More... | |
virtual void | rttMeasurementCompleteUsingTS (uint32 echoedTS) override |
Converting uint32 echoedTS to simtime_t and calling rttMeasurementComplete() to update state vars with new measured RTT value. More... | |
virtual bool | sendData (bool sendCommandInvoked) |
Send data, observing Nagle's algorithm and congestion window. More... | |
cMessage * | cancelEvent (cMessage *msg) |
Utility function. More... | |
virtual void | processPersistTimer (TCPEventCode &event) |
virtual void | processDelayedAckTimer (TCPEventCode &event) |
virtual void | processKeepAliveTimer (TCPEventCode &event) |
Protected Attributes | |
TCPNewRenoStateVariables *& | state |
Protected Attributes inherited from inet::tcp::TCPTahoeRenoFamily | |
TCPTahoeRenoFamilyStateVariables *& | state |
Protected Attributes inherited from inet::tcp::TCPBaseAlg | |
TCPBaseAlgStateVariables *& | state |
cMessage * | rexmitTimer |
cMessage * | persistTimer |
cMessage * | delayedAckTimer |
cMessage * | keepAliveTimer |
cOutVector * | cwndVector |
cOutVector * | ssthreshVector |
cOutVector * | rttVector |
cOutVector * | srttVector |
cOutVector * | rttvarVector |
cOutVector * | rtoVector |
cOutVector * | numRtosVector |
Protected Attributes inherited from inet::tcp::TCPAlgorithm | |
TCPConnection * | conn |
TCPStateVariables * | state |
Implements TCP NewReno.
inet::tcp::TCPNewReno::TCPNewReno | ( | ) |
Ctor.
|
inlineoverrideprotectedvirtual |
Create and return a TCPNewRenoStateVariables object.
Implements inet::tcp::TCPAlgorithm.
|
overrideprotectedvirtual |
Redefine what should happen on retransmission.
Reimplemented from inet::tcp::TCPBaseAlg.
|
protectedvirtual |
Utility function to recalculate ssthresh.
Referenced by processRexmitTimer(), and receivedDuplicateAck().
|
overridevirtual |
Redefine what should happen when data got acked, to add congestion window management.
Reimplemented from inet::tcp::TCPBaseAlg.
|
overridevirtual |
Redefine what should happen when dupAck was received, to add congestion window management.
Reimplemented from inet::tcp::TCPBaseAlg.
|
protected |
Referenced by processRexmitTimer(), recalculateSlowStartThreshold(), receivedDataAck(), and receivedDuplicateAck().