Module 3 — Tổng kết & cheat sheet
Recap port/socket/5-tuple và DNS (cây phân cấp, record, debug). Cheat sheet một trang, glossary, self-assessment. Bài này khép tier Foundations — bạn đã giải thích được trọn vẹn 'điều gì xảy ra khi gõ google.com'.
TL;DR: Module 3 khép nền tảng. Port + socket + 5-tuple trả lời "tới máy rồi vào đúng app nào, và vì sao một cổng phục vụ được nghìn client". DNS trả lời "lấy IP từ tên" qua cây phân cấp root → TLD → authoritative, cache theo TTL, debug bằng dig. Ghép với Module 1 (mô hình 4 tầng) và Module 2 (MAC/IP/subnet/routing/NAT), giờ bạn giải thích được trọn vẹn chuỗi từ gõ tên miền tới khi byte chạm đúng tiến trình. Đây là vạch đích tier Foundations — sẵn sàng cho course TCP/HTTP/TLS.
Đã đi qua những gì
Module 2 đưa gói tới đúng máy; Module 3 thêm hai mảnh cuối. Port đưa tới đúng ứng dụng, socket là điểm cuối kết nối, và 5-tuple giải thích vì sao một listening socket trên cổng 443 phục vụ được vô số client (mỗi kết nối khác nguồn). Phần DNS đào sâu chặng đầu của bản đồ 5 chặng: tên miền là cây phân cấp, recursive resolver đi hỏi hộ root → TLD → authoritative, cache theo TTL; các record (A/CNAME/MX/NS…) và dig để tra và debug.
🗺️ Cheat sheet
Toàn cảnh — ghép cả ba module thành một chuỗi:
flowchart LR
A["Go google.com"] --> B["DNS: ten -> IP<br/>(M3)"]
B --> C["Subnet: cung/khac mang?<br/>(M2)"]
C --> D["Routing + NAT toi may<br/>(M2)"]
D --> E["Port + socket: dung app<br/>(M3)"]
E --> F["5-tuple: ket noi xac dinh"]Port & socket:
| Khái niệm | Một dòng |
|---|---|
| Port | Số 0–65535 chọn ứng dụng; 443 HTTPS, 22 SSH, 5432 Postgres |
| Socket | Điểm cuối (IP, port); 1 listening + nhiều connection socket |
| 5-tuple | (proto, src IP, src port, dst IP, dst port) định danh 1 kết nối |
| 127.0.0.1 vs 0.0.0.0 | Chỉ nội bộ vs mọi interface |
| EADDRINUSE | Cổng đã bị giữ — ss -tlnp / lsof -i |
DNS:
| Khái niệm | Một dòng |
|---|---|
| Cây phân cấp | root → TLD (.com) → authoritative |
| Recursive vs authoritative | Đi hỏi hộ vs nguồn sự thật |
| TTL / cache | Lần sau ~0ms; gây propagation khi đổi DNS |
| Record | A/AAAA (IP), CNAME (bí danh), MX (mail), NS (authoritative), TXT |
| Debug | dig +short, dig +trace, dig @1.1.1.1; NXDOMAIN vs SERVFAIL |
📖 Glossary module
| Thuật ngữ | Định nghĩa 1 câu |
|---|---|
| Port | Số định danh ứng dụng trên một máy (tầng Transport). |
| Socket | Điểm cuối giao tiếp gắn với (IP, port). |
| 5-tuple | Bộ 5 giá trị định danh duy nhất một kết nối. |
| Ephemeral port | Cổng tạm OS cấp cho client mỗi kết nối. |
| Listening socket | Socket server bind + listen để nhận kết nối. |
| DNS | Hệ phân giải tên miền → IP, phân cấp + cache. |
| Recursive resolver | Server đi hỏi hộ cả chuỗi root → TLD → authoritative. |
| Authoritative server | Nơi giữ bản ghi thật của một domain. |
| A / CNAME / MX / NS | Record IP / bí danh / mail / authoritative. |
| TTL | Số giây một record được phép cache. |
| NXDOMAIN / SERVFAIL | Tên không tồn tại / resolver lỗi khi tra. |
⚠️ Pitfall tổng hợp
- "Một cổng chỉ phục vụ một client." Sai — 5-tuple cho phép một cổng nhận vô số kết nối đồng thời.
- "localhost thì ai cũng vào."
127.0.0.1chỉ nội bộ; cần0.0.0.0mới ra ngoài (cẩn thận lộ dịch vụ). - "Có DNS trung tâm." Không — phân tán, phân cấp, không nơi nào giữ tất cả.
- "Đổi DNS có hiệu lực ngay." Còn TTL/cache — hạ TTL trước khi chuyển.
- "NXDOMAIN = SERVFAIL." Một cái tên không tồn tại, một cái resolver lỗi.
- "
/etc/hostskhông liên quan." Nó tra trước DNS — bẫy debug kinh điển.
✅ Self-assessment
Bạn đã đạt module này nếu trả lời được:
- Explain được socket, port và 5-tuple dưới góc hệ điều hành — vì sao một cổng phục vụ được nhiều client cùng lúc.
- Nếu chưa: đọc lại bài Port & socket, mục "5-tuple" và "listening vs connection socket".
- Trace được một DNS query từ trình duyệt qua recursive resolver tới root → TLD → authoritative và quay về.
- Nếu chưa: đọc lại bài DNS — phân giải tên miền, mục "Query flow" và "Recursive vs authoritative".
- Diagnose được lỗi phân giải tên bằng
dig/nslookup, phân biệt NXDOMAIN với SERVFAIL.- Nếu chưa: đọc lại bài DNS record & debug, mục "Chẩn đoán lỗi" và bảng cheat sheet trên.
🎓 Bạn vừa hoàn thành tier Foundations
Ba module ghép thành bức tranh trọn vẹn:
- Module 1 — mô hình TCP/IP 4 tầng, bản đồ 5 chặng.
- Module 2 — địa chỉ & định tuyến: MAC/ARP, IP/subnet, routing, NAT.
- Module 3 — port/socket vào đúng app, DNS lấy IP từ tên.
Bài kiểm tra cuối cùng cho chính bạn: giải thích trọn vẹn điều gì xảy ra khi gõ google.com và nhấn Enter — từ DNS, qua subnet/routing/NAT, tới TCP handshake, vào đúng port. Nếu kể được mạch lạc, bạn đã vững nền.
🚀 What's next
Course tiếp theo — TCP, HTTP & Web cho Backend (tier 2) — phóng to tầng vận chuyển và ứng dụng: TCP handshake/reliability/congestion sâu, HTTP/1-2-3, TLS, REST/gRPC/WebSocket, caching/CDN, load balancer. Foundations cho bạn bản đồ; tier 2 cho bạn chiều sâu để debug production.
Bài tiếp theo: Course TCP, HTTP & Web — Module 1: TCP & UDP Deep Dive
📚 Tài liệu mở rộng
- RFC 9293 (TCP/port), RFC 1034/1035 (DNS), RFC 3596 (AAAA) — tài liệu gốc của module.
- Công cụ tự soi:
ss -tlnp(cổng đang nghe),lsof -i :PORT,dig +trace,dig @1.1.1.1,cat /etc/resolv.conf,cat /etc/hosts. - Sách: Computer Networking: A Top-Down Approach (Kurose & Ross) — chương Application Layer (DNS) & Transport Layer (port).
- Thực hành tổng hợp: chạy
dig google.com +tracerồi tự kể lại từng bậc; sau đócurl -v https://google.comvà chỉ ra mỗi dòng output thuộc chặng nào trong bản đồ 5 chặng — bài test khép tier Foundations.
Bài này có giúp bạn hiểu bản chất không?
Hỏi đáp về bài này
Chưa có câu hỏi
Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).
Đặt câu hỏi đầu tiên