CHƢƠNG 2 : HỆ THỐNG LUỒNG VIDEO QUA MẠNG NGANG HÀNG
3.3 Cải thiện Scribe bằng cấu trúc Splitstream
Hiện nay, đã có những nghiên cứu xây dựng cây multicast dành cho truyền video streaming trên mạng ngang hàng có cấu trúc như Splitstream. Splitstream được xây dựng dựa trên nền tảng Pastry, Scribe và thêm vào đó một số giải pháp để hạn chế tình trạng quá tải tại một số nút tham gia mạng
3.3.1 Giới thiệu SplitStream
SplitStream là một hệ thống cây đa luồng đề xuất trong năm 2003 của trung tâm nghiên cứu của Microsoft. SplitStream được thiết kế để khắc phục tải trọng (load) chuyển tiếp không ổn định trong hệ thống multicast thông thường dựa trên đa cây. Ý tưởng chính của SplitStream là phân chia các luồng vào các khối độc lập không giống nhau và mỗi khối được truyền multicast sử dụng một cây riêng biệt. Để đảm bảo rằng các tải trọng được chuyển tiếp có thể được lan truyền trên tất cả các peer tham gia, một mạng lưới cây được xây dựng trong đó một nút là một nút nội bộ trong nhiều nhất là một cây và là một nút lá trong tất cả các cây khác. Một tập hợp các cây như vậy được gọi là interior – node - disjoint. Hình 3.6 minh họa cách SplitStream cân bằng tải được chia thành hai đường và gói tin được multicast trong hai cây riêng biệt. Mỗi peer, xa so với nguồn, nhận được cả hai luồng tin. Mỗi peer là một nút bên trong chỉ có một cây và là chuyển tiếp các khối nội dung đến hai nút con. Khi một nút bị quá tải nhận được yêu cầu từ nút con, nó hoặc là từ chối hoặc chấp nhận nút con và từ chối một nút con hiện tại của mình, nút con bị từ chối là kém hấp dẫn hơn so với nút con mới. Một nút sẽ được mong muốn nhiều hơn nếu nodeId của nó gần hơn với nút cha của nó.
SplitStream xây dựng các cây multicast cho các luồng trong khi vẫn quan tâm những hạn chế băng thơng trong và băng thơng bên ngồi của các peer. Nó cung cấp khả năng phục hồi thất bại các liên kết nút ra đi không báo trước và cây multicast được sửa chữa. Một trong những vấn đề chính với SplitStream là tác động của các nút
Lê Ngọc Anh – D09VT2 62
với băng thông không đồng nhất về hiệu quả của nó. Một vấn đề khác là trong một interior – node - disjoint, các nút nhận gói tin riêng biệt với độ trễ khác nhau ví dụ như các nút được đặt trong khoảng cách khác nhau từ gốc của cây. Điều này là không mong muốn cho một ứng dụng luồng truyền thơng trực tuyến, trong đó việc địi hỏi thời gian thực chính xác. Thêm vấn đề khác là tăng cường quy mơ hệ thống để cây có độ sâu lớn hơn và các nút được đặt trong khoảng cách đa dạng từ nguồn.
Hình 3.6 Một ví dụ đơn giản minh họa cách tiếp cận của SplitStream 3.3.2 Cơ chế xây dựng luồng trong SplitStream 3.3.2 Cơ chế xây dựng luồng trong SplitStream
Splitstream có thể được xem như là việc chọn lựa các cây Scribe để tạo nên cây multicast đa luồng. Việc lựa chọn các cấy Scribe sẽ dễ dàng tạo nên cây mulitcast đa luồng với tính chất: 1 nút là nút trong của 1 luồng sẽ là nút lá trong các luồng cịn lại.
Hình 3.7 Splitstream F luồng
Việc xây dựng các luồng khá đơn giản. Như ở trên hình 3.7, với khơng gian Pastry được đánh địa chỉ các nút gồm F ký tự. Splitstream sẽ chọn ra các luồng có tên là 0x, 1x, …, Fx để các nút sau khi gia nhập vào cây multicast đa luồng có thể đảm bảo. Nút có Id bắt đầu là 0x sẽ là nút trong của cây multicast stripeId 0x và là nút lá của tất cả
Lê Ngọc Anh – D09VT2 63
các luồng cịn lại. Tương tự nút có Id bắt đầu là 1x sẽ là nút trong của cây multicast stripeId 1x và là lá của tất cả các luồng còn lại.
Tuy nhiên, Splitstream sẽ gặp các vấn đề tại các máy (peer) tham gia 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 được băng thông đi ra của 1 peer do như cầu join của các peer khác: khi 1 peer đã 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 các peer này. Nếu vẫn duy trì cơ chế như cây Scribe thì sẽ có một số peer thật sự khơng nhận được dữ liệu từ 1 vài luồng do nút cha của nó khơng gửi dữ liệu thực sự đến cho nó.
Splitstream sử dụng cơ chế mới để giải quyết vấn đề tại các nút mà băng thông đi ra đã bị vượt quá giới hạn. Cơ chế này bao gồm:
- B1 : Xác định nút cha:
H nh 3.8 X c định nút cha khi băng thông đi ra vƣợt quá giới hạn
Trong ví dụ trên nút với Id là 080* đã bị limit outdegree (băng thông đi ra vượt quá giới hạn) thì nhận được yêu cầu join vào của nút với Id 001* ở luồng 0800. Nút 080* sẽ xem xét tất cả các nút con của nó để loại đi 1 nút con. Hình 3.8 (1) – (2) là trường hợp có nút con 9* nhận được nút 080* làm cha trong luồng 1800 khác với luồng 0800. Nút 080* sẽ nhận được nút 001* làm con và loại bỏ nút 9*. Sau đó nút 085* lại yêu cầu join vào nút 080*. Hình 3.8 (3) – (4) là trường hợp các nút con đều nhận 080* là cha trong luồng 0800, xét đến Id của các nút con. Nút 001* là nút có Id với số ký tự tính từ trái sang phải khác với luồng 0800 nhất. Nút 001* sẽ trở thành nút orphan và nút 085* được nhận làm nút con.
Lê Ngọc Anh – D09VT2 64
- B2: Nếu sau bước 1 vẫn có nút orphan (tức là nút chưa tìm được nút cha) sẽ tiến hành bước này. Nút orphan sẽ gửi unicast đến SCG (Spare Capacity Group) để tìm được nút cha. SCG là tập hợp tất cả các nút mà băng thông đi ra chưa vượt quá giới hạn. Với cơ chế truyền tin unicast, nút orphan sẽ gửi thơng điệp tìm nút có luồng mà băng thơng đi ra chưa vượt quá giới hạn để nhận nó làm nút cha.
Ƣu điểm: Xây dựng cây multicast đa luồng khá đơn giản dựa vào kết cấu sẵn có
của Pastry và Scribe. Khi mạng ổn định và việc phân chia định danh là khá đều thì các nút trong hệ thống chịu quá tải tương đương nhau. Thêm vào đó là các cơ chế tìm nút cha nhằm đảm bảo các nút trong mạng không bị quá tải.
Nhƣợc điểm: Không đảm bảo được độ chênh lệch độ trễ các luồng nhận được tại
các nút 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 của Pastry.
3.4 Kết luận chƣơng III
Chương này nhằm giới thiệu về Pastry, nền tảng xây dựng của giao thức Scribe. Đồng thời mơ tả q trình gia nhập, rời nhóm, truyền tin multicast tới mạng và quá trình sửa cây multicast trong Scribe. Từ đó đưa ra được các ưu nhược điểm của giao thức Scribe trong việc truyền tin multicast lớp ứng dụng so với IP multicast. Giới thiệu kỹ thuật SplitStream qua đó áp dụng vào giao thức Scribe nhằm khắc phục những nhược điểm của giao thức Scribe, tạo một hệ thống cây multicast đa luồng.
Lê Ngọc Anh – D09VT2 65
KẾT LUẬN ĐỒ ÁN
Trên thế giới, các ứng dụng mạng ngang hàng nói chung và multicast trên mạng ngang hàng đang được nghiên cứu và phát triển một cách mạnh mẽ. Nó sẽ và đang dần thay thế các mơ hình mạng truyền thống như mơ hình khách-chủ hay IP multicast. Trong khóa luận này đã trình bày một cách ngắn gọn về nghiên cứu multicast lớp ứng dụng cho truyền video thời gian thực trong mạng ngang hàng P2P, cụ thể là cải thiện giao thức Scribe. Tuy nhiên việc triển khai multicast lớp ứng dụng vẫn chưa thực sự đáp ứng được các yêu cầu của P2P video streaming thời gian thực, ví dụ như sự ra vào của các nút, độ trễ lớn. Hơn nữa các giải pháp này còn chưa xét đến vấn đề các nút khơng đóng góp.
Với những kết quả đạt được và những mặt còn tồn tại, sau đây là một vài hướng phát triển tiếp theo:
Khắc phục những nhược điểm nêu trên.
Sử dụng phần mềm OverSim so sánh đánh giá hiệu năng giữa Scribe và SplitStream.
Nghiên cứu cải thiện QoS khi truyền video streaming qua mạng P2P.
Một lần nữa em xin chân thành cảm ơn cô giáo Vũ Thị Thúy Hà đã hướng dẫn em, cùng các thầy cơ bộ mơn đã tận tình giúp đỡ em trong thời gian học tập tại trường để em có đủ kiến thức để có thể hồn thành đồ án này.
Lê Ngọc Anh – D09VT2 66
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt:
1. Bùi thị Lan Hương: Luận văn thạc sĩ “Phương pháp multicast tầng ứng dụng dựa trên cơ chế kéo đẩy cho truyền video thời gian thực trên mạng P2P”.
2. Nguyễn Văn Minh: Luận văn tốt nghiệp “Truyền tin multicast đa luồng thời gian thực trên mạng ngang hàng có cấu trúc”.
3. Nguyễn Ngọc Anh, “Topology Optimization for DTH-based Application Layer Multicast”, Trường đại học Công Nghệ, 2012.
4. ThS. Vũ Thị Thúy Hà, TS. Lê Nhật Thăng, bài báo”Định tuyến trong mạng ngang hàng thế hệ mới”.
Tài liệu tiếng Anh:
1. Antony Rowstron and Peter Druschel: “Pastry: Scalable, deccentralized object location and routing for lagre – scale peer – to – peer systems”.
2. Bin Rong, “Video Streaming over the Internet using Application Layer Multicast”, RMIT University, 2008.
3. Chung-Yan Chen, Yu-Wei Chen, “Design and Analysis of Streaming for P2P”, Graduate Institute of Information and Logistics Management, National Taipei University of Technology, 2013.
4. Luca Abeni, Csaba Kiraly, Renato Lo Cigno, “Scheduling P2P Multimedia Streams: Can we achieve performance and robustness?”, 2009 IEEE.
5. L. Abeni, C. Kiraly, R. Lo Cigno, “Achiving performance and robustness in P2P streaming systems”, University of Trento, Italy, Tech. Rep. TR-DISI-09- 041, 2009.
6. Indrani Gupta, Ken Binman, Prakash Linga, Al Demers, Robbert van Renesse:” Peer – to – Peer Networks: Kelips”.
7. Xuemin Shen, Heather Yu, John Buford, Mursalin Akon, “Handbook of Peer- to-Peer”, Springer 2009.