Let's say we have two peers - A & B - trying to establish a WebRTC peer connection through Symmetric NAT. They exchanged the ICE candidates via signalling.
A's public address: IP_A : Port_A
B's public address: IP_B : Port_B
First, A tries to connect to B
IP_A : Port_A ---> IP_B : Port_B
The request is however rejected by B's NAT. Only B's STUN server can connect B at that address.
Next it's B's turn.
IP_B : Port_B ---> IP_A : Port_A
But here, shouldn't the connection be established? Because, Peer A's NAT table should have registered Peer B's address when A first sent request to B. So, any response from B must be accepted. But of course, it doesn't seem to work. So, where am I wrong?