一、FTP概述
FTP为File Transfer Protocol的缩写,即文件传输协议,是TCP/IP 协议族中的协议之一。FTP是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议。RFC 959定义了FTP协议规范。
TFTP(Trivial File Transfer Protocol)即简单文件传送协议,最初打算用于引导无盘系统(通常是工作站或X终端)。和将在第27章介绍的使用TCP的文件传送协议(FTP)不同,为了保持简单和短小,TFTP将使用UDP。TFTP的代码(和它所需要的UDP、IP和设备驱动程序)都能适合只读存储器。
二、FTP工作模式
FTP的工作模式分为主动模式和被动模式
主动模式
1.由客户端向 FTP服务器端发起TCP三次握手(这里建立连接的是FTP服务器的21号端口),建立成功之后,客户端要进行用户登录认证;
2.主动模式就意味这客户端要自己开放一个随机的端口,并将自己的端口号通过FTP PORT命令告诉服务器。
3.接下里就是服务器通过自己的20号端口向客户端发起TCP连接请求,建立连接之后就可以开始文件传输了
总结:主动模式中要建立两次TCP连接,第一次是客户端向服务器的21号端口,第二次是服务器的20号端口向客户端,主动模式是客户端自己随机生成一个端口用来进行文件传输。
被动模式
1.由客户端向 FTP服务器端发起TCP三次握手(这里建立连接的是FTP服务器的21号端口),建立成功之后,客户端要进行用户登录认证;
2.由客户端向服务器端发送PASV命令,告诉服务器是被动模式。
3.被动模式则是由服务器端随机开放一个端口,通过Enter PASV命令告诉客户端自己开放的随机端口;
4.客户端收到后后,向服务器端的21端口发送TCP连接,连接成功后开始文件传输。
总结:被动模式中的服务器端只开放了21号端口,随机端口则是由服务器端来生成的。
三、TFTP
FTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型;最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。
FTP协议相较于Tftp协议 ---- 1,需要进行认证 2,拥有一套完整的命令集
!