I want to estabilish TCP connection over the internet between 2 computers which are in different local networks (the local networks use wifi). I have looked for description of TCP protocol, esspecially the structure of TCP header: http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Checksum_computation
I assumed from that data that only: Source address (global ip), Destination address (global ip), Source port, Destination port are needed.
But how does the router in recipient's local network know which computer in this network is the final destination without MAC address or local ip address?
EDIT: In my situation I have: a mobile phone connected to the internet (not by wifi) and the server (pc) in home local network connected to router by wifi.
So the question is: Are the global sender/reciepient IP address and ports all that are needed or are the MAC addresses also needed to estabilish connection?
If MAC is not necessary what if there are two computers in the same network that are listening on the same port. As far as I remember all pc's use port 80 for http which uses tcp. Why are there no conflicts?