The way you implement the controls is greatly effected / determined how your logic works for the object being controlled.
There is not 1 best approach for all.
Just keep in mind, that a peers control actions are required to be executed on each connected peer and that the host's positioning of the synched object is likely the best way to determine location on the layout.
Combining your own peers movement in your screen with movement feedback from the host about your position, combined with some fancy delta time applied mechanics, gives the smoothest results.
This is not an easy concept and very likely to escape most c2's game devs imagination.