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
Trang 1Topology 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
Trang 2and 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
Trang 3giú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)
Trang 4- 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)
Trang 5nú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à
Trang 6mỗ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ế
Trang 7Mỗ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: l0 , l 1, … ln 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, … ln có thể được tính như sau :
l0 =[ out b w s /b r ], out b w s là băng thông xuất của nút nguồn
l1 =[ out b w x0 /b r ], x 0 =l 0
l2 =[ out b w x1 /b r ], x 1 =l 0 +l 0 l 1
Ln =[ 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+x0 2 m /l 0 ], where x0Є{0…l0-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 xi Є {0…li-1}, i Є{1…n} Có l 0 1 1 …l t-1 IDs at level –t
Trang 8Fig 2 : An example of CAM- Chord, neighbors of x N=[0 31], cx =3
3.1.2 Bảng định tuyến
Trong hệ thống BAM-Chord, một level-t nút có ID là idn có 4 kiểu entries trong bảng
định tuyến Ở đây, succ(x) có nghĩa là nút successor của IDx
lt entries linking to lt child nodes of level lt -1:
succ(id n +1), succ([id n +1+2 m / l 0 1 1 …l t-1 l t]),…, succ([idn +1+(l t -1)2 m / l 0 1 1 …l t-1 l t])
lt-1 -1 entries linking to l t-1 -1 nodes of level l t-1 :
succ([idn +1+2 m / l 0 1 1 …l t-1]),…, succ([idn +1+(l t-1 -1)2 m / l 0 1 1 …l t-1])
l1 -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([idn +(l 0 -1)2 m / l 0])
Nguồn S có ID là 0 có l0 entries sau:
1, succ([1+2 m / l 01]),…, succ([1+(l0 -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
Trang 9tin về bit rate br và cây multicast ảo bao gồm: tập l0 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 x0 , 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+ x0 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
Trang 10- 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…