Tải bản đầy đủ (.docx) (19 trang)

Mô phỏng dịch vụ chia sẻ napster

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 (938.79 KB, 19 trang )

Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

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

KHOA CÔNG NGHỆ THÔNG TIN






BÀI TẬP MÔN LẬP TRÌNH MẠNG
NÂNG CAO
ĐỀ TÀI: MÔ PHỎNG DỊCH VỤ CHIA SẺ

NAPSTER

Giảng viên hướng dẫn : TS.Huỳnh Công Pháp

Đà Nẵng 2011
1|


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp


Phần I : MẠNG P2P
I. Mạng đồng đẳng (mạng ngang hàng) :

Mạng đồng đẳng (tiếng Anh: peer-to-peer network), còn gọi là mạng ngang hà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 và
băng thông của các máy tham gia chứ không tập trung 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 đồng đẳng thường được sử dụng để kết nối các máy thông qua một lượng kết nối
dạng ad hoc. Mạng đồng đẳ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,... hoặc để truyền dữ liệu
thời gian thực như điện thoạiVoIP.
Một mạng đồng đẳng đúng nghĩa không có khái niệm máy chủ và máy khách, nói cách
khác, tất cả các máy tham gia đều bình đẳng và được gọi là peer, là một nút mạng đóng
vai trò đồng thời là máy khách và máy chủ đối với các máy khác trong mạng.
Một số mạng hay kênh như Napster, IRC (thuộc thế hệ thứ nhất) sử dụng mô hình máy
chủ-máy khách cho một số tác vụ và mô hình đồng đẳng cho những tác vụ khác. Ngược
lại, các mạng như Gnutella hay Freenet (thế hệ thứ 2) sử dụng mô hình đồng đẳng cho
tất cả các tác vụ, nên các mạng này thường được xem như là mạng đồng đẳng đúng
nghĩa (thực ra Gnutella vẫn sử dụng một số máy chủ để giúp các máy trong mạng tìm
kiếm địa chỉ IPcủa nhau).
Khái niệm đồng đẳng ngày nay được tiến hóa vào nhiều mục đích sử dụng khác nhau,
không chỉ để trao đổi tệp mà còn khái quát hóa thành trao đổi thông tin giữa người với
người, đặc biệt trong những tình huống hợp tác giữa một nhóm người trong cộng đồng.
II. Phân loại mạng đồng đẳng :
1. Theo mục đích sử dụng, ví dụ:
 Chia sẻ file (file sharing).
 Điện thoại VoIP (telephony).
 Đa phương tiện media streaming (audio, video).
 Diễn đàn thảo luận (Discussion forums).
2. Theo tiêu chí về mức độ tập trung của chúng như sau:


2|


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

 Mạng ngang hàng không cấu trúc (unstructured):

Nơi lưu trữ nội dung (files) hoàn toàn không liên quan gì đến overlay

topology (cấu trúc hình học của mạng).

3|


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

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

Đâ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, chính vì vậy nó còn được gọi là mang ngang hàng
tập trung (centralized Peer-to-Peer networks). Cấu trúc Overlay của mạng ngang
hàng tập trung có thể được mô tả như một mạng hình sao.


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

Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng của thế hệ
thứ nhất, chúng được dùng cho việc chia sẻ các file giữa các người dùng
Internet, được sử dụng rộng rãi, tuy nhiên nhanh chóng bị mất thị trường bởi


4|


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

yếu tố về luật pháp. Khái niệm và kiến trúc của Napster vẫn còn được sử dụng
trong các ứng dụng khác như: Audiogalaxy, WinMX.

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

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

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

5|



Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

Ưu điểm:
 Dễ xây dựng.
 Đảm bảo tính phân tán hoàn toàn cho các node tham gia mạng, các node 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 node có khả năng khác nhau (CPU power, bandwidth, storage) đều có thể

phải chịu tải (load) như nhau.
c. Các mạng ngang hàng lai (Hybrid)
Để khắc phục nhược điểm của mạng ngang hàng thuần túy, một mô hình mang
ngang hàng mới được phát triển với tên gọi là mạng ngang hàng lai. Đây được
gọi là mạng ngang hàng thế hệ 2. Phần mềm tiêu biểu cho mạng ngang hàng kiểu
này là Gnutella 0.6 và JXTA (Juxtapose). JXTA được bắt đầu phát triển bởi SUN
từ 2001 (Đây là giao thức P2P mã nguồn mở). JXTA được sử dụng cho PCs,
mainframes, cell phones, PDAs – để giao tiếp theo cách không tập trung. Skype
cũng được xây dựng dựa trên cấu trúc này.

6|



Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

- Trong mô hình mạng ngang hàng lai tồn tại một trật tự phân cấp bằng việc định
nghĩa các Super Peers.
- Các SupperPeer tạo thành một mạng không cấu trúc, có sự khác nhau giữa
SupperPeers và ClientPeers trong mạng, mỗi SupperPeer có nhiều kết nối đến các
ClientPeers.
- Mỗi SupperPeer 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 ClientPeer 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 SuperPeers).
 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 SuperPeer sẽ chịu tải chính,
