Following up a second time on my own note...
On Jan 4, 2013, at 8:31 PM, wrote:
Following up on my own note...
...
More precisely, the answer depends on whether you want to be strictly compliant with the
DDCMP spec, or "compliant enough".
DDCMP guarantees the following:
1. Nothing sent prior to the most recent DDCMP restart will be received after that
restart.
2. If packet n is received, packets 0..n-1 (counting from the most recent restart) have
also been received
3. Packet boundaries are preserved (packet boundaries are significant)
4. If a transmit n completes, that means that packet was delivered to a buffer on the
receiving node.
It turns out that only properties 1, 2, and 3 are required for DECnet Phase III and
beyond; that's because the routing layer is a datagram service so the layers above
can't draw any conclusions from transmits completing. It's possible that DECnet
Phase II requires property 4; I'm not sure and I don't really know how to answer
that question since I haven't seen copies of the Phase II specs online.
I have since found the Phase II specs online. The answer is yes, Phase II requires
property 4. In Phase II, there are no NSP retransmits. The assumption is that either
the datalink layer transmit succeeds (which means the packet was received by the other
node) or the datalink layer is reinitialized (which as a side effect causes all NSP
connections that use that path to be aborted).
There is some extra complexity in this area if "intercept nodes" are present --
a way for Phase II to route across two hops, to support star shaped networks. I'm
not sure how widely that is implemented. The only implementation I know even slightly is
DECnet/E -- as far as I remember, it contains no support for talking to intercept nodes.
It certainly does not contain any support for being an intercept node itself.
paul