Date: Mon, 13 Sep 93 04:30:09 PDT From: Advanced Amateur Radio Networking Group <tcp-group@ucsd.edu> Errors-To: TCP-Group-Errors@UCSD.Edu Reply-To: TCP-Group@UCSD.Edu Precedence: Bulk Subject: TCP-Group Digest V93 #236 To: tcp-group-digest TCP-Group Digest Mon, 13 Sep 93 Volume 93 : Issue 236 Today's Topics: backoff bugs ip hosts ww Send Replies or notes for publication to: <TCP-Group@UCSD.Edu>. Subscription requests to <TCP-Group-REQUEST@UCSD.Edu>. Problems you can't solve otherwise to brian@ucsd.edu. Archives of past issues of the TCP-Group Digest are available (by FTP only) from UCSD.Edu in directory "mailarchives". We trust that readers are intelligent enough to realize that all text herein consists of personal comments and does not represent the official policies or positions of any party. Your mileage may vary. So there. ---------------------------------------------------------------------- Date: Sun, 12 Sep 93 15:29:53 EDT From: "William Allen Simpson" <bill.simpson@um.cc.umich.edu> Subject: backoff bugs To: karn@qualcomm.com (Phil Karn) Found a bug today in the rto backoff code. It takes a lot of retries, but that's what I often get. In tcptimer.c, the backoff function simply shifts 1L n bits. It checks that the number of bits is <= 31, but that's all. The backoff function is only called in one place, in tcpout.c, where it is immediately multiplied by 4 * mdev + srtt. When the backoff reaches about 15-20, the rto overflows, and we get continuous sending, with a rto of 500 milliseconds! Anyway, I think that the equation is wrong, and we need more checking here. It didn't help for debugging that the backoff function and its use were in different files. I suggest: In tcp.h: #define DEF_RTT 5000 /* Initial guess at round trip time (5 sec) */ #define MSL2 30 /* Guess at two maximum-segment lifetimes */ #define MAX_RTO 120000L /* Maximum timeout, milliseconds */ #define MIN_RTO 500L /* Minimum timeout, milliseconds */ In tcpuser.c: /* Kick a particular TCP connection */ int kick_tcp(tcb) register struct tcb *tcb; { if(!tcpval(tcb)) return -1; tcb->flags.force = 1; /* Send ACK even if no data */ tcb->backoff = 0; /* Try again harder */ tcp_timeout(tcb); return 0; } In tcpout.c: if(ssize != 0){ int32 n = tcb->backoff; /* Backoff function - the subject of much research */ if(n > 31) n = 31; /* Prevent truncation to zero */ n = 1L << n; /* Binary exponential back off */ if ( n > MAX_RTO ) { rto = MAX_RTO; } else { rto = (n * tcb->srtt) + (4 * tcb->mdev); } /* Set round trip timer. */ set_timer(&tcb->timer,max(MIN_RTO,rto)); if(!run_timer(&tcb->timer)) start_timer(&tcb->timer); Bill.Simpson@um.cc.umich.edu ------------------------------ Date: Sun, 12 Sep 93 18:16:42 CET From: BARRY TITMARSH <BTITMARS%ESOC.BITNET@vm.gmd.de> Subject: ip hosts ww To: TCP-GROUP <TCP-GROUP@ucsd.edu> Just been updateing my own personal ip's at the ww database on ucsd.edu i have noticed many entries Duplicated. many entries with .ampr.org i have read the instructions on how to use the robot server to update the hosts><ipaddr seems many of us have not read the instructions. My thanks to brian@ucsd.edu for mailing them to me again.. re my last post.. i did do it all correct but got the userid wrong its ampraddr@ucsd.edu and not ampr-addr@... etc etc as i did hi hi.. thanks to all who pointed it out. Barry. My gate is up and running again. g8sau/dc0hk at various ip's ------------------------------ End of TCP-Group Digest V93 #236 ****************************** ******************************