FTP vs TFTP | difference between FTP and TFTP

This page on FTP vs TFTP describes difference between FTP and TFTP.It mentions tabular difference between FTP and TFTP protocols including commands. Both are application protocols available for file transfer between two systems connected in a typical IP based network.

FTP stands for File Transfer Protocol. It is used to send/receive file from the remote computer. It is defined in RFC959. FTP establishes two connections between client system and server system, one for control information and the other for data to be transfered. Control information carry commands/response. Authentication need to be done initially by way of validating username and password. Once it is done files can be transferred between two systems. FTP handles both binary and text format files.

When a FTP client requests to connect to the FTP server, a TCP connection is being established to the FTP server's port 21 reserved for FTP. After authentication is done, another TCP connection is being established for the actual data transfer on port number 20.

FTP commands

get,put are popular FTP commands. In order to avoid use of commands there are GUI based FTP applications have been developed, one of the popular application I have come across is FTP commander PRO another and another application is FileZilla.

FTP commands Description
ftp The command is used to start the FTP client program. we can type ftp alone or follow it with IP address or domain name.
user It is used to change user ID and password information of current session. User is prompted to enter username and password when user types ftp command.
help It displays ftp commands available on ftp client.
ls It displays contents of the directory.
ascii It is used to switch ftp client to ascii transfer mode from binary mode
binary It is used to switch ftp client to binary transfer mode from default ascii mode
type This command displays current mode of the file transfer set(either ascii or binary)
status displays current set configurations on the FTP client
get This command is used to retrieve a single file from ftp server to ftp client
mget helps retrieve multiple files from the server
put The command is used to transfer a file from ftp client to the ftp server
mput helps transfer multiple files from client to the server
open It allows to open new session with the server
close It ends the current session running with the ftp server
quit ( bye) Either of these command can be used to close the current session and terminates the client


TFTP stands for Trivial File Transfer Protocol. It is defined in RFC783. It is simpler than FTP, does file transfer between client and server process but does not provide user authentication and other useful features supported by FTP. TFTP uses UDP while FTP uses TCP.

As TFTP is unreliable protocol due to UDP, it uses application layer recovery supported by UDP. This is done by embedding a small header between the UDP header and the data. This header incorporates codes for example read,write and acknowledgement along with numbering scheme which numbers 512 bytes of data. These block numbers provided are used to acknowledge the receipt and re-send the data in case of checksum failures. TFTP sends one block and waits on acknowledgement before sending another block.

FTP(File Transfer Protocol) TFTP(Trivial File Transfer Protocol)
It uses TCP port numbers 20 and 21. It uses UDP port number 69.
It uses TCP as transport layer protocol. It uses UDP as transport layer protocol.
FTP uses robust control commands. TFTP uses simple control commands.
It sends data over a separate TCP connection from control commands. It uses no connections because UDP is connectionless protocol.
It requires more memory and programming effort. It requires less memory and programming effort.
It is specified in RFC959 document. It is specified in RFC783 document.

Articles and tutorials

Basics of OSI and TCPIP layers
Networking tutorial

What is difference between networking protocols and terms

difference between ARP RARP
difference between IMAP4 POP3
difference between SLIP PPP
difference between NAT PAT
difference between TCP UDP

RF and Wireless Terminologies