几种互联网上常见的协议

·从URL谈起
   当我们想浏览一个网站的时候,只要在浏览器的地址栏里输入网站的地址就可以了,这个网站地址,术语叫做URL(Uniform Resource Locator),译成中文即“统一资源定位符”。就像每家每户都有一个门牌地址一样,每个网页也都有一个互联网地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。
   访问CFCA网站,点击“产品介绍”,你就能在地址栏内看到一个典型的URL的组成的例子: http://www.cfca.com.cn
/chanpin/chanpin.htm

它的各部分含义如下:
1、http://——代表访问该资源所使用的应用层传输协议,通知cfca.com.cn服务器显示Web网页,
2、www——代表一个Web(万维网)服务器;
3、cfca.com.cn/——这是装有网页的服务器的域名,或站点服务器的名称;
4、chanpin/——这是该服务器上的某个路径,就好像我们的文件夹;
5、chanpin.htm——这是文件夹中的一个HTML文件(网页)。

·超文本传输协议HTTP
   大家一定注意到,在输入网站地址时,http://这一部分通常不用输入,系统软件会自动补上,所有网页地址都少不了它。那么,http 究竟是个什么含义呢?
   HTTP 是“超文本传输协议(Hypertext Transfer Protocol)”的意思。
   简单地讲,HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。
   它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。这就是你为什么在浏览器中看到的网页地址都是以http://开头的原因。
基于HTTP协议的通讯的基本工作过程如下:
   由于HTTP协议是基于请求/响应范式的(相当于客户机/服务器)。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息,包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
   在互联网上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP 80,但其它的端口也是可用的。HTTP只预示着一个可靠的传输。它并不特别指明网络传输媒介,HTTP传输可以在互联网上完成,也可以在其它网络的其它协议之上完成。
   在WWW中,“客户机”与”服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户机在另一个连接中可能作为服务器。基于HTTP协议的客户机/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。
   任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用户请求。你的浏览器是HTTP客户机,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。服务器的驻留程序接收到请求,在进行必要的操作后回送所要求的文件。在这一过程中,根据TCP/IP协议的规定,在网络上发送和接收的数据被分成一个或多个数据包(packet),每个数据包包括:要传送的数据;控制信息,即告诉网络怎样处理数据包。TCP/IP协议决定了每个数据包的格式。传输完成后的这些数据包再重新组合,还原为数据信息。 从网络层次模型的角度讲,HTTP协议以及下面将要讲述的几种互联网传输协议都属于TCP/IP模型最上层的应用层协议。

·文件传输协议FTP
   以上介绍的HTTP协议主要是用于网页传输。下面,我们再介绍另一种很常见的网络传输应用层协议FTP。FTP(File Transfer Protocal),是文件传输协议的简称,主要功能是完成从一个系统到另一个系统完整的文件拷贝。同时,它也是一个应用程序。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
   正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
   在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上载”(Upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上载”文件就是将文件从自己的计算机中拷贝至远程主机上。用互联网语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。

FTP工作原理如下:
   与大多数互联网服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户机与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
   FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
   PORT(主动)方式的连接过程是:客户机向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户机在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户机的XXXX端口发送连接请求,建立一条数据链路来传送数据。
   PASV(被动)方式的不同点在于:当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户机向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
   两种方式的命令链路连接方法是一样的。
   FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。
    那么,FTP协议的必要性究竟是什么呢?
   一般来说,用户联网的首要目的就是实现信息共享,我们知道 互联网是一个非常复杂的计算机环境,有PC,有工作站,有小型机,有大型机,据统计连接在互联网上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等。各种操作系统之间的文件交流问题,如果没有一个统一的文件传输协议,就会变得非常困难。而FTP就是一个统一的文件传输协议。虽然基于不同的操作系统有不同的FTP应用程序,但只要所有这些应用程序都遵守同一种协议,用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。
   在所有的互联网协议中,FTP协议是个相对古老的协议,它的第1版(RFC172)公布于1971年,甚至早于TCP/IP的诞生。随着技术的不断发展,FTP协议已经更新了很多次,1985年公布的FTP(RFC 959)是目前各项定义的基础。从那时以后,还有多次其他标准的发布,为FTP的功能扩展提供了补充。下面就是一个例子——

·FTP的匿名机制
   使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了互联网的开放性,互联网上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。
   FTP支持匿名机制。 用户可通过匿名FTP机制连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous(意匿名), 互联网上的任何人在任何地方都可使用该用户ID。
   通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous。该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。
   值得注意的是,匿名FTP不适用于所有互联网主机,它只适用于那些提供了这项服务的主机。
   当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。
   作为一个互联网用户,可通过FTP在任何两台互联网主机之间拷贝文件。互联网上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。这是互联网吸引我们的重要原因之一。
   匿名FTP是互联网网上发布软件的常用方法。互联网之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。
   互联网中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的哪个目录中呢?这正是ARCHIE服务器所要完成的工作。在Internet 上有许多ARCHIE服务器,用户可以通过Telnet方式登录到ARCHIE服务器上,用户只需提供所要查找的文件名,ARCHIE服务器就能找到该文件所在的FTP服务器及所在路径并将查询结果通知用户,使你可以直接找到所需文件的位置信息。
   为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,各有各的特色。

·远程登录服务协议Telnet
   上文曾提到,用户可以通过Telnet方式登录到ARCHIE服务器上。那么Telnet又是什么东西呢?Telnet最早是由ARPANET开发的Internet的登录和仿真程序。它的基本功能是,允许用户登录进入远程主机系统。通过远程登录,我们允许用户在远地机器上建立一个登录会话,然后通过执行命令来实现更一般的服务,就像在本地操作一样。这样,我们便可以访问远地系统上所有可用的命令,并且系统设计员不需提供多个专用的服务器程序。
   但为了使多个操作系统间的Telnet交互操作成为可能,就必须详细了解异构计算机和操作系统,给设计人员带来极大的不便。因此,需要制定一个这方面的标准来解决这个问题,这个标准就是远程登录服务协议Telnet。
   Telnet协议是TCP/IP协议族中的一员,应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务:
1)Telnet定义一个网络虚拟终端为远地系统提供一个标准接口。客户机程序不必详细了解远地系统,他们只需构造使用标准接口的程序;
2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;
3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
   然而事情总是具有两重性的,Telnet在为用户提供远程登录服务的同时,也为黑客侵入服务器系统提供了方便。因此,在WindowsNT操作系统提供的Telnet服务中设置了安全认证机制,即NTLM(WindowsNT LAN Manager)。这是一种基于挑战/响应验证的机制。其工作流程是这样的:

