Nehmen wir an, ich habe eine Maschine mit 3 NICs; WLAN, Internet und 3G. Ich versuche, die ESTIMATED Geschwindigkeit (oder Bandbreite) zu erhalten, mit der eine Verbindung zu einer bestimmten Zeit für jede dieser Schnittstellen senden kann, und festzustellen, welche die schnellste ist. Wieder zu einer bestimmten Zeit. Ich schreibe ein Linux-Kernel-Modul. Ich benutze Kernel-Version 2.6.35. Gibt es überhaupt eine Messung der verfügbaren Bandbreite? Auch wenn es eine Test Ping bedeutet das Senden etwas zu messen, wie wir bei der Messung Latenz tun ...Wie bekomme ich die maximale Bandbreite einer Schnittstelle in Linux C?
Antwort
iperf können Sie tatsächliche Bandbreite http://sourceforge.net/projects/iperf/
Eigentlich messen helfen, dann ist dies ein schwieriges Problem. Wenn Sie wissen, dass alle drei NICs eine Verbindung zu einer gemeinsamen Site herstellen, besteht der offensichtliche unkomplizierte Test darin, einige Daten durch jede NIC zu übertragen und diese zu synchronisieren.
Angesichts der Schwierigkeit des Problems im Allgemeinen, könnte es "gut genug" sein, UDP durch jede NIC und Zeit zu senden. Das zeigt keine Empfangsleistung, aber es ist besser als nichts.
Bei Linux, sollten Sie lesen/proc/net/dev (Sie die gesamten Pakete/gesendeten Bytes. Holen Sie sich diese Zahlen an Ihrem 'Start' und 'Ende' Zeit)
http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html http://www.linuxjournal.com/article/8381
(Quelle hier: How can I get the current network interface throughput statistics on Linux/UNIX?)
- 1. Wie bekomme ich die IPv6-Adresse einer Schnittstelle unter linux
- 2. Wie drosseln Sie die Bandbreite einer Socket-Verbindung in C?
- 3. Wie bekomme ich die SPID in Linux 2.6 von C++
- 4. Numpy: Wie bekomme ich die maximale Behälterposition?
- 5. Wie bekomme ich die maximale Anzahl aus einer Datei mit Linux Bash Shell Skripten
- 6. Wie bekomme ich Mac-Adresse für eine Schnittstelle in Linux mit einem C-Programm?
- 7. Get IP-Adresse einer Schnittstelle unter Linux
- 8. Wie bekomme ich die Kleinschreibung einer Aufzählung in C#?
- 9. Wie bekomme ich die nächste maximale Anzahl von Datentabelle
- 10. Linux: Wie route ich die Schnittstelle basierend auf dem Zielport?
- 11. Linux-Netzwerk-Schnittstelle Verwaltung von C-Code
- 12. Wie bekomme ich einen Modultyp von einer Schnittstelle?
- 13. Wie bekomme ich den Namen einer Schnittstelle zur Laufzeit?
- 14. Wie bekomme ich die IPv6-Adresse der Schnittstelle mit libnet?
- 15. Wie bekomme ich die untere y-Koordinate
- 16. Wie legt man die maximale TCP-Empfangsfenstergröße in Linux fest?
- 17. Wie bekomme ich die Schnittstelle Guid von USB-Gerät?
- 18. Wie bekomme ich die maximale Häufigkeit einer Zahl in einem Array?
- 19. Get base Schnittstelle einer Schnittstelle durch Reflexion in C#
- 20. Wie bekomme ich Hardwareinformationen über Linux/Unix?
- 21. Wie definiert man die Standardimplementierung einer Schnittstelle in C#?
- 22. Verfügbare Bandbreite
- 23. Wie bekomme ich Linux Interface Alias (IFLA_IFALIAS) programmatisch für eine Schnittstelle?
- 24. Wie bekomme ich Netzwerkadapter-Statistiken in Linux/Mac OSX?
- 25. Wie bekomme ich die aktuelle Zeit in Millisekunden von C in Linux?
- 26. Wie bekomme ich die Feldnamen einer Datenbanktabelle?
- 27. Auswählen einer Schnittstelle beim Multicasting unter Linux
- 28. vcan0 schnittstelle linux kommunikation
- 29. Erstellen einer Instanz einer Schnittstelle in C#
- 30. Wie ermittle ich die maximale Transaktionsgröße in MySQL?