1. Trang chủ
  2. » Công Nghệ Thông Tin

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

55 884 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 1,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

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

Trang 2

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

Trang 3

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

Trang 4

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ọc viên

Nguyễn Văn Chiến

Trang 5

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ọc viên

Nguyễn Văn Chiến

Trang 6

DANH 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 7

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

Trang 8

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

Trang 9

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 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 10

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

Trang 11

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

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 13

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

Trang 14

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

Trang 15

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

Trang 16

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”

Trang 17

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

Trang 18

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

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 21

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

- 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 22

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

Trang 23

Hì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 25

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

Trang 26

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

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 27

Hì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

Ngày đăng: 25/07/2017, 21:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Tanenbaum, A.S. & Steen, M.v.(2006) Distributed Systems: Principles and Paradigms (2 nd Edition). Prentice Hall Sách, tạp chí
Tiêu đề: Distributed Systems: Principles and Paradigms (2"nd Edition)
[2] Coulouris, G., Dollimore, J., Kindberg, T., & Blair, G. (2011) Distributed Systems: Concepts and Design. Addison Wesley Sách, tạp chí
Tiêu đề: Distributed Systems: Concepts and Design
[3] Lua, E. K., Crowcroft, J., Pias, M., Sharma, R., Lim, S., & Lim, S. (2005) A Survey and Comparison of Peer-to-Peer Overlay Network Schemes.Communications Surveys & Tutorials, IEEE, 72--93 Sách, tạp chí
Tiêu đề: A Survey and Comparison of Peer-to-Peer Overlay Network Schemes
[4] Dale, C. & Liu, J. (2009) apt-p2p: A Peer-to-Peer Distribution System for Software Package Releases and Updates. INFOCOM 2009, 864-872 Sách, tạp chí
Tiêu đề: apt-p2p: A Peer-to-Peer Distribution System for Software Package Releases and Updates
[5] S. A. Baset, H. G. Schulzrinne, 2006. An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol. INFOCOM 2006 Sách, tạp chí
Tiêu đề: An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol
[6] Reed, D. (1992) A Discussion on Computer Network Conferencing., Request for Comments: 1324 Sách, tạp chí
Tiêu đề: A Discussion on Computer Network Conferencing
[7] Carl von Loesch, 2003, Functionality provided by systems for synchronous conferencing. http://http://www.psyc.eu/ Sách, tạp chí
Tiêu đề: Functionality provided by systems for synchronous conferencing
[8] Tan Jin, Yu Sheng-sheng, and Zhou Jing-li. Design and implementation of a proxy caching system for streaming media. Wuhan University Journal of Natural Sciences, 9:31–36, 2004. 10.1007/BF02912713 Sách, tạp chí
Tiêu đề: Design and implementation of a proxy caching system for streaming media
[9] Nguyen Quang Thu. Study of distributed replication: design a messenger application using local proxy model. Master’s thesis, Hanoi University of Science and Technology, 4 2013 Sách, tạp chí
Tiêu đề: Study of distributed replication: design a messenger application using local proxy model
[10] Ha Quoc Trung. Distributed software distribution solution using p2p. Journal of Science Technology, Technical Universities, (ISSN 0868-3980), (78):6–10, 2010 Sách, tạp chí
Tiêu đề: Distributed software distribution solution using p2p
[11] Ha Quoc Trung. New approach to develop the messenger application: From client-server design to p2p implementation. In Proceedings of International Conference of Advanced Computer Science Information Technology (ACSIT- 2012), 2012 Sách, tạp chí
Tiêu đề: New approach to develop the messenger application: From client-server design to p2p implementation
[13] Andy Oram. Peer to Peer: Harnessing the Power of Disruptive Technologies. OReilly Publishing, first edition March 2001. Page 9,page 19.Chapter 8 Sách, tạp chí
Tiêu đề: Peer to Peer: Harnessing the Power of Disruptive Technologies
[12]. Luong Quy Tho, Ha Quoc Trung, 2013. P2P shared-caching model: using P2P to improve client-server application performance Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.6. Mô hình P2P - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 2.6. Mô hình P2P (Trang 16)
Hình 2.7. Mạng ngang hàng lai thế hệ thứ nhất - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 2.7. Mạng ngang hàng lai thế hệ thứ nhất (Trang 18)
Hình 2.8. Mạng ngang hàng thuần túy - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 2.8. Mạng ngang hàng thuần túy (Trang 19)
Hình 2.9. Kiến trúc siêu ngang hàng - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 2.9. Kiến trúc siêu ngang hàng (Trang 20)
Hình 2.11. Mô hình mạng Napster - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 2.11. Mô hình mạng Napster (Trang 27)
Hình 2.12. Mô hình mạng Gnutella - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 2.12. Mô hình mạng Gnutella (Trang 28)
Hình 2.13. Mô hình mạng Kazaa - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 2.13. Mô hình mạng Kazaa (Trang 29)
Hình 2.14. Mô hình chia sẻ bộ nhớ đệm - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 2.14. Mô hình chia sẻ bộ nhớ đệm (Trang 30)
Hình 2.15. Mô hình Local Proxy - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 2.15. Mô hình Local Proxy (Trang 32)
Hình 3.1. Mô hình ứng dụng Messenger - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 3.1. Mô hình ứng dụng Messenger (Trang 39)
Hình 3.2. Sơ đồ mô hình mạng theo vòng Chord - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 3.2. Sơ đồ mô hình mạng theo vòng Chord (Trang 41)
Hình 3.3. Quy trình đăng ký người sử dụng mới - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 3.3. Quy trình đăng ký người sử dụng mới (Trang 44)
Hình 3.4. Quy trình đăng nhập - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 3.4. Quy trình đăng nhập (Trang 46)
Hình 3.6. Quy trình gửi tin nhắn - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 3.6. Quy trình gửi tin nhắn (Trang 49)
Hình 3.7. Quy trình đọc tin nhắn - Kết hợp mô hình client server và p2p mô hình local proxy áp dụng cho
Hình 3.7. Quy trình đọc tin nhắn (Trang 50)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w