mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-09-09 14:01:06 +03:00
bump webrtc: probe on T3-rtx, settle the rest by the SACK, RTO from the latest send
Sending without a congestion window, a T3-rtx resent everything in flight, and on a 5 Mbps link with 300-500ms stalls that spiralled: seconds of latency and several times the bytes. The fork now resends everything outstanding on a timeout only when it packs into four packets; otherwise it resends one packet and withholds the rest until the SACKs settle them (RFC 4960 6.3.3 E3, F-RTO): an original acked takes the marks off, a first transmission made after the timeout acked with the rest still missing sends them, and with nothing else to tell, a probe acked no sooner than the least RTT after it went out draws the next probe, two of them settling the rest as lost. A restarted RTO is counted from the latest send as QUIC does, backs off from the full RTO, and floors at KCP's 30ms with srtt + 25ms at the least. Lost tails of up to four packets and sparse small messages under loss now recover at KCP's pace where they trailed it by a frame; a stall no longer resends the backlog behind itself. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019aokqJuhjvB3kijXtAg5Ns
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -9708,7 +9708,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "webrtc-sctp"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/rustdesk-org/webrtc?rev=48100bf13e694d7e5bbb49b9a753dbad1c359d0c#48100bf13e694d7e5bbb49b9a753dbad1c359d0c"
|
||||
source = "git+https://github.com/rustdesk-org/webrtc?rev=b221f13b1d6f21fbce09f9f63096be27dd392265#b221f13b1d6f21fbce09f9f63096be27dd392265"
|
||||
dependencies = [
|
||||
"arc-swap",
|
||||
"async-trait",
|
||||
@@ -9748,7 +9748,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "webrtc-util"
|
||||
version = "0.11.0"
|
||||
source = "git+https://github.com/rustdesk-org/webrtc?rev=48100bf13e694d7e5bbb49b9a753dbad1c359d0c#48100bf13e694d7e5bbb49b9a753dbad1c359d0c"
|
||||
source = "git+https://github.com/rustdesk-org/webrtc?rev=b221f13b1d6f21fbce09f9f63096be27dd392265#b221f13b1d6f21fbce09f9f63096be27dd392265"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"bitflags 1.3.2",
|
||||
|
||||
Reference in New Issue
Block a user