mirror of
https://github.com/zeek/zeek.git
synced 2025-10-03 15:18:20 +00:00
Fix issue w/ TCP reassembler not delivering some segments.
For example, if we have a connection between TCP "A" and TCP "B" and "A" sends segments "1" and "2", but we don't see the first and then the next acknowledgement from "B" is for everything up to, and including, "2", the gap would be reported to include both segments instead of just the first and then delivering the second. Put generally: any segments that weren't yet delivered because they're waiting for an earlier gap to be filled would be dropped when an ACK comes in that includes the gap as well as those pending segments. (If a distinct ACK was seen for just the gap, that situation would have worked). Addresses BIT-1246.
This commit is contained in:
parent
f97f58e9db
commit
f1cef9d2a9
7 changed files with 96 additions and 39 deletions
|
@ -94,6 +94,7 @@ private:
|
|||
DECLARE_SERIAL(TCP_Reassembler);
|
||||
|
||||
void Undelivered(uint64 up_to_seq);
|
||||
void Gap(uint64 seq, uint64 len);
|
||||
|
||||
void RecordToSeq(uint64 start_seq, uint64 stop_seq, BroFile* f);
|
||||
void RecordBlock(DataBlock* b, BroFile* f);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue