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

Báo cáo thực tập tốt nghiệp nghiên cứu về cấu trúc mạng ngang hàng và cân bằng tải trên mạng có cấu trúc

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 (662.72 KB, 42 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO
THỰC TẬP TỐT NGHIỆP
Nội dung:
NGHIÊN CỨU VỀ CẤU TRÚC MẠNG NGANG HÀNG VÀ
CÂN BẰNG TẢI TRÊN MẠNG CÓ CẤU TRÚC

Nơi thực tập
: Viện CNTT&TT-CDIT
Người hướng dẫn : Ths. Đỗ Mạnh Hùng
Sinh viên thực tập: Đỗ Yến Hoa
Mã sinh viên
: B112104 257
Lớp
: D11HTTT3
Khóa
: 2011 – 2016
Hệ đào tạo
: Chính quy

Hà Nội, 08/2015
1

1


MỤC LỤC

2



2


LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy giáo – Th.s Đỗ Mạnh Hùng đã giảng dạy tận
tình và cho em nhiều lời khuyên không chỉ về kiến thức học tập mà còn cả phương
pháp nghiên cứu để em có thể hoàn thành báo cáo thực tập tốt nghiệp.
Em xin được gửi lời cảm ơn đến các thầy cô giáo trong Khoa Công Nghệ
Thông Tin của trường Học Viện Công Nghệ Bưu Chính Viễn Thông, cùng gia
đình, bạn bè đóng góp ý kiến và giúp đỡ em trong quá trình thực tập tốt nghiệp.
Trong suốt quá trình nghiên cứu và làm báo cáo thực tập, bản thân em đã cố
gắng tập trung tìm hiểu, nghiên cứu và tham khảo thêm nhiều tài liệu liên quan.
Tuy nhiên, báo cáo không thể tránh khỏi những thiếu sót, vì vậy em rất mong
nhận được sự chỉ bảo của thầy cô giáo và góp ý của bạn bè để được hoàn thiện
hơn.
Em xin chân thành cảm ơn!
Hà Nội, Ngày 06 Tháng 08 Năm 2015
Sinh viên
Đỗ Yến Hoa

3

3


PHẦN A : GIỚI THIỆU ĐƠN VỊ THỰC TẬP VIỆN CÔNG
NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - CDIT
I. Chức năng
Trung tâm Công nghệ Thông tin CDIT được Tổng giám đốc Tổng Công ty

Bưu chính Viễn thông Việt Nam ký quyết định thành lập số 636/QĐ.TCCB-LĐ
ngày 22 tháng 3 năm 1999. Cùng với sự phát triển của ngành Công nghệ thông tin
trong xu hướng hội nhập với Truyền thông, theo định hướng phát triển của Học
viện trong giai đoạn mới, ngày 07 tháng 12 năm 2011 Tập đoàn Bưu chính Viễn
thông Việt Nam đã có quyết định số 1973/QĐ-VNPT-TCCB, đổi tên Trung tâm
Công nghệ thông tin thành Viện công nghệ Thông tin và Truyền thông CDIT từ
01/01/2012.
Viện công nghệ Thông tin và Truyền thông CDIT là tổ chức đào tạo, nghiên
cứu trực thuộc Học viện Công nghệ Bưu chính Viễn thông, có nhiệm vụ: đào tạo,
nghiên cứu khoa học và chuyển giao công nghệ trong lĩnh vực Công nghệ thông
tin và Truyền thông.

II. Tổ chức

4

4


Mô hình tổ chức bao gồm:
-

Ban Lãnh đạo Viện và Khoa Đa phương tiện
Phòng Tổng hợp
Phòng Nghiên cứu phát triển & Đào tạo Ứng dụng Đa phương tiện
Phòng Nghiên cứu phát triển & Đào tạo An toàn thông tin
Phòng Nghiên cứu phát triển Ứng dụng ICT (Phòng Viễn thông)
Phòng Nghiên cứu phát triển Hạ tầng ICT (Phòng Mạng & Hệ thống)
Phòng Dịch vụ & Chuyển giao công nghệ


III. Các lĩnh vực hoạt động
Viện công nghệ thông tin và truyền thông CDIT hoạt động trên lĩnh vực công
nghệ thông tin, cụ thể là là nghiên cứu, ứng dụng các thành tựu khoa học công
nghệ vào các sản phẩm, dịch vụ và chương trình đào tạo nhằm góp phần thúc đẩy
sự phát triển của đất nước.

5

5


PHẦN B : NỘI DUNG THỰC TẬP
I. Giới thiệu chung
- Tên chủ đề thực tập: Ngiên cứu về cấu trúc mạng ngang hàng và cân bằng tải
trên mạng có cấu trúc.
-

Mục tiêu: Nghiên cứu về mô hình mạng ngang hàng P2P, tìm hiểu về các công
nghệ sử dụng mạng ngang hàng trên internet hiện nay, tìm hiểu về cân bằng
tải, vì sao sảy ra hiện tượng mất cân bằng tải và giải pháp cân bằng tải các
node mạng trên mạng ngang hàng có cấu trúc.

- Kết quả cần đạt: Hoàn thành nghiên cứu và nộp báo cáo đúng hạn theo những
nội dung công việc được phân công trong bản kế hoạch, nắm rõ được thế nào
là mạng ngang hàng P2P, các kiểu kiến trúc, phân loại, cơ chế hoạt động và các

-

vấn đề xoay quanh việc cân bằng tải trên mạng ngang hàng có cáu trúc.
Nội dung:

Bảng nội dung công việc được phân công:

TT

Nội dung thực tập

Thời gian

Mục tiêu

Ghi
chú

1

Xây

dựng

đề Từ ngày 29/06/2015 Hoàn thành đề cương Tuần 1

cương thực tập
2

Nghiên

cứu

đến ngày 05/07/2015 thực tập.
về Từ ngày 06/07/2015 - Khái niệm, mục đích Tuần 2


mạng ngang hàng

đến ngày 12/07/2015 của mạng ngang hàng.
- Khái niệm mạng có cấu
trúc và mạng không có
cấu trúc.
- Mức độ phân tán: Mô
hình phân tán hoàn toàn,
mô hình phân tán một
phần, mô hình phân tán
lai.
- Mạng ngang hàng có
cấu trúc và kĩ thuật bảng

6

6


băm

phân

tán

(DHT- Distributed hash
tables).
3


về Từ ngày 13/07/2015 Nghiên cứu về thuật toán Tuần 3
mạng ngang hàng
đến ngày 19/07/2015 DHT-Chord sử dụng
Nghiên

cứu

trong mạng ngang hàng
4

Nghiên cứu về cân
bằng tải trong

có cấu trúc.
Từ ngày 20/07/2015 -Khái niệm cân bằng tải
đến ngày 26/07/2015 và các khái niệm liên

mạng ngang hàng

Tuần 4

quan.
-Khả năng tải của node

có cấu trúc

(peer).
5

Nghiên cứu về cân

bằng tải trong
mạng ngang hàng

Từ ngày 27/07/2015 - Nguyên nhân mất cân
đến ngày 02/08/2015 bằng tải trên mạng.
- Giải pháp cân bằng tải

Tuần 5

sử dụng virtual node.
Mô phỏng thuật toán

có cấu trúc

loadbalancing sử dụng
virtual node.
6

Hoàn

thành

cáo thực tập

7

báo Từ ngày 03/08/2015
đến ngày 09/08/2015

7


Tuần 6


II. Nội dung báo cáo thực tập
DANH MỤC THUẬT NGỮ
Thuật ngữ
Peer
Node
P2P
Load Balancing
DHT
Chord
Server
Client
Virtual node
Key
Value
HTML
IP
Port
Log
Upload
Download
Size

8

Ý nghĩa
Thuật ngữ dùng để chỉ một máy tính tham gia vào mạng

lưới ngang hàng.
Thuật ngữ node cũng tương tự như thuật ngữ peer. Chỉ
một máy tính tham gia vào mạng lưới ngang hàng.
Peer – to – peer
Cân bằng tải
Distribuited hash table – bảng băm phân tán
Giao thức sử dụng trong mạng ngang hàng
Máy chủ
Máy thành viên
Node ảo. Thuật ngữ này chỉ thuật toán tạo node ảo khi
một máy tính tham gia mạng.
Khóa
Dữ liệu
HyperText Markup Language. Là một ngôn ngữ đánh
dấu được thiết kế ra để tạo nên các trang web với các
mẩu thông tin được trình bày trên World Wide Web
Địa chỉ của máy tính
Cổng tham gia dịch vụ
Ghi tất cả thao tác thực hiện thành log
Chia sẻ file lên mạng
Tải file từ trên hệ thống về tài nguyên máy tính
Kích thước

8


DANH MỤC HÌNH VẼ
Hình 1: Mạng ngang hàng
Hình 2: Napster
Hình 3: Mạng ngang hàng có cấu trúc

Hình 4: Mạng ngang hàng phân tán hoàn toàn
Hình 5: Mạng ngang hàng phân tán một phần
Hình 6: Mạng ngang hàng lai
Hình 7: Bảng băm phân tán – DHT
Hình 8: Sơ đồ node mạng có cấu trúc vòng tròn
Hình 9: Sơ đồ tạo DHT vòng tròn
Hình 10: Sơ đồ quản lý shortcut peer
Hình 11: Sơ đồ khi peer rời mạng
Hình 12: Vòng tròn lưu trữ khi peer rời mạng
Hình 13: Một mạng Chord với 3 node 0, 1, 3 và các bảng Finger Table ứng với
mỗi node.
Hình 14: Lưu giữ key trong mạng Chord: node 0 lưu key 6, node 1 lưu key 1 và
node 3 lưu key 2.
Hình 15: Phân vùng không gian node thật và node ảo
Hình 16: Transfer node ảo

1. TỔNG QUAN MẠNG NGANG HÀNG
1.1.

Đặt vấn đề:
Client - Server là gì?
Để có thể hiểu Peer to Peer là gì, thì cần hiểu về những gì cơ bản nhất tạo nên
Internet ngày nay, đó là mô hình Client – Server (Máy khách và máy chủ). Server
là một máy chủ web, đây là nơi lưu trữ nội dung của một trang web, và máy tính
của người dùng được gọi là Client, nó sẽ lấy thông tin từ Server để hiển thị lại trên
9

9



máy tính của người dùng. Đó là cách mà Internet truyền thống sử dụng. Mỗi
Server độc lập có thể lưu trữ hàng trăm nghìn dữ liệu khác nhau và chịu tải hàng
trăm Client cùng lúc, nhưng đó cũng chính là vấn đề của mô hình Client – Server,
bởi chúng phụ thuộc rất nhiều vào phần cứng của Server.
Thứ nhất, Server phụ thuộc rất nhiều vào phần cứng. Sẽ không có vấn đề gì
nếu Server chỉ lưu trữ mỗi một nội dung nhất định, nhưng thực tế thì mỗi Server
phải xử lí hàng trăm yêu cầu khác nhau từ mỗi Client, chẳng hạn như một người
dùng muốn đọc bài A thì Server phải xử lí và cho ra nội dung bài A, một người
khác muốn đọc bài B thì Server phải xử lí và cho ra nội dung bài B – mỗi lần như
thế sẽ khiến Server sử dụng một phần CPU và RAM để xử lí, Server sẽ cần nâng
cấp nếu khả năng xử lí không đủ đáp ứng nhu cầu của Client. Đó chính là giới hạn
về phần cứng của Server.
Thứ hai, mỗi Client sử dụng một phần nhỏ đường truyền mạng của Server
Ví dụ: Server của bạn có đường truyền mạng khoảng 100MB/s, tức nếu bạn có
100 Client cùng sử dụng thì mỗi người sẽ có 1 MB/s để dùng, nhưng nếu có
khoảng 1000 Client thì mỗi người chỉ còn 100KB/s mà thôi. Đấy chính là giới hạn
về đường truyền của Server.
Thứ ba, giá thành của dung lượng. Nếu có 1 file nặng khoảng 1MB và được
1000 người tải xuống thì tổng dung lượng của dữ liệu được tải xuống sẽ là 1GB.
Người dùng sẽ không phải trả tiền cho 1MB dữ liệu này, nhưng nhà quản trị web
phải trả số tiền đó, thử nghĩ 1 bộ phim nặng khoảng 1GB và có khoảng 10.000
người tải xuống thì số tiền họ phải trả là bao nhiêu? Giá thành quá đắt chính là
giới hạn của mô hình Client - Server
Để khắc phục 3 giới hạn trên của mô hình Client - Server ta sử dụng Peer to
Peer hay còn gọi là mạng ngang hàng, mạng đồng đẳng.
1.2.

Khái niệm Peer to Peer

Khi mô hình Client - Server gặp nhiều giới hạn thì một hình thức mới ra đời,

đó là Peer to Peer, mô hình mới này sẽ giúp mọi Client trở thành Server và chỉ cần
một Server điều khiển hoạt động cho từng Client khác nhau. Với Peer to Peer,
Client không chỉ lấy dữ liệu mà còn có thể chia sẻ lại dữ liệu này với Client khác
và việc chia sẻ lại dữ liệu này người ta gọi nó là seeding. Việc seeding rất quan

10

10


trọng trong sự phát triển của Peer to Peer, nếu không có seeding thì Peer to Peer
chỉ giống như mô hình Client - Server mà thôi.

Hình 1: Mạng ngang hàng
Theo Wikipedia:
Mạng ngang hàng (tiếng Anh: peer-to-peer network), 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 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 ngang hà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 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,... hoặc để truyền
dữ liệu thời gian thực như điện thoại VoIP.
Mạng overlay (mạng phủ) là mạng máy tính được xây dựng trên nền của một
mạng khác. Các nút trong mạng overlay được xem là nối với nhau bằng liên kết ảo
(logical link), mỗi liên kết ảo có thể bao gồm rất nhiều các liên kết vật lý của
mạng nền. Rất nhiều các mạng P2P được gọi là mạng overlay vì nó được xây dựng
và hoạt động trên nền Internet.
Ví dụ: Gnutella, Freenet, DHTs ….
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 ngang hà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ỉ IP của nhau).
11

11


Khái niệm ngang hà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.
Không giống như Client – Server, hiệu suất của mọi thứ sẽ giảm đi khi có quá
đông Client tham gia vào mạng. Hiệu suất của Peer to Peer sẽ tăng lên nếu số
Client trong mạng càng đông. Tức càng có nhiều người seeding một dữ liệu thì
người chưa có dữ liệu đó sẽ càng có cơ hội nhận được dữ liệu muốn download.
Trong Peer to Peer, tốc độ download tệp tin của người dùng càng nhanh nếu có
nhiều người seeding tệp tin đó cho người dùng, hãy tưởng tượng tệp tin cần
download nặng 1GB, có 1 người seeding với tốc độ 1MB/s thì sẽ chỉ mất 1000
giây để tải xong tệp tin, nhưng nếu có 10 người như thế thì bạn sẽ chỉ mất 100
giây cho việc download tệp tin. Nhưng tính năng chia nhỏ tệp tin để download như
thế này không phải phần mềm Peer to Peer nào cũng có, BitTorrent chính là phần
mềm đầu tiên sử dụng tính năng này.
1.3.

Lịch sử của mô hình Peer to Peer
Lịch sử ra đời và phát triển của P2P gắn liền với phần mềm ứng dụng Napster.
Năm 1999, Shawn Fanning một sinh viên ở tuổi 18 đã rời bỏ trường Đại học để

