Back to blog

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

networkingweb fundamentalsdnsiphttp
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.42

Mỗ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ảiMục đích
10.0.0.0/8Private (mạng LAN gia đình/văn phòng)
172.16.0.0/12Private (cloud VPC)
192.168.0.0/16Private (router gia đình)
127.0.0.0/8Loopback (localhost)
0.0.0.0/0Route 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:7334

Chú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:7334

IPv6 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:

  1. Đọc địa chỉ IP đích trong header của gói tin
  2. Tra cứu bảng định tuyến (routing table) để tìm next hop tốt nhất
  3. 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 ms

BGP — 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:

  1. DNS phân giải domain của CDN thành IP của edge node gần nhất
  2. Edge node phục vụ hình ảnh đã được cache
  3. 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ốiRTT đ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ương80–120 ms
Xuyên Thái Bình Dương100–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àiTiêu đềTrạng thái
NET-1Networking for Web Developers Roadmap✅ Hoàn thành
NET-2Phase 1: Internet Hoạt Động Như Thế Nào✅ Bạn đang ở đây
NET-3Phase 2: TCP/IP & Transport LayerSắp ra
NET-4Phase 3: Application Layer ProtocolsSắp ra
NET-5Deep Dive: DNS ResolutionSắp ra
NET-6Deep Dive: TLS/HTTPSSắp ra
NET-7Deep Dive: HTTP/2 & HTTP/3Sắp ra
NET-8Deep Dive: WebSockets & Real-TimeSắp ra
NET-9Deep Dive: CORS & Security HeadersSắp ra
NET-10Deep Dive: Proxies, Load Balancers & CDNsSắp ra
NET-11Deep Dive: Network DebuggingSắp ra
NET-12Deep Dive: Cloud NetworkingSắ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.