Địa chỉ mạng của máy kết nối vào thiết bị chuyển mạch sẽ được lưu trữ trong ở bảng địa chỉ mạng (hình 2).. Sơ đồ kết nối mạng sử dụng thiết bị chuyển mạch [2].[r]
(1)NGHIÊN CỨU BẢNG ĐỊA CHỈ MẠNG (MAC TABLE) CHO THIẾT KẾ THIẾT BỊ CHUYỂN MẠCH LỚP TRÊN NỀN TẢNG FPGA
Thái Trung Kiên1*, Hoàng Đình Thắng1, Đào Xn Ước1, Nguyễn Văn Thành2
Tóm tắt: Trong báo tập trung nghiên cứu giới thiệu bảng địa mạng
(MAC table), phương pháp xây dựng bảng địa mạng dựa bảng băm, phương pháp giảm xung đột thực thi phần cứng FPGA Bài báo đề xuất phương pháp giảm xung đột bảng MAC cách sử dụng bảng phụ với kích thước 1/16 bảng chính, bảng chia thành 16 đoạn Kết thử nghiệm mô cho thấy xung đột xảy 1% Trên sở kết mô phỏng, phương pháp được thực phần cứng FPGA Kết cho thấy rằng, với xung CLK độ trễ 5ns chip Artix7 200 MHz cho chế độ tìm kiếm bảng địa mạng Tốc độ tương đương với tốc độ xử lý thiết bị mạng 100 Gbps với gói tin Ethenet có kích thước 64 byte
Từ khóa: Bảng MAC; Bảng băm; Hàm băm; Chuyển lớp
1 ĐẶT VẤN ĐỀ
Khi máy tính nối mạng thông qua thiết bị mạng thiết bị chuyển mạch, hay định tuyến (switch, router), thơng tin máy tính nối mạng thu thập thiết bị Các thơng tin máy tính thu thập địa mạng (MAC Address), địa IP, … Địa IP thay đổi thơng qua cơng cụ cấu hình địa IP Cịn địa mạng (MAC) khơng thể thay đổi người sử dụng Trừ trường hợp hacker chun nghiệp sử dụng vào mục đích khơng sáng
Địa mạng hình thành lớp thứ mơ hình lớp OSI, gán cho thiết bị truy cập vào mạng Thơng thường mạng LAN, máy tính kết nối chia sẻ tài nguyên với thông qua thiết bị chuyển mạch (hình 1) Để máy A trao đổi với máy B thiết bị chuyển mạch thu thập địa mạng máy Địa mạng máy kết nối vào thiết bị chuyển mạch lưu trữ bảng địa mạng (hình 2)
Hình 1. Sơ đồ kết nối mạng sử dụng thiết bị chuyển mạch [2]
(2)Quá trình tìm kiếm địa B bảng địa toán phức tạp, sử dụng nhiều phương pháp, kỹ thuật khác Xây dựng bảng địa chỉ, phương pháp sử dụng để tìm kiếm xử lý thiết bị chuyển mạch Tốc độ xử lý tìm kiếm địa mạng bảng MAC nhân tố quan trọng định xử lý chuyển tiếp gói tin thiết bị chuyển mạch Thơng dụng với thiết bị chuyển mạch lớp sử dụng cho mơ hình tổ chức vừa nhỏ, giá thành rẻ kỹ thuật bảng băm sử dụng Bởi báo này, phần thứ tập trung nghiên cứu giới thiệu bảng băm, hàm băm, kỹ thuật giải xung đột xảy ra, đề xuất phương pháp mô để tìm kiếm giải pháp tối ưu Trong phần thứ 3, báo tập trung mơ tả q trình thực nghiệm FPGA, đánh giá khả thực thi phần cứng Và cuối đánh giá nhận xét, kết luận
2 BẢNG BĂM SỬ DỤNG TRONG BẢNG ĐỊA CHỈ MẠNG 2.1 Bảng băm, hàm băm
Bảng băm, theo định nghĩa nhiều tài liệu [3, 4], cấu trúc liệu lưu trữ tập hợp sử dụng hàm băm (hash function) để ánh xạ từ giá trị xác định (gọi khóa) đến giá trị tương ứng Các cấu trúc liệu thường xuyên bắt gặp cho tốn tìm kiếm cây bằng, phép tìm kiếm thực thời gian O(logn) Có nghĩa thời gian tìm kiếm phụ thuộc vào độ lớn tập liệu Đối với tốn tìm kiếm u cầu thời gian thực tức thời (chỉ tính vài nano giây) tồn tìm kiếm địa mạng đích thiết bị chuyển mạch, mong muốn thời gian tìm kiếm O(1)
Gọi A[0,1,…,n−1] tập n phần tử lưu trữ bảng băm Các phần tử tập hợp mà lưu trữ thường từ tập lớn U gọi tập gốc Tập gốc tập phần tử hữu hạn lớn so với n m (m số phần tử bảng băm) Ví dụ tập gốc tập địa mạng tất thiết bị hỗ trợ kết nối mạng (hàng tỷ thiết bị) Nếu giả sử tập liệu bảng băm địa mạng lưu trữ thiết bị chuyển mạch, ví dụ thiết bị Cisco 2960, lượng địa lưu trữ 8000
Bảng băm mảng T[0,1,…,m−1] có kích thước m Để lưu trữ liệu vào bảng băm, hàm băm (hash function) sử dụng, biểu diễn dạng:
h:U→{0,1,…,m−1} (1) ánh xạ gán cho phần tử tập U vị trí bảng T Cụ thể, phần tử x lưu ô T[h(x)] bảng, nghĩa x băm vào vị trí h(x), h(x) gọi mã băm (hash code) x (hình 3)
Hai thao tác bảng băm là: đưa phần tử vào bảng băm (learning) tìm xem phần tử có nằm bảng băm hay không (lookup)
LEARNING(key x, h): T[h(x)]←x
LOOKUP(key x, h):
if T[h(x)]=x return YES else return NO
(3)đột Do xung đột làm trình tìm kiếm trở nên phức tạp hơn, nên cần có phương pháp để đối phó gọi phương pháp giải xung đột
Tập địa mạng tổ
chức Tập đia mạng
h(x)
1
001D.70AB.5D60 Fa0/2 001E.F724.A160 Fa0/3
Hình 2 Minh họa bảng băm
Trước thảo luận cách chiến lược này, ta thảo luận cách chọn hàm băm trước xung đột nhiều hay phụ thuộc vào hăm băm mà ta chọn
Như mơ tả ví dụ tập thiết bị mạng giới, số lượng thiết bị tổ chức việc xảy xung đột địa mạng tránh khỏi Để giảm thiểu xung đột, phương pháp sử dụng lựa chọn hàm băm phù hợp với loại liệu
Theo [5] nghiên cứu lựa chọn hàm băm việc tìm kiếm địa mạng rằng, dùng mã kiểm tra CRC cho kết rât tốt Ngoài dùng phương pháp mã kiểm tra CRC việc thực phần cứng dễ dàng Các nghiên cứu hãng Broadcom [6, 7] nghiên cứu sử dụng với CRC16 (CCITT) cho việc xây dựng cấu trúc lưu liệu địa MAC, địa internet
2.2 Giải xung đột
Như nêu trên, việc xung đột địa hồn tồn xảy tính chất hàm băm Bởi để giải xung đột ngồi việc lựa chọn hàm băm có số phương pháp giới thiệu [4] Các phương pháp bao gồm: phương pháp xích ngăn (separate chaining), địa mở (open addressing), băm hoàn hảo (perfect hashing)
Phương pháp xích ngăn phương pháp trực quan đơn giản Đó dùng danh sách liên kết, gọi xích ngăn để liên kết phần tử có mã băm h(x) Ở phương pháp có định sử dụng thêm hệ số tải (α), trường hợp xấu phải trả giá cho tìm kiếm O(logn)
Phương pháp thứ sử dụng để giảm xung đột phương pháp địa mở (open addressing) Xuất phát từ việc sử dụng phương pháp xích ngăn tạo nhiều rỗng, ô khác chưa nhiều phần tử Bênh cạnh đó, kỹ thuật lập trình cần trì danh sách trỏ để liên kết phần tử với nhau, phương pháp xích ngăn cần nhiều nhớ Từ phương pháp địa mở ô lưu trữ phần tử
Phương pháp băm hoàn hảo sử dụng hai bàm băm tốt (h(x), g(x)), bảng băm hai chiều: T[1,2,…,m][…] Mỗi hàng bảng băm T[i] coi bảng băm phụ, có kích thước phụ thuộc vào đầu vào Khi băm vào bảng, thực băm theo pha: Pha đầu tiên, sử dụng hàm h để băm x vào hàng h(x) bảng T Gọi C[i] số lượng phần tử băm vào hàng thứ i sau pha Trong pha thứ 2, với hàng i, cấp phát nhớ C[i]2
(4)coi hàng bảng băm dùng hàm g để băm phần tử x có mã băm i vào ô g(x) hàng Đụng độ lần giải sử dụng xích ngăn cách
Ở phương pháp băm hồn hảo, bảng băm phụ có kích thước bình phương số phần tử lưu hàng nên xung đột băm lần O(1) Do tìm kiếm thực thời gian O(1)
Nghiên cứu [7] chia bảng băm liệu thành hai bảng băm, gọi bảng thứ bảng thứ Bảng thứ sử dụng mã kiểm tra CRC32, bảng thứ dùng mã kiểm tra CRC16 Có thể xem phương pháp [7] phương pháp băm hoàn hảo CRC16-CCITT định nghĩa [7]:
x16+x12+x5+1 (2)
2.3 Đề xuất phương pháp giải xung đột
Dựa nghiên cứu [4, 5, 6, 7], giải pháp chống xung đột xây dựng thử nghiệm Labview Để đề xuất phương pháp chống xung đột địa mạng, bảng băm chia đoạn, với kích thước khác Đây ý tưởng xuất phát từ phương pháp băm hoàn hảo Đặc biệt phương pháp đề xuất sử dụng loại hàm băm tốt, hàm CRC16-CCITT, khác biệt với đề xuất [7]
Tham số mô dựa tham số yêu cẩu đề tài mã số 18/2018/ĐTCT-KC.01/16-20 [8], với số phần tử địa mạng 8000 (tương đương 213) Sơ thử nghiệm thể hình
Hình 3. Sơ đồ thử nghiệm Labview
Sơ đồ cấu trúc Labview thể hình 3, sơ đồ thuật tốn thể hình
Để thực mơ thuật tốn, số giải thiết sau đưa ra:
- Bảng băm bao gồm: bảng N đoạn, bảng phụ K đoạn
- Bảng băm chứa địa MAC địa tương ứng với giá trị băm
RAM
Khi bắt đầu thiết bị chuyển mạch thêm địa MAC tìm kiếm địa MAC, hàm băm HASH thực tính tốn giá trị địa MAC để tính tốn địa RAM tương ứng Giá trị MAC lưu địa RAM tương ứng so sánh với địa MAC cần so sánh, va chạm xảy hai giá trị khác (trong trường hợp lookup) tồn giá trị địa trường hợp learning Việc so sánh thực tất đoạn bảng chính, xảy va chạm bảng q trình so sánh thực bảng phụ Quá trình so sánh kết thúc tìm kiếm giá trị (trong trường hợp lookup) tìm vị trí để ghi (trong trường hợp learning) Sơ đồ thuật tốn hình sử dụng để thực thi phần cứng mục
(5)bằng 1/8 1/16 bảng Các kịch thử nghiệm thể qua bước:
- Có phân đoạn không sử dụng bảng phụ;
- Sử dụng bảng phụ có kích thước 1/8 bảng chính, có phân đoạn; - Sử dụng bảng phu có kích thước 1/16 chính, có phân đoạn
- Sử dụng liệu đầu vào khác (8000 địa chỉ, 5000 địa chỉ, 4000
địa chỉ)
Kết thực nghiệm cho thấy phần trăm xung đột nhỏ sử dụng thêm bảng phụ có kích thước 1/16 bảng chính, bảng bảng băm phân thành 2, 4, 8, 16, 32 đoạn Địa đầu vào 212
Bắt đầu
Tính giá trị hàm HASH i = 0, j =
Có va chạm? Đọc so sánh với giá trị MAC lưu tương ứng Hashtable đoạn i bảng
i = N - i = i +1
2
1
Có va chạm? Đọc so sánh với giá trị MAC lưu tương ứng Hashtable
đoạn j bảng phụ
j = K - j = j +1
2
3
Thơng báo khơng có va chạm
2
Kết thúc
Thơng báo có va chạm
YES NO
YES NO
YES YES
NO NO
Hình 4. Sơ đồ thuật toán đề xuất để giảm tránh xung đột
3 THỰC NGHIỆM THAO TÁC BẢNG ĐỊA CHỈ MẠNG TRÊN FPGA
Để đánh giá phương pháp đề xuất giải xung đột, thuật tốn hình thử nghiệm với MAC table chip Artix – hãng Xilinx, với tần số xung CLK 200MHz Bảng địa dùng để lưu trữ thông tin liên quan cho thiết bị chuyển mạch lớp với 72 bit thông tin đưa bảng Cách tổ chức bảng địa MAC để tiết kiệm tài nguyên block RAM nội chip Xilinx FPGA (bao gồm khối Block RAM có cấu tạo 72x512, 36x1024 18x2048) Sơ đồ tổ chức bảng địa MAC đưa bảng 1, sơ đồ máy trạng thái hoạt động đưa hình
(6)được dựa vào để Learning, có BRAMs từ trước thời gian lưu
trữ làm
Khi Lookup, địa MAC đưa vào giống với địa MAC lưu
trong BRAMs tồn thơng tin liên quan địa MAC lấy ra, với tín hiệu thông báo MATCH chuyển lên mức ‘1’
Hàm băm chuyển địa MAC thành giá trị băm tương ứng làm địa lưu trữ BRAMs, sử dụng phép toán mod giá trị địa MAC với CCITT-CRC-16
Hàm băm ADDRESS
Địa MAC
PORT VLAN S/D
B
U
S
Initiate aging propertiy
DATAIN FSM WE
Tìm kiếm WE
ADDR DI
MATCH CHECKING
DO
Priority Encoder
DO BRAMs
WRITING POSITION
DI
MATCH BRAMs
AGING
DO
MUX
Hình 5. Sơ đồ tổ chức MAC table. Hình 6. Sơ đồ máy trạng thái của MAC table.
Các khối hình 5, bao gồm:
- BRAMs - Bộ nhớ dùng để lưu trữ địa MAC thông số liên quan Là khối block RAM nội Xilinx tổ chức theo cấu trúc 72x512
- Aging - Bộ cộng dùng để cập nhật thời gian lưu trữ địa MAC (đối với kiểu Dynamic)
- Match checking: So sánh địa MAC đầu vào với địa MAC lưu RAM, giống đưa tín hiệu MATCH
- Các khối cịn lại: Khối Initiate Aging Property dùng để khởi tạo giá trị thời gian
đã lưu trữ địa MAC
Việc sử dụng 16 khối RAM song song có tác dụng làm giảm tượng trùng khố (xung đột) địa MAC khác xuống tỉ lệ thấp Vì cần sử dụng 16 khối Aging tương ứng khối hỗ trợ BRAMs Writing Position
để lựa chọn xác khối RAM dùng để lưu trữ, Priority Encoder để chọn lấy đầu phù hợp 16 đầu khối RAM song song, đồng thời khối
Match Checking đảm nhận thêm nhiệm vụ vị trí match để đưa vào
bộ Priority Encoder Ngoài ra, khối FSM sử dụng thêm Timer để hỗ
trợ việc tính thời gian timeout cho địa MAC kiểu Dynamic
Bảng 1. Các bit địa RAM MACtable
MAC
address Static/Dynamic Port VLAN Aging Prop
Reserved bit
(7)Quá trình thêm địa mạng đưa hình 7, learning chu kì CLK, tính từ lúc WE chuyển từ mức lên mức (hình 7, 8)
CLK WE DATAIN
BUSY
Hình 7. Quá trình Learning
CLK LOOKUP MAC MATCH
Hình 8. Quá trình Lookup
BUSY : tín hiệu thơng báo hệ thống bận Learning
MATCH : tín hiệu thơng báo MATCH Lookup
Quá trình Loockup đưa hình 8, cho kết chậm chu kì CLK so với tín hiệu LOOKUP đầu vào, LOOKUP liên tục
Bảng 2. Tài nguyên tính mạch Artix7, 213 phần tử
So sánh với kết đưa hãng Xilinx [9] nhận thấy: - Tài nguyên sử dụng tương ứng Xilinx khoảng 10%
- Số chu kỳ để ghi (learning) nhỏ Xilinx (4 chu kỳ so với 32 Xilinx trường hợp bảng gần đầy)
- Tốc độ hoạt động hệ thống đáp ứng tương đương Xilinx
4 KẾT LUẬN
Qua trình nghiên cứu, kết hợp lý thuyết, mô phỏng, thực thi phần cứng FPGA, kết nghiên cứu rõ kết hợp hàm băm CRC16-CCITT phân bảng băm 16 đoạn, với kích thước 1/16 bảng cho kết tốt Với số lượng 1000 địa MAC kết nối, với 100 lần thử thử số xung đột Phương pháp sử dụng xem phương pháp hàm băm hồn hảo Trong hàm CRC16-CCITT sử dụng xun suốt phân chia đoạn khác bảng băm Kết thể việc thực thành cơng thuật tốn phần cứng, từ tạo tảng để thiết kế chế tạo hồn chình thiết bị chuyển mạch lớp Kết thực nghiệm phần cứng so sánh với [9] hãng Xilinx cho thấy thuật tốn đề xuất có ưu việt tài nguyên sử dụng số chu kỳ xung nhịp Đây kết ấn tượng thử nghiệm
Lời cảm ơn: Bài báo phần kết nghiên cứu đề tài