Ich bin mir bewusst, dass dies eine ungewöhnliche Frage ist, aber es scheint, dass die Leute hier sehr wahrscheinlich diejenigen sind, die helfen können. Ich versuche mit meinem ISP herauszufinden, warum es beim Spielen zu extremen Verzögerungen kommt.
Frage:Wie kann ich Paketlaufzeit und -verlust gut analysieren und so genauere Informationen über den Engpass in der Verbindung erhalten? Gibt es eine einfache Möglichkeit, den Datenverkehr bis zu einem gewissen Grad künstlich zu reproduzieren, ohne das Spiel tatsächlich zu spielen?
Hier ist meine Situation:
- Mein ISP stellt meine Verbindung über ein großes drahtloses Netzwerk mit mehreren Zugangspunkten über etwa 10 km bereit, bevor das Hauptkabel erreicht wird. Das war schon immer so und hat sich in der Vergangenheit als äußerst zuverlässig erwiesen. Aufgrund von Änderungen an der Hardware oder anderen Setup-Änderungen meines ISPs ist die Spielqualität vor einigen Monaten gesunken. Mein ISP ist sehr hilfsbereit und versucht, die Ursache der Probleme zu finden und zu beheben.
- Ich habe im Allgemeinen einen sehr guten Ping und wenn ich spiele, zeigen die In-Game-Informationen immer einen guten Ping von 20–30 ms an.
- Eine Funktion von Battlefield ist, dass es Warnsymbole anzeigt, wenn die Bildrate sinkt, die Verbindungslaufzeit schlecht ist oder Pakete verloren gehen. Die Situation wiederholt sich, indem ich etwa 10 bis 60 Sekunden lang ohne Warnsymbol spielen kann und dann einen schweren Paketverlust erlebe, bei dem es zu Verzögerungen kommt und BF mir alle möglichen Verbindungswarnungen anzeigt. Danach kann ich wieder einige Sekunden lang spielen, bevor dieses Verhalten erneut auftritt.
Ich arbeite ausschließlich unter Linux und bin einigermaßen vertraut mit ping
, traceroute
, nmap
, und anderen Netzwerktools. Ich kenne die High-Ports, die BF verwendet, ich kann die verwendeten Paketgrößen herausfinden und natürlich kann ich IPs von Spieleservern extrahieren. Was ist ein guter Weg, um dieses Problem aufzuspüren, damit ich hoffentlich den Paketverlust künstlich provozieren kann, während mein ISP debuggt, was in seinem Netzwerk passiert?
Analyse
Ich habe WireShark installiert, wie von Moonpoint freundlich vorgeschlagen, und einige Minuten verzögerten Gameplays aufgezeichnet. In einer ersten Analyse habe ich mich auf die Pakete konzentriert, die vom Spielserver kommen. Ich habe alle UDP-Pakete gefiltert, die vom Server zu meiner IP kommen, und die Zeit angepasst, um die relative Zeit zwischen diesen Paketen zu sehen. Nach dem Sortieren gab es etwa 20 Pakete, die zwischen 650 ms und 1300 ms dauerten, und ich vermute, dass dies die sind, bei denen ich halb über die Karte springe. Dazwischen haben die meisten anderen Pakete fast genau die Laufzeit, die ich als „Ping“ im Spiel sehe, von etwa 30 ms.
Nachdem ich alle kritischen Pakete markiert hatte, löschte ich den Filter und sah mir den gesamten Datenverkehr an, um zu sehen, ob ich ein Muster erkennen kann, was bei allen Paketen um die kritischen herum los ist. Ich fand heraus, dass es zwei Situationen gibt. Beachten Sie, dass 94.250.208.153 der Spieleserver ist und die blaue Markierung das kritische UDP-Spielepaket darstellt:
Zunächst gibt es etwa 10-15 Pakete vor dem kritischen Paket ein mystisches SSDP M-Search-Paket, das von einer MAC-Adresse kommt:
Die zweite Situation besteht darin, dass dem kritischen Paket eine TCP-Neuübertragung, meist an einen Google-Server, vorausgeht (oder manchmal auch folgt):
Gibt es weitere Schritte, die ich von meiner Seite aus unternehmen könnte? Kann mir jemand sagen, wie ich das mystische SSDP-Paket untersuchen kann?
Antwort1
MTR, das die Funktionalität von Ping und Traceroute kombiniert, kann auch ein nützliches Werkzeug sein, um den Punkt oder die Punkte entlang eines Netzwerkpfads zu bestimmen, an denen Paketverluste auftreten oder an denenJitterist hoch (Beispiel).
Sie können auch die kostenlose Open Source verwendenWiresharkPaketanalysator zur Problembehebung, aber um die von ihm bereitgestellten Informationen verstehen zu können, muss man mit der Funktionsweise der zugrunde liegendenInternetprotokolle, wie TCP/IP, funktionieren. Es gibt Kurse und Tutorials zu seiner Verwendung online. Obwohl es eine ganze Weile dauern kann, bis man lernt, es effektiv zu nutzen, können Sie alle möglichen Probleme mit der Netzwerkkonnektivität leichter beheben, wenn Sie erst einmal gelernt haben, wie man ein Tool wie Wireshark verwendet.
Wenn Sie Wireshark nicht kennen, gibt es auf YouTubeWireShark-Tutorial für AnfängerUndWireshark 101: So funktioniert Wireshark, Haktip 115; viele weitere finden Sie, wenn Sie nach den Begriffen „Wireshark-Tutorial“ suchen. Websites mit Tutorials umfassenSchnelles und einfaches Wireshark-Tutorial,So verwenden Sie Wireshark zum Erfassen, Filtern und Überprüfen von Paketen, UndWireshark-Anleitung, eine PDF-Datei, erstellt vonProfessor Angelos Stavrouin der Informatikabteilung der George Mason University. Es gibt auch Online-Kurse zur Verwendung von Wireshark.
Mit Wireshark odertcpdump, ein Befehlszeilentool zur Paketerfassung, das für Linux, OS X und Microsoft Windows verfügbar ist (WinDump)-Systeme können Sie die Pakete erfassen, die von und zu Ihrem System fließen, wenn das Problem auftritt, sodass Sie die Daten später selbst oder in Echtzeit analysieren können. Da beide Tools die erfassten Daten auch alspcapSie können die Daten dem Netzwerk-Supportpersonal Ihres Internetdienstanbieters zur Verfügung stellen, da das Personal dort möglicherweise mit der Interpretation solcher Daten vertraut ist, da PCAP-Dateien eine gängige Methode zum Austausch von Daten zu Netzwerkproblemen unter Netzwerkingenieuren bei der Fehlerbehebung sind.
Wireshark erfasst alle Daten auf einer Netzwerkschnittstelle, aber da Sie die Netzwerk-Portnummern und IP-Adressen kennen, die mit den Battlefield-Spielservern verknüpft sind, können SieVerwenden Sie einen Wireshark-Filter, um nach Portnummer(n) und/oder IP-Adresse zu filtern.
Aktualisieren:
DerhexadezimalZiffern, die Sie im Zusammenhang mit "SSDP M-Search packet" gesehen haben, sind keinMedienzugriffskontrolle (MAC)Adresse. MAC-Adressen ähneln 50-c5-8d-26-c2-06, d. h. Ethernet- und Wi-Fi-MAC-Adressen werden normalerweise mit Bindestrichen oder Doppelpunkten zwischen jeweils zwei Hexadezimalziffern angezeigt, insgesamt also 12 Ziffern, d. h. es handelt sich um 48-Bit-Adressen. Was Sie stattdessen sehen, ist eineIPv6Adresse - es gibt zwei Versionen des Internetprotokolls, die im Internet heute verwendet werden, die lange verwendeteInternetprotokoll Version 4 (IPv4)und das neuere Internetprotokoll Version 6 (IPv6).
SSDP steht fürEinfaches Service Discovery-Protokoll, ein Protokoll fürUniverselles Plug-and-Play (UPnP). Ein System in Ihrem lokalen Netzwerk, das mit der IPv6-Adresse fe80::50e7:d4f0:db:c4dc, sendet ein Paket an einIP-MulticastAdresse, ff02::c. Für IPv4 ist die Multicast-Adresse 239.255.255.250, während SSDP über IPv6 den Adresssatz ff0X::c für alle durch X gekennzeichneten Bereichsbereiche verwendet („X“ im Paket, das Sie gesehen haben, ist „2“).
Ich weiß nicht, warum Ihr System Kontakt zumAmazon Web Services (AWS)IP-Adresse noch die Google-Adresse.
C:\>nslookup 52.203.205.255 8.8.8.8
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Name: ec2-52-203-205-255.compute-1.amazonaws.com
Address: 52.203.205.255
C:\>nslookup 216.58.212.78 8.8.8.8
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Name: lhr35s05-in-f78.1e100.net
Address: 216.58.212.78
Ich sehe, die Verbindung besteht zu Port 443, dembekannter Hafenfür HTTPS-Verkehr, aber als ich eine52.203.205.255 Umgekehrte IP-SucheVerwenden von DomainToolsUmgekehrte IP-SucheFunktion, es meldete "Wir haben keine Ergebnisse für Ihre Suche gefunden." Wenn Sie eine IP-Adresse in dieses Suchtool eingeben, wird Ihnen häufig dievollqualifizierte Domänennamen (FQDNs)für Websites, die unter der IP-Adresse gehostet werden (mehrere Websites können unter derselben IP-Adresse gehostet werden), aber nicht in diesem Fall.
A216.58.212.78 Umgekehrte IP-Suchegab dieselbe Meldung zurück. Wenn Sie 1e100.net sehen, handelt es sich um ein Google-System. Google verwendet „1e100“ im Namen, weil dies eine Möglichkeit ist, eine „1“ mit hundert Nullen dahinter darzustellen, was einegoogol.
Beide Pakete haben möglicherweise nichts mit der Kommunikation mit dem Battlefield-Server zu tun. Die Tatsache, dass es sich um erneute Übertragungen handelt, die gesendet werden, wenn ein System ein Paket gesendet hat, aber kein Bestätigungspaket von der anderen Seite erhalten hat, das den Empfang anzeigt, kann jedoch darauf hinweisen, dass der Datenverkehr zu anderen Sites ebenfalls Paketverluste aufweist, während Sie gleichzeitig Probleme mit dem Battlefield-Server haben. Sie könnten nach diesen beiden IP-Adressen filtern, um andere Pakete von/an sie anzuzeigen und eine bessere Vorstellung davon zu bekommen, warum sie in der Paketerfassung erscheinen könnten, wenn Sie wissen möchten, warum Ihr System mit diesen beiden IP-Adressen kommuniziert.