Khóa luận Tìm kiếm ngẫu nhiên trên các mạng ngang hàng phi cấu trúc
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đào Văn Toán
TÌM KIẾM NGẪU NHIÊN TRÊN CÁC MẠNG
NGANG HÀNG PHI CẤU TRÚC
KHOÁ LU
ẬN T
Ố
T NGHI
Ệ
P
ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công ngh thông tin
ệ
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đào Văn Toán
TÌM KIẾM NGẪU NHIÊN TRÊN CÁC MẠNG
NGANG HÀNG PHI CẤU TRÚC
KHOÁ LU
ẬN T
Ố
T NGHI
Ệ
P
ĐẠI H
Ọ
C H CHÍNH QUY
Ệ
Ngành: Công ngh thông tin
ệ
Cán b
ộ
h
ướng d
ẫ
n: TS. Nguy
ễ
n
Đại Th
ọ
HÀ NỘI - 2010
LỜI CẢM ƠN
Để có thể hoàn thành được khóa luận có kết quả như ngày hôm nay, ngoài sự nỗ
lực của chính bản thân, tôi còn nhận được sự giúp đỡ từ Nhà trường, thầy cô, gia đình và
bạn bè, đó là điều may mắn đối với tôi, và cũng là niềm hạnh phúc.
Đầu tiên, em chân thành cảm ơn giảng viên, tiến sĩ Nguyễn Đại Thọ, người đã
hướng dẫn trực tiếp cho em làm khóa luận này. Thầy đã giành cho em nhiều thời gian để
thảo luận về vấn đề nghiên cứu, nhiệt tình hỗ trợ em trong việc nhìn nhận, đánh giá vấn
đề gặp phải và phát triển ý tưởng. Hỗ trợ em trong việc kiểm nghiệm, mô phỏng chương
trình để có kết quả đánh giá và góp ý kiến cho em thực hiện khóa luận này.
Em xin cảm ơn trường Đại học Công Nghệ- ĐHQG Hà Nội đã tạo điều kiện cho
em tham gia học tập, rèn luyện và sinh hoạt trong môi trường tốt, hiện đại. Đặc biệt là tạo
điều kiện cho em tham gia thực hiện khóa luận, cho em cơ hội phát huy vốn kiến thức, kỹ
năng đã tiếp thu được, cũng như phát huy khả năng nhìn nhận vấn đề khoa học-công
nghệ-cuộc sống trong lĩnh vực học tập của mình sau khóa học.
Và lời cảm ơn sâu sắc tôi muốn giành cho gia đình tôi, đặc biệt là bố mẹ tôi, những
người vất vả ngày đêm lao động để lo cho tôi có thể hoàn thành tốt khóa học, luôn động
viên tôi học tập cho tốt, tạo điều kiện cho tôi về mặt vật chất trong quá trình theo học tại
trường.
Cuối cùng, tôi xin gửi lời cảm ơn tới những người bạn của tôi, cảm ơn các bạn đã
giúp đỡ tôi khi tôi gặp khó khăn trong học tập, cũng như trong cuộc sống. Đặc biệt để
hoàn thành khóa luận này, các bạn còn giành thời gian để thảo luận cùng tôi, giúp tôi thu
thập kết quả mô phỏng.
Hà Nội, tháng 5 năm 2010.
Đào Văn Toán
TÓM TẮT NỘI DUNG
Trong các mô hình client-server, mô hình mạng ngang hàng tập trung hay mô hình
mạng ngang hàng lai ghép, nếu một người dùng ở trong mạng sử dụng máy tính để tìm
kiếm tài nguyên thì việc tìm kiếm là đơn giản bởi sự hỗ trợ của server hoặc siêu điểm nút.
Tuy nhiên, với mô hình mạng ngang hàng thuần túy việc tìm kiếm lại không đơn giản, đó
là bởi vì điểm nút tìm kiếm không có thông tin vị trí tài nguyên, không có thông tin định
tuyến, cũng như thông tin về các điểm nút khác trong mạng, trừ các điểm hàng xóm với
nó. Chính bởi những đặc trưng này, đã có nhiều bài báo, công trình nghiên cứu trước đây
đề xuất ra giải pháp cải tiến phương pháp tìm kiếm đơn lẻ hay đề xuất phương pháp tìm
kiếm kết hợp như là: phương pháp tìm kiếm động [20], phương pháp tìm kiếm lai
[14],…Ngoài ra còn có những đề xuất để cải tiến hiệu suất tìm kiếm của các phương pháp
tìm kiếm đơn lẻ như trong các tài liệu [16], [17], [23].
Tuy nhiên chưa có bài báo nào đề cập đến việc kết hợp 2 phương pháp tìm đơn lẻ
theo trình tự: phương pháp di chuyển ngẫu nhiên trước và phương pháp phát tràn sau.
Khóa luận của chúng tôi đề xuất phương pháp tìm kiếm lai ghép mới từ ý tưởng này, sau
đó thực hiện mô phỏng các phương pháp trên một số dạng đồ thị chung của mạng ngang
hàng thuần túy. Chúng tôi cũng đưa ra các phân tích, đánh giá về các phương pháp tìm
kiếm.
Phương pháp của chúng tôi cho kết quả tốt trên đồ thị luật hàm mũ trong một số
trường hợp, còn với tô pô phân cụm thì cho kết quả kém hơn nhưng tốt hơn so với
phương pháp phát tràn trên đồ thị này.
MỤC LỤC
Bảng ký hiệu viết tắt.............................................................................................................1
MỞ ĐẦU ..............................................................................................................................1
CHƯƠNG 1. TỔNG QUAN VỀ MẠNG NGANG HÀNG ................................................6
1.1. Thành phần cấu tạo mạng ngang hàng....................................................................6
1.1.1. Khái niệm điểm nút..........................................................................................6
1.1.2. Cách phân loại peer trong mạng ngang hàng...................................................7
1.2. Mạng ngang hàng....................................................................................................8
1.2.1. Định nghĩa mạng ngang hàng ..........................................................................8
1.2.2. Phân loại các mô hình mạng ngang hàng.......................................................11
1.3. Mạng xếp chồng....................................................................................................18
CHƯƠNG 2. LÝ THUYẾT ĐỒ THỊ VÀ CÁC DẠNG ĐỒ THỊ MẠNG.........................19
2.1. Khái niệm đồ thị....................................................................................................19
2.1.1. Đồ thị có hướng..............................................................................................19
2.1.2. Đồ thị vô hướng .............................................................................................19
2.1.3. Các khái niệm khác ........................................................................................20
2.2. Các dạng đồ thị trong mạng ngang hàng ..............................................................20
2.2.1. Đồ thị ngẫu nhiên...........................................................................................21
2.2.2. Đồ thị luật hàm mũ.........................................................................................21
2.2.3. Tô pô phân cụm..............................................................................................22
CHƯƠNG 3. CÁC PHƯƠNG PHÁP TÌM KIẾM ĐÃ ĐỀ XUẤT TRƯỚC ĐÂY...........24
3.1. Các phương pháp tìm kiếm đơn lẻ........................................................................24
3.1.1. Phương pháp tìm kiếm phát tràn thông thường .............................................24
3.1.2. Phương pháp tìm kiếm di chuyển ngẫu nhiên................................................25
3.2. Các phương pháp tìm kiếm kết hợp......................................................................26
3.2.1. Phương pháp tìm kiếm động ..........................................................................27
3.2.2. Phương pháp tìm kiếm lai ..............................................................................27
CHƯƠNG 4. CÁC PHƯƠNG PHÁP TÌM KIẾM LAI GHÉP CỦA CHÚNG TÔI .........30
4.1. Phương pháp tìm kiếm lai ghép sử dụng phát tràn thông thường.........................30
4.1.1. Phương pháp tìm kiếm lai ghép biến thể thứ nhất .........................................30
4.1.2. Phương pháp tìm kiếm lai ghép biến thể thứ hai ...........................................34
4.2. Phương pháp tìm kiếm lai ghép sử dụng phát tràn cải tiến ..................................37
4.2.1. Phương pháp tìm kiếm lai ghép biến thể thứ ba ............................................38
4.2.2. Phương pháp tìm kiếm lai ghép biến thể thứ tư.............................................41
CHƯƠNG 5. MÔ PHỎNG VÀ ĐÁNH GIÁ HIỆU NĂNG..............................................46
5.1. Các đơn vị đo hiệu năng trong mô phỏng.............................................................46
5.1.1. Mức độ bao phủ..............................................................................................46
5.1.2. Tỷ lệ thành công.............................................................................................47
5.1.3. Số lượng truy vấn thành công ........................................................................47
5.1.4. Hiệu quả truy vấn...........................................................................................48
5.1.5. Số lượng nút nhận truy vấn dư thừa...............................................................48
5.2. Kết quả mô phỏng trên đồ thị luật hàm mũ ..........................................................49
5.2.1. Đồ thị luật hàm mũ với 55 thông báo truy vấn...............................................49
5.2.2. Đồ thị luật hàm mũ với N thông báo truy vấn ...............................................51
5.3. Kết quả mô phỏng trên tô pô phân cụm................................................................53
5.3.1. Mô phỏng trên tô pô phân cụm với 55 thông báo truy vấn ............................53
5.3.2. Mô phỏng trên tô pô phân cụm với N thông báo truy vấn.............................55
5.4. Đánh giá về phân bố thông báo truy vấn...........................................................61
CHƯƠNG 6. KẾT LUẬN VÀ ĐỊNH HƯỚNG ................................................................65
TÀI LIỆU THAM KHẢO..................................................................................................67
Bảng ký hiệu viết tắt
ARPANET
BFS
Advanced Research Projects Agency Network
Breadth-First Search
Centrol Processing Unit
Depth-First Search
CPU
DFS
GUID
FTP
General Unique ID
File Transfer Protocol
Telecommunication Network
Time-to-Live
Telnet
TTL
MỞ ĐẦU
Thế hệ mạng Internet đầu tiên có tên là mạng ARPANET, mạng này được phát triển
từ dự án của Bộ quốc phòng Mỹ vào những năm cuối của thập niên 1960. Mục đích của
mạng ARPANET là dùng để chia sẻ các tài nguyên tính toán và các tài liệu giữa các trung
tâm nghiên cứu khác nhau trên nước Mỹ. Mô hình đầu tiên của mạng chỉ có 4 máy, những
máy này được đặt tại các địa điểm khác nhau là: Trường Đại học California, trung tâm
nghiên cứu phát triển của Học viện nghiên cứu Stanford, trường Đại học California tại
Santa Barbara và Đại học Utah. Các máy trong mạng ARPANET đầu tiên không có đặc
trưng gì giống như client hay server, chúng được xem là ngang hàng nhau vì vậy mạng
này còn được gọi là mạng ngang hàng đầu tiên.
Các ứng dụng đầu tiên và vượt trội trên mạng Internet là: FTP và Telnet..vv..nhưng
bản thân chúng lại là các ứng dụng client-server, sau khi mạng Internet xuất hiện thì các
ứng dụng phát triển cho mạng chủ yếu là ứng dụng cho mô hình mạng client-server. Ngày
nay, các ứng dụng mạng ngang hàng cũng trở nên phổ biến hơn và ngày càng đa dạng như
là: BitTorrent, Skype, FlashGet, Gnutella, Sopcast, Napster…vv. Sự trở lại và phát triển
của các ứng dụng mạng ngang hàng là vì sự tồn tại của mô hình mạng client-server có
nhiều hạn chế. Điều đó có thể thấy rõ ràng, server không thể lưu tất cả các thông tin mà
client yêu cầu được bởi vì vấn đề lưu trữ có hạn và khi số lượng client tăng đến mức độ
nào đó thì nhu cầu về tải, băng thông tăng lên dẫn đến việc các server không có khả năng
cung cấp dịch vụ cho các client tham gia vào, chi phí để mở rộng mạng là tốn kém. Tuy
nhiên, với mô hình mạng ngang hàng có thể giải quyết được những vấn đề này, ngoài ra
còn tận dụng được sức mạnh tập thể của các máy tham gia trong việc tính toán, dễ dàng
mở rộng và chi phí thấp.
Mạng ngang hàng có nhiều tiêu chí để phân loại nhưng phân loại một cách tương
đối dựa trên đặc điểm cấu trúc của mạng thì phân chia thành 2 loại : loại có cấu trúc, và
loại không có cấu trúc. Những mạng ngang hàng không có cấu trúc còn được phân chia
tiếp thành 3 loại: mạng ngang hàng tập trung, mạng ngang hàng thuần túy, mạng ngang
hàng lai. Trong khóa luận của chúng tôi, chúng tôi tập trung vào các mô hình mạng ngang
hàng thuần túy.
Hiện tại, để tìm kiếm thông tin hay tài nguyên trên Internet, hầu hết người sử dụng
thường thông qua các trình duyệt để truy cập tới các server cung cấp dịch vụ tìm kiếm
1
như Google, Bing..vv..sau đó người sử dụng sẽ gửi yêu cầu tìm kiếm của mình lên đó.
Khi tìm kiếm với Google, người dùng sẽ nhận được hàng nghìn kết quả, có cả những kết
quả chẳng liên quan gì đến thông tin mà người dùng cần, thậm chí có cả những kết quả đã
quá cũ và không còn tồn tại, hay cả những kết quả không có giá trị. Điều này làm cho
người dùng có quá nhiều thông tin lựa chọn không cần thiết và dễ gây lẫn lộn. khó chịu.
Tuy việc tìm kiếm cho kết quả nhanh nhưng những máy tìm kiếm này vẫn còn nhiều
nhược điểm khác như là: vấn đề yêu cầu nhiều phần cứng để hỗ trợ lưu trữ thông tin và tài
nguyên bổ sung, vấn đề khi máy chủ tìm kiếm đột nhiên tạm ngưng hoạt động, vấn đề khi
mà kích thước mạng tăng lên trong khi số lượng máy hỗ trợ cho dịch vụ tìm kiếm là có
hạn, vấn đề các tài nguyên chỉ được phép lưu hành trong nội bộ..vv.. Nhưng một dịch vụ
tìm kiếm tương tự mà được cài đặt trên mạng ngang hàng thì có thể giải quyết được các
vấn đề với kết quả tìm kiếm trả về, ngoài ra còn có nhiều lợi thế khác như là: hạn chế kết
quả không cần thiết, không lo hiện tượng máy chủ bị ngưng hoạt động, không lo vấn đề
kích thước mạng tăng…vv.., thông tin có thể tham khảo thêm trong tài liệu [3].
Các ứng dụng chia sẻ tài nguyên phổ biến của mạng ngang hàng vào thời điểm hiện
tại như là: BitTorrent, Napster,…vv. các ứng dụng này thuộc mô hình mạng ngang hàng
tập trung và mạng ngang hàng lai. Việc tìm kiếm tài nguyên với các mô hình này là đơn
giản và việc tìm kiếm giống như tìm kiếm trong mô hình client-server bởi vì được hỗ trợ
bởi máy chủ tìm kiếm trung tâm hay siêu điểm nút (SuperPeer hay SuperNode) do đó tìm
kiếm không phải là vấn đề đối với các mô hình mạng ngang hàng này. Nhưng mô hình
mạng ngang hàng thuần túy không tồn tại máy chủ tìm kiếm trung tâm hay các siêu điểm
nút để lưu trữ thông tin về các tài nguyên được các điểm nút khác trong mạng chia sẻ. Do
đó mạng ngang hàng thuần túy là một mô hình mạng đặc biệt và việc tìm kiếm là vấn đề
quan trọng với mạng này.
Nếu một công ty hay tổ chức xây dựng mô hình mạng theo kiểu mô hình mạng
ngang hàng thuần túy thì cần thiết có một ứng dụng để hỗ trợ những người dùng máy
trong hệ thống mạng có thể tìm kiếm các tài nguyên chia sẻ trong tổ chức, công ty. Các
tài nguyên chia sẻ này có thể là: âm nhạc, phim, ảnh, tác phẩm văn học, không gian lưu
trữ, thiết bị đắt tiền hay thông tin du lịch, thông tin hội họp..vv.. của các thành viên trong
công ty, tổ chức chia sẻ.
Để đáp ứng việc tìm kiếm tài nguyên trên mô hình mạng này có một số phương
pháp được đã đề xuất như là phương pháp phát tràn (hay lan tỏa) và bước dịch chuyển
2
ngẫu nhiên, những phương pháp này chúng tôi gọi là nhóm phương pháp đơn lẻ phổ biến.
Ngoài ra có một vài công trình nghiên cứu đề xuất về tìm kiếm trước đây, các công trình
này đề xuất các phương pháp tìm kiếm kết hợp 2 phương pháp đơn lẻ, đó là: phương pháp
tìm kiếm động [19], phương pháp tìm kiếm lai [5], phương pháp tìm kiếm lai [14], …vv.
Phương pháp lai trong tài liệu [14] thực hiện như sau: phát tràn trước, rồi sau đó thực hiện
di chuyển ngẫu nhiên trên các nút phát tràn tìm được. Tất cả các phương pháp kết hợp
được đề xuất trước đây là có sự kết hợp của cả phương pháp phát tràn và phương pháp di
chuyển ngẫu nhiên nhưng đều được xây dựng theo tiêu chí phạm vi tìm kiếm, tùy theo
phạm vi và cách thức mà có sự kết hợp thỏa mãn.
Đối với mô hình mạng thuần túy do đặc trưng cấu trúc của mạng và bởi vì việc lưu
trữ tài nguyên là ngẫu nhiên, bất kỳ trên các nút trong mạng khi đó các phương pháp tìm
kiếm được sử dụng dựa trên phạm vi chỉ mang tính ước lượng và rất khó để chọn lựa giá
trị chính xác phạm vi là bao nhiêu cho hợp lý. Nói chung việc tìm kiếm các tài nguyên
trong mô hình mạng thuần túy vẫn là tìm kiếm ngẫu nhiên bởi các thông tin tìm kiếm
không được biết trước. Cách thức tìm kiếm có thể là sử dụng phương pháp tìm kiếm mù
đơn thuần hoặc là có sự kết hợp của nhiều phương pháp tìm kiếm mù.
Giả sử trong trường hợp chúng ta phát tràn toàn bộ phạm vi có thể của phát tràn
nhưng chưa có tài nguyên cần tìm, sau đó lại phải mất vài lần di chuyển ngẫu nhiên mới
thấy, nếu như làm ngược lại thì sẽ có hiệu quả thế nào, như vậy đây cũng là một trong
những trường hợp cần xem xét. Việc thực hiện thứ tự ngược lại sẽ có trình tự tìm kiếm là:
thực hiện di chuyển ngẫu nhiên số chặng bằng với lượng phát tràn trên, sau đó thực hiện
phát tràn vài bước tiếp theo thì sẽ không làm tăng tải cho các nút khác và không gây tốn
băng thông chung toàn mạng. Dĩ nhiên giả thiết chung cho các phương pháp tìm kiếm vẫn
là không thể biết vị trí nào có tài nguyên, không có thông tin định tuyến tới các nút khác
trong mạng trừ nút hàng xóm.
Đồng thời trong các phương thức đề xuất trước đây chưa có phương thức nào sử
dụng cho phương pháp di chuyển ngẫu nhiên trước, rồi sau đó sử dụng phương pháp phát
tràn. Vì vậy chúng tôi đề xuất xây dựng phương pháp tìm kiếm lai ghép của mình dựa
trên ý tưởng đó, không chỉ đề xuất phương pháp tìm kiếm chúng tôi còn phân tích, đánh
giá cùng với các phương pháp tìm kiếm khác dựa trên các tiêu chí đánh giá để có thể thấy
được phương pháp tìm kiếm nào cho hiệu quả tốt, phương pháp nào không hiệu quả.
3
Kết quả sau mô phỏng cho thấy phương pháp tìm kiếm lai ghép biến thể thứ ba và
thứ nhất của chúng tôi cũng cho kết quả tốt không kém gì phương pháp phát tràn trên đồ
thị luật hàm mũ với lượng thông báo 55, sinh ra số lượng nút trùng lặp thông báo là thấp
hơn. Còn với lượng thông báo truy vấn N (N là số rất lớn) thì phương pháp lai ghép biến
thể thứ ba và phương pháp lai đề xuất trong [14] và phương pháp lai ghép biến thể thứ tư
cho kết quả tốt, tuy nhiên các phương pháp lại cho kết quả số lượng nút bị trùng lặp thông
báo truy vấn cao.
Trên tô pô phân cụm thì phương pháp di chuyển ngẫu nhiên vẫn là tốt nhất đối với
lượng thông báo truy vấn nhỏ và lớn, phương pháp lai trong tài liệu [14] cũng là phương
pháp tốt, còn các phương pháp đề xuất của chúng tôi cho giá trị tốt hơn phương pháp tràn
nhưng vẫn là phương pháp tồi. Nhưng số nút nhận thông báo truy vấn dư thừa trong
phương pháp của chúng tôi là ít hơn. Ngoài ra chúng tôi còn đánh giá mẫu 2 phương pháp
về mức độ phân bố tải, đánh giá để nhìn nhận tổng quan về kết quả của các phương pháp.
Phần tiếp theo của khóa luận được tổ chức như sau:
Chương 1: Tổng quan về mạng ngang hàng. Trong chương này, chúng tôi giới thiệu
một cách tổng quan các kiến thức liên quan đến mạng ngang hàng như là khái niệm về
điểm nút (peer), khái niệm mạng ngang hàng, các mô hình mạng ngang hàng hiện tại.
Chương 2: Lý thuyết đồ thị và các dạng đồ thị mạng. Nội dung chúng tôi trình bày ở
trong chương này, tóm lược lý thuyết đồ thị như : khái niệm đồ thị, khái niệm bậc của một
đỉnh trong đồ thị, các dạng đồ thị. Và tập trung vào các dạng đồ thị mạng phục vụ cho mô
phỏng của chúng tôi như : đồ thị ngẫu nhiên, đồ thị luật hàm mũ, tô pô phân cụm.
Chương 3: Các phương pháp tìm kiếm đã đề xuất trước đây. Trong chương này,
chúng tôi trình bày các phương pháp tìm kiếm đã được đề xuất: Các phương pháp đơn lẻ :
phương pháp phát tràn, phương pháp di chuyển ngẫu nhiên. Các phương pháp kết hợp của
2 phương pháp đơn lẻ: phương pháp tìm kiếm động, phương pháp lai ghép.
Chương 4: Các phương pháp tìm kiếm lai của chúng tôi. Những đề xuất, hướng giải
quyết trong việc kết hợp 2 phương pháp đơn lẻ theo cách của chúng tôi, theo vấn đề
chúng tôi đặt ra, được trình bày chi tiết trong chương này.
Chương 5: Mô phỏng và đánh giá hiệu năng. Trong chương này, chúng tôi giới thiệu
một vài độ đo để làm cơ sở đánh giá một phương pháp tìm kiếm tốt hay không tốt so với
4
phương pháp khác. Đó là : mức độ bao phủ, số lượng nút nhận truy vấn dư thừa, tỉ lệ
thành công, các truy vấn thành công, và hiệu quả truy vấn.
Kết quả của các mô phỏng cũng được trình bày trong chương này. Và các nhận xét,
đánh giá về giá trị của các phương pháp tìm kiếm đã đạt được.
Chương 6: Kết luận và định hướng. Từ những kết quả thu được, ở chương 6, trong
chương này chúng tôi đi đến kết luận, đánh giá về đề xuất của chúng tôi so với những đề
xuất đã nêu, tìm ra ưu điểm, nhược điểm của phương pháp và từ đó đề xuất hướng phát
triển mới, cũng như công việc dự định tiến hành trong tương lai.
Như vậy trong phần này, chúng tôi giới thiệu tổng quan về khóa luận của chúng tôi,
cũng như trình tự nội dung vấn đề chúng tôi sẽ trình bày.
5
CHƯƠNG 1. TỔNG QUAN VỀ MẠNG NGANG HÀNG
Hiện nay, tên gọi “ mạng ngang hàng ” hay “ mạng đồng đẳng ” và các ứng dụng
của kiểu mạng này như là: Napster, Skype, BitTorrent, FlashGet, Sopcast, ICQ...vv..
không còn xa lạ gì với người dùng Internet, đặc biệt là những người dùng có nhu cầu về
tìm kiếm tài nguyên, chia sẻ tài nguyên như: phần mềm, phim ảnh, âm nhạc, file văn bản.
Mạng máy tính gia đình cũng là mạng ngang hàng khi người dùng cấu hình máy tính theo
nhóm (WorkGroup), cho phép các máy trong nhóm có thể chia sẻ file, máy in và các tài
nguyên, thiết bị khác. Như vậy, sự phổ biến của mạng ngang hàng là rất rộng nhưng hiểu
biết về mạng ngang hàng, cũng như mạng ngang hàng bao gồm những thành phần gì? Thế
nào được gọi là mạng ngang hàng? Cấu trúc ra sao? Hoạt động ra sao? Có bao nhiêu loại
mô hình mạng được gọi là mạng ngang hàng?..vv..thì đa phần người dùng chưa có cái
nhìn tổng quan và chi tiết về chúng. Trong chương này, chúng tôi sẽ trình bày về những
vấn đề đó, không chỉ để hiểu rõ về mạng ngang hàng mà còn có giúp cho việc tìm hiểu
các vấn đề liên quan đến nội dung tiếp theo của chúng tôi.
Đầu tiên, chúng tôi sẽ trình bày về các thành phần trong mạng ngang hàng và khái
niệm mạng ngang hàng. Sau đó, chúng tôi sẽ giới thiệu về các loại mô hình mạng ngang
hàng, trong đó chúng tôi sẽ tập trung trình bày chi tiết mô hình mạng ngang hàng liên
quan đến vấn đề khóa luận của chúng tôi, đó là mạng ngang hàng thuần túy. Một mô hình
mạng ngang hàng đặc biệt.
1.1. Thành phần cấu tạo mạng ngang hàng
Trong các mô hình mạng cấu trúc kiểu client-server thì thông thường, cấu trúc của
mô hình này bao gồm 2 thành phần chính là: client (máy khách) và server (máy chủ). Tuy
nhiên trong mô hình mạng cấu trúc kiểu mạng ngang hàng thì thành phần lại là các điểm
nút .
1.1.1. Khái ni
ệ
m
điểm nút
Điểm nút tên tiếng Anh là “peer”. Một điểm nút là một thành phần trong mạng
ngang hàng. Nếu đánh giá về mặt trực quan thì có thể thấy điểm nút thường được hiểu là
một máy tính, thiết bị di động, máy in, hay thiết bị hỗ trợ cá nhân..vv..Tuy nhiên, không
thể định nghĩa điểm nút là một thiết bị như thế vì sẽ không thể hiện được đúng khái niệm
về điểm nút. Nếu nhìn nhận điểm nút như là một ứng dụng đang chạy trên một máy tính
6
đơn và máy tính này được kết nối vào một mạng như mạng Internet, định nghĩa như thế
này cũng không thể hiện được chức năng và tất cả những thể hiện có thể của điểm nút
được. Như vậy, nếu nhìn nhận phiến diện về điểm nút thì đã làm giảm khả năng của một
điểm nút và chỉ thấy nó giống như một thiết bị có thể đáp ứng các điểm nút khác đang
chạy trong mạng.
Trong tài liệu [3] đã phát biểu đầy đủ về điểm nút như sau:
“Một thực thể nào đó có khả năng thực hiện chức năng có ích nào đó và truyền đạt
các kết quả của chức năng đó tới các thực thể khác trên một mạng, một cách trực tiếp
hoặc gian tiếp, được gọi là một điểm nút”.
Như vậy, từ định nghĩa ta có thể thấy một điểm nút nó là một thành phần thiết bị nào
đó trong mạng, có thể là máy tính cá nhân, có thể là thiết bị hỗ trợ cá nhân, hay thiết bị di
động, router, modem, máy in…vv. Khi các thành phần này tham gia vào mạng thì mỗi
thành phần sẽ chạy các ứng dụng nào đó để thực hiện chức năng của mình như: hoặc chia
sẻ tài nguyên file, chia sẻ tài nguyên không gian lưu trữ, chia sẻ tài nguyên phần cứng,
chia sẻ tiến trình nhàn rỗi, cung cấp nội dung…vv.hoặc hỗ trợ định tuyến hoặc nhận chia
sẻ từ các thiết bị khác trong mạng hoặc tìm kiếm tài nguyên…vv.
Trong một số tài liệu thì khái niệm điểm nút còn được hiểu là nút hoặc nốt .
1.1.2. Cách phân loại peer trong mạng ngang hàng
Theo định nghĩa ở trên “chức năng có ích” là phụ thuộc vào từng loại điểm nút,
công việc mà điểm nút đó đảm nhiệm. Do đó có thể phân làm 3 loại điểm nút khác nhau
như trong tài liệu [3] đã phân chia:
- Điểm nút thông thường : Tên tiếng Anh là “Simple Peer”, là một điểm nút bình
thường trong mạng ngang hàng, nó được thiết kế cho người dùng cuối. Một điểm nút
thông thường sẽ cung cấp dịch vụ cho các điểm nút khác và cũng nhận sự cung cấp từ các
điểm nút khác trong mạng. Tuy nhiên, trong thực tế một điểm nút thông thường sẽ nằm
trong một mạng riêng biệt, hoặc là đằng sau một tường lửa nên các điểm nút khác nằm
phía bên ngoài sẽ khó có thể giao tiếp trực tiếp với điểm nút thông thường nằm đằng sau
tường lửa.
- Điểm nút gặp gỡ: Tên tiếng Anh là “Rendezvous Peer”, cũng là một loại điểm nút,
tuy nhiên nó nằm phía ngoài các mạng riêng biệt, nhiệm vụ của nó là cung cấp các thông
tin để tìm kiếm các điểm nút khác và các tài nguyên của điểm nút khác cho các điểm nút
thông thường gửi yêu cầu tìm kiếm.
7
- Điểm nút định tuyến: Tên tiếng Anh là “Router Peer”, là điểm nút cung cấp các cơ
chế để chuyển thông tin giao tiếp giữa các điểm nút khác với nhau, cho phép các thông tin
này vượt qua các tưởng lửa hoặc các thiết bị chuyển đổi địa chỉ mạng.
Nhóm điểm nút là: một nhóm các điểm nút có cùng một mục đích hay dịch vụ,
thường gọi là Peer Group. Các điểm nút trong một nhóm sẽ chia sẻ thông tin cho các điểm
nút khác trong nhóm và các điểm nút ở ngoài nhóm không thể tiếp cận được.
Phần trình bày trên, đã nêu rõ khái niệm về điểm nút, nhóm điểm nút, cũng như cách
phân loại điểm nút. Ngoài cách phân loại như trong tài liệu [3] thì phân loại điểm nút như
trong các tài liệu khoa học, kỹ thuật khác lại có sự khác biệt, chẳng hạn như trong tài liệu
[2], [12] phân chia thành 2 loại điểm nút là: điểm nút thông thường và siêu điểm nút.
- Điểm nút thông thường : là một điểm nút bình thường, một thành phần trong mạng,
tham gia vào mạng, khi tham gia vào mạng thì các điểm nút loại này chia sẻ tài nguyên
hoặc nhận chia sẻ từ các điểm nút khác trong mạng.
- Siêu điểm nút: Tên tiếng Anh là “Super Peer” hoặc “Super Node”, là một điểm nút
trong mạng, chúng có vai trò quản lý điểm nút trong vùng (quản lý về các peer, thông tin
tài nguyên mà các peer chia sẻ, thông tin định tuyến…vv..), định tuyến cho các điểm nút
trong mạng sang điểm nút ở vùng khác. Nói chung có đầy đủ tính năng của ba loại điểm
nút đã mô tả ở trên, tức là nó không lưu trữ tài nguyên mà chỉ cung cấp, quản lý thông tin
về tài nguyên, quản lý các điểm nút trong vùng của nó, định tuyến cho các điểm nút sang
vùng khác nếu cần thiết và giúp các điểm nút trong vùng trao đổi với các điểm nút ở vùng
khác.
1.2. Mạng ngang hàng
1.2.1. Định nghĩa mạng ngang hàng
Trong tài liệu tham khảo [2], Oram đã định nghĩa về mạng ngang hàng như sau:
“Mạng ngang hàng là 1 lớp ứng dụng tận dụng ưu điểm của lưu trữ các tài nguyên,
các chu trình, nội dung, giá trị hiện diện của con người ở phía rìa của mạng Internet. Bởi
vì việc truy cập tới các tài nguyên phi tập trung này giống như đang hoạt động trong một
môi trường kết nối không ổn định và các địa chỉ IP không thể đoán trước được, các nút
mạng ngang hàng phải hoạt động bên ngoài hệ thống DNS và có quyền tự trị đáng kể
hoặc hoàn toàn độc lập với các máy chủ trung tâm”.
8
Theo định nghĩa này, mạng ngang hàng là một hệ thống phân tán đặc biệt trong tầng
ứng dụng, ở đó mỗi cặp điểm nút có thể giao tiếp với nhau thông qua giao thức định tuyến
trọng các tầng mạng ngang hàng. Mỗi điểm nút giữ 1 đối tượng dữ liệu nào đó có thể là
nhạc, ảnh, tài liệu,..vv... Mỗi điểm nút có thể truy vấn tới đối tượng nó cần từ các điểm
nút khác thông qua kết nối logic trong tầng mạng ngang hàng.
Sau này, Oram và các đồng nghiệp đã đưa ra định nghĩa cơ bản và hoàn chỉnh hơn:
“[a Peer-to-Peer system is] a self-organizing system of equal, autonomous entities
(peers) [which] aims for the shared usage of distributed resources in a networked envi-
ronment avoiding central services.” [12].
Tài nguyên
Server
Client
Client
Request
Response
Client
Client
Hình 1.Mô hình mạng client-server
Trong mô hình mạng client-server như ở Hình 1 bao gồm: máy client và máy server,
có nhiều máy client truy cập tới máy server để tìm kiếm tài nguyên. Nhưng trong mạng
ngang hàng không có khái niệm máy trạm (client) hay máy chủ (server) mà chỉ có khái
niệm các nút (peer) đóng vai trò như cả client và server. Hay còn được gọi là “Servent”
được ghép từ “Server” và “Client”.
9
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Hình 2. Mô hình mạng ngang hàng
Các định nghĩa về mạng ngang hàng ở trên là định nghĩa trừu tượng và tổng quát
cho mạng ngang hàng nói chung. Còn đối với mạng máy tính ngang hàng thì định nghĩa
theo tài liệu[12] như sau:
Một mạng ngang hàng bao gồm các phần tử máy tính:
(1)
(2)
(3)
được kết nối bởi 1 mạng máy tính,
địa chỉ có thể trong 1 phạm vi duy nhất, và
chia sẻ 1 giao thức truyền thông chung.
Tất cả các thành phần máy tính đồng nghĩa với các nút hay các điểm nút, có vai trò
tương đương nhau và có trách nhiệm chia sẻ và được dùng các tài nguyên.
Do đó đối với các mạng máy tính ngang hàng, khi xem xét một điểm nút ta có thể
hiểu đó là máy tính. Tuy nhiên trong phạm vi của khóa luận này, chúng tôi không đề cập
đến vấn đề về các giao thức chia sẻ, giao thức truyền thông giữa các điểm mút, cũng như
cách thức hoạt động của từng điểm nút mà chỉ nêu định nghĩa tổng quát về mạng ngang
hàng máy tính, thông tin chi tiết của vấn đề có thể tham khảo trong tài liệu [2], [3], [12].
10
1.2.2. Phân loại các mô hình mạng ngang hàng
Việc phân loại mạng ngang hàng có nhiều cách phân loại, trong khóa luận này,
chúng tôi phân loại dựa theo phân chia trong tài liệu [12], đó là dựa theo đặc điểm cấu
trúc của mạng ngang hàng.
Cụ thể về cách phân loại mạng ngang hàng có thể tham khảo trong Hình 3 dưới đây.
Trong Hình 3 thì mạng ngang hàng phi cấu trúc được chia làm 3 mô hình mạng ngang
hàng khác. Tuy nhiên trong phạm vi nghiên cứu của khóa luận, chúng tôi tập trung vào
mô hình mạng phi cấu trúc, phi tập trung, hay còn gọi là mô hình mạng ngang hàng thuần
túy. Một mô hình mạng ngang hàng đặc biệt. Để tìm hiểu đầy đủ về các loại mô hình
mạng ngang hàng, có thể tham khảo thêm trong tài liệu [12].
M
ạng ngang hàng
M
ạ
ng ngang hàng
M
ạ
ng ngang hàng có
u trúc
phi c u trúc
ấ
cấ
Thế
h
ệ
m
th
ạ
ứ
ng ngang hàng
nh
Th
ế
h
ệ
m
th hai
ạ
ng ngang hàng
ứ
ấ
t
M
ạ
ng ngang hàng t
trung
ậ
p
M
ạ
ng ngang hàng
M
ạ
ng ngang hàng
lai
thu n túy
ầ
Hình 3. Phân loại mạng ngang hàng.
11
1.2.2.1. Mạng ngang hàng tập trung
Mạng ngang hàng tập trung là một trong những thế hệ mạng ngang hàng đầu tiên,
đặc trưng của mạng này vẫn dựa vào một máy chủ tìm kiếm trung tâm. Tô pô xếp chồng
của một mạng ngang hàng tập trung do đó có thể được miêu tả như là một mạng hình sao.
Trong mô hình mạng này, mỗi điểm nút kết nối tới máy chủ tìm kiếm trung tâm để
có thể gửi truy vấn tìm kiếm tài nguyên, sau khi gửi yêu cầu tới máy chủ tìm kiếm trung
tâm, máy chủ tìm kiếm trung tâm trả về thông tin phản hồi tương ứng với từ khóa được
quy định trong truy vấn. Tức là tại máy chủ tìm kiếm trung tâm, từ khóa trong thông báo
truy vấn sẽ được ánh xạ với bảng danh sách tài nguyên mà máy chủ có. Nếu máy chủ tìm
kiếm trung tâm có thông tin mà điểm nút đó yêu cầu thì nó sẽ trả về thông tin vị trí truy
cập tới các điểm nút chia sẻ (đa phần là trả về các địa chỉ IP và các cổng). Sau khi điểm
nút đã nhận được thông tin từ máy chủ tìm kiếm trung tâm thì lúc này quá trình trao đổi
thông tin cần tìm được thực hiện theo đúng cơ chế của mạng ngang hàng, tức là trao đổi
trực tiếp giữa các nút mạng với nhau mà không cần qua máy chủ tìm kiếm trung tâm.
Như vậy, trong mô hình này bao gồm :
ꢀ Một máy chủ tìm kiếm trung tâm, máy chủ này chứa danh sách thông tin về các
điểm nút trong mạng do nó quản lý (bao gồm : địa chỉ IP, cổng, băng thông kết
nối..vv.) và danh sách thông tin về các tài nguyên (tên tài nguyên, dung lượng tài
nguyên, kiểu tài nguyên…vv.) mà mỗi điểm nút trong mạng chia sẻ.
ꢀ Các điểm nút, các điểm nút này lưu trữ các tài nguyên cần chia sẻ với các điểm nút
khác trong mạng.
Cơ chế hoạt động của mô hình này bao gồm 2 hoạt động : hoạt động giữa các điểm
nút với máy chủ tìm kiếm trung tâm, hoạt động giữa các điểm nút với nhau.
• Hoạt động giữa điểm nút ↔ máy chủ tìm kiếm trung tâm:
- Tìm kiếm tài nguyên
- Đăng nhập vào mạng xếp chồng
- Để đăng ký
- Cập nhật thông tin các bảng định tuyến
- Cập nhật thông tin tài nguyên được chia sẻ
12
• Hoạt động giữa điểm nút ↔ điểm nút:
- Trao đổi dữ liệu.
Ứng dụng điển hình cho mô hình mạng kiểu này là: Napster. Ứng dụng Napster hỗ
trợ việc chia sẻ file và nhạc (miễn phí) giữa những người dùng mạng Internet và được
xem như là điểm bắt đầu của mạng ngang hàng. Do các vấn đề luật pháp về bản quyền và
sở hữu trí tuệ đối với các tác phẩm âm nhạc nên Napster đã thay đổi dịch vụ của nó thành
một dịch vụ chia sẻ file hợp pháp trên Internet.
Với Napster, việc tìm kiếm một file có thể bị thất bại nếu như bảng tìm kiếm tại máy
chủ tìm kiếm trung tâm không có thông tin cần tìm kiếm hay thông tin cần tìm kiếm là
không có giá trị được chia sẻ. Trong mô hình mạng kiểu này, chỉ có tiến trình tìm kiếm
file đã lưu trữ trong một mạng và vấn đề lưu trữ là phân tán.
Để biết thông tin về tài nguyên các điểm nút phải gửi truy vấn tìm kiếm tới máy chủ,
nếu như số lượng lớn các điểm nút trong mạng đồng thời gửi truy vấn tìm kiếm tới máy
chủ thì khi đó máy chủ đóng vai trò là một nút cổ chai và điểm duy nhất chịu lỗi. Để tránh
tình trạng đó thì sức mạnh tính toán và khả năng lưu trữ của máy chủ tìm kiếm tập trung
phải tăng lên tương xứng với số lượng điểm nút trong mạng. Vì vấn đề là “tương xứng”
nên khả năng mở rộng mạng bị hạn chế.
Ngoài ra, còn có các ứng dụng khác như là: BitTorrent, WinMX, Audiogalaxy…vv.
ꢁ Ưu điểm :
- Tìm kiếm nhanh và hiệu quả.
- Quản lý tập trung/ quản trị tin cậy.
- Dễ xây dựng.
ꢁ Nhược điểm:
- Dễ dàng bị tấn công.
- Nút cổ chai.
- Khả năng tắc nghẽn.
- Khó mở rộng.
- Cần quản trị.
13
1.2.2.2. Mạng ngang hàng thuần túy
Mạng ngang hàng thuần túy là một kiểu mạng của thế hệ mạng ngang hàng thứ nhất,
đặc trưng nổi bật của mô hình này là không có máy chủ tìm kiếm tập trung như trong mô
hình mạng ngang hàng tập trung, do đó nó không gặp phải vấn đề nút cổ chai. Các điểm
nút giao tiếp trực tiếp với điểm nút khác trong mạng mà không cần các máy chủ trung tâm
riêng biệt nào, các điểm nút thiết lập kết nối với nhau ngẫu nhiên.
Trong mô hình mạng ngang hàng này, việc tìm kiếm file sử dụng phương pháp phát
tràn (phương pháp này có sử dụng giá trị giới hạn phạm vi tìm kiếm là TTL và sử dụng
GUID để trao đổi). Khi muốn tìm kiếm một file nào đó thì yêu cầu tìm kiếm được gửi từ
điểm nút nguồn tới tất cả các điểm nút mạng là hàng xóm của nó. Đây vừa là đặc trưng
hấp dẫn của mạng ngang hàng thuần túy và cũng là một điểm yếu của các mạng ngang
hàng này bởi vì phương pháp tìm kiếm làm tăng đáng kể lưu lượng trong mạng và gây ra
dư thừa hay trùng lặp thông báo truy vấn. Nếu tài nguyên được tìm thấy là tồn tại thì khi
đó điểm nút có tài nguyên chia sẻ sẽ trao đổi với điểm nút yêu cầu dựa vào GUID của
điểm nút yêu cầu.
Vì đặc trưng của mô hình mạng này là không có máy chủ tìm kiếm trung tâm nên
việc một điểm nút mới gia nhập vào một mạng sẽ thế nào, thực hiện tìm kiếm ra sao là
vấn đề cần được làm rõ. Dựa vào ứng dụng phần mềm điển hình cho mô hình mạng này là
phần mềm Gnutella 0.4, chúng tôi sẽ mô tả sơ lược cách thức một điểm nút tham gia vào
mạng và cách thức thực hiện tìm kiếm.
ꢁ Điểm nút A tham gia vào mạng Gnutella (Hình 4):
(1) Điểm nút A kết nối tới GnuCache (GnuCache được sử dụng để cache các host
Gnutella và được tích hợp bên trong phần mềm Gnut cho unix) để lấy danh sách các
điểm nút có giá trị và đã được kết nối trong mạng.
(2) GnuCache gửi trả danh sách mà mình có cho điểm nút A.
(3) Điểm nút A sau khi nhận danh sách, trong danh sách của nó có duy nhất điểm nút
B, nó gửi thông báo GNUTELLA CONNECT (thông báo dùng để kết nối tới các điểm
nút đã tồn tại trong mạng.) tới điểm nút B.
(4) Nếu điểm nút B chấp nhận thông báo của điểm nút A thì nó sẽ gửi thông báo
GNUTELLA OK, và hỗ trợ điểm nút A tham gia vào mạng. Bây giờ điểm nút A đã là
14
một phần của mạng Gnutella và đã được kết nối tới một điểm nút Gnutella khác là
điểm nút B.
Đ
nút D
iểm
Đ
nút E
iểm
(3)
(2)
(2)
GnuCahe
(3)
Đ
iểm
nút C
(2)
Đ
iểm
nút X
(1)
(2)
(1)
(3)
Đ
iểm
nút A
Đ
iểm
Đ
iểm
nút B
nút Y
(4)
(1)
Hình 4.Mô tả một nút tham gia vào mạng Gnutella và tìm kiếm file.
ꢁ Điểm nút A tìm kiếm tài nguyên (Hình 4):
Để biểu diễn cách thức tìm kiếm được sử dụng trong mạng Gnutella,các ký hiệu (1),
(2),(3) ở bên phải điểm nút B trên Hình 4, thể hiện chặng thứ i, còn mũi tên biểu thị các
hàng xóm có thể lan tỏa được của điểm nút tại chặng đó.
- Điểm nút A sau khi tham gia vào mạng, khi nó cần file nào đó nhưng nó lại không có
file đó, nó sẽ tiến hành tìm kiếm file đó trên mạng. Vì điểm nút A lại không có thông
tin gì ngoài thông tin ai là hàng xóm của nó nên nó gửi thông báo truy vấn (điểm nút
A trong trường hợp này chỉ gửi 1 thông báo vì nó chỉ có một hàng xóm) tới hàng xóm
của nó là điểm nút B để hỏi B có tài nguyên nó cần hay không.
- Điểm nút B sau khi nhận được thông báo yêu cầu của điểm nút A, đầu tiên nó sẽ kiểm
tra thông báo có phải là một thông báo cũ hay không. Nếu là một thông báo mới thì nó
sẽ kiểm tra thông tin mà điểm nút A yêu cầu bằng cách ánh xạ từ khóa yêu cầu trong
thông báo truy vấn tới cơ sở dữ liệu của nó. Nếu nó có dữ liệu mà điểm nút A cần thì
nó sẽ gửi lại thông báo queryHit cho điểm nút A. Quá trình truy vấn dừng lại, và thực
15
hiện trao đổi dữ liệu giữa điểm nút A và điểm nút B, việc trao đổi là trực tiếp giữa 2
điểm nút. Nếu điểm nút B không có tài liệu mà điểm nút A cần thì nó sẽ giảm giá trị
TTL trong thông báo truy vấn đi 1 và chuyển tiếp thông báo truy vấn tới các hàng xóm
của nó là X, Y.
- Điểm nút X và điểm nút Y lúc này thực hiện quá trình tương tự như điểm nút B. Tại
điểm nút E nhận được nhiều thông báo truy vấn do từ điểm nút X và điểm nút Y gửi
đến.
- Điểm nút C và E lại chuyển tiếp tới điểm nút D, và tại điểm nút D có tài liệu mà điểm
nút A cần. Giả sử điểm nút C gửi thông báo đầu tiên tới điểm nút D khi đó thông báo
do điểm nút E gửi thông báo truy vấn tới điểm nút D bị loại bỏ (đây là cách tối ưu cho
tìm kiếm và hạn chế truy vấn lặp tại các điểm nút có tài nguyên). Điểm nút D gửi cho
điểm nút A thông báo queryHit theo đường từ D-C-X-B-A. Nhận được queryHit của
D, bây giờ điểm nút A đã có địa chỉ, số cổng mà D cung cấp, khi đó việc trao đổi file
diễn ra trực tiếp giữa D và A, không theo tuyến đường đã tìm thấy D.
Ví dụ về việc tham gia vào mạng của một điểm nút, cũng như cách thức tìm kiếm của
một điểm nút trong mạng Gnutlla có thể tham khảo thêm thông tin trong các tài liệu
[3], [12], [13].
Ngoài ra ứng dụng điển hình còn có các ứng dụng khác như là: FreeNet, Gnu-
Net…vv.
ꢁ Ưu điểm:
- Không có điểm duy nhất chịu lỗi → khó bị tấn công.
- Có thể thích nghi với mạng vật lý.
- Cho phép nặc danh.
- Dễ xây dựng.
- Các điểm nút tham gia và rời khỏi mạng một cách tùy mà không ảnh hưởng đến cấu
trúc của toàn mạng.
ꢁ Nhược điểm:
- Tốn tài nguyên băng thông.
16
- Tìm kiếm phức tạp
- Các điểm nút có khả năng khác nhau (sức mạnh xử lý của CPU, băng thông, không
gian lưu trữ…vv.) đều có thể phải chịu tải như nhau.
Như vậy, qua ví dụ với ứng dụng Gnutella chúng tôi đã trình bày về cách thức một
điểm nút mới tham gia vào mạng ngang hàng thuần túy như thế nào và cách thức một
điểm nút tìm kiếm tài liệu trong mạng đó. Đồng thời cũng nêu ra những ưu điểm, nhược
điểm của mạng này khi đặc trưng của nó là không có máy chủ tìm kiếm trung tâm.
1.2.2.3. Mạng ngang hàng lai
Mạng ngang hàng lai là mạng ngang hàng thuộc thế hệ thứ 2. Chúng được phát triển
để khắc phục nhược điểm của các mô hình mạng ngang hàng trước đó. Mô hình mạng
ngang hàng lai bao gồm các: các siêu điểm nút, các điểm nút thông thường (hay còn gọi là
điểm nút client). Trong đó các siêu điểm nút tạo thành một mạng không có cấu trúc, và
mỗi siêu điểm nút kết nối đến nhiều điểm nút thông thường, mỗi siêu điểm nút quản lý
vùng của nó, vai trò của siêu điểm nút giống như một máy chủ trong mô hình mạng ngang
hàng tập trung.
Ứng dụng điển hình cho mô hình mạng này là: Gnutella 0.6, Kazaa/FastTrack.
Ngoài ra còn có: Edonkey, Emule, OpenNap, JXTA, Skype…vv.
ꢁ Ưu điểm:
- Không có điểm duy nhất chịu lỗi vì có nhiều siêu điểm nút.
- Cho phép nặc danh.
- Phù hợp với các nhóm lợi ích đặc biệt.
- Khả năng mở rộng quy mô tốt.
- Hiệu quả thỏa mãn các truy vấn.
- Hạn chế phát tràn các truy vấn và tránh được hiện tượng nút cổ chai.
ꢁ Nhược điểm:
- Phân chịu tải không cân bằng: các siêu điểm nút chịu tải cao hơn.
17
1.3. Mạng xếp chồng
Là mạng máy tính được xây dựng trên nền của một mạng khác. Các nút trong mạng
xếp chồng được xem là nối với nhau bằng liên kết ảo (liên kết logic), mỗi liên kết ảo có
thể bao gồm nhiều liên kết vất lý của mạng nền.
Có rất nhiều mạng ngang hàng được gọi là mạng xếp chồng vì nó được xây dựng và
hoạt động trên nền của mạng Internet. Ví dụ như: Gnutella, FreeNet…vv.
18
CHƯƠNG 2. LÝ THUYẾT ĐỒ THỊ VÀ CÁC DẠNG ĐỒ
THỊ MẠNG
Đồ thị là một mô hình toán học được sử dụng để biểu diễn một tập đối tượng có
quan hệ với nhau theo một cách nào đó. Chẳng hạn trong rất nhiều vấn đề, lĩnh vực khác
nhau như công nghệ điện, hoá học, chính trị, kinh tế,..vv, cũng có thể biểu diễn bởi đồ thị.
Trong lĩnh vực tin học, đồ thị được sử dụng để mô hình hoá một mạng truyền thông, kiến
trúc của các máy tính song song,...vv. Vì khóa luận của chúng tôi có liên quan đến đồ thị
nên trong chương này chúng tôi sẽ trình bày những nội dung của Lý thuyết đồ thị phù hợp
với vấn đề của chúng tôi. Tiếp đó chúng tôi sẽ giới thiệu các dạng đồ thị mạng truyền
thông được sử dụng cho mô phỏng trong khóa luận của chúng tôi. Tìm hiểu về các dạng
đồ thị này sẽ giúp cho việc tìm hiểu hoạt động của các phương pháp tìm kiếm mà chúng
tôi trình bày ở phần nội dung tiếp theo của bài báo, cũng như phục vụ cho mô phỏng của
chúng tôi.
2.1. Khái niệm đồ thị
2.1.1. Đồ th có hướng
ị
Đồ thị có hướng là đồ thị bao gồm tập các đỉnh V={1,2,..,n}, và tập các cung E. Mỗi
cung là 1 cặp có thứ tự của các đỉnh (u,v) tương ứng với một liên kết có hướng từ u tới v.
Bậc ra của một đỉnh u là số lượng các các cung (liên kết) xuất phát từ u, và bậc vào
là số lượng các cung tới u.
Một đường đi từ u tới v là một dãy các cung (u,u1), (u1,u2), (u2,u3), .., (uk,v). Có
đường đi từ u tới v không bao hàm nghĩa đây là đường đi từ v tới u.
Đồ thị có hướng được gọi là liên thông mạnh nếu với mọi cặp đỉnh u và v khác nhau
trong tập nút bao giờ cũng có một đường đi từ u tới v. Đồ thị có hướng có nhiều hơn một
thành phần liên thông mạnh.
2.1.2. Đồ th vô hướng
ị
Một đồ thị vô hướng là một đồ thị bao gồm 1 tập các đỉnh và tập các cạnh, mỗi một
cạnh trong đó là một cặp đỉnh không có thứ tự {u,v}.
Bậc của một đỉnh u là số lượng các cạnh liên quan tới u (hàng xóm của u).
19
Đường đi trong đồ thị vô hướng khác với đồ thị có hướng là đường đi từ u tới v thì
có hàm ý là có đường đi từ v đến u.
Một thành phần liên thông của đồ thị vô hướng là một tập các đỉnh sao cho mọi cặp
đỉnh u và v bất kỳ bao giờ cũng có đường đi từ u tới v. Thành phần liên thông của đồ thị
vô hướng thu được từ thành phần liên thông của đồ thị có hướng sau khi loại bỏ hướng
của các cung.
2.1.3. Các khái niệm khác
ꢀ Đồ thị đơn là đồ thị không có khuyên và bất kỳ 2 đỉnh phân biệt nào cũng được nối
với nhau bởi không quá một cạnh.
ꢀ Đồ thị đa là đồ thị không có khuyên và tồn tại một cặp đỉnh phân biệt được nối với
nhau bởi nhiều hơn một cạnh.
ꢀ Đồ thị đầy đủ, ký hiệu Kn là một đơn đồ thị bao gồm n đỉnh mà mọi đỉnh đều có bậc
n-1.
Để tìm hiểu rõ hơn về lý thuyết đồ thị, bạn đọc có thể đọc trong tài liệu [1], [8], [18].
Trong phần tiếp theo chúng tôi sẽ trình bày ứng dụng đồ thị trong mạng truyền thông, cụ
thể là mô hình hóa các mô hình mạng ngang hàng thành các dạng đồ thị tương ứng.
2.2. Các dạng đồ thị trong mạng ngang hàng
Khi xem xét mô hình hóa một mạng ngang hàng bởi một đồ thị thì khi đó khái niệm
tập V={1,2,3,..,n} của đồ thị G=(V,E) gọi là tập n điểm nút hay nút trong mạng, mỗi điểm
nút được cung cấp một định danh ID và địa chỉ mạng . Và E là tập các kết nối giữa các
điểm nút hay tập các cạnh giữa các đỉnh trong tập V. Với u, v V; {u,v} E biểu thị
rằng các điểm nút u và v biết địa chỉ IP của nhau, giữa chúng tồn tại kết nối, u và v còn
được gọi là hàng xóm của nhau, u là nút nguồn, v là nút đích. Tất cả các cạnh là liên kết
có hướng với nhau.
Trong mô hình hóa mạng dưới dạng đồ thị có thể là có 1 hay 2 hướng liên kết, còn
trong mô hình vật lý thực, thì chỉ có 1 liên kết vật lý giữa các peer với nhau hoặc 1 liên
kết trong mô hình hóa lại có nhiều liên kết vật lý qua nhiều máy trung gian ở tầng mạng.
Vì vậy, đồ thị G đôi khi còn được gọi là “mạng xếp chồng” của một hệ thống mạng ngang
hàng.
20
Có nhiều dạng đồ thị thỏa mãn mô hình mạng ngang hàng thuần túy này như là : đồ
thị ngẫu nhiên, đồ thị luật hàm mũ, tô pô phân cụm. Đây cũng là những dạng đồ thị chung
cho mạng ngang hàng. Vì vậy chúng tôi sẽ mô phỏng những phương pháp tìm kiếm trên
những dạng đồ thị này để đánh giá xem phương pháp nào tốt, phương pháp nào tồi.
2.2.1. Đồ th ngẫu nhiên
ị
Một đồ thị ngẫu nhiên là một đồ thị được sinh ra bởi nhiều thủ tục ngẫu nhiên. Có
nhiều cách để định nghĩa các đồ thị ngẫu nhiên. Cách đơn giản nhất, được biểu thị bằng
Gn,m , trong đó n là số đỉnh của đồ thị, các đỉnh được lựa chọn ngẫu nhiên để xây dựng đồ
thị, và m là số cạnh có thể của đồ thị, với 0 ≤ m ≤ ( ꢁꢀ ). Định nghĩa này là định nghĩa đồ
thị theo mô hình của Erdo˝s and Renyi, chi tiết thông tin tham khảo trong các tài liệu [10],
[12], [18].
Một biểu diễn khác về đồ thị ngẫu nhiên được đưa ra trong tài liệu [12], [18] là Gn,p
trong đó 0 ≤ p ≤ 1, các đỉnh là giống nhau nhưng lựa chọn cạnh có thể với xác suất p, độc
lập với tất cả các cạnh khác, đây là định nghĩa của mô hình Gilbert. Gọi z là bậc trung
bình của 1 đỉnh thì:
z = ꢁ(ꢁꢂꢃ)ꢄ = (n-1)p ≈ np
(1)
ꢁ
Độ xấp xỉ càng tốt khi n càng lớn.
Như vậy, đồ thị ngẫu nhiên được xây dựng theo cách thức hoặc giá trị ngẫu nhiên tại
mỗi bước xây dựng đồ thị. Dạng đồ thị này làm cơ sở cho xây dựng các dạng đồ thị khác,
và sử dụng trong mô phỏng.
2.2.2. Đồ th luật hàm mũ
ị
Đồ thị luật hàm mũ có tên tiếng Anh là “power-law” hay “scale-free networks”. Đồ
thị này được xây dựng bởi 3 anh em: Michael, Petros và Christos Faloutsos, thông tin về
lịch sử ra đời của đồ thị có thể tham khảo thêm trong tài liệu [12].
Đồ thị luật hàm mũ là đồ thị trong đó tất cả các trang web (web tĩnh) đã thăm được
biểu diễn như là các nút, và 2 trang được kết nối bởi 1 cạnh (i,j) có hướng nếu trang i có 1
liên kết điểm tới trang j. Trong đồ thị, số lượng các nút cùng với bậc quy định đã được
tính toán bằng việc phân chia bậc bởi số lượng các nút trong đồ thị, xác suất P (k) để vẽ 1
21
nút ngẫu nhiên với bậc k đã được tính toán là như nhau. Xác suất P (k) là tỉ lệ với hàm mũ
của k với 1 hằng số γ.
P(k) ∝ k –γ
(2)
Trong đó γ là hằng số không phụ thuộc vào kích thước của mạng, và trong mô
phỏng của chúng tôi thì γ =2.1 cho các bậc vào, γ = 2.7 cho các bậc ra, để hiểu rõ hơn có
thể tham khảo theo tài liệu [11], [14], [19].
Có nhiều mô hình cho đồ thị web, nhưng trong chương trình mô phỏng của chúng
tôi, chúng tôi lựa chọn mô hình “Protean Model”. Mô hình này yêu cầu tính toán một
tham số tự nhiên thêm vào của một đỉnh, đó là age và dự đoán nó sẽ ảnh hưởng thế nào
đến bậc của một đỉnh. Với đồ thị G có tập n đỉnh và tại bước nào đó chọn ngẫu nhiên một
trong những đỉnh v của tập đỉnh để thay đổi mới (renewed ). Chính xác hơn, xóa bỏ từ đồ
thị G tất cả các cạnh phụ thuộc vào đỉnh v, việc này tương ứng với việc xóa bỏ một nút
ngẫu nhiên từ mạng. Sau đó tạo ra d cạnh mới từ đỉnh v với các đỉnh đã tồn tại, các đỉnh
này được lựa chọn ngẫu nhiên với các xác suất có trọng số (các đỉnh ‘cũ’ có xác suất cao
hơn để chọn lựa ). Lưu ý rằng đỉnh v có thể được coi như là một nút mới, nút mà thiết lập
kết nối với một vài nút trong mạng. Khi tất cả các đỉnh là thay mới tối thiểu 1 lần, đồ thị
ngẫu nhiên là một đồ thị protean P n(d,η), thông tin tham khảo thêm trong tài liệu [11],
[14], [19].
Trong tài liệu [11] của tác giả và đồng nghiệp đưa ra rằng các bậc của P n(d,η) là
được phân phối phù hợp với một luật hàm mũ. Chính xác hơn, số lượng các đỉnh bậc k
giảm mạnh k-1-1/η
.
Trong mô phỏng chúng tôi thực hiện kiểm tra với bậc trung bình là 5.
2.2.3. Tô pô phân c
ụm
Một đồ thị G=(V,E) được gọi là một tô pô phân cụm (cluster topo) nếu mọi thành
phần liên thông của G là một đồ thị đầy đủ. Đồ thị G cũng được gọi là một p-phân cụm
(p-cluster) nếu nó là 1 tô pô phân cụm với p thành phần liên thông hoặc tương đương nếu
nó là phép toán hợp các đỉnh rời khỏi mạng của p phân cụm, tham khảo thêm trong [15].
22
Trong chương trình mô phỏng, với dạng đồ thị này sử dụng 3 mô hình phân cụm đó
- Kl để phân kích cỡ cụm.
là :
- Đồ thị ngẫu nhiên Gl,1/2
- Đồ thị ngẫu nhiên Gl,1/5
.
.
Kích thước của các phân cụm ở trong mô hình này là l=100.
Như vậy, trong chương này chúng tôi đã trình bày khái niệm cơ bản về lý thuyết đồ
thị và các dạng đồ thị mạng được sử dụng chung cho mạng ngang hàng cũng như cho
mạng ngang hàng thuần túy.
23
Tải về để xem bản đầy đủ
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Tìm kiếm ngẫu nhiên trên các mạng ngang hàng phi cấu trúc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
khoa_luan_tim_kiem_ngau_nhien_tren_cac_mang_ngang_hang_phi_c.pdf