A send_ping method for measuring latency #576
Merged
+40
−0
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.
The already supported send_keepalive method is useful for keeping the connection alive, but when the application wants to measure the latency, we need to wait for the response before returning.
"ping" is a rather basic networking feature, but there is a reason why so many protocols have their own ping utility (arping, ndping, hping, httping, ws-ping, quicreach, etc.). Different networks just need different diagnostic tools.
My personal usecase is that I want to do a latency check - to a host that only serves SSH - through a SOCKS proxy. I cannot send ICMP packets because there is a proxy in between the hosts. I'm sure there are many other diagnostic use cases for this. Perhaps there are also other applications that for some reason want to show the connection latency, like 3D shooters typically can do, for example.
In any case, I think this is a useful feature for russh to have, so here I am proposing it, with this PR.