Unformatted text preview: is that here the
client uses the TFTP well-known port (69) for the entire transfer. Since one of the two partners
is using port 69, tcpdump knows that the packets are TFTP messages, so it is able to
interpret each packet using the TFTP protocol. This is why Figure 16.3 indicates which
packets contain data, which contain acknowledgments, and what the block number is for each
packet. We didn't get this additional information in Figure 15.2 because neither end was using
TFTP's well-known port for the data transfer. Normally the TFTP client cannot use TFTP's
well-known port, since that port is used by the server on a multiuser system. But here the
system is being bootstrapped, so a TFTP server is not provided, allowing the client to use the
port for the duration of the transfer. This also implies that the TFTP server on mercury doesn't
care what the client's port number is-it sends the data to the client's port, whatever that
happens to be.
From Figure 16.3 we see that 1,261,280 bytes are transferred in 9 seconds. This is a rate of
about 140,000 bytes per second. While this is slower than most FTP file transfers across an
Ethernet, it is not that bad for a simple stop-and-wait protocol such as TFTP.
What follows as this X terminal is bootstrapped are additional TFTP transfers of the terminal's
font files, some DNS name server queries, and then the initialization of the X protocol. The
total time in Figure 16.3 was almost 15 seconds, and another 6 seconds is taken for the
remaining steps. This gives a total of 21 seconds to bootstrap the diskless X terminal. 16.4 BOOTP Server Design
The BOOTP client is normally provided in read-only memory on the diskless system. It is
interesting to see how the server is normally implemented.
First, the server reads UDP datagrams from its well-known port (67). Nothing special is
required. This differs from an RARP server (Section 5.4), which we said had to read Ethernet
frames with a type field of "RARP request." The BOOTP protocol also made it easy for the
server to obtain the client's hardware address, b...
View Full Document
- Spring '12