Module 3 — Tổng kết & cheat sheet
Recap port, socket, 5-tuple và DNS: cheat sheet một trang, glossary, self-assessment, khép tier Foundations trước khi vào course TCP, HTTP và TLS.
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. Foundations kết thúc ở đây; course TCP/HTTP/TLS phóng to từng chặng.
Đã đi qua những gì
Ba bài đầu module trả lời hai câu hỏi để lại từ Module 2: gói tin tới đúng máy rồi, vậy vào ứng dụng nào (port, socket, 5-tuple) và IP đó lấy từ đâu (DNS). Bài Port & socket cho thấy vì sao một cổng 443 không lẫn hàng nghìn client: nhờ 5-tuple. Hai bài DNS lần theo hành trình một cái tên biến thành IP: cây phân cấp, ai hỏi ai, cache theo TTL, và cách tự tra bằng dig khi có sự cố.
🗺️ Cheat sheet
Toàn cảnh — ghép cả ba module thành một chuỗi:

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, nên một dòng sai ở đó thắng cả DNS đúng, dễ debug nhầm hướng.
✅ 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, gồm 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?
Bài này đáng gửi cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
DNS record types & debug — A, CNAME, MX và dig
Khoá tiếp theoTCP, HTTP & Web cho Backend
Đào sâu tầng vận chuyển và ứng dụng: TCP deep dive, UDP, HTTP/1-2-3, TLS/cert, REST/gRPC/WebSocket, caching/CDN, load balancer L4/L7, và bộ công cụ debug mạng.
29 bài · ~9.5 giờThảo luận & góp ý
Hỏi đáp về bài này