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

Phân bổ luồng truyền thông đa phương tiện ngang hàng theo phương thức kéo đẩy

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 (964.51 KB, 75 trang )


ðẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ðẠI HỌC CÔNG NGHỆ


Nguyễn Thị Thu Hải



PHÂN BỔ LUỒNG TRUYỀN THÔNG ðA PHƯƠNG
TIỆN NGANG HÀNG THEO PHƯƠNG THỨC KÉO
ðẨY


Ngành: Công nghệ thông tin
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số: 60.48.15

LUẬN VĂN THẠC SĨ


NGƯỜI HƯỚNG DẪN KHOA HỌC
:


TS. Nguyễn ðại Thọ




Hà Nội - 2009


3

MỤC LỤC

LỜI CAM ðOAN 1

LỜI CẢM ƠN 2

MỤC LỤC 3

DANH MỤC CÁC HÌNH VẼ, ðỒ THỊ 5

MỞ ðẦU 8

CHƯƠNG 1 – TỔNG QUAN VỀ MẠNG NGANG HÀNG 11

1.1. Khái niệm mạng ngang hàng 11

1.2. Phân loại mạng ngang hàng 12

1.2.1. Mạng ngang hàng lai ghép 12

1.2.2. Mạng ngang hàng thuần túy 12

1.2.2.1. Mạng ngang hàng thuần túy không có cấu trúc 14

1.2.2.2. Mạng ngang hàng thuần túy có cấu trúc 14

1.3. Các ứng dụng trên mạng ngang hàng 14


1.4. Mô phỏng mạng ngang hàng dùng PeerSim 15

1.4.1. Giới thiệu chung về PeerSim 15

1.4.2. Các mô hình mô phỏng trong PeerSim 16

1.4.3. Các thành phần trong PeerSim 17

1.4.4. Các lớp trong PeerSim 17

1.4.5. Quy trình thực thi một mô phỏng 18

CHƯƠNG 2 – TRUYỀN THÔNG ðA PHƯƠNG TIỆN NGANG HÀNG THEO
PHƯƠNG THỨC KÉO ðẨY XEN KẼ 19

2.1. Các mô hình truyền thông ña phương tiện 19

2.1.1. Mô hình đa phát tầng IP 19

2.1.2. Mô hình mạng phân bổ nội dung 21

4
1.2.3. Mô hình mạng ngang hàng 22

2.2. Tổng quan về các phương thức truyền thông ña phương tiện ngang hàng 23

2.2. Giao thức kéo ñẩy xen kẽ 24

2.3.1. Mô hình đồng bộ 25


2.3.2. Mô hình không đồng bộ 28

2.4. Minh họa giao thức kéo ñẩy xen kẽ 31

CHƯƠNG 3 – GIẢI PHÁP CẢI TIẾN GIAO THỨC KÉO ðẨY XEN KẼ 35

3.1. Ý tưởng chung 35

3.2. Thuật toán cải tiến thứ nhất 36

3.3. Minh họa cho các cải tiến thứ nhất 41

3.4. Thuật toán cải tiến thứ hai 44

3.5. Minh họa cho cải tiến thứ hai 48

CHƯƠNG 4 – MÔ PHỎNG VÀ ðÁNH GIÁ HIỆU NĂNG 51

4.1. Kịch bản mô phỏng và các tham số ñầu vào 51

4.2. Các thông số ñánh giá hiệu năng 52

4.3. Cấu hình chương trình mô phỏng 52

4.4. Các kết quả mô phỏng 56

4.4.1. So sánh trực tiếp hiệu năng của các thuật toán 56

4.4.2. Đánh giá biến thiên hiệu năng theo kích thước mạng 62


4.4.3. Đánh giá biến thiên hiệu năng theo kích thước danh sách hàng xóm 65

4.4.4. Đánh giá biến thiên hiệu năng theo số lượng mảnh dữ liệu 69

CHƯƠNG 5 – KẾT LUẬN VÀ PHƯƠNG HƯỚNG TIẾP THEO 73

TÀI LIỆU THAM KHẢO 75

Tiếng Anh 75


5
DANH MỤC CÁC HÌNH VẼ, ðỒ THỊ
Hình 1.

Mạng ngang hàng lai ghép 12

Hình 2.

Mạng ngang hàng thuần túy 13

Hình 3.

Lớp mạng phủ 13

Hình 4.

Mô hình mạng Network-Layer Multicast 20

Hình 5.


Mạng CDN dựa trên hạ tầng mạng 21

Hình 6.

Mô hình ñồng bộ trong trạng thái chính 25

Hình 7.

Chu kỳ kéo với ñầy ñủ trạng thái 27

Hình 8.

Chu kỳ ñẩy với ñầy ñủ trạng thái 28

Hình 9.

Cài ñặt của thuật toán kéo ñẩy xen kẽ trong việc gửi ra một yêu cầu 29

Hình 10.

Cài ñặt của thuật toán kéo ñẩy xen kẽ trong việc trả lời một yêu cầu 30

Hình 11.

Minh họa giao thức kéo ñẩy xen kẽ 31

Hình 12.

Trạng thái sở hữu dữ liệu của các máy tính tại thời ñiểm t 32


Hình 13.

Việc ñẩy dữ liệu sẽ không thành công nếu mảnh dữ liệu ñược ñẩy ñi ñã có
sẵn tại máy hàng xóm 33

Hình 14.

ðẩy dữ liệu thành công trong chu kỳ Push 33

Hình 15.

Kéo dữ liệu thành công trong chu kỳ Pull 33

Hình 16.

Kéo dữ liệu không thành công trong chu kỳ Pull 34

Hình 17.

Sơ ñồ chuyển ñổi trạng thái của một nút bất kỳ 34

Hình 18.

Hoạt ñộng của thuật toán 1 trong chu kỳ kéo 36

Hình 19.

Hoạt ñộng của thuật toán 1 trong chu kỳ ñẩy 37


Hình 20.

Minh họa cải tiến giao thức kéo ñẩy xen kẽ 41

Hình 21.

Trạng thái sở hữu dữ liệu của các máy tính tại thời ñiểm t 42

Hình 22.

Trạng thái sở hữu dữ liệu và kết quả thao tác PUSH tại thời ñiểm t+1 của
thuật toán 1 43

Hình 23.

Trạng thái sở hữu dữ liệu và kết quả thao tác PULL tại thời ñiểm t+1 của
thuật toán 1 43

Hình 24.

Hoạt ñộng của thuật toán 2 trong chu kỳ kéo – không ñổi so với thuật toán
1 44

6
Hình 25.

Hoạt ñộng của thuật toán 2 trong chu kỳ ñẩy 45

Hình 26.


Minh họa cải tiến giao thức kéo ñẩy xen kẽ 48

Hình 27.

Trạng thái sở hữu dữ liệu của các máy tính tại thời ñiểm t 49

Hình 28.

Trạng thái sở hữu dữ liệu và kết quả thao tác PUSH tại thời ñiểm t+1 của
thuật toán 2 50

Hình 29.

Mô hình mạng phủ bất ñối xứng ñược sử dụng trong mô phỏng 51

Hình 30.

So sánh thời gian hoàn thành giữa ba thuật toán cài ñặt 57

Hình 31.

So sánh ñộ trễ vận chuyển giữa ba thuật toán cài ñặt 58

Hình 32.

So sánh tỉ lệ kéo ñẩy thành công giữa ba thuật toán cài ñặt 59

Hình 33.

So sánh thời gian hoàn thành giữa ba thuật toán cài ñặt với cấu hình mạng

5000 nút, kích thước contact list là 24 và số lượng mảnh tin là 500 60

Hình 34.

So sánh ñộ trễ vận chuyển giữa ba thuật toán cài ñặt với cấu hình mạng
5000 nút, kích thước contact list là 24 và số lượng mảnh tin là 500 60

Hình 35.

So sánh tỉ lệ tiếp nhận dữ liệu thành công giữa ba thuật toán cài ñặt với
cấu hình mạng 5000 nút, kích thước contact list là 24 và số lượng mảnh tin là 500 61

