Re: [Iperf-users] use of --set-mss flag in iperf3

2018-08-06 Thread Mohanraj B
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 1
warning: UDP block size 1 exceeds TCP MSS 1358, may result in
fragmentation / drops
wireshark capture:
off =0
off=1480
off=2960
off=4440
off=5920
off=7400
len 1

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  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


Re: [Iperf-users] use of --set-mss flag in iperf3

2018-08-06 Thread Bruce A. Mah
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.




signature.asc
Description: OpenPGP digital signature
--
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


Re: [Iperf-users] How does iperf UDP test count lost packets?

2018-08-06 Thread Bruce A. Mah
If memory serves me right, Bob McMahon via Iperf-users wrote:
> speaking for iperf2 , the
> iperf client writes a sequence number in every packet.   The server then
> calculates the lost packets per the sequence number gaps.
> 
> For iperf2, there is no test hanshake between client and server for
> basic UDP tests.

iperf3 also uses sequence numbers in each packet.  I presume the OP is
referring to iperf3, because information on the number of packets
transmitted and received is also conveyed over the (TCP-based) control
channel.

Bruce.


> On Mon, Aug 6, 2018 at 12:53 AM, Ayrton Senna
> mailto:ayrtonsenna.ph...@gmail.com>> wrote:
> 
> Hello,
> 
> This question has been bugging me since I started using iperf and I
> couldn't find an answer by simply sifting through old iperf
> discussions online. 
> 
> So, Since UDP uses connectionless communication, how, in theory, is
> iperf using it to know the number of lost packets during
> transmission between service and client? 
> I can only imagine that this is achieved by establishing a TCP(or
> other)-based connection on top first, and then somehow wrapping the
> UDP connection, because when iperf UDP test is run, both client and
> server seem to exchange information or do some sort of handshaking. 
> 
> Thanks, 
> Ayrton
> 
> 
> --
> 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
> 
> 
> 
> 
> 
> --
> 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
> 




signature.asc
Description: OpenPGP digital signature
--
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


Re: [Iperf-users] How does iperf UDP test count lost packets?

2018-08-06 Thread Bob McMahon via Iperf-users
speaking for iperf2 , the iperf
client writes a sequence number in every packet.   The server then
calculates the lost packets per the sequence number gaps.

For iperf2, there is no test hanshake between client and server for basic
UDP tests.

Bob

On Mon, Aug 6, 2018 at 12:53 AM, Ayrton Senna 
wrote:

> Hello,
>
> This question has been bugging me since I started using iperf and I
> couldn't find an answer by simply sifting through old iperf discussions
> online.
>
> So, Since UDP uses connectionless communication, how, in theory, is iperf
> using it to know the number of lost packets during transmission between
> service and client?
> I can only imagine that this is achieved by establishing a TCP(or
> other)-based connection on top first, and then somehow wrapping the UDP
> connection, because when iperf UDP test is run, both client and server seem
> to exchange information or do some sort of handshaking.
>
> Thanks,
> Ayrton
>
> 
> --
> 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
>
>
--
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


[Iperf-users] use of --set-mss flag in iperf3

2018-08-06 Thread Mohanraj B
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.

Thanks in advance.

Regards,
Mohan

--
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


[Iperf-users] How does iperf UDP test count lost packets?

2018-08-06 Thread Ayrton Senna
Hello,

This question has been bugging me since I started using iperf and I
couldn't find an answer by simply sifting through old iperf discussions
online.

So, Since UDP uses connectionless communication, how, in theory, is iperf
using it to know the number of lost packets during transmission between
service and client?
I can only imagine that this is achieved by establishing a TCP(or
other)-based connection on top first, and then somehow wrapping the UDP
connection, because when iperf UDP test is run, both client and server seem
to exchange information or do some sort of handshaking.

Thanks,
Ayrton
--
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