What is the maximum size of data that the application layer can pass on to the TCP layer below?
Any size
2^16 bytes-size of TCP header
2^16 bytes
1500 bytes
The TCP protocol uses the OPTIONS field to exchange information like the maximum segment size accepted between the TCP layers on the two hosts. So, it should be any size.
Application can write any size on tcp sockets. Its the job of transport/IP/Physical to take care of the rest. Max segment size is something for adaptive rate control.