Tải bản đầy đủ (.pdf) (96 trang)

Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.14 MB, 96 trang )

BỘ GIÁO DỤC ĐÀO TẠO

Cộng hoà xã hội chủ nghĩa Việt Nam

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Độc lập – Tự do – Hạnh phúc

HÀ NỘI

LỜI CAM ĐOAN

Luận văn này do tôi nghiên cứu và thực hiện dưới sự hướng dẫn của Thầy
giáo TS. Nguyễn Khanh Văn - Bộ môn công nghệ phần mềm - Viện công nghệ
thông tin và Truyền thông - Đại học bách khoa Hà Nội.
Để hoàn thành bản luận văn này, ngoài các tài liệu tham khảo đã liệt kê, tôi
cam đoan không sao chép toàn văn các công trình hoặc thiết kế tốt nghiệp của người
khác.

Hà Nội, ngày 25 tháng 02 năm 2012

Lê Văn Hòa

Trang 1


LỜI CẢM ƠN

Trước hết tôi vô cùng biết ơn sâu sắc đến Thầy giáo hướng dẫn TS. Nguyễn
Khanh Văn - người đã trực tiếp dành nhiều thời gian tận tình hướng dẫn cho tôi
những định hướng khoa học sâu sắc giúp tôi hoàn thành bản luận văn này.


Tôi xin chân thành cảm ơn Ban lãnh đạo Công ty viễn thông viettel, nơi tôi
đang công tác đã tạo nhiều điều kiện động viên khích lệ để tôi có thể hoàn thành
bản luận văn này.
Sau cùng tôi xin bày tỏ lòng biết ơn đến người thân cùng bạn bè đồng
nghiệp, những người luôn cổ vũ động viên tôi hoàn thiện bản luận văn này.

Hà Nội, ngày 25 tháng 02 năm 2012

Lê Văn Hòa

Trang 2


MỤC LỤC

LỜI CAM ĐOAN .................................................................................................. 1
LỜI CẢM ƠN........................................................................................................ 2
MỤC LỤC.............................................................................................................. 3
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT........................................ 6
DANH MỤC CÁC BẢNG..................................................................................... 6
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ................................................................ 7
MỞ ĐẦU ................................................................................................................ 9
1. Lý do chọn đề tài ........................................................................................... 9
2. Lịch sử nghiên cứu .......................................................................................10
3. Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu .........12
4. Tóm tắt các luận điểm cơ bản và đóng góp mới của tác giả.......................12
5. Phương pháp nghiên cứu.............................................................................14
CHƯƠNG I: TỔNG QUAN................................................................................15
1.1. Lý thuyết chung về mạng P2P ..................................................................15
1.1.1. Mạng ngang hàng P2P là gì?................................................................ 15

1.1.2. Phân loại các mô hình mạng ngang hàng P2P ...................................... 17
1.1.2.1. Mạng ngang hàng P2P không cấu trúc........................................... 18
1.1.2.2. Mạng ngang hàng có cấu trúc........................................................ 22
1.1.3. Phân loại các lĩnh vực ứng dụng trên mạng ngang hàng....................... 23
1.1.3.1. Giao tiếp ....................................................................................... 23
1.1.3.2. Chia sẻ file .................................................................................... 24
1.1.3.3. Băng thông.................................................................................... 25
1.1.3.4. Không gian lưu trữ ........................................................................ 26
1.1.3.5. Các chu trình xử lý........................................................................ 27
1.1.4. Phần mềm ứng dụng mạng ngang hàng P2P ........................................ 27
1.2. Lý thuyết chung về Bảng băm phân tán (DHT) ......................................28
Trang 3


1.2.1. Bảng băm ............................................................................................ 28
1.2.2. Bảng băm phân tán DHT là gì?............................................................ 28
1.2.3. Một số đặc điểm chính của DHT ......................................................... 33
1.2.3.1. Không gian địa chỉ ........................................................................ 33
1.2.3.2. Quản lý dữ liệu.............................................................................. 34
1.2.3.3. Cơ chế quản lý .............................................................................. 34
1.2.4. Các giao thức và cài đặt DHT .............................................................. 35
1.2.4.1. Chord ............................................................................................ 36
1.2.4.2. Tapestry ........................................................................................ 42
1.3. Nền tảng ứng dụng p2p trong môi trường di động..................................46
1.3.1. Kiến trúc Mobile P2P .......................................................................... 47
1.3.2. Đánh giá khả năng các thiết bị di động ................................................ 50
1.3.3. Các giao thức P2P trên di động............................................................ 52
CHƯƠNG II: BAMBOODHT VÀ OPENDHT ..................................................54
2.1. Bamboo DHT.............................................................................................54
2.1.1. Giới thiệu chung về Bamboo ............................................................... 54

2.1.2. Quá trình Lookup ................................................................................ 55
2.1.4. Cơ chế quản lý..................................................................................... 58
2.1.5. Ưu điểm của BambooDHT .................................................................. 61
2.2. OpenDHT ..................................................................................................62
2.2.1. Tổng quan về Thiết kế ......................................................................... 65
2.2.2. Các giao diện....................................................................................... 67
2.2.3. Phân bổ lưu trữ .................................................................................... 74
2.2.4. Đánh giá .............................................................................................. 75
CHƯƠNG III: XÂY DỰNG ỨNG DỤNG ..........................................................81
3.1. Ứng dụng chia sẻ file .................................................................................81
3.1.1. Chức năng của chương trình ................................................................ 81
3.1.2. Thiết kế UML...................................................................................... 82
3.1.3. Thiết kế hệ thống ................................................................................. 84
Trang 4


3.1.4. Cài đặt chương trình ............................................................................ 86
3.2. Ứng dụng chat conference ........................................................................88
3.2.1. Thiết kế ............................................................................................... 89
3.2.2. Cài đặt chương trình ............................................................................ 91
KẾT LUẬN...........................................................................................................93
TÀI LIỆU THAM KHẢO....................................................................................95

Trang 5


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

Tiếng Anh


Tiếng Việt

Peer-to-peer

Mạng ngang hàng

Node

Một thiết bị nối mạng (một peer)

item

Một đơn vị dữ liệu

Structured

Có cấu trúc

Overlay

Mạng được xây dựng trên các mạng khác

Hash table

Bảng băm

Distributed hash table Bảng băm phân tán
Join

Gia nhập (mạng ngang hàng)


Leave

Rời khỏi (mạng ngang hàng)

Failure

Lỗi

Churn rate

Số lượng peer rời khỏi/gia nhập mạng trong một khoảng
thời gian.

put

Lưu trữ dữ liệu vào bảng băm

get

Truy cập dữ liệu từ bảng băm

DANH MỤC CÁC BẢNG

Bảng 1: Giao diện put/get, H(x) là hàm SHA-1 của x ............................................ 70
Bảng 2: Giao diện lookup được hỗ trợ bởi thư viện ReDiR.................................... 72
Bảng 3: Thời gian đứng trong hàng đợi khi thực hiện put của các client. ............... 77

Trang 6



DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1.1: Mô hình Client/Server và mô hình P2P .................................................. 16
Hình 1.2: Mô hình overlay network ....................................................................... 17
Hình 1.3: Sơ đồ phân loại các mô hình mạng ngang hàng P2P............................... 18
Hình 1.4: Mạng ngang hàng tập trung thế hệ thứ nhất (Napster) ........................... 20
Hình 1.5: Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet) ............................. 21
Hình 1.6: Mạng ngang hàng lai............................................................................. 22
Hình 1.7: Một ví dụ bảng băm ............................................................................... 29
Hình 1.8: Ví dụ bảng băm phân tán ....................................................................... 30
Hình 1.9: Ví dụ về một DHT để ánh xạ filenames các URL, mà đại diện hiện tại vị
trí của files............................................................................................................. 31
Hình 1.10: Kiến trúc của một ứng dụng trên DHT ................................................. 32
Hình 1.11: Ví dụ không gian địa chỉ của DHT....................................................... 33
Hình 1.12: Lưu trữ dữ liệu thông qua địa chỉ IP..................................................... 34
Hình 1.13: Một không gian định danh Chord 6-bit. Các dòng chấm chỉ ra các key
của các node. Các dòng đen diễn tả các finger của node N8................................... 37
Hình 1.14: Quá trình một node join vào mạng ....................................................... 39
Hình 1.15 (a): Bảng finger và vị trí của key sau khi node 6 join............................. 40
Hình 1.15 (b): Bảng finger và vị trí của key sau khi node 3 leave. ......................... 41
Hình 1.16: Minh họa cách chọn bảng định tuyến của một node Tapestry............... 43
Hình 1.17: Đường đi của thông điệp từ node 5230 tới node 42AD......................... 44
Hình 1.18: Ví dụ về Tapestry node publish item .................................................... 45
Hình 1.20: Ví dụ về Tapestry node tìm kiếm item ................................................. 46
Hình 1.21: Kiến trúc mobile peer to peer ............................................................... 48
Hình 1.22: Kiến trúc Pure P2P và Hybrid P2P ....................................................... 48
Hình 1.23: Kiến trúc mobile proxy ........................................................................ 51
Hình 1.24: Giao thức tổng quan............................................................................. 52
Hình 2.1: Các node hàng xóm của Bamboo ........................................................... 56

Trang 7


Hình 2.2: Việc lookup trong Bamboo .................................................................... 57
Hình 2.3: Ví dụ cơ chế quản lý mạng bamboo ....................................................... 59
Hình 2.4: Kiến trúc của OpenDHT ........................................................................ 63
Hình 2.5: Một ví dụ cây ReDiR với nhân tố nhánh b=2 (mỗi cây có 2 cây con)..... 73
Hình 2.6: Biểu đồ phân bổ công bằng khi thực hiện test ........................................ 79
Hình 3.1: Biểu đồ Use Case................................................................................... 82
Hình 3.2: Biểu đồ Activity ứng với chức năng Upload .......................................... 83
Hình 3.3: Biểu đồ Activity ứng với chức năng Search, download và remove......... 83
Hình 3.4: Kiến trúc hệ thống ................................................................................. 84
Hình 3.5 : Cấu trúc lưu trữ file trên OpenDHT ...................................................... 85
Hình 3.6: Giao diện chọn file để upload lên OpenDHT.......................................... 86
Hình 3.7: Giao diện download file từ OpenDHT ................................................... 87
Hình 3.8: Giao diện Play file video trước khi upload lên OpenDHT ...................... 88
Hình 3.9: Loại thông điệp truyền giữa các node..................................................... 90
Hình 3.10: Demo ứng dụng chat conference với 7 node......................................... 92

Trang 8


MỞ ĐẦU
1. Lý do chọn đề tài

Ngày nay mạng internet đã làm cho cuộc sống con người sang một trang
mới. Nhờ internet, con người có thể mua bán hàng hóa, quảng cáo thương hiệu của
cá nhân hoặc công ty, tìm kiếm nhà đất, chơi game online, xem tin tức, nghe nhạc,
xem phim trực tuyến,…


Sự phổ biến của mạng internet, cùng với các dich vụ trên internet, là một
thách thức lớn đối cới các tổ chức, công ty cung cấp dịch vụ, đó là phải xây dựng hệ
thống để đảm bảo cho hàng triệu người cùng truy cập một lúc. Ví dụ, một số trang
web chia sẻ nhạc phục vụ hàng triệu người nghe nhạc, upload, dowload nhac cùng
một lúc. Khi đó, nhu cầu về tải và băng thông là rất lớn. Nếu số lượng máy chủ là
cố định, dẫn đến việc hệ thống không có khả năng cung cấp dịch vụ cho các máy
khách thêm vào. Do đó, một hệ thống có thể khắc phục được các vấn đề trên thường
là một hệ thống xử lý phân tán, có một cơ chế quản lý tài nguyên thông minh. Công
nghệ mạng ngang hàng P2P ra đời sẽ giải quyết được các vấn đề trên.

Mạng ngang hàng là một kiến trúc mà các thành phần trong mạng có chức
năng và khả năng như nhau. Tất cả các máy tham gia đều đóng góp tài nguyên, bao
gồm băng thông, lưu trữ, và khả năng tính toán. Do đó khi càng nhiều máy tham gia
thì khả năng tổng thể của hệ thống mạng càng lớn. Tính chất phân tán của mạng
ngang hàng giúp cho mạng hoạt động tốt khi một số máy gặp sự cố. Sự tiến hóa về
cấu trúc mạng đã làm cho mạng ngang hàng ngày càng trở lên mạnh mẽ. Một trong
những cấu trúc đó là kỹ thuật Bảng băm phân tán (Distributed Hash Table). Hệ
thống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một thuật
toán cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với
một phần dữ liệu chia sẻ trong mạng. Với cấu trúc này, khi một máy cần tìm một dữ
Trang 9


liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách
nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả.

Từ các vấn đề trên nên tôi chọn đề tài: “Kỹ thuật bảng băm phân tán và
phát triển ứng dụng mạng ngang hàng” làm luận văn tốt nghiệp thạc sỹ khoa học
của tôi với mục đich làm chủ các biện pháp kỹ thuật p2p tiên tiến chưa được biết
đến ở việt nam và phát triển các ứng dụng có khả năng ứng dụng cao.

2. Lịch sử nghiên cứu
Được ra đời từ năm 1999, Với nhiều ưu điểm hứa hẹn như tính hiệu quả, linh
hoạt và khả năng mở rộng cao, các mạng ngang hàng peer-to-peer đã và đang thu
hút được nhiều sự quan tâm từ cộng đồng nghiên cứu. Các mạng ngang hàng peerto-peer đã phát triển qua ba thế hệ, mỗi thế hệ được phát triển với những động cơ,
mục đích của mình.

Thế hệ P2P đầu tiên bắt đầu với sự xuất hiện của ứng dụng chia sẻ file
Napster. Napster và các ứng dụng khác trong thế hệ thứ nhất sử dụng mô hình mạng
tập chung. Trong đó, hầu hết các peer trong hệ thống có vai trò như nhau, một số
peer có vai trò lớn hơn và được gọi là các server. Trong mô hình này, các peer
muốn chia sẻ file với các peer khác sẽ thông báo với server về các file này. Khi một
peer muốn tìm một file nào đó, nó sẽ gửi yêu cầu đến server, dựa trên các thông tin
đã thu thập được, server sẽ tìm ra các peer chứa file đó và trả kết quả tìm kiếm cho
peer yêu cầu. Kết quả trả về là peer phù hợp dựa trên một số thông số như tốc độ kết
nối, kích thước file… Sau khi nhận được kết quả, peer tìm kiếm sẽ trao đổi file trực
tiếp với peer chứa file mà không thông qua server nữa. Đóng góp chính của thế hệ
thứ nhất là đã đưa ra kiến trúc mạng không xem các máy tính như client và server
mà xem chúng như các máy cung cấp và sử dụng tài nguyên với vai trò tương
đương nhau. Mô hình mạng tập chung cho phép tìm kiếm thông tin trong không
Trang 10


gian lưu trữ một cách nhanh chóng. Tuy nhiên, điểm yếu của của mô hình này là
tính khả mở vì tải trên index server sẽ tăng tuyến tính với số lượng peer.

Thế hệ thứ hai bắt đầu với các ứng dụng như Gnutella, Freenet làm việc mô
hình flooded requests. Mô hình này không có bất kỳ server nào, các peer bình đẳng
như nhau. Các hệ thống p2p thế hệ thứ hai là. Không giống thế hệ thứ nhất, các peer
không thông báo về các nội dung chúng chia sẻ, khi một peer muốn tìm kiếm một
file, nó gửi yêu cầu tới các peer kết nối trực tiếp với nó, nếu các peer đó không tìm

thấy file, mỗi peer sẽ gửi yêu cầu tìm kiếm đến các peer kết nối trực tiếp với nó, quá
trình cứ diễn ra như vậy cho đến khi request bị timeout. Quá trình gửi yêu cầu tìm
kiếm đi như vậy gọi là flooding. Thế hệ thứ hai xóa bỏ được một số điểm xử lý tập
trung trong mạng nhưng tính khả mở còn kém hơn do mạng sử dụng thuật toán
flooding sinh ra quá nhiều traffic. Thêm nữa, các mạng làm việc theo mô hình này
không đảm bảo sẽ tìm được dữ liệu có trên mạng do phạm vi tìm kiếm bị giới hạn.

Thế hệ thứ ba được khởi đầu với các dự án nghiên cứu như Chord, CAN,
Pastry, Tapestry và P-Grid. Các dự án này đưa ra khái niệm Distributed Hash Table
(DHT). Mỗi peer trong hệ thống có một ID thu được từ việc băm các thuộc tính đặc
trưng của peer đó như địa chỉ IP hay public key. DHT lưu data dưới dạng cặp keyvalue. Như vậy, node ID và cặp key-value được băm vào cùng một không gian ID.
Các node sau đó được nối với nhau theo một topology nào đó. Quá trình tìm kiếm
dữ liệu trở thành quá trình định tuyến với kích thước bảng định tuyến nhỏ và chiều
dài đường đi cực đại. Thế hệ thứ ba đảm bảo xác xuất tìm thấy thông tin cao. Các
DHT được xây dựng nhằm mục đích cho phép các peer hoạt động như một cấu trúc
dữ liệu phân tán với hai hàm chính là Put(key,value) và Get(Key). Hàm Put lưu dữ
liệu tại một peer nào đó sao cho bất kỳ peer nào cũng có thể tìm được bằng hàm
Get. Các hàm này hoàn thành sau khi đi qua một số nhỏ các chặng. Giải pháp DHT
đảm bảo cho mạng có tính khả mở và khả năng tìm thấy thông tin cao trong khi vẫn
hoàn toàn phân tán. DHT đang được xem như là cách tiếp cận hợp lý cho vấn đề
Trang 11


định vị và định tuyến trong các hệ thống P2P. Cộng đồng nghiên cứu đã đưa ra
nhiều DHT khác nhau. Mỗi DHT hoạt động theo nguyên lý chung và có ưu điểm
riêng.
3. Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu
Mục đích của luận văn là nghiên cứu về mạng ngang hàng (các đặc điểm,
kiến trúc và ứng dụng của mạng ngang hàng) và về kỹ thuật bảng băm phân tán trên
mạng ngang hàng. Sau đó, luận văn tìm hiểu cách xây dựng ứng dụng trên

OpenDHT để đánh giá tính khả thi. Và sâu hơn nữa, người viết luận văn mong
muốn làm chủ các biện pháp kỹ thuật p2p tiên tiến chưa được biết đến ở việt nam và
phát triển các ứng dụng có khả năng ứng dung rộng dãi.
Trong khuôn khổ luận văn này, người viết luận văn sẽ giới thiệu bao gồm lý
thuyết chung về mạng ngang hàng, kỹ thuật bảng băm phân tán trên mạng ngang
hàng. Sau đó sẽ tìm hiểu các bước, các công cụ để phát triển một ứng dụng trên
mạng ngang hàng.
Với nội dung lý thuyết chung về mạng ngang hàng và kỹ thuật bảng băm trên
mạng ngang hàng. Chỉ đi vào tìm hiểu một cách tổng quan các khái niệm trên mạng
ngang hàng phục cho trả lời câu hỏi “mạng ngang hàng là gì?”, “kỹ thuật bảng băm
trên mạng ngang hàng là gì?”, “kiến trúc chung của nó như thế nào?”, “ưu nhược
điểm của nó so với các kiến trúc khác?”.
Ứng dụng minh họa là ứng dụng dựa trên kiến trúc vừa trình bày. Nó phải
tận dụng được những ưu điểm của kiến trúc đó để minh họa khả năng triển khai và
áp dụng vào thực tế kiến trúc đó.
4. Tóm tắt các luận điểm cơ bản và đóng góp mới của tác giả
Nội dung của luận văn đi từ lý thuyết tổng quan của mạng ngang hàng, kỹ
thuật bảng băm phân tán trên mạng ngang hàng, đến bài toán thực tế, các ứng dụng

Trang 12


