Internet Relay Chat
| TCP/IP群 | |
|---|---|
| アプリケーション層 | |
|
BGP / DHCP / DNS / FTP / HTTP / IMAP / IRC / LDAP / MGCP / NNTP / NTP / POP / RIP / RPC / RTP / SIP / SMTP / SNMP / SSH / Telnet / TFTP / TLS/SSL / XMPP カテゴリ |
|
| トランスポート層 | |
|
TCP / UDP / DCCP / SCTP / RSVP / ECN カテゴリ |
|
| ネットワーク層 | |
|
IP (IPv4, IPv6) / ICMP / ICMPv6 / IGMP / IPsec カテゴリ |
|
| リンク層 | |
|
ARP/InARP / NDP / OSPF / トンネリング (L2TP) / PPP / MAC (イーサネット, IEEE 802.11, DSL, ISDN, FDDI) カテゴリ |
Internet Relay Chat(インターネット・リレー・チャット、略称 : IRC)とは、サーバを介してクライアントとクライアントが会話をする枠組みの名称である。文章のみをやり取りして会話を行い、DCCなどを利用することでファイル転送も対応する。
TCPを通信用のプロトコルとして主に用いる。TLSで暗号化することもできる。
目次 |
歴史 [編集]
Internet Relay Chat(以下「IRC」と記述する)は1988年8月にフィンランドの OuluBox というBBSで使われていたMUTと呼ばれるプログラムの代替としてヤルッコ・オイカリネン (Jarkko Oikarinen) によって作られた[1]。BITNETネットワーク[2]で運用されていたBitnet Relay Chatに発想を得た。
IRCはその後鉄のカーテンの崩壊に際して東欧の人々が、あるいは湾岸戦争(1991年)の際に現地からIRCで情報発信されたために有名となった。
クライアント・ソフトウェア [編集]
IRCはデータの通信に関するプロトコルが簡素かつオープンとなっているため、ユーザ・クライアントに用いるソフトウェアの開発が容易であり、また、種類も多い。
OperaはWebブラウザ中心のインターネットスイートの機能のひとつとして、IRCクライアントの機能を備える。ChatZillaはWebブラウザ向けアドオンも用意されており、FirefoxなどのMozillaアプリケーションを拡張するかたちで利用することもできる。
Pidgin、Kopeteなどは、複数のプロトコルを扱えるクライアントで、IRCのほかにも Windows Live メッセンジャーや、Yahoo!メッセンジャーなどのプロトコルを利用することができる。
主なネットワーク [編集]
IRCには主だったサーバ・ネットワーク群として、
- EFnet
- UnderNet
- DALnet
- QuakeNet
- freenode
- IRCnet (WIDE projectのネットワークが接続されていた)
などがあり、日本人向けにはIRCnetのほか、
- SceneCritique
- ReichaNet
- trpg.net
などがある。
構造 [編集]
IRCにおけるサーバ群はツリー構造のネットワークを形成している。そしてクライアントはネットワークを構成するサーバのどれかと接続することで、他のサーバと接続しているクライアントとも通信が可能になる。これがインターネット・リレー・チャットと言う由来である。
サーバは接続されたクライアントの情報やクライアントから送信されたデータを共用する必要がある。
クライアントには一般のクライアント(ユーザ・クライアント)と、限られた動作を行うためのクライアント(サービス・クライアント)がある。サーバはクライアントのラベルを設定することでこれを認識する。それとは別にニックネームがあり、これはクライアントが自由に変える事が出来るが、ニックネームはそのネットワークで単一の存在である必要がある。クライアントはネットワークにつき一つの接続のみをすべきである。クライアントはチャンネルと呼ぶ、チャットをするためのグループを構成する。
チャンネルは参加者が居れば一定の命名法のもとで自由に作ってよく、最初にそのチャンネルに参加したクライアントがオペレータとなる。オペレータはチャンネルの所有者とみなされ、そのためそのチャンネルに関して好ましくない行為を行うものをチャンネルから追放したり、トピックを設定することが出来る。その他にもチャンネルに関して様々な設定が可能であり、また、オペレータの権限を他のクライアントに分け与えることも可能である。
チャンネルは一つまたはそれ以上のクライアントで構成する。サーバはクライアントからデータを受け取ると、そのデータが何に向けて発信されたデータか判別し、チャンネルに発信されたデータならばそのチャンネルを構成するクライアントへ送信し、サーバへ送られたデータならば、それを処理する。チャンネルを構成するクライアントがそのサーバ以外にも接続していた場合、サーバは他のサーバに向けてデータを送信する。
クライアントがサーバに送るデータはプリフィクス(送信元を特定する情報)、コマンド、パラメータからなり、コマンドをサーバが解釈し処理することによってネットワークやチャットが成立する。
コマンドとしては以下がある。
- USER
- クライアントを特定するコマンド
- QUIT
- サーバとの接続を終了するコマンド
- JOIN
- チャンネルに参加するコマンド
- PART
- チャンネルから外れるコマンド
- MODE
- チャンネルに関してクライアントの権限やチャンネルの設定をするコマンド
- PRIVMSG
- 特定のクライアントやチャンネルと通信するコマンド
サーバはツリー構造を組んで作られているためサーバ同士の接続がなんらかの原因によって切断されることがある。
仕様 [編集]
RFC 1459がIRCに関する最初のRFCでその後2000年にRFC 2810から2813までが出された。現在利用されているIRCのプロトコルはIRC 2が主で、RFC 1459もIRC 2のものである。
脚注 [編集]
- ^ http://www.irc.org/history_docs/jarkko.html
- ^ Because It's Time Network、学術機関の国際的なコンピュータのネットワーク