tcpsocket – Is it a good practice to write a GB of byes into a TCP socket in one go?

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?