当前位置:文档之家› FTP协议原理和工作模式讲解

FTP协议原理和工作模式讲解

浅析FTP的PORT和PASV模式工作原理

摘要

通过阅读本文,您可以了解到FTP的基本的工作原理。作者以建立FTP连接到断开FTP连接的方式详细介绍了FTP会话全过程。如果您对PORT模式或者PASV模式的FTP工作原理有些疑惑,相信本文能使您了解更多的细节,使您更加从容的面对企业的网络流量以及安全的管理,特别是如果您的企业正准备在企业内部署ISA Server 2000,或许会给您发布内部服务器带来帮助!

目录

?FTP协议概述

?PORT模式

?PASV模式

?比较分析

?图示

FTP协议概述

起初, FTP并不是应用于IP网络上的协议,而是ARPANEt网络中计算机间的文件传输协议,ARPANET是美国国防部组建的老网络,于1960-1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web 服务器,需要从远程主机上取得HTML文件和CGI程序在本机上工作,他需要从远程存储站点获取文件(远程站点也需安装Web服务器)。当用户完成工作后,可使用FTP将文件传回到Web 服务器。采用这种方法,用户无需使用Telnet登录到远程主机进行工作,这样就使Web服务器的更新工作变得如此的轻松。

FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的"三次握手"的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。

下面,让我们来看看,一个FTP客户在和服务器连接是怎么样的一个过程(以标准的FTP端口号为例)。

首先,FTP并不像HTTP协议那样,只需要一个端口作为连接(HTTP的默认端口是80,FTP 的默认端口是21),FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT 模式),是用来建立数据传输通道的,主要有3个作用

?从客户向服务器发送一个文件。

?从服务器向客户发送一个文件。

?从服务器向客户发送文件或目录列表。

其次,FTP的连接模式有两种,PORT和PASV。PORT模式是一个主动模式,PASV是被动模式,

这里都是相对于服务器而言的。为了让大家清楚的认识这两种模式,朗月繁星分别举例说明。

PORT模式

当FTP客户以PORT模式连接服务器时,他动态的选择一个端口号(本次试验是6015)连接服务器的21端口,注意这个端口号一定是1024以上的,因为1024以前的端口都已经预先被定义好,被一些典型的服务使用,当然有的还没使用,保留给以后会用到这些端口的资源服务。当经过TCP的三次握手后,连接(控制信道)被建立(如图1和图2)。现在用户要列出服务器上的目录结构(使用ls或dir命令),那么首先就要建立一个数据通道,因为只有数据通道才能传输目录和文件列表,此时用户会发出PORT指令告诉服务器连接自己的什么端口来建立一条数据通道(这个命令由控制信道发送给服务器),当服务器接到这一指令时,服务器会使用20端口连接用户在PORT指令中指定的端口号,用以发送目录的列表(如图3)。当完成这一操作时,FTP客户也许要下载一个文件,那么就会发出get指令,请注意,这时客户会再次发送PORT指令,告诉服务器连接他的哪个"新"端口,你可以先用netstat -na这个命令验证,上一次使用的6044已经处于TIME_WAIT状态(如图4)。当这个新的数据传输通道建立后(在微软的系统中,客户端通常会使用连续的端口,也就是说这一次客户端会用6045这个端口),就开始了文件传输的工作。

PASV模式

然而,当FTP客户以PASV模式连接服务器时,情况就有些不同了。在初始化连接这个过程即连接服务器这个过程和PORT模式是一样的,不同的是,当FTP客户发送ls、dir、get等这些要求数据返回的命令时,他不向服务器发送PORT指令而是发送PASV指令,在这个指令中,用户告诉服务器自己要连接服务器的某一个端口,如果这个服务器上的这个端口是空闲的可用的,那么服务器会返回ACK的确认信息,之后数据传输通道被建立并返回用户所要的信息(根据用户发送的指令,如ls、dir、get等);如果服务器的这个端口被另一个资源所使用,那么服务器返回UNACK的信息,那么这时,FTP客户会再次发送PASV命令,这也就是所谓的连接建立的协商过程。为了验证这个过程我们不得不借助CUTEFTP Pro这个大家经常使用的FTP客户端软件,因为微软自带的FTP命令客户端,不支持PASV模式。虽然你可以使用QUOTE PASV这个命令强制使用PASV模式,但是当你用ls命令列出服务器目录列表,你会发现它还是使用PORT方式来连接服务器的。现在我们使用CUTEFTP Pro以PASV模式连接服务器(如图5),请注意连接LOG里有这样几句话:

COMMAND:> P ASV

227 Entering Passive Mode (127,0,0,1,26,108)

COMMAND:> L IST

STATUS:> Connecting ftp data socket 127.0.0.1: 6764...

125 Data connection already open; Transfer starting.

226 Transfer complete.

其中,

227 Entering Passive Mode (127,0,0,1,26,80). 代表客户机使用PASV模式连接服务器的26x256+108=6764端口。(当然服务器要支持这种模式)

125 Data connection already open; Transfer starting.说明服务器的这个端口可用,返回ACK信息。再让我们看看用CUTEFTP Pro以PORT模式连接服务器的情况。其中在LOG里有这样的记录:COMMAND:> P ORT 127,0,0,1,28,37

200 PORT command successful.

COMMAND:> L IST

150 Opening ASCII mode data connection for /bin/ls.

STATUS:> Accepting connection: 127.0.0.1:20.

226 Transfer complete.

STATUS:> Transfer complete.

其中,

PORT 127,0,0,1,28,37告诉服务器当收到这个PORT指令后,连接FTP客户的28x256+37=7205这个端口。

Accepting connection: 127.0.0.1:20表示服务器接到指令后用20端口连接7205端口,而且被FTP 客户接受。

比较分析

在这两个例子中,请注意: PORT模式建立数据传输通道是由服务器端发起的,服务器使用20端口连接客户端的某一个大于1024的端口;在PASV模式中,数据传输的通道的建立是由FTP客户端发起的,他使用一个大于1024的端口连接服务器的1024以上的某一个端口。如果从C/S 模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,比如使用微软的ISA Server 2000发布一个FTP服务器,这一点非常关键,如果设置错了,那么客户将无法连接。

最后,请注意在FTP客户连接服务器的整个过程中,控制信道是一直保持连接的,而数据传输通道是临时建立的。

在本文中,朗月繁星把重点放到了FTP的连接模式,没有涉及FTP的其他内容,比如FTP的文件类型(Type),格式控制(Format control)以及传输方式(Transmission mode)等。不过这些规范大家可能不需要花费过多的时间去了解,因为现在流行的FTP客户端都可以自动的选择正确的模式来处理,对于FTP服务器端通常也都做了一些限制,如下

?类型:A S C I I或图像。

?格式控制:只允许非打印。

?结构:只允许文件结构。

?传输方式:只允许流方式

至于这些内容,限于篇幅朗月繁星在这里就不想再介绍了。希望这篇文章能对大家有些帮助,特别是正在学习ISA Server2000的朋友和一些对FTP不很了解的朋友。

OK,就此驻笔了,希望大家与我交流。

图示

图1:FTP客户使用FTP命令建立于服务器的连接

图2:用netstat命令查看,控制信道被建立在客户机的6015和服务器的20端口

图3:ls命令是一个交互命令,它会首先与服务器建立一个数据传输通道。经验证本次试验客户机使用6044端口

图4:使用netstat命令验证上一次使用ls命令建立的数据传输通道已经关闭

图5:使用CUTEFTP Pro以PASV模式连接服务器点此可看详图

作者:吕劼(朗月繁星) aloneV@https://www.doczj.com/doc/3819113209.html,

2002年10月24日

版权声明

凡在本网站发表的文章,作者必须保证是原创文章;如果不是原创文章,由此带来的版权纠纷由作者自己承担。微软有义务对本站点发表的文章进行审核,但您需要考虑这些文章的使用风险。

本站点仅提供一个用户相互交换技术信息和学习的园地,并不对来自社区用户的技术文章承担任何风险。

ISA下FTP的PORT和PASV模式解决办法

作者:RealSky 转载日期:2003.10.19 修订日期:来源于网络一点通

滚屏(右键暂停)有很多人对FTP的问题多多,大家参考、讨论一下。我的环境如下:

SERVER:ISA SP1,IIS

CLIENT:Windows 2000 and XP, CuteFTP

本文主要讨论ISA和FTP在同一台机器上的处理办法。

大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。一般,FTP连接包括:

一个控制连接(control connection)

这个连接用于传递客户端的命令和服务器端对命令的响应。它使用服务器的21端口,生存期是整个FTP会话时间。

几个数据连接(data connection)

这些连接用于传输文件和其它数据,例如:目录列表等。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,数据连接既可能是客户端发起的,也可能是服务器端发起的。

在FTP协议中,控制连接使用周知端口21,因此使用ISA的IP PACKET FILTER就可以这种连接进行很好的安全保护。相反,数据传输连接的目的端口通常实现无法知道,因此处理这样的端口转发非常困难。FTP协议使用一个标准的端口21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。FTP的数据连接和控制连接的方向一般是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。连接的端口是由服务器端和客户端协商确定的。FTP协议的这个特征对ISA转发以及防火墙和NAT的配置增加了很多困难。

除此之外,还有另外一种FTP模式,叫做被动模式(passive mod)。在这种模式下,数据连接是由客户程序发起的,和刚才讨论过的模式(我们可以叫做主动模式)相反。是否采取被动模式取决于客户程序,在ftp命令行中使用passive命令就可以关闭/打开被动模式。前面我们讲过,FTP协议的数据传输存在两种模式:主动模式和被动模式。这两种模式发起连接的方向截然相反,主动模式是从服务器端向客户端发起;被动模式是客户端向服务器端发起连接。

我们回到ISA的情况,如果采用被动模式,由于IIS是完全随机的选择一个端口,并告知客户,然后客户进行主动连接,这就意味着在ISA上,你要让所有的端口都允许动态入站连接才行,这样肯定不行,因为太危险了,等于打开了所有的端口连接。

如果采用主动模式(PORT Mode),IIS选择好端口后,主动与客户进行连接,这时候不需要像PASV模式那样打开所有的动态入站连接,而且正好相反,我们需要打开所有的动态出站连接即可,安全性增加很多。而且由ISA的IP PACKET FILTER只对ISA本机起作用,不会造成局域网内的客户“放了羊”。

所以,我个人这样做的:

(1)由于IIS和ISA都在一台机器上,所以它俩都在侦听21号端口(IIS默认情况下会侦听所有地址的21端口),所以我们首先要让IIS只侦听内网地址的PORT 21,在DOS下,你可以通过NETSTAT -NA > abc.txt,然后打开这个文件,你会看到0.0.0.0 21 LISTENING字样。

输入如下命令:

net stop msftpsvc (停止FTP服务)

进入\Inetpub\adminscripts\目录

cscript adsutil.vbs set msftpsvc/disablesocketpooling true (停止侦听)

net start msftpsvc (启动FTP服务)

(2)在IIS控制台里面,ftp->Property->FTP Site->IP Address改为内网地址。现在,FTP服务只侦听内网IP的21号端口了。

(3)大家可能这时候有疑问,如果是IIS主动连接客户端,那客户端的防火墙是不是会阻止这个连接(PASV模式不存在这个问题)。为了防止这种情况,我们可以强制IIS不能与客户端的任意端口进行连接,而只有客户端连接IIS的端口进行数据传输。这样就可以解决PORT MODE与客户端防火墙的冲突。方法:修改注册

表,HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\,将EnablePortAttack的值由0改为1,然后重新启动FTP服务。

(4)在ISA里面,使用SERVER PUBLISH的方法发布FTP服务,其中:IP address of internal server 填写ISA的内部网卡的IP,IP address of external server 填写ISA的外部网卡的IP,Mapped server protocol 选择 FTP Server。

(5)然后在IP Packet Filter建立一条新RULES,Protocol->TCP,Direction->Outbound,Local Port->Dymanic,Remote Port->All。

这是我的解决办法,但是并不完美,主要是:

(1)客户不能使用PASV方法进行连接,原因上面已经讲了。

(2)由于第五条,所以ISA服务器随着保证了对外部访问的限制,却无法限制ISA本机对外部的访问。我也把我的方法做了一下实验,使用serv-u做的,有一点错误,不过终归做了出来,下面总结一下:

PASV服务器放在ISA后面,其实就是要解决两个问题:

1、PASV的端口。我上面的方法提出使用secondary connection,但事实证明不对,应该每个PASV端口都建立一条primary connection,然后分别建立server publishing rules,有多少个PASV端口,就要建立多少条。

这里还可以引出另一个话题,就是对Web publishing rules的运用,tony你应该知道,通过Web publishing rules也可以发布ftp服务器,但rule里面只给了一个ftp端口的选项,很明显,这是为PORT模式的FTP服务器准备的,因为PORT模式的数据连接是由服务器发起的,在服务器一边,不存在穿过防火墙的问题。

使用Web publishing rules还有一个很令人振奋的特性,就是支持动态公用IP用户,不需要象server publishing rules那样,每拨一次号都要修改一次外部地址。如果在Web publishing rules

中也能搞定PASV问题,那么对于那些使用拨号上网而又想在内网发布PASV服务器的人来说,简直是天大的喜讯。

需要好好考虑的是如何通过那个只能填一个端口的选项来发布随机的PASV端口?我从今天的实验找到了一点灵感,就是也象上面说的那样,每个PASV端口都设置一条Web publishing rules!我还未做这个实验,还不能证实这样做行不行,相信晚上就会有结果了。

当然,还需要考虑如何控制PASV模式端口的范围,serv-u可以设定,而IIS的FTP不行。

2、是服务器向客户端传送IP的问题。当FTP客户端登录进入服务器的时候,PASV模式服务器会向客户端传送本机的IP地址和数据端口,当服务器放在内网中的时候,服务器会向客户端返回内网的IP,这当然是不能完成连接的,需要让服务器返回ISA的外网地址。本来,解决方法可以使用firwall client的application settings中的nameresolutionforlocalhost参数,设为P就可以让应用程序返回ISA的外网地址,但这个参数是供firewall client使用的,而发布服务器不能安装firewall client,这很可惜。

幸好,还是有一个好消息,就是serv-u本身具有返回ISA外网地址这样的功能,方法是先选中新建FTP服务器的属性,在domain标签里选择“enable dynamic dns”,此时会出现第二个标签,叫“dynamic dns”,然后到https://www.doczj.com/doc/3819113209.html,申请动态域名,申请后会得到一个key,在此标签中填入此key即可。最后一步,是到新建服务器的settings属性中,选择advanced标签,选中“allow passive mode data transfer”,旁边的IP地址框留空。这个框对于拨号用户不用填,只有出口使用固定地址才需要填。

这样,serv-u向客户端返回IP和端口前,会先向https://www.doczj.com/doc/3819113209.html,查询到ISA外网的地址,再发送给客户端。解决了这两个问题,剩下的工作就简单了。

从以上内容也可以说明一点,从内网不能发布IIS的FTP服务器,因为IIS既没有选项可以选择PASV端口的范围,也没有办法让其返回ISA外网的地址。而serv-u这两条都可以满足。当然,在微软的网站上也可能有方法解决IIS的这两个问题。

发布FTP服务器的时候,要注意FTP服务器有PORT和PASV两种模式。两者的共同点,是都使用21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机。发布的时候要考虑这个差别。

如果FTP服务器在内部网络中,在建立server publish rules时(虽然Web publish rules也能发布ftp服务器,但它并没有提供对port和pasv模式的处理),protocol definitions中的21 inbound 条目要建立一个secondary connection,为20端口上的inbound或1025-65535端口之间的inbound。

如果FTP服务器建立在ISA服务器上,就需要在ip packet filters中设置相关的条目,对于PORT模式,很简单,开放20 inbound就是,但pasv模式就麻烦一点,因为ip packet filters不能设置端口段,但我们也不可能把几万个端口逐个写一遍,只能把local port设置为dynamic,remote port设置为all ports,当然,对安全性这是个损害。

幸运的是,有些PASV模式的FTP服务器能够设置PASV模式端口的范围,比如serv-u,它能够把PASV模式端口控制在最多50个端口范围内,如果为serv-u设置的并发用户数不多,

那么我们就可以为每个PASV端口写一条filter,不需要开放所有的端口了。如果使用IIS的FTP 服务器,这个FTP服务器没有提供选择PASV模式端口的功能,只能如上所述那样,开放dynamic 和all ports。

从你上面的出错信息来看,你应该是使用IE来访问FTP服务器吧。IE的FTP客户端与其它专业FTP客户端不同,不能够自动检测FTP服务器的类型以及根据服务器的类型改变客户端的种类。IE只提供了一个手工选项来改变PORT和PASV客户端角色,就是internet选项->高级->为FTP站点启用文件夹视图,选择它,IE为PASV模式客户端,不选则为PORT客户端。你需要根据服务器的类型手工更改这个选项。如果服务器的出口是ADSL类的链路,还要把“使用被动FTP(为防火墙和DSL调制解调器兼容性)”一项选上,这两个选项只在IE5.5以上版本提供。

FTP工作原理及部署方案

FTP 工作原理及部署方案 1、FTP简介 FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。如果用户需要将文件从自己的计算机上发送到另一台计算机上,可使用FTP上传(upload)或(put)操作,而更多种的情况是用户使用FTP下载(download)或获取(get)操作从FTP服务器上下载文件。 2、FTP工作原理 完整的FTP文件传输需要建立两种类型的连接: 一种为文件传输命令,称为控制连接。 一种实现真正的文件传输,称为数据连接。 3、FTP控制链接 客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为FTP控制连接。 4、FTP数据连接 FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP 数据连接就是FTP传输数据的过程,它有两种传输模式:主动传输模式(PORT)和被动传输模式(PASSIVE,简称PASV)。主动传输模式下,FTP服务器使用20端口与客户端的暂时端口进行连接,并传输数据,客户端只是处于接收状态。被动传输模式下,FTP服务器打开一个暂态端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。 5、FTP传输方式 ASCII传输方式,假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。 但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp 逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。 二进制传输方式,在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。

apache两种工作模式

[url=https://www.doczj.com/doc/3819113209.html,/web/host.php][/url] 刚接触这两个配置时很迷糊,全部开启或全部注释没有几多变化。今天搜索到这么一篇讲得还不错的文章,看了几篇,还是不能完全记住,做一个收藏。 空闲子进程:是指没有正在处理请求的子进程。 1、prefork.c模块(一个非线程型的、预派生的MPM) prefork MPM 使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:他能够使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,他也更容易调试一些。 ServerLimit 20000 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 1000 MaxRequestsPerChild 0 ServerLimit 2000 //默认的MaxClient最大是256个线程,假如想配置更大的值,就的加上ServerLimit这个参数。20000是ServerLimit这个参数的最大值。假如需要更大,则必须编译apache,此前都是无需重新编译Apache。 生效前提:必须放在其他指令的前面 StartServers 5 //指定服务器启动时建立的子进程数量,prefork默认为5。 MinSpareServers 5 //指定空闲子进程的最小数量,默认为5。假如当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。MaxSpareServers 10 //配置空闲子进程的最大数量,默认为10。假如当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设的太大。假如您将该指令的值配置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。MaxClients 256 //限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。要增大这个值,您必须同时增大ServerLimit 。 MaxRequestsPerChild 10000 //每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。假如MaxRequestsPerChild为"0",子进程将永远不会结束。 将MaxRequestsPerChild配置成非零值有两个好处: 1.能够防止(偶然的)内存泄漏无限进行,从而耗尽内存。 2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。 工作方式: 一个单独的控制进程(父进程)负责产生子进程,这些子进程用于监听请求并作出应答。Apache总是试图保持一些备用的(spare)或是空闲的子进程用于迎接即将到来的请求。

连不上某个FTP站点的解决办法

连不上某个FTP站点的解决办法 一、FTP的两个模式 FTP的两个模式分为主动模式(PORT)和被动模式(PASV)。若采用主动模式,就是FTP软件请求服务器来连它;若采用被动模式,如同是服务器告诉FTP软件“你来连接我”。 小提示:有防火墙用户不能使用主动模式,这是因为防火墙不允许来自网外的主动连接,所以用户必须同使用被动模式。 二、判断问题是否在传输出模式上 在登录FTP时,经常会出现各种各样的错误,那么哪些是因为传输模式设置不正确所造成的呢?下面这些无法连接的例子,都可能是传输模式设置不正确导致的。 1.当出现“426 data connection closed,transfer aborted”提示时,表示你采用了主动模式的话,而防火墙禁止了来自FTP服务器的主动连接。 2.如果出现“550 Passive mode notallowed on this server”的信息地,则表明FTP 服务器被设置成了不支持被动模式的连接。 3.除此之外,“数据Socket错误,连接已超时”的错误也非常多见,这同样是由传输模式设置不正确引起的。 三、FTP传输模式的切换 既然因传输模式设置不当可以引发多种FTP登录故障,那么在实际应用过程中我们又该如何改变其传输模式呢?下面我们将常用工具的FTP传输模式切换方法传授给大家。 1.IE IE浏览器是我们登录FTP服务器最简单、直接的工具之一,默认使用的是主动模式,切换方法比较简单。启动IE后,打开“工具”菜单中的“Internet选项”,将打开的窗口切换到“高级”选项卡,选中其中的“使用被动FTP”选项并保存设置即可(图1)。

FTP协议原理和工作模式讲解

浅析FTP的PORT和PASV模式工作原理 摘要 通过阅读本文,您可以了解到FTP的基本的工作原理。作者以建立FTP连接到断开FTP连接的方式详细介绍了FTP会话全过程。如果您对PORT模式或者PASV模式的FTP工作原理有些疑惑,相信本文能使您了解更多的细节,使您更加从容的面对企业的网络流量以及安全的管理,特别是如果您的企业正准备在企业内部署ISA Server 2000,或许会给您发布内部服务器带来帮助! 目录 ?FTP协议概述 ?PORT模式 ?PASV模式 ?比较分析 ?图示 FTP协议概述 起初, FTP并不是应用于IP网络上的协议,而是ARPANEt网络中计算机间的文件传输协议,ARPANET是美国国防部组建的老网络,于1960-1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web 服务器,需要从远程主机上取得HTML文件和CGI程序在本机上工作,他需要从远程存储站点获取文件(远程站点也需安装Web服务器)。当用户完成工作后,可使用FTP将文件传回到Web 服务器。采用这种方法,用户无需使用Telnet登录到远程主机进行工作,这样就使Web服务器的更新工作变得如此的轻松。 FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的"三次握手"的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。 下面,让我们来看看,一个FTP客户在和服务器连接是怎么样的一个过程(以标准的FTP端口号为例)。 首先,FTP并不像HTTP协议那样,只需要一个端口作为连接(HTTP的默认端口是80,FTP 的默认端口是21),FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT 模式),是用来建立数据传输通道的,主要有3个作用 ?从客户向服务器发送一个文件。 ?从服务器向客户发送一个文件。 ?从服务器向客户发送文件或目录列表。 其次,FTP的连接模式有两种,PORT和PASV。PORT模式是一个主动模式,PASV是被动模式,

一般热线风速仪有两种工作模式

