I am maintaining some matured production code which sends data over TCP sockets. It always breaks large chunk of data into many packets, each 1000 bytes. I just wonder why it was done this way. Why can’t I just write a GB worth of a byte array into the socket in one go? What are the cons to do that?