bắt đầu xây dựng phần mềm mang tên Napster do bức xúc với việc rất khó khăn
để đưa và chia sẻ các file nhạc trực tuyến trên Internet mặc dù mọi người đều có
nguồn tài nguyên trong đĩa cứng của mình. Napster được xây dựng thành công và
trở thành cách chia sẻ file chính vào thời điểm lúc bấy giờ. Nó đã làm thay đổi
cách tải các file nhạc và dung lượng file chia sẻ cũng lớn hơn nhiều so với các
chương trình chia sẻ file trước đó.
Khoảng 60 triệu người trên thế giới đã sử dụng phần mềm Napster vào thời
điểm đó (trong đó có khoảng 1 triệu người Nhật). Tuy nhiên, do có quá đông
người dùng và vấn đề bản quyền âm nhạc nên công ty Napster đã bị cấm hoạt
động. Phần mềm Napster không còn được sử dụng kể từ năm 2003. Sau Napster,
rất nhiều các chương trình khác như Gnutella, KaZaa và WinMP đã xuất hiện.
Công nghệ P2P không chỉ dừng lại ở ứng dụng chia sẻ file nhạc mà còn mở rộng

12

12


cho tất cả các loại file. Nó còn được ứng dụng để chia sẻ các tiến trình rỗi của
CPU tại các nút trong mạng.
Sau sự ra đời của Napster, công nghệ P2P phát triển một cách nhanh chóng.
Cho đến hiện nay các ứng dụng P2P đã chiếm khoảng 50% và thậm chí lên đến
75% băng thông trên mạng Internet.

