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