1、客户端首先在本地加密当前用户的密码成为密码散列;
2、客户端向服务器发送自己的帐号,这个帐号是没有经过加密的,明文直接传输;
3、服务器产生一个16位的随机数字发送给客户端,作为一个 challenge(挑战);
4、客户端再用加密后的密码散列来加密这个 challenge ,然后把这个返回给服务器。作为 response(响应);
5、服务器把用户名、给客户端的challenge 、客户端返回的 response 这三个东西,发送域控制器;
6、域控制器用这个用户名在 SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密 challenge;
7、域控制器比较两次加密的 challenge ,如果一样,那么认证成功。

·几种安全的网络传输协议
1)FTPS
我们知道, FTP协议和HTTP、SMTP以及其他一些互联网应用协议一样,其诞生时间要早于SSL安全协议。这就难怪,这些协议在设计中没有考虑多少安全性的问题。因为FTP协议使用明文的用户名和密码口令,被传输的数据也是明文,所以FTP的命令、和被传输的文件有被黑客窃取的风险。为了解决这个问题,许多人开始想法把FTP的标准交易信息放到一个被加密的通道中来传输。而这正是FTPS协议的主要宗旨。
   有人把FTPS解释为“安全文件传输协议”,这是望文生义,并不准确,准确的中文译名为“在SSL之上的文件传输协议”,即“FTP over SSL”。
FTPS协议在它的下层使用了SSL/TLS 传输层协议,可以对控制信息和数据通道进行加密。FTPS可以有多种使用方法,最常见的模法称为显式FTPS(Explicit FTPS)。在显式FTPS的模式下,客户与服务器的端口21相连接,并且启动一个普通的非加密的FTP会话,然后,客户请求TLS(Trasport Layer Security)传输层安全机制——进行SSL/TLS协议规定的握手、数字证书认证、建立加密的命令通道和数据通道。通道建立后,任何敏感的数据就可以在命令/数据通道中被加密而传输了。(有关SSL/TLS认证和加密的详细内容请参看《晨曦》2005年12期文章“SSL协议及其应用”。)
   FTPS仅仅是FTP协议的一个扩展,因而它得到大部分服务器的支持,并且由于它和FTP使用同一个端口,在用户的防火墙上就没有必要再开另外的端口了。

2)HTTPS
   有了FTPS的概念,HTTPS 的概念即可触类旁通。
HTTPS协议是由Netscape公司开发的,该公司在其浏览器中预置了相应的应用程序。与FTPS一样,HTTPS也采用了SSL协议作为HTTP应用层的下层协议。其工作原理也十分类似。HTTPS使用端口443,而不是象HTTP那样使用端口80来进行通信。SSL使用40 位或128位密钥,采用RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证。在HTTP与TCP之间存在一个加密/身份验证层。
   HTTPS简单讲是HTTP的安全版。HTTPS的安全基础是SSL, HTTPS协议更适合于电子商务的站点,被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
   除了FTPS、HTTPS之外,还有更多的安全的网络传输协议,如SCP、SFTP等,使用了另外的安全机制,其应用不如上面两种广泛
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值