Hình 2: Napster

BitTorrent là gì?
Ra đời vào năm 2001, BitTorrent là một giao thức mở, nơi mà người sử dụng
sẽ tạo một file (file này có đuôi là .torrent nên sau này nó được gọi tắt là file
torrent) mô tả một dữ liệu xác định.

Một tracker sẽ lưu trữ file torrent và các thông tin về người lưu trữ dữ liệu xác
định đó. Ngoài việc có một server tracker chung thì vẫn có thể tồn tại cùng lúc
nhiều tracker khác, tức là nếu một tracker không còn hoạt động thì vẫn còn nhiều
tracker khác thay thế nó, nhờ thế mà khi đã chia sẻ file thông qua torrent, dữ liệu
xác định gần như sẽ không bao giờ biến mất.
Một thành tựu của BitTorrent trong peer to peer đó là nghĩ ra DHT – hay
distributed hash table. Nó có tác dụng loại bỏ sự cần thiết của một server tracker
chung, cho phép mọi client trong mạng lưới đều có thể index file torrent và trở
thành tracker.

13

13


Nhờ BitTorrent mà việc tìm ra người lưu trữ dữ liệu hoàn chỉnh của một file
nào đó được dễ dàng hơn, phần quan trọng nhất trong Peer to Peer. Nếu như
không tìm được người lưu trữ dữ liệu hoàn chỉnh của một file nào đó thì
BitTorrent vẫn có cách khác để giải quyêt, đó là các client như Tribler.
1.4.

Các lĩnh vực ứng dụng của mạng ngang hàng
Sự ra đời của mạng ngang hàng đã tạo ra cách thức quản lý mới cho hàng loạt
các lĩnh vực ứng dụng. Trong phần này chúng ta sẽ đưa ra một cách nhìn tổng quát
cho vấn đề các lĩnh vực ứng dụng của mạng ngang hàng như: giao tiếp, chia sẻ
file, băng thông, không gian lưu trữ, các chu trình xử lý của CPU.
-

Giao tiếp


Đóng vai trò quan trọng trong các ứng dụng mạng ngang hàng. Là nhân tố
quyết định trong các mạng ngang hàng vì nó cung cấp thông tin về các nút và các
nguồn tài nguyên nào là sẵn sàng trên mạng. Tạo ra khả năng cho các nút kết nối
trực tiếp với các nút khác và yêu cầu các nguồn tài nguyên.
Một ví dụ điển hình về ứng dụng mạng ngang hàng trong giao tiếp là hệ thống
chuyển tin nhắn trực tiếp: thông thường, máy chủ trung tâm lưu trữ thông tin và
danh sách người dùng đăng ký. Khi có sự giao tiếp giữa các nút, việc tìm kiếm nút
khác được thực hiện trên máy chủ. Trong trường hợp nút đó không trưc tuyến, hệ
thống sẽ phải lưu trữ các tin nhắn cho đến khi nút này trực tuyến lại. Các dịch vụ
tin nhắn điển hình: Napster, ICQ, Jabber.
-

Chia sẻ File

Có thể nói ứng dụng được sử dụng nhiều nhất của mạng ngang hàng đó là chia
sẻ file. 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 tải
mỗi tuần). Đặc điểm của vấn đề chia sẻ file là các nút có các file được tải với vai
trò là một máy khách làm cho chúng luôn sẵn sàng với các nút khác trong vai trò
của một máy chủ. Vấn đề chủ yếu cho mạng ngang hàng nói chung và cho vấn đề
chia sẻ file nói riêng là vấn đề tìm kiếm. Trong ngữ cảnh của hệ thống chia sẻ file,
có ba mô hình khác nhau được phát triển: mô hình flooded request, mô hình thư
14

