Hoe een gesprek in kleine pakketjes over het internet reist
VoIP, kort voor voice over internet protocol en ook IP-telefonie genoemd, is de manier waarop een telefoongesprek over het internet reist. Je laptop of telefoon knipt je stem in kleine datapakketten, meestal 50 per seconde, en geeft elk pakketje een nummer en een adres. De pakketjes gaan een voor een over het internet en delen de wegen met de data van alle anderen. De telefoon aan de andere kant zet ze weer op volgorde en speelt ze af als geluid. Sommige komen te laat en een paar komen nooit aan, dus die telefoon is erop gebouwd om dat op te vangen.
Paars: je stemLegenda
- Paars: je stem
- Grijze pakjes: de data van anderen
- Paarse lijn: je koperen pad
0 van 8 pakketjes op tijd gehoordkoperen pad, het hele gesprek vastgehouden
Klaar · van je laptop naar de bureautelefoon van je vriend
Druk op Spreek, of klik op je laptop, om je stem te versturen. Maak het internet druk om pakketjes te zien wachten en verdwijnen.Druk op Spreek, of tik op je laptop, om je stem te versturen. Maak het internet druk om pakketjes te zien wachten en verdwijnen.
Dezelfde straten. In de jaren 80 was één koperen pad het hele gesprek lang van jou.
Anatomie van een internetgesprek: je stem die nu als pakketjes een paar huizenblokken oversteekt, en in de jaren 80 als één koperen pad. De huizen en bomen zijn andere woningen aan dezelfde straten. De tekening is niet op schaal, en het gesprek is sterk vertraagd: één pakketje per halve seconde staat voor één per 20 ms.
-
Volg één gesprek
Druk op Gesprek afspelen en kijk mee, of scrol naar beneden: de tekening volgt je stap voor stap. Met Zelf proberen, onder de tekening, voer je je eigen gesprek.Druk op Gesprek afspelen en kijk mee, of ga met Volgende stap voor stap verder. Met Zelf proberen, onder de tekening, voer je je eigen gesprek.
-
Stap 1 van 6
Je laptop knipt je stem in pakketjes
Je belt een vriend vanaf je laptop. De microfoon zet je stem om in getallen, en elke 20 duizendsten van een seconde, geschreven als 20 ms, pakt de laptop het laatste stukje geluid in een pakketje. Dat zijn 50 pakketjes per seconde in elke richting, zolang je praat.
Waarom 20 ms, en niet langer?
Dat is de gebruikelijke lengte die de IETF vastlegt, de organisatie die de standaarden van het internet schrijft. Bij een langer pakketje gaat een kleiner deel op aan etiketten, maar elk pakketje zou vertraging toevoegen, en een verloren pakketje zou een groter gat slaan in wat je vriend hoort.
Een standaardgesprek meet je stem 8.000 keer per seconde en bewaart elke meting in één byte. Zo vult 20 ms geluid 160 bytes.
Bronnen: IETF RFC 3551: the audio and video profile for RTP (2003); ITU-T G.711: pulse code modulation of voice frequencies (1988)
-
Stap 2 van 6
Elk pakketje krijgt een nummer en een adres
Voordat een pakketje vertrekt, plakt de laptop er etiketten op. Het adres zegt waar het heen gaat. Een nummer zegt waar het in je gesprek hoort, en een tijdstempel zegt wanneer het geluid is opgenomen. Je router thuis stuurt het dan de straat op. Kijk hieronder in een pakketje.
Binnenin een pakketje
- 1Het adres
- 2Het deurnummer
- 3Het nummer en de tijd
- 4Je stem
40 van 200 bytes in elk pakketje zijn etiketten, geen stem
Waarom heeft een pakketje een nummer nodig?
Omdat het internet niet belooft dat pakketjes op volgorde aankomen, of zelfs maar aankomen. Het internetprotocol uit 1981 zegt het zonder omwegen: er zijn geen ontvangstbevestigingen en geen herhalingen, en niets houdt de pakketjes op volgorde.
Daarom voegen de regels voor spraak een nummer toe dat bij elk pakketje met één omhooggaat. De andere kant gebruikt het om te merken dat er een pakketje ontbreekt, en om de andere weer op volgorde te zetten.
Bronnen: IETF RFC 791: Internet Protocol (1981); IETF RFC 3550: RTP, a transport protocol for real-time applications (2003)
-
Stap 3 van 6
Pakketjes nemen verschillende wegen
Op elke hoek leest een router het adres en stuurt het pakketje verder in die richting, halte na halte. Niets houdt een weg vrij voor je gesprek. Je pakketjes delen de straten met de data van alle anderen, en een drukke router laat pakketjes in de rij wachten. Twee pakketjes die vlak na elkaar vertrekken, kunnen dus verschillende wegen nemen of verschillend lang wachten, en in de verkeerde volgorde aankomen.
Gaan de pakketjes van één gesprek echt uit elkaar?
Dat kan. Elke router beslist voor elk pakketje apart, zoals Paul Baran het in de jaren 60 bij RAND beschreef: de router bewaart het pakketje, berekent de beste route naar de bestemming en stuurt het naar de volgende halte op die route.
In de praktijk volgen de meeste pakketjes van één gesprek dezelfde weg, omdat routers die tussen meerdere wegen kunnen kiezen elk gesprek op één ervan houden. Toch loopt de volgorde af en toe mis, als een route verandert of een drukke router een paar pakketjes ophoudt. De IETF zegt het zo: het internet raakt af en toe pakketjes kwijt, gooit hun volgorde door elkaar en vertraagt ze met wisselende tijden.
Bronnen: RAND: Paul Baran and the origins of the internet (2018); IETF RFC 2992: analysis of an equal-cost multi-path algorithm (2000); IETF RFC 3550: RTP, a transport protocol for real-time applications (2003)
-
Stap 4 van 6
Je telefooncentrale geeft ze door
Bij een cloudtelefooncentrale draait de centrale zelf in een datacenter. Ze zette je gesprek op toen je het nummer koos. Veel centrales laten ook de stem door het datacenter lopen, om die met het gewone telefoonnet te verbinden of om het gesprek op te nemen. Van daar gaan je pakketjes weer de straat op, naar het kantoor van je vriend.
Wat deed de centrale voordat je iets zei?
Ze zette het gesprek op. Je laptop vroeg de centrale om je vriend te bellen, de centrale vond de telefoon van je vriend en liet die overgaan, en de twee kanten spraken af hoe ze de stem zouden versturen. Die berichten volgen SIP, het Session Initiation Protocol, dat de IETF in 2002 publiceerde.
Het opzetten kost een handvol berichten. Daarna reist de stem zelf in de pakketjes die je hier volgt.
Bronnen: IETF RFC 3261: SIP, the Session Initiation Protocol (2002)
-
Stap 5 van 6
De andere kant zet ze weer op volgorde
De bureautelefoon van je vriend heeft een bakje met een plek voor elk nummer. Elk pakketje wacht op zijn eigen plek, en de telefoon speelt ze om de beurt af, één elke 20 ms, vanaf een ogenblik nadat het eerste is aangekomen. Dat ogenblik geeft een laat pakketje tijd om bij te benen. Pakketje 4 kwam vóór pakketje 3 aan, en je vriend hoort er niets van.
Hoe lang kan de telefoon het zich veroorloven te wachten?
Niet lang. Elke duizendste van een seconde in het bakje komt bovenop de vertraging van je mond tot het oor van je vriend, en telefonie-ingenieurs proberen die hele vertraging onder 150 ms te houden. Langer wachten zou meer late pakketjes opvangen, maar het gesprek zou traag aanvoelen en jullie zouden door elkaar praten.
Ingenieurs noemen die wachtplek een jitterbuffer. Jitter is het woord voor pakketjes die met ongelijke tussenpozen aankomen, en de regels voor spraak via internet vertellen elke kant hoe ze die moet meten.
Bronnen: ITU-T G.114: one-way transmission time (2003); IETF RFC 3550: RTP, a transport protocol for real-time applications (2003)
-
Stap 6 van 6
Te laat of kwijt: de telefoon vult het gat
Een router met een te lange rij gooit pakketjes weg. Pakketje 7 komt nooit aan. Pakketje 8 wacht zo lang dat zijn beurt voorbij is, en de telefoon gooit het weg. Niemand stuurt een verloren pakketje opnieuw, want het zou te laat komen om nog te helpen. De telefoon vult het gat met een ogenblik verzonnen geluid, zodat je vriend geen gat hoort.
Hoe vult de telefoon een gat?
Hij verzint een kort stukje geluid op basis van de stem net daarvoor. Die truc heet het maskeren van pakketverlies (packet loss concealment), en de ITU, het agentschap van de Verenigde Naties voor telecommunicatie, publiceerde in 1999 een manier om het te doen voor standaardgesprekken.
Korte pakketjes helpen ook. De IETF merkt op dat een verlies bij langere pakketjes sneller opvalt, en dat is een van de redenen waarom gesprekken 20 ms per keer versturen.
Bronnen: ITU-T G.711 Appendix I: packet loss concealment with G.711 (1999); IETF RFC 3551: the audio and video profile for RTP (2003)
De jaren 80 en nu, naast elkaar
Leonard Kleinrock toonde in 1961 aan dat data in pakketjes versturen een netwerk beter benut dan voor elk gesprek een pad vasthouden. De prijs zag je op straat: een pakketje kan te laat komen, of helemaal niet.
Telefoonlijn, jaren 80
Internetgesprek, nu
Het padInternet Society; RAND
Gereserveerd
Eén pad, van begin tot eind voor je gesprek vastgehouden
Gedeeld
Routers geven elk pakketje door, halte na halte
Je stem reist alsInternet Society; IETF RFC 3551
Eén stroom
Ononderbroken, van het eerste tot het laatste woord
50 pakketjes per seconde
Elk met 20 ms geluid
Komt op volgorde aanInternet Society; IETF RFC 3550
Altijd
Eén pad, dus niets kan inhalen
Bijna altijd
Genummerd, zodat de andere kant ze kan sorteren
VoIP in cijfers
-
3.000
In een gesprek van één minuut stuurt je laptop 3.000 pakketjes, en krijgt hij er 3.000 van je vriend terug.
-
150 ms
Telefonie-ingenieurs proberen je stem in minder dan 150 ms bij het andere oor te krijgen, inclusief de tijd die de telefoon op late pakketjes wacht.
Hoe het zo gekomen is
- 1964
Een netwerk zonder centrum
De groep van Paul Baran bij RAND schrijft een rapport over pakketnetwerken voor beveiligde militaire spraak. Het idee: berichten in kleine stukjes versturen, elk op zichzelf, over een netwerk zonder centrum dat je kunt uitschakelen.
- 1967
Twee teams, één idee
Op de conferentie waar Larry Roberts zijn plan voor het ARPANET voorstelt, presenteren Donald Davies en Roger Scantlebury van het Britse National Physical Laboratory een eigen pakketnetwerk.
- 1969
De eerste verbinding van het ARPANET
Op 29 oktober om 22.30 uur maakt de University of California, Los Angeles, verbinding met het Stanford Research Institute. Het is de eerste vastgelegde verbinding van het ARPANET, het pakketnetwerk waaruit het internet groeide.
- 1973
De eerste stem over een pakketnetwerk
In december draagt het Network Voice Protocol voor het eerst live spraak over het ARPANET. Het verbindt een handvol onderzoekscentra in de Verenigde Staten.
IETF RFC 741: specifications for the Network Voice Protocol (1977)
- 1981
Het internetprotocol op papier
Het Information Sciences Institute in Californië publiceert het internetprotocol als RFC 791. Het legt het adres vast dat elk pakketje nog altijd draagt, en het belooft te proberen elk pakketje af te leveren, meer niet.
- 1996
Nummers voor elk pakketje geluid
De IETF publiceert RTP, de regels die elk pakketje geluid zijn nummer en zijn tijdstempel geven. Internetgesprekken gebruiken ze nog altijd.
IETF RFC 1889: RTP, a transport protocol for real-time applications (1996)
- 2002
Een standaardmanier om te laten overgaan
De IETF publiceert SIP in zijn huidige vorm: de berichten die een gesprek over het internet opzetten, de telefoon aan de andere kant laten overgaan en aan het eind ophangen.
Waar Voxbi in beeld komt
Voxbi, een cloudtelefooncentrale gehost in de Europese Unie, stuurt je gesprekken op deze manier over het internet, vanuit de apps op je laptop en mobiel en vanaf de bureautelefoons op je bureaus.
Bekijk het in Voxbi