Monday, October 14, 2024

Network and Internet process flow

 If you were to be ask how does the Internet work, or how does the OSI 7 Layer work? Does anyone know how it work. I would like to share this knowledge, couple of weeks I had an interview and was asked, but in that time i can't remember. So after studying how it works, i would like to write a note on it. The topology look like this if you have a laptop or PC how does it access to internet. 



To summarize the packet flow it would be like this: 

- DHCP Traffic: Helps establish network settings (IP address, gateway, DNS server).
- ARP Traffic: Maps IP addresses to MAC addresses.
- PPPoE (if used): Authentication and connection setup with ISP.
- DNS Traffic: Resolving domain names.
- TCP/UDP Traffic: Actual data transfer, such as web browsing or streaming (HTTP, HTTPS, or other protocols).

Let me explain in more detail:

Step1. initial CPE connection: 
CPE connects to AP, which will establish a Layer 2 connection (Ethernet/Wi-Fi).

Step2: DHCP request(Layer3):
CPE will try to obtain an IP address from the DHCP server via the AP with Discover/Offer/Request/Ack. 
  • The CPE will try to obtain an IP address from the DHCP server via the AP.
  • CPE → AP: The CPE sends a DHCP Discover message to request an IP address from the local DHCP server on the AP (or router).
  • AP → CPE: The AP (or router) provides an IP address (via DHCP Offer) to the CPE, which allows the CPE to communicate on the local network. It also assigns other configuration details like the Default Gateway and DNS server.
  • CPE → AP: The CPE sends a DHCP Request to confirm the offer.
  • AP → CPE: The AP acknowledges with a DHCP Acknowledgment.

  • Step3: ARP requests/Replies (layer2)
    You might also see ARP (Address Resolution Protocol) to map IP addresses to MAC addresses.

    Step4 CPE to ADSL Modem like  (PPP/PPPoE) (Layer2 and Layer3)  [optional]

    PPOE is Layer 2 for session establishment and Layer 3 for carrying IP traffic.

    For PPOE layer2 and layer3
    PPPoE operates at Layer 2 by encapsulating PPP frames within Ethernet frames. It manages the connection setup, session management, and teardown over Ethernet networks

    Once the session is established, Layer 3 traffic, such as IP packets, can be transmitted through the PPPoE connection. So, the data traffic (e.g., internet traffic) happens over Layer 3.

    ADSL(Layer1+layer2):

    ADSL operates at Layer 1 (Physical Layer), as it modulates and demodulates digital signals over copper telephone lines. It provides the physical connection for transmitting data.

    ADSL is typically paired with protocols like ATM (Asynchronous Transfer Mode) or PPPoE at Layer 2, allowing for data to be framed and managed over the connection.

    Step5: NAT (Network Address Translation) (layer3)
    NAT at AP or ADSL: If the CPE is behind a router or ADSL modem that uses NAT, the private IP address assigned to the CPE (from DHCP) gets translated to the public IP address of the ADSL modem before reaching the internet. NAT allows multiple devices on the local network to share a single public IP.
  • Outbound Packets:
    • When the CPE sends packets to external websites (e.g., HTTP/HTTPS requests), the packets will be passed to the NAT device (usually in the router or ADSL modem) and rewritten with the public IP address.
  • Inbound Packets:
    • Replies from external servers (such as web pages loading) will go through NAT and be translated back to the CPE's private IP.

  • Step6: DNS Resolution (layer7)
    CPE querying a DNS server to resolve domain names (e.g., www.example.com) into IP addresses.

  • CPE → DNS Server: When the CPE (or devices behind it) needs to access a website, it performs a DNS query. It asks the DNS server (provided in the DHCP step) to resolve the domain name (e.g., www.google.com) into an IP address.
  • DNS Server Response: The DNS server responds with the IP address of the requested domain

  • Step7 HTTP/HTTPS Traffic:
    When browsing the internet, you will see HTTP/HTTPS request-response traffic between the CPE and external websites or services


    Summary:
    So this is the full flow process for your CPE(laptop or mobile)  access to the internet. When you are at home it's basically using the topology I showed above, and you can use it to debug also. 

    This is an interview question I had earlier, which I didn't made it, so I would like to make a note on it. In case if you're interesting on how does your PC able to access to Internet this is a great example.