14


mục trung tâm và mô hình hướng tài liệu. Các mô hình này được minh họa qua
các ứng dụng thực của mạng ngang hàng: Gnutella, Naspter và FreeNet.
Trong hệ thống Gnutella, không có sự tập trung hóa, các file được lưu trữ trên

các nút của hệ thống, khi có yêu cầu tìm kiếm một file, máy tính sẽ gửi yêu cầu
này tới tất cả các nút láng giềng của nó cho tới khi tìm thấy máy lưu giữ file cần
tìm. Tiếp theo là quá trình trao đổi file trực tiếp giữa hai máy tính trong mạng.
Trong hệ thống Naspter, có sự tập trung hóa. Khi một máy tham gia vào mạng,
danh sách các file sẽ được đăng ký và lưu trữ trên máy chủ trung tâm, khi có yêu
cầu tìm kiếm, máy tính sẽ hỏi máy chủ trung tâm về vị trí của file. Sau đó việc trao
đổi file được thực hiện giữa hai máy tính với nhau.
Trong hệ thống Freenet, các file chia sẻ không được lưu trữ trên đĩa cứng của
các máy cung cấp mà chúng được lưu trữ ở các máy khác nhau trong mạng. Mục
đích của việc phát triển mạng Freenet là làm cho thông tin được lưu trữ và truy
cập mà không cần biết định danh. Với các tổ chức như vậy, chủ sở hữu của một
nút mạng cũng không biết được tài liệu gì được lưu trữ trên đĩa cứng của máy anh
mình. Vì lý do này mà các nút và các file được gắn các số định danh khác nhau.
Khi một file được tạo, nó được truyền qua các nút láng giềng tới các nút có số
định danh gần với số định danh của file nhất và được lưu trữ ở đó.
-

Băng thông

Do yêu cầu về khả năng truyền dẫn của các mạng ngày càng đòi hỏi cao đặc
biệt là khi một số lượng lớn dữ liệu đa phương tiện tăng nhanh, hiệu quả của việc
sử dụng băng thông ngày càng trở nên quan trọng. Hiện nay, hướng tiếp cận tập
trung trong đó các file được lưu trữ trên một máy chủ và được truyền từ nó tới
máy khách đang được sử dụng chủ yếu. Trong trường hợp này khi số lượng các
yêu cầu tăng nhanh sẽ dẫn tới tình trạng thắt nút cổ chai. Với hướng tiếp cận theo
mạng ngang hàng vấn đề cân bằng tải sẽ đạt được sự tối ưu nhất vì nó tận dụng tối
đa các hướng truyền dẫn trong hệ thống.
Tăng khả năng cân bằng tải trong mạng: khác với kiến trúc client/server các
mạng ngang hàng lai có thể nhận được sự cân bằng tải tốt hơn. Với mô hình
client/server thì cả yêu cầu truy vấn thông tin và việc truyền dữ liệu đều được thực

hiện giữa máy chủ và máy khách, việc đó sẽ làm mất sự cân bằng tải khi có nhiều
yêu cầu kết nối tới máy chủ. Với kiến trúc ngang hàng, chỉ có yêu cầu truy vấn
15

15


được thực hiện giữa máy tính trong 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 trong mạng với nhau, điều này sẽ giúp cân bằng
tải thông qua việc phân bố tải đều trên toàn hệ thống.
Chia sẻ băng thông: mạng ngang hàng có thể làm tăng khả năng tải và truyền
các file do cơ chế tận dụng đường truyền thông qua các nút trong mạng. Một file
dữ liệu lớn được chia thành các phân mảnh dữ liệu nhỏ độc lập nhau, các mảnh dữ
liệu này được chuyển đồng thời đến các nút khác nhau và cuối cùng đến nút yêu
cầu chúng. Tại nút yêu cầu các mảnh dữ liệu được phép lại thành file dữ liệu ban
đầu. Các phần mềm tải file điển hình cho việc chia sẻ băng thông, chẳng hạn như:
BitTorrent, FlashGet,…
-

Không gian lưu trữ

Ngày nay, khi các dữ liệu càng ngày càng lớn, kích thước file cũng càng lớn,
với các máy tính có tài nguyên đĩa cứng hạn hẹp sẽ gặp khó khăn trong việc lưu
trữ các file dữ liệu lớn trên máy tính của mình. Phát huy ưu điểm của mạng ngang
hàng để chia sẻ không gian lưu trữ giữa các máy tính trong hệ thống thì điều đó
không còn là một điều đáng lo ngại. Bằng cách này, dữ liệu sẽ được chia nhỏ
thành các phần và lưu trữ mỗi phần trên các máy trong mạng. Mỗi khi cần lấy lại
dữ liệu, máy đó sẽ nhận lại các phần của dữ liệu trên các máy và ghép chúng lại để
nhận được dữ liệu ban đầu. Với việc chia sẻ không gian lưu trữ, hệ thống P2P
càng ngày càng được mở rộng với nhiều máy tính tham gia vào hệ thống.

