een illustratie van een smsbericht
beeld: Cathryn Virginia

FYI.

This story is over 5 years old.

Tech

Een liefdesverhaal over de lange, complexe reis die een sms-berichtje aflegt

Er gaat verrassend veel schuil achter een bericht dat maar een seconde duurt om te sturen en te ontvangen.

Scott B. Weingart is een wetenschapshistoricus, data-wetenschapper en bibliothecaris aan de Carnegie Mellon University. Je vindt hem op twitter als @scott_bot .

Dit artikel verscheen oorspronkelijk op Weingarts blog, the scottbot irregular .

Ik voel iets trillen op mijn been. Het is mijn telefoon, zie ik wanneer ik op het verlichte schermpje kijk. Het is een sms’je van mijn vrouw. “I love you,” staat er. Ik loop naar beneden om haar welterusten te wensen, want dat is wat ze er eigenlijk mee wil zeggen.

Advertentie

Wat dat betreft lijkt het wel een beetje op codering, of misschien steganografie: iedereen kan de tekst zien, maar alleen ik kan de verborgen informatie ontcijferen die erachter schuilgaat.

Mijn vertaling van haar berichtje is eigenlijk niets meer dan één extra schakel in een lange keten van gegevensverwerking, wat nodig is om binnen vijf seconden een boodschap (“kom naar beneden om me een goede nacht te wensen”) af te leveren over twaalf meter afstand.

Het berichtje ontstond waarschijnlijk ergens in het brein van mijn vrouw en kwam op de een of andere manier in haar duimen terecht – maar dat is een verhaal voor een andere keer. Het verhaal dat ik je nu wil vertellen, begint op het moment dat ze met haar duim het telefoonscherm aantikt, en eindigt wanneer ik het op mijn telefoon zie verschijnen.

Achter de schermen

Met iedere tik gaat er een elektrisch signaal van het scherm naar haar hand. Omdat elektriciteit gemakkelijk door het menselijk lichaam kan stromen, registreren de sensoren in de telefoon een verandering in de spanning op de plekken waar haar duim op het scherm drukt. De telefoon detecteert ook spanningsschommelingen op de rest van het scherm, maar daarvoor is er gelukkig een algoritme dat bepaalt wat de grootste en meest duimachtige veranderingen op het scherm zouden moeten zijn. De telefoon gaat er vervolgens van uit dat dit de plekken zijn waarop mijn vrouw wilde drukken.

1550771895006-figure0

Fig 0. Capacitieve aanraking. Beeld: Cathryn Virginia

Advertentie

Dan tikt ze iedere letter omstebeurt op het toetsenbord. I, spatie, L, O, V, E, etcetera.

Ze swipet niet over haar toetsenbord om te typen (ik wel, maar alsnog typt zij sneller dan ik). De telefoon registreert de x- en y-coördinaten van elke vingerafdruk en stemt ze af op de coördinaten van de toetsen op het scherm. Dat is moeilijker dan je denkt; soms glijdt haar duim bijvoorbeeld iets te ver door. Maar de telefoon begrijpt dan wel degelijk dat ze niet probeert te swipen, maar gewoon een beetje slordig typt.

Diep in de metalen ingewanden van het apparaat, zit namelijk een algoritme dat uitzoekt of de duimvormige spanning meer dan een bepaald aantal pixels opzij beweegt. Dat wordt een ‘touch slob’ genoemd, en betekent dat de telefoon het ziet als toetsdruk in plaats van een veegbeweging.

1550772199950-image6

Fig 1. De code die door Android wordt gebruikt om een ‘touch slob’ te herkennen.

Mijn vrouw is klaar met het typen van haar bericht, dat bestaat uit slechts 10 tekens.

Je staat er tegenwoordig misschien nauwelijks bij stil, maar een sms’je kan maximaal 160 tekens bevatten. Androids en iPhones zijn namelijk slim genoeg om lange berichten achter de schermen samen te voegen, zodat we bij ontvangst niet kunnen zien dat ze eigenlijk in losse delen zijn verzonden. Toch worden sms’jes in de metalen hersenen van onze telefoons nog steeds als stukjes van 160 tekens verwerkt.

