Ethernet Control Module

Một phần của tài liệu Xây dựng firewall trên nền tảng FPGA (Trang 47 - 49)

Đây là một môđun cơ bản điều khiển tất cả các môđun khác. Nó thực chất là một máy trạng thái hữu hạn (FSM) có diễn tiến trạng thái như trong sơđồ hình 2.12.

Khi có tắn hiệu báo hiệu có một gói tin đến, FSM từ trạng thái rỗi (st_idle) chuyển sang trạng thái Ộst_macỢ đểđọc trường địa chỉ vật lý nguồn và đắch của gói tin. Trạng thái này đơn thuần chỉ là một vòng lặp để đợi 12 byte dữ liệu về địa chỉ MAC được gửi hết. Sau đó nó tiếp tục chuyển sang trạng thái Ộst_protocolỢ kiểm tra giao thức. Nếu giá trị đọc được bằng Ộ0x0800Ợ (giao thức Internet), nó chuyển sang trạng thái Ộst_ver_ihlỢ. Nếu giá trị này không bằng, FSM chuyển về trạng thái rỗi Ộst_idleỢ.

Trong trạng thái Ộst_ver_ihlỢ FSM đọc ra phiên bản của giao thức Internet và lưu chiều dài phần tiêu đề của gói tin Internet vào trong thanh ghi HLReg (HeaderLength Register). Trạng thái kế tiếp Ộst_ver_ihlỢ là Ộst_loop_ipỢ có tác dụng duyệt qua 8 byte dữ liệu trong tiêu đề của gói tin Internet trước khi đến byte dữ liệu thông báo về giao

Học viên: Trần Trường Phan    47 

thức ở tầng kế tiếp. Trạng thái Ộst_ip_protocolỢ lưu giá trị của giao thức này vào trong thanh ghi. Trạng thái Ộst_source_ipỢ và Ộst_des_ipỢ lưu địa chỉ IP nguồn và đắch của gói tin vào trong thanh ghi. Nếu giao thức ở tầng giao vận là ICMP, FSM sẽ chuyển từ

trạng thái Ộst_des_ipỢ về trạng thái rỗi đồng thời gửi tắn hiệu kắch hoạt TCAM và đưa dữ liệu về Ộ địa chỉ IP nguồn, địa chỉ IP đắch và giao thứcỢ đã xác định được tới TCAM để đối chiếu. Nếu giao thức ở tầng trên là TCP hay UDP, nó sẽ kiểm tra xem gói tin IP có phần mở rộng không nhờ HLReg. Nếu có, nó chuyển sang trạng thái Ộst_ip_iptionỢ để duyệt hết dữ liệu mở rộng của gói tin. Nếu không, FSM gửi tắn hiệu src_port_valid kắch hoạt khối src_port FPL và chuyển sang trạng thái Ộst_src_portỢ.

Nếu có trạng thái Ộst_optionỢ, sau khi duyệt hết khối dữ liệu mở rộng, FSM cũng gửi tắn hiệu src_port_valid kắch hoạt khối: src_port FPL để đối chiếu dữ liệu về cổng nguồn và chuyển sang Ộst_src_portỢ. Trong trạng thái tiếp theo Ộst_src_portỢ, sau khi duyệt qua hết 2 byte dữ liệu cổng nguồn, nó sẽ kắch hoạt khối Des_port FPL nhờ tắn hiệu des_port_valid rồi chuyển sang trạng thái Ộst_des_portỢ.

Hình 2.12: Sơđồ din tiến các trng thái ca Ethernet Control Module

st_idle st_mac st_protocol st_source_ip st_des_ip st_ip_protocol st_src_port st_des_port nCount != 11 st_ver_ihl st_loop_ip st_checksum st_ip_option nCount != 7 ARP = true ICMP = true option = false

Học viên: Trần Trường Phan    48 

Hết trạng thái Ộst_des_portỢ, FSM trở về trạng thái rỗi Ộst_idleỢ và đợi gói tin tiếp theo tới.

Một phần của tài liệu Xây dựng firewall trên nền tảng FPGA (Trang 47 - 49)