This preview shows page 1. Sign up to view the full content.
Unformatted text preview: 24) [12/09/2001 14.47.49] Chapter 27. FTP: File Transfer Protocol Connection Management: Default Data Port
If the client does not send a PORT command to the server, to specify the port number for
the client's end of the data connection, the server uses the same port number for the data
connection that is being used for the control connection. This can cause problems for
clients that use the stream mode (which the Unix FTP clients and server always use), as
we show below.
The Host Requirements RFC recommends that an FTP client using the stream mode send a PORT
command to use a nondefault port number before each use of the data connection. Returning to the previous example (Figure 27.6), what if we asked for another directory
listing a few seconds after the first? The client would ask its kernel to choose another
ephemeral port number (perhaps 1175) and the next data connection would be between
svr4 port 1175 and bsdi port 20. But in Figure 27.7 the server did the active close of
the data connection, and we showed in Section 18.6 that the server won't be able to assign
port 20 to the new data connection, because that local port number was used by an earlier
connection that is still in the 2MSL wait state.
The server gets around this by specifying the SO_REUSEADDR option that we mentioned
in Section 18.6. This lets it assign port 20 to the new connection, and the new connection
will have a different foreign port number (1175) from the one that's in the 2MSL wait
(1174), so everything is OK.
This scenario changes if the client does not send the PORT command, specifying an
ephemeral port number on the client. We can force this to happen by executing the user
command sendport to the FTP client. Unix FTP clients use this command to turn off
sending PORT commands to the server before each use of a data connection.
Figure 27.8 shows the time line only for the data connections for two consecutive LIST
commands. The control connection originates from port 1176 on host svr4, so in the
absence of PORT commands, the client and server use this same port number for the data
connection. (We have remov...
View Full Document
This test prep was uploaded on 04/04/2014 for the course ECE EL5373 taught by Professor Guoyang during the Spring '12 term at NYU Poly.
- Spring '12