Hình 36.

Tổng thời gian hoàn thành trong trường hợp kích thước mạng thay ñổi
(thuật toán 1) 62

Hình 37.

Tổng thời gian hoàn thành trong trường hợp kích thước mạng thay ñổi
(thuật toán 2) 62

Hình 38.

Tổng thời gian hoàn thành trong trường hợp kích thước mạng thay ñổi
(Thuật toán kéo ñẩy xen kẽ nguyên gốc) 63

Hình 39.

ðộ trễ vận chuyển trong trường hợp kích thước mạng thay ñổi (Thuật toán

1) 63

Hình 40.

ðộ trễ vận chuyển trong trường hợp kích thước mạng thay ñổi (Thuật toán
2) 64

Hình 41.

ðộ trễ vận chuyển trong trường hợp kích thước mạng thay ñổi (Thuật toán
kéo ñẩy xen kẽ nguyên gốc) 64

Hình 42.

Tổng thời gian hoàn thành trong trường hợp contact list size thay ñổi
(thuật toán 1) 65

Hình 43.

Tổng thời gian hoàn thành trong trường hợp contact list size thay ñổi
(thuật toán 2) 66

Hình 44.

Tổng thời gian hoàn thành trong trường hợp contact list size thay ñổi
(thuật toán kéo ñẩy xen kẽ nguyên gốc) 66

7
Hình 45.


ðộ trễ vận chuyển trong trường hợp contact list size thay ñổi (thuật toán
1) 67

Hình 46.

ðộ trễ vận chuyển trong trường hợp contact list size thay ñổi (thuật toán
2) 67

Hình 47.

ðộ trễ vận chuyển trong trường hợp contact list size thay ñổi (thuật toán
kéo ñẩy xen kẽ nguyên gốc) 68

Hình 48.

Tổng thời gian hoàn thành trong trường hợp số lượng mảnh tin thay ñổi
(thuật toán 1) 69

Hình 49.

Tổng thời gian hoàn thành trong trường hợp số lượng mảnh tin thay ñổi
(thuật toán 2) 69

Hình 50.

Tổng thời gian hoàn thành trong trường hợp số lượng mảnh tin thay ñổi
(thuật toán kéo ñẩy xen kẽ nguyên gốc) 70

Hình 51.


ðộ trễ vận chuyển trong trường hợp số lượng mảnh tin thay ñổi (thuật
toán 1) 71

Hình 52.

ðộ trễ vận chuyển trong trường hợp số lượng mảnh tin thay ñổi (thuật
toán 2) 71

Hình 53.

ðộ trễ vận chuyển trong trường hợp số lượng mảnh tin thay ñổi (thuật
toán kéo ñẩy xen kẽ nguyên gốc) 72

8

MỞ ðẦU
Ngày nay, khi máy tính và mạng Internet ngày càng phổ biến, trở thành một
phần không thể thiếu của cuộc sống hiện ñại; nhu cầu chia sẻ tài nguyên của người
dùng mạng không chỉ dừng lại ở việc gửi và nhận những dòng văn bản, những file dữ
liệu có sẵn với kích thước nhỏ thì mô hình mạng truyền thống máy phục vụ/máy khách
(Client/Server) ngày càng bộc lộ những ñiểm yếu của mình. Chi phí duy trì hoạt ñộng
của các máy phục vụ ngày càng tốn kém theo ñộ phức tạp và sự mở rộng của mạng.
Không chỉ có vậy, hoạt ñộng của mạng còn bị phụ thuộc chặt chẽ vào trạng thái của
phục vụ: nếu máy phục vụ gặp sự cố thì toàn bộ hệ thống sẽ bị ảnh hưởng… Chính bởi
vậy mà mô hình mạng ngang hàng (Peer to Peer hay P2P) với kỳ vọng khắc phục ñược
các ñiểm yếu của mạng Client/Server ñã ñược bổ sung và ngày càng thu hút sự quan
tâm của ñông ñảo người dùng, các nhà nghiên cứu mạng và ngay cả của các công ty
thương mại lớn.
Mạng ngang hàng, với các ưu ñiểm nổi bật như tốn ít chi phí xây dựng cơ sở hạ
tầng, cho phép tận dụng ñược tài nguyên của các máy tham gia vào mạng, giải quyết

ñược vấn ñề ñiểm chết trung tâm của mô hình máy phục vụ/máy khách, ñã mở ñường
cho rất nhiều nghiên cứu và ứng dụng phát triển trên hạ tầng mạng trên mọi lĩnh vực:
từ các hệ thống chia sẻ file ngang hàng ban ñầu của Napster (năm 1999) hay eDonkey,
Bittorent… thường cung cấp các file dữ liệu có kích thước hàng trăm MB tới hàng
ngàn người dùng; tới các hệ thống tìm kiếm nội dung, hội thảo qua mạng (video
conference, VoIP), và ñặc biệt là việc phân bổ các dữ liệu truyền thông ña phương tiện
từ một máy tính nguồn tới một lượng lớn người dùng.
Hầu hết các ứng dụng truyền thông ña phương tiện ñều hoạt ñộng dựa trên
nguyên lý phân chia khối dữ liệu cần phân bổ thành các mảnh dữ liệu nhỏ hơn, gọi là
các chunk (hay piece). Khi ñó, thay vì phải chuyển cả khối dữ liệu khổng lồ, các máy
tính trong mạng sẽ làm nhiệm vụ chuyển tiếp các mảnh dữ liệu nhỏ hơn tới các máy
tính hàng xóm.
Giao thức ñược sử dụng trong các ứng dụng truyền thông ña phương tiện ngang
hàng cũng rất phong phú. Một trong số các ñề xuất ñầu tiên là các giao thức phân bổ
luồng truyền thông ña phương tiện dựa trên cấu trúc cây ña phát (multicast distribution
tree) của NARADA [23], NICE [17], ZIGZAG[1]. Tuy nhiên các giao thức này chỉ
hiệu quả với các mạng máy tính có cấu trúc ổn ñịnh; các máy tính trong mạng luôn sẵn
có và ít di chuyển trong khi thực tế các mạng ngang hàng ñòi hỏi rất ít ràng buộc giữa
các máy tính thành viên. ðể khắc phục những hạn chế ñó, một loạt các giao thức mới
9
ñược ñề xuất dựa trên cơ chế kéo ñẩy ngang hàng và ñã ñược áp dụng trong các hệ
thống như CoolStreaming/DONet [24], GridMedia [14] và PRIME [16]… Trong ñó
[24] ñi theo hướng tiếp cận kéo thuần túy. Dữ liệu ñược phân mảnh thành các segment.
Các segment ñược phân phối giữa các máy tính tham gia mạng sử dụng một Buffer
Map (BM) ñể lưu trữ khả năng ñáp ứng dữ liệu của các máy tính trong mạng với bit 1
cho biết có khả năng ñáp ứng và bit 0 trong trường hợp ngược lại. Thông tin trạng thái
này ñược duy trì bởi việc ñịnh kỳ trao ñổi các BM giữa các máy tính trong mạng và là
cơ sở ñể máy tính gửi yêu cầu kéo dữ liệu tới các hàng xóm. Khác với hệ thống [24]
chỉ sử dụng phương pháp kéo thuần túy, các hệ thống [14] và [16] là sự phối hợp giữa
hai thao tác kéo và ñẩy với nhau. Trong hệ thống [14], các máy tính có nhu cầu cần

