Để tìm hiểu về giải pháp, nội dung luận văn gồm 6 chương: Chương 1: TỔNG QUAN VIDEO STREAMING Giới thiệu sáu thành phần trong video streaming như nén; điều khiển chất lượng dịch vụ tại
Trang 1- -
PHÙNG THANH XUÂN
NÂNG CAO CHẤT LƯỢNG TRUYỀN VIDEO STREAMING TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC
LUẬN VĂN THẠC SĨ
HÀ NỘI - 2009
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
- -
PHÙNG THANH XUÂN
NÂNG CAO CHẤT LƯỢNG TRUYỀN VIDEO STREAMING TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC
Chuyển ngành : Truyền dữ liệu và mạng máy tính
LUẬN VĂN THẠC SĨ
Cán bộ hướng dẫn : TS Nguyễn Hoài Sơn
HÀ NỘI – 2009
Trang 3MỤC LỤC
LỜI CẢM ƠN Error! Bookmark not defined LỜI CAM ĐOAN Error! Bookmark not defined TÓM TẮT Error! Bookmark not defined.
MỤC LỤC i
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT iii
DANH MỤC CÁC HÌNH VẼ iv
MỞ ĐẦU 1
Chương 1: TỔNG QUAN VIDEO STREAMING 4
1.1 Video streaming 4
1.2 Nén truyền hình 5
1.3 Máy chủ luồng – streaming server 8
1.4 Điều khiển chất lượng tại điểm phát và nhận 8
1.5 Giao thức video streaming 14
1.6 Cơ chế đồng bộ video streaming 15
1.7 Dịch vụ phân tán dữ liệu trên mạng 17
1.8 Tổng kết chương 20
Chương 2: TRUYỀN THÔNG MULTICAST 21
2.1 Khái niệm về truyền tin multicast 21
2.2 Multicast tầng mạng - IP Multicast 22
2.3 Multicast tầng ứng dụng 24
2.4 Các mô hình truyền tin multicast tầng ứng dụng 25
2.5 Tổng kết chương 29
Chương 3: VIDEO STREAMING TRÊN DHT P2P 30
3.1 Mạng ngang hàng DHT 31
3.2 Video streaming trên DHT P2P – CHORD 37
Trang 43.3 Nghiên cứu liên quan 41
3.4 Tổng kết chương 43
Chương 4: BỐI CẢNH VÀ ĐỀ XUẤT GIẢI PHÁP 44
4.1 Bối cảnh và vấn đề video streaming trên DHT P2P 44
4.2 Tổng quan giải pháp 46
4.3 Giải pháp khôi phục lỗi thời gian thực 48
4.4 Tổng kết chương 56
Chương 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ 57
5.1 Ứng dụng video streaming trên CHORD 57
5.2 Triển khai giải pháp khôi phục lỗi thời gian thực 58
5.3 Môi trường thực nghiệm 59
5.4 Đánh giá kết quả 59
Chương 6: KẾT LUẬN 64 TÀI LIỆU THAM KHẢO a
Trang 5DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT
Chuyển đổi cosin rời rạc Đây là mã hoá/giải
mã phục vụ cho việc nén dữ liệu
DHT Distributed Hash Table Bảng băm phân tán Một trong các cơ chế
quản lý node trong mạng ngang hàng có cấu trúc
IGMP Internet Group
Giao thức gán địa chỉ IP trong IP Multicast
MTU Maximum transit unit Đơn vị truyền thông tối đa Nó đƣợc dùng để
tính toán thông lƣợng, phục vụ điều chỉnh tỷ
P2P Peer to Peer Mạng ngang hàng
QoS Quality of Services Chất lƣợng dịch vụ
RTT Round trip time Thời gian đi một vòng của một kết nối Nó
VCR Video – Caset –
Recorder
Chức năng của máy ghi âm – đài – video gồm dừng, tạm dừng/trình diễn tiếp, tua nhanh lùi/tiến, chạy ngẫu nhiên
Trang 6DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Sáu thành phần của video streaming dữ liệu 4
Hình 1.2: a) Mã hóa không mở rộng b) Giải mã không mở rộng 6
Hình 1.3: a) Mã hóa mở rộng SNR b) Giải mã mở rộng SNR 6
Hình 1.4 a) Bộ mã hoá FGS B) Bộ giải mã FGS 7
Hình 1.5:a) Phân tán truyền thông unicast B) Phân tán truyền thông multicast 9
Hình 1.6: Biểu đồ thời gian cho Điều khiển theo bên nhận 13
Hình 1.7: Giao thức stacks cho luồng truyền hình 15
Hình 1.8: Đồng bộ giữa hình và tiếng 15
Hình 1.9: Bộ lọc được đặt trong lớp mạng 18
Hình 1.10:Mô hình hệ thống của bộ lọc mức mạng 18
Hình 2.1: Công nghệ truyền tin Multicast 21
Hình 2.2: Phân loại truyền thông Multicast 22
Hình 2.3: Bộ định tuyến trong truyền tin multicast tầng mạng 23
Hình 2.4: Truyền thông multicast tầng mạng và tầng ứng dụng 24
Hình 2.5: Giao thức Narada 27
Hình 2.6: Mạng phủ 7 node (a) và cây multicast xây tương ứng (b) 28
Hình 3.1: Mô hình mạng ngang hàng thuần 31
Hình 3.2: Vòng tròn Chord với 3 node và lưu trữ 4 khóa 33
Hình 3.3: Mạng Chord với các bảng finger 34
Hình 3.4: Sơ đồ một mạng Chord với 9 node tham gia 36
Hình 3.5: Truyền thông multicast trên mạng Chord 39
Hình 3.6: Sơ đồ cây multicast tương ứng với mạng Chord 40
Trang 7Hình 3.7: Ví dụ một node lỗi 42
Hình 4.1: Giải pháp khôi phục lỗi thời gian thực 47
Hình 4.2: Phát hiện lỗi thực 53
Hình 4.4: Định vị node lỗi 54
Hình 4.5: 3 node lỗi đồng thời 55
Hình 4.6: Lỗi xen kẽ 55
Hình 5.1: Thiết kế ứng dụng video streaming trên Chord 57
Trang 8MỞ ĐẦU
Trong xu hướng phát triển mạnh mẽ của Internet, do yêu cầu truyền thông đa phương tiện trên Web ngày càng nhiều, video streaming trên internet đã thu hút nhiều sự chú ý Vào những thập niên 80s, 90s, video streaming bắt đầu ra đời và phát triển theo hai hướng chính: video streaming theo yêu cầu (tiếng Anh: video-on-demand) và video streaming thời gan thực (tiếng Anh: live video streaming)
Video streaming theo yêu cầu là hình thức người dùng tải dữ liệu về các thiết bị lưu trữ của mình, do đó có thể thực hiện các thao tác tua, dừng Các ứng dụng nổi tiếng của loại hình truyền thông này như YouTube, BiTorrent Khác với video streaming theo yêu cầu, trong video streaming thời gian thực, dữ liệu được truyền trực tiếp từ các thiết bị ghi thu dữ liệu tại nguồn phát và hiển thị trực tiếp tại bên nhận Với tính chất thời gian thực và cung cấp cho nhiều người sử dụng cùng một lúc, các ứng dụng truyền hình trực tuyến, hội thảo trực tuyến, dạy học trực tuyến, chat conference (Skype) ngày càng được nhiều người sử dụng cũng như các nhà nghiên cứu quan tâm Luận văn cũng phát triển theo xu hướng này
Video streaming thời gian thực có những ràng buộc về băng thông cao, độ trễ thấp, tỷ
lệ mất gói tin thấp để đáp ứng những yêu cầu về chất lượng hiển thị hình ảnh âm thanh cao Tuy nhiên, video streaming trên Internet đang có những khó khăn nhất định Thứ nhất, việc áp dụng trên mô hình máy Chủ-Khách truyền thống không đáp ứng được nhu cầu do tài nguyên của máy chủ có hạn, dữ liệu truyền thông đa phương tiện thường lớn, máy chủ rất khó có khả năng cung cấp được cho nhiều người dùng Thứ hai, băng thông của Internet chưa được cao và đồng đều, việc tập trung vào máy chủ
sẽ gây ra tải lớn, hiệu ứng "nút cổ chai" gây tắc nhẽn, gói tin không thể truyền đến hoặc không kịp thời gian hiển thị Chính vì vậy mà video streaming trên Internet dần dần thay thế mô hình Chủ - Khách sang truyền thông multicast tầng ứng dụng trên mạng ngang hàng
Truyền thông video streaming trên mạng ngang hàng, đặc biệt là mạng ngang hàng có cấu trúc, có rất nhiều ưu điểm Mạng ngang hàng hay còn gọi là mạng đồng đẳng, xoá
đi ranh giới giữa máy chủ-máy khách; các máy có trách nhiệm như nhau trong việc sử dụng tài nguyên và xử lý dữ liệu Chính vì vậy sẽ giải quyết khó khăn giảm tải cho máy chủ Thứ hai, mạng ngang hàng có cấu trúc cung cấp tính năng mở rộng cao Bất
Trang 9cứ node mạng nào cũng có thể tham gia dễ dàng Do đó có thể cung cấp dịch vụ video streaming cho nhiều người sử dụng hơn và cũng tận dụng được nhiều tài nguyên hơn Thứ ba, nó không tốn chi phí quản lý bởi mạng ngang hàng cung cấp những phương thức các node quản lý lẫn nhau Tuy nhiên, triển khai video streaming thời gian thực trên mạng ngang hàng cũng không tránh khỏi những khó khăn
Khó khăn chính là hiện tượng các node ra vào rất linh động, lỗi có thể thường xuyên xảy ra khiến cho các gói tin truyền thông có thể mất đi, hoặc không đến được bên nhận đúng thời gian trình diễn Mất gói tin hoặc không đến kịp thời sẽ ảnh hưởng đến
tỷ lệ mất gói tin, độ trễ của việc trình diễn dữ liệu tiếng/hình ở bên nhận; khiến cho thông tin hiển thị không đúng, không đẹp mắt Nhằm mục đích nâng cao chất lượng video streaming trên mạng ngang hàng có cấu trúc, luận văn đi sâu vào việc giải quyết hiện tượng node ra/vào và lỗi trong mạng ngang hàng có cấu trúc
Giải pháp đưa ra là khôi phục lỗi thời gian thực Điểm mới của giải pháp là dựa vào
dữ liệu truyền thông video streaming, phát hiện lỗi tức thời và chính xác dựa vào thời gian timeout Thời gian này được tính dựa vào mô hình thông kê hành vi quá khứ của mỗi node mạng nên đảm bảo sự chính xác và phù hợp
Giao thức được triển khai trên mạng ngang hàng có cấu trúc Chord Dựa trên cấu trúc mạng phủ Chord, khi có yêu cầu truyền video streaming, các node sẽ liên kết thành cây multicast Trong quá trình truyền tin, nếu có sự thay đổi trên cây multicast, phương pháp khôi phục lỗi thời gian thực sẽ khắc phục sự thay đổi đó, tránh ảnh hưởng đến việc truyền tin
Bên cạnh cơ chế khôi phục lỗi định kỳ của mạng Chord, giải pháp sẽ giúp tìm lỗi vầ khôi phục lỗi nhanh hơn trong quá trình truyền thông Điều đó sẽ tránh được việc mất mát gói tin trong khi truyền, khiến cho chất lượng thông tin bên nhận được cải thiện Giao thức được thực hiện bằng ngôn ngữ C#, triển khai thí nghiệm trên mạng LAN
Để tìm hiểu về giải pháp, nội dung luận văn gồm 6 chương:
Chương 1: TỔNG QUAN VIDEO STREAMING
Giới thiệu sáu thành phần trong video streaming như nén; điều khiển chất lượng dịch
vụ tại điểm phát/nhận; dịch vụ phân tán dữ liệu trên mạng; máy chủ luồng; các cơ chế đồng bộ và giao thức video streaming Sáu thành phần trên sẽ điều khiển luồng video streaming từ nguồn đến đích, đồng thời, tại mỗi thành phần cũng có các cơ chế nâng
Trang 10cao chất lượng Để hạn chế, luận văn phát triển theo hướng dịch vị phân tán dữ liệu, cụ thể là multicast tầng ứng dụng
Chương 2: TRUYỀN THÔNG MULTICAST
Nối tiếp từ chương 1, chương 2 giới thiệu truyền thông mạng ngang hàng multicast Xác định những ưu điểm, nhược điểm của hai cách thức truyền thông multicast IP và multicast tầng ứng dụng Từ những ưu nhược điểm đó, multicast tầng ứng dụng triển khai vào mạng ngang hàng có cấu trúc có những khó khăn gì Những nội dung của chương 2 sẽ tiếp nối với chương 3 để dẫn dắt vào vấn đề video streaming trên mạng ngang hàng có cấu trúc
Chương 3:VIDEO STREAMING TRÊN DHT P2P
Chord là đại diện nổi tiếng của mạng ngang hàng có cấu trúc băm phân tán Ở chương này, ta sẽ tìm hiểu sâu cách thức quản lý node, gia nhập/ thoát khỏi mạng, cơ chế nhận biết và khắc phục lỗi trong Chord Sau đó kết hợp với chương 2, giới thiệu video streaming bằng giao thức truyền thông multicast trên mạng Chord Chương cũng đưa
ra một số nghiên cứu liên quan
Chương 4: BỐI CẢNH VÀ ĐỀ XUẤT GIẢI PHÁP
Dựa vào chương 3, chương 4 phân tích bối cảnh để đưa ra đề xuất khôi phục lỗi thời gian thực Từ mục tiêu giải pháp sẽ trình bày chi tiếp từ thiết kế đến các thành phần cho giải pháp
Chương 5:THỰC NGHIỆM VÀ ĐÁNH GIÁ
Trong chương 5, ta sẽ triển khai giải pháp khôi phục lỗi thời gian thực trên một ứng dụng truyền video streaming của mạng Chord Sau đó ta sẽ thực hiện triển khai trên môi trường thực nghiệm để so sánh việc áp dụng giải pháp và không áp dụng giải pháp trên một số thông số Dựa vào kết quả so sánh sẽ đánh giá tính khả thi của giải pháp
Trang 11Như bảng thống kê bên dưới và hình vẽ Với 10 lần thực nghiệm thì trung bình độ chính xác là 3%
# Timeout Failed Percentage
Trang 121.1.1.2 EWMA và α =2
(a) Thống kê tỷ lệ lỗi thật sự/số lần báo timeout
Với 5 lần thực nghiệm thì trung bình độ chính xác là 31% Độ chính xác gấp 10 lần khi α =1
# Timeout Failed Percentage
Trang 13Trung bình phải xử lý 0.98 lần timeout trong 1000 gói tin Multicast nhận đƣợc
1.1.1.3 UCL và α =2
(a) Thống kê tỷ lệ lỗi thật sự/số lần báo timeout
Với 5 lần thực nghiệm thì trung bình độ chính xác là 21%
# Timeout Failed Percentage
Trang 14Trung bình phải xử lý 1.228 lần timeout trong 1000 gói tin Multicast nhận đƣợc
1.1.2 Kết luận
Với kết quả thực nghiệm nói trên, ta có thể thể rằng với công thức EWMA với α =2 là thực sự có hiệu quả hơn cả Tỷ lệ chính xác lên đến 31% và chỉ cần xử lý 1 gói tin timeout trong 1000 gói tin multicast
Với độ chính xác là 31%, đã ghi nhận đƣợc kết quả khả quan vì mục tiêu giải pháp không phải đƣa ra con số chính xác node chết mà sau khi khẳng định tạm thời có timeout, cơ chế sẽ tiếp tục ping lại
Sau khi ping lại thì tỷ lệ khẳng định lỗi là 100% và có thể hoàn toàn định vị đƣợc số lƣợng lỗi và vị trí lỗi Điều đó giúp ích cho việc khôi phục lỗi nhanh của quá trình truyền multicast
Trang 15KẾT LUẬN
Đƣa ra kết luận; đánh giá khả năng áp dụng thực tế của giải pháp
Trang 16CHƯƠNG 2: TỔNG QUAN VIDEO STREAMING 2.1 Video streaming
Từ sự phát triển của Internet và nhu cầu ngày càng phát triển của con người, video streaming đã ra đời và phát triển theo hai xu hướng chính: video streaming theo yêu cầu và video streaming thời gian thực
Sự phát triển về công nghệ thông tin, công nghệ nén, các thiết bị lưu trữ băng thông cao và mạng với tốc độ nhanh đã làm cho các dịch vụ truyền video streaming thời gian thực ngày càng trở lên linh động trên mạng Internet Video streaming thời gian thực có các yêu cầu về băng thông, tỷ lệ mất gói tin, độ trể để có thể hiển thị hình ảnh thực với chất lượng tốt
Tuy nhiên, Internet hiện nay không thể cung cấp một chất lượng dịch vụ đủ đảm bảo
có thể video streaming trên Internet Như vậy, cơ chế thiết kế, các giao thức về video streaming trên Internet có rất nhiều thách thức
Ta sẽ phân tích sâu về video streaming để hiểu cách thách thức đó Video streaming bao gồm sáu thành phần then chốt quan hệ như hình dưới
Hình 2.1: Sáu thành phần của video streaming dữ liệu
Trang 17Dữ liệu truyền hình và truyền thanh thô được nén trước bằng các giải thuật nén truyền
hình và truyền thanh sau đó được lưu ở thiết bị lưu trữ Theo yêu cầu của người dùng,
một máy chủ luồng nhận dữ liệu truyền hình/truyền thanh đã được nén từ các thiết bị lưu trữ và sau đó bộ phận điều khiển chất lượng dịch vụ điểm phát/nhận sẽ điều
chỉnh luồng bit truyền hình/truyền thanh theo tình trạng của mạng và theo yêu cầu chất
lượng dịch vụ Sau khi điều chỉnh, các giao thức truyền thông sẽ đóng gói luồng bit
nén và gửi các gói tin truyền hình/truyền thông tới mạng Internet Các gói tin có thể bị mất và trễ trong Internet do sự tắc nghẽn Để cải tiến chất lượng của việc truyền, các
dịch vụ phân tán dữ liệu trên mạng được triển khai trên Internet Khi các gói tin đến
nơi nhận, đầu tiên nó sẽ truyền qua tầng giao vận và sau đó được xử lý bởi tầng ứng
dụng trước khi được giải mã bởi bộ giải mã truyền hình/truyền thanh Để đáp ứng được hiển thị đồng bộ giữa tiếng và hình, cần có cơ chế đồng bộ đa phương tiện
Như vậy có thể thấy được thứ tự cũng như sự liên kết của sáu thành phần nêu trên Ở mỗi giai đoạn, dữ liệu truyền thông có thể được nâng cao và luận văn sẽ lựa chọn ra
một thành phân dịch vụ phân tán dữ liệu trên mạng để đi sâu nghiên cứu Nhưng
trước tiên, ta sẽ nghiên cứu tổng quan về sáu thành phần đó
Trang 18Hình 2.2: a) Mã hóa không mở rộng b) Giải mã không mở rộng
Trang 19Hình 2.4 a) Bộ mã hoá FGS B) Bộ giải mã FGS
Ngoài ra còn có các cơ chế nén khác như mã hoá FGS hay PFGS (PFGS - Progressive Fine Granularity Scalability)
Tiếp theo, mô tả các yêu cầu chất lượng cho các ứng dụng video streaming trong việc
mã hoá và giải mã truyền thông:
- Băng thông: để đạt được cảm giác chấp nhận được, một ứng dụng luồng thông
thường có một yêu cầu băng thông tối thiểu Các ứng dụng video streaming cần điều khiển tắc nghẽn để tránh tắc nghẽn, hay xảy ra trên mạng có tải lớn Với video streaming, điều khiển tắc nghẽn là hình thái khác của điều khiển tỷ lệ; tức
là điều chỉnh tỷ lệ gửi để thích hợp với băng thông còn lại trên mạng So sánh với truyền thông không mở rộng, truyền thông mở rộng dễ thích ứng hơn với sự thay đổi băng thông trên mạng
- Độ trễ: video streaming yêu cầu độ trễ giới hạn cho các gói tin có thể tới được
bên nhận đúng thời gian để giải mã và trình diễn Nếu như gói tin truyền không đến đúng thời hạn, việc trình diễn sẽ dừng và điều đó sẽ rất khó chịu với mắt người Một gói tin đến đúng ngưỡng trễ (còn gọi là thời gian trình diễn) thì cũng vô nghĩa và có thể coi như là đã mất vì nó không kịp xử lý để hiển thị
- Mất mát: mất gói tin là không thể tránh được trên mạng Internet và có thể làm
hỏng hình ảnh Do đó, video streaming cần giải quyết được sự mất gói tin Mã hoá đa mô tả là một công nghệ nén để giải quyết sự mất mát gói tin
Trang 20- Chức năng giống Máy ghi âm-castset-video (VCR): một số ứng dụng yêu cầu
chức năng giống VCR như có thể dừng, tạm dừng/trình diễn lại, chạy tua nhanh trước, chạy tua nhanh lùi và chạy ngẫu nhiên
- Độ phức tạp giải mã: một số thiết bị như điện thoại nhỏ hoặc PDAs yêu cầu tốn
ít năng lượng điện Do đó, các ứng dụng truyền thông truyền hình chạy trên thiết bị đó cần đơn giản Đặc biệt độ phức tạp giải mã là phải chấp nhận được
Trong các yêu cầu chất lượng trên thì để giảm việc mất mát gói tin còn có các cơ chế về truyền thông mạng Đó có thể là cơ chế khôi phục lỗi trên mạng, giảm thời gian lỗi xảy ra Làm được điểu đó, gói tin sẽ được truyền thông liên tục, kịp thời
2.3 Máy chủ luồng – streaming server
Máy chủ luồng đóng một vai trò quan trọng trong việc cung cấp dịch vụ video streaming Để đưa ra những dịch vụ chất lượng cao, máy chủ luồng cần phải xử lý dữ liệu đa phương tiện với sự ràng buộc về thời gian Ngoài ra, máy chủ luồng cũng cần
hỗ trợ các hoạt động điều khiển VCR Hơn nữa, nó cũng cần cung cấp chức năng truyền thông kiểu đồng bộ
Để làm được điều đó, thông thường, máy chủ luồng gồm các thành phần sau:
- Bộ phiên dịch: Một bộ phiên dịch tham gia vào tầng ứng dụng và các giao thức
vận tải được thực hiện trong máy chủ Thông qua bộ biên dịch, các máy khách
có thể giao tiếp với một máy chủ và nhận nội dung đa phương tiện một cách liên tục và đồng bộ
- Hệ điều hành: Khác với hệ điều hành thông thường, hệ điều hành cho máy chủ
luồng cần phải có thời gian thực an toàn cho các ứng dụng luồng
- Hệ lưu trữ: phải hỗ trợ lưu trữ truyền thông liên tục và có thể truy cập được
Tiếp theo, ta sẽ mô tả về các cơ chế điều khiển chất lượng dịch vụ, là cơ chế thích ứng luồng bit truyền thông theo trạng thái của mạng và yêu cầu chất lượng dịch vụ cho nó
2.4 Điều khiển chất lượng tại điểm phát và nhận
Mục đích của điều khiển chất lượng dịch vụ tầng ứng dụng là để tránh tắc nghẽn và tối
đa hoá chất lượng truyền thông trong trường hợp mất mát gói tin Các công nghệ điều khiển chất lượng dịch vụ tầng ứng dụng bao gồm điều khiển tắc nghẽn và điều khiển lỗi Những công nghệ này được thực hiện ở các điểm phát và nhận
Trang 212.4.1 Điều khiển tắc nghẽn
Việc lỗi nhiều và độ trễ quá mức có một hiệu ứng rất xấu tới chất lượng trình diễn truyền hình và thường do nguyên nhân tắc nghẽn mạng Do đó, cơ chế điều khiển tắc nghẽn ở điểm cuối là cần thiết để giúp giảm tỷ lệ mất gói tin và giảm độ trễ
Trong video streaming, điều khiển tắc nghẽn giống như điều khiển tỷ lệ Điều khiển tỷ
lệ tối thiểu hoá khả năng tắc nghẽn của mạng bằng việc chọn tỷ lệ video streaming phù hợp với băng thông mạng còn lại
2.4.1.1 Điều khiển tỷ lệ
Điều khiển tỷ lệ là công nghệ được sử dụng để xác định tỷ lệ gửi của truyền thông truyền hình dựa vào ước lượng băng thông còn lại trên mạng Cơ chế điều khiển tỷ lệ
có thể chia theo ba loại chính: điều khiển tỷ lệ theo nguồn, theo bên nhận và kết hợp
(a) Điều khiển tỷ lệ theo nguồn:
Trong điều khiển tỷ lệ theo nguồn, bên gửi sẽ có trách nhiệm lựa chọn tỷ lệ truyền truyền hình thích hợp Thông thường cơ chế điều khiển tỷ lệ dựa vào đáp trả của bên nhận để điều chỉnh lại tỷ lệ truyền Điều khiển tỷ lệ bên nguồn có thể áp dụng vào cả unicast và multicast như Hình 2.5
Hình 2.5:a) Phân tán truyền thông unicast B) Phân tán truyền thông multicast
Với truyền hình unicast, cơ chế này sẽ thực hiện hai cách tiếp cận: tiếp cận theo điều
tra và tiếp cận theo mô hình
Trang 22- Cách tiếp cận theo điều tra (tiếng Anh: probe) Việc điều tra nguồn với băng
thông mạng hiện có bằng việc điều chỉnh tỷ lệ gửi theo cách mà có thể bảo trì tỷ
lệ mất gói tin p dưới một ngưỡng Pth Có hai cách để điều chỉnh: 1) tăng cấp số cộng và giảm cấp số nhân và 2) tăng cấp số nhân và giảm cấp số nhân Chi tiết không được đề cập trong luận văn, tham khảo mục [7]
- Cách tiếp cận theo mô hình dựa vào mô hình quá trình của kêt nối giao thức
điều khiển truyền thông (TCP) Thông lượng của một kết nối TCP có thể được đặt dựa vào công thức
Với:
λ: thông lượng của một kết nối TCP
MTU: maximum transit unit là kích thước gói tin được dùng trong kết nối RTT: rount-trip time của một kết nối
p: tỷ lệ mất gói tin của kết nối
Điều khiển tỷ lệ theo nguồn cho multicast: người gửi sẽ sử dụng một kênh để truyền
luồng truyền hình tới các bên nhận Multicast đó được gọi là multicast kênh đơn và áp dụng cơ chế điều khiển tỷ lệ dựa vào điều tra cho mỗi kênh đơn
(b) Điều khiển tỷ lệ theo bên Nhận
Bên nhận sẽ tính toán tỷ lệ nhận của video streaming bằng việc thêm hoặc bỏ đi các kênh; bên gửi không tham gia vào điều khiển tỷ lệ Thông thường, điều khiển tỷ lệ theo bên nhận được sử dụng trong truyền hình mở rộng multicast, nơi mà có nhiều tầng trong truyền hình mở rộng và mỗi tầng tương ứng với một kênh trong cây multicast Tương tự với điều khiển tỷ lệ theo bên gửi, các cơ chế của bên nhận có hai loại tiếp cận: tiếp cận theo điều tra và tiếp cận theo mô hình
Trang 23yêu cầu của bộ điều khiển tỷ lệ ở bên nguồn Vì nhiều trường hợp dữ liệu được nén theo tỷ lệ không phù hợp với băng thông hiện có trên mạng Có nhiều bộ lọc như bộ lọc giải mã, bộ lọc bỏ frame, bộ lọc bỏ tầng, lọc tuần tự, lọc lượng tử hoá được mô tả
cụ thể dưới đây
- Lọc giải mã: là giải mã và nén một video streaming Nó thường được sử dụng
để thực hiện chuyển mã từ cơ chế nén này sang cơ chế nén khác nhau
- Lọc bỏ frame: có thể phân biệt các loại frame (I, P, B trong MPEG) và bỏ một
số frame theo một thứ tự ưu tiên Ví dụ thứ tự bỏ nên bắt đầu từ frame B, sau đó đến P và cuối cùng là I Bộ lọc bỏ frame được dùng để giảm tỷ lệ dữ liệu của luồng bit truyền thông bằng việc loại bỏ một số frame và truyền các frame còn lại với tỷ lệ thấp hơn Bộ lọc bỏ frame có thể được sử dụng ở bên nguồn cũng như ở mức mạng
- Bộ lọc bỏ tầng: có thể phân biệt các tầng và bỏ các tầng theo mức độ quan
trọng Thứ tự bỏ có thể từ tầng mở rộng cao nhất đến tầng cơ bản
- Bộ lọc tuần tự: thực hiện ở tầng nén Nó sẽ thực hiện tuần tự (ví dụ theo hệ số
DCT) Cơ chế bộ lọc tuần tự bao gồm lọc luồng chậm, lọc giảm màu Lọc luồng chậm là để bỏ đi hệ số DCT của các tuần suất cao Lọc giảm màu thực hiện hành động tương tự lọc luồng chậm với thông tin màu sắc trong video streaming Trong MPEG, cơ chế lọc màu sẽ thực hiện thay tất cả các khối màu bằng một khối trống Không giống cơ chế bỏ frame, cơ chế lọc tuần tự giảm băng thông mà không ảnh hưởng đến tỷ lệ frame
- Lọc lượng tử hoá: thực hiện trên tầng nén (ví dụ hệ số DCT) Bộ lọc sẽ đưa ra
các hệ số DCT từ video streaming đa nén thông qua kỹ thuật tương tự giải lượng tử hoá sau đó nó sẽ lượng tử hoá lại theo hệ số DCT với bước nhảy lượng
tử lớn hơn giảm tỷ lệ hơn
Tổng kết lại, mục tiêu của điều khiển tắc nghẽn là giảm thiểu tắc nghẽn Nói cách khác, mất mát gói tin là không thể tránh được trong Internet và có thể ảnh hưởng lớn tới chất lượng Điều đó thúc đẩy việc thiết kế cơ chế để tối đa hoá chất lượng trình diễn truyền thông với các gói tin bị mất Điều khiển lỗi là cơ chế như vậy và sẽ được trình bày tiếp theo đây
2.4.2 Điều khiển lỗi
Cơ chế điều khiển lỗi bao gồm FEC, truyền lại và mã hoá co giãn lỗi và che giấu lỗi
Trang 242.4.2.1 FEC
Nguồn gốc của FEC (tiếng Anh: Forward Error Connection) là thêm các thông tin thừa
để gói tin nguồn có thể tái tạo lại khi gói tin bị mất Ta sẽ phân loại các cơ chế FEC hiện có thành ba loại: FEC dựa vào mã hoá kênh, mã hoá nguồn và mã hoá nguồn/kênh kết hợp
Với các ứng dụng internet, mã hoá kênh là loại thường được sử dụng để mã hoá các khối Một video streaming là sẽ được chặt ra thành nhiều đoạn, mỗi đoạn sẽ được đóng
gói thành k gói tin; do đó với mỗi đoạn, một cách mã hoá khối được áp dụng cho k gói tin để tạo ra khối n gói tin với n>k Để có thể khôi phục lại một đoạn, người dùng chỉ cần nhận được bất cứ k gói tin trong khối n gói
FEC dựa trên mã hoá nguồn (tiếng Anh: SFEC - Source Forward Error Connection) thường được biến đổi theo FEC của truyền hình Internet Giống như mã hoá kênh,
SFEC cũng thêm các thông tin dư thừa để khôi phục lỗi Ví dụ gói tin thứ n sẽ chứa khối thứ n của nhóm (tiếng Anh: GOB - Group of blocks), mà là một phiên bản đã nén của GOB thứ (n-1) với lượng tử rộng hơn
Mã hoá kênh/nguồn kết nối là một cách tiếp cận để tối ưu phân bổ tỷ lệ giữa mã hoá nguồn và mã hoá kênh
2.4.2.2 Truyền lại với ràng buộc trễ
Truyền lại thường không được ưu chuộng để khôi phục gói tin trong truyền thông thời gian thực vì gói tin truyền lại có thể lỡ mất thời gian trình diễn Tuy nhiên, nếu thời gian truyền lại là ngắn và thỏa mãn độ trễ cho phép, thì cách tiếp cận theo phương hướng truyền lại với ràng bộc độ trễ là một lựa chọn có thể cho điều khiển lỗi
Với unicast, bên nhận có thể thực hiện cơ chế truyền lại ràng buộc độ trễ Khi bên
nhận phát hiện mất gói tin N If (T c + RTT + D s < T d (N)) thì sẽ gửi yêu cầu gói tin N
tới bên nhận
Với T c là thời gian hiện tại
RTT: thời gian ước lượng chu trình,
D s : cụm từ chểnh mảng,
T d (N): thời gian khi gói tin N được lập kế hoạch hiển thị
Trang 25Hình 2.6: Biểu đồ thời gian cho Điều khiển theo bên nhận
2.4.2.3 Mã hoá đàn hồi lỗi
Mục đích của mã hoá đàn hồi lỗi là tăng cường sức mạnh của luồng nén đối với việc mất gói tin Cơ chế mã hoá đàn hồi lỗi chuẩn gồm đánh dấu đồng bộ lại, chia dữ liệu
và khôi phục dữ liệu Khi một gói tin mất có thể gây ra sự mất mát của dữ liệu hình/nội dung, cơ chế đánh dấu điểm đồng bộ lại, chia dữ liệu và khôi phục lại dữ liệu
có thể hữu ích với các ứng dụng truyền hình Internet Do đó, chúng ta sẽ không giới thiệu về các công cụ đàn hồi lỗi chuẩn Thay vào đó, sẽ mô tả mã hoá đa mô tả (tiếng Anh: MDC – Multiple Description Coding)
Với mã hoá đa mô tả một thứ tự truyền hình thô sẽ được nén thành nhiều luồng (gọi là các mô tả) như sau: mỗi mô tả cung cấp một chất lượng chấp nhận được, càng kết nối
mô tả thì càng cung cấp chất lượng tốt hơn Ưu điểm của mã hoá đa mô tả là:
- Sức mạnh với lỗi: thậm chí nếu bên nhận chỉ nhận được một mô tả (tất cả các
mô tả khác mất) thì nó vẫn có thể tái cấu trúc lại truyền hình với chất lượng chấp nhận được
- Mở rộng chất lượng: nếu bên nhận có nhiều mô tả hơn thì nó có thể gắn kết lại
với nhau và tái cấu trúc thành truyền hình có chất lượng tốt hơn
Tuy nhiên, những ưu điểm đó có cái giá của nó Để tạo một mô tả cung cấp các chất lượng chấp nhận được, mỗi mô tả cần phải đưa ra các thông tin cần thiết về truyền hình ban đầu Thêm vào đó, mặc dù càng kết nối mô tả để cung cấp chât lượng tốt hơn,
sự đúng đắn của việc kết hợp các mô tả có thể làm cho chất lượng nén sau này giảm đi
Trang 262.4.2.4 Che giấu lỗi
Che giấu lỗi được triển khai bên nhận để che giấu các dữ liệu mất và trình diễn giảm thiểu ảnh hưởng đến mắt con người trước khi gửi (phương pháp mang tính phòng ngừa)
Có hai cách cơ bản của việc che giấu lỗi: phép nội suy không gian và phép nội suy thời gian Trong phép nội suy không gian, các giá trị pixel bị mất sẽ được tái cấu trúc bằng việc sử dụng các thông tin không gian láng giềng Trong phép nội suy thời gian, dữ liệu mất đi sẽ được tái cấu trúc dựa vào frame trước đó
2.5 Giao thức video streaming
Nhiều giao thức đã được thiết kế và chuẩn hoá cho giao tiếp giữa máy chủ và máy khách luồng Theo tính năng, các giao thức này liên quan trực tiếp đến video streaming Internet và có thể chia thành ba loại sau:
- Giao thức tầng mạng: cung cấp dịch vụ mạng cơ bản như đánh địa chỉ IP cung
cấp giao thức tầng mạng cho video streaming Internet
- Giao thức tầng giao vận: cung cấp các chức năng giao vận của mạng ngang
hàng cho các ứng dụng luồng Các giao thức bao giồm UDP, TCP, giao thức giao vận thời gian thực (RTP), giao thức điều khiển thời gian thực (RTCP) UDP và TCP là hai giao thức tầng giao vận thấp nhất trong khi RTP và RTCP
là các giao thức tầng giao vận cao hơn
- Giao thức điều khiển phiên: xác định thông điệp và cơ chế để điều hiển dữ liệu
truyền thông trong một phiên RTSP và giao thức thiết lập phiên (SIP – session initiation protocol) là các giao thức tầng giao vận
Mô tả mối quan hệ giữa ba tầng, ta mô tả giao thức stack cho video streaming trong Hình 2.7 Với dữ liệu phẳng, ở phía gửi, dữ liệu truyền hình/truyền thanh lấy được và đóng gói ở tầng RTD Luồng được đóng gói RTD sẽ cung cấp thông tin thời gian và đồng bộ cũng như là số thứ tự Luồng đóng gói RTD sẽ được truyền qua tầng UDP/TCP và tầng IP Kết quả là gói tin IP được chuyển thông qua Internet Ở phía nhận, video streaming được thực hiện ngược lại trước khi trình diễn Trong khối điều khiển, các gói tin RTCP và RTSP được dồn ở tầng UDP/TCP và chuyển xuống tầng IP
Trang 27Hình 2.7: Giao thức stacks cho luồng truyền hình
2.6 Cơ chế đồng bộ video streaming
Tính năng quan trọng phân biệt ứng dụng truyền thông đa phương tiện và các ứng dụng dữ liệu truyền thống khác là sự tích hợp giữa nhiều luồng để trình diễn Ví dụ, học từ xa, trình hiện slide cần phải đồng bộ với luồng âm thanh (Hình 2.8) Nếu không thì slide hiện tại sẽ hiển thị trên màn hình không thích hợp với âm thanh là các giải thích của giáo viên, rất khó chịu Với đồng bộ video streaming, ứng dụng tại bên nhận sẽ có thể hiển thị dữ liệu theo một cách mà chúng thường được hiển thị
Hình 2.8: Đồng bộ giữa hình và tiếng
Đồng bộ video streaming chính là việc bảo trì mối quan hệ tạm thời giữa một luồng dữ liệu với một số luồng truyền thông khác Có ba mức của đồng bộ gọi là đồng bộ trong luồng, đồng bộ luồng và đồng bộ đối tượng
- Đồng bộ luồng trong luồng: tầng thấp nhất của truyền thông liên tục hoặc dữ
liệu thời gian thực là tầng dữ liệu truyền thông Đơn vị của tầng truyền thông là các khối dữ liệu logic như frame truyền hình/truyền thanh Đồng bộ ở mức này được gọi là đồng bộ luồng dư; bảo trì sự liên tục của các đơn vị dữ liệu Không
có đồng bộ luồng dư, trình diễn của luồng có thể bị ngắt bởi việc dừng và sự sai khác
- Đồng bộ luồng: tầng hai của dữ liệu thời gian thực là tầng luồng Đơn vị của
tầng luồng chính là một luồng Đồng bộ ở tầng này chính là đồng bộ luồng, có
Trang 28nhiệm vụ bảo trì mối quan hệ giữa các truyền thông liên tục Không có đồng bộ luồng, sự không khớp giữa các luồng có thể gây ra lỗi Ví dụ, người dùng sẽ thấy khó chịu khi việc di chuyển môi người nói không tương ứng với âm thanh
- Đồng bộ đối tượng: là tầng cao nhất của tài liệu đa phương tiện là tầng đối
tượng, mà kết hợp luồng và dữ liệu thời gian thực như chữ và hình ảnh Đồng
bộ ở tầng này gọi là đồng bộ đối tượng Mục đích của nó là bắt đầu và kết thúc của trình diễn thời gian thực trong một khoảng thời gian vừa phải, nếu tại các điểm định nghĩa trước của đối tượng truyền thông độc lập thời gian có thể đạt được Không có sự đồng bộ này, người xem của việc trình diễn slide có thể khó chịu vì tiếng bình cho một slide thì slide khác đã hiển thị
Video streaming có thể mất đồng bộ sau khi di chuyển từ máy chủ sang máy khác Có nhiều giai đoạn trong quá trình truyền; dữ liệu được chuyển từ chỗ lưu trữ tới người dùng
Máy chủ lấy dữ liệu từ thiết bị lưu trữ và gửi dữ liệu lên mạng; mạng truyền dữ liệu tới máy khách; máy khách đọc dữ liệu từ tầng mạng của nó và trình diễn tới người dùng;
hệ điều hành và các giao thức điều khiển các hệ thống chạy và truyền dữ liệu
Mỗi một giai đoạn trong quá trình truyền thực hiện các nhiệm vụ và ảnh hưởng đến dữ liệu theo các cách khác nhau Nó đều tạo ra độ trễ và sự biến thiên độ trễ theo các hành
vi hoặc đoán trước; hoặc không đoán trước Độ trễ và biến thiên độ trễ có thể làm phá
vỡ việc đồng bộ ở mọi mức Do đó, cơ chế đồng bộ truyền hình được yêu cầu nhằm đảm bảo chất lượng trình diễn
Phần khó của cơ chế đồng bộ là mô tả về liên kết tạm thời trong nhiều truyền thông Quan hệ tạm thời có thể được mô tả hoặc tự động hoá hoặc tay hoá Trong trường hợp ghi lại và hiển thị dữ liệu truyền thanh/truyền hình, mối quan hệ được tự động bởi thiết
bị ghi âm Trong trường hợp trình diễn độc lập với các dữ liệu truyền thông khác, mối quan hệ tạm thời cần phải được xác định bằng tay Mô tả bằng tay có thể được thiết kế bởi hiển thị slide: lựa chọn slide tương ứng để tạo âm thanh và xác định các khối âm thanh khi slide được trình diễn
Bên cạnh việc xác định mối quan hệ tạm thời, việc đồng bộ cần phải được hỗ trợ tại mỗi giai đoạn trong quá trình truyền Ví dụ máy chủ lưu trữ dữ liệu lớn; mạng cung cấp băng thông hợp lý, độ trễ và jitter trên mạng là hợp lý với ứng dụng truyền thông
đa phương tiện; hệ điều hành và ứng dụng cung cấp quy trình dữ liệu đa phương tiện
Trang 29Tuy nhiên, mạng Internet hiện nay không hỗ trợ nhiều cho truyền thời gian thực Chính vì vậy mà hầu hết các cơ chế nâng cao chất lượng đều được thực hiện trên hệ thống điểm cuối, tại tầng ứng dụng
Từ phần trên, ta đã nghiên cứu các giai đoạn truyền thông và ảnh hưởng của chúng tới chất lượng dịch vụ Tuy nhiên, xu hướng hiện nay việc cải thiện chất lượng dịch vụ thường được tiến hành chủ yếu ở tầng mạng Những công nghệ này được sử dụng ở hệ thống cuối và không cần sự hỗ trợ từ mạng Phần tiếp theo, ta sẽ nghiên cứu các cơ chế phân tán dữ liệu trên tầng mạng nhằm nâng cao chất lượng dịch vụ truyền video streaming
2.7 Dịch vụ phân tán dữ liệu trên mạng
Để nhằm mục đích tăng cường chất lượng trình diễn đa phương tiện, các hỗ trợ của mạng là thật sự cần thiết Sự hỗ trợ mạng có thể giảm độ trễ truyền thông và tỷ lệ mất mát gói tin Tuy nhiên, hỗ trợ của mạng Internet là hạn chế, vì vậy các dịch vụ phân tán dữ liệu được thiết kế để nâng cao thêm chất lượng dịch vụ của việc truyền dữ liệu truyền hình/truyền thanh trên mạng Internet Các dịch vụ này bao gồm lọc mạng, nhân bản nội dung và multicast tầng ứng dụng
2.7.1 Lọc mức mạng
Như kỹ thuật điều khiển tắc nghẽn, lọc mức mạng cố gắng đạt được chất lượng truyền thông tối đa trong điều kiện mạng tắc nghẽn Bộ lọc ở máy chủ truyền thông có thể điều chỉnh tỷ lệ truyền video streaming theo tình trạng tắc nghẽn của mạng Tuy nhiên, máy chủ quá bận nên không điều khiển được Do đó, các nhà cung cấp dịch vụ có thể cung cấp các bộ lọc ở mức mạng Hình 2.9 mô tả một ví dụ về việc áp dụng bộ lọc như vậy Các node được đánh nhãn “R” thông báo cho bộ định tuyến rằng không có thông tin về định dạng video streaming và có thể ngẫu nhiên vứt bỏ gói tin Node lọc nhận yêu cầu từ máy khách và điều chỉnh luồng gửi bởi máy chủ tương ứng Giải pháp này cho phép các nhà cung cấp dịch vụ có thể thay thế bộ lọc trên mỗi node bằng bộ lọc ở mạng Hơn nữa, có thể cung cấp nhiều bộ lọc trên đường từ một máy chủ đến máy khách
Trang 30Hình 2.9: Bộ lọc được đặt trong lớp mạng
Hình 2.10:Mô hình hệ thống của bộ lọc mức mạng
Để mô phỏng vận hành của bộ lọc, mô hình hệ thống được chỉ ra trong Hình 2.10 Mô hình bao gồm máy chủ, máy khách và ít nhất một bộ lọc và hai kênh ảo giữa chúng Một kênh ảo dùng để điều khiển, kênh khác dùng cho dữ liệu Các kênh tương ứng tồn tại thành cặp với các bộ lọc Kênh điều khiển có hai hướng và có thể là các kết nối TCP Mô hình chỉ ra các máy khách có thể kết nối với chỉ một host (bộ lọc cuối cùng)
mà sẽ hoặc chuyển yêu cầu hoặc thực hiện luôn yêu cầu trên chúng Sự vận hành của
bộ lọc trên dữ liệu phẳng bao gồm:
- Nhận video streaming từ máy chủ hoặc bộ lọc trước
- Thực hiện các yêu cầu
- Truyền tiếp các yếu cầu tới bộ lọc trước của nó
Thông thường, các bộ lọc loại frame được sử dụng trong lọc tầng mạng Bên nhận có thể chuyển bẳng thông của video streaming bằng gửi yêu cầu tới bộ lọc để tăng/giảm
tỷ lệ loại frame Để quyết định xem bộ lọc nên tăng hay giảm băn thông, bên nhận liên tục đo đạc tỷ lệ mất gói tin p Dựa vào tỷ lệ mất gói tin, cơ chế điều khiển tỷ lệ có thể
được thực hiện Nếu tỷ lệ mất gói tin lớn hơn ngưỡng α, máy khách sẽ yêu cầu bộ lọc
tăng tỷ lệ loại frame Nếu tỷ lệ đó thấp hơn ngưỡng khác β (β < α) thì bên nhận sẽ yêu
cầu bộ lọc giảm tỷ lệ loại frame
Trang 31Ưu điểm của bộ lọc loại gói tin sử dụng trên tầng mạng bao gồm:
- Nâng cao chất lượng truyền thông: ví dụ khi một video streaming từ kết nối luồng trên với băng thông còn lại nhiều hơn tới kết nối luồng dưới với băng thông còn lại ít hơn, sử dụng bộ lọc loại frame tại điểm kết nối (giữa kết nối luồng dưới và kết nối luồng trên) có thể nâng cao chất lượng truyền thông Bời
vì bộ lọc hiểu rằng định dạng của video streaming và có thể loại bỏ các gói tin theo cách tốt nhất đảm bảo chất lượng luồng thay vào ngắt luồng
- Hiệu quả băng thông: bộ lọc có thể giúp lưu trữ tài nguyên của mạng bằng việc loại bỏ các frame tới trễ
2.7.2 Nhân bản nội dung
Một kỹ thuật quan trọng cho nâng cao độ mở rộng của các hệ thống truyền thông là việc nhân bản nội dung/truyền hình Nhân bản nội dung có hai loại: lưu trữ và phản chiếu Cả hai loại đều tìm một nội dung ở các máy khác gần đó và có ưu điểm:
- Giảm sử dụng băng thông trong kết nối mạng
- Giảm tải trên các máy chủ truyền thông
- Giảm tiềm tàng của máy khách
- Tăng độ sẵn có
Nhân bản phản chiếu là sao lại các file dữ liệu trên các máy khác trên mạng Do đó,
file ban đầu sẽ được lưu trữ trên máy chủ trong khi các phiên bản của nó ở trên nhiều máy khác Với cách này, một máy có thể tải được dữ liệu bản sao ở máy chủ gần nhất Phản chiếu có những nhược điểm nhất định Cơ chế này tạo ra các nhân bản tốn kém,
ad hoc và chậm Ngoài ra, việc tạo ra một phản chiếu trong một máy chủ dù có rẻ hơn những vẫn ad hoc và quy trình phức tạp
Lưu trữ: dựa trên sự tin cậy của các máy khách, tài về nhiều nội dung khác nhau, tạo
nên các phiên bản của nội dung ở ngay tại máy khách Thông thường, trong trường hợp đơn giản, máy khách tải tất cả nội dung từ một máy được gọi là lưu trữ Lưu trữ nhận một file truyền thông từ máy chủ ban đầu, lưu trữ một bản sao ở máy và sau đó truyền nó tới máy khách yêu cầu Nếu một máy khách yêu cầu file truyền thông mà bộ lưu trữ đã có sẵn, bộ lưu trữ sẽ trả về bản sao cục bộ chứ không phải tới tận máy chủ ban đầu chứa file truyền thông Thêm vào đó, việc chia sẻ lưu trữ và phân cấp lưu trữ cho pháp bộ lưu trữ có thể truy cập các file mà lưu tại các bộ lưu trữ khác do đó có việc tải từ máy chủ ban đầu có thể giảm và tắc nghẽn mạng có thể giảm
Trang 32Để tăng tỷ lệ lưu trữ và giảm độ trễ ở phía máy khách, Kermode đã đề xuất sử dụng
“dấu vết” (tiếng Anh: hint) để trợ giúp việc lưu trữ trong việc tải dữ liệu đã có kế hoạch Các dấu vết này có thể phân thành hai loại: vết nội dung và vết ứng dụng
2.7.3 Multicast tầng ứng dụng
Các thiết kế trước đó cho video streaming trên Internet thích hợp với cách truyền thông unicast (điểm-điểm) như email, trao đổi file và trình duyệt Web, nhưng khó có thể hỗ trợ hiệu quả với việc truyền nội dung lớn
Chính vì vậy mà cơ chế truyền multicast đã dần thay thế với những ưu điểm vượt trội
Nó giảm tải cho máy chủ do mỗi node mạng có thể đóng vai trò nhận dữ liệu và nguồn
để tiếp tục truyền dữ liệu sang các node khác
Áp dụng đầu tiên thực hiện multicast trên tầng mạng “IP multicast” IP multicast có khả năng cung cấp hiệu quả việc truyền gói tin tới nhiều điểm Nó thực hiện gửi một gói tin theo dải vật lý của địa chỉ IP Tuy nhiên, IP multicast có nhược điểm về tính
mở rộng, quản lý mạng và triển khai
Để giải quyết các khó khăn trên, cơ chế truyền multicast tầng ứng dụng ra đời Chi tiết
sẽ được tham khảo ở Chương 3: TRUYỀN THÔNG MULTICAST
Tìm hiểu về multicast, ta có thể thấy rằng phương pháp này trên tầng ứng dụng đặc biệt thích hợp với các ứng dụng video streaming thời gian thực vì nó có khả năng mở rộng cao, đến được nhiều người dùng.Nó cũng tận dụng được ưu điểm chia sẻ tài nguyên để có thể giảm tải cho máy chủ, tăng băng thông, giảm độ trễ
2.8 Tổng kết chương
Chương 2:TỔNG QUAN VIDEO STREAMING đã trình bày tổng quan về video streaming, sáu thành phần cơ bản để một video streaming được truyền từ nguồn sang bên nhận mà đảm bảo chất lượng dịch vụ tốt nhất Để tăng chất lượng dịch vụ, ta có thể tăng cường tại ba giai đoạn: tại bên gửi; trong quá trình truyền thông và tại bên nhận
Trường hợp tăng cường chất lượng dịch vụ trong quá trình truyền thông thì đóng vai trò lớn là các dịch vụ hỗ trợ của mạng như: dịch vụ lọc, multicast tầng ứng dụng và nhân bản nội dung Nhiều những nghiên cứu được đưa ra để nhằm mục đích này, đặc biệt là các cơ chế multicast tầng ứng dụng bởi những ưu điểm về tính mở rộng cao
Để hiểu thêm về giao thức truyền thông multicast, chương sau sẽ giới thiệu tổng quan
về Multicast, tập trung vào Multicast tầng ứng dụng
Trang 33CHƯƠNG 3: TRUYỀN THÔNG MULTICAST
Truyền thông multicast là cách thức truyền từ một máy tính đến một nhóm các máy tính được định trước Tập hợp các máy tính thường được gọi là các node trên một cây truyền thông muticast Cây multicast đóng vai trò định tuyến giúp các node mạng liên kết một cách logic với nhau Tuỳ theo cơ chế, các node phía trên sẽ truyền đồng thời đến các node bên dưới Multicast có hai loại chính là multicast IP hay multicast tầng ứng dụng – multicast tầng phủ
3.1 Khái niệm về truyền tin multicast
Multicast: là công nghệ truyền tin trên mạng, để truyền thông tin tới một nhóm các
máy đã biết trước Nó sử dụng một cơ chế hiệu quả để gửi thông tin đi qua các kết nối mạng, tạo các bản sao khi phân chia tới nhiều đích
Hình 3.1: Công nghệ truyền tin Multicast
Có thể thấy multicast là phương pháp hữu hiệu khi một máy muốn gửi cùng một dữ liệu tới nhiều máy khác trong mạng Trong trường hợp này, rõ ràng sử dụng multicast
sẽ tiết kiệm băng thông trên đường truyền cũng như tài nguyên của máy gửi hơn so với
Trang 34Hình 3.2 thể hiện sự phân loại truyền thông multicast với hai nhanh chính là truyền thông IP multicast và ALM – Application Layer Multicast Tiếp theo đây, chúng ta sẽ lần lượt tìm hiểu về truyền tin multicast tầng mạng và truyền tin multicast tầng ứng dụng Trong đó, sẽ chú trọng vào phần màu cam, là hướng multicast trên mạng ngang hàng có cấu trúc
Multicast
IP Multicast Application
Layer Multicast
Unstructured Multicast (Mesh-first Multicast)
Structured Multicast (Tree-first Multicast)
DHT Multicast (CHORD)
Hình 3.2: Phân loại truyền thông Multicast
3.2 Multicast tầng mạng - IP Multicast
Vào năm 1990, Deering đề xuất giải pháp IP multicast, 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
Định nghĩa cơ bản nhất của IP multicast là: 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
Để 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 Các máy nào 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 (tiếng Anh: IGMP - Internet
Group Management Protocal)
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á
Trang 35trì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 (tiếng Anh: 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 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 Hình 3.3
Hình 3.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 multicast tầng mạng đang sử dụng hiện nay, các phương thức xử lý đáp
ứng các ràng buộc về chất lượng dịch vụ (tiếng Anh: Quality of service) vẫn là vấn đề
phức tạp và chưa mang lại hiệu quả cao vì:
Trang 36- Khả năng thích ứng với sự tăng trưởng về số lượng trạng thái chuyển tiếp multicast tại các bộ định tuyến không tốt: các bộ định tuyến cần lưu giữ trạng thái theo nhóm
- Định tuyến phức tạp, mỗi cây chỉ kết hợp được với một nhóm đơn Việc tạo và duy trì một cây multicast cho mỗi nhóm làm mất nhiều thời gian và tài nguyên, đặc biệt khi tính đến các ràng buộc về chất lượng dịch vụ
- 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 đề cập thấu đáo
Hơn nữa, cho dù bộ định tuyến khắc phục được các vấn đề trên, thì chi phí để thay thế lại hạ tầng mạng lớp 3 đã đượ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
3.3 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
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 3.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
Trang 37mộ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 khoẻ của tầng phủ: Mỗi máy thường không ổn định như rounter, 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 khoẻ 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 điều khiển: để 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
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
3.4 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 Cách thức liên kết phục thuộc vào cấu trúc mạng ngang hàng
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 lê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
Trang 383.4.1 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 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ỏ