Misurazione delle prestazioni di un simulatore di rete?

0

Ho scritto un programma python per testare un nuovo algoritmo di routing di rete, che utilizza un approccio di rete Content Centric per la gestione delle richieste ( CCN ), dove il router CCN mantiene 3 strutture di dati:

  • Una tabella di interesse PIT o in attesa, che contiene richieste per le quali un router non ha ancora ricevuto una risposta.
  • FIB o base di interesse di inoltro, che mappa le richieste al router successivo a cui può essere inoltrata la richiesta.
  • Un Content store in cui il router può memorizzare nella cache il contenuto delle richieste precedenti.

Il simulatore è semplice: - Segue la progettazione basata sugli eventi in cui i "pacchetti fittizi" vengono inviati dall'oggetto server ad altri oggetti server contenenti i dati di quale contenuto viene richiesto e la destinazione di dove si trova l'oggetto contenuto.

Specificamente , come potrei progettare il mio simulatore o i test per ottenere una visione d'insieme di come il mio nuovo algoritmo si adatta al routing IP standard?

La mia impressione è che avrò bisogno di testare la velocità, che credo possa essere fatta programmando il tempo di andata e ritorno per una richiesta. Ma non so come testerei altri aspetti di questo algoritmo.

Ho poca o nessuna esperienza di networking quindi ogni consiglio o direzione è apprezzato.

    
posta Daniel Gaeta 24.06.2014 - 04:52
fonte

1 risposta

0

Come MichaelT ha sottolineato che devi essere chiari sulle metriche che stai cercando di misurare e quelle che hanno senso per te. Alcune metriche comuni quando si tratta di misurare le prestazioni della rete sono

  1. Throughput.
  2. Latenza.
  3. Tempo di risposta del server e del client.

A mio parere, misurare la performance di RTT non è sufficiente instradamento perché la RTT è influenzata da molti fattori esterni come le prestazioni del collegamento, non necessariamente le prestazioni di routing, inoltre il RTT per lo stesso collegamento e lo stesso router potrebbero essere diversi per il numero di tentativi. Il throughput d'altra parte ti darà un'idea abbastanza migliore su come funziona la tua rete (mantenere la rete molto minimale è la chiave per ottenere il throughput esatto del routing).

Per rispondere alla seconda parte della domanda:
Qualsiasi sistema homegrown per misurare le prestazioni del traffico richiederà un po 'di tempo e fatica e potrebbe non essere in grado di fornire numeri precisi, se hai budget prova a cercare soluzioni commerciali come Ixia, Spirent o shenick.

Se non disponi del budget, non riesco a pensare a un singolo strumento che ti aiuti a ottenere tutte le metriche, ma a integrare strumenti diversi in un sistema sano.

Ho trovato che pmacct è molto potente e flessibile per tenere conto del traffico, raccoglie diverse metriche sui flussi di dati, il problema con questo include anche i dati di livello 7 in modo che i tuoi numeri siano leggermente distorti nella parte inferiore (il throughput del routing sarà molto più alto del throughput effettivo dell'applicazione).

Ma se non sei davvero preoccupato di pubblicare i numeri per i tuoi clienti, questo ti aiuterà a ottenere una base di riferimento abbastanza decente da confrontare con i diversi protocolli di routing.

Una soluzione molto più semplice sarà usare bwm-ng che visualizzerà la velocità del traffico su un'interfaccia. Fornisce solo dati di throughput nient'altro, almeno nulla che io conosca.

Generare traffico per spingere al limite del collegamento sarà una sfida, probabilmente avrai bisogno di una macchina abbastanza grande (come una serie Dell 8000) per pompare attorno a un gig di dati. Ci sono molti strumenti di generazione del traffico open source come curl-loader, scapy ecc. che ti aiuterà a generare traffico.

    
risposta data 24.06.2014 - 23:07
fonte

Leggi altre domande sui tag