IRC是什么??
时间:2007-06-09 来源:Darewin
IRC原理介绍
================================================================
1. 中转
理解 IRC 原理的关键就是理解其"中转"功能. 什么是中转呢? 我们来做一个比较说明. 假设, A 与 B 要交谈. 如果不采用中转, 那么 A 直接建立一条到达 B 的通信隧道, 二者通过这条通信隧道进行信息交流, 信息流的方向为: A->B 和 B->A; 如果采用中转, 则需要有一个第三方来担任中转角色, 设为 C, A 建立一条到达 C 的通信隧道, B 也建立一条到达C 的通信隧道, 然后 A 与 B 通过 C 来间接进行通信, 信息流的方向为:A->C->B 和 B->C->A . C 就起着 A 与 B 间的中转站的作用. 中转有什么优点呢? 中转的最大优点是使"群聊"能够方便地进行. 恰当地说, 中转模式为信息广播提供了方便. 我们来举例子. 假设 A, B 和 D 三者要一起聊天. 如果没有 C 的中转, 那么 A 要将所说的每句话分别发给 B 和D; 如果有 C 做中转, 那么 A 将所说的话发给 C, 然后 C 将 A 的话分别发给 B 和 D. 可见, 当没有中转时, 每个参与聊天的计算机都要执行信息广播的任务, 当存在中转时, 信息广播的任务全由中转者来执行.中转站 C 的存在使得信息交流过程中的工作任务发生分离, 可以把网络
环境好、机器配置高的计算机作为中转站来提供服务功能. 这就形成了IRC 的服务器-客户端 模型, 聊天者作为客户端, 连接到中转站服务器上.
----------------------------------------------------------------
2. 服务器网络
在上面的例子里, 只有一个中转者 C 来承担服务. 当聊天者数量很多时,会使 C 不堪重负. 解决的办法是, 使用多个服务器, 服务器之间互相连接成网络, 把聊天者分散到各个服务器上. 服务器网络以树型结构互相连通, 见下图. 聊天者可以任选一个服务器连接. 举例来说, 在北京建立一个 IRC 服务器, 称为 BJ, 在上海建立一个 IRC 服务器, 称为 SH, 然后将 BJ 和 SH 连接起来, 组成一个只有两个服务器的 IRC 网络. 北京的用户连接到 BJ 上, 上海的用户连接到 SH 上, 这样北京的用户就可以与上海的用户聊天了. 其他地区的用户可以根据地理位置的远近选择使用BJ 或 SH 服务器. 概括地说, 聊天网络上的每个服务器都是一个中转站,当它从一个服务器或客户收到一条消息时, 就将该消息转发给其它服务器,同时也根据具体情况, 决定是否将消息转发给连接到自己的用户.
----------------------------------------------------------------
3. 频道
频道的本质是广播组. 用户可以进入一个频道, 也可以离开一个频道. 当一个用户朝频道说话时, 频道里的其他用户都能收到他的话(由服务器中转). 当第一个用户进入频道时, 频道被创建, 当最后一个用户离开频道时, 频道被取消. 因此, 从用户的角度看, 频道就是聊天室. 下面说说频道之所以被称为"频道"的原因. 如果一个聊天网络有多个服务器, 频道要由服务器共同维护. 举一个例子. 有三个服务器, 连接方式为 A-B-C. 在服务器A上, 有第一个用户进入 #IRC 频道, 这时, 服务器A上即创建频道"#IRC", A 将频道 "IRC" 的创建消息发给 B 和 C. 由于 B 和 C 上都没有用户位于 #IRC 频道, 因此不执行任何操作. 在这以后, 服务器C上有一个用户进入 #IRC 频道, 此时服务器C上也创建频道 "#IRC", C 将"#IRC" 的创建消息发给 A 和 B. 之后, 需要执行以下操作: B 上建立频道 "#IRC" 并将 A 与 C 的 "#IRC" 频道连接起来, 组成一个统一的#IRC . 现在, 虽然 B 上没有用户位于 #IRC 频道内, 但是 B 上也开通了 #IRC 频道. 可见, 频道好象一条通信管道, 将所有开通此频道的服务
器贯穿起来, 信息流在这个管道中流通.
================================================================
1. 中转
理解 IRC 原理的关键就是理解其"中转"功能. 什么是中转呢? 我们来做一个比较说明. 假设, A 与 B 要交谈. 如果不采用中转, 那么 A 直接建立一条到达 B 的通信隧道, 二者通过这条通信隧道进行信息交流, 信息流的方向为: A->B 和 B->A; 如果采用中转, 则需要有一个第三方来担任中转角色, 设为 C, A 建立一条到达 C 的通信隧道, B 也建立一条到达C 的通信隧道, 然后 A 与 B 通过 C 来间接进行通信, 信息流的方向为:A->C->B 和 B->C->A . C 就起着 A 与 B 间的中转站的作用. 中转有什么优点呢? 中转的最大优点是使"群聊"能够方便地进行. 恰当地说, 中转模式为信息广播提供了方便. 我们来举例子. 假设 A, B 和 D 三者要一起聊天. 如果没有 C 的中转, 那么 A 要将所说的每句话分别发给 B 和D; 如果有 C 做中转, 那么 A 将所说的话发给 C, 然后 C 将 A 的话分别发给 B 和 D. 可见, 当没有中转时, 每个参与聊天的计算机都要执行信息广播的任务, 当存在中转时, 信息广播的任务全由中转者来执行.中转站 C 的存在使得信息交流过程中的工作任务发生分离, 可以把网络
环境好、机器配置高的计算机作为中转站来提供服务功能. 这就形成了IRC 的服务器-客户端 模型, 聊天者作为客户端, 连接到中转站服务器上.
----------------------------------------------------------------
2. 服务器网络
在上面的例子里, 只有一个中转者 C 来承担服务. 当聊天者数量很多时,会使 C 不堪重负. 解决的办法是, 使用多个服务器, 服务器之间互相连接成网络, 把聊天者分散到各个服务器上. 服务器网络以树型结构互相连通, 见下图. 聊天者可以任选一个服务器连接. 举例来说, 在北京建立一个 IRC 服务器, 称为 BJ, 在上海建立一个 IRC 服务器, 称为 SH, 然后将 BJ 和 SH 连接起来, 组成一个只有两个服务器的 IRC 网络. 北京的用户连接到 BJ 上, 上海的用户连接到 SH 上, 这样北京的用户就可以与上海的用户聊天了. 其他地区的用户可以根据地理位置的远近选择使用BJ 或 SH 服务器. 概括地说, 聊天网络上的每个服务器都是一个中转站,当它从一个服务器或客户收到一条消息时, 就将该消息转发给其它服务器,同时也根据具体情况, 决定是否将消息转发给连接到自己的用户.
----------------------------------------------------------------
3. 频道
频道的本质是广播组. 用户可以进入一个频道, 也可以离开一个频道. 当一个用户朝频道说话时, 频道里的其他用户都能收到他的话(由服务器中转). 当第一个用户进入频道时, 频道被创建, 当最后一个用户离开频道时, 频道被取消. 因此, 从用户的角度看, 频道就是聊天室. 下面说说频道之所以被称为"频道"的原因. 如果一个聊天网络有多个服务器, 频道要由服务器共同维护. 举一个例子. 有三个服务器, 连接方式为 A-B-C. 在服务器A上, 有第一个用户进入 #IRC 频道, 这时, 服务器A上即创建频道"#IRC", A 将频道 "IRC" 的创建消息发给 B 和 C. 由于 B 和 C 上都没有用户位于 #IRC 频道, 因此不执行任何操作. 在这以后, 服务器C上有一个用户进入 #IRC 频道, 此时服务器C上也创建频道 "#IRC", C 将"#IRC" 的创建消息发给 A 和 B. 之后, 需要执行以下操作: B 上建立频道 "#IRC" 并将 A 与 C 的 "#IRC" 频道连接起来, 组成一个统一的#IRC . 现在, 虽然 B 上没有用户位于 #IRC 频道内, 但是 B 上也开通了 #IRC 频道. 可见, 频道好象一条通信管道, 将所有开通此频道的服务
器贯穿起来, 信息流在这个管道中流通.
相关阅读 更多 +