Slow TCP and everything

Benjamin Lahaise (dot@superaje.com)
Sun, 14 Apr 1996 19:23:16 -0400 (EDT)


Here's a small patch that might help things. In my case, ftp's seem to
stall when more than one packet is lost per window, even though we could
perform fast recovery after we receive the first missing packet. This
patch makes acks in fast recovery a bit more explicit - I don't like the
time estimates in tcp_send_fast_recovery_ack - replace it if you please.
;)

The patch also corrects a few ntohs->htons's (DOH!), a potential problem
in option parsing, and why weren't we throwing away duplicate packets?
(Although thinking about it, it _might_ be redundant...)

-b

P.S: I've also encountered random keyboard lockups, but they're few and
far between. Oh well...
P.P.S: Also, acks do not seem to be delayed by much at all - we really
need a better estimator.

Well, here it is:
----cut----
begin 664 fast_recovery.patch.gz
M'XL(".]C<3$``V9A<W1?<F5C+G!A=&-H`+U8VW+;R!%]!K^B[50<DN`-I"A2
ME.6RUJ:SREZLDI3:5#9;*!`8BK,$`008D%94_O><N8`$>%'6+U')`M#3W3/3
M??I,CP,^GU,[3\GI##KC<9='?I@'K!LQT<UB?]E94,BC_,N1@5J[W3YM9MU[
M@JX3.!Z0,YP,SR?]"W(N+LYKMFV?]&G=YY&V.L/O9-"?#!UM]?X]M?M.OW5.
MMGR,Z/W[&EEYE/''B`64+>)46-:&1T&\N<2(Z^:#/AW^A%XFH.5F[-^7\KO;
M)+SF+/(91?EJQE+:+%A$&Z94*4\"3V`"L6"DO<NA>#Z'8K.+B=9QZ`D>,MJN
M)8RC1R)/Q)?EB3&1YR])\!6+<R%M[1.VUAP3IS"W8"/?*65^O&;I4]GZ],QA
MZJ^EXN5NYM^19LXR+$KO"AK:QWX`9T^"92Z&$<-NLQ:\``_A)T?1H>2GP*$&
M*]@XGPQ'D[/SE[!AC$K0&$YZ`-1H!PUGJ*`A'QH:[(M@:43KF"-W?H)\1X&;
M+6=UA#;W!4F\4;-%Q>?2G>78:[-Q><(6R:O:9LN3N@$+O2=VU*9%/!)%'N'`
M/NI`9MTMLOY-4Z<L8Z)>143F!4':VH-)H(7&+^P7`1`M%BV@@@IQDL8BIJ9\
M;%7C1/`XRJB)EZTP8&N."FKB:7889^9%A'*Q!U"2B>7)^DQFU^51DHN.;W)_
M;*@,J&/C1S`UVL?4<;L*XPP=D$Z9<33A&%!14_ZC3S?_F-[+-\NZ94$:TUT,
M!K$FUL<XGZ$>KS_\0+/\L69+C>]8]+NWXA']Z'WO\8Q-K,\J@)1X:<:CQQ9]
MDA5Y5Y3XIKO*0\$3^`GC+$/1)I*3%/7(.5&U-?J3*0]ZJW?FQ]&</W86[W0Q
MC'M8L.V,G9;3TT2)E<1SY%QXM/`RA;^`))-P0;X7D?"68+5(S2EHGGHK5IH7
M#[&`MG:4"2_$M(\=^O6>,?J;Y\>S#!NZ^_3!&?0'+;H7;,V`D(</M]V;6^)A
MF&>`:=C_33GHUMI6M:PDG&V+SZE.^&B_`_(97S,74<U9)TG9FEY=4?V@5M\<
M*#?HS1MZ==Q'^QTFP[8;F,MZJ=3T<EB8L8KF=HR^RAR`'A5$S@<M9PB0G(]:
MSMA$FZP,(?,7]3CQXX`UM.Q9/RS?RY@,SN?;!W?Z^<<)XB'%5LI$GD9R;OR$
M+'H4"[JBGA$@QP+)9I='O/S\^78B3XL[-I_(/-#H8H!SS5=`&W0<3?9J$NVW
MW2[<6(E(\65)<WG(Q4G&_\.NFA"C<+P9XD(;0,:C%<\43':^]I=D'@&;>\#P
M=E]\7M=>WU[U&W*>:\59&8#QM*63,(X3@(KF,5*E#U=C7HK+H3MZ_@:'*HZ'
MD2WM0WU_+?9W+(G6-HW5%/QT?S_1U2<1(<^B_JC7,H"P%+@E+`,&9F@HD96D
M(,AE_?4U.#W(DY#[:#7`"T"IZ/PK>MW0<95S':L7K&\Y<_,(M2AE,R-<SE/&
M]%&WG(%=[J93]VYZ_5%YVP63U#[-BB_.%&$,>H/=BM5J01@H#B]X@K-63Q$Y
MP:YMJN/_6K5%`<F.QKR`C6[F:,C^`I`"GAGT/!-`'$V(%X';\-G1^QR@<Y2U
M"IK:MI#&S:^_H/\#TP4QJH!GG=^V0]L7#4C\F*?<.18],RML%/)G/(U".>40
M*FDYZXFD?KE,D#/:T&KNC9?#U)L!Z1LR=X8_8?QHVQ43U0BX7U9<N)+M4YE`
M>KCY:>K^<G?S,&TA7I%:'AK5%GW_SVZ_H5Q+^Z]_A"$E#A03OGBRX]0X>;07
M8R?/]D)A[S+1'T^&O1</]YUAI6G$Z5YN&@>J3O'70*$(J#X=%3_LA";*9?&V
M62ZX1`I-\U[HH14T\7^CL1`6,Z3%22*7<C88R0H\&XR+Q5BDJA!4K::7Z+BB
MA8BCL&Z6A`834E/6?LB\M-QX9ENL*!_F(+^B2,2+K*Z3&^*$</6(U#8$4E&7
M,YY65RLL<.(O&+"!#E(ATS2=FD7T*RA;"F;:4!F;0W2D6BQ[M"M+X<!%G*=H
M*K%FME%^\M7JR16+CAZX+-14:.2^PKJD&"51<Q@[K$Z8`!K))N6"J3N@[$6<
M/Q`>9:@C5-$_%9^MOEGC4P1EI_B4-\'29YX:7*E8C!4L1^.S5G^@@X'X_2\0
MV8BD[#<?0%XTSR-]]./=1[,&-!>7VHVGFG.TYEQP>=QX>U?,=J&EW$%3T:A8
MX%"13)K!$C9IO&FAQQ5:Y*7R$IJRD'OH?SO2$H?MMUYI:O8SHEN]"IN+4M$>
MOBI5F&[CS(7X2@$M%:)[1K9DLV&OTL-MU0K6*\KT[5MR)/TU+WHZN4<.6L/8
M/TSO?G8_3K_[^U_I]=%K^83^'.;@[E;Y?K='"J4-[:>RP[XD'+0-K>*^;I?U
M7T:!K9K2H[?V"C7JJ8[RL1DZ2<=F_)NO6EN[ZG_NC"=.^:JE6A#\-5>6VNYB
M6]YI??\6*SQT!L_[5XHJN!I:KT#1_J@:K+!\XZ#Q/^GPX)IP"/03MMMKQ'\!
(9^'=4(43``!T
`
end