DragonFly BSD
DragonFly commits List (threaded) for 2012-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: tcp/sack: Force out more segments allowed by "pipe" during fast recovery


From: Sepherosa Ziehau <sephe@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 25 May 2012 00:14:03 -0700 (PDT)

commit ccb518eadb169585edd353b50b1d0f665b45c3ee
Author: Sepherosa Ziehau <sephe@dragonflybsd.org>
Date:   Thu May 24 16:09:57 2012 +0800

    tcp/sack: Force out more segments allowed by "pipe" during fast recovery
    
    If some segments are cumulatively acked or SACKed, and HighRxt equals
    snd_una, one segment (new or retransmit) will be forced out even if cwnd
    and pipe don't allow it.  When large amount of segments are lost, i.e.
    computed pipe could be large, this avoids unnecessary retransmit timeout
    and could perform as good as NewReno.
    
    Sysctl node net.inet.tcp.force_sackrxt could be tuned to burst out several
    retransmits, default is 1 (should be good enough).  Set this sysctl to 0,
    SACK based fast recovery will obey the computed pipe.
    
    Several unnecessary retransmit timeout graph as described above:
    http://leaf.dragonflybsd.org/~sephe/no_force_sack_rexmt2_15.xpl (starts @15s)
    http://leaf.dragonflybsd.org/~sephe/no_force_sack_rexmt_54.xpl (starts @54s)

Summary of changes:
 sys/netinet/tcp_input.c |   43 +++++++++++++++++++++++++++++++++++++------
 sys/netinet/tcp_sack.c  |   20 +++++++++++++++++++-
 sys/netinet/tcp_var.h   |    1 +
 3 files changed, 57 insertions(+), 7 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/ccb518eadb169585edd353b50b1d0f665b45c3ee


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]