**snippet from another post**
Host wants to move
The host simply moves his object and its movement is synched in a broadcasting like method, telling all the peers where the host object needs to go.
Peers wants to move
In most synched scenarios, the peer needs to tell the host where it wants to move, the host then move the object on the host game, and it broadcasts it to all the peers, including the peer wanting to move.
Peer forced moving:
When the peer wants to optimize the positioning of its object; while sending the movement to the host, the peer can also move its synched object in the direction it has told the host it wanted to move. This forces it in a direction, closer to the next synched position the peer will receive for its own movement, potentially increasing more smoothness on the moving.
Check the forced moving bit.
also, keep synching to a minimum. The less you synch, the less overhead, the less chance of lag / line congestion.