Ich arbeite daran, die Leistungsparameter einer TCP-Verbindung zu ermitteln, und einer dieser Parameter ist die Bandbreite. Ich beabsichtige, die von Linux ab 2.6 unterstützte tcp_info
-Struktur zu verwenden, die die Metadaten über eine TCP-Verbindung enthält. Die Informationen können mithilfe des Funktionsaufrufs getsockopt()
für tcp_info
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.
Ich habe auch ein kleines Programm getestet, um die Werte von tcp_info
für eine TCP-Verbindung abzufragen, wo ich die gemessenen MSS-Werte für die meiste Zeit als Null fand. Um es kurz zu machen: Gibt es einen Link, dem man folgen kann hat vollständige Details zu tcp_info
und es ist auch zuverlässig, diese Werte zu verwenden.
Hier ist ein recht umfangreiches Write-up zur Struktur und Verwendung des linux tcp_info von René Pfeiffer aber es gibt Ein paar Dinge, die es wert sind zu bemerken:
Wenn Sie wirklich an genauen Bandbreitenmessungen interessiert sind, müssen Sie ein Messgerät verwenden, das sich außerhalb des zu testenden Systems befindet, da das Ziehen von ioctls
sich auf das Phänomen auswirkt, an dem Sie 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 Rahmen, der viele Messungen (z. B. Latenzzeit, Umlaufzeit, Variabilität, Jitter usw.) in eine Kategorie einteilt.
Tags und Links tcp connection for-loop information-retrieval