您的位置:首页 > 编程语言 > PHP开发

TFTP协议简介

2017-09-07 23:39 176 查看
TFTP协议简介
TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。   

TFTP共定义了五种类型的包格式,格式的区分由包数据前两个字节的Opcode字段区分,分别是:

 【1】读文件请求包:Read request,简写为RRQ,对应Opcode字段值为1

 【2】写文件请求包:Write requst,简写为WRQ,对应Opcode字段值为2

 【3】文件数据包:Data,简写为DATA,对应Opcode字段值为3

 【4】回应包:Acknowledgement,简写为ACK,对应Opcode字段值为4 

 【5】错误信息包:Error,简写为ERROR,对应Opcode字段值为5

1、由客户端发起读文件/写文件的请求,同时可以进行请求连接

2、服务器监听到请求,打开连接,并向客户端发送文件,以每个定长为512字节的块进行发送。每个数据包包含一个数据块,在发送下一个包的时候必须被客户端确认回应一个回应包。

3、当发现某个数据包小于512个字节,说明传输终止。

4、如果出现网络丢包,收件方(客户端)会超时,并且重传最后的接收包(可以是数据包或者回应包),因此这将可以让发送者重新发送丢失包。当之前的包已经接受成功之后,发送者只需要保持一个重传包。注意 发送者 要做的事情:发送数据,接受 回应包;接受者要做的:发送回应包,接受数据。

1、安装tftp服务器(xinetd、tftp和tftp-server)

【1】yum安装:
           sudo yum install xinetd

           sudo yum install tftp

           sudo yum install tftp-server
【2】安装rpm包:
         sudo rpm -ivh xinetd -2.3.14-18.fc9.i386.rpm
         sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm
         sudo rpm -ivh tftp-server-0.48-3.fc9.i386.rpm
2、配置tftp服务器
      修改/etc/xinetd.d/tftp文件,将其中的disable=yes改为disable=no。
      主要是设置TFTP服务器的根目录,开启服务。修改后的文件如下:
service tftp
{      socket_type            =dgram
      
protocol                  =udp
      wait                        =yes
      user                        =root
      server                     =/usr/sbin/in.tftpd
      server_args             =-s /home/mike/tftpboot -c
      disable                    =no
      per_source             =11
      cps                         =100 2
     
  flags                       =IPv4
}
说明:修改项server_args= -s     <path>    -c,其中<path>处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。
3、启动tftp服务器并关闭防火墙
systemctl   stop  firewalld         //关闭防火墙
   systemctl   restart xinetd 
 4、查看tftp服务是否开启
    netstat -a | grep tftp
    显示结果为:udp 0 0 *:tftp *:*
    表明服务已经开启,就表明tftp配置成功了。
5、tftp使用
复制一个文件到tftp服务器目录,然后在主机启动tftp软件,进行简单测试。
tftp 192.168.1.2
tftp>get <download file>
tftp>put <upload file>
tftp>q
6、tftp命令用法如下
tftp     your-ip-address
【进入TFTP操作】
connect:连接到远程tftp服务器
mode:文件传输模式
put:上传文件
get:下载文件
quit:退出
verbose:显示详细的处理信息
tarce:显示包路径
status:显示当前状态信息
binary:二进制传输模式
ascii:ascii传送模式
rexmt:设置包传输的超时时间
timeout:设置重传的超时时间
help:帮助信息
?:帮助信息
7、如果老是出现“AVC Denial, click icon to view”的错误,并不能传输文件,需要作如下修改
     修改/etc/sysconfig/selinux,将SELINUX设定为disable
     使用命令setenforce 0让selinux配置文件生效
8、Busybox中tftp命令的用法
命令格式为:
tftp [option] ... host [port]
如果要下载或上传文件的话是一定要用这些option的。成都明诚科技。
-g表示下载文件(get)
-p表示上传文件(put)
-l表示本地文件名(local file)
-r表示远程主机的文件名(remote file)
例如,要从远程主机192.168.1.2上下载embedexpert,则应输入以下命令
tftp -g -r embedexpert 192.168.1.2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: