📄 rfc783.4up.ps
字号:
/d_footer_h 0 def/d_output_w 547 def/d_output_h 779 def/cols 1 def%%EndSetup%%Page: (1-4) 1%%BeginPageSetup_S24 818 translate%Page: (1) 1%BeginPageSetup_S% N-up sub-page 1/40 -392 translate0.490859 dup scale/pagenum 1 def/fname (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/rfc783.txt) def/fdir (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/) def/ftail (rfc783.txt) def% User defined strings:/fmodstr (Thu Oct 15 00:00:00 1992) def/pagenumstr (1) def/user_header_p true def/user_header_left_str (RFC783) def/user_header_center_str (RFC.net) def/user_header_right_str (Page 1 of 20) def%%EndPageSetupdo_header5 725 M(Network Working Group K. R. Sollins) s5 712 M(Request for Comments: 783 MIT) s5 699 M( June, 1981) s5 686 M(Updates: IEN 133) s5 647 M( THE TFTP PROTOCOL \(REVISION 2\)) s5 595 M( Summary) s5 569 M( TFTP is a very simple protocol used to transfer files. It is from) s5 543 M(this that its name comes, Trivial File Transfer Protocol or TFTP. Each) s5 517 M(nonterminal packet is acknowledged separately. This document describes) s5 491 M(the protocol and its types of packets. The document also explains the) s5 465 M(reasons behind some of the design decisions.) s_R%Page: (2) 2%BeginPageSetup_S% N-up sub-page 2/4278 -392 translate0.490859 dup scale/pagenum 2 def/fname (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/rfc783.txt) def/fdir (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/) def/ftail (rfc783.txt) def% User defined strings:/fmodstr (Thu Oct 15 00:00:00 1992) def/pagenumstr (2) def/user_header_p true def/user_header_left_str (RFC783) def/user_header_center_str (RFC.net) def/user_header_right_str (Page 2 of 20) def%%EndPageSetupdo_header5 764 M( ) s5 725 M( ACKNOWLEDGEMENTS) s5 686 M( The protocol was originally designed by Noel Chiappa, and was) s5 660 M(redesigned by him, Bob Baldwin and Dave Clark, with comments from Steve) s5 634 M(Szymanski. The current revision of the document includes modifications) s5 608 M(stemming from discussions with and suggestions from Larry Allen, Noel) s5 582 M(Chiappa, Dave Clark, Geoff Cooper, Mike Greenwald, Liza Martin, David) s5 556 M(Reed, Craig Milo Rogers \(of UCS-ISI\), Kathy Yellick, and the author.) s5 530 M(The acknowledgement and retransmission scheme was inspired by TCP, and) s5 504 M(the error mechanism was suggested by PARC's EFTP abort message.) s5 257 M(This research was supported by the Advanced Research Projects Agency of) s5 231 M(the Department of Defense and was monitored by the Office of Naval) s5 205 M(Research under contract number N00014-75-C-0661.) s_R%Page: (3) 3%BeginPageSetup_S% N-up sub-page 3/40 -794 translate0.490859 dup scale/pagenum 3 def/fname (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/rfc783.txt) def/fdir (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/) def/ftail (rfc783.txt) def% User defined strings:/fmodstr (Thu Oct 15 00:00:00 1992) def/pagenumstr (3) def/user_header_p true def/user_header_left_str (RFC783) def/user_header_center_str (RFC.net) def/user_header_right_str (Page 3 of 20) def%%EndPageSetupdo_header5 764 M( 2) s_R%Page: (4) 4%BeginPageSetup_S% N-up sub-page 4/4278 -794 translate0.490859 dup scale/pagenum 4 def/fname (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/rfc783.txt) def/fdir (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/) def/ftail (rfc783.txt) def% User defined strings:/fmodstr (Thu Oct 15 00:00:00 1992) def/pagenumstr (4) def/user_header_p true def/user_header_left_str (RFC783) def/user_header_center_str (RFC.net) def/user_header_right_str (Page 4 of 20) def%%EndPageSetupdo_header5 725 M(1. Purpose) s5 699 M( TFTP is a simple protocol to transfer files, and therefore was named) s5 673 M(the Trivial File Transfer Protocol or TFTP. It has been implemented on) s5 647 M(top of the Internet User Datagram protocol \(UDP or Datagram\) [2] so it) s5 621 M(may be used to move files between machines on different networks) s5 595 M(implementing UDP. \(This should not exlude the possibility of) s5 569 M(implementing TFTP on top of other datagram protocols.\) It is designed) s5 543 M(to be small and easy to implement. Therefore, it lacks most of the) s5 517 M(features of a regular FTP. The only thing it can do is read and write) s5 491 M(files \(or mail\) from/to a remote server. It cannot list directories,) s5 465 M(and currently has no provisions for user authentication. In common with) s5 439 M(other Internet protocols, it passes 8 bit bytes of data.) s5 400 M( 1 2) s5 387 M( Three modes of transfer are currently supported: netascii ; octet ,) s5 361 M(raw 8 bit bytes; mail, netascii characters sent to a user rather than a) s5 335 M(file. Additional modes can be defined by pairs of cooperating hosts.) s5 179 M(_______________) s5 166 M( 1) s5 153 M( This is ascii as defined in "USA Standard Code for Information) s5 140 M(Interchange" [1] with the modifications specified in "Telnet Protocol) s5 127 M(Specification" [3]. Note that it is 8 bit ascii. The term "netascii") s5 114 M(will be used throughout this document to mean this particular version of) s5 101 M(ascii.) s5 88 M( 2) s5 75 M( This replaces the "binary" mode of previous versions of this) s5 23 M( 3) s_R_RS%%Page: (5-8) 2%%BeginPageSetup_S24 818 translate%Page: (5) 5%BeginPageSetup_S% N-up sub-page 1/40 -392 translate0.490859 dup scale/pagenum 5 def/fname (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/rfc783.txt) def/fdir (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/) def/ftail (rfc783.txt) def% User defined strings:/fmodstr (Thu Oct 15 00:00:00 1992) def/pagenumstr (5) def/user_header_p true def/user_header_left_str (RFC783) def/user_header_center_str (RFC.net) def/user_header_right_str (Page 5 of 20) def%%EndPageSetupdo_header5 725 M(2. Overview of the Protocol) s5 699 M( Any transsfer begins with a request to read or write a file, which also) s5 673 M(serves to request a connection. If the server grants the request, the) s5 647 M(connection is opened and the file is sent in fixed length blocks of 512) s5 621 M(bytes. Each data packet contains one block of data, and must be) s5 595 M(acknowledged by an acknowledgment packet before the next packet can be) s5 569 M(sent. A data packet of less than 512 bytes signals termination of a) s5 543 M(transfer. If a packet gets lost in the network, the intended recipient) s5 517 M(will timeout and may retransmit his last packet \(which may be data or an) s5 491 M(acknowledgment\), thus causing the sender of the lost packet to) s5 465 M(retransmit that lost packet. The sender has to keep just one packet on) s5 439 M(hand for retransmission, since the lock step acknowledgment guarantees) s5 413 M(that all older packets have been received. Notice that both machines) s5 387 M(involved in a transfer are considered senders and receivers. One sends) s5 361 M(data and receives acknowledgments, the other sends acknowledgments and) s5 335 M(receives data.) s5 283 M( Most errors cause termination of the connection. An error is) s5 257 M(signalled by sending an error packet. This packet is not acknowledged,) s5 231 M(and not retransmitted \(i.e., a TFTP server or user may terminate after) s5 205 M(sending an error message\), so the other end of the connection may not) s5 179 M(get it. Therefore timeouts are used to detect such a termination when) s5 153 M(the error packet has been lost. Errors are caused by three types of) s5 127 M(events: not being able to satisfy the request \(e.g., file not found,) s5 101 M(access violation, or no such user\), receiving a packet which cannot be) s5 75 M(explained by a delay or duplication in the network \(e.g. an incorrectly) s5 36 M( 4) s_R%Page: (6) 6%BeginPageSetup_S% N-up sub-page 2/4278 -392 translate0.490859 dup scale/pagenum 6 def/fname (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/rfc783.txt) def/fdir (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/) def/ftail (rfc783.txt) def% User defined strings:/fmodstr (Thu Oct 15 00:00:00 1992) def/pagenumstr (6) def/user_header_p true def/user_header_left_str (RFC783) def/user_header_center_str (RFC.net) def/user_header_right_str (Page 6 of 20) def%%EndPageSetupdo_header5 725 M(formed packet\), and losing access to a necessary resource \(e.g., disk) s5 699 M(full or access denied during a transfer\).) s5 647 M( TFTP recognizes only one error condition that does not cause) s5 621 M(termination, the source port of a received packet being incorrect. In) s5 595 M(this case, an error packet is sent to the originating host.) s5 543 M( This protocol is very restrictive, in order to simplify) s5 517 M(implementation. For example, the fixed length blocks make allocation) s5 491 M(straight forward, and the lock step acknowledgement provides flow) s5 465 M(control and eliminates the need to reorder incoming data packets.) s5 413 M(3. Relation to other Protocols) s5 387 M( As mentioned TFTP is designed to be implemented on top of the Datagram) s5 361 M(protocol. Since Datagram is implemented on the Internet protocol,) s5 335 M(packets will have an Internet header, a Datagram header, and a TFTP) s5 309 M(header. Additionally, the packets may have a header \(LNI, ARPA header,) s5 283 M(etc.\) to allow them through the local transport medium. As shown in) s5 257 M(Figure 3-1, the order of the contents of a packet will be: local medium) s5 231 M(header, if used, Internet header, Datagram header, TFTP header, followed) s5 205 M(by the remainder of the TFTP packet. \(This may or may not be data) s5 179 M(depending on the type of packet as specified in the TFTP header.\) TFTP) s5 153 M(does not specify any of the values in the Internet header. On the other) s5 127 M(hand, the source and destination port fields of the Datagram header \(its) s5 101 M(format is given in the appendix\) are used by TFTP and the length field) s5 75 M(reflects the size of the TFTP packet. The transfer identifiers \(TID's\)) s5 36 M( 5) s_R%Page: (7) 7%BeginPageSetup_S% N-up sub-page 3/40 -794 translate0.490859 dup scale/pagenum 7 def/fname (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/rfc783.txt) def/fdir (/usr/local/share/doc/rfc/Mirrors/ftp.isi.edu/in-notes/) def/ftail (rfc783.txt) def% User defined strings:/fmodstr (Thu Oct 15 00:00:00 1992) def/pagenumstr (7) def/user_header_p true def/user_header_left_str (RFC783) def/user_header_center_str (RFC.net) def/user_header_right_str (Page 7 of 20) def%%EndPageSetupdo_header5 725 M(used by TFTP are passed to the Datagram layer to be used as ports;) s5 699 M(therefore they must be between 0 and 65,535. The initialization of) s5 673 M(TID's is discussed in the section on initial connection protocol.) s5 621 M( The TFTP header consists of a 2 byte opcode field which indicates the) s5 595 M(packet's type \(e.g., DATA, ERROR, etc.\) These opcodes and the formats) s5 569 M(of the various types of packets are discussed further in the section on) s5 543 M(TFTP packets.) s5 517 M( Figure 3-1: Order of Headers) s5 452 M( ---------------------------------------------------) s5 439 M( | Local Medium | Internet | Datagram | TFTP |) s5 426 M( ---------------------------------------------------) s5 374 M(4. Initial Connection Protocol) s5 348 M( A transfer is established by sending a request \(WRQ to write onto a) s5 322 M(foreign file system, or RRQ to read from it\), and receiving a positive) s5 296 M(reply, an acknowledgment packet for write, or the first data packet for) s5 270 M(read. In general an acknowledgment packet will contain the block number) s5 244 M(of the data packet being acknowledged. Each data packet has associated) s5 218 M(with it a block number; block numbers are consecutive and begin with) s5 192 M(one. Since the positive response to a write request is an) s5 166 M
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -