Protokół transportu w czasie rzeczywistym
| RTP (protokół transportu w czasie rzeczywistym) | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Rodzina: | Protokół sieciowy | ||||||||||||||||||||||||
| Obszar działania: | Transport strumieni mediów | ||||||||||||||||||||||||
| Port: | dowolny wolny, nawet port większy niż 1024 | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Domyślny: |
RFC 3550 (RTP: protokół transportowy dla aplikacji czasu rzeczywistego, 2003 ) |
||||||||||||||||||||||||
Real-Time Transport Protocol ( RTP ) to protokół do ciągłej transmisji danych audiowizualnych ( strumieni ) na IP opartych sieci . Protokół został po raz pierwszy ustandaryzowany w RFC 1889 w 1996 roku . W 2003 roku został zastąpiony przez RFC 3550 .
c. obsługuje multimedia - strumienie danych ( audio , wideo , tekst , itp.) za pośrednictwem sieci do transportu, re. H. do kodowania, pakowania i wysyłania danych. RTP jest transmisji pakietowej podstawie protokołu i zazwyczaj działa na UDP . RTP może być używany zarówno do połączeń typu unicast, jak i do komunikacji multicastowej w Internecie. RealTime Control Protocol (RTCP) współpracuje z RTP i służy do negocjowania i utrzymać jakość usług parametrów (QoS).
Znajduje zastosowanie w wielu dziedzinach, m.in.: jest używany ze standardami telefonii IP H.323 i SIP do przesyłania strumieni audio i wideo połączenia.
Główną funkcją protokołu RTP jest przesyłanie strumieni danych wymagających czasu rzeczywistego , podczas gdy protokół strumieniowania w czasie rzeczywistym (RTSP) służy do sterowania i monitorowania transmisji danych.
Datagram Congestion Control Protocol (DCCP) jest obecne podejście, aby umożliwić kontrolę przeciążenia dla mediów na podstawie strumieni RTP / UDP.
architektura
- Źródło synchronizacji
- Źródło danych nosi nazwę Synchronization Source (SSRC) i jest identyfikowane przez identyfikator (32 bity) w nagłówku.
- Tłumacz
- Tłumacz przodu przychodzące pakiety RTP pozostawiając SSRC identyfikator nienaruszone. Tłumacze mogą pozostawić dane bez zmian i są wykorzystywane np. do przełamywania zapór . Można jednak również zmienić kodowanie przesyłanych danych, należy dostosować pola Payload Type i Timestamp w nagłówku . Przekodowywanie odbywa się w sposób przejrzysty dla odbiorcy.
- mikser
- Miksery łączą strumienie danych z kilku źródeł w nowy strumień danych i przesyłają go dalej. Kodowanie można również zmienić. Ponieważ strumienie danych źródeł, które mają zostać połączone, niekoniecznie są zsynchronizowane, mikser musi generować własne taktowanie dla połączonego strumienia. Z tego powodu mikser wpisuje własny identyfikator SSRC w odpowiednim polu dla wszystkich wychodzących pakietów. Aby zachować tożsamość oryginalnych źródeł, ich identyfikatory SSRC są umieszczane na liście identyfikatorów CSRC.
- odbiorca
- Odbiorca pakietów RTP sortuje je na podstawie numerów sekwencyjnych i udostępnia odpowiedniej aplikacji.
- Pakiet RTP
- Pakiet RTP składa się z nagłówka z numerem wersji i sekwencji, formatem danych, identyfikatorem nadawcy i znacznikiem czasu oraz częścią danych użytkownika.
Nagłówek RTP
| Bajt 0 | Bajt 1 | Bajt 2 | Bajt 3 | ||||||||||||||||||||||||||||
| Bit 0 | 1 | 2 | 3 | 4. | 5 | 6. | 7th | Bit 0 | 1 | 2 | 3 | 4. | 5 | 6. | 7th | Bit 0 | 1 | 2 | 3 | 4. | 5 | 6. | 7th | Bit 0 | 1 | 2 | 3 | 4. | 5 | 6. | 7th |
| V = 2 | P. | x | CC | M. | PT | Numer sekwencji | |||||||||||||||||||||||||
| Znacznik czasu (w jednostkach częstotliwości próbkowania) | |||||||||||||||||||||||||||||||
| Identyfikator źródła synchronizacji (SSRC) | |||||||||||||||||||||||||||||||
| Identyfikatory źródła wspomagającego (CSRC) (opcjonalnie) | |||||||||||||||||||||||||||||||
| Przedłużenie nagłówka (opcjonalnie) | |||||||||||||||||||||||||||||||
- Wersja (V), 2 bity
- Status wersji protokołu RTP
- Dopełnienie (P), 1 bit
- Bit wypełnienia jest ustawiany, jeśli na końcu pakietu dołączony jest jeden lub więcej bajtów wypełnienia, które nie należą do rzeczywistej zawartości danych (ładunku danych). Ostatni bajt wypełniający wskazuje liczbę dodanych bajtów wypełniających. Bajty wypełniające są wymagane tylko wtedy, gdy kolejne protokoły wymagają określonego rozmiaru bloku, np. B. Algorytmy szyfrowania.
- Rozszerzenie (X), 1 bit
- Bit rozszerzenia jest ustawiany, gdy do nagłówka dodawany jest dokładnie jeden nagłówek rozszerzenia.
- Liczba CSRC (CC), 4 bity
- Licznik CSRC wskazuje liczbę identyfikatorów CSRC.
- Znacznik (M), 1 bit
- Bit znacznika jest zarezerwowany do zastosowań specyficznych dla aplikacji. Służy do identyfikacji zdarzeń m.in. B. wystąpienie końca klatki sekwencji wideo.
- Typ ładunku (PT), 7 bitów
- To pole opisuje format przesyłanej treści RTP, tj. danych użytkownika (ładunku).
| Nr ładowności | Kodek | Audio Video | Częstotliwość próbkowania | Kanały audio | RFC |
| 0 | PCMU | A. | 8 kHz | 1 | [RFC3551] |
| 3 | GSM | A. | 8 kHz | 1 | [RFC3551] |
| 4. | G723 | A. | 8 kHz | 1 | [RFC3551] |
| 5 | DVI4 | A. | 8 kHz | 1 | [RFC3551] |
| 6. | DVI4 | A. | 16 kHz | 1 | [RFC3551] |
| 7th | LPC | A. | 8 kHz | 1 | [RFC3551] |
| ósmy | PCMA | A. | 8 kHz | 1 | [RFC3551] |
| 9 | G.722 | A. | 8 kHz | 1 | [RFC3551] |
| 10 | L16 | A. | 44,1 kHz | 2 | [RFC3551] |
| 11 | L16 | A. | 44,1 kHz | 1 | [RFC3551] |
| 12. | QCELP | A. | 8 kHz | 1 | [RFC3551] |
| 13th | CN | A. | 8 kHz | 1 | [RFC3389] |
| 14 | MPA | A. | 90 kHz | 1 | [RFC3551, RFC2250] |
| 15. | G.728 | A. | 8 kHz | 1 | [RFC3551] |
| 16 | DVI4 | A. | 11,025 kHz | 1 | |
| 17. | DVI4 | A. | 22,05 kHz | 1 | |
| 18. | G.729 | A. | 8 kHz | 1 | [RFC3551] |
| 25. | CelB | V | 90 kHz | [RFC3551, RFC2029] | |
| 26 | JPEG | V | 90 kHz | [RFC3551, RFC2435] | |
| 28 | nv | V | 90 kHz | [RFC3551] | |
| 31 | H.261 | V | 90 kHz | [RFC3551, RFC2032] | |
| 32 | MPV | V | 90 kHz | [RFC3551,2250] | |
| 33 | MP2T | AV | 90 kHz | [RFC3551,2250] | |
| 34 | H.263 | V | 90 kHz | [RFC3551,2250] | |
| 96-127 | dynamiczny | [RFC3551] |
- Numer sekwencyjny, 16-bitowy
- Numer sekwencyjny jest zwiększany dla każdego dodatkowego pakietu danych RTP. Numer startowy jest wybierany losowo i nie można go z góry ustalić. Odbiorca może użyć numeru sekwencyjnego, aby przywrócić kolejność pakietów i rozpoznać utratę pakietów.
- Znacznik czasu, 32-bitowy
- Znacznik czasu wskazuje czas pierwszego bajtu pakietu danych RTP. Punkt w czasie musi być oparty na zegarze ciągłym i liniowym, aby zapewnić synchroniczność strumienia i określić różnice czasu pracy na ścieżce transmisji (jitter). Podobnie jak numer sekwencyjny, wartość początkowa powinna być wartością losową. Kolejne pakiety mogą mieć ten sam stempel czasowy, jeśli przesyłane dane to m.in. B. należą do tego samego pojedynczego obrazu ("klatki wideo"). Pakiety z kolejnymi numerami sekwencyjnymi mogą również zawierać niekolejne znaczniki czasu, jeśli takie jak B. w przypadku skompresowanego wideo kolejność transmisji i odtwarzania nie zgadza się.
- SSRC, 32-bitowy
- To pole służy do identyfikacji źródła synchronizacji. Wartość jest ustalana losowo, dzięki czemu dwa źródła w sesji RTP nie mają tego samego numeru identyfikacyjnego.
- Lista CSRC, od 0 do 15 pól, każde 32 bity
- Lista CSRC służy do identyfikacji źródeł zawartych w danych użytkownika RTP. Liczba pól listy jest określona w polu CC. Jeśli jest więcej niż 15 źródeł, identyfikuje się tylko 15. Lista jest wstawiana przez miksery, które wykorzystują zawartość pola SSRC zaangażowanych źródeł.
literatura
- Ulrich Trick, Frank Weber: SIP, TCP/IP i sieci telekomunikacyjne. Wydanie drugie, Oldenbourg, 2005, ISBN 978-3-486-57796-9 .
Normy i standardy
Magistrala:
- RFC 1889 — RTP: protokół transportowy dla aplikacji czasu rzeczywistego [1996, przestarzałe]
-
RFC 3550 — RTP: protokół transportowy dla aplikacji czasu rzeczywistego [2003, obecnie]
- Dodatek RFC 5506 — obsługa protokołu RTCP (Reduced-Size Real-Time Transport Control Protocol): możliwości i konsekwencje [2009, obecnie]
- Dodatek RFC 5761 — Multipleksowanie pakietów danych RTP i pakietów kontrolnych na jednym porcie [2010, obecnie]
- Dodatek RFC 6051 — Szybka synchronizacja przepływów RTP [2010, obecnie]
- Suplement do RFC 7022 — Wytyczne dotyczące wyboru nazw kanonicznych (CNAME) protokołu RTP Control Protocol (RTCP) [2013, obecnie]
- Dodatek RFC 7160 — obsługa wielu częstotliwości taktowania w sesji RTP [2014, aktualne]
- Dodatek RFC 7164 - RTP i sekundy przestępne [2014, obecnie]
- Dodatek RFC 8083 — Kontrola przeciążenia multimediów: wyłączniki dla sesji Unicast RTP [2017, obecnie]
Linia oddziału:
- RFC 1890 — profil RTP dla konferencji audio i wideo z minimalną kontrolą [1996, przestarzały]
-
RFC 3551 — profil RTP dla konferencji audio i wideo z minimalną kontrolą [2003, obecnie]
- Dodatek RFC 7007 — aktualizacja usuwająca DVI4 z zalecanych kodeków dla profilu RTP dla konferencji audio i wideo z minimalną kontrolą (RTP / AVP) [2013, obecnie]
linki internetowe
- Profil danych kontrolnych RTP (RTP / CDP) dla aplikacji maszyna-maszyna
Indywidualne dowody
- ↑ Finley Breese: Komunikacja szeregowa przez RTP/CDP . BoD - Książki na żądanie, 2010, ISBN 9783839184608 , s. [1] .