一、TFTP是什么?
TFTP是一种简单的文件传输协议,它是在UDP协议的基础上实现的。TFTP协议最初是由RFC783定义的,它的主要目的是为了在网络上快速、简单地传输文件。TFTP协议主要应用于网络引导、配置文件传输等场景,它的特点是简单、轻量级、易于实现。
可以使用 TFTP 来加载内核 zImage、设备树和其他较小的文件到开发板 DDR 上,从而实现网络挂载。
TFTP协议定义了四种数据包格式,分别是读/写请求包、文件数据包、回应包和错误信息包。
二、主要特点
- TFTP协议使用UDP协议进行数据传输,因此它的数据传输效率相对较低,但是它的实现非常简单。
- TFTP协议的数据传输是基于数据块的,每个数据块的大小为512字节。
- TFTP协议支持读、写两种操作,读操作用于从服务器上下载文件,写操作用于向服务器上传文件。
- TFTP协议支持错误处理,当出现错误时,TFTP协议会向对方发送错误信息。
三、工作流程
- 客户端向服务器发送读/写请求包。
- 服务器收到读/写请求包后,根据请求包中的文件名和传输模式,打开相应的文件,并向客户端发送第一个数据块。
- 客户端收到文件数据包后,向服务器发送回应包,确认接收到数据块。
- 服务器收到回应包后,继续向客户端发送下一个数据块,直到文件传输完成。
- 如果在传输过程中出现错误,服务器会向客户端发送错误信息包,传输过程中断。
传输模式:二进制传输模式(默认)和ASCII码传输模式。
总结
嵌入式的一大重点难点就在于通信,TFTP、NFS、SSH、无线模块、物联网(WIFI)、zigbee等都是局域网通信的技术。