The network people says that there are packets sent without the PUSH flag by the application.Very likely. There isn't an API for setting the PUSH flag in Java, so it won't be set unless the TCP stack sets it.
they say all data should contain the PUSH flag.The network people are mistaken. The PUSH flag is an option, and in practice it makes little or no difference to TCP processing. Show them the RFC you quoted from. Tell them that Java has never set the PUSH flag, and yet Java has been sending enormous TCP streams all over the world for over sixteen years
Supposing, I need to change the TCP stack optionYou don't. The RFC alone should have convinced you of that, also the complete absence of any Java API.
in the middle it is disconnected with the exception java.net.SocketException:, But ther is no network disconnection.Now you're just contradicting yourself. Either there is a network disconnect or there isn't. If you got a SocketException, there was a disconnect (unless it was a SocketTimeoutException, which only happens during reading, so that isn't it). Apparently the peer has closed the connection while you were still writing to it. That could be either because you shouldn't be writing at all, i.e. an application protocol mis-implementation between server and client, or maybe the peer has just given up for some reason, for example an upload is too large.