|
Problemy przy przesyłaniu w czasie rzeczywistym |
|
|
Wpisany przez Mariusz Waśkowiec
|
|
Podczas gdy konwencjonalne kanały transmisyjne telewizji i radia (zarówno analogowe, jak i cyfrowe) zwykle dostarczają sygnał bardzo dobrej jakości, to Internet oferuje obecnie tylko ledwie zrozumiałą mowę i obraz o małej rozdzielczości. Dzieje się tak dlatego, że Internet nie był projektowany ani budowany do transmisji strumieniowych w czasie rzeczywistym, ale raczej do ładowania (downloading) plików z, na przykład, serwera FTP (File Transfer Protocol) tworzone jest połączenie pomiędzy serwerem i klientem, a dane są transferowane z lokalnej pamięci masowej. Po ściągnięciu całego pliku dane są przetwarzane lokalnie za pomocą aplikacji, która interpretuje format odebranych danych. Z drugiej strony, przy konfiguracji strumieniowej przeglądarka (browser) rozpoczyna rekonstrukcję części danych z nadchodzącego pliku, podczas gdy inne jego części są jeszcze ładowane. Jak tylko plik zostanie w całości odebrany, połączenie pomiędzy serwerem i klientem jest przerywane.
Internet jest w zasadzie asynchronicznym środowiskiem: czas pomiędzy wysłaniem a odbiorem (i prezentacją) informacji może się zmieniać w sposób nieprzewidywalny. W dodatku brak jest jakiejkolwiek synchronizacji pomiędzy różnymi typami danych rzenoszonymi przez Internet.
Podstawowe problemy związane z Internetem, szczególnie z punktu widzenia transmisji, to:
- zagubienie pakietu - cyfrowy strumień danych binarnych jest dzielony na pakiety nazywane datagramami. Jeśli Internet jest zatłoczony lub przeciążony albo jeśli węzeł lub łącze jest uszkodzone, wówczas pakiety mogą zostać zagubione lub uszkodzone. Uszkodzone pakiety są usuwane przez klienta. Przy ruchu w sieci w czasie rzeczywistym utracone pakiety nie mogą być retransmitowane ani zrekonstruowane. Podczas gdy sygnał foniczny jest bardzo wrażliwy na utratę ciągłości odbioru pakietów, to utrata pakietów wizji może być tolerowana. Opóźnienie całkowite pakietu - opóźnienia wynikają z czasu nadawania, odbioru i transmisji. Przy wzroście zatłoczenia w sieci pakiety podczas transmisji mogą być ustawiane w kolejce w buforach. Dla aplikacji w trybie full-duplex (pełnej komunikacji w obu kierunkach), takich jak telefonia przez Internet czy wideo konferencje, opóźnienie to powinno być ograniczone do kilkuset milisekund. Dla prostych aplikacji, takich jak klipy na życzenie czy webcasting, opóźnienie może być większe, ale nie może przekroczyć kilku sekund. Czas opóźnienia może przybierać cechy czynnika synchronizującego różne składowe prezentacji multimedialnej. Może być krytyczny, ale stopień jego krytyczności może się zmieniać z aplikacji na aplikację.
- delay jitter - jest zmiennym opóźnieniem następujących po sobie pakietów. Czas pomiędzy wysłaniem i odebraniem (prezentacją) informacji może zmieniać się w sposób nieprzewidywalny. W dodatku brak jest jakiejkolwiek synchronizacji pomiędzy różnymi rodzajami danych. Pakiety mogą podróżować przez sieć różnymi trasami, a zatem ich opóźnienie może być różne. Może to spowodować wypadnięcie z sekwencji niektórych pakietów. Gdy terminal musi czekać na brakujące w sekwencji pakiety, obraz może być zamrożony. W jednostrumieniowej transmisji można zastosować buforowanie do wygładzenia efektu zmiennego opóźnienia. W wielostrumieniowej transmisji, takiej jak webconferencing (konferencji przez sieć), buforowanie nie może być użyte gdyż opóźnienie może spowodować zakłócenia pomiędzy komunikującymi się pakietami.
- całkowite pasmo (bandwidth) - przy korzystaniu z publicznego Internetu nie może zostać rzekroczona prędkość połączenia rzędu kilkudziesięciu kilo bitów na sekundę. Dostępne pasmo może się zmieniać podczas transmisji. Dlatego techniki kodowania muszą wprowadzać bardzo wysoki stopień kompresji. W rezultacie jakość fonii i wizji jest ogólnie dość słaba.
|