@dlakelan @moeller0 hello everyone, as you can see I haven't given up :). a python script allowed me to analyze pure game traffic between a game server destination and my PS5 game console. it analyzes traffic only udp port 3659. (dest and src). I'll let you see the difference between a smooth game and a completely unplayable game.
Unplayable game
Happens to all your devices and games. What if there's really bad Electromagnetic Interference around your router or a cable due to maybe high-voltage power lines or unshielded electrical wiring? Did you every try changing Cat7 cable?
in order to eliminate the thesis of dirty current and, I equipped myself with an inverter to protect everything. therefore the problem can only be the ISP
I imagine that UDP traffic has the consequence of an overly strict ISP policy, either by flow or by their own QOS.
here are the upstream and downstream rates 13277.85 bits/s, 11484.85 bits/s
1 Like
Lynx
1061
Seems it would be helpful to repeat the tests but over a WireGuard link with a well connected server.
1 Like
As @Lynx said try Wireguard. Although wireguard uses UDP packets for all the operations the result maybe the same but it's worth trying. I don't remember if we discussed about using VPN before on Discord, but here:
Install Wireguard software on pc.
Go to [https://github.com/ViRb3/wgcf] (https://github.com/ViRb3/wgcf) and follow first two commands to get Wireguard profile for Cloudflare Warp.
Import the file in wireguard and enable the connection then test your game
Vpn wireguard with warp plus on pc and on openwrt router was tested, despite the reduction in hops and closed ports for games (Nat3) the experience was worse.
a VPN can only be useful if the routes are not optimal.
my problem is elsewhere and precisely with the ISP.
Their COPP policy is too strict.
I had the opportunity to test all the ISP connections at the heart of the ISP network, in their premises, in their central office. always the same problem, delay delay delay whatever the server in Europe.
Hi @segal_72 your commitment is remarkable!
Can you explain what we're looking at in the graphs? I can't read the labels or anything in your photos.
Take this one:
I understand that the first graph represents playable, and the second unplayable... Now... what are we graphing? what is x axis (I assume time?) what is y axis (I think it's an estimate of bandwidth utilized? Or maybe it's something else like ping duration?)
The graphs are remarkably similar.
Or maybe I'm confused, I guess those two graphs are the same game... unplayable... but these two are a playable game:
I still don't know what the graphs show.
Ok, I zoomed in and I see a label "Latency and Jitter" on the left axis so it seems maybe this is a ping plot. If so it makes it very clear you have huge latency variation during your game and it has a strong pattern, jumping from maybe 20ms to 250 and back...
This is maybe a symptom of route flapping, with some router sending your packets alternatively down one link with high latency and then on another link with low latency... Back and forth.
I would think this graph would provide a major piece of objective data to your ISP, telling them they are screwing up badly.
spot0
1066
What does the script do exactly?
This script allows you to:
Measure and analyze network performance between a PS5 and a game server.
Interactively view latency and jitter metrics.
Extract key statistics on throughput, latencies, jitter and packet losses.
This Python script analyzes a network packet capture file (pcapng) to evaluate network performance between a ip PS5 and a game server located at IP address x.x.x.x. Here is a detailed explanation of the main steps and features of the script:
Module Import
pyshark: To read and analyze network capture files.
pandas: To manipulate and analyze data.
plotly.graph_objects: To create interactive graphs.
Loading and Initial Configuration
The capture file is specified (file_name).
The IP addresses of the PS5 and the game server are defined.
Packet Analysis
Initialization of variables to calculate bandwidth (upload/download), latency, jitter, and packet loss.
Loop through each packet in the capture file:
Packet counting.
Extraction of the IP and UDP layers from the packets.
Calculation of transferred bytes for packets sent by the PS5 (upload) and received by the PS5 (download).
Calculation of latency based on the packet timestamps.
Calculation of jitter as the absolute difference between successive latencies.
Collection of latencies and times for each packet.
Calculation of Network Statistics
Conversion of latency data into a DataFrame.
Calculation of latency statistics (average, minimum, maximum).
Calculation of the total capture duration.
Calculation of upload and download bandwidth.
Calculation of average jitter.
Calculation of the packet loss rate.
Display of Results
Printing of the calculated network statistics.
Creation of the Interactive Graph
Creation of an interactive graph with Plotly:
Addition of latency and jitter curves.
Addition of horizontal lines for average, minimum, and maximum latencies.
Addition of annotations for network statistics.
Configuration of the graph's titles, labels, and legend.
Addition of a menu to select which curves to display (latency, jitter, or both).
Saving and Displaying the Graph
The graph is saved as an HTML file and displayed.
Explanation regarding the X and Y axes of the graph:
X-axis (abscissa)
- X-axis (Relative Time): This axis represents the relative time in seconds (
Relative Time (s)) from the beginning of the packet capture. Each point on this axis corresponds to the moment a packet was captured, relative to the start of the capture.
Y-axis (ordinate)
- Y-axis (Latency and Jitter): This axis represents both latency and jitter in milliseconds (
Latency and Jitter (ms)).
- Latency: Latency is measured for each packet and is represented on this axis as the elapsed time from the start of the capture to the capture of the packet (
latency).
- Jitter: Jitter is calculated as the absolute difference between the successive packet latencies and is also represented on this axis (
jitter).
Additional Details on the Graph
Thus, the graph allows for visualizing the evolution of latency and jitter over time, providing a clear understanding of the network performance between the PS5 and the game server.
spot0
1070
How do you tell which UDP packets are for which characters and when there are retransmissions or packet losses?
https://www.reddit.com/r/EASportsFC/comments/5wy17w/as_a_network_engineer_id_like_ea_to_provide_some/
So, without being able to look at more details and read the words on the screen, it appears to me that you have extremely high jitter on some games, and low on others. And I suspect this is 100% your ISP.
Your ISP should want to see those graphs. If you have had a chance to talk with technicians at your ISP, have you sent them the graphs? What did they say?
“Yes, indeed, and since 2020 you had already told me that it was the ISP, however, it needed to be proven. I think now I have the proof. Yes, I have sent the graphs as photos. If they need, I can transfer the interactive HTML file to them so they can zoom in all directions.”
for the moment they have not yet responded to my graphs, I presume that I will have further answers!
is this script public? i would like to test my traffic
Apologies for reviving a dead thread, but @segal_72 I was wondering where you have found yourself at with this issue. Possibly given up? I posted on this thread a couple of times in 2023. I skipped the 2024 edition of FIFA, which did spare me many headaches, but unfortunately could not resist the urge to buy the new edition, EA FC 25.
And like before, gameplay was not good but optimal enough for a period of two weeks after installing and first playing this game. Soon after, the massive input delay reared its ugly head once more. Ive gone through many of the suggestions in this thread to no avail. The opponent always seems to be a playing a different game to me. I have also now noticed similar issues in CSGO - I am not operating in realtime. I will get killed even before I see an enemy on many occasions.