📄 rfc1044.txt
字号:
This section contains information on the technique used to encapsulate IP datagrams on the HYPERchannel network message. It contains three sections to describe three protocol packagings: o The technique used to encapsulate IP datagrams on the basic 16-bit network message. This is a de facto standard that has been in use for several years and is documented here to make it official. o The encapsulation technique for IP datagrams on 32 bit network messages. o The definition of an Address Resolution Protocol on HYPERchannel.Hardwick & Lekashman [Page 17]RFC 1044 IP on Network Systems HYPERchannel February 1988BASIC (16-BIT) MESSAGE ENCAPSULATION Message Proper +------------------------------+-----------------------------+ 0 | Trunks to Try | Message Flags | | TO trunks | FROM trunks |GNA|CRC| |SRC|EXC|BST|A/D| +------------------------------+-----------------------------+ 2 | Access code 0000 | | (no longer supported) | +------------------------------+-----------------------------+ 4 | Physical addr of | Protocol server |Dest Port| | destination adapter | logical address | number | +------------------------------+-----------------------------+ 6 | Physical addr of | Originating | Src Port| | source adapter | server address | number | +------------------------------+-----------------------------+ 8 | IP on HYPERchannel | Offset to start of IP | | type code 0x05 | header from message start | +------------------------------+-----------------------------+ 10 | IP type designator | Offset to start of IP | | 0x34 | header from byte 12 | +------------------------------+-----------------------------+ 12 | Padding (variable length incl. zero bytes) | | | +------------------------------+-----------------------------+ Off | 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 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 could be specified by the transmitting driver's address resolution tables.Hardwick & Lekashman [Page 18]RFC 1044 IP on Network Systems HYPERchannel February 1988MESSAGE FLAGS No use is made of the Flags field (byte 1) other than to appropriately set the Associated Data bit. Burst Mode and the Exception bit should not be used with IP.ACCESS CODE Although some current implementations of IP on HYPERchannel support the access code, no one appears to be using it at the current time. Since this field is currently reserved for the use of 32-bit addresses, no value other than 0000 should be placed in this field.TO ADDRESS The TO field is generally obtained by a local IP driver through a table lookup algorithm where a 16-bit TO address is found that corresponds to the IP address of a local host or gateway. The high order bits of the TO address of course refer to the adapter number the adapter attached to the destination host. 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. Many HYPERchannel TCP/IP drivers in the field today are not "open" in that any network message delivered to that host will be presumed to be an IP datagram regardless of the logical TO field; however any transmitting IP process should be capable of generating the entire 16-bit TO field in order to generate a message capable of reaching a destination IP process. The process of determining which HYPERchannel address will receive an IP datagram based on its IP address is a major topic that is covered in "Address Resolution".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 make of the FROM address.MESSAGE TYPE Network Systems requests that a value of 5 (decimal) 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 5.Hardwick & Lekashman [Page 19]RFC 1044 IP on Network Systems HYPERchannel February 1988 Many current implementations of IP on HYPERchannel place a zero or other values in this field simply because no value was reserved for IP usage. Transmitting versions of IP should always place a 5 in this field; receiving IP's should presume a delivered message to be an IP datagram until proven otherwise regardless of the contents of the Message Type field. Developers should note that it is often convenient to permit reception of the value 0xFF00 in bytes 8 and 9 of the IP datagram. Transmitting a message with this value will cause it to be looped back at the destination adapter and returned to the protocol server designate in the FROM address. This permits the developer have host applications talk to others on the same host for purposes of network interface or other protocol debugging.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.) This field is redundant with the offset field in byte 11, and is present for cosmetic compatibility with 32-bit implementations. On reception, the value in byte 11 should take precedence. As part of the migration to larger HYPERchannel headers, this field will become significant with the 32-bit addressing format, as the length of the header is no longer 10 bytes and byte 11 is used for other purposes.IP TYPE DESIGNATOR Early implementations of IP drivers on HYPERchannel wanted to leave bytes 8 and 9 alone for NSC use and place a "message type" field in later in the message. A value of 0x34 had been selected by earlier developers for reasons that are now of only historical interest. Once again, implementations should generate this value on transmission, but not check it on input, assuming that an IP datagram is present in the message.IP HEADER OFFSET This value is used by a number of commercial implementations of IP on HYPERchannel to align the start of the IP header within the network message. This offset is relative to byte 12 of the network message so that a value of zero indicates that the IP header begins in byte 12. This value should be both correctly generated on transmission, and always respected on input processing.Hardwick & Lekashman [Page 20]RFC 1044 IP on Network Systems HYPERchannel February 1988 The maximum permissible offset in this field is 52 indicating that the IP header begins at the start of the associated data block.IP DATAGRAM CONTENTS Beginning at the offset designated in byte 11, the IP datagram is treated as a contiguous block of data that flows from byte 63 of the message proper into the first byte of associated data, so that the entire message plus data is treated as a single contiguous block. If the IP header is small enough to fit within the entire network message, then only the message proper is transmitted. The length of the message proper sent should always be 64 bytes, even if the IP datagram and HYPERchannel header do not occupy all 64 bytes of the message proper. If the datagram flows over into the associated data, then both message and data are sent. Since a number of machines cannot send a length of data to the HYPERchannel that is an exact number of bytes (due to 16-64 bits on the channel bus,) the length of the associated data received should not be used as a guide to the length of the IP datagram -- this should be extracted from the IP header. A driver should verify, of course, that the associated data received is at least as long as is needed to hold the entire IP datagram.COMPATIBILITY WITH EXISTING IMPLEMENTATIONS The basic format described here is clearly a compromise between several implementations of IP on HYPERchannel. Not all existing implementations are interoperable with the standard described above. Currently there are two known "families" 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 withHardwick & 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.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -