一, 安装过程

sudo apt-get install tftpd-hpa 命令下载tftp服务端

udo apt-get install tftp-hpa 命令下载客户端

二,使用中的问题

开始通过tftp 客户端向服务器传送文件升级,发现设备升级不成功,分析为数据异常。

三,问题分析

于是进行了抓包分析

从图上可以看出,传输过程中,tftp client 为数据增加了00操作。即为0d后面多了一个00。

默认传输模式为netascii

tftp> mode

Using netascii mode to transfer files.

tftp>

修改为binary后,可以进学传输

tftp> binary

tftp> mode

Using octet mode to transfer files.

tftp>

模式名称

模式含义

说明

netascii

文本传输模式,按照一个字节8位解析

文本模式

octet

二进制模式,数据无需解析

二进制模式

mail

已过时,不使用

已过时

tftp -m binary 192.168.1.6 -c put RTK0_MAGIC_upgradefile.bin

四,深入源码

windows下tftpd32程序,同样配置为netascii模式,但没有问题,那至到底实现上差异在哪里呢, 必须的深入源码

# apt list tftp

正在列表... 完成

tftp/未知 0.17-22 amd64

tftp/未知 0.17-22 i386

参考源码 Index of /pub/software/network/tftp/

实现:(还是看代码直接且舒服) 原因是将OD(cr)转换为 cr 00 。

RFC参考

https://www.rfc-editor.org/rfc/rfc1350.txt

资料参考

https://oomake.com/question/1831481

A host which receives netascii mode data must translate the data to its own format.

例如,使用EBCDIC作为其本机编码的主机可能会将netascii转换为该编码,但会单独留下“八位字节”数据。 如果您在使用LF进行行结束的Unix(或其他)系统上实现TFTP服务器,则需要为netascii传输添加CR(以及将文件中的实际CR字符转换为CR / NUL)序列。

windows下tftpd32程序, 对于模式没有额外配置,表现为netascii模式,实际均为binary (octet),所以以前没有出过这样的问题

Deepin下tftp客户端传送升级文件失败问题分析相关推荐

  1. 【TFTP客户端--实现下载文件和上传文件】

    TFTP客户端--实现下载文件和上传文件 TFTP协议 文件下载 文件上传 main TFTP协议 TFTP是一个传输文件的简单协议,它其于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其 ...

  2. 【银河麒麟桌面操作系统微信发送文件失败-问题分析及解决方案】

    银河麒麟桌面操作系统微信发送文件失败-问题分析及解决方案 1.问题描述 银河麒麟桌面操作系统微信发送文件失败,提示文件为空文件,检查发现文件并非空文件. 2.问题分析排查 2.1微信版本信息:已是最新 ...

  3. FFMPEG在Windows下使用Movie滤镜读取文件失败问题

    在windows下用ffmpeg执行如下movie滤镜命令:ffmpeg -i c:\\input.mp4 -vf "movie=c:\\logo.png[wm]; [in][wm]over ...

  4. Java客户端上传文件失败(FastDFS)

    1.连接到服务失败(Connection timed out: connect) connect to server 192.168.168.139:22122 fail java.net.Conne ...

  5. 无线群控服务器转让,群控客户端绑定服务器文件

    群控客户端绑定服务器文件 内容精选 换一换 CDM支持周期性自动将新增文件上传到OBS,不需要写代码,也不需要用户频繁手动上传即可使用OBS的海量存储能力进行文件备份.这里以CDM周期性备份FTP的文 ...

  6. 酷派CPB升级文件封包解包

    为什么80%的码农都做不了架构师?>>>    此前入手了部酷派8730L,无奈搜遍整个互联网寻求ROOT的方法以及用了各种ROOT工具均以失败告终.于是决定研究下酷派的CPB升级文 ...

  7. 共享模式_fsopen打开文件失败的解决方案(实现_fsopen支持中文的方法)

    文件打开函数如下: void KeyManager::openKeyFile() { QDateTime dateTime = QDateTime::currentDateTime(); keyPat ...

  8. Motionpro客户端配置l3vpvn隧道失败

    Windows10 下Motionpro客户端配置l3vpvn隧道失败解决方法: 管理员命令提示符下运行:bcdedit.exe /set nointegritychecks on 再重启一下 已经成 ...

  9. 锐捷 linux 网卡信息失败,锐捷校园网linux有线认证图形客户端更新,解决了deepin下无反应问题...

    如果你在深度deepin操作系统下出现无反应的问题,请使用最新版本的锐捷校园网linux有线认证图形客户端,当前已提供rj-aux-linux-x64-v2.4-beta.deb等包下载,除此之外,还 ...

最新文章

  1. LeetCode刷题记录2——217. Contains Duplicate(easy)
  2. MapReduce_wordcount
  3. SpringBoot缓存应用实践
  4. icmp 报文中的进程号
  5. 进阶:秒杀系统是如何设计的?
  6. maven学习(下)利用Profile构建不同环境的部署包
  7. Django项目知识点(二)
  8. 「中间件系列二」redis缓存
  9. 【实战分享】漫谈 gRPC的选型
  10. AWS Lambda事件源映射:使您的触发器混乱无序
  11. 了解机器学习框架CoreML
  12. 面试官:Spring MVC的处理流程是怎样的?
  13. 【HDFS】hdfs与fsck结合使用
  14. DBeaver mysql驱动连接问题
  15. 06. Java面向对象——更改器方法和访问器方法
  16. 三维地图下载,3D地图下载,谷歌地球三维地形图查看
  17. 网易云音乐 最美的评论
  18. 2022年对于李一男是关键的一年,这也将决定他的社会地位
  19. 前端效果之“拉开窗帘”
  20. 手游还能这么玩?电脑控制手机鼠标键盘大屏玩手游了解一下

热门文章

  1. UML建模之时序图(Sequence Diagram)[转]
  2. Tyvj P1424 占卜DIY
  3. 2005国际通信展将于10月18-22日举行
  4. pydev eclipse插件安装
  5. Win32 堆内存分配示例
  6. Java开发语句和代码块模板
  7. 802.11成帧封装实现(四)
  8. linux下安装oracle客户端,实现远程连接oracle库,导出数据表
  9. 如何构建高扩展性网站?
  10. [Spring MVC] - JSP + Freemarker视图解释器整合