Phase 1: Internet Hoạt Động Như Thế Nào (IP, DNS, Routing)

Series: Networking for Web Developers
Thời gian: 3–4 ngày, 1–2 giờ mỗi ngày
Yêu cầu: Có kinh nghiệm lập trình cơ bản, sử dụng terminal
Giới Thiệu
Mỗi khi bạn mở trình duyệt và truy cập một trang web, một lượng lớn cơ sở hạ tầng bắt đầu hoạt động. Các gói dữ liệu di chuyển qua cáp quang, bật qua các router khắp các lục địa và đến màn hình của bạn trong vài mili-giây. Hầu hết các developer xem điều này như phép màu. Bài viết này sẽ loại bỏ điều đó.
Đến cuối bài, bạn sẽ có thể theo dõi một browser request từ laptop của bạn đến tận web server — và giải thích từng bước ở giữa.
Bạn Sẽ Học Được Gì
✅ Hiểu internet thực sự là gì (về mặt vật lý và logic)
✅ Giải thích địa chỉ IP — IPv4, IPv6 và ký hiệu CIDR
✅ Mô tả cách các gói tin di chuyển qua internet thông qua routing
✅ Theo dõi toàn bộ URL request từ trình duyệt đến server
✅ Giải thích DNS ở cấp độ khái niệm (deep dive ở NET-5)
✅ Hiểu ISP và CDN làm gì
Internet Là Gì?
Internet là một mạng lưới toàn cầu của các mạng được kết nối với nhau. Nó không phải là một thứ duy nhất thuộc sở hữu của một công ty — nó là hàng triệu mạng riêng biệt (mạng gia đình của bạn, mạng ISP của bạn, mạng của trường đại học, mạng của nhà cung cấp cloud) tất cả đồng ý giao tiếp bằng các giao thức chung.
Ở cấp độ vật lý, internet là:
- Cáp đồng và cáp quang chạy dưới đường phố, đại dương và tòa nhà
- Sóng vô tuyến không dây (WiFi, 4G/5G) kết nối thiết bị với các điểm truy cập
- Router và switch định hướng traffic giữa các mạng
- Trung tâm dữ liệu chứa các server lưu trữ trang web, API và cơ sở dữ liệu
Internet backbone là tập hợp các liên kết cáp quang dung lượng cao kết nối các hub lớn trên toàn thế giới — được vận hành bởi các ISP Tier 1 lớn và mang phần lớn traffic toàn cầu.
Địa Chỉ IP
Mỗi thiết bị trên internet đều có một địa chỉ IP — một mã định danh số duy nhất cho biết mạng cần giao packet đến đâu.
IPv4
Địa chỉ IPv4 là các số 32-bit được viết dưới dạng bốn octet:
192.168.1.1
203.0.113.42Mỗi octet là 0–255. Điều này cho phép khoảng 4,3 tỷ địa chỉ có thể — con số này đã cạn kiệt vào khoảng năm 2011 khi các thiết bị kết nối internet bùng nổ.
Các dải IPv4 đặc biệt:
| Dải | Mục đích |
|---|---|
10.0.0.0/8 | Private (mạng LAN gia đình/văn phòng) |
172.16.0.0/12 | Private (cloud VPC) |
192.168.0.0/16 | Private (router gia đình) |
127.0.0.0/8 | Loopback (localhost) |
0.0.0.0/0 | Route mặc định (tất cả traffic) |
IPv6
Địa chỉ IPv6 là các số 128-bit được viết bằng hệ thập lục phân:
2001:0db8:85a3:0000:0000:8a2e:0370:7334Chúng có thể được viết tắt bằng cách thu gọn các số không liên tiếp bằng :::
2001:db8:85a3::8a2e:370:7334IPv6 cung cấp 340 undecillion địa chỉ — đủ để mỗi hạt cát trên Trái Đất có địa chỉ IP riêng, nhiều lần hơn. Hầu hết các mạng hiện đại đều hỗ trợ cả hai (dual-stack).
Ký Hiệu CIDR
CIDR (Classless Inter-Domain Routing) mô tả một dải địa chỉ IP bằng độ dài prefix:
192.168.1.0/24 → 192.168.1.0 đến 192.168.1.255 (256 địa chỉ)
10.0.0.0/16 → 10.0.0.0 đến 10.0.255.255 (65.536 địa chỉ)
203.0.113.5/32 → chính xác một địa chỉ/24 có nghĩa là 24 bit đầu tiên là network prefix; 8 bit còn lại xác định host. Bạn sẽ gặp CIDR thường xuyên khi làm việc với cloud networking (VPC, security group, firewall rule).
Cách Các Gói Tin Di Chuyển: Routing
Dữ liệu trên internet được chia thành các gói tin (packet) — các chunk nhỏ (thường 1.500 byte) di chuyển độc lập và được tái tạo lại tại đích. Điều này được gọi là packet switching (trái ngược với circuit switching, là cách các cuộc gọi điện thoại truyền thống hoạt động).
Router
Router là thiết bị chuyển tiếp các gói tin về phía đích của chúng. Khi một gói tin đến, router:
- Đọc địa chỉ IP đích trong header của gói tin
- Tra cứu bảng định tuyến (routing table) để tìm next hop tốt nhất
- Chuyển tiếp gói tin ra interface thích hợp
Mỗi router chỉ cần biết cách đến gần hơn đích — nó không cần bản đồ đầy đủ của internet.
Hop
Mỗi router mà một gói tin đi qua là một hop. Bạn có thể đếm các hop bằng traceroute:
# macOS / Linux
traceroute google.com
# Windows
tracert google.comĐầu ra mẫu:
1 192.168.1.1 (router gia đình) 1 ms
2 10.0.0.1 (gateway ISP) 5 ms
3 203.0.113.1 (backbone ISP) 12 ms
4 198.51.100.10 (điểm peering) 18 ms
5 172.217.0.1 (router edge Google) 20 msBGP — Giao Thức Định Tuyến của Internet
Border Gateway Protocol (BGP) là giao thức mà các router sử dụng để chia sẻ thông tin định tuyến qua các mạng khác nhau (Autonomous Systems). BGP là cách các router của internet thống nhất về cách tiếp cận mọi địa chỉ IP trên thế giới.
Khi bạn nghe tin tức về "BGP hijacking" — đó là khi một mạng thông báo sai rằng nó sở hữu các địa chỉ IP mà nó không có, vô tình (hoặc cố ý) định tuyến lại traffic.
DNS — Từ Domain Đến IP
Con người dùng tên domain (google.com), nhưng internet sử dụng địa chỉ IP (142.250.80.46). DNS (Domain Name System) là danh bạ điện thoại dịch từ cái này sang cái kia.
Đây là phiên bản ngắn về cách DNS hoạt động:
Deep dive đầy đủ về DNS có ở NET-5: Deep Dive — DNS: How Domain Names Resolve (sắp ra). Hiện tại, khái niệm chính là: trình duyệt của bạn không thể kết nối bất cứ đâu nếu không phân giải tên domain thành địa chỉ IP trước.
Điều Gì Xảy Ra Khi Bạn Nhập URL
Đây là một trong những câu hỏi phỏng vấn kỹ thuật phổ biến nhất — và thực sự hữu ích để hiểu. Đây là những gì xảy ra khi bạn truy cập https://example.com:
Hãy đi qua từng bước:
Bước 1: Parse URL
Trình duyệt phân tách https://example.com/path?query=value:
- Scheme:
https— dùng HTTP có mã hóa TLS - Host:
example.com— domain cần phân giải - Path:
/path— tài nguyên cần request - Query:
query=value— tham số
Bước 2: Phân Giải DNS
Trình duyệt kiểm tra cache trước. Nếu không tìm thấy, nó hỏi OS resolver, resolver này hỏi recursive resolver (thường là ISP hoặc public như 8.8.8.8). Resolver đi qua DNS hierarchy và trả về IP.
Bước 3: Kết Nối TCP
Trình duyệt mở kết nối TCP đến port 443 (HTTPS). TCP dùng three-way handshake:
Client → Server: SYN
Server → Client: SYN-ACK
Client → Server: ACKĐiều này mất một round-trip time (RTT). Trên một kết nối điển hình, đó là 10–80ms.
Bước 4: TLS Handshake
Vì đây là HTTPS, trình duyệt và server đàm phán một kênh mã hóa bằng TLS. Điều này thêm 1–2 RTT. Toàn bộ quá trình TLS được đề cập trong NET-6: TLS/HTTPS (sắp ra).
Bước 5: HTTP Request
Trình duyệt gửi HTTP request:
GET / HTTP/1.1
Host: example.com
Accept: text/html
User-Agent: Mozilla/5.0 ...Bước 6: HTTP Response
Server phản hồi:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1256
<!DOCTYPE html>
<html>...Bước 7: Rendering
Trình duyệt parse HTML, phát hiện các asset (CSS, JS, hình ảnh), fetch chúng (kích hoạt thêm DNS lookup, kết nối TCP, HTTP request), và render trang.
ISP và Phân Cấp Mạng
Không phải tất cả các mạng đều bình đẳng. ISP được tổ chức theo cấp bậc:
Tier 1 ISP sở hữu cơ sở hạ tầng backbone và peer với nhau miễn phí (settlement-free peering). Họ không trả tiền cho ai để định tuyến traffic — họ là nền tảng của internet.
Tier 2 ISP mua transit từ Tier 1 và bán xuống. Họ cũng có thể peer với các mạng Tier 2 khác.
Tier 3 ISP (ISP gia đình của bạn) là các nhà cung cấp "last mile" — họ cung cấp kết nối internet đến nhà và doanh nghiệp.
Internet Exchange Points (IXP)
IXP là các địa điểm vật lý nơi nhiều mạng gặp nhau và trao đổi traffic trực tiếp, giảm số lượng hop và cải thiện hiệu suất. Các IXP lớn bao gồm AMS-IX (Amsterdam), DE-CIX (Frankfurt) và LINX (London).
CDN — Đưa Nội Dung Gần Hơn
Content Delivery Networks (CDN) là các cache được phân phối theo địa lý. Thay vì phục vụ tất cả traffic từ một data center, CDN sao chép nội dung tại các edge node gần người dùng.
Khi người dùng request example.com/logo.png:
- DNS phân giải domain của CDN thành IP của edge node gần nhất
- Edge node phục vụ hình ảnh đã được cache
- Nếu cache lạnh (request đầu tiên), edge fetch từ origin và cache lại
Lợi ích:
- Latency: Phục vụ từ 20ms thay vì 200ms qua nửa vòng Trái Đất
- Availability: Traffic được phân phối — không có single point of failure
- Chi phí bandwidth: Origin nhận ít request hơn nhiều
CDN phổ biến: Cloudflare, AWS CloudFront, Fastly, Akamai.
Network Latency và Bandwidth
Hai chỉ số quan trọng nhất trong networking:
Latency — thời gian để một gói tin di chuyển từ nguồn đến đích (một chiều) hoặc round-trip time (RTT). Đo bằng mili-giây (ms).
| Kết nối | RTT điển hình |
|---|---|
| Cùng LAN | < 1 ms |
| Cùng thành phố (fiber) | 5–15 ms |
| Cross-country (US) | 40–80 ms |
| Xuyên Đại Tây Dương | 80–120 ms |
| Xuyên Thái Bình Dương | 100–200 ms |
Bandwidth — lượng dữ liệu có thể truyền mỗi giây. Đo bằng Mbps hoặc Gbps. Cáp quang có thể mang 100 Gbps+; kết nối gia đình của bạn thường là 100–1.000 Mbps.
Latency và bandwidth là độc lập với nhau:
- Kết nối vệ tinh có thể có bandwidth cao nhưng latency tệ (500ms+)
- Kết nối fiber thường có cả latency thấp và bandwidth cao
Đối với ứng dụng web tương tác, latency quan trọng hơn bandwidth. RTT 200ms có nghĩa là mỗi chu kỳ request-response mất ít nhất 200ms, bất kể kết nối nhanh đến đâu.
Thực Hành: Kiểm Tra Network Path Của Bạn
Hãy thử các lệnh này để thấy các khái niệm trong thực tế:
# Xem địa chỉ IP hiện tại của bạn (bên ngoài)
curl ifconfig.me
# Trace network path đến server
traceroute google.com
# Phân giải domain thành IP
dig google.com
# Xem DNS, connection và first byte mất bao lâu
curl -w "\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
-o /dev/null -s https://example.com
# Ping để đo round-trip latency
ping -c 5 google.comĐầu ra curl timing mẫu:
DNS: 0.012s
Connect: 0.028s
TTFB: 0.065s
Total: 0.072sĐiều này cho thấy phân giải DNS mất 12ms, kết nối TCP mất thêm 16ms và server bắt đầu phản hồi 37ms sau kết nối. Cách phân tách này vô cùng hữu ích để chẩn đoán các request chậm.
Tóm Tắt
Internet là mạng lưới toàn cầu của các mạng được kết nối với nhau. Đây là những gì bạn hiểu được:
✅ Địa chỉ IP xác định mọi thiết bị — IPv4 (32-bit, ~4 tỷ) và IPv6 (128-bit, thực tế không giới hạn)
✅ Packet di chuyển độc lập, nhảy qua các router về phía đích
✅ Router sử dụng routing table và BGP để chuyển tiếp packet toàn cầu
✅ DNS dịch tên domain thành địa chỉ IP trước khi bất kỳ kết nối nào được thực hiện
✅ URL request bao gồm DNS lookup → TCP handshake → TLS → HTTP exchange → rendering
✅ ISP tạo thành hệ thống cấp bậc từ backbone Tier 1 xuống đến nhà cung cấp last-mile
✅ CDN cache nội dung tại các edge node để giảm latency cho người dùng trên toàn thế giới
Nền tảng này giúp mọi chủ đề tiếp theo trong series này trở nên rõ ràng — vì mọi thứ đều xảy ra trên các lớp này.
Tiếp Theo Là Gì
Phase 2: TCP/IP & Transport Layer (sắp ra)
Trong Phase 2 chúng ta đi sâu hơn vào transport layer — TCP three-way handshake, đảm bảo độ tin cậy, trade-off của UDP, port và socket. Đây là layer mà code ứng dụng của bạn nói chuyện trực tiếp.
Danh Mục Series
| Bài | Tiêu đề | Trạng thái |
|---|---|---|
| NET-1 | Networking for Web Developers Roadmap | ✅ Hoàn thành |
| NET-2 | Phase 1: Internet Hoạt Động Như Thế Nào | ✅ Bạn đang ở đây |
| NET-3 | Phase 2: TCP/IP & Transport Layer | Sắp ra |
| NET-4 | Phase 3: Application Layer Protocols | Sắp ra |
| NET-5 | Deep Dive: DNS Resolution | Sắp ra |
| NET-6 | Deep Dive: TLS/HTTPS | Sắp ra |
| NET-7 | Deep Dive: HTTP/2 & HTTP/3 | Sắp ra |
| NET-8 | Deep Dive: WebSockets & Real-Time | Sắp ra |
| NET-9 | Deep Dive: CORS & Security Headers | Sắp ra |
| NET-10 | Deep Dive: Proxies, Load Balancers & CDNs | Sắp ra |
| NET-11 | Deep Dive: Network Debugging | Sắp ra |
| NET-12 | Deep Dive: Cloud Networking | Sắp ra |
📬 Đăng ký nhận bản tin
Nhận những bài viết mới nhất qua email mỗi tuần. Không spam, hủy đăng ký bất cứ lúc nào.
Chúng tôi tôn trọng quyền riêng tư của bạn. Hủy đăng ký bất cứ lúc nào.
💬 Comments
Đăng nhập để bình luận
Chúng tôi sẽ không đăng bất cứ điều gì mà không có sự cho phép của bạn.