1.5.1- Phạm vi Kết hợp trong phân loại dựa trên gói TCAM
Ternary content addressable memory (TCAM) dựa trên thuật toán đang được phổ biến ngày càng tăng về phân loại gói tin nhanh. Nói chung, một bộ đồng xử lý TCAM hoạt động như một bộ vi xử lý để phân loại gói đại diện cho một đơn vị xử lý mạng (NPU) hoặc bộ xử lý mạng.
Hình 1.25- Mạng xử lý và bộ đồng xử lý TCAM.
Khi một gói tin được phân loại, một NPU tạo ra một chìa khóa tìm kiếm dựa trên các thông tin chiết xuất từ các tiêu đề gói tin và chuyển nó tới các bộ đồng xử lý TCAM để phân loại. Một bộ đồng xử lý TCAM tìm thấy một quy tắc xuất hiện trong O (1) chu kỳ đồng hồ, và do đó cung cấp mức cao nhất có thể để tra cứu/thực hiện phù hợp. Hình 1.25 là một sơ đồ logic hiển thị như thế nào một NPU
làm việc với bộ đồng xử lý TCAM của nó. Khi một gói tin đến, NPU tạo ra một chìa khóa tìm kiếm dựa trên các thông tin gói header và chuyển nó tới các bộ đồng xử lý TCAM được phân loại, thông qua một / NPU giao diện bộ đồng xử lý TCAM. Một CPU nội bộ có trách nhiệm cập nhật các bảng quy tắc thông qua một giao diện TCAM đồng xử lý CPU riêng biệt.
Tuy nhiên, mặc dù hiệu năng tra cứu nhanh chóng của nó, một trong hầu hết những quản lý tài nguyên của vấn đề quan trọng nhất trong việc sử dụng TCAM để phân loại gói/lọc là làm thế nào để có hiệu quả hỗ trợ các quy tắc lọc với phạm vi, được gọi là phạm vi ánh xạ. Khó khăn này nằm trong thực tế là nhiều mục TCAM phải được giao cho đại diện một nguyên tắc với các vùng. Một phạm vi được cho là chính xác thực hiện trong một TCAM nếu nó được thể hiện trong một TCAM mà không bị mã hóa. Ví dụ, sáu mục quy luật là cần thiết để thể hiện một loạt {> 1023} trong một TCAM, nếu phạm vi thực hiện là chính xác như trong hình 3,26.
Các bảng chính sách/tường lửa lọc thời gian thực ngày nay (PF) đã được báo cáo [7, 14-16] để liên quan đến số lượng đáng kể các quy định với phạm vi. Đặc biệt, các phân tích thống kê của quy tắc cơ sở dữ liệu thời gian thực [17] cho thấy rằng TCAM lưu trữ hiệu quả có thể được nhỏ nhất là 16 phần trăm do sự tồn tại của một số lượng đáng kể các quy định với phạm vi cổng. Rõ ràng, hiệu quả bộ nhớ TCAM giảm do phạm vi kết hợp làm cho TCAM điện năng tiêu thụ giảm, vùng tiếp xúc, và chi phí thậm chí còn nghiêm trọng hơn.
Một giải pháp được thông qua rộng rãi để đối phó với nhiều kết hợp là để thực hiện phạm vi/mã hóa tiền xử lý bởi các phạm vi ánh xạ cho một chuỗi ngắn của các bit được mã hóa, được gọi là ánh xạ bit. Ý tưởng là để xem một quy tắc d
thành một chuỗi các bit mã hóa, mã hóa được gọi là quy tắc. Theo đó, một khóa tìm kiếm, mà là dựa trên các thông tin từ tiêu đề gói tin, là tiền xử lý để tạo ra một khoá tìm kiếm mã hóa, gọi là chìa khóa mã hóa tìm kiếm. Sau đó, phím tìm kiếm mã hóa xuất hiện đối với tất cả các quy tắc mã hóa để tìm ra quy luật xuất hiện tốt nhất. Không giống như mã hóa quy tắc, có thể được chế biến sẵn trong phần mềm, tìm kiếm chìa khóa mã hóa được thực hiện trên cơ sở từng gói dữ liệu và phải được thực hiện trong phần cứng ở tốc độ dây.
1.5.2- Phạm vi ánh xạ trong TCAM
Như đã nêu ở trên, khi các đặc điểm kỹ thuật phạm vi được sử dụng cho lĩnh vực này mà không cần mã hóa nhiều, tách phạm vi phải được thực hiện để chuyển đổi các dãy vào các định dạng tiền tố để phù hợp với ranh giới bit. Điều này làm tăng số lượng các mục và có thể làm cho TCAMs không khả thi đối với một số phân loại có sử dụng đặc tả phạm vi. Liu [18] đã đề xuất một chương trình mã hóa hiệu quả phạm vi phân loại vào TCAM. Các thuật toán cơ bản mở rộng theo chiều ngang TCAM (sử dụng bit hơn trên mỗi entry), và cho một ứng dụng giới hạn chiều rộng, một thuật toán được đề xuất cho phép cả hai mở rộng theo chiều ngang và chiều dọc.
Nguyên tắc tổ chức lưu trư. Đối với từng trường phạm vi, một n bit
vector B = b1, b2,. . . , bn được sử dụng để đại diện cho nó, trong đó n là số các dãy riêng biệt quy định cho trường này. Các vector B cho một phạm vi Ei có 1 vị trí bit tại i, đó là, bi = 1 và khác tất cả các bit được thiết lập không quan tâm. Điều này dựa trên sự quan sát mặc dù số lượng các quy tắc trong phân loại một có thể là lớn, số lượng các phạm vi khác nhau quy định đối với bất kỳ trường phạm vi rất hạn chế và kết hợp chính xác đặc điểm kỹ thuật cũng xảy ra thường xuyên vì nhiều trường. Các bit vector đại diện cho Bảng 1.10 được thể hiện trong Bảng 1.11 (n = 5
trong trường hợp này). Ví dụ, phạm vi lớn hơn 1023 tại R1 được đại diện bởi 'xxxx1.
Đề án phân loại. Một phím tra cứu v ∈ [0, 2k] được dịch sang một
vector bit V = v1, v2,. . . , vn. Bit vi được đặt là 1 nếu các v chính thuộc phạm vi tương ứng Ei, nếu không nó sẽ được thiết lập về 0. Tra cứu bản dịch chính có thể được thực hiện như một bộ nhớ trực tiếp tra cứu kể từ khi hầu hết các lĩnh vực phạm vi nhỏ hơn bit 16 rộng. Một bảng tra cứu dịch hoàn thành cho các phân loại ví dụ cho mỗi giá trị có thể tra cứu quan trọng được thể hiện trong hình 1.27. Ví dụ, hầu hết các quyền vector bit được thiết lập để 1 cho tất cả các địa điểm trên 1023. Hơn nữa, các bit thứ hai từ bên phải giữa các vị trí 50 và 20 (bao gồm cả ) cũng được thiết lập để 1. Đoạn tiếp theo, tối ưu hóa một số có thể được tiếp tục thực hiện cho phù hợp sự chính xác. Nó có thể giảm số lượng các bit được sử dụng để log2 (m + 1), trong đó m là số lượng các kết hợp chính xác.
BẢNG 1.10 Ví dụ phân loại đơn giản thực hiện cho TCAM
Hình 1.27- Bảng dịch chính cho các ví dụ phân loại.
Các bit đại diện sẽ có hai phần Be, B, ánh xạ chính xác, và B cho tất cả những bit khác. Be = b1, b2,. . . , Bt là tại bit vector, nơi t ≥ log2 (m + 1). Đối với một mức bình thường, Be = 0, B và phần B của nó giống như trước. Đối với một ánh xạ chính xác, Be = i, B = 0, nếu nó là ánh xạ chính xác thứ i. Trong ví dụ
trước, nếu chúng ta sử dụng bit 2 và 3 như Be (nơi bit 1 là bit quan trọng nhất trái), các phân loại ví dụ lưu trữ trong TCAM được thể hiện trong Bảng 1.12 và bây giờ chỉ có hai bit là cần thiết để đại diện cho ba riêng biệt ánh xạ chính xác. Các bảng tra cứu bản dịch quan trọng cần phải được thay đổi cho phù hợp. Chìa khóa tra cứu còn có hai phần Ve; V, Ve tương ứng với tất cả các kết hợp chính xác và V với phần còn lại. Ve = v1, v2,. . . , Vt là một bit vector (ví dụ, b2 và b3 của cột bên phải của Bảng 1.12), và Ve = i nếu tra cứu V chính bằng các ánh xạ chính xác thứ
i, nếu không Ve = 0. Giả sử phân loại được lưu trữ trong TCAM như thể hiện trong
bảng 1.12. Một gói tin mới đến với địa chỉ đích IP 192.169.10.1 và số cổng 80. Thứ nhất, số cổng phải được lập chỉ mục vào bảng dịch trọng tâm tra cứu (Hình 1.27). Các kết quả V = 10 do 80 rơi vào khoảng 5-20 nhưng không > 1023. Các kết quả Ve = 01 vì 01 là giá trị giao so sánh chính xác giá trị 80. Cùng với các địa chỉ IP đích, kết quả cuối cùng là quy tắc 3.
Hiệu quả comment. Đề án này đòi hỏi ít không gian lưu trữ TCAM. Vì
về thời gian thực hiện tính quyết định của các thiết bị TCAM. Tuy nhiên, thêm/xóa các quy định gây ra sự thay đổi của các bit vectơ và có thể yêu cầu tính toán lại toàn bộ bản dịch, đó là một quá trình tốn thời gian.
Tham khảo:
[1] S. Lyer, R. R. Kompella, and A. Shelat, “ClassiPI: an architecture for fast and flexible packet classification,” IEEE Network, vol. 15, no. 2, pp. 33–41 (Mar. 2001).
[2] P. Gupta, “Routing lookups and packet classifications: theory and practice,” in Proc. HOT Interconnects, Stanford, California (Aug. 2000).
[3] P. Gupta and N. Mckeown, “Algorithms for packet classification,” IEEE Network, vol. 15, no. 2, pp. 24–32 (Mar. 2001).
[4] V. Srinivasan, G. Varghese, S. Suri, and M. Waldvagel, “Fast and scalable layer four switching,” in Proc. ACM SIGCOMM, Vancouver, Canada, pp. 191–202 (Aug. 1998).