[HECnet] Old protocols in new ones

Wilm Boerhout wboerhout at gmail.com
Sun Mar 28 05:28:57 PDT 2021


Keith,

I have followed the dialog wile entertaining the grandkids over the weekend. 

With them now gone, I am ready for a switch when you are. 

Wilm

(Verstuurd vanaf mijn telefoon, dus wat korter dan gewoonlijk.)
(Sent from my phone, so a bit more compact than usual)

> Op 28 mrt. 2021 om 13:00 heeft Keith Halewood <Keith.Halewood at pitbulluk.org> het volgende geschreven:
> 
> I have rewired my head a little. Dijkstra is often quoted, "GOTOs are harmful to one's health," and "teaching COBOL should be a criminal offence." I believe he (and others) had a few choice things to say about object-orientated design/coding. I wonder what he would have made of .NET and the legions of developers who know nothing about how anything REAL actually works. It's becoming more difficult to page this **** out of my head... and I am increasingly resenting having to page it back in for the day job.
> 
> I had been lulled into a false sense of security because two of the UDP-based DDCMP circuits I have (UK to Netherlands and London to Edinburgh) experience a single instantly recovered drop every few days. The problematic ones are/were a London to Sheffield connection and London to AWS and these appear to suffer a lot of drops, sometimes in rapid bursts. The former one has switched over to DDCMP over TCP and I'll request the others move over too.
> 
> I have problems with GRE that I can solve with IPv6, but I have some lingering problems with IPv6 to solve first. Besides, I have some reengineering to do with a (now) TCP-based 'star coupler' before VAX/VMS becomes 'unavailable' to us mere hobbyists.
> 
> Moan moan moan
> 
> -----Original Message-----
> From: owner-hecnet at Update.UU.SE [mailto:owner-hecnet at Update.UU.SE] On Behalf Of Johnny Billquist
> Sent: 28 March 2021 00:03
> To: hecnet at Update.UU.SE
> Subject: Re: [HECnet] Old protocols in new ones
> 
>> On 2021-03-27 21:51, Thomas DeBellis wrote:
>> I was wondering whether the problem of running DDCMP over UDP might be 
>> one of error timing.  If you blew it on a KMC or DUP, the hardware 
>> would let you know pretty quick; milliseconds.  The problem with UDP 
>> is how soon you declare an error.  If you have a packet going a long 
>> way, it might take too long to declare the error.  It's a thought, but 
>> you can get delays in TCP, too, so I'm not sure if the idea is half-baked.
> 
> No. It's not any timing problem.
> It really is the fact that UDP packets can, and will get lost from time to time.
> DDCMP is assuming that no packets get lost.
> Reordered packets is sortof the same kind of problem.
> As is duplicated packets.
> 
> All are bad, and DDCMP barely detects that it happens, and the only remedy is to tear down the link.
> 
> Run DDCMP over TCP instead, and all is good. Timing don't really matter that much.
> 
>   Johnny
> 
>> 
>>> On 3/27/2021 1:59 PM, John Forecast wrote:
>>> 
>>>> On Mar 27, 2021, at 11:06 AM, Mark Berryman <mark at theberrymans.com 
>>>> <mailto:mark at theberrymans.com>> wrote:
>>>> 
>>>> DDCMP was originally designed to run over intelligent synchronous 
>>>> controllers, such as the DMC-11 or the DMR-11, although it could 
>>>> also be run over async serial lines.  Either of these could be local 
>>>> or remote.  If remote, they were connected to a modem to talk over a 
>>>> circuit provided by a common carrier and async modems had built in 
>>>> error correction.  From the DMR-11 user manual describing its features:
>>>> DDCMP implementation which handles message sequencing and error 
>>>> correction by automatic retransmission
>>>> 
>>> 
>>> No. DDCMP was designed way before any of those intelligent 
>>> controllers. DDCMP V3.0 was refined during 1974 and released as part 
>>> of DECnet Phase I. The customer I was working with had a pair of 
>>> PDP-11/40’s, each having a DU-11 for DECnet communication at 9600 bps.
>>> DDCMP V4.0 was updated in 1977 and released in 1978 as part of DECnet 
>>> Phase II which included DMC-11 support. The DMC-11/DMR-11 included an 
>>> onboard implementation of DDCMP to provide message sequencing and 
>>> error correction. Quite frequently, customers would have a DMC-11 on 
>>> a system communicating with a DU-11 or DUP-11 on a remote system.
>>> 
>>>   John.
>>> 
>>>> In other words, DDCMP expected the underlying hardware to provide 
>>>> guaranteed transmission or be running on a line where the incidence 
>>>> of data loss was very low.  UDP provides neither of these.
>>>> 
>>>> DDCMP via UDP over the internet is a very poor choice and will 
>>>> result in exactly what you are seeing.  This particular connection 
>>>> choice should be limited to your local LAN where UDP packets have a 
>>>> much higher chance of surviving.
>>>> 
>>>> GRE survives much better on the internet than does UDP and TCP 
>>>> guarantees delivery.  If possible, I would recommend using one these 
>>>> encapsulations for DECnet packets going to any neighbors over the 
>>>> internet rather than UDP.
>>>> 
>>>> Mark Berryman
>>>> 
>>>>> On Mar 27, 2021, at 4:40 AM, Keith Halewood 
>>>>> <Keith.Halewood at pitbulluk.org 
>>>>> <mailto:Keith.Halewood at pitbulluk.org>>
>>>>> wrote:
>>>>> 
>>>>> Hi,
>>>>> I might have posted this to just Paul and Johnny but it’s probably 
>>>>> good for a bit of general discussion and it might enlighten me 
>>>>> because I often have a lot of difficulty in separating the layers 
>>>>> and functionality around tunnels of various types, carrying one 
>>>>> protocol on top of another.
>>>>> I use Paul’s excellent PyDECnet and about half the circuits I have 
>>>>> connecting to others consist of DDCMP running over UDP. I feel as 
>>>>> though there’s something missing but that might be misunderstanding.
>>>>> A DDCMP packet is encapsulated in a UDP one and sent. The receiver 
>>>>> gets it or doesn’t because that’s the nature of UDP. I’m 
>>>>> discovering it’s often the latter. A dropped HELLO or its response 
>>>>> brings a circuit down. This may explain why there’s a certain 
>>>>> amount of flapping between PyDECnet’s DDCMP over UDP circuits. I 
>>>>> notice it a lot between area 31 and me but but much less so with others.
>>>>> In the old days, DDCMP was run over a line protocol (sync or async) 
>>>>> that had its own error correction/retransmit protocol, was it not?
>>>>> So a corrupted packet containing a HELLO would be handled at the 
>>>>> line level and retransmitted usually long before a listen timer expired?
>>>>> Are we missing that level of correction and relying on what happens 
>>>>> higher up in DECnet to handle missing packets?
>>>>> I’m having similar issues (at least on paper) with an 
>>>>> implementation of the CI packet protocol over UDP having initially 
>>>>> and quite fatally assumed that a packet transmitted over UDP would 
>>>>> arrive and therefore wouldn’t need any of the lower level protocol 
>>>>> that a real CI needed. TCP streams are more trouble in other ways.
>>>>> Just some thoughts
>>>>> Keith
>>>> 
>>> 
> 
> -- 
> Johnny Billquist                  || "I'm on a bus
>                                   ||  on a psychedelic trip
> email: bqt at softjar.se             ||  Reading murder books
> pdp is alive!                     ||  tryin' to stay hip" - B. Idol



More information about the Hecnet-list mailing list