Ice4j: TCP may take precedence over UDP

Description:

For access from the same computer on the same network, TCP may take precedence over UDP.
Can any settings work around this issue?

  • UDP 10000 port is permitted by the server-side firewall.
  • I plan to use the TURN server in the future, but for some reason now I have enabled ICE/TCP provided by jitsi-videobridge on port 443.
  • UDP has a higher priority in org.ice4j.ice.CandidatePair#computePriority.
    • Refer to jitsi-videobridge log

In connection check of CandidatePair, if there is a candidate for the UDP & TCP, there was a case to be nominated for what could connection confirmation first.

I have confirmed that this problem can be avoided by performing “triggerCheck” after delaying in the case of TCP in Agent#incomingCheckReceived.

Reproduce:

  • Participate in a conference with 3 or more PCs.
  • Occurs with a probability of about 10%.
  • This issue can occur in server environments with fast networks.

Server information:

  • Server OS: Ubuntu 20.10 / CPU: 4 vCore RAM: 8GB
  • Network speed:
    • Download: 2577.03 Mbit/s
    • Upload: 2048.23 Mbit/s

Client information:

  • OS: Windows10 / Chrome91

Additional information: