一、tftp介绍

  TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69.

二、目的

  TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中有三种模式:

  • netascii,这是8位的ASCII码形式,
  • 另一种是octet,这是8位源数据类型;
  • 最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。

三、概况

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

四、应用

在开发板上调试代码,使用的是交叉编译环境,即在电脑上编译,在开发板上运行,在前面电脑上编译后的可执行,通过存储介质(U盘、TF卡)拷贝,然后挂载到开发板上,再进行运行。为减少中间拷贝、挂载操作,现提供一种更为便捷的方式,即tftp功能,此功能将电脑设置为tftp服务器,开发板通过网络直接在电脑上获取文件。

  1. tftp服务器的搭建和测试
  • 搭建服务器
– 安装xinetd,sudo apt-get install xinetd
– 安装tftp 和tftpd,sudo apt-get install tftp tftpd
– 配置/etc/xinetd.d/tftp文件(一定要对齐,严格按照以下格式输入!) service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/tftpboot/
disable = no
per_source = 11
cps = 100 2
flags = IPv4
} 注意:server_args 配置了路径,是tftp获取文件的路径,如果客户端想要获取服务器的文件,只会在这里面找,因此需要将文件放到该目录下。
  • tftp文件中的/var/tftpboot是服务器的目录
– 新建tftp服务器目录mkdir /var/tftpboot
– 修改权限为777 : chmod 777 /var/tftpboot
– 重启xinetd服务sudo /etc/init.d/xinetd restart
  • 本机测试
– 在/var/tftpboot 下面建立一个文件test,输入任意内容
– 启动另一个终端
– 输入命令tftp 127.0.0.1
– 输入get test
– 输入q可以退出
– 退出后,使用ls命令可以发现当前目录下有test文件,如果这个文件和服务器中的test文件内容一模一样,表明服务器搭建成功
  1. 同一网段的概念

“同一网段” – IP和子网掩码做与运算得到网络标识,如果两个网络的网络标示一样,则在同一网段.

网线接到交换机
– 一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:
给内部网络或网络服务供应商自动分配IP地址;
演示计算网络标识,确认IP在同一网段.

  1. 开发板与tftp服务器的文件传输
需要具备的3个条件:
1、开发板与tftp服务器在同一网段,且没有IP冲突。
2、文件放在指定的目录下,具体的路径在配置服务器时已经写入。
3、客户端想要获取文件,需要知道文件名。 具备以上条件,通过 tftp 命令进行操作:
ftfp命令介绍:
在迅为4412提供的最小系统里面输入tftp有相应的介绍:
[root@iTOP-4412]# tftp
BusyBox v1.21.1 (2014-10-17 01:48:59 PDT) multi-call binary. Usage: tftp [OPTIONS] HOST [PORT] Transfer a file from/to tftp server -l FILE Local FILE
-r FILE Remote FILE
-g Get file
-p Put file
-b SIZE Transfer blocks of SIZE octets 例:在tftp服务器的 /var/tftpboot 目录下有 test.txt文件,内容为 hello world! 在开发板上使用:
1、不更名获取
tftp -g -l/-r test 192.168.1.106
解释:
-g :下载
-l/-r:在不更改获取文件名的情况下,两者都可以
test:获取的文件名
192.168.1.106:tftp服务器的IP
获取的文件存放在当前路径下。 [root@iTOP-4412]# tftp -g -l test 192.168.1.106
[ 835.761330] [dm96-TxRound].2 for LEN_ODD tail_room +1, rslt add 1
[root@iTOP-4412]# ls
test
[root@iTOP-4412]# cat test
hello world! 2、更名获取
tftp -g -l hello -r test 192.168.1.106
解释:
-g :下载
-l :存放到本地的文件
hello:存放到本地的文件名
-r :获取的文件
test :获取的文件名
192.168.1.106 :tftp服务器的IP [root@iTOP-4412]# tftp -g -l hello -r test 192.168.1.106
[ 1190.843793] [dm96-TxRound].3 for LEN_ODD tail_room +1, rslt add 1
[root@iTOP-4412]# ls
hello
[root@iTOP-4412]# cat hello
hello world!

tftp服务器的搭建和使用的更多相关文章

  1. 自学linux——19.TFTP服务器的搭建

    TFTP服务器的搭建 1.TFTP的认识 TFTP(Trivial File Transfer Protocol)简单文件传输协议,是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议,不需 ...

  2. Ubuntu下tftp服务器的搭建

    参考博客:http://blog.chinaunix.net/uid-26495963-id-3206829.html 1. 安装 $ apt-get install tftp-hpa tftpd-h ...

  3. tftp服务器的搭建

    基于 红帽6的tftp搭建,当然其他系统搭建方法也大致一样 #mount /dev/cdrom /mnt/           挂载安装光盘  不同光盘挂载用 fdisk -l  查看光盘 #rpm ...

  4. ubuntu 14.04LTS 环境下搭建tftp服务器

    花费我一整天的时间在 ubuntu 14.04LTS 环境下搭建tftp服务器,网上好多资料参差不齐,简单来说,TFTP(Trivial File Transfer Protocol),是一个基于UD ...

  5. 在Ubuntu12.0.4下搭建TFTP服务器

    一.安装相关安装包 tftpd(服务端),tftp(客户端) sudo apt-get install tftp-hpa tftpd-hpa 安装xinetd sudo apt-get install ...

  6. Ubuntu下搭建tftp服务器最简单方法

    今天开始调试ARM的板子,要通过tftp下载到板子上,所以又要配置tftp服务器,真的烦死了… (本人酷爱装系统,所以经常都要搞配置) 因为之前已经在Ubuntu下搭建过很多次tftp服务器了,但是一 ...

  7. NFS的搭建(sudo apt-get install nfs-kernel-server),TFTP服务器(sudo apt-get install tftpd-hpa tftp-hpa)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Osean_li/article/details/53240705 ***************** ...

  8. 如何在Ubuntu下搭建tftp服务器

    远程桌面连接工具   今天开始调试arm的板子,要通过tftp下载到板子上,所以又要配置tftp服务器,真的烦死了… (本人酷爱装系统,所以经常都要搞配置) 因为之前已经在Ubuntu下搭建过很多次t ...

  9. 4412 搭建tftp服务器

    搭建服务器 --安装xinetd,sudo apt-get install xinetd --安装tftp和tftpd,sudo apt-get install tftp tftpd --配置/etc ...

随机推荐

  1. springboot-mvc:入参日期类型转换String->Date

    4种方式: 1.通过在application.ym中配置 spring.mvc.data-format: yyyy-MM-dd HH:mm:ss ,使用的是ParserConverter 优点:简单的 ...

  2. 使用KerasNet

    1.安装Python3.6,必须是3.6因为当前KerasNet的配套版本是3.6 https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64 ...

  3. linux下如何将dts转换成dtb?

    答: 使用dtc工具,如: <kernel source code dir>/scripts/dtc/dtc -I dts -O dtb -o <dtb filename> & ...

  4. ubantu下docker安装

    开始安装 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: sudo apt-get remove docker docker-engine docker-ce docke ...

  5. Linux shell利用sed如何批量更改文件名详解[转载]

     需求背景: 目录A用来存放自动化的包生成的apk文件,现在开发修改了包名的 命名规则:环境名称(pro|uat)-release-日期-v版本号.apk 原来的是思路是通过正则表达式匹配新的包名,但 ...

  6. 原生vue实现表格的编辑,包括单元格合并,拆分,删除行/列, 添加行/列

    先看效果图如下:  代码看这里: https://github.com/YalongYan/vue-table-edit

  7. 小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解

    笔记 第四章 服务消费者ribbon和feign实战和注册中心高可用 1.常用的服务间调用方式讲解     简介:讲解常用的服务间的调用方式 RPC:             远程过程调用,像调用本地 ...

  8. Qt编写自定义控件15-百分比仪表盘

    前言 百分比仪表盘,主要的应用场景是展示销售完成率.产品合格率等,也可以作为一个进度百分比展示,可以独立设置对应的标题文字,标题文字的颜色和整体的颜色都可以单独设置,建议设置成统一的风格,这样会显得更 ...

  9. iscsi序列一、搭建iscsi存储系统

    一.NAS和SAN服务器概述 SAS: 容量小, 300G, 600G, 900G, 价格贵. SATA:容量大,500G, 750G, 1T, 2T, 3T, 4T   不支持热插拔,价格低. 假S ...

  10. tomcat中的server.xml元素详解

    附:Tomcat加载顺序 加载类和资源的顺序为: 1./Web-INF/classes 2./Web-INF/lib/*.jar 3.Bootstrap 4.System 5.$CATALINA_HO ...