in last 10 minutes
SIK - Temat H - multimedia w internecie
Transmisja do wielu odbiorców...Broadcasting to wysyłanie datagramu UDP do wszystkich maszyn w danej sieci fizycznej;
robi się to ustawiając same jedynki w nr. hosta adresu docelowego IP.
Multicasting także pozwala wysyłać datagramy UDP do wielu odbiorców jednocześnie;
odbiorcy ci są zgrupowani w tzw. grupach multicastowych (muszą się do nich przyłaczyć!);
każda grupa multicastowa ma adres IP klasy D (np. 224.5.1.21, patrz: udp01b.tcl);
datagram UDP do grupy multicastowej wysyla się podajac taki właśnie adres docelowy;
multicasowe datagramy UDP mogą przeskakiwać przez routery (jeśli one to obsługują!);
http://www.tldp.org/HOWTO/Multicast-HOWTO.html
https://pl.wikipedia.org/wiki/MBone (bo nie wszystkie routery obsługują m.c. ...)
A co z nr. portu? w broad/multi-castingu używa się ich w sposób tradycyjny!
Zadanie H.1
Wyprobuj przyklady z pliku udp01b.tcl z tcludp.zip w tym folderze;
są tam eksperymenty z broadcastingiem i multicastingiem;
Uwaga: tabl. routingowa powinna prowadzić d.g. multicastowe
do sieci w której jest router z obsługą IGMP...
Antidotum(?) na brak QoS...
Prot RTP... RFC 3550, wikipedia
(skompresowane) klatki filmu przesyła się w pakietach RTP,
mają one m.in. "nr porządkowy" i "czas utworzenia",
co pozwala poradzić sobie z fluktuacją i stratami pakietów (interpolacja?)
RTCP (towarzysz RTP) przesyła statystyki odbiorczo/nadawcze
(nr portu RTCP to p+1, gdzie p to nr portu RTP)
jak widac RTP/RTCP używa 2 portów!
RTP nie ma "std. nr portu" (co z wireshark?!)
RTP działa nad UDP (dlaczego nie nad TCP ?)
RTP może (ale nie musi !!) działać multicastowo...
Oprogramowanie do telekonferencji...
tzw "narzędzia mbone", vic, vat i inne, mash.zip w folderze
(oryg. źródło: https://sourceforge.net/projects/openmash/files/)
mash.zip zawiera interp tcl mash-5.2 oraz skrypty vic i vat
vic: wideokonferencja
vat: audiokonferencja
sposób użycia: ./mash-5.2 vic adr_IP/port:L_port
gdzie adr_IP/port to adres grupy multicast + nr portu
na L_port vic czeka na pakiety rtp (default: L_port=port)
można też uruchomić unicastowo 2 kopie vic na 1 komputerze:
./mash-5.2 vic localhost/50000:55000 &
./mash-5.2 vic localhost/55000:50000 &
Jak widać, osoby uczestniczące w telekonferencji
są podłączone do jednej grupy multicastowej;
wszelkie transmisje (a/v i inne) są wysyłane poprzez tę grupę;
różne usługi (audio, video, ...) dla danej telekonf. są dosŧępne
na różnych nr portów
Zadanie H.2 "odbijacz lokalny"
Spowoduj, aby na 1 komputerze można było uruchomić 3 kopie skryptu "vic",
i aby wszystkie działały prawidłowo...
Zadanie należy wykonać poprzez napisanie "lokalnego proxy",
który będzie odpowiednio przekazywał datagramy udp (tzw odbijacz datagramów);
dodatkowo powinien wyświetlać info diagnostyczne o przekazywanych d.g.;
zaobacz jak sie spisuje kompresja h.261 w zależności od przekazywanego obrazu...
W zadaniu tym chodzi o to, żeby kopie vic działały
BEZ multicastingu, i do tego 3 na 1 komputerze.
Uwaga: program mash/vic nie potrafi obsługiwać współczesnych kamer,
ale za to może wysyłać obraz desktopu (Settings| Device| x11).
Zadanie H.2a
Do zadania H.2 dodaj w odbijaczu datagramów (d.g.) sztuczne błędy:
1. utratę d.g. z zadanym prawdopodobieństwem,
2. fluktuacje d.g. (zmiana kolejności czyli NIE fifo),
zaobserwuj statystyki RTP (info...| RTP Stats)
Zadanie H.3 "odbijacz internetowy"
Zadanie podobne do H.2, ale skrypty vic mają działać w internecie,
na różnych maszynach, bez żadnych ograniczeń;
bez multicastingu, spoza zapór i snat,
można używać proxy z publ. adresem.
Uwaga 1: program mash/vic używa osobnych gniazdek
do wysyłania/odbierania d.g. udp (problem dla zapór/snat)
Uwaga 2: w tym zadaniu główny problem to kwestia,
czy pakiety prot UDP będą docierać do klientów vic,
mimo zamkniętych zapór i routerów z snat;
zasada: zapory i snat wpuszczają(?) "odpowiedzi" na wcześniej wysłane pakiety udp;
w razie kłopotów użyć pomocniczo prot TCP...
(to był też projekt ...)