Motherboard

Ti amo: l'incredibile viaggio di un SMS quando premi "invia"

La storia che voglio raccontare comincia quando i pollici di mia moglie hanno colpito uno schermo traslucido, una lettera alla volta, e finisce quando la luce ha colpito le mie retine.

di Scott B. Weingart
14 marzo 2019, 12:37pm

Immagine: Cathryn Virginia 

Scott B. Weingart è uno storico della scienza, si occupa di scienza dei dati e della biblioteca della Carnegie Mellon University. Lo trovate su twitter: @scott_bot. Questo articolo é apparso originariamente sul blog di Weingart.

La mia gamba si contrae involontariamente per la vibrazione — è stato il mio telefono o solo una sensazione fantasma? Un'occhiata rapida conferma la notifica blu lampeggiante. "I love you," mi ha scritto mia moglie. Faccio le scale per darle la buonanotte, perché conosco la differenza tra il messaggio e il messaggio, capite?

È un po' come la crittografia o magari la stenografia: chiunque può vedere il testo del messaggio, ma solo io posso decodificare i dati nascosti.

La mia traduzione, se vogliamo essere onesti, è solo l'ennesimo passaggio in una catena notevolmente lunga di eventi, tutti atti a spedire un messaggio ("vieni di sotto e dammi la buonanotte") in meno di cinque secondi, attraverso uno spazio sì e no di 12 metri.

Il messaggio ha avuto origine, probabilmente, da qualche parte nel cervello di mia moglie, per poi finire nei suoi pollici, ma questa è una storia per un'altra volta. Quella che voglio raccontare ora comincia quando i suoi pollici hanno colpito uno schermo traslucido, una lettera alla volta, e finisce quando la luce ha colpito le mie retine.

Attraverso lo specchio

Con ogni colpetto, una piccola corrente elettrica passa dallo schermo alla sua mano. Poiché l'elettricità scorre facilmente attraverso i corpi umani, i sensori sul telefono registrano un cambio di voltaggio ogni volta che il suo pollice preme contro lo schermo. Ma il mondo è complicato e i telefoni percepiscono fluttuazioni randomiche nel voltaggio anche attraverso il resto dello schermo; per questo, un algoritmo ha il compito di determinare le fluttuazioni più grosse — quindi più probabilmente legate a un pollice umano — e assumere il punto relativo dello schermo su cui mia moglie intendeva premere.

1550771895006-figure0
Fig 0. Schermo Capacitivo. Immagine: Cathryn Virginia

Per cui lei inizia a fare tap-tap-tap sulla tastiera, una lettera alla volta.

I-barraspaziatrice-l-o-v-e-barraspaziatrice-y-o-u.

Mia moglie non swipa sulla tastiera (io sì, ma per qualche ragione lei è comunque più veloce di me). Il suo telefono registra le coordinate (x,y) di ogni impronta delle sue dita e le allinea con le coordinate di ogni tasto sullo schermo. È più difficile di quel che pensiamo; alle volte il suo pollice scivola, eppure il telefono capisce che non sta cercando di swipare, ma che era solo un incidente.

Nelle viscere di metallo del dispositivo, un algoritmo controlla che ogni disturbo del voltaggio a forma di pollice non sposti più di una certa quantità di pixel, chiamata touch slop. Se il movimento è abbastanza piccolo, il telefono registra un tasto premuto, anziché una swipata.

1550772199950-image6
Fig 1. Il codice Android che riconosce il ‘touch slop.’ Notate come gli sviluppatori avessero in mente il genere di mia moglie.

Finisce il messaggio, in soli 10 caratteri, anziché i 160 massimi consentiti.

Oggi fa strano pensare che un SMS può avere solo 160 caratteri. Tanto i dispositivi Android quanto gli iPhone, furbi come sono, intrecciano di nascosto i messaggi lunghi — e, quando ci arrivano, non vediamo che sono stati divisi durante la consegna. Ma, nelle profondità dei loro cervelli metallici, i nostri telefoni ragionano ancora separando i messaggi in blocchi da 160 caratteri.

