交换交谈服务器协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要做下去!·············我下资源网NetworkWorkingGroupC.KaltRequestforComments:2813April2000Updates:1459Category:InformationalInternet交换交谈:服务器协议(RFC2813——InternetRelayChat:ServerProtocol)备忘录的状态:这个备忘录提供了internet群体的信息。它并没有详细说明每一种internet的标准。这个备忘录的适用范围是无拘束的。版权通告:copyright(c)internetSociety(2000).AllRightsReserved.摘要:以客户端——服务器为模板,irc协议允许服务器连接到另外的有效形成的网络。本文档定义了服务器用于互相交流的协议。它原来只是一个客户端协议的超集,但是已经发展的不同了。正式的出版是在1993年5月作为rfc的一部分。从那时以来,大多数的为了使协议更加标准的改变都可以在这篇文章中找到。更加标准的协议已经允许出现在万维网中,以使它可以保持不断的更新,并且有别于原来的版本。目录1绪论22.全球数据库32.1服务器32.2客户端32.3信道43.irc服务器的说明43.1概要43.2特征代码43.3信息53.4数字回复64信息细节64.1连线注册74.2信道操作:114.3模式信息135.执行细节135.1连接失效135.2接受客户端到服务器的连接135.3终结一个服务器到服务器的连接145.4中断服务器与客户端的连接165.5中断之间的连接165.6跟踪呢称变化165.7跟踪最近使用过的用户名175.8客户端的溢出控制175.9无模块查找176.当前问题18路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要做下去!·············我下资源网6.1可靠性186.2标志186.3运算法则197.安全考虑197.1证明207.2完整性208.相关支持和联接209.鸣谢:2010.参考书目:2111.作者地址2212.版权说明22致谢:231绪论这篇文章是为了那些开发irc服务器的人而做的,但同时对那些以irc为工具的人也是有用处的。服务器提供了以《irc:体系》中定义的同时讨论为基础的三项服务:客户端位置(由客户端协议[irc客户端]定义),信息传递(由这篇文章中的服务器协议定义),和信道的建设主机与会议协商(详细条款请看[irc——信道])。2.全球数据库尽管irc协议定义了一些公平的发散式的模式,但是每一个服务器保持了一个关于整个irc网络的“全球状态数据库”。这个数据库理论上说对所有服务器来说都是独一无二的。2.1服务器服务器可以通过申请一个最长63个字母的独一无二的名字。查看协议的语法条款[3。3。1]来确定那些字母在名字中是可以使用的,那些是不能使用的。每一个服务器都是理论上都是被其他服务器所了解的,但是有一种可能,定义一个假的主机名字联合其他服务器使用它的名字。在HOSTMASK的区域里,所有服务器都有一个和HOSTMASK名字相符的名字,在HOSTMASK区域外的服务器,即使有一个跟HOSTMASK一样的名字,也不可以登陆到irc中去。而区域外的服务器对于区域内的服务器的状态则一无所知,相反的,它们被赋予一个HOSTMASK的名字。2.2客户端对于每一个客户端,所有的服务器都必须有以下信息:一个网络中独特的姓名标志(它们的形式由客户端来决定),以及一个正在与客户端连接的服务器。2.2.1用户每一个用户有个独特的最长为9个字母的用户名。查看协议上的语法规则[3。3。1]来判断什么是能够使用的,那些不能使用。作为用户名的附加段,每个服务器都要对用户保留有以下信息:用户正在连接的服务器名,用户在该服务器上的用户名,以及服务器连接的客户端名。2.2.2服务路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要做下去!·············我下资源网每一项服务都可以通过用户名和服务器名来区别与其他服务。用户名最多允许9个字母。查看协议上的语法规则[3。3。1]来判断那些字符可以使用,那些不行。用来标志服务名称的服务器名就是这项服务连接的服务器名。作为这项服务的补充,所有服务器必须都了解这种服务形式。服务通过它们特有的标志符形式来区别于用户名,但是更多的较重要的服务和用户名对服务器的权限是不同的:服务可以调用服务器中保留的部分甚至全部全球数据库中的信息,但是对它们的限制就更加严格(详见irc客户端协议)并且不允许加入信道。最后一点,服务并不总是服从与防火墙的5。8中有详细叙述。2.3信道就象服务一样,信道也有它的相应规定[irc——信道]并且没有必要让所有服务器了解。当一个信道的存在被一个服务器所了解,服务器就一定要记录信道成员的轨迹和信道模式。3.irc服务器的说明3.1概要这里描述的协议是用来给服务器和服务器相连接的。关于客户端与服务器的连接,请看irc——客户端协议规则。但是,对于客户端的连接有比服务器之间连接更多的规定(但是通常别认为是不可靠的)。3.2特征代码这里并没有说明那些特殊的特征代码。协议是以一个由8个字节的代码组成的集合构成的。每一条信息都可能由若干个这种8位字节的代码组成。但是,一些8个字节的代码含义是用来做控制代码的,就象信息的分割符。不管是什么样的8字节协议,分割符和关键字都是协议用来进行美国——ASCII码的终端连接和远程登录连接。因为irc是由北欧方面产生的,某些地区,字母{}|^被认为是等同于小键盘上的{}\~字母。这在确定用户名和信道名是否相同时,回出现严重问题。3.3信息服务器和客户端发送各自的信息,当然,可能收到回复,也可能没有回复。大多数服务器之间的联系不需要回复,因为大多数时候服务器会为客户端准备好工作进程。每一条irc的信息都由三个主要部分组成:前缀(可以省略),命令,和命令参数(最多15个字符)。前缀,命令和所有参数被一个ASCII码空格(0*20)隔开。前缀是以一个ASCII码中的冒号(:0*3b)来标识的,它必须是信息的第一个字符。冒号和前缀之间不可以有空格。前缀是服务器用来标识信息的来源的。如果信息中的前缀丢失,它就会被默认成是从它刚刚连接并接收到信息的那个服务器。客户端自己互相在发送信息时,不应该使用前缀;如果它使用了,唯一有效的前缀就是正在使用这个客户端的已经注册过的用户名。路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要做下去!·············我下资源网当一个服务器接收信息时,它必须通过前缀来判别信息的来源。如果在服务器的中央数据库中找不到前缀,那它一定是被丢弃了,并且如果这个前缀指明的服务器是一个不知名的服务器,那么这个信息传来的的连接将被删除。在这种情况下删除连接是有点过分,但是保持网络服务的严谨与制止未来可能发生的问题却是必要的。另外一种常见的问题:前缀指向的信息来源是与实际不同(典型情况:来源指向的是另一个连接而不是信息来源。)如果信息被服务器接收,而来源指向客户端,一条删除客户端的信息就会发送到各个服务器中去。另外一种情况,信息由来的那个连接就应该会在客户端被删除,并且一定要在服务器内删除。不管什么情况,这条信息都要被删除。命令一定要是有效的irc命令或者是用ASCII码描述的三位字节。Irc信息通常是以CR-LF(换行和回车)为结束的成行的命令,这些信息的长度不可以超过512个字节,其中包括CR-LF。因此,命令和它的参数最多只能有510个字节。没有可以用来延长命令行的方法。查看第5部分可以找到有关当前命令的执行。3.3.1扩展格式的信息有关协议的信息一定要从一系列的8位字节中提取出来。现在的办法是标志出两个字符,CR,LF,用来提取信息。空信息通常被默默忽略掉,这就显示出CR-LF在预防额外问题中的作用。有效的信息被分成:若干部分(前缀),(命令),和参数表(参数)。扩展BNF对这方面的表述可以在irc——客户端协议中找到[irc--客户端]。附加前缀([“!”user“@”host])决不可以在服务器之间的连接中使用,它的使用范围只有服务器到客户端的连接,这样,客户端即使不需要额外的疑问而直接得到信息的来源。3.4数字回复绝大部分发送去服务器的信息是有一定顺序的。最普通的回复是数字回复,既可以用来回复错误,也可以普通回复。数字回复作为一种信息,一定要包括有前缀,三个阿拉伯数字,和回复的目标对象客户端不允许发送数字回复,服务器如果接收到这样的回复,就会自动删除掉。在所有其他关系中,数字回复就象是一个普通的信息,除非它的关键字是用三个阿拉伯数字组成的,而不是字符串。一些另类的数字回复可以在irc——客户端协议中找到[irc——客户端]。4信息细节所有irc的服务器与客户端认可的信息都在irc---客户端协议中详细介绍过了。当出现错误:没有此服务器时,那就意味着目标信息没有被找到。如果是命令发生这种错误,服务器决不可以发送回复。客户端所连接的服务器要分析整个信息,回复适当的错误。如果服务器在分析信息时,遇到一个致命的错误,那么一个错误的回复信息就会被送回,并且终止分析。致命的错误通常是由错误命令引发的,目标来源对于服务器来说可能是未知的(服务器,客户端,信道符合这个类型),也可能是不正确的参数,或者错误的权限。如果全部参数都存在,那么每一个都必须检查它是否能够有效的并且合适的送回到客户端。如果信息中使用的参数表是用逗号来做分隔符的,那么就要发送回复来得到每一条路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要做下去!·············我下资源网条款。在下面的例子中,有些信息是以完整形式给出的::姓名命令参数菜单这样的例子是用“姓名”来标志信息的,在服务器间来回的传递,它的本质是信息的原始发送者的名字,这样,即使远程服务器也可以找到正确的路径。描述从客户端到服务器的连接细节的信息在irc——客户端协议中有详细描述[irc——客户端]。下面文章的一些章节就是对这些文章的应用,它们对那些只描述服务器之间连接和信息的执行的信息是个附加。在这里介绍的信息都是只用来做服务器之间连接的。4.1连线注册这里介绍的命令是用来向另外一个irc服务器连线注册的。4.1.1密码信息命令:路径参数:密码提示信息标志位[选项]PASS路径命令被用来设置一个连接密码。密码一定要在连线注册前设定。这就意味着在PASS命令一定要在任何服务器命令之前。只有第一个PASS命令会被连接认可。如果是从客户端接收到的信息,那么最后的三个参数就会被忽略(e。g服务器的一个用户)。只有当它们是从服务器发送来得时候,它们才相互关联。变量参数至少要有四个字节,最多有十四个字节。开始的四个字节一定要是阿拉伯数字,简要说明协议中的变量,就是已被服务器获知的那些信息。这篇文章所描述的就是2。1。0版本的协议,通常被标志成“0210”。剩下的可供选择的字母是执行时所要依靠的,并且需要描述软件的版本号。标志位参数是一个字符串,最长可以包括100个字符。它是由两个副串组成的,中间以一个“|”分开(%x7c)。如果是现在,那么这第一个副字符串一定要是执行的名字。涉及到的执行(请看第8部分,当前的支持与可靠性)使用irc字符串。如果要写另外一个执行命令,就需要一个标志符,并且这个标志符应该是在RFC上已注册的。两个副串是可选择的,但是字符“|”是必须的。这个字符不可以出现在任何一个副串中。最后,最后的参数,选项,是用来做连接设置的。协议定义过的唯一选项,连接压缩(使用

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功