FTP

FTP (File Transfer Protocol) is a client-server-based network protocol used to copy files over a TCP/IP-based network. Due to it's two-port nature, FTP is considered an out-of-band protocol instead of an in-band protocol such as HTTP. FTP has supported IPv6 since 1998. Like many pre-SSL transfer protocols, FTP has no encryption. Transfers are sent as plain text and can be easily intercepted.

Technical Information
FTP is specified via RFC 959

A client makes a TCP connection on default port 21, called the control connection. A data connection is then opened at default port 20. The control connection is used for session administration (commands, identification, passwords, authentication, etc.) using a string-based protocol. For instance, client:> RETR "file.txt" will transfer "file.txt" from the server to client. The server will respond with three digit status codes (ex: 200 = "OK").

FTP can be run in active or passive mode. Active mode sends the server the client IP and port number, then the server initiates the TCP connection. In passive mode, the client sends a PASV request to the server, which then returns the server IP and port number which the client uses to open a connection.

 ACSII mode - text using the ASCII character set Image mode - bytestream of data EBCDIC mode - text using the EBCDIC character set Local Mode - allows for transfer in a propriatary format 

 Stream mode - Data sent as a continous stream, handled by TCP Block mode - data is broken into blocks with a header, byte count, and data, then sent via TCP Compressed mode - Data is compressed</li> </ul>