|
|
| 128 |
m_cWnd -= seq - m_txBuffer.HeadSequence (); |
128 |
m_cWnd -= seq - m_txBuffer.HeadSequence (); |
| 129 |
m_cWnd += m_segmentSize; // increase cwnd |
129 |
m_cWnd += m_segmentSize; // increase cwnd |
| 130 |
NS_LOG_INFO ("Partial ACK in fast recovery: cwnd set to " << m_cWnd); |
130 |
NS_LOG_INFO ("Partial ACK in fast recovery: cwnd set to " << m_cWnd); |
|
|
131 |
/* |
| 132 |
* Patch by Morteza Kheirkhah (m.kheirkhah@sussex.ac.uk), University of Sussex, United Kingdom. |
| 133 |
* Personal webpage: http://www.uclmail.net/users/m.kheirkhah/ |
| 134 |
*/ |
| 135 |
m_txBuffer.DiscardUpTo(seq); // Discard data up to but not including this sequence number. |
| 136 |
DoRetransmit (); // Assume the next seq is lost. Retransmit lost packet |
| 131 |
TcpSocketBase::NewAck (seq); // update m_nextTxSequence and send new data if allowed by window |
137 |
TcpSocketBase::NewAck (seq); // update m_nextTxSequence and send new data if allowed by window |
| 132 |
DoRetransmit (); // Assume the next seq is lost. Retransmit lost packet |
|
|
| 133 |
return; |
138 |
return; |
| 134 |
} |
139 |
} |
| 135 |
else if (m_inFastRec && seq >= m_recover) |
140 |
else if (m_inFastRec && seq >= m_recover) |