简单文件传输协议TFTP分析还原
2024-09-06 09:53:16
—
协议介绍
TFTP有如下特征:
1、UDP承载,请求端口固定为69;
2、没有列出目录内容功能;
3、无验证和加密机制;
4、仅有读取或写入文件功能;
5、支持三种不同的传输模式:"netascii","octet"和"mail",其中第三种已废弃。
TFTP会话流程如下:
1、客户机A送一个读请求(RRQ)或写请求(WRQ)包给服务器B,包含了文件名和传输模式;
2、B向A发一个ACK包应答,同时也通知了A其余送往B包应该发送的端口号;
3、源主机向目的主机送编过号的数据包,除了最后一个都应该包含一个全尺寸的数据块。目的主机用编号的ACK包应答所有的数据包;
4、最终的数据包必须包含少于最大尺寸的数据块以表明这是最后一个包。如果被传输文件正好是尺寸块的整数倍,源主机最后送的数据包就是0字节。
很多软件都内嵌了TFTP功能。
(上图来自网络)
TFTP数据包的前两个字节为
—
协议解析
TFTP按数据包类型进行解析,不同类型格式不同。
读文件和写文件请求格式如下:
一个读文件请求例子如下:
一个写文件请求例子如下:
文件数据格式:
一段文件数据报文例子如下:
回应格式:
一个回应报文如下:
错误信息格式:
对还原TFTP传输的文件内容,关键点是:
1、文件数据与文件请求不在一条链内,它们通过客户机所用的端口建立关联,文件名在文件请求报文内。
2、文件数据需要根据Block值进行拼接,才能构成一个完整的文件。
3、文件数据块的Block值从1开始,由于UDP的不可靠性,需要在内容拼接时根据Block值去除重传内容以及进行排序。
对TFTP协议的介绍就到这里了,在Wireshark官网,有TFTP的pcap供下载学习,如果有疑问,可以联系我共同探讨。
长按进行关注。
最新文章
- webserver[实时查询当天的天气情况]
- DB2常用命令
- ae柱状图
- Java Servlet(六):HttpServlet实现原理(jdk7+tomcat7+eclipse)
- Java设计模式——装饰者模式
- css获取实时样式
- IAP Store Kit Guide(中文)
- eclipse中show whitespace characters显示代码空格,TAB,回车 导致代码乱恶心
- TensorFlow之DNN(一):构建“裸机版”全连接神经网络
- 【我们一起写框架】MVVM的WPF框架(三)—数据控件
- Union 与 Union all 的区别【坑】
- 基本排序算法(Java)
- 基于maven的spring-boot的pom文件详解
- Python基础_列表 list
- 闪电侠第四季/全集The Flash迅雷下载
- PHP 使用PHPExcel删除Excel单元格指定列
- 对于android浏览器的一些看法
- express应用中常用中间件介绍
- python中的logger模块详细讲解
- SpringMVC上传图片总结(2)--- 使用百度webuploader上传组件进行上传图片