[Ns-bugs] [Bug 730] Enabling fragmentation at run-time breaks simulation
code@nsnam.ece.gatech.edu
code at nsnam.ece.gatech.edu
Thu Apr 22 00:19:01 PDT 2010
http://www.nsnam.org/bugzilla/show_bug.cgi?id=730
--- Comment #7 from Christian <c.facchini at gmail.com> 2010-04-22 03:19:01 EDT ---
The bug seems related to the TCP variable DelAckCount.
Here's a matrix of tests I performed with different numbers of nodes and
different DelAckCount values:
+--------------+----+----+----+----+
| nNodes= | 2 | 3 | 4 | 5 |
+--------------+----+----+----+----+
|DelAckCount=1 | 10 | - | 10 | 26 |
+--------------+----+----+----+----+
|DelAckCount=2 | - | 10 | - | - |
+--------------+----+----+----+----+
|DelAckCount=3 | 10 | - | - | - |
+--------------+----+----+----+----+
|DelAckCount=5 | 10 | - | 10 | - |
+--------------+----+----+----+----+
Numbers in the table stand for "the second in which the simulation breaks".
No number means the simulation seems not to break.
I further investigated the case in which DelAckCount=1 and nNodes=2.
After fragmentation is enabled, when sending a TCP data packet, the sender
seems to repeatedly enter the if-test at internet-stack/tcp-socket-impl.cc:416
(rev a6ee8748aee7), reported hereunder for convenience:
if (p->GetSize() > GetTxAvailable ())
{
m_errno = ERROR_MSGSIZE;
return -1;
}
The sink stops sending new ACKs, thus preventing the source to send new packets
(m_highestRxAck stays the same and, accordingly, GetTxAvailable ()).
However, it is not clear to me why the sink stops sending ACKs.
--
Configure bugmail: http://www.nsnam.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the Ns-bugs
mailing list