Als je de legende mag geloven, is dat maximum van 160 tekens een zorgvuldig gekozen aantal. Door de Duitse telefoontechnicus Friedhelm Hillebrand om precies te zijn, die in 1984 experimenteerde met de ideale lengte voor korte tekstberichten – samen met Bernard Ghillebaert stond hij aan de voet van de sms, zoals we ‘m de dag van vandaag nog steeds kennen.

Advertentie

De legende van de tekenlimiet

Legendes vertellen echter maar zelden het volledige verhaal, en daar is de legende van de sms geen uitzondering in. Hillebrand en zijn team probeerden berichten te versturen via een secundair kanaal, dat al door telefoons werd gebruikt om basisinformatie uit te wisselen met hun lokale zenders.

Signaleringssysteem nr. 7 (SS7) bestaat uit een reeks protocollen die door mobiele telefoons worden gebruikt om constant in contact te blijven met hun lokale zendmast. Ze hebben deze doorlopende verbinding nodig om te weten wanneer ze moeten bellen, basale locatiegegevens te krijgen, te weten of er voicemailberichten zijn en om andere niet-internetgerelateerde berichten te verzenden of te ontvangen. Sinds het protocol in 1980 de internationale standaard werd, heeft het een limiet van 279 bytes aan informatie. Als Hillebrand sms-berichten via het SS7-protocol wilde versturen, had hij dus te maken met een vrij beperkt limiet.

Normaal gesproken staan 279 bytes gelijk aan 279 tekens. Een byte is acht bits (elke bit is een 0 of 1) en bij gewone coderingen staat één letter gelijk aan acht nullen en enen in een rij.

‘A’ is bijvoorbeeld dus 0100 0001, ‘B’ is 0100 0010 en ‘C’ is 0100 0011.

Berichten versturen via het SS7-protocol, komt niet alleen neer op het verzenden van 2232 nullen en enen (oftewel 279 bytes van ieder 8 bits) via radiosignalen tussen jouw en mijn telefoon. Een deel van dat 279-bytesignaal moet namelijk ook jouw telefoonnummer bevatten en een ander deel moet mijn telefoonnummer bevatten. En dan is er nog een ander gedeelte, waarmee je telefoon tegen de zendmast zegt: “Hey, dit is een bericht in plaats van een oproep, dus niet bellen!”

Advertentie

Tegen de tijd dat Hillebrand en zijn team alle benodigde contextuele bits in het signaal van 279 bytes hadden gepropt, bleef er slechts genoeg ruimte over om 140 tekens van 1 byte (8 bits) per stuk te versturen, oftewel 1120 bits.

Maar wat als je een teken in 7 bits zou kunnen coderen? Met 7 bits per teken konden ze 160 (1120/7 = 160) tekens in iedere sms krijgen. Maar voor die extra 20 tekens moest een offer worden gemaakt: daarom konden er ineens minder verschillende soorten tekens worden gebruikt.

In een 8-bits codering zijn er 256 verschillende tekens mogelijk. Een kleine letter ‘a’ neemt één plaats in beslag, de hoofdletter ‘A’ ook, een punt neemt een derde plek in beslag, een apenstaartje de vierde, een regeleinde een vijfde, en zo gaat dat door tot je de 256 bereikt. Maar om het alfabet te verkleinen tot 7 bits, moesten er een aantal tekens worden verwijderd, zoals het 1/2-symbool (½), het gradensymbool (°) en het pi-symbool (π). Hillebrand en zijn collega’s gingen ervan uit dat niemand deze symbolen ooit in een sms zou gebruiken. Dat was een slechte aanname, maar het zorgde er wel voor dat ze 160 tekens kwijt konden in een limiet van 140 bytes. Dat paste niet alleen perfect in het SS7-signaal van 279 bytes, maar was ook het precieze aantal tekens dat volgens hen de ideale lengte voor een berichtje was.

Terwijl mijn vrouw een berichtje met “I love you” typt, zet haar telefoon die letters om in dit 7-bits coderingsschema, genaamd GSM-7.

Advertentie

“I” (wat hierboven op het snijpunt van 4x en x9 ligt) = 49

