I am seeing a strange thing which is not what I expect as per the TCP theory:
The client while doing a handshake sets a MSS (Maximum Segment Size) of 1360 and a window size of 64K but the Linux server is sending TCP packets containing either 4KB, 7KB, some packets of 8KB which is more than 1360 and I expected it to be less than 1360 bytes.
I observed this by doing a tcpdump
and then inspecting it in Wireshark.
I did not expect the server to send more than 1360 bytes per TCP packet. Am I wrong somewhere in my theoretical understanding of the workings of TCP?
First of all as @fernacolo stated don't confuse MSS and MTU.
Maybe generic-segmentation-offload of your interface is on - read here for more info.