On 10/3/25 12:17, D. Hugh Redelmeier via Talk wrote:
FTP was a very early protocol. In retrospect, it wasn't designed very well. Or at least not designed following conventions that arose later.
One problem arose with Network Addres (and port) Translation (NAT should be called NAPT because the port gets mapped too).
I don't completely remember the details, but the negotiation and the transmission use two different ports and the port number for transmission is embedded in a message so NAT system needs to actually 1) understand that this is an FTP negotiation 2) decode some of the messages to find out what port will be used.
There are 2 FTP modes, active and passive. NAT breaks active mode. Not all FTP clients supported passive mode, but browsers used it.