IRC:インターネットリレーチャットの概要
IRC(Internet Relay Chat)は、インターネット上で複数のユーザーがリアルタイムにテキストベースの会話を楽しむためのシステムです。クライアントソフトウェアを介してIRC
サーバーに接続し、チャットに参加します。
インスタントメッセンジャーの一種であり、ファイル転送機能も備えています。TCPプロトコルを使用し、TLSによる暗号化にも対応しています。
歴史
IRCは
1988年、
フィンランドのヤルッコ・オイカリネン氏によって開発されました。MUTというBBSプログラムの代替として考案され、Bitnet Relay Chatから着想を得ています。冷戦終結や
湾岸戦争といった歴史的出来事において、情報伝達手段として広く利用され、注目を集めました。
クライアントソフトウェア
IRCはオープンなプロトコルであるため、様々なプラットフォームに対応したクライアントソフトウェアが開発されています。有名なクライアントには、クロスプラットフォーム対応のIrssi、LimeChat、
Pidgin、WeeChat、Windows向けのmIRC、macOS向けのColloquy、
Linux向けのKonversationなどがあります。多くのクライアントは複数のプロトコルに対応しています。
主要ネットワーク
IRCネットワークは複数の
サーバーで構成され、EFnet、UnderNet、DALnet、QuakeNet、freenode、Libera Chat、IRCnetなどが代表的なネットワークです。日本国内では、SceneCritique、ReichaNet、irc.cre.jp系などが利用されています。
システム構造
IRCネットワークはツリー構造で構成されており、クライアントは
サーバーに接続することで、他の
サーバーに接続しているクライアントとも通信できます。
サーバーは接続クライアントの情報や送受信データを管理します。クライアントには、一般ユーザー用のクライアントと、特定の機能を持つサービスクライアントがあります。各クライアントはニックネームを持ち、チャンネルと呼ばれるチャットグループに参加します。チャンネルは参加者が自由に作成でき、最初の参加者がオペレータとなり、チャンネル管理を行います。
サーバーはクライアント間のデータ送受信を仲介し、データの転送を行います。クライアントは、PREFIX(送信元情報)、コマンド、パラメータからなるデータを送信し、
サーバーはコマンドを解釈して処理します。主なコマンドには、ニックネーム設定(NICK)、クライアント識別(USER)、接続終了(QUIT)、チャンネル参加(JOIN)、チャンネル退出(PART)、チャンネル設定(MODE)、メッセージ送信(PRIVMSG)などがあります。
サーバー間の接続が切断される場合もあります。
文字コード
IRCプロトコル自体では文字コードが規定されていません。そのため、異なる文字コードを使用するクライアント間では文字化けが発生する可能性があります。多くのネットワークでは暗黙的にISO-2022-JP(JISコード)が使用されてきましたが、UTF-8を採用するネットワークも増えています。クライアントソフトウェアによっては、複数の文字コードを選択できるようになっています。
仕様
IRCプロトコルはRFC 1459(IRC 2)で定義されています。RFC 2810から2813も関連する仕様です。
まとめ
IRCは古くから存在するテキストベースのチャットシステムですが、シンプルで拡張性の高いプロトコルと多くのクライアントソフトウェアによって、現在も世界中で利用されています。セキュリティや多言語対応といった課題も改善されつつあり、今後も発展を続けることが期待されます。