Door de stad

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.

12345678ROUTERCENTRALEROUTERCENTRALEDATACENTERCENTRALEJIJ THUISROUTERCENTRALEJE VRIENDROUTERCENTRALE
Zelf proberen
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.

  1. 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.

  2. 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)

  3. 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

    3
    1. 1Het adres
    2. 2Het deurnummer
    3. 3Het nummer en de tijd
    4. 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)

  4. 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)

  5. 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)

  6. 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)

  7. 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

Hoe het zo gekomen is

  1. 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.

    Internet Society: a brief history of the internet (1997)

  2. 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.

    Internet Society: a brief history of the internet (1997)

  3. 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.

    IEEE: Milestone, inception of the ARPANET (2009)

  4. 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)

  5. 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.

    IETF RFC 791: Internet Protocol (1981)

  6. 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)

  7. 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.

    IETF RFC 3261: SIP, the Session Initiation Protocol (2002)

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

Verder verkennen