Re-apply my "breakage" to the Nagel congestion avoidence. This version
differs slightly in the logic from the previous version; packets are now acked immediately if the sender set PUSH.
This commit is contained in:
parent
2f69f2f2f3
commit
e612a582cc
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=7417
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* From: @(#)tcp_input.c 8.5 (Berkeley) 4/10/94
|
||||
* $Id: tcp_input.c,v 1.15 1995/02/16 01:39:19 wollman Exp $
|
||||
* $Id: tcp_input.c,v 1.16 1995/03/16 18:15:04 bde Exp $
|
||||
*/
|
||||
|
||||
#ifndef TUBA_INCLUDE
|
||||
@ -522,7 +522,17 @@ tcp_input(m, iphlen)
|
||||
m->m_len -= sizeof(struct tcpiphdr)+off-sizeof(struct tcphdr);
|
||||
sbappend(&so->so_rcv, m);
|
||||
sorwakeup(so);
|
||||
tp->t_flags |= TF_DELACK;
|
||||
/*
|
||||
* If this is a short packet, then ACK now - with Nagel
|
||||
* congestion avoidance sender won't send more until
|
||||
* he gets an ACK.
|
||||
*/
|
||||
if (ti->ti_flags & TH_PUSH) {
|
||||
tp->t_flags |= TF_ACKNOW;
|
||||
tcp_output(tp);
|
||||
} else {
|
||||
tp->t_flags |= TF_DELACK;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -1557,6 +1567,14 @@ tcp_input(m, iphlen)
|
||||
tcp_trace(TA_INPUT, ostate, tp, &tcp_saveti, 0);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If this is a short packet, then ACK now - with Nagel
|
||||
* congestion avoidance sender won't send more until
|
||||
* he gets an ACK.
|
||||
*/
|
||||
if (ti->ti_flags & TH_PUSH)
|
||||
tp->t_flags |= TF_ACKNOW;
|
||||
|
||||
/*
|
||||
* Return any desired output.
|
||||
*/
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* From: @(#)tcp_input.c 8.5 (Berkeley) 4/10/94
|
||||
* $Id: tcp_input.c,v 1.15 1995/02/16 01:39:19 wollman Exp $
|
||||
* $Id: tcp_input.c,v 1.16 1995/03/16 18:15:04 bde Exp $
|
||||
*/
|
||||
|
||||
#ifndef TUBA_INCLUDE
|
||||
@ -522,7 +522,17 @@ tcp_input(m, iphlen)
|
||||
m->m_len -= sizeof(struct tcpiphdr)+off-sizeof(struct tcphdr);
|
||||
sbappend(&so->so_rcv, m);
|
||||
sorwakeup(so);
|
||||
tp->t_flags |= TF_DELACK;
|
||||
/*
|
||||
* If this is a short packet, then ACK now - with Nagel
|
||||
* congestion avoidance sender won't send more until
|
||||
* he gets an ACK.
|
||||
*/
|
||||
if (ti->ti_flags & TH_PUSH) {
|
||||
tp->t_flags |= TF_ACKNOW;
|
||||
tcp_output(tp);
|
||||
} else {
|
||||
tp->t_flags |= TF_DELACK;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -1557,6 +1567,14 @@ tcp_input(m, iphlen)
|
||||
tcp_trace(TA_INPUT, ostate, tp, &tcp_saveti, 0);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If this is a short packet, then ACK now - with Nagel
|
||||
* congestion avoidance sender won't send more until
|
||||
* he gets an ACK.
|
||||
*/
|
||||
if (ti->ti_flags & TH_PUSH)
|
||||
tp->t_flags |= TF_ACKNOW;
|
||||
|
||||
/*
|
||||
* Return any desired output.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user