<前言>

嵌入式开发是一个交叉开发的模式,需要将宿主机上的文件烧写到目标机上。

方式:

JTAG

USB

串口

网络

<tftp下载>

首先需要将宿主机架成一个TFTP的服务器,其次开发板需要具有从tftp服务下载数据的能力。一般可以用串口调试工具进行调试

<tftp交互过程>

(1)客户机向服务器发送请求包

(2)服务器向客户机发送数据包(每个数据包字节数不能超过512个字节)

(3)客户机向服务器发送应打包,表示已经接受到数据(如果不发送应打包,则服务器则不停的发送数据包,直到获应答包或者超过某个时间)

<tftp数据报文格式>

由上图分析:

TFTP(Trivial File Transfer Protocol文件传输协议)协议属于UDP(User Datagram Protocol用户数据协议)协议

而UDP协议又数据IP(Internet Protocol网络地址协议)协议

操作码:用于区分报文是请求报文还是数据报文

OP = 1 请求报文

OP = 2 上传数据

OP = 3 数据报文

OP = 4 相应报文

OP = 5 出错报文

模式:用于决定下载或上传模式多少位的形式下载或以ASCII码的形式下载

<TFTP客户端的实现>

(1)向目标机(服务器)发送ARP请求包以获取目标机的(服务器)的mac地址

(2)目标机(服务器)发送应答包,客户机从中获取mac地址

(3)由获取目标机的mac地址发送tftp IP请求包

(4)目标机(服务器)发送数包

(5)客户机接受数据包后发送应答包

(6)目标机(服务器)接受应答包后继续发送数据包,如此循环将数据全部发送完成

IP协议格式

UDP 协议格式

tftp协议的更多相关文章

  1. 初入网络系列笔记(6)TFTP协议

    一.借鉴说明,本博文借鉴以下博文 1.锤子,FTP协议,http://www.cnblogs.com/loadrunner/archive/2008/01/09/1032264.html 2.suna ...

  2. 【转】 基于TFTP协议的远程升级设计

    版权声明:本文为博主原创文章,未经博主允许不得转载.联系邮箱:zhzhchang@126.com 说明:由于CSDN博客编辑器对word格式近乎不支持,因此对表格使用了图片方式(最后一个表格未使用图片 ...

  3. 基于TFTP协议的远程升级设计

    说明:因为CSDN博客编辑器对word格式近乎不支持.因此对表格使用了图片方式(最后一个表格未使用图片格式.大家能够看看效果),CSDN博客编辑器上传图片十分不人性化(直接复制图片是不显示的),因此本 ...

  4. UNIX网络编程——分析一帧基于UDP的TFTP协议帧

    下图是UDP的段格式: 相比TCP段格式,UDP要简单得多,也没啥好说的,需要注意的是UDP数据长度指payload加上首部的长度. 下面分析一帧基于UDP的TFTP协议帧: 以太网首部 0000: ...

  5. Python socket之tftp协议

    1. TFTP协议介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议) 是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议 特点: ...

  6. 分析一帧基于UDP的TFTP协议帧

    下图是UDP的段格式: 相比TCP段格式,UDP要简单得多,也没啥好说的,需要注意的是UDP数据长度指payload加上首部的长度. 下面分析一帧基于UDP的TFTP协议帧: 以太网首部 0000: ...

  7. Python的网络编程[2] -> TFTP 协议[0] -> TFTP 的基本理论

    TFTP 的基本理论 目录 通信流程 数据报文格式 传输终结 异常处理 数据丢失和超时 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是UDP协议族中的一个 ...

  8. TFTP协议介绍-python实现tftp客户端

    1. TFTP协议介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议) 是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议 特点: ...

  9. Vsftpd服务 和 TFTP协议

    FTP 文件传输协议 (File Transfer Protocol) FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20.21号端口,其中端口20(数据端口)用于进行数据 ...

随机推荐

  1. 未来人类T5 安装win10,ubuntu双系统

    1.首先确保win10已经安装,u盘中已刻录好系统,下载好英伟达最新驱动保存在u盘中,压缩100g的磁盘空间给ubuntu. 2.设置双显卡模式,重启时按F7选择进入u盘启动. 3.进入安装界面,选择 ...

  2. HADOOP百度云资料

    百度云下载地址: 链接:http://pan.baidu.com/s/1pL56hkv 密码:u4h3 解压密码:www.mukedaba.com

  3. 使用nginx sticky实现基于cookie的负载均衡【转】

    在多台后台服务器的环境下,我们为了确保一个客户只和一台服务器通信,我们势必使用长连接.使用什么方式来实现这种连接呢,常见的有使用nginx自带的ip_hash来做,我想这绝对不是一个好的办法,如果前端 ...

  4. [shell]shell中if语句的使用

    转自:http://lovelace.blog.51cto.com/1028430/1211353 bash中如何实现条件判断?条件测试类型:    整数测试    字符测试    文件测试 一.条件 ...

  5. 转:vue-cli的webpack模板项目配置文件分析

    转载地址:http://blog.csdn.net/hongchh/article/details/55113751 一.文件结构 本文主要分析开发(dev)和构建(build)两个过程涉及到的文件, ...

  6. day07作业

    import java.util.Scanner; class SsqGame { public static void main(String[] args) { int total = 0;//买 ...

  7. 使用Docker快速搭建sftp服务

    一.安装docker环境 参见 http://www.cnblogs.com/rslai/p/8403350.html 二.从Docker Hub查找sftp镜像 docker search sftp ...

  8. android studio 解决avd启动问题 ----waiting for target device come online

    android studio 模拟器打不开,一直停留在第三方.waiting for target  device  come online 问题解决方法 方法1.Android Emulator 未 ...

  9. 洛谷P1782 旅行商的背包

    传送门啦 这个题不用二进制优化的话根本不行,现学的二进制优化,调了一段时间终于A了,不容易.. 如果不懂二进制优化的话可以去看我那个博客 二进制优化多重背包入口 不想TLE,不要打memset,一定要 ...

  10. elasticsearch文档学习

    1.集群 节点(一个elasticsearch实体)  索引  主节点 :集群级别变更,新增或移除节点,索引:  主节点不参与文档级别搜索和变更. 分片(shard):一个完整的搜索引擎,lucene ...