This preview shows page 1. Sign up to view the full content.
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
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
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
- Spring '12