当前位置:首页 » 文件传输 » ftp的两个并行连接是什么意思
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ftp的两个并行连接是什么意思

发布时间: 2022-09-25 15:22:23

㈠ ftp是什么意思呢

ftp是文件传输协议的意思。

文件传输协议(英文:FileTransferProtocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。文件传送(file transfer)和文件访问(file access)之间的区别在于:前者由FTP提供,后者由如NFS等应用系统提供。

工作原理

FTP采用Internet标准文件传输协议FTP的用户界面,向用户提供了一组用来管理计算机之间文件传输的应用程序。

FTP是基于客户———服务器(C/S)模型而设计的,在客户端与FTP服务器之间建立两个连接。

开发任何基于FTP的客户端软件都必须遵循FTP的工作原理,FTP的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条TCP连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应),这种将命令和数据分开传送的思想大大提高了FTP的效率。

㈡ FTP文件传送协议为什么有两个TCP连接

通过FTP传送文件,双方至少需要建立两个TCP连接,一个称为控制连接,用于传送FTP命令;
另一个称为数据连接,用于传输文件数据。

㈢ FTP协议为什么需要两个TCP连接啊(数据和控制连接)

我记得一个是用来发送数据,一个用来接收数据,
只是它们所用的端口不一样,
一个用20(接收数据) ,一个用21(发送数据)。
如果只是一个连接的话,那就是复用一个端口,如果你清楚的话,
端口之间通信需要传输协议才能建立连接,
端口的复用等于说在一个端口上同时使用2种协议以上,如果是10种协议呢?
不但会影响传输速度,数据出错的概率也变大了。

㈣ FTP传送数据前要建立两个连接

1, 被动模式(PORT):
最常用的模式
A, 客户端从任何端口到服务器的21端口,21端口为默认控制端口,用户登陆等各种控制命令都由21端口连接(S<-C)。
B, 服务器的21端口到任何大于1024的端口,此过程与A过程构成了完整的FTP控制。(S->C)。
C, 服务器指定随机端口(大于1024),通知客户端准备数据传输。此命令中,明示了服务器IP地址。(S>C)。
D, 协商完毕,开始数据传输,数据从C过程中服务器指定的随机端口传输。(S<->C)。

2, 主动模式(PASV):
A, 客户端从任何端口到服务器的21端口,21端口为默认控制端口,用户登陆等各种控制命令都由21端口连接(S<-C)。
B, 服务器的21端口到任何大于1024的端口,此过程与A过程构成了完整的FTP控制。(S->C)。
C, 客户端指定随机端口(大于1024),通知服务器准备传送数据。(S<C)
D, 协商完毕,开始数据传输,数据从C过程中客户端指定的随机端口传输,服务器端口固定为20端口。(S<->C)。

㈤ FTP中存在的两个并行连接的作用及特点

你好,你是曲师大的吧。

我是你们司广涛老师

我说了可以写英文
这是课件里的,你直接背下来就行了

control: exchange commands, responses between client, server. It remains open throughout the ration of the user session
“out of band control”
data: file data to/from server. A new data connection is created for each file transferred within a session, so it is nonpersistent.
(你照着写就行,如果能翻译出来最好,其实这一段我也不会翻译,课件中能翻译得我都已经翻译了,剩下的不会翻译得你们自己翻译着看吧,不好意思了。)

㈥ FTP可以有多个TCP连接用于多个并行文件传输

尽管理论上可以让FTP服务器支持多个并发传输,但它不受 RFC 或任何已知的实现。

该块很简单,控制连接在接收到传输请求后,在数据传输完成之前不会返回最终状态或接受新命令。因此,尽管您可以排队另一个传输请求,但实际上服务器不会处理它,直到当前的传输请求完成。

如果您想要多个文件传输,只需记录日志进入FTP服务器多次使用不同的程序或命令行窗口,并且每个都启动一次传输。

㈦ 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)。

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

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

现在用户要列出服务器上的目录结构(使用ls或dir命令),那么首先就要建立一个数据通道,因为只有数据通道才能传输目录和文件列表,此时用户会发出PORT指令告诉服务器连接自己的什么端口来建立一条数据通道(这个命令由控制信道发送给服务器),当服务器接到这一指令时,服务器会使用20端口连接用户在PORT指令中指定的端口号,用以发送目录的列表(如图3)。

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

当完成这一操作时,FTP客户也许要下载一个文件,那么就会发出get指令,请注意,这时客户会再次发送PORT指令,告诉服务器连接他的哪个"新"端口,你可以先用netstat -na这个命令验证,上一次使用的6044已经处于TIME_WAIT状态(如图4)。

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

当这个新的数据传输通道建立后(在微软的系统中,客户端通常会使用连续的端口,也就是说这一次客户端会用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)。

图5:使用CUTEFTP Pro以PASV模式连接服务器

请注意连接LOG里有这样几句话:

COMMAND:> PASV
227 Entering Passive Mode (127,0,0,1,26,108)
COMMAND:> LIST
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:> PORT 127,0,0,1,28,37
200 PORT command successful.
COMMAND:> LIST
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不很了解的朋友。

㈧ FTP传输文件时,客户机和服务器之间需要建立多少个并行的TCP连接

2个,一个TCP连接用于控制,另外一个TCP连接用来传输数据。

㈨ 大家好 我问一个问题 就是什么是FTP 他们告诉我的话是‘FTP地址...........’ 这个FTP是什么意思

FTP文件传送协议(File Transfer Protocol,简称FTP),是一个用于从一台主机到另送文件的协议。该协议的历史可追溯到1971年(当时因特网尚处于实验之中),不过至今仍然极为流行。FTP在RFC 959中具体说明。下图是它提供的服务的概貌。

图1 FTP在本地和远程文件系统之间传输文件

在一个典型的FTP会话中,用户坐在本地主机前,想把文件传送到一台远程主机或把它们从一台远程主机传送来。该用户必须提供一个用户名—口令对才能访问远程账号。给出这些身份认证信息后,它就可以在本地文件系统和远程文件系统之间传送文件了。如图中所示,用户通过一个FTP用户代理与FTP交互。他首先提供一个远程主机的主机名,这使得本地主机中的FTP客户进程建立一个与远程主机中的FTP服务器进程之间的连接。用户接着提供用户名和口令,这些信息将作为FTP命令参数经由TCP连接传送到服务器。服务器批准之后,该用户就在本地文件系统和远程文件系统之间拷贝文件。

HTTP和FTP都是文件传送协议,它们有许多共同的特征,譬如说都运行在TCP之上。不过这两个应用层协议之间存在重要的差别。最重要的差别是FTP使用两个并行的TCP连接来传送文下一节件,一个是控制连接,一个是数据连接。控制连接用于在客户主机和服务器主机之间发送控制信息,例如用户名和口令、改变远程目录的命令、取来或放回文件的命令。数据连接用于真正发送文件。既然TCP使用一个独立的控制连接,我们说FTP在带外(out-of-band)发送控制信息的。另外,用于控制音频和视频等持续媒体数据之传送的RTSP协议也是在带外发送控制信息的。HTTP中,同一个TCP连接既用于承载请求和响应头部,也用于承裁所传送的文件,因此我们说HTTP在带内(in-band)发送控制信息。下一篇文章将讨论的用于电子邮件的主要协议SMTP也在带内发送控制信息。图2展示了FTP的控制连接和数据连接。

图2

当用户启动与远程主机间的一个FTP会话时,FTP客户首先发起建立一个与FTP服务器端口号21之间的控制TCP连接,然后经由该控制连接把用户名和口令发送给服务器。客户还经由该控制连接把本地临时分配的数据端口告知服务器,以便服务器发起建立一个从服务器端口号20到客户指定端口之间的数据TCP连接;为便于绕过防火墙,较新的FTP版本允许客户告知服务器改由客户来发起建立到服务器端口号20的数据TCP连接。用户执行的一些命令也由客户经由控制连接发送给服务器,例如改变远程目录的命令。当用户每次请求传送文件时(不论哪个方向),FTP将在服务器端口号20上打开一个数据TCP连接(其发起端既可能是服务器,也可能是客户)。在数据连接上传送完本次请求需传送的文件之后,有可能关闭数据连接,到再有文件传送请求时重新打开。因此在FTP中,控制连接在整个用户会话期间一直打开着,而数据连接则有可能为每次文件传送请求重新打开一次(即数据连接是非持久的)。

在整个会话期间,FTP服务器必须维护关于用户的状态。具体地说,服务器必须把控制连接与特定的用户关联起来,必须随用户在远程目录树中的游动跟踪其当前目录。为每个活跃的用户会话保持这些状态信息极大地限制了FTP能够同时维护的会话数。无状态的HTTP却不必维护任何用户状态信息。

FTP命令和应答

现在讨论几个较为常用的FTP命令。从客户到服务器的命令和从服务器到客户的应答都是以7位ASCII码格式经由控制连接传送的,因此跟HTTP请求消息一样.FTP命令也是直观可读的。用于分割相继的命令或应答的是一个回车符和一个换行符。每个命令由4个大写的ASCB字符构成,有些命令带有可选的参数。下面给出的是一些较为常见的命令;●USER username:用于向服务器发送用户名。

●PASS passwod:用于服务器发送口令。

●LIST:用于请求服务器发回当前远程目录下所有文件的一个清单。该清单是通过数据连接而不是控制连接发送过来的。

●RETR filename:用于获取远程主机当前目录下的一个文件,与用户代理中的get命令相对应。

●STOR filename:用于存放远程主机当前目录下的一个文件,与用户代理中的put命令相对应。

从客户经由控制连接发送到服务器的FTP命令和用户向用户代理发出的命令之间一般存在一一对应关系。每个命令之后跟随的是从服务器发送到客户的应答。FTP应答是一个3位数值,可能后跟一个可选的消息。这与HTTP响应消息中的状态码和原因短语在结构上是类似的;HTTP的发明者们有意在HTTP响应消息中引入了这个类似性。下面列出了一些典型的应答以及可能后跟的消息。

●331 Username OK,password required

●125 Data connection already open,tranfer starting

●425 Car't open data connection

●452 Error writing

有兴趣更多地了解FD命令和应答的读者可以阅读RFC 959。

下面是采用LEAPFTP客户端登录一个FTP服务器的对话实录,从中可以看到FTP客户端和服务器端的会话过程。

Connecting to xxx.xxx.xxx.xxx, Port 21 (#1)

Connected. Waiting for response.

220 Microsoft FTP Service

USER username

331 Password required for username.

PASS xxxxxx

230 User 9878cn logged in.

SYST

215 Windows_NT

PWD

257 "/mydir" is current directory.

TYPE A

200 Type set to A.

PORT 192,168,xxx,xx,9,198

200 PORT command successful.

LIST

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

226 Transfer complete.

Transfer done: 125 bytes in 0.016 secs (7.81 k/sec)

QUIT

㈩ ftp连接问题

ftp有两个连接,一个控制连接,一个数据连接,Ftp还有两种模式standard和passive的,21端口是控制连接,如果server在内网,应该使用standard ftp,数据连接从server的20端口到客户端的一个高端口,这个高端口是服务器和客户机协商的。

标准FTP连接过程:
客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。
然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。
接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
最后开始传输数据

passive ftp的连接过程:
当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。
第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。
这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
最后开始传输数据

passive mode的ftp的两个连接全部是client发起的
standard mode的ftp的控制连接是client发起的,数据连接是server发起的
如果server在内网,使用passive mode,外部的client要发起的数据连接肯定进不来,
因为你没有相应的端口映射
使用标准模式,数据连接是从内网到外网,默认是可以除去的