Here is my understanding of STUN.
Device A which is behind NAT wants to discover its public ip address so sends a request to STUN server.
A->B->C->D (public ip) -> E->F->G->STUN server
So the request flows till D which is last router having private ip address with a WAN facing public ip address.
When one says about discovering its public ip address i think this ip of Device D is what we are talking about.
Now the request flow through several machines on internet E , F and G and finally lands on the public STUN server.
what i understand is the Packet that stun server recieves will only have info that it came from G ??
So as per that how does STUN server knows that it has to send the public ip (of D) in the response ?
Please clarify. I know my understanding has gaps somewhere....