第五章 新型网络应用
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. 即时通信协议
l 微软 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 系统
1) SIP 用户的地址以“SIP”开始, 后面类似于 E-mail 地址。
2) 例如可以使用 sip:miyname@my-company.com 表示一个 SIP 用户, 该用户处于 mycompany.com 域中, 在 mycompany.com 域中的名字为 myname。
3) SIP 地址是一个全局性的地址, SIP 系统通过这种统一名字标识符定位和查询 SIP 用户。
4) 按逻辑功能区分,SIP 系统由 4 种元素组成,它们是用户代理(user agent,UA)、代理服务(proxy server)、重定向服务器(redirect server)和注册服务器( registrar)。
用户代理:
① 用户代理由两个部分组成:一部分是用户代理客户机(User Agent Client,UAC),另一部分是用户代理服务器( User Agent Server UAS)。
② UAC 负责发起呼叫, UAS 负责接收呼叫并作出响应。
③ UAC 和 UAS 共同组成 UA,存在于用户终端之中。
④ 用户通过 SIP 用户代与 SIP 系统交互,其存在的形式多种多样,如计算机上的即时通信软件、专用的软电话( phone)等。
代理服务器:
① 代理服务器负责接收用户代理发来的请求,根据网络策略将请求发给相的服务器,并根据收到的应答对用户作出响应。
② 代理服务器是一个中间元素, 既有客户机的性质又有服务器的性质, 同时还具有名字解析能力。
③ 代理服务器分为有状态代理服务器和无状态代理服务器。
④ 有状态代理服务器需要存储接收到的请求、回送的响应和它转发的请求,而无状态代理服务器一旦转发请求和响应后就忘记所有的信息。
重定向服务器:重定向服务器是一个规划 SIP 呼叫路径的服务器。
注册服务器:用于接收和处理用户端的注册请求, 完成用户地址的注册。
5.SIP 消息
1) SIP 消息组成
l 由一个起始行(start-line)、消息头(message-header)、一个标志消息头结束的空行 CRLF)和可选的消息体(messagebody)组成。
其中,消息头由一个或多个宇段组成。
2) SIP 消息包括两种类型:
从客户机到服务器的请求消息( request)
① 在请求消息中,起始行为请求行。
② 请求行中一般包括请求方法、请求的 SIP 用户地址和 SIP 的协议版本。
③ 在 SIP 协议中有 6 种请求方法, 它们是 INVITE、ACK、OPTIONS、BYE、CANCEL 和 REGISTER。
请求方法 | 功能 |
INVITE | 邀请用户或服务器参加一个会话 |
ACK | UA 向服务器证实它已经收到了对 INVITE 请求的最终响应。ACK 只和 INVITE 一起使用 |
OPTIONS | 请求关于服务器能力的信息。如果服务器认为它能与用户联系,则可用一个能力集晌应 |
BYE | 用户终止一次会话,既可由主叫 UA 发送,也可由被叫 UA 发送 |
CANCEL | 取消一个挂起的呼叫 |
REGISTER | 向定位服务器注册 UA 的相关信息 |
从服务器到客户机的响应消息( 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 协议
寻址方案
① XMPP 通信系统具有统一的寻址方案, XMPP 用户地址的格式必须符合 RFC2396 统一资源标识符的语法规定。
② 由于历史原因, XMPP 地址也被称为 JID(JabberID7Jab-ber 标识)。
③ JID 用于标识即时消息用户和用户连接的资源,它由域标识符、结点标识符、资源标识 3 部分组成,形如 node@domaia/resource。其中,域标识符是唯一必需的,通常表不 XMPP 服务器或 XMPP 网关,必须是一个合法的 DNS 域名; 结点标识符是一个可选项, 以“@” 符号分割放在域标识符之前。结点标识符通常是一个使用 XMPP 服务的一个用户; 资源标识符也是一个可选的标识符, 表示具体的资源。资源标识符放在域标识符之后,并以“/”分隔。
XML 流与 XML 节(Stanza)
① XMPP 是一套基于 XML 流的协议;
② XMPP 流中的“节”有 3 种类型,它们是消息(message)、呈现(presence)和查询( 1/Q,Info/Query)。
③ 消息节表示传输的消息,其中消息的接收方、发送方可以使用 to、from 等关键字表明;
④ 呈现节用来表明用户的状态(如在线、离线等)。当用户的状态改变时,用户端就会在用户到服务器的流中插入一个呈现节,用于表明自身的状态;
⑤ 查询节是一种请求/响应机制。一个实体发送请求, 另外一个实体接收请求并进行响应。
10.即时通信实例
腾讯 QQ、网易泡泡、新浪 UC、微软 MSN 和雅虎 Messenger 等都曾经是非常流行的即吋通信软件。
除了实时消息交换和状态跟踪之外,即时消息系统一般还提供一些附加功能,如音频/视频聊天、应用共享、文件传输、文件共享、游戏邀请、远程助理、白板等。
11.QQ 用户登录过程
① 客户端每次登陆时会访问记录上次登陆服务器的地址的记录文件,如果成功则不会重发 DNS 请求。
② 在 QQ 通信中,用户必须先登录后才可以进行互相发送信息等操作。
③ QQ 聊天通信信息是加密的,每次登陆时 QQ 客户机会向服务器获取一个会话密钥。
④ 客户端会从服务器端获得好友列表,以建立点对点的联系。
⑤ QQ 采用的通信协议以 UDP 为主,辅以 TCP 协议。
12.P2P 文件共享
文件共享是指用户主动地在网络上分享自己主机中的文件或者目录。
P2P 文件共享起源于 1999 年的音乐分享网站 Napster。Napster 釆用的是集中式的对等网络结构。
eDonkey2000 继承了前者共享文件系统的优点,并为文件增加了哈希( Hash)信息。
最初的 BT 系统需要中心服务器存放用户的信息, 该服务器被称为 Tracker 服务器。
BT 系统要求文件的发布者制作一个被称为“种子” 文件的.torrent 文件,该文件包含了 Tracker
服务器的相关信息和发布者共享文件的信息。
下载者通过发布者提供的种子文件连接到 Tracker 服务器, 并通过 Tracker 服务器获取其他下载者(包括发布者)的 IP 地址和端口号。
l 下载的人越多, BT 系统提供的带宽越大,下载速度也就越快。在后续的版本中,BT系统加入了 DHT的支持,以实现无 Tracker服务器的文件传输。
在 20 世纪 60 年代, 美国著名社会心理学家米尔格伦( Stanley Milgram)提出了“六度分隔(Six Degrees of Separation)”理论。这就是著名的“小世界假设” 。六度分隔理论为 P2P 文件共享系统中的结点的快速发现和资源快速发现提供了理论基础。
13. 文件共享实现方式
如 FTP 文件共享、NFS 网络文件系统共享、Windows 共享文件夹以及正在流行的 P2P 文件共享等。
在 FTP 文件共享中, 用户将需要共享的文件传送到 FTP 服务器,其他用户使用该文件时需要通过
FTP 服务器进行下载;
在 NFS 网络文件系统中, 用户可以将自己主机上的文件或目录共享出来, 其他用户需要使用时, 只需将该文件或目录挂接在自己的文件系统下,像使用本地文件一样使用远程主机上的文件;
Windows 共享文件夹是微软针对 Windows 系统开发的文件共享机制,它通常使用 NetBIOS 和 NetBEUI
协议将文件夹共享给其他用户使用。
NetBIOS 是由微软公司开发,工作于网络层驱动接口和传输层驱动接口之间,支持 254 个并发通信话路, 名字服务可以采用 UDP 协议。
14.Maze 系统
Maze 系统是一个功能非常强大的 P2P 文件共享系统, 属于混合式的 P2P 网络系统。
Maze 系统参考了 Kerberos 协议, 采用了分布式认证机制。
l 为了促使用户更多地共享资源, Maze系统采用了 Maze 积点和 Maze星级技术。
该系统采用了以六度分隔理论为基础的网络链接关系, 能够支持在线资源搜索和文件目录视图, 可以进行多点下载和断点续传,支持跨防火墙的文件共享与下载。
Maze 系统中的用户被称为 Peer,每个 Peer 相当于一个传统 FTP 服务器与一个 FTP 客户端的结合体。整个系统除了多个 Peer 外,还包括集中式的用户管理服务器、文件目录服务器、索引和检索服务器、心跳服务器。
① 用户管理服务器实现用户注册与身份认证;
② 文件目录服务器负责收集每个 Peer 共享的目录列表并将它们存入集中式的目录数据库;
③ 索引和检索服务器读取目录数据库中的数据,为所有共享文件目录建立索引并提供 XML 方式的检索接口;
④ 心跳服务器负责维护在线用户的列表。
15.互联网协议电视(IPTV)
用户可以采用两种方式使用 IPTV 服务,一种是计算机方式,另一种是网络机顶盒加普通电视机方式。
电视类服务是与电视业务相关的服务,如视频点播、直播电视和时移电视等;
通信类服务是指基于 IP 的语音服务、即时通信服务和电视短信服务等;
增值服务是指电视购物、互动广告和在线游戏等增值类服务。
16.视频点播(Video on Demand,VOD)
视频点播(Video on Demand, VOD)也被称为交互式电视点播系统。
本质上讲,VOD 是一种基于 IP 网络的利用机顶盒作为接收终端,电视机作为显示设备的视频点播系统。
17.VOD 的服务类型
VOD 的服务类型分为 3种:
1) 就近式点播电视 NVOD:在支持就近式点播电视系统中,每个视频流间隔一定的时间就发送同样的内容,用户选择距最近的某个时间起点进行收看。
2) 真实点播电视 TV0D:真实点播电视支持即点即放,每个视频流只为一个特定的用户服务。
3) 交互式点播电视 IVOD:交互式点播电视不仅可以支持即点即放,而且还可以让用户对视频流进行交互式的控制。
18.媒体内容分发技术
媒体内容分发网络(Media Content Delivery Network,MCDN)技术是 IPTV 大规模应用的重要技术保障。
MCDN 关键技术包含以下几个方面。
① 内容发布:借助于索引、缓存、流分裂和组播等技术,将内容发布或投递到距离用户最近的远程服务点处。
② 内容路由:是整体性的网络负载均衡技术。内容路由技术通过内容路由器中的重定向以及媒体位置注册机制,在多个远程服务点上均衡用户的请求,保证用户请求得到最近内容源的响应。
③ 内容交换:根据内容的可用性、服务器的可用性以及用户的背景,利用应用层交换、流分裂、重定向及宽带媒体分发策略等技术,智能地平衡负载流量。
④ 性能管理:通过内部和外部监控系统,获取网络部件的状态信息。同时,性能管理还测量内容发布的端到端性能(如包丢失率、延时时间、平均带宽、启动时间和帧速率等),保证网络处于最佳的运行状态。
⑤ IP 承载网:MCDN 充分利用高速交换、汇聚层路由转发、接入层带宽保障、组播路由及服务质量等
IP 网络技术,为 IPTV 应用提供可靠 IP 网络平台。
19.VOIP 可以实现的通信方式
VoIP(VoiceoverIP)也称为 IP电话,是利用 IP网络实现语音通信的一种通信手段,是基于IP网络的语音传输技术。
VoIP 系统可以将源用户的电话语音数字化,通过压缩、打包后利用 IP 网络传输给目的用户。
目的用户收到数据包后,将数据解压并还原成声音。
利用VOIP可以实现的通信方式包括:PC-to-PC,PC-to-Phone,Phone-to-Phone,PC-to-Pad,Pad-to-Phone,
PC到IP网关,IP网关到 IP网关。20.VoIP 系统组成
VoIP 系统有 4 个基本组件,它们是终端设备(Terminal)、IP 电话网关(Gateway)、网守(Gatekeeper)和多点控制单元(MultipointControlUnit,MCU)
1) 终端设备
终端设备是直接和用户接触的设备。VoIP 中的终端设备有多种类型,其中包括传统的语音电话终端、ISDN 终端、多媒体 PC 等。
2) IP 电话网关
IP 电话网关是 VoIP 系统的关键设备, 是 IP 网络和电话网络之间的桥粱。
IP 电话网关的基本功能如下:
① 号码查询
② 建立通信连接
③ 信号调制
④ 信号压缩和解压
⑤ 路由寻址
3) 网守
网守是一个中央控制实体,在 VoIP 系统中起管理作用。
网守是 VoIP 系统中的消息控制中心,可以进行呼叫控制、地址解析、呼叫授权、身份验证、集中账务和计费管理、存留呼叫详细记录等操作。
l 同时,网守还可以像实时网管一样监控网络、平衡负载、管理带宽以及提供与现有系统的接口。
4) 多点控制单元
多点控制单元 MCU 的功能在于利用 IP 网络实现多点通信, 使得 VoIP 系统能够支持 3 个或 3 个以上端点参与的多点会议。
MCU 通常由两部分组成,分别是多点控制器( Multipoint Controller,MC)和多点处理器(Multipoint Processor,MP)。
MC 主要负责呼叫信令的处理和会议的控制;
MP 则提供多点会议中媒体流的集中处理, 主要负责混音、交换等处理工作。
21. RTCP 报文
根据所携带的控制信息不同, RTCP 报文分为 5 种类型,分别是 SR、RR、SEDS、BYE 和 APP。
SR(sender report,发送者报告): 该类型报文中含有活动端的发送和接收统计信息。
RR(receiver report, 接收者报告): 该类型报文中含有非活动端的接收统计信息。
SDES( source description items,源描述项):该类型报文中含有对数据源的描述信息。例如,数据源的 CNAME 和 SSRC 的映射关系等。
BYE(goodbye,离开报告): 参与者结束通信时使用该类型报文通知其他参与者。
APP( application-specificfunctions, 特定应用): 用于特定应用功能的一类 RTCP 报文。
22. Skype
Skype 融合了当前热门的两大技术——VoIP 技术和 P2P 技术,主要提供 IP 网络电话、即时消息、文件传输、用户搜寻等功能。
Skype 还能有效地突破防火墙的限制。
① SkypeClient: SkypeClient 是 Skype 系统的客户机端, 简称为 SC。
② SuperNode:SkypeNode 是 Skype 系统中的超级结点, 简称为 SN。在 Skype 系统中,Super-Nodc 是动态生成的,其作用就像 Internet 中的核心路由器。
③ LoginServer:LoginServer 是 Skype 系统中的登录服务器,简称为 LSQLS 登录服务器存储着用户的用户名和密码,负责用户登录时的合法性认证。同时,它还要负责用户名的全局唯一性管理。
④ HostCache 简称为 HC, 是一个 SN 的 IP 地址和端口对的列表。它由 SC 建立, 并会经常更新。
⑤ BaddyList:BaddyList 是一个用户的好友列表。
⑥ Encryption:加密处理。Skype 釆用了 256 位的 AES 加密算法。同时, Skype 采用 1536〜2048 位的 RSA 算法对 AES 使用的对称密钥进行协商。
⑦ Codecs:编码方式。Skype 米用了 GloballPSounci 公司的宽带编码技术 iLBC 和 iSAC。这两种编码技术允许频率在 50~8000Hz 的语音通过。
⑧ Port:Skype 系统采用的端口。SC 可以使用 TCP 和 UDP 进行端口监听,这些端口值在 SC 的连接对话框设置。在安装客户机端软件时, SC 会随机选择一个端口号。除此之外, SC 也可以在 HTTP 的 80 端口和HTTPS 的 443 端口进行监听。
⑨ NAT/FirewalhSC 釆用各种 STUN 和 TURN 技术来判定它在哪种类型的 NAT 和防火墙之后, 以便进行
NAT 或防火墙穿越。
23. Skype 的特点
1) 高清晰音质:从理论上说, 使用 Skype 可以听到人类可以听到的所有声音频率,而普通电话只能听到 300~3000Hz 以内的声音。较宽的频率范围保证了高保真度的声音品质。
2) 高度保密性:Skype 终端之间传送的声音和消息都是经过加密处理的。Skype 采用 AES 加密算法, 密钥长度为 256 位,是 AES 可选密钥长度里最长的(因此也是最安全)。AES 的会话密钥利用 2048 位的RSA 算法生成, 可以确保密钥的安全性。同时, 用户登录时, 系统会利用用户的私钥进行身份验证。
3) 免费多方通话:Skype 支持最多 5 人的多方会议呼叫,而且所有的通话都釆用端到端加密。因此,
Skype 比较适宜于商务会谈和其他会谈。
4) 跨平台: Skype 提供不同操作系统下的发行版本, 包括 Windows、Linux 以及 MacOS 等。
24. 搜索引擎组成
搜索引擎构成一般都由 4 个部分组成,即搜索器、索引器、检索器和用户接口。
l 搜索器
搜索器通过逐个访问 Internet中的 Web站点来采集 Web网页信息,并建立该站点的关键字列表。人们常把搜索器建立关键字列表的过程称为网络爬行。
索引器
索引器的功能是理解搜索器所搜索的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表。
检索器
检索器的功能是根据用户的查询要求在索引库中快速检出文档,进行文档与査询的相关度评价,对将要输出的结果进行排序。同时,检索器还应具有某种用户相关性反馈机制。
用户接口
① 用户接口的作用是输入用户查询、显示查询结果、提供用户相关性反馈机制。
② 用户输入接口可以分为简单接口和复杂接口两种:
③ 简单接口只提供用户输入查询词的文本框;
④ 复杂接口可让用户对查询进行限制,如逻辑运算(与、或、非等)、相近关系(相邻、NEAR等域名范围( .edu.com等)、出现位置(标题、内容等)、信息时间、长度等。
25. LAMP 网站架构
LAMP 网站架构是目前国际流行的 Web 框架,该框架包括:Linux 操作系统,Apache 网络服务器,MySQL 数据库,Perl、PHP 或者 Python 编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架。
该架构起源于Linux 平台,由于是开源软件,建设成本很低。
26. IPSec
IPSec 是为网络层提供安全的一组协议。
在 IPSec 协议族中有两个主要的协议:身份认证头(AH)协议和封装安全负载(ESP)协议。
SA(安全协定)定义的逻辑连接是一个单工连接,也就是说,连接是单向的。SA 是由一个 3 元组确定的。
ESP 头部采用 32 位顺序号字段组成。