RoCE và RoCEv2: Điều gì thực sự nằm bên trong gói tin RDMA?
Khi tìm hiểu về mạng cho AI, HPC hay Storage hiệu năng cao, chúng ta thường nghe đến RoCE và RoCEv2. Nhiều người nghĩ rằng đây là hai giao thức hoàn toàn khác nhau, nhưng thực tế chúng chỉ khác nhau chủ yếu ở cách đóng gói (encapsulation) các gói RDMA trên hạ tầng Ethernet. Hình trên cho thấy cấu trúc frame của cả hai công nghệ.
RoCE: RDMA chạy trên Ethernet Layer 2
RoCE thế hệ đầu tiên hoạt động hoàn toàn trong miền Ethernet Layer 2. Frame bao gồm các trường như Ethernet Header, InfiniBand Global Routing Header (GRH), InfiniBand Transport Header (BTH), Payload RDMA, ICRC và Ethernet CRC. Điểm đáng chú ý là RoCE sử dụng EtherType 0x8915 để nhận diện lưu lượng RDMA. Do không có IP Header nên RoCE không thể đi qua router. Điều này khiến RoCE chỉ phù hợp với các môi trường Layer 2 tương đối nhỏ. Đó là lý do RoCE đời đầu gần như biến mất trong các triển khai AI hiện đại.
RoCEv2: RDMA chạy trên UDP/IP
RoCEv2 giải quyết hạn chế lớn nhất của RoCE bằng cách thêm IP và UDP vào quá trình đóng gói. Cấu trúc frame lúc này trở thành:
Ethernet Header → IP Header → UDP Header → InfiniBand BTH → RDMA Payload. Điều này mang lại nhiều lợi ích quan trọng:
QoS đóng vai trò cực kỳ quan trọng
Hình trên cũng cho thấy các trường QoS quan trọng được sử dụng bởi RoCEv2. PCP / CoS (3 bit), trường này nằm trong VLAN Header, dùng để ưu tiên lưu lượng ở Layer 2. Thông thường traffic RDMA sẽ được đánh dấu vào hàng đợi ưu tiên cao nhất để tránh mất gói.
DSCP (6 bit)
Nằm trong IP Header. Dùng để phân loại lưu lượng tại Layer 3.
Trong các AI Fabric hiện đại, lưu lượng RoCEv2 thường được đánh dấu bằng DSCP riêng để switch và router nhận biết.
ECN (2 bit)
Đây là thành phần quan trọng trong mạng AI. Thay vì chờ đầy bộ đệm rồi làm rơi gói tin, switch sẽ đánh dấu ECN vào gói tin để báo hiệu tình trạng nghẽn. RNIC của máy chủ sẽ nhận biết tín hiệu này và giảm tốc độ truyền. Cơ chế này giúp:
Các cụm GPU hiện đại có thể bao gồm hàng trăm hoặc hàng nghìn GPU và có nhiều Pod AI kết nối với nhau. Môi trường này yêu cầu:
RoCE = RDMA trên Ethernet Layer 2
RoCEv2 = RDMA trên UDP/IP/Ethernet
Và chính việc bổ sung IP + UDP đã biến RoCEv2 trở thành nền tảng mạng chủ đạo cho các AI Factory, GPU Cluster và AI Data Center hiện đại.
Khi tìm hiểu về mạng cho AI, HPC hay Storage hiệu năng cao, chúng ta thường nghe đến RoCE và RoCEv2. Nhiều người nghĩ rằng đây là hai giao thức hoàn toàn khác nhau, nhưng thực tế chúng chỉ khác nhau chủ yếu ở cách đóng gói (encapsulation) các gói RDMA trên hạ tầng Ethernet. Hình trên cho thấy cấu trúc frame của cả hai công nghệ.
RoCE: RDMA chạy trên Ethernet Layer 2
RoCE thế hệ đầu tiên hoạt động hoàn toàn trong miền Ethernet Layer 2. Frame bao gồm các trường như Ethernet Header, InfiniBand Global Routing Header (GRH), InfiniBand Transport Header (BTH), Payload RDMA, ICRC và Ethernet CRC. Điểm đáng chú ý là RoCE sử dụng EtherType 0x8915 để nhận diện lưu lượng RDMA. Do không có IP Header nên RoCE không thể đi qua router. Điều này khiến RoCE chỉ phù hợp với các môi trường Layer 2 tương đối nhỏ. Đó là lý do RoCE đời đầu gần như biến mất trong các triển khai AI hiện đại.
RoCEv2: RDMA chạy trên UDP/IP
RoCEv2 giải quyết hạn chế lớn nhất của RoCE bằng cách thêm IP và UDP vào quá trình đóng gói. Cấu trúc frame lúc này trở thành:
Ethernet Header → IP Header → UDP Header → InfiniBand BTH → RDMA Payload. Điều này mang lại nhiều lợi ích quan trọng:
- Có thể định tuyến qua Layer 3
- Hỗ trợ kiến trúc Spine-Leaf quy mô lớn
- Hỗ trợ ECMP load balancing
- Hoạt động trên mạng IP tiêu chuẩn
- IPv4 sử dụng EtherType 0x0800
- IPv6 sử dụng EtherType 0x86DD
- UDP Destination Port mặc định là 4791
QoS đóng vai trò cực kỳ quan trọng
Hình trên cũng cho thấy các trường QoS quan trọng được sử dụng bởi RoCEv2. PCP / CoS (3 bit), trường này nằm trong VLAN Header, dùng để ưu tiên lưu lượng ở Layer 2. Thông thường traffic RDMA sẽ được đánh dấu vào hàng đợi ưu tiên cao nhất để tránh mất gói.
DSCP (6 bit)
Nằm trong IP Header. Dùng để phân loại lưu lượng tại Layer 3.
Trong các AI Fabric hiện đại, lưu lượng RoCEv2 thường được đánh dấu bằng DSCP riêng để switch và router nhận biết.
ECN (2 bit)
Đây là thành phần quan trọng trong mạng AI. Thay vì chờ đầy bộ đệm rồi làm rơi gói tin, switch sẽ đánh dấu ECN vào gói tin để báo hiệu tình trạng nghẽn. RNIC của máy chủ sẽ nhận biết tín hiệu này và giảm tốc độ truyền. Cơ chế này giúp:
- Giảm packet loss
- Giảm latency
- Tăng hiệu quả huấn luyện AI
- Tránh hiện tượng GPU phải chờ dữ liệu
Các cụm GPU hiện đại có thể bao gồm hàng trăm hoặc hàng nghìn GPU và có nhiều Pod AI kết nối với nhau. Môi trường này yêu cầu:
- Độ trễ cực thấp
- Thông lượng cao
- Hỗ trợ định tuyến Layer 3
- Cân bằng tải ECMP
- Khả năng mở rộng quy mô lớn
RoCE = RDMA trên Ethernet Layer 2
RoCEv2 = RDMA trên UDP/IP/Ethernet
Và chính việc bổ sung IP + UDP đã biến RoCEv2 trở thành nền tảng mạng chủ đạo cho các AI Factory, GPU Cluster và AI Data Center hiện đại.