Spatie (op het snijpunt van 2x en x0) = 20

“l” = 6C

“o” = 6f

Enzovoorts. Uiteindelijk ziet haar korte berichtje er als volgt uit:

49 20 6C 6F 76 65 20 79 6F 75

Dat zijn 10 verschillende bytes. Iedere code van twee letters (ofwel een hex code) bestaat uit 8 bits. Dit alles bij elkaar betekent “I love you.”

Maar dit is niet hoe het bericht wordt opgeslagen in haar telefoon. Om dat te doen, moet de 8-bit tekst omgezet worden naar 7-bit hex codes door de resterende bit aan het einde van iedere byte te gebruiken. De wiskunde die daarachter schuilgaat is te ingewikkeld om nu dieper op in te gaan, maar in haar telefoon ziet het bericht er uiteindelijk zo uit:

49 10 FB 6D 2F 83 F2 EF 3A

(9 bytes in totaal).

Na slechts een paar seconden heeft mijn vrouw haar bericht getypt. Ze drukt op ‘verzenden’ en een paar kleine engeltjes nemen de gecodeerde tekst mee. Met hun onzichtbare vleugeltjes fladderen ze twaalf meter omhoog, naar mijn kantoor, waar ze het bericht voorzichtig in mijn telefoon plaatsen. Het proces verloopt niet geheel zonder wrijving, waardoor mijn telefoon lichtjes trilt op het moment dat het bericht wordt afgeleverd.

De zogenaamde ‘telecommunicatie-ingenieurs’ zouden je een heel ander verhaal voorschotelen. Voor de volledigheid zal ik je hun versie dus ook vertellen, maar als ik jou was, zou ik ze niet vertrouwen.

Van de simkaart naar de verzendknop

De ingenieurs zouden het zo uitleggen: wanneer de telefoon een spanningsschommeling waarneemt op de plek van de verzendknop, stuurt het een gecodeerd bericht naar de simkaart. Ondertussen worden er allerlei handige contextuele gegevens aan het bericht toegevoegd, waardoor het bericht van 140 bytes (met alleen de tekst) in een bericht van 176 bytes (tekst + context) verandert, tegen de tijd dat het de simkaart van mijn vrouw bereikt.

Die extra 36 bytes worden gebruikt om allerlei informatie te coderen. Dat is hieronder te zien:

Advertentie

Fig. 3. Bytes worden hier octetten (8 bits) genoemd. Wanneer je alle mogelijke bytes optelt, kom je uit op 174 (10+1+1+12+1+1+7+1+140). De andere twee bytes worden vrijgehouden voor de boekhouding van je simkaart. Beeld: Cathryn Virginia

De eerste tien bytes worden gebruikt voor het telefoonnummer ( service center address of SCA) van de berichtencentrale (SMSc), dat als taak heeft tekstberichten te ontvangen, op te slaan, door te sturen en te bezorgen. Je zou het in principe ook kunnen zien als een soort schakelbord. De telefoon van mijn vrouw stuurt een signaal naar de lokale zendmast en geeft daar het nummer van de SMSc door, waarna haar sms-bericht naar hen wordt doorgestuurd. De berichtencentrale stuurt de tekst vervolgens naar de zendmast die zich het dichtst bij mijn telefoon bevindt. Omdat ik maar drie kamers verwijderd ben van mijn vrouw, komt het berichtje via dezelfde mast uiteindelijk bij mijn telefoon terecht.

Fig 4. Het cellulaire netwerk. Beeld: Cathryn Virginia

De volgende byte (een PDU-type) codeert een aantal basisdingen over de manier waarop de telefoon het bericht moet interpreteren. Zo kijkt het of het bericht succesvol is verzonden, of de provider een statusrapport aanvraagt en (heel belangrijk) of dit een los bericht is of juist onderdeel van een reeks verbonden berichten.

De byte na het PDU-type is de berichtreferentie (ofwel MR, wat de afkorting is is voor message reference). Dit is een getal tussen de 1 en 255 dat in essentie wordt gebruikt als kort ID-nummer, waardoor zowel de telefoon als de provider weten met welk sms-bericht ze te maken hebben. In het geval van mijn vrouw is dit nummer ingesteld op 0, omdat haar telefoon een eigen bericht-ID-systeem heeft dat hier los van staat.

Advertentie

Het volgende deel, bestaande uit een stuk of twaalf bytes, wordt gebruikt voor het telefoonnummer van de ontvanger. Dit wordt het bestemmingsadres genoemd (ofwel DA, kort voor destination address). Op de 7-bits codering van de tekens na (waardoor we 160 letters in een ruimte van 140 tekens kunnen proppen) is de codering van het telefoonnummer het domste en meest verwarrende dat je in een sms zult tegenkomen. Hier wordt namelijk gebruikgemaakt van iets dat ‘reverse nibble notation’ heet, waarbij de twee cijfers die elkaar opvolgen worden omgedraaid en genoteerd als een groter getal.

Laten we zeggen dat mijn telefoonnummer 1-352-537-8376 is. Dat is het natuurlijk niet, want het internet is een walgelijke plek en ik vertrouw niemand van jullie. Maar stel je eens voor dat het wel mijn nummer was. In dat geval zou het als volgt gelezen worden door de telefoon van mijn vrouw:

3125358773f6

De 1-3 wordt weergegeven als 31, de 52 als 25, enzovoorts. Behalve de 6 dan, op het einde. Die wordt dan weer weergegeven als f6.

Nu vraag je je vast af: waarom dat nou weer in godsnaam? Deze letter geeft aan dat we het einde van het telefoonnummer hebben bereikt. Maar om de een of andere gestoorde reden (beter bekend als reverse nibble notation) staat die ‘f’ dus helemaal niet aan het einde van het telefoonnummer.

Het is dus eigenlijk een soort varkenslatijn voor nummers.

eH tsid sue gineilkje nes ootrv raeksnalitnjv oo runmmre.s

Advertentie

Blijkbaar is reverse nibble notation een onvermijdelijk gevolg van het feit dat 4-bits little-endian bytes worden weergegeven in stukjes van 8 bits. Voor de mensen die dagelijks met deze technologieën werken, klinkt dit allemaal volkomen logisch. Voor leken zoals ik, is het allemaal echter iets minder voor de hand liggend.

De Protocol Identifier-byte (PID) die hierop volgt, is eerlijk gezegd niet meer dan een nutteloze verspilling van ruimte. Op basis van ongeveer 40 verschillende waarden vertelt de PID aan de provider welke route het bericht moet volgen.

Een waarde van 34 betekent dat mijn vrouw “I love you” naar een faxapparaat stuurt. Een waarde van 36 betekent dat ze het, op wat voor manier dan ook, naar een vaste lijn stuurt. Aangezien ze het bericht als sms naar mijn telefoon verzendt, staat de PID op 0. (Net als ieder ander sms-bericht dat in de moderne wereld wordt verzonden.)

De volgende byte is het datacoderingsschema (DCS, zie dit document voor details), wat de provider en de ontvangende telefoon vertelt welk tekencoderingsschema wordt gebruikt. Mijn vrouw gebruikte GSM-7, het 7-bits alfabet dat ik hierboven noemde, waarmee ze 160 letters kan gebruiken binnen een ruimte van 140 tekens. Maar je kunt je natuurlijk ook goed voorstellen dat iemand in het Chinees wil sms’en, of een complexe wiskundige vergelijking wil versturen (oké, dat laatste is misschien iets minder gemakkelijk voor te stellen, maar er zijn weleens gekkere dingen gebeurd).

Advertentie

In het bericht van mijn vrouw stond de DSC-byte op 0 , wat betekent dat ze een 7-bits alfabet gebruikte. Maar het kan best zo zijn dat ze die waarde heeft veranderd om een 8- of 16-bits alfabet te gebruiken. Hierdoor zou ze meer letters tot haar beschikking hebben, maar zou er minder ruimte voor de tekens zijn. Dit is dan ook de reden waarom je minder tekens kunt gebruiken wanneer je emoji in je sms wil stoppen.

Met de DCS-byte wordt ook aan de telefoon verteld of het berichtje zichzelf moet vernietigen nadat het verstuurd is. Sms’jes kunnen blijkbaar dus ook doen alsof ze meespelen in Mission: Impossible, wat best vet is.

