11 新型网络应用(1)
温馨提示:这篇文章已超过421天没有更新,请注意相关的内容是否还可用!
1.即时通信(IM)系统
1996 年11 月,以色列Mirabils 公司推出了世界上第一款即时通信软件ICQ(I Seek You,网络寻呼机),宣告了“即时通信(Instant Messaging,IM)”这一概念的诞生。即时通信系统是一种基于Internet 的通信服务,可提供近实时的信息交换和用户状态跟踪。
2000 年,IMPP 工作小组提交的关于即时通信系统的RFC 草案,获得了IETF 的批准,成为正式的RFC 文件。IETF 批准的RFC2778 给出了一个抽象的呈现与即时消息系统模型,描述了即时通信系统的功能,勾勒出了即时通信系统的模型框架。
一个即时通信系统通常包括两种服务:① 一种是呈现服务(Pesence srvice),用户之间相互订阅并获取彼此的状态变更信息;② 另一种是即时消息服务(istant message srvice),用于用户之间相互收发短消息。
即时通信系统一般釆用两种通信模式:① 用户/服务器模式,在用户/服务器模式中,消息的发送和接收需要通过服务器中转,主流的即时通信软件的文本消息大多使用用户/服务器模式。② 用户/用户模式。消息的发送和接收采用直接的点对点的通信方式,文件传送等大数据量业务通常
使用用户/用户模式。
2.即时通信协议
微软 MSN釆用 MSNP协议;AOL 采用OSCAR 协议;QQ 采用自己设计的私有协议;由于各厂商自己定义的协议互不开放,因此造成彼此间互不兼容,无法互联互通。
即时通信开放的协议主要代表有两个:① 一个是基于SIP 协议框架的SIMPLE 协议簇;② 一个是基于JABBER 协议框架的XMPP 协议簇。SIMPLE 协议是对SIP 协议的扩展,以使其更好地支持即时消息服务。XMPP 协议簇是基于XML 语言定义的即时消息协议。
3.SIP(会话初始化协议)
SIP 是IETF 于1999 年提出的一个信令控制协议,主要内容在RFC3261 中进行定义;SIP 协议位于应用层,目标是方便地创建、管理和终止用户之间的会话。SIP 协议主要是为IP 网络设计的,可以运行于TCP、UDP、SCTP 等各种传输层协议之上。但是,SIP协议本身并不关心承载网络,因此SIP 协议也可工作在ATM、帧中继等承载网中。
4.SIP 系统
SIP 用户的地址以“SIP”开始,后面类似于E-mail 地址。例如可以使用sip:miyname@my-company.com 表示一个SIP 用户,该用户处于mycompany.com 域中,在mycompany.com 域中的名字为myname。SIP 地址是一个全局性的地址,SIP 系统通过这种统一名字标识符定位和查询SIP 用户。按逻辑功能区分,SIP 系统由4 种元素组成,它们是用户代理(user agent,UA)、代理服务(proxy server)、重定向服务器(redirect server)和注册服务器(registrar)。
4.1 用户代理:
用户代理由两个部分组成:一部分是用户代理客户机(User Agent Client,UAC),另一部分是用户代理服务器(User Agent Server UAS)。UAC 负责发起呼叫,UAS 负责接收呼叫并作出响应。UAC 和UAS 共同组成UA,存在于用户终端之中。用户通过SIP 用户代与SIP 系统交互,其存在的形式多种多样,如计算机上的即时通信软件、专用的软电话(phone)等。
4.2 代理服务器
代理服务器负责接收用户代理发来的请求,根据网络策略将请求发给相的服务器,并根据收到的应答对用户作出响应。代理服务器是一个中间元素,既有客户机的性质又有服务器的性质,同时还具有名字解析能力。代理服务器分为有状态代理服务器和无状态代理服务器。
④ 有状态代理服务器需要存储接收到的请求、回送的响应和它转发的请求,而无状态代理服务器一旦转发请求和响应后就忘记所有的信息。
4.3 重定向服务器
重定向服务器是一个规划SIP 呼叫路径的服务器。
4.4 注册服务器
用于接收和处理用户端的注册请求,完成用户地址的注册。
5.SIP 消息
5.1 SIP 消息组成
由一个起始行(start-line)、消息头(message-header)、一个标志消息头结束的空行 CRLF)和可选的消息体(messagebody)组成。其中,消息头由一个或多个宇段组成。
5.2 SIP 消息包括两种类型
从客户机到服务器的请求消息(request):在请求消息中,起始行为请求行。请求行中一般包括请求方法、请求的SIP 用户地址和SIP 的协议版本。在SIP 协议中有6 种请求方法,它们是INVITE、ACK、OPTIONS、BYE、CANCEL 和REGISTER。
| 请求方法 | 功能 |
| INVITE | 邀请用户或服务器参加一个会话 |
| ACK UA | 向服务器证实它已经收到了对INVITE 请求的最终响应。ACK 只和INVITE 一起使用 |
| OPTIONS | 请求关于服务器能力的信息。如果服务器认为它能与用户联系,则可用一个能力集晌应 |
| BYE | 用户终止一次会话,既可O由PT主IO叫NS U请A求发 送,也可由被叫 UA 发送 |
| CANCEL | 取消一个挂起的呼叫 |
| REGISTER | 向定位服务器注册UA 的相关信息 |
5.3 从服务器到客户机的响应消息(response)
响应消息中,起始行为状态行。状态行中一般包括SIP 的版本号、状态码和一句对该状态的文本描述信息。
6.SIMPLE 协议
SIMPLE 协议是一组能够提供即时消息服务的通信协议。它由 IETF 的SIMPLE 工作组制定,基本上与RFC2778 定义的即时消息系统模型保持一致。SIMPLE 协议通过对SIP 协议进行扩展,使其支持即时消息服务。
SIMPLE 增加了NOTIFY、SUBSCRIBE 和MESSAGE 方法支持即时通信。① MESSAGE:用来发送一次性的短消息,即寻呼机模式的即时消息。② SUBSCRIBE:用于观察者(watcher)向服务器订阅其他用户的呈现信息。③ NOTIFY:在用户的呈现信息发生改变时,服务器使用NOTIFY 方法向该用户的订阅用户发送呈现信息。
7.XMPP 系统
XMPP 协议是一种基于XML 的即时通信协议;XMPP 协议的系统架构沿袭了E-mail 系统的架构;XMPP 系统架构主要由3 种实体组成:XMPP 客户、XMPP 服务器和XMPP 网关:① XMPP 服务器间相互通信,形成一个由XMPP 服务器组成的分布式网络;② XMPP 网关负责XMPP 与非XMPP 系统之间的互联,可以使XMPP 客户和非XMPP 客户进行通信;③ XMPP 客户通过Internet 接入XMPP 系统,可以通过XMPP 系统与其他客户进行通信(如果存在XMPP 网关,XMPP 客户也可以和非XMPP 客户进行通信)。
8.XMPP 系统特点
用户/服务器中转模式:XMPP 使用用户/服务器通信模式,而不是有些即时消息系统采用的用户/用户模式。从一个用户客户机端发给另一个用户客户机端的XMPP 即时消息都必须通过服务器中转。
分布式网络系统:XMPP 的网络体系结构与E-mail 系统类似,XMPP 客户和服务器组成一个分布式的网络处理系统,即时消息和呈现信息在这些XMPP 客户和服务器之间传输。XMPP 地址和E-mail 地址形式一样(如stpeter®jabber,org),因此,从一个用户地址即可得知该用户所属的XMPP 服务器。
简单客户机端:XMPP 的目标之一是必须支持简单客户机端,将复杂性从用户端转移到服务器端。XMPP 系统架构要求用户端必须支持的功能:通过TCP 套接字与XMPP 服务器进行通信、解析组织好的XML 信息包、理解消息数据类型。(目前Google 的Google Talk 和Jive Message 都采用XMPP 协议)。
XML 数据格式:XML 是XMPP 系统的核心,几乎能表述任何一种结构化数据。
9.XMPP 协议
9.1 寻址方案
XMPP 通信系统具有统一的寻址方案,XMPP 用户地址的格式必须符合RFC2396 统一资源标识符的语法规定。由于历史原因,XMPP 地址也被称为JID(JabberID7Jab-ber 标识)。JID 用于标识即时消息用户和用户连接的资源,它由域标识符、结点标识符、资源标识3 部分组成,形如node@domaia/resource。其中,域标识符是唯一必需的,通常表不XMPP 服务器或XMPP 网关,必须是一个合法的DNS 域名;结点标识符是一个可选项,以“@”符号分割放在域标识符之前。结点标识符通常是一个使用XMPP 服务的一个用户;资源标识符也是一个可选的标识符,表示具体的资源。资源标识符放在域标识符之后,并以“/”分隔。
9.2 XML 流与XML 节(Stanza)
XMPP 是一套基于XML 流的协议;XMPP 流中的“节”有3 种类型,它们是消息(message)、呈现(presence)和查询(1/Q,Info/Query)。消息节表示传输的消息,其中消息的接收方、发送方可以使用to、from 等关键字表明;呈现节用来表明用户的状态(如在线、离线等)。当用户的状态改变时,用户端就会在用户到服务器的流中插入一个呈现节,用于表明自身的状态;查询节是一种请求/响应机制。一个实体发送请求,另外一个实体接收请求并进行响应。
10.即时通信实例
腾讯 QQ、网易泡泡、新浪UC、微软MSN 和雅虎Messenger 等都曾经是非常流行的即吋通信软件。除了实时消息交换和状态跟踪之外,即时消息系统一般还提供一些附加功能,如音频/视频聊天、应用共享、文件传输、文件共享、游戏邀请、远程助理、白板等。
