Nền tảng Mạng máy tính/Routing & default gateway — gói tin nhảy hop thế nào
9/17
Bài 9 / 17~20 phútĐịa chỉ & Định tuyếnMiễn phí lượt xem

Routing & default gateway — gói tin nhảy hop thế nào

Mỗi máy có một routing table quyết định gói tin đi đâu tiếp; khác mạng thì đẩy ra default gateway. Router chỉ biết 'trạm kế tiếp', không biết toàn tuyến — gói nhảy hop-by-hop tới đích. Bài này giải thích routing table, longest-prefix match, và cách traceroute lộ ra từng chặng.

TL;DR: Mỗi máy (kể cả laptop bạn) có một routing table — danh sách "mạng đích → đi lối nào". Nếu đích nằm trong một route cụ thể thì theo route đó; không khớp gì thì đẩy ra default gateway (0.0.0.0/0). Khi nhiều route cùng khớp, chọn route cụ thể nhất (longest-prefix match). Không máy nào biết toàn tuyến tới đích — mỗi router chỉ biết trạm kế tiếp, và gói nhảy hop-by-hop qua nhiều router. traceroute lộ ra từng hop. Đây là cơ chế đưa gói tin "ra khỏi mạng nhà" mà bài subnet đã đặt nền: khác mạng → gateway.

ping 8.8.8.8 chạy ngon, dù laptop bạn chưa từng "biết" Google DNS ở đâu và không có đường dây trực tiếp tới nó. Laptop chỉ biết mỗi mạng LAN nhà mình. Vậy làm sao gói tin tìm được đường qua hàng chục máy lạ giữa đường tới đích?

Câu trả lời là routing: không ai biết toàn tuyến, nhưng mỗi trạm biết "đẩy về phía nào là gần đích hơn". Bài này giải thích routing table, default gateway, và cách gói tin nhảy từng chặng.

1. Analogy — Hỏi đường từng ngã rẽ

Bạn lái xe tới một thành phố xa chưa từng đến. Bạn không cần biết trước toàn bộ lộ trình. Tới mỗi ngã rẽ, có biển chỉ "Hà Nội → rẽ phải". Bạn theo biển, tới ngã tiếp theo lại có biển khác. Mỗi biển chỉ biết hướng kế tiếp, không biết cả con đường — nhưng cứ theo biển là tới.

Lái xeRouting
Biển chỉ đường ở mỗi ngãRouting table ở mỗi router
"Hà Nội → rẽ phải""Mạng X → đi qua next hop Y"
Không cần biết toàn tuyếnMỗi hop chỉ biết trạm kế tiếp
Biển mặc định "mọi nơi khác → ra quốc lộ"Default gateway (0.0.0.0/0)
💡 Cách nhớ

Routing là chuyển tiếp từng chặng, không phải "biết đường đi cả tuyến". Mỗi máy chỉ trả lời được "gói này nên giao cho ai tiếp theo?" — phần còn lại để trạm sau lo.

2. Routing table — bảng quyết định lối đi

Mọi máy có routing table. Xem của bạn:

ip route
# default via 192.168.1.1 dev wlan0          <- khong khop dau het -> gateway
# 192.168.1.0/24 dev wlan0  proto kernel ...  <- mang LAN: gui thang

Mỗi dòng là một route: "đích thuộc mạng này → đi qua next hop này / interface này". Hai dòng trên nói:

  • Gói tới 192.168.1.x (cùng LAN) → gửi thẳng qua wlan0 (không cần router — dùng ARP như bài 01).
  • Mọi đích khác → default via 192.168.1.1 (đưa cho gateway).

Đây chính là hiện thân của quy tắc bài subnet: cùng mạng gửi thẳng, khác mạng đưa gateway — nhưng giờ ở dạng một bảng tra cụ thể.

3. Default gateway — cửa ra "mọi nơi khác"

Route default (viết CIDR là 0.0.0.0/0 — khớp mọi địa chỉ) là lối thoát khi không route cụ thể nào khớp. via 192.168.1.1default gateway — router nối LAN bạn với thế giới ngoài. Mọi gói ra Internet đều đi qua nó trước.

Đây là lý do mỗi mạng cần một gateway. Ví dụ một host trong LAN 192.168.1.0/24: mọi đích không khớp route nội bộ đều bị đẩy ra 192.168.1.1 (router nhà) để ra ngoài — đúng một cơ chế cho mọi mạng.

4. Longest-prefix match — chọn route cụ thể nhất

Nhiều route có thể cùng khớp một đích. Quy tắc: chọn route có prefix dài nhất (cụ thể nhất). Ví dụ đích 10.0.5.20 khớp cả hai:

RoutePrefixKhớp?
10.0.0.0/8 via R18 bit
10.0.5.0/24 via R224 bitcó (cụ thể hơn)

→ Chọn 10.0.5.0/24 (prefix /24 dài hơn /8). default (/0) luôn là lựa chọn cuối vì prefix ngắn nhất. Tư duy: route càng chi tiết càng "hiểu rõ đường tới đó" nên được ưu tiên.

5. Hop-by-hop — gói nhảy qua từng router

Không máy nào giữ bản đồ toàn Internet. Gói tin được chuyển tiếp từng chặng: mỗi router nhận gói, tra routing table của , đẩy tới next hop, lặp lại tới đích.

Laptop
Laptop
Gateway
Gateway
Router ISP
ISP
Router xa
Backbone
Server
Server

Mỗi router chỉ biết "next hop" — không ai giữ toàn tuyến. IP đích cố định, MAC đổi mỗi chặng (bài 01).

6. traceroute — soi từng hop

traceroute (Windows: tracert) lộ ra danh sách router gói tin đi qua:

traceroute google.com
#  1  192.168.1.1      1.2 ms     <- gateway nha
#  2  10.x.x.x         8.5 ms     <- router ISP
#  3  ...                          <- cac hop backbone
#  9  142.250.x.x     25.1 ms     <- toi dich

Mỗi dòng là một hop, kèm thời gian. Cách traceroute "ép" từng router tự lộ diện dùng một mẹo với TTL — sẽ giải thích ở bài ICMP kế tiếp. Khi debug "request đi tới đâu thì tắc", traceroute cho thấy gói dừng ở hop nào.

7. Pitfall — hiểu nhầm thường gặp

Nhầm 1: "Máy tôi biết đường tới server đích." ✅ Máy bạn chỉ biết next hop (thường là gateway). Toàn tuyến là tổng hợp quyết định độc lập của từng router dọc đường — không ai giữ bản đồ đầy đủ.

Nhầm 2: "Thiếu default gateway thì chỉ chậm thôi." ✅ Thiếu default route, mọi đích ngoài LAN không đi đâu được (máy không biết đẩy gói cho ai) — biểu hiện: ping được máy cùng LAN nhưng ra Internet là Network unreachable.

Nhầm 3: "Gói đi và về cùng một đường." ✅ Routing có thể bất đối xứng — chiều đi và chiều về qua các router khác nhau (mỗi router quyết định độc lập). Điều này quan trọng khi debug bằng traceroute (chỉ thấy chiều đi).

8. 📚 Deep Dive — tài liệu gốc

📚 Spec & reference chính thức

Đọc khi muốn tới gốc routing:

Ghi chú: Bài này là routing ở mức host/LAN. Cách các router toàn cầu học được route của nhau (giao thức BGP, OSPF) là chủ đề mạng nâng cao — ở mức nền chỉ cần hiểu "mỗi hop tra bảng, đẩy next hop".

9. Tóm tắt

  • Mỗi máy có routing table: "mạng đích → next hop / interface". Cùng LAN gửi thẳng; khác mạng đẩy ra default gateway (0.0.0.0/0).
  • Nhiều route khớp → chọn longest-prefix match (cụ thể nhất); default (/0) là lựa chọn cuối.
  • Không ai giữ toàn tuyến — gói nhảy hop-by-hop, mỗi router chỉ biết trạm kế tiếp (IP đích cố định, MAC đổi mỗi hop).
  • traceroute lộ ra từng hop, hữu ích khi tìm "gói tắc ở đâu".
  • Routing có thể bất đối xứng; thiếu default gateway → ra ngoài LAN là Network unreachable.
  • Một host trong LAN 192.168.1.0/24 đẩy mọi đích khác mạng ra gateway 192.168.1.1 theo đúng cơ chế này.

10. Tự kiểm tra

Tự kiểm tra
0/6 câu đã trả lời
  1. Q1
    Vì sao nói 'không máy nào biết toàn tuyến tới đích' mà gói tin vẫn tới được?
  2. Q2
    Routing table của laptop có dòng `default via 192.168.1.1` và `192.168.1.0/24 dev wlan0`. Gói tới 192.168.1.50 và gói tới 8.8.8.8 được xử lý khác nhau thế nào?
  3. Q3
    Đích 10.0.5.20 khớp cả route 10.0.0.0/8 và 10.0.5.0/24. Router chọn route nào, theo nguyên tắc gì?
  4. Q4
    Một máy thiếu default gateway thì biểu hiện ra sao? Vì sao không phải 'chỉ chậm'?
  5. Q5
    traceroute dùng để làm gì khi debug, và 'routing bất đối xứng' ảnh hưởng cách đọc nó ra sao?
  6. Q6
    Một laptop trong LAN 192.168.1.0/24 muốn mở một trang web ngoài Internet. Mô tả routing table của nó quyết định gói đi đâu, và vì sao gói không tới thẳng server đích.

Bài tiếp theo: NAT & Port Forwarding — một IP công cộng cho nhiều máy

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.

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

Bài tiếp theo

NAT & Port Forwarding — một IP công cộng cho nhiều máy