Domanda

Immaginate di avere molti server in cluster, in molti padroni di casa, in un ambiente di rete eterogenea, in modo tale che le connessioni tra i server possono avere latenze selvaggiamente variabili e larghezza di banda. Si vuole costruire una mappa delle connessioni tra i server con il trasferimento di dati tra di loro.

Naturalmente, questa mappa può diventare stantio nel tempo i cambiamenti della topologia di rete -. Ma lascia ignorare quei complessità per ora e assumere la rete è relativamente statico

Date le latenze tra nodi in questo grafico ospitante, calcolare la larghezza di banda è un relativo esercizio semplicemente temporizzazione. Sto avendo più difficoltà con le latenze - tuttavia. Per ottenere il tempo di andata e ritorno, si tratta di una semplice questione di tempi un ping ritorno e ritorno dall'host locale ad un host remoto -. Entrambi gli eventi di temporizzazione (start, stop) si verificano sulla macchina locale

Cosa succede se voglio volte a senso unico sotto l'ipotesi che la latenza non è uguale in entrambe le direzioni? Supponendo che gli orologi sui vari host non sono esattamente sincronizzati (almeno che il loro errore è dello stesso ordine di grandezza le latenze coinvolte) - come posso calcolare il senso unico di latenza?

In una domanda correlata - è questa latenza asimmetrica (dove un collegamento è più veloce in direzione dell'altra) comune nella pratica? Per quali ragioni / configurazioni hardware? Certo che sono a conoscenza di scenari banda asimmetrica, in particolare su ultimo miglio link di consumo come DSL e via cavo, ma io non sono così sicuro di latenza.

Aggiunto: Dopo aver considerato il commento qui sotto, la seconda parte della questione è probabilmente meglio su serverfault .

È stato utile?

Soluzione

Per quanto a mia conoscenza, asimmetrici latenze - specialmente asimmetrie "ultimo miglio" - non può essere determinato automaticamente, perché qualsiasi protocollo di sincronizzazione dell'ora di rete è parimenti influenzata dalla stessa asimmetria, in modo da non si dispone di un punto di di riferimento da cui partire per valutare l'asimmetria.

Se ciascun endpoint aveva, ad esempio, il proprio orologio GPS, allora si avrebbe un punto di riferimento su cui lavorare.

misura veloce di LogP Parametri Passando per segnalare Piattaforme , gli autori notano che misura la latenza richiede la sincronizzazione di clock esterno al sistema da misurare. (Grassetto corsivo mio, corsivo nel testo originale).

  

latenza asimmetrica può essere misurata solo con l'invio di un messaggio con un timestamp t s , e lasciando che il ricevitore DERIVE la latenza da t r - t s , dove t r è il tempo di ricezione. Questo richiede la sincronizzazione di clock tra mittente e destinatario. Senza esterna di sincronizzazione dell'orologio (come l'utilizzo di ricevitori GPS o software specializzato come il Network Time Protocol , NTP), gli orologi possono essere sincronizzati solo fino a un granularità della andata e ritorno tempo tra due host [10], che è inutile per misurare la latenza di rete.

Nessun algoritmo basato sulla rete (come ad esempio NTP) eliminerà i problemi di collegamento dell'ultimo miglio, anche se, dal momento che ogni input per l'algoritmo sarà essa stessa uniformemente soggetto alle caratteristiche prestazionali del collegamento dell'ultimo miglio e non è quindi "esterna "nel senso sopra indicato. (Sono fiducioso che sia possibile costruire una prova, ma non ho il tempo di costruire uno proprio ora.)

Altri suggerimenti

C'è un progetto chiamato One-Way Ping (OWAMP) appositamente per risolvere questo problema. L'attività può essere visto nel LKML per l'aggiunta di timestamp ad alta risoluzione per i pacchetti in entrata (SO_TIMESTAMP, SO_TIMESTAMPNS, ecc) per assistere nel calcolo di questa statistica.

http://www.internet2.edu/performance/owamp/

C'è anche una versione di Java:

http://www.av.it.pt/jowamp/

Si noti che il pacchetto timestamping ha davvero bisogno di supporto hardware e molte schede di rete presente generazione offrono solo risoluzione millisecondo che può essere out-of-sync con l'orologio host. Ci sono MSDN articoli della DDK sulla sincronizzazione di accoglienza & Nic orologi che dimostrano i potenziali problemi. Timestamp in nanosecondi dal TSC è problematico a causa delle differenze fondamentali e possono richiedere l'architettura Nehalem per funzionare correttamente con risoluzioni necessarie.

http://msdn.microsoft.com /en-us/library/ff552492(v=VS.85).aspx

È possibile misurare la latenza asimmetrico sul collegamento per l'invio di pacchetti di dimensioni diverse a una porta che restituisce una dimensione di pacchetto fissa, come inviare alcuni pacchetti UDP a una porta che risponde con un messaggio di errore ICMP. Il messaggio di errore ICMP è sempre la stessa dimensione, ma è possibile regolare la dimensione del pacchetto UDP si sta inviando.

http://www.cs.columbia.edu/techreports /cucs-009-99.pdf

In assenza di un orologio sincronizzato, l'asimmetria non può essere misurato come dimostrato nel 2011 carta "Fundamental limits on synchronizing clocks over networks".

https://www.researchgate.net/publication/224183858_Fundamental_Limits_on_Synchronizing_Clocks_Over_Networks

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top