Skip to content

suresh-keerthi/working-of-computer-networks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

working-of-computer-networks

Let’s dive into a elaborate example that fills in potential knowledge gaps, taking a deep look into every step of communication when accessing a website from a laptop connected to a Wi-Fi network. This will involve various protocols, including TCP/IP, MAC, DNS, DHCP, ARP, NAT, HTTP/HTTPS, ICMP, and others.


Scenario: You Access www.example.com From Your Laptop Over Wi-Fi

  1. Initial Device Connection to the Local Network (Wi-Fi)

    When you turn on your laptop and connect to the Wi-Fi, the following steps occur:

    a) DHCP - Getting an IP Address

    • Your laptop has a network interface card (NIC), and the NIC has a MAC address, a globally unique hardware identifier, like 00:1A:2B:3C:4D:5E.
    • To communicate on a network, your laptop needs an IP address. The DHCP (Dynamic Host Configuration Protocol) handles this.
    • How it works:
      • Your laptop sends a DHCP DISCOVER broadcast message (this message goes out to every device on the network).
      • The DHCP server (usually on the router) responds with a DHCP OFFER, proposing an IP address (e.g., 192.168.1.100).
      • Your laptop replies with a DHCP REQUEST to accept the offered IP address.
      • The DHCP server acknowledges with a DHCP ACK, officially assigning the IP address to your laptop.

    b) Local Network Identification: MAC Addresses and ARP

    • Now that your laptop has an IP address (192.168.1.100), it is ready to communicate within the local network. However, the router still identifies devices on the local network by their MAC addresses.
    • The ARP (Address Resolution Protocol) maps IP addresses to MAC addresses. For example, if your laptop wants to communicate with the router (gateway) at 192.168.1.1, it first needs to know the MAC address of the router.
      • Your laptop sends an ARP Request: "Who has IP 192.168.1.1?".
      • The router responds with its MAC address, and the laptop stores this information in its ARP cache for future use.

  1. Opening a Web Browser and Entering www.example.com

    Now, you open a web browser and type www.example.com in the address bar. Here’s how the next set of steps unfolds:

    a) DNS - Resolving the Domain Name to an IP Address

    Your laptop doesn’t know the IP address of www.example.com, so it needs to ask a DNS server to translate the human-readable domain name into an IP address.

    • DNS Query:
      • Your laptop sends a DNS request to the DNS server (the IP address of the DNS server was provided earlier by DHCP).
      • The DNS request is sent using UDP (User Datagram Protocol) on port 53, since DNS queries are lightweight and do not require the reliability of TCP.
    • DNS Response:
      • The DNS server replies with the IP address of www.example.com, let’s say it’s 93.184.216.34.

  1. Creating and Sending the HTTP Request

    Now that your laptop knows the IP address of the web server (93.184.216.34), it needs to send a request for the web page.

    a) TCP Connection (Three-Way Handshake)

    To communicate with the web server, your laptop uses TCP (Transmission Control Protocol), which ensures reliable communication.

    • TCP 3-Way Handshake:
      • SYN: Your laptop sends a TCP SYN packet to the server to initiate a connection.
      • SYN-ACK: The server acknowledges with a SYN-ACK packet.
      • ACK: Your laptop sends an ACK packet, and now the connection is established.

    b) HTTP Request

    With the TCP connection in place, your browser sends an HTTP request to the server. The HTTP request might look something like this:

    GET / HTTP/1.1
    Host: www.example.com
    
    • HTTP (HyperText Transfer Protocol) is the protocol used to transfer web data.
    • If the connection is secure (i.e., HTTPS), this communication will be encrypted using SSL/TLS.

  1. Data Packet Routing Over the Internet

    The HTTP request is now packaged into IP packets and must travel across the internet to reach the web server at 93.184.216.34.

    a) IP and Routing Across Networks

    • The IP packet contains the following information:

      • Source IP: Your laptop’s IP address, e.g., 192.168.1.100.
      • Destination IP: The web server’s IP address, 93.184.216.34.
      • Data: The HTTP request.
    • The packet first reaches your router. Your router inspects the destination IP address and forwards the packet to your ISP (Internet Service Provider).

    • From the ISP, the packet continues to travel through multiple routers across the internet. Each router inspects the destination IP and forwards the packet closer to its target.

    • Routers use routing tables to decide the best path for the packet to take across the vast network of the internet.


  1. NAT (Network Address Translation)

    Many home networks use private IP addresses (e.g., 192.168.1.100) that are not routable on the public internet. To make this work, routers use NAT (Network Address Translation).

    • How NAT works:
      • When your router sends your packet to the internet, it replaces your private IP address with the public IP address of your home network (assigned by the ISP).
      • The router keeps track of which internal IP (your laptop) initiated the connection so that it knows where to send the response.

  1. Web Server Processing the Request

    Once the packet reaches the web server at 93.184.216.34:

    • The server processes the HTTP request and prepares a response (e.g., the HTML file for the webpage).
    • The server sends the response back to your laptop, following the same process in reverse.

  1. Returning Data to the Client

    The response packet travels back across the internet:

    • The packet reaches your home router, which uses NAT to map the public IP address back to your laptop’s private IP address (192.168.1.100).
    • The router forwards the packet to your laptop based on the MAC address (using information stored in the ARP table).

  1. TCP Reassembly and Displaying the Web Page

    • The web page data is broken into multiple packets for transmission. TCP ensures that these packets arrive in order and without errors.
    • Once all packets are received, your laptop reassembles the data and passes it to the browser, which renders the web page for you to see.

Additional Protocols Involved

  1. ICMP (Internet Control Message Protocol):

    • ICMP is used for diagnostics. For example, if your laptop sends a ping to a server (to check if it is reachable), it uses ICMP to send an echo request and receive an echo reply.
  2. SSL/TLS (Secure Sockets Layer/Transport Layer Security):

    • If the website uses HTTPS, the communication is encrypted using SSL/TLS. This prevents anyone on the network from intercepting sensitive data, such as login credentials.
  3. Caching:

    • Web browsers often use caching to store web page data locally. This reduces the need to repeatedly request the same content from the server.

A Comprehensive View

In this more detailed example, we see the following steps:

  1. DHCP assigns an IP address to the device (your laptop).
  2. ARP maps IP addresses to MAC addresses for local network communication.
  3. DNS resolves domain names to IP addresses.
  4. TCP establishes a reliable connection to the server.
  5. HTTP/HTTPS is used to request and transfer web page data.
  6. NAT allows private IP addresses to communicate over the public internet.
  7. Routing moves packets across multiple networks to the destination.
  8. TCP/IP ensures packets are delivered, reassembled, and displayed by the browser.

This process involves multiple layers of the TCP/IP stack, from the physical layer (Wi-Fi or Ethernet) to the application layer (HTTP/HTTPS), working together seamlessly to deliver a web page to your laptop.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published