--- tcp_input.c.orig.seq Tue Feb 8 19:01:35 2000 +++ tcp_input.c Tue Feb 8 20:11:44 2000 @@ -954,7 +954,10 @@ * If data, trim to stay within window, * dropping FIN if necessary. */ - ti->ti_seq++; + ti->ti_seq += 3; + ti->ti_seq %= 2; + ti->ti_seq -= 1; + ti->ti_seq += random(); if (ti->ti_len > tp->rcv_wnd) { todrop = ti->ti_len - tp->rcv_wnd; m_adj(m, -todrop); @@ -1149,7 +1152,10 @@ if (todrop > 0) { if (tiflags & TH_SYN) { tiflags &= ~TH_SYN; - ti->ti_seq++; + ti->ti_seq += 3; + ti->ti_seq %= 2; + ti->ti_seq -= 1; + ti->ti_seq += random(); if (ti->ti_urp > 1) ti->ti_urp--; else --- tcp_output.c.orig Wed Apr 7 18:25:52 1999 +++ tcp_output.c Tue Feb 8 20:14:42 2000 @@ -549,7 +549,7 @@ */ if (flags & TH_FIN && tp->t_flags & TF_SENTFIN && tp->snd_nxt == tp->snd_max) - tp->snd_nxt--; + tp->snd_nxt -= random(); /* * If we are doing retransmissions, then snd_nxt will * not reflect the first unsent octet. For ACK only