一、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使用详解的更多相关文章

  1. 引用 Windows Server 2003 FTP服务器配置详解

    引用 昆神之星 的 Windows Server 2003 FTP服务器配置详解 1.FTP文件传输协议,主要用于计算机之间文件传输,是互联网上仅次于www的第二大服务.本文主要演示如何在Window ...

  2. Linux中搭建一个ftp服务器详解

    来源:Linux社区  作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种 ...

  3. FTP协议详解(转)

    FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application ...

  4. 转FTP协议详解

    转自:http://www.cnblogs.com/li0803/archive/2010/11/16/1878833.html FTP 是File Transfer Protocol(文件传输协议) ...

  5. ftp配置文件详解

    ### 主配置文件(/etc/vsftpd/vsftpd.conf) 严格来说,整个 vsftpd 的配置文件就只有这个档案!这个档案的设定是以 bash的变量设定相同的方式来处理的, 也就是`参数= ...

  6. 文件服务器:FTP服务器详解

    文件服务器:FTP服务器 数据传输原理 功能简介 文件的传输与管理 不同等级的用户身份:user.guest.anonymous 实体用户.权限较完整 匿名用户.下载资源的能力 命令记录与日志文件记录 ...

  7. linux下ftp配置文件详解

    # 匿名用户配置 anonymous_enable=YES # 是否允许匿名ftp,如否则选择NO anon_upload_enable=YES # 匿名用户是否能上传 anon_mkdir_writ ...

  8. ftp协议详解

    客户端与服务器之间,需要多条连接才能完成应用的协议,属于复杂协议.如FTP,PPTP,H.323和SIP均属于复杂协议. 这里主要介绍ftp协议的工作原理.首先,ftp通信协议有两种工作模式,被动模式 ...

  9. FTP命令详解

    FTP的命令行格式为:ftp -v -d -i -n -g [主机IP或者主机名],其中 -v显示远程服务器的所有响应信息: -n限制ftp的自动登录,即不使用: .n etrc文件: -d使用调试方 ...

  10. FTP服务详解

    FTP服务 本章机构 简介 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文件传输协议".用于Internet上的控制文件的双向传输.同时, ...

随机推荐

  1. Flume架构与源码分析-整体架构

    最近在学习Flume源码,所以想写一份Flume源码学习的笔记供需要的朋友一起学习参考. 1.Flume介绍 Flume是cloudera公司开源的一款分布式.可靠地进行大量日志数据采集.聚合和并转移 ...

  2. typedef的最新理解

    1.typedef的常规用法 typedef unsigned int  UNIT; UINT b; 需要注意的地方有下面几点: ①define 前面替代后面, typedef后面替代前面,这个不要记 ...

  3. C#中的内部函数(子函数)

    private bool GetMedicalAdvice(string zyID, out DataTable dtM, out DataTable dtD) { bool result = fal ...

  4. 玩转云端 | 拥有HBlock这项“存储盘活绝技”,数据中心也能“热辣瘦身”!

    夏天马上就要到了,"瘦身"不光是特定人群的需求,也是数据中心的需求.构建轻量化.低碳化.高性价比的新型数据中心,更有效地支撑经济社会数字化转型,已成为业界主流趋势. 如何让数据中心 ...

  5. 玩转云端 | 如何防爬虫?天翼云边缘安全加速平台AccessOne带你涨姿势!

    玩转云端 | 如何防爬虫?天翼云边缘安全加速平台AccessOne带你涨姿势!

  6. 亮相CCF中国软件大会,天翼云助力千行百业搭上“数字快车”

    中国软件领域规模最大.影响最广的学术会议--CCF中国软件大会(ChinaSoft 2023)在上海国际会议中心开幕.CCF理事长.大会执行委员会荣誉zhu席.中国科学院院士梅宏,上海市经济和信息化委 ...

  7. 腾讯云HAI与DeepSeek携手打造私有化高效代码助手

    今天,我们依然以DeepSeek-R1大模型为核心,继续探索其在实际场景中的可用性.今天的重点将放在基于DeepSeek-R1大模型,结合JetBrains IDEA 插件代码助手(CodeGPT)进 ...

  8. linux安装spark

    1.首先在官网下载http://spark.apache.org/downloads.html, 选择与hadoop对应的版本,对应关系为:spark1.6.2--scala2.10:spark2.0 ...

  9. EMR集群信息查看-Hive

    一.日志 1.hivemetastore日志 简介:查看运行情况,其它组件会通过hivemetastore获取表信息 tail -f /data/emr/hive/logs/hadoop-hiveme ...

  10. FLink14--核心窗口--TumblingWindiwApp

    一.依赖 https://www.cnblogs.com/robots2/p/16048648.html 二. 代码 前言:window用作有keyBy情况,前面没有使用keyBy的话用windowA ...