一、TFTP简介:

TFTP是基于UDP应用层的简单的文件传输协议,端口号为69,TFTP协议主要应用于网络引导、配置文件传输等场景。

二、报文介绍:

TFTP有四种数据包格式,分别是读/写请求包、文件数据包、回应包和错误信息包。

  1. 读/写请求包

操作码,它的值为1表示读操作,2表示写操作;文件名,它是一个以0结尾的字符串;模式,它也是一个以0结尾的字符串,常用的传输模式有"octet"(二进制传输)和"netascii"(ASCII码传输)。

  1. 文件数据包

操作码,它的值为3;数据块编号,它的值从1开始递增;数据块的内容,它的长度为512字节。

  1. 回应包

操作码,它的值为4;数据块编号,它的值与对方发送的文件数据包的数据块编号相同;

  1. 错误信息包

操作码,它的值为5;差错码,它的取值范围为0~7,具体含义如下:

- 0:未定义的错误

- 1:文件不存在

- 2:访问被拒绝

- 3:磁盘已满

- 4:操作超时

- 5:文件传输中断

- 6:未知传输ID

- 7:文件已存在

差错信息表示错误信息的内容,它是一个以0结尾的字符串。

三、CH9120做TFTP客户端访问服务器

将CH9120配置为UDPSERVER模式注意不能设为CLIENT(CLIENT会导致在数据传输阶段收不到服务器的数据报文),端口为69。

获取服务器文件需要通过串口发送命令如下:

00 01 //读操作码

74 65 73 74 2e 63 //test.c

00 //

6e 65 74 61 73 63 69 69 // netascii

00//

TFTP服务器收到该命令后会采用一个随机端口给CH9120发文件数据包

00 03 //数据操作码

00 01 //数据块编号

71 71 71 71 71 71 71 71 71 //数据

71 71 71 71 71 71 71 71 71 //数据

71 73 73 73 73 73 0d 00 0d //数据

0a 64 66 72 74 64 64 64 64 //数据

64 64 64 64 64 64 64 64 64 //数据

64 64 //数据

CH9120收到数据后回复回应包

00 04//回应包

00 01//数据块编号

上传服务器文件需要通过串口发送命令如下:

00 02 //写请求包

74 65 73 74 2e 63 //test.c

00 //

6e 65 74 61 73 63 69 69 // netascii

00//

注意:下次读写报文前需要复位一次CH9120

CH9120 TFTP使用详解的更多相关文章

  1. Linux中TFTP使用详解

    FTP协议简介TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现. linux服务器端tftp-server的配置1.安装tftp服务器需要安装xinetd(守护tftp).tftp和 ...

  2. tftp命令详解

    TFTP协议简介TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现.嵌入式linux的tftp开发环境包括两个方面: 一是linux服务器端的tftp-server支持,二是嵌入式目标 ...

  3. 8 TFTP代码详解 协议写在程序中

    1.版本1:发送请求 # -*- coding:utf-8 -*- import struct from socket import * #0. 获取要下载的文件名字: downloadFileNam ...

  4. 转载]OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]

    原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩.以前一直都是 ...

  5. linux查看端口及端口详解

    今天现场查看了TCP端口的占用情况,如下图   红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...

  6. TCP/IP详解 (转)

    TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中 ...

  7. net user命令集合详解

    net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user: ...

  8. TCP IP详解(转)

    大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 网络七层协议简称OSI.TCP/IP刨除了物理层,并把上三层(会话层.表示层和应用层)统称 ...

  9. TCP/IP详解学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

  10. 常见 jar包详解

        常见 jar包详解 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期 ...

随机推荐

  1. IT系统架构的演化-copy

    前言 一个成熟的大型网站(如淘宝.天猫.腾讯等)的系统架构并不是一开始设计时就具备完整的高性能.高可用.高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式.技术 ...

  2. 【Docker】---部署集群(2)

    RocketMQ(2)-Docker集群部署RocketMQ =前言= 1.因为自己只买了一台阿里云服务器,所以RocketMQ集群都部署在单台服务器上只是端口不同,如果实际开发,可以分别部署在多台服 ...

  3. Linux计划任务定时备份数据

    最近有项目需要定期备份mysql数据的需求,通过linux系统的crontab计划任务实现了一个简单demo,通过mysqldump命令对mysql数据进行备份. 首先新建一个脚本文件:mysqlba ...

  4. codeblocks调试时怎样查看全局变量?

    问题: 办法: watch窗口下面第一列输入 ::c

  5. Vmware共享文件夹安装设置方法(window与Linux使用共享文件夹)

    Vmware共享文件夹安装设置方法 注意:如果按照了工具,设置了共享文件夹,Linux下面还是没有的话,可以运行下面的命令,就会加载共享文件夹了 vmhgfs-fuse .host:/ /mnt/hg ...

  6. 探索sqlmap在WebSocket安全测试中的应用

    探索sqlmap在WebSocket安全测试中的应用 WebSocket与HTTP的区别 WebSocket,对于初次接触的人来说,往往会引发一个疑问:既然我们已经有了广泛使用的HTTP协议,为何还需 ...

  7. Q:rdp远程桌面如何传输文件

    通过自带的rdp远程连接传输文件 方法: 1.按下win+r键 输入 mstsc.打开远程桌面选择选项如下图 2.选择本地资源选项卡,打开详细信息选项 3.在详细信息选项卡中点开驱动器前面的+号,选择 ...

  8. startup文件中 bash_profile 和 bashrc 区别的总结

    原理上讲"交互式,登陆shell"启动时会加载"profile"系列的startup文件"交互式,非登陆shell"启动时会加载" ...

  9. Calcite 获取jdbc连接流程

    一.类调用 简介:calcite可以连接各数据源,做查询.可以收口查询权限,查询多引擎需求 二. 获取Connection发送的请求 请求介绍文档:https://calcite.apache.org ...

  10. centos 8 mysql 更改数据存储位置

    登录mysql后,先切换到myql数据库下通过show global variables like '%datadir%'; 可以查看数据默认的存储路径(一般在 /var/lib/mysql) 新建数 ...