-
Notifications
You must be signed in to change notification settings - Fork 160
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
Share one UDP socket with all UDP candidates #76
Comments
In order to make this possible, we will need to modify pion/stun and pion/turnc to use net.UDPConn which is not bound to a specific remote address, meaning, we should use net.ListenPacket(or net.ListenUDP). NOT net.DialUDP! (it creates a "connected" udp socket!) Here's a demo |
The new TURN Client (in pion/turn) is The new client will allow achieving what this PR is aiming for, but let's do it after pion/webrtc#712 successfully lands. (This does not strictly affect connectivity) Here's what we need to do... Here's my plan:
|
At this point, we will have a proper STUN transaction (and with retransmits) with STUN server, as well as connectivity checking all done by the new turn.Client. |
Your environment.
What did you do?
During the work of #46, I noticed that a UDP socket was created for each 3 types of initial candidates, host, srflx and relay.
What did you expect?
All candidates (in the same address family) should share the base UDP socket (used for host candidate)
Current socket allocation:
25 candidate pairs (or pings per period)
Ideal socket allocation:
9 candidate pairs (or pings per period)
What happened?
The text was updated successfully, but these errors were encountered: