Il problema della topologia.

Dopo l’articolo precedente mi sono accorto di quanto i piu’ siano praticamente ignari del problema della topologia della rete. Abituati a discutere di banda larga nella rete di accesso, quasi nessuno parla dei problemi della rete di trasporto, che invece impattano ben di piu’ sulle performance, e che -se non risolti- impediscono alla rete di accesso , per quanto veloce, di essere efficace. Provo a fare il divulgatore.

Allora, il problema di internet e’ analogo ad un problema di traffico automobilistico, con il solo “piccolo” problema che il pacchetto di per se’ non sa che strada prendere.
Se le automobili hanno un autista intelligente, o addirittura un navigatore che istruisce sempre sulla via piu’ breve -si spera-,  non hanno bisogno di essere guidate. In un certo senso, state distribuendo sulla capacita’ di calcolo dell’automobilista -o del navigatore- il lavoro che viene fatto per calcolare la rotta piu’ breve.
Adesso immaginiamo di avere autisti che non conoscono la strada e che non sanno calcolarla. Sanno solo dove vogliono arrivare. Immaginiamo che per aiutarli abbiamo messo un vigile su ogni incrocio ed ogni bivio. E poi abbiamo messo un cartello, tipo quello dei taxi, sulla cima dell’auto. Quando l’auto si avvicina ad un bivio, il vigile legge la destinazione, consulta la sua mappa, se non e’ sulla mappa chiede ad un collega, e poi indica all’auto quale strada prendere.
Il sistema, a patto di disporre di abbastanza vigili, potrebbe anche funzionare, ed ha funzionato sino’ora. Nel senso che e’ piu’ o meno cosi’ che funziona il routing su internet. Il pacchetto sa solo dove vuole andare e da dove viene, e ci sono i router che in qualche modo ottengono la mappa, e dicono, pacchetto per pacchetto, dove diavolo svoltare ad ogni incrocio ed a ogni bivio.
Ci sono delle varianti. Per esempio, quella di mettere delle etichette nelle strade, come si fa quando diciamo “Autostrada A1”. Se voglio andare da Bologna a Milano non devo per forza fermarmi a Modena, Reggio, Parma, etc, per chiedere di aggiornare la rotta al prossimo step. La strada ha un’etichetta, e io seguo l’etichetta.
Un’altra variante e’ laseparazione totale del data plan e del control plan, cioe’ quello di avere qualcuno molto bravo con le mappe, il quale viene chiamato dal vigile (immaginate che abbia cuffia e microfono), e di volta in volta interroga qualcun altro sul da farsi.  In questo caso abbiamo separato il CPE, Computing Path Engine, dal resto e ne abbiamo fatto una funzione a parte.
In ogni caso, avrete intuito quale sia il prezzo di questo approccio di traffico guidato da entita’ che stanno agli incroci: a prescindere da quanto sia ampia e capace la strada, tutto dipende da quanto veloci ed efficienti siano queste guide che abbiamo messo ad ogni bivio od incrocio.
Qual’e’ la situazione migliore, per loro? La situazione migliore e’ quanto il traffico segue quasi sempre il percorso piu’ breve, ovvero quando la scelta N-1 “porta bene” alla scelta N.
Cosa significa? Immaginiamo di avere delle autostrade, diciamo Genova Milano Torino. Un bel triangolo.
Il nostro autista potrebbe scegliere di andare da Genova a Torino passando da Milano. In questo caso, essendo uno spazio metrico con una norma a due, avra’ un percorso piu’ lungo.
Ora, il punto e’: siccome il vigile a Milano leggera’ che la destinazione e’ Torino, il pacchetto arrivera’ a Torino comunque perche’ il vigile di Milano leggera’ la destinazione e gli indichera’ lastrada per Torino.
La sfiga, pero’, e’ che il pacchetto percorre una strada piu’ lunga. E quindi ci mette piu’ tempo. Allora direte: ma se allarghiamo la banda, e passano piu’ macchine al secondo, allora ce la facciamo nello stesso tempo di prima.
No. No perche’ il vigile di Milano adesso deve guidare quelli che fanno Milano-Genova, quelli che fanno MIlano-Torino, e siccome sbagliate strada, anche quelli che fanno Genova-Torino. Siccome deve guidare piu’ automobilisti, diventa piu’ lento.
Allora direte: ma oltre ad allargare la Genova Milano e la Milano Torino, possiamo anche aumentare il numero di vigili a Milano, o almeno renderli piu’ veloci. Aha.
Sembra sensato, ma:
  • Chi paga piu’ vigili?
  • Chi paga strade piu’ larghe?
  • Perche’ mai ?
La prima e la seconda domanda sono semplici: stiamo facendo dei lavori che non hanno alcun ritorno. Stiamo supportando un traffico che voleva andare da Genova a Torino, che poteva andarci direttamente, che ci sarebbe andato direttamente, e che a non paga il comune di Milano quando sceglie una strada piu’ lunga che passa per Milano.
 
Perche’ il comune di Milano dovrebbe finanziare la gente che da Genova sbaglia e prende la strada piu’ lunga? E che cosa ci guadagna?
Questo puo’ farvi capire quanto sia necessario che i pacchetti seguano sempre la strada piu’ breve. Se non lo fanno, occupano strade che non dovevano, e sara’ necessario allargarle solo per supportare un errore. Non paga, ma costa.
Adesso immaginate di gestire la rete stradale del nord italia. E un grande supermercato, che so io Carrefour, annuncia che estrarra’ a sorte un punto vendita nel quale, per un giorno, sara’ tutto gratis.
Avete presente cosa succedera’: code di macchine ovunque. A questa risposta i farlocchi alla Wired rispondono “basta allargare la banda”. Aha. E quale strada allarghiamo, genius? Non sappiamo quale punto attirera’ traffico. (1)
Nel mondo ideale:
  • Esiste sempre un percorso diretto tra A e B (es: autostrada).
  • Una volta imboccata la strada giusta, basta seguirla sino a quando si incontra il cartello (es: autostrada)
  • Serve solo che qualcuno vi porti all’entrata dell’autostrada e vi indichi UNA volta la strada.
Diversi standard hanno cercato di introdurre il labeling del traffico a questo scopo, per passare dall’approccio “chiedo ad ogni incrocio” all’approccio “prendo l’autostrada per”. MPLS ed altri. Ma e’ un post divulgativo, giusto? Niente sigle strane.
Rimane pero’ il problema di gestire il traffico. Cosa succede se in una strada c’e’ troppo traffico? Succede che il vigile che deve indicare a tutti da che parte andare rallenta. In che modo cresce il lavoro di questo vigile?
Cresce col numero delle auto. Ovvio. Cresce con la loro velocita’: nel senso che se ha solo un decimo di secondo per leggere la destinazione scritta sulla capote e alzare il braccio per indicare, e voi percorrete gli ultimi 100 metri    in un centesimo di secondo, vi dovrete fermare ad aspettare che qualcuno vi indichi la strada.
Avrete cosi’ una strada veloce e una coda incredibile di fronte al vigile. Per questo i grandi router -che sono i nostri vigili- hanno delle cache e delle code di pacchetti.
Adesso andiamo al caso dei grandi datacenter. Allora, abbiamo il triangolo Genova Torino Milano. Apre l’ IKEA tra Milano e Torino, sull’autostrada tra Milano e Torino.
Di per se’ l’ingresso in autostrada e’ grande abbastanza, la Milano-Torino e’ grande abbastanza e quindi non dovremmo avere problemi. Invece no: siccome le nostre auto non sannno che strada prendere da Genova, e devono chiedere ai vigili, il vigile dira’ al 50% della gente di fare Genova-Milano-Ikea e l’altra meta’ di fare Genova-Torino-Ikea.
Che cosa succede pero’? Succede che il vigile di Milano e quello di Torino si trovano con il traffico proveniente da Genova da guidare all’ IKEA. Quindi, anche se l’autostrada Milano-Torno basterebbe, in realta’ abbiamo posto un problema di carico ai router -i vigili- e abbiamo caricato un tratto lungo di rete.
MA il carico sui vigili di Torino e Milano -colpa di chi va all’ IKEA da Genova- non si ripercuote solo su chi viene da Genova. Si ripercuote su CHIUNQUE passi, parta o arrivi a Milano e Torino.
La tentazione che abbiamo e’ di creare un percorso diretto tra Genova e l’ IKEA. Perche’? Perche’ ovviamente con un solo vigile ce la caviamo. Perche’ cosi’ l’ IKEA non carica  la rete di Milano e Torino col traffico che viene da Genova.
Se cioe’ abbiamo delle entita’ che indicano ad ogni auto dove andare, non conta solo la larghezza della strada, ma anche la lunghezza del percorso ed il numero di incroci da attraversare.
Cosi’, quando apre un datacenter Google, il problema non e’ di portare UN SOLO percorso verso il datacenter. Tutti quelli che hanno traffico devono cercare percorsi piu’ vicini possibile.
Adesso supponiamo che TUTTI vogliano andare all’ IKEA tra milano e Torino. Anzi, che IKEA apra solo un negozio per continente, e che in Europa il solo IKEA sia quello tra Milano e Torino. Tutti vogliono Facebook, giusto?
Allora, tutta europa vuole andare all’ IKEA tra Milano e Torino. Cosa succedera’? Che tutti inizieranno a creare autostrade in quella direzione. Il ministero dei trasporti francese fara’ una bella autostrada da 18 corsie verso Torino. I tedeschi faranno la loro autobahn a tre piani con la strada foderata in pelliccia fucsia verso Milano. Dalla Spagna faranno una bella litoranea a 12 corsie. E cosi’ via.
Cosa risulta ? Innanzitutto, non e’ ben chiaro chi paghi. Chiaramente non IKEA. IKEA avrebbe solo fatto il suo negozio li’. E’ libera di farlo, no? Il guaio e’ che non ha tenuto conto delle conseguenze sul traffico europeo.
Immaginate pero’ come si trovi il vigile di Milano che adesso deve gestire il traffico da 14 paesi europei.  Non ce la fara’ mai, anche se a Milano lavorare e’ Bello, brutti terroni. E quello di Torino, che deve gestire il traffico da tutto l’ovest europeo? Anche quello sudera’ parecchio (ma con la dovuta cortesia).
Bene.
A questo punto arrivate voi con i vostri discorsi di Wired sulla banda larga. E dite: ma se la porta del mio garage e’ molto grande e la strada sotto casa e’ molto grande, e la benzina costa poco, allora girero’ molto bene.
No, non e’ vero. Se diamo a tutta italia la benzina meno cara, e’ piu’ facile che vadano all’ IKEA tra milano e torino. Ci andranno piu’ spesso e piu’ volentieri. Ci compreranno di piu’ -ed IKEA sorriderebbe- ma che diavolo succederebbe a tutti i vigili che negli incroci devono dare indicazioni ? Che si trovano tutta italia da dover guidare.
Gli effetti? Succedera’ che ci saranno code sull’adriatica. Allora i vigili, che ogni tanto si parlano , aggiornano la mappa e mandano tutti sull’autostrada del sole. Ma presto si riempie anche questa, perche’ i vigli lungo il percorso sono carichi e faticano, anche se la strada e’ libera.
Quando si congestiona l’autosole piu’ dell’adriatica, i vigili sposteranno ancora il traffico sull’adriatica. Che a sua volta si riempira’. E cosi’ la rete “oscillera”.
Ora, supponiamo che i vigili si parlino ogni ora. Soltanto ogni ora sanno che l’autosole e’ meno piena dell’adriatica. Allora riempiranno l’autosole per almeno un’ora, scaricando l’adriatica, e solo dopo un’ora inizieranno a deviare il traffico. Cosi’, l’oscillazione dura un’ora.
E se il viaggio ne dura otto? Abbiamo perso il 12.% del tempo ad ogni coda? Si, probabilmente. Anzi, forse peggio, perche’ abbiamo anche il tempo che perdiamo per passare dall’adriatica all’autosole. E di questi cambi in 8 ore possiamo farne , per esempio, 4.
Cosi’, non e’ pensabile allargare la rete di accesso invogliando gli utenti a fare traffico, se non abbiamo una rete con una buona topologia.
Ora, oltre ad IKEA abbiamo tanti possibili posti ove la gente potrebbe voler andare. Il montaggio svedese e’ un’arte che tutti amano, ma esistono anche altre cose. E i grandi magazzini cambiano di continuo. Come facciamo allora ad avere una buona topologia?
Dobbiamo essere in grado di dire a tutti i vigili quale sia la strada piu’ veloce per ogni punto, e sarebbe meglio se i grandi negozi aprissero sempre dove ci sono molti percorsi brevi da ogni luogo.(2)
Darvi macchine piu’ veloci, allargare le strade vicino al punto di partenza, insomma invogliare la gente a girare quando la topologia e’ cattiva e impredicibile, puo’ diventare controproducente se la topologia e’ cattiva.
Nel mio esempio del post precedente ho detto che se NetFlix arrivasse in italia, e avesse lo stesso successo degli USA, la rete italiana collasserebbe se non nelle vicinanze del mix, di alcuni punti di snodo, di un anello a nord di Roma e poco piu’. Perche’? Perche’ se anche c’e’ banda passante vicino al punto di destinazione, la topologia italiana e’ fatta in modo tale da caricare i router in maniera eccessiva, creando colli di bottiglia , oscillazioni e carichi eccessivi.
Allora, teniamo l’esempio delle auto stupide e chiediamoci: che cosa e’ di preciso la novita’ in arrivo.
E’ semplice. Immaginate di poter dire ai vostri vigili dove mandare le auto in tempo reale. Immaginate che ogni percorso, che so io, “Abbiategrasso-Ikea”, “Casalecchio-Ikea”,  abbia un’etichetta, come se ogni tratto fosse un’autostrada. E immaginate di poter piazzare queste etichette in tempo brevissimo, su tutti i vigili del paese. E non solo: immaginate di scrivere ANCHE l’indirizzo di partenza sulla capote dell’auto.
Immaginate adesso che gli IKEA siano due. E che il giorno di chiusura IKEA sud mandi la gente ad IKEA nord. Questo fara’ impazzire il traffico, ma se possiamo scrivere rotte cosi’ in fretta su tutti i vigili , e ogni strada ha un’etichetta, possiamo decidere SUBITO che una persona di Salerno va ad IKEA SUD.Qualsiasi sede di IKEA voglia raggiungere, fosse anche IKEA Toronto, viene sempre mandato al negozio piu’ vicino.
MEttiamo la scritta “IKEA SUD” in aggiunta alle targhette in cima all’automobile. Dopodiche’, ogni vigile sa che quell’auto debba andare ad IKEA sud, perche’ abbiamo deciso che tutte le auto del sud italia vanno li’.
Cosi’, IKEA il giorno di chiusura manda la gente del sud verso IKEA nord, ma la rete stradale manda ugualmente le auto del sud verso IKEA sud!
Cosa puo’ fare IKEA(3) a quel punto? Puo’ parlare con chi gestisce la rete stradale e spiegare un pochino che cosa intende fare. E partecipare alle spese: se viene gente da tutta Italia, non deve pagare solo il tratto di strada dell’ultimo chilometro, ma pagare un pochino tutti quelli che allargano le strade per colpa sua.
Altrimenti? Altrimenti la nuova rete stradale continuera’ a mandare ad IKEA sud tutti i clienti del sud. E se IKEA li voleva mandare a nord perche’ era chiusa? Eh, tutti questi meridionali scenderanno dall’auto all’arrivo, si stupiranno perche’ IKEA nord e’ cosi’ simile a quella di Palermo, si stupiranno perche’ ci hanno messo poco, ma la troveranno chiusa.
A quel punto, potremo allargare la porta del garage di casa e delle strade cittadine, invogliando piu’ automobili a girare piu’ velocemente, tanto non temiamo piu’ gli scherzi di IKEA(3) e i nostri vigili non devono per forza guidare auto sperdute.
FOTO: un momento particolarmente poetico del BGP-TE (http://tools.ietf.org/html/rfc5543)
Uriel
(1) Addirittura qualche genio ha introdotto l’abitudine di usare il BGP come traffic attractor.
(2) E’ il motivo della crescita esponenziale di Bologna. Ci sono piu’ percorsi BREVI e semplici.
(3) No, non ce l’ho con IKEA. Potete metterci la COOP, se vi va. Ma la coop sei tu, e tu mi stai un pochino sul cazzo. Vedi un po’.