Post bài này cho mọi người nói nhảm chơi.
Ngày xửa ngày xưa, trong một công ty nọ, người ta làm ra cái máy để thống kê các luồng IP (Internet Protocol) lưu thông trong hệ thống mạng.
Một luồng được xác định như sau:
Địa chỉ IP nguồn (32-bit) + Địa chỉ IP đích (32-bit), Cổng nguồn, cổng đích ở lớp giao tiếp TCP/UDP ... tổng cộng là 96-bit cho một luồng. Đó là chuẩn IP phiên bản 4 (IPv4) Chuẩn IP phiên bản 6 (IPv6), một luồng có thể cần (288 bit) để xác định. Tạm gọi thông tin này là ID (Identification).
Các thông số thống kê của luồng (chẳng hạn như băng thông (bandwidth) mà luồng này chiếm) sẽ được lưu trữ trong 1 cơ sở dữ liệu (database). Như vậy để update thông số của một luồng, người ta sẽ dùng ID như một khóa (key) để truy xuất thông tin cũ và cập nhật thông tin mới của luồng.
Thống kê cho thấy, quá trình tìm kiếm mất khá nhiều thời gian và chiếm khá nhiều CPU (cần kiếm khoảng 1000 luồng trở lên).
Công ty đó bèn tìm cách dùng FPGA để tìm và quản lý cơ sở dữ liệu ở dưới embedded-card thay vì ở trên CPU. Trong mạng internet, tốc độ 1Gigabit, mỗi frame (khoảng 1500Bytes) được truyền trong khoảng 13 microsecond. Như vậy FPGA phải tìm cho ra frame này thuộc luồng nào trong 13us.
Đó vấn đề là vậy. Anh em nói nhảm về phương án làm cho dzui .
Ngày xửa ngày xưa, trong một công ty nọ, người ta làm ra cái máy để thống kê các luồng IP (Internet Protocol) lưu thông trong hệ thống mạng.
Một luồng được xác định như sau:
Địa chỉ IP nguồn (32-bit) + Địa chỉ IP đích (32-bit), Cổng nguồn, cổng đích ở lớp giao tiếp TCP/UDP ... tổng cộng là 96-bit cho một luồng. Đó là chuẩn IP phiên bản 4 (IPv4) Chuẩn IP phiên bản 6 (IPv6), một luồng có thể cần (288 bit) để xác định. Tạm gọi thông tin này là ID (Identification).
Các thông số thống kê của luồng (chẳng hạn như băng thông (bandwidth) mà luồng này chiếm) sẽ được lưu trữ trong 1 cơ sở dữ liệu (database). Như vậy để update thông số của một luồng, người ta sẽ dùng ID như một khóa (key) để truy xuất thông tin cũ và cập nhật thông tin mới của luồng.
Thống kê cho thấy, quá trình tìm kiếm mất khá nhiều thời gian và chiếm khá nhiều CPU (cần kiếm khoảng 1000 luồng trở lên).
Công ty đó bèn tìm cách dùng FPGA để tìm và quản lý cơ sở dữ liệu ở dưới embedded-card thay vì ở trên CPU. Trong mạng internet, tốc độ 1Gigabit, mỗi frame (khoảng 1500Bytes) được truyền trong khoảng 13 microsecond. Như vậy FPGA phải tìm cho ra frame này thuộc luồng nào trong 13us.
Đó vấn đề là vậy. Anh em nói nhảm về phương án làm cho dzui .
Comment