1. 10 Nov, 2005 1 commit
    • Stephen Hemminger's avatar
      [TCP]: fix congestion window update when using TSO deferal · f4805ede
      Stephen Hemminger authored
      
      TCP peformance with TSO over networks with delay is awful.
      On a 100Mbit link with 150ms delay, we get 4Mbits/sec with TSO and
      50Mbits/sec without TSO.
      
      The problem is with TSO, we intentionally do not keep the maximum
      number of packets in flight to fill the window, we hold out to until 
      we can send a MSS chunk. But, we also don't update the congestion window 
      unless we have filled, as per RFC2861.
      
      This patch replaces the check for the congestion window being full
      with something smarter that accounts for TSO.
      Signed-off-by: default avatarStephen Hemminger <shemminger@osdl.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f4805ede
  2. 29 Aug, 2005 1 commit
    • Arnaldo Carvalho de Melo's avatar
      [ICSK]: Move TCP congestion avoidance members to icsk · 6687e988
      Arnaldo Carvalho de Melo authored
      
      This changeset basically moves tcp_sk()->{ca_ops,ca_state,etc} to inet_csk(),
      minimal renaming/moving done in this changeset to ease review.
      
      Most of it is just changes of struct tcp_sock * to struct sock * parameters.
      
      With this we move to a state closer to two interesting goals:
      
      1. Generalisation of net/ipv4/tcp_diag.c, becoming inet_diag.c, being used
         for any INET transport protocol that has struct inet_hashinfo and are
         derived from struct inet_connection_sock. Keeps the userspace API, that will
         just not display DCCP sockets, while newer versions of tools can support
         DCCP.
      
      2. INET generic transport pluggable Congestion Avoidance infrastructure, using
         the current TCP CA infrastructure with DCCP.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@mandriva.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6687e988
  3. 23 Jun, 2005 1 commit
    • Baruch Even's avatar
      [TCP]: Add H-TCP congestion control module. · a7868ea6
      Baruch Even authored
      
      H-TCP is a congestion control algorithm developed at the Hamilton Institute, by
      Douglas Leith and Robert Shorten. It is extending the standard Reno algorithm
      with mode switching is thus a relatively simple modification.
      
      H-TCP is defined in a layered manner as it is still a research platform. The
      basic form includes the modification of beta according to the ratio of maxRTT
      to min RTT and the alpha=2*factor*(1-beta) relation, where factor is dependant
      on the time since last congestion.
      
      The other layers improve convergence by adding appropriate factors to alpha.
      
      The following patch implements the H-TCP algorithm in it's basic form.
      Signed-Off-By: default avatarBaruch Even <baruch@ev-en.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a7868ea6