This is a very complex subject with no straight-forward answer. You can improve things by keeping your game simple and providing clients with a sensible update interval.
Battlefield 4's approach seems to be to sacrifice temporal resolution in order to preserve bandwidth. A BF4 server updates its world at 30 frames-per-second (that's a world update every 33 milliseconds). However, clients only communicate to the server every 100 milliseconds.
This is rather a slow update rate and a lot can happen in 100 milliseconds when you have weapons firing 1000 rpm or higher.
My advice for trying to avoid frustration with BF4 is to make sure you fire first wherever possible.
Battlefield 4's approach seems to be to sacrifice temporal resolution in order to preserve bandwidth. A BF4 server updates its world at 30 frames-per-second (that's a world update every 33 milliseconds). However, clients only communicate to the server every 100 milliseconds.
This is rather a slow update rate and a lot can happen in 100 milliseconds when you have weapons firing 1000 rpm or higher.
My advice for trying to avoid frustration with BF4 is to make sure you fire first wherever possible.