SlideShare a Scribd company logo
1 of 36
Download to read offline
ðẠ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àng23
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 t1 = 4
một sự kiện j với ñộ trễ dj = 5 ñược thêm vào hàng ñợi, Nó sẽ ñược ghi vào chương
trình ở thời ñiểm t’ = ti + dj = 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 rstr, 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à 2rstr.
27
Hình 7. Chu kỳ kéo với đầy đủ trạng thái
28
Hình 8. Chu kỳ đẩy với đầy đủ trạng thái
Mô hình ñồng bộ dựa trên chu kỳ này cũng ñã ñược sử dụng trong [19] ñể tìm
giới hạn lý thuyết cho quy trình phân phối file và ñược sử dụng ở ñây nhằm mục ñích
so sánh. Trong mô hình thực tế, băng thông của ñường link upload thường không ñồng
nhất, khả năng download bị giới hạn và việc ñồng bộ cũng không thể liên tục như
trong mô hình rút gọn ñơn giản ở trên.
2.3.2. Mô hình không ñồng bộ
Trong một hệ thống phân tán thực tế, hành vi của mỗi máy tính là hoàn toàn
ñộc lập với các máy tính khác. Các máy tính thường ở chế ñộ không ñồng bộ bởi vì
yêu cầu ñồng bộ thường rất tốn kém và không hiệu quả. Khi ñó, một máy tính chuyển
29
chế ñộ từ ñẩy sang kéo hoặc ngược lại ngay sau khi yêu cầu ñược chấp nhận và mảnh
dữ liệu tương ứng ñược truyền/nhận xong hoặc ngay sau khi nhận ñược số tối ña các
yêu cầu bị từ chối (tại mỗi lần thử, các máy tính hàng xóm ñều ñược lựa chọn một
cách ngẫu nhiên. Việc này giúp cho hệ thống chạy trơn tru, tránh ñược hiện tượng bị
khóa hay thiếu gói tin.
Thời gian ñược dành cho mỗi chế ñộ ñẩy hoặc kéo phụ thuộc vào sự thành công
hay thất bại của yêu cầu ñưa ra từ máy tính hiện tại và khả năng ñáp ứng của băng
thông (bao gồm cả băng thông máy hàng xóm và băng thông máy hiện tại). Do ñó,
khoảng thời gian kéo ñẩy sẽ không cố ñịnh và các máy tính, thậm chí ngay cả trong
trường hợp mạng ñồng nhất, sẽ thành không ñồng bộ.
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
30
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
Thuật toán 1 (hình 9) tóm tắt lại các thao tác cơ bản của một máy tính liên quan
tới việc gửi ra một yêu cầu trong khi thuật toán 2 (hình 10) tóm tắt lại các hành ñộng
của máy tính ñó trong việc trả lời yêu cầu. Theo ñó tại mỗi vòng kéo (Pull), máy tính
sẽ lựa chọn ngẫu nhiên một hàng xóm ñể gửi yêu cầu kéo một mảnh dữ liệu có số tuần
tự nhỏ nhất mà nó còn thiếu nhằm mục ñích lấp ñầy các lỗ hổng trong danh sách các
mảnh dữ liệu mà nó ñang sở hữu. Ngược lại, trong mỗi vòng ñẩy (Push), máy tính sẽ
lựa chọn ngẫu nhiên một hàng xóm ñể gửi yêu cầu ñẩy. Tuy nhiên mảnh dữ liệu ñược
ñẩy ñi ở ñây lại là 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 sở hữu. Chiến thuật này là dễ hiểu nếu chúng ta nhớ rằng giao thức kéo ñẩy xen
kẽ lúc ñầu, ñược thiết kế chủ yếu ñể phục vụ cho việc truyền dữ liệu ngang hàng. Do
ñó ñộ trễ truyền thông không phải là vấn ñề quan trọng nhất. Mà quan trọng nhất là
thời gian hoàn thành và giảm bớt sự trùng lặp dữ liệu. Với các tiêu chí ñó thì việc lựa
chọn 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 sở hữu
là hợp lý và ñã áp dụng rất thông minh nguyên lý “mảnh hiếm nhất” của các thuật toán
phân phối dữ liệu ngang hàng.
Ngoài ra, lược ñồ ñược phân tích trong [19] ñược xây dựng dựa trên giả thiết tất
cả các máy tính trong mạng là ñồng nhất và ñồng bộ. Ví dụ: thời gian download của
một chunk là như nhau với tất cả các máy trạm. Các tác giả của bài báo ñã chứng minh
ñược rằng thời gian phân phối file trong giao thức kéo ñẩy xen kẽ là một hệ số không
ñổi trong một hệ thống tập trung ñầy ñủ. Và [19] cũng ñã chỉ ra rằng ñóng góp lớn
nhất của giao thức kéo ñẩy xen kẽ là giao thức có thể hoạt ñộng mà không cần quá
nhiều ràng buộc về các hành vi của máy tính trong mạng. Các máy tính tham gia quá
31
trình chuyển phát dữ liệu hoàn toàn không cần trao ñổi bất kỳ thông tin nào về trạng
thái sở hữu các mảnh dữ liệu với nhau.
Như vậy ñể có thể áp dụng giao thức kéo ñẩy xen kẽ trong các ứng dụng truyền
thông ña phương tiện thời gian thực thì chúng ta cần phải có các cải tiến chú trọng tới
thứ tự tiếp nhận các mảnh dữ liệu nhằm mục ñích giảm thiểu ñộ trễ của các mảnh dữ
liệu ñược tiếp nhận tại các máy tính trong mạng.
Dựa trên việc nghiên cứu, phân tích, cài ñặt và chạy thử nghiệm giao thức kéo
ñẩy xen kẽ của các tác giả [19] trên bộ mô phỏng PeerSim, chúng tôi ñã có một số cải
tiến vừa có thể tận dụng các ưu ñiểm của giao thức ñồng thời giúp cải tiến ñáng kể ñộ
trễ truyền thông các mảnh dữ liệu. Các cải tiến sẽ ñược mô tả và phân tích kỹ trong các
chương sau.
2.4. Minh họa giao thức kéo ñẩy xen kẽ
ðể hiểu rõ hơn về giao thức, chúng ta cùng xem xét một mạng ngang hàng bất
ñối xứng. Trong ñó máy tính S ñóng vai trò là nguồn phát dữ liệu, các máy tính còn lại
sẽ tiếp nhận và chuyển tiếp dữ liệu. Máy tính nguồn S luôn ở trạng thái ñẩy dữ liệu và
dữ liệu ñược ñẩy tại mỗi chu kỳ luôn là mảnh dữ liệu cuối cùng mà nó sinh ra. Các
máy tính khác chỉ ñược kích hoạt giao thức sau khi nhận ñược mảnh dữ liệu ñược
chuyển tới ñầu tiên; sau ñó sẽ chuyển lần lượt giữa các trạng thái ñẩy và kéo.
Hình 11. Minh họa giao thức kéo đẩy xen kẽ
ðể ñơn giản hóa, chúng ta sẽ giả thiết các máy tính của mạng hoạt ñộng trong
các chu kỳ chẵn/lẻ xen kẽ; trong chu kỳ chẵn, các máy tính ở trạng thái ñẩy và trong
chu kỳ lẻ, các máy tính ở trạng thái kéo. Các gói tin ñược phát ra từ nguồn một cách
32
tuần tự, theo ñúng số ñịnh danh tuần tự của nó. Giả sử tại thời ñiểm t, trạng thái sở hữu
dữ liệu của các máy tính trong mạng như sau:
Máy tính
Danh sách
hàng xóm
Danh sách dữ
liệu sở hữu
Mảnh dữ liệu sẽ
ñẩy ñi
Mảnh dữ liệu cần
kéo về
S 1; 2; 3 1|2|3|4 4
1 3; 4; 6 1|3 3 2
2 1; 4; 5 1|2 2 3
3 1; 6; 7 1|2|3 3 4
4 2; 5; 7 2 2 1
5 2; 4; 7 1|2 2 3
6 1; 3; 7 1 1 2
7 3; 5; 6 1 1 2
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
Chúng ta sẽ xem xét cách thức thực hiện giao thức tại máy tính 1. Khi ñó, nếu t
tương ứng với chu kỳ chẵn, theo giả thiết, máy tính ñang ở trạng thái ñẩy.
- Danh sách hàng xóm của 1 là {3,4,6}
- Danh sách các mảnh dữ liệu ñang sở hữu của máy tính 1 là {1|3} do ñó
mảnh dữ liệu 1 sẽ ñẩy ñi là 3.
- Giả sử 1 lựa chọn 3 một cách ngẫu nhiên ñể ñẩy dữ liệu. Lúc này trạng thái
của 3 là Pushed.
33
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
Kết quả việc ñẩy sẽ không thành công do 3 ñã có chứa mảnh dữ liệu số 3.
- Nếu 1 lựa chọn 4 ñể ñẩy dữ liệu, 4 sẽ chuyển trạng thái bị ñộng sang
Pushed:
Hình 14. Đẩy dữ liệu thành công trong chu kỳ Push
- Cho dù 1 ñẩy dữ liệu thành công hay không thì kết thúc chu kỳ Push, 1 luôn
chuyển sang trạng thái Pull
Trong chu kỳ Pull, trái lại, 1 sẽ tìm cách kéo từ các hàng xóm mảnh dữ liệu có
số tuần tự nhỏ nhất nó ñang thiếu trong danh sách các mảnh dữ liệu nó ñang sở hữu. Ở
ñây là mảnh dữ liệu số 2. Giả sử 1 lựa chọn ngẫu nhiên 3 trong danh sách các hàng
xóm của nó ñể gửi yêu cầu kéo dữ liệu:
Hình 15. Kéo dữ liệu thành công trong chu kỳ Pull
34
Trường hợp xấu sẽ xảy ra nếu hàng xóm ñược chọn ngẫu nhiên trong chu kỳ
kéo là 6. Khi ñó việc kéo sẽ bị từ chối do mảnh dữ liệu số 2 không có ở máy tính hàng
xóm số 6.
Hình 16. Kéo dữ liệu không thành công trong chu kỳ Pull
- Kết thúc chu kỳ kéo, cho dù việc kéo thành công hay không thành công thì 1
luôn trở về trạng thái PUSH.
- Ta có sơ ñồ chuyển ñổi trạng thái của các nút:
Hình 17. Sơ đồ chuyển đổi trạng thái của một nút bất kỳ
35
CHƯƠNG 3 – GIẢI PHÁP CẢI TIẾN GIAO THỨC
KÉO ðẨY XEN KẼ
3.1. Ý tưởng chung
Như chúng ta ñều biết, trong giao thức kéo ñẩy xen kẽ, tại mỗi chu kỳ ñẩy, các
máy tính luôn lựa chọn ñẩy tới một hàng xóm ngẫu nhiên mảnh dữ liệu có số tuần tự
lớn nhất mà nó nhận ñược. ðiều này là hợp lý trong phạm vi phân phối dữ liệu nhưng
ñối với việc áp dụng trong truyền thông ña phương tiện thì vẫn còn nhiều hạn chế.
ðiều hạn chế ñầu tiên là do các hàng xóm ñược lựa chọn ngẫu nhiên không theo một
phương pháp chung nào nên ñể tất cả các máy tính trong mạng ñều nhận ñược dữ liệu
một cách ñầy ñủ sẽ mất rất nhiều thời gian. Mặt khác, các mảnh dữ liệu ñược lựa chọn
chuyển tiếp luôn là những mảnh dữ liệu có số tuần tự lớn nhất dẫn tới việc phát sinh
các lỗ hổng gói tin. ðối với các ứng dụng truyền thông ña phương tiện thời gian thực
yêu cầu ñộ trễ rất khắt khe thì việc phát sinh nhiều lỗ hổng gói tin sẽ dẫn tới ñộ trễ
truyền thông tăng, chất lượng dịch vụ không ñảm bảo.
Chính vì vậy, trong phạm vi luận văn này, hướng nghiên cứu chính của chúng
tôi là làm cách nào khắc phục tốt nhất các hạn chế kể trên của giao thức kéo ñẩy xen
kẽ nhằm có thể áp dụng ñược giao thức kéo ñẩy xen kẽ, vốn ñược áp dụng ñầu tiên
trong lĩnh vực phân phối dữ liệu ngang hàng, trong các ứng dụng truyền thông ña
phương tiện thời gian thực.
ðể khắc phục ñược những hạn chế của giao thức, chúng tôi ñã cài ñặt bổ sung
tại mỗi máy tính trong mạng sử dụng giao thức một thuộc tính mới lưu vết trao ñổi dữ
liệu giữa máy tính ñó với các máy hàng xóm của nó. Chúng tôi tạm gọi thuộc tính này
là Push_maxID với ý nghĩa là một giá trị lưu trữ số tuần tự lớn nhất của gói tin ñã
ñược trao ñổi giữa máy tính hiện tại và các máy hàng xóm của nó (trong cả hai chu kỳ
kéo và ñẩy). Thuộc tính này ñược tích lũy theo quá trình truyền nhận dữ liệu của máy
tính và là cơ sở cho máy tính khi ñưa ra quyết ñịnh lựa chọn gói dữ liệu cũng như hàng
xóm ñể kéo dữ liệu về hay ñẩy dữ liệu tới.
Quá trình ñưa ra quyết ñịnh là một ñiểm quan trọng trong cài ñặt thuật toán.
Quyết ñịnh kéo ñẩy dữ liệu hoàn toàn bị phụ thuộc vào việc lựa chọn hàng xóm trước
hay lựa chọn gói tin ñể chuyển tiếp trước. Chính vì vậy, chúng tôi ñã hiện thực hóa ñề
xuất cải tiến của mình trong hai thuật toán, phụ thuộc vào quyết ñịnh lựa chọn hàng
xóm trước hay lựa chọn gói tin trước. Trong ñó: Thuật toán 1 ñược xây dựng trên cơ
sở lựa chọn gói tin kéo ñẩy trước sau ñó mới lựa chọn hàng xóm dựa trên gói tin ñược
chọn và thuộc tính Push_maxID. Còn thuật toán 2 ñược xây dựng trên việc lựa chọn
Tải bản FULL (75 trang): https://bit.ly/43zO4dx
Dự phòng: fb.com/TaiHo123doc.net
36
hàng xóm trước; sau ñó mới lựa chọn gói tin dựa trên hàng xóm ñã ñược chọn và
thuộc tính Push_maxID. Chi tiết cài ñặt các thuật toán sẽ ñược trình bày ở dưới:
3.2. Thuật toán cải tiến thứ nhất
Hình 18. Hoạt động của thuật toán 1 trong chu kỳ kéo
Tải bản FULL (75 trang): https://bit.ly/43zO4dx
Dự phòng: fb.com/TaiHo123doc.net
37
Hình 19. Hoạt động của thuật toán 1 trong chu kỳ đẩy
Input: /**push_maxID: Mảng chứa giá trị chunkID lớn nhất của hàng xóm thứ i mà node hiện tại biết
được dựa trên các hoạt động kéo đẩy giữa node hiện tại với node hàng xóm đó
max_push_attempts: Số lần đẩy tối đa được phép
max_pull_attempts: Số lần kéo tối đa được phép
*/
if (status == PULL) then
while (pull_attempt < max_pull_attempts) AND (download_bandwidth_available) do
/**Chọn mảnh dữ liệu ci còn thiếu có giá trị chunkID nhỏ nhất*/
/**Chọn hàng xóm có khả năng chứa chunkID ci tìm thấy ở trên. Trường hợp không
thấy sẽ trả về hàng xóm ngẫu nhiên để tận dụng chu kỳ */
6813232

More Related Content

Similar to 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.pdf

Luận văn: Giao thức quản lý topology trong mạng không dây ngang hàng
Luận văn: Giao thức quản lý topology trong mạng không dây ngang hàngLuận văn: Giao thức quản lý topology trong mạng không dây ngang hàng
Luận văn: Giao thức quản lý topology trong mạng không dây ngang hàngViết thuê trọn gói ZALO 0934573149
 
Dự án quản lý nội dung cho trang báo điện tử
Dự án quản lý nội dung cho trang báo điện tửDự án quản lý nội dung cho trang báo điện tử
Dự án quản lý nội dung cho trang báo điện tửsunflower_micro
 
[Công nghệ may] dự báo nhu cầu sản phẩm áo jacket 2 lớp nữ của công ty cp may...
[Công nghệ may] dự báo nhu cầu sản phẩm áo jacket 2 lớp nữ của công ty cp may...[Công nghệ may] dự báo nhu cầu sản phẩm áo jacket 2 lớp nữ của công ty cp may...
[Công nghệ may] dự báo nhu cầu sản phẩm áo jacket 2 lớp nữ của công ty cp may...TÀI LIỆU NGÀNH MAY
 
Phần mềm quản lý thông tin phục vụ sửa chữa thiết bị công nghệ trong bộ công ...
Phần mềm quản lý thông tin phục vụ sửa chữa thiết bị công nghệ trong bộ công ...Phần mềm quản lý thông tin phục vụ sửa chữa thiết bị công nghệ trong bộ công ...
Phần mềm quản lý thông tin phục vụ sửa chữa thiết bị công nghệ trong bộ công ...Dịch vụ Làm Luận Văn 0936885877
 
Nghiên cứu và xây dựng hệ thống kiểm định cân băng tải.pdf
Nghiên cứu và xây dựng hệ thống kiểm định cân băng tải.pdfNghiên cứu và xây dựng hệ thống kiểm định cân băng tải.pdf
Nghiên cứu và xây dựng hệ thống kiểm định cân băng tải.pdfMan_Ebook
 
Nghiên cứu nâng cao hiệu năng hoạt động của mạng ngang hàng có cấu trúc.pdf
Nghiên cứu nâng cao hiệu năng hoạt động của mạng ngang hàng có cấu trúc.pdfNghiên cứu nâng cao hiệu năng hoạt động của mạng ngang hàng có cấu trúc.pdf
Nghiên cứu nâng cao hiệu năng hoạt động của mạng ngang hàng có cấu trúc.pdfHanaTiti
 
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfĐánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfHanaTiti
 
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...Dịch vụ Làm Luận Văn 0936885877
 
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềmNghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềmsunflower_micro
 
Bai giang he thong nhung 2010
Bai giang he thong nhung 2010Bai giang he thong nhung 2010
Bai giang he thong nhung 2010Cao Toa
 
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]bookbooming1
 
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]bookbooming1
 
Nghiên cứu và ứng dụng nhận diện khuôn mặt.pdf
Nghiên cứu và ứng dụng nhận diện khuôn mặt.pdfNghiên cứu và ứng dụng nhận diện khuôn mặt.pdf
Nghiên cứu và ứng dụng nhận diện khuôn mặt.pdfMan_Ebook
 

Similar to 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.pdf (20)

Luận văn: Giao thức quản lý topology trong mạng không dây ngang hàng
Luận văn: Giao thức quản lý topology trong mạng không dây ngang hàngLuận văn: Giao thức quản lý topology trong mạng không dây ngang hàng
Luận văn: Giao thức quản lý topology trong mạng không dây ngang hàng
 
Dự án quản lý nội dung cho trang báo điện tử
Dự án quản lý nội dung cho trang báo điện tửDự án quản lý nội dung cho trang báo điện tử
Dự án quản lý nội dung cho trang báo điện tử
 
[Công nghệ may] dự báo nhu cầu sản phẩm áo jacket 2 lớp nữ của công ty cp may...
[Công nghệ may] dự báo nhu cầu sản phẩm áo jacket 2 lớp nữ của công ty cp may...[Công nghệ may] dự báo nhu cầu sản phẩm áo jacket 2 lớp nữ của công ty cp may...
[Công nghệ may] dự báo nhu cầu sản phẩm áo jacket 2 lớp nữ của công ty cp may...
 
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAYLuận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
 
