クライアントには一般のクライアント（ユーザ・クライアント）と、限られた動作を行うためのクライアント（サービス・クライアント）がある。サーバはクライアントのラベルを設定することでこれを認識する。それとは別にニックネームがあり、これはクライアントが自由に変える事が出来るが、ニックネームはそのネットワークで単一の存在である必要がある。クライアントはネットワークにつき一つの接続のみをすべきである。クライアントはチャンネルと呼ぶ、チャットをするためのグループを構成する。
チャンネルは参加者が居れば一定の命名法のもとで自由に作ってよく、最初にそのチャンネルに参加したクライアントがオペレータとなる。オペレータはチャンネルの所有者とみなされ、そのためそのチャンネルに関して好ましくない行為を行うものをチャンネルから追放したり、トピックを設定することが出来る。その他にもチャンネルに関して様々な設定が可能であり、また、オペレータの権限を他のクライアントに分け与えることも可能である。
チャンネルは一つまたはそれ以上のクライアントで構成する。サーバはクライアントからデータを受け取ると、そのデータが何に向けて発信されたデータか判別し、チャンネルに発信されたデータならばそのチャンネルを構成するクライアントへ送信し、サーバへ送られたデータならば、それを処理する。チャンネルを構成するクライアントがそのサーバ以外にも接続していた場合、サーバは他のサーバに向けてデータを送信する。
クライアントがサーバに送るデータはプリフィクス（送信元を特定する情報）、コマンド、パラメータからなり、コマンドをサーバが解釈し処理することによってネットワークやチャットが成立する。
コマンドとしては以下がある。
サーバはツリー構造を組んで作られているためサーバ同士の接続がなんらかの原因によって切断されることがある。
文字コード.
後述するIRCプロトコルの定義において、サーバー・ネットワーク内で使用する文字コードについては定義されていない。そのため利用者間で違う文字コードを使って接続・利用していると、お互いに文字化けを起こして会話にならなかったり、日本語(を含めたASCII以外の文字コードを使う言語)を含むチャンネルに入ろうとして入れなくなってしまうことがある。