[Ns-bugs] [Bug 579] New: TCP congestion window is not updated whent segment size chages
code@nsnam.ece.gatech.edu
code at nsnam.ece.gatech.edu
Mon Jun 1 03:36:28 PDT 2009
http://www.nsnam.org/bugzilla/show_bug.cgi?id=579
Summary: TCP congestion window is not updated whent segment size
chages
Product: ns-3
Version: ns-3-dev
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P5
Component: internet-stack
AssignedTo: ns-bugs at isi.edu
ReportedBy: boyko at iitp.ru
Estimated Hours: 0.0
Behavior. when using non-standard TCP segment size > 536 bytes first data
packet is 3 seconds delayed.
Explanation. In the code below:
socket = socketFactory->CreateSocket();
socket->SetAttribute ("SegmentSize", UintegerValue (1400));
TCP congestion window size is set to default value of 536 bytes in the first
line (CreateSocket()). SetAttribute() call changes segment size but NOT CW
size.
As a result one has socket with segment size = 1400 and CW size = 536. Trying
to send, say, 1000 bytes one will finish in
if (w < m_segmentSize && m_pendingData->Size () > w)
{
break; // No more
}
of TcpSocketImpl::SendPendingData (tcp-socket-impl.cc:1038), which in turn will
cause retry in 3 seconds.
Ugly solution. Now I just set TCP segment size globally, e.g. from command line
as --ns3::TcpSocket::SegmentSize=1400. This works, because segment size is set
BEFORE CreateSocket ().
Better solution. I guess, that CW size must be set to max (CW size, new segment
size) when segment size is changed. Don't have a patch & test for this
solution, sorry.
--
Configure bugmail: http://www.nsnam.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the Ns-bugs
mailing list