Frage

Ich schreibe eine Anwendung, und ich bin in der Lage seinen Durchsatz einzustellen (die Anzahl der Bits pro Sekunde es über den Draht sendet), was auch immer Rate ich will. Aber ich mag, dass es so hoch wie möglich setzen, solange anderer Datenverkehr im Netzwerk ist nicht stark beeinflusst.

Das Problem ist, ich habe keine gute Metrik, die Auswirkungen zu messen. Ich dachte an den folgenden, aber weder ist wirklich „complete“:

  1. Erhöhung der durchschnittlichen Verzögerungszeit für ein Paket
  2. Erhöhung der Paketverlust
  3. Erhöhung der Jitter
  4. Erhöhung der durchschnittlichen Zeit, die für TCP-Transaktionen nimmt abzuschließen (das Herunterladen von Dateien über http)

Gibt es eine Standard-Metrik? Haben Sie andere Ideen, wie eine Anwendung Auswirkungen auf das Netz zu messen?

btw - Ich habe eine vollständige Kontrolle über das Netzwerk und kann nehmen, was Messung, die ich um die Metrik berechnen möchten.

Danke,

Rouli

War es hilfreich?

Lösung

Verschiedene Netze in unterschiedlicher Weise verhalten, wie Sie ihre Bandbreite nicht überschreiten. Die meisten von ihnen haben eine Reihe von Schlechtigkeit entlang der Linien:

  1. Jitter beginnt durch das Dach zu schießen, wie einige Pakete Warteschlange eingereiht werden müssen, oder erneut übertragen (zum Beispiel von Kollisionen auf Halbduplex-Ethernet oder drahtlos). Durchschnittliche Wartezeit leicht steigen.
  2. Wie Übersättigung weiter (oder bei höheren Übersättigungsniveaus) durchschnittliche Latenzzeit wird das Dach als so ziemlich alle Pakete in der Warteschlange oder übertragen gehen. Dies beschränkt werden kann, wenn Warteschlangengrößen sind klein.
  3. Paketverlust wird als Warteschlangen-Überlauf erhöhen. Je höher Sie die Bandbreite fahren, werden die Pakete mehr verloren. Je nach Hardware, Jitter und Latenz kann oder auch nicht wieder nach unten gehen.

Wenn irgendeine Form von QoS verwendet wird, können verschiedene Paketströme diese Effekte unabhängig sehen. Zum Beispiel, können Sie 3x Bandbreite auf dem App-Verbindung Pumpen und relativ geringe Änderung der Ping-Zeit sehen. So müssen Sie mit Ihrer Anwendung Pakete messen.

(1) und (2) darf nicht in einem bestimmten Netz auftreten. (3) immer auftreten, egal was passiert. Alle drei können leider auch noch auftreten, wenn Sie nirgendwo in der Nähe der Bandbreitengrenze sind.

Andere Tipps

Traffic Engineering ein ziemlich komplexes Feld ist. Quality of Service ist wahrscheinlich ein guter Ausgangspunkt für dieses Problem.

Dies ist eine jener Fragen, die es schwierig sein könnte programmatisch zu beantworten. In Anwendungen, die ich habe erlauben diese Art der Drosselung gesehen, ist es immer eine Konfigurationsoption gewesen. Es ist in der Regel einfach zu schwer zu wissen, über das Netzwerk Ihres Benutzers, alle Annahmen, dass Sie wahrscheinlich falsch machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top