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

Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho

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 (1.34 MB, 55 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------NGUYỄN VĂN CHIẾN

KẾT HỢP MÔ HÌNH CLIENT-SERVER VÀ P2P: MÔ HÌNH LOCAL PROXY
ÁP DỤNG CHO THÔNG TIN VĂN BẢN VÀ DẠNG DỊCH VỤ THEO YÊU CẦU

Chuyên ngành : Công Nghệ Thông Tin

LUẬN VĂN THẠC SĨ KỸ THUẬT
Công nghệ thông tin

NGƯỜI HƯỚNG DẪN KHOA HỌC :
PGS.TS. Hà Quốc Trung

Hà Nội – Năm 2014


MỤC LỤC
MỤC LỤC ..................................................................................................................1
LỜI CAM ĐOAN ......................................................................................................3
LỜI CẢM ƠN ............................................................................................................4
DANH MỤC THUẬT NGỮ - VIẾT TẮT...............................................................5
DANH MỤC HÌNH VẼ ............................................................................................6
DANH MỤC BẢNG ..................................................................................................7
CHƢƠNG 1. GIỚI THIỆU CHUNG ......................................................................8
CHƢƠNG 2. LÝ THUYẾT TỔNG QUAN ..........................................................10
2.1. Mô hình Client-Server....................................................................................10
2.1.1. Khái niệm mô hình Client-Server ...........................................................10
2.1.2. Phân loại Client-Server ...........................................................................11
2.1.3. Ưu nhược điểm của mô hình Client-Server ............................................13


2.2. Mô hình P2P ...................................................................................................14
2.2.1. Khái niệm P2P.........................................................................................14
2.2.2. Phân loại P2P ..........................................................................................16
2.2.3. Ưu nhược điểm của mô hình P2P ...........................................................22
2.2.4. Một số ứng dụng P2P ..............................................................................24
2.3. Các giải pháp kết hợp giữa mô hình P2P và mô hình Client-Server .............28
2.3.1. Mô hình Shared-Caching ........................................................................29
2.3.2. Mô hình Local Proxy ..............................................................................30
CHƢƠNG 3. XÂY DỰNG ỨNG DỤNG TRAO ĐỔI THÔNG TIN VĂN BẢN
THEO MÔ HÌNH LOCAL PROXY .....................................................................33
3.1. Giới thiệu hệ thống Messenger ......................................................................33
3.2. Giải pháp thiết kế ...........................................................................................34
3.3. Ánh xạ các chức năng của hệ thống Messenger lên cấu trúc file ..................35
3.4. Cấu trúc hệ thống Messenger theo mô hình Local Proxy ..............................37
3.4.1. Mô hình ứng dụng Messenger.................................................................37
3.4.2. Phân tích hoạt động các module trong mô hình ứng dụng Messenger ...38

1


3.5. Cài đặt hệ thống Messenger theo mô hình Local Proxy ................................43
3.5.1. Đăng ký ...................................................................................................43
3.5.2. Đăng nhập ...............................................................................................45
3.5.3. Thêm bạn bè vào danh sách bạn bè.........................................................47
3.5.4. Lấy danh sách bạn bè đang đăng nhập ....................................................48
3.5.5. Gửi tin nhắn.............................................................................................48
3.5.6. Đọc tin nhắn ............................................................................................49
3.6. Thử nghiệm và đánh giá .................................................................................50
CHƢƠNG 4. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN......................................52
4.1. Kết luận ..........................................................................................................52

4.2. Hướng phát triển ............................................................................................52
TÀI LIỆU THAM KHẢO ......................................................................................53

2


LỜI CAM ĐOAN
Tôi là Nguyễn Văn Chiến, học viên cao học lớp 12BCNTT2 khóa 2012 2014. Thầy giáo hướng dẫn là PGS.TS. Hà Quốc Trung.
Tôi xin cam đoan toàn bộ nội dung được trình bày trong luận văn “Kết hợp
mô hình Client-Server và P2P: Mô hình Local Proxy áp dụng cho thông tin văn
bản và dạng dịch vụ theo yêu cầu.” là 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 PGS.TS. Hà Quốc Trung. Các kết quả và dữ liệu được nêu
trong luận văn hoàn toàn trung thực. Để hoàn thành bản luận văn này, ngoài các tài
liệu tham khảo đã được liệt kê, tôi xin chịu hoàn toàn trách nhiệm với những nội
dung được viết trong luận văn.
Hà nội, ngày 15 tháng 09 năm 2014.

Học viên

Nguyễn Văn Chiến

3


LỜI CẢM ƠN
Tôi xin gửi lời cám ơn sâu sắc tới PGS.TS Hà Quốc Trung, người đã tận tình
hướng dẫn để tôi có thể hoàn thành luận văn này.
Tôi cũng xin gửi lời cám ơn chân thành tới quý thầy cô viện Công nghệ thông
tin và truyền thông, viện Đào tạo sau đại học đã truyền dạy những kiến thức quý
báu trong khoá học này.

Cuối cùng, tôi xin gửi lời cám ơn tới gia đình, bạn bè, cơ quan công tác đã
giúp đỡ trong quá trình thực hiện luận văn này.
Hà nội, ngày 15 tháng 09 năm 2014.
Học viên

Nguyễn Văn Chiến

4


DANH MỤC THUẬT NGỮ - VIẾT TẮT
Tiếng Anh

Tiếng Việt

Peer-to-peer

Mạng ngang hàng

Peer

Đồng đẳng trong mạng ngang hàng

Node

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

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)

