CH9121 FTP使用详解
一、FTP简介:
FTP是基于TCP应用层的网络文件传输协议,支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。采用明文通信不加密。
1、Port模式
FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
2、Passive模式
建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。
PS:很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。
二、CH9121做FTP客户端访问服务器
1、Port模式

将CH9121的端口1配置为TCP CLIENT模式,CH9121的端口可以随机也可以固定,目的IP为FTP服务器的IP地址,目的端口号为FTP服务器的端口号默认为21。

将CH9121的端口2配置为TCP SERVER模式,CH9121的端口设置后需要记一下后边会用到,目的端口号为FTP服务器的端口号默认为20。
配置好CH9121连接FTP服务器即可通过端口1的串口获取FTP服务器的如下信息,220表示FTP服务器已经就绪。

端口1的串口收到220后即可发送USER与PASS用以登录FTP服务器,
◇USER anonymous
◆331 User name ok, need password
◇PASS 123456
◆230 User logged in
当服务器回复230即表示CH9121登录FTP服务器成功,随后可通过建立数据通道的连接实现数据传输,注意PORT为主动模式CH9121主动告诉FTP服务器自己开放的数据传输IP与端口,(192,168,100,200)为IP,(11,184)为端口计算方法为11*256+184=3000,也就是CH9121端口2配置的本地端口号。
通过CH9121的端口1的串口发送PORT命令,
◇PORT 192,168,100,200,11,184
◆200 PORT command successful.
当服务器回复200即表示服务器收到了CH9121提供的IP与端口号,当要传输数据时FTP服务器会通过20端口与之建立连接实现数据收发。
比如通过CH9121端口1的串口发送LIST命令获取FTP服务器的根目录
◇LIST
◆150 File status OK ; about to open data connection
当服务器返回150后,服务器会通过20端口主动与CH9121的端口2建立连接并发送根目录信息。
◆drwxrwxrwx 1 owner group 0 Feb 21 19:46 .
dr-xr-xr-x 1 owner group 0 Oct 10 17:38 ..
-rwxrwxrwx 1 owner group 196939 Feb 04 10:01 CH9120 TFTP使用详解.pdf
-rwxrwxrwx 1 owner group 153 Dec 12 16:22 README
-rwxrwxrwx 1 owner group 47 Feb 03 17:04 test.c
需要注意的是每次数据命令执行完毕,服务器的数据端口都会自动关闭,下次通信需要CH9121重新发送PORT提供数据端口的信息。
2、Passive模式
CH9121被动模式目前仅适用于数据端口固定的FTP服务器,与主动的区别是CH9121的端口2需要配置为TCP客户端模式,目的端口为FTP服务器的端口,端口号可以通过CH9121端口1发送PASV获取。
◇PASV
◆227 Entering passive mode (192,168,100,111,61,111)
当FTP服务器回复227 表示FTP服务器处于被动模式且开放的数据通信端口信息为(192,168,100,111,61,111)其中(192,168,100,111)为服务器的IP,(61,111)为端口,可通过61*256+111=15727获取端口号为15727,将CH9121的端口2目的端口号设为15727即可,随后再次登录FTP服务器,发送PASV使得服务器进入被动模式,CH9121的端口2就可以与服务器的数据端口建立连接,之后的增删改查操作与主动模式相同。
需要注意的是使用CH9121被动模式与FTP服务器通信一定要先把服务器的数据端口固定不然无法与之建立数据通信,如果采用CH392、CH395或其他芯片则不需要指定服务器的数据端口号,只需要通过PASV获取服务器端口信息后创建相应的socket即可。


CH9121 FTP使用详解的更多相关文章
- 引用 Windows Server 2003 FTP服务器配置详解
引用 昆神之星 的 Windows Server 2003 FTP服务器配置详解 1.FTP文件传输协议,主要用于计算机之间文件传输,是互联网上仅次于www的第二大服务.本文主要演示如何在Window ...
- Linux中搭建一个ftp服务器详解
来源:Linux社区 作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种 ...
- FTP协议详解(转)
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application ...
- 转FTP协议详解
转自:http://www.cnblogs.com/li0803/archive/2010/11/16/1878833.html FTP 是File Transfer Protocol(文件传输协议) ...
- ftp配置文件详解
### 主配置文件(/etc/vsftpd/vsftpd.conf) 严格来说,整个 vsftpd 的配置文件就只有这个档案!这个档案的设定是以 bash的变量设定相同的方式来处理的, 也就是`参数= ...
- 文件服务器:FTP服务器详解
文件服务器:FTP服务器 数据传输原理 功能简介 文件的传输与管理 不同等级的用户身份:user.guest.anonymous 实体用户.权限较完整 匿名用户.下载资源的能力 命令记录与日志文件记录 ...
- linux下ftp配置文件详解
# 匿名用户配置 anonymous_enable=YES # 是否允许匿名ftp,如否则选择NO anon_upload_enable=YES # 匿名用户是否能上传 anon_mkdir_writ ...
- ftp协议详解
客户端与服务器之间,需要多条连接才能完成应用的协议,属于复杂协议.如FTP,PPTP,H.323和SIP均属于复杂协议. 这里主要介绍ftp协议的工作原理.首先,ftp通信协议有两种工作模式,被动模式 ...
- FTP命令详解
FTP的命令行格式为:ftp -v -d -i -n -g [主机IP或者主机名],其中 -v显示远程服务器的所有响应信息: -n限制ftp的自动登录,即不使用: .n etrc文件: -d使用调试方 ...
- FTP服务详解
FTP服务 本章机构 简介 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文件传输协议".用于Internet上的控制文件的双向传输.同时, ...
随机推荐
- 第四五章 (Nginx+Lua)Lua模块开发
在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发:而且模块化是高性能Lua应用的关键.使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每 ...
- 【Docker】---Docker入门篇(1)
Docker入门篇 简单一句话: Docker 是一个便携的应用容器. 一.Docker的作用 网上铺天盖地的是这么说的: (1) Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得 ...
- Apollo架构设计
Apollo架构设计 Apollo有一点很好,就是它是由国内携程团队开发,而且文档写的很全,代码也完全开源.如果去了解它也可以直接去看它的官方文档. 一.配置中心概念 1.背景 在实际开发中都会与配置 ...
- Oracle生成awr报告操作步骤
1.cmd命令窗口 以sysdba身份登录Oracle 2.执行@?/rdbms/admin/awrrpt命令,并选择报告类型为HTML.输入天数以选择生成报告的时间段,一般默认为最近7天.输入报告开 ...
- 如何安全发布 CompletableFuture ?Java9新增方法分析
如何安全发布 CompletableFuture ?Java9新增方法分析 本文未经允许禁止转载. JDK9 中对于CompletableFuture做了新的增强,除了超时功能(orTimeout), ...
- 第1章 C#和.NET Framework简介
第1章 C#和.NET Framework简介 1.6 CLR 和 .NET Framework .NET Framework 由 CLR 和大量程序库组成.这些程序库由核心库和应用库组成,应用库依赖 ...
- Project Euler 638 题解
q-analog,老玩家集体起立! 这也就是说: \[\binom{n+m}{n}_q=\sum_{\pi\in L_{n,m}}q^{area(\pi)} \] 结束! #include<bi ...
- 表治理-Iceberg过期快照清理
总结 指标 清理前(已优化小文件) 清理后 查询速度 13秒 15秒(波动) 表总大小 26.4G 17.2G metadata目录文件数 75 42 data目录文件数 1501 602 !!!需要 ...
- Monaco Editor 中使用在线版 Copilot
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:文长 引言 现代软件开发中,代码编辑器的功能不断演进,以满 ...
- MySQL - mysql 面试题
事务的四个特点是什么?他们的实现原理是什么? 事务的四个特点是ACID,即原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability). ...