Difference between revisions of "Digital Data Communications Message Protocol"

From Computer History Wiki
Jump to: navigation, search
(Stubby but a start)
 
("Software Product Description" link added)
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The '''Digital Data Communications Message Protocol''' ('''DDCMP''') is a [[byte]]-oriented [[data communication]] [[protocol]] for use over [[full-duplex]] and [[half-duplex]] point-to-point and multi-drop links; principally using using [[synchronous serial line|synchronous]] or [[asynchronous serial line]]s, although other communication channels were also supported. It used [[cyclic redundancy check|CRCs]] to allow transmission errors to be detected; sequence numbers allow detection of completely lost messages. [[Retransmission]] is used to correct both.
+
The '''Digital Data Communications Message Protocol''' ('''DDCMP''') is a [[byte]]-oriented [[data communication]] [[protocol]] for use over [[full-duplex]] and [[half-duplex]] point-to-point and multi-drop links; principally using using [[synchronous serial line|synchronous]] or [[asynchronous serial line]]s, although other communication channels (e.g. [[Parallel interface|parallel lines]] using the [[PCL11]] interface under [[RSX-11M]]) were also supported. It used [[cyclic redundancy check|CRCs]] to allow transmission errors to be detected; [[sequence number]]s allow detection of completely lost messages. [[Retransmission]] is used to correct both.
  
 
It was originally designed by [[Digital Equipment Corporation|DEC]] for the [[DECnet]] Phase I network [[protocol suite]], in 1974. It was retained in later versions of DECnet, with modifications and extensions.
 
It was originally designed by [[Digital Equipment Corporation|DEC]] for the [[DECnet]] Phase I network [[protocol suite]], in 1974. It was retained in later versions of DECnet, with modifications and extensions.
  
==External link==
+
From 1983 onwards [[serial line]]s (using DDCMP) were step by step superseded by [[Ethernet]], which was superior in terms of speed and flexibility; DDCMP is nevertheless retained in current [[VMS]] DECnet versions.
 +
 
 +
DDCMP usually carried DECnet traffic, one known exception is [[ULTRIX]]:
 +
 
 +
''The [[DMV11]] is supported using TCP/IP and DECnet over full and half duplex point-to-point DDCMP sync lines.''
 +
 
 +
says: "The ULTRIX Operating System, Version 4.5 [[Software Product Description]] 26.40.32"
 +
 
 +
==Synchronous DDCMP==
 +
 
 +
There are Synchronous DDCMP controllers for several buses:
 +
 
 +
* [[UNIBUS]]
 +
* [[QBUS]]
 +
* [[VAXBI]]
 +
 
 +
===Synchronous DDCMP Controller Capabilities===
 +
{| class="wikitable" style="text-align:center;"
 +
! Bus !! Controller !! Point-to-Point V3.2 !! Point-to-Point V4.0 !! Tributary !! Control !! VMS Support
 +
|-
 +
| UNIBUS || [[DUP11]] || colspan="2" | X (supported DDCMP versions yet unknown) || - || - || -
 +
|-
 +
| UNIBUS || [[DMC11]] || X || - || - || - || X
 +
|-
 +
| UNIBUS || [[DMR11]] || X || X || - || - || X
 +
|-
 +
| UNIBUS || [[DMP11]] || X || X || X || X || X
 +
|-
 +
| UNIBUS || [[DMF32]] || X || X || X || - || X
 +
|-
 +
| VAXBI || [[DMB32]] || X || X || X || - || X
 +
|-
 +
| VAXBI || [[DSB32]] || colspan="2" | X (supported DDCMP versions yet unknown) || - || - || X
 +
|-
 +
| QBUS || [[DPV11]] || colspan="2" | X (supported DDCMP versions yet unknown) || - || - || using: VAX Wide Area Network Device Drivers Software
 +
|-
 +
| QBUS || [[DMV11]] || X || X || X || X || X
 +
|-
 +
| QBUS || [[DSV11]] || ? || X || - || - || using: VAX Wide Area Network Device Drivers Software
 +
|}
 +
 
 +
===Synchronous DDCMP Configurations===
 +
