Multicasting

"Zwykłe" połączenia TCP czy UDP określane są jako unicast: pakiet wysyłany jest pod jeden, konkretny adres IP. Gdy kilka komputerów łączy się z tym samym serwerem i odbiera tę samą transmisję, pakiety muszą być wysyłane do każdego z osobna. Zatem dziesięć komputerów równocześnie odbierających strumień 20 kbps daje po stronie serwera obciążenie łącza równe już 200 kbps!

W przypadku połączeń typu multicast jeden i ten sam pakiet wysłany może być do wielu komputerów naraz. Zatem zarówno po stronie nadawczej, jak i odbiorczej obciążenie łącza wynosi tylko 20 kbps, niezależnie od liczby komputerów odbierających transmisję!

Multicasting (opisany w dokumencie RFC 1112) korzysta ze specjalnej klasy adresów IP - tzw. klasy D - obejmującej zakres adresów od 224.0.0.0 do 239.255.255.255. Adresów takich nie może mieć żaden komputer w Internecie - "zwykłe" adresy dopuszczalne w protokole TCP/IP mogą mieć pierwszy bajt równy co najwyżej 223. Adresy multicastingowe nie dotyczą poszczególnych komputerów, lecz identyfikują grupy komputerów uczestniczących w tej samej transmisji - pakiet wysłany na adres z klasy D dociera do wszystkich komputerów, które dołączyły się do grupy o tym adresie (komputery mogą w dowolnym momencie dołączać się i odłączać od dowolnych adresów grupowych). Używając analogii radiowej, adres grupowy możnaby porównać do "częstotliwości", na której nadawana jest transmisja. "Częstotliwość" tę (czyli adres) wybiera nadawca - decydując np. "będę nadawać na 231.154.162.11", a odbiorca chcąc odbierać daną transmisję musi "dostroić" się do niej, czyli przyłączyć do grupy o danym adresie.

Problemem jest niestety fakt, że pakiety multicastingowe nie mogą bez przeszkód wędrować przez cały Internet. Większość routerów znajdujących się w globalnej sieci nie potrafi obsłużyć poprawnie pakietów z adresami z klasy D; również nie każda implementacja TCP/IP potrafi się posługiwać adresami tego rodzaju - problemy ma zwłaszcza starsze oprogramowanie (obecnie możliwość multicastingu dostępna jest w oprogramowaniu TCP/IP prawie każdego systemu unixowego, jak również w Windows 95 i wyższych). Praktycznie rzecz biorąc, w chwili obecnej bez dodatkowych zabiegów ruch multicastingowy możliwy jest w obrębie pojedynczej sieci lokalnej, bądź grupy takich sieci połączonych ze sobą routerami "rozumiejącymi" multicasting. Transmisje multicastingowe o szerszym zasięgu możliwe są dzięki stworzeniu tzw. tuneli pomiędzy poszczególnymi takimi sieciami. Tunele tworzy się przy pomocy specjalnego oprogramowania pracującego w systemie Unix (mrouted); "opakowuje" ono odbierane z sieci pakiety multicastingowe w zwykłe unicastingowe pakiety TCP/IP i wysyła je na adres drugiego komputera z zainstalowanym mrouted, który je "odpakowuje" i przesyła dalej znowu jako multicast. Oczywiście adres drugiego "końca" tunelu musi być jawnie skonfigurowany na każdym z komputerów. Z takich sieci połączonych tunelami powstała w Internecie globalna, wirtualna sieć MBONE (Multicast Backbone) - pomiędzy komputerami do niej należącymi możliwe są transmisje multicastingowe o zasięgu ogólnoświatowym. Więcej informacji na temat MBONE i multicastingu można znaleźć m.in. pod adresami: