一、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. Python接口测试-以&连接拼接字典数据(get中url请求数据)

    get请求的utl数据是这样的,例如:/banner/findBanner?bannerType=1&_=1556107073181 ''' 1-banner图-banner/findBann ...

  2. 3.AOP中的IntroductionAdvisor

    上篇中的自定义Advisor是实现的AbstractPointcutAdvisor,Advisor其实还有一个接口级别的IntroductionAdvisor                     ...

  3. Android8.0新特性总结

    1.通知渠道:开发者可以自定义应用的通知内容类别,为用户提供一个可以对通知精细控制的接口,用户可以对通知    进行精细的掌控 开发指南 创建通知渠道的步骤: 创建 NotificationChann ...

  4. TreeView 三种状态 没多大变化 只是增加了很多函数以方便调用

    using System.Drawing; using System.Windows.Forms; using System.ComponentModel; namespace SimpleCusto ...

  5. LC 638. Shopping Offers

    In LeetCode Store, there are some kinds of items to sell. Each item has a price. However, there are ...

  6. display:flex 布局详解(2)

    1.  flex设置元素垂直居中对齐 在之前的一篇文章中记载过如何垂直居中对齐,方法有很多,但是在学习了flex布局之后,垂直居中更加容易实现 HTML代码: <div class=" ...

  7. iptable的四表五链

    iptable的概念中有四张表,五条链. 四张表是: filter表——过滤数据包 Nat表——用于网络地址转换(IP.端口) Mangle表——修改数据包的服务类型.TTL.并且可以配置路由实现QO ...

  8. 一、Node.js安装及环境配置之Windows篇

    一.安装环境 1.本机系统:Windows 10 Pro(64位)2.Node.js:v6.9.2LTS(64位) 二.安装Node.js步骤 1.下载对应你系统的Node.js版本:https:// ...

  9. Linux 操作系统常用命令

    常用命令详解 ls 常用选项: -a:列出所有文件,包括以.为开头的隐藏文件. -d ; 列出目录本身,并不包含目录里的内容. -h:和-l一起使用,文件大小容易阅读.文件的实际大小 ls -d/ro ...

  10. iscsi-文件类型

    iSCSI简介(Internet SCSI): iSCSI 小型计算机系统接口,IBM公司研发,用于在IP网络上运行SCSI协议:解决了 SCSI需要直连存储设备的局限性:可以不停机扩展存储容量,iS ...