mạng ngang hàng và cách triển khai một ứng dụng mạng ngang hàng trên
OpenDHT. Trong đó nó được chia thành ba chương chính:
Chương 1: Tổng quan các cơ sở khoa học của luận văn, bao gồm ba phần
chủ đạo:

Đầu tiên, luận văn mô tả lý thuyết chung về mạng ngang hàng, các mô hình
mạng ngang hàng và các lĩnh vực ứng dụng của nó. Từ các ứng dụng thực tế, có thể
tìm ra các kiến trúc, giải pháp để phát triển ứng dụng trong phần sau của luận văn.


Thứ hai, luận văn đi sâu vào một kiến trúc, kỹ thuật để áp dụng các thuật
toán lưu trữ và tìm kiếm dữ liệu trên mạng ngang hàng đó là Kỹ thuật bảng băm
phân tán (DHT). Phần này giới thiệu tổng quan về một bảng băm phân tán và cách
thức làm việc của nó bao gồm quản lý dữ liệu, định tuyến để tìm kiếm dữ liệu trên
mạng ngang hàng. Sâu hơn nữa, phần này đi sâu tìm hiểu cách thức làm việc của hai
DHT khá phổ biến và đã được áp dụng để xây dựng khá nhiều ứng dụng trên mạng
ngang hàng là Chord và Tapestry.

Phần cuối cùng trong chương 1 là đi sâu tìm hiểu những nền tảng cơ sở để
phát triển các ứng dụng mạng ngang hàng trên môi trường di động. Từ đó có thể
làm chủ đề nghiên cứu cho nhiều công trình nghiên cứu lĩnh vực ứng dụng mạng
ngang hàng trên môi trường di động sau này.

Chương 2: Trong chương này, luận văn đi sâu vào một DHT mà sẽ được áp
dụng chủ yêu để xây dựng ứng dụng trong phần sau đó là BambooDHT. Tìm hiểu
BambooDHT, luận văn tập chung vào tìm hiểu cơ chế làm việc, sức mạnh và những
ưu điểm của nó. Sau đó luận văn giới thiệu về OpenDHT, cách xây dựng một hệ
thống OpenDHT dựa trên BambooDHT. Phần này đi sâu tìm hiểu các giao diện
thiết kế, các API để phát triển ứng dụng trên OpenDHT. Phần này là nội dung chính

Trang 13


của luận văn và cũng là tiền đề để phát triển các ứng dụng mạng ngang hàng sau
này.

Chương 3: Xây dựng ứng dụng dựa trên OpenDHT. Chương này chình là
yếu tố để đánh giá kết quả nghiên cứu của luận văn. Ứng dụng mà ta xây dựng ở
đây là ứng dụng chia sẻ file và ứng dụng chat conference. Trong đó trình bày việc

thiết kế, triển khai một hệ thống OpenDHT trên mạng Lan và chạy ứng dụng trên
đó. Mục đích là đánh giá khả năng triển khai thực tế một ứng dụng OpenDHT, tìm
hiểu xâu hơn các API để sử dung khi xây dựng một ứng dụng OpenDHT.
5. Phương pháp nghiên cứu

Đề tài của luận văn là: “Kỹ thuật bảng băm phân tán và phát triển ứng
dụng mạng ngang hàng”. Đây là đề tài khoa học mang tính ứng dụng thực tiễn cao
nên trong quá trình nghiên cứu, người viết luận văn chủ yếu dựa vào các phương
pháp sau để giải quyết các vấn đề đặt ra: Đó là thu thập, tìm kiếm tài liệu từ nhiều
nguồn trên internet, sách, báo, tạp chí, … về các chủ đề kỹ thuật bảng băm phân tán
DHT, mạng ngang hàng P2P, phân tích từ nhu cầu bài toán thực tế của xã hội để tìm
ra các kiến trúc giải pháp mới làm nền tảng để phát triển những ứng dụng mạng
ngang hàng có khả năng ứng dụng cao.

Trang 14


CHƯƠNG I: TỔNG QUAN
1.1. Lý thuyết chung về mạng P2P
1.1.1. Mạng ngang hàng P2P là gì?

Mạng ngang hàng (Peer-to-Peer – P2P) bắt đầu xuất hiện từ 1999 và đã thu
hút sự quan tâm của giới CNTT trong những năm gần đây. Đặc biệt việc áp dụng
các mô hình P2P trong việc xây dựng những ứng dụng chia sẻ file (file sharing),
điện thoại trên nền Internet (Internet-based telephony) đã đạt được nhiều thành
công. Hiện nay các ứng dụng P2P chiếm khoảng 50% (thậm chí 75%) băng thông
trên Internet.
Mạng ngang hàng P2P là một kiểu mạng được thiết kế cho các thiết bị trong
đó có chức năng và khả năng của các thiết bị đó là như nhau. Trong mạng P2P
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 (peers) đóng vai trò như cả client và server. Hiện nay chưa có một định
nghĩa chính xác về mạng P2P. Dưới đây là một số định nghĩa về P2P:

