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ệm | Một dòng | Tầng |
|---|---|---|
| MAC | Địa chỉ gắn cứng card mạng, có nghĩa trong 1 LAN | Link |
| ARP | Hỏi broadcast "ai có IP này?" → nhận MAC | Link |
| Switch / bridge | Học MAC ↔ cổng, chuyển frame đúng cổng | Link |
| IP private | 10/8, 172.16/12, 192.168/16 — chỉ trong LAN | Internet |
Subnet /N | N bit mạng + (32−N) bit host | Internet |
| Default gateway | Cửa ra khi đích khác mạng | Internet |
| Routing | Hop-by-hop, longest-prefix match | Internet |
| SNAT / MASQUERADE | Đổi nguồn khi đi ra | Internet |
| DNAT / port forwarding | Đổi đích khi đi vào (mở cổng) | Internet |
| ICMP | ping (echo), traceroute (TTL) | Internet |
Bảng tính subnet nhanh:
| CIDR | Mask | Host dùng được |
|---|---|---|
/8 | 255.0.0.0 | 16.777.214 |
/16 | 255.255.0.0 | 65.534 |
/24 | 255.255.255.0 | 254 |
/26 | 255.255.255.192 | 62 |
/30 | 255.255.255.252 | 2 |
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. |
| ARP | Giao 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 domain | Phạm vi broadcast lan tới — một LAN. |
| IP public / private | Định danh toàn Internet / chỉ trong LAN (RFC 1918). |
CIDR /N | N bit đầu là phần mạng, phần còn lại là host. |
| Subnet mask | Cá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 gateway | Router để ra khỏi mạng hiện tại (0.0.0.0/0). |
| Longest-prefix match | Khi 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. |
| ICMP | Giao thức báo lỗi/điều khiển; nền của ping & traceroute. |
| TTL | Bộ đế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.xlà cùng mạng." Còn tuỳ/N— dưới/26có 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 addrvàip routetrê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
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