Are you using UDP per -u?  I assume so.

What does "tcpdump arp or port <dstport>"  on the client's machine show?
On my machines there will be packets even if there is no iperf server.
They'll either be ARP requests or UDP packets. Also, the output of arp -n
might be useful.  The client can write even if the ARP hasn't completed.
The local stack will drop packets until the ARP completes but this may be
dependent on things like OS flow control of the application.

If the receiver doesn't have the socket open the host OS can send a
resource/port unavailable (or equivalent) back to the client.   The client
will stop its writes() and should indicate that a write error occurred via
an error message.

Those are some of my initial thoughts.

Bob

On Mon, Jun 10, 2019 at 2:46 AM Christian Sánchez <crisanc...@gmail.com>
wrote:

> Hello,
>
> Thanks for your reply Bob.
>
> I am trying to get it working the way I have explained...the only thing is
> that my raw socket script stops running when I execute Iperf client:
> - if I run my own packet transmitter, I can send as many packets as I want
> and the raw socket script does not end, just keep waiting for more packets
> to receive (I am using the function "recvfrom")
> -when I execute Iperf, it receives one packet, and just ends almost
> immediately (like as I had done ctrl+c)
>
> Any hint on why this happens? Might it the way Iperf handles the
> connection?
>
> Cheers,
> Christian
>
> On Sat, 8 Jun 2019, 00:15 Bob McMahon, <bob.mcma...@broadcom.com> wrote:
>
>> It sorta makes sense but not sure.   My answers are from an iperf 2
>> perspective.
>>
>> Currently, there is no way from the command line to add a header to the
>> UDP payload.  It would have to be done in source code or by something like
>> linux tc or ip tables.
>>
>> The iperf client doesn't require an iperf server for it to send packets.
>> It just needs arp to be resolved.  So a VB can receive traffic from client
>> (or transmit) only.
>>
>> Yes, I think you can get the measurements from the second computer
>> assuming the packet payload has what's expected for it to make the
>> computations.
>>
>> Bob
>>
>> On Fri, Jun 7, 2019 at 9:22 AM Christian Sánchez <crisanc...@gmail.com>
>> wrote:
>>
>>> Hi,
>>> Probably the topic is not very helpful...Let me explain my situation in
>>> more detail: I need to modify the UDP payload generated by Iperf, so I can
>>> add an additional header to it. My idea is to run an Iperf client in a
>>> computer, and use this client to send traffic to a virtual box in the same
>>> computer. In the virtual box I would be running a script using a raw socket
>>> to receive the data. After receiving it, and adding the header, I send it
>>> to another Iperf server (in another computer), which would receive the data
>>> after having removed the header.
>>> My questions:
>>> I don't have a clear understanding of the working details of Iperf, does
>>> what I have explained above make sense at all to you?
>>> Can I expect to get traffic in the VB from the client even when I'm not
>>> running any server in the VB?
>>> If by any chance I finally get traffic in the second computer, can I
>>> expect it to perform correct measures from the traffic generated by the
>>> client?
>>>
>>> Cheers
>>> Christian
>>> _______________________________________________
>>> Iperf-users mailing list
>>> Iperf-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/iperf-users
>>>
>>
_______________________________________________
Iperf-users mailing list
Iperf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iperf-users

Reply via email to