Theo Oram, P2P là một lớp các ứng dụng tận dụng các tài nguyên như bộ
nhớ, năng lực xử lý, nội dung, … tại các điểm cuối trong mạng Internet. Bởi vì truy
cập vào các tài nguyên phân tán này cũng có nghĩa là hoạt động trong một môi
trường liên kết không ổn định và với địa chỉ IP có thể thay đổi, các node P2P phải
hoạt động ngoài hệ thống DNS và có quyền tự trị cao hoặc hoàn toàn tự trị.

Theo Miller, P2P là một kiến trúc trong đó các máy tính có vai trò và trách
nhiệm như nhau. Mô hình này đối lập với mô hình client/server truyền thống, trong
đó một số máy tính được dành riêng để phục vụ các máy tính khác. P2P có năm đặc
điểm:
− Việc truyền dữ liệu và thông tin giữa các peer trong mạng dễ dàng.
− Các peer vừa có thể hoạt động như client vừa có thể hoạt động như server.
Trang 15


− Nội dung chính trong mạng được cung cấp bởi các peer.
− Mạng trao quyền điều khiển và tự trị cho các peer.
− Mạng hỗ trợ các peer không kết nối thường xuyên và các peer không có
địa chỉ IP cố định.

Theo P2P Working Group: P2P computing là sự chia sẻ tài nguyên và dịch
vụ bằng cách trao đổi trực tiếp giữa các hệ thống. Tài nguyên và dịch vụ ở đây bao
gồm thông tin, chu kỳ xử lý, không gian lưu trữ. Peer-to-peer computing tận dụng
sức mạnh tính toán của các máy tính cá nhân và kết nối mạng, cho phép doanh
nghiệp tận dụng sức mạnh tổng hợp của các client.

Các định nghĩa về P2P thống nhất ở một số khái niệm: chia sẻ tài nguyên, tự

trị/phân tán, địa chỉ IP động, vai trò vừa là client vừa là server.

Hình 1.1: Mô hình Client/Server và mô hình P2P

Overlay network:

Trang 16


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 nodes
trong mạng overlay được xem là nối với nhau bằng liên kết ảo (logical links), mỗi
liên kết ảo có thể bao gồm rất nhiều các liên kết vật lí của mạng nền.

Rất nhiều các mạng P2P được gọi là overlay networks vì nó được xây dựng
và hoạt động trên nền của Internet. VD: Gnutella, Freenet, DHTs …. Dial-up
Internet cũng là một overlay network trên nền telephone network.

Hình 1.2: Mô hình overlay network
1.1.2. Phân loại các mô hình mạng ngang hàng P2P

Mạng ngang hàng có thể được phân loại theo mức độ tập trung của mạng.
Bao gồm mạng ngang hàng không có cấu trúc và mạng ngang hàng có cấu trúc.

Trang 17


P2P
P2P không cấu trúc

Thế hệ thứ hai


Thế hệ thứ nhất

Tập trung

P2P có cấu trúc

Thuần túy (Pure)

Lai
(Hybrid)

DHT Base

Hình 1.3: Sơ đồ phân loại các mô hình mạng ngang hàng P2P
1.1.2.1. Mạng ngang hàng P2P không cấu trúc

Mạng ngang hàng p2p không cấu trúc có đặc điểm nơi lưu trữ nội dung
(files) hoàn toàn không liên quan gì đến overlay topology (cấu trúc hình học của
mạng). Kĩ thuật tìm kiếm chủ yếu là sử dụng flooding với các giải thuật tìm kiếm
ưu tiên theo chiều rộng (breadth – first), hoặc ưu tiên theo chiều sâu (depth-first)
cho đến khi nội dung được tìm thấy. Các kĩ thuật khác phức tạp hơn gồm bước nhảy
ngẫu nhiên (random walk) và chỉ số routing (routing indices). Do vậy các hệ thống
không cấu trúc thường phù hợp trong trường hợp các node ra vào mạng thường
xuyên, tùy ý.
Các mạng ngang hàng không cấu trúc điển hình gồm mạng ngang hang tập
trung, mạng ngang hàng thuần túy, mạng ngang hàng lai.

a/ Hệ thống mạng ngang hàng tập trung (Centralized)


Là mạng ngang hàng thế hệ thứ nhất, đặc điểm là vẫn còn dựa trên một máy
chủ tìm kiếm trung tâm, chính vì vậy nó còn được gọi là mang ngang hàng tập

Trang 18


trung. Cấu trúc Overlay của mạng ngang hàng tập trung có thể được mô tả như một
mạng hình sao.

Nguyên tắc hoạt động: Mỗi client lưu trữ files định chia sẻ với các node
khác trong mạng. Một bảng lưu trữ thông tin kết nối của người dùng đăng kí (IP
address, connection bandwidth ….). Một bảng liệt kê danh sách các files mà mỗi
người dùng định chia sẻ (tên file, dung lượng, thời gian tạo file …….). Mọi máy
tính tham gia mạng được kết nối với máy chủ tìm kiếm trung tâm, các yêu cầu tìm
kiếm được gửi tới máy chủ trung tâm phân tích, nếu yêu cầu được giải quyết máy
chủ sẽ gửi trả lại địa chỉ IP của máy chứa tài nguyên trong mạng và quá trình truyền
file được thực hiện theo đúng cơ chế của mạng ngang hàng, giữa các host với nhau
mà không cần quan máy chủ trung tâm.

Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng tập
trung của thế hệ thứ nhất, chúng được dùng cho việc chia sẻ các file giữa các người
dùng Internet, được sử dụng rộng rãi, tuy nhiên nhanh chóng bị mất thị trường bởi
yếu tố về luật pháp. Khái niệm và kiến trúc của Napster vẫn còn được sử dụng trong
các ứng dụng khác như: Audiogalaxy, WinMX.

