TCP IP Illustrated

Tftp is designed for simplicity of implementation not

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: then sends the first 512 bytes of file with a block number of 1. The server responds with an ACK of block number 1. This type of data transmission is called a stop-and-wait protocol. It is found only in simple protocols such as TFTP. We'll see in Section 20.3 that TCP provides a different form of acknowledgment, which can provide higher throughput. TFTP is designed for simplicity of implementation, not high throughput. The final TFTP message type is the error message, with an opcode of 5. This is what the server responds with if a read request or write request can't be processed. Read and write errors during file transmission also cause this message to be sent, and transmission is then terminated. The error number gives a numeric error code, followed by an ASCII error message that might contain additional, operating system specific information. Since TFTP uses the unreliable UDP, it is up to TFTP to handle lost and duplicated packets. Lost packets are detected with a timeout and retransmission implemented by the sender. (Be aware of a potential problem called the "sorcerer's apprentice syndrome" that can occur if both sides time out and retransmit. Section 12.2 of [Stevens 1990] shows how the problem can occur.) As with most UDP applications, there is no checksum in the TFTP messages, which assumes any corruption of the data will be caught by the UDP checksum (Section 11.3). 15.3 An Example Let's examine TFTP by watching the protocol in action. We'll run the TFTP client on the host bsdi and fetch a text file from the host svr4: start the TFTP client bsdi % tftp svr4 fetch a file from the server tftp> get testl.c Received 962 bytes in 0.3 seconds and terminate tftp> quit how many bytes in thefile we fetched? bsdi % ls -1 testl.c -rw-r-r- 1 rstevens staff 914 Mar 20 11:41 test1.c and how many lines? bsdi % wc -1 testl.c 48 testl.c The first point that catches our eye is that the file contains 914 bytes under Unix, but TFTP transfers 962 bytes. Using the wc...
View Full Document

Ask a homework question - tutors are online