Chương 1 trình bày một số khái niệm tổng quan về mạng ngang hàng. Ta phân loại các hệ thống mạng ngang hàng dựa trên cơ sở về mức độ phân quyền, về cơ chế tìm kiếm dữ liệu và về cấu trúc mạng. Ta cũng trình bày một vài ứng dụng và một số vấn đề chủ yếu đối với mạng ngang hàng hiện nay. Từ đó phân tích các ưu điểm, nhược điểm so với mạng Client-Server truyền thống . Và phần cuối chương đã đưa ra các vấn đề còn tồn tại trong mạng ngang hàng như vấn đề độ tin cậy , cân bằng tải , độ linh động và tính bảo mật .
Chương 2: Truyền hình trực tuyến qua mạng ngang hàng Peer-to- Peer
2.1 Xuhướngxem video/TVhiện đại
Trong quá khứ , TV chỉ được phân phối bởi các hệ thống cable , vệ tinh hoặc trạm mặt đất . Nhưng giờ đây với việc cải thiện tốc độ internet , mọi người dần trở nên biết nhiều đến internet và họ mong muốn nhiều hơn về TV trong thời buổi hiện nay.
• Mọi người cần xem TV thường xuyên cũng như lướt web nhưng sử dụng cùng một thiết bị như TV , PC hoặc các thiết bị có tính di động ....
• Người ta cần xem các video theo yêu cầu.
• Người ta cần xem mợi thứ từ các sản phẩm máy quay ít tiền tới những sản phẩm chuyên nghiệp đắt tiền .
• Người ta cần ghi lại những đoạn video mình thích mà không cần sử dụng các thiết bị lưu trữ.
• Người ta cần chia sẻ hoặc cho phép các người khác xem các video được làm ở nhà mình từ bất cứ nơi nào .
2.2. Phântíchmộtsốđiểm còntồn tạicủa kỹ thuậtstreamingtruyền thống
Kỹ thuật streaming truyền thống dựa trên hệ thống Client - Server cung cấp hiệu suất tốt và tỷ lệ sẵn sàng cao nếu số lượng khách hàng được giới hạn. Tuy nhiên, việc triển khai và chi phí bảo trì của các hệ thống này thường rất cao. Ước tính hiện tại cho chi phí của YouTube là 1 triệu USD mỗi ngày và các chi phí có thể tăng lên nhanh nếu nhiều video tiếp tục được chuyển sang chất lượng cao hơn. Trong thực tế, nhiều dịch vụ luồng trực tuyến hiện nay đều có độ phân giải tương đối thấp để tiết kiệm băng thông. Chất lượng của các dịch vụ luồng trực tuyến thường không thể so sánh được với mạng lưới truyền hình truyền thống. Do đó quản lý tài nguyên là một vấn đề quan trọng trong việc triển khai kỹ thuật streaming trên Internet.
Mặt khác, khả năng xử lý, dung lượng lưu trữ, lưu lượng của máy chủ I/O có thể tạo thành nút thắt cổ chai. Mặt khác, số lượng lớn các kết nối mạng đường dài cũng có thể dẫn đến tắc nghẽn lưu thông. Do đó, hệ thống không thể đáp ứng yêu cầu thực hiện của các ứng dụng luồng đa phương tiện quy mô lớn, thời gian thực. Tuy nhiên, kỹ thuật IP multicast được cung cấp để giải quyết những vấn đề này cần sự hỗ trợ từ phần cứng đặc biệt và các chi phí thiết lập cơ sở hạ tầng và quản lý là rất tốn kém. Về bản chất, các kỹ thuật truyền thống không thể giải quyết hiệu quả những vấn đề của video streaming. Do đó, mô hình phân phối luồng video quy mô lớn qua mạng Internet đang nổi lên. Mạng P2P đã được chấp nhận rộng rãi như là một cách để giải quyết các vấn đề tài nguyên với các ứng dụng luồng Internet như VoD , live streaming và cung cấp một sự
thay thế cho hệ thống client - server.
2.3. Các vấn đề cần xem xét trong P2P streaming
Trong vài năm qua, mạng P2P đã xuất hiện như là một phương pháp thuận lợi cho việc cung cấp các nội dung đa phương tiện trên nền một mạng phủ lớn. Các đặc tính bên trong mạng P2P làm cho các mô hình P2P trở thành một ứng cử viên tiềm năng để giải quyết các vấn đề khác nhau trong truyền thông đa phương tiện trên mạng Internet. P2P Streaming là giải pháp tốt hơn vì hai l do. Đầu tiên, mạng P2P không cần sự hỗ trợ từ các bộ định tuyến Internet và do đó chi phí hiệu quả và đơn giản để triển khai. Thứ hai, một peer đồng thời hoạt động như một client cũng như server, do đó có thể tải xuống một luồng video và cùng một lúc tải lên luồng video đó để các peer khác xem chương trình đó. Do đó, truyền tải P2P làm giảm đáng kể nhu cầu băng thông của nút nguồn. Mục tiêu của cơ chế P2P streaming là tối đa hóa chất lượng phân phối nội dung cho các điểm peer riêng l . Tổng hợp nguồn tài nguyên có sẵn của các peer và có khả năng mở rộng đến số lượng bất kỳ các điểm tham gia. Mỗi peer có thể tiếp tục cung cấp nội dung phù hợp với các peer đã kết nối với nó trong lớp phủ bằng cách sử dụng băng thông của các điểm peer đang tham gia. Tuy nhiên, việc cung cấp các dịch
vụ P2P streaming video cho một số lượng lớn người xem tạo ra những thách thức công nghệ rất khó khăn trên cả hệ thống và tài nguyên mạng.
Trong khi các ứng dụng phân phối file P2P truyền thống nhằm mục tiêu truyền dữ liệu linh hoạt, P2P streaming tập trung vào việc phân phối hiệu quả các nội dung audio và video theo yêu cầu thời gian ràng buộc. Luồng dữ liệu được nhận, phát ngay lập tức và truyền cho các điểm peer liên quan khác. Ví dụ: ứng dụng chia s file P2P, BitTorrent cho phép các điểm peer trao đổi đoạn bất kỳ của các nội dung được phân phối mà nó là không quan trọng thứ tự. Ngược lại, các kỹ thuật như vậy là không khả thi trong ứng dụng streaming. Các tập tin video được phát trực tiếp trong lúc nó đang được tải xuống. Ngoài ra, các peer đã hạn chế khả năng tải lên, mà xuất phát từ thực tế là Internet được thiết kế cho các mô hình client – server và các ứng dụng. Hơn nữa, hệ thống streaming chịu việc rớt gói tin hoặc chậm trễ do tắc nghẽn mạng.
Trong P2P streaming, trễ end-to-end từ nguồn đến nơi nhận lớn bởi vì nội dung có thể phải đi qua một số nơi nhận trung gian. Hành vi của người nhận là không thể đoán trước, họ được tự do tham gia và rời bỏ bất cứ lúc nào, do đó loại bỏ các peer kế tiếp của họ. Người nhận có thể phải lưu một số cấu trúc dữ liệu cục bộ và trao đổi thông tin trạng thái với nhau để bảo vệ các kết nối. Các chi phí kiểm soát ở mỗi điểm nhận đáp ứng mục đích như vậy sẽ nhỏ để giữ cho không sử dụng quá nhiều tài nguyên mạng và để khắc phục hạn chế tài nguyên ở mỗi điểm nhận. Điều này là quan trọng đối với khả năng mở rộng của hệ thống với một số lượng lớn các điểm nhận.
Việc cấu trúc các nút thành lập một mạng phủ cung cấp video đảm bảo QoS. Mặt khác, hệ thống có quy mô mở rộng nên có thể chứa hàng chục ngàn người nhận tại cùng một thời điểm. Đồng thời, các chi phí quản lý liên quan hợp lý ngay cả ở quy mô lớn.
Kỹ thuật streaming trong cách tiếp cận P2P được phân loại thành truyền video thời gian thực (P2P live video streaming) và truyền video theo yêu cầu (P2P on demand video streaming). Một số hệ thống P2P streaming đã được triển khai để cung cấp xem video theo yêu cầu hoặc các dịch vụ truyền video trực tuyến qua Internet.
Hình 2.2 Các loại P2P Streaming dựa vào cấu trúc mạng phủ
Dựa trên cấu trúc mạng che phủ, hệ thống P2P streaming được sắp xếp thành ba loại: tree-based (phương thức tiếp cận dạng cây), mesh-based (phương thức tiếp cậndạng lưới) and hybrid schemes (phương thức tiếp cận dạng ẩn). Phương pháp tiếp cận tree-based sử dụng phương pháp đẩy dữ liệu để phân phối nội dung. Tuy nhiên, phương pháp tiếp cận mesh-based sử dụng tràn lụt dữ liệu để phân phối nội dung.
2.4.1. Phương pháp tiếp cận dạng cây
Tương tự như một cây IP multicast được hình thành bởi các bộ định tuyến ở lớp mạng, các người dùng tham gia vào một phiên video streaming có thể tạo thành một cây ở lớp ứng dụng có gốc được bắt nguồn từ máy chủ video nguồn như hình 2.3. Về nguyên tắc, mỗi nút nhận dữ liệu từ một nút cha, có thể là nút nguồn hoặc một peer. Các hệ thống dựa trên cây thường phân phối video bằng cách chủ động đẩy dữ liệu từ một peer tới các nút con của nó.
Một cách tiếp cận chung của P2P streaming là sắp xếp các peer tham gia vào một lớp phủ có cấu trúc cây đơn luồng mà nội dung được đẩy đi từ nguồn tới tất cả các peer. Nội dung được lan truyền như một dòng chảy liên tục của thông tin từ nguồn xuống. Mỗi người dùng tham gia vào cây ở vị trí nhất định. Các hệ thống loại này chủ yếu là khác nhau trong các thuật toán được sử dụng để tạo ra, duy trì cấu trúc cây. Cho một tập hợp của các điểm peer, có rất nhiều cách để kết nối các peer. Mục tiêu của thuật toán xây dựng cây là tối đa hóa băng thông tới gốc của tất cả các nút. Vì các hệ thống này rất gần với IP multicast, cố gắng để mô phỏng cấu trúc cây của nó, nó có thể để đạt được độ dài đường truyền dữ liệu tương ứng mà không chênh lệch quá nhiều từ các đường dẫn IP multicast.
Hình 2.3 Mô hình cây đơn
Xây dựng và duy trì cây có thể được thực hiện tập trung hoặc một cách phân tán trong hệ thống cây đơn luồng. Trong hình 2.4 & 2.5, một máy chủ trung tâm quản lý xây dựng cây và phục hồi cây. Khi một peer tham gia hệ thống nó giao tiếp với máy chủ trung tâm. Dựa trên các kết nối hiện có và đặc tính của các peer mới được tham gia vào như vị trí và điểm truy cập mạng, máy chủ quyết định vị trí của peer mới trong cây và thông báo nút cha để peer mới được kết nối vào. Các máy chủ trung tâm có thể phát hiện một peer tách ra thông qua tín hiệu mất hoặc phán đoán dựa trên chỉ số thời gian đầu ra. Trong cả hai trường hợp máy chủ sẽ tính toán lại cấu trúc liên kết cây cho số peer còn lại và chỉ dẫn chúng tạo thành cấu trúc liên kết mới. Đối với một hệ thống streaming lớn, máy chủ trung tâm có thể trở thành điểm nút thắt cổ chai. Để giải quyết vấn đề này, các thuật toán phân phối ví dụ ZigZag được phát triển để xây dựng và duy trì cây streaming phân phối nội dung. Nếu các peer không thay đổi một cách thường xuyên, hệ thống dựa trên mô hình cây đòi hỏi ít chi phí như các gói tin được chuyển tiếp từ peer tới peer mà không cần phải thêm bản tin thông báo. Tuy nhiên trong môi trường tỷ lệ biến động cao, cây sẽ thường xuyên thay đổi và phải xây dựng lại. Do đó, các peer cần phải đệm dữ liệu (buffer data) ít nhất là bằng thời gian cần thiết cho sửa chữa cây để tránh khỏi mất gói
Hình 2.4 : Xây dựng lại cây Streaming
Hình 2.5 Giải pháp tập trung cho cấu trúc cây và duy trì cây
2.4.2. Các hệ thống luồng trực tuyến dựa trên cây đơn luồng
2.3.2.1 Giao thức NICE
Hệ thống phổ biến nhất sử dụng cách tiếp cận cây đơn luồng là NICE. NICE (The Internet Cooperative Environment) được thiết kế ban đầu cho băng thông thấp và các ứng dụng truyền dữ liệu với một số lượng lớn người dùng. Giao thức sắp xếp các trạm cuối (host) vào trong một hệ thống phân cấp dựa trên thời gian thông tin chuyền đi vòng quanh giữa các host hình 2.6. Các hoạt động cơ bản của giao thức là tạo ra và duy trì các tuyến đường trong hệ thống. Mỗi thành viên giữ chi tiết trạng thái về các thành viên khác gần nó trong hệ thống phân cấp. Và chỉ có kiến thức hạn chế về các
thành viên khác trong nhóm. Cấu trúc phân cấp cũng rất quan trọng cho xác định vị trí của các thành viên thất bại.
Hình 2.6 Sắp xếp các host trong NICE.
2.3.2.2 Giao thức SpreadIt
SpreadIt xây dựng ứng dụng cây multicast trên các thiết lập của khách hàng. Các
nút được tổ chức thành các cấp khác nhau (hình 2.7 và hình 2.8). Đối với mỗi nút n ở mức 1+l; l = 0 , 1 , 2 …, có một nút p được gọi là cha của nó, ở mức l, n được gọi là con của p. Tất cả các nút trong cây con có gốc là p được gọi là con cháu của nó. Mỗi peer trong cây chịu trách nhiệm việc gửi các dữ liệu cho nút con của mình. Mỗi nút khách hàng cần phải được kích hoạt với một lớp peering(lớp nằm giữa lớp ứng dụng và lớp vận chuyển). Các lớp peering tại các nút khác nhau phối hợp với nhau để thiết lập và duy trì một cây multicast. Các ứng dụng (RealPlayer, Windows Media Player, etc)
có được luồng từ các lớp peering trên các máy tính cục bộ. SpreadIt sử dụng một cây đơn phân bố và như vậy rất dễ bị tổn thương do gián đoạn một nút tách ra.
Hình 2.7 SpreadIt – một ứng dụng cây multicast xây dựng trên các Peer
Hình 2.8 SpreadIt–Kiến trúc phân lớp của một Peer 2.3.2.3 Giao thức ESM
ESM (End System Multicasst) là một cơ sở hạ tầng cho phát thanh truyền hình,
thực hiện bởi đại học Carnegie Mellon. ESM cho phép truyền dữ liệu âm thanh hình ảnh tới một lượng lớn người sử dụng. Hệ thống ESM sử dụng một cấu trúc lớp phủ dựa trên đó xây dựng một cây. Các thông tin được phân phối một cách truyền thống dựa trên cây đơn luồng, trong đó bất kỳ peer nào cũng chỉ nhận được luồng tin từ duy nhất một nguồn. Mỗi nút duy trì thông tin về một nhóm nhỏ ngẫu nhiên của các thành viên khác, cũng như các thông tin về đường đi từ nguồn đến nó. Một nút mới tham gia phát sóng bằng cách liên hệ với nguồn và lấy danh sách ngẫu nhiên của các thành viên hiện đang trong nhóm. Sau đó chọn một trong các thành viên làm nút cha của nó bằng cách
sử dụng thuật toán lựa chọn nút cha. Để tìm hiểu về các thành viên khác, một bản tin thăm dò được sử dụng. Khi một nút tham gia vào phát sóng hoặc cần thực hiện thay đổi nút cha, nó dò một tập hợp ngẫu nhiên của các nút nó biết. Các bản tin thăm dò được ưu tiên tới các thành viên đã không được khảo sát hoặc có sự trễ thấp.
Hình 2.9 cho thấy một vi dụ về nhiệm vụ của ESM. Người nhận cuối cùng có thể đóng vai trò của nút cha hoặc nút con. Các nút cha đóng vai trò là các thành viên và thực hiện sao chép. Các nút con là người nhận trực tiếp dữ liệu từ nút cha. Có một máy chủ điều khiển và một máy chủ dữ liệu cư trú trong cùng một gốc nguồn. Bất kỳ một người nhận có thể đóng vai trò của nút cha chuyển tiếp dữ liệu cho nút con của nó. Mỗi khách hàng sẽ có hai kết nối: một kết nối quản l và một kết nối dữ liệu.
Hình 2.9 Ví dụ về ESM
Một lợi thế của ESM là nó giải quyết các vấn đề triển khai của IP multicast. Tuy nhiên, multicasting thực hiện tại máy trạm cuối hiệu năng thấp. Nói chung các trạm cuối không xử l được thông tin giống như các router. Ngoài ra, giới hạn băng thông và nhu cầu của việc chuyển tiếp bản tin từ host to host sử dụng kết nối unicast và do đó tăng trễ end-to-end của quá trình truyền tin, góp phần tăng chi phí phải trả cho cách tiếp cận này. Đó là những l do làm cho ESM kém hơn so với IP multicast.
2.3.2.4 Giao thức ZigZag
ZigZag đã được đề xuất bởi trường đại học Central Florida và để cải thiện giao
thức NICE. Các thuật toán để xây dựng cấu trúc và bảo dưỡng khá giống với NICE và tất cả các thuộc tính của giao thức NICE vẫn còn. ZigZag nhận vào một hệ thống các nhóm và xây dựng cây munlticast trên hệ thống phân cấp này theo một bộ quy tắc được