Hướng Thực Hiện Chương Trình

Một phần của tài liệu Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng (Trang 48 - 51)

Trong phần này chúng ta sẽ phân tích phương hướng và giải thuật thực hiện chương trình mà không quan tâm tới công nghệ cụ thể

Để chặn bắt và phân tích gói tin, chương trình được cài đặt trên một máy độc lập có thể là máy chủ của mạng LAN (gateway). Đầu tiên, nó sẽ tiến hành bắt các gói tin

truyền trên mạng thông qua thiết bị card mạng (network adapter). Sau đó chương trình tiến hành đọc để cắt lấy phần header của gói tin, tiếp theo nó sẽ phân tích tổng hợp các header phần chung để laays ra các header xác định. Khi tổng hợp xong chương trình đưa thông tin của từng header vào một cơ sở dữ liệu (hoặc file). Với yêu cầu của đề tài, chúng ta có thể sẽ không cần lưu lại dữ liệu của các gói tin mà chỉ cần header của chúng. Thông tin của các gói tin được thống kê và hiển thị. Các bước tổng quát được thực hiện theo sơ đồ sau đây:

Mô hình tổng quát xử lý của chương trình

2.1 Bắt gói tin

Cửa ngõ để có thể xử lý gói tin là card mạng. Thông qua nó các gói tin truyền trên tin thu được ra màn hình với cơ chế event (ngay lập tức khi chặn bắt và phân tích được gói tin) hay cũng có thể thực hiện từng đợt mỗi một khoảng thời gian (ví dụ 5s). Từ những thông tin thu được ở những bước trên ta có thể thống kê vào báo cáo tùy thuộc vào yêu cầu của người dùng.

2.2 Tách phần header

Sau khi can thiệp để có thể chặn bắt được gói tin (dù ở mức nào) ta tiến hành đọc từng byte của gói tin và lưu vào một bộ đệm đã được tổ chức sẵn. Khi đọc ta sẽ đọc hết cả phần header của gói tin. Ta có thể bóc tách lần lượt từng phần header của các giao thức bắt đầu từ giao thức cấp thấp nhất mà chương trình chặn bắt (IP header với

chương trình sử dụng raw socket và Ethernet header với chương trình sử dụng win- pcap). Dựa vào header của đơn vị dữ liệu tầng dưới, ta hoàn toàn có thể bóc tách và thu được header của đơn vị dữ liệu giao thức tầng trên.

2.3 Phân tích, tổng hợp header

Ta tiến hành phân tích các giao thức, so sánh header thu được để tổng hợp thông tin đối với những segment thuộc cùng một gói tin đã bị phân đoạn.(để có thể nhận được 1 header duy nhất của những segment đã được phân đoạn này) Ta cũng có thể dùng một bộ đệm thứ hai để lưu trữ các header duy nhất này. Qua quá trình này ta có thể thu được các thông tin như:

• Thời gian tồn tại của gói tin.

• Tổng số các gói tin.

• Tổng số các segment của một gói tin.

• Tổng độ dài của gói tin.

• Địa chỉ đích đến, địa chỉ nguồn.

2.4 Đưa vào cơ sở dữ liệu

Các thông tin ta đã xác định được ở bước trên có thể được đưa vào một cơ sở dữ liệu để tiện cho việc hiển thị, thống kê vào báo cáo. Các thông tin đó có thể gồm

• Phiên bản. • Thời gian sống. • Địa chỉ nguồn. • Địa chỉ đích. • Tổng số các segment. • Số hiệu cổng nguồn. • Số hiệu cổng đích. • Giao thức truyền.

• Độ dài header.

• Độ lớn gói tin

Những thông tin này không nhất thiết phải được đưa vào một cơ sở dữ liệu quan hệ hay một file dữ liệu trên đĩa vì có thể làm tăng độ phức tạp không cần thiết cho chương trình. Chúng ta có thể chỉ cần ghi các thông tin này vào một bộ đệm trong bộ nhớ máy tính.

2.5 Hiển thị, thống kê và báo cáo

Ta có thể hiển thị những thôn tin thu được ra màn hình với cơ chế event (ngay lập tức khi chặn bắt và phân tích được gói tin) hay cũng có thể thực hiện từng đợt mỗi một khoảng thời gian (ví dụ 5s). Từ những thông tin thu được ở những bước trên ta có thể thống kê vào báo cáo tùy thuộc vào yêu cầu của người dùng.

Một phần của tài liệu Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng (Trang 48 - 51)