Om aan te geven hoelang een berichtje blijft bestaan, zijn tot wel zeven bytes nodig. Deze geldigheidsperiode (VP, voor validity period) leert ons nog meer over hoe sms’jes nu echt werken. Kijk nog maar eens naar Figuur 4. Neem de tijd, ik wacht hier op je.

Wanneer mijn vrouw eindelijk op ‘versturen’ drukt, wordt het bericht verzonden naar de berichtencentrale (SMSc), van waaruit het bericht vervolgens weer wordt doorgestuurd naar mij. Ik ben boven en mijn telefoon staat aan, dus ontvang ik het berichtje binnen een aantal seconden. Maar wat als mijn telefoon uit zou staan? Mijn telefoon kan geen sms ontvangen als hij geen verbinding heeft, waardoor de SMSc in die tijd iets anders met het bericht moet doen.

Als de SMSc mijn telefoon niet kan vinden, blijft het berichtje van mijn vrouw gewoon door het systeem heen stuiteren. Dat doet het net zolang tot mijn telefoon weer verbinding heeft, waarna het berichtje direct op zijn doel af schiet. De manier waarop het SMSc bij iedere telefoon controleert of het die van mij is, lijkt wel een beetje op een puppy die bij de deur op zijn baasje wacht. Is dat de geur van mijn baasje? Nee. Is dat de geur van mijn baasje? Nee. Is dit de geur van mijn baasje? JA JA SPRINGEN RENNEN HET IS ‘M.

Advertentie

De bytes voor de geldigheidsperiode (VP) laten aan de provider weten hoelang de puppy van plan is te wachten tot hij verveeld raakt en een nieuw baasje zoekt. Het is dus een soort tijdstempel die zegt: “Als je de telefoon van de ontvanger niet binnen zoveel dagen online ziet, laat dat hele bericht dan maar zitten.” De geldigheidsperiode voor een sms is in principe 10.080 minuten, wat betekent dat ik het berichtje van mijn vrouw dus nooit zal ontvangen als ik mijn telefoon niet binnen zeven dagen weer aanzet.

Omdat er vaak veel lege ruimte in een sms staat, zijn er hier en daar een paar bits die de telefoon en provider laten weten welke bytes ongebruikt zijn. De simkaart van mijn vrouw verwacht bijvoorbeeld een sms van 176 bytes. Ze heeft echter een heel kort bericht getypt, waardoor de simkaart uiteindelijk een sms van slechts 45 bytes ontvangt. Dit kan voor verwarring zorgen, waardoor haar telefoon misschien het idee krijgt dat er iets ontbreekt. Gelukkig lost de user data length-byte (UDL) dit probleem op, door exact aan te geven hoeveel bytes de tekst in het sms-bericht daadwerkelijk bevat.

In het geval van “I love you” geeft de UDL aan dat het bericht 9 bytes bevat. Je zou verwachten dat het 10 bytes zouden zijn – ééntje voor elk van de 10 karakters – maar omdat elk teken uit 7 in plaats van 8 bits (een volledige byte) bestaat, bevat het geheel een byte minder. Dit komt doordat 7 bits keer 10 tekens 70 bits is, gedeeld door 8 (het aantal bits in een byte) = 8,75 bytes, wat afgerond dus 9 bytes is.

Advertentie

Zo komen we bij het allerlaatste stukje informatie van iedere sms terecht: het bericht zelf, oftewel de UD ( User Data of gebruikersgegevens). Het bericht kan 140 bytes bevatten, maar zoals je net zag heb je voor bijvoorbeeld “I love you” aan 9 bytes al genoeg. Het is werkelijk verbazingwekkend hoeveel je in die 9 bytes kunt verpakken. Niet alleen het bericht zelf zit erin (namelijk de liefde die mijn vrouw voor mij voelt, wat eigenlijk al lastig genoeg valt samen te vatten in een reeks enen en nullen), maar ook de booschap daarachter (waarmee ze me vraagt naar beneden te komen om haar een goede nacht te wensen).

De bytes die ze hiervoor nodig heeft, zijn:

49 10 FB 6D 2F 83 F2 EF 3A.

Maar uiteindelijk wordt het sms-bericht als volgt opgeslagen op de simkaart van mijn vrouw:

SCA[1-10]-PDUType[1]-MR[1]-DA[1-12]-DCS[1]-VP[0, 1, or 7]-UDL[1]-UD[0-140]

00 - 11 - 00 - 07 31 25 35 87 73 F6 - ?? 00 ?? - ?? - 09 - 49 10 FB 6D 2F 83 F2 EF 3A

(Een kleine kanttekening: je ziet hier helaas niet de hele codering, maar wel een groot deel ervan. Om het hele bericht uit te kunnen schrijven, inclusief de plekken waar nu vraagtekens staan, zou ik me er nóg meer in moeten verdiepen.)

Golven in de ether

Op de een of andere manier moet de sms nu (stel je hier even de vertelstem van David Attenborough bij voor) zijn lange, zware tocht afleggen van de simkaart naar het dichtstbijzijnde basisstation, een soort zendmast dus, of antennes. Om dat te doen moet de telefoon van mijn vrouw een regel van 176 bytes omzetten naar de 279 bytes die leesbaar zijn voor het SS7-protocol, die digitale bytes omzetten in een analoog radiosignaal, en díe signalen worden dan de ether in geslingerd op een frequentie van ergens tussen de 800 en 2000 megahertz. Dat betekent dat bij iedere golf tussen de 15 en de 35 centimeter tussen de pieken zit.

Advertentie

Fig 6. Golflengte. Beeld: Cathryn Virginia

Om efficiënt signalen te kunnen verzenden en ontvangen, mogen deze antennes niet kleiner zijn dan de helft van de radiogolven waarmee ze te maken hebben. Als celgolven 15 tot 35 centimeter zijn, dan moet de antenne dus 7,5 tot 17,5 centimeter zijn. Denk nu even na over de gemiddelde grootte van een mobiele telefoon, en waarom ze nooit veel kleiner lijken te worden.

Door wat digitale gymnastiek die te lang zou duren om uit te leggen, schiet de telefoon van mijn vrouw een informatiepakketje van 279 bytes met de boodschap "I love you" erin met de snelheid van het licht in elke windrichting, waarna hij na een kleine 50 kilometer in het niets oplost.

Maar ruim voordat dat zou gebeuren, komt haar signaal in contact met het AT&T HSPA Basisstation ID199694204 LAC21767. Dit ontvangststation is een paar straten verwijderd van mijn favoriete bakkerij (La Gourmandine in Hazelwood!), en hoewel ik met een Android-app (OpenSignal) de globale locatie daarvan kon traceren, is de antenne zodanig gecamoufleerd dat ik ‘m niet specifieker kan vinden. Het meest fascinerende hieraan is dat het signaal überhaupt de gsm-mast bereikt (de BTS, wat staat voor base transceiver station), gezien wat er allemaal nog meer gaande is. Niet alleen sms’t mijn vrouw me “I love you” in de 1000 Mhz-band van het elektromagnetische spectrum, maar er zijn ook nog eens tienduizenden andere mensen aan het telefoneren of sms’en in een straal van 50 kilometer rond mijn huis, een radius waarbuiten mobiele signalen uiteenvallen. En daarbovenop is er nog een hele zooi aan radio- en tv-signalen die om aandacht worstelen in onze lucht, die ze ook nog eens moeten delen met zichtbaar licht – en dat zijn nog maar een paar van de vele elektromagnetische golven die in de weg kunnen zitten.

Advertentie
1550773208867-figure7

Fig 7. Een sms in een gsm-netwerk. Beeld: Cathryn Virginia

Zoals theoretisch natuurkundige Richard Feynman het in 1983 mooi verwoordde, is het alsof de zendmast een klein, blind insect is, dat aan de kant van het water zit en kan bepalen wie er waar zwemt, op basis van niets meer dan de frequentie en richting van de golven die hij waarneemt.

Schakelen

Ik heb op zich nog geluk. Als mijn vrouw en ik bij verschillende mobiele providers hadden gezeten, of als we in verschillende steden zouden zijn, zou de route van haar bericht naar mij nog veel omslachtiger zijn.

