Trong luận văn này, tác giả thực hiện nghiên cứu đề xuất cách sử dụng hệ thống thư viện .NET 3.5 để phát triển công cụ đo lưu lượng mạng, tác giả cũng nghiên cứu việc áp dụng phương pháp
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TẬP ĐOÀN BƯU CHÍNH VIỄN THÔNG VIỆT NAM HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
VŨ ĐỖ DIN
NGHIÊN CỨU XÂY DỰNG CÔNG CỤ ĐO
VÀ PHÂN NHÓM LƯU LƯỢNG MẠNG
CHUYÊN NGÀNH: TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH
MÃ SỐ: 60.48.15
Người hướng dẫn khoa học: PGS TS NGUYỄN VĂN TAM
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
Hà Nội - 2010
Trang 2và (2) Giám sát mức chất lượng dịch vụ do mạng cung cấp
Để có thể xây dựng được mô hình giám sát chất lượng dịch vụ mạng thì việc xác định được độ biến thiên lưu lượng theo thời gian của mạng là vô cùng cần thiết Trên mạng thì độ biến thiên lưu lượng thường rất lớn và qua việc phân tích độ biến thiên lưu lượng thì ta có thể rút ra được các kết luận quan trọng như:
Có xảy ra tắc nghẽn không?
Có hiện tượng tấn công từ chối dịch vụ hay không?
Trong luận văn này, tác giả thực hiện nghiên cứu đề xuất cách sử dụng hệ thống thư viện NET 3.5 để phát triển công cụ đo lưu lượng mạng, tác giả cũng nghiên cứu việc áp dụng phương pháp phân nhóm đối tượng K-Means để thực hiện đánh giá kết quả đo
1 Mục đích và đối tượng phạm vi nghiên cứu
Mục tiêu nghiên cứu của luận án là bao gồm 3 phần chính: Tìm hiểu về các phương pháp và công cụ đo hiện tại, xây dựng công cụ đo dựa trên nền tảng công nghệ NET 3.5, phân nhóm lưu lượng bằng phương pháp K-Mean
2 Phương pháp nghiên cứu
a) Nghiên cứu lý thuyết:
Tìm hiểu các phương pháp đo lưu lượng và các công cụ đo lưu lượng hiện tại
Tìm hiểu phương pháp K-Means để phân nhóm dữ liệu
b) Nghiên cứu thực nghiệm:
Tìm hiểu các thư viện lập trình được hỗ trợ trong nền tảng NET 3.5 để xây dựng công cụ đo và phân nhóm kết quả đo lưu lượng mạng
Trang 3Chương 1 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP ĐO VÀ CÔNG
CỤ ĐO
Chương 1 giới thiệu tổng quan về các phương pháp đo và công cụ đo hiện đang được áp dụng rộng rãi
1 1 ĐO CHẤT LƯỢNG MẠNG IP
Các dịch vụ mạng IP có các yêu cầu về đặc tính lưu lượng và chất lượng dịch
vụ (QoS) khác nhau Các dịch vụ thời gian thực có những yêu cầu chặt chẽ về mất và trễ gói trong khi các dịch vụ phi thời gian thực có các yêu cầu khác như là thông lượng cao Một mạng dịch vụ IP đầy đủ phải cung cấp các dịch vụ cùng với yêu cầu chất lượng phù hợp
Việc xác định các thông số quy định hiệu năng mạng phụ thuộc vào tầng của mạng trong mô hình mạng sau:
Hình 1 1 Mô hình các lớp mạng và đại lượng hiệu năng tương ứng
Trang 41.1 1 Các phép đo lớp mạng
Các thông số cơ bản về hiệu năng lớp mạng là trễ (delay), thông lượng (throughput), mất gói (loss), kết nối (connectivity) và mức độ sử dụng tài nguyên (resource utilization) [1]
1.1 2 Các phép đo lớp truyền tải
Các phép đo lớp truyền tải thể hiện khả năng của giao thức truyền tải mà hiện nay thường được sử dụng trong mạng IP là TCP và UDP Ví dụ các tham số lớp truyền tải cho giao thức TCP là số lần truyền lại (number of retransmissions), thời gian thiết lập và kết thúc kết nối TCP, kích thước phân đoạn trung bình (average segment size)
1.1 4 Đo tại cấp độ người sử dụng
Sự cảm nhận của con người về các dịch vụ hay hệ thống được cung cấp là rất quan trọng Sự tiếp nhận của con người về các dịch vụ được cung cấp quyết định sự thành công và sự chấp thuận của dịch vụ đó Sự tiếp nhận này liên quan chặt chẽ với
sự mong đợi và giá thành
1.1 5 Một số vấn đề cần chú ý khi đo kiểm:
Trang 51 2 PHƯƠNG PHÁP VÀ CÔNG CỤ ĐO CHẤT LƯỢNG MẠNG IP
Có 2 phương pháp đo chủ yếu là đo chủ động và bị động Cả hai phương pháp này đều có thể thực hiện được ở các lớp giao thức mạng khác nhau
Trang 6Hình 1 3 Ví dụ về việc sử dụng NETPERF (Nguồn: http://marajanett.fastpage.name/netperf/)
1.2 2 Phương pháp đo thụ động
Không thực hiện chèn lưu lượng mà thực hiện giám sát các gói tin thực tại các điểm đo đã chọn Trái với phương pháp đo chủ động, quá trình đo của phương pháp này hoàn toàn không ảnh hưởng hay xâm nhập đến hoạt động của mạng
1 3 PHÂN LOẠI CÁC CÔNG CỤ ĐO LƯỜNG
1.3 1 Theo mục đích đo lường
Trang 7Hình 1 4 Phân loại các công cụ đo lường theo mục đích
1.4 2 TCP Stat
Báo cáo TCP liên quan đến thống kê định kỳ:
Băng thông được sử dụng
Số gói tin được trao đổi
Kích thước trung bình của gói tin
1.4 3 NETPIPE
Trang 8Netpipe có thể nhận được dữ liệu truyền đi giữa hai nút, và có thể được gửi đi giữa các nút trong các gói tin có kích thước bất kỳ, đo thời gian cần thiết Vì vậy, người dùng có thể tính toán chậm trễ (trong một gói dữ liệu truyền qua đường rất nhỏ giữa các nút thời gian), băng thông, mỗi dòng số tiền tối đa truyền dữ liệu
1 5 KẾT LUẬN CHƯƠNG
Chương 1 của luận văn này đã giới thiệu tổng quan về các phương pháp đo và công cụ đo hiệu năng của mạng Có 2 phương pháp đo là phương pháp đo chủ động và phương pháp đo thụ động, trong đó với mỗi lớp mạng khác nhau thì lại có phương pháp đo khác nhau Trong chương 2, tác giả sẽ trình bày hướng tiếp cận để xây dựng một công cụ đo dựa trên hệ thống thư viện lập trình NET 3.5
Trang 9Chương 2 XÂY DỰNG CÔNG CỤ ĐO LƯU LƯỢNG
Chương 2 giới thiệu về các thư viện lập trình của NET 3.5 hỗ trợ cho người lập trình trong việc xây dựng hệ thống đo lưu lượng mạng Từ việc nghiên cứu các thư viện lập trình, tác giả trình bày công cụ đo lưu lượng do chính tác giả phát triển
2 1 LÝ DO CẤP THIẾT CỦA VIỆC XÂY DỰNG CÔNG CỤ ĐO LƯU LƯỢNG
Như đã trình bày ở Chương 1, trên thế giới có nhiều công cụ đo lưu lượng mạng tồn tại Tuy nhiên thì việc vận hành các công cụ đo lưu lượng này còn gặp nhiều khó khăn, chẳng hạn:
Chi phí mua cao
Có các phần mềm miễn phí hoặc mã nguồn mở nhưng không có độ tin cậy cao
và việc sửa đổi, kiểm thử độ tin cậy của mã nguồn mở cũng tốn nhiều chi phí
Để có thể áp dụng kỹ thuật phân nhóm lưu lượng (sẽ trình bày ở Chương 3) thì phần mềm cần phải xuất ra thông tin theo định dạng mong muốn Các công cụ
đo lưu lượng hiện tại không đưa ra được định dạng thông tin cần thiết
2 2 THƯ VIỆN LẬP TRÌNH HỖ TRỢ VIẾT CHƯƠNG TRÌNH ĐO LƯU LƯỢNG
Để đo lưu lượng mạng, ta sử dụng gói thư viện System.Diagnotics của NET frameworks (Hình 2.1) System.Diagnotics cung cấp các lớp thư viện cho phép ta tương tác với các tiến trình hệ thống, hệ thống log của hệ điều hành windows và các bộ đếm hiệu năng Các lớp thư viện bao gồm:
2.2 1 Lớp EventLog
Lớp EventLog cung cấp các chức năng giúp người lập trình có thể ghi được các thông tin về sự kiện vào hệ thống quản lý thông tin sự kiện của hệ điều hành, thậm chí
là thêm và xóa các thông tin về sự kiện ở hệ thống quản lý sự kiện trên mạng máy tính
EntryWrittenEventHandler cung cấp một phương pháp để có thể tương tác với các thông tin sự kiện một cách không đồng bộ
2.2 2 Lớp Process
Trang 10Lớp Process cung cấp chức năng theo dõi kiểm soát các tiến trình trên toàn mạng và để khởi động hay chấm dứt các tiến trình cục bộ
2.2 3 Lớp PerformanceCounter và PerformaceCounterCategory
Lớp PerformanceCounter và PerformaceCounterCategory: PerformanceCounter
là một lớp thư việc cho phép người lập trình theo dõi được hiệu năng của hệ thống, trong khi PerformaceCounterCategory cho phép người lập trình có thể chỉ định kiểu đối tượng cần theo dõi
Hình 2 1 Các lớp thư viện trong gói thư viện System.Diagnotics
2 3 CHƯƠNG TRÌNH ĐO LƯU LƯỢNG MẠNG
2.3 1 Mô hình đo
System.Diagnostics
EventLog EntryWrittenEventHandler EventLogPermission EventLogEntryType EventLogEntryCollection
Process EventLogEntryType ProcessThread ProcessModule ProcessStartInfo PerformanceCounter PerformanceCounterCategory
Trang 11Máy tính 1 là máy tính thực hiện download và upload data từ internet, các gói tin khi download và upload sẽ lần lượt đi qua switch và modem Để thực hiện đo lưu lượng, ta cấu hình switch ở chế độ forward gói tin đến máy tính 2, máy tính 2 có cài đặt phần mềm đo lưu lượng mạng, sẽ đảm nhận nhiệm vụ đo lưu lượng (Hình 2.2)
Hình 2 2 Mô hình đo lưu lượng mạng
Giả sử ta muốn đo lưu lượng download: Ta sẽ sử dụng browser từ máy tính 1 để tiến hành download data từ internet, lúc này data download về sẽ được tự động chuyển tiếp đến máy tính 2 (switch sẽ thực hiện thao tác sao chép data và chuyển tiếp) và chương trình đo lưu lượng ở máy tính 2 sẽ ghi lại tốc độ lưu lượng
2.3 2 Chương trình đo lưu lượng Traffic Logger
Chương trình đo lưu lượng Traffic Logger được tác giả phát triển dựa trên các thư viện lập trình đã mô tả ở phần 2.2 Thiết kế lớp của chương trình được mô tả ở Hình 2.3
Máy tính 2: Thực hiện đo lưu lượng thông qua
số gói tin nhận được từ switch Switch Modem
Trang 12+Main() -ShowNetworkTraffic()
TrafficLoggerProgram
Hình 2 3 Thiết kế lớp của chương trình đo lưu lượng mạng
Tốc độ lưu lượng được ghi lại dưới dạng file txt, trong file có nhiều hàng kết quả, mỗi hàng có cấu trúc data như mô tả ở Bảng 2.1
Bảng 2 1 Một ví dụ về kết quả đo lưu lượng
Trong đó, Tốc độ 1 là tốc độ trung bình của mạng trong 10 phút đầu, Tốc độ 2
là tốc độ trung bình của mạng từ phút thứ 11 đến phút thứ 20, Tốc độ được tính bằng đơn vị Bytes/s
Khi chạy thử nghiệm, để tiết kiệm thời gian chờ đợi, tác giả cấu hình để chương trình đưa ra thông tin lưu lượng 1s một lần và một dòng thông tin tương ứng với lưu lượng của 6s (dòng thông tin này sẽ được mô hình hóa thành một đối tượng lưu lượng
để thực hiện phân nhóm lưu lượng ở Chương 3)(Hình 2.4)
Trang 13Hình 2 4 Giao diện chương trình đo lưu lượng Traffic Logger khi chạy
File được log lại có dạng ddMMYYYY_hhmmss.txt, trong đó ddMMYYYY là ngày chạy chương trình và hhmmss là giờ bắt đầu chạy chương trình, ví dụ file 28112010_083529.txt có thông tin như Hình 2.5
Hình 2 5 Một ví dụ về file log kết quả
Trang 14Hình 2 6 Kết quả đo lưu lượng thể hiện dưới dạng đồ thị
Về chi tiết mã nguồn của chương trình đo, xin mời tham khảo phần A ở Phụ lục
2 4 KẾT LUẬN CHƯƠNG
Chương 2 giới thiệu về các thư viện lập trình của NET 3.5 hỗ trợ cho người lập trình trong việc xây dựng hệ thống đo lưu lượng mạng Từ việc nghiên cứu các thư viện lập trình, tác giả trình bày công cụ đo lưu lượng do chính tác giả phát triển Trong chương kế tiếp, tác giả tiếp tục trình bày việc phân nhóm lưu lượng dựa trên kết quả
đo của chương trình đo lưu lượng đã trình bày ở Chương 2
Trang 15Chương 3 PHÂN NHÓM LƯU LƯỢNG BẰNG PHƯƠNG PHÁP K-
MEANS
Chương này trình bày lý thuyết về phương pháp phân nhóm dữ liệu K-Means, qua đó tác giả áp dụng lý giải thuật K-Means vào việc phân nhóm dữ liệu lưu lượng thu được từ chương trình đo lưu lượng ở chương 2
Chương này cũng trình bày thiết kế của chương trình phân nhóm lưu lượng do tác giả thiết kế
3 1 THUẬT TOÁN PHÂN NHÓM K-MEANS
3.1 1 Các khái niệm
3.1.1 1 Phân nhóm dữ liệu K-Means
Thuật toán phân nhóm K-Means do MacQueen giới thiệu trong tài liệu “J Some Methods for Classification and Analysis of Multivariate Observations” năm 1967 [3]
Hình 3 1 Ví dụ về phân nhóm đối tượng
Về nguyên lý, có n đối tượng, mỗi đối tượng có m thuộc tính, ta phân chia được các đối tượng thành k nhóm dựa trên các thuộc tính của đối tượng bằng việc áp dụng
thuật toán này
Coi mỗi thuộc tính của đối tượng (đối tượng có m thuộc tính) như một toạ độ của
Trang 16 i i im
a i với i = 1 n là đối tượng thứ i
x ij (i = 1 n, j = 1 m) là thuộc tính thứ j của đối tượng i
Phương thức phân loại/nhóm dữ liệu thực hiện dựa trên khoảng cách Euclidean nhỏ nhất giữa đối tượng đến phần tử trung tâm của các nhóm
Phần tử trung tâm của nhóm được xác định bằng giá trị trung bình các phần tử trong nhóm
1
2)( (3.2)
ji - Khoảng cách Euclidean từ a i đến c j
x is - Thuộc tính thứ s của đối tượng a i
x js - Thuộc tính thứ s của phần tử trung tâm c j
3.1.1 3 Phần tử trung tâm
Phần tử trung tâm của nhóm được xác định bằng giá trị trung bình các phần tử trong nhóm
k phần tử trung tâm (k nhóm) ban đầu được chọn ngẫu nhiên, sau mỗi lần nhóm
các đối tượng vào các nhóm, phần tử trung tâm được tính toán lại
Clusteri = {a1, a2 at} – Nhóm thứ i
t
s sj ij
1 (3.3) 3.1 2 Thuật toán
Thuật toán K-Means thực hiện như sau:
Trang 17 Khởi tạo k phần tử trung tâm một cách ngẫu nhiên (mỗi phần tử trung tâm đại
diện cho một nhóm)
Thực hiện ba bước cơ bản sau cho đến khi tất cả các đối tượng được phân loại
và không còn còn sự thay đổi của các đối tượng đến các nhóm:
Bước 1: Xác định khoảng cách Euclidean của các đối tượng đến các phần tử trọng tâm theo công thức (3.2)
Bước 2: Nhóm đối tượng vào nhóm dựa khoảng cách nhỏ nhất của đối
tượng với các phần tử trọng tâm
Bước 3: Tính toán lại phần tử trọng tâm của mỗi nhóm dựa vào các đối
tượng của nhóm, theo công thức (3.3)
Sơ đồ thuật toán được mô tả theo Hình 3.2:[6, 7]
Hình 3 2 Sơ đồ thuật toán phân nhóm K-Means
Sử dụng thuật toán K-Means clustering để phân loại thuốc theo trọng lượng và độ
PH của thuốc
Trong phạm vi ví dụ này, để dễ theo dõi và hình dung một cách đầy đủ, ta chọn
- Số nhóm k = 3
- Số đối tượng cần phân chia n = 9 (9 loại thuốc)
- Số thuộc tính của mỗi loại thuốc là m = 2
Cụ thể, danh mục các loại thuốc cần phân loại như Bảng 3.1
Dữ liệu đầu vào: n đối
Trang 18Bảng 3 1 Danh mục các đối tượng
Để áp dụng K-Means, ta coi mỗi loại thuốc như 1 điểm trên mặt phẳng toạ độ (x, y), toạ độ của điểm đó chính là các thuộc tính của loại thuốc đó
Mỗi đối tượng đại diện cho một điểm trên mặt phẳng với 2 thuộc tính (x, y) Như vây, toạ độ của mỗi đối tượng được biểu diễn trên mặt phẳng toạ độ xy được xác định như sau: A(1,1), B(7,4), C(1.5, 2), D(5, 1.5), E(4,3), F(6.5, 6), G(8,2), H(1,2), I(10,6)
Các đối tượng được cụ thể hoá theo bảng toạ độ thuộc tính 3.2
Bảng 3 2 Bảng biểu diễn các thuộc tính trên mặt phẳng x,y
Trang 19Hình 3 3 Biểu diễn các đối tượng trên mặt phẳng toạ độ x,y
Thuật toán được áp dụng như sau:
3.1.2 1 Khởi tạo các phần tử trung tâm
Trang 203.1.2 2 Thực hiện nhóm các đối tượng theo thuộc tính
Việc thực hiện nhóm các đối tượng theo thuộc tính được lặp đi lặp lại cho đến khi không còn đối tượng để nhóm vào các nhóm
Vòng lặp 1
Bước 1: Xác định khoảng cách Euclidean theo công thức (3.2), ta có:
0)11()11
71.6)41()71
12.1)21()5.11
03.4)5.11()51
61.3)31()41
43.7)61()5.61
07.7)21()81
1)21()11
30.10)61()101
06.2)64()5.67
24.2)24()87
32.6)24()17
61.3)64()107
12.1)12()15.1
85.5)42()75.1
0)22()5.15.1
54.3)5.12()55.1
69.2)32()45.1
Trang 21(
85.5)24()5.17
2.3)5.14()57
4.6)62()5.65.1(
5.6)22()85.1
5.0)22()15.1
39.9)62()105.1
Bước 2: Nhóm đối tượng:
Đối tượng có khoảng cách Euclidean đến phần tử trung tâm nhóm nào nhỏ nhất, thì phần tử đó được nhóm vào nhóm đó
Từ khoảng cách Euclidean trong bảng trên ta tìm được giá trị nhỏ nhất của khoảng cách các phần tử đến các phần tử trung tâm, cụ thể như Bảng 3.5
Bảng 3 5 Khoảng cách min giữa các khoảng cách (vòng lặp 1)
C1 0.00 6.71 1.12 4.03 3.61 7.43 7.07 1.00 10.30
C2 6.71 0.00 5.85 3.20 3.16 2.06 2.24 6.32 3.61
C3 1.12 5.85 0.00 3.54 2.69 6.40 6.50 0.50 9.39
Như vậy, đối tượng A được nhóm vào Cluster 1, đối tượng B, D, F, G, I được
nhóm vào Cluster 2, các đối tượng còn lại được nhóm vào Cluster 3 Các nhóm được biểu diễn như Bảng 3.6
Bảng 3 6 Kết quả phân nhóm các đối tượng (vòng lặp 1)
Cluster 1 A