FTP File Transfer Protocol TFTP Trivial FTP CISC

  • Slides: 24
Download presentation
FTP - File Transfer Protocol TFTP – Trivial FTP CISC 856 – Fall 2005

FTP - File Transfer Protocol TFTP – Trivial FTP CISC 856 – Fall 2005 Michael Haggerty University of Delaware (some/most slides courtesy of Umakanth Puppala and Vikram Rajan) haggerty@cis. udel. edu

Overview File Transfer Protocol (RFC 959) • Why FTP? • FTP’s connections • FTP

Overview File Transfer Protocol (RFC 959) • Why FTP? • FTP’s connections • FTP in action • FTP commands/responses Trivial File Transfer Protocol (RFC 1350) • TFTP and TFTP’s message formats • FTP and TFTP compared

Why do we need a FTP Service? Purpose: To Transfer files between two computers

Why do we need a FTP Service? Purpose: To Transfer files between two computers Goals of FTP Service • Promote sharing of files (programs and/or data) • Encourage indirect/implicit use of remote computers • Shield users from variations in file storage among hosts • Transfer data reliably and efficiently

Problems of File Transfer • At first, file transfer may seem simple • Heterogeneous

Problems of File Transfer • At first, file transfer may seem simple • Heterogeneous systems use different: – – – Operating Systems Character Sets Naming Conventions Directory Structures File Structures and Formats • FTP need to address and resolve these problems

FTP’s 2 Connections client User Interface * Non-persistent Persistent command *Server Insulates users from

FTP’s 2 Connections client User Interface * Non-persistent Persistent command *Server Insulates users from “raw” data is listening on port 21 *Server“raw” uses FTP portcommands 20 * Routes and reply connection commands for. FTP connection requests for data server’s connections * connection Receives replies server User Protocol Interpreter User Data Transfer Function Control Connection Data Connection 21 Server Protocol Interpreter Server Data Transfer 20 Function

FTP’s 2 Connections – Establishment ftp> open strauss. udel. edu client User Interface User

FTP’s 2 Connections – Establishment ftp> open strauss. udel. edu client User Interface User Protocol Interpreter User Data Transfer Function Connected to strauss. udel. edu 220 strauss FTP server ready. 530 Please login with USER and PASS 331 Password req for haggerty. Password: 230 User haggerty logged in. ftp> USER PASS haggerty mypass Control Connection Data Connection server Server Protocol Interpreter Server Data Transfer Function

FTP’s 2 Connections Data Transfer client ls client. txt -rw-r--r-- haggerty client. txt User

FTP’s 2 Connections Data Transfer client ls client. txt -rw-r--r-- haggerty client. txt User Interface 226 Data Connection PORT 200 Closing LIST Port 192, 168, 100, 173, 19, 137 client. txt Command Sucessful 150 Data Connection will be open shortly server User Protocol Interpreter Control Connection Server Protocol Interpreter Passive open on Port 5001 User Data Transfer Function Data Connection Server Data Transfer Function Establish Data Connection

FTP’s 2 Connections – Connection Closing client User Interface bye 221 Service Closing QUIT

FTP’s 2 Connections – Connection Closing client User Interface bye 221 Service Closing QUIT server User Protocol Interpreter User Data Transfer Function Control Connection Data Connection Server Protocol Interpreter Server Data Transfer Function

FTP Connections

FTP Connections

FTP Connection Server Client ftp> open server SYN|ACK 220 Service Ready ACK ftp> USER

FTP Connection Server Client ftp> open server SYN|ACK 220 Service Ready ACK ftp> USER haggerty ACK 331 User OK, password? ftp> PASS mypass ACK ACK 230 User login OK

FTP Data Transfer Server Client PORT 192, 168, 0, 173, 19, 137 ACK NLST

FTP Data Transfer Server Client PORT 192, 168, 0, 173, 19, 137 ACK NLST client. txt 200 Command Successful ACK SYN-A CK ACK NAME LIST 150 Data Connection will be open shortly FIN Control connection Data Connection FIN-ACK ACK 226 Closing Data Connection

FTP Client Commands (issued by user interface) Command Description get filename mget filename* put

FTP Client Commands (issued by user interface) Command Description get filename mget filename* put filename Retrieve file from server mput filename* open server bye / close / exit ls / dir lcd cd rhelp / remotehelp Copy multiple local files to server* Retrieve multiple files from server* Copy local file to server Begin login to server Logoff server List files in current remote dir on server Change local directory Change remote directory Lists commands the server accepts * Sent to server as multiple command by User Protocol Interpreter

A-PDU FTP Commands Command Description LIST [filelist ] USER username PASS password List files

A-PDU FTP Commands Command Description LIST [filelist ] USER username PASS password List files or directories (ls / dir) PORT h 1, h 2, h 3, h 4, p 1, p 2 Client IP and port number RETR filename STOR filename TYPE (ascii, image) Retrieve (get) filename Send username to server Password on server Store (put) filename Do nothing (check if server is alive)

Example FTP Responses • 120 Service will be ready shortly • 200 Command OK

Example FTP Responses • 120 Service will be ready shortly • 200 Command OK • 230 User login OK • 331 User name OK; password is needed • 421 Service not available • 530 User not logged in • 552 Requested action aborted; exceeded storage allocation

Summary of FTP connections • FTP has 2 connections - Control (persistent connection) -

Summary of FTP connections • FTP has 2 connections - Control (persistent connection) - Server issues a passive open on well-known 21 - Client uses an ephemeral port to issue active open - Server ultimately closes control connection - Data (ephemeral connection) - Client issues passive open on an ephemeral port - Client sends this port to server via PORT command - Server receives the port number and issues active open using its well-known 20 to the received ephemeral port

Data Connection continued • This does not always work…why? • Instead, use PASV command

Data Connection continued • This does not always work…why? • Instead, use PASV command – Client sends PASV command to server – Server chooses ephemeral port: passive open – Server responds with IP, Port in reply (227) – Client issues active open to server’s port • Ultimately, the data sender closes connection

Trivial FTP (TFTP) • Used only to read and write files from/to a remote

Trivial FTP (TFTP) • Used only to read and write files from/to a remote server – Cannot list directories • Useful for bootstrapping diskless systems – Workstations – X terminals • Simple and small: – – – 5 message formats Runs on UDP Designed to fit in ROM Uses a “stop and wait” protocol NO BUILT IN SECURITY FEATURES (login)

TFTP Message Formats

TFTP Message Formats

TFTP Connection Establishment

TFTP Connection Establishment

Slide courtesy of Mc. Graw. Hill Example TFTP Session

Slide courtesy of Mc. Graw. Hill Example TFTP Session

FTP vs. TFTP • FTP provides (minimal) security through login procedure • TFTP has

FTP vs. TFTP • FTP provides (minimal) security through login procedure • TFTP has NO login procedure • FTP Provides a reliable service through its use of TCP • TFTP must handle its own retransmissions since it uses UDP • FTP uses two connections • TFTP uses one connection (stop and wait) • FTP provides many commands • TFTP can only read and write files Slide from William Boyer boyer@cis. udel. edu

Installations

Installations

Koneksi Lewat Windows

Koneksi Lewat Windows

Permitting Anonimous FTP • Edit file konfigurasi FTP # /etc/proftpd. conf • Restart FTP

Permitting Anonimous FTP • Edit file konfigurasi FTP # /etc/proftpd. conf • Restart FTP