TCP-group 1994
[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
Re: RTT cache storage
- To: tcp-group@ucsd.edu
- Subject: Re: RTT cache storage
- From: samst@bdol10.indepth.com (Steve Sampson)
- Date: Wed, 21 Dec 1994 13:37:40 -0600 (CST)
Phil Karn <karn@unix.ka9q.ampr.org> writes:
> For most Internet paths, the 5 second starting value is more than enough,
> but I guess ham packet radio is different.
One of the complaints I had about 2 meter TCP/IP, was that if you wanted to
send mail regularly to Florida from Oklahoma, you had to have a 100 second
IRTT. Then when you exchanged IP's locally, and missed a packet, this 100
second would slow things down to a crawl. The solution to just use 5 seconds
and bang the ROSE path until it crashed (congestion time-out) was not elegant.
Then JNOS somewhere along the line picked up an RTT cache and stored
information on each IP address. But then shutting down for any reason just
dumped all this "valuable" information.
In email with Joe Buswell (k5jb) he mentions that my short snippet contains
a bug. Jeez, I thought anything that small would be good to go...
Here's the meat of his message:
I noticed an error in the rtt cache process. When it reads in the file
it doesn't put the stuff in the array where the other routines expect
to find them. [Solution - write the whole cache - in tcpsubr.c]:
void
rtt_store(void)
{
extern char *Rttfile;
FILE *stream;
if ((stream = fopen(Rttfile, "wb+")) == NULL) /* truncate if found - K5JB */
return;
fwrite(Tcp_rtt,sizeof(Tcp_rtt),1,stream);
fclose(stream);
}
void
rtt_read(void)
{
extern char *Rttfile;
FILE *stream;
if ((stream = fopen(Rttfile, "rb")) == NULL)
return;
fread(Tcp_rtt, sizeof(Tcp_rtt), 1, stream);
fclose(stream);
}
This is the way I modified mine. If you do this, delete the rttcache file
before starting this one because if you don't it will get garbage in the
array.
Notice that the array isn't real swift because it stores things in modulo
16 by address. 0.0.0.1 is the same as 0.0.0.17 so there will be cases where
new entries will overwrite old ones that have different addresses.
Thanks Joe, that's better thought out then my hack.
--
n5owk