TSO and FreeBSD vs Linux

Luigi Rizzo rizzo at iet.unipi.it
Tue Aug 13 17:54:52 UTC 2013


On Tue, Aug 13, 2013 at 7:37 PM, Navdeep Parhar <np at freebsd.org> wrote:

> On 08/13/13 10:29, Julian Elischer wrote:
> ..
> >
> > Has anyone done any work on aggregating ACKs, or delaying responding to
> > them?
>
> If LRO is enabled on the FreeBSD receiver, ACKs are already aggregated
> (a duplicate ACK will result in an immediate flush though.)  See
> tcp_lro_rx.
>

>From what I have heard (no direct experience though), when TSO is enabled
linux may decide to hold a transmission in the hope of getting more acks
in the future hence a larger segment sent in one shot.

I am not sure i find similar code in FreeBSD; there is something mentioned
in tcp_output() but then the check only seems to be for t_maxseg

        /*
         * Sender silly window avoidance.   We transmit under the following
         * conditions when len is non-zero:
         *
         *      - We have a full segment (or more with TSO)
         *      - This is the last buffer in a write()/send() and we are
         *        either idle or running NODELAY
         *      - we've timed out (e.g. persist timer)
         *      - we have more then 1/2 the maximum send window's worth of
         *        data (receiver may be limited the window size)
         *      - we need to retransmit
         */
        if (len) {
                if (len >= tp->t_maxseg)
                        goto send;
                /*

and the t_maxseg seems to be capped to the mss.

This could be implemented in tcp_output(), i suppose.

cheers
luigi


> Regards,
> Navdeep
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>



-- 
-----------------------------------------+-------------------------------
 Prof. Luigi RIZZO, rizzo at iet.unipi.it  . Dip. di Ing. dell'Informazione
 http://www.iet.unipi.it/~luigi/        . Universita` di Pisa
 TEL      +39-050-2211611               . via Diotisalvi 2
 Mobile   +39-338-6809875               . 56122 PISA (Italy)
-----------------------------------------+-------------------------------


More information about the freebsd-net mailing list