TFTP协议
在此遵循RFC1350标准
目的
tftp是简单的文件传输协议,是基于udp设计的,但也有tcp版本。
功能仅包括:读、写文件,不包含列出目录。
支持2种传输模式:netascii,octet。
netascii,是一种特殊版本的ascii。
octet是原始的8bits 字节。
描述
发起者:发出读写请求。
服务者:授权同意。
随后进行文件传输,传输长度为固定的512字节。
小于512字节视为传输结束的标志。
一方发包,另一方会发确认ack。
如果丢包,接收方会重新传一下他上次发送的包,以告知发送者,你给我的包我没收到,使发送者再传一次。
有一个lock step标志会同步已经收到的包。
如果出错,可以发送error packet来结束连接,发送后就可直接结束,但另一方可能会没收到,这是就有超时机制来结束。
错误类型
3种:
1.不满足请求。
2.收到错误的包。
3.没有资源。
初始化部分
初始化是通过 request请求进行的,发起端口固定为69,opcode为WRQ/RRQ
每发出一个包会有一个ack包回复,ack中会包含序号,第一包的应答包序号为0。
发送错误包,没有应答。

本文详细介绍了TFTP协议的原理,包括其目的、描述、错误类型和操作流程。接着,深入剖析了LWIP库中的TFTP代码,特别是初始化和发送过程。在错误处理方面,讨论了过早终止的情况以及如何通过超时机制来解决可能的问题。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



