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

Feature Request: Support for Multiple Devices on Shared UDP Connection with UDPMux #732

Open
minchopm opened this issue Sep 19, 2024 · 0 comments

Comments

@minchopm
Copy link

I'm working with pion/ice and encountered an issue when trying to connect multiple devices using a single UDP connection with Shared UDP Mux. Currently, UDPMux identifies each connection by the remote IP/Port, which works well for two pears. However, when I attempt to add a third device, the connection cannot be established as all agents on the device are sharing the same port.

I discussed this with Sean DuBois, who confirmed that the current implementation does not support this setup. However, I believe it could be improved by allowing UDPMux to identify connections in a more flexible way.

For example, the quic-go library provides a mechanism called ListenEarly and DialEarly, which allows for 0-RTT connections, enabling the opening of streams and sending of data before the handshake completes. Implementing a similar approach in pion/ice could allow for multiple devices to share the same UDP port while maintaining individual connections.

Proposed Solution:

Implement a more intelligent way for UDPMux to identify connections, possibly using early connection techniques like those found in quic-go.
Allow for the establishment of multiple connections over the same UDP port, ensuring that each connection is correctly identified even when sharing the same IP and port.
By enabling this feature, pion/ice would be able to handle scenarios where more than two devices need to communicate over a single port, thus enhancing its flexibility and usability in more complex network setups.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant