tftp协议
<前言>
嵌入式开发是一个交叉开发的模式,需要将宿主机上的文件烧写到目标机上。
方式:
JTAG
USB
串口
网络
<tftp下载>
首先需要将宿主机架成一个TFTP的服务器,其次开发板需要具有从tftp服务下载数据的能力。一般可以用串口调试工具进行调试
<tftp交互过程>
(1)客户机向服务器发送请求包
(2)服务器向客户机发送数据包(每个数据包字节数不能超过512个字节)
(3)客户机向服务器发送应打包,表示已经接受到数据(如果不发送应打包,则服务器则不停的发送数据包,直到获应答包或者超过某个时间)
<tftp数据报文格式>
由上图分析:
TFTP(Trivial File Transfer Protocol文件传输协议)协议属于UDP(User Datagram Protocol用户数据协议)协议
而UDP协议又数据IP(Internet Protocol网络地址协议)协议
操作码:用于区分报文是请求报文还是数据报文
OP = 1 请求报文
OP = 2 上传数据
OP = 3 数据报文
OP = 4 相应报文
OP = 5 出错报文
模式:用于决定下载或上传模式多少位的形式下载或以ASCII码的形式下载
<TFTP客户端的实现>
(1)向目标机(服务器)发送ARP请求包以获取目标机的(服务器)的mac地址
(2)目标机(服务器)发送应答包,客户机从中获取mac地址
(3)由获取目标机的mac地址发送tftp IP请求包
(4)目标机(服务器)发送数包
(5)客户机接受数据包后发送应答包
(6)目标机(服务器)接受应答包后继续发送数据包,如此循环将数据全部发送完成
IP协议格式
UDP 协议格式