các node khác chịu tải nhẹ.
d. Mạng ngang hàng có cấu trúc (Structured)
 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í node (ví dụ:
địa chỉ node). Việc này thường dựa trên một cấu trúc dữ liệu bảng băm
phân tán (Distributed Hash Table).

7|



Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

- Dựa trên cấu trúc bảng băm phân tán đã có nhiều nghiên cứu và đề xuất ra các
mô hình mạng ngang hàng có cấu trúc, điển hình là cấu trúc dạng vòng
(như trong hình vẽ mô tả): Chord, Pastry…, và cấu trúc không gian đa chiều:
CAN, Viceroy.
Ưu điểm:
 Khả năng mở rộng hệ thống mạng trong mô hình không cấu trúc thường bị

hạn chế bởi các kỳ thuật trong việc xây dựng mạng chẳng hạn như: Mô hình
tập trung dẫn tới việc thắt nút cổ chai khi mở rộng, kỹ thuật Flooding dẫn tới
việc tăng lưu lượng mạng khi mở rộng mạng. Trong khi đó khả năng mở
rộng với mô hình mạng có cấu trúc được nâng cao rõ rệt.
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 nodes cao.
 Vấn đề cân bằng tải trong mạng.
III. Ưu, nhược điểm của mạng ngang hàng :
Một mục đích quan trọng của mạng đồng đằng là trong mạng tất cả các máy tham gia
đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán. Do đó khi
càng có nhiều máy tham gia mạng thì khả năng tổng thể của hệ thống mạng càng lớn.
Ngược lại, trong cấu trúc máy chủ-máy khách, nếu số lượng máy chủ là cố định, thì khi
số lượng máy khách tăng lên khả năng chuyển dữ liệu cho mỗi máy khách sẽ giảm
xuống.
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ệ.
Nhược điểm của mạng đồng đẳng là vấn đề bản quyền của dữ liệu được chia sẻ trên
mạng.

8|


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

Phần II : MÔ PHỎNG DỊCH VỤ CHIA SẺ
NAPSTER
I. Napster :
Mạng Napster là mạng đồng đẳng lai. Ngoài các máy tham gia, mạng này
còn có một máy chủ trung tâm lưu trữ danh sách nội dung tệp trên các máy tham
gia. Nhờ vậy, việc tìm kiếm trở nên nhanh và hiệu quả hơn, tuy nhiên, đây cũng
chính là điểm yếu dẫn đến các rắc rối pháp lý mà kết cục là sự sụp đổ của Napster.
II. Mô phỏng Napster :
1. Giới thiệu :
Ta sử dụng 2 chương trình để mô phỏng mạng chia sẻ file Napster.
Trong đó 1chương trình Server làm máy chủ trung tâm và chương trình
Client sẽ dùng cho các nút tham gia (node).
Chức năng của chương trình Server:
 Nhận thông tin file chia sẻ của Client.
 Lưu trữ danh sách các tập tin chia sẻ trên các node
 Tìm kiếm thông tin file và truyền cho Client khi có yêu cầu.
Chức năng của chương trình Client :

 Gửi thông tin file cần chia sẻ lên Server.
 Gửi yêu cầu tìm file đến Server.
 Truyền và nhận file từ Client khác.

2. Sơ đồ hoạt động :
-

Client (tương đương với 1 nút) gửi yêu cầu chia sẻ file cho server:

-

Tìm file cần chia sẻ trên server:

9|


Bài Tập Môn Lập Trình Mạng Nâng Cao

-

GVHD : Huỳnh Công
Pháp

Truyền và nhận file:

10 |


Bài Tập Môn Lập Trình Mạng Nâng Cao


GVHD : Huỳnh Công
Pháp

Phần III : Demo
Giao diện chính Server

Giao diện chính Client

11 |


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

Database đang rỗng, thực hiện tìm kiếm mẫu

12 |


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

Chọn file để chia sẻ

13 |



Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

Dòng thông báo khi chia sẻ hoàn tất

Nhật ký tại Server

14 |


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

Thực hiện tìm kiếm mẫu (không có trong database)

15 |


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

Thực hiện tìm kiếm mẫu (có trong database)


Khi tìm thấy Client có thể chia sẻ file, hộp thoại save file hiển thị

16 |


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

Thông báo lưu file thành công

Dòng thông báo từ Client ở máy chứa file đã chia sẻ

17 |


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công
Pháp

Nhật ký tại Server

18 |


Bài Tập Môn Lập Trình Mạng Nâng Cao

GVHD : Huỳnh Công

Pháp

Lưu ý: Khi 1 client chạy trên Windows XP, 1 client chạy trên Windows 7, Client
chứa file chia sẻ phải đặt trên Windows 7. Yêu cầu này do cơ chế truyền tín hiệu
qua LAN của 2 hệ điều hành, không phải do chương trình.

19 |



×