I'm learning about private/public IPs, port forwarding and NAT, and still fail to see the answer to a simple question:
Suppose two users on the same network are communicating with a single server outside their network (say, me & my wife send http requests to yahoo.com). The server sees both users as a single public ip, and often – as in this case – communicating on the same port. How does the router route the packets according to the two different connections? Is there any routing info inside the packet beyond ip/port? Is there some 'session table' maintained somewhere? By whom and what exactly does it include?