Send ACK to some out-of-order packets (fixes bug 1112 and part of 1256)

This commit is contained in:
Adrian S Tam
2011-12-03 14:02:19 -05:00
parent d349afb5e4
commit 89019eabf5
2 changed files with 5 additions and 0 deletions

View File

@@ -683,6 +683,11 @@ TcpSocketBase::DoForwardUp (Ptr<Packet> packet, Ipv4Header header, uint16_t port
":" << tcpHeader.GetSequenceNumber () + packet->GetSize() <<
") out of range [" << m_rxBuffer.NextRxSequence () << ":" <<
m_rxBuffer.MaxRxSequence () << ")");
// Acknowledgement should be sent for all unacceptable packets (RFC793, p.69)
if (m_state == ESTABLISHED && !(tcpHeader.GetFlags () & TcpHeader::RST))
{
SendEmptyPacket (TcpHeader::ACK);
}
return;
}