Reliable communication via sockets over cellular network

Hi,

I’m developing a multi-player game where we use tcp socket  to communicate between the server and its clients. The game requires providing critical information to the players in a game in order for the game to proceed (more or less like turn based games), so we cannot afford to lose messages. Message size varies a lot but at times can take hundreds of bytes, perhaps over 1KB. There are not a lot of messages during a game, around 8-10 per turn which can take ~1-2 minute of play time.  

Trying to run the game on devices using WiFi seems to run quite well with no communication errors.

However, when devices are running on cellular network, even though we use TCP protocol some messages do not arrive to the client which kills the game. Note that mostly we get timeout errors, although timeout setting is set to 10 seconds on the client which is a lot (I saw that mostly people recommend setting it to 0).

I could really use the help of someone who has successfully developed a multi-player game before and can help us understand how to properly setup communication between the server and the client. 

Regards,

Adi