-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Specify framing mode #59
Conversation
draft-ietf-tls-ctls.md
Outdated
length of `2^16-1`. When operating over UDP, large `CTLSHandshake` messages | ||
will also require the use of IP fragmentation, which is sometimes | ||
undesirable. Operators can avoid these concerns by setting | ||
`template.handshakeFraming = true`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to say how you also need an in-order transport?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had intended this to be usable even on out-of-order transports. It appears to be safe for DTLS 1.3, because the only messages sent in plaintext are ClientHello, ServerHello, HelloRetryRequest, and Alert, each of which constitutes an entire "flight" and so is at no risk of reordering. All multi-message flights are in ciphertext, and can rely on the unified header's sequence number for ordering.
This would not have worked in DTLS 1.2, and I suppose it is not guaranteed for future versions. Perhaps we can nonetheless rely on this property for now, and address the problem if it arises in the future.
I'm not 100% sure how this interacts with the DTLS ACK and retransmission system, but it seems reasonably straightforward to deduplicate identical ServerHellos, to avoid placing a retransmitted ServerHello in the transcript twice.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think you can rely on the sequence number for reordering because retransmits use a new sequence number.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had been thinking that we would change that, but never mind.
I've added a CTLSDatagramHandshake
type that has a message_seq
field for reordering.
FYI, this PR now moves |
LGTM. |
Fixes #41, #42