Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 10 FTP & TFTP CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger and Michael mgunes.

Similar presentations


Presentation on theme: "Lecture 10 FTP & TFTP CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger and Michael mgunes."— Presentation transcript:

1 Lecture 10 FTP & TFTP CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger and Michael mgunes

2 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 FTP 2

3 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 FTP 3

4 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 4

5 5 The FTP Model Server PI FileSystem User Interface User PI User User DTP Server DTP FileSystem Data Control PI: Protocol Interpreter DTP: Data Transfer Protocol PI: Protocol Interpreter DTP: Data Transfer Protocol

6 FTP 6 Control and Data Connections Control functions (commands) and reply codes are transferred over the control connection. All data transfer takes place over the data connection. The control connection must be “up” while data transfer takes place.

7 FTP 7 Control Connection The control connection is the “well known” service. The control connection uses the TELNET protocol. Commands and replies are all line oriented text (default is ASCII).

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

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

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

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

12 FTP Connections FTP 12

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

14 FTP 14 Access Control Commands USER specify user PASS specify password CWD change directory CDUPchange directory to parent QUITlogout

15 FTP 15 Transfer Parameter Commands PORT publish local data port PASVserver should listen TYPEestablish data representation MODEestablish transfer mode STRUestablish file structure

16 FTP 16 Data Transfer Modes STREAM: file is transmitted as a stream of bytes. BLOCK: file is transmitted as a series of blocks preceded by headers containing count and descriptor code (EOF, EOR, restart marker). COMPRESSED: uses a simple compression scheme - compressed blocks are transmitted.

17 FTP 17 Service Commands RETRretrieve file STORsend file STOUsend file and save as unique APPEsend file and append ABORabort prev. service command PWDprint working directory LISTtransfer list of files over data link

18 FTP 18 FTP Replies All replies are sent over control connection. Replies are a single line containing  3 digit status code (sent as 3 numeric chars).  text message. The FTP spec. includes support for multiline text replies.

19 FTP 19 FTP Reply Status Code First digit of status code indicates type of reply: ‘1’: Positive Preliminary Reply (got it, but wait). ‘2’: Positive Completion Reply (success). ‘3’: Positive Intermediate Reply (waiting for more information). ‘4’: Transient Negative Completion (error - try again). ‘5’: Permanent Negative Reply (error - can’t do).

20 FTP 20 FTP Reply Status Code 2nd digit indicates function groupings. ‘0’: Syntax (problem with command syntax). ‘1’: Information (reply to help or status cmds). ‘2’: Connections (problem with a connection). ‘3’: Authentication (problem with login). ‘4’: Unspecified. ‘5’: File system (related to file system). 3rd digit indicates specific problem within function group.

21 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 FTP 21

22 FTP 22 RFC 959 The RFC includes lots more information and many details including:  parameters for commands  lists of reply status codes  protocol state diagrams  support for a variety of file structures  sample sessions

23

24 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 24

25 Diskless Workstation Booting 1 The call for help Diskless Workstation Help! I don't know who I am! My Ethernet address is: 4C:23:17:77:A6:03 RARP TFTP 25

26 TFTP 26 The answer from the all-knowing Diskless Workstation I know all! You are to be know as: 128.113.45.211 RARP REPLY RARP Server

27 TFTP 27 Diskless Workstation I need the file named boot-128.113.45.211 TFTP Request (Broadcast) The request for instructions

28 TFTP 28 The dialog Diskless Workstation TFTP File Transfer TFTP Server here is part 1 I got part 1 here is part 2 boot file

29 TFTP Protocol 5 message types:  Read request  Write request  Data  ACK (acknowledgment)  Error  Each is an independent UDP Datagram  Each has a 2 byte opcode (1st 2 bytes)  The structure of the rest of the datagram depends on the opcode. TFTP 29

30 TFTP Message Formats FILENAMEOPCODE00MODE BLOCK#DATA BLOCK# OPCODE BLOCK#ERROR MESSAGE0 2 bytes TFTP 30

31 TFTP transfer modes  octet : for transferring binary files.  no translation done.  netascii : for transferring text files.  all lines end with \r\n (CR,LF).  provides standard format for transferring text files.  both ends responsible for converting to/from netascii format. TFTP 31

32 NetAscii Transfer Mode Unix - end of line marker is just ' \n '  receiving a file  you need to remove ' \r ' before storing data.  sending a file  you need to replace every ' \n ' with " \r\n " before sending TFTP 32

33 TFTP 33 01 filename 0 mode 0 2 byte opcode network byte order null terminated ascii string containing name of file null terminated ascii string containing transfer mode variable length fields! Read Request

34 Write Request 02 filename 0 mode 0 2 byte opcode network byte order null terminated ascii string containing name of file null terminated ascii string containing transfer mode variable length fields! TFTP 34

35 TFTP Data Packet 03 block #data 0 to 512 bytes 2 byte opcode network byte order 2 byte block number network byte order all data packets have 512 bytes except the last one. TFTP 35

36 TFTP Acknowledgment 04 block # 2 byte opcode network byte order 2 byte block number network byte order TFTP 36

37 TFTP Error Packet 05 errcodeerrstring 2 byte opcode network byte order 2 byte error code network byte order null terminated ascii error string 0 TFTP 37

38 TFTP Error Codes (16 bit int) 0 - not defined 1 - File not found 2 - Access violation 3 - Disk full 4 - Illegal TFTP operation 5 - Unknown port 6 - File already exists 7 - No such user TFTP 38

39 TFTP Connection Establishment TFTP 39

40 TFTP Session TFTP 40

41 Lost Data Packets - Original Protocol Specification  Sender uses a timeout with retransmission.  sender could be client or server.  Duplicate data packets must be recognized and ACK retransmitted.  This original protocol suffers from the "sorcerer’s apprentice syndrome". TFTP 41

42 Sorcerer’s Apprentice Syndrome send DATA[n] (time out) retransmit DATA[n] receive ACK[n] send DATA[n+1] receive ACK[n] (dup) send DATA[n+1](dup)... receive DATA[n] send ACK[n] receive DATA[n] (dup) send ACK[n] (dup) receive DATA[n+1] send ACK[n+1] receive DATA[n+1] (dup) send ACK[n+1] (dup) TFTP 42

43 The Fix  Sender should not resend a data packet in response to a duplicate ACK.  If sender receives ACK[n]  don’t send DATA[n+1] if the ACK was a duplicate. TFTP 43

44 Concurrency  TFTP servers use a "well known address" (UDP port number).  How would you implement a concurrent server?  forking (alone) may lead to problems!  Can provide concurrency without forking, but it requires lots of bookkeeping. TFTP 44

45 TFTP Concurrency  According to the protocol, the server may create a new udp port and send the initial response from this new port.  The client should recognize this, and send all subsequent messages to the new port. TFTP 45

46 When is it over?  There is no length of file field sent!  All data messages except the last one contain 512 bytes of data.  message length is 2 + 2 + 512 = 516  The last data message might contain 0 bytes of data! TFTP 46

47 Issues What if more than 65535 chunks are sent?  65536 blocks x 512 bytes/block = 33,554,432 bytes.  The RFC does not address this issue!  Remember that the network can duplicate packets! TFTP 47

48 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 TFTP 48


Download ppt "Lecture 10 FTP & TFTP CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger and Michael mgunes."

Similar presentations


Ads by Google