tìm kiếm dữ liệu ñầu tiên sẽ ở trạng thái kéo (pull mode) và các máy tính trung gian
trong quá trình chuyển tiếp dữ liệu thì ở trạng thái ñẩy (push mode). Còn trong [16],
mỗi máy tính sẽ tiếp nhận nội dung từ tất cả các máy cha của nó và cung cấp lại toàn
bộ nội dung nhận ñược cho các máy tính con. Các dữ liệu luôn ñược ñẩy tới từ các
máy tính cha và chuyển tiếp tới các máy tính con. Các máy tính con luôn ñóng vai trò
kéo dữ liệu trong mô hình của [16].
Như vậy trong cả [14] và [16], các thao tác kéo ñẩy thực chất luôn ñược thực
hiện bởi các máy tính khác nhau. Một nhóm máy tính luôn ở trạng thái kéo (là các máy
tính có yêu cầu dữ liệu ñầu tiên trong GridMedia [14] và các máy tính con trong [16])
và một nhóm máy tính luôn ở trạng thái ñẩy (là các máy tính trung gian trong [14] và
các máy tính cha trong [16]). Việc này sẽ dẫn tới sự lãng phí băng thông của các máy
tính kéo trong trường hợp các mảnh dữ liệu yêu cầu chưa ñược chuyển tới kịp.
Giao thức kéo ñẩy xen kẽ[3,19] ñược ñề xuất nhằm khắc phục sự lãng phí băng
thông trong [14] và [16]. Trong ñó, các máy tính tham gia sẽ ñồng thời thực hiện cả
hai thao tác kéo và ñẩy trong các chu kỳ xen kẽ nhau. Máy tính sẽ kéo về mảnh dữ liệu
có số tuần tự nhỏ nhất trong số các mảnh dữ liệu nó còn thiếu và ñẩy ñi mảnh dữ liệu
có số tuần tự lớn nhất trong số các mảnh dữ liệu mà nó ñang xử lý.
Thực tế, lúc ñầu, giao thức kéo ñẩy xen kẽ ñược xây dựng với mục ñích sử
dụng phương thức kéo ñẩy ñể phân phối dữ liệu tĩnh trong mạng ngang hàng. Sau ñó,
cùng với sự ñóng góp của cộng ñồng nghiên cứu mạng, hiện nay giao thức này ñã
ñược cải tiến, có thể ñáp ứng việc phân bổ luồng truyền thông ña phương tiện thời gian
thực. Tuy nhiên các thuật toán kéo ñẩy xen kẽ hiện ñang ñược cài ñặt vẫn còn phụ
thuộc khá nhiều vào hạ tầng mạng và chỉ hoạt ñộng hiệu quả trên các mạng có kích
thước lớn, quan hệ giữa các máy tính trong mạng chặt chẽ và có băng thông rộng.
Như ñã nói ở trên, do tính cần thiết của nhu cầu trao ñổi dữ liệu thời gian thực
trên mạng ngang hàng nên số lượng các giao thức ñược ñề xuất và sử dụng trong các
ứng dụng truyền thông ña phương tiện ngang hàng rất ña dạng và luôn là một ñề tài
thời sự cho các nhà nghiên cứu giao thức mạng tìm tòi và cải tiến. Bên cạnh các giao
10
thức dựa trên phương thức kéo ñẩy, cây ña phát ñã trình bày ở trên; còn có các giao

thức ñược cài ñặt theo phương pháp lai như GoalBit – dựa trên cơ chế cài ñặt tương tự
như Bitorrent… hay các giao thức dựa trên hạ tầng mạng, IP Multicast… Tuy nhiên,
trong phạm vi giới hạn của luận văn này, chúng tôi chỉ mới dừng lại ở việc nghiên cứu
cách thức phân bổ luồng truyền thông ña phương tiện ngang hàng dùng phương thức
kéo ñẩy, và cụ thể là giao thức kéo ñẩy xen kẽ. Dựa trên việc nghiên cứu kỹ càng cách
thức cài ñặt thuật toán của giao thức kéo ñẩy xen kẽ, chúng tôi ñã bổ sung một số cải
tiến trên thuật toán kéo ñẩy xen kẽ gốc. Chúng tôi cũng ñã sử dụng công cụ là bộ mô
phỏng mạng ngang hàng PeerSim ñể kiểm chứng tính ñúng ñắn của các giải thuật ñưa
ra qua việc thực hiện mô phỏng và ño lường các ñại lượng ñánh giá hiệu suất mạng
như ñộ trễ truyền thông, thời gian hoàn thành và tỉ lệ chuyển phát dữ liệu thành công.
Quá trình nghiên cứu, thực hiện và kết quả của nghiên cứu ñã ñược trình bày ñầy ñủ
trong 5 chương của luận văn với các nội dung cụ thể như sau:
• Chương 1: Giới thiệu tổng quan về mạng ngang hàng với các khái niệm cơ
bản nhất, cách thức phân loại và các ứng dụng trên mạng ngang hàng.
Chương 1 cũng ñồng thời ñưa ra các giới thiệu khái quát về PeerSim, một
trong những bộ mô phỏng mạng ngang hàng ñược tín nhiệm và sử dụng
rộng rãi trong cộng ñồng nghiên cứu mạng ngang hàng.
• Chương 2: Chúng tôi chú trọng ñi vào các trình bày sâu hơn về các mô hình
truyền thông ña phương tiện và phương thức kéo ñẩy xen kẽ.
• Chương 3: Mô tả chi tiết các sửa ñổi, cải tiến trên giao thức kéo ñẩy xen kẽ
mà chúng tôi ñề xuất sau một quá trình nghiên cứu kỹ càng cách thức cài ñặt
và thuật toán của giao thức kéo ñẩy xen kẽ ñi từ ý tưởng chung tới các cài
ñặt chi tiết và minh họa thuật toán.
• Chương 4: Trình bày lại cách thức thực hiện mô phỏng và sử dụng các kết
quả thu ñược ñể so sánh, ñánh giá tính hiệu quả của các thuật toán sửa ñổi
so với thuật toán gốc cũng như ảnh hưởng của các tham số mạng ñối với
hiệu suất của các thuật toán
• Chương 5: Cuối cùng là kết luận và hướng nghiên cứu trong tương lai.

11

CHƯƠNG 1 – TỔNG QUAN VỀ MẠNG NGANG
HÀNG
1.1. Khái niệm mạng ngang hàng
Trong quá trình phát triển của mạng máy tính chúng ta ñã ñược chứng kiến sự
phát triển vượt bậc của các mô hình mạng. Ban ñầu chỉ là 2 máy tính kết nối với nhau
một cách thuần túy, sau ñó là mạng LAN với kết nối vài chục máy tính trong một
phạm vi nhỏ. Không chỉ dừng lại ở ñó mô hình mạng ngày càng ñược mở rộng cả về
tính chất và quy mô thành mạng WAN, PAN với hàng nghìn máy tính kết nối với nhau
trong một phạm vi lớn hơn. Và cuối cùng là sự ra ñời của mạng Internet - vốn ñược
xem như một sự phát triển vĩ ñại của ngành công nghệ thông tin nói riêng và của toàn
thế giới nói chung. Internet là kho tài nguyên khổng lồ của loài người với rất nhiều
ứng dụng chia sẻ thông tin, mang con người trên toàn thế giới xích lại gần nhau hơn.
Hiện nay hầu hết các ứng dụng trên mạng Internet ñều ñược xây dựng theo mô
hình Client/Server với các tính năng ưu việt của nó như: các máy Client không cần cấu
hình mạnh, tiết kiệm ñược ñịa chỉ IP do có thể cấp phát ñược ñịa chỉ IP ñộng, việc bảo
trì các phần mềm phục vụ trên Server là tập trung nên rất dễ dàng. Tuy nhiên ñổi lại
trong các mô hình mạng Client/Server, chi phí ñầu tư cho các server ñó rất ñắt ñỏ. Hệ
thống ngày càng lớn thì việc mở rộng ñòi hỏi chi phí ngày càng cao cho việc nâng cấp
server hoặc thậm chí là phải bổ sung thêm server mới. Mặt khác, nếu các máy server
gặp sự cố thì toàn bộ hệ thống sẽ bị ảnh hưởng thậm chí ngừng hoạt ñộng ngay lập tức.
Ngoài ra mô hình Client/Server cũng không tận dụng ñược sức mạnh của các máy
client. Chính bởi vậy, ñể khắc phục các nhược ñiểm của mô hình Client/Server, cấu
trúc mang ngang hàng (Peer-To-Peer) ra ñời, ñang ngày càng ñược quan tâm và phát
triển rộng rãi hơn trong thời gian gần ñây.
Mạng ngang hàng (Peer-To-Peer network), còn gọi là mạng ñồng ñẳng, là cấu
trúc 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
phục vụ 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 adhoc. Mạng ngang hàng
hiện có rất 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 dữ liệu như văn bản, âm thanh, hình ảnh hoặc ñể truyền dữ liệu thời gian
thực như ñiện thoại VoIP.
Một mạng ngang hà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.
12
1.2. Phân loại mạng ngang hàng
Ta có thể phân loại các mạng ngang hàng hiện nay theo tiêu chí về mức ñộ tập
trung của chúng như sau:
1.2.1. Mạng ngang hàng lai ghép