-

Các chu trình xử lý

Trong các ứng dụng đòi hỏi cần phải có sức mạnh tính toán người ta thường
tìm cách xây dựng các máy tính mạnh, đắt tiền chứ chưa chú trọng vào việc tận
dụng khả năng tính toán của các máy tính được nối mạng. Ngày nay do những yêu
cầu đòi hỏi tính toán hiệu năng cao như các thao tác tính toán trong tin sinh học,
trong tài chính, trong đo lường mà nhiều nghiên cứu ứng dụng mạng ngang hàng
vào xử lý tính toán đã được đưa ra. Bằng việc sử dụng các ứng dụng mạng ngang
hàng để bó cụm các chu trình xử lý có thể nhận được khả năng tính toán ngang
bằng với một siêu máy tính đắt tiền. Trong một mạng mỗi máy tính là trong suốt

16

16


với các máy tính khác và tất cả các nút được kết nối mạng sẽ tạo thành một máy
tính logic.



So sánh mô hình P2P với mô hình Client - Server truyền thống:
P2P

Tổng quan

-


-

Ưu điểm

-

-

17

Client - Server

Một mạng ngang hàng cho - Dữ liệu được lưu tại một máy
phép các nút đóng góp, chia sẻ
chủ trung tâm, tốc độ cao.
nguồn tài nguyên với nhau. Tài - Khi một máy khách yêu cầu
nguyên riêng rẽ của các nút (ổ
lấy thông tin về thời gian nó sẽ
cứng, CD-ROM, máy in). Các
phải gửi một yêu cầu theo một
nguồn tài nguyên này có thể
tiêu chuẩn do máy chủ định ra,
được truy cập từ bất cứ nút nào
nếu yêu cầu được chấp nhận thì
trong mạng.
máy chủ sẽ trả về thông tin mà
Các nút đóng vai trò như cả
máy khách yêu cầu.
máy khách và máy chủ.
Không cần máy chủ.

Các máy khách tự chia sẻ tài
nguyên cho nhau.
Khi mạng càng được mở rộng
thì khả năng hoạt động của hệ
thống càng tốt.
Chi phí thấp.
Dễ cài đặt và bảo trì.
Thuận lợi cho việc chia sẻ file,
máy in, ổ đĩa quang, ...
Chậm.
Không tốt cho các ứng dụng cơ
sở dữ liệu.
17

- Tốc độ truy cập nhanh.
- Khả năng mở rộng cao.
- Hoạt động với bất kì loại ứng
dụng nào.
- Sử dụng được với các ứng dụng
chia sẻ cơ sở dữ liệu.
- Đáng tin cậy hơn (có máy chủ
riêng).
- Mức độ an toàn cao.
- Cần máy chủ riêng.
- Dễ gặp hiện tượng thắt cổ chai.


Nhược điểm

-


Độ tin cậy thấp.

- Phức tạp trong bảo trì, duy trì

hoạt động của mạng.
- Chi phí cao.

1.5. Cấu trúc mạng
Cấu trúc mạng xác định rõ việc hình thành mạng ngang hàng, cũng như việc
nút và các tài nguyên được đưa vào mạng có theo một quy luật nhất định nào đó
không. Nhờ đó ta phân loại mạng ngang hàng có cấu trúc và không có cấu trúc.
1.5.1. Mạng không có cấu trúc

Liên kết giữa các node mạng được thiết lập 1 cạch ngẫu nhiên. Phương thức
tìm kiếm rất đa dạng từ việc sử dụng các phương pháp bruteforce, đẩy truy vấn ra
tất cả các nút cho tới khi có được kết quả, cho đến sử dụng các thuật toán phức tạp
và tiết kiệm tài nguyên hơn truy vấn ngẫu nhiên hay dùng bảng đinh tuyến.
Phương pháp tìm kiếm có liên hệ mật thiết và tác động sâu sắc tới tính ổn định,
khả năng mở rộng và độ tin cậy của mạng.
Mạng không cấu trúc thương được sử dụng trong môi trường mà các nút trong
mạng luôn thay đổi.
1.5.2. Mạng có cấu trúc

Cấu trúc hình học của mạng được kiểm soát chặt chẽ. File (hoặc con trỏ trỏ tới
file) đượ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
giữa nội dung (ví dụ: id của file) và vị trí của 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: Chord,
Pastry,... Và cấu trúc không gian đa chiều: CAN, Viceroy.

18

18


Hình 3: Mạng ngang hàng có cấu trúc
 Ư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 trường hợp
tỷ lệ vào/ra mạng của các nút cao và vấn đề cân bằng tải trong mạng.

1.6. Mức độ phân tán
Mặc dù thiết kế mong muốn của mạng ngang hàng là hoàn toàn phân tán, tuy
nhiên trong thực tế có thể không đúng như vậy. Dưới đây liệt kê các mô hình dựa
trên mức độ phân tán của chúng.
Mô hình phân tán hoàn toàn: Tất cả các nút trong mạng thực hiện các vai trò
như nhau. Vừa đóng vai trò là máy chủ, vừa là máy khách. Do đó không cần phải
có bất kỳ thành phần nào đóng vai trò là trung tâm điều phối.

19


19


Hình 4: Mạng ngang hàng phân tán hoàn toàn
Mô hình phân tán một phần: Về cơ bản mô hình này tương tự như mô hình
phân tán hoàn toàn. Tuy nhiên có một số nút đóng vai trò quan trong hơn các nút
khác, trở thành các điểm điều phối cho một số các nút khác. Các nút này được gọi
là siêu nút (supernode) và chúng có thể đảm nhận các vai trò khác nhau tùy thuộc
vào từng thiết kế.
Có một điểm quan trọng cần lưu ý là hệ thống sẽ không lệ thuộc vào một nút
nào, dù nút đó có là supernode, do các nút này được gán động và nếu có lỗi sẽ
được thay thế bằng nút khác.

20

20


Hình 5: Mạng ngang hàng phân tán một phần
Mô hình phân tán lai: Trong những hệ thống này, tồn tại một máy chủ trung
tâm đóng vai trò duy trì thông tin về các nút và tài nguyên trên các nút.

Hình 6: Mạng ngang hàng lai
Mặc dù việc trao đổi tài nguyên có thể thực hiện trực tiếp giữa các nút, nhưng
máy chủ trung tâm sẽ đóng vai trò tổng hợp và tìm kiếm tài nguyên trên nút. Mô
hình này sẽ khó mở rộng, và tạo các nguy hiểm tiềm tàng cho hệ thống khi máy
chủ trung tâm có sự cố hoặc bị tấn công.

1.7.


Mạng ngang hàng có cấu trúc và kĩ thuật bảng băm phân tán
Các nghiên cứu về DHT được bắt nguồn cùng với sự phát triển của các hệ
thống P2P như Napster, Gnutella, và Freenet, những hệ thống này sử dụng lợi thế
của các tài nguyên phân tán trên mạng Internet để cung cấp một ứng dụng đơn hữu
dụng. Cụ thể, chúng đã sử dụng lợi thế tăng băng thông và sức chứa của ổ cứng
còn nhàn rỗi của các Peer để cung cấp dịch vụ chia sẻ file. Những hệ thống này
khác nhau ở cách thức thực hiện việc tìm kiếm dữ liệu mà các peer quản lý.
Napster sử dụng một server trung tâm: mỗi node khi tham gia vào mạng sẽ gửi
một danh sách các file được lưu trữ ở máy lên cho server, server sẽ xử lý các truy
vấn, tìm các file trong danh sách, rồi gửi đường dẫn tới node chứa các file cần tìm.
Thành phần trung tâm này tạo ra một điểm yếu trong hệ thống vì có thể bị tấn
công hoặc có thể bị kiện cáo về bản quyền. Gnutella và những mạng tương tự
chuyển sang sử dụng mô hình phát tràn các thông điệp truy vấn (flooding query
21

21


model), mỗi truy vấn được đưa ra tương ứng với việc một thông điệp được
broadcast tới tất cả các node có trong mạng. Vì vậy, mặc dù tránh được điểm yếu
của thành phần trung tâm như trên, thì phương pháp này lại kém hiệu quả hơn so
với Napster. Cuối cùng, Freenet thực sự là phân tán, nó sử dụng cơ chế routing
dựa trên khóa, mỗi file được gán một khóa, các khóa gần giống nhau sẽ cùng được
lưu ở một tập các node. Các truy vấn sẽ được định tuyến đi trong mạng mà không
phải ghé thăm tất cả các node có trên mạng. Tuy nhiên, Freenet không đảm bảo dữ
liệu sẽ được tìm thấy.
DHT sử dụng cơ chế định tuyến dựa trên khóa trên một kiến trúc mạng chặt
chẽ hơn để có thể đạt được cả tính phân tán về tài nguyên của Gnutella và Freenet,
tính hiệu quả về truy vấn của Napster. Có một hạn chế là DHT chỉ hỗ trợ tìm kiếm

chính xác chứ không hỗ trợ tìm kiếm theo từ khóa, hay tìm kiếm theo khoảng, tuy
nhiên các chức năng này có thể triển khai mở rộng trên nền DHT.
Distributed hash tables (DHTs) là hệ thống mạng phân tán, cung cấp các dịch
vụ tìm kiếm dựa vào bảng băm. Bảng băm là một cặp ( tên, giá trị). Mỗi một node
khi tham gia vào mạng có thể dễ dàng tìm thấy giá trị mong muốn dựa vào tên của
giá trị đó.
Việc hình thành tên (khóa) và gắn các khóa đó với giá trị tương ứng được thực
hiện trực tiếp tại các node trong mạng, chính vì vậy khả năng sập mạng được giảm
tối thiểu khi các node tham gia hoặc dời bỏ mạng. Chính lý do này khiến khả năng
mở rộng của mạng DHT là cực lớn, quá trình kiểm soát việc tham gia, dời bỏ
mạng của các node cũng trở nên dễ dàng hơn. Với cấu trúc vững mạnh, DHT được
sử dụng để xây dựng nhiều ứng dụng phức tạp như: Hệ thống các file phân tán, hệ
thống chia sẻ file ngang hàng, hệ thống nội dung phân tán, tin nhắn tức thời,
Multicast… Các mạng DHT nổi tiếng thường được nhắc đến là: Bittorrent,
eDonkey network, Yacy…
Một số mạng based - DHT đầu tiên như CAN, Chord được giới thiệu cùng thời
gian năm 2001. Từ đó lĩnh vực nghiên cứu này trở lên khá sôi động. Công nghệ
DHT đã được sử dụng như một thành phần của BitTorrent.
DHT nhấn mạnh vào các thuộc tính sau:
-

