组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 译者:谢炜(x1982212 x1982212@263.net) 译文发布时间:2001-8-7 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须 保留本文档的翻译及版权信息。
Network Working Group C. Kalt Request for Comments: 2811 April 2000 Updates: 1459 Category: Informational
Internet延迟交谈:通道管理
(RFC2811― Internet relay chat:client protocol)
此备忘录的状态
该备忘录为互联网团体提供信息。它并不制定任何互联网标准,可以被无限制的发布。
Copyright Notice
Copyright (C) The Internet Society (2000). All Rights Reserved.
摘要
IRC(Internet延迟交谈)协议最引人注目的一个特征就是允许用户按论坛分组,称作通道,
提供了一种多个用户一起交流的方法。
这篇文档详细讲述了通道、它们的特征和属性怎样经由IRC服务器管理。
1.介绍 2
2.通道特征 2
2.1名字空间 2
2.2通道范围 3
2.3通道属性 3
2.4特权通道用户 3
3.通道生存期 4
3.1标准通道 4
3.2安全通道 4
4.通道模式 5
4.1成员身份 5
4.2通道标志 6
4.3通道访问控制 7
5.目前的实现 8
5.1追踪最近使用过的通道 8
5.2安全通道 8
6.目前的问题 10
6.1标志 10
6.2状态传播延迟 10
6.3冲突和通道状态 11
6.4资源耗尽 11
7.安全考虑 11
7.1访问控制 11
7.2通道秘密 12
7.3匿名 12
8.目前的支持和获取渠道 12
9. 感谢 12
10. 参考文献 12
11. 作者地址 13
1.介绍
这篇文档详细地定义了通道是如何由IRC服务器定义的,它对从事IRC服务器实现的人
特别有用。
尽管这里定义的概念是IRC的一个重要部分,但它们对于客户端的实现却不是必需的。
尽管客户端的趋势是越来越复杂和“聪明”,能够利用通道的内部工作为用户提供一个更
友好的界面,但是简单的客户端不需要阅读这篇文档就能够实现。
这里定义的许多概念都是由头脑里的IRC体系结构 [IRC-ARCH]所限定的,并且大多数
只有在这种环境下才有意义。但是其他的许多概念能够运用到其他的体系结构,以便为会
议系统提供论坛场所。
最后,要声明的是IRC用户可能发现以下几部分有用,特别是第二部分(通道特征)和第四
部分(通道状态)。
2.通道特征
通道就是由一个或更多用户组成的命名组,组里所有成员都接收寄到这个通道的消息,通
道由它的名字,属性,目前的成员来标志。
2.1名字空间
通道的名字(由一个‘&’,‘#’,‘+’或者‘!’开头)可以长达五十个字符。通道的
名字对大小写敏感。
除了第一个字符必须是‘&’,‘#’,‘+’或者‘!’(今后称作“通道前缀”)的要
求外。对通道名字的唯一限制是它不能包含任何空格(‘ ’)、控制符G(^G或者ASCII 7)、
逗号(‘,’被协议用作列表项的分隔符)。还有,冒号(‘:’)用作通道掩码的分隔符。
精确的通道名字语法在“IRC Server Protocol“[IRC-Server]中定义。
不同前缀的使用有效地为通道名字创造了四个名字空间。这很重要,因为此协议的局限性
和名字空间有关(一般意义上)。参阅6.1部分(标志)以获得关于局限性的更多细节。
2.2通道范围
一个通道实体被IRC网络上一个或更多个服务器所知晓。只有与用户直连的服务器
知道的通道,用户才能加入。知道一个特定通道存在的一系列服务器必须是IRC网络上
一个邻近的部分,这样发送给该通道的消息才能被发送给所有通道成员。
以‘&’为前缀的通道对创建它们的的服务器来说是本地的。
其它通道被连到网络上的一个或更多个服务器知晓,依赖于通道掩码:
如果没有通道掩码,该通道就被所有服务器知晓。
如果有一个通道掩码,此通道只被那些有本地用户连到通道上的服务器所知晓,如果
掩码和本地的以及相邻的服务器名字相配,那么也为他的邻近服务器知晓。因为其他服务
器完全没有这样一个通道的存在的任何信息,如果这个通道要为所有服务器知晓的话,这
些具有和掩码相配的名字的服务器组成的区域必须和该通道相邻。通道掩码最好与服务器
主机掩码[IRC-SERVER]配合使用。
2.3通道属性
每个通道都有它自己的有通道状态定义的属性。通道模式能够被通道成员使用。模
式影响服务器管理通道的方式。
以‘+’作为前缀的通道不支持通道模式。这意味着所有的模式都是未设定的,只设
定了‘t’通道标志。
2.4特权通道用户
为了使通道成员对通道保持一定的控制和一些秩序,一些通道成员被赋予特权。只
有这些成员才允许在通道上执行一下操作:
INVITE ― 邀请一个客户到一个invite-only通道(模式+i)
KICK ― 将一个客户从通道中逐出
MODE ― 改变通道的模式,也可以改变成员的特权
PRIVMSG ― 向通道发消息(模式 +n,+m+v)
TOPIC ― 在模式为+t的通道中改变通道主题
2.4.1通道管理员
一个给定通道上的通道管理员(也被称为“chop”或“chanop”)被认为拥有此通道。
通道所有权由通道管理员共享。
无论什么时候和通道相关,通道管理员都由与其名字相邻的‘@’符号来标志(比
如说,回答NAMES,WHO,和WHOIS命令)。
由于以字符‘+’为前缀的通道不支持通道模式,因此没有成员具有通道管理员的地位。
2.4.2通道创建者
创建一个通道的用户称为“通道创建者”,以‘!’前缀作为其标志。一旦创建了通
道,此用户也就被赋予了通道管理员的地位。
为了识别此地位,通道创建者被赋予锁定通道状态的能力,这种能力是通道管理员所没有
的。
通过发送恰当的MODE命令能够区分‘通道创建者’和通道管理员。参阅“IRC Client
Protocol”[IRC―CLIENT]以获取这方面的更多信息。
3.通道生存期
和通道生存期相关的是,存在两组典型的通道:标准通道,它的前缀不是‘&’‘#’
就是‘+’,以及安全通道,它的前缀是‘!’。
3.1标准通道
这些通道当地一个用户加入时暗中创建,最后一个用户离开时停止生存。但通道生存
时,任何客户都能够通过通道的名字引用此通道。
创建通道的用户自动变成通道管理员,当然前缀是‘+’的通道除外,参见第四部分(通
道模式)。参阅2.4.1部分以获取此主题的更多信息。
为了避免创建两个一样的通道(特别是当IRC网络由于两个服务器的断连而脱节),通
道名字在通道管理员由于网络断连离开时应该不允许再被用户使用。如果这种情况发生了,
通道名字就是暂时不能使用了。通道持续不可用时间应该在每个IRC网络的基础上做出调
整。需要重点声明的是这样可以防止用同一个名字再创建一个通道,但是不能防止远端用
户重新创建该通道。后者在IRC网络重新连接时特别容易发生。很明显,这种机制知识和
与名字以字符‘#’开头的通道,但也可能被名字以字符‘+’开头的通道使用。这种机制
被普遍称作‘通道延迟’。
3.2安全通道
和其他通道不同,“安全通道”不是暗中创建的。希望创建这类通道的用户必须向服
务器发送一个特别的JOIN命令以申请创建,服务器中的通道标识符(接着就是未知的了)
被字符‘!’替代。此类通道的创建受到严格控制。用户只选择部分通道名字(称为通道
‘短名’),服务器自动将用户提供的名字前面加上五个通道标识符。这两种元素结合而
成的通道名字是唯一的,使通道不会因为网络断连而被滥用。
创建此类通道的用户自动成为‘通道创建者’。参阅2.4.2部分(通道创建者)以获得关
于此主题的更多信息。
如果新通道的短名和另一个业已存在的通道的短名相同,又如果另一个具有相同短名
的通道最近存在过而且它的成员由于网络断连离开,那么服务器就禁止这样的通道的创建。
这类通道在最后的成员离开并且最近没有其他成员由于网络断连离开后停止生存。
和5.2.2部分(通道延迟)描述的机制不同的是,在这种情况下通道的名字并不变成不可用的:
这些通道在最后的成员离开后可能继续生存。只有创建通道的用户才变成“通道创建者”,
假如一个存在的空通道的用户并不自动变成“通道创建者”也不变成“通道管理员”。
为了保证通道名字的唯一性,由服务器创建的通道标识符必须遵循一定的规则。更多的细
节,参阅5.2.1部分(通道标识符)。
4.通道模式
通道能够获取的各种模式如下所示:
0 ― 赋予“通道创建者”地位;
o ― 赋予/收回 “通道管理员”特权;
v ― 赋予/收回 发言特权;
a ― 转换匿名通道标志;
i ― 转换invite-only通道标志;
m ― 转换是否调节通道
n ― 转换是否允许外部客户发送消息到通道
q ― 转换安静通道标志;
p ― 转换私人通道标志
s ― 转换秘密通道标志
r ― 转换服务器reop通道标志
t ― 转换是否只能由通道管理员设置主题
k ― 设置/删除通道钥匙(密码);
l ― 设置/删除通道用户限制
b ― 设置/删除禁令掩码使用户不能进入
e ― 设置/删除异常掩码来覆盖禁令掩码;
I ― 设置/删除邀请掩码来覆盖invite-only标志;
除非在下面特别声明,所有这些状态都能被“通道管理员”通过MODE命令使用,MODE
命令在“IRC Client Protocol”[IRC-CLIENT]中定义。
4.1成员身份
此域中的模式将通道成员的昵称作为参数并影响赋予成员的特权。
4.1.1“通道创建者”身份
模式‘0’只和“安全通道”结合使用而且不能被用户使用。服务器用它来
给予创建通道的用户“通道创建者”的身份。
4.1.2通道管理员地位
模式‘o’用来转换通道成员的管理员身份。
4.1.3发言特权
模式‘v’用来给予通道成员发言特权和从成员处收回发言特权。具有这种特
权的用户能够在调节过的通道上交谈。(参阅4.2.3部分(Moderated Channel Flag)。
4.2通道标志
此域中的模式用来定义影响通道如何管理的属性。
4.2.1匿名标志
通道标志‘a’定义了一个匿名通道。这意味着当一条发送到通道的消息被
服务器发送给用户时,并且它来自用户,那么它就要被屏蔽掉。为了屏蔽掉消息,来源被改
成“anonymous!anonymous@anonymous.”(也就是说,一个别名是“anonymous”,用户名是
“anonymous”的用户,来自叫做“anonymous”的主机)。因为这样,服务器必须禁止别名
为“anonymous”的用户。服务器不能为用户离开这类通道而发送QUIT笑给其他通道的成员,
而是产生一条PART消息。
在以字符‘&’为前缀的通道上,这个标志也许由通道管理员转换,但是在以字符‘!’为前
缀的通道上,这个标志只能由‘通道创建者’设定(但是不能够不设定)。此标志在其它类型
的通道上不能够使用。
在匿名标志已经设定的通道上,对whois,who,和names命令的答复不能够表明通道上其他用
户的存在。
4.2.2 Invite Only标志
当通道标志‘i’设定后,新成员只有当他们的掩码和邀请列表相符(参见4.3.2部
分)或者他们已经被通道管理员邀请。这个标志也对通道管理员限制了INVITE命令的使用
(参见“IRC Client Protocol”[IRC-CLIENT]。
4.2.3通道已调节标志
通道标志‘m’用来控制谁可以再通道上说话。当它设定时,只有通道管理员,和
被赋予了发言特权的成员才可以向其他通道发送消息。
这个标志只影响用户。
4.2.4不允许通道外客户向通道发送消息
当通道标志‘n’设定时,只有通道成员才可以向通道发送消息。
这个标志只影响用户。
4.2.5安静通道
通道标志‘q’仅供服务器使用。设定时,它限制发送给用户的关于通道操作的数据
类型:其他用户加入,离开和重要的变化都不发送。从用户的观点来看,通道只包含一个用
户。
这经常用于创建特别的本地通道,这种通道里服务器发送和它的操作相关的通知。它作为一
种更加有效率特富有弹性的方法可以用来取代RFC 1459[IRC]里定义的用户状态‘s’。
4.2.6私人和秘密的通道
通道标志‘p’用来标志一个通道是私人的,通道标志‘s’用来标志一个通道是秘
密的。两种性质很相似,他们都向其他用户隐藏了通道的存在。
这意味着如够不加入就没有办法从服务器得到通道的名字。换句话说,对whois命令这样的
询问的答复必须将这些通道省略掉。
当一个通道是‘秘密的’的时候,除了上面的限制外,对topic,list,names命令这样的询问,
服务器必须表现得象通道不存在一样。上述规则只有一个例外:服务器会正确地答复mode
命令。最后,当
Matthew Green, Michael Neumayer, Volker Paulsen, Kurt Roeckx, Vesa Ruokonen, Magnus Tjernstrom, Stefan Zehl. 10. 参考文献 [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [IRC] Oikarinen, J. and D. Reed, "Internet Relay Chat Protocol", RFC 1459, May 1993. [IRC-ARCH] Kalt, C., "Internet Relay Chat: Architecture", RFC 2810, April 2000. [IRC-CLIENT] Kalt, C., "Internet Relay Chat: Client Protocol", RFC 2812, April 2000. [IRC-SERVER] Kalt, C., "Internet Relay Chat: Server Protocol", RFC 2813, April 2000. 11. 作者地址 Christophe Kalt 99 Teaneck Rd, Apt #117 Ridgefield Park, NJ 07660 USA
EMail: kalt@stealth.net
RFC2811―Internet relay chat:client protocol Internet延迟交谈:通道管理
1 RFC文档中文翻译计划
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8