Hình 1. Mạng ngang hàng lai ghép
Gọi là mạng ngang hàng lai ghép vì trong mạng vẫn có một máy chủ trung tâm
dùng ñể lưu trữ thông tin của các máy trạm thành viên và trả lời các truy vấn. Tuy
nhiên, tài nguyên phân phối của mạng không nằm trên máy chủ ñó mà nằm trên chính
các máy trạm thành viên. Máy chủ trung tâm chỉ có vai trò lưu trữ thông tin về các
máy trạm thành viên và các thông tin tài nguyên ñược chia sẻ ñể có thể sẵn sàng cung
cấp các thông tin liên quan mỗi khi có một máy trạm gửi yêu cầu tìm kiếm tới. Các
mạng ngang hàng lai ghép này có thể sử dụng các trạm ñịnh tuyến ñể xác ñịnh ñia chỉ
IP của các máy trạm.
Các ñại diện cho mạng ngang hàng lai ghép ñược biết ñến nhiều nhất là Napster
và BitTorrent.
1.2.2. Mạng ngang hàng thuần túy
Khác với mạng ngang hàng lai ghép, mạng ngang hàng thuần túy là một mạng
ngang hàng ñúng nghĩa, không có máy chủ trung tâm quản lý mạng, không có bộ ñịnh
13
tuyến trung tâm. Các máy trạm tham gia mạng có vai trò vừa là máy chủ vừa là máy
khách và có khả năng ñịnh tuyến ñộc lập.


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

Hình 3. Lớp mạng phủ
Mạng phủ (Overlay network) ñược xây dựng bên trên một hoặc nhiều mạng vật
lý ñang tồn tại, bao gồm tất cả các nút mạng ñại diện cho các máy tham gia và các liên
kết giữa các nút mạng này. Một liên kết tồn tại giữa hai nút mạng khi một nút mạng
này biết vị trí của nút mạng kia. Dựa vào cấu trúc liên kết giữa các nút mạng trong
mạng ta có thể phân loại mạng ngang hàng thuần túy thành 2 loại: có cấu trúc hay
không cấu trúc.
14
1.2.2.1. Mạng ngang hàng thuần túy không có cấu trúc
Mạng ngang hàng ñược xem là thuần túy không có cấu trúc khi các liên kết
giữa các nút mạng trong mạng ñược thiết lập một cách ngẫu nhiên, không theo qui luật
nào. Mạng ngang hàng thuần túy không có cấu trúc dễ dàng ñược xây dựng: một máy
mới khi muốn tham gia mạng có thể lấy luôn các liên kết có sẵn của một máy khác
ñang ở trong mạng và sau ñó dần dần bổ sung thêm các liên kết mới của riêng mình
mà không cần bất cứ một thủ tục nào khác. Khi một máy muốn tìm một dữ liệu trong
mạng ngang hàng không cấu trúc, yêu cầu tìm kiếm sẽ ñược truyền trên cả mạng ñể
tìm ra càng nhiều máy chia sẻ càng tốt. Nhược ñiểm có thể thấy ngay của hệ thống này
là không có gì ñảm bảo việc tìm kiếm sẽ thành công. ðối với việc 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 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 các máy tính và dữ liệu mà mỗi máy tính quản lý trong mạng, do ñó yêu
cầu tìm kiếm cần ñượ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.
Hầu hết các mạng ngang hàng phổ biến là không cấu trúc như Napster,

Gnutella, Fasttrack và eDonkey2000.
1.2.2.2. Mạng ngang hàng thuần túy có cấu trúc
ðể khắc phục nhược ñiểm của các mạng ngang hàng không có cấu trúc, mạng
ngang hàng có cấu trúc ñược xây dựng 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 ngang hàng 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 ñược 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ả.
Một số mạng ngang hàng có cấu trúc nổi tiếng bao gồm Chord, CAN,
Kademlia, Pastry và Tapestry.
1.3. Các ứng dụng trên mạng ngang hàng
Cùng với sự phát triển của kiến trúc mạng ngang hàng, các ứng dụng trên mạng
ngang hàng cũng ngày một phát triển và trở lên phổ biến. Các ứng dụng thường xuyên
gặp nhất là các ứng dụng chia sẻ file như Napster [11], Kazaa [8] và Gnutella [18].
15
Các dịch vụ âm nhạc của Napster cho thấy công nghệ P2P khá tin cậy, cho phép cung
cấp và thiết lập một mạng ngang hàng cỡ lớn với nǎng lực rất mạnh từ các máy tính cá
nhân bình thường.
Trong khi ñó, Freenet [17] lại nhằm tới mục ñích xây dựng một nơi lưu trữ
không tập trung, nơi mà người dùng có thể ñưa lên các thông tin và dữ liệu của bản
thân mình lên ñó một cách tự do, không giới hạn. Freenet không có các máy chủ trung
tâm và thuật toán tìm kiếm ñược xây dựng sử dụng các bảng băm phân tán. Giao tiếp
giữa các nút mạng của Freenet ñều ñược mã hóa và ñịnh tuyến thông qua các nút mạng
khác nên sẽ rất khó ñể xác ñịnh ñược nút mạng nào thực sự yêu cầu thông tin và nội
dung của nó nhằm ñảm bảo tính nặc danh, tự do, không giới hạn của hệ thống.
Ngoài ra, công nghệ P2P còn ñược áp dụng trong các hệ thống trò chuyện trực
tuyến (Instant messaging systems) như ICQ [7], cho phép người dùng trao ñổi thông
tin với nhau qua một phương thức P2P lai ghép.

Một ứng dụng khác cũng áp dụng khá thành công mô hình mạng ngang hàng là
việc tận dụng khả năng tính toán của các máy tham gia mạng cho một mục ñích chung
như Seti@home [15] phục vụ cho việc nghiên cứu và tìm kiếm trí tuệ ngoài trái ñất.
Các ứng dụng truyền thông ña phương tiện ngang hàng lại có những tính chất
hoàn toàn khác với các hệ thống P2P ñược mô tả ở trên. Các dữ liệu ñược chia sẻ trong
các hệ thống P2P ở trên hầu hết chỉ có thể ñược mở ra bởi người dùng sau khi toàn bộ
dữ liệu ñã ñược download xong trong khi với các dữ liệu ña phương tiện thời gian
thực, dữ liệu ñó lại ñược sử dụng, chạy (play) ngay trong khi ñang ñược download về
máy trạm. Mặt khác, nếu dữ liệu trong các hệ thống trò chuyện trực tuyến thường ở
dạng text và có kích thước rất nhỏ, chỉ vài Kilobyte, thì dữ liệu của các ứng dụng
truyền thông ña phương tiện lại có kích thước rất lớn, có thể lên tới hàng nghìn
Kilobytes. Do ñó, các hệ thống truyền thông ña phương tiện thường ñòi hỏi ñặc biệt
nhiều băng thông của mạng và bị nhiều ràng buộc về ñộ trễ thời gian ñáp ứng.
1.4. Mô phỏng mạng ngang hàng dùng PeerSim
1.4.1. Giới thiệu chung về PeerSim
PeerSim[12] là một bộ mô phỏng mạng ngang hàng, ñược xây dựng trên ngôn
ngữ lập trình Java, cho phép người dùng thiết lập nhiều loại kịch bản mô phỏng, quyết
ñịnh số lượng máy tính (có thể lên tới hàng triệu máy tính), cấu trúc liên kết của mạng,
mức ñộ hoạt ñộng của các máy tính trong mạng… một cách dễ dàng thông qua việc
thiết lập các tham số của chương trình. Không chỉ vậy, PeerSim – vốn ñược thiết kế
theo hướng module – còn cho phép người dùng có thể bổ sung thêm các thành phần
mới dưới dạng các module và các lớp (class) Java; tạo ñiều kiện giúp người dùng có
16
thể tự thiết kế, xây dựng bổ sung các giao thức ñề xuất của mình vào bộ mô phỏng một
cách dễ dàng.
PeerSim ñược bắt ñầu dưới dự án BISON [4] và ñược tiếp tục phát triển dưới
dự án DELIS [6]. Hiện nay việc phát triển PeerSim ở Trento (Alberto Montresor, Gian
Paolo Jesi) ñang ñược hỗ trợ bởi dự án Napa-Wine [9] . PeerSim ñược viết hoàn toàn
bằng JAVA và ñược phát hành dưới hình thức mã nguồn mở GPL. Theo thống kê ñến
cuối năm 2008 ñã có 140 bài báo sử dụng PeerSim ñể thực hiện các mô phỏng mạng