Trang 19


Hình 1.4: Mạng ngang hàng tập trung thế hệ thứ nhất (Napster)


Với Napster, việc tìm kiếm file bị thất bại khi bảng tìm kiếm trên máy chủ vì
lý do nào đó không thực hiện được. Chỉ có các file truy vấn và việc lưu trữ được
phân tán, vì vậy máy chủ đóng vai trò là một nút cổ chai. Khả năng tính toán và lưu
trữ của máy chủ tìm kiếm phải tương xứng với số nút mạng trong hệ thống, do đó
khả năng mở rộng mạng bị hạn chế rất nhiều.

b/ Các mạng ngang hàng thuần túy (Pure)

Mạng ngang hàng thuần túy là một dạng khác của thế hệ thứ nhất trong hệ
thống các mạng ngang hàng. Không còn máy chủ tìm kiếm tập trung như trong
mạng Napster, nó khắc phục được vấn đề nút cổ chai trong mô hình tập trung. Tuy
nhiên vấn đề tìm kiếm trong mạng ngang hàng thuần túy lại sử dụng cơ chế
Flooding, yêu cầu tìm kiếm được gửi cho tất cả các node mạng là láng giềng với
nó, điều này làm tăng đáng kể lưu lượng trong mạng. Đây là một yếu điểm của

Trang 20


các mạng ngang hàng thuần túy. Các phần mềm tiêu biểu cho mạng ngang hàng
dạng này là Gnutella 4.0, FreeNet.

Hình 1.5: Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet)

c/ Các mạng ngang hàng lai (Hybrid)

Để khắc phục nhược điểm của mạng ngang hàng thuần túy, một mô hình
mang ngang hàng mới được phát triển với tên gọi là mạng ngang hàng lai. Đây
được gọi là mạng ngang hàng thế hệ 2. Phần mềm tiêu biểu cho mạng ngang hàng
kiểu này là Gnutella 0.6 và JXTA (Juxtapose). JXTA được bắt đầu phát triển bởi
SUN từ 2001 (Đây là giao thức P2P mã nguồn mở). JXTA được sử dụng cho PCs,

mainframes, cell phones, PDAs – để giao tiếp theo cách không tập trung. Skype
cũng được xây dựng dựa trên cấu trúc này.

Trang 21


Hình 1.6: Mạng ngang hàng lai

Trong mô hình mạng ngang hàng lai tồn tại một trật tự phân cấp bằng việc
định nghĩa các Super Peers. Các Supper Peer tạo thành một mạng không cấu trúc,
có sự khác nhau giữa Supper Peers và Client Peers trong mạng, mỗi Supper Peer có
nhiều kết nối đến các Client Peers. Mỗi Supper Peer chứa một danh sách các file
được cung cấp bởi các Client Peer và địa chỉ IP của chúng vì vậy nó có thể trả lời
ngay lập tức các yêu cầu truy vấn từ các Client Peer gửi tới.

1.1.2.2. Mạng ngang hàng có cấu trúc

Mô hình mạng ngang hàng có cấu trúc (Structure P2P) có topo mạng được
kiểm soát chặt chẽ. Files (hoặc con trỏ trỏ tới files) được đặt ở một vị trí xác định.
Điều quan trọng đối với những hệ thống có cấu trúc là cung cấp sự liên kết
Trang 22


(mapping) giữa nội dung (ví dụ: id của file) và vị trí node (ví dụ: địa chỉ node).
Việc này thường dựa trên một cấu trúc dữ liệu bảng băm phân tán
(Distributed Hash Table). Dựa trên cấu trúc bảng băm phân tán đã có nhiều nghiên
cứu và đề xuất ra các mô hình mạng ngang hàng có cấu trúc, điển hình là cấu trúc
dạng vòng (như trong hình vẽ mô tả): Chord, Pastry…, và cấu trúc không gian
đa chiều: CAN, Viceroy.


Khả năng mở rộng hệ thống mạng trong mô hình không cấu trúc thường
bị hạn chế bởi các kỳ thuật trong việc xây dựng mạng chẳng hạn như: Mô hình tập
trung dẫn tới việc thắt nút cổ chai khi mở rộng, kỹ thuật Flooding dẫn tới việc tăng
lưu lượng mạng khi mở rộng mạng. Trong khi đó khả năng mở rộng với mô
hình mạng có cấu trúc được nâng cao rõ rệt.

1.1.3. Phân loại các lĩnh vực ứng dụng trên mạng ngang hàng

