Replies: 1 comment
|
This discussion was automatically closed because it has been inactive for 365 days. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Select Topic Area
Question
Body
I recently reviewed the UDP connection and ping-handling logic in both Sunshine and Moonlight, mainly focusing on
stream.cpp.In Sunshine, when establishing a connection, if the server does not receive the expected UDP ping payload or
"PING"packet, it logs:This seems to be a core part of the UDP handshake sequence between Sunshine and Moonlight.
Problem Description
I've observed (and Remote Debugging) several user computers where this issue occurred.
And all environments were tested Windows 11.
Case A — IPv6 behavior inconsistent between Internet and LAN
Case B — Quest 3's moonlight fails while phone's moonlight works (same LAN)
Related Discussion
I’ve read other discussion mentioning that the current UDP ping mechanism might also cause reconnection failures after a stream interruption.
From the symptoms, I suspect these might share the same underlying root cause — something related to the UDP ping lifecycle .
LizardByte/Sunshine#4168
https://github.com/orgs/LizardByte/discussions/182
Main Question
I want to clarify whether Moonlight uses any special logic when initiating communication on UDP port 47999 compared to 48000.
From logs, both Sunshine and Moonlight can communicate normally over 48000, but 47999 fails to work.
Proposal
Would it be feasible to introduce a dedicated UDP port to handle the PING mechanism separately from the main video/audio/control channels?
The rationale:
I also tested the same environments using iperf for UDP upload/download speed tests.
All UDP traffic tests ran successfully with no packet loss or timeout.
This indicates that the network stack and UDP routing are functional — suggesting the issue is specific to Sunshine’s UDP Ping mechanism or its initial handshake logic rather than a general UDP connectivity problem.
Because of this, I’m planning to develop and experiment with a refined UDP PING handshake mechanism, to test whether improving the sequence or timeout behavior could increase reliability.
All reactions