ngang hàng của mình, trong ñó có tới 108 bài báo viết bởi các tác giả không thuộc
nhóm phát triển PeerSim [18].
1.4.2. Các mô hình mô phỏng trong PeerSim
PeerSim hỗ trợ hai loại mô hình mô phỏng, một mô hình ñơn giản hóa dựa trên
chu kỳ gọi là cycle-based và một mô hình phức tạp và giống thực tế hơn gọi là event-
based.
Trong mô hình ñơn giản, mỗi nút thực hiện các tác vụ giống nhau trong “cùng
một thời ñiểm” – hiểu theo mức trừu tượng ñơn giản nhất. Thực tế, khi chúng ta nói
các nút ñang thực hiện các hoạt ñộng là chúng ta ñang ngầm hiểu tới các giao thức
ñược cài ñặt trong mỗi nút.
Trong mô hình cycle-based, tất cả nút ñều ñược ñồng bộ hóa. ðơn vị thời gian
là chu kỳ và trong mỗi chu kỳ các nút ñược kích hoạt theo một thứ tự tuần tự; thực thi
giao thức. Khi nó hoàn thành xong xuôi thì những nút khác mới ñược kích hoạt… cứ
nối tiếp như vậy: không có sự thực thi ñồng thời giữa các nút. Mô hình này cho phép
các giao thức trừu tượng dễ dàng ñược cài ñặt và thực thi.
Ngược lại, trong mô hình event-based, tất cả các nút ñều ñộc lập và chạy ñồng
thời. Mỗi nút là một thực thể ñộc lập. Khi giao thức trong nút ñược kích hoạt, nút sẽ
hoạt ñộng tuân theo qui tắc của giao thức. Tùy theo cách thức cài ñặt của giao thức,
chúng có thể bổ sung thêm các sự kiện vào hàng ñợi của bộ mô phỏng. Các sự kiện
này có thể liên quan và gây ra các thay ñổi cho các nút khác.
Mô hình event-based ñòi hỏi một số các ñối tượng bắt buộc như một bộ chuyển
tiếp (delay) xác ñịnh khi nào sự kiện ñược bổ sung vào hàng ñợi, ñịnh danh giao thức
ñể cài ñặt các sự kiện.
Một số các ñối tượng khác cũng là bắt buộc thiết lập cho mọi mô phỏng như
kích thước mạng (network size), giao thức (Protocols), ñiều khiển (Control)… Các ñối
tượng ñó ñóng vai trò quan trọng trong việc khởi tạo, ñiều khiển và sửa ñổi các thuộc
tính của giao thức và tham số trong suốt quá trình mô phỏng.
17
1.4.3. Các thành phần trong PeerSim
Các giao diện (interface) quan trọng của PeerSim là: Control, Node, Protocol,

Linkable, CDProtocol and EDProtocol. Tất cả ñối tượng này ñược tạo ra trong suốt
quá trình mô phỏng và tham gia trực tiếp vào quá trình thực thi của mô phỏng.
Giao diện ñiều khiển (Control interface) ñược cài ñặt với hai lớp chính là
Initializers – nhằm thiết lập các tham số khởi tạo cho mô phỏng và lớp Observers ñể
quan sát, theo dõi nhằm thực hiện các thao tác theo vết trong suốt quá trình thực thi mô
phỏng.
Node interface là một lớp cài ñặt một nút mạng với các thuộc tính cơ bản như
ñịa chỉ mạng, giao thức sử dụng. Trong mô phỏng, các Node có thể ñược bổ sung hoặc
loại bỏ một cách tự ñộng.
Protocol interface ñược dùng ñể ñịnh nghĩa các giao thức, ñịnh nghĩa cách thức
liên kết, lưu trữ kết nối giữa các nút, và cung cấp một tập các phương thức ñể truy cập
ñến những nút hàng xóm.
Linkable Interface: ñược dùng ñể ñịnh nghĩa loại kết nối giữa các nút mạng là
ñối xứng hay bất ñối xứng.
CDProtocol interface: Giao diện cài ñặt cho mô hình mô phỏng dựa trên chu kỳ.
EDProtocol interface: Giao diện cài ñặt cho mô hình mô phỏng dựa trên sự
kiện.
1.4.4. Các lớp trong PeerSim
PeerSim có sẵn một tập các lớp ñược dùng cho việc xây dựng các mạng che
phủ (Network overlay) khác nhau. Lớp OverlayGrap ñược dùng ñể xây dựng cách thức
kết nối giữa các nút mạng. Là một cài ñặt của giao diện Linkable. Trong mô phỏng,
lớp OverlayGrap ñược sửa ñổi ñể giúp xây dựng một mạng ñối xứng bậc k có N nút.
PeerSim cũng hỗ trợ các lớp cho tầng vận chuyển (transport layer), ñiển hình là
lớp Transport là một giao diện vận chuyển tổng quát giúp chuyển tiếp gói tin từ nút
nguồn. Hay lớp UniformRandomTransport thì giúp cài ñặt các mô phỏng liên quan tới
các cách thức phân phối gói tin ñáng tin cậy. Nó có hai tham số trong tập tin cấu hình
biểu diễn giá trị tối thiểu và tối ña của ñộ trễ gói tin. Khi ñó các gói tin ñược nhận tại
nút ñích với một ñộ trễ ngẫu nhiên ñồng dạng (uniform random delay) trong giới hạn
giá trị tối thiểu và tối ña của ñộ trễ.
Ngoài ra, lớp UnrelialeTransport cho phép kết hợp với các lớp Transport khác,

ví dụ lớp UniformRandomTransport, nhằm mô phỏng sự mất mát gói tin. Xác suất mất
gói tin khi ñó có thể ñược thiết lập trong file cấu hình qua việc thay ñổi giá trị của
“drop probability’ (xác suất thả).
18
Chúng ta vẫn hay nói thông ñiệp (message) như là một cách thức truyền thông
nhưng thật ra cuối cùng các thông ñiệp không phải là ñối tượng ñược tạo ra và lan
truyền trong bộ mô phỏng PeerSim. Bản chất của các “message”, hay còn gọi là các
gói tin (packets) là những sự kiện ñơn giản. Những sự kiện này ñược bổ sung trong
hàng ñợi mô phỏng với một ñộ trễ nào ñó. Bộ lập lịch sẽ thực hiện các sự kiện trong
hàng ñợi, lần lượt từng sự kiện một, theo thời gian mô phỏng. Chúng ta ñều biết rằng
mỗi sự kiện ñều có một ñộ trễ kèm theo. ðiều này có nghĩa là, ví dụ ở thời ñiểm t
1
= 4
một sự kiện j với ñộ trễ d
j
= 5 ñược thêm vào hàng ñợi, Nó sẽ ñược ghi vào chương
trình ở thời ñiểm t’ = t
i
+ d
j
= 4 + 5 = 9, ñiều này có nghĩa là ở thời ñiểm T = 9 sự kiện
j sẽ bị lấy ra bởi bộ lập lịch từ hàng ñợi của bộ mô phỏng và thực thi với 1 giao thức
phù hợp.
Lớp mạng truyền thông trong PeerSim thì ñược ñặt ở mức trừu tượng (abstract
level), cần phải ñược mô hình hóa và thực thi bởi người dùng và ñược thiết lập trong
file cấu hình qua hai giá trị về khả năng truy cập và ñộ trễ trao ñổi thông ñiệp.
1.4.5. Quy trình thực thi một mô phỏng
Khi bộ mô phỏng ñược thực thi, ñầu tiên nó sẽ ñọc tập tin cấu hình nơi chứa
ñựng các tham số cho mô phỏng, thiết lập các tham số “cơ bản” cho mô phỏng như
thời gian bắt ñầu, thời gian kết thúc và các tham số cho những ñối tượng liên quan

