Bug 65271
Summary: | Acceptable RST packets (with seq number in window) are ignored in LAST_ACK state (and previously sent data pending acknowledgement) | ||
---|---|---|---|
Product: | Networking | Reporter: | Julien Delacroix (julien.delacroix) |
Component: | IPV4 | Assignee: | Stephen Hemminger (stephen) |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | alan, julien.delacroix |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.32.59-0.7-default | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: | TCP dump showing described scenario |
Created attachment 115271 [details] TCP dump showing described scenario PCAP file of traffic capture is attached. Note that capture was taken directly on server host, so RST packets definitely reached the server host. Here is the flow: 1: Client ---- SYN ----> Server 2: Client <- SYN, ACK -- Server 3: Client ---- ACK ----> Server 4: Client ---- FIN ----> Server ( server in CLOSE_WAIT state) 5: Client <- PSH, ACK -- Server 6: Client <- FIN, ACK -- Server ( server in LAST_ACK state) 7: Client ---- RST ----> Server Then repeat N times: 8: Client <- PSH, ACK -- Server 9: Client ---RST, ACK -> Server Notes: 5: packet contains 3 bytes of data 7: no ACK flag, and sequence number is correct, but RST packet is ignored 8: retransmission of step 5 9: the sequence number is correct as well as the acknowledgment number (acknowledging data in 5, but not yet FIN in 6), but this RST is again ignored. From this point client keeps retransmitting 5, while server keeps answering with acceptable RST packets. You can observe this scenario (with 5 retransmissions and 5 RST) in the attached PCAP file.