rfc1986.txt
来自「著名的RFC文档,其中有一些文档是已经翻译成中文的的.」· 文本 代码 · 共 1,180 行 · 第 1/4 页
TXT
1,180 行
Table 2, "Four Layer Protocol Model," shows the protocol stack for FTP, TFTP and ETFTP. Table 2: Four Layer Protocol Model +---------------------------------------------------------------+ | PROTOCOL STACK | +---------------+---------------+---------------+---------------+ |APPLICATION |FTP |TFTP |ETFTP/NETBLT | +---------------+---------------+---------------+---------------+ |TRANSPORT |TCP |UDP |UDP | +---------------+---------------+---------------+---------------+ |NETWORK |IP | +---------------+---------------+---------------+---------------+ |LINK |Ethernet, SLIP, AX.25 | +---------------+---------------+---------------+---------------+ The second change is a carryover from TFTP, which allows files to be transferred in netascii or binary modes. A new T bit flag is assigned to the reserved field of the OPEN message type. The third change is to re-negotiate the DATA packet size. This change affects the OPEN, NULL-ACK, and CONTROL_OK message types. A new R bit is assigned to the reserved field of the OPEN message type. The fourth change is the addition of two new fields to the OPEN message type. The one field is a two byte integer for radio delay in seconds, and the next field is two bytes of padding. The ETFTP data encapsulation is shown in Table 3, "ETFTP Data Encapsulation,". The Ethernet, SLIP, and AX.25 headers are mutually exclusive. They are stripped off and added by the appropriate hardware layer.Polites, Wollman & Woo Experimental [Page 6]RFC 1986 ETFTP August 1996 Table 3: ETFTP Data Encapsulation +------------+------------+------------+------------+-----------+ |Ethernet(14)| | |ETFTP/ | | |SLIP(2) |IP(20) |UDP(8) |NETBLT(24) |DATA(1448) | |AX.25(20) | | | | | +------------+------------+------------+------------+-----------+2.1 MESSAGE TYPES AND FORMATS Here are the ETFTP/NETBLT message types and formats. MESSAGES VALUES OPEN 0 Client request to open a new connection RESPONSE 1 Server positive acknowledgment for OPEN KEEPALIVE 2 Reset the timer QUIT 3 Sender normal Close request QUITACK 4 Receiver acknowledgment of QUIT ABORT 5 Abnormal close DATA 6 Sender packet containing data LDATA 7 Sender last data block of a buffer NULL-ACK 8 Sender confirmation of CONTROL_OK changes CONTROL 9 Receiver request to GO 0 Start transmit of next buffer OK 1 Acknowledge complete buffer RESEND 2 Retransmit request REFUSED 10 Server negative acknowledgment of OPEN DONE 11 Receiver acknowledgment of QUIT. Packets are "longword-aligned", at four byte word boundaries. Variable length strings are NULL terminated, and padded to the four byte boundary. Fields are listed in network byte order. All the message types share a common 12 byte header. The common fields are: Checksum IP compliant checksum Version Current version ID Type NETBLT message type Length Total byte length of packet Local Port My port ID Foreign Port Remote port ID Padding Pad as necessary to 4 byte boundary The OPEN and RESPONSE messages are similar and shown in Table 4, "OPEN and RESPONSE Message Types,". The client string field is used to carry the filename to be transferred.Polites, Wollman & Woo Experimental [Page 7]RFC 1986 ETFTP August 1996 Table 4: OPEN and RESPONSE Message Types 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +---------------+---------------+---------------+---------------+ |Checksum |Version |Type | +---------------+---------------+---------------+---------------+ |Length |Local Port | +---------------+---------------+---------------+---------------+ |Foreign Port |Longword Alignment Padding | +---------------+---------------+---------------+---------------+ |Connection ID | +---------------+---------------+---------------+---------------+ |Buffer size | +---------------+---------------+---------------+---------------+ |Transfer size | +---------------+---------------+---------------+---------------+ |DATA Packet size |Burstsize | +---------------+---------------+---------------+---------------+ |Burstrate |Death Timer Value | +---------------+---------------+---------------+---------------+ |Reserved(MBZ) |R|T|C|M|Maximum # Outstanding Buffers | +---------------+---------------+---------------+---------------+ |*Radio Delay |*Padding | +---------------+---------------+---------------+---------------+ |Client String . . . |Longword Alignment Padding | +---------------+---------------+---------------+---------------+ Connection ID The unique connection number Buffer size Bytes per buffer Transfer size The length of the file in bytes DATA Packet size Bytes per ETFTP block Burstsize Concatenated packets per burst Burstrate Milliseconds per burst Death Timer Seconds before closing idle links Reserved M bit is mode: 0=read/put, 1=write/get C bit is checksum: 0=header, 1=all *T bit is transfer: 0=netascii, 1=binary *R bit is re-negotiate: 0=off, 1=on Max # Out Buffs Maximum allowed un-acknowledged buffers Radio Delay *Seconds of delay from send to receive Padding *Unused Client String Filename. The KEEPALIVE, QUITACK, and DONE messages are identical to the common header, except for the message type values. See Table 5, "KEEPALIVE, QUITACK, and DONE Message Types,".Polites, Wollman & Woo Experimental [Page 8]RFC 1986 ETFTP August 1996 Table 5: KEEPALIVE, QUITACK, and DONE Message Types 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +---------------+---------------+---------------+---------------+ |Checksum |Version |Type | +---------------+---------------+---------------+---------------+ |Length |Local Port | +---------------+---------------+---------------+---------------+ |Foreign Port |Longword Alignment Padding | +---------------+---------------+---------------+---------------+ The QUIT, ABORT, and REFUSED messages allow a string field to carry the reason for the message. See Table 6, "QUIT, ABORT, and REFUSED Message Types,". Table 6: QUIT, ABORT, and REFUSED Message Types 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +---------------+---------------+---------------+---------------+ |Checksum |Version |Type | +---------------+---------------+---------------+---------------+ |Length |Local Port | +---------------+---------------+---------------+---------------+ |Foreign Port |Longword Alignment Padding | +---------------+---------------+---------------+---------------+ |Reason for QUIT/ABORT/REFUSED . . . | +---------------+---------------+---------------+---------------+ |. . . |Longword Alignment Padding | +---------------+---------------+---------------+---------------+ The DATA and LDATA messages make up the bulk of the messages transferred. The last packet of each buffer is flagged as an LDATA message. Each and every packet of the last buffer has the reserved L bit set. The highest consecutive sequence number is used for the acknowledgment of CONTROL messages. It should contain the ID number of the current CONTROL message being processed. Table 7, "DATA and LDATA Message Types,", shows the DATA and LDATA formats.Polites, Wollman & Woo Experimental [Page 9]RFC 1986 ETFTP August 1996 Table 7: DATA and LDATA Message Types 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +---------------+---------------+---------------+---------------+ |Checksum |Version |Type | +---------------+---------------+---------------+---------------+ |Length |Local Port | +---------------+---------------+---------------+---------------+ |Foreign Port |Longword Alignment Padding | +---------------+---------------+---------------+---------------+ |Buffer Number | +---------------+---------------+---------------+---------------+ |High Consecutive Seq Num Rcvd |Packet Number | +---------------+---------------+---------------+---------------+ |Data Area Checksum Value |Reserved (MBZ) |L| +---------------+---------------+---------------+---------------+ Buffer Number The first buffer number starts at 0 Hi Con Seq Num The acknowledgment for CONTROL messages Packet Number The first packet number starts at 0 Data Checksum Checksum for data area only Reserved L: the last buffer bit: 0=false, 1=true The NULL-ACK message type is sent as a response to a CONTROL_OK message that modifies the current packet size, burstsize, or burstrate. In acknowledging the CONTROL_OK message, the sender is confirming the change request to the new packet size, burstsize, or burstrate. If no modifications are requested, a NULL-ACK message is unnecessary. See Table 8, "NULL-ACK Message Type," for further details. Table 8: NULL-ACK Message Type 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +---------------+---------------+---------------+---------------+ |Checksum |Version |Type | +---------------+---------------+---------------+---------------+ |Length |Local Port | +---------------+---------------+---------------+---------------+ |Foreign Port |Longword Alignment Padding | +---------------+---------------+---------------+---------------+ |High Consecutive Seq Num Rcvd |New Burstsize | +---------------+---------------+---------------+---------------+ |New Burstrate |*New DATA Packet size | +---------------+---------------+---------------+---------------+Polites, Wollman & Woo Experimental [Page 10]RFC 1986 ETFTP August 1996 The CONTROL messages have three subtypes: GO, OK, and RESEND as shown in Tables 9-12. The CONTROL message common header may be followed by any number of longword aligned subtype messages. Table 9: CONTROL Message Common Header 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +---------------+---------------+---------------+---------------+ |Checksum |Version |Type | +---------------+---------------+---------------+---------------+ |Length |Local Port | +---------------+---------------+---------------+---------------+ |Foreign Port |Longword Alignment Padding | +---------------+---------------+---------------+---------------+ Table 10: CONTROL_GO Message Subtype 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +---------------+---------------+---------------+---------------+ |Subtype |Padding |Sequence Number | +---------------+---------------+---------------+---------------+ |Buffer Number |
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?