Computerarchitectuur en netwerken – 14 – Multimedia in netwerken Lennart Herlaar
20 oktober 2015
Inhoud Multimedia in netwerken Quality of Service Streaming en buffering Protocollen (RTSP, RTP) Scheduling en policing
Lennart Herlaar
Computerarchitectuur en netwerken – 14
1
Multimedia in Netwerken Streamen van audio/video: afspelen gaat net zo snel als verzenden (real-time) en gelijktijdig opgeslagen (videotheek): voor- en achteruitspoelen live audio/video: snelheid bijhouden; vaste vertraging is OK interactief (bijv. telefoon, videoconferentie): weinig vertraging Multimedia toepassingen: netwerk audio en video (“continue media”)
QoS (Quality of Service) netwerk geeft de toepassing een gewenst niveau van performance/kwaliteit.
Lennart Herlaar
Computerarchitectuur en netwerken – 14
2
Quality of Service Timing vertraging (delay): tijd tussen verzenden en afspelen moet aan maximum gebonden zijn vertragingsvariatie (jitter) jitter geeft schok- en jankeffecten wordt veroorzaakt door o.a. propagation delay, queueing, TCP congestion control en error correctie
Bandbreedte moet overeenkomen met te verzenden data evt. data aanpassen aan beschikbare bandbreedte
Pakketverlies data hoeft i.h.a. niet perfect aan te komen kleine verliezen zijn acceptabel foutcorrectie alleen als er genoeg tijd is bij multimedia is het vaak beter om een pakket verloren te laten gaan dan een hertransmissie te doen
Lennart Herlaar
Computerarchitectuur en netwerken – 14
3
Interactie bij streaming van opgeslagen media Stop (pause), start, snelspoelen (als videorecorder) Moet binnen enkele seconden reageren Initiële vertraging mag iets groter zijn Protocollen: RTP (Real-Time Protocol) voor versturen van de data RTSP (Real-Time Streaming Protocol) voor interactie commando’s
Lennart Herlaar
Computerarchitectuur en netwerken – 14
4
RTSP = ‘afstandsbediening’ Begin met omschrijving te sturen: XML bestand Daarna besturingscommando’s (PLAY, PAUSE etc.) RTSP gaat via een aparte TCP connectie (out-of-band)
Lennart Herlaar
Computerarchitectuur en netwerken – 14
5
RTSP media omschrijving
Twister <session>
<switch> RTSP is een state-full protocol
Lennart Herlaar
Computerarchitectuur en netwerken – 14
6
RTSP commando’s C: SETUP rtsp://audio.example.com/twister/audio RTSP/1.0 Transport: rtp/udp; compression; port=3056; mode=PLAY S: RTSP/1.0 200 1 OK Session: 4231 C: PLAY rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 Range: npt=0C: PAUSE rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 Range: npt=37 C: TEARDOWN rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 S: RTSP/1.0 200 1 OK Session: 4231 Lennart Herlaar
Computerarchitectuur en netwerken – 14
7
Buffering In principe moet verzender even snel aanleveren als afspelen nodig heeft Om variaties in het aanbod op te vangen wordt meestal gebufferd: De cliënt slaat de ontvangen data eerst in een buffer op en speelt het enige seconden later af. Het verzenden kan via UDP – juiste snelheid – error correctie als tijd over is TCP – flow- en congestion control – error correctie client buffer
aankomstsnelheid = x(t)
uitvoersnelheid =d
van netwerk
naar decompressie en afspelen prefetched video
Lennart Herlaar
Computerarchitectuur en netwerken – 14
8
constant bit rate video transmissie
client video ontvangst
variablele netwerk vertraging
constant bit rate video afspelen bij client
gebufferd video
Cumulatieve data
Buffering
client afspeel vertraging
Lennart Herlaar
Computerarchitectuur en netwerken – 14
tijd
9
Internet telefoon Telefoonspraak heeft 64 kbps nodig (8kBps) Vertraging moet klein zijn: < 400 msec. Weinig buffering Stiltes hoeven niet verstuurd te worden Data wordt verstuurd in segmenten van 160 bytes per 20 msec (met compressie minder data) vertraging = 20msec + transmissietijd + propagatietijd + store-and-forward (queueing!) + buffering Variatie in propagatietijd veroorzaakt jitter Neem sequence nummer en/of timestamp in pakketten op RTP protocol bovenop UDP voegt deze info toe Pakketten worden op juiste tijdstip afgespeeld
Lennart Herlaar
Computerarchitectuur en netwerken – 14
10
Jitter wegwerken Iedere 20 msec wordt pakket verzonden Pakketten worden afgespeeld na vaste vertraging p = afspeeltijd met kleine vertraging, p’ met grotere vertraging packets
loss
packets generated packets received
playout schedule p-r playout schedule p' - r
time r p
Lennart Herlaar
p'
Computerarchitectuur en netwerken – 14
11
Vertraging schatten Als de pakketten een tijdstempel hebben kunnen we de vertraging van elk pakket berekenen (ti = tijdstempel, ri = ontvangsttijd, pi = afspeeltijd) vertraging = ri − ti Hieruit voortschrijdend gemiddelde en variantie berekenen di = (1 − u)di−1 + u(ri − ti ) vi = (1 − u)vi−1 + u|ri − ti − di | Voor eerste pakket na stilte: pi = ti + di + Kvi Latere pakketten met de juiste stap. Vergelijk met RTT berekening bij TCP Na iedere stilte kan een nieuwe vertraging gebruikt worden Wat te doen bij allereerste pakket? Lennart Herlaar
Computerarchitectuur en netwerken – 14
12
Pakketverlies Pakketverlies kan gecompenseerd worden door extra informatie te sturen Of door verliezen te verdelen Forward Error Correction (FEC) 1: Gebruik een pariteitspakket (= exclusive or): blok 1 blok 2 blok 3 blok 4 blok 5 parity
0 0 1 0 1 0
1 0 1 0 0 0
1 1 0 0 1 1
0 1 0 1 1 1
1 0 0 1 0 0
1 1 0 1 0 1
Als één pakket verloren gaat kan het gereconstrueerd worden Bij 1 extra pakket per n pakketten is de overhead 1/n Reconstructie kan pas plaatsvinden als het parity pakket binnen is. Lennart Herlaar
Computerarchitectuur en netwerken – 14
13
FEC 2 Voeg extra informatie toe met lagere kwaliteit Deze wordt met het volgende pakket meegestuurd Als een pakket verdwijnt gebruik dan de extra informatie uit het volgende pakket
Lennart Herlaar
Computerarchitectuur en netwerken – 14
14
Interleaving Bij interleaving geen extra informatie maar informatie verspreiden Als er een pakket verloren gaat dan kleine hikjes over grotere tijd in plaats van een grote hik maar wel meer vertraging
Lennart Herlaar
Computerarchitectuur en netwerken – 14
15
RTP RTP = Real-Time Transport Protocol Wordt normaal bovenop UDP gebruikt Voegt extra headers toe Wordt gebruikt alsof het in de transportlaag zit
Lennart Herlaar
Computerarchitectuur en netwerken – 14
16
RTP header Payload Type
Sequence Number
Timestamp
Synchronisation Source Identifier
Miscellaneous Fields
Payload type = wat voor soort codering Sequence number = volgnummer Timestamp = tijdstip van de eerste byte Synchronisation Source Identifier = unieke id van een stream
Lennart Herlaar
Computerarchitectuur en netwerken – 14
17
RTCP RTCP = Real-Time Control Protocol Wordt gebruikt om informatie over kwaliteit van de verbinding tussen verzender en ontvanger te versturen Ook voor synchronisatie van verschillende stromen
Lennart Herlaar
Computerarchitectuur en netwerken – 14
18
Quality of Service Alle vorige protocollen waren Best Effort De IP laag doet zijn best maar kan niets garanderen Je kunt ook niet vragen om betere kwaliteit In de toekomst waarschijnlijk betere protocollen nodig RSVP = reserveren van o.a. bandbreedte Differentiated Services gedifferentieerde garanties Integrated Services harde garanties
Lennart Herlaar
Computerarchitectuur en netwerken – 14
19
Voorbeeld 1 Telefoonverbinding (1Mbps) en FTP delen 1.5Mbps verbinding Pakketten van telefoon en FTP moeten verschillend behandeld worden Telefoonverbinding moet gegarandeerde bandbreedte hebben FTP kan genoegen nemen met wat over is
Lennart Herlaar
Computerarchitectuur en netwerken – 14
20
QoS principes Pakketten moeten geclassificeerd worden (Type-of-Service) Verschillende stromen moeten van elkaar geïsoleerd worden Een stroom mag niet meer gebruiken dan ervoor gereserveerd is (anders afknijpen) Als een stroom minder gebruikt dan mag de resterende capaciteit voor iets anders gebruikt worden Je kunt niet meer bandbreedte gebruiken dan er is: dus van tevoren reserveren (en evt. weigeren)
Lennart Herlaar
Computerarchitectuur en netwerken – 14
21
Priority Queue Gewoonlijk komen pakketten in router in uitgaande queue Pakketten die haast hebben kunnen hogere prioriteit krijgen Hogere prioriteitsqueue kan hele bandbreedte ‘kapen’
Lennart Herlaar
Computerarchitectuur en netwerken – 14
22
Priority Queue rood = hoge prioriteit
Lennart Herlaar
Computerarchitectuur en netwerken – 14
23
Round Robin/WFQ Bij Round Robin worden pakketten in verschillende categorieën ingedeeld Elke categorie gaat om de beurt (als er iets is)
Lennart Herlaar
Computerarchitectuur en netwerken – 14
24
Round Robin/WFQ Bij WFQ (Weighted Fair Queueing) krijgen verschillende categorieën verschillende gewichten Hogere prioriteiten komen vaker aan de beurt Als w het gewicht van een categorie is en W de som van alle gewichten dan krijgt die categorie tenminste w /W van de bandbreedte toegewezen
Lennart Herlaar
Computerarchitectuur en netwerken – 14
25
Token Bucket Token Bucket: mechanisme om snelheid van een stroom te regelen (toeritdosering) in het boek staat leaky bucket (lekkende emmer) Idee: een stroom heeft een maximale gemiddelde bandbreedte maar mag tijdelijk meer gebruiken (burst) Tijdens rustige perioden wordt een tegoed (tokens) opgebouwd dat voor een burst gebruikt mag worden
Lennart Herlaar
Computerarchitectuur en netwerken – 14
26
Parameters van bucket Gemiddelde snelheid (pakketten/sec of bytes/sec): wat je over een lange tijd mag gebruiken. De bucket krijgt per tijdsinterval een token, die staat voor een vaste hoeveelheid capaciteit (packets of bytes) Bijvoorbeeld 1 token = 10000 bytes en 1 token per 10 msec => 1MByte/sec Pieksnelheid: maximale snelheid die je gedurende een korte periode mag gebruiken als je genoeg tokens hebt: bijvoorbeeld 10MBytes/sec Maximale grootte van zo’n burst wordt bepaald door inhoud bucket
Lennart Herlaar
Computerarchitectuur en netwerken – 14
27
Token bucket + WFQ Als r tokens per seconde arriveren en bucket maximaal b tokens bevat dan kunnen per tijd t maximaal r · t + b pakketten verzonden worden. Queue: Als burst van b aankomt en uitgaande capaciteit is b R dan maximale wachttijd = R b Met WFQ: R · w /W
Lennart Herlaar
Computerarchitectuur en netwerken – 14
28
Samenvatting Multimedia toepassingen stellen nieuwe eisen aan het netwerk: Quality of Service om vertraging, jitter, bandbreedte en pakketverlies in de hand te houden
Verschillende protocollen voor het besturen van streaming (RTSP) het sturen van de media (RTP) het opzetten van sessies (SIP, zie boek)
Voor QoS kunnen we gebruik maken van policing (Leaky bucket/token bucket) prioriteiten in routers (Round robin/WFQ)
Lennart Herlaar
Computerarchitectuur en netwerken – 14
29