1、FTP
文件传送协议FPT(File Transfer Protocol)是互联网上使用的最广泛的文件传输协议。FTP提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限(如访问文件的用户必须经过授权,如输入有效的用户名或密码)。FTP屏蔽了各种计算机系统的细节,因而适合于在复杂的网络中任意计算机之间传送文件。
2、FTP的基本工作原理
网络环境中的一项基本应用就是将文件从一台计算机中复制到另一台可能相距很远的计算机中。初看起来,在两台主机之间传送文件很简单的事情。其实这往往非常困难。原因是众多的计算机厂商研制出的文件系统多达数百种,且差别很大。经常遇到的问题是:
计算机存储数据的格式不同
文件的目录结构和文件命名的规定不同
对于相同的文件存储功能,操作系统使用的命令不同
访问控制方法不同
文件传输协议FTP只是提供文件传输的一些基本的服务,它使用TCP可靠的传输服务。FTP主要的功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP使用客户端服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接收请求;另外有若干个从属进程,负责处理单个请求。
主进程的工作步骤:
打开熟知端口号(端口号为21),使客户进程能够连接上。
等待客户进程发出连接请求。
启动从属进程处理客户进程发来的请求。
回到等待状态继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发的。
当客户进程想服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口号 21,同时还要告诉服务器自己的端口号,用于建立数据传送连接。接着服务器进程用自己传送数据的熟知端口号 20 与客户进程所提供的的端口号建立数据传送连接。由于FTP使用了两个不同的端口号,所以数据连接与控制不会发送混乱。
FTP并非对所有的数据传输都是最佳的。例如,计算机 A 上运行的应用程序要修改远地计算机 B 的一个很大的文件。若使用FTP,则应先将此文件从计算机 B 传送到计算机 A ,然后进行修改,再用FTP将此文件传送到计算机 B ,来回传送这样的大文件很花时间。实际上这种传送是不必要的,因为计算机 A 并没有使用该文件的内容。
2.1、FTP主动模式
主动模式是ftp默认的模式,也称为PORT模式。
在主动模式下,客户端会开启N和N+1两个端口,N为客户端的命令端口,N+1为客户端的数据端口
第一步:客户端使用端口N连接FTP服务器命令端口21建立控制连接,并告诉服务器自己的数据端口N+1
第二部:在控制连接建立成功后,服务器会使用数据端口20,主动连接客户端的N+1端口以建立数据连接。这就是ftp主动模式连接过程
因为服务器数据传输主动连接客户端因此称为主模式
2.1、FTP被动模式
被动模式也称为passive模式
第一步:客户端的命令端口N主动连接服务器命令端口21,并发出PASV命令,告诉服务器被动模式,控制连接建立成功后,服务器开启一个数据端口P,通过PORT命令将P端口告诉客户端。
第二步:客户端的数据端口N+1去连接服务器的数据端口,建立数据连接。
以为数据线是客户端主动发起的服务器被动的等待连接,所以被称为被动模式。
3、TFTP
TCP/IP协议族中还有一个简单文件传输协议TFTP(Trivial File Transfer Protocol),它是一个很小且易于实现的文件传输协议。TFTP虽然也是用客户端服务器方式,但它使用 UDP 数据报,因此TFTP需要有自己的差错改正的措施。TFTP 只支持文件传输而不支持交互。TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
TFTP 的主要优点有两个。第一,TFTP 可用于UDP 环境。例如,当需要将程序或文件同时向许多机器下载时就往往需要使用TFTP 。第二,TFTP 代码所占内存较小。这对较小的计算机或某些特殊用途的设备是很重要的。这些设备不需要硬盘, 只需要固化了 TFTP、UDP 和 IP的小容量只读存储器即可。