让你全方位了解tftp协议,学tftp协议不再难

news2025/1/18 20:31:46

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,端口号为69,是一种高效的文件传输方式。

其目标是在UDP之上建立一个类似于FTP的但仅支持文件上传和下载功能的传输协议,所以它是基于FTP协议或其它协议而实现,使用UDP数据包,但是需要自己的差错改正措施。TFTP只支持文件传输而不支持交互,只能简单的进行小型文件的传输,从服务器上获得或者说是下载文件,但它不包含FTP协议中的目录操作和用户权限等内容。

因为TFTP是设计在UDP上层的协议,并且报文是基于网络协议,属于数据包将拥有一个网络包头,报文头,和TFTP头,另外数据包有可能还有其他的头(例如LNI,ARPA头等等)来允许他们通过本地的传输媒体。TFTP不需要制定任何的网络头的值。另外报文头数据源和目标端口字段用于TFTP,长度字段但应tftp包的大小。用于TFTP的传输id(tid)会传到报文层当作端口使用,因此必须是0~65535(16位,2个字节)

TFTP没有庞大的指令集,无法列目录和获得用户身份鉴别,与FTP相似,TFTP传输过程中也有传输模式之分,模式的意思是如何解释数据包里的内容,比如是字符串还是二进制等。目前有三种模式:

(1) netascii型:一种修改的8bit ascii码

(2) octet型:即binary普通的二进制型

(3) mail型:过时,不再使用

另外,通讯双方也可以自定义所需的传输模式。

通信流程为:

1、由客户端发起读文件/写文件的请求,同时可以进行请求连接

2、服务器监听到请求,打开连接,并向客户端发送文件,以每个定长为512字节的块进行发送。每个数据包包含一个数据块,在发送下一个包的时候必须被客户端确认回应一个回应包。

3、当发现某个数据包小于512个字节,说明传输终止。

4、如果出现网络丢包,收件方(客户端)会超时,并且重传最后的接收包(可以是数据包或者回应包),因此这将可以让发送者重新发送丢失包。当之前的包已经接受成功之后,发送者只需要保持一个重传包。

注意:

发送者要做的:发送数据->接受->回应包;

接受者要做的:发送回应包->接受数据。

一旦发送请求(写文件请求或者读文件请求),传输就已经建立,并且收到写的回应包,或读取第一个数据的肯定答复;为了建立连接,连接的每一段都会为自己在传输期间选则传输id(tid)。

TFTP总结:

整体上来说,TFTP的一个重要特点就是简单及易于实现,这也是设计TFTP协议的一个初衷。

优点是:

(1)每个数据包大小固定,这样在内存分配处理的时候比较直接

(2)实现简单

(3)每个数据包都有确认机制,可以实现一定程度的可靠性

缺点:

(1)传输效率不高

(2)滑动窗口机制太简单,并且该窗口仅有一个包的大小

(3)超时处理机制并不完善

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理领取)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Jmeter基础篇】06:HTTP信息头管理器的使用 | 梯度加压性能测试

一、什么是信息头? 其实就是请求头,它会随着我们的HTTP请求一起发送到服务器。 二、使用场景 需要传输cookie,token或其他某些信息,或是需要伪造请求头的时候。 三、实际案例 比如我在使用Apache Jmeter发送请求的时候&#…

【Hack The Box】linux练习-- Haircut

HTB 学习笔记 【Hack The Box】linux练习-- Haircut 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年9月7日🌴 &#x1f36…

Fiddler收费没得用?这款抓包神器 Github star 过万,一个字:香

关于抓包,那是测试人员必备技能之一了,通常我们会通过一些抓包工具来辅助我们测试、定位bug。 我最早接触并使用的就是 fiddler ,不过目前最新版本已经要开始付费了,以前很老的那版我也不爱用了,这可咋整?…

软件测试投了几十份简历为什么没有面试邀约?

最近有不少人问,测试岗位,为啥投了简历却连一个面试机会都没有?如下图: 投3份简历没有回音,有可能是投的公司规模较大,你自身条件不过关(如学历,年龄不符合要求)。 投30…

网络是怎样连接的--DNS服务器查询原理

文章目录3.1 DNS服务器基本工作3.2 寻找相应的DNS服务器并获取ip地址3.3 通过缓存加快DNS服务器的响应3.1 DNS服务器基本工作 DNS服务器的基本工作就是接收来自客户端的查询消息,然后根据消息的内容返回响应。 其中,来自客户端的查询消息包含以下3种信…

Java 面试题 —— 简单工厂、工厂方法、抽象工厂的区别

Java 面试题 —— 简单工厂、工厂方法、抽象工厂的区别 1、简单工厂模式 ​ 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。 ​ 在简单工厂…

常见仿射变换矩阵

旋转(Rotation) def _get_rotation_matrix(rotate_degrees):radian math.radians(rotate_degrees)rotation_matrix np.array([[np.cos(radian), -np.sin(radian), 0.],[np.sin(radian), np.cos(radian), 0.], [0., 0., 1.]],dtypenp.float32)return r…

C# 学习之路(C# 的概念)

C# 学习之路(C# 的概念) - 什么是 C# C# 的发音是 “C sharp”,不是念作 “C 井”(虽然,我在没有接触之前是念“C 井”🤣)。C# 的第一个版本是 2002年发布的 C# 1.0,但到如今&#x…

Redis——》内存淘汰策略

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 Redis——》内存淘汰策略一、内存淘汰策略二、设置缓存大小三、设置过期时间…

前端常见面试题

前端常见面试题大全前端本地存储的方式有哪些?JS 的参数是以什么方式进行传递的?js中的垃圾回收?作用域链?什么是闭包?原型 与 原型链js的继承判断一个数据是否为数组? > 数组的方法数组去重?this指向问题?Promise是什么? 构造函数 异步代码的容器手写promo深拷贝 …

AQS源码解析 2.简介 内部核心结构

AQS源码解析—简介 & 内部核心结构 AQS内部结构 简介 AbstractQueuedSynchronizer:AQS,抽象队列同步器。主要是为了解决线程锁竞争的问题。 AQS 原理图如下,其本质是一个双向链表/队列 多线程抢锁内部数据结构,如下 核…

m基于matlab的站点休眠中继CDMA网络动态节能控制算法仿真与性能分析

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 蜂窝网络不仅需要能够为用户提供高质量的语音服务,而且要能够提供大量的数据传输服务,这就决定了蜂窝网络的发展必须要进一步提高系统容量和高速数据速率覆盖&…

银行人总结5个影响系统性能的因素,怕是很多人都会忽略

性能测试往往在投产上线前开展,无法对整个系统变更进行全面的覆盖测试,因此性能测试需求提出十分关键。 性能测试需求交付过程中,需要对开发团队提出的测试需求进行审查,重点分析交付的测试需求是否充分覆盖了影响系统性能的因素…

Cisco Packet Tracer HSRP技术练习

公司拓扑图 交换机配置参数表,如表2-3-4所示。 表2-3-4 交换机配置参数表 交换机 vlan IP地址 hsrp组 虚拟网关地址 核心1 Vlan 10 172.16.10.252/24 10 172.16.10.254/24 Vlan20 172.16.20.252/24 20 172.16.20.254/24 核心2 Vlan 10 172.16.10.…

基于springboot+vue的高校迎新系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Android App开发实战项目之仿手机QQ动感影集动画播放(附源码和演示视频 可直接使用)

需要图片集和源码请点赞关注收藏后评论区留言~~~ 动感影集就是只要用户添加一张图片,动感影集就能给每张图片渲染不同的动画效果,让原本静止的图片变得活泼起来,辅以各种精致的动画特效,营造一种赏心悦目的感觉。 一、需求描述 …

Cadence Allegro PCB设计88问解析(十八) 之 Allegro中差分规则设置

一个学习信号完整性仿真的layout工程师 我们在进行layout设计时,进行会遇到差分信号的layout,像USB和HDMI等,是需要控制阻抗的,那么我们在走线的时候,也需要从电器规则和物理规则上设置差分要求,今天和大家…

K8S kube-scheduler-master CreateContainerError 问题解决及思路

错误信息1: kubectl get pods 发现pod状态一直在 runing-error-CrashLoopBackOff -循环 解决方法:1,查看日志。 kubectl logs pods web-674477549d-zx8gmkubectl describe pods web-674477549d-zx8gm 没有发现错误,并且服务器资源…

2023年MBA/MPA/MEM联考笔试答题抓分点

距离今年的管理类联考还有一个月左右的时间,在最后这个阶段,除了继续稳固的提升自身应试的基本能力之外,一些细节和技巧也要特别关注和留意,说不定可以在考场上帮自己更好的抓分。今天杭州达立易考教育为大家整理主观题答题的五个…

链表OJ题+牛客题

目录 206.反转链表 876.链表的中间节点 链表中倒数第k个节点 CM11链表分割 OR36 链表的回文 206.反转链表 给你单链表的头节点head,请你反转链表,并返回反转后的链表。 实现如下结果: 思路: 取链表中的节点头插: 代码&#…