# The Cold Handshake

The Cold Handshake Protocol was a link-establishment negotiation for
point-to-point leased circuits, drafted in 1983 by Pell at the Ashgrove Group
and withdrawn by the same body in September 1989. It is the underground's
standard example of a specification deprecated for a stated reason that is not
the reason.

## What it did

CHP negotiated framing, rate and polarity **before raising carrier**. The two
ends exchanged four short bursts inside the circuit's own idle pattern, agreed
parameters, and then either brought the link up or dropped it, having never
asserted a data-set-ready condition at either end.

```
        A                                  B
        │                                  │
        │──── OFFER  (rate, framing) ─────▶│
        │                                  │   idle pattern
        │◀─── ECHO   (parity of offer) ────│   held throughout;
        │                                  │   carrier NOT raised
        │──── SETTLE (chosen params) ─────▶│
        │                                  │
        │◀─── COLD   (ack, or silence) ────│
        │                                  │
        ├──────────── decision ────────────┤
        │                                  │
   raise carrier                    or drop, having
   and run                          exchanged nothing
                                    a recorder would
                                    call a call
```

The design goal was stated in the draft as fault isolation: a craftsman could
determine whether a circuit was capable of a given rate without committing
either end to a session, which on a bad span saved a great deal of time.

## The stated reason for withdrawal

The 1989 notice cites the ECHO burst's parity as insufficient — a sixteen-bit
sum over a field that could be manipulated to collide, permitting a
misnegotiation in which the two ends believe they have agreed different framing
and the link comes up wrong.

The defect was real. It was also corrected in **Errata 3**, issued in March
1987, which replaced the sum with a wider check and was implemented by every
shipping stack the underground was aware of. The withdrawal notice does not
mention Errata 3. It does not mention any errata. It describes the 1983 draft as
though the intervening six years had not occurred.

## The reason usually given

That a full CHP negotiation left no billing record.

Carrier was never raised, so the exchange did not appear as a call in any
recorder that counted calls; the four bursts lived inside the idle pattern and
looked, to the plant, like nothing at all. This was not a secret and not a
misuse — it was the entire point of the design, printed in the abstract — but
it meant that on a metered span it was possible to establish, repeatedly and at
length, that a circuit worked, without any of that establishing being a
chargeable event.

The Ledger's account (No. 62, "Cold Comfort") is that the withdrawal was drafted
by people who understood the protocol perfectly and could not write down the
objection, and so reached for the nearest defect that could be described in
public. That reading is unprovable and has never been seriously contested,
mostly because nobody has produced an alternative that explains why a
withdrawal notice would ignore its own errata series.

## Afterwards

CHP implementations kept running. There was no flag day, no removal, and no
replacement offered in the notice — the recommendation was to use the standard
negotiation, which raises carrier, which was the behaviour CHP existed to avoid.
Gear shipped with it into the mid-1990s because nobody had a reason to take the
code out.

Its diagnostic listener answered on 4919. That listener outlived the protocol,
the vendor and most of the operators, and is the origin of everything on
[[lore/port-4919]].

## The deprecation, as a shape

The underground uses "a cold deprecation" for the general case: a thing
withdrawn with a technical reason attached that is true, is not the reason, and
has already been fixed. It is a specific accusation and not a general one. The
test people apply is the errata test — does the withdrawal notice acknowledge
the fix that already exists for the flaw it names? If it does not, the notice is
not arguing with the current version of the thing, and it is fair to ask what it
is arguing with instead.

## Related

- [[lore/index]] — the collection
- [[lore/port-4919]] — the listener, and the superstition it grew
- [[lore/gravewalker]] — the opposite case: a defect nobody wanted fixed
- [[lore/lexicon]] — *cold*, and its four meanings
- [[lore/sources]] — the draft, the errata, and the notice
