If memory serves me right,
niye...@gmail.com wrote:
> Hello:
> Thanks a lot for your reply.
> I want to measure the performance of an end-to-end network, such as
> available bandwidth, delay, loss and jitter which are very important in
> stream media playout. The project like this: there is a server which can
> provide video service, and a daemon that can measure the end-to-end
> performance running in the server. When a client send a request to the
> server, the server will firstly begin a network performance measurement.
> The result (available bandwidth, delay or jitter, and loss ) will
> indicate which kind (high definition or low definition ) of video stream
> should send to the client. And one server should provide stream service
> to many client.
> As I konw, the iperf3 has a daemon model, and can get bandwidth, delay
> jitter, pkt loss. So I decide to use iperf3 in my project. After I read
> the source code, I found that the bandwidth result maybe not like the
> available bandwidth, so I want to do some change in the source code, now
> I found it is a difficult work.
> I see the functions you mentioned, but I thought maybe I missed
> something. Now I have some new question, first, when iperf3 use TCP to
> estimate bandwidth, does the iperf3 use up the whole bandwidth? If it
> is true, why I can use ftp service when the test is going.
iperf3 uses TCP to estimate the available bandwidth, basically just by
sending data as fast as it can. You can get into some situations (such
as what we see in the R&E networking community) where the end hosts, not
the network, are the bottleneck.
As you (hopefully) know, TCP streams sharing a bottleneck link will
adjust their sending rates in various ways to share the bottleneck link
(some more efficient than others, some more fair than others). IP
networks do not allocated a fixed amount of bandwidth to TCP connections.
> Second, I use
> pathload to test the available bandwidth in the same path when the
> iperf3 is going with UDP. I change the paramater -b from 8M to16M, from
> 16M to 32M, but in pathload result, I don't find some different? I was
> confused about this.
pathload uses a different mechanism and algorithm from iperf3. It's
very possible that it's measuring something different from what iperf3
measures, and that's why you're getting different results.
> Third, do you have some advice or recommend tools
> or solutions to accomplish my goal.
If you're sending video, presumably the video data contains timestamps
to indicate when video frames should be displayed. You could have your
receiver watch the timestamps during playback to see if they're going
slower than real-time, which might indicate that the sender is sending
data too fast, and adjust its resolution (and therefore data rate)
accordingly while the video is playing. I'm pretty (but not absolutely)
sure this is how streaming video systems work today.
Good luck,
Bruce.
> My experimental environment in a lan , but not in the same vlan, there
> is a 100M bandwidth between server and client, and 4 hops from client to
> server.
> I am looking forward your soonest reply.
>
> 在 2014年5月23日星期五UTC+8上午5时54分05秒,Bruce A. Mah写道:
>
> --
> You received this message because you are subscribed to the Google
> Groups "iperf-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
iperf-dev+...@googlegroups.com
> <mailto:
iperf-dev+...@googlegroups.com>.
> To post to this group, send email to
iper...@googlegroups.com
> <mailto:
iper...@googlegroups.com>.
> Visit this group at
http://groups.google.com/group/iperf-dev.
> For more options, visit
https://groups.google.com/d/optout.