Skip to content
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

Hybrid DTLS client: server goes down #266

Closed
igolaizola opened this issue Jun 16, 2020 · 1 comment
Closed

Hybrid DTLS client: server goes down #266

igolaizola opened this issue Jun 16, 2020 · 1 comment

Comments

@igolaizola
Copy link
Member

igolaizola commented Jun 16, 2020

Summary

Hybrid DTLS client connection that acts also as a server. It can accept a client hello, perform a full handshake and override the previous DTLS state with the new negotiated one.

Motivation

DTLS doesn't have a way to detect that a connection went down on the other side. If a client goes down it can always start a new handshake against the server. However, if the server goes down it can do nothing to restart the connection.

The client must then implement an application level feature (such as a request/response timeout) to restart a new connection. This adds latency and/or complexity to the arquitecture.

This "hybrid client" approach allows the server part to restart the DTLS connection.

Describe alternatives you've considered

  • Application level timeouts
  • Application level ping/pong
  • Monitoring the underlying connection

Additional context

Some related issues: #151 #132

PoC implementation of the feature inclusing test cases: https://gist.github.com/igolaizola/98a39856c2413565f59371fe68fa8863

Questions

What do yo think of adding a feature like this to the library? Perhaps on a subpackage.

What security implications could have?

@Sean-Der @daenney @at-wat

@Sean-Der
Copy link
Member

Sorry I didn't respond to this sooner @igolaizola

I think this is a great idea. Lots of people have struggled with this/asked questions. It should also be easier to do now with DTLS v1.3

I am hesitant to add any more code into pion/dtls though. It's nice that this library is just implementing a IETF standard, no subjectivity to it. I would love to recommend a library owned by you though that does this!

@Sean-Der Sean-Der closed this as not planned Won't fix, can't repro, duplicate, stale May 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants