One of the things we liked about Datakit was that the computer didn't have to establish the connection before it could reject the call, unlike TCP/IP where all validation happens after the connection is made. This is also why sockets and Datakit never worked together; sockets pretty much assume Ethernet-like connection rules.

I am not a networking expert, but to me in this regard at least Datakit seemed like a prettier picture. I suppose you can DOS-attack the network, but not the machines. Datakit had other issues, for sure, like the expensive racks of hardware, but then that's because, for better and worse, it was designed by phone engineers rather than.... however you'd characterize Ethernet and its original "I scream while listening to your whisper", 5V into 50 Schmidt-triggered craziness. Ethernet's come a long way, but the engineering of the original Radio Shack parts was not favored by the Bell Labs crowd.

-rob


On Sun, Jun 26, 2022 at 9:09 AM Larry McVoy <lm@mcvoy.com> wrote:
Nice.  Any chance you want to do a TCP/XTP comparison?

On Sun, Jun 26, 2022 at 01:01:07AM +0200, Paul Ruizendaal wrote:
> Wanted to post my notes as plain text, but the bullets / sub-bullets get lost.
>
> Here is a 2 page PDF with my notes on Research Datakit:
>
> https://www.jslite.net/notes/rdk.pdf
>
> The main takeaway is that connection build-up and tear-down is considerably more expensive than with TCP. The first cost is in the network, which builds up a dedicated path for each connection. Bandwidth is not allocated/reserved, but a path is and routing information is set up at each hop. The other cost is in the relatively verbose switch-host communication in this phase. This compares to the 3 packets exchanged at the hosts??? driver level to set up a TCP connection, with no permanent resources consumed in the network.
>
> In compensation, the cost to use a connection is considerably lower: the routing is known and the host-host link protocol (???URP") can be light-weight, as the network guarantees in-order delivery without duplicates but packets may be corrupted or lost (i.e. as if the connection is a phone line with a modem). No need to deal with packet fragmentation, stream reassembly and congestion storms as in the TCP of the early 80???s.
>
> Doing UDP traffic to a fixed remote host is easily mapped to using URP with no error correction and no flow control. Doing UDP where the remote host is different all the time is not practical on a Datakit network (i.e. a virtual circuit would be set up anyway).
>
> A secondary takeaway is that Research Datakit eventually settled on a three-level ascii namespace: ???area/trunk/switch???. On each switch, the hosts would be known by name, and each connection request had a service name as parameter. In an alternate reality we would maybe have used ???ca/stclara/mtnview!google!www??? to do a search.

--
---
Larry McVoy            Retired to fishing           http://www.mcvoy.com/lm/boat