webrtc/net/dcsctp
Victor Boivie 568bc23208 dcsctp: Don't reassemble already received chunks
This is a solution to some problems that have been found locally when
running the fuzzer for a long time. The fuzzer keeps on fuzzing, and has
found a way to trigger a consistency check to fail when a client
intentionally sends different messages - unordered and ordered - using
the same TSNs. As the reassembly queue has different handling of ordered
and unordered chunks due to how they are reassembled, it will not notice
if it receives two different chunks with the same TSN. They will both go
to their respective reassembly streams, as those are separate by design.

The data tracker - which keeps track of all received DATA chunks as it
needs to generate SACKs, has a global understanding of all received
chunks. By having it indicate if this is a duplicate received chunk, the
socket can avoid forwarding both chunks to the reassembly queue; only
one chunk will get there.

Bug: None
Change-Id: I602a8552a9a4c853684fcf105309ec3d8073f2c2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256110
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36316}
2022-03-24 10:39:03 +00:00
..
common Move StrongAlias to rtc_base 2021-09-21 15:17:26 +00:00
fuzzers Allow specifying delayed task precision of dcsctp::Timer. 2022-01-26 18:40:24 +00:00
packet dcsctp: Don't deliver skipped messages 2022-03-09 11:22:15 +00:00
public Allow specifying delayed task precision of dcsctp::Timer. 2022-01-26 18:40:24 +00:00
rx dcsctp: Don't reassemble already received chunks 2022-03-24 10:39:03 +00:00
socket dcsctp: Don't reassemble already received chunks 2022-03-24 10:39:03 +00:00
testing Remove top-level const from parameters in function declarations. 2022-01-26 11:05:25 +00:00
timer dcsctp: Convert socket tests not to use fixtures 2022-03-07 12:20:40 +00:00
tx dcsctp: Remove handover_state from RRSendQueue 2022-03-14 12:19:56 +00:00
BUILD.gn dcsctp: Add socket fuzzer helper 2021-05-12 15:06:17 +00:00
OWNERS dcsctp: Add OWNERS file 2021-04-20 10:42:58 +00:00