framework

Khung làm việc

5


DANH MỤC HÌNH VẼ
Hình 2.1. Mô hình Client-Server...............................................................................10

Hình 2.2. Mô hình giao tiếp giữa Client và Server ...................................................11
Hình 2.3. Kiến trúc Client-Server hai tầng ...............................................................11
Hình 2.4. Kiến trúc Client-Server ba tầng ................................................................12
Hình 2.5. Kiến trúc Client-Server n tầng ..................................................................13
Hình 2.6. Mô hình P2P ..............................................................................................15
Hình 2.7. Mạng ngang hàng lai thế hệ thứ nhất ........................................................17
Hình 2.8. Mạng ngang hàng thuần túy ......................................................................18
Hình 2.9. Kiến trúc siêu ngang hàng .........................................................................19
Hình 2.10. Cơ chế của bảng băm phân tán (DHT)....................................................22
Hình 2.11. Mô hình mạng Napster ............................................................................26
Hình 2.12. Mô hình mạng Gnutella ..........................................................................27
Hình 2.13. Mô hình mạng Kazaa ..............................................................................28
Hình 2.14. Mô hình chia sẻ bộ nhớ đệm ...................................................................29
Hình 2.15. Mô hình Local Proxy ..............................................................................31
Hình 3.1. Mô hình ứng dụng Messenger...................................................................38
Hình 3.2. Sơ đồ mô hình mạng theo vòng Chord .....................................................40
Hình 3.3. Quy trình đăng ký người sử dụng mới ......................................................43
Hình 3.4. Quy trình đăng nhập ..................................................................................45
Hình 3.5. Quy trình thêm bạn bè ...............................................................................47
Hình 3.6. Quy trình gửi tin nhắn ...............................................................................48
Hình 3.7. Quy trình đọc tin nhắn...............................................................................49

6


DANH MỤC BẢNG
Bảng 3.1. Mô tả chức năng của hệ thống Messenger ...............................................35
Bảng 3.2. Mô tả dữ liệu của Local Proxy .................................................................37
Bảng 3.3. Các bước đăng ký người sử dụng mới ......................................................44
Bảng 3.4. Các bước đăng nhập .................................................................................45

Bảng 3.5. Các bước thêm bạn bè ..............................................................................47
Bảng 3.6. Các bước gửi tin nhắn ...............................................................................49
Bảng 3.7. Các bước đọc tin nhắn ..............................................................................50

7


