Es ist eine häufige Aufgabe, die "Netzwerkqualität" zu überprüfen - Latenz, Anzahl der verworfenen Pakete usw. Ping hat jedoch eine Reihe von Nachteilen: - Es verwendet ICMP. Viele ISPs haben unterschiedliche Shaper für ICMP- und TCP-Datenverkehr, sodass "Ping" eine Latenz von 10 ms anzeigt, bei TCP-Verbindungen jedoch eine Latenz von über 1000 ms. - Es werden nur sehr wenige Pakete gesendet. Standardmäßig ein Paket pro Sekunde. Da das TCP-Protokoll den Verlust von Paketen toleriert (es funktioniert sehr gut, wenn die Hälfte der Pakete verloren geht - es ist normal), ist es absolut unklar, ob die Ping-Verbindung "30% Packet Loss" beendet oder ob es absolut normal ist.
Ist es also eine Alternative für Ping, das eine TCP-Verbindung anstelle von ICMP verwendet und die Qualität der Internetverbindung überprüft?
quelle
Antworten:
Unabhängig von der Tatsache, dass TCP Probleme mit Paketverlust / Paketreihenfolge tolerieren kann, ist ein Ping-Verlust von 30% immer noch ziemlich signifikant, wenn die "Population" groß genug ist - dh mehr als 100 Pings.
Um die Frage zu beantworten, können Sie sich nmap ansehen. Ich bin mir sicher, dass Beispiele in Kürze einfluten werden :)
Noch wichtiger ist jedoch, dass Sie nicht nur eine Hin- und Rückfahrt wünschen, sondern auch die Leistung von Ihrem Computer zum Server und zurück bei jedem (möglichen) Sprung.
Sie können dies mit
traceroute
ausführen - die am häufigsten verwendete Version wird jedoch mit ICMP oder UDP ausgeführt, suchen Sie jedoch nachtcp traceroute
- und starten Sie dort.Hier sind einige lustige Tools, die Sie ausprobieren können, wenn Sie gerade dabei sind ...
Hier ist ein Beispiel mit
lft
...quelle
Netcat Power Tools beschreibt, wie TCP Ping mit Netcat durchgeführt wird . Insbesondere sollte jedes nicht angeforderte ACK-Paket RST zurückgeben.
quelle
Ich persönlich bin ein großer Fan von mtr ( http://www.bitwizard.nl/mtr/ ), mtr ist ein ncurses-basierter Traceroute-Klon, der sowohl mit icmp als auch mit udp funktionieren kann. Es zeigt Ihnen die Schwachstellen in Ihrem Link zu einem bestimmten Host und ist auf diese Weise nicht aufdringlich.
Wenn es wirklich um einige Auslastungstests geht, würde ich mit Iperf (das ist Client / Server) gehen.
quelle
Für Windows können Sie so etwas wie tcping verwenden:
http://www.elifulkerson.com/projects/tcping.php
Und für Linux ist, wie bereits erwähnt, das beste Dienstprogramm
hping
.quelle
ICMP-Pakete werden in der Regel langsamer zugestellt (wenn überhaupt ein Unterschied besteht), da die meisten Netzwerke diese Priorität verlieren, insbesondere Ping-Pakete. Wenn bei ICMP- und TCP-Antworten solche unterschiedlichen Ergebnisse auftreten, liegt das Problem im Allgemeinen entweder an einem überlasteten Server oder an einer bestimmten TCP-Shaping-Funktion an einer Firewall.
Sie sollten untersuchen
traceroute -P tcp
,tcptraceroute
,lft
und natürlichtelnet
.quelle
mtr
an verschiedenen Orten im Netz ein, und Sie werden feststellen, dass in verschiedenen Netzwerken häufig Probleme bei der Zustellung von ICMP-Paketen an verschiedenen Stellen auftreten.Sie könnten eine QoS-Anwendung verwenden, um diese Art von Netzwerkparametern zu messen. Beispielsweise:
NetPerf (www.netperf.org/netperf/): Netperf ist ein Benchmark, mit dem die Leistung vieler verschiedener Netzwerktypen gemessen werden kann. Es bietet Tests sowohl für den unidirektionalen Durchsatz als auch für die End-to-End-Latenz. Die von netperf derzeit messbaren Umgebungen umfassen:
ODER
IPerf (sourceforge.net/projects/iperf) Iperf wurde von NLANR / DAST als moderne Alternative zur Messung der maximalen TCP- und UDP-Bandbreitenleistung entwickelt. Mit Iperf können verschiedene Parameter und UDP-Eigenschaften eingestellt werden. Iperf meldet Bandbreite, Verzögerungsjitter, Datagrammverlust.
quelle
check out hping und schau dir dann bing an
quelle
TCP kann 50% Paketverlust nicht "tolerieren". Es wird aus einem einfachen Grund einfach zum Stillstand kommen: Es passt seine Übertragungsgeschwindigkeit basierend auf dem Verlust von Paketen an. Wenn Pakete verloren gehen, deuten sie auf eine Überlastung hin. Wenn Sie 50% der Pakete löschen (z. B. mit einer zufälligen Firewall-Regel), unabhängig vom Datenverkehr, wird die Verfügbarkeit der Bandbreite immer geringer.
Außerdem bezweifle ich, dass ISPs ICMP vs. TCP formen. Einige mögen es tun, da es einige wirklich dumme Leute gibt, aber es macht nicht viel Sinn, dies zu tun. Die meisten formen die gesamte Verbindung, oder sie "formen sich selbst" aufgrund von Überlastung. In beiden Fällen werden Pakete normalerweise zufällig verworfen.
Abgesehen davon können Sie mit TCP pingen, aber es gibt mehrere Vorbehalte. Das erste ist, einfach das erste Paket in einer TCP-Verbindung zu senden, was eine Antwort von einem Server mit einem offenen Port auslöst, aber als Verbindungsversuch angesehen wird. Im Idealfall können Sie den "Echo" -Dienst (TCP-Port 7) verwenden. Dies ist jedoch nicht möglich, da er jetzt standardmäßig überall deaktiviert ist. Wenn Sie jemanden dazu bringen können, es auf dem zu testenden Computer für Sie zu aktivieren, könnte ein Programm dies verwenden, um die Umlaufzeit für Pakete innerhalb einer TCP-Verbindung zu überprüfen.
Davon abgesehen haben Sie wahrscheinlich den Befehl "tracepath" auf Ihrem Computer installiert. Es ähnelt Traceroute, verwendet jedoch weder TCP noch ICMP, sondern UDP. Für TCP gibt es verschiedene Dienstprogramme, Sie können versuchen, HPING .
quelle
Die Alternative zu Ping können Sie "netstat" verwenden
Optionen: 1.netstat -antp 2.netstat -anup
-a = alle, -n = Adresse und Portnummer des lokalen Endes des Sockets, -t = TCP, -p = Programm
-u = udp
quelle