TCP deals with the bytes received and delivered to the applications as a stream of byte. The amount of bytes in TCP segments are not set by boundaries imposed by the sending application. Rather the amount of data bytes the TCP sends to the network is determined by the local network MTU (Maximum Transmission Unit), the Congestion Window, and the Advertised Window. The Advertised Window is required for the flow control mechanism supported by TCP. The receiver sets the Advertised Window field to a value based on the amount of data bytes the receiver can buffer. This animation explains how TCP deals with its stream of bytes taking into consideration flow control.