Nền tảng Mạng máy tính/Module 3 — Port, Socket & DNS: tổng quan
13/17
Bài 13 / 17~10 phútPort, Socket & DNSMiễn phí lượt xem

Module 3 — Port, Socket & DNS: tổng quan

Module khép tier Foundations: sau khi gói tin tới đúng máy (Module 2), làm sao nó vào đúng ứng dụng? Và làm sao biết IP từ một tên miền? Trả lời bằng port/socket/5-tuple và DNS. Học xong bạn hiểu localhost:8080 thực sự là gì và trace được một DNS query.

TL;DR: Module 2 đưa gói tin tới đúng máy (IP). Module 3 trả lời hai mảnh còn lại để khép nền tảng: (1) tới máy rồi thì vào đúng ứng dụng nào — qua port, socket, và 5-tuple định danh từng kết nối; (2) làm sao có IP từ một tên miền — qua DNS (cây phân cấp root → TLD → authoritative, query flow, record types, debug bằng dig). Hết module này bạn hiểu localhost:8080 thực sự là gì, vì sao một server phục vụ được hàng nghìn client trên cùng một cổng, và trace được một DNS query từ đầu tới cuối.

Vì sao module này tồn tại

Bạn đã biết gói tin tìm tới đúng máy thế nào. Nhưng một máy chạy nhiều dịch vụ cùng lúc — web (443), SSH (22), database (5432). Tới đúng máy chưa đủ; phải vào đúng tiến trình. Đó là việc của portsocket.

Và toàn bộ Module 2 giả định "ta đã có IP đích". Nhưng bạn gõ google.com, không phải 142.250.x.x. Mảnh ghép biến tên thành IP là DNS — chặng đầu tiên trong bản đồ 5 chặng của Module 1, giờ đào sâu.

Hai chủ đề này khép lại tier Foundations: sau module này bạn có đủ bản đồ để bước vào course TCP/HTTP/TLS.

Bản đồ module

flowchart LR
    A["Go ten mien<br/>google.com"] --> B["DNS<br/>ten -> IP"]
    B --> C["Toi dung may<br/>(IP - Module 2)"]
    C --> D["Toi dung app<br/>(port + socket)"]
    D --> E["Ket noi xac dinh boi<br/>5-tuple"]

Sau module này bạn sẽ

  • Explain được socket, port và 5-tuple dưới góc hệ điều hành — vì sao một server lắng nghe một cổng mà phục vụ được nhiều client cùng lúc.
  • Trace được một DNS query từ trình duyệt qua recursive resolver tới root → TLD → authoritative server và quay về.
  • Diagnose được lỗi phân giải tên miền bằng dig/nslookup, đọc các loại record và lỗi NXDOMAIN/SERVFAIL.

Lộ trình module

  1. Port & socketlocalhost:8080 là gì, socket dưới góc OS, 5-tuple, vì sao một cổng phục vụ nhiều client, EADDRINUSE.
  2. DNS — phân giải tên miền — cây tên miền phân cấp, recursive vs authoritative, query flow, TTL & cache.
  3. DNS record & debug — A/AAAA/CNAME/MX/TXT/NS, dig/nslookup, đọc lỗi NXDOMAIN/SERVFAIL, resolv.conf & /etc/hosts.

Yêu cầu trước khi bắt đầu

  • Đã xong Module 1 (mô hình 4 tầng — port ở Transport) và Module 2 (IP, routing — DNS trả về IP).
  • Biết dùng terminal; các bài có ss, lsof, dig, nslookup.

Time budget

BàiThời lượng
Tổng quan (bài này)~10 phút
Port & socket~22 phút
DNS — phân giải tên miền~22 phút
DNS record & debug~20 phút
Tổng kết & cheat sheet~12 phút
Tổng module~1.5 giờ

Cách học module này hiệu quả

  • Tự soi máy mình. ss -tlnp (cổng đang lắng nghe), dig google.com, cat /etc/resolv.conf — đối chiếu lý thuyết với máy thật.
  • Nối với module trước. Port là tầng Transport (Module 1); DNS trả về IP để routing (Module 2) hoạt động. Mọi thứ ráp lại thành bản đồ 5 chặng.
  • Đây là vạch đích Foundations. Hết module này, tự kiểm tra bằng câu "tôi giải thích được trọn vẹn điều gì xảy ra khi gõ google.com chưa?".

Bài tiếp theo: Port & socket — localhost:8080 thực sự là gì

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

Đặt 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