CHƢƠNG 1. GIỚI THIỆU CHUNG
Ngày nay, hầu hết các ứng dụng phân tán được xây dựng chủ yếu theo kiến
trúc Client-Server. Kiến trúc Client-Server có ưu điểm là quá trình thiết kế giao
thức rất đơn giản, chỉ có 2 thành phần tham gia là Client và Server. Tuy nhiên, việc
chỉ có một Server phục vụ cho Client kéo theo các nhược điểm của mô hình này
như: cổ chai tại Server, quá tải về băng thông, tính mở rộng kém, ….Có rất nhiều
cải tiến của mô hình Client-Server như bộ nhớ đệm, phân tải, sao lưu…. Tuy nhiên
các cải tiến này đều có giới hạn về hiệu năng khi số lượng tải vượt quá một cận trên
nào đó.
Mô hình mạng ngang hàng (P2P) cho phép giải quyết vấn đề này một cách
triệt để bằng cách loại bỏ thành phần Server và cho phép tất cả các thành phần khác
tương tác với nhau một cách bình đẳng. Nhược điểm duy nhất của kiến trúc ngang
hàng là việc thiết kế ứng dụng trở nên phức tạp, do có sự tham gia của nhiều thành
phần vào giao thức. Điều này giải thích việc số lượng các ứng dụng P2P phân tán là
tương đối ít ỏi. Có thể nói ứng dụng chủ yếu của P2P là ứng dụng chia sẻ tệp phân
tán, ứng dụng peercast, …..
Một ý tưởng phát sinh tự nhiên là thiết kế các ứng dụng theo kiến trúc ClientServer và triển khai các ứng dụng theo kiến trúc ngang hàng để có thể tận dụng
điểm mạnh của cả 2 cách tiếp cận. Để có thể triển khai ứng dụng này, cần có một
khung làm việc (framework) cho phép có thể thực hiện biến đổi trực tiếp từ một ứng
dụng Client-Server thành ứng dụng theo kiến trúc P2P mà không cần phải thay đổi
giao thức tương tác giữa các thành phần.
Trong luận văn này, một giải pháp chuyển đổi từ giao thức Client-Server sang
P2P dựa theo mô hình Local Proxy được trình bày. Giải pháp này được thử nghiệm

cho dịch vụ cung cấp thông tin dạng văn bản theo yêu cầu.
Luận văn “Kết hợp mô hình Client-Server và P2P: Mô hình Local Proxy
áp dụng cho thông tin văn bản và dạng dịch vụ theo yêu cầu” được bố cục như
sau:
8


Chƣơng 1. Giới thiệu chung
Trình bày lý do chọn đề tài, đối tượng và phạm vi nghiên cứu
Chƣơng 2. Lý thuyết tổng quan
Trình bày tổng quan về mô hình Client-Server, mô hình peer to peer, mô
hình Local Proxy; làm cơ sở lý thuyết cho giải pháp xây dựng ứng dụng ở
chương 3.
Chƣơng 3. Xây dựng ứng dụng trao đổi thông tin văn bản theo mô hình
Local Proxy.
Giới thiệu hệ thống Messenger, trình bày giải pháp thiết kế, cấu trúc hệ
thống hệ thống, cài đặt hệ thống theo mô hình Local Proxy.
Chƣơng 4. Kết luận và hƣớng phát triển
Tóm lược phương pháp tiếp cận theo mô hình Local Proxy, các kết quả đạt
được, hướng phát triển của đề tài trong tương lai.

9


CHƢƠNG 2. LÝ THUYẾT TỔNG QUAN
2.1. Mô hình Client-Server
2.1.1. Khái niệm mô hình Client-Server
Mô hình được phổ biến nhất và được chấp nhận rộng rãi trong các hệ thống
phân tán là mô hình Client-Server [1].


Hình 2.1. Mô hình Client-Server
Trong mô hình này, chương trình ứng dụng được chia thành 2 thành phần:
Quá trình chuyên cung cấp một số phục vụ nào đó, chẳng hạn: phục vụ tập
tin, phục vụ máy in, phục vụ thư điện tử, phục vụ Web... Các quá trình này được gọi
là các trình phục vụ hay Server.
Một số quá trình khác có yêu cầu sử dụng các dịch vụ do các Server cung
cấp được gọi là các quá trình khách hàng hay Client. Việc giao tiếp giữa Client và
Server được thực hiện dưới hình thức trao đổi các thông điệp (Message). Để được
phục vụ, Client sẽ gởi một thông điệp yêu cầu (Request Message) mô tả về công
việc muốn Server thực hiện. Khi nhận được thông điệp yêu cầu, Server tiến hành
phân tích để xác định công việc cần phải thực thi. Nếu việc thực hiện yêu cầu này
có sinh ra kết quả trả về, Server sẽ gởi nó cho Client trong một thông điệp trả lời

10


(Reply Message). Dạng thức (format) và ý nghĩa của các thông điệp trao đổi giữa
Client và Server được qui định rõ bởi giao thức (protocol) của ứng dụng.
Client
Server
Request
message
Wait

Reply
Execution
Request message

Tiến trình đang xử lý
Tiến trình đang phong tỏa