khác (Control và Protocol).
Bước thứ hai, bộ mô phỏng khởi tạo mạng, các nút mạng và các giao thức có
liên quan, theo những giá trị ñược thiết lập trong tập tin cấu hình. Các ñối tượng
Control ñược thiết lập thực thi một lần duy nhất trong mô phỏng sẽ ñược khởi ñộng
trong bước này – các ñối tượng này còn ñược gọi là Initializers.
Sau khởi tạo giai ñoạn khởi tạo này, các ñối tượng (bao gồm các giao thức và
các ñiều khiển) ñược thực thi. Tại mỗi thời ñiểm, bộ lập lịch sẽ ghi vào chương trình
những sự kiện trong hàng ñợi ñang ñược thực hiện, những bộ quan sát (observes) ñược
thực thi một cách ñịnh kỳ, khi bộ mộ phỏng kết thúc, các observes hoàn toàn có thể
tiếp tục thực thi như ñịnh nghĩa trong tập tin cấu hình.
19

CHƯƠNG 2 – TRUYỀN THÔNG ðA PHƯƠNG
TIỆN NGANG HÀNG THEO PHƯƠNG THỨC
KÉO ðẨY XEN KẼ
2.1. Các mô hình truyền thông ña phương tiện
Một thách thức với các ứng dụng truyền thông ña phương tiện là các nội dung
ña phương tiện cần phải ñược chuyển phát liên tục với ñộ trễ thấp nhất có thể và chất
lượng chuyển phát cũng cần ñược ñảm bảo trong khi kích thước của dữ liệu có thể lên
tới hàng nghìn Kilobytes.
Các ứng dụng truyền thông ña phương tiện có thể ñược chia làm hai lớp: theo
yêu cầu và truyền phát thời gian thực. Truyền thông theo yêu cầu (Video on Demand)
bao gồm một tập các dữ liệu ña phương tiện với kích thước cố ñịnh, ñược lưu trữ tại
các Server trong một khoảng thời gian dài và luôn có sẵn. Với các ứng dụng truyền
thông theo yêu cầu này, ñộ trễ không phải là vấn ñề nghiêm trọng nhất. ðiều này hoàn
toàn khác với các ứng dụng truyền phát thời gian thực (Live Streams). Dữ liệu thời
gian thực chỉ có sẵn trong một khoảng thời gian nhất ñịnh và có kích thước không xác
ñịnh trước, chẳng hạn như việc truyền hình trực tiếp một trận bóng ñá trên mạng, hay
một buổi tường thuật trực tiếp cuộc họp hội nghị thượng ñỉnh về khí hậu toàn cầu…
Các ứng dụng thời gian thực ñòi hỏi rất ngặt nghèo về mặt thời gian. Với các kiến trúc

mạng Client/Server, việc truyền phát thời gian thực này luôn là một vấn ñề rất nan giải
vì các máy phục vụ Server luôn luôn phải duy trì một kết nối liên tục tới mỗi Client.
Do ñó số Client càng nhiều, Server càng phải duy trì nhiều kết nối ñồng thời (Multiple
IP Unicast) làm tiêu tốn ngày càng nhiều băng thông của mạng và chất lượng giảm sút
rất rõ rệt. Không chỉ vậy, các máy Server còn phải tiêu tốn rất nhiều năng lực xử lý ñể
ñảm bảo duy trì trạng thái phục vụ các Client kết nối tới.
Hiện tại, ñã có rất nhiều kỹ thuật ñược ñưa ra ñể khắc phục các ñiểm yếu của
kiểu kiến trúc mạng Client/Server trong việc truyền phát dữ liệu thời gian thực như IP
Multicast - một giải pháp ở lớp IP; Content-Distribution Network (CDN) dựa trên hạ
tầng mạng; và các giao thức ngang hàng P2P dựa trên ý tưởng khai thác tối ña các tài
nguyên máy tính tham gia trong mạng ngang hàng.
2.1.1. Mô hình ña phát tầng IP
Mô hình ña phát tầng IP – IP Multicast [3] là một giải pháp dựa trên phần cứng
với các bộ ñịnh tuyến ñược cấu hình ñặc biệt ñể có thể ñảm nhiệm ñồng thời chức
năng của các ñiểm chuyển phát dữ liệu. Khi một máy có có nhu cầu tìm kiếm dữ liệu
20
ñược chia sẻ trên mạng, máy tính này chỉ cần thông báo cho bộ ñịnh tuyến biết nó
muốn nhận thông tin từ một nguồn Multicast . Bộ ñịnh tuyến này sẽ báo cho bộ ñịnh
tuyến tiếp theo gần với nguồn của Multicast biết ñiều ñó. Quá trình này ñược tiếp tục
ñến khi thiết lập ñược một ñường ñi từ nguồn Multicast ñến các máy tiếp nhận
(receivers). Kết quả là chỉ có các bộ ñịnh tuyến cần thiết mới nhận ñược các gói
multicast. Các bộ ñịnh tuyến không tham gia sẽ không nhận ñược gói tin, việc này làm
giảm lưu thông và giúp cho tiến trình tìm kiếm hiệu quả hơn. Cũng nhờ ñó mà IP
Multicast có thể chuyển phát dữ liệu nguồn tới nhiều người tiếp nhận cùng một lúc mà
không làm tiêu tốn thêm tải trên cả các máy nguồn Multicast hay các máy tiếp nhận.
Kỹ thuật này cũng sử dụng ít băng thông mạng nhất trong số các giải pháp ñưa ra do
các gói tin Multicast chỉ ñược sao chép trong mạng bởi các bộ ñịnh tuyến mà nó ñi
qua. Không chỉ vậy, một máy nguồn sử dụng IP Multicast vẫn có thể duy trì song song
các kết nối IP Unicast tới tất cả các máy tiếp nhận. ðiều ñó có nghĩa là các gói tin vừa
có thể ñược gửi tới nhiều máy nhận một lúc vừa có thể ñược gửi như một gói tin ñơn

tới một máy nhận duy nhất.

Hình 4. Mô hình mạng Network-Layer Multicast
Hiện nay, có rất nhiều ứng dụng sử dụng IP Multicast như các ứng dụng hội
thảo qua mạng (videoconferencing), giao tiếp trong các liên hiệp công ty (corporate
communications), lớp học từ xa (distance learning)…
Thực tế là IP Multicast thực sự là một giải pháp tối ưu cho các ứng dụng truyền
thông ña phương tiện trên mạng. Tuy nhiên nhược ñiểm duy nhất của giải pháp là
không phải mọi thiết bị ñịnh tuyến (router) ñều có thể hỗ trợ ñược IP Multicast.
21
2.1.2. Mô hình mạng phân bổ nội dung
Hầu hết các ứng dụng ñược xây dựng ñể giải quyết vấn ñề truyền thông ña
phương tiện trên Internet hiện nay ñều ñược xây dựng trên lớp ứng dụng multicast,
trong ñó các máy trạm ñược xem như hoạt ñộng trên một mạng phủ (Overlay
network). Các ứng dụng này làm tăng vai trò của các liên kết trong mạng, hầu hết ñều
không làm thay ñổi hạ tầng mạng mà chỉ cài ñặt các chức năng chuyển tiếp multicast
tại các máy trạm ñầu cuối và dùng IP unicast ñể bù ñắp các ñiểm yếu của IP Multicast.
Một trong các ứng dụng dạng này là mạng phân phối nội dung CDN (Content Delivery
Networks).

Hình 5. Mạng CDN dựa trên hạ tầng mạng
Content Delivery Networks (CDN), ñược ñề xuất ñầu tiên vào năm 1998, là
mạng phân phối nội dung hoạt ñộng dựa trên nguyên tắc sao chép dữ liệu từ một máy
Server ban ñầu tới nhiều máy tính thay thế khác trong mạng tương tự với cơ chế
Cache. CDN là một hệ thống các máy tính chứa các dữ liệu sao chép, ñược ñặt tại
nhiều nơi trong mạng. Các máy này ñược xem như các máy thay thế Server ñể lưu trữ
và phân phối nội dung tới các máy Client trong mạng nhằm giảm bớt tải trên các máy
Server thật, như Akamai [2]. Các máy Client sẽ truy xuất dữ liệu qua các máy này thay
vì truy cập trực tiếp tới máy Server ban ñầu. Cách tiếp cận này giúp làm tăng ñáng kể
hiệu suất của hệ thống do ñược bổ sung thêm các máy server mới tuy nhiên lại tương

ñối ñắt ñỏ.
22
1.2.3. Mô hình mạng ngang hàng
Trong truyền thông ña phương tiện ngang hàng, một tập con các nút mạng chứa
nội dung và phân phối chúng tới các nút mạng tham gia khác. ðiều này ñòi hỏi các
máy tính cần lưu trữ và thực hiện nội dung trong suốt quá trình truyền nhận dữ liệu;
ñồng thời sau ñó, sẽ ñóng vai trò máy phục vụ, phát lại các dữ liệu ñã nhận ñược tới
các máy tính khác trong mạng. Do vậy, số lượng các máy tính có khả năng cung cấp
dữ liệu ngày một tăng theo thời gian, giúp mở rộng dung lượng của toàn hệ thống và
nội dung ña phương tiện có thể ñược truyền phát lại từ bất kỳ máy tính nào trong
mạng, không còn bị giới hạn trong số các máy tính ñầu tiên chứa dữ liệu.
Mô hình này giúp giải quyết phần lớn các vấn ñề của các hệ thống truyền thông
ña phương tiện trên diện rộng (large scale streaming systems). Bởi vì các máy tính có
thể truy xuất dữ liệu trực tiếp từ nguồn phát và phân phối dữ liệu lại tới các máy tính
khác do ñó sẽ không gây ra hiện tượng tắc nghẽn băng thông (bandwidth bottleneck)
tại máy nguồn ñầu tiên của dữ liệu. Mô hình này cũng không cần tới các Server chứa
nội dung và không phải chịu các phí tổn từ các Server ñó. Tuy nhiên mô hình này vẫn
còn một vài nhược ñiểm:
• ðộ trễ ñầu cuối (end-to-end delay) giữa máy tính nguồn – chứa dữ liệu ñầu
tiên và máy tính ñích yêu cầu còn cao.
• Sự rủi ro ñến từ các máy trạm tham gia trong mạng: do các máy có thể
tham gia và rời bỏ mạng bất cứ lúc nào nên khó có thể lường trước ñược
trạng thái và hành vi của các máy tham gia vào mạng.
• Có thể gây ra hiện tượng chậm hoặc làm mất gói tin.
Một trong các cách tiếp cận ñơn giản nhất cho việc phân phối dữ liệu theo hình
thức này là ñầu tiên upload toàn bộ dữ liệu tới chỉ một máy tính duy nhất. Sau khi máy
tính ñó hoàn tất việc download dữ liệu thì nó sẽ bắt ñầu truyền lại dữ liệu tới máy tính
khác. Tuy nhiên, cách thức tiếp cận này ñối mặt với rất nhiều vấn ñề: Nếu dữ liệu có
kích thước lớn sẽ ñòi hỏi rất nhiều thời gian ñể hoàn tất quá trình download toàn bộ dữ
liệu tới chỉ một máy tính tại một thời ñiểm hoặc giả sử có lỗi xảy ra trong quá trình

truyền dữ liệu làm dữ liệu bị lỗi và không thể sử dụng ñược nữa; khi ñó băng thông ñã
sử dụng sẽ trở thành lãng phí thậm chí nếu lỗi không ñược phát hiện sớm, dữ liệu ñược
phân phối tiếp theo sẽ bị sai lệch so với dữ liệu ban ñầu…
Các giao thức phân phối dữ liệu trong các hệ thống trao ñổi file (File Swarming
Systems) hiện tại ñã không còn ñi theo cách tiếp cận ñơn giản lúc ñầu ñó nữa. Chúng
chia nhỏ các file thành các khối có kích thước cố ñịnh. Các khối dữ liệu ñó ñược gọi là
pieces hoặc chunk. Do kích thước nhỏ nên một chunk sẽ ñảm bảo tải chuyển tiếp giữa
các máy tính là thấp nhất và thời gian download cũng nhanh hơn hẳn việc download
toàn bộ file. Và lẽ dĩ nhiên, trong trường hợp có lỗi xảy ra, chúng ta cũng chỉ tốn một
23
lượng tài nguyên nhỏ ñể download chunk trong một khoảng thời gian ngắn mà thôi.
Sau ñó, các máy tính nhận ñược chunk sẽ lại tiếp tục chuyển tiếp các chunk ñó tới các
máy lân cận trong cùng lúc tiếp tục download các chunk còn lại mà không phải chờ
ñợi toàn bộ file ñược download về máy như lúc ñầu.
2.2. Tổng quan về các phương thức truyền thông ña
phương tiện ngang hàng
Mục tiêu chính của các thiết kế trong hệ thống video streaming là:
• Các thông tin cần ñược chuyển phát trong một giới hạn thời gian
• Cần phải sử dụng một cách hiệu quả băng thông cho phép
Bên cạnh ñó hệ thống cần phải ñơn giản, dễ hồi phục và có khả năng thích ứng,
biến ñổi tùy theo số lượng người dùng và ñộ dài của luồng dữ liệu. Trong mô hình
ngang hàng, sự truyền phát thông tin có thể ñược chia làm ba dạng thức chính:
• ðẩy (Push): Các mảnh dữ liệu ñược chuyển xuống từ một máy trạm (máy
cha) xuống máy trạm khác (máy con) mà không cần thông báo trước với
máy con về gói dữ liệu sẽ ñược chuyển tới. Chính vì vậy, trong các mạng
không có cấu trúc hoặc có nhiều máy cha, nhiều mảnh dữ liệu có thể ñược
chuyển tới một máy trạm tại cùng một thời ñiểm trong khi có những mảnh
dữ liệu không bao giờ ñược chuyển tới máy con do thất lạc trên ñường
truyền. Phương thức ñẩy thường ñược kết hợp trong các mạng có cấu trúc
hình cây như [4], [5], [13]. Trong trường hợp các máy tính trong mạng có

