Nền tảng Mạng máy tính/Module 2 — Tổng kết & cheat sheet
12/17
Bài 12 / 17~15 phútĐịa chỉ & Định tuyếnMiễn phí lượt xem

Module 2 — Tổng kết & cheat sheet

Recap địa chỉ & định tuyến: MAC/ARP trong LAN, IP public/private, subnet/CIDR, routing hop-by-hop, NAT. Cheat sheet một trang, bảng tính subnet nhanh, glossary, pitfall tổng hợp và self-assessment. Bookmark trước khi vào module port/socket/DNS.

TL;DR: Module 2 trả lời "làm sao gói tin tìm đường tới đúng máy". Trong LAN, máy dùng MAC + ARP để gửi thẳng cho nhau. Subnet/CIDR quyết định "cùng mạng hay khác mạng": cùng thì gửi thẳng, khác thì đẩy ra default gateway. Router chuyển tiếp hop-by-hop (longest-prefix match, mỗi hop chỉ biết next hop). Ra Internet thì NAT đổi IP private ↔ public (SNAT đi ra, DNAT/port forwarding đi vào). Trang này gom tất cả thành cheat sheet để tra nhanh — và là chính xác bộ công cụ bạn cần để đọc mọi cấu hình mạng thực tế.

Đã đi qua những gì

Bắt đầu từ tầng thấp nhất: trong một LAN, máy tìm nhau bằng địa chỉ MAC, và ARP là cầu nối "IP nào ↔ MAC nào" (switch học port để chuyển frame). Lên tầng Internet, địa chỉ IP chia public/private, và một máy mang hai địa chỉ nhờ NAT. Subnet/CIDR cho bạn công cụ trả lời câu hỏi trung tâm — cùng mạng hay khác mạng — và đọc được một dải như 192.168.1.0/24. Khác mạng thì gói đi qua default gateway, được routing chuyển tiếp hop-by-hop tới đích, và NAT đưa nó ra/vào Internet. ICMP (ping/traceroute) là bộ công cụ soi đường đi và chẩn đoán.

🗺️ Cheat sheet

Hành trình một gói tin từ máy bạn ra Internet — gói lại cả module:

flowchart LR
    A["Trong LAN:<br/>ARP tim MAC,<br/>gui thang"] --> B{"Cung mang?<br/>(xet subnet/CIDR)"}
    B -->|"Cung"| A
    B -->|"Khac"| C["Day ra<br/>default gateway"]
    C --> D["Router routing<br/>hop-by-hop"]
    D --> E["NAT doi<br/>private -> public"]
    E --> F["Internet"]

Tra nhanh các khái niệm:

Khái niệmMột dòngTầng
MACĐịa chỉ gắn cứng card mạng, có nghĩa trong 1 LANLink
ARPHỏi broadcast "ai có IP này?" → nhận MACLink
Switch / bridgeHọc MAC ↔ cổng, chuyển frame đúng cổngLink
IP private10/8, 172.16/12, 192.168/16 — chỉ trong LANInternet
Subnet /NN bit mạng + (32−N) bit hostInternet
Default gatewayCửa ra khi đích khác mạngInternet
RoutingHop-by-hop, longest-prefix matchInternet
SNAT / MASQUERADEĐổi nguồn khi đi raInternet
DNAT / port forwardingĐổi đích khi đi vào (mở cổng)Internet
ICMPping (echo), traceroute (TTL)Internet

Bảng tính subnet nhanh:

CIDRMaskHost dùng được
/8255.0.0.016.777.214
/16255.255.0.065.534
/24255.255.255.0254
/26255.255.255.19262
/30255.255.255.2522

Quy tắc vàng: cùng mạng → ARP gửi thẳng; khác mạng → gateway → routing → NAT. IP đích cố định, MAC đổi mỗi hop.

📖 Glossary module

