Khóa luận Giải pháp khắc phục lỗi trong truyền thông multicast dựa trên nền mạng ngang hàng Chord
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Phạm Duy Thăng
GIẢI PHÁP KHẮC PHỤC LỖI TRONG TRUYỀN THÔNG
MULTICAST DỰA TRÊN NỀN MẠNG NGANG HÀNG CHORD
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: Tiến sỹ Nguyễn Hoài Sơn
HÀ NỘI - 2009
Lời cảm ơn
Trước tiên, em muốn gửi lời cảm ơn sâu sắc nhất đến thầy giáo, tiến sĩ Nguyễn Hoài
Sơn, người đã tận tình hướng dẫn em trong suốt quá trình nghiên cứu khóa luận tốt
nghiệp.
Em xin gửi lời cảm ơn chân thành và sâu sắc đến tất cả những thầy cô giáo của
trường đại học Công nghệ, những kiến thức quý báu mà em nhận được từ thầy cô trong
suốt bốn năm ngồi trên ghế nhà trường sẽ là hành trang tốt nhất giúp em vững bước trong
sự nghiệp của bản thân.
Tôi cũng xin gửi lời cảm ơn đến các anh chị K46, K48, K49, cùng tất cả bạn bè K50
của tôi, những người đã đồng hành cùng tôi trong suốt bốn năm học.
Cuối cùng, xin gửi những lời tri ân đến bố mẹ và gia đình, những người thân yêu
nhất của tôi.
Sinh viên
Phạm Duy Thăng
Tóm tắt
Hiện nay, nhu cầu truyền thông qua mạng internet ngày càng lớn, trong đó có các
nhu cầu về truyền dữ liệu đa phương tiện như hình ảnh, âm thanh, phục vụ các mục đích
truyền hình, hội nghị trực tuyến. Do đây là những dữ liệu có kích thước lớn, để giải quyết
vấn đề băng thông, nên áp dụng mô hình truyền tin multicast. Tuy nhiên, hạ tầng mạng
hiện nay chưa đủ để có thể triển khai các giao thức truyền multicast trên tầng mạng, bởi
vậy đã có nhiều ý tưởng và thử nghiệm về truyền tin multicast trên tầng ứng dụng được
đưa ra. Trong đó, giải pháp sử dụng mạng ngang hàng có cấu trúc để truyền tin multicast
tỏ ra là một giải pháp ưu việt.
Mạng ngang hàng Chord là một trong những mạng ngang hàng có cấu trúc có nhiều
ưu điểm như tính ổn định, phân cấp, khả năng mở rộng, khả năng định tuyến, rất phù hợp
cho mục đích truyền thông multicast. Tuy nhiên cấu trúc của mạng ngang hàng Chord
cũng có một số điểm không phù hợp, dẫn đến vấn đề phục hồi cấu trúc cây multicast khi
một node trong cây bị lỗi trong quá trình truyền tin multicast.
Mục đích của khóa luận là đưa ra giao thức chống lỗi mới, bổ sung vào các giao
thức đồng bộ sẵn có của mạng ngang hàng Chord, để tối ưu hóa việc chống lỗi trong
truyền thông multicast. Nói cách khác là làm thế nào để giảm đến tối thiểu thời gian cần
để khôi phục cấu trúc của cây multicast mỗi khi xảy ra lỗi ở các node tham gia, từ đó
nâng cao hiệu năng và chất lượng của quá trình truyền thông multicast. Giao thức khắc
phục lỗi sẽ được cài đặt vào ứng dụng truyền video sử dụng multicast trên nền mạng
ngang hàng giao thức Chord.
Khóa luận tốt nghiệp
2
Phạm Duy Thăng
Mục lục
Mục lục ............................................................................................................................................ 3
Danh mục hình vẽ............................................................................................................................ 5
Mở đầu ............................................................................................................................................ 6
Chương 1 – Tổng quan về truyền tin multicast.......................................................................... 8
1.1. Khái niệm về truyền tin multicast ....................................................................................... 8
1.2. Truyền tin multicast tầng mạng (IP multicasting)............................................................... 9
1.3. Truyền tin multicast tầng ứng dụng.................................................................................... 11
1.4. Các mô hình truyền tin multicast tầng ứng dụng............................................................... 12
Chương 2 – Truyền tin multicast trên nền mạng ngang hàng có cấu trúc Chord ................ 14
2.1. Khái niệm mạng ngang hàng............................................................................................. 14
2.1.1. Ưu điểm của mạng ngang hàng................................................................................... 15
2.1.2. Mạng ngang hàng không có cấu trúc và mạng ngang hàng có cấu trúc..................... 16
2.2. Giao thức Chord ................................................................................................................ 22
2.2.1. Bảng băm phân tán ...................................................................................................... 22
2.2.2. Băm đồng nhất............................................................................................................. 23
2.2.3. Định tuyến thông báo .................................................................................................. 24
2.2.4. Khắc phục lỗi trong giao thức Chord .......................................................................... 26
2.3. Truyền tin multicast trên nền mạng ngang hàng có cấu trúc Chord.................................. 29
Chương 3 – Khắc phục lỗi trong truyền thông multicast trên nền mạng ngang hàng giao
thức Chord...................................................................................................................... 32
3.1. Vấn đề lỗi và vai trò của việc khắc phục lỗi trong truyền thông multicast trên nền mạng
Chord ................................................................................................................................. 32
3.2. Giải pháp đề xuất............................................................................................................... 34
3.3. Ba pha của giao thức khắc phục lỗi................................................................................... 35
Khóa luận tốt nghiệp
3
Phạm Duy Thăng
3.3.1. Thông báo thông tin cây multicast .............................................................................. 35
3.3.2. Phát hiện lỗi và thông báo lỗi...................................................................................... 37
3.3.3. Khắc phục lỗi............................................................................................................... 37
3.4. Các vấn đề khác................................................................................................................. 38
Chương 4 – Kết quả thực nghiệm và đánh giá ......................................................................... 40
4.1. Ứng dụng truyền video theo phương thức multicast dựa trên nền mạng ngang hàng Chord
........................................................................................................................................... 40
4.2. Triển khai giao thức khắc phục lỗi ba pha cho ứng dụng truyền video multicast............. 43
4.3. Mô hình thực nghiệm ........................................................................................................ 44
4.4. Các kết quả thực nghiệm ................................................................................................... 45
Chương 5 – Kết quả và hướng phát triển ................................................................................. 46
5.1. Đánh giá kết quả................................................................................................................ 46
5.2. Vấn đề còn tồn tại và hướng phát triển tiếp theo............................................................... 46
Tài liệu tham khảo......................................................................................................................... 48
Khóa luận tốt nghiệp
4
Phạm Duy Thăng
Danh mục hình vẽ
Hình 1. Các phương thức truyền tin khác nhau broadcast, multicast và unicast............................. 8
Hình 2. Vai trò của các bộ định tuyến trong truyền tin multicast tầng mạng................................ 10
Hình 3. Truyền thông multicast tầng mạng và tầng ứng dụng ...................................................... 12
Hình 4. Mạng phủ 7 node (a) và cây multicast xây dựng trên mạng phủ (b)................................ 13
Hình 5. Mô hình mạng ngang hàng............................................................................................... 14
Hình 6. Một mạng ngang hàng không cấu trúc sử dụng một máy tính server .............................. 16
Hình 7. Mô hình chia sẻ file của Napster ...................................................................................... 17
Hình 8. Tìm kiếm dữ liệu chia sẻ trong Gnutella.......................................................................... 18
Hình 9. Mạng ngang hàng có cấu trúc thuộc nhánh các hệ thống phân tán trong các mô hình
mạng ngang hàng............................................................................................................................. 1
Hình 10. Mạng ngang hàng có cấu trúc Chord dạng vòng tròn .................................................... 21
Hình 11. Vòng tròn Chord với 3 node và lưu trữ 4 khóa .............................................................. 24
Hình 12. Mạng Chord với các bảng finger.................................................................................... 25
Hình 13. Đoạn giả mã của các hàm trong quá trình đồng bộ ........................................................ 27
Hình 14. Sơ đồ một mạng Chord với 9 node tham gia.................................................................. 28
Hình 15. Truyền thông multicast trên mạng Chord....................................................................... 30
Hình 16. Sơ đồ một cây multicast ................................................................................................... 1
Hình 17. Giải pháp chống lỗi cho truyền tin multicast trên nền mạng Chord............................... 36
Hình 18. Kiến trúc chương trình phía máy chủ............................................................................. 40
Hình 19. Kiến trúc chương trình phía máy khách ......................................................................... 41
Hình 20.Triển khai giao thức khắc phục lỗi ba pha....................................................................... 43
Khóa luận tốt nghiệp
5
Phạm Duy Thăng
Mở đầu
Hiện nay, khi mạng internet đang phát triển với tốc độ vũ bão, nhu cầu truyền thông
dựa trên mạng internet ngày càng lớn. Một trong số những nhu cầu đó là truyền thông
multicast, phục vụ cho việc truyền dữ liệu đa phương tiện như truyền hình trực tuyến, hội
nghị trực tuyến,… Từ những năm 1990 đã có những nghiên cứu về việc bổ sung phần
giao thức truyền multicast vào giao thức IP [14], và đã có những kết quả nhất định. Tuy
nhiên, việc triển khai multicast trên giao thức IP gặp nhiều khó khăn do phải thay đổi hạ
tầng mạng lớp ba.
Trong những năm gần đây, công nghệ mạng ngang hàng đang trở thành mối quan
tâm trong nhiều nghiên cứu về lĩnh vực internet, hứa hẹn giải pháp mới cho truyền thông
multicast. So với các mô hình mạng khác, mô hình mạng ngang hàng có nhiều điểm lợi
thế như sự phân tán, phân cấp, khả năng mở rộng, hiệu suất cao,… Các nghiên cứu mới
hơn tập trung vào mạng ngang hàng có cấu trúc, ổn định hơn và tìm kiếm thông tin trong
mạng hiệu quả hơn so với mạng ngang hàng không có cấu trúc. Một trong những giao
thức mạng ngang hàng có cấu trúc mang nhiều ưu điểm phù hợp với truyền thông
multicast như khả năng định tuyến tốt, hoạt động ổn định,… là giao thức Chord. Do đó,
mạng ngang hàng sử dụng giao thức Chord sẽ là giải pháp hiệu quả để phục vụ truyền
thông multicast trong khi chưa giải quyết được vấn đề truyền thông multicast ở tầng
mạng.
Tuy nhiên, giao thức Chord cũng có nhiều điểm không phù hợp cho việc truyền
multicast như cấu trúc không ổn định, chống lỗi bằng các hàm chạy định kỳ, mỗi node
nắm tương đối ít thông tin về các node khác, dẫn đến việc thiếu thông tin về cấu trúc cây
multicast khi truyền multicast. Do đó, khi triển khai multicast trên mạng Chord, độ trễ cần
thiết để khôi phục cấu trúc cây multicast khi một node lỗi cao.
Khóa luận sẽ đề xuất một giải pháp chống lỗi, khắc phục được các nhược điểm của
giao thức Chord khi áp dụng cho mục đích truyền thông multicast. Giải pháp sẽ chống lỗi
sẽ được xây dựng theo hình thức phản ứng, có nghĩa là sẽ được kích hoạt ngay khi có lỗi
xảy ra. Giải pháp chống lỗi cung cấp thêm thông tin về cây multicast cho mỗi node tham
gia, đồng thời cung cấp cho các node khả năng phát hiện lỗi ở node cha trong cây
Khóa luận tốt nghiệp
6
Phạm Duy Thăng
multicast, từ đó gửi các thông báo lỗi cần thiết nhằm mục đích xây dựng cây multicast
mới trong thời gian ngắn nhất.
Khóa luận cũng sẽ cung cấp các kết quả thực nghiệm khi áp dụng giải pháp chống
lỗi mới vào một ứng dụng truyền video theo hình thức truyền multicast dựa trên nền mạng
ngang hàng giao thức Chord. Các kết quả này sẽ chứng minh tính hiệu quả của giái pháp.
Dưới đây là tóm tắt khóa luận gồm 5 chương như sau:
Chương 1: Giới thiệu tổng quan về mạng ngang hàng nói chung và phân tích các ưu
điểm của mạng ngang hàng. Chương này cũng phân loại và so sánh giữa mạng ngang
hàng không có cấu trúc và mạng ngang hàng có cấu trúc. Phần cuối của chương sẽ được
giành để giới thiệu những khái niệm cơ bản của giao thức mạng ngang hàng Chord.
Chương 2: Giới thiệu tổng quan về truyền thông multicast. Đầu tiên là những vấn
đề cơ bản của multicast như cách thức truyền tin, so sánh với cách thức truyền tin unicast
truyền thống. Tiếp đó, tôi sẽ trình bày về multicast trong tầng ứng dụng, so sánh với
multicast ở tầng mạng. Cuối chương trình bày về truyền thông multicast trong mạng
ngang hàng có cấu trúc.
Chương 3: Trình bày cụ thể về vấn đề khắc phục lỗi trong truyền thông multicast
trên nền mạng ngang hàng Chord, bao gồm những giao thức khắc phục lỗi cơ bản của
mạng ngang hàng Chord, và những giao thức mới được đề ra để cải thiện hiệu năng
truyền thông multicast trên nền mạng Chord.
Chương 4: Trình bày kết quả thực nghiệm và đánh giá kết quả đó, so sánh với giao
thức Chord truyền thống.
Chương 5: Kết luận, nêu các vấn đề còn tồn tại và đề ra hướng phát triển tiếp theo.
Khóa luận tốt nghiệp
7
Phạm Duy Thăng
Chương 1 – Tổng quan về truyền tin multicast
Truyền thông multicast là cách hữu hiệu để truyền dữ liệu đến một nhóm máy tính
trên mạng Internet hoặc mạng nội bộ. Thay vì phải gửi thông tin tới từng máy đơn lẻ,
thông tin sẽ được gửi cho cả nhóm multicast theo một sơ đồ gọi là cây multicast.
1.1. Khái niệm về truyền tin multicast
Khi phân loại các phương pháp truyền tin trên mạng máy tính dựa vào số lượng máy
nhận, ta có ba cách truyền tin như sau:
Unicast: là hình thức truyền tin cơ bản của các giao thức mạng máy tính. Trong hình
thức truyền tin này, một máy gửi tin đi tới chỉ một máy nhận xác định trước. Phương thức
truyền tin này được sử dụng cho hầu hết các giao thức mạng máy tính từ tầng cho tới tầng
ứng dụng như IP, TCP, UDP, HTTP, FTP,… Nhược điểm của phương pháp này là tốn
băng thông trong trường hợp một nguồn gửi nhiều gói tin giống nhau tới nhiều máy nhận
khác nhau.
Broadcast: là hình thức truyền tin từ một điểm tới toàn mạng. Máy gửi gửi gói tin
đi, và tất cả các máy khác trong mạng đều nhận được. Hình thức này thường được sử
dụng khi một máy thiếu các thông tin về các máy khác trong mạng. Các ví dụ điển hình
áp dụng hình thức truyền tin broadcast là giao thức phân giải địa chỉ ARP (tiếng Anh:
Address Resolution Protocol) hoặc giao thức cấu hình động máy chủ DHCP (tiếng Anh:
Dynamic Host Configuration Protocol).
Hình 1. Các phương thức truyền tin khác nhau broadcast, multicast và unicast
Multicast: là hình thức nằm giữa hai hình thức đã nêu. Trong hình thức truyền tin
này, máy gửi gửi gói tin đi, và một số máy nhất định đã đăng ký trước sẽ được nhận gói
Khóa luận tốt nghiệp
8
Phạm Duy Thăng
tin đó. Nếu so sánh unicast với cuộc nói chuyện giữa hai người khi sử dụng một chương
trình nhắn tin tức thi, thì multicast sẽ giống như cuộc hội nghị (tiếng Anh: conference)
giữa nhiều người.
Hình 1 minh họa cho các phương thức truyền tin unicast, broadcast và multicast.
Có thể thấy multicast là phương pháp hữu hiệu khi một máy muốn gửi cùng một dữ
liệu tới nhiều máy khác trong mạng. Trong trường hợp này, rõ ràng sử dụng multicast sẽ
tiết kiệm băng thông trên đường truyền cũng như tài nguyên của máy gửi hơn so với sử
dụng hình thức unicast.
Khi sử dụng multicast, một cây multicast sẽ hình thành. Node gốc của cây là máy
gửi tin, còn các node lá của cây là các máy nhận tin. Nhờ vào quá trình định tuyến, sẽ chỉ
có một gói tin được gửi trên mỗi cạnh của cây, và nó sẽ được nhân bản tại các node dọc
theo thân cây multicast. Các node trên thân cây có thể là bộ định tuyến (tiếng Anh:
router) hoặc các máy đầu cuối, phụ thuộc vào các giao thức truyền multicast khác nhau.
Tiếp theo đây, chúng ta sẽ lần lượt tìm hiểu về truyền tin multicast tầng mạng và
truyền tin multicast tầng ứng dụng.
1.2. Truyền tin multicast tầng mạng (IP multicasting)
Cuối những năm 80, Steve Deering làm việc trên một dự án trong đó có nhu cầu gửi
một thông điệp từ một máy tính đến một nhóm các máy tính thông qua các giao thức lớp
3 (hay còn gọi là tầng mạng, tiếng Anh: network layer). Sau khi nghiên cứu vài giao thức
định tuyến, Deering kết luận rằng chức năng của các giao thức định tuyến có thể mở rộng
để hỗ trợ cơ chế multicast lớp 3. Định nghĩa cơ bản nhất của IP multicast là:
IP multicast là cơ chế gửi một thông điệp từ một nguồn duy nhất đến một nhóm
chọn lựa các địa chỉ đích thông qua một hạ tầng mạng lớp 3 trong một dòng dữ liệu.
Hiện nay, IP multicast là một chuẩn mở của IETF (Internet Engineering Task
Force), dùng để truyền dữ liệu tới nhiều máy nhận. Thành viên trong nhóm multicast có
thể thay đổi. Người dùng có thể quyết định tham gia hoặc rời bỏ nhóm bất cứ lúc nào, và
có thể là thành viên của nhiều nhóm multicast cùng lúc. Vai trò của máy tham gia trong
quá trình truyền multicast cũng có thể khác nhau: cùng một máy có thể là nguồn gửi trong
cây multicast này, nhưng lại là máy nhận trong cây multicast khác.
Khóa luận tốt nghiệp
9
Phạm Duy Thăng
Bộ định tuyến trong mô hình này phải có chức năng multicast. Khi nguồn multicast
truyền thông điệp multicast, bộ định tuyến cục bộ sẽ gửi thông điệp đó đến các bộ định
tuyến khác được kết nối với mạng có các thành viên của nhóm multicast.
Như vậy, trong cây multicast của mô hình truyền tin multicast tầng mạng, các bộ
định tuyến đóng vai trò là các node trong thân cây, có nhiệm vụ chuyển tiếp các gói tin
multicast tới các máy nhận, là các node lá của cây multicast. Vai trò của bộ định tuyến
được minh họa như trong hình 2.
Hình 2. Vai trò của các bộ định tuyến trong truyền tin multicast tầng mạng
IP multicast sử dụng cách đánh địa chỉ lớp D, là dạng đặc biệt của địa chỉ IP dành
cho multicast. Tất cả các máy kết nối vào Internet phải có địa chỉ IP thuộc lớp A, lớp B,
hoặc lớp C. Một máy có thể có một hoặc nhiều địa chỉ multicast lớp D tùy thuộc vào số
nhóm multicast mà nó tham gia. Địa chỉ lớp D có độ dài là 32bit. 4 bit đầu tiên được dùng
để xác định nó thuộc lớp D, 28 bit còn lại được dùng để xác định nhóm multicast.
Một địa chỉ lớp D có thể so sánh với một kênh trên tivi. Khi bạn truy cập một địa chỉ
lớp D, bạn sẽ nhận được tất cả thông tin được truyền multicast đến địa chỉ đó.
Truyền tin multicast tầng mạng phát huy mạnh mẽ các ưu điểm của truyền thông
multicast nói chung. Do các bộ định tuyến đóng vai trò các node trên thân cây multicast,
Khóa luận tốt nghiệp
10
Phạm Duy Thăng
các cạnh của cây cũng chính là các đường truyền vật lý, các gói tin multicast được nhân
bản tại các bộ định tuyến làm cho số gói tin lưu thông trên đường truyền giảm tới mức tối
thiểu. Do đó, hiệu suất truyền tin của mạng đạt mức tối đa.
Với kiến trúc multicast tầng mạng đang sử dụng hiện nay, các phương thức xử lý
đáp ứng các ràng buộc về chất lượng dịch vụ (tiếng Anh: Quality of service) vẫn là vấn đề
phức tạp và chưa mang lại hiệu quả cao vì:
• Khả năng thích ứng với sự tăng trưởng về số lượng trạng thái chuyển tiếp
multicast tại các bộ định tuyến không tốt: các bộ định tuyến cần lưu giữ trạng
thái theo nhóm.
• Định tuyến phức tạp, mỗi cây chỉ kết hợp được với một nhóm đơn. Việc tạo
và duy trì một cây multicast cho mỗi nhóm làm mất nhiều thời gian và tài
nguyên, đặc biệt khi tính đến các ràng buộc về chất lượng dịch vụ.
• Khi có quá nhiều kết nối hoặc một nút mạng không hoạt động sẽ gây ra rớt
mạng và phải sửa chữa lại nhiều phần của cây.
• Việc cân bằng tải và định tuyến lại cây chưa được đề cập thấu đáo.
Hơn nữa, cho dù bộ định tuyến khắc phục được các vấn đề trên, thì chi phí để thay
thế lại hạ tầng mạng lớp 3 đã được xây dựng là cực kỳ lớn.
1.3. Truyền tin multicast tầng ứng dụng
Do nhu cầu sử dụng truyền thông multicast đang ngày càng lớn, trong khi giao thức
IP multicast ở tầng mạng chưa đủ để đáp ứng, người ta đã đề ra các giao thức truyền
thông multicast tầng ứng dụng.
Khái niệm truyền tin multicast tầng ứng dụng được đưa ra để nói về lớp các giao
thức multicast trong đó quá trình định tuyến được thực hiện ở tầng ứng dụng, sử dụng các
giao thức khác đã có ở tầng mạng và tầng giao vận.
Do đó, các giao thức truyền thông multicast tầng ứng dụng không yêu cầu phải thay
đổi kiến trúc mạng đã đó. Thay vào đó, các giao thức này thực hiện các chức năng chuyển
tiếp các thông điệp multicast tại các máy đầu cuối.
Khóa luận tốt nghiệp
11
Phạm Duy Thăng
Hình 3. Truyền thông multicast tầng mạng và tầng ứng dụng
(Hình vuông là các router, hình tròn là các máy đầu cuối)
Hình 10 thể hiện ý tưởng của truyền thông multicast tầng ứng dụng. Khi truyền
multicast ở tầng ứng dụng, các gói tin không được nhân bản tại các bộ định tuyến giống
như mô hình multicast truyền thống mà việc nhân bản gói tin sẽ được thực hiện tại các
máy đầu cuối. Về mặt logic, các máy đầu cuối tạo nên một mạng phủ và giao thức truyền
thông multicast phải xây dựng và duy trì việc truyền multicast trên mạng phủ này. Do
truyền thông multicast tầng ứng dụng phải gửi các gói tin giống nhau trên cùng một kết
nối, hiệu suất của mô hình này không thể tối ưu được bằng truyền thông multicast trên
tầng mạng. Tuy nhiên, truyền tin multicast tầng multicast vẫn có khả năng giảm tải nhiều
cho đường truyền và nguồn tin multicast.
1.4. Các mô hình truyền tin multicast tầng ứng dụng
Dựa vào việc truyền tin multicast có yêu cầu mạng phủ trước hay không, người ta
phân loại các giao thức truyền tin multicast tầng ứng dụng thành hai loại: mesh-first và
tree-first.
Trong mô hình truyền tin kiểu tree-first, các node khi tham gia vào cây multicast sẽ
tự tìm cho mình một node cha từ các node thành viên trước đó của cây. Việc chọn node
cha thường được thực hiện dựa trên một số tiêu chí như cân bằng băng thông giữa các
node hoặc đảm bảo độ sâu của cây cân bằng giữa các nhánh. Ưu điểm của mô hình này là
các node có thể chọn node cha, do đó có thể tránh được tình trạng một node nào đó phải
Khóa luận tốt nghiệp
12
Phạm Duy Thăng
chịu tải quá cao. Tuy nhiên nhược điểm của mô hình này là khi một node nào đó bị lỗi,
việc khôi phục lại cây multicast để đảm bảo luồng dữ liệu cho các node con là tương đối
khó khăn do mỗi node biết rất ít thông tin về các node khác trong mạng.
Hình 4. Mạng phủ 7 node (a) và cây multicast xây dựng trên mạng phủ (b)
Trong mô hình truyền tin kiểu tree-first, các node trước khi tham gia vào cây phải là
thành viên của một mạng phủ nào đó, và giữa chúng đã tồn tại các liên kết với nhau dạng
lưới. Sau đó, cây multicast sẽ được xây dựng dựa trên các liên kết của mạng phủ này. Ưu
điểm của mô hình này là khả năng chịu lỗi cao do mỗi node tồn tại nhiều liên kết với các
node khác trong mạng. Tuy nhiên nhược điểm của mô hình này là rất khó để thực hiện
cân bằng tải và cân bằng độ trễ giữa các node do phụ thuộc vào kiến trúc mạng phủ.
Khóa luận tốt nghiệp
13
Phạm Duy Thăng
Chương 2 – Truyền tin multicast trên nền mạng ngang hàng có
cấu trúc Chord
2.1. Khái niệm mạng ngang hàng
Hiện nay, trong một số lĩnh vực mà giới hạn tài nguyên phần cứng không đủ để đáp
ứng nhu cầu thực tế của người sử dụng, mô hình máy chủ - máy khách truyền thống đã tỏ
rõ những nhược điểm của nó. Giải pháp đã và đang được nghiên cứu nhiều năm nay đó là
thay thế mô hình máy chủ - máy khách bằng việc sử dụng mạng ngang hàng.
Mạng ngang hàng (tiếng Anh: peer-to-peer network), còn gọi là mạng đồng đẳng, là
một mạng máy tính trong đó hoạt động của mạng chủ yếu dựa vào khả năng tính toán và
băng thông của các máy tham gia chứ không tập trung vào một số nhỏ các máy chủ trung
tâm như các mạng thông thường [4]. Hình 5 minh họa cấu trúc của một mạng ngang hàng
nhỏ.
Hình 5. Mô hình mạng ngang hàng
Mạng ngang hàng thường được sử dụng để kết nối các máy thông qua một lượng kết
nối dạng ad hoc. Mạng ngang hàng có nhiều ứng dụng. Ứng dụng thường xuyên gặp nhất
là chia sẻ tệp tin, tất cả các dạng như âm thanh, hình ảnh, dữ liệu,... hoặc để truyền dữ liệu
thời gian thực như điện thoại VoIP.
Khóa luận tốt nghiệp
14
Phạm Duy Thăng
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.
Một số mạng hay kênh như Napster, IRC (thuộc thế hệ thứ nhất) sử dụng mô hình
máy chủ-máy khách cho một số tác vụ và mô hình ngang hàng cho những tác vụ khác.
Ngược lại, các mạng như Gnutella hay Freenet (thế hệ thứ 2) sử dụng mô hình ngang
hàng cho tất cả các tác vụ, nên các mạng này thường được xem như là mạng ngang hàng
đúng nghĩa (thực ra Gnutella vẫn sử dụng một số máy chủ để giúp các máy trong mạng
tìm kiếm địa chỉ IP của nhau).
Vậy sử dụng mạng ngang hàng mang lại những lợi thế gì? Chúng ta sẽ xét đến các
ưu điểm của mạng ngang hàng trong phần kế tiếp.
2.1.1. Ưu điểm của mạng ngang hàng
Một mục đích quan trọng của mạng đồng đằng là trong mạng tất cả các máy tham
gia đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán. Do đó
khi càng có nhiều máy tham gia mạng thì khả năng tổng thể của hệ thống mạng càng lớn.
Đây là các ưu điểm rất phù hợp để sử dụng cho mục đích truyền tin multicast. Ngược lại,
trong cấu trúc máy chủ-máy khách, nếu số lượng máy chủ là cố định, thì khi số lượng
máy khách tăng lên khả năng chuyển dữ liệu cho mỗi máy khách sẽ giảm xuống.
Tính chất phân tán của mạng ngang hàng cũng giúp cho mạng hoạt động tốt khi
một số máy gặp sự cố. Đối với cấu trúc tập trung, chỉ cần máy chủ gặp sự cố thì cả hệ
thống sẽ ngưng trệ. Còn đối với mạng ngang hàng các máy tính có thể tham gia và rời
khỏi mạng bất kì lúc nào mà mạng vẫn hoạt động bình thường, các máy tính còn lại vẫn
có thể trao đổi thông tin và chia sẻ tài nguyên với nhau.
Trong mạng ngang hàng dữ liệu trên các máy tính được đem ra chia sẻ nên một
máy tính có thể thực hiện vai trò giống server để chia sẻ cho các máy tính khác. Các máy
tính sau khi được chia sẻ dữ liệu cũng có thể tham gia chia sẻ cho các máy tính khác. Như
vậy sẽ tăng số bản sao dữ liệu và giúp cho việc chia sẻ dữ liệu nhanh chóng.
Khóa luận tốt nghiệp
15
Phạm Duy Thăng
Đối với mạng Napster, thuật ngữ ngang hàng nói lên tính chất quan trọng của giao
thức giao tiếp ngang hàng, còn thực ra thành công của Napster phải nhờ vào sự liên kết
chặt chẽ giữa các máy tham gia với máy chủ trung tâm lưu trữ danh sách nội dung tệp trên
các máy tham gia. Nhờ vậy việc tìm kiếm trở nên nhanh và hiệu quả hơn, tuy nhiên, đây
cũng chính là điểm yếu dẫn đến các rắc rối pháp lý mà kết cục là sự sụp đổ của Napster.
2.1.2. Mạng ngang hàng không có cấu trúc và mạng ngang hàng có cấu trúc
Mạng phủ ngang hàng 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 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 phủ ta có thể phân loại mạng ngang hàng thành 2 loại: có cấu trúc hay không cấu
trúc.
Mạng ngang hàng không cấu trúc
Hình 6. Một mạng ngang hàng không cấu trúc sử dụng một máy tính server
Hình 6 minh họa một mạng ngang hàng không có cấu trúc. Một mạng ngang hàng
được gọi là mạng ngang hàng không cấu trúc khi các liên kết giữa các nút mạng trong
mạng phủ được thiết lập ngẫu nhiên (tức là không theo qui luật nào). Những mạng như
Khóa luận tốt nghiệp
16
Phạm Duy Thăng
thế này dễ dàng được xây dựng vì một máy mới khi muốn tham gia mạng có thể lấy 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 tự bản thân nó sẽ
thêm vào các liên kết mới của riêng mình. 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.
Hình 7. Mô hình chia sẻ file của Napster
Napster (hình 7) là mạng ngang hàng không cấu trúc đầu tiên thu hút được đông
đảo người sử dụng trên mạng. Đây là sự kết hợp của một mạng ngang hàng peer to peer
và một số máy chủ trung tâm để duy trì kết nối hệ thống và danh sách dữ liệu được chia
sẻ trong mạng. Ngoài việc là một mạng peer to peer, Napster cũng giống như một mạng
với các máy chủ. Chính các máy chủ này làm cho việc tìm kiếm dữ liệu và chia sẻ giữa
các máy tính trong mạng tốt hơn, tạo nên mô hình mạng peer to peer đầu tiên cuốn hút
Khóa luận tốt nghiệp
17
Phạm Duy Thăng
được số lượng lớn người dùng với các dịch vụ chia sẻ file dữ liệu, file nhạc trên mạng
Internet. Napster gồm 2 thành phần, thứ nhất là máy chủ trung tâm và thứ hai là các ứng
dụng trên các máy tính kết nối với nhau. Một máy tính tham gia vào mạng sẽ kết nối với
máy chủ trung tâm và đưa danh sách file chia sẻ trong máy tính lên máy chủ này. Những
máy tính khi tìm kiếm dữ liệu sẽ tìm kiếm thông tin về từ khóa trên máy chủ trung tâm để
biết máy tính nào hiện đang giữ file chia sẻ đó. Để tìm kiếm một file, một truy vấn sẽ
được gửi đi tới máy chủ trung tâm cùng với từ khóa tìm kiếm. Máy chủ trung tâm sẽ tìm
trong danh sách các file chia sẻ được đưa lên bởi các máy tính và trả về địa chỉ IP của
máy tính lưu giữ file chia sẻ này. Sau đó sẽ là kết nối trực tiếp giữa máy tính yêu cầu và
máy tính giữ file chia sẻ, dữ liệu được truyền giữa hai máy tính giống như trong một
mạng ngang hàng.
Hình 8. Tìm kiếm dữ liệu chia sẻ trong Gnutella
Khóa luận tốt nghiệp
18
Phạm Duy Thăng
Bên cạnh Napster, một mô hình mạng ngang hàng không cấu trúc khác cũng rất
nổi tiếng là Gnutella. Gnutella là một mạng ngang hàng thuần và chủ yếu dựa trên mạng
ngang hàng không có cấu trúc. Một phiên bản thương mại của Gnutella là Limewire. Các
máy tính trong Gnutella được mô tả như là những “servent”, những thành viên trong
mạng và được chia sẻ file trong mạng. Các máy tính khác có thể lấy được những file chia
sẻ này. Việc tìm kiếm file trên mạng mô tả trong hình 8, khi một máy tính A tìm kiếm file
X, nó sẽ gửi một truy vấn broadcast tới tất cả các máy tính nó biết, được coi là hàng xóm
của nó. Truy vấn sau đó sẽ được chuyển dần qua các bước và tới được máy tính có chứa
file X. Gnutella có mã nguồn mở và có giao thức mô tả rõ ràng trên mạng Internet, bất cứ
ai quan tâm cũng có thế tìm hiểu và phát triển để tạo ra một mạng ngang hàng của riêng
mình với các tính năng muốn có.
Mạng ngang hàng có cấu trúc
Hệ thống mạng ngang hàng không cấu trúc thể hiện nhược điểm: không có gì đảm
bảo tìm kiếm sẽ thành công. Đối với tìm kiếm các dữ liệu phổ biến được chia sẻ trên
nhiều máy, tỉ lệ thành công là khá cao, ngược lại, nếu dữ liệu chỉ được chia sẻ trên một
vài máy thì xác suất tìm thấy là khá nhỏ. Tính chất này là hiển nhiên vì trong mạng ngang
hàng không cấu trúc, không có bất kì mối tương quan nào giữa một máy và dữ liệu nó
quản lý trong mạng, do đó yêu cầu tìm kiếm được chuyển một cách ngẫu nhiên đến một
số máy trong mạng. Số lượng máy trong mạng càng lớn thì khả năng tìm thấy thông tin
càng nhỏ. Một nhược điểm khác của hệ thống này là do không có định hướng, một yêu
cầu tìm kiếm thường được chuyển cho một số lượng lớn máy trong mạng làm tiêu tốn một
lượng lớn băng thông của mạng, dẫn đến hiệu quả tìm kiếm chung của mạng thấp.
Khóa luận tốt nghiệp
19
Phạm Duy Thăng
System P2P
Centralized
Decentraliz
Structured
Unstructured
Gnutella
Hybrid
KaZaA
CAN
CHORD
Hình 9. Mạng ngang hàng có cấu trúc thuộc nhánh các hệ thống phân tán trong các
mô hình mạng ngang hàng
Mạng ngang hàng có cấu trúc khắc phục nhược điểm của mạng không cấu trúc
bằng cách sử dụng hệ thống DHT (Bảng Băm Phân Tán, tiếng anh: Distributed Hash
Table). Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một
thuật toán cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với
một phần dữ liệu chia sẻ trong mạng. Với cấu trúc này, khi một máy cần tìm một dữ liệu,
nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách nhiệm cho
dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả. Hình 10 minh họa
cho mạng ngang hàng có cấu trúc Chord. Các node liên kết với nhau theo một vòng tròn,
và các thông điệp được gửi đi dựa vào đó.
Khóa luận tốt nghiệp
20
Phạm Duy Thăng
Hình 10. Mạng ngang hàng có cấu trúc Chord dạng vòng tròn
Trong mạng ngang hàng có cấu trúc, tài nguyên được phân bố một cách hợp lý để
không có một máy tính nào lưu giữ quá nhiều dữ liệu dẫn đến quá tải thông tin định
tuyến. Do mạng là có cấu trúc nên các thông điệp chuyển đi giữa các máy tính để duy trì
mạng ngang hàng được giảm xuống mức tối thiểu. Băng thông của mạng được dành nhiều
hơn cho việc chia sẻ tài nguyên.
Việc tìm kiếm thông tin trong mạng ngang hàng có cấu trúc cũng nhanh hơn trong
mạng không cấu trúc. Nếu như mạng không có cấu trúc các máy tính gửi thông điệp
broadcast để tìm kiếm thông tin thì trong mạng có cấu trúc một máy tính chỉ cần gửi
thông điệp tìm kiếm qua một số máy tính. Giao thức tìm kiếm chung trong mạng sẽ đảm
bảo thông tin được tìm kiếm chính xác.
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. Trong đó Chord và CAN được mô tả chi tiết, đã được mô phỏng và
cho kết quả qua các bài báo. Phần tiếp theo sẽ trình bày chi tiết về giao thức mạng ngang
hàng Chord.
Khóa luận tốt nghiệp
21
Phạm Duy Thăng
2.2. Giao thức Chord
Chord [9] là một trong những giao thức mạng ngang hàng có cấu trúc dùng bảng
băm phân tán. Chord hiện đang được phát triển tại MIT.
2.2.1. Bảng băm phân tán
Bảng băm phân tán (Distributed hash tables) là một giải thuật cung cấp dịch vụ tìm
kiếm tương tự cấu trúc dữ liệu bảng băm: Một cặp {khóa, giá trị} được lưu trữ vào trong
bảng băm phân tán, và bất kỳ node tham gia nào cũng có thể đưa ra một khóa và dễ dàng
truy vấn lấy giá trị tương ứng. Trách nhiệm duy trì ánh xạ từ không gian khóa vào giá trị
được phân tán ra các node, nên khi thay đổi số node tham gia không ảnh hưởng đáng kể
đến hoạt động của hệ thống. Điều này cho phép bảng băm phân tán có thể mở rộng ra một
số lượng rất lớn các node tham gia mà vẫn quản lý được sự ra vào liên tục của các node,
cũng như sự gián đoạn của một số node.
Mỗi bảng băm phân tán đều cần có một không gian địa chỉ. Mỗi khóa sẽ lấy một giá
trị từ không gian này. Kích thước không gian địa chỉ thường gặp nhất là 2160 (mỗi khóa là
một số nhị phân 160 bit).
Các node và dữ liệu sẽ được ánh xạ vào cùng một không gian địa chỉ sử dụng hàm
băm SHA-1. Với mỗi node, hàm băm sẽ băm địa chỉ IP của node đó để thu được một
khóa 160 bit, gọi là định danh node (node identifier hay nodeID). Định danh node được
sử dụng để xác định vị trí của node trong bảng băm. Như vậy mỗi node sẽ có một địa chỉ
duy nhất, và do không gian khóa là rất lớn nên cũng có thể xem là mỗi địa chỉ tương ứng
với một node duy nhất. Đối với dữ liệu, mỗi file dữ liệu cũng được gắn với một định
danh. Định danh của dữ liệu được băm từ tên file dữ liệu hoặc băm từ nội dung của file, là
giá trị duy nhất trong không gian địa chỉ.
Mỗi node sẽ quản lý một khoảng giá trị nhất định trong không gian địa chỉ. Dữ liệu
được lưu ở node và được quản lý thông qua định danh. Khi một node muốn tìm kiếm một
dữ liệu trong bảng băm phân tán, nó sẽ gửi truy vấn lần lượt qua các node khác. Nội dung
truy vấn chính là định danh của dữ liệu. Khi một node lưu trữ dữ liệu có định danh trên
nhận được truy vấn thì nó sẽ trả về dữ liệu yêu cầu.
Như vậy, việc tìm kiếm dữ liệu trong bảng băm phân tán sẽ luôn thực hiện được.
Tuy nhiên vấn đề đặt ra là khi số lượng node tham gia lớn thì việc tìm kiếm sẽ diễn ra như
Khóa luận tốt nghiệp
22
Phạm Duy Thăng
thế nào để đảm bảo tính hiệu quả về mặt thời gian và tính ổn định khi liên tục có các node
gia nhập và rời khỏi bảng băm.
2.2.2. Băm đồng nhất
Hàm băm đồng nhất sử dụng SHA-1 để gán cho mỗi node và khóa một định danh
(tiếng Anh: identifier) m-bit. Định danh của node là kết quả của hàm băm với đầu vào là
địa chỉ IP của node trong khi định danh của khóa sinh ra từ việc băm khóa đó. Sau đây ta
sẽ sử dụng thuật ngữ “khóa” cho cả khóa và ánh xạ của nó qua hàm băm, nghĩa của nó sẽ
phụ thuộc vào ngữ cảnh sử dụng.
Tất cả các định danh được xếp theo thứ tự vào vòng tròn định danh mô-đun 2m.
Khóa k sẽ được gắn cho node đầu tiên có định danh bằng hoặc lớn hơn (định danh của) k
trong không gian định danh. Node này được gọi là node kế tiếp (successor node) của k, ký
hiệu là successor (k). Nếu các định danh được xếp vào vòng tròn các số từ 0 đến 2m – 1
thì successor (k) chính là node đầu tiên theo chiều kim đồng hồ tính từ k. Vòng tròn này
gọi là vòng Chord (Chord ring).
Hình 11 là vòng Chord với m = 3. Không gian khóa gồm có 8 số (từ 0 đến 7). Vòng
Chord có tất cả 3 node tham gia, quản lý 4 khóa. Node kế tiếp của định danh 5 là node 0,
do đó khóa 5 được lưu ở node 0. Tương tự với các khóa khác.
Khóa luận tốt nghiệp
23
Phạm Duy Thăng
Hình 11. Vòng tròn Chord với 3 node và lưu trữ 4 khóa
2.2.3. Định tuyến thông báo
Chúng ta có thể tìm kiếm đích đến cho các thông báo theo mô hình tìm kiếm tuyến
tính: Mỗi thông điệp tìm kiếm sẽ được gửi lần lượt qua các node trên vòng tròn Chord
cho đến khi tìm được dữ liệu cần tìm.
Tuy nhiên, tìm kiếm tuyến tính yêu cầu một số lượng thông điệp tăng tuyến tính
theo số lượng node. Và rõ ràng điều này làm giảm hiệu suất tìm kiếm của hệ thống khi số
lượng node tăng. Để tăng tốc quá trình tìm kiếm, mạng Chord duy trì thêm thông tin định
tuyến.
Mỗi node n trong vòng Chord duy trì thêm một bảng định tuyến gồm m hàng (m là
số bit để biểu diễn không gian khóa), gọi là bảng finger. Hàng thứ i trong bảng finger của
node n xác định node đầu tiên s theo sau node n bởi ít nhất 2i-1 trong vòng tròn định
danh, nghĩa là: s = successor (n + 2i-1). Node s này được gọi là finger thứ i của node n, và
được ký hiệu là n.finger (i). Finger đầu tiên của node n chính là node kế tiếp của node n
trong vòng Chord, tức là successor (n). Hình 12 minh họa việc bổ sung các bảng finger
vào một mạng Chord trong trường hợp m = 3.
Khóa luận tốt nghiệp
24
Phạm Duy Thăng
Hình 12. Mạng Chord với các bảng finger
Mô hình này có hai đặc điểm quan trọng. Thứ nhất, mỗi node chỉ lưu giữ thông tin
về một số nhỏ các node khác, và có nhiều thông tin về các node ở gần hơn các node ở xa.
Thứ hai, bảng finger của một node thường không chứa đủ thông tin để có thể ngay lập tức
xác định được successor của một khóa k bất kỳ.
Trong mô hình tìm kiếm mở rộng, khi một node n muốn xác định successor của
khóa k, quá trình tìm kiếm sẽ được thực hiện như sau:
- Node n tự kiểm tra khóa k, nếu nó thấy khóa k nằm trong khoảng không gian định
danh từ n tới successor (n), thì việc tìm kiếm trả về successor (n).
- Nếu khóa k nằm ngoài đoạn [n, successor (n)], n sẽ tìm trong bảng finger của mình
một node n’ có định danh lớn nhất ngay trước k, sau đó chuyển tiếp truy vấn tìm kiếm cho
n’.
Quá trình trên được thực hiện liên tiếp cho tới khi xác định được successor (k).
Bài báo đã chứng minh được rằng với mô hình tìm kiếm mở rộng, số node cần liên
lạc để có thể tìm thấy một successor trong một mạng N-node là O(log N). Như vậy, so với
mô hình tìm kiếm tuyến tính, mô hình tìm kiếm mở rộng tuy không cải thiện tính đúng
Khóa luận tốt nghiệp
25
Phạm Duy Thăng
đắn của các phép tìm kiếm nhưng rõ ràng mô hình tìm kiếm mở rộng tối ưu hơn rất nhiều
về mặt thời gian. Nếu sử dụng mô hình tìm kiếm mở rộng, chúng ta có thể thấy được khả
năng mở rộng của mạng Chord.
2.2.4. Khắc phục lỗi trong giao thức Chord
Trên thực tế hoạt động của mạng ngang hàng, có thể có các node mới tham gia vào
mạng ngang hàng. Các node đang tham gia, nếu không còn nhu cầu nữa có thể rời khỏi
mạng bất cứ lúc nào. Hơn nữa, các node tham gia mạng ngang hàng là các thực thể trên
mạng máy tính, do đó có thể xảy ra lỗi tại các node này do nhiều nguyên nhân, khiến việc
truyền tin bị gián đoạn. Kích thước mạng ngang hàng càng lớn thì số node tham gia mới,
rời khỏi mạng hoặc xảy ra lỗi càng lớn. Giao thức Chord đã xử lý khá tốt các trường hợp
trên, đảm bảo được tính ổn định của toàn mạng.
Node mới tham gia và quá trình đồng bộ
Để đảm bảo sự hoạt động ổn định của toàn bộ mạng khi có node mới tham gia vào
mạng, hoặc khi có node rời khỏi mạng, Chord đã sử dụng một giao thức đồng bộ hoạt
động định kỳ để cập nhật lại bảng finger và con trỏ successor của các node.
Đoạn giả mã của các hàm tham gia và đồng bộ được thể hiện trên hình 13.
Trước hết, chúng ta định nghĩa khái niệm node đứng trước (predecessor) của node
n: nếu n là node kế tiếp của node p thì p là node đứng trước của node n, ký hiệu p =
predecessor(n).
Khi một node n là node đầu tiên tham gia mạng Chord, nó sẽ gọi hàm create()
để khởi tạo vòng Chord mới.
Nếu node n tham gia vào một mạng có sẵn, nó sẽ liên lạc với một node n’ trong
mạng, sau đó yêu cầu n’ tìm giá trị successor(n).
Khóa luận tốt nghiệp
26
Phạm Duy Thăng
Hình 13. Đoạn giả mã của các hàm trong quá trình đồng bộ
Định kỳ, node n phải gọi hàm stablilize() để thực hiện việc ổn định hóa. Hàm
này có nhiệm vụ kiểm tra nếu tồn tại một node n’ nằm giữa n và successor(n) thì gán
lại con trỏ successor của n là n’. Sau đó, n yêu cầu n’ kiểm tra và cập nhật n là
predecessor của n’ thông qua hàm notify().
Khóa luận tốt nghiệp
27
Phạm Duy Thăng
Định kỳ, node n cũng phải gọi hàm fix_fingers() để cập nhật lại bảng finger
của mình.
Cuối cùng, n sẽ gọi hàm check_predecessor() một cách định kỳ để kiển tra
xem node đứng trước nó có bị gián đoạn hay không. Nếu có, n tự thiết lập lại con trỏ
predecessor của nó thành con trỏ NULL.
Như vậy, giao thức đồng bộ như trên đã giải quyết được các vấn đề node tham gia,
node rời mạng, đảm bảo được sự hoạt động ổn định của toàn bộ mạng Chord.
Node lỗi và danh sách successor
Tính đúng đắn của giao thức Chord phụ thuộc vào điều kiện là mỗi node đều biết
successor của nó. Tuy nhiên, điều kiện này có thể bị vi phạm nếu như có lỗi xảy ra ở các
node.
Hình 14. Sơ đồ một mạng Chord với 9 node tham gia
Khóa luận tốt nghiệp
28
Phạm Duy Thăng
Ví dụ, trên hình 14, nếu như các node 14, 21 và 32 xảy ra lỗi cùng một lúc và bị gián
đoạn, node 8 không có khả năng nhận biết được rằng node 38 hiện là successor của nó,
bởi vì không có bản ghi nào trong bảng finger của nó trỏ đến node 38. Như vậy, node 8 sẽ
nhận sai successor, điều này ảnh hưởng trực tiếp đến tính đúng đắn của toàn bộ mạng
Chord.
Để tăng cường sự an toàn cho toàn bộ mạng Chord, giao thức Chord quy định thêm
rằng mỗi node trong mạng phải duy trì một danh sách successor gồm r node, chứa r
successor đầu tiên của node đó. Nếu successor trực tiếp (node kế tiếp) của một node
không hoạt động, node đó có thể thay thế successor bởi bản ghi tiếp theo trong danh sách
successor. Nếu xảy ra lỗi cùng lúc tại tất cả r successor thì mạng Chord có thể bị sụp đổ,
tuy nhiên điều này rất khó có thể xảy ra nếu giá trị r được lựa chọn hợp lý.
Như vậy, để duy trì danh sách successor, chúng ta cần sửa đổi lại hàm
stablilize(). Node n sẽ đồng bộ danh sách successor của nó với node p là successor
trực tiếp của n bằng cách copy toàn bộ danh sách successor của p, rồi loại đi bản ghi cuối
cùng và thêm p vào đầu danh sách. Nếu node n nhận thấy successor trực tiếp của nó lỗi, n
sẽ chọn ra node đầu tiên còn hoạt động tốt trong danh sách làm successor mới của mình,
rồi lại đồng bộ danh sách successor với node này.
Bài báo [9] cũng tính toán và chứng minh rằng với r = Ω(logN) thì hoạt động của
mạng Chord trở nên tối ưu.
2.3. Truyền tin multicast trên nền mạng ngang hàng có cấu trúc
Chord
Chúng ta đã có những khái niệm cơ bản về giao thức mạng ngang hàng Chord và
truyền thông multicast tầng ứng dụng. Chúng ta có thể thấy được rằng Chord là giao thức
mạng ngang hàng ở tầng ứng dụng, có khả năng quản lý một số lượng lớn các node tham
gia, có khả năng hoạt động được trong môi trường lỗi cao, tần suất vào/ra của các node
lớn. Hơn nữa, bảng finger giúp cho giao thức Chord có được khả năng định tuyến rất tốt,
với số bước để thực hiện việc định tuyến đạt mức tối thiểu. Do đó, có thể sử dụng mạng
ngang hàng giao thức Chord làm mạng phủ để triển khai truyền thông multicast tầng ứng
dụng.
Khóa luận tốt nghiệp
29
Phạm Duy Thăng
Tải về để xem bản đầy đủ
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Giải pháp khắc phục lỗi trong truyền thông multicast dựa trên nền mạng ngang hàng Chord", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
khoa_luan_giai_phap_khac_phuc_loi_trong_truyen_thong_multica.pdf