LWIP-TFTP-笔记

本文详细介绍了TFTP协议的原理,包括其目的、描述、错误类型和操作流程。接着,深入剖析了LWIP库中的TFTP代码,特别是初始化和发送过程。在错误处理方面,讨论了过早终止的情况以及如何通过超时机制来解决可能的问题。
摘要由CSDN通过智能技术生成

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。
发送错误包,没有应答。

client server send request (wrq,rrq) ack(blk=0) 错误包代表拒绝请 error packet client
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值