Deepin下tftp客户端传送升级文件失败问题分析
一, 安装过程
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 |
二进制模式,数据无需解析 |
二进制模式 |
|
已过时,不使用 |
已过时 |
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客户端传送升级文件失败问题分析相关推荐
- 【TFTP客户端--实现下载文件和上传文件】
TFTP客户端--实现下载文件和上传文件 TFTP协议 文件下载 文件上传 main TFTP协议 TFTP是一个传输文件的简单协议,它其于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其 ...
- 【银河麒麟桌面操作系统微信发送文件失败-问题分析及解决方案】
银河麒麟桌面操作系统微信发送文件失败-问题分析及解决方案 1.问题描述 银河麒麟桌面操作系统微信发送文件失败,提示文件为空文件,检查发现文件并非空文件. 2.问题分析排查 2.1微信版本信息:已是最新 ...
- FFMPEG在Windows下使用Movie滤镜读取文件失败问题
在windows下用ffmpeg执行如下movie滤镜命令:ffmpeg -i c:\\input.mp4 -vf "movie=c:\\logo.png[wm]; [in][wm]over ...
- Java客户端上传文件失败(FastDFS)
1.连接到服务失败(Connection timed out: connect) connect to server 192.168.168.139:22122 fail java.net.Conne ...
- 无线群控服务器转让,群控客户端绑定服务器文件
群控客户端绑定服务器文件 内容精选 换一换 CDM支持周期性自动将新增文件上传到OBS,不需要写代码,也不需要用户频繁手动上传即可使用OBS的海量存储能力进行文件备份.这里以CDM周期性备份FTP的文 ...
- 酷派CPB升级文件封包解包
为什么80%的码农都做不了架构师?>>> 此前入手了部酷派8730L,无奈搜遍整个互联网寻求ROOT的方法以及用了各种ROOT工具均以失败告终.于是决定研究下酷派的CPB升级文 ...
- 共享模式_fsopen打开文件失败的解决方案(实现_fsopen支持中文的方法)
文件打开函数如下: void KeyManager::openKeyFile() { QDateTime dateTime = QDateTime::currentDateTime(); keyPat ...
- Motionpro客户端配置l3vpvn隧道失败
Windows10 下Motionpro客户端配置l3vpvn隧道失败解决方法: 管理员命令提示符下运行:bcdedit.exe /set nointegritychecks on 再重启一下 已经成 ...
- 锐捷 linux 网卡信息失败,锐捷校园网linux有线认证图形客户端更新,解决了deepin下无反应问题...
如果你在深度deepin操作系统下出现无反应的问题,请使用最新版本的锐捷校园网linux有线认证图形客户端,当前已提供rj-aux-linux-x64-v2.4-beta.deb等包下载,除此之外,还 ...
最新文章
- LeetCode刷题记录2——217. Contains Duplicate(easy)
- MapReduce_wordcount
- SpringBoot缓存应用实践
- icmp 报文中的进程号
- 进阶:秒杀系统是如何设计的?
- maven学习(下)利用Profile构建不同环境的部署包
- Django项目知识点(二)
- 「中间件系列二」redis缓存
- 【实战分享】漫谈 gRPC的选型
- AWS Lambda事件源映射:使您的触发器混乱无序
- 了解机器学习框架CoreML
- 面试官:Spring MVC的处理流程是怎样的?
- 【HDFS】hdfs与fsck结合使用
- DBeaver mysql驱动连接问题
- 06. Java面向对象——更改器方法和访问器方法
- 三维地图下载,3D地图下载,谷歌地球三维地形图查看
- 网易云音乐 最美的评论
- 2022年对于李一男是关键的一年,这也将决定他的社会地位
- 前端效果之“拉开窗帘”
- 手游还能这么玩?电脑控制手机鼠标键盘大屏玩手游了解一下