一、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. biancheng-socket编程

    http://c.biancheng.net/socket/ 网络编程就是编写程序使两台联网的计算机相互交换数据.这就是全部内容了吗?是的!网络编程要比想象中的简单许多.那么,这两台计算机之间用什么传 ...

  2. Kubernetes Pod状态和生命周期管理

    ​Pod​​​是​​kubernetes​​​中你可以创建和部署的最小也是最简的单位.​​Pod​​代表着集群中运行的进程. ​​Pod​​​中封装着应用的容器(有的情况下是好几个容器),存储.独立的 ...

  3. w3cschool-Linux shell教程

    Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个 ...

  4. 支持S3协议的S3cmd工具简单使用

    本文分享自天翼云开发者社区<支持S3协议的S3cmd工具简单使用>,作者:付****健 一:安装方法 #wget http://nchc.dl.sourceforge.net/projec ...

  5. 容器的优势,在Docker中运行Tomcat

    本文分享自天翼云开发者社区<容器的优势,在Docker中运行Tomcat>,作者:d****e 一.容器与虚拟机的区别是什么 虚拟机:虚拟机是通过Hypervisor(虚拟机管理系统,常见 ...

  6. SaaS+AI应用架构:业务场景、智能体、大模型、知识库、传统工具系统

    大家好,我是汤师爷~ 在SaaS与AI应用的演进过程中,合理的架构设计至关重要.本节将详细介绍其五个核心层次: 业务场景层:发现和确定业务场景 智能体层:构建可复用的智能应用 大模型层:采用最合适的大 ...

  7. 8-2 MySQL 索引的设计原则(超详细说明讲解)

    8-2 MySQL 索引的设计原则(超详细说明讲解) @ 目录 8-2 MySQL 索引的设计原则(超详细说明讲解) 1. 测试数据准备 2. 哪些情况适合创建索引 2.1 字段的数值有唯一性的限制 ...

  8. Ansible - [05] 配置文件详解

    主配置文件 ansible.cfg 修改sudo相关配置,在实际工作中,可能使用ansible时,所使用的用户并不是root用户,而是管理员给的一个普通用户,所以需要考虑ansible相关配置文件需要 ...

  9. 有关算法与数据结构的考题解答参考汇总 [C++] [链表] · 第三篇

    早先年考研的主考科目正是[算法与数据结构],复习得还算可以.也在当时[百度知道]上回答了许多相关问题,现把他们一起汇总整理一下,供读者参考. [1] 原题目地址:https://zhidao.baid ...

  10. Processing多窗口程序范例(二)

    多窗口范例(二),做一个划线生成图像的应用,最后结果: 子窗口划线,主窗口复制多个画布叠加并添加了旋转动画. 范例程序 主程序: package syf.demo.multiwindow2; impo ...