一、借鉴说明,本博文借鉴以下博文

  1.锤子,FTP协议,http://www.cnblogs.com/loadrunner/archive/2008/01/09/1032264.html

  2.sunada,FTP协议及工作原理详解,http://www.cnblogs.com/sunada2005/articles/2781712.html

  3.wang_j,FTP协议及数据包浅析,http://www.cnblogs.com/wangj08/archive/2013/05/29/3106501.html

  4.Hundre,FTP协议详解,http://www.cnblogs.com/li0803/archive/2010/11/16/1878833.html

二、TFTP协议

  • 基础知识

  TFTP(Trivial File Transfer Protocol),即小文件传输协议。

  它是一个网络应用程序,它比FTP简单也比FTP功能少。它在不需要用户权限或目录可见的情况下使用,它使用UDP协议而不是TCP协议。

  TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的,因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型;最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。

  任何传输起自一个读取或写入文件的请求,这个请求也是连接请求。如果服务器批准此请求,则服务器打开连接,数据以定长512字节传输。每个数据包包括一块数据,服务器发出下一个数据包以前必须得到客户对上一个数据包的确认。如果一个数据包的大小小于512字节,则表示传输结构。如果数据包在传输过程中丢失,发出方会在超时后重新传输最后一个未被确认的数据包。通信的双方都是数据的发出者与接收者,一方传输数据接收应答,另一方发出应答接收数据。大部分的错误会导致连接中断,错误由一个错误的数据包引起。这个包不会被确认,也不会被重新发送,因此另一方无法接收到。如果错误包丢失,则使用超时机制。错误主要是由下面三种情况引起的:不能满足请求,收到的数据包内容错误,而这种错误不能由延时或重发解释,对需要资源的访问丢失(如硬盘满)。TFTP只在一种情况下不中断连接,这种情况是源端口不正确,在这种情况下,指示错误的包会被发送到源机。这个协议限制很多,这是都是为了实现起来比较方便而进行的。

  初始连接时候需要发出WRQ(请求写入远程系统)或RRQ(请求读取远程系统),收到一个确定应答,一个确定可以写出的包或应该读取的第一块数据。通常确认包包括要确认的包的包号,每个数据包都与一个块号相对应,块号从1开始而且是连续的。因此对于写入请求的确定是一个比较特殊的情况,因此它的包的包号是0。如果收到的包是一个错误的包,则这个请求被拒绝。创建连接时,通信双方随机选择一个TID,因此是随机选择的,因此两次选择同一个ID的可能性就很小了。每个包包括两个TID,发送者ID和接收者ID。这些ID用于在UDP通信时选择端口,请求主机选择ID的方法上面已经说过了,在第一次请求的时候它会将请求发到TID 69,也就是服务器的69端口上。应答时,服务器使用一个选择好的TID作为源TID,并用上一个包中的TID作为目的ID进行发送。这两个被选择的ID在随后的通信中会被一直使用。

转载于:https://www.cnblogs.com/MGKKKK/p/6195163.html

