サイズ: 6842
コメント:
|
← 2011-05-02 14:58:36時点のリビジョン23 ⇥
サイズ: 179
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
#acl ytoku:read,write,delete,revert,admin <<TableOfContents>> = 構造から見る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にはメッセージが送られません。 === 対チャンネル === チャンネルに送信されたメッセージは、そのチャンネルに参加しているクライアントにのみ送られます。 そのチャンネルに参加しているユーザがいないサーバに対しては、そのサーバが途中経路になっていない限り送信されません。 /* TODO: グローバルデータベースからユーザ名、ニックネームなどを説明 */ == チャンネル == === チャンネル名 === チャンネル名にはいくつかの制約があります。 * '&'か'#'か'+'か'!'で始まる。(チャンネルプレフィックス) * 50文字以下 * スペース' '、ベル文字(0x7)、コンマ','を含まない なお、後述するようにコロン':'に特別な意味があり、チャンネルマスクのデリミタとして用いられます。 チャンネルプレフィックスは名前の一部であることに注意してください。 チャンネルプレフィックスが異なれば別のチャンネル名として扱われます。 === チャンネルプレフィックスの意味 === チャンネルプレフィックスは次のような意味を持ちます。「チャンネルモード」と「セーフチャンネル」については後述します。 ||<rowclass="header">prefix||説明|| ||'#' シャープ||普通のチャンネル|| ||'&' アンパサンド||サーバローカル。他のサーバに情報が送られないので、サーバ内部で独立したチャンネルになる。|| ||'+' プラス||チャンネルモードをサポートしないチャンネル|| ||'!' エクスクラメーション||セーフチャンネル|| === チャンネルオペレータ === チャンネルオペレータは権限を割り当てられた参加者です。名前の前に@などを付けて表現されます。 チャンネルオペレータのみが行うことの出来るコマンドとして次のようなものがあります。 * KICK: クライアントをチャンネルから追い出す * MODE: チャンネルのモードを変更する さらに、以下のモードが有効の場合には次のコマンドも制限されます。 モードが+iの場合 * INVITE: 招待専用チャンネルに他のユーザを招待する モードが+mの場合 * PRIVMSG: (クライアントや)チャンネルにメッセージを送る モードが+tの場合 * TOPIC: トピックを変更する === チャンネルモード === 主に管理に関わるチャンネルの設定を指します。チャンネルモードはIRC上からMODEコマンドによって変更できるようになっています。 MODEコマンドは一般的にはクライアントからは {{{ /mode (チャンネル名) +t }}} あるいは、チャンネル上で {{{ /mode +t }}} のようにして操作します。+tで有効に-tで無効にします。 チャンネルモードの一部を挙げると次のようなものがあります。詳しくはRFC2811の4. Channel Modesなどをご参照ください。 ||<rowclass="header">文字||説明|| ||o||+o (ユーザ)のように用いて、ユーザをオペレータにする|| ||i||招待によってのみ参加可能|| ||n||参加者以外からのメッセージを受け付けない|| ||p||参加者以外にチャンネルを隠す|| ||s||参加者以外にチャンネルを隠し、情報を取得させない|| ||t||トピックの変更をオペレータに限る|| === トピック === トピックには、現在チャンネルで話し合われている内容などを表すための任意の文字列を設定できます。 トピックの変更はTOPICコマンドで行います。TOPICコマンドは一般的にはクライアントから {{{ /topic (チャンネル名) 新トピック文字列 }}} あるいは、チャンネル上で {{{ /topic 新トピック文字列 }}} チャンネルモードが+tの場合は、トピックを変更できるのはチャンネルオペレータに限られます。 === セーフチャンネル === === チャンネルマスク === |
書けたら良さそうなIRCサーバ管理者向けトピック * スパニングツリーと閉路と耐障害性 * ネットワークの分断 * チャンネル遅延 |
書けたら良さそうなIRCサーバ管理者向けトピック
- スパニングツリーと閉路と耐障害性
- ネットワークの分断
- チャンネル遅延