RFC 704
IMP/Host and Host/IMP Protocol change
RFC 704: IMP/Host and Host/IMP Protocol Change π
Okay bestie, so this one is from September 1975, written by Paul J. Santos, Jr. (BBN), and it's filed as NIC #33490. It's a revision of RFC 687 π Its whole vibe is expanding the IMP/host and host/IMP protocol so hosts can be addressed on more than 63 IMPs π
The goal is to fix existing limits without big fundamental changes to the IMP/host philosophy. Yes, the wider packet-switching world is debating a lot of huge changes right now, but the network needs improvements on a shorter timeline, and there are already 62 IMPs π So this is a glow-up, not a total rebuild β¨
Before reading, you should already know Section 3 of BBN Report 1822 π Also, the expanded protocol is backwards compatible, which we'll get into π«Ά
1. Expanded Leader Size π¦
The leader grows from two to six 16-bit words π That gives room for bigger fields and new additions.
Here's the tricky part. The IMP/host (host/IMP) leader goes from 32 bits to 96 bits, and that causes word-boundary problems for some hosts π To deliver messages between a host on the old protocol and a host on the new one, without shifting the data in the IMP words, the data (the first bit of the host/host leader) has to start at an even multiple of 8-bit bytes from the beginning of the whole message π
Hosts also prefer (really, they require it if they aren't going to shift anything) that the combined host/IMP (IMP/host) and host/host leaders fill a whole number of machine words. A "machine word" here means the smallest bit sequence the host/IMP interface can access independently π The combined leader is 136 bits, so only machines with 8-, 16-, 32-, and 64-bit words are happy with it π
To make life easier for weird machines, each host can tell its IMP how many 16-bit padding words to insert between the host/IMP (IMP/host) and host/host leaders π§ The IMP strips the padding on host-to-IMP processing and adds it back on IMP-to-host processing. So 24-bit machines can ask for one 16-bit padding word, and 10- and 36-bit machines can ask for five 16-bit padding words π
2. Expanded Address field πΈ
The address field grows to 32 bits: 16 bits of IMP address, 0 bits of host address, and 8 bits for a (future) network address π The team says this is enough for any foreseeable ARPA Network growth β¨
3. New Message Length Field π§
A new field lets the source host optionally tell the IMP subnetwork the message length in bits π The IMP subnetwork can use that info, when it's there, to manage network buffer storage better. The destination host can use it too, for its own buffer storage π¦
The field is 16 bits wide. The maximum number of packets per message also expands to 16, up from the current 8 π₯
4. Expanded Handling Type Field π
The handling type field, which currently tells priority streams apart from non-priority streams (and more), grows to eight bits π That opens the door to lots of parallel message streams between pairs of hosts with different handling. Think priority, non-priority, different packets-per-message counts (more on that below), and a stream that needs guaranteed capacity β¨
For now, only the old-style priority and non-priority handling types ship in the first implementation of the expanded protocol π
5. Source Host Control of Packets per Message π
The source host may be able to specify a message stream that uses a set number of packets per multi-packet message, like two packets per message or five packets per message π¦ Right now the IMP network needs eight packet-buffers for reassembly, but with this it won't have to, which may give better service to those hosts π This helps users who need both low delay and high throughput π₯
This facility is orthogonal to the address expansion and lower priority, so it gets built after the other basic changes π«Ά
6. Unordered (type-3) Message Change π
Unordered messages become a subtype of the type O message instead of their own separate message type π That keeps things consistent with needing to check host access control on all messages β¨
Heads up: this is a slight backward incompatibility for the three or so hosts that currently use type-3 messages in their research π
7. Change in Format of Fake Host Addresses π
The For/From IMP bit gets eliminated βοΈ The fake host addresses will now be the four highest host numbers. For example, IMP Teletype becomes host 252 πΈ
8. Addition of a Parameter to the IMP to Host NOP π§
The IMP to host NOP picks up a new parameter that specifies the address (IMP and host number) of the host π
9. Backward Compatibility π«Ά
The old and new formats run in parallel inside the IMPs for the foreseeable future, so host software can phase over gradually π¦ A host can tell its IMP which format to use, so it can even switch back and forth between the two modes for debugging π₯
You pick the mode with the format of the host to IMP NOP message, and the IMP uses whichever mode the host to IMP NOP it has received is in β¨ A host can use either format without knowing much about the other one. If it gets the other format's messages, it just discards them π When the IMP starts up, it sends several NOP messages of each type so the hosts can see its choice π
One caveat: a host that doesn't implement the new format can't address hosts on IMPs with an IMP number greater than 63 π Even so, wherever possible, the IMPs do the conversion needed so old-format hosts and new-format hosts can talk to each other, in both directions π«Ά
10. Non-blocking Host Interface π
The IMP gets a way to refuse a message from a host without blocking the host interface π While it refuses, it can gather what it needs to send the refused message, then ask the host to resend it π
The host can also ask whether it's able to send a message and get notified when it is, without actually sending the message and getting refused π Just like point 5, this gets added after the more basic changes are in π
11. Maximum Message Length β¨
The maximum number of data bits in a single-packet message may drop by a few bits π
We're now drafting the needed changes to Report 1822 πΈ We'll circulate the draft so host programmers can start getting ready π π¦
π¦ where this page comes from
- ietf: rfc704 1975-09
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms