You are on page 1of 5

MÔ TẢ KIẾN TRÚC VÀ CHỨC NĂNG CỦA IPCORE TAP & QOS (UPDATE 10-

11)

Figure 1: Sơ đồ tổng quan kiến trúc IPcore Tap


Kiến trúc Ipcore Tap network 2 port gồm có 3 khối chính:
1. Tap_broadcaster: thực hiện chức năng truyền nhận dữ liệu theo 2 chiều tại 2 port của
thiết bị. Đồng thời, cho phép chụp được tất cả dữ liệu của từng luồng dữ liệu và đưa
vào khối Tap_analyzer xử lý.
2. Tap_analyzer: nhận dữ liệu là các ethernet frame của 2 luồng và xử lý ở module con
là Input_queue và User_data_path:

a) Module input_queue: toàn bộ dữ liệu sau khi được module Tap_broadcaster chụp
lại sẽ ghi vào FiFO của module nay và chờ tín hiệu điều khiển trạng thái ready của
module input_arbiter để cho phép đọc dữ liệu ra.
b) User_data_path: gồm module Input_arbiter: thực hiện thuật toán Round Robin để
cho phép dữ liệu tại 2 port được nhận và xử lý tuần tự tại khối Tap_procesing.
Trong khối Tap_procesing là kiến trúc được phát triển từ kiến trúc của Netflow_V5,
bao gồm:
 Module NF_To_STREAM:
Nhận Ethernet frame từ Input_arbiter chuyển thành tín hiệu Stream xuất ra port thứ 3
và đưa vào phần mềm Wireshark để tiến hành quan sát.
 Module Pkt_classification:
Nhận Ethernet frame thực hiện phân loại packe và tiến hành trích xuất các trường
header của gói tin (Scr_IP, Des_IP, Source_port, Des_port, Protocol) và các trường
thông tin (Timestamp, Packet_counter, Byte_counter, Sequence_number, Ack_number,
Windows, Urgent_point, Src_port_phy, Offset_register_flag, TCP_checksum,
Length_payload).
Chức năng của module Pkt_classificaiton được phát triển từ giao thức Netflow V5,
chỉ trích xuất các frame thuộc gói tin Ipv4, giao thức TCP (0x06), UDP (0x11), ICMP
(0x01), IGMP (0x02), IPSEC ESP (0x32), IPSEC AH (0x33) và ARP (gói tin ARP trích
xuất các trường header: Source IP, Dest IP và trường thông tin Timestamp,
Packet_counter, Byte_counter).
Đồng thời, module Pkt_classificaiton còn thực hiện tính thông số TCP_checksum
của mỗi frame. Sau khi trích xuất được các thông số và trường thông tin cần thiết của
frame, gồm: 5_Tuple, Pkt_info, Sequence_number, Ack_number, TCP_checksum và
TCP_checksum_recalculator. Module Pkt_classification sẽ đẩy các thông tin sang
module Check_creat_update_flows cùng với tín hiệu thông báo là
Tuple_and_infor_valid.
Bổ xung thêm tính năng tại module Pkt_classificaiton cho phép thực hiện việc lọc
các thông tin theo cấu hình từ chương trình điều khiển MainC bao gồm :
 Cho phép lọc theo giao thức : TCP, UDP, TCP_QOS, ICMP, IGMP, IPSEC
ESP, IPSEC AH. Được cấu hình cho phép trích xuất các gói tin có giao
thức trùng với giao thức đã được cài đặt từ chương trình điều khiển MainC.
 Module check_creat_update_flows: Thực hiện 3 chức năng:
+ Đối với Ip Core Tap thực hiện việc Csreater_update giống như thực hiện trên
NetFlow.
+ Đối với Tap_QoS đầu tiên, sẽ tiến hành so sánh trường TCP_checksum với
TCP_checksum_recalculator. Nếu 2 trường trên không giống nhau thì packet vừa
nhận sẽ được tính là Pkt_error = 1 trong QoS. Ngược lại, nếu 2 trường trên bằng
nhau thì gói tin sẽ được tiếp tục kiểm tra các thông số QoS: Duplicaiton, Loss , Out
of order (phương pháp và thuật toán kiểm tra, phát hiện và thống kê được trình bày
trong report). Sau các bước kiểm tra QoS, module Check_creat_update sẽ kiểm tra
xem flow của packet hiện tại đã có trong flow_table hay chưa. Nếu chưa, sẽ thực
hiện create flow tại địa chỉ đã được xác định từ hash_code. Nếu đã có một flow giống
với flow đang kiểm tra thì sẽ thực hiện update. Ngược lại sẽ tính là collision, loại bỏ
frame mới, giữ lại flow của frame cũ.
+ Đối với các flow của các gói tin IGMP,ICMP,IPSec,ARP thì thực hiện create or
update : module Check_creat_update sẽ kiểm tra xem flow của packet hiện tại đã có
trong Flow_table hay chưa. Nếu chưa, sẽ thực hiện create flow tại địa chỉ đã được xác
định từ Hash_code. Nếu đã có một flow giống với flow đang kiểm tra thì sẽ thực hiện
update
Quá trình Create/Update sẽ được module Check_creat_update_flows tại 2 table có
cùng Depth_table. Trong đó:

 Flow_table: Gồm Busy_flag 5 tuple ,infor_packet, thống kê QoS.

Figure 2: Tổ chức của mỗi Flow_entry


 Sn_table: Gồm Sn_infor

Figure 3: Tổ chức của mỗi QoS_entry.


Cùng với việc kiểm tra QoS, kiểm tra creat/update các thông tin của mỗi packet vào
table. Module Check_creat_update sẽ kiểm tra nếu packet đó có chưa Flag FIN
(handshake Disconect TCP transmits), RST flag và ACK Flag để thông báo đến module
Export_expired thực hiện export Flow_entry, Sn_entry của packet đó ra khỏi table và ghi
vào flow_fifo và clear flow_entry/SN_entry.
 Module Export_expired_flows_from_mem:
Module này thực hiện chức năng xuất các flow_entry v ra khỏi flow table theo 2
điều kiện:
 Khi có tín hiệu thông báo Export_now và địa chỉ của đối tượng cần export (đã
trình bày tại module check_packet_creat_update).
 Ở trạng thái bình thường, module này sẽ sử dụng bộ đếm địa chỉ tuyến tính,
Current_time, Inactive_timestamp, Active_timestap để thực hiện kiểm tra thời
gian hoạt động và thời gian không hoạt động của mỗi flow_entry/ Sn_entry trong
table. Nếu đối tượng nào vi phạm điều kiện kiểm tra thì sẽ bị export ra khỏi
flow_table và Sn_table, đồng thời clear đối tượng đó khỏi table.

 Module FIFO: Kiến trúc Ipcore gồm 1 FIFO: Flow fifo .


Flow FIFO: Dùng để chứa các Flow_entry đã bị export khỏi flow table và chờ
module Axi_lite cho phép đọc ra.
3. Moudle Tap_reg_axi_lite: Thực hiện quản lý và cho phép đọc ghi dữ liệu theo giao
thức Axi_lite từ Master. Trong đó:
Ghi các thống số cấu hình cho Ipcore: Inactive_timestamp, Active_timestamp,
Timestamp, Read_en_flow_fifo; Đọc trạng thái empty_flow_fifo và các trường của
flow_entry.
Figure 4: Bản đồ thanh ghi axi lite của module tap_reg_axi_lite

SO SÁNH KIẾN TRÚC CỦA IPCORE TAP NETWORK UPDATE VỚI KIẾN TRÚC
CỦA IPCORE TAP CŨ.
4. Các điểm phát triển:
a) Tại moudle Pkt_classification:
- lấy thêm các trường: Sequence_number, Ack_number, TCP checksum, và
các trường để tính TCP_checksum.
- Bổ xung thêm xử lý các gói tin IGMP,ICMP,IPSEC ESP, IPSEC AH và
ARP
- Bổ xung thêm chức năng lọc gói tin TCP, UDP, TCP_QOS,
IGMP,ICMP,IPSEC ESP, IPSEC AH và ARP
b) Module Check_create_update_flow:
- trước khi quyết định creat_update flow_entry/QoS_entry vào flow_table,
QoS_table thì moudle này sẽ thực hiện kiểm tra, phát hiện và thống kê
QoS: duplication pkt, loss pkt, out of order pkt, corrupt pkt. Moudle này
thực hiện điều khiển đọc ghi data đồng thời ở cả 2 table: flow_table,
QoS_table .
- Đối với các flow thuộc các gói tin (ICMP,IGMP,IPSET,ARP) việc create
or update không cần kiểm tra checksum và sẽ được create or update vào
Flow_tabble
c) Module Export_expired_flows_mem: Điều khiển kiểm tra và export
flow_entry/QoS_entry và clear ngăn nhớ tại đồng thời 2 table: flow_table,
QoS_table.
d) Moudle Tap_reg_axi_lite: Điều khiển đọc dữ liệu tử 2 fifo, đặt các trường của
dữ liệu read từ mỗi fifo vào từng trường xác định và cho phép Master_axi_lite
đọc.

You might also like