Results 1 to 7 of 7

Thread: Jitter Manager

  1. #1
    Plugin Developer
    Join Date
    Nov 2014
    Location
    Piatra Neamt, Romania
    Posts
    11

    Question Jitter Manager

    I have written a new BF4 plugin that kicks based on the stability of someones ping. It's rather lightweight, and inspired by Latency Manager.

    Is this something I should post so people can try it out?
    Last edited by ColesyM; 13-11-2014 at 20:08.

  2. #2
    Plugin Developer
    Join Date
    Jan 2012
    Location
    Saarland
    Posts
    915
    Why not, we could give it a try it least.

    If it's a standalone plugin it should be posted in Plugin Approval sub forums https://forum.myrcon.com/forumdispla...lugin-Approval

    But I'm not sure if such a plugin is really useful since the sampling rate of ping request you can get with RCON might be not frequently enough to have some convincing calculation of jitter.
    Last edited by LumPenPacK; 13-11-2014 at 16:49.
    64 slots mixed Classic mode BF4
    32 slots rush mode BF3

  3. #3
    Plugin Developer
    Join Date
    Nov 2014
    Location
    Piatra Neamt, Romania
    Posts
    11
    Well, the algorith goes likes this:

    For the ping samples (i.e 10)
    Get the minium
    Get the average
    Get the delta between average and minimum
    If the delta is higher than the max jitter allowed setting (default 10ms), kick.

    Example:

    User has 30ms.
    They have 3 spikes, 31ms, 32ms, 44ms, the rest are 30ms.
    Average is 31.7, delta is 1.7, way below 10ms, fine.

    Example 2:

    User has 45ms.
    They have 5 spikes, 47ms, 51ms, 113ms, 114ms, 57ms.
    Average is 60.7, delta is 15.7, too high for setting of 10ms jitter, kick.

    Example 3:

    User has 5ms.
    They have 9 spikes, 7ms, 11ms, 13ms, 21ms, 6ms, 8ms, 7ms, 12ms, 10ms.
    Average is 10ms, delta is 5ms, does not exceed 10ms default setting, ok.

    Example 4:

    User has 82ms.
    They have 2 spikes, 147ms, 162ms.
    Average is 96.5, delta is 14.5, too high for setting of 10ms jitter, kick.
    Last edited by ColesyM; 13-11-2014 at 15:56.

  4. #4
    Plugin Developer
    Join Date
    Jan 2012
    Location
    Saarland
    Posts
    915
    The problem is that you can only monitor a very very small part of all network packets and you don't know the ping between the samples you use. This means the information content of your jitter calculation might be very small since you don't know the variation of the ping between the values you use for you calculation.

    Procon sends the admin.listPlayers command every 30 seconds by default which is way too long for some useful jitter calculation.
    But even if you spam the player.ping command (which I wouldn't recommend) you will most likely not get an updated value of players ping every time you spam this command.

    I was monitoring the network traffic from BF4 with Wireshark a few months ago and what I saw is that BF4 uses UDP protocol for almost all game traffic and only sends some ICMP packets for ping request every few seconds. Even this sampling rate might be too low for jitter calculation.
    64 slots mixed Classic mode BF4
    32 slots rush mode BF3

  5. #5
    Plugin Developer
    Join Date
    Nov 2014
    Location
    Piatra Neamt, Romania
    Posts
    11
    Quote Originally Posted by LumPenPacK View Post
    The problem is that you can only monitor a very very small part of all network packets and you don't know the ping between the samples you use. This means the information content of your jitter calculation might be very small since you don't know the variation of the ping between the values you use for you calculation.

    Procon sends the admin.listPlayers command every 30 seconds by default which is way too long for some useful jitter calculation.
    But even if you spam the player.ping command (which I wouldn't recommend) you will most likely not get an updated value of players ping every time you spam this command.

    I was monitoring the network traffic from BF4 with Wireshark a few months ago and what I saw is that BF4 uses UDP protocol for almost all game traffic and only sends some ICMP packets for ping request every few seconds. Even this sampling rate might be too low for jitter calculation.
    Correct, but it just means the resolution of the sample set is low, and it will take longer to get a meaningful set, with lots of smaller spikes slipping by. It will not detect everything.

    What it will catch is a situation where a player started of ok, then starts uploading too much or watching a HD stream that overcomes their bandwidth, because then it will give a high sample every time that 30 sec update happens.

    It's no different than High Ping kick in terms of resolution, its just that instead of getting an average ping over samples, we are getting an average delta over the samples.

    There are three options:
    Reduce the sample set size so you check sooner and hope you hit a jitter.
    Decrease the max jitter allowed so it is more sensitive.
    Modify procon.protected.send admin.listPlayers all task so its quicker than 30 seconds.
    Last edited by ColesyM; 13-11-2014 at 16:49.

  6. #6
    Uh, actually a lot of the jitter i've noticed can be caused by the server itself...I've seen groups of players all of a sudden be warned about ping spikes, but their value is almost always the same. This might be useful for something like scrims or competitive matches, but for pubbies? You're gonna get a lot of invalid kicks unless you write the plugin well. Should be interesting to see how this works out for people.
    ____

  7. #7
    Plugin Developer
    Join Date
    Nov 2014
    Location
    Piatra Neamt, Romania
    Posts
    11
    Quote Originally Posted by ColColonCleaner View Post
    Uh, actually a lot of the jitter i've noticed can be caused by the server itself...I've seen groups of players all of a sudden be warned about ping spikes, but their value is almost always the same. This might be useful for something like scrims or competitive matches, but for pubbies? You're gonna get a lot of invalid kicks unless you write the plugin well. Should be interesting to see how this works out for people.
    That's interesting, but if it was a real issue (never seen it myself), I suppose there could be an option where it keeps track of the average jitter for all players, and ignores kick if that is higher than the allowed anyway. A fallback protection in the case of a problem with the server/datacenter/route.

 

 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •