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