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 ng
Trang 1BỘ 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
Trang 2MỤ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
Trang 33.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
Trang 4LỜ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ọc viên
Nguyễn Văn Chiến
Trang 5LỜ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ọc viên
Nguyễn Văn Chiến
Trang 6DANH MỤC THUẬT NGỮ - VIẾT TẮT
Overlay Mạng được xây dựng trên các mạng khác
Distributed hash table Bảng băm phân tán
Trang 7DANH 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
Trang 8DANH 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
Trang 9CHƯƠ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 Server 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
Client-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:
Trang 10Chươ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
Trang 11CHƯƠ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
Trang 12(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
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
Tiến trình đang phong tỏa
Tiến trình đang xử lý Request message
Request message
Reply Execution Wait
Server Client
Trang 13Hầ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
Trang 142.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
Trang 15Dễ 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
Trang 16và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”
Trang 17Theo đị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
Trang 182.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
Trang 19- 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
Trang 20Ƣ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
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
Trang 21SUN 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
- Mỗi Supper-peer chứa một danh sách các file được cung cấp bởi các 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
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
Trang 22sẻ 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
Trang 23Hình 2.10 Cơ chế của bảng băm phân tán (DHT)
- 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
Trang 24- 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
- 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
Trang 252.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
Trang 26chia 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
2.2.4.1 Naspter
Napster [14] được Shawn Fanning (19 tuổi) viết ra vào năm 1999 Mô hình Napster tập trung vào việc chia sẻ các file nhạc MP3 Khi bạn cần tìm kiếm 1 bài hát, bạn mở ứng dụng Napster, ứng dụng đăng nhập vào server trung tâm qua internet Server lưu giữ chỉ mục của tất cả các người dùng khác, lưu trữ cấu trúc thư mục chứa các file MP3 của người dùng Các thông tin này được tự động cập nhật lại mỗi khi người dùng đăng nhập vào hệ thống Khi bạn gửi yêu cầu tìm kiếm, server của Napster sẽ tìm kiếm trong chỉ mục của các người dùng đang online và liệt kê các người dùng có chứa bài hát bạn yêu cầu Sau đó bạn có thể chọn bất kỳ kết quả nào trong danh sách và liên kết trực tiếp tới người dùng đó, kể từ đây máy chủ không còn vai trò nữa, việc download file là giữa 2 người dùng Chính vì vậy không
có bất kỳ một file nhạc nào được lưu trực tiếp trên máy phục vụ Napster không bán, không lưu trữ, không chuyển các file nhạc, máy phục vụ Napster chỉ giúp bạn tìm file nhạc trong máy của người khác và giúp bạn kết nối với điểm nút khác
Napster chính là một ví dụ điển hình của hệ thống chia sẻ file lai ghép sử dụng server chỉ mục Napster sử dụng nhiều server chỉ mục để tăng hiệu quả nhưng mỗi server chỉ quản lý những điểm nút của mình và các server không “giao tiếp” với nhau Chính vì vậy 2 người dùng thuộc 2 server khác nhau sẽ không kết nối được với nhau
Trang 27Hình 2.11 Mô hình mạng Napster Napster là mạng ngang hàng không cấu trúc đầu tiên thu hút được đông đảo người sử dụng trên mạng Đây là sự kết hợp của một mạng ngang hàng peer to peer
và một số server trung tâm để duy trì kết nối hệ thống và danh sách dữ liệu được chia sẻ trong mạng Ngoài việc là một mạng peer to peer, Napster cũng giống như một mạng với các server Chính các server này làm cho việc tìm kiếm dữ liệu và chia sẻ giữa các máy tính trong mạng tốt hơn, tạo nên mô hình mạng peer to peer đầu tiên được ưu chuộng với các dịch vụ chia sẻ file dữ liệu, file nhạc trên mạng Internet Napster gồm 2 thành phần, thứ nhất là server trung tâm và thứ hai là các ứng dụng trên các máy tính kết nối với nhau Một máy tính tham gia vào mạng sẽ kết nối với server trung tâm và đưa danh sách file chia sẻ trong máy tính lên server này Những máy tính khi tìm kiếm dữ liệu sẽ tìm kiếm thông tin về từ khóa trên server trung tâm để biết máy tính nào hiện đang giữ file chia sẻ đó Để tìm kiếm một file, một truy vấn sẽ được gửi đi tới server trung tâm cùng với từ khóa tìm kiếm Server trung tâm sẽ tìm trong danh sách các file chia sẻ được đưa lên bởi các máy tính và trả về địa chỉ IP của máy tính lưu giữ file chia sẻ này Sau đó sẽ là kết