There are two basic kinds of synchronous DDMCP configurations:
 +
* Point-to-point
 +
* Multipoint
 +
 
 +
====Synchronous Point-to-Point DDCMP====
 +
----
 +
Point-to-point DDCMP connects exactly two DDCMP devices, either:
 +
* A DMC11 and another arbitrary DDCMP device, using the older version (3.2) of DDCMP
 +
or:
 +
* Two arbitrary DDCMP devices (except for DMC11), using the newer version (4.0) of DDCMP
 +
 
 +
====Synchronous Multipoint DDCMP====
 +
----
 +
With Multipoint DDCMP, exactly one Multipoint controller (e.g. a DMP11) acts as the control station of a DDCMP multipoint group.
 +
 
 +
Multiple other DDCMP Tributary controllers (e.g. DMP11, DMF32) are all connected to the control station.
 +
 
 +
All DDCMP controllers connected in this way constitute a DDCMP multipoint group.
 +
 
 +
'''Multidrop''' is an established synonym for '''Multipoint'''.
 +
 +
====Synchronous DDCMP Line Protocols====
 +
 
 +
As of DDCMP version V3.1 there was only '''DDCMP POINT'''; from version 4.0 onwards all variants described below were available.
 +
 +
{| class="wikitable"
 +
! Protocol !! Description
 +
|-
 +
| DDCMP CONTROL || Specifies the line as a multipoint control Station. You can set multiple circuits for CONTROL lines. Each circuit must have a unique physical tributary address.
 +
|-
 +
| DDCMP DMC || Specifies that the line is in DMC emulator mode. DMC is similar to DDCMP POINT protocol, except that DMC uses an older version of DDCMP (Version 3.2). This protocol should be set for the local line when the remote line is a DMC.
 +
|-
 +
| DDCMP POINT || Specifies the line as one end of a point-to-point DDCMP connection. You may specify only one circuit per POINT line.
 +
|-
 +
| DDCMP TRIBUTARY || Specifies that the line is a multipoint tributary end of a DDCMP multipoint group. You may specify only one circuit per TRIBUTARY line.
 +
|}
 +
 
 +
==Asynchronous DDCMP==
 +
Asynchronous DDCMP uses simple asynchronous serial lines (such as [[DZ11]] or [[DLV11]]), which are mosty used for terminal communication.
 +
 
 +
This led to the joke calling it '''"Poor Man's DECnet"''', because asynchronous serial line controllers were much cheaper then synchronous serial lines or Ethernet controllers, and many computers already had a spare one available.
 +
 
 +
The drawback of Asynchronous DDCMP is lower speed and less effectivity.
 +
 
 +
DECnet-RSX (or DECnet-11M as it was called in the beginning) supported Asynchronous DDCMP at least from Version 2.0 (1979) onwards (see SPD), maybe even right from the start (Infos on DECnet-11M V1.x welcome!).
 +
 
 +
DECnet/VMS started supporting Asynchronous DDCMP not until Version 4.7 as late as 1987.
 +
 
 +
==External links==
  
 
* [http://decnet.ipv7.net/docs/dundas/aa-d599a-tc.pdf 'DDCMP Specification Version 4.0'], AA-D599A-TC (1 March 1978)
 
* [http://decnet.ipv7.net/docs/dundas/aa-d599a-tc.pdf 'DDCMP Specification Version 4.0'], AA-D599A-TC (1 March 1978)
 +
* [https://www.geeksforgeeks.org/digital-data-communications-message-protocol-ddcmp/ Digital Data Communications Message Protocol (DDCMP)] - Contains a good, detailed description of failure modes
  
 
{{semi-stub}}
 
{{semi-stub}}
  
 +
[[Category: Serial Lines]]
 
[[Category: Network Protocols]]
 
[[Category: Network Protocols]]
 
[[Category: DECnet]]
 
[[Category: DECnet]]

Latest revision as of 17:15, 29 September 2023

The Digital Data Communications Message Protocol (DDCMP) is a byte-oriented data communication protocol for use over full-duplex and half-duplex point-to-point and multi-drop links; principally using using synchronous or asynchronous serial lines, although other communication channels (e.g. parallel lines using the PCL11 interface under RSX-11M) were also supported. It used CRCs to allow transmission errors to be detected; sequence numbers allow detection of completely lost messages. Retransmission is used to correct both.

It was originally designed by DEC for the DECnet Phase I network protocol suite, in 1974. It was retained in later versions of DECnet, with modifications and extensions.

From 1983 onwards serial lines (using DDCMP) were step by step superseded by Ethernet, which was superior in terms of speed and flexibility; DDCMP is nevertheless retained in current VMS DECnet versions.

DDCMP usually carried DECnet traffic, one known exception is ULTRIX:

The DMV11 is supported using TCP/IP and DECnet over full and half duplex point-to-point DDCMP sync lines.

says: "The ULTRIX Operating System, Version 4.5 Software Product Description 26.40.32"

Synchronous DDCMP

There are Synchronous DDCMP controllers for several buses:

Synchronous DDCMP Controller Capabilities

Bus Controller Point-to-Point V3.2 Point-to-Point V4.0 Tributary Control VMS Support
UNIBUS DUP11 X (supported DDCMP versions yet unknown) - - -
UNIBUS DMC11 X - - - X
UNIBUS DMR11 X X - - X
UNIBUS DMP11 X X X X X
UNIBUS DMF32 X X X - X
VAXBI DMB32 X X X - X
VAXBI DSB32 X (supported DDCMP versions yet unknown) - - X
QBUS DPV11 X (supported DDCMP versions yet unknown) - - using: VAX Wide Area Network Device Drivers Software
QBUS DMV11 X X X X X
QBUS DSV11  ? X - - using: VAX Wide Area Network Device Drivers Software

Synchronous DDCMP Configurations

There are two basic kinds of synchronous DDMCP configurations:

  • Point-to-point
  • Multipoint

Synchronous Point-to-Point DDCMP


Point-to-point DDCMP connects exactly two DDCMP devices, either:

  • A DMC11 and another arbitrary DDCMP device, using the older version (3.2) of DDCMP

or:

  • Two arbitrary DDCMP devices (except for DMC11), using the newer version (4.0) of DDCMP

Synchronous Multipoint DDCMP


With Multipoint DDCMP, exactly one Multipoint controller (e.g. a DMP11) acts as the control station of a DDCMP multipoint group.

Multiple other DDCMP Tributary controllers (e.g. DMP11, DMF32) are all connected to the control station.

All DDCMP controllers connected in this way constitute a DDCMP multipoint group.

Multidrop is an established synonym for Multipoint.

Synchronous DDCMP Line Protocols

As of DDCMP version V3.1 there was only DDCMP POINT; from version 4.0 onwards all variants described below were available.

Protocol Description
DDCMP CONTROL Specifies the line as a multipoint control Station. You can set multiple circuits for CONTROL lines. Each circuit must have a unique physical tributary address.
DDCMP DMC Specifies that the line is in DMC emulator mode. DMC is similar to DDCMP POINT protocol, except that DMC uses an older version of DDCMP (Version 3.2). This protocol should be set for the local line when the remote line is a DMC.
DDCMP POINT Specifies the line as one end of a point-to-point DDCMP connection. You may specify only one circuit per POINT line.
DDCMP TRIBUTARY Specifies that the line is a multipoint tributary end of a DDCMP multipoint group. You may specify only one circuit per TRIBUTARY line.

Asynchronous DDCMP

Asynchronous DDCMP uses simple asynchronous serial lines (such as DZ11 or DLV11), which are mosty used for terminal communication.

This led to the joke calling it "Poor Man's DECnet", because asynchronous serial line controllers were much cheaper then synchronous serial lines or Ethernet controllers, and many computers already had a spare one available.

The drawback of Asynchronous DDCMP is lower speed and less effectivity.

DECnet-RSX (or DECnet-11M as it was called in the beginning) supported Asynchronous DDCMP at least from Version 2.0 (1979) onwards (see SPD), maybe even right from the start (Infos on DECnet-11M V1.x welcome!).

DECnet/VMS started supporting Asynchronous DDCMP not until Version 4.7 as late as 1987.

External links