Quanto sono comuni i pacchetti rilasciati nelle comunicazioni all'interno di un data center?


10

Diciamo che ho 2 macchine nello stesso data center ma non necessariamente nello stesso rack.

Quanto comuni sarebbero i pacchetti rilasciati se inviati tramite UDP tra queste due macchine?

Sto chiedendo il presupposto che dal momento che ci sono solo pochi interruttori al massimo tra le macchine che i pacchetti non verranno rilasciati affatto .

Quanto è comune l'arrivo di pacchetti fuori servizio all'interno dello stesso data center? La mia ipotesi è che c'è solo una strada il 99,9% delle volte, quindi non può succedere.

Tuttavia, ogni volta che mi sorprendo a pensare in termini assoluti, so che mi manca qualcosa!

Quali informazioni di base sono necessarie per comprendere meglio quando aspettarsi i pacchetti eliminati e la frequenza con cui potrebbero essere eliminati e arrivare fuori servizio per le macchine nello stesso data center?

Alla fine sto cercando di decidere se utilizzare UDP o PGM multicast quando comunico tra istanze VPS Linode diverse situate nello stesso data center. Le informazioni devono arrivare e in ordine. Certo, UDP non suona così bene allora!

Ma se ci si può aspettare una consegna quasi perfetta o perfetta nello stesso data center, allora va bene. Ma sto testando questo presupposto.

Grazie.

Risposte:


11

Non puoi fare affidamento su UDP per consegnare i pacchetti in ordine perché la specifica non fornisce tali garanzie. Anche assumendo la situazione più ideale, un singolo pezzo di cavo ethernet tra due host, c'è ancora la questione del sistema operativo, dello stack di rete, del driver NIC e dell'implementazione libc contro cui scrivono.

Ad ogni passo in quella catena, gli autori di quel codice avranno scelto di NON dare la priorità all'ordinamento dei pacchetti UDP anche se arrivano in ordine per il semplice motivo che non è necessario.

Un esempio inventato potrebbe essere la struttura di dati in cui vengono letti i pacchetti in entrata, che potrebbe essere un buffer ad anello. I pacchetti che arrivano in ordine, verranno posizionati, nell'ordine del buffer ad anello, ma potrebbe essere più semplice per il driver driver scaricarli sugli strati superiori del codice di rete in ordine di memoria , quindi randomizzando il loro ordine.

Considerando la tua situazione, una macchina virtuale eseguita su un'infrastruttura condivisa che verrà eseguita per volume, non per prestazioni, quindi la probabilità di prevedere l'ordine di ricezione dei pacchetti UDP sarà bassa.

In breve, se le specifiche indicano che non è possibile fare affidamento sull'ordinamento dei pacchetti UDP. Non puoi fare affidamento su di esso e non puoi provare a modificare l'ambiente per dare una garanzia più forte di quanto le specifiche mai promesse.


Questo è quello che ho pensato che avrei dovuto pensare. Grazie per averlo dichiarato piuttosto bene!
z8000

1
Se vuoi un multicast affidabile, possibilmente per lo streaming, dai un'occhiata a en.wikipedia.org/wiki/Real-time_Transport_Protocol
Dave Cheney

0

Se qualcuno è interessato a sperimentare, basta usare Wireshark. Se qualcuno si occupa davvero della connettività lenta o dei pacchetti rilasciati, rispecchiamo semplicemente una porta su uno switch, connettiamo un laptop con Wireshark e diamo un'occhiata.


FWIW su Linode un'istanza VPS non può entrare in modalità promiscua.
z8000,

Dovresti essere in grado di installare Wireshark localmente su un computer per acquisire i dati in arrivo o semplicemente eseguire il mirroring della porta su uno switch e acquisire i dati in quel modo. Il mirroring delle porte diventerebbe più complicato se fatto per sistemi virtuali che potrebbero condividere alcune porte. Ma Wireshark può filtrare elementi specifici come gli IP e penso che i nomi host.
Webs

0

Praticamente qualsiasi switch causerà il riordino di due pacchetti in qualsiasi momento ed è preso in considerazione da molti protocolli di rete come PGM.

Una cosa da considerare è che la maggior parte dei data center blocca i datagrammi e blocca il multicast al fine di semplificare e ridurre il sovraccarico della propria infrastruttura di rete.

Lo stesso protocollo IP / PGM deve essere utilizzato solo se si dispone di PGM Router Assist abilitato e di elementi di rete consapevoli tra il server e i client, altrimenti attenersi a PGM incapsulato all'interno di UDP e salvare l'onere della gestione delle autorizzazioni dell'applicazione.

Se si utilizza un livello di messaggistica come ØMQ, è possibile rimandare la scelta della rete di overlay IP / PGM, UDP / PGM o TCP alla distribuzione e all'integrazione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.