De boodschap van mijn vrouw wordt zodanig gemasseerd dat hij binnen de 279 bytes van het SS7-kanaal past, en gestuurd naar de plaatselijke gsm-mast, in de buurt van de bakker. Van daaruit komt het bij het basisstation terecht (BSC, de afkorting van base station controller), die als het brein van onze antenne functioneert, en meerdere andere plaatselijke antennes daarnaast. Het basisstation stuurt het berichtje naar het mobiele schakelstation van AT&T Pittsburgh, waar het SCA van het sms’je (ter herinnering: het adres van het servicecentrum, dat in elke sms zit) gebruikt wordt om het bericht bij de juiste berichtencentrale (SMSC) terecht te laten komen.

Deze wirwar van letters is makkelijker te begrijpen met het diagram op afbeelding 7; ik heb zojuist stap 1 en 3 beschreven. Als mijn vrouw en ik een andere provider hadden gehad, zouden we ook stap 4 t/m 7 moeten doorlopen, de plekken waar de mobiele providers met elkaar communiceren. De sms moet dan van de SMSC naar een wereldwijd schakelbord gaan en vervolgens misschien wel over de hele wereld stuiteren voordat hij zijn weg naar mijn telefoon vindt.

Advertentie

Gelukkig zitten wij allebei op AT&T, en zijn onze telefoons verbonden met dezelfde zendmast, dus na stap 4 maakt ons liefdesberichtje rechtsomkeert, en gaat-ie terug naar dezelfde berichtencentrale en hetzelfde basisstation, maar dan naar mijn telefoon in plaats van de hare. Een reis van een enkele tientallen kilometers in een fractie van een seconde.

Naar de simkaart

Bzzzzz. Er trilt iets in m’n broekzak. Een notificatie laat me weten dat ik een smsje heb ontvangen, via mijn nano-simkaartje – een printplaatje ter grootte van de nagel van mijn pink. Maar zoals het een echte reiziger betaamt, is hij niet helemaal identiek teruggekomen. [Afbeelding]
Afb. 8: Ontvangen bericht (in plaats van verzonden bericht, afb. 3) Beeld: Cathryn Virginia

Afbeelding 8 toont de structuur van het bericht “I love you”, zoals het nu opgeslagen is op mijn telefoon. Als we afbeelding 3 en 8 vergelijken zien we een aantal verschillen. De SCA (het telefoonnummer), het PDU-type (wat mechanische huishouding), de PID (telefoon naar telefoon, in plaats van bijvoorbeeld telefoon naar faxapparaat), het DCS (het datacoderingsschema), de UDL (lengte van het bericht), en het UD (het bericht zelf). Deze zijn allemaal ongeveer hetzelfde gebleven, maar de VP (de vervaldatum van het bericht), het MR (het ID-nummer) en het DA (mijn telefoonnummer) ontbreken.

In plaats daarvan zijn er twee nieuwe deeltjes informatie bijgekomen: het OA (dat staat voor originating address, oftewel het telefoonnummer van mijn vrouw) en het SCTS ( service center time stamp, dus het moment waarop mijn vrouw haar bericht verzonden heeft).

Advertentie

Het telefoonnummer van mijn vrouw is volgens dezelfde vervelende reverse nibble notation opgeslagen als mijn telefoonnummer op de hare, en de tijdstempel is opgeslagen in hetzelfde formaat als de vervaldatum op haar telefoon.

Dat deze informatie precies omgekeerd is, is vrij logisch: haar telefoon moest mij op een bepaald moment bereiken, op een bepaald adres, en ik moet nu weten wie het bericht heeft gestuurd, en wanneer. Zonder het adres van de afzender had ik niet geweten of deze “I love you” afkomstig was van mijn vrouw of van mijn moeder, wat toch zeer belangrijk is voor mijn interpretatie van de boodschap.

Op je beeldscherm

Mijn telefoonscherm krijgt de opdracht om het signaal 49 10 FB 6D 2F 83 F2 EF 3A naar mijn scherm te vertalen. Laten we nu eens kijken hoe dat er daadwerkelijk op je beeldscherm uit komt te zien.

Er zijn ongeveer 330,000 kleine lichtbronnen, ofwel pixels, in elke inch van mijn 13-inch scherm gepropt. Elke pixel is ongeveer 45µm (micrometer) breed - dat wil zeggen: dunner dan een mensenhaar. Een lichtpuntje bestaat altijd uit drie deeltjes rood, groen en blauw, die je op verschillende manieren op elkaar af kunt stemmen – en waarmee je elke kleur kunt bereiken. Een simpele rekensom leert dat er 12 miljoen kleine lichtbronnen achter het zwarte glas verstopt zitten, die allemaal wachten tot ik op het knopje druk om het berichtje van mijn vrouw te lezen.

Elke pixel zendt licht uit, wat iets wegheeft van een elektronische sandwich:

De verschillende lagen van die sandwich zijn verder niet zo interessant, behalve dan dat onderaan een negatief geladen kathode ligt, daarboven organische molecules zitten, en daarboven weer een positief geladen anode. Als het scherm aangaat, stuurt de telefoon elektronen van de kathode naar de anode. De moleculen ondervangen de energie en reageren door fotonen door het scherm naar boven te sturen, dat door mijn ogen wordt opgevangen als licht.

Omdat elke pixel uit drie kleuren bestaat (rood, groen en blauw) zijn er per pixel eigenlijk drie van dit soort sandwich-constructies. Ze zijn allemaal hetzelfde, alleen heeft elke kleur een eigen organische molecuul: poly(p-fenyleen) voor blauw, polythiofeen voor rood en poly(fenyleen-vinyleen voor groen licht. (Mocht je het leuk vinden om te weten: de blauwe subpixels branden relatief een stuk sneller op).

Alle 4 miljoen pixels liggen uitgespreid in een geïndexeerde matrix. Een index in een computer werkt redelijk hetzelfde als in een boek: als mijn telefoon een bepaalde pixel nodig heeft voor een bepaalde kleur, dan zoekt het die op in de index, om vervolgens een signaal te versturen naar het adres dat het in de index vindt. Oftewel: het besturingssysteem van mijn telefoon interpreteert het bericht van mijn vrouw en herleidt de vormen van elke letter uit de geïndexeerde matrix, waardoor het juiste elektrische signaal naar het scherm wordt gestuurd.

Het aparte is dat ik de tekst “I love you” niet in felle kleuren zal zien, maar in zwart-wit. Dat komt doordat de telefoon het hele scherm witwast, door alle rode, groene en blauwe subpixels maximaal te verlichten. De deeltjes waar de letters staan, blijven juist uit. Eigenlijk is het dus heel simpel.

Er zijn natuurlijk ook andere factoren die bepalen of haar bericht wel bij me aankomt. Ik moet op tijd mijn rekening betalen, technici moeten ervoor zorgen dat de zendmasten goed blijven werken en programmeurs schrijven codes die onze telefoons zonder al te veel haperingen moeten laten functioneren.

En dat alles voor een berichtje van tien tekens. Tekens die veel meer betekenen dat wat er letterlijk staat. Als ik het lees, moet mijn brein de laagjes afpellen die zijn ontstaan in al die jaren dat ik mijn vrouw heb leren kennen. Ik ontcijfer het bericht via mijn telefoon, maar tussen ons blijven nog miljoenen sociotechnische dingen hangen; een potpourri van mensen, geschiedenis, en losse onderdelen die nooit ontvlochten zullen worden.

De nasleep

Dus hier zit ik, in mijn schrijfkamer op zondagavond laat. “I love you,” schrijft mijn vrouw me van beneden. Ik begrijp meteen wat ze bedoelt: het is tijd om haar welterusten te wensen, en misschien een einde te maken aan dit stuk. Ik typ nog wat laatste woorden, en ben me ondertussen iets bewuster geworden van de complexiteit die het met zich meebrengt qua afstand, signalen, geschiedenis en menselijk zweet. Allemaal dingen die ervoor zorgen dat mijn vrouw niet gewoon naar boven hoeft te roepen dat het nou weleens genoeg is geweest met dat eindeloze geschrijf.