「Internet Relay Chat」の版間の差分
Momiji-Penguin (会話 | 投稿記録) |
要出典 |
||
(8人の利用者による、間の10版が非表示) | |||
7行目: | 7行目: | ||
== 歴史 == |
== 歴史 == |
||
Internet Relay Chat(以下「IRC」と記述する)は[[1988年]]8月に[[フィンランド]]の OuluBox という[[電子掲示板|BBS]]で使われていたMUTと呼ばれるプログラムの代替として[[ヤルッコ・オイカリネン]] (Jarkko Oikarinen) によって作られた<ref>http://www.irc.org/history_docs/jarkko.html</ref>。[[BITNET]]ネットワーク<ref>Because It's Time Network、学術機関の国際的なコンピュータのネットワーク</ref>で運用されていたBitnet Relay Chatに発想を得た。 |
Internet Relay Chat(以下「IRC」と記述する)は[[1988年]]8月に[[フィンランド]]の OuluBox という[[電子掲示板|BBS]]で使われていたMUTと呼ばれるプログラムの代替として[[ヤルッコ・オイカリネン]] (Jarkko Oikarinen) によって作られた<ref>http://www.irc.org/history_docs/jarkko.html</ref>。[[BITNET]]ネットワーク<ref group="注釈">Because It's Time Network、学術機関の国際的なコンピュータのネットワーク</ref>で運用されていたBitnet Relay Chatに発想を得た。 |
||
IRCはその後[[鉄のカーテン]]の崩壊に際して東欧の人々が、あるいは[[湾岸戦争]]([[1991年]])の際に現地からIRCで情報発信されたために有名となった。 |
IRCはその後[[鉄のカーテン]]の崩壊に際して東欧の人々が、あるいは[[湾岸戦争]]([[1991年]])の際に現地からIRCで情報発信されたために有名となった{{要出典|date=2023年11月}}。 |
||
== クライアント・ソフトウェア == |
== クライアント・ソフトウェア == |
||
IRCはデータの通信に関する[[プロトコル]]が簡素かつオープンとなっているため、ユーザ・クライアントに用いるソフトウェアの開発が容易であり、また、種類も多い。 |
IRCはデータの通信に関する[[プロトコル]]が簡素かつオープンとなっているため、ユーザ・クライアントに用いるソフトウェアの開発が容易であり、また、種類も多い。主なクライアントソフトは以下の通り。 |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
* [[Microsoft Windows|Windows]] |
* [[Microsoft Windows|Windows]] |
||
⚫ | |||
** [[IRCW]] (Windows3.1用, 開発終了) |
|||
⚫ | |||
** [[TakIRC]] |
|||
** [[MuriChat]] |
|||
** [[CHOCOA]] |
|||
** Cotton |
|||
** [[Miranda IM]] |
** [[Miranda IM]] |
||
** {{仮リンク|mIRC|en|mIRC}} |
|||
* [[macOS]] |
* [[macOS]] |
||
** {{仮リンク|Colloquy|en|Colloquy_(software)}} |
|||
** [[IRCStep]] |
|||
** [[Colloquy]] |
|||
** [[LimeChat|LimeChat for Mac]] |
|||
* [[Linux]] |
* [[Linux]] |
||
** [[Empathy (ソフトウェア)|Empathy]] |
|||
** [[Kopete]] |
|||
** [[Konversation]] |
** [[Konversation]] |
||
** [[Empathy]] |
|||
** [[KSirc]] |
** [[KSirc]] |
||
** [[ |
** [[polari]] |
||
* [[Android]] |
|||
** AiCiA |
|||
* [[iPhone]] |
|||
** [[LimeChat|LimeChat for iPhone]] |
|||
* [[Windows Mobile]] |
|||
** EbIRC |
|||
⚫ | |||
** [[ChatZilla]] |
|||
** [[Opera]] |
|||
** [[Pidgin]](旧名 : Gaim) |
|||
** [[Instant Bird]] |
|||
** [[xChat]] |
|||
** たけとんぼ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
[[Opera]]は[[ウェブブラウザ]]中心の[[インターネットスイート]]の機能のひとつとして、IRCクライアントの機能を備える。[[ChatZilla]]はウェブブラウザ向けアドオンも用意されており、[[Firefox]]などの[[Mozilla]]アプリケーションを拡張するかたちで利用することもできる。 |
|||
[[Pidgin |
[[Pidgin]]などは、[[インスタントメッセンジャー#マルチプロトコルクライアント|複数のプロトコルを扱える]]クライアントである。 |
||
== 主なネットワーク == |
== 主なネットワーク == |
||
IRCには主 |
IRCには主なサーバ・ネットワーク群として、 |
||
* |
* {{仮リンク|EFnet|en|EFnet}} |
||
* UnderNet |
* {{仮リンク|UnderNet|en|Undernet}} |
||
* DALnet |
* {{仮リンク|DALnet|en|DALnet}} |
||
* QuakeNet |
* {{仮リンク|QuakeNet|en|QuakeNet}} |
||
* [[freenode]] |
* [[freenode]] |
||
* [[Libera Chat]] |
|||
* |
* {{仮リンク|IRCnet|en|IRCnet}} ([[WIDEプロジェクト|WIDE project]]のネットワークが接続されていた) |
||
などがあり、日本人向けには |
などがあり、日本人向けには |
||
* [https://www.scenecritique.com/ SceneCritique] |
* [https://www.scenecritique.com/ SceneCritique] |
||
* ReichaNet |
* ReichaNet |
||
120行目: | 100行目: | ||
もちろん、他の文字コードを採用したり、「暗黙の了解」ではなく公式として利用する文字コードを指定しているIRCネットワークもある。例えば「irc.cre.jp系IRCサーバ群」では、"[[UTF-8]]"を採用している。ISO-2022-JPでは、一般的に環境依存文字と呼ばれる一部の文字(丸付き数字や絵文字など)や、日本語以外の文字(ハングルなど)が相手のコンピュータで正しく再生されないことがあるが、UTF-8は多くの環境依存文字や多言語にも対応している文字コードである。チャットを楽しんでいる最中に余計な文字化けで水を差されることがまれにあるが、この問題を気にせずに済む<ref>http://www.cre.ne.jp/services/irc/servers</ref>。 |
もちろん、他の文字コードを採用したり、「暗黙の了解」ではなく公式として利用する文字コードを指定しているIRCネットワークもある。例えば「irc.cre.jp系IRCサーバ群」では、"[[UTF-8]]"を採用している。ISO-2022-JPでは、一般的に環境依存文字と呼ばれる一部の文字(丸付き数字や絵文字など)や、日本語以外の文字(ハングルなど)が相手のコンピュータで正しく再生されないことがあるが、UTF-8は多くの環境依存文字や多言語にも対応している文字コードである。チャットを楽しんでいる最中に余計な文字化けで水を差されることがまれにあるが、この問題を気にせずに済む<ref>http://www.cre.ne.jp/services/irc/servers</ref>。 |
||
またクライアントソフトによっては、複数の文字コードを選択できるようになっている<ref>例えばLimeChat2(2.40)の場合、ISO-2022-JPやUTF-8を含め、全部で6種類の文字コードに対応している。</ref>。接続先のIRCネットワークやチャットする相手が使っている文字コードによって、適宜使い分けることが可能である。 |
またクライアントソフトによっては、複数の文字コードを選択できるようになっている<ref group="注釈">例えばLimeChat2(2.40)の場合、ISO-2022-JPやUTF-8を含め、全部で6種類の文字コードに対応している。</ref>。接続先のIRCネットワークやチャットする相手が使っている文字コードによって、適宜使い分けることが可能である。 |
||
== 仕様 == |
== 仕様 == |
||
{{IETF RFC|1459}}がIRCに関する最初の[[Request for Comments|RFC]]でその後2000年に{{IETF RFC|2810}}から2813までが出された。現在利用されているIRCのプロトコルはIRC 2が主で、{{IETF RFC|1459}}もIRC 2のものである。 |
|||
* |
* {{IETF RFC|1459}} |
||
* |
* {{IETF RFC|2810}} |
||
* |
* {{IETF RFC|2811}} |
||
* |
* {{IETF RFC|2812}} |
||
* |
* {{IETF RFC|2813}} |
||
== 脚注 == |
== 脚注 == |
||
{{脚注ヘルプ}} |
{{脚注ヘルプ}} |
||
=== 注釈 === |
|||
{{Notelist}} |
|||
=== 出典 === |
|||
{{Reflist}} |
{{Reflist}} |
||
2023年11月9日 (木) 14:10時点における最新版
TCP/IP群 |
---|
アプリケーション層 |
|
トランスポート層 |
カテゴリ |
インターネット層 |
カテゴリ |
リンク層 |
カテゴリ |
Internet Relay Chat(インターネット・リレー・チャット、略称 : IRC)とは、サーバを介してクライアントとクライアントが会話をする枠組みの名称である。インスタントメッセンジャーのプロトコルの一つに分類される。また、これに基づいて実装されるソフトをIRCクライアントと呼び、しばし略してクライアントもIRCと呼ばれる事がある。文章のみをやり取りして会話を行い、DCCなどを利用することでファイル転送も対応する。
TCPを通信用のプロトコルとして主に用いる。TLSで暗号化することもできる。
歴史[編集]
Internet Relay Chat(以下「IRC」と記述する)は1988年8月にフィンランドの OuluBox というBBSで使われていたMUTと呼ばれるプログラムの代替としてヤルッコ・オイカリネン (Jarkko Oikarinen) によって作られた[1]。BITNETネットワーク[注釈 1]で運用されていたBitnet Relay Chatに発想を得た。
IRCはその後鉄のカーテンの崩壊に際して東欧の人々が、あるいは湾岸戦争(1991年)の際に現地からIRCで情報発信されたために有名となった[要出典]。
クライアント・ソフトウェア[編集]
IRCはデータの通信に関するプロトコルが簡素かつオープンとなっているため、ユーザ・クライアントに用いるソフトウェアの開発が容易であり、また、種類も多い。主なクライアントソフトは以下の通り。
Pidginなどは、複数のプロトコルを扱えるクライアントである。
主なネットワーク[編集]
IRCには主なサーバ・ネットワーク群として、
- EFnet
- UnderNet
- DALnet
- QuakeNet
- freenode
- Libera Chat
- IRCnet (WIDE projectのネットワークが接続されていた)
などがあり、日本人向けには
- SceneCritique
- ReichaNet
- irc.cre.jp系 (旧 TRPG.NET系)
などがある。
構造[編集]
IRCにおけるサーバ群はツリー構造のネットワークを形成している。そしてクライアントはネットワークを構成するサーバのどれかと接続することで、他のサーバと接続しているクライアントとも通信が可能になる。これがインターネット・リレー・チャットと言う由来である。
サーバは接続されたクライアントの情報やクライアントから送信されたデータを共用する必要がある。
クライアントには一般のクライアント(ユーザ・クライアント)と、限られた動作を行うためのクライアント(サービス・クライアント)がある。サーバはクライアントのラベルを設定することでこれを認識する。それとは別にニックネームがあり、これはクライアントが自由に変える事が出来るが、ニックネームはそのネットワークで単一の存在である必要がある。クライアントはネットワークにつき一つの接続のみをすべきである。クライアントはチャンネルと呼ぶ、チャットをするためのグループを構成する。
チャンネルは参加者が居れば一定の命名法のもとで自由に作ってよく、最初にそのチャンネルに参加したクライアントがオペレータとなる。オペレータはチャンネルの所有者とみなされ、そのためそのチャンネルに関して好ましくない行為を行うものをチャンネルから追放したり、トピックを設定することが出来る。その他にもチャンネルに関して様々な設定が可能であり、また、オペレータの権限を他のクライアントに分け与えることも可能である。
チャンネルは一つまたはそれ以上のクライアントで構成する。サーバはクライアントからデータを受け取ると、そのデータが何に向けて発信されたデータか判別し、チャンネルに発信されたデータならばそのチャンネルを構成するクライアントへ送信し、サーバへ送られたデータならば、それを処理する。チャンネルを構成するクライアントがそのサーバ以外にも接続していた場合、サーバは他のサーバに向けてデータを送信する。
クライアントがサーバに送るデータはプリフィクス(送信元を特定する情報)、コマンド、パラメータからなり、コマンドをサーバが解釈し処理することによってネットワークやチャットが成立する。
コマンドとしては以下がある。
- NICK
- ニックネームを設定するコマンド
- USER
- クライアントを特定するコマンド
- QUIT
- サーバとの接続を終了するコマンド
- JOIN
- チャンネルに参加するコマンド
- PART
- チャンネルから外れるコマンド
- MODE
- チャンネルに関してクライアントの権限やチャンネルの設定をするコマンド
- PRIVMSG
- 特定のクライアントやチャンネルと通信するコマンド
サーバはツリー構造を組んで作られているためサーバ同士の接続がなんらかの原因によって切断されることがある。
文字コード[編集]
後述するIRCプロトコルの定義において、サーバー・ネットワーク内で使用する文字コードについては定義されていない。そのため利用者間で違う文字コードを使って接続・利用していると、お互いに文字化けを起こして会話にならなかったり、日本語(を含めたASCII以外の文字コードを使う言語)を含むチャンネルに入ろうとして入れなくなってしまうことがある。
しかしサーバーはデータだけリレーしていくので、たとえ文字コードが違っても何の問題もない。困るのは利用者だけである。
そこで、利用者間で「暗黙の了解」的に使われる文字コードが存在する。ただしあくまで「暗黙の了解」であるため、同じサーバー・ネットワークを利用しているユーザー同士でも、全く関わりのない場合は違う文字コードを使っていることさえある。
2014年8月現在、「IRCnet」や「FriendChat」をはじめとする多くのIRCネットワークでは、暗黙の了解としてよく使われる文字コードは"ISO-2022-JP"である。これは電子メールでよく使われる文字コードで、単に"JISコード"などと呼ばれるものである。IRCサーバーに接続した際、自動的に送られてくるデータの中に"MOTD"と言う、サーバーのメンテナンスや何かが起こった時の連絡先などが書かれていることの多いデータがあるのだが、それが"ISO-2022-JP"で書かれている(ほかの文字コードで接続すると文字化けする)ことから確かめることができる。
もちろん、他の文字コードを採用したり、「暗黙の了解」ではなく公式として利用する文字コードを指定しているIRCネットワークもある。例えば「irc.cre.jp系IRCサーバ群」では、"UTF-8"を採用している。ISO-2022-JPでは、一般的に環境依存文字と呼ばれる一部の文字(丸付き数字や絵文字など)や、日本語以外の文字(ハングルなど)が相手のコンピュータで正しく再生されないことがあるが、UTF-8は多くの環境依存文字や多言語にも対応している文字コードである。チャットを楽しんでいる最中に余計な文字化けで水を差されることがまれにあるが、この問題を気にせずに済む[2]。
またクライアントソフトによっては、複数の文字コードを選択できるようになっている[注釈 2]。接続先のIRCネットワークやチャットする相手が使っている文字コードによって、適宜使い分けることが可能である。
仕様[編集]
RFC 1459がIRCに関する最初のRFCでその後2000年にRFC 2810から2813までが出された。現在利用されているIRCのプロトコルはIRC 2が主で、RFC 1459もIRC 2のものである。