初入网络系列笔记(6)TFTP协议相关推荐

  1. 上传文件到tftp服务器,网络基础知识:TFTP协议之上传文件

    原标题:网络基础知识:TFTP协议之上传文件 上传文件指的是客户端将本地上的文件上传到TFTP服务器上.下面介绍客户端如何进行文件上传,以及上传时所涉及的各类型数据包. 1.工作流程 客户端会向TFT ...

  2. 【网络系列】应用层HTTP协议格式解析、实现、HTTPS的加密流程

    应用层HTTP协议格式解析.实现.HTTPS的加密流程 什么是HTTP协议 HTTP协议格式 1.首行 2.头部 3.正文 实现HTTP协议服务器 HTTPS如何加密 什么是HTTP协议 应用层负责程 ...

  3. UVM入坑系列笔记(一)

    最近本人在做毕业设计,需要用到UVM搭建验证平台,故在网上查找相关资料,看了一些博客和科普,多少有些收获,记录在这里,以便以后复习查看.以下是本人根据网上学习资料整理的笔记,如果有什么不对的地方欢迎指 ...

  4. 1.1python初入网络爬虫-网络连接和BeautifulSoup库的使用

    目录: 一,网络连接 1.网络连接的过程 2.python实现的网络连接功能 3.拓展: 二,BeautifulSoup简介 1.安装BeautifulSoup库 2.运行BeautifulSoup库 ...

  5. 【网络】tftp协议、简单实用tftpd32工具在主机和虚拟机之间传输文件

    TFTP协议的简单了解学习以及使用 一.前言 在公司里,给设备进行升级的时候使用了一个tftp传输文件工具(Tftpd32),笔记本接上和设备在同一网络下的网线(使二者在同一个局域网下),然后配置Tf ...

  6. (计算机视觉笔记)1、初入计算机视觉

    计算机视觉笔记 1.初入计算机视觉 文章目录 一.人工智能 1.什么是人工智能 2.人工智能三大核心要素 3.算法概念 4.机器学习 5.深度学习 6.神经网络 二.计算机视觉 1.什么是计算机视觉 ...

  7. 网络协议学习笔记-IGMP协议

     网络协议学习笔记-IGMP协议 http://hi.baidu.com/clxye/item/3db870336d86c0c11a969614 IGMP协议(Internet Group Man ...

  8. 网络编程——TFTP协议(基于UDP)

    目录 1. tftp协议概述 2. tftp下载模型 3. tftp协议分析 代码 1. tftp协议概述 简单文件传输协议,适用于在网络上进行文件传输的一套标准协议,使用UDP传输 特点: 是应用层 ...

  9. LinuxC语言简单实现客户端使用TFTP协议文件下载-网络编程-应用层

    目录 编写客户端,使用TFTP协议,完成文件下载的功能. 1.安装tftpd32 2.TFTP协议 3.打开服务器tftpd32 4.客户端 代码实现 执行结果 注意 6.非原创 编写客户端,使用TF ...

最新文章

  1. python程序跑得慢_Python程序慢的重要原因
  2. 华为鸿蒙发布作文,华为鸿蒙OS定档6月2日发布!MatePad Pro 2或同台亮相:首发预装...
  3. java特殊字符转义字符_Java正则表达式处理特殊字符转义的方法
  4. 斗地主AI算法——第十章の被动出牌(4)
  5. linux设备驱动归纳总结(八):1.总线、设备和驱动【转】
  6. Python程序设计语言基础06(完):组合数据类型
  7. 【李宏毅2020 ML/DL】P99-105 Life Long Learning
  8. 职场调侃:工作五年之后的十三种痛!
  9. 转:jwgkvsq.vmx手工清除方法(针对病毒变种补充完整)
  10. 带蓝牙5.0芯片选型厂商总结和市场趋势分析
  11. Python常用中文分词库:jieba
  12. C++实现RPG小游戏(彩色版)
  13. html ul4032,国标UL认证安规标准UL1059接线端子及附件.pdf
  14. 高一 Unit2 动名词
  15. windows7计算机不显示u盘,win7插上u盘不显示盘符怎么办|win7 u盘识别不显示盘符的解决方法...
  16. 星际争霸2-数据编辑器-菜鸟入门
  17. html工作周报,可查看(周报).html
  18. 深度分析:多元化布局或成香飘飘营销转型的重要一环
  19. [eNSP]解决路由器以及交换机一直处于##,无法启动的问题
  20. 商城会员积分过期的实现方案

热门文章

  1. vh,vw单位你知道多少?
  2. 前端学习(3206):初始化state
  3. 前端学习(2931):vue里面的虚拟dom和算法
  4. [html] 如何使用纯html制作一个进度条?
  5. [vue] 说说你对vue组件的设计原则的理解
  6. [vue] 说说你对MVC、MVP、MVVM模式的理解
  7. [js] 使用ajax请求真的不安全吗?为什么?
  8. 工作160:总结VUE几种页面刷新方法
  9. 前端学习(2525):实现过滤功能
  10. 工作总结21:阅读代码之axios