RFC 22

Host-host control message formats

πŸ“… published October 1969, from ietf

Host-Host Control Message Formats πŸ’…πŸŽ€

okay bestie, RFC 22 is here and it's giving early internet energy πŸ¦‹βœ¨ Vint Cerf wrote it at UCLA, and it's dated October 17, 1969 🌸

Title block tea β˜•: it doesn't list a category, and it doesn't say it obsoletes or updates anything. What it does say is that NWG/RFC 11 got modified at UCLA and will be republished later πŸ‘€

RFC 11 is getting a glow-up, but while we wait, they want to share a brand new control message format that does not use the 7-bit ASCII character mode of transmission πŸ’– That's the whole point of this one, and it's so iconic 😭

All Host-Host control messages are sequences of 8-bit bytes, shaped like this 🧚

<control byte> <parameter byte l> ... <parameter byte n>

It's reasonable to send more than one control message in a single packet πŸ’œ It's not mandatory though, so you're not forced to do it πŸ™ˆ

UCLA has defined 9 control messages so far πŸ”₯ The table below shows each one with its parameters. The interpretation is from the point of view of the transmitting host. And "L" or "Li" means Link#, which is a binary value πŸ“

Control byte     Parameter      Interpretation

 <0>             <L>           Please establish primary connection;
                               our output link # is L

 <1>             <L,> <L2>     Please establish auxiliary connection
                               parallel to our primary output link L.
                               The auxiliary output link is L2.

 <2>             <L1> <L2>     DK primary.  Your primary output link
                               to us was L; our primary output link
                               to you is L2.

 <3>             <L1> <L2>     OK auxiliary.  Your auxiliary output
                               link is Li, our auxiliary output link
                               is L2.

 <4>             <L>           Not OK primary.  We cannot establish a
                               primary connection.  Your primary
                               output link number was L.

 <5>             <Li> <L2>     Not OK auxiliary.  We cannot establish
                               an auxiliary connection.  Your primary
                               output link no was L2.

 <6>             <L>           Please stop transmitting over link
                               number L.  This is called the CEASE
                               directive.

 <7>             <L>           We are CLOSING our output link number
                               L.  You may get this message before
                               the last message arrives over this
                               link since control messages are higher
                               priority than regular data messages.

 <8>             <L>           UNCEASE: that is, you may resume
                               transmitting over output link number
                               L.

Each control message gets embedded in the right message structure πŸŽ€ Here's a typical one, where the message asks for auxiliary link #L2 to be set up parallel to our primary link #l πŸ¦‹

           <-------------32 bits --------------->
           |           HEADER                   |
           |____________________________________|
           |      |       |           |         |
           | mark |  l    |  <L1>     |  <L2>   |
           |______|_______|___________|_________|
           |                 |                  |
           |     checksum    |     Padding      |
           |_________________|__________________|
             typical control message (please
             establish auxiliary link #L2
             parallel to our primary link #l)

Now the header. Every HOST-HOST control message starts with this layout πŸ’…

0     3  4   7  8  9   10   14   LINK#      24              31
_______________________________________________________________
|       |      |     |       |               |////////////////|
| FLAGS | TYPE |  H  |  SITE | 00000001      |////////////////|
|_______|______|_____|_______|_______________|________________|

Here's the breakdown of the fields 🧚

  • FLAGS is 0000.
  • TYPE is 0000, which means a regular message.
  • H is the host # (0-3) at SITE. It's usually 0 for single HOST sites.
  • SITE is the Site #.
  • LINK# is 00000001, which is the HOST-HOST control link.

[ This RFC was put into machine readable form for entry ] [ into the online RFC archives by Alison De La Cruz 12/00 ]

πŸ“¦ where this page comes from