因特网延迟交谈:体系结构( 二 )


4.IRC协议服务
这个部分描述了IRC协议提供的服务 。这些服务的组合可以实现实时会议 。
4.1客户机定位
为了相互交换消息,两个客户机必须能够相互定位对方 。
一连上服务器,客户机就注册一个标志,此标志此后被其它服务器和客户机用来定位该客
户机 。服务器负责跟踪所有使用的标志 。
4.2消息延迟
IRC协议无法提供两台客户机的直接连接,所有客户机间的交流都被服务器延迟
4.3频道收集和治理
一个频道是一个由一个或更多的客户机组成的命名组,这个组中的所有成员都接收发送给
这个频道的消息 。一个频道由它的名字和目前的成员来标志,它也有一系列能被它的成员
使用的属性 。
频道提供了向多个客户机发送信息的方法 。服务器收集频道,提供必须的消息多路技术 。服
务器也负责通过跟踪频道成员来治理频道 。服务器的确切角色在"InternetRelayChat:
ChannelManagement"[IRC-CHAN]中定义 。
5.IRC概念
这个部分专门描述IRC协议组织背后的真实概念,以及不同种类的消息如何被传送 。
5.1一对一交流
一对一基础上的交流经常由客户机实现,因为大部分的阻塞是经由服务器进行的交谈 。
为了提供一各客户机相互交谈的方法,要求所有服务器能够沿着生成树到达任何客户
机以单向发送消息 。因此消息发送路径是生成树上任意两点之间的最短路径 。
下面的例子都涉及上面的图一 。
例一:1和2之间的消息只同时被服务器A看到,A直接将消息发送给2 。
例二:1和3之间的消息同时被服务器A,B和客户机3看到 。没有其它客户机或服
务器答应看到此消息 。
例三:2和4之间的消息只被服务器A,B,C,D和客户机4看到 。
5.2和多个
IRC的方根目的是提供简单有效的会议论坛 。IRC提供了许多方法来实现,每个方法
都为各自的目的服务 。
5.2.1和一个频道
在IRC里,频道和多播组角色等同,它们都动态生存而且实际上的谈话必须发送到
正支持给定频道上客户机的服务器 。还有,消息将向每个本地链接只发送一次,因
为每个服务器都负责散发原始消息以保证它能到达所有收件人 。
下面的例子都涉及图二
例四:任何包括客户机一在内的频道 。任何发送给该频道的消息到达服务器并且不会
到达其它任何地方 。
例五:二个客户机在一个频道里 。所有消息经过的路径使它们看起来像频道、之外的
两个客户机之间的秘密消息 。
例六:客户机1,2,3在一个频道里 。所有发送给该的消息都发送给所有客户机和那些发
送给单个客户机的秘密消息所必须经过的服务器 。假如客户机1发送一条消息,它返回
到客户机2然后经由服务器B到达客户机3 。
5.2.2向一个主机/服务器掩网
为了提供一种向大量相关客户机发送消息的机制,必须能够向主机/服务器掩网发送消
息 。这些消息发送给掩码信息相符的那些主机和服务器 。消息只被发送到客户机所在
的特定区域,和频道的方式差不多 。
5.2.3向一系列目标
效率最差的一对多谈话方式是客户机向一系列目标谈话(客户机,频道,掩网) 。
这种方式的实现是不言自明的:客户机给出消息目的地的列表,服务器将它分解并向
每个目的地发送一份消息拷贝 。
这种方式没有频道方式有效率,因为列表可能被破坏而且不能保证沿着每条路径向下
发送每条消息的拷贝 。
5.3向所有
一对所有式的消息最好是用广播消息来描述,这种消息是发送给所有客户机或服务

推荐阅读