Hình 2.2. Mô hình giao tiếp giữa Client và Server
2.1.2. Phân loại Client-Server
2.1.2.1. Client-Server hai tầng (two-tier Client-Server)
Trong thực tế các kiến trúc Client-Server phổ biến nhất là hai tầng. Một ứng
dụng hai tầng cung cấp nhiều trạm làm việc với một tầng trình diễn thống nhất, tầng
này truyền tin với tầng lưu trữ dữ liệu tập trung. Tầng trình diễn thông thường là
Client, và tầng lưu trữ dữ liệu là Server.

Hình 2.3. Kiến trúc Client-Server hai tầng

11


Hầu hết các ứng dụng Internet như là email, telnet, ftp thậm chí là cả Web là
các ứng dụng hai tầng. Phần lớn các lập trình viên trình ứng dụng viết các ứng dụng
Client-Server có xu thế sử dụng kiến trúc này.
Trong ứng dụng hai tầng truyền thống, khối lượng công việc xử lý được dành
cho phía Client trong khi Server chỉ đơn giản đóng vai trò như là chương trình kiểm
soát luồng vào ra giữa ứng dụng và dữ liệu. Kết quả là không chỉ hiệu năng của ứng
dụng bị giảm đi do tài nguyên hạn chế của PC, mà khối lượng dữ liệu truyền đi trên
mạng cũng tăng theo. Khi toàn bộ ứng dụng được xử lý trên một PC, ứng dụng bắt
buộc phải yêu cầu nhiều dữ liệu trước khi đưa ra bất kỳ kết quả xử lý nào cho người
dùng. Nhiều yêu cầu dữ liệu cũng làm giảm hiệu năng của mạng. Một vấn đề
thường gặp khác đối với ứng dụng hai tầng là vấn đề bảo trì. Chỉ cần một thay đổi
nhỏ đối với ứng dụng cũng cần phải thay đổi lại toàn bộ ứng dụng Client và Server.
2.1.2.2. Client-Server ba tầng (three-tier Client-Server)
Ta có thể tránh được các vấn đề của kiến trúc Client-Server hai tầng bằng
cách mở rộng kiến trúc thành ba tầng. Một kiến trúc ba tầng có thêm một tầng mới
tách biệt việc xử lý dữ liệu ở vị trí trung tâm.

Theo kiến trúc ba tầng, một ứng dụng được chia thành ba tầng tách biệt nhau
về mặt logic. Tầng đầu tiên là tầng trình diễn thường bao gồm các giao diện đồ họa.
Tầng thứ hai, còn được gọi là tầng trung gian hay tầng tác nghiệp. Tầng thứ ba chứa
dữ liệu cần cho ứng dụng. Tầng thứ ba về cơ bản là chương trình thực hiện các lời
gọi hàm để tìm kiếm dữ liệu cần thiết. Tầng trình diễn nhận dữ liệu và định dạng nó
để hiển thị. Sự tách biệt giữa chức năng xử lý với giao diện đã tạo nên sự linh hoạt
cho việc thiết kế ứng dụng. Nhiều giao diện người dùng được xây dựng và triển
khai mà không làm thay đổi logic ứng dụng.

Hình 2.4. Kiến trúc Client-Server ba tầng
12


2.1.2.3. Client-Server n tầng (n-tier Client-Server)
Kiến trúc n-tầng được chia thành các tầng như sau:
-

Tầng giao diện người dùng: quản lý tương tác của người dùng với ứng dụng

-

Tầng logic trình diễn: Xác định cách thức hiển thị giao diện người dùng và
các yêu cầu của người dùng được quản lý như thế nào.

-

Tầng logic tác nghiệp: Mô hình hóa các quy tắc tác nghiệp.

-


Tầng các dịch vụ hạ tầng: Cung cấp một chức năng bổ trợ cần thiết cho ứng
dụng như các thành phần (truyền thông điệp, hỗ trợ giao tác)

Hình 2.5. Kiến trúc Client-Server n tầng
Ƣu điểm của mô hình n tầng (nhiều tầng) là:
-

Tăng khả năng linh động, việc thay đổi các tầng logic là độc lập với nhau

-

Tăng tính bảo mật

-

Tăng hiệu năng khi các tác vụ được chia sẻ giữa các tầng

Nhƣợc điểm của mô hình nhiều tầng là:
-

Tăng sự phức tạp trong triển khai và kiểm thử

-

Tăng sự cần thiết của việc cân bằng tải và chịu lỗi

