-
Computers communicate by sending packets, which are like virtual envelopes sent between computers
- Ultimately still 0s and 1s
-
As an analogy, suppose we want to find a cat image on the internet
-
So, we send a request to a server, say Google, like “get cat.jpg”
- We place this request in an envelope
-
On the envelope, we list our IP as the return address
-
However, for the recipient of the request, we don’t know the IP address for Google
- Have to rely on DNS
- Send a request to our ISP’s DNS server for Google’s IP address
- If the ISP’s DNS server doesn’t know a website’s IP address, it has been configured to ask another DNS server
- There exist root servers that know where to look for an IP address if it exists
-
After sending the request off, we’ll get a response ms later
-
The cat will be sent back in one or more packets
- If the cat image is too large for a single envelope, sending it in one packet could take up internet traffic
- To solve this, Google will divide the cat image into smaller fragments
- Put the fragments into different envelopes
- Write information on the envelopes
- Return address: Google’s IP address
- Delivery address: Our IP address
- List the number of packets on each envelope (1 of 4, 2 of 4, etc.)