|
| | TcpNoCongestionControl () |
| | Ctor. More...
|
| |
| virtual void | initialize () override |
| | Initialize state vars. More...
|
| |
| virtual void | receivedDataAck (uint32_t firstSeqAcked) override |
| | Redefine what should happen when data got acked, to add congestion window management. More...
|
| |
| virtual void | established (bool active) override |
| | Called when the connection is going to ESTABLISHED from SYN_SENT or SYN_RCVD. More...
|
| |
| virtual bool | sendData (bool sendCommandInvoked) override |
| | Send data, observing Nagle's algorithm and congestion window. More...
|
| |
| | TcpBaseAlg () |
| | Ctor. More...
|
| |
| virtual | ~TcpBaseAlg () |
| | Virtual dtor. 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 | receivedDuplicateAck () override |
| | Called after we received a duplicate ACK (that is: ackNo == snd_una, no data in segment, segment doesn't carry window update, and also, we have unacked data). More...
|
| |
| virtual void | receivedAckForDataNotYetSent (uint32_t 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_t fromseq) override |
| | Called after we sent data. More...
|
| |
| virtual void | segmentRetransmitted (uint32_t fromseq, uint32_t toseq) override |
| | Called after we retransmitted segment. More...
|
| |
| virtual void | restartRexmitTimer () override |
| | Restart REXMIT timer. More...
|
| |
| virtual bool | shouldMarkAck () override |
| | Called before sending ACK. More...
|
| |
| virtual void | processEcnInEstablished () override |
| | Called before processing segment in established state. More...
|
| |
| | 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...
|
| |
TCP with no congestion control (i.e.
congestion window kept very large). Can be used to demonstrate effect of lack of congestion control.
| void inet::tcp::TcpNoCongestionControl::established |
( |
bool |
active | ) |
|
|
overridevirtual |
Called when the connection is going to ESTABLISHED from SYN_SENT or SYN_RCVD.
This is a place to initialize some variables (e.g. set cwnd to the MSS learned during connection setup). If we are on the active side, here we also have to finish the 3-way connection setup procedure by sending an ACK, possibly piggybacked on data.
Reimplemented from inet::tcp::TcpBaseAlg.
34 EV_INFO <<
"Completing connection setup by sending ACK (possibly piggybacked on data)\n";