2010-07-26 8 views
8

Ich arbeite an die Leistungsparameter einer TCP-Verbindung und einer dieser Parameter ist die Bandbreite. Ich beabsichtige, die tcp_info Struktur zu verwenden, die von Linux 2.6 ab unterstützt wird, das die Metadaten über eine tcp Verbindung hält. Die Informationen können unter Verwendung des getsockopt() Funktionsaufrufs unter abgerufen werden. Ich habe viel Zeit damit verbracht, eine gute Dokumentation zu finden, die alle Parameter in dieser Struktur erklärt, aber keine finden konnte.Gute Dokumentation über die Struktur tcp_info

Auch ich testete ein kleines Programm, um die Werte von tcp_info für eine TCP-Verbindung, wo ich die gemessenen MSS-Werte für die meiste Zeit als Null gefunden zu finden. Um lange Geschichte kurz-Ist es eine Verbindung zu folgen, für die hat Vollständige Details zu tcp_info und es ist auch zuverlässig, diese Werte zu verwenden. Hier

Antwort

10

ist ein fairly comprehensive write-up der Struktur und die Verwendung des Linux-tcp_info von René Pfeiffer, aber es gibt ein paar Dinge bemerkenswert:

  • Der Autor benötigte bei diesen Daten im Laufe der Zeit wiederholt schauen, weil es keine aggregierten Statistiken in dieser Struktur.
  • Der Autor weist Sie als letzte Autorität auf die Bedeutung dieser Daten zur Quelle tcp.c hin.
  • Ich bin mir nicht sicher, was Sie von der maximalen Segmentgröße erhofft haben, aber ich nehme an, Sie dachten, es bedeute etwas anderes.

Wenn Sie genaue Messungen der Bandbreite wirklich interessiert sind, müssen Sie eine Messeinrichtung verwenden, die das System außerhalb als auch die ioctls ziehen getestet wird das Phänomen beeinflussen Sie wissen über interessiert sind. Ein passiver Kabel-Sniffer ist die einzige Möglichkeit, wirklich genaue Ergebnisse zu erhalten. Schließlich ist "Bandbreite" abhängig von Ihrer Anwendung ein wirklich breiter Schirm, der viele Messungen (z. B. Latenzzeit, Umlaufzeit, Variabilität, Jitter usw.) in eine Kategorie abflacht.