1、TFTP(简单文件传输协议)
TFTP是TCP/IP协议族中一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
基于UDP协议
端口号:69
特点:简单、轻量级、易于实现
传输过程:
1. 初始化连接:
- 服务器使用端口号69被动打开连接。
- 客户主动打开连接,它使用临时端口作为源端口,而端口69作为目的端口,向服务器进程发送RRQ(Read Request,读取请求)报文。
2. 数据传输:
- 服务器主动打开连接,它使用新的临时端口作为源端口,而使用收到的来自客户的临时端口作为目的端口,向TFTP客户进程发送DATA报文。DATA报文包含2B操作码、2B数据块的块号和512B数据。
- 客户收到服务器的报文后,发送4B的ACK(Acknowledgment,确认)报文给TFTP服务器,告诉它之前发送给客户的数据报已经收到。ACK报文包含2B的操作码和2B的数据块号。
- 重复上述的数据发送和确认过程,直到所有请求的数据发送完毕。
3. 传输结束:
- 如果客户进程收到某个DATA报文中数据部分的长度小于512B,说明这是收到的最后一个报文,传输结束。
- 如果待发送的数据的总长度正好是512的整数倍,服务器进程会再次发送一个包含0字节数据的DATA报文(总长度为4B=2B操作码+2B块号+0B数据),以明确指示传输结束。
4. 错误处理:
- 如果数据包在传输过程中丢失,发出方会在超时后重新传输最后一个未被确认的数据包。
- 大部分的错误会导致连接中断,例如不能满足请求、收到的数据包内容错误(而这种错误不能由延时或重发解释)、对需要资源的访问丢失(如硬盘满)等。但TFTP只在源端口不正确的情况下不中断连接,这种情况下,指示错误的包会被发送到源机。
TFTP协议的设计初衷是为了进行小文件传输,因此它不具备通常的FTP的许多功能,如列出目录、进行身份验证等。TFTP基于UDP协议实现,这意味着它不提供像TCP那样的可靠传输服务,但开销较小,适合在局域网中进行小文件的快速传输。
2、FTP(文件传输协议)
FTP是TCP/IP协议族中的协议之一。它包括两个组成部分,一个是FTP服务器,另一个是FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
基于TCP协议
端口号:20/21
FTP有两种工作模式:主动模式和被动模式
主动模式:先是客户端向服务端建立TCP连接(控制连接),告知客户端的开放端口,服务端知道后向客户端建立TCP连接(传输连接)
其报文过程:
被动模式:客户端先向服务端建立TCP请求(控制连接),服务端告知开放端口后,客户端再次建立TCP连接(传输连接)
其报文过程:
协议分为单通道协议和多通道协议,单通道协议即在传输过程中占用一个端口号,多通道协议即在传输过程中占用两个或两个以上的端口号。所以我们将FTP称为多通道协议。