Không tập trung (Decentralization): Các node tham gia cấu thành hệ thống
không có thành phần trung tâm làm điều phối mạng.

22

22


-


Khả năng mở rộng: Hệ thống vẫn có thể hoạt động hiệu quả với hàng nghìn

-

hoặc hàng triệu node.
Khả năng chịu lỗi: Hệ thống vẫn có thể làm việc ổn định ngay cả khi có các
sự kiện node tham gia, rời bỏ, lỗi diễn ra liên tục. Kỹ thuật khóa được sử
dụng để đạt được mục đích là mỗi node chỉ cần liên kết với một số ít các
node khác trong hệ thống, thường là O(logn) với n là số node tham gia. Vì
vậy sự thay đổi trong các thành viên chỉ ảnh hưởng đến một phần nhỏ của
hệ thống. Một số thiết kế DHT tìm đến tính bảo mật chống lại những người
tham gia ác tâm và cho phép người tham gia giấu danh tính, mặc dù điều
này không phổ biến trong các hệ thống P2P chia sẻ file.

Cuối cùng, DHT phải giải quyết những vấn đề cơ bản của các hệ thống phân
tán đó là cân bằng tải, tính toàn vẹn dữ liệu, hiệu năng (cụ thể là đảm bảo các hoạt
động như định tuyến, lưu trữ, truy vấn phải được thực thi nhanh chóng).
Distribute Hash Table(DHT: Cơ sở dữ liệu phân tán trên môi trường P2P)
Cơ sở dữ liệu(CSDL) trên môi trường P2P chứa cặp (key, value):
• Key: Tên nội dung.
• Value: Địa chỉ IP ( nơi lưu nội dung).
• Peer truy cập CSDL bằng cách cung cấp giá trị key, CSDL sẽ trả về giá trị


value tương ứng với giá trị key.
• Peer còn có thể chèn các cặp (key, value) mới vào CSDL.

Hình 7: Bảng băm phân tán – DHT
- Mỗi peer sẽ được gán một số ID để định danh khi tham gia vào P2P là số

nguyên nằm trong vùng[0,2n-1] (n là số nguyên cố định). Mỗi ID có thể được biểu
diễn qua chuỗi n bits.

23

23


- Để thu được mỗi trị key là một số nguyên thuộc vùng [0,2n-1] thì nó sử dụng
1 hàm băm H, H nhận key gốc và trả về giá trị key nằm trong vùng [0,2n-1] .
 Đây chính là lý do gọi nó là DHT(Distributed “Hash” Table).

- Bây giờ chúng ta có thể thấy được mỗi peer đã có 1 ID trong vùng [0,2n-1]
thì quy tắt lưu các cặp (key, value) như sau:
+ Lưu tại peer có ID=key.
+ Nếu không có peer như vậy thì lưu tại peer có ID gần nhất(ID gần nhất là
ID liền sau trong danh sách các ID).
Ví dụ: Có n=4 và các các Peers với các ID tương ứng như sau: 1, 3, 4, 5, 8,10,
12, 15.

Hình 8: Sơ đồ node mạng có cấu trúc vòng tròn
Key = 9 thì Peer liền sau là Peer 10.
Key = 15 thì Peer liền sau là Peer 1.
- Mỗi Peer chỉ biết Peer liền trước và Peer liền sau tạo nên 1 vòng tròn DHT.

Hình 9: Sơ đồ tạo DHT vòng tròn
24

24



- Khi Peer 3 muốn truy xuất giá trị tại key 15( 1111b) thì nó tìm chính nó
không thấy lưu thì sẽ hỏi peer liền sau, peer liền sau nếu không có lưu sẽ hỏi peer
liền sau nữa, cho đến khi peer nào chưa giá trị key 15 thì trả lời và dừng quá trình
truy vấn lại.
- Ngoài việc quản lý IP của Peer liền trước và liền sau, để cho quá trình truy
vấn diễn ra nhanh hơn thì Peer còn quản lý shortcut của peer khác (không phải liền
trước hay liền sau).

Hình 10: Sơ đồ quản lý shortcut peer
- Như trong hình trên thì peer 3 còn quản lý shortcut của peer 8, điều này sẽ
giúp peer 3 truy vấn nhanh hơn, giảm từ 6 còn 2 message.
- Trong mạng P2P thì có thể xảy ra là 1 Peer đến tham gia và ra đi không hề
báo trước và điều này làm cho số Peer trong vòng trong DHT thay đổi dẫn đến các
Peer khác sẽ gặp khó khăn khi truy vấn. Để giải quyết tình tình trạng này thì mỗi
Peer phải biết địa chỉ của 2 Peer liền sau nó. Mỗi Peer sẽ ping định kỳ 2 peer liền
sau đó để xác định nó còn trên mạng hay đã rút lui.

25

25


×