Packet Switching và Ảnh Hưởng Đến Hiệu Năng Router
Ngoài các vấn đề về CPU utilization cao đã đề cập trước đó, một yếu tố khác có thể ảnh hưởng mạnh đến hiệu năng của router là chế độ packet switching mà thiết bị đang sử dụng. Trong thực tế, không phải mọi router đều xử lý packet theo cùng một cách. Cách router quyết định chuyển tiếp packet phụ thuộc rất nhiều vào kiến trúc phần cứng và phần mềm của thiết bị.
Vì vậy, khi troubleshooting ngoài môi trường production, bạn luôn nên tham khảo tài liệu của dòng router cụ thể để hiểu chính xác cách nó triển khai forwarding plane.
Tuy nhiên, về mặt tổng quát, các router Cisco và multilayer switch thường hỗ trợ ba cơ chế packet switching chính:
Đây là những khái niệm rất quan trọng đối với kỹ sư CCNP/CCIE, bởi vì chúng ảnh hưởng trực tiếp đến throughput, latency, CPU load, và khả năng mở rộng của hệ thống.
Packet Switching Là Gì?
Packet switching là quá trình router quyết định:
Khi một packet đi vào router, thiết bị phải thực hiện nhiều bước xử lý:
Bước 1: Loại bỏ Layer 2 header
Ví dụ Ethernet header sẽ bị bỏ đi vì MAC source/destination chỉ có ý nghĩa trong local segment.
Ví dụ packet đến với:
Src MAC: 00:11:22:33:44:55
Dst MAC: AA:BB:CC:DD:EE:FF
Router sẽ bỏ phần này.
Bước 2: Kiểm tra Layer 3 header
Router đọc thông tin IP:
Source IP
Destination IP
TTL
Protocol
Ví dụ:
Source IP: 10.1.1.10
Destination IP: 192.168.1.100
Router sẽ tra cứu routing table để xác định next-hop.
Bước 3: Quyết định forwarding
Ví dụ routing table:
192.168.1.0/24 via 172.16.1.1
Router xác định:
Bước 4: Viết lại Layer 2 header
Router tạo Ethernet frame mới:
New Source MAC = MAC của router trên cổng ra
New Destination MAC = MAC của next-hop
Ví dụ:
Src MAC: 00:AA:BB:CC:DD:EE
Dst MAC: 11:22:33:44:55:66
Bước 5: Tính lại FCS
Do frame đã thay đổi nên checksum Layer 2 cũng phải được tính lại.
Bước 6: Forward packet
Packet được gửi ra cổng phù hợp.
1. Process Switching
Cách hoạt động
Đây là phương pháp packet switching truyền thống nhất.
Với process switching, mỗi packet đi vào đều được CPU xử lý trực tiếp.
Luồng xử lý:
Packet đến
↓
CPU kiểm tra header
↓
CPU tra routing table
↓
CPU rewrite Layer 2 header
↓
CPU tính FCS
↓
CPU gửi packet ra ngoài
Toàn bộ quyết định forwarding đều do CPU đảm nhiệm.
Minh họa logic
Incoming Packet
↓
CPU xử lý
↓
Routing Decision
↓
Rewrite Frame
↓
Outgoing Interface
Điều này tương ứng với mô hình:
Vì sao chậm?
CPU là tài nguyên hữu hạn.
Nếu traffic nhỏ:
100 pps
CPU vẫn xử lý ổn.
Nhưng nếu traffic tăng:
50,000 pps
100,000 pps
500,000 pps
CPU sẽ nhanh chóng quá tải.
Kết quả:
Ví dụ thực tế
Router nhận traffic:
200 Mbps
Packet size trung bình:
500 bytes
Packets per second:
200,000,000 / (500 × 8)
= 50,000 pps
Nếu CPU phải process-switch 50,000 packet mỗi giây:
=> cực kỳ nặng.
Khi nào xảy ra?
Thông thường router hiện đại không dùng process switching cho forwarding thông thường.
Nhưng vẫn có thể xảy ra khi:
Cấu hình ép dùng Process Switching
Có thể disable Fast Switching và CEF bằng lệnh:
interface GigabitEthernet0/0
no ip route-cache
Lệnh này buộc interface dùng process switching.
Kiểm tra
show ip interface
Ví dụ:
IP fast switching is disabled
Tác động đến Troubleshooting
Nếu router CPU cao, cần kiểm tra:
show processes cpu
Nếu CPU bị packet forwarding chiếm nhiều:
IP Input
process IP Input cao thường là dấu hiệu process switching hoặc exception packet processing.
Ví dụ:
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min Process
66 458293 ... IP Input
Nếu IP Input cao bất thường:
→ nghi ngờ packet đang đi vào CPU.
Kiến thức thực chiến
Process switching gần như là “worst-case forwarding path”.
Nếu traffic data-plane phải đi qua CPU:
router sẽ giống như:
Điều này cực kỳ kém hiệu quả.
Tóm tắt
Process switching có đặc điểm:
Ưu điểm
Nhược điểm
Trong phần tiếp theo, cơ chế Fast Switching và đặc biệt Cisco Express Forwarding (CEF) mới là các kỹ thuật giúp router forwarding hiệu quả ở tốc độ cao.
Ngoài các vấn đề về CPU utilization cao đã đề cập trước đó, một yếu tố khác có thể ảnh hưởng mạnh đến hiệu năng của router là chế độ packet switching mà thiết bị đang sử dụng. Trong thực tế, không phải mọi router đều xử lý packet theo cùng một cách. Cách router quyết định chuyển tiếp packet phụ thuộc rất nhiều vào kiến trúc phần cứng và phần mềm của thiết bị.
Vì vậy, khi troubleshooting ngoài môi trường production, bạn luôn nên tham khảo tài liệu của dòng router cụ thể để hiểu chính xác cách nó triển khai forwarding plane.
Tuy nhiên, về mặt tổng quát, các router Cisco và multilayer switch thường hỗ trợ ba cơ chế packet switching chính:
- Process Switching
- Fast Switching (Route Caching)
- Cisco Express Forwarding - CEF (Topology-Based Switching)
Đây là những khái niệm rất quan trọng đối với kỹ sư CCNP/CCIE, bởi vì chúng ảnh hưởng trực tiếp đến throughput, latency, CPU load, và khả năng mở rộng của hệ thống.
Packet Switching Là Gì?
Packet switching là quá trình router quyết định:
"Packet này sẽ được gửi đi đâu?"
Khi một packet đi vào router, thiết bị phải thực hiện nhiều bước xử lý:
Bước 1: Loại bỏ Layer 2 header
Ví dụ Ethernet header sẽ bị bỏ đi vì MAC source/destination chỉ có ý nghĩa trong local segment.
Ví dụ packet đến với:
Src MAC: 00:11:22:33:44:55
Dst MAC: AA:BB:CC:DD:EE:FF
Router sẽ bỏ phần này.
Bước 2: Kiểm tra Layer 3 header
Router đọc thông tin IP:
Source IP
Destination IP
TTL
Protocol
Ví dụ:
Source IP: 10.1.1.10
Destination IP: 192.168.1.100
Router sẽ tra cứu routing table để xác định next-hop.
Bước 3: Quyết định forwarding
Ví dụ routing table:
192.168.1.0/24 via 172.16.1.1
Router xác định:
"Packet này phải gửi ra interface GigabitEthernet0/1"
Bước 4: Viết lại Layer 2 header
Router tạo Ethernet frame mới:
New Source MAC = MAC của router trên cổng ra
New Destination MAC = MAC của next-hop
Ví dụ:
Src MAC: 00:AA:BB:CC:DD:EE
Dst MAC: 11:22:33:44:55:66
Bước 5: Tính lại FCS
Do frame đã thay đổi nên checksum Layer 2 cũng phải được tính lại.
Bước 6: Forward packet
Packet được gửi ra cổng phù hợp.
1. Process Switching
Cách hoạt động
Đây là phương pháp packet switching truyền thống nhất.
Với process switching, mỗi packet đi vào đều được CPU xử lý trực tiếp.
Luồng xử lý:
Packet đến
↓
CPU kiểm tra header
↓
CPU tra routing table
↓
CPU rewrite Layer 2 header
↓
CPU tính FCS
↓
CPU gửi packet ra ngoài
Toàn bộ quyết định forwarding đều do CPU đảm nhiệm.
Minh họa logic
Incoming Packet
↓
CPU xử lý
↓
Routing Decision
↓
Rewrite Frame
↓
Outgoing Interface
Điều này tương ứng với mô hình:
- Control Plane tham gia trực tiếp
- CPU trở thành điểm xử lý trung tâm
Vì sao chậm?
CPU là tài nguyên hữu hạn.
Nếu traffic nhỏ:
100 pps
CPU vẫn xử lý ổn.
Nhưng nếu traffic tăng:
50,000 pps
100,000 pps
500,000 pps
CPU sẽ nhanh chóng quá tải.
Kết quả:
- latency tăng
- packet drop
- routing protocol bị ảnh hưởng
- management session lag
- SSH/Telnet phản hồi chậm
Ví dụ thực tế
Router nhận traffic:
200 Mbps
Packet size trung bình:
500 bytes
Packets per second:
200,000,000 / (500 × 8)
= 50,000 pps
Nếu CPU phải process-switch 50,000 packet mỗi giây:
=> cực kỳ nặng.
Khi nào xảy ra?
Thông thường router hiện đại không dùng process switching cho forwarding thông thường.
Nhưng vẫn có thể xảy ra khi:
- packet đầu tiên của flow
- traffic đặc biệt cần CPU xử lý
- exception traffic
- control-plane traffic
- fast switching bị disable
- CEF bị disable
Cấu hình ép dùng Process Switching
Có thể disable Fast Switching và CEF bằng lệnh:
interface GigabitEthernet0/0
no ip route-cache
Lệnh này buộc interface dùng process switching.
Kiểm tra
show ip interface
Ví dụ:
IP fast switching is disabled
Tác động đến Troubleshooting
Nếu router CPU cao, cần kiểm tra:
show processes cpu
Nếu CPU bị packet forwarding chiếm nhiều:
IP Input
process IP Input cao thường là dấu hiệu process switching hoặc exception packet processing.
Ví dụ:
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min Process
66 458293 ... IP Input
Nếu IP Input cao bất thường:
→ nghi ngờ packet đang đi vào CPU.
Kiến thức thực chiến
Process switching gần như là “worst-case forwarding path”.
Nếu traffic data-plane phải đi qua CPU:
router sẽ giống như:
"Dùng general-purpose CPU để làm forwarding ASIC"
Điều này cực kỳ kém hiệu quả.
Tóm tắt
Process switching có đặc điểm:
Ưu điểm
- đơn giản
- luôn hoạt động
- xử lý được exception traffic
Nhược điểm
- CPU intensive
- throughput thấp
- latency cao
- không scalable
Trong phần tiếp theo, cơ chế Fast Switching và đặc biệt Cisco Express Forwarding (CEF) mới là các kỹ thuật giúp router forwarding hiệu quả ở tốc độ cao.