2.1.3. Ƣu nhƣợc điểm của mô hình Client-Server
2.1.3.1. Ưu điểm
Quản lý tập trung: Dữ liệu được lưu trữ tập trung trên server thay vì nằm rải
rác trên nhiều máy, giúp đơn giản hóa việc truy xuất và cập nhật dữ liệu.

13


Dễ bảo trì: Nhờ khả năng quản lý tập trung mà công việc bảo trì cũng trở nên
nhẹ nhàng hơn vì phần lớn việc bảo trì chỉ cần thực hiện trên server. Trong trường
hợp hệ thống có nhiều server với thiết bị dự phòng, quá trình bảo trì (như sửa chữa,
thay thế server) có thể diễn ra hoàn toàn trong suốt với phía Client.
Bảo mật: Dữ liệu tập trung trên server đồng nghĩa với việc kiểm soát dễ dàng
hơn.
2.1.3.2. Nhược điểm
Chi phí cho server lớn: Thông thường, các máy chủ trung tâm phải đủ
mạnh để duy trì và chia sẻ tài nguyên với các máy tính khác trên mạng. Điều này
đòi hỏi một chi phí đáng kể.
Sự phụ thuộc: Mô hình mạng client-server phụ thuộc vào xử lý bên server.
Nếu server gặp sự cố, thì toàn bộ mạng phải dừng hoạt động.
Thắt cổ chai: Server phải xử lý và trả lời yều cầu cho Client, nếu cùng một
thời điểm có nhiều Client yêu cầu đến Server thì có thể gây ra tắc nghẽn mạng và
làm gián đoạn thời gian trả lời kết quả cho các client
Bảo trì: Mô hình Client Server cần một đội ngũ nhân viên quản trị mạng để
quản lý và duy trì các thiết bị mạng, do đó tăng chi phí duy trì vận hành hệ thống.
An toàn: Tất cả các dữ liệu đều được lưu trữ trên server, nên về vấn đề an
ninh các thông tin và dữ liệu được bảo vệ tập trung từ các mối đe dọa tiềm tàng như
tin tặc, sự cố.
2.2. Mô hình P2P
2.2.1. Khái niệm P2P
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. Mạng ngang hang còn
gọi là mạng đồng đẳng, là một mạng máy tính trong đó hoạt động của mạng chủ yếu
dựa vào khả năng tính toán băng thông của các máy tham gia chứ không tập trung


14


vào một số nhỏ các máy chủ trung tâm như các mạng thông thường. Mạng ngang
hàng có nhiều ứng dụng. Ứng dụng thường xuyên gặp nhất là chia sẻ tệp tin, tất cả
các dạng như âm thanh, hình ảnh, dữ liệu,... Các thành phần tham gia trong mạng
vừa đóng vai trò cung cấp tài nguyên và yêu cầu tài nguyên. Chúng được truy cập
một các trực tiếp bởi các nút khác, không thông qua các nút trung gian.

Hình 2.6. Mô hình P2P
Cũng giống như các xu hướng đang trong quá trình phát triển khác, 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 đã định nghĩa về mạng ngang hàng như sau [13]:
“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”.

15


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.

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

-

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.
2.2.2. Phân loại P2P
Ta có thể phân loại các mạng đồng đẳng hiện nay theo tiêu chí topo của
mạng ở tầng vật lý và mạng phủ. Đây là tiêu chí được phát triển qua từng thời kỳ và
được xem xét nghiên cứu để tìm ra những giải pháp tốt nhất, xây dựng nền tảng
vững chắc cho các ứng dụng sau này.
16


2.2.2.1. Hệ thống ngang hàng lai (Hybrid Peer-to-peer System)
Đây 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 - đặc điểm của mô hình khách chủ, chính vì vậy nó còn
được gọi là mạng ngang hàng lai hay mạng tập trung (centralized Peer-to-Peer
networks). Cấu trúc Overlay của mạng ngang hàng lai 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 nút 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 máy với nhau mà không cần quan máy chủ trung
tâm.

Hình 2.7. Mạng ngang hàng lai thế hệ thứ nhất
17


Ƣu điểm:
-

Dễ xây dựng.

-

Tìm kiếm file nhanh và hiệu quả.
Nhƣợc điểm:

-

Vấn đề luật pháp, bản quyền.

-


Dễ bị tấn công.

-

Cần quản trị (central Server).

2.2.2.2. Mạng ngang hàng thuần túy (Pure Peer-to-peer System)
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 nút 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 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 0.4, FreeNet.

