Practice & Assessment
Test your understanding of How the Internet Moves Data
Multiple Choice Questions
6A user reports that a website loads for them but not for their colleague on the same network, even after the colleague clears the browser cache. What is the most likely cause?
Which OSI layer is responsible for the 'Connection refused' error you see when nothing is listening on a port?
Why can one server IP on port 443 maintain thousands of simultaneous HTTPS connections?
You are building a real-time multiplayer game. A player's position updates 30 times per second. Should you use TCP or UDP, and why?
What is the purpose of NAT (Network Address Translation) in home networks?
In the DNS resolution chain, which server is the actual authoritative source of truth for example.com's A record?
Coding Challenges
1DNS Tracer CLI
Write a Node.js or Python script that accepts a domain name as a CLI argument and prints the full DNS resolution chain: the A record IP, the TTL, and the nameserver that answered. Use the dns module (Node) or dnspython (Python). Output format: 'Domain: example.com | IP: 93.184.216.34 | TTL: 3600s | Nameserver: a.iana-servers.net'. Handle errors for invalid domains gracefully. Estimated time: 20โ25 minutes.
Mini Project
Network Diagnostic Dashboard
Build a CLI tool that accepts a URL and runs a full network diagnostic report. The tool must: (1) parse the URL into its components (protocol, hostname, path, query); (2) perform a DNS lookup and display the resolved IP and TTL; (3) attempt a TCP socket connection to port 80 and 443 and report success/failure with connect time in ms; (4) detect whether the host is IPv4 or IPv6; (5) print a summary table. Use only standard library modules (Node.js: dns, net, url; Python: socket, urllib.parse, dns.resolver). Output must be human-readable with labeled sections. No external HTTP libraries โ raw sockets only for the TCP check.
