ftp程序设计

来源:互联网 发布:xp如何连接网络打印机 编辑:程序博客网 时间:2024/05/01 23:44

ftp使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。

控制连接使用类似 TELNET 协议在主机间交换命令和消息。

文件传输协议是tcp/ip网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。

ftp客户端可以可以给服务端发出命令来下载文件,上传文件,创建或改变服务器上的目录。

ftp是应用层的协议,它基于传输层,为用户提供服务,负责进行文件的传输。

ftp是一个八位的服务器-客户端协议,能操作任何类型的文件而不需要进一步处理。

ftp有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。

ftp是tcp/ip提供的标准机制,ftp使用tcp的服务。

要实现ftp,需要实现ftp控制帧,即telnet交换信息,包含命令和选项。

ftp控制帧可以使用 ASCII 文本,分命令和消息。消息是对命令的响应。由带有解释文本的应答代码构成。

ftp地址格式

ftp://user:password@ftp服务器ip或域名:ftp命令端口/path/file

ftp程序执行的流程

1、client 连接server

2、client给server发命令

3、server执行client发的命令

4、server返回命令执行结果给client

ftp主要功能,从另一个机器拷贝文件到本地,或从本地拷贝文件到另一个机器。

ftp有两种工作模式:主动和被动。

主动模式要求client和server端同时打开并且监听一个端口以建立连接。在这种情况下,client由于安装了防火墙会产生一些问题。

被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过client安装了防火墙的问题。

主动模式ftp连接步骤

A 、 client打开一个随机的端口(大于1024,假设为x),同时一个FTP进程连接至server的21号命令端口。此时,源端口为随机端口x,在client,远程端口为21,在server。

B、 client开始监听端口x+1,同时向server发送一个端口命令(通过server的21号命令端口),此命令告诉server ,client正在监听的端口,并且已准备好从此端口接收数据。这个端口就是数据端口。

C、 server打开20号端口,并且建立和client数据端口的连接。此时,源端口为20,远程数据端口为x+1。

D、client 通过本地的数据端口x+1建立一个和server的20号端口的连接,然后向server发送一个应答,告诉server它已经建立好了一个连接。


被动模式ftp连接步骤: