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
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?
Vì routing là chuyển tiếp từng chặng: mỗi router chỉ cần biết "next hop" — đẩy gói về phía gần đích hơn — rồi để router kế tiếp lo phần còn lại. Giống lái xe theo biển chỉ đường ở mỗi ngã rẽ: không cần thuộc cả lộ trình, cứ theo biển là tới. Toàn tuyến là tổng hợp các quyết định độc lập của từng router dọc đường.
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?
Gói tới 192.168.1.50 khớp route 192.168.1.0/24 (cùng LAN) → gửi thẳng qua wlan0, dùng ARP tìm MAC đích. Gói tới 8.8.8.8 không khớp route cụ thể nào → rơi vào default → đẩy tới gateway 192.168.1.1, để router lo chặng tiếp. Đây chính là quy tắc "cùng mạng gửi thẳng, khác mạng đưa gateway" ở dạng bảng tra.
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ì?
Chọn 10.0.5.0/24 theo longest-prefix match — route có prefix dài nhất (cụ thể nhất) thắng. /24 dài hơn /8 nên được ưu tiên. Tư duy: route càng chi tiết càng "hiểu rõ" đường tới mạng đó, nên đáng tin hơn route chung chung. default (/0) luôn là lựa chọn cuối vì prefix ngắn nhất.
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'?
Máy vẫn nói chuyện được với các máy cùng LAN (có route cụ thể cho mạng đó), nhưng không ra được Internet: gói tới đích ngoài LAN không khớp route nào, không có default để đẩy đi → bị bỏ, báo Network unreachable. Không phải chậm mà là không đi đâu cả — máy không biết giao gói cho ai.
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?
traceroute liệt kê từng router (hop) gói đi qua kèm thời gian — giúp tìm gói "tắc ở đâu" hoặc chặng nào chậm. Như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). traceroute chỉ thấy chiều đi, nên một vấn đề ở chiều về có thể không lộ ra — cần lưu ý khi kết luận.
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.
Laptop có hai route chính: 192.168.1.0/24 (gửi thẳng trong LAN) và default via 192.168.1.1. Đích web là một IP công cộng không khớp route LAN → rơi vào default → đẩy ra gateway 192.168.1.1 (router nhà). Router tra routing table của rồi forward tới hop tiếp theo (router ISP), cứ thế hop-by-hop tới đích. Laptop không tới thẳng server vì nó chỉ biết next hop, không giữ bản đồ toàn Internet — đúng cơ chế "khác mạng → gateway → hop tiếp theo".

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

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