[netperf-talk] Bidirectional tests
Rick Jones
rick.jones2 at hp.com
Tue May 9 09:26:03 PDT 2006
fonesurj at verizon.net wrote:
> So Netperf looks interesting, but I need some clarification on a post
> to this e-mail list you made concerning bidirectional tests.
>
> ===============
> However, if one
> configures netperf with --enable-burst, and are careful about socket buffer
> sizes relative to the request/response sizes and the burst size, one can achieve
> the same thing.
> ================
>
> 1. Can you elaborate on the relationship between the socket size, the
> R/R sizes, and the burst size? Like "socket_size >= burst_size *
> RR_size" or something to that effect.
While it is not enforced, if you --enable-burst, you should make sure
that the SO_SNDBUF size is at least burst_size * rr_size bytes to avoid
a deadlock. The netperf TCP_RR test has no "select()/poll()" call in it
so you must make sure that the send() calls never block so it can loop
around to the recv() calls.
> 2. The R/R sizes are the size of the TCP message (which is then
> subject to being broken up at L3)?
The R/R sizes are the R/R sizes. Depending on their size, and the TCP
MSS, and the setting of TCP_NODELAY, and other stack-specific
(mis)behaviours, a request/response message is either in a TCP segment
by itself (when < MSS), combined with another request/response in that
TCP segment, or spans multiple TCP segments. It really all depends.
And since TCP tries quite hard to avoid fragmentation, if the
request/response is larger than the MSS, _TCP_ will segment it (ie break
it up an L4, ass-u-me-ing I've interpreted your use of L2, L3 and L4
correctly and you aren't asking about networking at a Lagrange point :)
>
> 3. The burst size is the number of packets (L3) or messages (L4)?
It is the number of messages - L[5,6,7] - application layer. L4 in the
context of TCP are not "messages" but segments. It would be bad to use
the term "message" in the context of TCP as TCP does not preserve
message boundaries. L4 in the context of UDP is datagrams. L3 in the
context of IP is also datagrams, L2 in the context of ethernet at least
is frames. They are all specific instances of "packets" :)
hth,
rick
More information about the netperf-talk
mailing list