Hình 2.8. Mạng ngang hàng thuần túy

18


Ƣu điểm:
-

Dễ xây dựng.

-

Đảm bảo tính phân tán hoàn toàn cho các nút tham gia mạng, các 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

mạng.
Nhƣợc điểm:

-

Tốn băng thông.

-

Phức tạp trong tìm kiếm.

-

Các nút có khả năng khác nhau (CPU power, bandwidth, storage) đều có thể
phải chịu tải (load) như nhau.

2.2.2.3. Kiến trúc siêu ngang hàng (Super-peer Architecture)

Hình 2.9. Kiến trúc siêu ngang hàng
Để 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 siêu ngang hàng. Đâ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
19


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.
Nguyên tắc hoạt động:

-

Trong mô hình mạng siêu ngang hàng tồn tại một trật tự phân cấp bằng việc
định nghĩa các Super-peer.

-

Các Super-peer tạo thành một mạng không cấu trúc, có sự khác nhau giữa
Super-peer và Client-peer trong mạng, mỗi Super-peer có nhiều kết nối đến
các Client-peer.

-

Mỗi Supper-peer chứa một danh sách các file được cung cấp bởi các Clientpeer 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.
Ƣu điểm:

-

Hạn chế việc Flooding các query, làm giảm lưu lượng trong mạng, nhưng
vẫn tránh được hiện tượng nút cổ chai (do có nhiều Super-peer).

-

Khắc phục được nhược điểm về sự khác nhau về CPU power, bandwidth… ở
mạng ngang hàng thuần túy, các Super-peer sẽ chịu tải chính, các nút khác
chịu tải nhẹ.
Nhƣợc điểm:

-


Mỗi điểm Super-peer trở thành điểm gây lỗi cho nhóm siêu ngang hàng
tương ứng trong trường hợp số lượng Client trong nhóm là rất lớn (tuy nhiên,
nhược điểm này đã được giải quyết bằng việc cải tiến mạng siêu ngang hàng
thông thường, đưa ra khái niệm siêu ngang hàng dư cấp k).

2.2.2.4. Mạng ngang hàng có cấu trúc (Structured)
Hệ thống mạng ngang hàng không cấu trúc thể hiện nhược điểm: không có gì
đảm bảo tìm kiếm sẽ thành công. Đối với tìm kiếm các dữ liệu phổ biến được chia
sẻ trên nhiều máy, tỉ lệ thành công là khá cao, ngược lại, nếu dữ liệu chỉ được chia

20


sẻ trên một vài máy thì xác suất tìm thấy là khá nhỏ. Tính chất này là hiển nhiên vì
trong mạng ngang hàng không cấu trúc, không có bất kì mối tương quan nào giữa
một máy và dữ liệu nó quản lý trong mạng, do đó yêu cầu tìm kiếm được chuyển
một cách ngẫu nhiên đến một số máy trong mạng. Số lượng máy trong mạng càng
lớn thì khả năng tìm thấy thông tin càng nhỏ. Một nhược điểm khác của hệ thống
này là do không có định hướng, một yêu cầu tìm kiếm thường được chuyển cho một
số lượng lớn máy trong mạng làm tiêu tốn một lượng lớn băng thông của mạng, dẫn
đến hiệu quả tìm kiếm chung của mạng thấp.
Mạng ngang hàng có cấu trúc khắc phục nhược điểm của mạng không cấu
trúc bằng cách sử dụng hệ thống DHT (Distributed Hash Table - Bảng Băm Phân
Tán). 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ữ 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ả.

Nguyên tắc hoạt động:
-

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
(mapping) giữa nội dung (ví dụ: id của file) và vị trí nút (ví dụ: địa chỉ nút).
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ư:
Chord, Pastry…, và cấu trúc không gian đa chiều như: CAN, Viceroy.

21


Hình 2.10. Cơ chế của bảng băm phân tán (DHT)
Ƣu điểm:
-

Khả năng mở rộng được nâng cao rõ rệt do không có điểm tập trung gây ra
hiện tượng thắt nút cổ chai tại những điểm này.


-

Các truy vấn tìm kiếm được phát đi theo một thuật toán cụ thể, hạn chế tối đa
lượng truy vấn hay kỹ thuật flooding, tiết kiệm băng thông mạng.
Nhƣợc điểm:

-