mối quan hệ hàng xóm chặt chẽ và lâu dài thì phương thức này ñược sử
dụng rất hiệu quả
• Kéo (Pull): Ngược lại với phương thức ñẩy, trong phương thức kéo, các
máy con ñóng vai trò chủ ñộng yêu cầu dữ liệu từ máy cha mà không cần
biết máy cha có chứa dữ liệu hay không. Việc trùng lặp dữ liệu ở ñây không
phải là vấn ñề lớn, mà vấn ñề chủ yếu là khả năng khan hiếm dữ liệu khi
một máy con không thể nào tìm thấy bất kỳ máy cha nào có chứa dữ liệu.
Phương thức này thường ñược sử dụng trong các hệ thống swarming không
có cấu trúc, nơi mà một máy tính có thể có nhiều máy cha. Tuy nhiên trong
thực tế, các hệ thống ñều cho phép các máy tính trao ñổi các thông tin với
nhau về các khối dữ liệu nó có do ñó một mạng kéo thuần túy thường ñược
sử dụng như một mô hình tham chiếu.
• Dựa trên trạng thái (Status-based): Có những hệ thống ñược xây dựng
dựa trên trạng thái download dữ liệu của các máy tính. Trong ñó trạng thái
của các máy tính ñược trao ñổi thông qua một bảng trạng thái; ví dụ như
một bảng chứa các thông tin trạng thái dạng bitmap: 0 là thiếu dữ liệu, 1 là
24
ngược lại. Dữ liệu sẽ ñược trao ñổi dựa trên kết quả dàn xếp giữa các máy
tính trong mạng.
Các hệ thống kéo ñẩy thuần túy tương ñối ñơn giản và còn bị hạn chế trong việc
trùng lặp và khan hiếm dữ liệu. Ngoài ra, một hạn chế khác là mỗi phương thức chỉ áp
dụng ñược trong một loại mạng có cấu trúc hoặc phi cấu trúc cụ thể. Gần ñây, ñã có
nhiều bài báo cải tiến phương thức kéo ñẩy bằng cách kết hợp cả hai kỹ thuật kéo và
ñẩy ([10], [16]). Hầu hết trong số ñó sử dụng ñẩy như một cách thức phát tán thông tin
nhanh chóng và kéo ñể nhằm bù ñắp lại những lỗ hổng còn sót lại trong luồng truyền
thông nhận ñược hoặc ñể chuyển dữ liệu vào các cây khác nhau trong các hệ thống có
cấu trúc ña cây (multiple-tree structure).
2.2. Giao thức kéo ñẩy xen kẽ
Giao thức kéo ñẩy xen kẽ cũng là một trong số các giao thức ñược ñề xuất
nhằm cải tiến phương pháp kéo ñẩy thuần túy ban ñầu. Tuy nhiên khác với các phương

pháp ñược ñề cập tới trong các bài báo [10] và [16], phương pháp kéo ñẩy xen kẽ -
như tên gọi của nó - kết hợp hai phương thức kéo và ñẩy xen kẽ với nhau một cách
thông minh, thông qua một chính sách lựa chọn các máy trạm khéo léo mà không cần
phải duy trì việc trao ñổi thông tin về trạng thái download các mảnh dữ liệu giữa các
máy tính với nhau.
ðể ñơn giản, chúng ta sẽ xem xét một hệ thống chỉ có một nguồn phát dữ liệu,
trong ñó nội dung ñược phân tách thành các mảnh nhỏ gọi là chunk (hay piece) và
ñược trao ñổi giữa các máy tính trong mạng một cách ñộc lập. Các mảnh dữ liệu ñược
tạo ra với một tốc ñộ không ñổi r
str
, tốc ñộ này có thể là chính tốc ñộ truyền phát dữ
liệu hoặc ñơn giản hơn là tốc ñộ dịch vụ cho việc truyền file. Mỗi mảnh dữ liệu ñều có
một số tuần tự kèm theo, phản ánh vị trí của mảnh dữ liệu ñó trong dữ liệu gốc. Mỗi
máy tính trong mạng sẽ thực hiện luân phiên phương thức kéo ñẩy và có một tập hữu
hạn các máy hàng xóm ñược chỉ ra trong danh sách hàng xóm lưu trữ tại chính máy
tính ñó. Danh sách ñó ñược gọi là contact list. Giả thiết kích thước của danh sách ñó là
k; khi ñó máy trạm P trong mạng chỉ có thể liên lạc với k máy trong danh sách hàng
xóm của nó. Tuy nhiên P hoàn toàn có thể ñược gọi tới từ một máy trạm khác không
nằm trong danh sách hàng xóm của P.
Trong chế ñộ ñẩy, máy trạm P sẽ lựa chọn hàng xóm một cách ngẫu nhiên và
ñẩy một mảnh dữ liệu tới hàng xóm ñó. Nếu máy hàng xóm chưa có mảnh dữ liệu ñó
và còn trống băng thông cho việc download, P sẽ ñẩy mảnh dữ liệu ñó sang bên máy
hàng xóm. Nếu máy hàng xóm ñã chứa mảnh dữ liệu ñó hoặc không còn băng thông
trống ñể download dữ liệu thì việc ñẩy sẽ bị hủy bỏ.
25
Trong chế ñộ kéo, máy trạm P cũng sẽ lựa chọn ngẫu nhiên một máy hàng xóm
và gửi yêu cầu dữ liệu cần lấy tới máy ñó. Nếu máy hàng xóm ñang có chứa mảnh dữ
liệu ñược yêu cầu ñó và hiện tại nó ñang không upload dữ liệu nào tới các máy tính
khác, nó sẽ chấp nhận yêu cầu kéo dữ liệu từ P, ngược lại, nó sẽ từ chối yêu cầu.
Cơ chế lựa chọn mảnh dữ liệu ñể ñẩy ñi hoặc kéo về, như ñã nói ở trên, luôn là

một yêu cầu quan trọng nhất của thiết kế, ñặc biệt trong các hệ thống truyền thông ña
phương tiện, khi mà các gói dữ liệu bị giới hạn bởi ñộ trễ tối ña. Một thuật toán lựa
chọn có thể làm việc tốt với hệ thống chia sẻ file nhưng chưa chắc ñã ñúng ñối với một
hệ thống truyền thông ña phương tiện thời gian thực. Do ñó, một thủ tục lựa chọn
thông minh: chẳng hạn như “hiếm nhất trước” (tương tự Bittorrent) có thể ñược sử
dụng, thay vì phải lưu trữ việc thay ñổi trạng thái giữa các máy tính trong mạng:
• Trong chế ñộ ñẩy, máy trạm P sẽ ñẩy ñi mảnh dữ liệu có số tuần tự cao nhất
giữa các mảnh dữ liệu mà P nhận ñược trong số các dữ liệu ñược ñẩy tới từ
các hàng xóm của P.
• Trong chế ñộ kéo, ngược lại, P sẽ yêu cầu mảnh dữ liệu có số tuần tự thấp
nhất mà máy hàng xóm ñang giữ. Mục ñích ở ñây là có thể lấp ñầy các chỗ
trống của các mảnh dữ liệu theo số tuần tự.
2.3.1. Mô hình ñồng bộ

Hình 6. Mô hình đồng bộ trong trạng thái chính
Mô hình ñược ñề cập ở trên hình 6 là mô hình ñơn giản nhất, trong ñó các máy
trạm ñều có chung băng thông trên ñường link upload và không bị giới hạn băng thông
với các ñường link download. Nó cũng bao hàm cả giả thiết là thời gian ñể upload một
mảnh dữ liệu lớn nhiều hơn nhiều so với thời gian chuyển một thông ñiệp (message)
26
ñơn trên tầng ứng dụng. Bên cạnh ñó, mô hình trên cũng giả thiết các máy tính ñược
ñồng bộ và thời gian ñược chia thành các khe thời gian bằng nhau: trong các khe thời
gian chẵn, tất cả các máy tính ñều ở chế ñộ ñẩy còn trong các khe thời gian lẻ, tất cả
các máy tính trong mạng ñều ở chế ñộ kéo.
Nếu một máy tính ở trong chế ñộ ñẩy (hoặc kéo) và yêu cầu ñược chấp nhận
bởi máy hàng xóm, các mảnh dữ liệu ñược gọi là bị ñẩy (hoặc bị kéo). Tại thời ñiểm
cuối khe thời gian, các máy tính sẽ thực hiện chuyển ñổi chế ñộ, từ chế ñộ ñẩy sang
chế ñộ kéo và ngược lại. Nếu yêu cầu bị từ chối, khe thời gian sẽ xem như bị bỏ ñi và
máy tính ñó cần phải ñợi ñến cuối khe thời gian kế tiếp trước khi chuyển ñổi chế ñộ và
gửi ñi các yêu cầu mới.

Nút nguồn ñẩy các mảnh dữ liệu trong mọi khe thời gian chẵn và giữ vai trò trả
lời trong các khe thời gian lẻ. ðiều này có nghĩa là tốc ñộc truyền thông là bằng nhau
ñối với mỗi mảnh dữ liệu và kéo dài hai chu kỳ, ñòi hỏi băng thông upload là 2r
str
.

×