Think of ports like this: In an office of say 10 people and 1 router out to the internet. On the business side of that router they use private IP addressing, these are addresses that can't be routed or used by the internet. So all 10 people are on Chrome using the http protocol to get around the interwebs. On the internet side of that router is 1 IP address assigned by the ISP. It is the router's job to make sure that the IP addresses are translated from private to the routable IP the ISP provides and back again to the correct address on the inside. But if all of 10 users are using the same protocol, then how does it know when the information comes back from the internet which address it goes to? Remember the internet only knows the 1 IP address. That is where ports come in. The OS assigns a port number any time a protocol is used. There are some common ones for FTP is 21, SMTP is 25, POP 3 is 110 but there are over 65000 of them. If you have a few web pages open, open a CMD prompt and type netstat -a and you'll see the protocol, IP address and the port like UDP 192.168.1.80:57798 <<-- after the colon is the port number. That port number is part of the packet that gets encapsulated by the computer and it's part of what the router sees. So the router knows when that web page's packet comes back with the port number 57798, the router sees it and says Ok you want to go to node 80 and sends it to that device.