FTP transfer needs two connections - One for sending command(called as control channel) and another for transferring data file (called as data channel) Based on who initiate these connections, there are two kinds of FTP communication. This document explains it.
In passive mode, the FTP client initiates the connection that the server uses to send data back to the client. (Passive mode is shown in Figure 12-2.) Passive mode is desirable, because it simplifies the task of building a firewall: the firewall simply allows internal connections to pass through to the outside world, but it does not need to allow outside connections to come back in.
ftp -p <ip-address> -> -p enable passive mode
Active mode is the default. In active mode, a client requesting a file provides the server with an IP address and a port number of where that file should be sent. Normally, the IP address and port correspond to a socket on which the client is listening, but this need not be the case. The server then opens a TCP connection to the requested host and port and sends the file, as illustrated in below figure.
You should always try to use passive mode, and only use active mode if a legacy deployment absolutely requires it. Fortunately, most modern clients and servers already support passive mode and use it by default when transferring files.
http://etutorials.org/Linux+systems/unix+internet+security/Part+III+Network+and+Internet+Security/Chapter+12.+Securing+TCP+and+UDP+Services/12.3+Primary+Unix+Network+Services/
http://www.serv-u.com/kb/1138/active-and-passive-ftp-transfers-defined
http://linux.about.com/od/commands/l/blcmdl1_ftp.htm
http://stackoverflow.com/questions/18643542/how-to-use-passive-ftp-mode-in-windows-command-prompt