Nền tảng Mạng máy tính
17/17
Bài 17 / 17~6 phútPort, Socket & DNSMiễn phí… lượt xem

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:

Ba module ghép thành một chuỗi: gõ google.com; DNS đổi tên miền thành IP ở module 3; subnet CIDR hỏi cùng hay khác mạng ở module 2; routing và NAT đưa tới đúng máy ở module 2; port và socket đưa tới đúng ứng dụng ở module 3; 5-tuple định danh kết nối ở module 3

Port & socket:

Khái niệmMột dòng
PortSố 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.0Chỉ nội bộ vs mọi interface
EADDRINUSECổng đã bị giữ — ss -tlnp / lsof -i

DNS:

Khái niệmMột dòng
Cây phân cấproot → TLD (.com) → authoritative
Recursive vs authoritativeĐi hỏi hộ vs nguồn sự thật
TTL / cacheLần sau ~0ms; gây propagation khi đổi DNS
RecordA/AAAA (IP), CNAME (bí danh), MX (mail), NS (authoritative), TXT
Debugdig +short, dig +trace, dig @1.1.1.1; NXDOMAIN vs SERVFAIL

📖 Glossary module

Thuật ngữĐịnh nghĩa 1 câu
PortSố đị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-tupleBộ 5 giá trị định danh duy nhất một kết nối.
Ephemeral portCổng tạm OS cấp cho client mỗi kết nối.
Listening socketSocket server bind + listen để nhận kết nối.
DNSHệ phân giải tên miền → IP, phân cấp + cache.
Recursive resolverServer đi hỏi hộ cả chuỗi root → TLD → authoritative.
Authoritative serverNơi giữ bản ghi thật của một domain.
A / CNAME / MX / NSRecord IP / bí danh / mail / authoritative.
TTLSố giây một record được phép cache.
NXDOMAIN / SERVFAILTê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.1 chỉ nội bộ; cần 0.0.0.0 mớ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/hosts khô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 +trace rồi tự kể lại từng bậc; sau đó curl -v https://google.com và 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.

Thảo luận & góp ý

Hỏi đáp về bài này