Netzwerk Emulation / WAN Emulation

Exchange und Outlook können dank Cached-Mode mit wenig Bandbreite auskommen, ehe der Anwender sich beschwert. Anders sieht dies für interaktive Zugriffe z.B. auf Sharepoint oder OWA aus. B Besondere Anforderungen stellt Lync an das Netzwerk. für die Übertragung von Audio und Video sind nicht nur Bandbreiten erforderlich sondern auch geringe Laufzeiten und Latenzzeiten. Es ist daher wichtig die nutzbaren und zugesicherten Bandbreiten zu verifizieren, zu dokumentieren und zuzuweisen. Über Simulatoren kann aber gut gezeigt werden, wie sich eine Applikation auch mit schlechten Leitungen verhält.

Was ist zu simulieren?

Im Haus-LAN ist die Performance eines Netzwerks meist nicht das Problem und Anwendungen können relativ ungestört arbeiten, Interessanter wird es natürlich, wenn die Bandbreite beschränkt ist, wie die bei Heimarbeitsplätzen, VPN-Anwendern und noch mehr bei mobilen Anwendern über GSM-Verbindungen der Fall ist. Auch Zugriffe auf Server in der Cloud sind immer abhängig von der Leistung der Leitung. für Lync gibt es ebenfalls wichtige Kriterien. Die Bandbreite selbst ist bei Lync z.B. für ein VoIP-Telefonat mit 100kBit eher gering, aber dafür stellt VoIP höhere Anforderungen an Laufzeiten und Kontinuität. Eine Simulation einer "schlechten" Netzwerkverbindung ist also immer auch auf den Anwendungsfall abzustimmen. Folgende Faktoren sind dabei interessant:

  • Bandbreite
    Schwache Bandbreiten können bei der Nutzung von überlasteten WAN-Verbindungen oder generell langsamen Verbindungen (GSM) vorliegen.
  • Laufzeit
    Alle Welt redet von Bandbreite, dabei ist damit eigentlich die Schrittgeschwindigkeit gemeint. Je niedriger die Bandbreite ist, desto langsamer werden die einzelnen Bits hintereinander über die Leitung geschoben und desto länger dauert es, bis sie am Ziel selbst ankommen. Selbst ganz kleine Datenmengen haben dann eine größere Laufzeit. Das ist störend bei interaktiven Daten (TELNET) oder Echtzeitdaten (Audio/Video). Auch Staus an einer Teilstrecke führen zu recht unterschiedlichen Laufzeiten je Paket (-> Jitter)
  • Packet Loss
    Zu viel Staus durch Überlastung führen letztlich dazu, dass ein Router Pakete verwirft, weil sie schon so lange in der Queue liegen, dass Sie eh nicht mehr relevant sind.
  • Disorder
    Auch die Reihenfolge der Pakete beim Empfänger muss nicht dem Sender entsprechend. Pakete können durchaus unterschiedliche Wege durchlaufen. Der Empfänger muss die Pakete dann wieder richtig einsortieren.

Mit einem passenden WAN-Emulator kann z.B.: ein Entwickler überprüfen, wie sich seine Anwendung auf unterschiedlichen Verbindungen verhält. für VoIP ist es interessant zu beobachten, wie veränderte Grenzwerte die VoIP-Software dazu bringen, z.B. den Codec zu wechseln und wie sich das auf die Sprachqualität auswirkt. Auch Webseiten-Designer wären manchmal gut damit beraten, den Zugriff über künstlich verschlechtere Leitungen auszuführen. Dann wüssten Sie besser, was ein 100KByte Hintergrundbild für einen ISDN- oder DSL-Lite-Client bedeuten. Nicht alle Orts sind mit 6 Megabit oder mehr gesegnet.

Die Wahl des Simulators

Um nun die Performance und Stabilität einer Applikation zu testen, gibt es drei Möglichkeiten.

  • "Zuhause" oder per GSM arbeiten
    Sicher kein passabler Weg, aber ich habe schon Personen gesehen, die wirklich mal ihren PC per Mobilfunk verbunden haben, um das ein oder andere zu testen. Allerdings ist die Auswahl der Parameter da natürlich beschränkt und auch nicht parametrisierbar. Nachvollziehbar sind die Ergebnisse damit eher nicht
  • Echter Netzwerkemulator
    Es gibt spezielle Boxen, die zur "WAN-Simulation" eingesetzt werden können. Sie können alle Aspekte einer WAN-Leitung nachbilden und sind per Software parametrisierbar. Ich habe solche Boxen schon bei Kunden gesehen, die in der Zentrale quasi eine virtuelle "Niederlassung" betrieben haben.
  • PC-basierte Emulatoren
    Microsoft selbst liefert in Visual Studio mittlerweile einen kleinen Emulator mit, um Tests mit verringerter Netzwerkleistung durchzuführen. Allerdings werden die wenigsten Administratoren dazu eine EntwicklungsUmgebung installieren und kaum einer weiß, dass es einen Vorgänger als standalone Programm namens NEWT gab.

Ich bin natürlich ein Fan der kleinen alleinstehenden Lösung. Leider gibt es keine offizielle Quelle mehr.

NEWT - Quellen

NEWT wurde wohl ursprünglich bei "Microsoft Research" entwickelt. Entsprechende Artikeln in Foren und der Webseite weisen darauf hin:

Mittlerweile soll es im "Games für Windows — LIVE Software Development Kit" bzw. Visual Studio enthalten sein. Da macht es natürlich Sinn, damit Softwareentwickler verifizieren können, wie ihre Spiele "online" gegen andere Gegner mit unterschiedlichen Latenzzeiten und Bandbreiten umgehen können.

Die Standalone gibt es offiziell nicht mehr als Download und meine "alte" Version möchte ich aufgrund des unklaren Copyright-Status nicht zum Download anbieten. Aber wer etwas Sucht, findet andere Seiten wie z.B. http://blog.mrpol.nl/2010/01/14/network-emulator-toolkit/, auf denen Links zu OneDrive-Orts zu finden sind.

Die Installation bringt bei der Netzwerkkarte dann einen kleinen Helfer mit

NEWT starten

Meine Kopie hat beim Aufruf gleich einen Assistenten gestartet:

Wer hier nicht ein typisches Profil (z.B. ADSL, 56kModem o.ä.) auswählt, wird dank Assistent durch die nächsten erforderlichen Schritte geleitet:

Letztlich ist dies nichts anderes, als wenn sie gleich manuell die Einstellungen vornehmen.

NEWT - Konfigurieren

Wenn Sie NEWT starten, dann finden Sie in etwa folgende Bild vor:

Am unteren Rand sind die lokalen Netzwerkkarten zu sehen. Der gelbe Bereich stellt die Möglichkeit da, einen Filter zu hinterlegen. Hier wird bestimmt, auf welche Pakete die Regeln angewendet werden. Per Default sind alle Source IP/Ports zu allen Destination IP/Ports eingebunden. Sie können die Liste um mehrere Einträge ergänzen und auch Einträge negieren.

Nachdem festgelegt ist, welche Pakete überhaupt behandelt werden sollen, können Sie dann im oberen Bereich einstellen, wir die Pakete behandelt werden sollen. per Doppelklick bearbeiten Sie im ersten Dialog erst den eingehenden und dann den ausgehenden Traffik. Per "Rechter Maustaste" können Sie direkt die gewünschte Richtung anwählen.

Die EinstellMöglichkeiten sind sehr viel fältig. Die Bilder sind aber aus meiner Sicht selbsterklärend.

  • Paket Loss
    Hier kann bestimmt werden, wie viele Pakete "verloren" werden.
    ACHTUNG: Das erste Feld ist tückisch, denn wenn Sie "Periodic Loss" so aktivieren, dann werden 50% der Pakete verworfen. Das überlebt fast kein Programm, da nicht mal TCP-Resends zuverlässig ankommen.
  • Error-Rate
  • Latenzzeiten
    Die Pakete können künstlich verzögert werden, um eine lange Laufzeit zu simulieren. Die Latenz kann auch variieren, was dann als Jitter bezeichnet wird.
  • Bandbreite und Queuing
    Über diese Karteikarte wird das Limit der Bandbreite abgesteckt. Sie können damit den Netzwerkverkehr, der durch den Filter vorgegeben ist, beschränken. Zu viele Pakete werden dann "verworfen". Dies wirkt sich wie die erste Karteikarte (Loss) auf die Verlustrate aus.
  • Background Traffic
    Die Software kann wohl auch zusätzlichen Verkehr generieren, um ihre Software damit zu torpedieren ?
  • Reorder
    Dies ist ein gemeines Mittel, um Systeme bei UDP zu ärgern. Bei TCP-Verbindungen sortiert der IP-Stack des Empfängers die Pakete alleine korrekt ein Bei VoIP kommt meist UDP zum Einsatz und der Codec muss die Pakete wieder in reihe bringen oder verwerfen, wenn Sie zu spät ankommen. Einige Codecs reagieren mit einem größeren Buffer und damit einer späteren Wiedergaben um solch schlechten Leitungen zu retten, wenn nicht zu viele Pakete verloren gehen.
  • Disconnections
    NEWT kann auch simulieren, dass der Link für einige Zeit komplett einbricht. Denken Sie nicht an Modems oder ISDN-Verbindungen sondern eher an einen instabilen WiFi-Link, oder einen Wechsel der Funkzelle bei GSM/WiFi

NEWT aktivieren

Alle gemachten Einstellungen sind erst mal passiv, da NEWT noch nicht aktiv ist. Dazu müssen Sie erst "Start" drücken

Ab dem Moment werden alle Pakete gemäß den Regeln angefasst.

NEWT Statistik

Wer vor dem Start noch das Tracking aktiviert, kann die Arbeit von NEWT grafisch überwachen.

Unter den Regeln finden Sie entsprechende Reiter zu Anzeige folgender Daten

  • RT Traffic Monitor
    Zeigt den aktuellen Durchsatz über die Zeit und rechts daneben die aktiven Einstellungen

  • RT Paket Monitor
    Zeigt die aktuell übertragenen Pakete mit Protokoll, Quelle und Ziel.
  • Connection Analyser
    Dieses Fenster zeigt die gerade aktiven Verbindungen

Bewertung

Ich habe den NEWT im Rahmen meiner Zertifizierung zum "Microsoft Certified Master Lync 2010" das erste mal können gelernt und in dem Rahmen war es für das Studium der Audio und Video-Codecs sehr hilfreich. Wir konnten so sehr gut sehen, wie Lync Clients mit unterschiedlichen Bandbreiten umgehen und ab wann Lync den Codec wechselt oder z.B.: FEC aktiviert. Auch der Einfluss der Bandbreite, Fehler und Jitter auf die Qualität von Videokonferenzen war interessant anzuschauen. für mich positiv überraschen war die Robustheit von Lync bezüglich schwachen und stark wechselnden Leitungen. RTAudio ist ein sehr leistungsfähiger Codec.

Für den Tagesbetrieb benötigen Sie NEWT aber nicht. Maximal für Labore oder eben für Entwickler, die ihre Software auf unterschiedliche NetzwerkUmgebungen austesten müssen.

Andere Tools

NEWT ist das Werkzeug von Microsoft aber so nicht mehr erhältlich. Neben den üblichen kommerziellen Werkzeugen gibt es aber auch eine Menge freier Tools, die z.B. auf einem PC direkt in den Netzwerkstack eingreifen oder als Router/Bridge in einem bestehenden Netzwerk eingebunden werden können.

Weitere Links