La lottizzazione dei 160 caratteri è un numero preciso per un motivo, se vogliamo credere alla leggenda: nel 1984, l'ingegnere tedesco Friedhelm Hillebrand si è seduto davanti alla sua macchina da scrivere e ha scritto tutte le frasi a caso che gli venivano in mente. Il suo team ha esaminato cartoline e messaggi via telex, e ha notato che la maggior parte era sotto i 160 caratteri. "Eureka!," hanno presumibilmente gridato in coro, prima di scolpire per sempre nella pietra il limite massimo di caratteri per i messaggi di testo.

Limiti e leggende sui caratteri

Di rado le leggende raccontano tutta la storia, e quella dell'SMS non fa eccezione. In realtà. Hillebrand e il suo team speravano di ricollocare i messaggi su un canale secondario che i telefoni usavano già per scambiare informazioni di base con le stazioni locali.

L'SS7 (O Signaling System #7) è un insieme di protocolli usati dai telefoni cellulari per restare in contatto costante con la propria torretta locale; hanno bisogno di questa connessione costante per sapere quando suonare, per tenere una traccia base della posizione, controllare la segreteria telefonica e comunicare messaggi per cui non serve internet. Dalla sua creazione nel 1980, il protocollo ha un limite fisso di 279 byte di informazioni. Se Hillebrand voleva far viaggiare i messaggi in groppa al protocollo SS7, doveva fare i conti con questo limite piuttosto severo.

Normalmente, 279 byte corrispondono a 279 caratteri. Un byte è otto bit (ogni bit è uno 0 o un 1), e nelle codifiche più comuni, una singola lettera equivale a otto cifre totali tra zeri e uni messi in fila.

‘A’ è

0100 0001

‘B’ è

0100 0010

‘C’ è

0100 0011

e via dicendo.

Sfortunatamente, mandare un messaggio via protocollo SS7 non è solo questione di spedire 2.232 (ovvero: 279 byte per 8 bit ognuno) zeri e uni attraverso il segnale radio dal mio telefono al vostro. Una parte di quel segnale da 279-byte deve contenere il vostro numero di telefono, un'altra deve contenere il mio. Un'altra parte ancora deve avvisare la torretta che "ehi, questo è un messaggio, non una chiamata, non far squillare il telefono!".

Quando Hillebrand e il suo team hanno finito di incastrare tutti i bit contestuali necessari nel segnale da 279 byte, gli è rimasto spazio sufficiente solo per 140 caratteri a 1 byte (8 bit) l'uno, per un totale di 1.120 bit.

E se avessero codificato un carattere in soli 7 bit? A 7 bit per carattere, avrebbero potuto infilare 160 (1.120/7 = 160) caratteri dentro ogni SMS, ma quegli extra 20 caratteri richiedevano un sacrificio: meno lettere possibile.

Un sistema di codifica a 8 bit permette di avere 256 caratteri possibili: la 'a' minuscola prende uno spazio, la 'A' maiuscola un altro, un punto prende un terzo spazio, un '@' prende un quarto spazio, una linea un quinto e così fino a 256. Per infilare un alfabeto dentro il 7 bit, devi rimuovere un po' di roba: il simbolo del 1/2 (½), il simbolo dei gradi (°), il simbolo del Pi greco (π), e via dicendo. Ma presumendo che le persone non useranno mai quei simboli in un messaggio (un assunto ingenuo, sicuramente), Hillebrand e colleghi hanno potuto ficcare 160 caratteri in uno spazio da 140-byte, che si accoppia poi perfettamente con il segnale SS7 da 279 byte: esattamente il numero di caratteri che il gruppo aveva scoperto equivalere alla lunghezza perfetta di qualsiasi messaggio. (Miracolo!)

1550772555222-4
Fig 2. Il set di caratteri del GSM-7. Immagine: Wikipedia

Quindi ecco mia moglie mentre digita "I love you" in un SMS, mentre il telefono converte quelle lettere in questo schema di codifica a 7 bit, chiamato GSM-7.

“I” (notate che sta nell'intersezione di 4x e x9 nella tabella) =

49

Spacebar (notate che sta nell'intersezione di 2x e x0 nella tabella) =

20

“l” =

6C

“o” =

6F

e così via fino alla fine della frase.

In totale, il suo breve messaggio diventa:

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

(10 byte combinati). Ogni codice da due caratteri, chiamato hex code, è un un pezzo da 8 bit, e tutto insieme si pronuncia "I love you."

Ma, in realtà, non è così che il messaggio viene conservato sul suo telefono. Deve convertire il testo a 8 bit in hex code a 7 bit — e lo fa essenzialmente prendendo in prestito il bit rimanente alla fine di ogni byte. La matematica è un pelo più complicata di quanto sia interessante per noi discutere in questa sede, ma il messaggio finale appare così

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

(9 byte in tutto) sul suo telefono.

Quando mia moglie finisce il messaggio (ci vogliono giusto un paio di secondi), preme il tasto 'invio' e piccoli angeli raccolgono il messaggio codificato, sbattono le loro ali invisibili 12 metri più in là e lo depositano delicatamente nel mio telefono. Il processo non è del tutto fluido, che è il motivo per cui il mio telefono vibra leggermente al momento della consegna.

I cosiddetti "ingegneri delle telecomunicazioni" vi diranno una storia diversa, e per questioni di completezza ve la riporto, ma non mi fiderei del tutto fossi in voi.

SIM-to-send

Gli ingegneri sostengono che, quando il telefono percepisce le fluttuazioni di voltaggio del pulsante 'invia', spedisce il messaggio codificato alla SIM card (quella piccola schedina che il vostro fornitore telefonico piazza nel vostro telefono per sapere qual è il vostro numero) e, nel mentre, raccoglie una serie di dati contestuali utili. Nel momento in cui raggiunge la SIM di mia moglie, il messaggio passa da essere a 140-byte (solo testo) a 176 byte (testo + contesto).

Quegli extra 36 byte servono a codificare un mucchio di informazioni, che vedete qui sotto.

1550773468096-figure3
Fig 3. Qui, i bute sono chiamati octet (8 bit). Contare tutti i byte possibili porta a 174 (10+1+1+12+1+1+7+1+140). Gli altri due byte sono riservati una sorta di registro della SIM card. Immagine: Cathryn Virginia

I primi dieci byte sono riservati al numero di telefono (service center address, o SCA) del SMS service center (SMSC), il cui compito è ricevere, immagazzinare, inoltrare e consegnare i messaggi di testo. È essenzialmente un centralino: il telefono di mia moglie manda un segnale alla torretta cellulare locale e le dà il numero del SMSC, che inoltra il suo messaggio dalla torretta al SMSC. Il SMSC, che è legato alla compagnia telefonica, direziona il messaggio alla stazione più vicina al mio telefono. Poiché sto seduto tre stanze più in là rispetto a mia moglie, il messaggio non fa che rimbalzare indietro dalla stessa stazione, verso il mio telefono.

1550772642247-figure4
Fig 4. rete cellulare SMS. Immagine: Cathryn Virginia

Il byte successivo (PDU) codifica un po' di regole base su come il telefono deve interpretare il messaggio, comprese cose come se è stato inviato correttamente, se la compagnia telefonica richiede un report e (importante) se si tratta di un messaggio singolo o se è parte di una catena di messaggi connessi.

Il byte dopo quello PDU è il MR. È un numero tra 1 e 255, ed è essenzialmente usato come identificativo a breve termine che dice al telefono e al gestore quale messaggio di testo sta gestendo. Nel caso di mia moglie, il numero è 0, perché il suo telefono ha un proprio sistema di identificazione indipendente da questo specifico file.

I successivi 12 byte circa sono riservati per il numero di telefono del ricevente, chiamato indirizzo di destinazione (DA). Fatta eccezione per la codifica di caratteri con lettere da 7 bit discussa prima, che ci aiuta a infilare 160 lettere in uno spazio da 140 caratteri, la codifica del numero di telefono è la parte di bit più stupida e confusa che incontrerete in un SMS. È chiamata 'reverse nibble notation' e inverte le coppie di cifre vicine in un grande numero.

Mettiamo per esempio che il mio numero sia 1-352-537-8376. Non lo è davvero, perché internet è un posto orribile e non mi fido di voi, ma se lo fosse, sarebbe registrato sul telefono di mia moglie così:

3125358773f6

Il 1-3 è rappresentato da

31

The 52 è rappresentato da

25

Il 53 è rappresentato da

35

Il 7-8 è rappresentato da

87

Il 37 è rappresentato da

73

E il 6 è rappresentato da…

f6

Da dove cazzo è uscita quella 'f', chiedete? Sta lì a segnalare la fine del numero di telefono, ma per alcune orrende ragioni (di nuovo: reverse nibble notation) appare in anticipo rispetto all'ultima cifra.

È tipo farfallino per numeri.

Èfe tifipofo fafarfafallifinofo pefer nufumeferifi.

No, non sono incazzato con gli ingegneri.

(Ok, la reverse nibble notation è una conseguenza inevitabile del rappresentare numeri little-endian 4-bit in blocchi da 8 bit, che per gli ingegneri che lavorano su queste tecnologia sembra una scelta del tutto logica. Per babbani totali come me, un po' meno...)

Il byte PID (Protocol Identifier), onestamente, a questo punto, è per lo più spazio sprecato. Chiede circa 40 valori possibili, e dice al gestore come indirizzare il messaggio. Un valore di

34

significa che mia moglie sta spedendo un "I love you" a un fax; un valore di

36

significa che lo sta mandando a una linea voce, in quache modo. Poiché lo sta mandando come SMS al mio telefono, però, che riceve messaggi di testo, il PID è impostato su

0

(Come qualsiasi altro SMS inviato nel mondo moderno.)

1550772987270-2
Fig 5. Possibili valori PID. Immagine: Wikipedia

Il byte successivo è il DCS (o Data Coding Scheme, qui trovate dettagli), che dice al gestore e al telefono ricevente quale schema di codifica dei caratteri è stato usato. Mia moglie ha usato il GSM-7, l'alfabeto a 7 bit che vi raccontavo prima, ma potete immaginare qualcuno che vuole messaggiare in cinese, o qualcuno che sta inviando un'equazione matematica complessa via messaggio (ok, magari non riuscite a immaginarlo facilmente, scusate se ho grandi sogni).

Nel messaggio di mia moglie, il byte DCS era impostato a

0

il che significa che ha usato un alfabeto a 7 bit, ma che potrebbe aver cambiato quel valore per usare un alfabeto da 8 bit o da 16 bit, che le avrebbe permesso di usare potenzialmente molte più lettere, pur riducendo lo spazio disponibile. Incidentalmente, questa è la ragione per cui quando inviate per SMS un'emoji a un amico, avete meno caratteri a disposizione.

C'è anche una piccola sentinella nel byte DCS che dice al telefono se il messaggio debba auto-distruggersi dopo l'invio, stile Mission Impossible, che è piuttosto fico a pensarci.

Il periodo di validità (VP) può occupare uno spazio grande fino a sette byte, e solleva un altro aspetto di come funzionano i messaggi di testo. Date un'altra occhiata alla figura 4, di sopra. Vi aspetto qui.

Quando mia moglie preme 'invia,' il messaggio èinviato all'SMSC (SMS Service Center), che poi direziona il messaggio verso di me. Sono di sopra e il mio telefono è acceso, per cui ricevo il messaggio in una manciata di secondi, ma cosa succede se il mio telefono è spento? Di certo non può accettare il messaggio in entrata se non sta ricevendo energia di alcun tipo, per cui l'SMSC deve farne qualcosa.

Se l'SMSC non riesce a trovare il mio telefono, il messaggio di mia moglie rimbalza in giro nel sistema finché il mio telefono non torna connesso, e a quel punto schizza verso il destinatario. Mi piace pensare al SMSC che controlla continuamente ogni telefono online per vedere se è il mio, come un cucciolo che aspetta un umano fuori dalla porta: Questo odore è il mio umano? No. Questo odore è il mio umano? No. Questo odore è il mio umano? SÌ---SÌ-SALTA-ORA!

Il byte del VP dice al gestore per quanto tempo il cucciolo deve aspettare prima did annoiarsi e trovare un'altra casa. È una sorta di marca temporale o durata, e non fa altro che dire "se non vedi il ricevente comparire online entro il prossimo N numero di giorni, non spedirlo proprio." Il periodo di validità standard per un messaggio sono 10.080 minuti, che significa che se ci metto più di sette giorni ad accendere il mio telefono, non riceverò mai il messaggio di mia moglie.

Poiché c'è spesso un mucchio di spazio vuoto in un SMS, un paio di bit qui e lì sono dedicati a far sapere al telefono e al gestore esattamente quali byte sono inutilizzati. Se la SIM card di mia moglie si aspetta un SMS da 176 byte, ma ne riceve uno da soli 45 byte perché il messaggio è eccezionalmente breve, potrebbe confondersi e pensare che si sia rotto qualcosa. Il byte per la UDL (user data lenght) risolve il problema: trasmette esattamente il numero di byte che occupa il testo nel messaggio.

Nel caso di "I love you," l'UDL avvisa che il messaggio è di 9 byte. Verrebbe da pensare che sia da 10 byte, uno per ognuno dei 10 caratteri che contiene:

I-barraspaziatrice-l-o-v-e-barraspaziatrice-y-o-u

ma dato che ogni carattere è fatto da 7 bit anziché da 8 bit (ovvero un byte intero), possiamo eliminare un byte extra nella traduzione. Questo perché 7 bit*10 caratteri = 70 bit, che diviso per 8 (il numero di bit in un byte) = 8.75 byte, che arrotondato fa: 9 byte.

Il che ci porta alla fine di ogni SMS: il messaggio in sé o l'UD (User Data). Il messaggio può occupare 140 byte al massimo, ma, come ho appena detto, "I love you" sta tutto in 9. È incredibile quanto viene impacchettato in quei 9 byte — non solo il messaggio (il presunto amore di mia moglie per me, che è una cosa di per sé piuttosto complessa da comprimere in 0 e 1), ma anche il messaggio (devo scendere al piano di sotto e darle la buonanotte). Quei byte sono:

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

Alla fine della giostra, questo è il messaggio di testo conservato sulla SIM card di mia moglie:

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

(Nota: per ottenere il messaggio integrale, dovrei scavare ulteriormente. Ecco perché qui vedete il grosso del messaggio, ma in un paio di punti ci sono i punti interrogativi.)

Onde nell' Etere

E così (immaginatevi una voce da Super Quark), l'SMS deve ora intraprendere il suo viaggio dalla SIM card alla stazione più vicina, altrimenti nota come torretta cellulare o antenna cellulare. Per farlo, il telefono di mia moglie deve convertire una stringa di 176 byte in una da 279 byte leggibile dal protocollo SS7, convertire quei byte digitali in un segnale radio analogico, e poi inviare quei segnali nell'etere a una frequenza tra gli 800 e i 2000 megahertz. Questo significa che ogni onda ha picchi con una distanza tra i 15 e i 35 cm uno dall'altro.

1550773098947-figure6
Fig 6. lunghezza d'onda. Immagine: Cathryn Virginia

Per poter inviare e ricevere segnali in modo efficiente, le antenne non devono essere più piccole della metà della dimensione delle onde radio con cui hanno a che fare. Se le onde cellulari sono tra i 15 e i 35 cm, le loro antenne devono essere tra i 7 e i 18 cm. Ora fermatevi a pensare all'altezza media di un telefono cellulare e perché non sembrano diventare tanto più piccoli di come sono.

(Ci sono ovviamente modi intelligenti per aggirare i limiti del rapporto tra dimensioni dell'antenna e della lunghezza d'onda, come usare diversi materiali o piegare l'antenna, ma per ognuno ci sono pro e contro).

Grazie a un bel po' di ginnastica che ci metterei troppo a spiegate, all'improvviso il telefono di mia moglie spara un pacchetto di informazioni da 279 byte che contiene le parole "I love you" alla velocità della luce in ogni direzione, che si dissolverà nel nulla dopo 50 chilometri.

Ben prima che arrivi così lontano, però, il segnale colpisce la Stazione Base AT&T HSPA ID199694204 LAC21767. Questa stazione radio base (BTS) è a circa cinque isolati dalla mia pasticceria preferita a Hazelwood, La Gourmandine, e per quanto sia riuscito a scoprire la sua posizione usando una app Android che sia chiama OpenSignal, l'antenna in sé è così ben nascosta che non sono riuscito a vederla fisicamente.

La parte più affascinante è che riesca davvero a raggiungere la stazione radio base, considerato tutto quello che succede contemporaneamente. Non solo mia moglie mi sta scrivendo "I love you" nella banda intorno ai 1000 mhz dello spettro elettromagnetico; decine di migliaia di altre persone stanno parlando al telefono o mandando messaggi in un raggio di 50 km intorno a casa mia, oltre il quale i segnali cellulari si disintegrano. Oltre a questo, una manica di segnali radio e TV fanno a gara per la nostra attenzione nello stesso spazio, insieme a luci visibili che rimbalzano qui e lì, per nominare un paio di altre onde elettromagnetiche che potrebbero mettersi in mezzo.

Come ha spiegato il fisico teoretico Richard Feynman nel 1983, è un po' come se la torretta cellulare fosse un piccolo insetto cieco che si riposa sul pelo dell'acqua da un lato di una piscina, e basandosi solo sulla direzione delle onde che lo fanno rimbalzare è in grado di ricostruire chi sta nuotando e dove.

Feynman che discute di onde.

In parte per colpa della complessità dei segnali che competono, ogni stazione radio base generalmente non riesce a gestire più di 200 utenti attivi (cioè che stanno parlando o inviando dati) allo stesso tempo. Per cui quell'"I love you" colpisce la mia stazione radio base locale, a circa un chilometro da casa mia, e poi si spara nel vuoto in ogni direzione, finché non scompare nel rumore come tutti gli altri.

Switching

Tutto sommato, sono piuttosto fortunato. Se io e mia moglie avessimo avuto gestori telefonici diversi, o fossimo stati in città diverse, il suo messaggio avrebbe compiuto un tragitto molto più tortuoso.

Il messaggio di mia moglie è fatto passare per il canale SS7 a 279 byte e oltre, alla stazione radio bae locale (BTS) vicino alla pasticceria. Da lì, viene diretto al BSC (Base Station Controller), che è il cervello non solo della nostra antenna, ma di diverse altre antenne nei paraggi. Il BSC lancia il messaggio all'MSC (mobile switching center) di AT&T a Pittsburgh, che si serve dell'SCA del messaggio (vi ricordate il service center address incorporato dentro ogni SMS? È qui che entra in scena) per farlo arrivare all'SMSC (short message service center) appropriato.

È più facile decifrare questa zuppa di lettere dell'alfabeto guardando il diagramma della figura 7; ho appena descritto i passaggi 1 e 3. Se mia moglie avesse un altro gestore, andremmo avanti a 4-7, perché è lì che i diversi gestori comunicano tra di loro. L'SMS deve passare dall'SMSC a un centralino globale e poi rimbalzare potenzialmente per il mondo prima di trovare la strada verso il mio telefono.

1550773208867-figure7
Fig 7. SMS routed through a GSM network. Image: Cathryn Virginia

Ma abbiamo entrambi lo stesso gestore (AT&T) e i nostri telefoni sono connessi alla tessa torretta, per cui dopo il passaggio 4, i 279 byte d'amore fanno un'inversione a U e tornano ad attraversare lo stesso SMSC, la stessa stazione di base, pur finendo sul mio telefono, anziché sul suo. Un viaggio da qualche decina di chilometri, in un battito di ciglia.

Sent-to-SIM

Buzzzzz. La mia tasca vibra. Una notifica mi avverte che è arrivato un SMS dalla mia nano-SIM, una scheda di circuito grande come l'unghia del mio mignolo. Come Bilbo Baggins e tutti i bravi avventurieri, non è più lo stesso alla fine del viaggio.

1550773528587-figure8
Fig 8. messaggio ricevuto, diverso dal messaggio inviato (mostrato nella fig 3) Immagine: Cathryn Virginia

Nella figura 8 è mostrata la struttura del messaggio "I love you" ora custodito sul mio telefono. Confrontando le figure 3 e 8, notiamo un paio di differenze. Lo SCA (il numero del SMSC), il PDU-type (dettagli meccanici), il PID (telefono-a-telefono, anziché, per esempio, telefono-a-fax) il DCS (lo schema di codifica dei caratteri), l'UDL (lunghezza del messaggio), e l'UD (il messaggio in sé) sono per lo più uguali, ma la VP (la data di scadenza del messaggio) l'MR (il numero identificativo del messaggio) e il DA (il mio numero) non ci sono più.

Al loro posto, sul mio telefono, ci sono due informazioni nuove: l'OA (l'indirizzo di origine, ovvero il numero di mia moglie) e l'SCTS (o "service center time stamp", ovvero l'indicazione temporale di quando mia moglie ha inviato il messaggio).

Il numero di mia moglie è conservato nello stesso antipatico sistema di codifica — la reverse nibble notation — con cui era salvato il mio numero sul suo telefono, mentre la marca temporale appare nello stesso formato con cui era salvata la data di scadenza sul telefono di mia moglie.

Queste due inversioni hanno perfettamente senso. Il suo telefono aveva bisogno di raggiungermi entro un certo periodo di tempo a un certo indirizzo, mentre io ora devo sapere da chi è stato inviato quel messaggio e quando. Senza l'indirizzo, per intenderci, non saprei se quel "I love you" arriva da mia moglie o da mia madre e la mia interpretazione sarebbe inevitabilmente diversa da caso a caso.

Attraverso uno schermo luminoso

Sfruttando la stessa tecnica con cui qualsiasi computer traduce un flusso di byte in una serie di coordinate (x,y) assegnandoli colori specifichi, lo schermo del mio telefono riceve il segnale da interpretare

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

e lo visualizza come "I love you" in bianco e nero su sfondo retroilluminato. È un processo interessante che non riguardo solo gli smartphone. Proviamo a capire come queste istruzioni vengono trasformate in punti luminosi.

Samsung ha battezzato il mio display Super AMOLED (Active Matrix Organic Light-Emitting Diode — diodo organico a emissione di luce a matrice attiva). L'acronimo non dà molte informazioni sul suo funzionamento. Evitiamo quindi di perdere tempo nel tentativo di spiegarlo e analizziamo direttamente la sua tecnologia.

All'interno di ciascuno dei 13 pollici quadrati dello schermo del mio telefono, ci sono circa 330.000 piccole fonti di luce, chiamate pixel. Ognuno di questi pixel ha una larghezza di circa 45µm (micrometri): più sottile di un capello umano. Il totale è di quasi 4 milioni di pixel, tutti impacchettati nel palmo della mia mano.

Ma sapete già come funzionano gli schermi. Ogni punto di luce — come il Dio cristiano o il motto dei tre moschettieri (d'Artagnan escluso) — è basato su un accordo di tre che valgono uno. Rosso, verde e blu si combinano per produrre una luce bianca in un unico pixel. Modificando la luminosità di ognuno dei tre canali si ottengono le varie sfumature dei colori visibili. Dato che 4 x 3 = 12, il risultato sono 12 milioni di piccole fonti di luce che restano inattive dietro il mio schermo nero, aspettando che io prema il pulsante di accensione per leggere il testo del messaggio spedito da mia moglie.

1550773645690-iPhoneX_Diamond_Sub-Pixels_1a
Fig 9. La disposizione dei sotto-pixel di uno schermo OLED Samsung. Immagine: DisplayMate Technologies

Ogni pixel è un diodo organico che emette luce. Il diodo, ovvero un tubo elettronico a due elettrodi, è solo un modo più raffinato di dire che questi due elettrodi sono schiacciati come le fette di pane di un sandwich:

1550773763934-figure10
Fig 10. un sandwich di elettricità. Immagine: Cathryn Virginia

In ogni caso gli strati sono questi: una linea catodica (con carica negativa), uno strato di molecole organiche (composti in cui atomi di carbonio sono uniti agli atomi di altri elementi), una linea anodica (con carica positiva).

Quando il telefono richiede l'accensione dello schermo, invia elettroni dallo strato catodico allo strato anodico. Le molecole organiche che costituiscono il ripieno di questo sandwich intercettano l'energia. In risposta, iniziano ad emettere luce visibile, cioè fotoni, attraverso lo strato anodico che è trasparente, raggiungendo così lo schermo e i miei occhi che stanno leggendo il messaggio.

Visto che i pixel sono costituiti da tre fonti di luce (rosso, verde e blu), in realtà per ogni pixel ci sono tre di questi sandwich. Gli accoppiamenti dei diodi sono gli stessi, cambiano solo le molecole organiche: poli(p-fenilene) per la luce blu, politiofene per la luce rossa e poli(p-fenilene vinilene) per la luce verde. Ognuno di questi materiali è leggermente diverso, e quindi si illumina con colori diversi quando è stimolato elettricamente.

Fatto curioso: i materiali per i sotto-pixel blu bruciano/si consumano molto più velocemente, a causa di un processo chiamato "exciton-polaron annihilation" (con cui si fa riferimento a un processo che riguarda due quasiparticelle — eccitone e polarone — e che suona davvero eccitante, concorderete con me).

Tutti i 4 milioni di pixel sono disposti su una matrice indicizzata. Un indice digitale funziona esattamente come quelli dei libri: quando il mio telefono vuole che un pixel specifico assuma un determinato colore, cerca quel pixel nell'indice, e poi invia un segnale all'indirizzo che ha trovato. Ed ecco fatto.

(Simpatico effetto collaterale di questa spiegazione: ora sapete cosa significa "Diodo organico a emissione di luce a matrice attiva".)

Il sistema operativo del mio telefono interpreta il testo del messaggio di mia moglie, calcola la forma di ogni lettera, e mappa quelle forme per la matrice indicizzata. Dopodiché, invia gli impulsi elettrici corretti attraverso lo schermo Super AMOLED per mostrare quelle tre paroline che hanno scatenato guerre e sciolto maledizioni.

La cosa più strana di tutte è che i miei occhi non vedranno mai la scritta "I love you" tramite una luce emessa dagli AMOLED in corrispondenza delle lettere, anzi, è l’esatto contrario. Il telefono crea l'illusione del testo attraverso le parti dello schermo che non illumina, impostando alla massima luminosità ogni rosso, verde e blu dei pixel in cui non si trova il testo e lasciando spente le parti dove dovrebbero trovarsi le lettere. Si tratta di un processo estremamente complesso che, in qualche modo, è anche banale allo stesso tempo.

1550782204487-header6
Fig 11. Spazio negativo. Immagine: Cathryn Virginia

Nel mostrarmi tutto tranne il messaggio di testo inviato da mia moglie, consentendomi di leggerlo attraverso le parti che non corrispondono alle lettere, il mio telefono smentisce una leggenda metropolitana: che la comunicazione sia semplice. Ciò che percepiamo come velocità di trasmissione e comodità di fruizione in un messaggio, nasconde in realtà una miriade di processi di mediazione.

E quella mediazione non è solo tecnica. Il messaggio di mia moglie non mi avrebbe raggiunto se non avessi pagato l’abbonamento al servizio telefonico e se la transazione del mio pagamento non fosse andata a buon fine grazie al lavoro svolto dietro le quinte da un piccolo esercito di persone che gestiscono i sistemi finanziari. I tecnici mantengono in funzione le celle telefoniche, raggiunte attraverso una rete di strade finanziate in parte grazie alle tasse federali raccolte da centinaia di milioni di americani in 50 Stati. Dal momento che un numero così enorme di transazioni avviene ancora per posta, se domani il sistema postale degli Stati Uniti collassasse, il servizio telefonico vacillerebbe. Gli operai sfruttati in Sud America e in Asia hanno assemblato le componenti di tutti e due i nostri telefoni. Proprio mentre state leggendo, i programmatori sovraccarichi di lavoro della Silicon Valley stanno scrivendo linee di codice per assicurare che i nostri telefoni comunichino continuamente senza interruzioni.

Questa è la quantità enorme di lavoro e strutture che si celano sotto un banale messaggio di 10 caratteri. Un testo che, a dire il vero, ha un significato molto più esteso rispetto alle semplici parole di cui è composto. A livello inconscio, il mio cervello scava in anni di interazioni con mia moglie per decodificare il messaggio che appare sul mio telefono, ma tra lei e me si frappone ancora una matassa di mediazioni sociali e tecniche — composta da persone, processi storici e agenti socio-economici — impossibile da districare.

Epilogo

Quindi eccomi qui, nel mio studio una domenica sera tardi. Dalla camera da letto al piano di sotto, mi moglie ha digitato il testo ”I love you,” e il messaggio ha attraversato circa 12 metri per raggiungere il mio telefono in pochi secondi. Afferro il significato del messaggio: è il momento di augurarle la buonanotte, e magari concludere questo saggio. Quindi digito le ultime parole, un po' più consapevole rispetto a prima della complessa stratificazione di chilometri e chilometri, segnali, anni di storia, sforzi tecnici, tutti necessari a evitare che mia moglie debba urlare per farsi sentire fino a qui, per dirmi che è ora di riposarmi un po'.

Ringrazio Christopher Warren, Vika Zafrin e Nechama Weingart per i commenti alle bozze precedenti del testo.

Questo articolo è stato pubblicato originariamente su Motherboard US.