inet-framework / inet

INET Framework for the OMNeT++ discrete event simulator
https://inet.omnetpp.org
Other
437 stars 485 forks source link

The TCP Stack can only send one TCP Segment one time when use the TCP_TRANSFER_BYTESTREAM TCPDataTransferMode #95

Closed rhornig closed 6 years ago

rhornig commented 9 years ago

The implementation now will only send one tcpSegment once the application layer put data to buffer, that is the TCP layer will send at most effectiveWin bytes data from the app buffer and let the rest data in the buffer, the left ones will be sent when the application layer put data to the buffer the next time, and this is not what the the application want the TCP layer to do.

Additional Information: I suggest to modify "bool TCPConnection::sendData(bool fullSegmentsOnly, uint32 congestionWindow)"function(in src/transport/tcp/TCPConnectionUtil.cc), after assign effectiveWin to bytesToSend, there's no need to compare the value of bytesToSend and buffered,just assign directly. The simplest way to repair it is to delete line 697 in src/transport/tcp/TCPConnectionUtil.cc.

from: http://dev.omnetpp.org/bugs/view.php?id=610

ZoltanBojthe commented 6 years ago

obsolete, closed