You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After not receiving a response for some time (application layer), the client decides to restart and initiates a new connection with the server.
What did you expect?
A successful second handshake.
What happened?
The client is completely ignored. There is nothing more in the server logs.
Thoughts
I can work around the issue by blocking the application data that the client sends after the server restart. It is this application data (which the server queues) that seems to interfere with the second handshake.
However, the client's second connection is from a different source port, with which the server has no prior association. Application data from a one source should not interfere with a handshake from another.
The text was updated successfully, but these errors were encountered:
Sorry I didn't respond to this sooner @gordonklaus. I am working on releasing the next major of pion/dtls so cleaning these up now.
I think you have to detect this on the client side. If the server doesn't send you a packet or ACK for N seconds you consider the connection dead.
If the new server could modify/notify the client that would be an attack vector. That would me anyone could MITM and modify your session. Maybe you could export the State every couple seconds in case you have a crash?
Happy to discuss it further/come up with helpful ideas :)
Better late than never, I suppose :) Although I have long since moved on from this project.
I think, from reading my description (and a vague recollection), that I already did just as you suggested: detect on the client side and try to reconnect. The issue was that the reconnection attempt was ignored by the server.
I would suspect rather that an attack vector already exists, if the server can be made to ignore client connection attempts. Not as bad as a MITM but more of a DOS.
Your environment.
What did you do?
What did you expect?
A successful second handshake.
What happened?
The client is completely ignored. There is nothing more in the server logs.
Thoughts
I can work around the issue by blocking the application data that the client sends after the server restart. It is this application data (which the server queues) that seems to interfere with the second handshake.
However, the client's second connection is from a different source port, with which the server has no prior association. Application data from a one source should not interfere with a handshake from another.
The text was updated successfully, but these errors were encountered: