Il tempo di andata e ritorno e l'intervallo fra pacchetti
Grandezze fuori sistema · si esprimono in secondi SI · il RTT e il Δt fra pacchetti
Nel 1983 Mike Muuss, mentre cercava l'origine di un guasto in una rete, scrisse in una sola sera un piccolo programma che mandava a una macchina una breve richiesta e stampava il tempo trascorso fino alla risposta. Il nome lo prese dai sonaristi: un sommergibile lancia un clic e ascolta l'eco, e la distanza si calcola da una sola differenza di tempi. Da quell'abitudine di misura è nata l'unità: ciò che si registra non è l'andata né il ritorno, ma l'intero anello.
La finezza sta qui: l'andata e ritorno si misura con un solo orologio, poiché la richiesta parte e la risposta arriva alla stessa macchina, e dunque la differenza delle letture non dipende dall'accordo degli orologi all'altro capo. Il ritardo di sola andata non si ottiene così facilmente: per esso occorrono orologi accordati più finemente del ritardo stesso, cioè o un protocollo a parte di trasferimento dell'ora, o un ricevitore del tempo satellitare a ciascun capo.
01 · Definizione
Il tempo di andata e ritorno è l'intervallo fra l'invio di un pacchetto e l'arrivo della risposta, misurato da uno e lo stesso orologio. L'intervallo fra pacchetti è il tempo che separa l'uscita di due pacchetti vicini di uno stesso flusso; non lo fissa la rete, ma chi la carica.
L'andata e ritorno si compone di tre addendi di natura diversa, e distinguerli importa, perché ciascuno si cura in altro modo. Il primo è il tempo di propagazione, che fissano la lunghezza del percorso e la velocità della luce nella fibra, e non cede a nulla se non a un cavo più corto. Il secondo è la serializzazione, il tempo di spingere il pacchetto nella linea, e cala quanto più la tratta è veloce. Il terzo è la coda nei buffer dei nodi intermedi, e soltanto esso dipende da quanto la rete sia carica in quel momento.
Di qui segue una circostanza poco evidente: si può allargare la tratta di dieci volte e l'andata e ritorno non muta affatto, poiché l'allargamento toglie soltanto la serializzazione, mentre le code e la lunghezza del percorso restano dov'erano. Anzi, nei buffer fatti con margine «per ogni evenienza» i pacchetti non si perdono ma attendono, e l'andata e ritorno sotto carico cresce fino ai secondi — è questo il male che chiamarono bufferbloat.
L'intervallo fra pacchetti non sta accanto per caso: quasi tutto ciò che accade a un flusso si decide nel rapporto fra l'intervallo e l'andata e ritorno. Finché i pacchetti escono più spesso di quanto tornino i riscontri, il mittente lavora alla cieca e deve tenere nel percorso tanti dati quanti fisicamente vi entrano — e quella quantità è proprio il prodotto della portata per l'andata e ritorno.
Scegliete un percorso e fate scorrere il cursore sulla dimensione del pacchetto. Il pacchetto azzurro parte dall'armadio di sinistra verso quello di destra e torna arancione; la banda sotto il percorso scompone l'andata e ritorno in tre addendi, perché si veda in che cosa si consumi davvero. Allargare la tratta accorcia solo la parte di mezzo — quella che sui percorsi lunghi è comunque la minore.
La memoria calò di prezzo prima che gli algoritmi cambiassero, e i costruttori presero a mettere negli apparecchi code da centinaia di pacchetti, ritenendo che un buffer in più non potesse nuocere. Venne il contrario: una coda piena non perde i pacchetti ma li trattiene, il mittente non riceve alcun segnale di congestione e continua a caricare. L'andata e ritorno di una tratta domestica sotto carico arrivò a un secondo e mezzo, restando la portata la stessa.
02 · Conversione
Andata e ritorno, condotta e flusso di pacchetti
Inserite un'andata e ritorno in unità qualsiasi, e la scheda la convertirà nelle altre e poi calcolerà ciò che da essa dipende: quanti dati stanno nel percorso a diverse portate, quale limite ponga la finestra e quale intervallo fra pacchetti scelgano i vari codificatori.
La portata per calcolare la capacità è presa dal percorso scelto nella parte interattiva; nelle regolazioni fini la si può fissare a un gigabit.
Il ping non misura proprio ciò che serve a un programma applicativo. Il trattamento di una richiesta di eco su un nodo lontano segue una via a parte, spesso aggirando il calcolatore principale, e perciò il suo ritardo non coincide con quello di una connessione vera; altri apparecchi, invece, rispondono a tali richieste per ultimi, o non rispondono affatto. Per questo un ping grande non sempre significa una connessione lenta, né uno piccolo ne garantisce una veloce.
| Valore | Nota | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · Ordini di grandezza
scala logaritmica: dal microsecondo al secondo04 · Strumenti di misura
Con che si coglie il tempo di andata e ritorno
Il programma manda un pacchetto con una marca temporale e attende il suo ritorno, e la differenza delle letture è l'andata e ritorno. Il suo pregio sta nel bastare un solo orologio e nel non chiedere all'interlocutore nulla se non la disposizione a rispondere; il suo difetto, nel rispondere per una via a parte, non necessariamente rapida.
Registrato l'intero scambio, l'andata e ritorno si ricava dal flusso stesso: dal tempo fra l'uscita di un segmento e l'arrivo del suo riscontro. Così si misura proprio il ritardo che vede il programma applicativo, e per di più si rende visibile la dispersione — ciò che in una conversazione dà più fastidio di un ritardo uniforme.
Gli apparecchi che marcano il tempo direttamente nel chip di rete tolgono l'incertezza che introduce il sistema operativo e portano la risoluzione a decine di nanosecondi. Scambiano secondo un accordo a parte in cui ciascun capo pone due marche — ed è ciò che permette di dividere l'andata e ritorno nelle sue due metà disuguali.
Il ritardo di sola andata si misura soltanto dove gli orologi di entrambi i capi sono portati a un tempo comune più finemente del ritardo stesso: per questo si picchettano le linee con un protocollo di sincronizzazione a parte o si installano ricevitori del tempo satellitare. Senza di ciò l'andata e ritorno resta l'unica cifra onesta.
05 · Regole di scrittura
L'andata e ritorno con la sua unità, la dispersione a parte
La designazione si scrive con tre maiuscole latine senza punti; il valore, con la sua unità e l'indicazione di che cosa sia stato misurato di preciso: un sondaggio singolo, la media di una serie o la sua mediana. La dispersione si dà accanto come numero a parte, poiché una media da sola nulla dice sul fatto che i pacchetti vadano regolari.
La prima scrittura fa a meno dell'unità e con essa del senso: centotrenta di che cosa — millisecondi o microsecondi? La seconda spaccia una supposizione per una misura, mentre la via d'andata e quella di ritorno seguono spesso strade diverse e le metà escono disuguali. La terza ripete l'errore più diffuso e prende l'andata e ritorno per una proprietà della tratta e non dell'intero percorso. La quarta confonde le grandezze: un intervallo fra pacchetti non è un'andata e ritorno.
06 · Unità vicine
L'andata e ritorno descrive il percorso dal lato del tempo, la portata dal lato della quantità, e il loro prodotto dà una terza grandezza, la capacità del percorso, senza la quale non si regola alcuna connessione veloce a grande distanza. Accanto sta la dispersione del ritardo, che nella conversazione e nel gioco dà più fastidio di un ritardo uniforme.
quanto sta in un secondo
portata × andata e ritorno
fluttuazione secondo la RFC 3550
Fra le schede di Simetrium stanno accanto il bit e byte, nelle quali si conta la capacità del percorso, secondo, alla quale entrambe le grandezze alla fine si riducono, decibel dai bilanci di tratta e il ciclo di clock, che pone il limite di risoluzione delle marche temporali hardware.
07 · Sezione storica
Il clic e l'eco
Quando fra l'Università della California e l'istituto di Menlo Park si trasmise la prima parola, l'operatore la dettava per telefono e attendeva la conferma lettera per lettera. Il collegamento cadde alla terza lettera, ma la procedura stessa — mandato, atteso la risposta, guardato l'orologio — si rivelò proprio quella che è in uso ancora oggi.
Mike Muuss scrisse il suo programma in una sera, mentre cercava l'origine di un guasto, e lo chiamò dal suono dell'ecoscandaglio: un breve impulso, poi l'attesa del riflesso. Il nome riuscì tanto felice che il verbo «pingare» entrò nella lingua ben oltre il mestiere delle reti e indica ormai qualsiasi breve messaggio mandato per sapere se c'è qualcuno.
Nell'autunno del 1986 la portata di una delle tratte universitarie cadde di mille volte: i mittenti, non ricevendo riscontri, mandavano copie sempre nuove e finivano del tutto il percorso. Van Jacobson propose un rimedio che opera tuttora: sorvegliare l'andata e ritorno e la sua dispersione e prendere la loro crescita per segno di congestione, trattenendo l'invio prima che comincino le perdite.
Gli algoritmi odierni di controllo del flusso non sorvegliano più le perdite, ma direttamente come cresce l'andata e ritorno, e trattengono l'invio prima che la coda faccia in tempo a riempirsi. I router domestici hanno ricevuto discipline che tengono il buffer corto di proposito — e l'andata e ritorno sotto carico cade da un secondo e mezzo a decine di millisecondi sulla medesima tratta.
La metà dell'andata e ritorno è una supposizione, non una misura
L'andata e ritorno è comoda in quanto non esige l'accordo degli orologi: tanto l'invio quanto la ricezione sono marcati da un solo apparecchio, e uno scarto delle scale semplicemente non entra nella differenza. Proprio per questo il ping funziona ovunque e non ha bisogno di regolazioni, mentre il ritardo di sola andata è grandezza assai più capricciosa, che chiede una sincronizzazione più fine di ciò che si misura.
L'abitudine di dividere in due l'andata e ritorno si regge per questa ragione, benché poco la fondi: il flusso verso l'interlocutore e quello che ne torna prendono non di rado strade diverse, di diversa lunghezza e diverso carico, sicché le metà vere possono differire del doppio. La grandezza più facile da misurare di tutto il mestiere delle reti è anche quella più spesso letta male.
Catalogo · unità di misura
Una scheda per ogni grandezza
Sette unità di base del SI, ventidue derivate con nome proprio e grandezze fuori sistema senza le quali non funzionerebbero né la tecnica né il calendario.