I am using IPERF to send some packets from one PC to another. Following things have been observed while testing MSS (Maximum Segment Size) with IPERF.
Send packets with MSS = 20 Bytes:
iperf -c 192.168.1.98 -P 1 -i 5 -p 5001 -M 20 -m
We were expecting that the above command will send packets with MSS = 20 Bytes and
MTU = MSS + 40Bytes = 60 Bytes but IPERF shows that MSS = 36 Bytes (MTU = 76 Bytes).
We saw that IPERF always sends MSS of size, 12 Bytes less than what we specify.
Here I should point out that the PC from which I send packets is a Linux machine while the one where these packets are received is a Windows machine. We generate packets in Linux using the IPERF command while on the Windows maching JPERF is running where we see information about the incoming packets.
Another important thing is that JPERF on the Windows machine after receiving the packets we sent, says following: MSS and MTU size unknown (TCP_MAXSEG not supported by OS?)
Any idea how/why MSS get decreased?