X-Man

In the fun, bad old days of the Internet, technical experts were active on computer-related Usenet newsgroups. Back then, trolling someone was called flaming.

By 2000, most of the professionals and academics who weren’t already fed up with the commercialization of the Net, or been told by their employer to stay away from online forums, disappeared with the waning of Usenet. Since then, it’s mostly been know-nothings, usually well-meaning, trying to help those who know even less.

For a long time, I was limited to accessing the Internet using ProComm for DOS with a modem over a UNIX Shell account. Downloads were done using the XMODEM, YMODEM, and ZMODEM file transfer protocols. As you might guess, XMODEM came first.

I once followed a Usenet thread on comp.dcom.modems where a user was having trouble with a YMODEM transfer. Someone who seemed knowledgeable offered a suggestion that sounded solid to me.

The user flamed him, saying his suggestion was stupid and he didn’t know anything. The person he flamed was Ward Christensen, who wrote the original version of XMODEM. Ward coined the term YMODEM and he created the first Bulletin Board System. Christensen has passed away.

https://arstechnica.com/gadgets/2024/10/ward-christensen-bbs-inventor-and-architect-of-our-online-age-dies-at-age-78/

Here’s a story I told on LinkedIn, about a technical heavy-hitter I connected with in 1995, when the Internet was still what it was. Before they let the rabble in.


Part 10: In 1995 I started as a System Development consultant, working on the next generation system. A question came up about Microsoft’s implementation of TCP/IP in Windows NT, and I turned to Usenet.


Douglas Pratt

Sep 7, 1995, 3:00:00 AM

Here’s a question regarding a fine point of TCP that has us confused at the office. Assuming that everything is caught up, and there are no pending TCP segments to be acknowledged within a given connection, what are the conditions for starting up data transfer again?

We’re seeing that Microsoft TCP-32 is doing something like this — as data is passed down for transmission by the application, TCP sends the first 100 bytes of data immediately, regardless of whether or not this was desired by the application. No other frames will go out until that single, small frame is acknowledged. The receiver gets the frame, but won’t acknowledge it until it gets a second frame — which isn’t coming until the first frame is acknowledged! Fortunately, the receiver times out after about 200 milliseconds and sends the acknowledgement, and that gets things moving.

So everything ends up working, but after that delay. This is only seen during periods when everything is all caught up. It’s always seen after the connection has initially been synchronized. Very weird — or is it?

Any comments or insight are appreciated.

Thanks,

Doug Pratt


The behavior had been discovered by the same developer I mentioned here in previous posts. He knew I was active on Usenet and he wanted me to see what I could find out. A reply quickly appeared, from someone who said he was intrigued by my question. It was none other than W. Richard Stevens, author of TCP/IP Illustrated, Volume 1: The Protocols, and Volume 2: The Implementation, which had been published earlier that year.

I had played dumb, not only about where I worked, but the fact that Microsoft had already been consulted. Stevens and I switched to exchanging e-mail. I told him that Microsoft said the TCP behavior was not only intentional, they claimed it was based upon his own writings! Stevens said Microsoft had misinterpreted his explanation of congestion avoidance, and that TCP shouldn’t be doing what it was doing. He wanted to know who our contact person was at Microsoft. Stevens recognized the name and said he would follow up.

The next day I got a call from Stevens’ editor at Addison-Wesley. He said Richard had spoken with Microsoft and was sufficiently concerned about the issue that he was flying his plane to Redmond. Adding that Richard wanted to thank me with a set of his books. They arrived a couple of days later, and were used when the first TCP/IP stack was written for our previous generation system, that was eventually enhanced to take full advantage of Winsock.

Almost exactly four years after Stevens and I exchanged messages, I was saddened to learn that he had died.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.