Thuật ngữĐịnh nghĩa 1 câu
MAC addressĐịa chỉ 48-bit gắn cứng card mạng, dùng trong một LAN.
ARPGiao thức phân giải IP → MAC bằng broadcast trong LAN.
Ethernet frameĐơn vị truyền tầng Link (Dst/Src MAC, Type, Payload, FCS).
Broadcast domainPhạm vi broadcast lan tới — một LAN.
IP public / privateĐịnh danh toàn Internet / chỉ trong LAN (RFC 1918).
CIDR /NN bit đầu là phần mạng, phần còn lại là host.
Subnet maskCách viết /N dạng số (vd /24 = 255.255.255.0).
Network / broadcast addressĐịa chỉ đầu (host=0) / cuối (host=1) của subnet.
Default gatewayRouter để ra khỏi mạng hiện tại (0.0.0.0/0).
Longest-prefix matchKhi nhiều route khớp, chọn prefix dài nhất.
NAT (SNAT/DNAT)Đổi địa chỉ nguồn (ra) / đích (vào) giữa private và public.
ICMPGiao thức báo lỗi/điều khiển; nền của ping & traceroute.
TTLBộ đếm hop của gói IP; về 0 thì router huỷ + báo time exceeded.

⚠️ Pitfall tổng hợp

  • "Máy nói chuyện bằng IP." Trong LAN, frame gửi tới MAC; IP chỉ để ARP tra ra MAC.
  • "Cùng 192.168.1.x là cùng mạng." Còn tuỳ /N — dưới /26 có thể khác subnet.
  • "/24/16." Lệch 256 lần (254 vs 65.534 host).
  • "Máy biết đường tới đích." Chỉ biết next hop; routing là hop-by-hop.
  • "NAT là firewall." NAT che máy nội bộ nhưng không lọc traffic — vẫn cần firewall.
  • "Chạy service trong nhà là người ngoài truy cập được ngay." Không — phải có rule DNAT (mở cổng/port forwarding) tường minh.
  • "Ping fail = server chết / ping được = app chạy." Ping chỉ chạm tầng Internet; firewall hay chặn ICMP.

✅ Self-assessment

Bạn đã đạt module này nếu trả lời được:

  • Explain được cách Ethernet, MAC và ARP hoạt động ở tầng Link — máy trong cùng LAN tìm và gửi cho nhau thế nào.
    • Nếu chưa: đọc lại bài Ethernet, MAC & ARP, mục "ARP" và "Switch học port".
  • Implement được phép tính subnet/CIDR — đọc 192.168.1.0/24, biết một IP thuộc mạng nào, mạng chứa bao nhiêu host, hai IP có cùng mạng không.
    • Nếu chưa: đọc lại bài Subnet & CIDR, mục "Câu hỏi trung tâm" và bảng prefix.
  • Trace được đường đi của một gói tin qua routing table, default gateway và NAT để ra Internet.
    • Nếu chưa: xem lại bài Routing (hop-by-hop) và NAT (SNAT/DNAT), kèm cheat sheet phía trên.

🚀 What's next

Module 2 cho bạn biết gói tin tới đúng máy thế nào. Module 3 — Port, Socket & DNS — trả lời hai mảnh còn lại: tới đúng máy rồi thì vào đúng ứng dụng nào (port, socket, 5-tuple), và làm sao biết IP của một tên miền (DNS — quay lại chặng đầu tiên trong bản đồ 5 chặng của Module 1, giờ đào sâu). Hết Module 3 là bạn khép trọn nền tảng Foundations, sẵn sàng cho course TCP/HTTP/TLS.

Bài tiếp theo: Module 3 — Port, Socket & DNS: tổng quan

📚 Tài liệu mở rộng

  • RFC 826 (ARP), RFC 1918 (dải private), RFC 4632 (CIDR), RFC 3022 (NAT), RFC 792 (ICMP) — bộ tài liệu gốc của module.
  • Công cụ tự soi máy: ip addr (IP + MAC), ip route (routing table), arp -a / ip neigh (ARP cache), traceroute (hop), curl ifconfig.me (IP public).
  • Sách: Computer Networking: A Top-Down Approach (Kurose & Ross) — chương Network Layer & Link Layer.
  • Thực hành: chạy ip addrip route trên máy mình, rồi tự tính network address / broadcast / dải host dùng được cho subnet bạn đang ở (ví dụ 192.168.1.0/24) và giải thích default gateway trỏ đi đâu — đó là bài kiểm tra thực tế tốt nhất.

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