📄 rfc1201.txt
字号:
Network Working Group D. ProvanRequest for Comments: 1201 Novell, Inc.Obsoletes: RFC 1051 February 1991 Transmitting IP Traffic over ARCNET NetworksStatus of this Memo This memo defines a protocol for the transmission of IP and ARP packets over the ARCnet Local Area Network. This RFC specifies an IAB standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol. Distribution of this memo is unlimited.1. Introduction This memo specifies a method of encapsulating Internet Protocol (IP) [1] and Address Resolution Protocol (ARP) [2] datagrams for transmission across ARCNET [3] using the "ARCNET Packet Header Definition Standard" [4]. This memo offers a replacement for RFC 1051. RFC 1051 uses an ARCNET framing protocol which limits unfragmented IP packets to 508 octets [5].2. ARCNET Packet Format In 1989, Apple Computers, Novell, ACTINET Systems, Standard Microsystems, and Pure Data Research agreed to use the ARCNET datalink protocol defined in "ARCNET Packet Header Definition Standard" [4]. We'll begin with a brief description of that protocol.2.1. ARCNET Framing ARCNET hardware supports two types of frames: short frames, which are always 256 octets long, and long frames, which are always 512 octets long. All frames begin with a hardware header and end with the client's data preceded by a software header. Software places padding in the middle of the packet between the hardware header and the software header to make the frame the appropriate fixed length. Unbeknown to the software, the hardware removes this padding during transmission. Short frames can hold from 0 to 249 octets of client data. Long frames can hold from 253 to 504 octets of client data. To handle frames with 250, 251, or 252 octets of data, the datalink protocolProvan [Page 1]RFC 1201 IP on ARCNET February 1991 introduces a third frame type: the exception frame. These three frame formats are shown here. Except as noted, each block represents one octet. Short Frame Long Frame Exception Frame +---------------+ +---------------+ +---------------+ | source | | source | | source | +---------------+ +---------------+ +---------------+ | destination | | destination | | destination | +---------------+ +---------------+ +---------------+ | offset | | 0 | | 0 | +---------------+ +---------------+ +---------------+ . unused . | offset | | offset | . (offset - 3 . +---------------+ +---------------+ . octets) . . unused . . unused . +---------------+ . (offset - 4 . . (offset - 4 . | protocol ID | . octets) . . octets) . +---------------+ +---------------+ +---------------+ | split flag | | protocol ID | | protocol ID | +---------------+ +---------------+ +---------------+ | sequence | | split flag | | flag: FF hex | + number + +---------------+ +---------------+ | (2 octets) | | sequence | | padding: 0xFF | +---------------+ + number + +---------------+ . . | (2 octets) | | padding: 0xFF | . client data . +---------------+ +---------------+ . (256 - offset . . . | (protocol ID) | . - 4 octets) . . . +---------------+ . . . . | split flag | +---------------+ . . +---------------+ . . | sequence | . client data . + number + . (512 - offset . | (2 octets) | . - 4 octets) . +---------------+ . . . . . . . client data . . . . (512 - offset . . . . - 8 octets) . . . . . +---------------+ +---------------+ These packet formats are presented as software would see them through ARCNET hardware. [3] refers to this as the "buffer format". The actual format of packets on the wire is a little different: the destination ID is duplicated, the padding betweenProvan [Page 2]RFC 1201 IP on ARCNET February 1991 the offset field and the protocol ID field is not transmitted, and there's some hardware framing information. In addition, the hardware transmits special packets for buffer allocation and reception acknowledgement which are not described here [3].2.2. Datalink Layer Fragmentation ARCNET hardware limits individual frames to 512 octets, which allows 504 octets of client data. This ARCNET datalink protocol allows the datalink layer to break packets into as many as 120 fragments for transmission. This allows ARCNET clients to transmit up to 60,480 octets in each packet. The "split flag" describes datalink layer packet fragments. There are three cases: an unfragmented packet, the first fragment of a fragmented packet, and any other fragment of a fragmented packet. Unfragmented packets always have a split flag of zero. The first fragment of a fragmented packet has a split flag equal to ((T-2)*2)+1, where T is the total number of fragments to expect for the packet. Subsequent fragments of a fragmented packet have a split flag equal to ((N-1)*2), where N is the number of this fragment. For example, the fourth fragment of a packet will always have the split flag value of six ( (4-1)*2 ). The receiving station can identify the last fragment of a packet because the value of its 8-bit split flag will be one greater than the split flag of the first fragment of the packet. A previous version of this ARCNET datalink protocol definition only allowed packets which could be contained in two fragments. In this older standard, the only legal split flags were 0, 1, and 2. Compatibility with this older standard can be maintained by configuring the maximum client data length to 1008 octets. No more that 120 fragments are allowed. The highest legal split flag value is EE hex. (Notice that the split flag value FF hex is used to flag exception packets in what would otherwise be a long packet's split flag field.) All fragments of a single packet carry the same sequence number.2.3. Datalink Layer Reassembly The previous section provides enough information to implementProvan [Page 3]RFC 1201 IP on ARCNET February 1991 datalink reassembly. To avoid buffer allocation problems during reassembly, we recommend allocating enough space for the entire reassembled packet when the first fragment arrives. Since fragments are sent in order, the reassembly procedure can give up on a packet if it receives a fragment out of order. There is one exception, however. It is possible for successfully received fragments to be retransmitted. Reassembly software should ignore repetitious fragments without giving up on the packet. Since fragments will be sent briskly, the reassembly procedure can give up on a partially reassembled packet if no additional fragments for it arrive within a few seconds.2.4. Datalink Layer Retransmission For each unicast ARCNET packet, the hardware indicates to the sender whether or not the receiver acknowledged the packet. To improve reliability, datalink implementations are encouraged to retransmit unacknowledged packets or packet fragments. Several retransmissions may be necessary. Broadcast packets, however, are never acknowledged and, therefore, they should never be retransmitted. Packets which are successfully received may not be successfully
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -