13.5 Proxy
It should be noted that the proxy described here does not relate to a proxy we will meet in the field of HTTP. The principle is that a client can mediate file transfer between two FTP servers, for example, between the ftp.ripe.net server and the ftp.pvt.cz server.
First, the client creates the command channel with the ftp.ripe.net server. Using the proxy
command, the client creates other channel (called a ‘proxy-channel’) with the ftp.pvt.cz server. The ftp.pvt.cz server allocates a port where it will wait for the connection for the data channel (the server sends the IP address and the allocated port number to the client by the command channel). The point is the server can think it is waiting for the connection from the client. Nevertheless, the client gives the IP address and the allocated port to the ftp.ripe.net server. Now the ftp.ripe.net server can establish the connection for the data channel with the ftp.pvt.cz server and can input data it wants to send...