read more


Internet Protocol - Controls routing of information to different computers

Transmission Control Protocol - deals with making sure that everything gets transmitted and is put together in the right order. 

Some programs might not need TCP (they don’t need 100% data transmission). For instance, video chats don’t need to make sure that they have every packet (this would cause lag). So they use UDP instead of TCP, which does not guarantee 100% transmission. 

IP addresses go from to That’s about 4 billion addresses. 

DHCP server is in charge of assigning dynamic IP addresses 

So to save some IP addresses, rather than every computer having a global IP address, a router can be put in place to have an IP address of its own and then it’ll deal with sending and receiving data for each computer. So each computer has a local or private address within that network. My question: given this, how is it possible for the router to know which computer it needs to give information to?

Each packet might be around 1500 bytes

Check sum is a way to ensure accuracy. So the sender can for instance add all the bytes in a packet and then take the last two digits of the sum and send that too. 

each computer on the network will have a unique address which is the MAC ADDRESS! 

Typically, as you go upstream the links of routers, you’ll find that the step above you is your IP but with a 1 or 2 at the end. So low numbers are for the routers. 

Here’s where software development could help with routing: each router should know its neighborhood and so if certain links break, it should be able to figure what alternate paths to take. 

A NAT is something that blocks how connections can be established. You can get around this by using rendezvous servers, which is what Skype does.  

A packet contains the data and the from and to address. 

Packet Switching: (from the perspective of a link or router) Independently for each arriving packet, pick its outgoing link. If the link is free, send it. else hold the packet for later. 

Each (switch or link or router) has a table that it maintains that holds which of its connections it should send a packet when the destination address is of some form. So it looks at its table and says “hey, I when I have a destination address like this, I need to send the packet to this link”. 

I’ve dealt only on the application layer, so I really only concern myself with GET POST etc in the HTTP protocol. But each time I do that, it goes down through UDP or TCP then down to the network layer and transmits the data and then goes back up once it reaches the destination and then gets interpreted as the GET or POST or whatever I sent. 

Good to know: