tftp下载模型
TFTP通信过程总结
- 服务器在69号端口等待客户端的请求
- 服务器若批准此请求,则使用 临时端口 与客户端进行通信。
- 每个数据包的编号都有变化(从1开始)
- 每个数据包都要得到ACK的确认,如果出现超时,则需要重新发送最后的数据包或ACK包
- 数据长度以512Byte传输的,小于512Byte的数据意味着数据传输结束。
tftp协议分析
思路:(两个关键难点)
1,发送下载请求组请求数据包
依据第1条协议要求以数组的形式将请求数据包组出来(通过偏移指针)
2,ACK应答包的发送
将数据包首地址指针向后偏移4个字节,后面的数据内容写入文件。前4个字节和ACK包的格式是一样的,可以直接通过指针操作数组,将操作码改为04就可以了。
下载程序:
运行结果: