Khóa luận Truyền tin multicast đa luồng thời gian thực trên mạng ngang hàng có cấu trúc
ĐẠI HỌC QUỐC GIA HÀ NỘI  
					TRƢỜNG ĐẠI HỌC CÔNG NGHỆ  
					Nguyễn Văn Minh  
					TRUYỀN TIN MULTICAST ĐA LUỒNG THỜI  
					GIAN THỰC TRÊN MẠNG NGANG  
					HÀNG CÓ CẤU TRÚC  
					KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
					Ngành: Công nghệ thông tin  
					HÀ NỘI - 2010  
				ĐẠI HỌC QUỐC GIA HÀ NỘI  
					TRƢỜNG ĐẠI HỌC CÔNG NGHỆ  
					Nguyễn Văn Minh  
					TRUYỀN TIN MULTICAST ĐA LUỒNG THỜI  
					GIAN THỰC TRÊN MẠNG NGANG  
					HÀNG CÓ CẤU TRÚC  
					KHOÁ 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: TS. Nguyễn Hoài Sơn  
					HÀ NỘI - 2010  
				LỜI CẢM ƠN  
					Em xin chân thành cảm ơn các thầy cô trường Đại học Công Nghệ - Đại học  
					Quốc Gia Hà Nội đã tận tình giảng dạy và giúp đỡ em trong suốt 4 năm vừa qua để em  
					có đủ kiến thức để hoàn thành khóa luận này.  
					Đặc biệt em xin gửi lời cảm ơn sâu sắc đến thầy Nguyễn Hoài Sơn. Thầy đã  
					hướng dẫn và định hình cho em cách tiếp cận nghiên cứu khoa học. Đồng thời trong  
					suốt quá trình làm luận văn luôn phải đối mặt với các vấn đề khó khăn cần giải quyết  
					thầy đã luôn theo sát để em tránh khỏi sai lầm giúp em từng bước hoàn thành khóa  
					luận này.  
					Em cũng xin gửi lời cảm ơn đến các anh chị và các bạn trong nhóm nghiên cứu  
					của thầy Nguyễn Hoài Sơn đặc biệt là cô Bùi Thị Lan Hương đã nhiệt tình hỗ trợ về  
					mặt ý tưởng và kinh nghiệm để em có thể hoàn thành khóa luận này thật tốt.  
					Con xin gửi tới bố mẹ và những người thân trong gia đình lòng biết ơn sâu sắc đã  
					luôn động viên , giúp đỡ cho con vượt qua giai đoạn khó khăn này.  
					Hà Nội, tháng 5 năm 2010  
					Sinh viên  
					Nguyễn Văn Minh  
				Tóm tắt  
					̉
					Trong thơi gian gần đây sựphat triên maṇ h me cua ha ̣tầng Internet đa cho ra đơi  
					̀
					́
					̃
					̉
					̃
					̀
					̉
					nhưng ưng duṇ g mơi thay đôi hoan toan cach tương tac của con người vơi nhau trên  
					̃
					́
					́
					̀
					̀
					́
					́
					́
					toàn thế giới. Kết nối vơi baṇ be thông qua maṇ g Internet trơ nên đơn gian hơn bao giơ  
					̉
					̉
					́
					̀
					̀
					hết nhơ nhưng ưng duṇ g nh ư Chat , Voice Call , Video Conference..Hay như cach  
					̀
					̃
					́
					́
					thưc xem truyền hinh IP TV, xem video theo yêu cầu thông qua maṇ g Internet vơi chất  
					́
					́
					̀
					lươṇ g cao cung cho thấy sự thú vị hơn việc xem tivi truyền thống . Mộ phần trong  
					̃
					nhưng ưng duṇ g nay được xây dꢀng dꢀa trên nền tả ng truyền tin multicast thơi gian  
					̃
					́
					̀
					̀
					thưc̣ đươc̣ đề câp̣ đến trong khoa luâṇ .  
					́
					Truyền tin multicast thơi gian thưc̣ trên maṇ g ngang hang la môṭ nhanh trong  
					̀
					̀
					̀
					́
					truyền tin multicast thơi gian thưc̣ trên maṇ g Internet . Khác với các mô hình Client -  
					̀
					Server truyền thống , mô hinh maṇ g ngang hang co nhưng đăc̣ trưng riêng biêṭ . Vơi  
					̀
					́
					̃
					́
					̀
					̉
					mô hinh maṇ g ngang hang ngươi thiết kế co thê tâṇ duṇ g băng thông va kha năng lưu  
					̉
					̀
					̀
					́
					̀
					̀
					trư cua cac may tham gia maṇ g thay vi tâp̣ trung tải vào một số máy chꢁnh như các  
					̃ ̉  
					́
					́
					̀
					̉
					server trong mô hinh Client-Server. Điêm maṇ h này của mô hình mạng ngang hàng đã  
					̀
					làm cho các nghiên cứu về truyền tin multicast cũng như video str eaming trên maṇ g  
					ngang hang ngày càng nhiều khi ma cac nghiên cưu trên mô hinh client -server đa gần  
					̀ ́  
					̀
					́
					̃
					̀
					̉
					như không thê tối ưu hơn nưa.  
					̃
					Khóa luận tôi trình bày nhằm đưa ra một giải pháp xây dꢀng cây multicast đa  
					luồng thời gian thꢀc trên mạng ngang hàng có cấu trúc vơi mong muốn đap ư ng đươc̣  
					́
					́ ́  
					các yêu cầu đăc trưư g như đam bao độtrễtaị cac node tham gia maṇ g không qua lơn  
					̉
					̉
					́
					́ ́  
					và độ trễ giữa các luồng nhận được tại mỗi node chênh lệch nhau nhỏ.  
					Thiết kế được đưa ra trong khóa luận dꢀa trên giao thức DHT và mô hình mạng  
					Chord , kết quả mô phỏng và đánh giá bước đầu đã cho kết quả tốt. Tuy nhiên cần  
					nhiều nghiên cứu cải tiến hơn nữa nhằm đạt hiệu quả cao nhất.  
				Mục lục  
					Mở đầu.............................................................................................................................2  
					Chương 1. Truyền tin multicast thời gian thꢀc ...............................................................3  
					1.1. Tổng quan về truyền tin multicast thời gian thꢀc .................................................3  
					
					1.1.2. Multicast tầng ứng dụng .................................................................................6  
					
					1.2. Truyền tin multicast thời gian thꢀc.....................................................................11  
					Chương 2. Truyền tin multicast đa luồng thời gian thꢀc ..............................................13  
					2.1. Tổng quan về truyền tin multicast đa luồng........................................................13  
					
					
					cấu trúc ..........................................................................................................................25  
					3.1. Vấn đề cần giải quyết..........................................................................................25  
					3.2. Ý tưởng................................................................................................................25  
					3.3. Thiết kế giải pháp................................................................................................27  
					3.3.1. Xây dꢀng cây multicast ................................................................................29  
					
					Chương 4. Mô phỏng và đánh giá .................................................................................33  
					4.1. Chương trình mô phỏng......................................................................................33  
					4.1.1. Kiến trúc mạng mô phỏng ............................................................................33  
					4.1.2. Các tham số trong mạng mô phỏng..............................................................34  
					4.2. Kết quả và đánh giá.............................................................................................36  
					
					4.2.2. Hiệu quả độ cân bằng tải trên toàn hệ thống ................................................38  
					Chương 5. Kết luận........................................................................................................40  
					
					
				Danh mục hình ảnh  
					Hình 1. Một số mô hình truyền tin ...........................................................................................................3  
					Hình 2. Mô hình IP Multicast....................................................................................................................4  
					Hình 3. Bộ định tuyến trong truyền tin multicast tầng mạng ..................................................................6  
					Hình 4. Truyền thông multicast tầng mạng và tầng ứng dụng................................................................7  
					Hình 5. Giao thức Narada.........................................................................................................................9  
					Hình 6. Mạng phủ 7 node (a) và cây multicast xây tương ứng (b) ....................................................... 10  
					Hình 7. Truyền tin mulicast đa luồng .................................................................................................... 13  
					Hình 8. Bảng định tuyến của node 10233102 trong Pastry .................................................................. 15  
					Hình 9. Node 10233102 gửi thông điệp m đến node 33321220........................................................... 16  
					Hình 10. Quá trình 1 node join vào group............................................................................................. 19  
					Hình 11. Truyền tin multicast trong group Scribe ................................................................................. 20  
					Hình 12. Quá trình tự sửa cây multicast ............................................................................................... 21  
					Hình 13. Splitstream F luồng ................................................................................................................. 22  
					Hình 14. Xác định node cha khi băng thông đi ra vượt quá giới hạn.................................................... 23  
					Hình 15. Phân chia vùng gần vùng xa cho các node con....................................................................... 26  
					Hình 16. Bảng Finger Table trong Chord............................................................................................... 28  
					Hình 17.Lưu giữ key trong mạng Chord ................................................................................................ 29  
					Hình 18.Tìm các node con gần và node con xa .................................................................................... 30  
					Hình 19. Node nhận được các luồng ..................................................................................................... 31  
					Hình 20. Sửa cây multicast khi có node rời khỏi mạng ......................................................................... 32  
					Hình 21. Mô hình mạng thực tế ............................................................................................................ 33  
					Hình 22. Chênh lệch hop lớn nhất giữa các luồng với 1014 node......................................................... 37  
					Hình 23. Chênh lệch hop lớn nhất giữa các luồng với 2072 node......................................................... 38  
					Hình 24. Hiệu quả cân bằng tải với 1014 node ..................................................................................... 38  
					Hình 25. Hiệu quả cân bằng tải với 2072 node .................................................................................... 39  
					1
				Mở đầu  
					̉
					Trong thơi gian gần đây ha ̣tầng Internet phat triên vơi tốc độchong măṭ . Tốc độ  
					̀
					́
					́
					́
					truyền tai trên maṇ g cao đa lam xuất hiêṇ nhiều ưng duṇ g mơi sư duṇ g truyền tin  
					̉
					̃
					̉
					̀
					́
					́
					̉
					multicast thơi gian thưc̣ như IP TV , video conference.. Chúng đang lam thay đôi cach  
					̀
					̀
					́
					giao tiếp cua con ngươi , thu hep̣ moị khoang cach vâṭ li , mang đến cho chung ta  
					̉
					̉
					̀
					́
					́
					́
					nhưng trai nghiêṃ mơi me về cuôc̣ sống.  
					̃
					̉
					́
					̉
					Truyền tin multicast co 2 loại chꢁnh là IP multicast và multicast trên tầng ứng  
					́
					̉
					dụng. IP Multicast co thê xem la phương phap multicast chinh thống , hiêụ qua nhất .  
					̉
					́
					̀
					́
					́
					̉
					Tuy nhiên khi triên khai trên maṇ g Internet thi IP Multicast găp̣ nhưng trơ ngaị rất  
					̃
					̉
					̀
					lơn : đo la chi phi cho viêc̣ thay thế router trên toan maṇ g Inter net (do cac router trươc  
					́
					́ ̀  
					̀
					́
					́
					́
					đây không co kha năng multicast ) và chi phꢁ cho việc duy trì các cây multicast đó trên  
					̉
					́
					̉
					hê ̣thống Internet rôṇ g lơn. Xu hương truyền tin multicast vi thế chuyên sang truyền tin  
					́
					́
					̀
					multicast trên tầng ưng duṇ g.  
					́
					̉
					Tuy nhiên khi triên khai trên truyền tin multicast trên tầng ưng duṇ g cung găp̣  
					́
					̃
					không it vấn đề . Thay vi nhân ban cac goi tin taị cac router như IP Multicast , cơ chế  
					̉
					́
					́
					́
					́
					̀
					Multicast trên tầng ưng duṇ g laị nhân ban cac goi tin trên cac ma y đầu cuối . Do đo  
					̉
					́
					́
					́
					́
					́
					́
					viêc̣ tối ưu cây multicast nhằm taọ sựcân bằng tai tương đối trên toan maṇ g cung la  
					̉
					̃
					̀
					̀
					môṭ vấn đề . Môṭ vấn đề nưa phai tinh đến la độtrễ . Các gói tin liên tục phải luân  
					̃
					̉
					̀
					́
					̉
					̃
					chuyên qua nhiều vi ṭ ri đầu cuối nên độtrê se tăng cao . Viêc̣ xây dưṇ g đươc̣ môṭ cây  
					̃
					́
					̉
					̉
					̃
					multicast phu hơp̣ đê giam thiêu độtrê cung la môṭ vấn đề quan troṇ g.  
					̉
					̃
					̀
					̀
					Hiêṇ nay đa co nhưng nghiên cưu xây dưṇ g cây multicast đa luồng trên maṇ g  
					̃ ́  
					̃
					́
					ngang hang co cấu truc như Sp litstream. Splitstream đươc̣ xây dưṇ g dưạ trên nền tang  
					̉
					̀
					́
					́
					̉
					Pastry, Scribe thêm vao đo môṭ số giai phap đê haṇ chế tinh traṇ g qua tai taị môṭ số  
					̉
					̉
					̀
					́
					́
					́
					̀
					node tham gia maṇ g. Nghiên cưu nay đã có kết quả tương đối tốt.  
					́
					̀
					Giải pháp của khóa luận đưa ra dꢀa trên ý tưởng và các ưu điểm của mô hình  
					mạng có cấu trúc Chord được sửa đổi để phù hợp với việc xây dꢀng cây truyền tin  
					multicast đa luồng. Tóm tắt nội dụng trình bày trong các chương:  
					Chương 1: Truyền tin multicast thời gian thꢀc  
					Chương 2: Truyền tin multicast đa luồng thời gian thꢀc  
					Chương 3: Xây dꢀng cây multicast đa luồng thời gian thꢀc trên mạng ngang hàng  
					có cấu trúc  
					Chương 4: Mô phỏng và đánh giá  
					Chương 5: Kết luận và hướng phát triển  
					2
					 
				Chƣơng 1.Truyền tin multicast thời gian thực  
					1.1.Tổng quan về truyền tin multicast thời gian thực  
					Trong điều kiện internet phát triển rất nhanh như hiện nay việc truyền tin trên  
					mạng đã trở nên ngày càng quan trọng và phổ biến. Mục đꢁch cuối cùng của việc  
					truyền tin là gửi thông tin từ máy này đến máy khác nên để đơn giản và trꢀc quan  
					người ta đã mô hình hóa việc truyền tin giữa các máy thành truyền tin giữa các node.  
					Sau đây là 1 số mô hình truyền tin thường gặp :  
					Hình 1. Một số mô hình truyền tin  
					Chương này của khóa luận sẽ làm rõ chi tiết việc truyền tin multicast.  
					Truyền tin multicast được định nghĩa là việc 1 máy truyền tin đến 1 nhóm máy  
					có lꢀa chọn. Quá trình được mô hình hóa thành các node như trên hình 1: gói tin được  
					nhân bản thành nhiều gói tin khác và gửi đi theo các cạnh của cây multicast .  
					Ta có thể thấy truyền tin multcast tỏ ra rất hiệu quả trên mạng Internet. So sánh  
					với phương pháp truyền tin broadcast (gửi không có lꢀa chọn) ta thấy : môṭ node se  
					̃
					gưi goi tin đến tất ca cac node khac ma no biết , trong khi nhưng node thưc̣ sựcần dư  
					̉
					̉
					̃
					̃
					́
					́
					́
					̀ ́  
					liêụ không phai la tất ca cac node ấy . Điều nay thưc̣ sựlam lang phi băng thông cua  
					̉
					̉
					̃
					̉
					̀
					́
					̀
					̀
					́
					mạng.  
					Chính nhờ các đặc tính riêng hiệu quả như vậy mà truyền tin multicast đang trở  
					thành hướng phát triển truyền tin chính so với các phương pháp truyền tin khác.  
					Truyền tin multicast hiện nay được phân loại thành 2 nhánh chính là : IP Multicast  
					3
					 
					 
					 
				(Multicast tầng mạng ) và Multicast trên tầng ứng dụng sẽ được giới thiệu ở mục tiếp  
					theo.  
					1.1.1.IP Multicast  
					Định nghĩa cơ bản nhất của IP Multicast : 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..  
					Hình 2. Mô hình IP Multicast  
					Hình 2 trình bày chi tiết về mô hình IP Multicast và cách thức hoạt động của nó.  
					Node gửi là máy Sender với mục tiêu là gửi được gói tin đến cho 2 máy Receiver.  
					Sender sẽ gửi gói tin IP với địa chỉ multicast (cái này sẽ được giải thích chi tiết ở  
					đoạn sau) đến Switch/Router. Switch/Router nhận được gói tin và phân tꢁch địa chỉ  
					multicast trên gói tin IP đó. Sau đó Switch/Router nhân bản gói tin thành n gói tin gửi  
					đi cho n máy có địa chỉ IP Multicast trên (trong hình minh họa là 2 máy có cùng địa  
					chỉ IP Multicast đó).  
					Deering được xem như là người đầu tiên đề xuất giải pháp IP multicast. Năm  
					1990 IP Multicast ra đời , nó là sꢀ phát triển từ mô hình dịch vụ IP unicast để nhằm  
					nâng cao giao tiếp đa điểm. Mô hình dịch vụ multicast cung cấp hai lợi ích chính: (1)  
					hiệu quả sử dụng băng thông và (2) việc địa chỉ nhóm gián tiếp cho phép redezvous  
					tầng mạng. Đề xuất này của Deering đã mở ra một lĩnh vꢀc mới cho các ứng dụng của  
					IP Multicast.  
					4
					 
					 
				Để truyền multicast thì cần dꢀa trên khái niệm một nhóm. Nhóm chứa tất cả các  
					máy cùng mong muốn nhận được một dữ liệu. Nhóm này không có giới hạn về vật lý  
					và địa lý, nó có thể nằm ở bất cứ đâu trên mạng Internet. Thꢀc ra ban đầu IP Multicast  
					được phát triển trong các trường đại học và các phòng nghiên cứu nhằm phục vụ chủ  
					yếu cho video streaming với tốc độ cao nhất. Việc quản lý và phân nhóm trong khu  
					vꢀc mạng LAN như vậy sẽ không quá phức tạp. Tuy nhiên khi áp dụng vào mạng  
					Internet thì nó cần 1 định nghĩa nhóm tốt hơn. Và IGMP( IGMP - Internet Group  
					Management Protocal) đã ra đời. Các máy trên mạng Internet muốn nhận dữ liệu thì  
					cần phải gia nhập giao thức quản lý nhóm mạng IGMP.  
					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.  
					Mỗi một máy cần có địa chỉ multicast là địa chỉ mà mỗi máy tham gia vào nhóm  
					và mong muốn nhận được dữ liệu. IANA ( IANA - Internet Assigned Numbers  
					Authority) sẽ kiểm soát việc gán địa chỉ IP Multicast. IANA gán không gian địa chỉ  
					lớp D được dùng cho IP Multicast. Như vậy tất cả địa chỉ Multicast nằm trong dải:  
					224.0.0.0 – 239.255.255.255.  
					Ngoài ra, để có thể thꢀc hiện multicast, bộ định tuyến (tiếng Anh: Router) trong  
					mô hình này phải có chức năng multicast(đây là một trong những vướng mắc lớn nhất  
					khiến IP Multicast khó có thể phát triển mạnh). 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 Error! Reference source not found..  
					5
				Hình 3. Bộ định tuyến trong truyền tin multicast tầng mạng  
					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, 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 IP Multicast đang sử dụng hiện nay để triển khai trên hệ thống  
					mạng Internet đang thꢀc sꢀ găp̣ cac vấn đề kho khăn :  
					́
					́
					̉
					 Khi triên khai trên hê ̣thống lơn như Internet cac router phai lưu giư rất nhiều  
					̉
					̃
					́
					́
					trạng thái của các nhóm . Đây thưc̣ sựla môṭ vấn đề lơn khi số nhom tăng lên  
					̀
					́
					́
					cao.  
					 Tạo và duy trì một cây multicast mất rất nhiều tai nguyên va thơi gian.  
					̀
					̀
					̀
					 Khi có quá nhiều kết nối hoặc một node 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 xư li thâṭ tốt.  
					̉
					́
					̉
					Vấn đề lơn nhất cua viêc̣ triên khai IP Multicast la chi phꢁ để thay thế lại hạ tầng  
					̉
					́
					̀
					mạng đã được xây dꢀng là cꢀc kỳ lớn. Chính vì vậy mà xu hướng chuyển giao sang  
					truyền thông multicast tầng ứng dụng.  
					1.1.2.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 cộng với rất nhiều khó khăn ở trên,  
					xu hướng multicast ngày càng mở rộng sang multicast tầng ứng dụng.  
					6
					 
					 
				Multicast tầng ứng dụng không thay đổi và phá vỡ hệ thống mạng. Thay vào đó,  
					nó chỉ thꢀc hiện chức năng truyền multicast trên các máy cuối ở tầng ứng dụng. Từ  
					tầng ứng dụng sẽ truyền xuống các tầng mạng và tầng giao vận. Ở các tầng thấp hơn,  
					cơ chế hoàn toàn không thay đổi.  
					Hình 4. 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)  
					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 nguyên thuỷ (IP multicast) 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.  
					Có hai thông số đo đạc tính chất của việc truyền multicast trên tầng phủ: stress  
					và stretch. Stress được xác định theo từng kết nối và đếm số gói tin được gửi đi bởi  
					một giao thức ở tầng mạng dưới. Stretch được đo bởi mỗi máy và là tỷ lệ của chiều dài  
					từ nguồn đến thành viên ở một mạng phủ theo đường dẫn unicast.  
					Nhìn chung, các giao thức tầng mạng có thể được đánh giá theo ba hướng:  
					 Chất lượng của đường truyền dữ liệu: là chất lượng của cây được đo bởi một  
					số thông số stress, stretch và cấp độ node.  
					 Độ mạnh yếu của tầng phủ: Mỗi máy thường không ổn định như router, các  
					node có thể rời mạng tạm thời hoặc vĩnh viễn làm ảnh hưởng đến các node nhận  
					phꢁa dưới. Độ mạnh yếu của các giao thức tầng ứng dụng được đo bởi việc đo  
					đạc sꢀ mất mát dữ liệu truyền khi các thành viên bị lỗi và thời gian mà nó cần  
					để giao thức có thể khôi phục lại để truyền cho các thành viên khác.  
					 Quá tꢀi : để sử dụng hiệu quả tài nguyên mạng, quá tải điều khiển ở mỗi thành  
					viên nên nhỏ. Đó là một thông số giá thành quan trọng để đo đạc tính mở rộng  
					của thành viên.  
					7
					 
				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 ứng dụng vẫn có khả  
					năng giảm tải nhiều cho đường truyền và nguồn tin multicast.  
					1.1.3.Các mô hình truyền tin multicast tầng ứng dụng  
					Đề có thể truyền tin multicast được thì trước tiên cần có một cấu trúc topology  
					của mạng phủ. Trong topology của tầng mạng phủ - tầng mạng ứng dụng, các máy tính  
					liên kết với nhau. Mỗi máy tính gọi là một node mạng liên kết ảo với các node khác.  
					Việc xem máy tính là 1 node ảo được sử dụng rất nhiều trong cấu trúc của các mạng  
					ngang hàng như Chord , Pastry do tꢁnh chất phân tán và không xác định được về  
					phương diện địa lý của các máy thật.  
					Dꢀa vào topology đó, các node tương ứng với các node trên cây multicast (node  
					lá hoặc node con), liên kết ảo sẽ tạo nên cơ chế truyền tin từ node lá sang các node con.  
					Có hai cách thức truyền thông multicast: multicast trên mạng có cấu trúc (tree-  
					first) và multicast trên mạng không có cấu trúc (mesh-first). Sau đây ta sẽ nghiên cứu  
					phân tích và lꢀa chọn một hướng truyền thông phù hợp cho video streaming.  
					Multicast theo hướng mesh-first  
					Trong cách tiếp cận mesh-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.  
					Giao thức Narada là một trong những giao thức multicast tầng ứng dụng đầu tiên  
					và theo hướng mesh-first. Nó chỉ định một máy đặc biệt là Rendezvous Point (RP)  
					được sử dụng để theo dõi sꢀ gia nhập của một thành viên mới.  
					Tất cả các giao thức multicast tầng mạng cũng sử dụng một hoặc một số các thꢀc  
					thể tương tꢀ như RP trong Narada để tạo cơ chế gia nhập.  
					Xây dựng mesh: khi một node mới muốn gia nhập nhóm multicast, nó sẽ có danh  
					sách thành viên đã gia nhập vào mesh do RP cung cấp. Sau đó thành viên mới sẽ lꢀa  
					chọn ngẫu nhiên một số các thành viên và gia nhập vào mesh và coi như là láng giềng  
					của những thành viên đó. Quy trình gia nhập thành công khi mà ít nhất một thành viên  
					trong danh sách đồng ý để thành viên mới là láng giềng mesh.  
					Khi gia nhập vào mesh, thành viên mới bắt đầu định kỳ trao đổi thông điệp với  
					các lang giềng mesh của nó. Bất cứ khi nào một node gia nhập hoặc một thành viên rời  
					8
					 
				nhóm, nhóm này sẽ thay đổi thông tin của tất cả thành viên. Do đó, mỗi thành viên  
					trong nhóm giữ trạng thái của tất cả các thành viên trong nhóm. Thông tin này thường  
					xuyên được cập nhật. Việc lưu trữ các thông tin trạng thái của tất cả thành viên trong  
					nhóm ở mỗi thành viên dẫn tới quá tải kiểm soát lớn, quá tải kiểm soát lên tới (O(N2))  
					với N là kꢁch thước của nhóm. Do đó, giao thức Narada hiệu quả chỉ khi kꢁch thước  
					nhóm Multicast là nhỏ.  
					Hình 5. Giao thức Narada  
					Khi cả thành viên D và E cùng lỗi, mesh phân chia thành 2 phần. Do đó, các  
					thành viên A, B và C sẽ ngừng nhận được thông tin trạng thái từ F, G và H; và ngược  
					lại. Mỗi thành viên có thể khảo sát các thành viên từ khi nó ngừng nhận được thông  
					điệp trạng thái để tạo ra một kết nối mới và sửa các phần. Chý ý rằng, việc sửa không  
					yêu cầu sꢀ hỗ trợ của RP và do đó vẫn có thể thꢀc hiện được ngay cả khi RP bị lỗi.  
					Đường truyền dữ liệu: các thành viên của một nhóm thꢀc hiện một giao thức  
					định tuyến để tꢁnh ra các đường đi unicast trong mesh.  
					Sự chọn lọc của mesh: các đường truyền dữ liệu trong Narada là các cây nhịp  
					của mesh. Do đó, chất lượng của đường truyền dữ liệu phụ thuộc vào chất lượng của  
					các kết nối là một phần của mesh. Khi một thành viên mới tham gia, hoặc khôi phục từ  
					các phần, một tập ngẫu nhiên các cạnh sẽ được thêm vào mesh. Do đó, sꢀ chọn lọc  
					định kỳ cần phải được thꢀc hiện với các cạnh để cải tiến chất lượng của các đường  
					truyền dữ liệu. Việc thêm cạnh (J,G) là có ích bởi vì một số lượng lớn các node unicast  
					9
					 
				có thể được thay bằng một cạnh mới. Cạnh (A, C) được xoá đi. Quyết định để thêm  
					hoặc bỏ đi một cạnh của mess được thꢀc hiện giữa cạnh của 2 điểm cuối.  
					Ư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ủ. Với nhược điểm này thì không phù hợp với truyền video streaming do các  
					gói tin có độ trễ khác nhau, gói tin gửi trước có thể đến sau, gói tin gửi sau đến trước.  
					Việc không cân bằng độ trễ sẽ làm ảnh hưởng đến việc trình diễn dữ liệu.  
					Multicast theo hướng tree-first  
					Trong cách tiếp cận 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 chịu tải quá cao.  
					Hình 6. Mạng phủ 7 node (a) và cây multicast xây tương ứng (b)  
					Scribe là hệ thống multicast tầng ứng dụng mở rộng được xây dꢀng trên Pastry.  
					Để tạo nhóm multicast, Scribe tạo ra một khoá Pastry tꢀ động được biết như Id của  
					một nhóm. Cây multicast tương ứng với một nhóm được thꢀc hiện bằng một tập hợp  
					các bộ định tuyến Pastry từ một node thành viên đến nhóm gốc của Id. Bằng việc  
					truyền lùi lại trên đường dẫn, các gói tin multicast từ gốc tới mỗi thành viên.  
					SplitStream là hướng phát triển sau của Scribe mà tập trung vào việc phân bổ truyền  
					thông.  
					Ngoài Scribe là hệ thống multicast tầng ứng dụng xây dꢀng trên Pastry, ta cũng  
					có thể xây dꢀng multicast trên các mạng ngang hàng có cấu trúc DHT khác như CAN,  
					CHORD…  
					10  
					 
				Mạng ngang hàng có cấu trúc thuộc nhánh các mạng ngang hà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ả.  
					Phát triển trên mạng ngang hàng có cấu trúc sẽ tận dụng ưu điểm là khả năng dễ  
					mở rộng do cấu trúc liên kết rõ ràng; việc tìm kiếm thông tin nhanh hơn. 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. Đây là một lợi  
					thế rất quan trọng khi áp dụng mạng ngang hàng có cấu trúc để triển khai truyền tin  
					multicast, do truyền tin multicast yêu cầu khả năng định tuyến của mạng phủ để xây  
					dꢀng nên cây multicast.  
					Ngoài ra, 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.  
					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.  
					1.2.Truyền tin multicast thời gian thực  
					Một nhánh trong truyền tin multicast là truyền tin multicast thời gian thꢀc.  
					Phương pháp truyền tin này thường được áp dụng trong các ứng dụng video streaming  
					trꢀc tiếp có thể xem là thế mạnh thꢀc sꢀ của mạng ngang hàng so với mô hình mạng  
					client – server truyền thống. Ví dụ cụ thể nhất là khi chúng ta muốn xem một trận đá  
					bóng rất được mong đợi giữa Real Maldrid – Barcelona. Một thống kê cho biết có đến  
					gần 1 tỷ người theo dõi trận cầu này trên toàn thế giới và chắc chắn là tại thời điểm đó  
					không có 1 server nào có thể đủ mạnh để phát sóng trꢀc tiếp trận đấu lên mạng  
					Internet. Thế nhưng với 1 ứng dụng của video streaming thời gian thꢀc trên mạng  
					ngang hàng (như Sopcast , TVU Player) bạn lại có thể theo dõi trận đấu này với chất  
					11  
					 
				lượng có thể chấp nhận được. Đó chꢁnh là ưu điểm vượt trội của mô hình mạng ngang  
					hàng và hiện nay vẫn đang được phát triển để ngày càng tối ưu hóa. Khóa luận này  
					cũng là một đề xuất về truyền tin multicast đa luồng thời gian thꢀc dꢀa trên giao thức  
					Chord nhằm ứng dụng cho video streaming thời gian thꢀc.  
					Trong truyền tin multicast thời gian thꢀc có 2 đặc tính riêng quan trọng nhất cần  
					phải đáp ứng để đạt được chất lượng có thể chấp nhận được :  
					 Inbound bandwith tại mỗi máy là đủ lớn để decode được thành video với chất  
					lượng chấp nhận được . Với các kỹ thuật decode bây giờ thì các máy với mức  
					download lớn hơn 240Kbits/s là có thể xem được video.  
					 Độ trễ tại các máy là không quá lớn để đảm bảo tính thời gian thꢀc . Tính chất  
					này thường rất quan trọng trong các ứng dụng video streaming 2 chiều như  
					video call … tuy nhiên trong các ứng dụng 1 chiều như các ứng dụng xem TV  
					trên Internet đặc tính này lại có thể không quá quan trọng  
					12  
				Chƣơng 2.Truyền tin multicast đa luồng thời gian thực  
					Trong chương một, chúng ta đã hiểu được khái niệm và cách thức truyền tin  
					multicast cũng như truyền tin multicast thời gian thꢀc. Một trong những đặc tính quan  
					trọng của hệ thống multicast là 1 máy khi tham gia vào hệ thống multicast có thể vừa  
					là node gửi dữ liệu lại vừa là node nhận dữ liệu. Từ tính chất này người ta đã phát triển  
					truyền tin multicast từ đơn luồng thành đa luồng với những ưu điểm , hiệu quả ứng  
					dụng rất đáng ghi nhận trên mạng ngang hàng.  
					2.1. Tổng quan về truyền tin multicast đa luồng  
					Hình 7. Truyền tin mulicast đa luồng  
					Về cơ bản truyền tin multicast đa luồng được xây dụng trên cây multicast với mở  
					rộng : các node thay vì chỉ gửi và nhận 1 gói dữ liệu thì bây giờ lại nhận và gửi nhiều  
					dữ liệu hơn.  
					Xét ví dụ ở Hình 7. Bây giờ giả sử ta chỉ quan tâm đến stripe 1(luồng 1) : đây  
					chính là truyền tin multicast đơn luồng. Quá trình truyền tin như sau : node source  
					(nguồn) gửi dữ liệu đến node con 2. Node 2 gửi dữ liệu cho node 3 , 4. Các node 3 , 4  
					gửi dữ liệu cho các node lá 5 , 6 ,7 ,8. Như vậy ta có thể thấy các node trong 2 , 3 , 4  
					đều phải gửi dữ liệu đi cho 2 node khác trong lúc đó chỉ nhận về 1 luồng dữ liệu.  
					Trong khi đó các node lá 5 , 6 , 7 , 8 chỉ nhận dữ liệu mà không phải gửi. Việc truyền  
					tin multicast như thế này trên mạng ngang hàng đã vi phạm tiêu chí quan trọng nhất  
					trong mạng ngang hàng : tính công bằng. Trên mạng ngang hàng các node gửi đi nhiều  
					dữ liệu thì cũng phải được nhận lượng dữ liệu xứng đáng với mức đóng góp của node  
					13  
					 
					 
					 
				đó trong hệ thống mạng. Điều kiện này là cơ sở để mạng ngang hàng phát triến mạnh  
					trên hệ thống Internet. Trên đây chỉ là trường hợp cây multicast đơn luồng nhị phân ,  
					còn trên thꢀc tế mô hình cây multicast chắc chắn sẽ phức tạp hơn nhiều.  
					Theo như nghiên cứu về cây multicast đơn luồng với fanout = 16 (mỗi node gửi  
					dữ liệu cho 16 node con khác) thì có đến 90% là node lá và chỉ có 10% là node trong.  
					10% đó phải gánh toàn bộ băng thông mạng.  
					Mục đꢁch lớn nhất cuả truyền tin multicast đa luồng là giải quyết được vấn đề  
					vừa đặt ra : làm sao đạt được tính công bằng cho các node tham gia hệ thống multicast.  
					Xét ví dụ ở Hình 7. Bây giờ ta quan tâm đến cả 2 luồng stripe 1 , 2. Sau khi xét  
					quá trình truyền tin của cả 2 luồng ta có thể thấy tất cả các node trong cây đều nhận 2  
					2 luồng dữ liệu và gửi đi 2 luồng dữ liệu. Nếu stripe 1 và stripe 2 là tương đương nhau  
					thì quả thꢀc hệ thống này đã đạt được sꢀ công bằng mong muốn.  
					Ví dụ ở Hình 7 có thể xem là hình mẫu đơn giản nhất cho cây multicast đa luồng.  
					Việc phát triển và ứng dụng trong hệ thống mạng ngang hàng với độ phức tạp lớn hơn  
					nhiều đã gặp 1 số vấn đề :  
					
					Số luồng mong muốn là lớn để đảm bảo mỗi luồng dữ liệu khi truyền đi trên  
					mạng đủ nhỏ để tránh tắc nghẽn. Việc tăng số luồng đồng nghĩa với cách xây  
					dꢀng việc gửi và nhân các luồng tại mỗi node trong cây multicast cũng sẽ phức  
					tạp hơn để đảm bảo vẫn giữ được tính công bằng  
					 Tính không ổn định của mạng. Đây chꢁnh là đặc trưng thꢀc tế của hệ thống  
					mạng ngang hàng. Các node trong cây multicast sẽ vào ra liên tục và để cây  
					multicast vẫn đảm bảo truyền tin được đến tất cả các node thì cần phải có cơ  
					chế thay đổi lại cây multicast cho phù hợp.  
					Gần đây đã có một số nghiên cứu liên quan đến xây dꢀng cây multicast đa luồng  
					trên mạng ngang hàng có cấu trúc sử dụng giao thức DHT(Bảng băm phân tán -  
					Distributed Hash Table). Mục 2.2 sẽ trình bày về những giải pháp này  
					2.2.Splitstream  
					Splitstream là giải pháp xây dꢀng cây multicast đa luồng dꢀa trên nền tảng  
					Pastry , Scribe.  
					Để hiểu được Splitstream ta sẽ tìm hiểu rõ về cấu trúc Pastry và Scribe ngay sau  
					đây.  
					14  
					 
				Pastry  
					Là một giao thức phân phối dữ liệu và định tuyến ở tầng ứng dụng trong các ứng  
					dụng mạng ngang hàng có cấu trúc. Đúng như định nghĩa của nó Pastry có hai nhiệm  
					vụ chính là phân phối dữ liệu trong một mạng ngang hàng và tìm kiếm dữ liệu trong  
					mạng dꢀa vào khóa tìm kiếm. Hệ thống Pastry là một hệ thống phân tán có khả năng  
					tꢀ cấu hình và có tính ổn định cao, khả năng chống chịu lỗi tốt, đồng thời nó cũng có  
					khả năng mở rộng và ứng dụng cho những dịch vụ lớn.  
					Pastry cũng sử dụng giao thức DHT để lấy định danh các node tham gia vào hệ  
					thống mạng. Với dải địa chỉ lớn thì giao thức DHT quả thꢀc rất phù hợp với hệ thống  
					mạng ngang hàng , không ngoại trừ đối với Pastry. Tuy nhiên điều thú vị của Pastry  
					nằm ở bảng định tuyến sẽ được mô tả dưới đây.  
					Hình 8. Bảng định tuyến của node 10233102 trong Pastry  
					Node và dữ liệu trong mạng Pastry được định danh bởi một giá trị 128 bit  
					(nodeId, ObjId). Mỗi dữ liệu lưu trữ trong mạng được băm bởi một hàm băm từ đó thu  
					được một giá trị gọi là khóa và dữ liệu này được lưu trữ tại node quản lý dãy các khóa  
					có chứa giá trị khóa này (giá trị khóa thu được khi băm dữ liệu).  
					Mỗi node trong mạng sẽ lưu trữ một bảng định tuyến (routing table) một tập các  
					hàng xóm (neighborhood set) và một tập namespace. Pastry dùng các dữ liệu này để  
					quản lý và duy trì sꢀ ổn định của mạng đồng thời phục vụ cho việc tìm kiếm dữ liệu.  
					15  
					 
				Ở Hình 8 là bảng định tuyến của nodeId 10233102. Dꢀa vào bảng định tuyến này  
					node 10233102 có thể gửi dữ liệu đến cho node khác. Ví dụ node 10233102 muốn gửi  
					thông điệp m đến cho node 33321220. Đầu tiên nó sẽ tìm trong các node hàng xóm  
					trong bảng định tuyến , nếu có sẽ gửi đến luôn. Nếu không tìm thấy nó sẽ tìm trong  
					Routing table và so sánh các ký tꢀ ban đầu của node cần gửi đến (33321220) với các  
					cột trong Routing table. Cụ thể là node 33321220 có ký tꢀ đầu là 3 : nó sẽ tìm trong  
					Routing table tại hàng 1 cột 3 tìm được node 31203203. Do ngay từ ký tꢀ đầu của  
					node cần gửi đã khác node gửi nên quá trình tìm kiếm dừng lại. Node 10233102 sẽ gửi  
					đến node 31203203 với yêu cầu sẽ gửi thông điệp m đến node 33321220. Quá trình  
					này tiếp tục xảy ra cho đến khi đến được node cần gửi.  
					Hình 9. Node 10233102 gửi thông điệp m đến node 33321220  
					Các node định kỳ gửi các gói tin keep-alive cho các node hàng xóm của nó và  
					nếu như một node nào đó không nhận được gói keep-alive của một node hàng xóm  
					trong tập hàng xóm của nó trong một thời gian nhất định thì nó sẽ xem như node hàng  
					xóm đã rời khỏi mạng và tꢀ động update thông tin.  
					Scribe  
					Scribe là cơ sở hạ tầng cho việc truyền multicast ở tầng ứng dụng dꢀa trên giao  
					thức Pastry. Cũng chꢁnh vì thế nó thừa hưởng được những đặc tính của một giao thức  
					mạng ngang hàng có cấu trúc và đồng thời mang những đặc điểm này vào trong việc  
					16  
					 
				truyền thông điệp multicast ở tầng ứng dụng. Giống như Pastry, Scribe là mô hình  
					phân quyền hoàn toàn nó có khả năng xây dꢀng, duy trình mạng, phát tán thông báo  
					một cách có tổ chức và tin cậy đồng thời có tꢁnh tương thꢁch cao với số lượng nhóm,  
					số thành viên trong nhóm lớn cũng như khi có nhiều tài nguyên trên mạng.  
					Scribe sẽ xây dꢀng một cây multicast bằng cách gọi thủ tục join giao thức Pastry  
					mỗi khi một nút có yêu cầu đăng nhập vào nhóm truyền multicast. Và nhờ khả năng tꢀ  
					cấu hình của Pastry mà vấn đề quản lý nút, nút lỗi cũng như ra vào của nút trở nên dễ  
					dàng. Đồng thời Scribe sử dụng giao thức Pastry để phát tán thông báo multicast.  
					Scribe tổ chức theo nhóm, tức là hợp những node có cùng nhu cầu nhận dữ liệu  
					multicast vào một nhóm, và về mặt logic thì các node trong nhóm sẽ có quan hệ với  
					nhau theo hình cây(sẽ giải thích kỹ ở phần sau). Bất kỳ một node nào trong mạng cũng  
					có thể thꢀc hiện được 3 thao tác: một là tạo ra 1 group, hai là join vào một group đã có  
					từ trước (trở thành một node trong cây multicast) và ba là truyền multicast tới tất cả  
					các node có trong group (nguồn multicast). Scribe là một mô hình cung cấp một cách  
					cố gắng tối đa trong việc truyền multicast nó có thể quản lý và duy trì được nhiều  
					group cùng một lúc, các group có số lượng thành viên lớn cũng như có nhiều tài  
					nguyên trong mạng.  
					Chi tiết giải thuật:  
					Mô hình:  
					Mô hình để thꢀc thi Scribe là một mạng Pastry trong đó các máy có cài đặt  
					chương trình ứng dụng của Scrible. Chương trình ứng dụng này sẽ cung cấp cho các  
					máy này hai phương thức là forward (được gọi khi một thông điệp định tuyến qua một  
					node) và deliver (được gọi khi thông điệp đến một node mà có nodeId gần với key  
					nhất hoặc nội dung thông điệp chꢁnh là địa chỉ của node đó). Các thông điệp trong  
					Scribe có 4 kiểu là : JOIN (xin tham gia vào một group), CREATE (tạo một group  
					mới), LEAVE (rời khỏi group), MULTICAST (truyền thông điệp multicast).  
					Quản lý nhóm:  
					–Mỗi nhóm truyền multicast có một định danh groupId duy nhất  
					 Scirbe node (tức là node trong mạng có cài chương trình ứng dụng Scrible) có  
					id gần với id của group (groupId) nhất được gọi là “điểm gặp” và nó cũng chꢁnh  
					là gốc của cây multicast tương ứng với groupId này luôn.  
					–Tạo Nhóm: Một node Scribe nào đó muốn khởi tạo một group thì các bước thꢀc  
					hiện sẽ là :  
					17  
				 B1: node Scribe dùng Pastry định tuyến thông điệp route(CREATE,groupId).  
					 B2: giao thức Pastry sẽ gửi thông điệp này tới điểm cuối là một node có nodeId  
					gần với groupId nhất. Và node này sẽ được xem như là gốc của group mới tạo  
					ra.  
					 B3: Hệ thống sẽ kiểm tra độ an toàn, các thông tin về chứng thꢀc nếu không có  
					vấn đề gì thì sẽ thêm group mới vào danh sách các group đã biết trong mạng.  
					Trong việc tạo nhóm bước quan trọng nhất chꢁnh là bước kiểm tra độ an toàn và  
					chứng thꢀc thông tin, vì điều này có ảnh hưởng rất lớn tới sꢀ an toàn của toàn mạng  
					nói chung chứ không chỉ riêng sꢀ an toàn của group multicast.  
					Quản lý thành viên :  
					Một group về phương diện logic là một cây multicast có gốc là “điểm gặp", mỗi  
					khi có một node mới được join vào group thì nó sẽ trở thành một thành viên của group  
					cũng như trở thành một thành phần của cây multicast, vì thế phải có cơ chế hợp lý để  
					tổ chức, quản lý các thành viên của group. Nếu một node Scribe là một phần của group  
					thì về phương diện cây multicast thì nó là một forwarder. Mỗi một forwarder duy trì  
					một bảng gọi là children table mà mỗi entry của bảng này sẽ gồm có 2 trường: địa chỉ  
					ip của một node “con” nào đó của nó (ip addr), và nodeId tương ứng của node con đó.  
					Join group:  
					Khi một node muốn join vào một group nào đó nó sẽ thꢀc hiện các bước sau:  
					 Gửi thông điệp JOIN với groupId của group cần join làm key: route  
					(JOIN,groupId).  
					 Giao thức Pastry sẽ định tuyến nó tới “điểm gặp”  
					- Nếu node trung gian trong quá trình truyền thông điệp là một forwarder (một  
					thành phần của group đang định join vào) thì đơn giản chỉ là thêm node cần join vào  
					làm một con của node forwarder này.  
					- Nếu node trung gian không phải là một forwarder của group cần join vào thì  
					thꢀc hiện các bước:  
					 Tạo một children table cho node trung gian và thêm thông tin của node cần join  
					vào bảng này.  
					 Gửi thông điệp JOIN của node trung gian tới điểm gặp (lúc này thay cho việc  
					thꢀc hiện join node ban đầu ta đi join node trung gian vào group). Và cứ thꢀc  
					hiện đệ quy như thế này ta sẽ có được một danh sách các node mới join vào  
					group thay vì chỉ một node ban đầu.  
					18  
				Để dễ hiểu ta xét ví dụ sau : một group có điểm gặp là node A có nodeId = 1100  
					(như hình vẽ ở dưới)  
					Hình 10. Quá trình 1 node join vào group  
					Node B có nodeId là 0111 muốn join vào group có A là gốc. nó sẽ gửi gói tin  
					route(JOIN,x) với x là groupId của group này, giao thức Pastry sẽ định tuyến gói tin  
					tới node D có nodeId là 1001. Nhưng node D không phải là một thành phần của group  
					này cho nên D sẽ tạo ra một children table của nó và thêm vào đó entry  
					(122.145.1.23;0111). Tiếp đó D sẽ gửi gói tin yêu cầu join vào group có gốc là A:  
					route(JOIN,x). Tiếp tục giao thức Pastry lại định tuyến nó tới node E và E cũng không  
					phải là thành viên của group này vì thế E cũng sẽ tꢀ tạo ra một childeren table của nó  
					và thêm vào entry (172.16.2.13;1001) Và sau đó E gửi gói tin route(JOIN,x). Gói tin  
					này tiếp tục được định tuyến và tới được A vì A là một thành của group cho nên ở đây  
					A sẽ thêm entry (10.10.1.123;1101) vào children table của nó. Kết quả là ta sẽ có thêm  
					3 thành phần mới của group là B ,D, E.  
					Tiếp theo node C có nodeId là 0100 muốn join vào group này. Để bắt đầu nó  
					cũng sẽ gửi gói tin yêu cầu route(JOIN,x) gói tin này được định tuyến tới node D và vì  
					bây giờ D đã là một thành phần của group này nên đơn giản D sẽ thêm vào children  
					table của nó một entry mới (123.134.12.12;0100).  
					Leave group:  
					Khi một node nào đó muốn rời khỏi group nó sẽ ghi một cách cục bộ rằng nó đã  
					rời khỏi group (tức là chỉ một mình nó biết nó đã rời khỏi mạng). Sau đó nếu bảng  
					children table của node này là rỗng tức là nó không có con trong cây multicast thì nó  
					sẽ gửi thông điệp LEAVE tới cha của nó trong cây multicast. Thông điệp này sẽ được  
					đệ quy trong cây multicast cho tới khi nó tới một node mà node có con đã rời khỏi  
					group. Còn nếu bảng children table của node muốn rời mạng không rỗng thì nó làm  
					19  
					 
				như trong trường hợp nó không có con nào cả. Sau đó các con của nó sẽ xem như nó bị  
					lỗi và thꢀc thi theo cơ chế sửa lỗi (sẽ trình bày ở dưới).  
					Với cách join và leave group như thế này và với đặc tính phân phối ngẫu nhiên  
					của Pastry cây multicast sẽ được xây dꢀng một cách đồng đều theo nghĩa là không một  
					node nào trong cây multicast ngay cả node gốc chịu quá nhiều kiết nối tới các node  
					khác. Việc này giúp cho Scribe có khả năng mở rộng về kꢁch thước cũng như về khả  
					năng, tức là cả khi tăng số lượng node trong group hay là tăng các gói mulicast gửi đến  
					mạng thì Scribe vẫn có thể đảm đương được.  
					Truyền multicast tới mạng :  
					Khi một node nào đó muốn truyền multicast tới các điểm trong một group nào đó  
					nó sẽ gửi thông điệp multicast tới điểm gặp (route(MULTICAST,rootId)). Sau khi  
					điểm gặp nhận được thông điệp này nó sẽ gửi trả lại node kia Ip của nó (rootIP), sau  
					đó node này sẽ truyền thông tin muốn gửi tới điểm gặp. Điểm gặp sẽ sẽ copy gói tin  
					multicast này gửi cho các con của nó trong cây multicast (nếu có), các điểm con này  
					khi nhận được dữ liệu cũng lại tiếp tục copy dữ liệu đó và gửi tới các con của nó trong  
					cây (nếu có). Cứ lặp đi lặp lại như vậy và chỉ dừng lại việc này khi dữ liệu tới các node  
					là node lá của cây.  
					Hình 11. Truyền tin multicast trong group Scribe  
					Giả sử như hình vẽ ở trên Sender là node cần gửi dữ liệu cho cây multicast có  
					gốc là 1100. Nó sẽ gửi gói tin route(MULTICAST,1100), node 1100 nhận được gói tin  
					và trả lại cho sender địa chỉ ip của nó từ lúc này sender giao tiếp với node gốc này  
					thông qua ip (bây giờ là quan hệ trong giao thức tcp/ip chứ không liên quan gì đến  
					pastry hay p2p gì cả). Sender gửi dữ liệu cho node gốc 1100 node này sẽ tạo một bản  
					sao dữ liệu và gửi cho con của nó là 1101. Node 1101 nhận được dữ liệu từ root, nó  
					cũng sẽ tạo một bản sao và gửi cho 1001 là con của nó. Node 1001 lại tiếp tục copy dữ  
					liệu và gửi cho 0111 và 0100 là thành viên trong bảng children table của nó. Khi các  
					20  
					 
				node 0100 và 0111 nhận được giữ liệu thì vì nó là lá của cây multicast nên nó không  
					làm gì nữa.  
					Trong vấn đề truyền dữ liệu multicast này có một điểm thú vị là khi sender muốn  
					gửi dữ liệu multicast tới group nó lại phải xin và nhận IP của node gốc rồi để sau đó  
					giao tiếp với node này dꢀa vào IP mà không sử dụng luôn giao thức Pastry để gửi dữ  
					liệu. Đơn giản là việc định tuyến cũng như gửi tin thông qua Pastry là một việc rất tốn  
					thời gian và tài nguyên mạng, mà bình thường một sender không chỉ gửi một gói tin  
					multicast tới mạng, mà nó sẽ gửi một số hoặc nhiều gói, do đó việc sender lưu IP của  
					node root và gửi gói tin trꢀc tiếp sẽ tiết kiệm được thời gian cũng như tài nguyên của  
					mạng. Tuy nhiên nếu node gốc bị lỗi hoặc bị rời khỏi mạng thì sender phải tìm lại IP  
					của node root mới và tiếp tục việc truyền thông tin  
					Sửa cây multicast  
					Vì Scribe làm việc trong môi trường mạng mang, do đó muốn duy trì được sử ổn  
					định của group, phải có những cơ chế hợp lý để giải quyết các vấn đề thường gặp phải  
					trong mạng ngang hàng. Phần này sẽ đi sâu vào việc làm sao để sửa chữa một cây  
					multicast khi một node bị rời khỏi mạng.  
					Trong Scribe node cha sẽ định kỳ gửi các gói tin hearbeat tới node con của nó  
					nhằm thông báo sꢀ tồn tại của mình trong cây. Nếu node con không nhận được gói tin  
					heartbeat do cha nó gửi tới trong một thời gian nào đó, nó sẽ xem như node cha của nó  
					bị lỗi. Và nó sẽ tꢀ động tìm một node cha khác thay thế, bằng cách gửi thông điệp  
					JOIN với key là groupId của group hiện tại (quá trình này giống với quá trình join vào  
					group).  
					Hình 12. Quá trình tự sửa cây multicast  
					21  
					 
				Giả dụ như hình vẽ trên ban đầu ta có cây multicast với gốc là node 1100 trong  
					cây node 1001 có cha là node 1101. Khi node 1001 không nhận được heartbeat của  
					1101 trong một khoảng thời gian nào đó nó sẽ xem như 1101 bị lỗi và nó sẽ tꢀ động  
					gửi gói tin route(JOIN,groupId). Tiếp theo giống như trong quá trình jon group. Cây  
					multicast sẽ được xây dꢀng lại và bây giờ thì node 1001 nhận một node mới là 1111 là  
					cha mới của nó (như hình vẽ).  
					Trong trường hợp node gốc bị lỗi. Thì các con của nó cũng sẽ chạy giải thuật như  
					trên khi đó giải thuật Pastry sẽ tꢀ chọn ra một node gốc mới có nodeId gần nhất (tính  
					theo hiện thời) với groupId và group sẽ lại được duy trì như bình thường.  
					Vì khả năng chống lỗi cao như thế này, Scribe luôn có tính sẵn sàng cao và  
					chống chịu lỗi tốt, cho dù có nhiều node lỗi cùng một lúc thì sau một thời gian ngắn  
					cây multicast lại được xây dꢀng lại và ổn định như trước.  
					Splitstream  
					Splistream có thể xem như là việc chọn lꢀa các cây Scrbie để tạo nên cây  
					multicast đa luồng. Việc chọn lꢀa các cây Scribe sẽ dễ dàng tạo nên cây multcast đa  
					luồng với tính chất : 1 node là node trong của 1 luồng sẽ là node lá trong các luồng còn  
					lại  
					Hình 13. Splitstream F luồng  
					Việc xây dꢀng các luồng là khá đơn giản. Như ở trên hình 3 với không gian  
					Pastry được đánh địa chỉ các node gồm F ký tꢀ. Splitstream sẽ chọn ra các luồng có  
					tên là 0x , 1x , … Fx để các node sau khi gia nhập vào cây multicast đa luồng có thể  
					đảm bảo. Node có id bắt đầu là 0x sẽ là node trong của cây multicast stripeId 0x và là  
					node lá của tất cả các luồng còn lại. Tương tꢀ Node có id bắt đầu là 1x se là node trong  
					của cây multicast stripeId 1x và là lá của tất cả các luồng còn lại…  
					22  
					 
				Tuy nhiên Splitstream sẽ gặp vấn đề tại các máy( peer ) tham gia mà nếu chỉ đơn  
					thuần lꢀa chọn các cây Scribe để truyền các luồng vào thì là chưa đủ đáp ứng tính chất  
					multicast :  
					 Không giới hạn dc băng thông đi ra của 1 peer do nhu cầu join của các peer  
					khác: khi 1 peer đã bị vượt quá băng thông giới hạn đi ra thì các peer khác vẫn  
					muốn gia nhập vào luồng của peer này. Nếu vẫn duy trì cơ chế như cây Scribe  
					thì sẽ có 1 số peer thật sꢀ không nhận được dữ liệu từ 1 vài luồng do node cha  
					của nó không gửi dữ liệu thꢀc sꢀ đến cho nó  
					Splistream sử dụng cơ chế mới để giải quyết vấn đề tại các node mà băng thông  
					đi ra đã bị vượt quá giới hạn. Cơ chế này bao gồm các bước :  
					 B1. Xác định node cha:  
					Hình 14. Xác định node cha khi băng thông đi ra vượt quá giới hạn  
					Trong ví dụ trên node với id 080* đã bị limit outdegree ( băng thông đi  
					qua vượt quá giới hạn ) thì nhận được yêu cầu join vào của node với id 001* ở  
					luồng 0800. Node 080* sẽ xem xét lại tất cả các node con của nó để loại đi 1  
					node con. Hình 14.(1)-(2) là trường hợp có node con 9* nhận node 080* làm  
					cha trong luồng 1800 khác với luồng 0800. Node 080* sẽ nhận node 001* làm  
					con và loại bỏ node 9*. Sau đó node 085* lại yêu cầu join vào node 080* .Hình  
					14.(3)-(4) là trường hợp các node con đều nhận 080* là cha trong luồng 0800 ,  
					xét đến id của các node con. Node 001* la node có id với số ký tꢀ tính từ trái  
					23  
					 
				sang phải khác với luồng 0800 nhất. Node 001* sẽ trở thành node orphan và  
					node 085* được nhận làm node con.  
					 B2. Nếu sau Bước 1 vẫn có node orphan (tức là node chưa tìm được node cha)  
					sẽ tiến hành bước này. Node orphan sẽ gửi unicast đến SCG (Spare Capacity  
					Group) để tìm được node cha. SCG là tập hợp tất cả các node mà băng thông đi  
					ra chưa vượt quá giới hạn . Với cơ chế truyền unicast , node orphan sẽ gửi  
					thông điệp tìm node có luồng mà băng thông đi ra chưa vượt quá giới hạn để  
					nhận nó làm node cha.  
					̉
					Ƣu điêm : xây dưṇ g cây multicast đa luồng kha đơn gian dưạ vao kết cấu có sẵn  
					̉
					́
					̀
					̉
					của Pastry và Scribe. Khi maṇ g ôn điṇ h và việc phân chia định danh là khá đều thì các  
					node trong hê ̣thống chiụ tai tương đương nhau . Thêm vao đo la cac cơ chế tim node  
					̉
					̀
					́ ̀ ́  
					̀
					cha nhằm đam bao cac node trong maṇ g không bi ̣qua tai.  
					̉
					̉
					̉
					́
					́
					̉
					Nhƣơc̣ điêm : không đam bao đươc̣ độchênh lêc̣ h độtrễcac luồng nhâṇ đươc̣ taị  
					̉
					̉
					́
					các node là nhỏ do việc tạo cây Scribe mang tꢁnh ngẫu nhiên dꢀa chủ yếu vào kết cấu  
					bên dươi cua Pastry.  
					̉
					́
					24  
				Chƣơng 3.Xây dựng cây multicast đa luồng thời gian thực  
					trên mạng ngang hàng có cấu trúc  
					Sau khi đã nghiên cứu các giải pháp hiện nay về truyền tin multicast đa luồng với  
					các ưu nhược điểm riêng khi ứng dụng sang truyền tin multicast đa luồng thời gian  
					thꢀc thì ở chương ba này sẽ là giải pháp mà tôi đưa ra trong khóa luận. Giải pháp này  
					đã hướng đến mục tiêu là truyền tin multicast đa luồng thời gian thꢀc ngay từ đầu nên  
					nó sẽ có những ưu điểm riêng. Tuy nhiên bên cạnh đó cũng có những nhược điểm nhất  
					định. Phần đánh giá về chương trình mô phỏng sẽ được trình bày ở chương bốn. Giải  
					pháp này được xây dꢀng dꢀa trên giao thức DHT tham khảo bảng định tuyến của  
					Chord..  
					3.1.Vấn đề cần giải quyết  
					Mục tiêu lớn nhất khi xây dꢀng cây multicast đa luồng thời gian thꢀc trong mạng  
					ngang hàng có cấu trúc là:  
					 Xây dꢀng cây multicast đa luồng  
					 Duy trì cây mulitcast khi mạng thay đổi  
					 Cân bằng băng thông đi ra tại các node trong mạng : hạn chế các node không  
					gửi dữ liệu cho node nào , các node phải gửi nhiều hơn số luồng giới hạn là  
					không quá lớn  
					 Độ trễ của một node khi nhận được tất cả các luồng là nhỏ  
					 Chênh lệch độ trễ tại một node giữa luồng nhận được sớm nhất và nhận được  
					muộn nhất là nhỏ (đây chꢁnh là mục tiêu quan trọng nhất của thiết kế)  
					Trong khuôn khổ khóa luận giới hạn nên giải pháp của tôi đưa ra mới chỉ là bước  
					đầu , chưa được tối ưu hóa để có thể đáp ứng tất cả các vấn đề cần giải quyết. Quá  
					trình chạy chương trình mô phỏng tuy chưa được tốt như mong muốn nhưng đã cho  
					thấy kết quả khả quan và cho thấy khả năng phát triển của giải pháp này.  
					3.2.Ý tƣởng  
					Ý tưởng đưa ra được dꢀa trên thiết kế chính của Chord với các ưu điểm:  
					25  
					 
					 
					 
				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 Truyền tin multicast đa luồng thời gian thực trên mạng ngang hàng có cấu trúc", để 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_truyen_tin_multicast_da_luong_thoi_gian_thuc_tren.pdf

