The Host-to-IMP Protocol includes the lowest several layers (Physical, etc) of the communication channel between a host and an IMP. It used both for the Host to communicate with its IMP, and for one Host to send a packet to another, as the lowest layer of NCP.
The service provided was reliable (although if a packet was irretrievably lost, the IMP would indicate that to the Host with an error message), with flow control.
At the very lowest layer, there are three different choices for the physical layer; 'Local Host' (LH), 'Distant Host' (DH), and 'Very Distant Host' (VDH).
The first two are logically the same, and differ only in the physical details - DH uses TTL signals over cable using twisted pairs, with a ground being the other line in the pair, whereas LH uses differential pairs.
Above that, the interface is completely identical; it is asynchronous, bit-serial, with a handshake on every bit. There is no fixed word length, the IMP was prepared to talk to machines with different word lengths. There are also two pairs of 'ready' lines (one from the IMP, and one from the Host), which are connected to ground via a relay when that entity wants to signal that it is ready.
The network layer uses a number of different packet types; some are used by the IMP and Host to communicate with each other, others are used to send data from one Host to another.
One important type is the 'Ready For Next Message', used between the Host and the IMP (with cooperation from the destination Host's IMP) for flow control; it indicated when a message had been successfully delivered to the desination Host, and the Host's IMP was ready for another packet to that host.
(Depending on the exact version of the code running in the IMP, there was generally a maximum of 8 outstanding packets to any given destination allowed at a time.)
- BBN Report #1822, "Specification for the Inteconnection of a Host and an IMP" - The 1976 revision of this key document, it includes the earliest specification of the new long leader format