Internet Protocol on Network System's HYPERchannel: Protocol Specification
RFC 1044
also known as STD 45
Document | Type |
RFC
- Internet Standard
(February 1988)
Updated by RFC 5494
|
|
---|---|---|---|
Authors | |||
Last updated | 2013-03-02 | ||
RFC stream | Legacy stream | ||
Formats | |||
IESG | Responsible AD | (None) | |
Send notices to | (None) |
RFC 1044
quot; of IP HYPERchannel drivers in existence: THE "CRAY-NASA AMES" PROTOCOL This protocol is in the widest production use and has the largest number of supported drivers in existence. It is interoperable and identical with the standard described above with the sole exception that bytes 8 and 9 are set to zero by these drivers. As these bytes are ignored by most implementations of this driver, they have been assigned values to formalize the use of the message type field and to make it consistent with the 32-bit protocol. THE "TEKTRONIX-BERKELEY" PROTOCOL This protocol was historically the first IP on HYPERchannel implementation developed (at Tektronix) and subsequently made its way to Berkeley and BSD UNIX. This protocol is not interoperable with Hardwick & Lekashman [Page 21] RFC 1044 IP on Network Systems HYPERchannel February 1988 the standard described above due to several distinct differences. First, bytes 8 through 11 are always zero. The IP header always starts on byte 12. Comments in some of these drivers designate byte 11 as an "IP header offset" field, but apparently this value is never processed. The major difference (and the incompatibility) concerns the packaging of the IP datagram into the network message. Due to historical difficulties in the early 80's with the sending and receiving of very small blocks of associated data on VAXes, this protocol the takes a curious approach to the placement of the IP header and the headers of higher level protocols (such as TCP or UDP.) o If the entire length of the IP datagram is 54 bytes or less, it is possible to fit the entire datagram and the HYPERchannel header in the 64 byte message proper. In this case, no associated data is sent; only a message proper is used to carry the data. The length of the message proper transmitted is the exact length needed to enclose the IP datagram; no padding bytes are sent at the end of the message. o If the length of the IP header is greater than 54 bytes, then: - All higher level protocol information (TCP/UDP header and their associated data fields) are placed in the associated data block, with the TCP/UDP header beginning at the start of the associated data block. - On transmission, the length of the message proper transmitted is set to the length of the HYPERchannel header plus the IP header -- it is not padded out to 64 bytes. The length of the associated data sent should be sufficient to accommodate the TCP/UDP header and its data fields. Hardwick & Lekashman [Page 22] RFC 1044 IP on Network Systems HYPERchannel February 1988 WHICH PROTOCOL IS BEST? In choosing which to follow, the "Cray-Ames" approach was taken for several reasons: 1. Cray Research has performed exemplary work in dealing with other vendors to provide IP on HYPERchannel from the Cray computers to other hosts. As a result, there are 4 or 5 vendor supported implementations of IP on HYPERchannel that use this approach. 2. The two part structure of the message proper has its uses when a machine wishes to make protocol decisions before staging the transfer of an immense block of associated data into memory. Many network coprocessors and intelligent I/O subsystems find it simpler to read in the entire network message before deciding what to do with it. Arbitrarily catenating the two components does this best and permits streaming of messages from future technology network adapters. 3. Some TCP users (mostly secure DoD sites) intend to load up IP datagrams with optional fields in the future. The Tektronix-Berkeley implementation has problems if the IP header length exceeds 54 bytes. Hardwick & Lekashman [Page 23] RFC 1044 IP on Network Systems HYPERchannel February 1988 EXTENDED (32-BIT) MESSAGE ENCAPSULATION Message Proper +------------------------------+-----------------------------+ 0 | Trunks to Try |1| Message Flags | | TO trunks | FROM trunks |GNA|CRC| |SRC|EXC|BST|A/D| +------------------------------+-----------------------------+ 2 | Destination Domain | Destination Network | | Number | Number | +------------------------------+-----------------------------+ 4 |O| Physical addr of | Protocol server |Dest Port| |N| destination adapter | logical address | number | +------------------------------+-----------------------------+ 6 |O| Physical addr of | Originating | Src Port| |N| source adapter | server address | number | +------------------------------+-----------------------------+ 8 | IP on HYPERchannel | Offset to start of IP | | type code 0x06 | datagram header | +------------------------------+-----------------------------+ 10 | Source Domain Number | Source Network Number | | | | +------------------------------+-----------------------------+ 12 | - reserved - | Age Count | +------------------------------+-----------------------------+ 14 | Next Header Offset | Header End Offset | | | (usually 16) | +------------------------------+-----------------------------+ 16 | Padding to IP header start (usually 0 bytes) | | | +------------------------------+-----------------------------+ Off| Entire IP datagram if datagram length <= (64-Offset) | | | | else first (64-Offset) bytes of IP datagram | +------------------------------+-----------------------------+ Associated Data +------------------------------+-----------------------------+ | | | Remainder of IP datagram | | | | No associated data is present if IP | | datagram fits in the Message Proper | | | +------------------------------+-----------------------------+ TRUNK MASK From the vantage of an IP driver, any trunk mask is valid so long as Hardwick & Lekashman [Page 24] RFC 1044 IP on Network Systems HYPERchannel February 1988 it results in successful delivery of the HYPERchannel network message to its destination. There is no reason to check this field for validity on reception of the message. Specification of the Trunk Mask on output is a local affair that can be specified by the transmitting driver's address resolution tables. The use of 0xFF in this value is strongly encouraged for any message other than those using exotic trunk configurations on a single local network. MESSAGE FLAGS Several new bits have been defined here. EXTENDED ADDRESSING. This bit should be set ON whenever a 32-bit address (Network and/or Domain numbers nonzero) is present in the message. It should always be OFF with the 16-bit message header. If this bit is improperly set, delivery of the message to the (apparent) destination is unlikely. END-TO-END CRC. Some newer technology adapters are equipped to place a 32-bit CRC of the associated data at the end of the associated data block when this bit is on. Similarly equipped adapters will examine the trailing 32-bits of associated data (when the bit is on) to determine if the message contents have been corrupted at any stage of the transmission. Transmitting device drivers should include the ability to set this bit on transmission as a configuration option similar to the specific HYPERchannel device interface used. The bit should be generated to be turned ON if the HYPERchannel IP driver is attached to an adapter equipped to generated CRC information -- it should be left OFF in all other circumstances. If a message arrives at the host with the CRC bit still on, this indicates that the CRC information was placed at the end of associated data by the transmitting adapter and not removed by the receiving adapter; thus the associated data will be four bytes longer than otherwise expected. Since the IP datagram length is self contained in the network message, this should not impact IP drivers. It is possible for host computers to both generate and check this CRC information to match the hardware assisted generation and checking logic in newer network adapters. Contact NSC if there are particular applications requiring exceptional data integrity that could benefit from host generation and checking. Hardwick & Lekashman [Page 25] RFC 1044 IP on Network Systems HYPERchannel February 1988 FROM ADDRESS CORRECT. This bit should be set by all transmitting IP drivers who have endeavored to provide a completely correct FROM address that properly reflects the adapter interface used. No action should be taken on this bit by the receiving IP driver at this time. Additional work needs to be done to determine the action an IP driver should take if it detects a real or imagined "security violation" should a message arrive with this bit absent. TO ADDRESS The TO address logically constitutes bytes 2-5 of the network message. NETWORK AND DOMAIN NUMBERS. The Network and Domain numbers should both be nonzero when 32-bit addressing is used. If the message is local in nature, then the local Network and Domain numbers should be placed in this field. ADAPTER ADDRESS. Contains the adapter address as in the basic message. The high order bit of this eight bit field (the "outnet" bit) should be set to zero if the destination network and domain are the same as the transmitting host's. The high order bit should be set to one if the destination host is not in the local network or domain. LOGICAL TO AND SUBADDRESS. The logical TO field should contain the protocol server address of the HYPERchannel IP driver for that host as determined by the host's system administrator. FROM ADDRESS The FROM address is filled in with the address that the local driver expects to receive from the network, but no particular use is made of the FROM address. MESSAGE TYPE The value 6 must be placed in this byte to uniquely indicate that the network message is being used to carry IP traffic. No other well- behaved protocol using HYPERchannel should duplicate this value of 6. Note that all IP drivers should be prepared to send and receive the basic format network messages using the 16-bit HYPERchannel addresses. The driver can distinguish an incoming network message by the value of byte 8 -- 32-bit messages will always have a 6 in byte 8, while 16-bit messages should have a 5 here. For interoperability with older drivers, a value of 0 here should be treated as 16 address bit messages. Hardwick & Lekashman [Page 26] RFC 1044 IP on Network Systems HYPERchannel February 1988 IP HEADER OFFSET Byte 9 contains the offset to the start of the IP header within the message proper, such that the Message Proper address plus the IP header offset generates the address of the first byte of the IP header (at least on byte addressable machines.) Unlike the 16-bit header, receiving IP drivers should assume that this field contains a correct offset to the IP header and examine the information at that offset for conformance to an IP datagram header. Valid offsets are in the range of 16 through 44 bytes, inclusive. The limitation of 44 bytes is imposed so that routing decisions on the vast majority of IP datagrams can be made by examining only the message proper, as the basic IP datagram will fit into the message proper if it begins at an offset of 44. IP DATAGRAM CONTENTS The message and data are treated as logically contiguous entities where the first byte of associated data immediately follows the 64th byte of the message proper. If the entire IP datagram is less than or equal to (64-offset) bytes in length it will fit into the Message Proper. If so, only a message proper containing the HYPERchannel header and IP datagram is sent on the network. If the IP datagram is greater than this length, the IP datagram spills over into the associated data. On transmission, a 64 byte message proper is sent followed by as many bytes of associated data as are needed to send the entire datagram. On reception, the message proper can be read into the start of an IP input buffer and the associated data read into memory 64 bytes from the start of the message. If the received message is in fact a 32- bit address message, no "shuffling" of the message will be required to build a contiguous IP datagram -- it's right there at buffer+16. ADDRESS RESOLUTION PROTOCOL Address Resolution Protocol has achieved a great deal of success on the Ethernet as it permits a local IP network to configure itself simply by having each node know its own IP address. Those unfamiliar with the intent, protocol, and logic of the Address Resolution Protocol should refer to RFC-826, "An Ethernet Address Resolution Protocol" [2]. Hardwick & Lekashman [Page 27] RFC 1044 IP on Network Systems HYPERchannel February 1988 A later section of this document describes four techniques where a target HYPERchannel address is to obtained given the destination's IP address. The protocol is defined in this section for completeness. Message Proper +------------------------------+-----------------------------+ 0 | Trunks to Try |1| Message Flags | | TO trunks | FROM trunks |GNA|CRC| |SRC|EXC|BST|A/D| +------------------------------+-----------------------------+ 2 | Server Domain or | Server Network or | | 0xFF | 0xFF | +------------------------------+-----------------------------+ 4 | Server Adapter Address or | Server logical addr/port or | | 0xFF | 07 | +------------------------------+-----------------------------+ 6 |O| Physical addr of | Originating | Src Port| |N| source adapter | server address | number | +------------------------------+-----------------------------+ 8 | NSC ARP type code | | 07 | 00 | +------------------------------+-----------------------------+ 10 | Source Domain | Source Network | +------------------------------+-----------------------------+ 12 | - reserved - | Age Count | +------------------------------+-----------------------------+ 14 | Next Header Offset | Header End Offset | | (usually 16) | (usually 16) | +------------------------------+-----------------------------+ 16 | Padding to start of IP info (usually 0 bytes) | +------------------------------+-----------------------------+ Hardwick & Lekashman [Page 28] RFC 1044 IP on Network Systems HYPERchannel February 1988 +------------------------------+-----------------------------+ Off | ARP hardware address type for HYPERchannel | | 8 | +------------------------------+-----------------------------+ +2 | HYPERchannel protocol type | | 06 00 | +------------------------------+-----------------------------+ +4 | HYPERchannel address length | IP address length | | 6 | 4 | +------------------------------+-----------------------------+ +6 | ARP opcode (request or reply) | +------------------------------+-----------------------------+ +8 | Domain | Network | +- Sender's 32-bit HYPERchannel address -+ +10 | Adapter address | Logical addr/port | +------------------------------+-----------------------------+ +12 | Source's MTU size | +------------------------------+-----------------------------+ +14 | | | +- Sender's 32-bit IP address -+ +16 | | +------------------------------+-----------------------------+ +18 | Domain | Network | +- Destination's 32-bit HYPERchannel address -+ +20 | (to be determined on request) | | Adapter address | Logical addr/port | +------------------------------+-----------------------------+ +22 | Destination's MTU size | | (to be determined on request) | +------------------------------+-----------------------------+ +24 | | | +- Destination's 32-bit IP address -+ +26 | | +------------------------------+-----------------------------+ Layout of the fields of this ARP message is a fairly straightforward exercise given the standards of ARP and the 32-bit message header. A few fields are worth remarking upon: TO ADDRESS The TO address of an ARP message will be one of two classes of address. A "normal" address indicates that the message is an ARP response, or that it is an ARP request directed at an ARP server at a well known address on the local network. For those HYPERchannel networks which are equipped to broadcast, a value of 0xFFFFFF07 in the TO address will (by convention) be picked up only by those protocol servers prepared to interpret and respond to ARP messages. Hardwick & Lekashman [Page 29] RFC 1044 IP on Network Systems HYPERchannel February 1988 The issue of which address to use in an ARP request is discussed in the Address Resolution section. FROM ADDRESS Must be the correct FROM address of the user protocol server issuing an ARP request. The Source Correct bit in the Message Flags byte should be set by this requesting server, as some ARP servers may someday choose to issue ARP information on an "need to know" basis in secure environments. With an ARP response, the FROM address will contain the "normal" HYPERchannel address of the protocol server responding to the ARP address, even if that server was reached via broadcast mechanisms. ARP responses are returned to the party specified in the FROM address specified in the message header, rather than the address in the "Source HYPERchannel Address" field within the body of the ARP message. MESSAGE TYPE The 16-bit value 0x0700 is reserved for the exclusive use of ARP. Unlike IP messages, no provision is made for the ARP message to begin at an arbitrary offset within the message proper, so the value in byte 9 is an extension of the message type. HEADER END OFFSET ARP uses the 32-bit addressing convention that byte 15 contains the offset to the start of user protocol (and hence the end of user protocol information). Note that this is not a substitute for the IP offset fields, as this field also serves as the end of HYPERchannel header information -- future NSC message processing code may well take exception to "garbage" between the actual header end and the start of user data. HYPERCHANNEL HARDWARE TYPE CODE This 16-bit number is assigned a formal ARP hardware type of 8. HYPERCHANNEL PROTOCOL TYPE On the Ethernet, this field is used to distinguish IP from all other protocols that may require address resolution. To be logically consistent, this field is identical to bytes 8 and 9 0x0600 in a 32- bit address HYPERchannel message carrying an IP datagram. Hardwick & Lekashman [Page 30] RFC 1044 IP on Network Systems HYPERchannel February 1988 HYPERCHANNEL ADDRESS LENGTH This contains the value 6, a sufficient number of bytes to accommodate the four byte HYPERchannel address and 2 bytes to indicate the largest IP datagram size that source and destination can handle. SOURCE AND DESTINATION HYPERCHANNEL ADDRESS This field contains the Domain, Network, and Adapter/port address of source and destination, respectively. A value of 0000 in the Domain and Network fields has special significance as this is interpreted as a request to send and receive 16-bit HYPERchannel headers rather than 32-bit headers. If 32-bit headers are to be used within a single HYPERchannel network, then the local domain and network numbers may be specified. MAXIMUM TRANSMISSION UNIT HYPERchannel LAN technology is such that messages of unlimited length may be sent between hosts. Since host throughput on a network is generally limited by the rate the network equipment can be functioned, larger transmission sizes result in higher bulk transfer performance. Since not every host will be able to handle the maximum size IP datagram, a more flexible means of MTU (maximum transmission unit) size negotiation than simply wiring the same value into every network host is needed. With this field, each host declares the maximum IP datagram size (not the associated data block size) it is prepared to receive. Transmitting IP drivers should be prepared to send the minimum of the source and destination IP sizes negotiated at ARP time. The MTU size sent refers to the maximum size of IP header + data. It does not include the length of the HYPERchannel Hardware header or any offset between the header and the start of the IP datagram. Since it is the option of the transmitting hosts to use an offset of up to 44 bytes a receiving host must in any event be prepared to receive a 64 byte Message Proper and an Associated Data block of MTU-20 (that is 64 - 44, or the length of the basic IP header). An example of a typical 16-bit packet is: 12 bytes hardware header. 12 bytes offset. 40 bytes IP/TCP header. 4096 bytes of data. This gives an MTU of 4136. Hardwick & Lekashman [Page 31] RFC 1044 IP on Network Systems HYPERchannel February 1988 An example of a typical 32-bit packet is: 16 bytes hardware header. 8 bytes offset. 40 bytes IP/TCP header. 4096 bytes of associated data, This also gives an MTU of 4136. The offset values are chosen so that the typical packet causes user data to be page aligned at the start of the associated data area. This is an implementation decision, which can certainly be modified as required. The maximum maximum transmission unit is 65536, the current largest size IP datagram. In order to allow this value to fit into a 16-bit field, the offset length is not included in the MTU. This MTU size is not a requirement that a local host be equipped to send or receive datagrams of that size; it simply indicates the maximum capacity of the receiving host. A note on trunk masks: There is no field for specifying trunk masks. This is intentional, as new NSC hardware will contain trunk reachability information, eliminating the need for the host to maintain hardware configuration layouts. All HYPERchannel messages generated as a result of an ARP response should use 0xFF in the trunk mask. ADDRESS RESOLUTION This section describes techniques used by an IP driver to determine the HYPERchannel address and header that a message should contain given an IP datagram containing an IP address. It describes techniques that are local to specific hosts (and hence can be modified without regard to the activities or techniques of other hosts) as well as techniques to use the Address Resolution Protocol on existing HYPERchannel equipment to better manage IP addresses. It also discusses the migration of name resolution on one of four steps. 1. Truncation of the IP address to form a HYPERchannel address. 2. Local resolution of HYPERchannel addresses through configuration files. 3. Centralized resolution of HYPERchannel addresses through an "ARP server" driven by a configuration file. Hardwick & Lekashman [Page 32] RFC 1044 IP on Network Systems HYPERchannel February 1988 4. Distributed resolution of HYPERchannel addresses using a "real" address Resolution Protocol on future HYPERchannel media supporting a broadcast mode. IP ADDRESS TRUNCATION A number of IP on HYPERchannel implementations support modes where the HYPERchannel address is generated by placing the low order 16- bits of the IP address in the TO address of the message proper. This more or less treats a set of HYPERchannel boxes addressable through 16-bit HYPERchannel addresses as a Class B IP network. This approach certainly offers simplicity: IP addresses are simply chosen to match HYPERchannel addresses and no IP address "configuration files" need be kept. Although this approach works in an environment where the HYPERchannel completely constitutes a Class B network, or where connection to a larger IP network is not a concern, its long term use is discouraged for several reasons: o It simply will not work with any Class C address (the physical TO address is not controllable) or a Class A address (where host addresses are generally carefully administered.) In addition, it will not support subnetworks. It is quite incompatible with 32-bit HYPERchannel addresses. o By decoupling the IP and HYPERchannel addresses through more complex address resolution, the characters of the two addresses allow greater site flexibility: the IP address becomes "logical" in character so that an address can move about a site with the user or host; the HYPERchannel address maintains its physical character so that a HYPERchannel address carefully identifies the physical location of the source and destination within the extended HYPERchannel network. LOCAL ADDRESS RESOLUTION The current state of address resolution art with IP on HYPERchannel works as follows: given an arbitrary IP address, the IP HYPERchannel driver looks up an entry with that address in a (generally hashed) table. If found, the table entry contains the first 6 bytes of the HYPERchannel header that is used to send the IP datagram to the next IP node on the internet. Since implementations such as the 4.3BSD UNIX IP are clever enough to provide its lower level drivers with the IP address of the next gateway as well as the destination address on the internet (assuming the message is not delivered locally on the HYPERchannel,) the number of entries in this table is more or less manageable, as it must only contain the IP hosts and gateway addresses that are directly accessible on the HYPERchannel. Hardwick & Lekashman [Page 33] RFC 1044 IP on Network Systems HYPERchannel February 1988 CONFIGURATION FILE FORMAT So long as this technique of address resolution is used, the techniques used are exclusively local to the host in the sense that the techniques used to generate and store the information in the table are irrelevant to other hosts. Shown here is a typical file format. This file should probably be program generated from a database, as asymmetric trunk configurations and multiply homed hosts can cause differences in physical routing and trunk usage. This format is documented here to illustrate what sort of information must be kept at the link layer. The file consists of source lines each with the form: <type> <hostname> <trunks/flags> <domain/net> <addr> <MTU> an example: <type> <hostname> <t/f> <dom/net> <addr> <MTU> # Random front end host hyper.nsco.com FF88 0103 3702 4148 # because we want to show the 4 byte format host 192.12.102.1 FF00 0000 2203 1024 # Small packets, interactive traffic. host cray-b.nas.nasa.gov FF88 0103 4401 4148 # The other interface, for big packets. ahost cray-b.nas.nasa.gov FF88 0103 4501 32768 # A loopback interface, (What else) loop loop37.nsco.com FF00 0000 3700 4148 # And of course an example of arp service. arpserver hcgate.nsco.com FF88 0103 7F07 Comments may begin with either # or ;. Case is not significant in any field. <type> indicates the type of entity to be defined. Currently defined types are "host," "ahost", "loop," "address," and "arpserver". host This token indicates an IP host. The following field is expected to be a name that can be resolved to an IP address. ahost This field indicates an additional network interface to the same host. This may be used for performance enhancements. Hardwick & Lekashman [Page 34] RFC 1044 IP on Network Systems HYPERchannel February 1988 loop Sets a flag in the entry for that host so that 0xFF00 is placed in bytes 8 and 9 of the message. This will cause the IP datagram to be directed towards the specified host (which must still be a valid host name) and looped back within the remote adapter. This facility serves both as a debugging aid and as a crude probe of the availability of the remote network adapter. arpserver This indicates an address to use for directing ARP requests to the network. If several arpserver addresses are specified, they will be tried in turn until a response is received (or we run out of servers.) An arpserver with the appropriate broadcast address of FFFF FF07 would cause an ARP broadcast to take place when broadcasting becomes available. Broadcast and specific addresses may be used in combination. <hostname> This field is the logical name of the destination. For a host it is the logical name to be given to the local naming service to determine the associated IP address. This field may contain four decimal numbers separated by dots, in which case it is assumed to be the explicit IP address. <trunks/flags> This field is the value to be placed in bytes 0 and 1 of the message header when sending to this host. The associated data bit need not be supplied as the driver must control it. All other bits are sent as provided. This field is a hexidecimal number. <domain/net> This field is the value to be placed in the Domain and Network number field of the message. A value of 0000 in this field indicates that the destination should be reached by constructing a 16-bit HYPERchannel header, rather than a 32-bit header. <address> This field is the value to be placed in the 16-bit TO field to reach <hostname>. This field is a hexidecimal number. <MTU> This field contains the largest size IP datagram that the destination host is prepared to receive. This field is a decimal number. This field is optional. If not present, a value of 4148 is assumed. See the earlier discussion on Maximum Transmission Unit for more detail. ARP SERVERS The primary problem with local host address resolution is that changes or additions to hosts on the local net must be replicated to every HYPERchannel host in that network. While this is manageable for up to half a dozen hosts, it becomes quite unmanageable for Hardwick & Lekashman [Page 35] RFC 1044 IP on Network Systems HYPERchannel February 1988 larger networks. An approach that can be implemented using existing HYPERchannel technology is to have a server on the HYPERchannel network provide the HYPERchannel destination address that is associated with an IP address. Although this is strictly a point-to-point request/response dialogue between two network nodes, the Address Resolution Protocol which was originally designed for Ethernet (but thoughtfully constructed to work with any pair of link and network addresses) performs an excellent job. ARP servers can be reached simply by placing the address of the server in the 32-bit TO address of the network message. ARP servers only "listen" to messages that arrive on their well known normal address; they do not respond to ARP broadcast messages. Properly equipped IP drivers should respond to the broadcast messages when they appear. If an ARP server receives a message containing an IP address it does not know how to resolve, it ignores the message so that another ARP server might be addressed at the source's next attempt. If the address is resolvable, it places the known HYPERchannel address and MTU size in the response and returns it to the location in the HYPERchannel header FROM address. Unlike a broadcast ARP, the ARP server will be required to service two requests when two hosts that are initially unknown to one another attempt to get in touch. Since the destination did not receive the ARP request, it must contact the ARP server when its higher level protocols first generate a datagram to respond to the the source's first IP datagram to go through to the destination. The source configuration file described in the previous section was explicitly designed so that it could be sufficient as a data base for an ARP server as well as an individual host. BROADCAST ARP When a local HYPERchannel network contains a broadcast capability, any IP driver wishing to perform HYPERchannel address resolution may be configured to emit the ARP message on a broadcast instead of a well known address. IP drivers on other hosts are presumed to know if their local HYPERchannel interface can send broadcast messages; if so, they arrange to "listen" on the FF07 broadcast TO address for ARP. Processing of a received ARP broadcast message is otherwise identical Hardwick & Lekashman [Page 36] RFC 1044 IP on Network Systems HYPERchannel February 1988 to RFC-826: o Messages are responded to if and only if the destination IP driver is authoritative for the designated IP address. o Whenever an ARP message is processed, the IP driver takes the source HYPERchannel address and MTU size and adds it to its address resolution tables. Thus the driver is equipped to turn around the IP datagram that arrives from the destination host when contact is made. Each IP driver may have address resolutions that are set through a static routing table (the configuration file specified above). If ARP information arrives that contradicts a static entry (as opposed to previously set dynamic ARP information) then the ARP information should be ignored. This decision is made on the premise that the only useful purpose of static routing in a broadcast ARP environment is to add authentication, as it's easy to lie with ARP. Hardwick & Lekashman [Page 37] RFC 1044 IP on Network Systems HYPERchannel February 1988 APPENDIX A. NSC PRODUCT ARCHITECTURE AND ADDRESSING This section is intended to be a concise review of the state of the art in NSC networks and the techniques they provide for the delivery of messages. Those who are thoroughly familiar with HYPERchannel may wish to only skim this section; however, there is material on new technologies and addressing formats that are not yet generally known to most of NSC's customers. NETWORK SYSTEMS HYPERCHANNEL TECHNOLOGIES Network Systems manufactures several different network technologies that use very different media and link controls, but still provide a common host interface in both the protocol and hardware sense of the term. These four technologies are: o HYPERchannel A -- A 50-megabit, baseband, CSMA with collision avoidance network using a coaxial cable bus. Individual HYPERchannel "network adapters" can control up to 4 of these coaxial cable "trunks," providing up to 200 megabits of capacity on a fully interconnected network. HYPERchannel A is NSC's earliest product and has been in production since 1977. It is principally used to interconnect larger mainframe computers and high speed mainframe peripherals such as tape drives and laser printers. o HYPERchannel B -- a 10-megabit, baseband, CSMA with collision avoidance network using a single coaxial cable bus. This technology is used for direct host to host communications under the name HYPERchannel B, and for terminal connections under the name HYPERbus. It is currently used for three major applications -- local networks of ASCII terminals, networks of IBM 3270 terminals, and host to host communications of smaller computers. o DATAPIPE[3] -- a 275-megabit fiber optic "backbone" network that interconnects lower speed local area networks within a 20 mile range, and to provide an ultra-high-performance network for the next generation of supercomputers and optical storage systems. A prototype version of DATApipe is currently under development at a customer site. o Bridges and Network Distance Extensions -- NSC quickly discovered that its customers wanted very high speeds over geographic areas, not just within the range of several miles that is conceivable with a coaxial cable network. Starting in 1978, NSC began to build a series of "link adapters" that are integral bridges between local area networks. These link Hardwick & Lekashman [Page 38] RFC 1044 IP on Network Systems HYPERchannel February 1988 adapters support common high speed communications media such as Telco T1 circuits, private microwave, high speed satellite links, and fiber optic point to point connections. ATTACHMENT TO HOST COMPUTERS Network Systems' high speed interfaces use the attachment techniques of the manufacturer's highest speed peripheral controllers in order to achieve burst transfer rates of tens of megabits per second. These attachment techniques fall into three categories: "MAINFRAME" DATA CHANNEL ATTACHMENT +-----------+-------+ +------------+ | | | | | | | |HYPERchannel+--+ | | | | | +-------------------+ Network +--|-+ | | | Host | I/O +-------------------+ Adapter +--|-|-+ | | | | Standard host | +--|-|-|-+ | Computer |Control| data channel +------------+ | | | | | | | | | | | | | | | | +-----------+-------+ The network adapter contains interface boards and firmware to be cabled to the manufacturer's data channel, such as would be done with a disk or tape controller. Mainframe network adapters do not emulate an existing manufacturer's device (such as a tape drive) but are supported by software which functions the channel and adapter to send and receive network messages. Models of HYPERchannel adapters are available for essentially all large scale computers worldwide. Hardwick & Lekashman [Page 39] RFC 1044 IP on Network Systems HYPERchannel February 1988 MINICOMPUTER AND WORKSTATION ATTACHMENT Since the network adapter contains lots of expensive, high speed logic, a different technique is used to provide attachment to minicomputers and workstations. +-------------+ +---------------+ +--------------+ | | | | | | | Minicomputer| | Supermini | | Workstation | | | | | | | +-----+-------+ +-------+-------+ +-------+------+ | | DMA | | | DMA | | DMA | | | |control| | |control| |control| | +-----+---++--+ +-------+--++---+ +--++---+------+ || || || || || || |+----------+ || +---------+| +----------+| || |+---------+ || || || +-++--+-----+--++-+--++-+ | | | | | +-----+-----+-----+-----+ | x400 | | Network Adapter | | | +-------+-+-+-+---------+ | | | | ------------------|-|-|-+---------------- ------------------|-|-+------------------ ------------------|-+-------------------- ------------------+---------------------- In this case, NSC provides a DMA controller designed for direct connection to that minicomputer's backplane bus. These DMA controllers accept functions and burst blocks of data from host memory to a channel cable that is connected to one of four ports on a "general purpose computer adapter." This adapter multiplexes transmissions to and from the HYPERchannel trunks from up to four attached processors. Hardwick & Lekashman [Page 40] RFC 1044 IP on Network Systems HYPERchannel February 1988 NETWORK COPROCESSORS For about 10 different bus systems, Network systems provides a "smart" DMA controller containing onboard memory and a Motorola 68010 protocol processor. +------------+-----+---------------+-------+ | | | Coprocessor | | +--------+ | |Host | MC 68010 |Adapter+--------+ x400 | | HOST |DMA | 256K memory | DMA +--------+ Adapter| | | | | | +--------+ | Memory +-----+---------------+-------+ | | +------------+ This class of interface works through the network coprocessor's direct access to host memory. Network transmit and receive request packets are placed in a common "mailbox" area and extracted by the coprocessor. The coprocessor reads and writes system memory as required to service network requests in the proper order. The coprocessors currently provide a service to read or write network messages (called Driver service as it is more or less identical to HYPERchannel dumb DMA drivers) and a service for NETEX, which is NSC's OSI-like communications protocol. Hardwick & Lekashman [Page 41] RFC 1044 IP on Network Systems HYPERchannel February 1988 APPENDIX B. NETWORK SYSTEMS HYPERCHANNEL PROTOCOLS The protocols implemented by NSC within its own boxes are designed for the needs of the different technologies. A compact summation of these protocols is: HYPERchannel B HYPERchannel A DATApipe 10 Mbits/second 50-200 Mbits/second 275 Mbits/second +----------------------+----------------------+---------------------+ | | | HYPERchannel network message | | connectionless datagram protocol | | | +----------------------+----------------------+---------------------+ | "HYPERchannel | | | | compatibility mode" | HYPERchannel A | DATApipe | | Virtual circuit | reservation and | acknowledgment | | estab. & control | flow control | & flow control | +----------------------+ protocol | protocol | | | | | | Virtual Circuits | | | | Flow Control | | | +----------------------+----------------------+---------------------+ | CSMA / VT | CSMA / CA | | | frame (datagram) | frame (datagram) | TDMA packet delivery| | delivery and | delivery and | | | acknowledgment | acknowledgment | | +----------------------+----------------------+---------------------+ | | | Fiber optics | | 75 ohm coax | 1-4 75 ohm coax | (various cable sizes| | cable | cables | and xmission modes)| +----------------------+----------------------+---------------------+ Without getting into great detail on these internal protocols, a few points are particularly interesting to system designers: o All three technologies supply the same interface to the host computer or network coprocessor, a service to send and receive network messages that are datagrams from the host's vantage in that each contains sufficient information to deliver the message in and of itself. Since this datagram and its header fields are of paramount interest to the host implementor, it is discussed in detail below. o All technologies use acknowledgments at a very low level to determine if packets have been successfully delivered. In addition to permitting a highly tuned contention mechanism for the coax medium, it also permits HYPERchannel A to balance the Hardwick & Lekashman [Page 42] RFC 1044 IP on Network Systems HYPERchannel February 1988 load over several coax cables -- a feat that has proven very difficult on, for example, Ethernet. o All boxes go to some lengths to assure that resources exist in the receiving box before actual transmission takes place. HYPERchannel B uses a virtual circuit that endures for several seconds of inactivity after one host first attempts to send a message to the other. Traffic over this "working virtual circuit" is flow controlled from source to destination and buffer resources are reserved for the path. HYPERchannel A exchanges frames at very high rates to determine that the receiver is ready to receive data and to control its flow as data moves through the network. DATApipe propagation time is relatively long compared to the time needed to send an internal packet of 2K-4K bytes. As a result, DATApipe controllers use a streamlined TP4-like transport protocol to assure delivery of frames between DATApipe boxes. REFERENCES [1] HYPERchannel is a trademark of Network Systems Corporation. [2] Plummer, D., "An Ethernet Address Resolution Protocol", RFC-826, Symbolics, September 1982. [3] DATApipe is a registered trademark of Network Systems Corporation. Hardwick & Lekashman [Page 43]