Sự ra đời của mạng ngang hàng đã tạo ra cách thức quản lý mới cho hàng
loạt các lĩnh vực ứng dụng. Trong phần này đưa ra một cách nhìn tổng quát cho vấn
đề các lĩnh vực ứng dụng của mạng ngang hàng bao gồm bốn nhóm: Giao tiếp
(communication), Chia sẻ file (file sharing), Tính toán phân tán (distributed
computing), Platform (nền).

1.1.3.1. Giao tiếp

Giao tiếp (communication) đóng một vai trò quan trọng trong các ứng dụng
mạng ngang hàng. Là nhân tố quyết định trong các mạng ngang hàng vì nó cung
cấp thông tin về các Peers và các nguồn tài nguyên nào là sẵn sàng trên mạng. Tạo
ra khả năng cho các Peer kết nối trực tiếp với các Peer khác và yêu cầu các nguồn
Trang 23


tài nguyên. Các ứng dụng này rất đa dạng, từ instant messaging, chat đến game
online hay các ứng dụng chia sẻ sử dụng trong thương mại, giáo dục hay môi
trường gia đình.

1.1.3.2. Chia sẻ file

Có thể nói ứng dụng được sử dụng nhiều nhất của mạng ngang hàng đó là

chia sẻ file (file sharing). Theo ước tính khoảng 70% lưu lượng mạng trên Internet
được cho là để trao đổi các file đặc biệt là các file âm nhạc (hơn 1 tỷ các file âm
nhạc được download mỗi tuần).

Đặc điểm của vấn đề chia sẻ file là các Peer có các file được download với
vai trò là một Client làm cho chúng luôn sẵn sàng với các Peer khác trong vai trò
của một Server.

Vấn đề chủ yếu cho mạng ngang hàng nói chung và cho vấn đề chia sẻ file
nói riêng là vấn đề tìm kiếm. Trong ngữ cảnh của hệ thống chia sẻ file, có ba mô
hình khác nhau được phát triển: mô hình flooded request, mô hình thư mục trung
tâm và mô hình hướng tài liệu. Các mô hình này được minh hoạ qua các ứng dụng
thực của mạng ngang hàng sau: Gnutella, Naspter và FreeNet.

Trong hệ thống Gnutella, không có sự tập trung hoá, các file được lưu trữ
trên các Peer của hệ thống, khi có yêu cầu tìm kiếm một file máy tính sẽ gửi yêu
cầu này tới tất cả các peer là láng giềng của nó cho tới khi tìm thấy máy chứa file
cần tìm. Tiếp theo là quá trình trao đổi file trực tiếp giữa hai máy tính trong mạng.

Trong hệ thống Naspter, có sự tập trung hoá. Khi một máy tham gia vào
mạng, danh mục các file sẽ được đăng ký và lưu trữ trên Server trung tâm, khi có
Trang 24


yêu cầu tìm kiếm, máy tính sẽ hỏi Server trung tâm về vị trí của file. Sau đó việc
trao đổi file được thực hiện giữa hai máy tính với nhau.

Trong hệ thống Freenet, trong file không được lưu trữ trên đĩa cứng của các
peer cung cấp chúng mà được lưu trữ ở các vị trí khác trong mạng. Mục đích của
việc phát triển mạng Freenet là làm cho thông tin được lưu trữ và truy cập mà

không cần biết định danh. Với các tổ chức như vậy, chủ sở hữu của một node mạng
cũng không biết được tài liệu gì được lưu trữ trên đĩa cứng của máy anh ta. Vì lý do
này mà các Peer và các file được cung cấp các số định danh khác nhau. Khi một file
được tạo, nó được truyền qua các peer láng riêng tới các peer có số định danh gần
với số định danh của file nhất và được lưu trữ ở đó.
1.1.3.3. Băng thông
Do yêu cầu về khả năng truyền dẫn của các mạng ngày càng đòi hỏi cao đặc
biệt là khi một số lượng lớn dữ liệu đa phương tiện tăng nhanh, hiệu quả của việc
sử dụng băng thông ngày càng trở nên quan trọng. Hiện nay, hướng tiếp cận tập
trung trong đó các file được lưu trữ trên một Server và được truyền từ đó tới
máy khách yêu cầu đang được sử dụng chủ yếu. Trong trường hợp này khi số
lượng các yêu cầu tăng nhanh sẽ dẫn tới tình trạng nút cổ chai. Với hướng tiếp cận
theo mạng ngang hàng vấn đề cân bằng tải sẽ đạt được sự tối ưu nhất vì nó tận dùng
tối đa được các hướng truyền dẫn trong hệ thống mạng.
Tăng cường khả năng cân bằng tải trong mạng: Khác với kiến trúc
Client/Server các mạng ngang hàng lai có thể nhận được sự cân bằng tải tốt hơn.
Với mô hình Client/Server thì cả yêu cầu truy vấn thông tin và việc truyền dữ liệu
đều được thực hiện giữa máy chủ và máy khách, sẽ làm mất sự cân bằng tải khi có
nhiều yêu cầu kết nối tới máy chủ. Trong mô hình mạng ngang hàng, chỉ có yêu
cầu truy vấn được thực hiện giữa máy tính tham gia mạng với máy chủ, còn vấn đề

Trang 25


×