implicit ssl vs explicit ssl

Can someone explain the difference between the two. Thanks

With explicit ssl you connect to the standard ftp port (23). Then the client sends an AUTH TLS or AUTH TLS-C command to switch the session into ssl mode. If the client does not send that command, you get an ordinary ftp session. This switches the control connection into ssl mode. And a PROT P command is used to to run ssl on the data connection. This client is in complete control.

With implicit ssl, you connect to port 990. Any ftp server on that port will automatically be in ssl mode. This is like https running on a different port.

There is also a half-and-half. Connect on port 23 and use AUTH SSL to explicitly switch the control connection into ssl mode. The data connection will implicitly be in ssl mode with no explicit command required.

rfc 2228