Nguyễn Ngọc Anh Trường Đại học Công nghệ Luận văn ThS ngành: Khoa học máy tính; Mã số: 60 48 10 Người hướng dẫn: TS. Nguyễn Hoài Sơn Năm bảo vệ: 2012
Topology Optimization for DHT-based Application Layer Multicast Nguyễn Ngọc Anh Trường Đại học Công nghệ Luận văn ThS ngành: Khoa học máy tính; Mã số: 60 48 10 Người hướng dẫn: TS. Nguyễn Hoài Sơn Năm bảo vệ: 2012 Abstract: In recent years, Distributed Hash Table (DHT) becomes active and ongoing area of research at a lot of universities and labs. DHT has many advantages: Decentralization, scalability, fault tolerance, load balancing, data integrity, and performance, . Those properties make DHTs are very suitable for deploying multicast services at application layer and in fact, DHT-based network such as CAN, Chord, Pastry, Tapestry, etc can be used to implement Internet-scale application layer multicast. However, early DHT-based multicast systems are insufficient in addressing all of these issues: Heterogeneous node capacity, large- scale multicast and dynamic membership. Moreover, in those system, when one node joins into system through an arbitrary way, some factors are not considered: node’s bandwidth, node’s positon on DHT network (i.e node identifiers),… thus, the multicast tree can be built inefficiently and not balance in structure. The solution for assigning an appropriate number of child nodes to each node is far from optimal in term of bandwidth: If the number of child nodes is too high, low capacity node will be overloaded, therefore slows the entire session multicast down. If the number of child nodes is too low, high capacity nodes will be used inefficiently. In this thesis, we study the method to optimize topology for DHT-based multicast. We propose a DHT- based bandwidth adaptive multicast system that forcus on host heterogeneity, scalibility, fault tolerate. In our system, node’s bandwidth is firstly considered, result of this process is the basis for determining the level of the node and correlatively caculating node’s identify. Level of a node is used to define maximum number of its child nodes. As a result, in our model, each node is assigned an optimal numbers of child nodes to forward multicast data. Thus, our method can make tradeoff between depth of the multicast tree and bandwidth of every node and take advandtages of DHTs in maintaining multicast tree in churn overlay. System chosen for implementation and avaluation is Chord. This model is called Bandwidth Adaptive Multicast over Chord: BAM-Chord. Keywords: Công nghệ thông tin; Khoa học máy tính; Mạng hàng ngang Content Trong những năm gần đây, mạng ngang hàng dựa trên bảng băm phân tán (Distributed Hash Tables –DHTs) thu hút được nhiều sự quan tâm chú ý của nhiều người, bởi DHTs có các ưu điểm như: khả năng mở rộng, kháng lỗi, định tuyến tốt và cân bằng tải. Những ưu điểm này khiến DHTs rất thích hợp để triển khai dịch vụ multicast trên tầng ứng dụng và trên thực tế, các mạng ngang hàng dựa trên DHT như CAN, Chord, Pastry, Tapestry đã được sử dụng để triển khai dịch vụ multicast tầng ứng dụng trên phạm vi Internet Tuy nhiên, những hệ thống multicast dựa trên DHT trước nay đều không hiệu quả trong việc giải quyết một số vấn đề kỹ thuật như: băng thông không đồng nhất giữa các node, multicast trên phạm vi rộng và sự vào ra của các nút. Thêm vào đó, trong các hệ thống này, khi một nút tham gia mạng đều không tính đến một số yếu tố như băng thông của nút, do đó, cây multicast được xây dựng thiếu hiệu quả và không cân bằng về cấu trúc. Giải pháp gán số lượng thích hợp các nút con cho một nút khi thực hiện multicast không thể tối ưu nếu không căn cứ vào băng thông của nút đó Luận văn này đề xuất giải pháp BAM-Chord: Triển khai dịch vụ multicast thích nghi băng thông các nút thành viên dựa trên mạng ngang hàng có cấu trúc Chord. Đây là hệ thống multicast dựa trên DHT hướng tập trung vào xử lý tính không đồng nhất của các nút, khả năng mở rộng mạng và kháng lỗi. Trong hệ thống này, khi một nút tham gia mạng, nó sẽ tìm một vị trí thích hợp (theo nghĩa định danh của nút ) trên vòng tròn định danh BAM-Chord và tạo các kết nối tới các nút hàng xóm dựa trên băng thông của nút. Việc thực hiện điều này giúp cây multicast được xây dựng một cách hiệu quả và cân bằng. Do đó, hệ thống có thể tận dụng được băng thông của các nút mạng nhằm giảm độ sâu của cây multicast và vẫn tận dụng được các ưu điểm của DHT trong việc duy trì cây. Chương 1. Giới thiệu Multicastl là kiểu truyền thông trong đó dữ liệu được truyền từ một nguồn tới nhiều người nhận tại cùng một thời điểm. Multicast rất hữu hiệu cho các ứng dụng như: phân phát nội dung, video streaming, video conferencing, IP TV… Việc triển khai dịch vụ multicast tại tầng mạng có thể là cách thức hiệu quả nhất để triển khai các dịch vụ multicast. Tuy nhiên, multicast tầng mạng vẫn không được triển khai rộng bởi một vài lý do kỹ thuật cũng như quản trị. Những nhược điểm này khiến mọi người dần quan tâm đến các tiếp cận theo hướng multicast tầng ứng dụng. Trong những năm gần đây, Bảng băm phân tán - DHTs trở thành một lĩnh vực nghiên cứu sôi động. Ban đầu, DHTs được phát triển cho các ứng dụng kiểu như chia sẻ file. Những năm gần đây, ngày càng có nhiều nghiên cứu ứng dụng DHTs vào việc triển khai multicast tầng ứng dụng. DHTs có nhiều ưu điểm rất phù hợp với các ứng dụng multicast: phân tán, khả năng mở rộng, kháng lỗi, cân bằng tải và định tuyến tốt. Do đó, các hệ thống triển khai multicast tầng ứng dụng dựa trên DHTs có thể mở rộng phạm vi đến hàng ngàn nút mạng Nhìn chung, các hệ thống triển khai multicast tầng ứng dụng dựa trên DHT vẫn tận dụng cấu trúc của mạng phủ DHT để gửi dữ liệu multicast. Do đó, các nút mạng trong hệ thống không cần duy trì các kết nối mở rộng đến các nút khác trong mạng phủ, ngoại trừ các kết nối đến các nút hàng xóm được xác định theo giao thức DHT từ đầu. Multicast dựa trên DHT cũng tận dụng được các giải thuật khắc phục lỗi được xây dựng trong hầu hết các mạng ngang hàng DHT. Tuy nhiên, các hệ thống multicast tầng ứng dụng dựa trên DHT trước nay đều không hiệu quả trong việc giải quyết tất cả các vấn đề sau - Tính không đồng nhất trong băng thông của các nút mạng: Khi số lượng các nút con của một nút trên cây multicast được quyết định bởi giải thuật DHT mà không cân nhắc đến băng thông của nút đó, một nút với băng thông thấp có thể trở thành nút thắt trên cây nếu nút đó là nút trong (đóng vai trò trung chuyển dữ liệu multicast) - Tận dụng hiệu quả băng thông của nút: Một nút với băng thông cao có thể trở thành một nút lá (là nút chỉ nhận dữ liệu, không phải gửi chuyển tiếp dữ liệu). Như vậy, hệ thống không tận dụng được băng thông của nút trong việc chuyển tiếp dữ liệu - Sự tham gia/rời bỏ của các nút mạng: Việc tối ưu của cây multicast phải duy trì được ngay cả khi các nút thành viên của mạng tham gia hoặc rời đi bất kỳ lúc nào Để tận dụng băng thông một cách hiệu quả, M. Castro, el al đề xuất SplitStream, một giải pháp tạo nhiều cây multicast trong đó, một nút là nút trong của cây này sẽ là một nút lá của tất cả các cây còn lại. Tuy nhiên, SplitStream đòi hỏi các nút có cùng một mức băng thông xuất. Tại giải pháp CAM-Chord, tính không đồng nhất của các nút được giải quyết thông qua việc cho phép các nút quyết định mức băng thông xuất dựa trên khả năng băng thông thực tế của nút này. Tuy nhiên, các tác giả không giải quyết vấn đề tối ưu topology. Do vậy, vấn đề không đồng nhất băng thông của các nút mạng vẫn là vấn đề mở cần giải quyết. Tại giải pháp [21], các tác giả cố gắng xây dựng một cây cân bằng dựa trên Chord nhưng độ sâu của cây multicast vẫn còn cao. Chương 2 Các nghiên cứu liên quan Chord-based multicast Chord là một giao thức điển hình của mạng ngang hàng dựa trên bảng băm phân tán, sử dụng không gian khóa m-bits. Các định danh được sắp xếp trên vòng tròn định danh được gọi là Chord ring. Sử dụng hàm băm đồng nhất, mỗi nút tham gia mạng lựa chọn ngẫu nhiên một định danh và sau đó tham gia vào mạng tại một vị trí xác định thông qua quá trình xử lý của mạng. Một successor nút của một định danh được xác định như là một nút có định danh gần nhất với định danh đó trên Chord ring theo chiều kim đồng hồ. Mỗi nút tham gia xây dựng một bảng định tuyến với m entries. Giả định rằng định danh của một nút là k, entry thứ i trong bảng định tuyến mang thông tin về successor nút của định danh (k+2 i-1 ). Bằng việc sử dụng bảng định tuyến, Chord có thể định tuyến thông báo đến nút yêu cầu thông qua O(logN) nút trong khi mỗi nút chỉ duy trì kết nối với O(logN) nút khác. Trong đó N là số lượng nút trong mạng. Figue 1: Chord –basec multicast and multicast tree is constructed Multicast dựa trên giao thức Chord: Khi một nút muốn gửi thông điệp multicast cho các nút khác trong khoảng giới hạn multicast (multicast range), nó sẽ tham chiếu bảng định tuyến và xác định các nút nằm trong khoảng multicast này. Sau đó, nó phân định khoảng multicast con cho mỗi nút đó và gửi thông điệp multicast cùng với khoảng multicast con cho các nút này. Các nút sau khi nhận được thông điệp và khoảng multicast con này thực hiện quá trình tương tự, tham chiếu bản định tuyến để xác định các nút con trong khoảng mà nó phụ trách, phân định khoảng con nhỏ hơn và gửi thông báo….Giải thuật multicast này có các ưu điểm: khả năng mở rộng, đơn giản do chỉ dựa vào bảng định tuyến. Tuy nhiên, giải thuật này tạo ra một cây multicast không cân bằng trong đó có các nút phải ở độ sâu lớn, do đó sẽ bị trễ cao. Hơn nữa, trong trường hợp các nút không đồng nhất về băng thông, chắc chắn xảy ra tình trạng tắc nghẽn do có nút băng thông nhỏ nằm ở vị trí chuyển tiếp. SplitStream Các nút mạng được tổ chức theo cấu trúc nhiều cây khác nhau trong đó, một nút trong của cây này có thể là nút lá của các cây còn lại. Video stream được chia thành một vài sub-stream và mỗi sub-stream được xây dựng một cây để truyền dữ liệu. Tuy nhiên, SplitStream đòi hỏi các nút có băng thông như nhau. Ngoài ra, hiệu năng bị giảm, cách tiếp cận nhiều cây vẫn đòi hỏi chi phí cao cho việc duy trì cây và phục hổi nhiều cây trong trường hợp nút vào ra. CAM-Chord Tình trạng không đồng nhất của nút được giải quyết bằng cách cho phép các nút thay đổi mức băng thông xuất của nút đó thông quan băng thông thực tế mà nút đó có. Multicast triển khai ở CAM-Chord tương tự như giải thuật [12] nhưng khác ở chỗ CAM-Chord tạo ra cây cân bằng hơn. CAM-Chord cố gắng xây dựng cây càng cân bằng càng tốt. Mỗi nút lựa chọn nút con trong danh sách hàng xóm để truyền dữ liệu multicast theo hướng khoảng multicast được chia đều thành các khoảng con. Điều này khiến cây multicast sẽ hướng tới cân bằng. Mỗi nút trong mạng CAM-Chord có khả năng c x xác định số lượng tối đa nút con mà nó có thể truyền dữ liệu multicast. Do đó, số lượng nút con của mỗi nút luôn bằng với khả năng của nút đó. Tuy nhiên, CAM-Chord không thể tối ưu hiệu năng của multicast vì chắc chắn tồn tại các nút bên trong cây có băng thông thấp và các nút lá có băng thông cao. Chương 3 Giải pháp đề xuất: Bandwidth Adaptive Multicast over Chord -BAM Chord 3.1 Khái quát Giả sử một nhóm multicast gồm n nút, tạo thành một mạng phủ giống Chord. Một nút có ID là 0 sẽ gửi thông điệp multicast đến các nút còn lại trên mạng phủ này. Mục tiêu của chúng tôi là xây dựng một cây multicast rộng và cân bằng dựa trên cấu trúc Chord thậm chí ngay cả khi các nút mạng tham gia và rời đi bất kỳ, băng thông của các nút là không đồng nhất. Ý tưởng chính của BAM-Chord là tạo một cây multicast ảo cân bằng và rộng trên mạng Chord. Các nút ở level cao thì có nhiều nút con, mỗi nút trên cây multicast ảo này được gán một định danh ID và bảng định tuyến của một nút sẽ chứa toàn bộ nút con của nút đó. Một nút thực tế sẽ được gán một vị trí trên cây ảo để tạo một cây multicast thực. Kích thước của cây multicast ảo đủ lớn để bao gồm tất cả các nút trên cây multicast thực tế. Mỗi nút mới tham gia vào BAM-Chord sẽ lựa chọn ID của nó từ danh sách các IDs tương ứng với nút đớ trên cây multicast ảo. Để có thể tận dụng tốt băng thông của các nút mà không tạo ra các nút thắt trên cây, định danh ID sẽ được lựa chọn sao cho số lượng các nút con của ID đó không vượt quá số lượng cho phép. Số lượng cực đại các nút mà một nút có thể truyền tiếp dữ liệu có thể được ước lượng dựa trên băng thông của nút đó. Giá trị băng thông này có thể được ước lượng thông qua một số phương pháp hoặc dựa trên thiết lập của người sử dụng 3.1.1 Tạo cây multicast ảo - Để xác định cấu trúc của cây multicast ảo, các mức băng thông xuất của các nút cần được xác định trước: l 0 , l 1 , … l n trong đó: l 1 > l 2 … >l n . n là độ cao của cây multicast ảo và cũng được xác định trước. Các mức băng thông xuất xác định số lượng các nút con của một nút trên cây multicast ảo. Kích thước (số lượng các nút) của cây multicast ảo là Giả định răng kích thước của nhóm multicast N và băng thông của các nút tham gia là out b w 1 , … out b w N br là bit rate của dữ liệu. Các giá trị l 0 , l 1 , … l n có thể được tính như sau : l 0 =[ out b w s /b r ], out b w s là băng thông xuất của nút nguồn l 1 =[ out b w x0 /b r ], x 0 =l 0 l 2 =[ out b w x1 /b r ], x 1 =l 0 +l 0 l 1 …. L n =[ out b w xn /b r ], x n = [x] nghĩa là số nguyên gần nhất của x Mỗi nút trên cây multicast ảo được gán một ID được xác định như sau: ID of level-0 nút (nút gốc ) là 0 IDs of level-1 nút là [1+x 0 .2 m /l 0 ], where x 0 Є{0…l 0 -1}. Có l 0 IDs at level -1 …. IDs of level-n nút là [n+ x 0 .2 m /l 0 + x 1 .2 m /l 0 l 1 + x n-1 .2 m /l 0 1 1 …l n-1 ] (1) where x i Є {0…l i -1}, i Є{1…n}. Có l 0 1 1 …l t-1 IDs at level –t Fig 2 : An example of CAM- Chord, neighbors of x. N=[0 31], c x =3 3.1.2 Bảng định tuyến Trong hệ thống BAM-Chord, một level-t nút có ID là id n có 4 kiểu entries trong bảng định tuyến. Ở đây, succ(x) có nghĩa là nút successor của IDx. l t entries linking to l t child nodes of level l t -1: succ(id n +1), succ([id n +1+2 m / l 0 1 1 …l t-1 l t ]),…, succ([id n +1+(l t -1)2 m / l 0 1 1 …l t-1 l t ]) l t-1 -1 entries linking to l t-1 -1 nodes of level l t-1 : succ([id n +1+2 m / l 0 1 1 …l t-1 ]),…, succ([id n +1+(l t-1 -1)2 m / l 0 1 1 …l t-1 ]) l 1 -1 entries linking to l 1 -1 nodes of level 2 l 0 -1 entries linking to l 0 -1 nodes of level 1: succ([id n +2 m / l 01 ]),…, succ([id n +(l 0 -1)2 m / l 0 ]) Nguồn S có ID là 0 có l 0 entries sau: 1, succ([1+2 m / l 01 ]),…, succ([1+(l 0 -1)2 m / l 0 ]) 3.2 Khởi tạo mạng Khi một nút nguồn muốn gửi dữ liệu multicast, nó tạo một cây multicast ảo như mô tả trong phần trên. Khi một nút x muốn nhận dữ liệu từ nút nguồn này, đầu tiên, nó liên hệ với bootstrap nút để nhân thông tin về nút nguồn, sau đó, nó liên hệ với nút nguồn để lấy thông tin về bit rate br và cây multicast ảo bao gồm: tập l 0 1 1 …l n . Giả định băng thông xuất của nút là bw, sau đó, nút tham gia vào một vị trí có level t có mức băng thông xuất là l t và l t ≤bw/br. Nút đó sẽ tính toán một tập IDs lựa chọn ID tập IDs đó. Một nút tính toán tập IDs bằng cách tạo một tập các giá trị ngẫu nhiên x 0 , x 1 , x 3 , x 4, …, x t-1 , x i Є{0,…,l i-1 }, i Є{0,…,t-1}. Mỗi ID được tính thông qua tập x 0 , x 1 , x 3 , x 4, …, x t-1 theo công thức (1) như sau [i+ x 0 2 m /l 0 + x 1 2 m /l 0 l 1 + …+ x t-1 2 m / l 0 l 1 … l t-1 ] Sau đó, quá trinh kiểm thử để lựa chọn vị trí cho node được thực hiện cho đến khi nút tham gia thành công vào mạng 3.3 Multicast Trong BAM-Chord, khi nút nguồn gửi dữ liệu multicast đến các nút khác, nó sẽ tham chiếu bảng định tuyến và xác định khoảng multicast mà mỗi nút phải chịu trách nhiệm chuyển tiếp. Đến lượt mình, các nút con này sẽ thực hiện quá trình tương tự với khoảng multicast nhỏ hơn. Chapter 4 Simulations and Evaluations 4.1 Simulation description Để đánh giá sự hiệu quả của BAM-Chord, chúng tôi xây dựng chương trình mô phỏng và so sanh BAM-Chord với Chord-based và CAM-Chord trên hai khía cạnh: Độ sâu của cây multicast hay path length từ nút nguồn tới nút lá; Số lượng các kết nối mà mỗi nút phải duy trì . Chương trình mô phỏng được thực hiện dựa trên các tham số sau: - Không gian khóa 32 bit - Kích thước của mạng multicast là 5000 nodes - Băng thông xuất hay out-degrees của các nút mạng phân bố theo xác xuất đồng dạng từ [2 20] Các nút tham gia và rời bỏ mạng ngẫu nhiên theo phân bố xác xuất Pareto trong suốt thời gian mô phỏng. Tại mỗi bước thời gian, có một số lượng các nút đến và đi. Sau mỗi bước, chúng tôi đều phân tích và đánh giá topology của cây multicast để có kết quả 4.2 Đánh giá 4.2.1 Độ sâu của cây multicast Hình 7 thể hiện độ sâu trung bình của Chord, CAM-Chord and BAM-Chord, Trục Y chỉ tỷ lệ phần trăm của node và trục X chỉ độ sâu của cây multicast theo nghĩa số hop tính từ nút nguồn tối nút lá Fig 7: Average path length Có thể thấy từ hình 7, BAM-Chord đạt được kết quả tốt nhất theo nghĩa độ sâu trung bình cũng như độ sâu tối đa khi so sánh với multicast dựa trên Chord và CAM-Chord. Với multicast dựa trên Chord, có thể thấy cây multicast không cân bằng, với 40% nút có độ sâu trên 6 hop và 80% nút có độ sâu trên 8 hop. Giá trị độ sâu cực đại là 13. Với CAM-Chord, cây multicast cân bằng hơn so với Chord –based multicast. với 60% nút có độ sâu trên 6 hop và 95% nút có độ sâu trên 8 hop. Giá trị độ sâu cực đại là 10. Trong trường hợp BAM-Chord, 100% nút có độ sâu nhỏ hơn hoặc bằng 6. Nguyên nhân vì giải pháp trong BAM-Chord đã tối ưu vị trí của nút trong mạng, nút có băng thông cao sẽ được đặt tại vị trí có level cao trong cây v.v…