文档章节

FTP和TFTP

完美世界
 完美世界
发布于 2014/06/04 23:08
字数 1911
阅读 62
收藏 1
点赞 0
评论 0

FTP和TFTP

FTP简介

FTP概述

FTP(File Transfer Protocol,文件传输协议)用于在远端服务器和本地主机之间传输文件,是IP网络上传输文件的通用协议。在万维网(WWW,World Wide Web)出现以前,用户使用命令行方式传输文件,最通用的应用程序就是FTP。虽然目前大多数用户在通常情况下选择使用Email和Web传输文件,但是FTP仍然有着比较广泛的应用。


FTP协议在TCP/IP协议族中属于应用层协议,用于在远端服务器和本地客户端之间传输文件,使用TCP端口20和21进行传输。端口20用于传输数据,端口21用于传输控制消息。FTP协议基本操作在RFC959中进行了描述。


FTP有两种文件传输模式:

二进制模式,用于传输程序文件(比如后缀名为.app、.bin和.btm的文件);

ASCII码模式,用于传输文本格式的文件(比如后缀名为.txt、.bat和.cfg的文件)。


FTP有两种工作方式:主动方式(PORT)和被动方式(PASV)。

使用主动方式时,FTP客户端使用一个随机端口N(一般大于1024)向FTP服务器的端口21发送连接请求,FTP服务器接受请求,建立一条命令链路来传输控制消息。同时FTP客户端开始监听另一随机端口P(一般大于1024),并使用PORT命令通知FTP服务器。当需要传输数据时,FTP服务器从端口20向FTP客户端的端口P发送连接请求,建立一条数据链路来传输数据。

使用被动方式时,FTP客户端使用一个随机端口N(一般大于1024)向FTP服务器的端口21发送连接请求,FTP服务器接受请求,建立一条命令链路来传输控制消息。同时FTP客户端开始监听另一随机端口P(一般大于1024),并使用PASV命令通知FTP服务器,FTP服务器接到PASV命令后,开启一个随机端口Q(一般大于1024),并使用PORT命令通知FTP客户端。当需要传输数据时,FTP客户端从端口P向FTP服务器Q端口发送连接请求,建立一条数据链路来传输数据。


主动方式和被动方式建立命令链路的方法是相同的,但建立数据链路的方法完全不同,因此两种方式在实际使用中也各有利弊:

使用主动方式传输数据时,FTP服务器需要主动连接FTP客户端的端口,这种请求容易被FTP客户端的防火墙阻塞。

使用被动方式传输数据时,FTP客户端需要使用一个随机端口连接到FTP服务器的一个随机端口,这解决了主动方式中数据传输请求被FTP客户端防火墙阻塞的问题,但会暴露FTP服务器的一个端口,从而带来安全隐患,同时这种请求容易被FTP服务器的防火墙阻塞。

不同FTP客户端软件对主动方式和被动方式的支持情况可能不同,请在使用时以软件的实际情况为准。

FTP的实现

设备在支持FTP协议上有两种方式:

设备作为FTP客户端:如下图所示,设备(Device)作为FTP客户端,PC作为FTP服务器。在Device上执行ftp命令,与PC建立FTP连接,完成文件的上传/下载操作。

设备作为FTP服务器:如下图所示,设备(Device)作为FTP服务器,PC作为FTP客户端。在PC上运行FTP客户端程序,与Device建立FTP连接,完成文件的上传/下载操作。



图 1 FTP配置示意图

TFTP简介

TFTP概述

TFTP(Trivial File Transfer Protocol,简单文件传输协议)也是用于在远端服务器和本地主机之间传输文件的,相对于FTP,TFTP没有复杂的交互存取接口和认证控制,适用于客户端和服务器之间不需要复杂交互的环境。TFTP协议的运行基于UDP协议,使用UDP端口69进行数据传输。TFTP协议基本操作在RFC1986中进行了描述。


TFTP传输文件有两种模式:

二进制模式,用于传输程序文件(比如后缀名为.app、.bin和.btm的文件)。

ASCII码模式,用于传输文本格式的文件(比如后缀名为.txt、.bat和.cfg的文件)。


FTP有两种工作方式:主动方式(PORT)和被动方式(PASV)。

使用主动方式时,FTP客户端使用一个随机端口N(一般大于1024)向FTP服务器的端口21发送连接请求,FTP服务器接受请求,建立一条命令链路来传输控制消息。同时FTP客户端开始监听另一随机端口P(一般大于1024),并使用PORT命令通知FTP服务器。当需要传输数据时,FTP服务器从端口20向FTP客户端的端口P发送连接请求,建立一条数据链路来传输数据。

使用被动方式时,FTP客户端使用一个随机端口N(一般大于1024)向FTP服务器的端口21发送连接请求,FTP服务器接受请求,建立一条命令链路来传输控制消息。同时FTP客户端开始监听另一随机端口P(一般大于1024),并使用PASV命令通知FTP服务器,FTP服务器接到PASV命令后,开启一个随机端口Q(一般大于1024),并使用PORT命令通知FTP客户端。当需要传输数据时,FTP客户端从端口P向FTP服务器Q端口发送连接请求,建立一条数据链路来传输数据。

主动方式和被动方式建立命令链路的方法是相同的,但建立数据链路的方法完全不同,因此两种方式在实际使用中也各有利弊:

使用主动方式传输数据时,FTP服务器需要主动连接FTP客户端的端口,这种请求容易被FTP客户端的防火墙阻塞。

使用被动方式传输数据时,FTP客户端需要使用一个随机端口连接到FTP服务器的一个随机端口,这解决了主动方式中数据传输请求被FTP客户端防火墙阻塞的问题,但会暴露FTP服务器的一个端口,从而带来安全隐患,同时这种请求容易被FTP服务器的防火墙阻塞。


不同FTP客户端软件对主动方式和被动方式的支持情况可能不同,请在使用时以软件的实际情况为准。

TFTP的实现

目前,设备只能作为TFTP客户端,不支持作为TFTP服务器。

TFTP协议传输是由客户端发起的:

当TFTP客户端需要从服务器下载文件时,由客户端向TFTP服务器发送读请求包,然后从服务器接收数据,并向服务器发送确认;

当TFTP客户端需要向服务器上传文件时,由客户端向TFTP服务器发送写请求包,然后向服务器发送数据,并接收服务器的确认


© 著作权归作者所有

共有 人打赏支持
完美世界
粉丝 10
博文 149
码字总数 134011
作品 0
西城
高级程序员
自动化运维实战之——构建PXE无人值守自动安装服务器

【企业案例】 某公司新增一个机房,需要大规模部署操作系统环境,由于手动部署操作系统效率极为低下,现需搭建一台PXE服务器来自动化部署操作系统。 具体要求如下: 为节省硬件资源,PXE、D...

志_恒 ⋅ 2017/10/20 ⋅ 0

FTP、TFTP、NFS、SSH介绍及在 Ubuntu 上的安装配置

玩板子由于需要频繁进行文件烧写、传输和下载,所以经常会用到标题中提到的几种服务。刚接触嵌入式时,老是对这几种服务分不清,对几种服务的用法及功能也比较模糊,现在特意查找资料,记录下...

倔强的小蚂蚁 ⋅ 2016/09/28 ⋅ 0

【ServerLute】FTP服务器(1),准备开始写一个FTP服务器,当作一个发端吧。

最近在寻找FTP服务器,跨平台的,性能要高,安全性要好,支持SFTP、FTP、FTPS、FTPES、TFTP协议。 可以难死我了。找了很久也没有找到,忽然想自己来写一个。算是对N久没有写代码的一种回忆和...

醉了时光 ⋅ 2011/02/08 ⋅ 0

Packet Tracer 5.3实验(十六) 网络设备系统升级

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

长平狐 ⋅ 2012/08/27 ⋅ 0

Packet Tracer 5.3实验(十六) 网络设备系统升级

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

长平狐 ⋅ 2012/09/06 ⋅ 0

交换机的配置文件备份到TFTP和FTP服务器

1、构建拓扑 2、配置地址 Switch> Switch>en Switch#conf t Switch(config)#hostname 666 修改交换机名字 666(config)#interface vlan 1 进入虚拟接口 666(config-if)#ip address 192.168.1.......

老赵网络 ⋅ 03/28 ⋅ 0

CentOS7.0-PXE批量部署

CentOS7.0-Kickstart无人值守安装 方法:FTP+TFTP+DHCP+Kickstart+PXE PXE服务器:CentOS7.0-192.168.25.1 1.搭建yum仓库: [root@max ~]# vim /etc/yum.repos.d/serverl.repo [base] name=......

Max_zhao ⋅ 2017/05/23 ⋅ 0

远程给多台主机安装软件

案例1:在物理机上编写一个自动化批量管理服务器的脚本。要求用ssh命令远程给3台虚拟机全自动安装vsftpd、ftp、lftp、tree、samba、tftp-server、bind、dhcp、httpd、mariadb-server软件,用...

柠檬琉璃H ⋅ 2017/11/25 ⋅ 0

RHEL7/CentOS7 pxe+kickstart自动化系统安装

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统...

zaa47 ⋅ 2017/05/27 ⋅ 0

如何备份思科、锐捷、Juniper的配置文件

如何备份思科、锐捷、Juniper设备的配置文件 对于一个有点规模的公司,网络设备的配置问文件备份也是一项不容忽视的工作,以防有一天你的网络设备出故障之后能够在最短时间内恢复,为公司单位...

huge888 ⋅ 2013/11/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

tcp/ip详解-链路层

简介 设计链路层的目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP模块发送RARP请求和接收RARP应答 TCP/IP支持多种链路层协议,如以太网、令牌环往、FDDI、RS-...

loda0128 ⋅ 40分钟前 ⋅ 0

spring.net aop代码例子

https://www.cnblogs.com/haogj/archive/2011/10/12/2207916.html

whoisliang ⋅ 56分钟前 ⋅ 0

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 昨天 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部