zoukankan      html  css  js  c++  java
  • tftp协议

    <前言>

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

    方式:

    JTAG

    USB

    串口

    网络

    <tftp下载>

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

    <tftp交互过程>

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

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

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

    <tftp数据报文格式>

    由上图分析:

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

    UDP协议又数据IPInternet 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 协议格式

  • 相关阅读:
    lua table
    lua basic
    lua5.4 coroutine的通俗理解
    HarmonyOS实战—实现双击事件
    HarmonyOS实战—单击事件的四种写法
    HarmonyOS实战—实现单击事件流程
    苹果CMS对接公众号教程
    Spring快速入门
    YYCMS搭建影视网站教程
    分享几个开源Java写的博客系统
  • 原文地址:https://www.cnblogs.com/big-devil/p/8589443.html
Copyright © 2011-2022 走看看