Thanks Bruce for the response.

I failed to mention the below scenario in the first thread.

If run the UDP test and setting UDP payload size(Hope its the intended
use of) using -l, fragmentation occurs at IP layer.

[bash]> iperf3 -c ping.online.net -u -l 10000
warning: UDP block size 10000 exceeds TCP MSS 1358, may result in
fragmentation / drops
wireshark capture:
off =0
off=1480
off=2960
off=4440
off=5920
off=7400
len 10000

So current functionality of iperf3 is UDP streams are fragmented at IP
layer if datagram exceeds the MTU but TCP streams wont let us set the
MSS if it is higher than the path MTU.
please correct me If I am wrong here.

Thanks,
Mohan
On 8/6/18, Bruce A. Mah <b...@es.net> wrote:
> If memory serves me right, Mohanraj B wrote:
>> Hi Experts/users,
>>
>> I have a query on the usage of --set-mss flag for TCP streams in iperf3.
>>
>> For the test purpose I have used the iperf3 public
>> servers(https://iperf.fr/iperf-servers.php)
>> Used wireshark to verify the generated traffic from my end.
>>
>> Below are the different options that I have tried.
>>
>> [bash] > iperf3 -c bouygues.iperf.fr
>> Traffic observed in wireshark:
>>
>> MSS option in SYN packet: 1440 bytes.
>>
>> Total frame size: 1444 bytes.
>> TCP payload size: 1358 bytes.
>> ------------------------------------------------------------------------------------------------------
>> [bash]> iperf3 -c bouygues.iperf.fr --set-mss 900
>> Traffic observed in wireshark:
>>
>> MSS option in SYN packet: 900(As expected)
>>
>> Total frame size: 974 bytes
>> TCP payload size: 888 bytes
>> --set-mss flag seems clear effect on the generated traffics as it
>> reduces the TCP payload within 900bytes.
>> -------------------------------------------------------------------------------------------------------
>> If I set the value more than 1440 bytes, iperf3 never overrides the
>> default value of 1440 bytes in MSS option of the SYN packet.
>>
>> [bash] > iperf3 -c bouygues.iperf.fr --set-mss 2000
>> Traffic observed in wireshark:
>>
>> MSS option in SYN packet: 1440.
>>
>> Total frame size: 1444 bytes.
>> TCP payload size: 1358 bytes.
>> ---------------------------------------------------------------------------------------------------------
>> Why SYN packet of the last test not set to 2000?
>> Please some explain.
>
> Your TCP implementation will never (er, should not) allow you to set the
> MSS so high that it generates fragmented IP packets.  The path MTU for
> your connection is probably somewhere around 1500 bytes, which is the
> maximum non-jumbo-frame size of an Ethernet frame payload.  (Trying to
> use the correct terminology here, hoping I got that right.)
>
> Noting that both IPv4/IPv6 and TCP have overheads for their headers,
> it's unlikely for you to be able to set an MSS larger than around 1460
> on IPv4...IPv6 would be slightly less because the IPv6 header is larger.
>
> If you were running on a jumbo-frame clean path, you could probably set
> an MSS up to something like 9K.
>
> Bruce.
>
>
>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Iperf-users mailing list
Iperf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iperf-users

Reply via email to