Fast Switching (Route Caching) trên Cisco Router – Cơ chế chuyển tiếp gói tin trước thời kỳ CEF
Khi phân tích hiệu năng của router Cisco, chúng ta cần hiểu rằng process switching không phải lúc nào cũng là lựa chọn tối ưu. Nếu mỗi gói tin đều phải đưa lên CPU để tra bảng định tuyến, quyết định next-hop, rồi mới đóng gói lại và chuyển tiếp, CPU sẽ nhanh chóng trở thành nút thắt cổ chai.
Để cải thiện vấn đề này, Cisco từng triển khai một cơ chế hiệu quả hơn mang tên Fast Switching, còn được gọi là Route Caching. Fast Switching hoạt động như thế nào?
Ý tưởng của Fast Switching khá đơn giản: CPU chỉ xử lý gói đầu tiên của một luồng traffic, còn các gói tiếp theo sẽ được xử lý nhanh hơn bằng cache.
Quy trình hoạt động diễn ra như sau:
Khi router nhận được gói đầu tiên của một data flow:
Sau khi cache đã được tạo, các gói tiếp theo thuộc cùng flow sẽ không cần CPU xử lý lại toàn bộ quá trình.
Thay vào đó:
Điều này giúp giảm đáng kể số lần CPU phải tham gia vào packet forwarding.
Minh họa thực tế
Giả sử PC A gửi traffic đến Server B.
Gói đầu tiên:
PC A → Router → CPU xử lý → tra route → quyết định next-hop → tạo cache entry
Gói thứ 2, 3, 4, 5...
PC A → Router → tra fast cache → forward ngay
CPU không cần xử lý lại từng packet.
Vì sao Fast Switching nhanh hơn Process Switching?
Với Process Switching:
Mỗi packet đều phải:
Receive packet
→ CPU lookup routing table
→ Determine next-hop
→ Rewrite header
→ Forward
Với Fast Switching:
Chỉ packet đầu tiên:
Receive packet
→ CPU lookup
→ Create cache
Các packet tiếp theo:
Receive packet
→ Fast cache lookup
→ Forward
Kết quả:
Nhưng Fast Switching vẫn có giới hạn
Mặc dù nhanh hơn Process Switching, Fast Switching vẫn chưa phải giải pháp hoàn hảo. 1. Cache phụ thuộc vào traffic flow
Fast cache được tạo theo flow.
Nếu mạng có rất nhiều flow ngắn-lived:
thì router liên tục phải:
Điều này gây overhead đáng kể.
2. Cache maintenance tốn tài nguyên
Fast cache không tự nhiên mà có.
Router phải quản lý:
Ví dụ:
Nếu route thay đổi do OSPF convergence:
3. Không tối ưu cho scale lớn
Khi số lượng flow tăng mạnh:
Đây là lý do Cisco phát triển CEF (Cisco Express Forwarding) để thay thế.
Fast Switching vs Process Switching
Process Switching
Đặc điểm:
Fast Switching
Đặc điểm:
Cấu hình liên quan
Trong IOS cũ, có thể tác động cơ chế switching.
Ví dụ:
Tắt CEF để dùng Fast Switching:
interface GigabitEthernet0/0
no ip route-cache cef
Ý nghĩa:
Nếu tiếp tục tắt cả route cache:
interface GigabitEthernet0/0
no ip route-cache
Router sẽ rơi về Process Switching.
Góc nhìn thực chiến
Ngày nay, trong hầu hết mạng enterprise hiện đại, bạn gần như luôn thấy CEF chứ không phải Fast Switching.
Tuy nhiên hiểu Fast Switching vẫn cực kỳ quan trọng vì:
Lộ trình tiến hóa rất rõ:
Process Switching
↓
Fast Switching
↓
Cisco Express Forwarding (CEF)
Fast Switching là bước chuyển tiếp quan trọng giữa forwarding hoàn toàn bằng CPU và forwarding tối ưu bằng data plane.
Về mặt lịch sử kiến trúc router Cisco, đây chính là giai đoạn Cisco bắt đầu tách forwarding logic ra khỏi mô hình xử lý thuần CPU.
Khi phân tích hiệu năng của router Cisco, chúng ta cần hiểu rằng process switching không phải lúc nào cũng là lựa chọn tối ưu. Nếu mỗi gói tin đều phải đưa lên CPU để tra bảng định tuyến, quyết định next-hop, rồi mới đóng gói lại và chuyển tiếp, CPU sẽ nhanh chóng trở thành nút thắt cổ chai.
Để cải thiện vấn đề này, Cisco từng triển khai một cơ chế hiệu quả hơn mang tên Fast Switching, còn được gọi là Route Caching. Fast Switching hoạt động như thế nào?
Ý tưởng của Fast Switching khá đơn giản: CPU chỉ xử lý gói đầu tiên của một luồng traffic, còn các gói tiếp theo sẽ được xử lý nhanh hơn bằng cache.
Quy trình hoạt động diễn ra như sau:
Khi router nhận được gói đầu tiên của một data flow:
- Router loại bỏ Layer 2 header.
- Kiểm tra địa chỉ IP đích.
- CPU tra cứu bảng định tuyến.
- Xác định interface thoát và next-hop.
- Rewrite lại Layer 2 header mới.
- Lưu toàn bộ thông tin forwarding này vào một vùng nhớ cache gọi là Fast Cache.
Sau khi cache đã được tạo, các gói tiếp theo thuộc cùng flow sẽ không cần CPU xử lý lại toàn bộ quá trình.
Thay vào đó:
- Router kiểm tra fast cache
- Nếu tìm thấy entry phù hợp
- Gói tin được forward ngay lập tức
Điều này giúp giảm đáng kể số lần CPU phải tham gia vào packet forwarding.
Minh họa thực tế
Giả sử PC A gửi traffic đến Server B.
Gói đầu tiên:
PC A → Router → CPU xử lý → tra route → quyết định next-hop → tạo cache entry
Gói thứ 2, 3, 4, 5...
PC A → Router → tra fast cache → forward ngay
CPU không cần xử lý lại từng packet.
Vì sao Fast Switching nhanh hơn Process Switching?
Với Process Switching:
Mỗi packet đều phải:
Receive packet
→ CPU lookup routing table
→ Determine next-hop
→ Rewrite header
→ Forward
Với Fast Switching:
Chỉ packet đầu tiên:
Receive packet
→ CPU lookup
→ Create cache
Các packet tiếp theo:
Receive packet
→ Fast cache lookup
→ Forward
Kết quả:
- Giảm CPU utilization
- Tăng throughput
- Giảm latency
- Hiệu quả hơn nhiều với lưu lượng ổn định
Nhưng Fast Switching vẫn có giới hạn
Mặc dù nhanh hơn Process Switching, Fast Switching vẫn chưa phải giải pháp hoàn hảo. 1. Cache phụ thuộc vào traffic flow
Fast cache được tạo theo flow.
Nếu mạng có rất nhiều flow ngắn-lived:
- Web traffic
- DNS queries
- Microservice communication
- High connection churn
thì router liên tục phải:
- process-switch packet đầu tiên
- tạo cache mới
- xóa cache cũ
Điều này gây overhead đáng kể.
2. Cache maintenance tốn tài nguyên
Fast cache không tự nhiên mà có.
Router phải quản lý:
- tạo cache entry
- aging cache
- invalidate cache khi topology thay đổi
Ví dụ:
Nếu route thay đổi do OSPF convergence:
- cache cũ có thể không còn hợp lệ
- router phải rebuild cache
3. Không tối ưu cho scale lớn
Khi số lượng flow tăng mạnh:
- cache lookup trở nên kém hiệu quả hơn
- memory pressure tăng
- CPU vẫn phải tham gia khá nhiều
Đây là lý do Cisco phát triển CEF (Cisco Express Forwarding) để thay thế.
Fast Switching vs Process Switching
Process Switching
Đặc điểm:
- Every packet goes to CPU
- CPU-intensive
- Throughput thấp
- Latency cao
- Troubleshooting dễ quan sát
Fast Switching
Đặc điểm:
- First packet goes to CPU
- Subsequent packets use cache
- CPU load thấp hơn
- Throughput cao hơn
- Still cache-dependent
Cấu hình liên quan
Trong IOS cũ, có thể tác động cơ chế switching.
Ví dụ:
Tắt CEF để dùng Fast Switching:
interface GigabitEthernet0/0
no ip route-cache cef
Ý nghĩa:
- CEF bị vô hiệu trên interface
- Router fallback về Fast Switching
Nếu tiếp tục tắt cả route cache:
interface GigabitEthernet0/0
no ip route-cache
Router sẽ rơi về Process Switching.
Góc nhìn thực chiến
Ngày nay, trong hầu hết mạng enterprise hiện đại, bạn gần như luôn thấy CEF chứ không phải Fast Switching.
Tuy nhiên hiểu Fast Switching vẫn cực kỳ quan trọng vì:
- gặp thiết bị Cisco legacy
- phục vụ troubleshooting CCNP/CCIE
- hiểu tiến hóa forwarding architecture của Cisco
Lộ trình tiến hóa rất rõ:
Process Switching
↓
Fast Switching
↓
Cisco Express Forwarding (CEF)
Fast Switching là bước chuyển tiếp quan trọng giữa forwarding hoàn toàn bằng CPU và forwarding tối ưu bằng data plane.
Về mặt lịch sử kiến trúc router Cisco, đây chính là giai đoạn Cisco bắt đầu tách forwarding logic ra khỏi mô hình xử lý thuần CPU.