Request for Comments: 878 Obsoletes RFCs: 851, 802 The ARPANET 1822L Host Access Protocol RFC 878 Andrew G. Malis ARPANET Mail: malis@bbn-unix BBN Communications Corp. 50 Moulton St. Cambridge, MA 02238 December 1983 This RFC specifies the ARPANET 1822L Host Access Protocol, which is a successor to the existing 1822 Host Access Protocol. 1822L allows ARPANET hosts to use logical names as well as 1822's physical port locations to address each other. 1822L Host Access Protocol December 1983 RFC 878 Table of Contents 1 INTRODUCTION.......................................... 1 2 THE ARPANET 1822L HOST ACCESS PROTOCOL................ 3 2.1 Addresses and Names................................. 5 2.2 Name Translations................................... 7 2.2.1 Authorization and Effectiveness................... 7 2.2.2 Translation Policies............................. 11 2.2.3 Reporting Destination Host Downs................. 13 2.2.4 1822L and 1822 Interoperability.................. 15 2.3 Uncontrolled Packets............................... 16 2.4 Establishing Host-IMP Communications............... 19 2.5 Counting RFNMs When Using 1822L.................... 20 2.6 1822L Name Server.................................. 23 3 1822L LEADER FORMATS................................. 25 3.1 Host-to-IMP 1822L Leader Format.................... 26 3.2 IMP-to-Host 1822L Leader Format.................... 34 4 REFERENCES........................................... 42 A 1822L-IP ADDRESS MAPPINGS............................ 43 - i - 1822L Host Access Protocol December 1983 RFC 878 FIGURES 2.1 1822 Address Format.................................. 5 2.2 1822L Name Format.................................... 6 2.3 1822L Address Format................................. 6 3.1 Host-to-IMP 1822L Leader Format..................... 27 3.2 NDM Message Format.................................. 30 3.3 IMP-to-Host 1822L Leader Format..................... 35 3.4 Name Server Reply Format............................ 38 A.1 1822 Class A Mapping................................ 44 A.2 1822L Class A Mapping............................... 44 A.3 1822L Class B Mapping............................... 45 A.4 1822L Class C Mapping............................... 46 - ii - 1822L Host Access Protocol December 1983 RFC 878 1 INTRODUCTION This RFC specifies the ARPANET 1822L Host Access Protocol, which will allow hosts to use logical addressing (i.e., host names that are independent of their physical location on the ARPANET) to communicate with each other. This new host access protocol is known as the ARPANET 1822L (for Logical) Host Access Protocol, and is a successor to the current ARPANET 1822 Host Access Protocol, which is described in sections 3.3 and 3.4 of BBN Report 1822 [1]. Although the 1822L protocol uses different Host-IMP leaders than the 1822 protocol, the IMPs will continue to support the 1822 protocol, and hosts using either protocol can readily communicate with each other (the IMPs will handle the translation automatically). The RFC's terminology is consistent with that used in Report 1822, and any new terms will be defined when they are first used. Familiarity with Report 1822 (section 3 in particular) is assumed. As could be expected, the RFC makes many references to Report 1822. As a result, it uses, as a convenient abbreviation, "see 1822(x)" instead of "please refer to Report 1822, section x, for further details". This RFC updates, and obsoletes, RFC 851. The changes from that RFC are: - 1 - 1822L Host Access Protocol December 1983 RFC 878 o Section 2.2.4 was rewritten for clarity. o Section 2.5 was expanded to further discuss the effects of using 1822L names on host-to-host virtual circuits. o In section 3.2, the type 1 IMP-to-host message has two new subtypes, the type 9 message has one new subtype, and the type 15, subtype 4 message is no longer defined. o An appendix describing the mapping between 1822L names and internet (IP) addresses has been added. All of these changes to RFC 851 are marked by revision bars (as | shown here) in the right margin. | - 2 - 1822L Host Access Protocol December 1983 RFC 878 2 THE ARPANET 1822L HOST ACCESS PROTOCOL The ARPANET 1822L Host Access Protocol allows a host to use logical addressing to communicate with other hosts on the ARPANET. Basically, logical addressing allows hosts to refer to each other using an 1822L name (see section 2.1) which is independent of a host's physical location in the network. IEN 183 (also published as BBN Report 4473) [2] gives the use of logical addressing considerable justification. Among the advantages it cites are: o The ability to refer to each host on the network by a name independent of its location on the network. o Allowing different hosts to share the same host port on a time-division basis. o Allowing a host to use multi-homing (where a single host uses more than one port to communicate with the network). o Allowing several hosts that provide the same service to share the same name. The main differences between the 1822 and 1822L protocols are the format of the leaders that are used to introduce messages between a host and an IMP, and the specification in those leaders of the source and/or destination host(s). Hosts have the choice of - 3 - 1822L Host Access Protocol December 1983 RFC 878 using the 1822 or the 1822L protocol. When a host comes up on an IMP, it declares itself to be an 1822 host or an 1822L host by the type of NOP message (see section 3.1) it uses. Once up, hosts can switch from one protocol to the other by issuing an appropriate NOP. Hosts that do not use the 1822L protocol will still be addressable by and can communicate with hosts that do, and vice-versa. Another difference between the two protocols is that the 1822 leaders are symmetric, while the 1822L leaders are not. The term symmetric means that in the 1822 protocol, the exact same leader format is used for messages in both directions between the hosts and IMPs. For example, a leader sent from a host over a cable that was looped back onto itself (via a looping plug or faulty hardware) would arrive back at the host and appear to be a legal message from a real host (the destination host of the original message). In contrast, the 1822L headers are not symmetric, and a host can detect if the connection to its IMP is looped by receiving a message with the wrong leader format. This allows the host to take appropriate action upon detection of the loop. - 4 - 1822L Host Access Protocol December 1983 RFC 878 2.1 Addresses and Names The 1822 protocol defines one form of host specification, and the 1822L protocol defines two additional ways to identify network hosts. These three forms are 1822 addresses, 1822L names, and 1822L addresses. 1822 addresses are the 24-bit host addresses found in 1822 leaders. They have the following format: 1 8 9 24 +----------------+---------------------------------+ | | | | Host number | IMP number | | | | +----------------+---------------------------------+ 1822 Address Format Figure 2.1 These fields are quite large, and the ARPANET will never use more than a fraction of the available address space. 1822 addresses are used in 1822 leaders only. 1822L names are 16-bit unsigned numbers that serve as a logical identifier for one or more hosts. 1822L names have a much simpler format: - 5 - 1822L Host Access Protocol December 1983 RFC 878 1 16 +--------------------------------+ | | | 1822L name | | | +--------------------------------+ 1822L Name Format Figure 2.2 The 1822L names are just 16-bit unsigned numbers, except that bits 1 and 2 are not both zeros (see below). This allows over 49,000 hosts to be specified. 1822 addresses cannot be used in 1822L leaders, but there may be a requirement for an 1822L host to be able to address a specific physical host port or IMP fake host. 1822L addresses are used for this function. 1822L addresses form a subset of the 1822L name space, and have both bits 1 and 2 off. 1 2 3 8 9 16 +---+---+------------+----------------+ | | | | | | 0 | 0 | host # | IMP number | | | | | | +---+---+------------+----------------+ 1822L Address Format Figure 2.3 - 6 - 1822L Host Access Protocol December 1983 RFC 878 This format allows 1822L hosts to directly address hosts 0-63 at IMPs 1-255 (IMP 0 does not exist). Note that the highest host numbers are reserved for addressing the IMP's internal fake hosts. At this writing, the IMP has seven fake hosts, so host numbers 57-63 address the IMP fake hosts, while host numbers 0-56 address real hosts external to the IMP. As the number of IMP fake hosts changes, this boundary point will also change. 2.2 Name Translations There are a number of factors that determine how an 1822L name is translated by the IMP into a physical address on the network. These factors include which translations are legal; in what order different translations for the same name should be attempted; which legal translations shouldn't be attempted because a particular host port is down; and the interoperability between 1822 and 1822L hosts. These issues are discussed in the following sections. 2.2.1 Authorization and Effectiveness Every host on a C/30 IMP, regardless of whether it is using the 1822 or 1822L protocol to access the network, can have one or more 1822L names (logical addresses). Hosts using 1822L can then - 7 - 1822L Host Access Protocol December 1983 RFC 878 use these names to address the hosts in the network independent of their physical locations. Because of the implementation constraints mentioned in the introduction, hosts on non-C/30 IMPs cannot be assigned 1822L names. To circumvent this restriction, however, 1822L hosts can also use 1822L addresses to access all of the other hosts. At this point, several questions arise: How are these names assigned, how do they become known to the IMPs (so that translations to physical addresses can be made), and how do the IMPs know which host is currently using a shared port? To answer each question in order: Names are assigned by a central network administrator. When each name is created, it is assigned to a host (or a group of hosts) at one or more specific host ports. The host(s) are allowed to reside at those specific host ports, and nowhere else. If a host moves, it will keep the same name, but the administrator has to update the central database to reflect the new host port. Changes to this database are distributed to the IMPs by the Network Operations Center (NOC). For a while, the host may be allowed to reside at either of (or both) the new and old ports. Once the correspondence between a name and one or more hosts ports where it may be used has been made official by the administrator, that name is said to be authorized. 1822L - 8 - 1822L Host Access Protocol December 1983 RFC 878 addresses, which actually refer to physical host ports, are always authorized in this sense. Once a host has been assigned one or more names, it has to let the IMPs know where it is and what name(s) it is using. There are two cases to consider, one for 1822L hosts and another for 1822 hosts. The following discussion only pertains to hosts on C/30 IMPs. When an IMP sees an 1822L host come up on a host port, the IMP has no way of knowing which host has just come up (several hosts may share the same port, or one host may prefer to be known by different names at different times). This requires the host to declare itself to the IMP before it can actually send and receive messages. This function is performed by a new host-to-IMP message, the Name Declaration Message (NDM), which lists the names that the host would like to be known by. The IMP checks its tables to see if each of the names is authorized, and sends an NDM Reply to the host saying which names were actually authorized and can now be used for sending and receiving messages (i.e., which names are effective). A host can also use an NDM message to change its list of effective names (it can add to and delete from the list) at any time. The only constraint on the host is that any names it wishes to use can become effective only if they are authorized. - 9 - 1822L Host Access Protocol December 1983 RFC 878 In the second case, if a host comes up on a C/30 IMP using the 1822 protocol, the IMP automatically makes the first name the IMP finds in its tables for that host become effective when it receives the first 1822 NOP from the host. Thus, even though the host is using the 1822 protocol, it can still receive messages from 1822L hosts via its 1822L name. Of course, it can also receive messages from an 1822L host via its 1822L address as well. (Remember, the distinction between 1822L names and addresses is that the addresses correspond to physical locations on the network, while the names are strictly logical identifiers). The IMPs translate between the different leaders and send the proper leader in each case (see section 2.2.4). The third question above has by now already been answered. When an 1822L host comes up, it uses the NDM message to tell the IMP which host it is (which names it is known by). Even if this is a shared port, the IMP knows which host is currently connected. Whenever a host goes down, its names automatically become non- effective. When it comes back up, it has to make them effective again. - 10 - 1822L Host Access Protocol December 1983 RFC 878 2.2.2 Translation Policies Several hosts can share the same 1822L name. If more than one of these hosts is up at the same time, any messages sent to that 1822L name will be delivered to just one of the hosts sharing that name, and a RFNM will be returned as usual. However, the sending host will not receive any indication of which host received the message, and subsequent messages to that name are not guaranteed to be sent to the same host. Typically, hosts providing exactly the same service could share the same 1822L name in this manner. Similarly, when a host is multi-homed, the same 1822L name may refer to more than one host port (all connected to the same host). If the host is up on only one of those ports, that port will be used for all messages addressed to the host. However, if the host were up on more than one port, the message would be delivered over just one of those ports, and the subnet would choose which port to use. This port selection could change from message to message. If a host wanted to insure that certain messages were delivered to it on specific ports, these messages could use either the port's 1822L address or a specific 1822L name that referred to that port alone. - 11 - 1822L Host Access Protocol December 1983 RFC 878 Three different address selection policies are available for the name mapping process. When translated, each name uses one of the three policies (the policy is pre-determined on a per-name basis). The three policies are: o Attempt each translation in the order in which the physical addresses are listed in the IMP's translation tables, to find the first reachable physical host address. This list is always searched from the top whenever an uncontrolled packet is to be sent or a new virtual circuit connection has to be created (see section 2.5). This is the most commonly used policy. o Selection of the closest physical address, which uses the IMP's routing tables to find the translation to the destination IMP with the least delay path whenever an uncontrolled packet is to be sent or a new virtual circuit connection has to be created. o Use load leveling. This is similar to the second policy, but differs in that searching the address list for a valid translation starts at the address following where the previous translation search ended whenever an uncontrolled packet is to be sent or a new virtual circuit connection has to be created. This attempts to spread out the load from any one IMP's hosts - 12 - 1822L Host Access Protocol December 1983 RFC 878 to the various host ports associated with a particular name. Note that this is NOT network-wide load leveling, which would require a distributed algorithm and tables. 2.2.3 Reporting Destination Host Downs As was explained in report 1822, and as will be discussed in greater detail in section 2.5, whenever regular messages are sent by a host, the IMP opens a virtual circuit connection to each destination host from the source host. A connection will stay open at least as long as there are any outstanding (un-RFNMed) messages using it and both the source and destination hosts stay up. However, the destination host may go down for some reason during the lifetime of a connection. If the host goes down while there are no outstanding messages to it in the network, then the connection is closed and no other action is taken until the source host submits the next message for that destination. At that time, ONE of the following events will occur: A1. If 1822 or an 1822L address is being used to specify the destination host, then the source host will receive a type 7 (Destination Host Dead) message from the IMP. A2. If an 1822L name is being used to specify the destination - 13 - 1822L Host Access Protocol December 1983 RFC 878 host, and the name maps to only one authorized host port, then a type 7 message will also be sent to the source host. A3. If an 1822L name is being used to specify the destination host, and the name maps to more than one authorized host port, then the IMP attempts to open a connection to another authorized and effective host port for that name. If no such connection can be made, the host will receive a type 15 (1822L Name or Address Error), subtype 5 (no effective translations) message (see section 3.2). Note that a type 7 message cannot be returned to the source host, since type 7 messages refer to a particular destination host port, and the name maps to more than one destination port. Things get a bit more complicated if there are any outstanding messages on the connection when the destination host goes down. The connection will be closed, and one of the following will occur: B1. If 1822 or an 1822L address is being used to specify the destination host, then the source host will receive a type 7 message for each outstanding message. B2. If an 1822L name is being used to specify the destination host, then the source host will receive a type 9 (Incomplete | Transmission), subtype 6 (message lost due to logically | addressed host going down) message for each outstanding | - 14 - 1822L Host Access Protocol December 1983 RFC 878 message. The next time the source host submits another message for that same destination name, the previous algorithm will be used (either step A2 or step A3). The above two algorithms also apply when a host stays up, but declares the destination name for an existing connection to no longer be effective. In this case, however, the type 7 messages above will be replaced by type 15, subtype 3 (name not effective) messages. Section 2.3 discusses how destination host downs are handled for uncontrolled packets. 2.2.4 1822L and 1822 Interoperability As has been previously stated, 1822 and 1822L hosts can intercommunicate, and the IMPs will automatically handle any necessary leader and address format conversions. However, not every combination of 1822 and 1822L hosts allows full interoperability with regard to the use of 1822L names, since 1822 hosts are restricted to using physical addresses. There are two possible situations where any incompatibility could | arise: | - 15 - 1822L Host Access Protocol December 1983 RFC 878 o An 1822 host sending a message to an 1822L host: The 1822 | host specifies the destination host by its 1822 address. The | destination host will receive the message with an 1822L leader | containing the 1822L addresses of the source and destination | hosts. | o An 1822L host sending a message to an 1822 host: The 1822L | host can use 1822L names or addresses to specify both the | source and destination hosts. The destination host will | receive the message with an 1822 leader containing the 1822 | address of the source host. | 2.3 Uncontrolled Packets Uncontrolled packets (see 1822(3.6)) present a unique problem for the 1822L protocol. Uncontrolled packets use none of the normal ordering and error-control mechanisms in the IMP, and do not use the normal virtual circuit connection facilities. As a result, uncontrolled packets need to carry all of their overhead with them, including source and destination names. If 1822L names are used when sending an uncontrolled packet, additional information is now required by the subnetwork when the packet is transferred to the destination IMP. This means that less host-to-host data can be contained in the packet than is possible between 1822 - 16 - 1822L Host Access Protocol December 1983 RFC 878 hosts. Uncontrolled packets that are sent between 1822 hosts may contain not more than 991 bits of data. Uncontrolled packets that are sent to and/or from 1822L hosts are limited to 32 bits less, or not more than 959 bits. Packets that exceed this length will result in an error indication to the host, and the packet will not be sent. This error indication represents an enhancement to the previous level of service provided by the IMP, which would simply discard an overly long uncontrolled packet without notification. Other enhancements that are provided for uncontrolled packet service are a notification to the host of any errors that are detected by the host's IMP when it receives the packet. A host will be notified if an uncontrolled packet contains an error in the 1822L name specification, such as if the name is not authorized or effective, if the remote host is unreachable (which is indicated by none of its names being effective), if network congestion control throttled the packet before it left the source IMP, or for any other reason the source IMP was not able to send the packet on its way. In most cases, the host will not be notified if the uncontrolled packet was lost once it was transmitted by the source IMP. - 17 - 1822L Host Access Protocol December 1983 RFC 878 However, the IMP will attempt to notify the source host if a logically-addressed uncontrolled packet was mistakenly sent to a host that the source IMP thought was effective, but which turned out to be dead or non-effective at the destination IMP. This non-delivery notice is sent back to the source IMP as an uncontrolled packet from the destination IMP, so the source host is not guaranteed to receive this indication. If the source IMP successfully receives the non-delivery notice, then the source host will receive a type 15 (1822L Name or Address Error), subtype 6 (down or non-effective port) message. If the packet is resubmitted or another packet is sent to the same destination name, and there are no available effective translations, then the source host will receive a type 15, subtype 5 (no effective translations) message if the destination name has more than one mapping; or will receive either a type 7 (Destination Host Dead) or a type 15, subtype 3 (name not effective) message if the destination name has a single translation. Those enhancements to the uncontrolled packet service that are not specific to logical addressing will be available to hosts using 1822 as well as 1822L. However, uncontrolled packets must be sent using 1822L leaders in order to receive any indication that the packet was lost once it has left the source IMP. - 18 - 1822L Host Access Protocol December 1983 RFC 878 2.4 Establishing Host-IMP Communications When a host comes up on an IMP, or after there has been a break in the communications between the host and its IMP (see 1822(3.2)), the orderly flow of messages between the host and the IMP needs to be properly (re)established. This allows the IMP and host to recover from most any failure in the other or in their communications path, including a break in mid-message. The first messages that a host should send to its IMP are three NOP messages. Three messages are required to insure that at least one message will be properly read by the IMP (the first NOP could be concatenated to a previous message if communications had been broken in mid-stream, and the third provides redundancy for the second). These NOPs serve several functions: they synchronize the IMP with the host, they tell the IMP how much padding the host requires between the message leader and its body, and they also tell the IMP whether the host will be using 1822 or 1822L leaders. Similarly, the IMP will send three NOPs to the host when it detects that the host has come up. Actually, the IMP will send six NOPs, alternating three 1822 NOPs with three 1822L NOPs. Thus, the host will see three NOPs no matter which protocol it is using. The NOPs will be followed by two Interface Reset - 19 - 1822L Host Access Protocol December 1983 RFC 878 messages, one of each style. If the IMP receives a NOP from the host while the above sequence is occurring, the IMP will only send the remainder of the NOPs and the Interface Reset in the proper style. The 1822 NOPs will contain the 1822 address of the host interface, and the 1822L NOPs will contain the corresponding 1822L address. Once the IMP and the host have sent each other the above messages, regular communications can commence. See 1822(3.2) for further details concerning the ready line, host tardiness, and other issues. 2.5 Counting RFNMs When Using 1822L When a host submits a regular message using an 1822 leader, the IMP checks for an existing simplex virtual circuit connection (see 1822(3.1)) from the source host to the destination host. If such a connection already exists, it is used. Otherwise, a new connection from the source host port to the destination host port is opened. In either case, there may be at most eight messages outstanding on that connection at any one time. If a host submits a ninth message on that connection before it receives a reply for the first message, then the host will be blocked until the reply is sent for the first message. - 20 - 1822L Host Access Protocol December 1983 RFC 878 Such connections can stay open for some time, but are timed out after three minutes of no activity, or can be closed if there is contention for the connection blocks in either the source or destination IMP. However, a connection will never be closed as long as there are any outstanding messages on it. This allows a source host to count the number of replies it has received for messages to each destination host address in order to avoid being blocked by submitting a ninth outstanding message on any connection. When a host submits a regular message using an 1822L leader, a similar process occurs, except that in this case, connections are distinguished by the source port/source name/destination name combination. When the message is received from a host, the IMP first looks for an open connection for that same port and source name/destination name pair. If such a connection is found, then it is used, and no further name translation is performed. If, however, no open connection was found, then the destination name is translated, and a connection opened to the physical host port. As long as there are any outstanding messages on the connection it will stay open, and it will have the same restriction that only eight messages may be outstanding at any one time. Thus, a source host can still count replies to avoid being blocked, but they must be counted on a source port and source name/destination - 21 - 1822L Host Access Protocol December 1983 RFC 878 name pair basis, instead of just by source port and destination host address as before. Since connections are based on the source name as well as the destination name, this implies that there may be more than one open connection from physical host port A to physical host port B, which would allow more than 8 outstanding messages simultaneously from the first to the second port. However, for this to occur, either the source or destination names, or both, must differ from one connection to the next. For example, if the names "543" and "677" both translate to physical port 3 on IMP 51, then the host on that port could open four connections to itself by sending messages from "543" to "543", from "543" to "677", from "677" to "543", and from "677" to "677". As has already been stated, the destination names in regular messages are only translated when connections are first opened. Once a connection is open, that connection, and its destination physical host port, will continue to be used until it is closed. If, in the meantime, a "better" destination host port belonging to the same destination name became available, it would not be used until the next time a new connection is opened to that destination name. - 22 - 1822L Host Access Protocol December 1983 RFC 878 Also, the act of making an 1822L name be non-effective will not | automatically cause any connections using that name to be closed. | However, they will be closed after at most three minutes of | inactivity. A host can, if it wishes, make all of its names at a | port be noneffective and close all of its connections to and from | the port by flapping the host's ready line to that IMP port. | 2.6 1822L Name Server There may be times when a host wants to perform its own translations, or might need the full list of physical addresses to which a particular name maps. For example, a connection-based host-to-host protocol may require that the same physical host port on a multi-homed host be used for all messages using that host-to-host connection, and the host does not wish to trust the IMP to always deliver messages using a destination name to the same host port. In these cases, the host can submit a type 11 (Name Server Request) message to the IMP, which requests the IMP to translate the destination 1822L name and return a list of the addresses to which it maps. The IMP will respond with a type 11 (Name Server Reply) message, which contains the selection policy in use for that name, the number of addresses to which the name maps, the - 23 - 1822L Host Access Protocol December 1983 RFC 878 addresses themselves, and for each address, whether it is effective and its routing distance from the IMP. See section 3.2 for a complete description of the message's contents. Using this information, the source host could make an informed decision on which of the physical host ports corresponding to an 1822L name to use and then send the messages to that port, rather than to the name. The IMP also supports a different type of name service. A host needs to issue a Name Declaration Message to the IMP in order to make its names effective, but it may not wish to keep its names in some table or file in the host. In this case, it can ask the IMP to tell it which names it is authorized to use. In this case, the host submits a type 12 (Port List Request) message to the IMP, and the IMP replies with a type 12 (Port List Reply) message. It contains, for the host port over which the IMP received the request and sent the reply, the number of names that map to the port, the list of names, and whether or not each name is effective. The host can then use this information in order to issue the Name Declaration Message. Section 3.2 contains a complete description of the reply's contents. - 24 - 1822L Host Access Protocol December 1983 RFC 878 3 1822L LEADER FORMATS The following sections describe the formats of the leaders that precede messages between an 1822L host and its IMP. They were designed to be as compatible with the 1822 leaders as possible. The second, fifth, and sixth words are identical in the two leaders, and all of the existing functionality of the 1822 leaders has been retained. In the first word, the 1822 New Format Flag is now also used to identify the two types of 1822L leaders, and the Handling Type has been moved to the second byte. The third and fourth words contain the Source and Destination 1822L Name, respectively. - 25 - 1822L Host Access Protocol December 1983 RFC 878 3.1 Host-to-IMP 1822L Leader Format 1 4 5 8 9 16 +--------+--------+----------------+ | | 1822L | | | Unused | H2I | Handling Type | | | Flag | | +--------+--------+----------------+ 17 20 21 22 24 25 32 +--------+-+------+----------------+ | |T|Leader| | | Unused |R|Flags | Message Type | | |C| | | +--------+-+------+----------------+ 33 48 +----------------------------------+ | | | Source Host | | | +----------------------------------+ 49 64 +----------------------------------+ | | | Destination Host | | | +----------------------------------+ 65 76 77 80 +-------------------------+--------+ | | | | Message ID |Sub-type| | | | +-------------------------+--------+ 81 96 +----------------------------------+ | | | Unused | | | +----------------------------------+ Host-to-IMP 1822L Leader Format Figure 3.1 - 26 - 1822L Host Access Protocol December 1983 RFC 878 Bits 1-4: Unused, must be set to zero. Bits 5-8: 1822L Host-to-IMP Flag: This field is set to decimal 13 (1101 in binary). Bits 9-16: Handling Type: This field is bit-coded to indicate the transmission characteristics of the connection desired by the host. See 1822(3.3). Bit 9: Priority Bit: Messages with this bit on will be treated as priority messages. Bits 10-16: Unused, must be zero. Bits 17-20: Unused, must be zero. Bit 21: Trace Bit: If equal to one, this message is designated for tracing as it proceeds through the network. See 1822(5.5). Bits 22-24: Leader Flags: Bit 22: A flag available for use by the destination host. See 1822(3.3) for a description of its use by the IMP's TTY Fake Host. Bits 23-24: Reserved for future use, must be zero. - 27 - 1822L Host Access Protocol December 1983 RFC 878 Bits 25-32: Message Type: Type 0: Regular Message - All host-to-host communication occurs via regular messages, which have several sub- types, found in bits 77-80. These sub-types are: 0: Standard - The IMP uses its full message and error control facilities, and host blocking may occur. 3: Uncontrolled Packet - The IMP will perform no message-control functions for this type of message, and network flow and congestion control may cause loss of the packet. Also see 1822(3.6) and section 2.3. 1-2,4-15: Unassigned. Type 1: Error Without Message ID - See 1822(3.3). Type 2: Host Going Down - see 1822(3.3). Type 3: Name Declaration Message (NDM) - This message is used by the host to declare which of its 1822L names is or is not effective (see section 2.2.1), or to make all of its names non-effective. The first 16 bits of the data portion of the NDM message, following the leader and any leader padding, contains the number of 1822L names contained in the message. This is followed by the 1822L name entries, each 32 bits long, of which the first 16 bits is a 1822L name and the second 16 bits contains either of the integers zero or one. Zero - 28 - 1822L Host Access Protocol December 1983 RFC 878 indicates that the name should not be effective, and one indicates that the name should be effective. The IMP will reply with a NDM Reply message (see section 3.2) indicating which of the names are now effective and which are not. Pictorially, a NDM message has the following format (including the leader, which is printed in hexadecimal, and without any leader padding): - 29 - 1822L Host Access Protocol December 1983 RFC 878 1 16 17 32 33 48 +----------------+----------------+----------------+ | | | | | 0D00 | 0003 | 0000 | | | | | +----------------+----------------+----------------+ 49 64 65 80 81 96 +----------------+----------------+----------------+ | | | | | 0000 | 0000 | 0000 | | | | | +----------------+----------------+----------------+ 97 112 113 128 129 144 +----------------+----------------+----------------+ | | | | | # of entries | 1822L name #1 | 0 or 1 | | | | | +----------------+----------------+----------------+ 145 160 161 176 +----------------+----------------+ | | | | 1822L name #2 | 0 or 1 | etc. | | | +----------------+----------------+ NDM Message Format Figure 3.2 An NDM with zero entries will cause all current effective names for the host to become non-effective. Type 4: NOP - This allows the IMP to know which style of leader the host wishes to use. A 1822L NOP signifies that the host wishes to use 1822L leaders, and an 1822 NOP signifies that the host wishes to use 1822 leaders. All of the other remarks concerning the NOP message in - 30 - 1822L Host Access Protocol December 1983 RFC 878 1822(3.3) still hold. The host should always issue NOPs in groups of three to insure proper reception by the IMP. Also see section 2.4 for a further discussion on the use of the NOP message. Type 8: Error with Message ID - see 1822(3.3). Type 11: Name Server Request - This allows the host to use the IMP's logical addressing tables as a name server. The destination name in the 1822L leader is translated, and the IMP replies with a Name Server Reply message, which lists the physical host addresses to which the destination name maps. Type 12: Port List Request - This allows the physical host to request the list of names that map to the host port over which this request was received by the IMP. The IMP replies with a Port List Reply message, which lists the names that map to the port. Types 5-7,9-10,13-255: Unassigned. Bits 33-48: Source Host: This field contains one of the source host's 1822L names (or, alternatively, the 1822L address of the host port the message is being sent over). This field is not automatically filled in by the IMP, as in the 1822 protocol, because the host may be known by several names and may wish - 31 - 1822L Host Access Protocol December 1983 RFC 878 to use a particular name as the source of this message. All messages from the same host need not use the same name in this field. Each source name, when used, is checked for authorization, effectiveness, and actually belonging to this host. Messages using names that do not satisfy all of these requirements will not be delivered, and will instead result in an error message being sent back into the source host. If the host places its 1822L address in this field, the address is checked to insure that it actually represents the host port where the message originated. Bits 49-64: Destination Host: This field contains the 1822L name or address of the destination host. If it contains a name, the name will be checked for effectiveness, with an error message returned to the source host if the name is not effective. Bits 65-76: Message ID: This is a host-specified identification used in all type 0 and type 8 messages, and is also used in type 2 messages. When used in type 0 messages, bits 65-72 are also known as the Link Field, and should contain values specified in Assigned Numbers [3] appropriate for the host-to-host protocol being used. - 32 - 1822L Host Access Protocol December 1983 RFC 878 Bits 77-80: Sub-type: This field is used as a modifier by message types 0, 2, 4, and 8. Bits 81-96: Unused, must be zero. - 33 - 1822L Host Access Protocol December 1983 RFC 878 3.2 IMP-to-Host 1822L Leader Format 1 4 5 8 9 16 +--------+--------+----------------+ | | 1822L | | | Unused | I2H | Handling Type | | | Flag | | +--------+--------+----------------+ 17 20 21 22 24 25 32 +--------+-+------+----------------+ | |T|Leader| | | Unused |R|Flags | Message Type | | |C| | | +--------+-+------+----------------+ 33 48 +----------------------------------+ | | | Source Host | | | +----------------------------------+ 49 64 +----------------------------------+ | | | Destination Host | | | +----------------------------------+ 65 76 77 80 +-------------------------+--------+ | | | | Message ID |Sub-type| | | | +-------------------------+--------+ 81 96 +----------------------------------+ | | | Message Length | | | +----------------------------------+ IMP-to-Host 1822L Leader Format Figure 3.3 - 34 - 1822L Host Access Protocol December 1983 RFC 878 Bits 1-4: Unused and set to zero. Bits 5-8: 1822L IMP-to-Host Flag: This field is set to decimal 14 (1110 in binary). Bits 9-16: Handling Type: This has the value assigned by the source host (see section 3.1). This field is only used in message types 0, 5-9, and 15. Bits 17-20: Unused and set to zero. Bit 21: Trace Bit: If equal to one, the source host designated this message for tracing as it proceeds through the network. See 1822(5.5). Bits 22-24: Leader Flags: Bit 22: Available as a destination host flag. Bits 23-24: Reserved for future use, set to zero. Bits 25-32: Message Type: Type 0: Regular Message - All host-to-host communication occurs via regular messages, which have several sub- types. The sub-type field (bits 77-80) is the same as sent in the host-to-IMP leader (see section 3.1). Type 1: Error in Leader - See 1822(3.4). In addition to its | already defined sub-types, this message has two new | - 35 - 1822L Host Access Protocol December 1983 RFC 878 sub-types: | 4: Illegal Leader Style - The host submitted a leader | in which bits 5-8 did not contain the value 13, | 14, or 15 decimal. | 5: Wrong Leader Style - The host submitted an 1822L | leader when the IMP was expecting an 1822 leader, | or vice-versa. | Type 2: IMP Going Down - See 1822(3.4). Type 3: NDM Reply - This is a reply to the NDM host-to-IMP message (see section 3.1). It will have the same number of entries as the NDM message that is being replying to, and each listed 1822L name will be accompanied by a zero or a one (see figure 3.2). A zero signifies that the name is not effective, and a one means that the name is now effective. Type 4: NOP - The host should discard this message. It is used during initialization of the IMP/host communication. The Destination Host field will contain the 1822L Address of the host port over which the NOP is being sent. All other fields are unused. Type 5: Ready for Next Message (RFNM) - See 1822(3.4). Type 6: Dead Host Status - See 1822(3.4). Type 7: Destination Host or IMP Dead (or unknown) - See 1822(3.4). - 36 - 1822L Host Access Protocol December 1983 RFC 878 Type 8: Error in Data - See 1822(3.4). Type 9: Incomplete Transmission - See 1822(3.4). In | addition to its already defined sub-types, this message | has one new sub-type: | 6: Logically Addressed Host Went Down - A logically | addressed message was lost in the network because | the destination host to which it was being | delivered went down. The message should be | resubmitted by the source host, since there may be | another effective host port to which the message | could be delivered (see section 2.2.3). | Type 10: Interface Reset - See 1822(3.4). Type 11: Name Server Reply - This reply to the Name Server Request host-to-IMP message contains, following the leader and any leader padding, a word with the selection policy and the number of physical addresses to which the destination name maps, followed by two words per physical address: the first word contains an 1822L address, and the second word contains a bit signifying whether or not that particular translation is effective and the routing distance (expected network transmission delay, in 6.4 ms units) to the address's IMP. In figure 3.4, which includes the leader without any leader padding, EFF is 1 for effective and 0 for - 37 - 1822L Host Access Protocol December 1983 RFC 878 non-effective, and POL is a two-bit number indicating the selection policy for the name (see section 2.2.2): 0: First reachable. 1: Closest physical address. 2: Load leveling. 3: Unused. 1 16 17 32 33 48 +----------------+----------------+----------------+ | | | | | 0E00 | 000B | 0000 | | | | | +----------------+----------------+----------------+ 49 64 65 80 81 96 +----------------+----------------+----------------+ | | | | | dest. name | 0000 | 0000 | | | | | +----------------+----------------+----------------+ 97 112 113 128 129 144 +-+--------------+----------------+-+--------------+ |P| | |E| | |O| # of addrs | 1822L addr #1 |F| routing dist | |L| | |F| | +-+--------------+----------------+-+--------------+ 145 160 161 176 +----------------+-+--------------+ | |E| | | 1822L addr #2 |F| routing dist | etc. | |F| | +----------------+-+--------------+ Name Server Reply Format Figure 3.4 - 38 - 1822L Host Access Protocol December 1983 RFC 878 Type 12: Port List Reply - This is the reply to the Port List Request host-to-IMP message. It contains the number of names that map to this physical host port, followed by two words per name: the first word contains an 1822L name that maps to this port, and the second contains either a zero or a one, signifying whether or not that particular translation is effective. The format is identical to the type 3 NDM Reply message (see figure 3.2). Type 15: 1822L Name or Address Error - This message is sent in response to a type 0 message from a host that contained an erroneous Source Host or Destination Host field. Its sub-types are: 0: The Source Host 1822L name is not authorized or not effective. 1: The Source Host 1822L address does not match the host port used to send the message. 2: The Destination Host 1822L name is not authorized. 3: The physical host to which this singly-homed Destination Host name translated is authorized and up, but not effective. If the host was actually down, a type 7 message would be returned, not a type 15. 5: The multi-homed Destination Host name is authorized, - 39 - 1822L Host Access Protocol December 1983 RFC 878 but has no available effective translations. 6: A logically-addressed uncontrolled packet was sent to a dead or non-effective host port. However, if it is resubmitted, there may be another effective host port to which the IMP may be able to attempt to send the packet. 7: Logical addressing is not in use in this network. 8-15: Unassigned. Types 4,13-14,16-255: Unassigned. Bits 33-48: Source Host: For type 0 messages, this field contains the 1822L name or address of the host that originated the message. All replies to the message should be sent to the host specified herein. For message types 5-9 and 15, this field contains the source host field used in a previous type 0 message sent by this host. Bits 49-64: Destination Host: For type 0 messages, this field contains the 1822L name or address that the message was sent to. This allows the destination host to detect how it was specified by the source host. For message types 5-9 and 15, this field contains the destination host field used in a previous type 0 message sent by this host. - 40 - 1822L Host Access Protocol December 1983 RFC 878 Bits 65-76: Message ID: For message types 0, 5, 7-9, and 15, this is the value assigned by the source host to identify the message (see section 3.1). This field is also used by message types 2 and 6. Bits 77-80: Sub-type: This field is used as a modifier by message types 0-2, 5-7, 9, and 15. Bits 81-96: Message Length: This field is contained in type 0, 3, 11, and 12 messages only, and is the actual length in bits of the message (exclusive of leader, leader padding, and hardware padding) as computed by the IMP. - 41 - 1822L Host Access Protocol December 1983 RFC 878 4 REFERENCES [1] "Specifications for the Interconnection of a Host and an IMP", BBN Report 1822, December 1981 Revision. [2] E. C. Rosen et. al., "ARPANET Routing Algorithm Improvements", Internet Experimenter's Note 183 (also published as BBN Report 4473, Vol. 1), August 1980, pp. 55- 107. [3] J. Reynolds and J. Postel, "Assigned Numbers", Request For Comments 870, October 1983, p. 14. [4] J. Postel, ed., "Internet Protocol - DARPA Internet Program Protocol Specification", Request for Comments 791, September 1981. [5] J. Postel, "Address Mappings", Request for Comments 796, September 1981. - 42 - 1822L Host Access Protocol December 1983 RFC 878 APPENDIX A 1822L-IP ADDRESS MAPPINGS Once logical addressing is in active (or universal) use in a | network, to the extent that the "official" host tables for that | network specify hosts by their logical names rather than by their | physical network addresses, it would be desirable for hosts on | other networks to also be able to use the same logical names to | specify these hosts when sending traffic to them via the internet | [4]. | Happily, there exists a natural mapping between logical names and | internet addresses that fits very nicely with the already | standard ARPANET-style address mapping as specified in RFC 796, | Address Mappings [5]. The current ARPANET-style class A mapping | is as follows (from RFC 796): | - 43 - 1822L Host Access Protocol December 1983 RFC 878 +--------+ +--------+--------+ | HOST | | ZERO | IMP | 1822 Address +--------+ +--------+--------+ 8 8 8 +--------+--------+--------+--------+ | net # | HOST | LH | IMP | IP Address +--------+--------+--------+--------+ 8 8 8 8 1822 Class A Mapping Figure A.1 For 1822L names and addresses, the mapping would be: | +--------+--------+ | upper | lower | 1822L Name or Address +--------+--------+ 8 8 +--------+--------+--------+--------+ | net # | upper | LH | lower | IP Address +--------+--------+--------+--------+ 8 8 8 8 1822L Class A Mapping Figure A.2 For 1822L addresses, this mapping is identical to the 1822 | mapping. For 1822L names, the IP address would appear to be | addressing a high-numbered (64-255) 1822 host. Although the LH | (logical host) field is still defined, its use is discouraged; | multiple logical names should now be used to multiplex multiple | - 44 - 1822L Host Access Protocol December 1983 RFC 878 functions onto one physical host port. | This mapping extends to class B networks: | +--------+--------+ | upper | lower | 1822L Name or Address +--------+--------+ 8 8 +----------------+--------+--------+ | network number | upper | lower | IP Address +----------------+--------+--------+ 16 8 8 1822L Class B Mapping Figure A.3 Finally, logical addressing will allow IMP-based class C networks | for the first time. Previously, it was very hard to try to | divide the 8 bits of host specification into some number of host | bits and some number of IMP bits. However, if ALL of the | internet-accessible hosts on the network have logical names, | there is no reason why networks with up to 256 such logical names | cannot now use class C addresses, as follows: | - 45 - 1822L Host Access Protocol December 1983 RFC 878 +--------+--------+ |01000000| lower | 1822L Name +--------+--------+ 8 8 +------------------------+--------+ | network number | lower | IP Address +------------------------+--------+ 24 8 1822L Class C Mapping Figure A.4 Those hosts on the network desiring internet access would be | assigned logical names in the range 40000 to 40377 (octal), and | the gateway(s) connected to that network would make the | translation from IP addresses to 1822L names as specified above. | Note that the network could have many more than 256 hosts, or 256 | defined names; the only restriction is that hosts that desire | internet support or access be addressable by a name in the range | 40000 - 40377. Traffic that was strictly local to the network | could use other names or even 1822L addresses. | - 46 - 1822L Host Access Protocol December 1983 RFC 878 INDEX 1822...................................................... 3 1822 address.............................................. 5 1822 host................................................. 4 1822L..................................................... 3 1822L address............................................. 6 1822L and 1822 interoperability.......................... 15 1822L host................................................ 4 1822L name................................................ 5 address selection policy................................. 12 authorized................................................ 8 blocking................................................. 20 closest physical address................................. 12 connection............................................... 20 destination host..................................... 32, 40 effective............................................. 9, 23 first reachable.......................................... 12 handing type......................................... 27, 35 host downs............................................... 13 interoperability......................................... 15 leader flags......................................... 27, 35 link field............................................... 32 load leveling............................................ 12 logical addressing........................................ 3 message ID........................................... 32, 41 message length........................................... 41 message type......................................... 28, 35 multi-homing.............................................. 3 name server...................................... 23, 31, 37 NDM................................................... 9, 28 NDM reply............................................. 9, 36 NOC....................................................... 8 NOP........................................... 4, 19, 30, 36 priority bit............................................. 27 regular message...................................... 28, 35 RFNM................................................. 20, 36 source host.......................................... 31, 40 standard message......................................... 28 sub-type............................................. 33, 41 symmetric................................................. 4 trace bit............................................ 27, 35 - 47 - 1822L Host Access Protocol December 1983 RFC 878 uncontrolled packet.................................. 16, 28 virtual circuit connection............................... 20 - 48 -