360 likes | 594 Views
Reaalaja andmeedastus. RTCP, RTP, RTSP,. Sisukord. Reaalaja andmeedastus Stream andmeedastus Protokollid rakendused. vastuvõtja. saatja. Reaalaja andmeedastus. Paketid peavad jõudma kohale kindlal ajal Kui ei jõua, siis vastu ei võeta. vastuvõtja. saatja. Andmevoog (s tream ).
E N D
Reaalaja andmeedastus RTCP, RTP, RTSP, ...
Sisukord • Reaalaja andmeedastus • Stream andmeedastus • Protokollid • rakendused
vastuvõtja saatja Reaalaja andmeedastus • Paketid peavad jõudma kohale kindlal ajal • Kui ei jõua, siis vastu ei võeta
vastuvõtja saatja Andmevoog (stream) • Paketid peavad jõudma kohale kindlal ajal kindlas järjestuses • Kui ei jõua, siis vastu ei võeta 9 8 7 6 5 4 2 1 3
vastuvõtja saatja Värin (jitter), sünkroniseerimine • Värin – lubatud saabumisaja erinevus • Sünkroniseerimine – tegevuste ajastamine
7 Rakenduse 6 Esituse 5 Sessiooni 4 Transpordi 3 Võrgu 2 Andmekanali 1 Füüsiline adresseerimine • Transpordi kihi peal • Transpordi aadress • IP/port Pordi number IP aadress
Protokollid • Reaalaja transpordi protokoll – RTP – Real-time Transport Protocol – reaalaja andmete transpordiks • Reaalaja transpordi juhtprotokoll – RTCP – RTP Control Protocol – reaalaja andmete transpordi juhtimiseks • Reaalaja andmevoo protokoll – RTSP – Real-time Streaming Protocol – reaalaja andmevoo transpordiks
RTP • RTP ei reserveeri ressursse ega garanteeri teenuse kvaliteeti • Andmeedastust juhib RTCP • RTP ja RTCP on sõltumatud allasuvatest transpordi ja võrgu kihtidest.
RTP • RTP pakub lõpp-punktide vahelist reaalaja karakteristikutega andmete edastuse teenust • järjestamine ajatemplid, edastuse jälgimine • UDP peal, selle kontrollsumma ja multipleksimise teenuste pärast • RTP võib edastada andmeid paljudesse sihtkohtadesse, kui allasuv võrk pakub multisaadet • Kui allasuv võrk pakub teenuse kvaliteeti vm, siis RTP-ga on võimalik seda. • RTP: kannab reaalaja omadustega andmeid • Payload format määrab, kuidas seda tüüpi andmeid nagu audio või video kodeerimine (encoding) kantakse RTP-s.
RTCP • RTCP: jälgib teenuse kvaliteeti, annab edasi infot sessioonis osalejate kohta – seda funktsionaalsust võib täita eraldi sessiooni juhtimise protokoll.
Näide: lihtne multisaate helikonverents • 2 porti: 1 audio andmete ja 1 juhtimiseks (RTCP) • Audio andmed saadetakse väikeste plokkidena (näiteks 20 ms) Igal plokil on RTP päis, milles kirjas kodeerimisviis. (PCM, ADPCN või LPC ..) RTP pakett pannakse UDP paketi sisse. • RTP päises on ploki järjenumber ja sünkroniseerimise info
Näide 2: heli ja video konverents • 2 eraldi RTP sessiooni, kumbalegi portide paar • Vastuvõtja saab valida heli ja/või video vahel • Sünkroonne audio ja video mängimine on võimalik RTCP kaudu mõlema sessiooni kohta.
Parameetrid (1) • RTP pakett – andmepakett, mis koosneb fikseeritud RTP päisest, võibolla tühjast kaassaatjate nimekirjast ja payload andmetest • RTCP pakett – fikseeritud päisest nagu RTP paketil, struktuursed elemendid vastavalt paketi tüübile
Parameetrid (2) • Port – hosti transpordi protokolli jaoks sihtkoha abstraktsioon, väiksed positiivsed täisarvud. (iga pordi küljes võib olla teenus) • Transpordi aadress – võrguaadressi ja pordi numbri kombinatsioon, mis tähistab transpordi kihi lõpp-punkti • RTP sessioon – osalejate vaheline assotsiatsioon, mis peab sidet RTP-ga
Parameetrid (3) • Sünkroniseerimise allikas (syncronization source) – sama ajastus ja kaadrite järjestus. SSRC id on unikaalne selle RTP sessiooni jaoks – saatja (signaali allikas) • Kaasnev sünkroniseerimise allikas – (Contributing syncronization source CSRC) – CSRC id on unikaalsed selle RTP sessiooni jaoks – mikseri kombineeritud sessiooni 1 saatja • Monitor – rakendus, mis võtab vastu RTCP pakette RTP sessioonis osalejatelt, hindab vastuvõtjate vastuvõtu kvaliteeti, vigade analüüsi, ja statistikat.
Parameetrid (4) • Mixer – vahepealne süsteem, mis võtab vastu RTP pakette allika(te)lt, võibolla muudab andmete formaati, ja kombineerib paketid mingil viisil ja saadab edasi uue RTP paketi. Loob oma ajastuse kombineeritud voole. Uue voo SSRC on mixer. • Translaator – vahepealne süsteem, mis edastab RTP pakette ilma SSRC muutmata.
Ajamärgise vorming • Absoluutne aeg kasutades NTP (Network Time Protocol) ajatemplit. • Sekundite arv alates 1. Jaanuar 1900 0h +00:00 GMT. • 64-bitine märgita fikseeritud komaga arv. Täisarvu osa esimesed 32 b ja murdosa viimased 32 b. Kasutatakse ka kompaktset formaati: keskmised 32 b, st 16 täisosa ja 16 murdosa jaoks.
RTP paketi päis 0 1 2 3 01234567890123456789012345678901 V=2 P X CC M PT Järje nr (seq number) Ajamärgis (timestamp) Syncronization source (SSRC) id Contributing source (CSRC) id
RTP paketi päis (2) • V versioon – 2 bitti – RTP versioon. • V=2 – RFC1889 • V=1 – RTP esimene draft • V=0 – “vat” audio tool, initial protocol implementation • P – 1 bit – padding – täiteks lisatud • P=1 – paketi lõpus on lisatud 1 või mitu baiti, mis ei kuulu andmete hulka – viimases baidis on kirjas, mitu baiti on padding • P=0 – lisabitte ei ole • X – 1 bit – extension • X=1 – päisele järgneb veel 1 kindla formaadiga päis • CSRC count (CC) – 4 bitti • Näitab, mitu CSRC identifikaatorit järgneb päisele • M – 1 bit – marker – mõeldud teatud sündmuste nagu kaadri piiride vm märkimiseks pakettide voos.
RTP paketi päis (3) • PT – 7 bitti payload type - määrab payload tüübi ja rakenduse, mis seda andmevoogu kasutab • Järjenumber – 16 bitti – RTP andmepakettide järjestamiseks. Algnumber on juhuslikult valitud. Järjenumber pannakse paketile saatjas ja vastuvõtja võib seda kasutada pakettide kao avastamiseks ja pakettide järjekorda seadmiseks. • Ajamärgis – 32 bitti – RTP andmepaketi esimese baidi sampling hetk. Aeg kasvab monotoonselt ja ajas lineaarselt. Kasutatakse sünkroniseerimiseks ja värina (jitter) arvutamiseks. Kella täpsus peab olema piisav pakettide saabumise värina mõõtmiseks, sõltub ka payload tüübist, formaadist. Algne ajamärgis on juhuslik arv. Mitu järjestikust RTP paketti võivad olla sama ajamärgisega, kui nad on loodud loogiliselt samal ajahetkel
RTP paketi päis (4) • SSRC – 32 bitti – samas RTP sessioonis ei tohi olla mitu sama id-ga sünkroallikat. Kuigi SSRC id arvutamise algoritmi tõenäosus leida mitu sama SSRC id-d on väike, peab RTP rakendus olema võimeline samu id-si avastama ja lahendama. Kui allika transpordi aadress muutub, siis valib ta uue SSRC id. • CSRC list – 0-15 tk, 32 bitti iga – arv on kirjas CC (CSRC Count) väljal.
Reaalaja transpordi juhtprotokoll • RTCP • Juhtpakettide perioodiline saatmine sessioonis osalejatele kasutades andmepakettidega sama edastusmehhanismi.
RTCP funktsioonid • Pakkuda andmeedastuse kvaliteedi kohta tagasisidet. Kasulik adaptiivsel kodeerimisel või võrguteenuse pakkujal võrgu probleeme diagnoosida. • RTP allika id nim CNAME kanooniline nimi. Vastuvõtjad vajavad CNAME osalejate jälgimiseks ja kui sessioonis on mitu andmevoogu, siis nende osalejatega seostamiseks, näiteks audio ja video sünkroniseerimiseks • iga osaleja peaks saatma RTCP pakette kõikidele osalejatele, iga osaleja saaks sõltumatult jälgida teisi osalejaid • Vähima vajaliku sessiooni juhtimise info edasi andmine, näiteks osaleja id näitamine kasutajaliidesel. • Funktsioonid 1-3 on kohustuslikud RTP kasutamisel. RTP rakendused peaks võimaldama kasutada mutlisaadet
RTCP pakett if encrypted: random 32-bit integer | |[------- packet -------][----------- packet -----------][-packet-] | | receiver reports chunk chunk V item item item item -------------------------------------------------------------------- |R[SR|# sender #site#site][SDES|# CNAME PHONE |#CNAME LOC][BYE##why] |R[ |# report # 1 # 2 ][ |# |# ][ ## ] |R[ |# # # ][ |# |# ][ ## ] |R[ |# # # ][ |# |# ][ ## ] -------------------------------------------------------------------- |<------------------ UDP packet (compound packet) --------------->| #: SSRC/CSRC
RTCP pakett (2) • SR – sender report – sessiooni saatjad saadavad raporti oma saatmise ja vastuvõtmu statistika • RR – receiver report – kes pole aktiivsed saatjad, raport • SDES – Source description – allika kirjeldus, sh CNAME • BYE – sessioonis osalemise lõpetamine • APP – application specific functions
RTCP paketi tüübid • RTCP paketi tüübid • SR sender report 200 • RR receiver report 201 • SDES source description 202 • BYE goodbye 203 • APP application-defined 204 • ...
SDES • END end of SDES list 0 • CNAME canonical name 1 • NAME user name 2 • EMAIL user's electronic mail address 3 • PHONE user's phone number 4 • LOC geographic user location 5 • TOOL name of application or tool 6 • NOTE notice about the source 7 • PRIV private extensions 8
RTCP saatja raport 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P| RC | PT=SR=200 | length | header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of sender | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | NTP timestamp, most significant word | sender +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ info | NTP timestamp, least significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RTP timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sender's packet count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sender's octet count | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_1 (SSRC of first source) | report +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block | fraction lost | cumulative number of packets lost | 1 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extended highest sequence number received | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | interarrival jitter | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | last SR (LSR) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay since last SR (DLSR) | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_2 (SSRC of second source) | report +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block : ... : 2 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | profile-specific extensions | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RTCP vastuvõtja raport 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P| RC | PT=RR=201 | length | header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of packet sender | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_1 (SSRC of first source) | report +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block | fraction lost | cumulative number of packets lost | 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extended highest sequence number received | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | interarrival jitter | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | last SR (LSR) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay since last SR (DLSR) | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_2 (SSRC of second source) | report +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block : ... : 2 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | profile-specific extensions | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RTP turvalisus • Autentimine ja terviklikkus – madalama taseme protokollidega tulevikus • Konfidentsiaalsus – ainult õiged vastuvõtjad saaks lugeda vastuvõetud pakette. Saavutatakse andmete krüptimisega
RTSP • Rakendustaseme protokoll reaalaja omadustega andmete edastuse juhtimiseks. • Töötab RTP, UDP, multisaate UDP ja TCP peal. • RTSP sessioon – täielik RTSP tehing, kus klient seab üles pideva meediavoo transpordi mehhanismi (SETUP), alustab voogu käsuga PLAY või RECORD ja lõpetab meediavoo käsuga TEARDOWN
RTSP omadused • Laiendatav – uusi parameetreid ja meetodeid saab lisada • Analüüsitav – HTTP ja MIME analüsaatorid saavad RTSP-d analüüsida • Turvaline – RTSP taaskasutab veebi turvamehhanisme • Transpordist sõltumatu – UDP (rfc768), RDP (rfc1151 – vähe kasutatav) või TCP (rfc793) • Multiserver võimalusega – meediavood võivad asuda erinevatel serveritel. Klient loob ühenduse kõikide vajalike serveritega. Sünkroniseerimine tehakse transpordi kihil • Transpordi meetod kliendi ja serveri vahel kokku lepitav
RTSP meetodid • DESCRIBE – presentatsiooni kirjeldus • ANNOUNCE – kirjelduse uuendamine • SETUP – sessioni seadmiseks või sessiooni ajal transpordi parameetrite muutmiseks • PLAY – server hakkab saatma andmeid • PAUSE – ajutiselt andmevoo edastamise katkestamine • TEARDOWN – andmevoo edastamise lõpetamine ja ressursside vabastamine • GET_PARAMETER – presentatsiooni andmevoo mingi parameetri väärtuse saamine • SET_PARAMETER – • REDIRECT – kliendi ümbersuunamiseks teise serveri juurde • RECORD – server salvestab presentatsiooni
RTSP turvalisus • Sarnane HTTP serverile • Lisaks • Teenuse blokeerimise rünnak (Denial-of-service attack) – SETUP käsuga saab määrata vastuvõtjate IP aadresse. RTSP server peaks klientide id kontrollima • Sessiooni kaaperdamine – kui klient arvab ära RTSP sessiooni id, võib sellega mõjutada sessioonis osalejaid • Autentimine – turvalise andmevoo kliente autentida • Andmevoo edastamise küsimustega tegelevad alumised protokollid RTP, IP multisaade, RSVP, IGMP • Kahtlase päringu vastus võiks olla veateade 403 Forbidden
Rakendused • Videokonverents • Video on Demand • ...
RFC • RFC1889 RTP: A Transport Protocol for Real-Time Applications. Audio-VideoTransport Working Group, H. Schulzrinne, S. Casner, R. Frederick, V.Jacobson. January 1996. (Format: TXT=188544 bytes) (Status: PROPOSEDSTANDARD) • RFC2326 Real Time Streaming Protocol (RTSP). H. Schulzrinne, A. Rao, R.Lanphier. April 1998. (Format: TXT=195010 bytes) (Status: PROPOSEDSTANDARD)