Question: Assuming PAT is enabled on my home internet router, how does my router know which hosts to de-multiplex packets to when it receives packets from the internet?
Example: On my LAN there is 2 hosts. Each send a request to the same server for the same information. Each host is using the same port. How does the router know which packets should go where? Each packet should have the same source and destination address. The ports should be the same unless there is some port magic that I am not aware of.
My guess: I am going to guess that there is some meta-data that I am not aware of that is attached to packets that somehow identifies each individual host on a private network. But this doesn't seem to work in the next example.
Example: Some host(other) on a different network wants to send a packet to a host(my) on my LAN. The other host sends the packet to my network's public IP address. But since my host is not expecting the packet it couldn't have given my router any meta data about how to de-multiplex the packet. And the other host doesn't know meta-data other than my network's public IP address.