Việc quản lí cấu trúc của topo mạng gặp khó khăn, đặc biệt trong trong
trường hợp tỷ lệ vào/ra mạng của các nút cao.

-

Vấn đề cân bằng tải trong mạng.

-

Sự khác biệt về topology trên mạng overlay và mạng liên kết vật lý dẫn đến
thời gian trễ truy vấn trung bình cao.

2.2.3. Ƣu nhƣợc điểm của mô hình P2P
2.2.3.1. Ưu điểm
Tính chất phân tán của mạng ngang hàng đã tạo nên ưu điểm của mạng ngang
hàng, đó là:
-

Người sử dụng có thể kiểm soát việc dùng chung tài nguyên (máy in, chu
trình xử lý, lưu trữ …), tận dụng được tài nguyên của tất cả các máy tính
trong mạng, có phân bố lưu lượng hợp lý để tránh tắc ngẽn.


22


-

Không phụ thuộc vào các máy tính khác trong hoạt động của mình. Tính chất
phân tán của mạng đồng đẳng cũng giúp cho mạng hoạt động tốt khi một số
máy gặp sự cố. Đối với cấu trúc tập trung, chỉ cần máy chủ gặp sự cố thì cả
hệ thống sẽ ngưng trệ.

-

Tăng cường khả năng cân bằng tải trong mạng. 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 đề truyền file được thực hiện giữa hai máy tính tham
gia mạng với nhau, điều này dẫn đến việc phân bố tải đều trên hệ thống
mạng.

-

Không phải đầu tư thêm về phần cứng và phần mềm máy chủ.

-

Không cần người quản trị mạng.

2.2.3.2. Nhược điểm
Bên cạnh những ưu điểm đã trình bày trên, mạng ngang hàng còn tồn tại
những nhược điểm sau:
-


Các nút tham gia với tính phân tán, trách nhiệm và vai trò là như nhau trong
mạng, ít tuân theo quy luật hay ràng buộc nào.

-

Máy trạm phải gánh thêm việc phục vụ chia sẻ tài nguyên.

-

Máy trạm không có khả năng kiểm soát nhiều liên kết như một máy chủ.

-

Thiếu tính tập trung, rất khó tìm kiếm dữ liệu.

-

Không có khả năng lưu trữ tập trung.

-

Mỗi người sử dụng trên máy trạm phải có khả năng quản trị trên chính hệ
thống của mình.

-

Khả năng bảo mật kém, khó kiểm soát do dữ liệu là phân tán.

-


Quản lý thiếu tập trung, các mạng ngang hàng rất khó làm việc với nhau.

-

Mô hình Local Proxy được phát triển để tận dụng những ưu điểm của 2 mô
hình trên.

23


2.2.4. Một số ứng dụng P2P
Các ứng dụng p2p có thể chia vào bốn nhóm:
Chia sẻ file (file sharing): lưu trữ và chia sẻ nội dung là ứng dụng thành công
nhất của công nghệ p2p. Các ứng dụng chia sẻ file tập trung vào việc lưu trữ thông
tin trên các peer khác nhau trên mạng và lấy thông tin từ các peer đó. Các ứng dụng
thuộc nhóm này bao gồm Napster, Gnutella, Freenet, Kazaa,….
Tính toán phân tán (distributed computing): các ứng dụng thuộc nhóm này
sử dụng tài nguyên từ các máy tính được nối mạng. Ý tưởng chính của các ứng
dụng tính toán phân tán là các chu kỳ xử lý nhàn rỗi trên bất kỳ máy tính nối mạng
nào đều có thể được sử dụng cho việc giải quyết bài toán trên các máy yêu cầu
nhiều năng lực tính toán. SETI (Search for Ex-traterrestrial Intelligence) là một dự
án nghiên cứu khoa học nhằm mục đích xây dựng một máy tính ảo khổng lồ từ sức
mạnh của các máy tính nối mạng trong chù kỳ nhàn rỗi của chúng.
Cộng tác (collaboration): các ứng dụng cộng tác p2p cho phép người sử dụng
cộng tác với nhau ở mức ứng dụng. 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.
Platform (nền): các platform p2p cung cấp hạ tầng hỗ trợ các ứng dụng sử
dụng cơ chế p2p. Các thành phần p2p được sử dụng bao gồm naming, discovery,

communication, security và resource aggregation. JXTA là một p2p platform cung
cấp hạ tầng tính toán và lập trình mạng.
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. 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
24


×