Phần mềm quản lý thông tin phục vụ sửa chữa thiết bị công nghệ trong bộ công ...
Phần mềm quản lý thông tin phục vụ sửa chữa thiết bị công nghệ trong bộ công ...Phần mềm quản lý thông tin phục vụ sửa chữa thiết bị công nghệ trong bộ công ...
Phần mềm quản lý thông tin phục vụ sửa chữa thiết bị công nghệ trong bộ công ...
 
Bao cao
Bao caoBao cao
Bao cao
 
Luận văn: Giải pháp backup dữ liệu, sử dụng cơ chế phân cụm động
Luận văn: Giải pháp backup dữ liệu, sử dụng cơ chế phân cụm độngLuận văn: Giải pháp backup dữ liệu, sử dụng cơ chế phân cụm động
Luận văn: Giải pháp backup dữ liệu, sử dụng cơ chế phân cụm động
 
Nghiên cứu và xây dựng hệ thống kiểm định cân băng tải.pdf
Nghiên cứu và xây dựng hệ thống kiểm định cân băng tải.pdfNghiên cứu và xây dựng hệ thống kiểm định cân băng tải.pdf
Nghiên cứu và xây dựng hệ thống kiểm định cân băng tải.pdf
 
Luận văn: Phương pháp xử lý phân tích trực tuyến áp dụng trong xây dựng hệ tr...
Luận văn: Phương pháp xử lý phân tích trực tuyến áp dụng trong xây dựng hệ tr...Luận văn: Phương pháp xử lý phân tích trực tuyến áp dụng trong xây dựng hệ tr...
Luận văn: Phương pháp xử lý phân tích trực tuyến áp dụng trong xây dựng hệ tr...
 
Nghiên cứu nâng cao hiệu năng hoạt động của mạng ngang hàng có cấu trúc.pdf
Nghiên cứu nâng cao hiệu năng hoạt động của mạng ngang hàng có cấu trúc.pdfNghiên cứu nâng cao hiệu năng hoạt động của mạng ngang hàng có cấu trúc.pdf
Nghiên cứu nâng cao hiệu năng hoạt động của mạng ngang hàng có cấu trúc.pdf
 
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfĐánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
 
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
 
Đề tài: Hệ thống cung cấp chứng chỉ số theo mô hình sinh khóa
Đề tài: Hệ thống cung cấp chứng chỉ số theo mô hình sinh khóaĐề tài: Hệ thống cung cấp chứng chỉ số theo mô hình sinh khóa
Đề tài: Hệ thống cung cấp chứng chỉ số theo mô hình sinh khóa
 
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềmNghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
 
Bai giang he thong nhung 2010
Bai giang he thong nhung 2010Bai giang he thong nhung 2010
Bai giang he thong nhung 2010
 
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
 
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
 
Nghiên cứu và ứng dụng nhận diện khuôn mặt.pdf
Nghiên cứu và ứng dụng nhận diện khuôn mặt.pdfNghiên cứu và ứng dụng nhận diện khuôn mặt.pdf
Nghiên cứu và ứng dụng nhận diện khuôn mặt.pdf
 
Lập Trình Game Trên Thiết Bị Di Động.doc
Lập Trình Game Trên Thiết Bị Di Động.docLập Trình Game Trên Thiết Bị Di Động.doc
Lập Trình Game Trên Thiết Bị Di Động.doc
 
Đề tài: Xây dựng vùng đệm trong hệ thống thông tin địa lý, HOT
Đề tài: Xây dựng vùng đệm trong hệ thống thông tin địa lý, HOTĐề tài: Xây dựng vùng đệm trong hệ thống thông tin địa lý, HOT
Đề tài: Xây dựng vùng đệm trong hệ thống thông tin địa lý, HOT
 

More from HanaTiti

TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfTRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfHanaTiti
 
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfTRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfHanaTiti
 
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...HanaTiti
 
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...HanaTiti
 
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...HanaTiti
 
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfNhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfHanaTiti
 
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfPháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfHanaTiti
 
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...HanaTiti
 
The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...HanaTiti
 
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfDeteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfHanaTiti
 
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfPhát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfHanaTiti
 
The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...HanaTiti
 
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfQuản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfHanaTiti
 
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfSự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfHanaTiti
 
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...HanaTiti
 
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...HanaTiti
 
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...HanaTiti
 
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfPHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfHanaTiti
 
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfHanaTiti
 
The relationship between financial development and household welfare - case s...
The relationship between financial development and household welfare - case s...The relationship between financial development and household welfare - case s...
The relationship between financial development and household welfare - case s...HanaTiti
 

More from HanaTiti (20)

TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfTRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
 
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfTRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
 
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
 
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
 
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
 
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfNhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
 
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfPháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
 
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
 
The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...
 
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfDeteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
 
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfPhát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
 
The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...
 
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfQuản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
 
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfSự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
 
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
 
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
 
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
 
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfPHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
 
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
 
The relationship between financial development and household welfare - case s...
The relationship between financial development and household welfare - case s...The relationship between financial development and household welfare - case s...
The relationship between financial development and household welfare - case s...
 

Recently uploaded

TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...Nguyen Thanh Tu Collection
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnpmtiendhti14a5hn
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...Nguyen Thanh Tu Collection
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxDungxPeach
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptPhamThiThuThuy1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạowindcances
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...hoangtuansinh1
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgsNmmeomeo
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxTrnHiYn5
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhdtlnnm
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phươnghazzthuan
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfXem Số Mệnh
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfXem Số Mệnh
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhdangdinhkien2k4
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfXem Số Mệnh
 

Recently uploaded (20)

TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiện
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 

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.pdf

  • 1. ðẠ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
  • 2. 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
  • 3. 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àng23 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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.
  • 10. 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.
  • 11. 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
  • 12. 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.
  • 13. 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].
  • 14. 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ó
  • 15. 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.
  • 16. 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ả).
  • 17. 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 t1 = 4 một sự kiện j với ñộ trễ dj = 5 ñược thêm vào hàng ñợi, Nó sẽ ñược ghi vào chương trình ở thời ñiểm t’ = ti + dj = 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.
  • 18. 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
  • 19. 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.
  • 20. 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 ñỏ.
  • 21. 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
  • 22. 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à
  • 23. 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 rstr, 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ỏ.
  • 24. 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)
  • 25. 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à 2rstr.
  • 26. 27 Hình 7. Chu kỳ kéo với đầy đủ trạng thái
  • 27. 28 Hình 8. Chu kỳ đẩy với đầy đủ trạng thái Mô hình ñồng bộ dựa trên chu kỳ này cũng ñã ñược sử dụng trong [19] ñể tìm giới hạn lý thuyết cho quy trình phân phối file và ñược sử dụng ở ñây nhằm mục ñích so sánh. Trong mô hình thực tế, băng thông của ñường link upload thường không ñồng nhất, khả năng download bị giới hạn và việc ñồng bộ cũng không thể liên tục như trong mô hình rút gọn ñơn giản ở trên. 2.3.2. Mô hình không ñồng bộ Trong một hệ thống phân tán thực tế, hành vi của mỗi máy tính là hoàn toàn ñộc lập với các máy tính khác. Các máy tính thường ở chế ñộ không ñồng bộ bởi vì yêu cầu ñồng bộ thường rất tốn kém và không hiệu quả. Khi ñó, một máy tính chuyển
  • 28. 29 chế ñộ từ ñẩy sang kéo hoặc ngược lại ngay sau khi yêu cầu ñược chấp nhận và mảnh dữ liệu tương ứng ñược truyền/nhận xong hoặc ngay sau khi nhận ñược số tối ña các yêu cầu bị từ chối (tại mỗi lần thử, các máy tính hàng xóm ñều ñược lựa chọn một cách ngẫu nhiên. Việc này giúp cho hệ thống chạy trơn tru, tránh ñược hiện tượng bị khóa hay thiếu gói tin. Thời gian ñược dành cho mỗi chế ñộ ñẩy hoặc kéo phụ thuộc vào sự thành công hay thất bại của yêu cầu ñưa ra từ máy tính hiện tại và khả năng ñáp ứng của băng thông (bao gồm cả băng thông máy hàng xóm và băng thông máy hiện tại). Do ñó, khoảng thời gian kéo ñẩy sẽ không cố ñịnh và các máy tính, thậm chí ngay cả trong trường hợp mạng ñồng nhất, sẽ thành không ñồng bộ. 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. 30 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 Thuật toán 1 (hình 9) tóm tắt lại các thao tác cơ bản của một máy tính liên quan tới việc gửi ra một yêu cầu trong khi thuật toán 2 (hình 10) tóm tắt lại các hành ñộng của máy tính ñó trong việc trả lời yêu cầu. Theo ñó tại mỗi vòng kéo (Pull), máy tính sẽ lựa chọn ngẫu nhiên một hàng xóm ñể gửi yêu cầu kéo một mảnh dữ liệu có số tuần tự nhỏ nhất mà nó còn thiếu nhằm mục ñích lấp ñầy các lỗ hổng trong danh sách các mảnh dữ liệu mà nó ñang sở hữu. Ngược lại, trong mỗi vòng ñẩy (Push), máy tính sẽ lựa chọn ngẫu nhiên một hàng xóm ñể gửi yêu cầu ñẩy. Tuy nhiên mảnh dữ liệu ñược ñẩy ñi ở ñây lại là 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 sở hữu. Chiến thuật này là dễ hiểu nếu chúng ta nhớ rằng giao thức kéo ñẩy xen kẽ lúc ñầu, ñược thiết kế chủ yếu ñể phục vụ cho việc truyền dữ liệu ngang hàng. Do ñó ñộ trễ truyền thông không phải là vấn ñề quan trọng nhất. Mà quan trọng nhất là thời gian hoàn thành và giảm bớt sự trùng lặp dữ liệu. Với các tiêu chí ñó thì việc lựa chọn 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 sở hữu là hợp lý và ñã áp dụng rất thông minh nguyên lý “mảnh hiếm nhất” của các thuật toán phân phối dữ liệu ngang hàng. Ngoài ra, lược ñồ ñược phân tích trong [19] ñược xây dựng dựa trên giả thiết tất cả các máy tính trong mạng là ñồng nhất và ñồng bộ. Ví dụ: thời gian download của một chunk là như nhau với tất cả các máy trạm. Các tác giả của bài báo ñã chứng minh ñược rằng thời gian phân phối file trong giao thức kéo ñẩy xen kẽ là một hệ số không ñổi trong một hệ thống tập trung ñầy ñủ. Và [19] cũng ñã chỉ ra rằng ñóng góp lớn nhất của giao thức kéo ñẩy xen kẽ là giao thức có thể hoạt ñộng mà không cần quá nhiều ràng buộc về các hành vi của máy tính trong mạng. Các máy tính tham gia quá
  • 30. 31 trình chuyển phát dữ liệu hoàn toàn không cần trao ñổi bất kỳ thông tin nào về trạng thái sở hữu các mảnh dữ liệu với nhau. Như vậy ñể có thể áp dụng giao thức kéo ñẩy xen kẽ trong các ứng dụng truyền thông ña phương tiện thời gian thực thì chúng ta cần phải có các cải tiến chú trọng tới thứ tự tiếp nhận các mảnh dữ liệu nhằm mục ñích giảm thiểu ñộ trễ của các mảnh dữ liệu ñược tiếp nhận tại các máy tính trong mạng. Dựa trên việc nghiên cứu, phân tích, cài ñặt và chạy thử nghiệm giao thức kéo ñẩy xen kẽ của các tác giả [19] trên bộ mô phỏng PeerSim, chúng tôi ñã có một số cải tiến vừa có thể tận dụng các ưu ñiểm của giao thức ñồng thời giúp cải tiến ñáng kể ñộ trễ truyền thông các mảnh dữ liệu. Các cải tiến sẽ ñược mô tả và phân tích kỹ trong các chương sau. 2.4. Minh họa giao thức kéo ñẩy xen kẽ ðể hiểu rõ hơn về giao thức, chúng ta cùng xem xét một mạng ngang hàng bất ñối xứng. Trong ñó máy tính S ñóng vai trò là nguồn phát dữ liệu, các máy tính còn lại sẽ tiếp nhận và chuyển tiếp dữ liệu. Máy tính nguồn S luôn ở trạng thái ñẩy dữ liệu và dữ liệu ñược ñẩy tại mỗi chu kỳ luôn là mảnh dữ liệu cuối cùng mà nó sinh ra. Các máy tính khác chỉ ñược kích hoạt giao thức sau khi nhận ñược mảnh dữ liệu ñược chuyển tới ñầu tiên; sau ñó sẽ chuyển lần lượt giữa các trạng thái ñẩy và kéo. Hình 11. Minh họa giao thức kéo đẩy xen kẽ ðể ñơn giản hóa, chúng ta sẽ giả thiết các máy tính của mạng hoạt ñộng trong các chu kỳ chẵn/lẻ xen kẽ; trong chu kỳ chẵn, các máy tính ở trạng thái ñẩy và trong chu kỳ lẻ, các máy tính ở trạng thái kéo. Các gói tin ñược phát ra từ nguồn một cách
  • 31. 32 tuần tự, theo ñúng số ñịnh danh tuần tự của nó. Giả sử tại thời ñiểm t, trạng thái sở hữu dữ liệu của các máy tính trong mạng như sau: Máy tính Danh sách hàng xóm Danh sách dữ liệu sở hữu Mảnh dữ liệu sẽ ñẩy ñi Mảnh dữ liệu cần kéo về S 1; 2; 3 1|2|3|4 4 1 3; 4; 6 1|3 3 2 2 1; 4; 5 1|2 2 3 3 1; 6; 7 1|2|3 3 4 4 2; 5; 7 2 2 1 5 2; 4; 7 1|2 2 3 6 1; 3; 7 1 1 2 7 3; 5; 6 1 1 2 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 Chúng ta sẽ xem xét cách thức thực hiện giao thức tại máy tính 1. Khi ñó, nếu t tương ứng với chu kỳ chẵn, theo giả thiết, máy tính ñang ở trạng thái ñẩy. - Danh sách hàng xóm của 1 là {3,4,6} - Danh sách các mảnh dữ liệu ñang sở hữu của máy tính 1 là {1|3} do ñó mảnh dữ liệu 1 sẽ ñẩy ñi là 3. - Giả sử 1 lựa chọn 3 một cách ngẫu nhiên ñể ñẩy dữ liệu. Lúc này trạng thái của 3 là Pushed.
  • 32. 33 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 Kết quả việc ñẩy sẽ không thành công do 3 ñã có chứa mảnh dữ liệu số 3. - Nếu 1 lựa chọn 4 ñể ñẩy dữ liệu, 4 sẽ chuyển trạng thái bị ñộng sang Pushed: Hình 14. Đẩy dữ liệu thành công trong chu kỳ Push - Cho dù 1 ñẩy dữ liệu thành công hay không thì kết thúc chu kỳ Push, 1 luôn chuyển sang trạng thái Pull Trong chu kỳ Pull, trái lại, 1 sẽ tìm cách kéo từ các hàng xóm mảnh dữ liệu có số tuần tự nhỏ nhất nó ñang thiếu trong danh sách các mảnh dữ liệu nó ñang sở hữu. Ở ñây là mảnh dữ liệu số 2. Giả sử 1 lựa chọn ngẫu nhiên 3 trong danh sách các hàng xóm của nó ñể gửi yêu cầu kéo dữ liệu: Hình 15. Kéo dữ liệu thành công trong chu kỳ Pull
  • 33. 34 Trường hợp xấu sẽ xảy ra nếu hàng xóm ñược chọn ngẫu nhiên trong chu kỳ kéo là 6. Khi ñó việc kéo sẽ bị từ chối do mảnh dữ liệu số 2 không có ở máy tính hàng xóm số 6. Hình 16. Kéo dữ liệu không thành công trong chu kỳ Pull - Kết thúc chu kỳ kéo, cho dù việc kéo thành công hay không thành công thì 1 luôn trở về trạng thái PUSH. - Ta có sơ ñồ chuyển ñổi trạng thái của các nút: Hình 17. Sơ đồ chuyển đổi trạng thái của một nút bất kỳ
  • 34. 35 CHƯƠNG 3 – GIẢI PHÁP CẢI TIẾN GIAO THỨC KÉO ðẨY XEN KẼ 3.1. Ý tưởng chung Như chúng ta ñều biết, trong giao thức kéo ñẩy xen kẽ, tại mỗi chu kỳ ñẩy, các máy tính luôn lựa chọn ñẩy tới một hàng xóm ngẫu nhiên mảnh dữ liệu có số tuần tự lớn nhất mà nó nhận ñược. ðiều này là hợp lý trong phạm vi phân phối dữ liệu nhưng ñối với việc áp dụng trong truyền thông ña phương tiện thì vẫn còn nhiều hạn chế. ðiều hạn chế ñầu tiên là do các hàng xóm ñược lựa chọn ngẫu nhiên không theo một phương pháp chung nào nên ñể tất cả các máy tính trong mạng ñều nhận ñược dữ liệu một cách ñầy ñủ sẽ mất rất nhiều thời gian. Mặt khác, các mảnh dữ liệu ñược lựa chọn chuyển tiếp luôn là những mảnh dữ liệu có số tuần tự lớn nhất dẫn tới việc phát sinh các lỗ hổng gói tin. ðối với các ứng dụng truyền thông ña phương tiện thời gian thực yêu cầu ñộ trễ rất khắt khe thì việc phát sinh nhiều lỗ hổng gói tin sẽ dẫn tới ñộ trễ truyền thông tăng, chất lượng dịch vụ không ñảm bảo. Chính vì vậy, trong phạm vi luận văn này, hướng nghiên cứu chính của chúng tôi là làm cách nào khắc phục tốt nhất các hạn chế kể trên của giao thức kéo ñẩy xen kẽ nhằm có thể áp dụng ñược giao thức kéo ñẩy xen kẽ, vốn ñược áp dụng ñầu tiên trong lĩnh vực phân phối dữ liệu ngang hàng, trong các ứng dụng truyền thông ña phương tiện thời gian thực. ðể khắc phục ñược những hạn chế của giao thức, chúng tôi ñã cài ñặt bổ sung tại mỗi máy tính trong mạng sử dụng giao thức một thuộc tính mới lưu vết trao ñổi dữ liệu giữa máy tính ñó với các máy hàng xóm của nó. Chúng tôi tạm gọi thuộc tính này là Push_maxID với ý nghĩa là một giá trị lưu trữ số tuần tự lớn nhất của gói tin ñã ñược trao ñổi giữa máy tính hiện tại và các máy hàng xóm của nó (trong cả hai chu kỳ kéo và ñẩy). Thuộc tính này ñược tích lũy theo quá trình truyền nhận dữ liệu của máy tính và là cơ sở cho máy tính khi ñưa ra quyết ñịnh lựa chọn gói dữ liệu cũng như hàng xóm ñể kéo dữ liệu về hay ñẩy dữ liệu tới. Quá trình ñưa ra quyết ñịnh là một ñiểm quan trọng trong cài ñặt thuật toán. Quyết ñịnh kéo ñẩy dữ liệu hoàn toàn bị phụ thuộc vào việc lựa chọn hàng xóm trước hay lựa chọn gói tin ñể chuyển tiếp trước. Chính vì vậy, chúng tôi ñã hiện thực hóa ñề xuất cải tiến của mình trong hai thuật toán, phụ thuộc vào quyết ñịnh lựa chọn hàng xóm trước hay lựa chọn gói tin trước. Trong ñó: Thuật toán 1 ñược xây dựng trên cơ sở lựa chọn gói tin kéo ñẩy trước sau ñó mới lựa chọn hàng xóm dựa trên gói tin ñược chọn và thuộc tính Push_maxID. Còn thuật toán 2 ñược xây dựng trên việc lựa chọn Tải bản FULL (75 trang): https://bit.ly/43zO4dx Dự phòng: fb.com/TaiHo123doc.net
  • 35. 36 hàng xóm trước; sau ñó mới lựa chọn gói tin dựa trên hàng xóm ñã ñược chọn và thuộc tính Push_maxID. Chi tiết cài ñặt các thuật toán sẽ ñược trình bày ở dưới: 3.2. Thuật toán cải tiến thứ nhất Hình 18. Hoạt động của thuật toán 1 trong chu kỳ kéo Tải bản FULL (75 trang): https://bit.ly/43zO4dx Dự phòng: fb.com/TaiHo123doc.net
  • 36. 37 Hình 19. Hoạt động của thuật toán 1 trong chu kỳ đẩy Input: /**push_maxID: Mảng chứa giá trị chunkID lớn nhất của hàng xóm thứ i mà node hiện tại biết được dựa trên các hoạt động kéo đẩy giữa node hiện tại với node hàng xóm đó max_push_attempts: Số lần đẩy tối đa được phép max_pull_attempts: Số lần kéo tối đa được phép */ if (status == PULL) then while (pull_attempt < max_pull_attempts) AND (download_bandwidth_available) do /**Chọn mảnh dữ liệu ci còn thiếu có giá trị chunkID nhỏ nhất*/ /**Chọn hàng xóm có khả năng chứa chunkID ci tìm thấy ở trên. Trường hợp không thấy sẽ trả về hàng xóm ngẫu nhiên để tận dụng chu kỳ */ 6813232