(1)xx流式 通过热线的电流保持不变,温度变化时,热线电阻改变,因而两端电压变化,由此测量流速。 利用风速探头进行测量。风速探头为一敏感部件。当有一恒定电流通过其加热线圈时,探头内的温度升高并于静止空气中达到一定数值。此时,其内测量元件热电偶产生相应的热电势,并被传送到测量指示系统,此热电势与电路中产生的基准反电势相互抵消,使输出信号为零,仪表指针也能相应指于零点或显示零值。若风速探头端部的热敏感部件暴露于外部空气流中时,由于进行热交换,此时将引起热电偶热电势变化,并与基准反电势比较后产生微弱差值信号,此信号被测量仪表系统放大并推动电表指针变化从而指示当前风速或经过单片机处理后通过显示屏显示当前风速数值。 (2)恒温式 热线的温度保持不变,给风速敏感元件电流可调,在不同风速下使处于不同热平衡状态的风速敏感元件的工作温度基本维持不便,即阻值基本恒定,该敏感元件所消耗的功率为风速的函数。 恒温风速仪则是利用反馈电路使风速敏感元件的温度和电阻保持恒定。当风速变化时热敏感元件温度发生变化,电阻也随之变化,从而造成热敏感元件两端电压发生变化,此时反馈电路发挥作用,使流过热敏感元件的电流发生相应的变化,而使系统恢复平衡。上述过程是瞬时发生的,所以速度的增加就好像是电桥输出电压的增加,而速度的降低也等于是电桥输出电压的降低。 三、电路工作原理 现以恒温式热线风速仪为例来说明它的工作原理(如图1)。把探头接在风速仪电路中电桥的一臂,探头的电阻记为R p,其他三臂的电阻分别为R 1,R 2和R

b。其中R 1=R 2,R b为一可调的十进制精密电阻。 此时,要求热线探头的电阻温度系数很高,而相反的却要求R 1,R 2和R b的电阻温度系数很小。 图1- 1热线风速仪电路原理图 在电桥AC两端加上电压E,当电桥平衡时,BD间无电位差,此时,没有信号输出。当探头没有加热时,探头的电阻值R f叫做冷电阻,各个探头有其不同的冷电阻值。测试时,把一个未知电阻值的探头接入桥路中,调节R b使电桥平衡,这时十进位电阻器R b上的数值就是冷电阻的数值,即为R f。按照所选定的过热比调节R b,使它的数值高出R f,一般推荐值为 1.5R f。这是,仪器中的电路能自动回零反馈,使I w增加,从而使热线探头的温度升高、电阻增大,一直达到R

报文解析FTP主动被动模式和FTP结合NAT使用

FTP模式介绍 FTP的主动模式和被动模式的区别: 主动模式:(也叫Standard模式,PORT方式)FTP服务器主动去连接FTP客户端。FTP客户端告诉FTP服务器使用什么端口进行侦听,FTP服务器和FTP客户端的这个端口进行连接,源端口是20。 被动模式:(也叫Passive模式,也叫PASV方式)FTP服务器被动的等待FTP客户端连接自己。FTP服务器打开指定范围内的某个端口(也叫自由端口,1024--65535之间),被动的等待客户端进行连接。 主被动模式报文解析 建立控制连接的过程 登录的时候客户端是44.1.1.44服务器是33.1.1.33,用户名1密码111111 通过命令行登录 Client:syn 我请求跟你进行连接 Server:ack+syn 可以,我也请求跟你连接 Client:ack 可以(上面是三次握手) Server:response 我这ready准备好了 Client:ack 好的 Client:request 我使用的user是1 Server:response 请输入密码 Client:ack 好的,收到 Client:request 我用的密码是111111 Server: response 用户名1 ,密码111111,正确,logged in,允许进入 Client:ack 好的 上面是进行的连接控制的简单过程,FTP服务器使用的端口号是21,FTP客户端使用的端口号是64023。 主动连接:客户端通过PORT命令告诉服务器自己要使用的数据端口号,然后在客户端主动建立起这个端口的监听。进行文件传输的时候,服务器来连接客户端的这个数据接口,进行数据传输。 FTP客户端想要下载文件,get hfs.exe

ftp工作原理

FTP(文件传输协议)工作原理 目前在网络上,如果你想把文件和其他人共享。最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件。 1、FTP架构 如同其他的很多通讯协议,FTP通讯协议也采用客户机/ 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,以上传或者下载文件。 2、FTP通讯端口知识 FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种: 控制链路--------TCP端口21 所有你发往FTP服务器的命令和服务器反馈的指令都是通过服务器上的21端口传送的。 数据链路--------TCP端口20 数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。 3、FTP连接的两种方式 在数据链路的建立上,FTP Server 为了适应不同的网络环境,支持两种连接模式:主动模式(Port)和被动模式(Pasv)。其实这两种连接模式主要是针对数据链路进行的,和控制链路无关。 主动模式 主动模式是这样工作的:客户端把自己的高位端口和服务器端口21建立控制链路。所有的控制命令比如Is或get 都是通过这条链路传送的。 当客户端需要服务器端给它传送数据时,客户端会发消息给服务器端,告诉自己的位置和打开的高位端口(一般大于1024的端口都就叫高位端口),等候服务器的20端口和客户端打开的端口进行连接,从而进行数据的传输。当服务器端收到信息后,就会和客户端打开的端口连接,这样数据链路就建立起来了。 采用主动模式连接服务器的客户端,当它位于NAT或者防火墙的保护之后时会碰到连接失败的问题。这是因为当防火墙接到服务器发送过来的信息的时候,并不知道应该发送给内部网络中的哪一台客户端造成的。 被动模式 被动模式是这样工作的:当客户端发送数据请求后,服务器也会发信息给客户端,告诉客户端:服务器在本地打开了一个高位端口P,你现在来连接我吧。当客户端收到该信息时,就会去连接服务器端的端口P,连接成功后,数据链路就建立了。

20170402-DC-DC功率变换器的两种工作模式

PWM DC-DC 功率变换器的两种工作模式 普高(杭州)科技开发有限公式 张兴柱 博士 任何一个PWM DC-DC 功率变换器,当输入或者负载发生变化时,其在一个开关周期内的工作间隔数量也会发生变化。为了容易理解,先以电流负载下的Buck 变换器为例子,来说明这种变化。 oL 在负载电流比较大时,该变换器的一个开关周期内,只有两种工作间隔,即有源开关AS 导通、无源开关PS 截止的s DT 间隔,和有源开关AS 截止,无源开关PS 导通的s T D ′间隔。这种工作模式下,电感上的电流始终大于零,称为电感电流连续导电模式,简称为CCM 模式。 由于电容C 上满足安秒平衡定律,也即其在一个开关周期内的平均电流为零,所以电感电流在一个开关周期内的平均值必等于负载电流。当负载电流变小时,电感电流在一个开关周期内的平均值也必然变小,当变小到上图中红色波形的负载电流时,如果再继续变小负载电流的话,电感电流在有源开关AS 截止的间隔内,将减小到零。当无源开关采用二极管时,由于二极管的单向导电特性,一旦流过二极管的电流(在本例子中,即为电感电流)降为零时,二极管就会自动关断而截止,因此在这个负载之下的负载,变换器在一个开关周期内,会增加一个工作间隔,即s T D ′′间隔,这个间隔中的有源开关和无源开关均截止,这样的工作模式被称为电感电流不连续导电模式,简称DCM 模式。其电感电流的波形中,有一段时间的电流为零,如下图所示。 L 任何PWM DC-DC 功率变换器,只要其无源开关采用二极管,那么在它的稳态工作点范围内,通常均有存在两种不同工作模式工作点的可能。这两种工作模式的转换之处,一般称作CCM/DCM 的边界,如上例中红色电感电流波形所对应的负载,即为CCM/DCM 的边界负载,在这个负载之上的负载,变换器工作于CCM ;在这个负载之下的负载,变换器工作于DCM 。

FTP有两种工作模式

今天从公网的服务器连接本地内网的FTP server copy文件时,系统老是提示227 Entering Passive Mode (xxx,xxx,,xxx,xxx,x),很是奇怪,于是上网找资料仔细研究了一下,原来FTP有两种工作模式,PORT方式和PASV方式,中文意思为主动式和被动式,详细介绍如下: 主动FTP : 命令连接:客户端>1024 端口→服务器21 端口 数据连接:客户端>1024 端口←服务器20 端口 被动FTP : 命令连接:客户端>1024 端口→服务器21 端口 数据连接:客户端>1024 端口←服务器>1024 端口 PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立一条数据链路来传送数据。 PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链路来传送数据。 由于我的本地FTP服务器在内网,只是从外网映射了两个端口(20,21),所以无法使用PASV 方式,解决此问题的办法也很简单,关闭客户端的PASV方式,强制其用PORT方式访问服务器,登录FTP服务器后用passive命令关闭客户端的PASV方式,如下: ftp> passive Passive mode off. ftp> passive (再次运行命令可打开) Passive mode on.

sftp-ftp区别工作原理

Sftp和ftp 区别、工作原理等 最近使用SecureFx,涉及了两个不同的安全文件传输协议: -sftp -ftp over SSH2 这两种协议是不同的。sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。ftp over SSH2则象一个二传手。 1、SFTP的工作模式: 图1显示了SFTP的工作模式,它是作为SSH2的一个子服务工作的。 图 1 SFTP工作模式 2、FTP over SSH2 此协议还是基于ftp协议的。在此协议中SSH2服务器起了一个桥梁作用,把数据在客户端和ftp之间转发。ftp协议本身包括两个通道,一个是控制通道,另一个是数据通道。 FTP over SSH2有两种情况,半安全连接(Less Secure Connection)和安全连接(Full Secure Connection)。在半安全连接时,ftp客户端先和SSH2服务器连接,在这个连接中无论控制通道和数据通道都是加密的。但是SSH2服务器和ftp服务器之间就不是加密的了,如果ftp服务器运行在另外一台机器上,SSH2服务器和ftp直接就是明文传输。见图2。

图2半安全连接 图3是安全连接模式的情形,SSH2服务器和FTP服务器在同一台服务器上。 图 3 安全连接 FTP(文件传输协议)工作原理

目前在网络上,如果你想把文件和其他人共享。最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件。 1、FTP架构 如同其他的很多通讯协议,FTP通讯协议也采用客户机/ 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,以上传或者下载文件。 2、FTP通讯端口知识 FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种: 控制链路--------TCP端口21 所有你发往FTP服务器的命令和服务器反馈的指令都是通过服务器上的21端口传送的。 数据链路--------TCP端口20 数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。 3、FTP连接的两种方式 在数据链路的建立上,FTP Server 为了适应不同的网络环境,支持两种连接模式:主动模式(Port)和被动模式(Pasv)。其实这两种连接模式主要是针对数据链路进行的,和控制链路无关。 主动模式

BOOST电路两种工作模式的比较

BOOST 电路两种工作模式的比较 整理者:王伟旭 一、BOOST 电路两种工作模式效率的比较 设BOOST 电路工作于临界状态时算出此时的电感值,当选用电感大于这个值时电路工作于CCM ,当选用电感小于这个值时电路工作于DCM 。实际应用中,多让BOOST 电路工作于CCM ,主要是因为其效率高于DCM 。 对于BOOST 电路电路来说,其电路主要的损耗在于开关管切换过程中,闭合时流过的电流产生的能量。比较CCM 与DCM 的效率就是看哪种模式下开关管消耗的能量多少,这个能量的比较进一步来讲就是比较其流过的电流有效值的大小。 通过计算电路两种模式下的开关管电流有效值大小,进行比较来决定这两种模式的效率高低。 开关管在开关开启的过程中才有电流流过,其值等于电感电流,这个电流在开启到关断这一时刻达到最大值,两种模式下的开关管电流波形分别如图1所示。 图1 开关管电流波形图 首先计算DCM 下流过开关管电流的有效值: ∫=ON T ON rms DCM dt t T I T I 020)()(1 (1.1) 对式1.1化简可得:

0)(3 I D I rms DCM =,其中T T D ON = (1.2) 然后计算CCM 下流过开关管电流的有效值: 21222102221)(3 )(1I I I I D dt I t T I I T I ON T ON rms CCM ++?=+?=∫ (1.3) 对于同样的外部参数的两种模式BOOST 电路(输入、输出电压,功率相同),其输入与输出电流平均值是相等的。通过这个关系我们可以得出I 0与I 1和I 2的关系,如式1.4所示。 210210)()(2 2I I I I I D I D U P I in avg in +=?→?+=== (1.4) 将式1.4关系带入式1.2可得: 212221)(23 I I I I D I rms DCM ++?= (1.5) 即可得到: )()(rms CCM rms DCM I I > (1.6) 二、BOOST 电路两种模式电感感值的比较 对于一个BOOST 电路,通过改变其电感的大小可以使其从DCM 过渡到CCM ,我们依据DCM 和CCM 两种模式下电感传递的能量是相等的这个概念来推证CCM 电感的感值大于DCM 电感的感值。 对于两种模式的电感电流波形如图2所示。 图2 两种模式下电感电流波形示意图

ftp主动被动模式配置混乱导致无法登录

ftp主动被动模式配置混乱导致无法登录 现象:用户反馈ftp无法登陆,ssh登陆是正常的,在登陆ftp的时候提示错误:连接接受发送的数据确认失败,新建ftp站点同样有提示错误:服务器端接口异常,ftp站点添加失败。 1.解决方案1 分析过程及解决方案:我们入机器后查看,确认是/etc/vsftpd/vsftpd.conf,用户主动模式和被动模式设置错误导致。 在/etc/vsftpd/vsftpd.conf文件里用户的源文件是这样的: listen=YES anonymous_enable=NO use_localtime=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=NO xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=NO idle_session_timeout=180 data_connection_timeout=120 ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to https://www.doczj.com/doc/3819113209.html, FTP service. chroot_list_enable=YES chroot_list_file=/etc/ftpchroot ls_recurse_enable=YES pam_service_name=vsftpd userlist_enable=YES log_ftp_protocol=YES max_per_ip=3 pasv_enable=YES pasv_max_port=30000 pasv_min_port=30000 设置出错的原因分析: 在上述/etc/vsftpd/vsftpd.conf文件中connect_from_port_20=YES 是当主动模式开启的时候,是否启用默认的20端口监听的意思 pasv_enable=YES pasv_max_port=30000 pasv_min_port=30000这个是用被动模式进行设置 被动模式正确设置为: PASV_enable=YES 开启被动模式

FTP定义以及原理详解教程

FTP定义以及原理详解教程 网络上FTP下载链接比较常见,FTP常被运用于局域网共享、互联网软件下载、以及互联网共享,它的原理是怎么样的呢?笔者给大家做个详细介绍。 什么是FTP 1. FTP协议 什么是FTP呢?FTP 是TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。 2. FTP服务器和客户端 同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP 协议提供服务,进行文件传送的计算机就是FTP 服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。用户要连上FTP 服务器,就

要用到FPT 的客户端软件,通常Windows自带“ftp”命令,这是一个命令行的FTP 客户程序,另外常用的FTP 客户程序还有CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-猫眼等。 3. FTP用户授权 3.1 用户授权 要连上FTP 服务器(即“登陆”),必须要有该FTP 服务器授权的帐号,也就是说你只有在有了一个用户标识和一个口令后才能登陆FTP服务器,享受FTP服务器提供的服务。 3.2 FTP地址格式(168字) foolish_tyu (216554)于2003/03/28(23:29:05).. FTP地址如下: ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名 上面的参数除FTP服务器IP或域名为必要项外,其他都不是必须的。如以下地址都是有效FTP地址: ftp://https://www.doczj.com/doc/3819113209.html, ftp://list:list@https://www.doczj.com/doc/3819113209.html, ftp://list:list@https://www.doczj.com/doc/3819113209.html,:2003 ftp://list:list@https://www.doczj.com/doc/3819113209.html,:2003/soft/list.txt

FTP的两种链接工作模式—主动模式和被动模式

文汇建站:https://www.doczj.com/doc/3819113209.html, FTP的两种链接工作模式—主动模式和被动模式 写这篇文章主要是因为在使用ftp的时候有时候上传文件会失败,然后就卡住很久,原因就是默认主动模式受限于客户端防火墙的限制,有时候会导致上传文件失败所以整理了区别了一下两种。 一、FTP的两种工作模式 FTP两种链接模式:主动模式(Active FTP)和被动模式(Passive FTP) 在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。 在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。 总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP 是指服务器被动地等待客户端连接自己的数据端口。 被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTP服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后的主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

ESP8266两种工作模式数据传输

ESP8266支持3种模式:Station模式、AP模式和Station+AP混合模式。关于这三种模式的区别可以类比我们的手机,当手机连接无线网时,此时手机为Station模式,当手机打开移动热点时,此时手机为AP模式。简单的说就是Station模式就是作为终端,AP模式就是作为路由器。而Station+AP混合模式,就和路由器的无线桥接功能是一样的,既可以连接别的无线网,同时也可以自己作为路由器。 本文分享ESP8266的两种工作模式下的数据传输:Station模式作为TCP客户端、AP模式作为TCP服务器,分别和网络调试助手进行通讯的AT指令配置流程。 AT指令可以由MCU的串口来完成,这样就可以实现两块ESP8266之间进行通讯,电脑和ESP8266的无线控制,手机和ESP8266的无线控制等。 E S P8266作为T C P客户端,电脑作为T C P服务器

ESP8266模块配置为Station模式连接WiFi,电脑也连接同一个WiFi,电脑使用网络调试助手建立一个TCP服务器,指定服务器地址和端口号。 ESP8266作为TCP客户端,和电脑上的网络调试助手进行通讯,或者直接透传。实现的效果是模块发送的数据,电脑可以接收到,电脑发送的数据,模块可以接收到。 1.模块配置为Station模式:AT+CWMODE=1 2.配置WiFi信息按照信号强度排序:AT+CWLAPOPT=1,127 3.扫描附近的WiFi信息:AT+CWLAP //配置当执行AT+CWLAP指令时,WiFi信息按照信号强度排序 AT+CWLAPOPT=1,15 //1表示按照信号强度排序,15表示WiFi信息只显示加密方式,WiFi名称,信号强度,MAC地址 //扫描附近的WiFi信息 AT+CWLAP +CWLAP:([加密方式],[WiFi名称],[RSSI信号强度],[MAC地址]) +CWLAP:(4,"Tenda_A3AA00",-76,"c8:3a:35:a3:aa:01") +CWLAP:(4,"Tenda_A3AA00 Sander",-81,"e4:d3:32:9c:e3:c4") +CWLAP:(3,"EZVIZ_D3*******",-81,"50:13:95:84:e0:16") +CWLAP:(4,"TP-LINK_4723",-84,"cc:08:fb:c1:47:23") 4.连接指定WiFi:AT+CWJAP="Tenda_A3AA00","password123" //连接指定AP AT+CWJAP="Tenda_A3AA00","password123" //如果WiFi名称重复,需要指定MAC地址来确定要连接的WiFi AT+CWJAP="Tenda_A3AA00","password123","c8:3a:35:a3:aa:01" //如果WiFi名称或密码中含有特殊字符,前面要添加\转义符号 如,目标WiFi名称为: ab\,c,密码为: 0123456789"\,则指令如下: AT+CWJAP="ab\\\,c","0123456789\"\\" //查询已经连接的WiFi信息 AT+CWJAP? //断开当前WiFi连接 AT+CWQAP 5.设置单连接模式:AT+CIPMUX=0 //如果之前使用AP模式开启过TCP服务器,要先关闭TCP服务器 AT+CIPSERVER=0 //设置单连接模式 AT+CIPMUX=0 6.电脑和模块连接同一WiFi,电脑启动网络调试助手,并建立TCP服务器。

FTP主动模式和被动模式

FTP主动模式和被动模式 FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是20(数据端口)和21(命令端口)。但FTP工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。 (一)主动FTP 主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。 针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP: 1. 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接) 2. FTP服务器的21端口到大于1024的端口。(服务器响应客户端的控制端口) 3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口) 4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口) (二)被动FTP 为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP: 1. 从任何大于1024的端口到服务器的21端口(客户端初始化的连接) 2. 服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接) 3. 从任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到服务器指定的任意端口) 4. 服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)可以简单概括为以下两点: 1、主动FTP: 命令连接:客户端 >1024端口 -> 服务器 21端口 数据连接:客户端 >1024端口 <- 服务器 20端口 2、被动FTP: 命令连接:客户端 >1024端口 -> 服务器 21端口 数据连接:客户端 >1024端口 -> 服务器 >1024端口 (三)主动与被动FTP优缺点: 主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

FTP的主动模式

PORT FTP是常用的FTP工作方式,当客户端的连接请求到来时,FTP服务器会利用默认的21端口与客户端建立连接,该连接属于命令通道,利用该通道来下达控制指令;接下来服务器便会在20端口接受客户端的数据传输连接请求,并建立数据传输通道,开始传输数据,数据传输完毕后,便会关闭该次的数据连接,接着又会在20端口等待接受新的数据连接。由此可见,基于端口的工作方式,服务器的数据端口始终使用20,建立FTP控制连接则使用标准的21端口。根据需要,可以在配置文件中重新设置所使用的端口。 本示例客户端IP是192.168.120.168,服务器IP是192.168.120.240,在客户端上通过命令行连接FTP服务器,并输入ls、pwd命令,然后退出(见图一)。通过抓包工具来查看用户从连接FTP服务器到退出FTP服务器经过的所有过程。 图一:示例

1.因为FTP使用的是TCP协议,所以客户端在通过ftp 19 2.168.120.240连接服务器时,首先会经历TCP的三次握手(见图二、图三、图四)来建立控制通道。客户端使用任意的端口N (N>1024)来连接FTP服务器默认的21端口。 2.在TCP三次握手结束后,服务器端正式响应客户端的控制连接请求,控制通道建立(见图五)。 3.客户端向服务器发送含有ACK的数据段来确认控制连接建立。 4.客户端向服务器发送用户名(见图六)。 5.服务器向客户端发送含有ACK的数据段来确认用户名。 6.服务器向客户端询问密码(见图七)。 7.客户端向服务器发送含有ACK的数据段来确认会发送密码。 8.客户端向服务器发送密码,密码为明文(见图八)。 9.服务器向客户端发送含有ACK的数据段来确认密码收到。 10.服务器向客户端发送登陆成功的信息(见图九)。 11.客户端向服务器发送含有ACK的数据段来确认收到登陆成功的信息。 12.客户端向服务器发送PORT N+1指令,N+1是客户端想要的数据传输端口号(见图十)。port 192,168,120,168,200,100;192,168,120,168是客户端自己的IP地址;200,100部分的第一个阿拉伯数字乘以256,然后加上第2个阿拉伯数字就得到数据传输端口号,所以客户端指定的数据传输端口号为200*256+100=51300。 13.服务器向客户端发送含有ACK的数据段来确认收到PORT N+1指令。 14.服务器响应PORT指令成功,同意客户端使用PORT N+1为数据传输端口(见图十一)。 15.客户端向服务器发送ls指令(见图十二)。

FTP服务的两种工作模式

主动模式: FTP客户机向服务器的FTP控制端口(默认是21)发送请求,服务器接受连接,建立一条命令链路,当需要传送数据时候,客户端在命令链路上用PORT命令告诉服务器:“我打开了某个端口,你过来连接我。”于是服务器从20端口向客户端的改端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立的过程中是服务器主动请求,所以称为主动模式。 FTP 主动模式(命令行是主动模式) 服务器用20号端口,主动连接客户机的大于1024的随机端口。 被动模式: FTP客户端向服务器的FTP控制端口发送连接请求,服务器接收连接,建立一条命令链路,当需要传送数据时候,服务器在命令链路上用PASV命令告诉客户端;“我打开了某端口,你过来连接我。”于是客户端向服务器的该端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立的过程中是服务器被动等待客户端请求,所以称为被动模式。 FTP被动模式 客户机用大于1024的随机端口,主动连接服务器大于1024的随机端口。 主动模式下的FTP服务器,需要在服务器和客户端之间的防火墙中设置一下策越: 允许FTP客户机从大于1024的端口连接FTP服务器的21端口 允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。 允许FTP服务器从20端口主动连接FTP客户机中大于1024的端口 允许FTP客户机从大于1024的端口回应来自FTP服务器20端口的网络连接 被动模式下的FTP服务器,需要在服务器和客户端之间的防火墙中设置一下策越: 允许FTP客户机从大于1024的端口连接FTP服务器的21端口 允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。 允许FTP客户机从大于1024端口主动连接FTP服务器中大于1024的端口 允许FTP服务器从大于1024的端口回应来自FTP客户机大于1024端口的网络连接

相关主题
文本预览
相关文档 最新文档