After close to 3.5 days of run time I finally shut the PCjr down. Here
are the raw stats:
685 sessions (of which about 370 were generated by a script)
TCP packets sent: 93204
TCP packets received: 87367
TCP packets retransmitted: 414
TCP packets dropped due to low buffer space: None
Raw packets sent: 93789
Raw packets received: 92458
Raw packets dropped due to low buffer space: 24
The first part of the test started Friday night, and the machine crashed
early on Saturday afternoon. That was the stack corruption bug exposed
by the failed connection attempt with the SYN packets being
retransmitted. I had about 70 connections and 40 or 50,000 packets in
and out before the crash.
After a quick debug session and some new code I started the test again.
The statistics reflect the activity after the restart.
The rate of retransmitted packets is very low, which is good. About one
half of one percent of packets (or 1 in 200) needed to be retransmitted.
This often occurs when the remote connection drops - my code might try
to send a packet, retransmit the packet because there is no response,
and then eventually give up. It's also possible that packets were being
dropped along the way depending on routers and traffic.
The 'Raw packet' numbers refer to the packet driver. All 24 packets were
lost in a 15 minute period while Chuck G. was on the machine
experimenting with OS/2 Warp clients. I don't know what caused the
hiccup, but it was brutal. Nothing crashed though, and no active
sessions were prematurely lost as a result although a few of his
sessions seemed to be hung. (I need to find the spot in the very large
tcpdump trace where that happened.)
Here are some of the gripes:
- Backspace (ASCII 8 ) vs. DEL (ASCII 127) - I probably need to accept
both
- User interface issues - sorry, this is a test of my TCP code .. I
put the bare minimum up to get it going.
- Some lag time .. depending on your geographic location it could be
very bad. Not much I can do here, except let the code negotiate line mode.
Now on the other hand, I think that everybody who commented on it
thought it was the coolest thing. Which really made me feel pretty good
about my on and off again three year investment in the TCP/IP code. I
even traded wisecracks with a certain collector who's name starts with
an S who was completely blown away by the power and might of the Jr. He
thought it was a Cray. I corrected him, and let him know that I use the
Cray strictly as a firewall. ;-0
I'm going to be reading logs and looking for problems in the traces the
next few weeks, and possibly fix a few bugs. I'm also still debating in
my head whether the world needs a another Telnet BBS. It's a fun project
and it might be worth doing on a small scale, but a big full featured
Telnet BBS is a lot of work.
If I do it, I've already started thinking about how to cluster a few Jrs
to increase the total number of concurrent online users.
Thanks for all of the help testing it.
Regards,
Mike