Anonymous | Login | Signup for a new account | 2024-04-25 01:12 UTC |
My View | View Issues | Change Log | Roadmap | Zandronum Issue Support Ranking | Rules | My Account |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
0002300 | Zandronum | [All Projects] Suggestion | public | 2015-06-10 02:12 | 2016-04-10 19:27 | ||||||||
Reporter | Watermelon | ||||||||||||
Assigned To | |||||||||||||
Priority | normal | Severity | feature | Reproducibility | N/A | ||||||||
Status | new | Resolution | open | ||||||||||
Platform | Microsoft | OS | Windows | OS Version | XP/Vista/7 | ||||||||
Product Version | 2.1 | ||||||||||||
Target Version | Fixed in Version | ||||||||||||
Summary | 0002300: Network buffer | ||||||||||||
Description | Unfortunately due to the structure of how the game is set up, it's possible to blow past the 1024 packet limit in maps that have a ton of data, even on LAN. The solution to this is to have a packet buffer. Implementing this might be harder than it sounds, since it has to take into account ping, dropped packets, handling that with the 1024 limit...etc. | ||||||||||||
Attached Files | |||||||||||||
Notes | |
(0012623) Watermelon (developer) 2015-06-10 02:21 edited on: 2015-06-10 02:21 |
I'm curious on defining our boundaries, with respect to the limits we will place on ourselves. Right now, let us assume that we are sending more data than the client can handle on LAN. The problem we have is that the client cuts out after 1024 packets have found to be lost, which is when the latest packet it gets is 1024 (or 1025?) indices ahead of what the server last sent. 1) How much do we want to limit our packet buffer to? For example, if a mod is generating lets say 2000 packets worth of data per tic, what exactly do we do in this case? It's not uncommon to see mods do this (see BestEver statistics), so we'll have to introduce a cap on the server end which says "too much data to transfer". What is a good limit? Right now 1024 packets * 1024 bytes = 1 meg of memory, I'm guessing it's not unreasonable to do 8 of these? That should be 8 megs of memory max per player, which is 512 megs of additional ram. Are we okay with this? 2) We may have to consider a throughput cap, and I'm not exactly sure how to make it work optimally. If we're piping through 256-512 packets per second (as an example) it needs to take into account the ping of the player. If they have 300 ms ping, by the time they realize they're missing a packet, the 1024 buffer on the server could have already been blown past recovery. 3) Storing extra packets in memory: If we're going to have a buffer to deploy, might it be worth expanding the limit of how far the server will remember back? I feel that these need some serious thought before even considering code development on a patch, since this is larger of a task than I originally thought. |
(0012632) Frits (reporter) 2015-06-10 12:06 |
Konar made a custom build once that allowed clients to miss a lot more packets (4048 or more i don't exactly recall) and instead of lagging out clients, the server itself froze :P (Tested with chillax). |
Only registered users can voice their support. Click here to register, or here to log in. | |
Supporters: | Monsterovich |
Opponents: | No one explicitly opposes this issue yet. |
Issue History | |||
Date Modified | Username | Field | Change |
2015-06-10 02:12 | Watermelon | New Issue | |
2015-06-10 02:12 | Watermelon | Assigned To | => Watermelon |
2015-06-10 02:12 | Watermelon | Status | new => needs review |
2015-06-10 02:21 | Watermelon | Note Added: 0012623 | |
2015-06-10 02:21 | Watermelon | Note Edited: 0012623 | View Revisions |
2015-06-10 12:06 | Frits | Note Added: 0012632 | |
2016-04-10 19:21 | Torr Samaho | Product Version | 3.0 => 2.1 |
2016-04-10 19:21 | Torr Samaho | Target Version | 3.0 => |
2016-04-10 19:21 | Torr Samaho | Status | needs review => new |
2016-04-10 19:27 | Dusk | Assigned To | Watermelon => |
Copyright © 2000 - 2024 MantisBT Team |