Kapittel 9 · Datakommunikasjon

Multimedia Networking

Hvordan lyd og video reiser over et nett som egentlig bare lover «best effort» — og hva som skjer når pakkene ikke kommer frem i tide.

Det store bildet

En live-konsert gjennom postsystemet

Internett ble designet for data som tåler forsinkelse. Multimedia krever noe helt annet — og hele kapittelet handler om hvordan vi fikser det gapet.

Tenk deg at du skal holde en live-konsert, men musikerne sitter spredt geografisk — og den eneste måten å kommunisere på er postsystemet. Hvert noteark du sender kommer frem, men noen brev bruker én dag, andre bruker fem. For vanlig korrespondanse er det uproblematisk. Men for musikerne er det katastrofe: hvis trommenoten ankommer tre takter for sent, høres hele stykket forferdelig ut. Det er problemet med multimedia over Internett. Nettet garanterer bare «best effort» — pakkene kommer nok frem til slutt, men ingen lover når. For e-post og nettsider spiller det ingen rolle. For video og tale er timing alt.

Løsningen er overraskende elegant: vi kan ikke fikse nettverket (det vil alltid ha variabel forsinkelse), men vi kan bygge smarte mekanismer i endepunktene. Den viktigste idéen er playout-bufferen — en mellomlager hos mottakeren som samler opp pakker og spiller dem av med jevn rate, selv om de ankom med ujevne mellomrom. Det er som om konsertdirigenten venter med å starte stykket til tilstrekkelig mange noteark har kommet frem, slik at musikerne alltid har neste note klar.

Kilde (kamera/mikrofon) Encoder MPEG / PCM Internett variabel delay jitter Playout- buffer jevn rate ut Skjerm / høyttaler Bufferen absorberer jitter: ujevne pakker inn → jevn avspilling ut
Multimedia-pipeline: kilden koder lyd/video, nettverket tilfører variabel forsinkelse (jitter), og playout-bufferen hos mottakeren jevner ut variasjonen slik at avspillingen blir jevn.
Hvorfor Netflix plutselig blir pixlete

Når du ser Netflix og bildet plutselig blir pikselete, er det fordi DASH (Dynamic Adaptive Streaming over HTTP) har byttet til lavere kvalitet fordi nettverket ble tregere. Klienten din ber om videosegmenter i den oppløsningen den tror nettverket klarer akkurat nå. Blir det bedre igjen? Da bytter den tilbake til HD. Alt dette skjer automatisk, uten at du trykker på noe — og det er et direkte resultat av teknikkene i dette kapittelet.

Kapittelet dekker hele spekteret: fra hvordan analog lyd og video blir til en bitstrøm (sampling, komprimering, CBR vs. VBR), via streaming-arkitekturer (HTTP/TCP mot UDP, DASH), til de spesielle utfordringene med sanntidssamtaler (VoIP). Der lærer vi at forsinkelse over 400 ms ødelegger en telefonsamtale, at jitter er farligere enn gjennomsnittlig forsinkelse, og at smarte teknikker som FEC (Forward Error Correction) og interleaving lar oss gjenopprette tapte pakker uten å vente på retransmisjon. Til slutt møter vi RTP — protokollen som gir multimedia-pakker det UDP mangler: tidsstempler, sekvensnummer og type-identifikasjon.

Flashcards

Rask repetisjon

Åpne spørsmål i tilfeldig rekkefølge. Klikk kortet for å snu — bruk ← / → for å bla, mellomrom for å snu, R for å shuffle.

Spørsmål

 

Klikk eller mellomrom for å vise svar
Svar
 
1 / 1

Test deg selv

Sjekk om du har forstått de viktigste konseptene som beskrives i kapittelutdraget.

Spørsmål 1 · Lett
Hva er forskjellen mellom streaming og full nedlasting?
Streaming starter avspilling før hele filen er mottatt ved å bruke fortløpende buffring.
Spørsmål 2 · Middels
Hva er playout-bufferen, og hva er dens rolle?
Playout-buffer glatter ut ujevn pakkeankomst slik at avspilling blir jevnere.
Spørsmål 3 · Vanskelig
Hva er avveiingen ved å øke playout-bufferstørrelsen?
Større buffer tåler mer jitter, men øker opplevd ende-til-ende-forsinkelse.
Spørsmål 4 · Middels
Hva er jitter i nettverkskontekst?
Jitter er variasjon i pakkeforsinkelse, ikke nødvendigvis høy gjennomsnittsforsinkelse.
Spørsmål 5 · Lett
Hva er DASH, og hvordan velger klienten bitrate?
DASH (Dynamic Adaptive Streaming over HTTP) bruker flere versjoner av samme video, hver komprimert med ulik bitrate. Klienten velger dynamisk hvilken versjon den henter, ut fra tilgjengelig båndbredde og buffer, slik at avspillingen kan fortsette uten å stoppe.
Spørsmål 6 · Middels
Hva er en CDN, og hva er fordelen for multimedia?
CDN reduserer forsinkelse og backbone-belastning ved å servere media fra nære edge-noder.
Spørsmål 7 · Vanskelig
Hva er RTP-sekvensnummeret, og hva brukes det til?
RTP-sekvensnumre brukes til å oppdage pakketap og håndtere omrekkefølge i mottakeren. Mottakeren kan se hull i sekvensnumre og vite at en pakke er tapt, eller re-sortere pakker som ankom i feil rekkefølge. Sekvensnummer øker med én for hver RTP-pakke.
Spørsmål 8 · Lett
Hva er RTP-tidsstempelet, og hva brukes det til?
Tidsstempelet angir samplingsøyeblikket for første byte i RTP-pakken. Mottakeren bruker det blant annet til å fjerne jitter og for synkron avspilling. Klokken tikker videre med konstant rate også når kilden er inaktiv.
Spørsmål 9 · Middels
Hva sier utdraget om forsinkelse i talesamtale (ca. 150 ms og 400 ms)?
Forsinkelse under omtrent 150 ms merkes knapt; mellom 150 og 400 ms kan være akseptabelt men ikke ideelt; over omtrent 400 ms hindres interaktiviteten i samtalen tydelig.
Spørsmål 10 · Vanskelig
Hva skjer med talesamtalen når forsinkelsen overstiger 400 ms?
Ved svært høy forsinkelse begynner deltakere å snakke i munnen på hverandre og opplever dårlig flyt.
Spørsmål 11 · Lett
Hvorfor brukes UDP fremfor TCP for sanntidsmedia?
UDP unngår retransmisjonslatens og lar applikasjonen styre taps- og tidsstrategi direkte.
Spørsmål 12 · Middels
Hvorfor kan TCP være problematisk for sanntids- eller strømmeapplikasjoner?
TCPs pålitelige dataoverføring og retransmisjoner kan gi betydelig ekstra forsinkelse som er uheldig for sanntidsinnhold. For tapte talepakker som allerede har passert playout-fristen, hjelper retransmisjon lite.
Spørsmål 13 · Vanskelig
Hva er FEC (Forward Error Correction) i mediestrømmer?
FEC legger til redundante data (f.eks. XOR av flere originalpakker, eller en lavbitratespor lagt ved siden av hovedsporet) slik at mottakeren kan rekonstruere eller skjule tap uten å be om retransmisjon. Det øker typisk båndbredde og kan øke playout-forsinkelse avhengig av variant.
Spørsmål 14 · Middels
Hva er interleaving i mediestrømmer?
Interleaving omstokker rekkefølgen på mediepakker slik at bursttap — der mange pakker tapes på rad — spres over tid ved avspilling. I stedet for å miste f.eks. 50 ms sammenhengende lyd, mistes 5 ms lyd spredt over 500 ms, noe som er langt mindre hørbart. Ulempen er økt forsinkelse fordi klienten må vente på pakker som er spredt ut.
Spørsmål 15 · Lett
Hva bør en DASH-klient gjøre når nettkapasiteten synker?
Ved redusert kapasitet bør klienten senke bitrate tidlig for å unngå avspillingsstopp.
Spørsmål 16 · Middels
Begrenser RTP seg til unicast?
Nei. RTP-pakker kan også sendes over én-til-mange og mange-til-mange multicast-trær. I en slik økt bruker ofte alle sendere samme multicast-gruppe for RTP-strømmene sine.