
问题描述:
其实FTP是什么啊?
解析:
FTP(File Transfer Protocol)是文件传输协议的简称。
FTP的作用
正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文丛掘件送到远程计算机去。
FTP工作原理
拿下传文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序空核:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序, *** 作上要简洁方便的多。
简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议(文件传输协议)
一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Inter上早期实现传输文件,并不是一件容易的事,我们知道 Inter是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Inter上的计算机已有上千万台,而这些计算机可能运行不同的 *** 作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种 *** 作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的 *** 作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。
与大多数Inter服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上载"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上载"文件就是将文件从自己的计算机中拷贝至远程主机上。用Inter语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。
使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Inter的开放性,Inter上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。
匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Inter上的任何人在任何地方都可使用该用户ID。
通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。
值得注意的是,匿名FTP不适用于所有Inter主机,它只适用于那些提供了这项服务的主机。
当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中渗亏核的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。
作为一个Inter用户,可通过FTP在任何两台Inter主机之间拷贝文件。但是,实际上大多数人只有一个Inter帐户,FTP主要用于下载公共文件,例如共享软件、各公司技术支持文件等。 Inter上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。实际上,几乎所有类型的信息,所有类型的计算机程序都可以在Inter上找到。这是Inter吸引我们的重要原因之一。
匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。
匿名FTP是Inter网上发布软件的常用方法。Inter之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。
Inter中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的那个目录中呢?这正是Archie服务器所要完成的工作。Archie将自动在FTP主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。
FTP(file transfers protocol)文件传输协穗敬议。我们平时上网时人http://www....中的http也是一种协议,叫超文本传输协议。
顾名思义,FTP文件传输协议是传输文件的一个协议。通俗地说就是两台计算机之间传输文件时所在遵守的规定。FTP下载也备冲就像我们平时一样下载可以了,也可以这样下载:
一、在IE的地址栏输入FTP地址,(记住是以FTP://开头的。比如:FTP://124.124.121.2)按回车。
二、FTP要求用户名和密码的:你就要在d出的窗口中输入。如可以匿名访问的,你就不会看见这个窗口。
三、接下来你看到的窗口是你非常熟悉的文件夹窗口。你只用找到你猜滚慎要下载的文件,并右击它》选择复制。然后在你要保存这个文件的文件夹中右击任一空白处》选择粘贴。其实,这就是一个复制和粘贴的过程。
其实网上讲的端口是协议端口,是协议软在传输数据的时候为了区别不同的服务程序而用的一个标志罢了,我们来看看协议端口的作用,我们叫的协议指TCP/IP协议,端口应是应用软件下传输层的一个概念,也是协议中的传输层和应用层进行数据传输的通道,端口是一个抽象的概念,并不存在真正意义上的一个口子,很明确的说端口是一样标志,协议软件在处理网络上的数据时要分析这个报文中的端口号是那个端口,当然协议软件是通过端口来区分各应用程序的,也就是说协议软件是通过端口号才知道这些数据是给谁的,有人会问IP层有没有端口呢?你要这样设计当然没办法,其实根本没必要这么做,因为IP层分析报文,通常是查看报头的上层协议类型(如TCP,UDP)等,来分别交给谁来处理,看起来这个过程也有点像传输层和应用层中的端口来传输和区别数据,只是人们不这么叫,因为作为协议软件来说,通常我们把它看成一个总体,也就说虽然TCP/IP中包含很多协议,可是他们都属于TCP/IP簇。从设计角度来说不管是里面的其它协议,开发时就以全部实现了,而传输层到应用层不是这样,协议软件是定义了一些端口来给应用程序,通常那些应用程序也不是固定不变的,有时我们要运行一个网络程序、有的要运行二个程序、而有的要运行更多的应用程序,这意味道开一或二或更多的端口,每一个网络服务程序最少得有一个端口,而这个端口搬到编程上去时就成了套接字,也就是:“IP+端口”就叫一个套接字,那么端口在内存中是什么样的呢?是不是要占一定的内存空间呢?这个问题御野敬从书面上来回答是很容易的,因为端口是一种抽象,自然就没有什么内存空间的问题,实际上端口是一个存取报文的队列,当传输层处理数据时分析到报头,看他是属于那个端口,然后把不同端口的数据分别存于不同的一个内存块,或者叫做缓冲区,反正是一个内存空间,这个空间存有各应用程序各自所有的数据,而没有其它的应用程序的数据,就象我们一个学校的信箱是一样的,如处面来的信,学校通常是放到信箱里,如三班是12号信箱,二班是13号信箱,自然我们班要信就可以从对应于自己班的信箱中取出来就是了。那么这个信箱就好比端口一样。当然了我们要知道那个信箱是我们班的,自然由学校分配或自己申请了脊码以及双方协议,协议中的端口也是这样,应用程序在运行前,也就是进入内存前并不知道自己是用那个端口,但是他知道要那个端口,也就是说他想要这个端口,给不给还是协议软件的事了,如果协议软件愿意那自然而然这个服务程序就用这个端口和下层传输层打交道了,如果不给通常是有别的程序先用上了。怎么办,用其它的端口吧。
在网络应用程序中我们常还会碰到FTP这个应用程序,方到协议上来说这就是FTP协议,问题是当我们用FTP应用程序下载时有时会下载一个,有时会下载多个程序或文件,问题是此时同一样程序怎么能区别是那个数据属于那个文件的呢?人们常会这样想,当用FTP下载时,程序会打开两个进程,如果自己的IP为202.103.102.1,对方的IP,也就是我们要下载程序的地方的服务器的IP为202.103.112.4,我们通常会这样想,数据端口也20,控制端口是21,当然21号端口是为了传输控制命令了,以控制数据的传输,20端口是数据端口,进过这个端口来传输数据文件了,问题是两个文件同时下载时,进程怎么区别,也就是FTP应用程序怎么知道网络上传过来的数据是属于那个文件的呢?因为端口是唯一标志这些数据属于谁的。所以用20号端口同时来传输两个文件的数据肯定是不可以的,其实我们别忘了20号端口只是默认端口,实际上下载时用不用这个端口要看协议软件和FTP怎么来决定了,通常下载时两个文件的数据传输并不是用同一个端口,镇慎FTP通常会暂时用一个空闲的端口来传输数据,数据有三个文件同时传输会再暂时占用另一个空闲端口。
这是FTP的性质,可是对于我们最常用到的80端口,也就是WEB服务端口,是不是WEB服务也(HTTP协议)和FTP传输一样,如我在IE窗口中打入www.good.com/index.htm在另一个窗口中打入www.good.com/image/love.htm,很显然这是同一个网站的不同目录,也就是说对方的IP和端口在两次请求中是一样的,自己用的端口和IP也是一样的,那么窗口是怎么区别这个窗口的数据呢?我们来看看两次请求有什么区别,从目标服务器来讲,他只能看到你计算机上端口,并不知道你计算机上程序的窗口,也就是说他只能以端口作为标志,并不能用每个窗口提供标示,他和一个窗口打入第一个www.good.com/index.htm然后打入第二个www.good.com/image/love.htm及两个不同的窗口发出的请求,服务器是没办法区别的,那么这种区别只有在自己的计算机上了,那么计算机上的80端口应用程序是怎么来进行区别的呢。我们会看到请求的唯一区别在于目录的不同,可以从返回的目录来区别的,可是问题又来了,不是每个报文都有目录信息的,这是乎就出现难题了,如果两个超文本请求目标是同一网站的不同主页,那么会对各IE进程产生混乱,因为下层的协议软件只能用端口来对应于特定的应用程序,可是这里只有一个80端口,当传输层把数据上交给应用层时只能通过端口来,除非应用程序中有标志窗口的或进程的信息而且这个信息在报文的数据段,为什么呢,因为数据到达应用层时报头的信息被各层的协议去掉了,最后只有数据段了。那么IE进程还得处理掉这个信息才能得到真正有用的数据,这种方法有点不可理解,即使它可行。这也会使得应用软件任务过重。还得服务器同意你这样做,也就他传过来的信息要包含特定窗口的标志信息。
其实80端口只是一个控制端口,也就是命令传送端口,数据的传输完全由系统按规律或随机的运用空闲的端口工作的。这就很容易解决了这个问题。
那么我们再来看看计算机上的硬件端口,这个端口和网络协议的端口不同,这些端口要参与其它硬件端口一起编址,是独立的编址,不过和内存编址并不是一回事,它们两个并没有关系,各自分别对应于一个独立的编址系统。硬件端口对于 *** 作系统来说就意味着一个寄存器了,这里的寄存器和内存中的寄存器也不一样,所以说对硬件的控制,我们通常都是向硬件端口,也就是寄存器写入一定的命令数据来被硬件接收,而端口是它们的通道。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)