一、TFTP简介:
TFTP是基于UDP应用层的简单的文件传输协议,端口号为69,TFTP协议主要应用于网络引导、配置文件传输等场景。
二、报文介绍:
TFTP有四种数据包格式,分别是读/写请求包、文件数据包、回应包和错误信息包。
- 读/写请求包
操作码,它的值为1表示读操作,2表示写操作;文件名,它是一个以0结尾的字符串;模式,它也是一个以0结尾的字符串,常用的传输模式有"octet"(二进制传输)和"netascii"(ASCII码传输)。
- 文件数据包
操作码,它的值为3;数据块编号,它的值从1开始递增;数据块的内容,它的长度为512字节。
- 回应包
操作码,它的值为4;数据块编号,它的值与对方发送的文件数据包的数据块编号相同;
- 错误信息包
操作码,它的值为5;差错码,它的取值范围为0~7,具体含义如下:
- 0:未定义的错误
- 1:文件不存在
- 2:访问被拒绝
- 3:磁盘已满
- 4:操作超时
- 5:文件传输中断
- 6:未知传输ID
- 7:文件已存在
差错信息表示错误信息的内容,它是一个以0结尾的字符串。
三、CH9120做TFTP客户端访问服务器
将CH9120配置为UDPSERVER模式注意不能设为CLIENT(CLIENT会导致在数据传输阶段收不到服务器的数据报文),端口为69。
获取服务器文件需要通过串口发送命令如下:
00 01 //读操作码
74 65 73 74 2e 63 //test.c
00 //
6e 65 74 61 73 63 69 69 // netascii
00//
TFTP服务器收到该命令后会采用一个随机端口给CH9120发文件数据包
00 03 //数据操作码
00 01 //数据块编号
71 71 71 71 71 71 71 71 71 //数据
71 71 71 71 71 71 71 71 71 //数据
71 73 73 73 73 73 0d 00 0d //数据
0a 64 66 72 74 64 64 64 64 //数据
64 64 64 64 64 64 64 64 64 //数据
64 64 //数据
CH9120收到数据后回复回应包
00 04//回应包
00 01//数据块编号
上传服务器文件需要通过串口发送命令如下:
00 02 //写请求包
74 65 73 74 2e 63 //test.c
00 //
6e 65 74 61 73 63 69 69 // netascii
00//
注意:下次读写报文前需要复位一次CH9120
标签:00,详解,64,71,73,TFTP,CH9120,74 From: https://www.cnblogs.com/llidd/p/18005110