Development of FTP Server
Development of FTP Server
Nadiatul
Ramesh
Abd Rahman
Agenda…
Introduction to FTP
Overview
FTP in Detail
Advantages/Limitations
Programming for FTP
Alternatives
Introduction
FTP or File Transfer Protocol is used to
transfer data from one computer to
another over the Internet, or through a
network.
Specifically, FTP is a commonly
used protocol for exchanging files over
any network that supports the TCP/IP
protocol
FTP Server FTP Client
FTP Commands/
Server Replies
Protocol User PI
Interpreter (port 21)
Server
Data Data Connection
File User DTP File
Transfer
System (port 20) System
Process
Active Mode
Passive Mode
Extended Passive Mode
FTP in detail:
- Binary image
- Data is transferred raw (not interpreted)
Control
A
A Data B
B
Alternative Connection Model
Control Control
A
B
B Data C
C
Access Control Commands
Java.net sun.net.ftp
Third party API’s for FTP client
JScape, iNet Factory: com.jscape.inet.ftp.Ftp
IP*Works: ipworks.Ftp
Enterprise Distributed Technologies, Java FTP Client
Library: com.enterprisedt.net.ftp.FTPClient
IBM alphaWorks, FTP Bean Suite:
com.ibm.network.ftp.protocol.FTPProtocol
SourceForge, JFtp: net.sf.jftp.net.FtpConnection
The Jakarta Project, Jakarta Commons/Net:
org.apache.commons.net.ftp.FTPClient
JavaShop JNetBeans: jshop.jnet.FTPClient
Florent Cueto, JavaFTP API: com.cqs.ftp.FTP
Bea Petrovicova, jFTP: cz.dhl.ftp.Ftp
The Globus Project, Java CoG Kit:
org.globus.io.ftp.FTPClient
The comprehensive comparison can be
found at:
http://www.javaworld.com/javaworld/jw-04-
2003/ftp/jw-0404-ftptable.html
Alternatives and Enhancements
FTP over SSH (secure FTP )
FTP over SSH refers to the practice of tunneling
a normal FTP session over an SSH
connection.
FTP over SSL (FTPS )
SSH File Transfer Protocol (SFTP)
This is not related to standard FTP. Here, the
entire conversation (credentials and data) is
always protected by the SSH protocol.
Additional References:
www.wikipedia.com
http://java.sun.com/j2se/1.4.2/docs/api/
http://www.javaworld.com/
http://jakarta.apache.org/commons/net/
http://www.enterprisedt.com/publications/FTP_Overview.html
RFC 959. File Transfer Protocol. J.Postel. J Reynolds. 1985.
http://www.ietf.org/rfc/rfc0959.txt
Thank you!!