TCP IDLE TIMEOUT
vor 8 Monaten
Hey,
ich habe seit neuem Probleme mit der Verbindung in PUBG. Vielleicht kennt jemand den Fehler. Ich bin nach dem Match gefangen in dem grauen Smokescreen (den Bug gibts schon ewig). Ich bin seit über 2 Wochen im Austausch mit den Entwicklern. Leider hat jeder Lösungsansatz nicht zum Ziel geführt. Von einfachen Sachen wie Treibern, bis zu CMD Sachen... Dann habe ich das Spiel auf 2 weiteren Geräten in meinem Netzwerk getestet. Der Bug tritt auch da auf. Nach sehr langer Suche auf Google, Reddit, Steam etc hab ich nun den Fehler gefunden. Scheinbar liegt es an dem Folgendem.
[PUBG BATTLEGROUNDS]
Finally, after a 3 month research I found the root cause for smoke screen loading issue when Exit to lobby is clicked after a match. Here are the details: -
Tslgame.exe establishes/handshake a TCP connection to akamai endpoint(e9466.d.akamaiedge.net) in the beginning.
When user plays the game, this connection is IDLE until match ends, and when user clicks on Exit to Lobby/Leave Match then again Tslgame.exe tries to connect to same endpoint with tcp payload of 355 bytes.
But many ISPs has TCP IDLE TIMEOUT set to 4 mins on their router/firewall. Hence the ISP router/firewall deletes/kills the IDLE connection if there is no conversation between client and server. (as each match is being played more than 4 mins, and Tslgame.exe doesn't send any packets within the match time hence ISP firewall kills the connection after 4 mins of idle time)
When the match is ended, and you click on exit to lobby the client tries to reconnect to the endpoint multiple times with the 1st handshake and fails as there is no connection to the server at this point due to ISP idle timeout, (this is where you see the black smoke screen) and in the end (after 3 retires) establishes a new connection/handshake (SYN/ACK).
Hence if a user plays a match for more than 4 mins, they see this issue after match ends.
SOLUTION #1 - Raise a ticket with your ISP to increase the TCP IDLE TIMEOUT to at least 1 hr (section 5 of RFC 5382, https://www.rfc-editor.org/rfc/rfc5382#section-5 it should be set to 2 hours 4 minutes/7204 seconds).
SOLUTION #2 - To resolve the issue, the application (Tslgame.exe) needs to send some occasional byte of data/empty packets to e9466.d.akamaiedge.net every now and then to be disregarded by the peer. [FIX NEEDS TO BE DONE BY PUBG DEV TEAM]
I have used wireshark to capture and research all the packets.
How will you test your ISP idle timeout value: -
Download and install postman(https://www.postman.com/downloads/)
File > New > WebSocket
Enter URL - wss://echo.websocket.in
Message Section, enter "Hello World"
Click on "Connect"
And after 4 mins click on "Send" button and see if you get response from server.(Next time click on send after an incremental value(5 min, 6 min, 7 min etc..) if you get a response)
If your ISP has the 4 mins timeout set, your connection will disconnect.
Nun meine Frage könnte die Telekom das bei mir hochstellen? Wenn mehr Infos benötigt werden, werde ich euch die natürlich zur Verfügung stellen! Und noch eine Info, sobald ich einen VPN von Nordvpn über zb Berlin nehme lädt es ohne Probleme! Vielleicht gibs ein Problem mit der Route die meine Daten nehmen?
DAAAAANKE
607
19
Das könnte Ihnen auch weiterhelfen
vor 4 Jahren
891
0
3
vor 3 Jahren
225
0
2
vor 11 Jahren
25765
0
128
vor 8 Monaten
Nun meine Frage könnte die Telekom das bei mir hochstellen?
Nun meine Frage könnte die Telekom das bei mir hochstellen?
Nein, kann sie nicht.
0
vor 8 Monaten
@pscl-
Die Telekom konfiguriert so keine angeschlossenen Router. Das müsstest du selbst tun, wenn der Router eine solche Einstellung überhaupt anbietet.
Ich denke, das ist auch gar nicht das wirkliche Problem bei deinem Spiel. Und wenn doch, dann muss der Spiele-Anbieter eine Lösung von seiner Seite finden, z. B. ein Keep-Alive auf die benannte Seite.
3
Antwort
von
vor 8 Monaten
Wie erklärst du dir dann das es mit einem VPN funktioniert? TCP Timeout müsste wenn die Telekom erhöhen. Ich habe 3 verschiedene Router ausprobiert.
Antwort
von
vor 8 Monaten
TCP Timeout müsste wenn die Telekom erhöhen.
Nein, muss sie nicht, ist eine Eigenschaft des Endgerätes, nicht des ISP .
Spiele-Anbieter machen es sich auch oft einfach für sich, die schieben die Verantwortung gerne erst einmal auf Andere ab.
Antwort
von
vor 8 Monaten
Wie erklärst du dir dann das es mit einem VPN funktioniert?
Du kennst die Funktionsweise von VPN ?
Uneingeloggter Nutzer
Antwort
von
vor 8 Monaten
Welche? AVM trennt nach 15 Minuten:
https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-7590/907_Anwendung-z-B-SSH-verliert-gelegentlich-die-Verbindung-zu-Gegenstellen-im-Internet/
Frag doch mal den "Entwickler" warum sie die Verbindung nicht per Keepalive offen halten, insbesondere wenn das Problem mit "many ISPs" auftritt.
1
Antwort
von
vor 8 Monaten
Speedport 3 und 4 und Fritzbox 7590. Was mich halt wundert die ganze Zeit hats funktioniert und von einem auf den anderen Tag nicht mehr.
Uneingeloggter Nutzer
Antwort
von
vor 8 Monaten
Nun meine Frage könnte die Telekom das bei mir hochstellen?
Wegen eines spekulativen Threads bei Reddit? Aber klar, gerne doch!
[FIX NEEDS TO BE DONE BY PUBG DEV TEAM]
Eben.
Schönen Abend
Thomas
0
vor 8 Monaten
SOLUTION #2 - To resolve the issue, the application (Tslgame.exe) needs to send some occasional byte of data/empty packets to e9466.d.akamaiedge.net every now and then to be disregarded by the peer. [FIX NEEDS TO BE DONE BY PUBG DEV TEAM]
SOLUTION #2 - To resolve the issue, the application (Tslgame.exe) needs to send some occasional byte of data/empty packets to e9466.d.akamaiedge.net every now and then to be disregarded by the peer. [FIX NEEDS TO BE DONE BY PUBG DEV TEAM]
Ich bin seit über 2 Wochen im Austausch mit den Entwicklern. Leider hat jeder Lösungsansatz nicht zum Ziel geführt.
Und ein da benanntes Keep-Alive war nicht im Lösungs-Portfolio des Spiele-Anbieters? Wäre echt schwach. Aber man sucht ja den Fehler nicht bei sich selbst. 🤢
6
Antwort
von
vor 8 Monaten
Sehe ich ähnlich, warum muss man eine TCP-Verbindung halten, wen man nur am Anfang und am Ende einer Aktion ein paar hundert Bytes übertragen will? Ist das nicht eher für eine Sache für UDP? Der Rest des Spiels wird doch auch weitgehend über UDP laufen.
Antwort
von
vor 8 Monaten
Ist das nicht eher für eine Sache für UDP
auch udp sessions unterliegen einem Timeout.
es ist eine Frage des Designs der Anwendung
Antwort
von
vor 8 Monaten
Richtig, aber man nutzt sie dann, wenn man sie braucht. Und hält da nichts lange auf.
Aber der fehlende Keep-Alive ist das Hauptproblem der Implementierung.
Uneingeloggter Nutzer
Antwort
von
vor 8 Monaten
Von Kunde zu Kunde:
Hm, ob sich wikrlich jemand diesen enormen Wall of Text durchliest? Ich hab nach 2 Zeilen aufgehört.
0
vor 8 Monaten
Und ein zyklisches Ping auf den Spielserver hat nicht geholfen? Siehe Beispiel im Kasten.
:START0
ping -n 4 192.168.2.1 > nul
timeout /T 180 > nul
goto START0
Obigen Code speichern als Datei mit der Endung .bat, also z.B. als alive.bat. Vorher die IP 192.168.2.1 durch die IP des Servers ersetzen, zu dem die Verbinung gehalten werden soll. Die Wartezeit im timeout Befehl beträgt hier 180 Sekunden. Diese ggf. ebenfalls anpassen aber nicht zu kurz wählen.
1
Antwort
von
vor 8 Monaten
@pscl-
Vielen Dank für deinen Beitrag in unserer Community 🙏🏽
Du hast hier ja bereits mehrere Antworten auf deine letzte Nachricht erhalten 🙂 Gehe gerne auf diese ein. Wir können bei diesem Peering -Problem leider nicht unterstützen, da es auch immer darauf ankommt, wie der Spieleanbieter die Daten an uns zurückgibt 🙏🏽 Darauf haben wir leider keinen Einfluss.
Viele Grüße
Timur
Uneingeloggter Nutzer
Antwort
von
vor 8 Monaten
@mboettcher
wenn es sich um das Problem handelt wie es beschrieben wurde, kann das mit dem Ping nicht helfen.
Das braucht er dann gar nicht versuchen.
Jeder Router verwaltet eine Statetable aus Source-IP/Port und Destination-IP/Port
dieser Eintrag wird für eine konfigurierte Zeit nach dem letzten Traffic beibehalten und dann gelöscht.
Nur solange er Eintrag existiert leitet der Router Pakete durch die Firewall weiter.
Jedes Paket das diese Verbindung passiert, zieht die Uhr für diese wieder auf.
Durch deinen Ping würde nur ein WEITERER Eintrag in der Statetable erzeugt - dieser hat eine eigene TTL, da mindestens die Ports unterschiedlich sind,
verhindert aber in keiner weise, dass der Eintrag um den es geht nach ende der TTL gelöscht wird.
0
Uneingeloggter Nutzer
Frage
von