[comp.protocols.tcp-ip] question about FTP data channels

karn@FLASH.BELLCORE.COM.UUCP (05/07/87)

Question: what assumptions may an FTP client make about the address and
port (i.e., socket) that will be used when the server opens a data connection?

When my implementation sends a RETRieve command, it posts a listen for
the data connection. Rather than accepting anyone who connects, it
listens specifically for a SYN carrying the IP address of the server,
and TCP port 20. This works fine except in the case of a multi-homed FTP
server. If I have established my control connection to the "far side"
IP address, many such hosts will use the IP address associated with the
"nearer" interface when initiating the data channel, and my TCP will
refuse it.

I guess I'm answering my own question here, namely that I have to be
prepared to accept any IP address in the incoming connection, since I have
no way of knowing if the server will use an address different than the
one I used on the control connection.  Comments?

Phil

PADLIPSKY@A.ISI.EDU (Michael Padlipsky) (05/07/87)

Phil--

You haven't answered your own question if you believe, as I do,
that it's a bug for a Host to use different Internet Addresses
during the same "conversation".

cheers, map
-------

CERF@A.ISI.EDU (05/09/87)

Phil,

don't you have to accommodate the case of third party transfers,
so that the control address is distinct from sender and receiver
of the file transfer? If that's so, then you can't very well bind
to the source address of the control process.

Vint