ログイン
編集不可のページディスカッション情報添付ファイル
"ytoku/IRC"の差分

MMA
3と23のリビジョン間の差分 (その間の編集: 20回)
2011-04-26 02:25:44時点のリビジョン3
サイズ: 2964
編集者: ytoku
コメント:
2011-05-02 14:58:36時点のリビジョン23
サイズ: 179
編集者: ytoku
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
#acl ytoku:read,write,delete,revert,admin
= 構造から見るIRC基礎知識 =
RFCの概念部分に書かれている内容をかいつまんで解説します。

参考文献 RFC2810, RFC2811
== ネットワーク構造 ==
IRCはInternet Relay Chatの略であり、その名の通りリレー(バケツリレーですね)によってメッセージを届けるチャットシステムです。
複数のサーバ間でスパニングツリー状のネットワークを構成し、ネットワークにループは存在しません。
クライアントは一つのサーバに接続しておき、サーバを介してメッセージを他のクライアントに届けます。
クライアントの属するサーバが異なる場合には、サーバ同士でメッセージを交換して複数のサーバを経由して目的のクライアントまで届けます。
クライアント同士が直接通信することはありません。

サーバはクライアントにメッセージを選択的に届けるために、どのクライアントがどのサーバにいるかという情報を知らなければなりません。
そこで、クライアントの情報はラベルと呼ばれる機能で管理され、サーバ間で共有されます。
/* TODO: 要確認 */

 スパニングツリー::
  TODO
 ラベル::
  TODO

== メッセージの流れ ==
=== 1対1通信 ===
二つのクライアントが属するサーバが同一であれば、そのサーバが仲介してメッセージを届けます。メッセージは他のサーバには伝わりません。

二つのクライアントが属するサーバが異なる場合には、経路上にあるサーバをいくつか経由して目的のクライアントまでメッセージを届けます。やはり経路上にはないサーバにはメッセージは伝わりません。

例として、サーバAにログインしているクライアントxと、サーバCにログインしているクライアントyの間でメッセージをやりとりするとします。
サーバAはサーバB、さらにサーバBはサーバCとサーバDに接続されているとしましょう。
クライアントxからクライアントyにメッセージを送る場合に、その経路上にはサーバA,B,Cがあります。
よってサーバAからはサーバBに送信され、サーバBからサーバCに送信されることによってクライアントyの元までメッセージが届きます。
経路上にないサーバDにはメッセージが送られません。

=== チャンネル ===
チャンネルに送信されたメッセージは、そのチャンネルに参加しているクライアントにのみ送られます。
そのチャンネルに参加しているユーザがいないサーバに対しては、そのサーバが途中経路になっていない限り送信されません。
書けたら良さそうなIRCサーバ管理者向けトピック
 * スパニングツリーと閉路と耐障害性
 * ネットワークの分断
 * チャンネル遅延

書けたら良さそうなIRCサーバ管理者向けトピック

  • スパニングツリーと閉路と耐障害性
  • ネットワークの分断
  • チャンネル遅延

ytoku/IRC (最終更新日時 2011-05-02 14:58:36 更新者 ytoku)