Validate DTLS 1.2 datagram order and back off flight resends - #169
Merged
Merged
Conversation
Owner
Author
|
Review-cycle round 1: no actionable findings against the complete PR at Reviewed datagram validation before classification/queueing, repeated fragment sequences, ordering across datagrams, pooled-buffer cleanup, flight timer restart, duplicate cooldown expiry/reset, and final-flight recovery after periodic retransmission stops. The proposed scope remains limited to DTLS 1.2. Validation passed:
No regression-test commit was needed. Both the PR worktree and the main checkout remain clean. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Discard DTLS 1.2 datagrams whose handshake
message_seqvalues decrease before classifying or queueing records. Equal sequences remain valid for fragments, and datagrams can arrive out of order. Validate CCS/epoch ordering before peer encryption starts.Keep the first duplicate-triggered flight resend immediate, then suppress further duplicate responses during exponential backoff. Restart the flight timer after early resends and retain a cooldown for final-flight replies after periodic retransmission stops.
Add regressions for successful clean retransmission after a scrambled datagram is discarded, reordering across datagrams, fragment sequence repeats, and resend cooldown behavior.