Bugzilla – Full Text Bug Listing |
Summary: | Handling SYN+ACK after SYN in tcp-socket-base.cc | ||
---|---|---|---|
Product: | ns-3 | Reporter: | Tom Henderson <tomh> |
Component: | tcp | Assignee: | natale.patriciello |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | ns-bugs |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Attachments: | test case to reproduce |
Description
Tom Henderson
2017-10-05 10:18:13 EDT
Created attachment 2929 [details]
test case to reproduce
Enabling this program in the src/internet/test directory will demonstrate the problem.
Run it as:
NS_LOG="TcpSocketBase" ./waf --run 'test-runner --suite=tcp-handshake' > log.out 2>&1
The test forces the loss of the first SYN+ACK, but not subsequent ones.
The log will show that the TCP will repeatedly resend SYN+ACK then give up.
On line 12, if ENABLE_DATA is enabled, the test will get by ths because the ACK (of SYN+ACK) comes in the initial data from the source.
My sense of this is that an uncommon scenario would trigger this bug: 1) client initiates TCP session to server (via connect()). 2) despite completing the connection (from its perspective) the client leaves the connection open and sends no data to the server. |