FTP is such a horribly dated protocol; it's actually older than TCP!
The NAT issues are well known, but resolved in a standard way. However, the intersection of {Features defined in RFCs} and {Features implemented in FTP Servers} is much smaller than the sizes of either set. Many useful things are implemented outside of the spec, and most of the spec is not implemented in servers.
The NAT issues are well known, but resolved in a standard way. However, the intersection of {Features defined in RFCs} and {Features implemented in FTP Servers} is much smaller than the sizes of either set. Many useful things are implemented outside of the spec, and most of the spec is not implemented in servers.