L'RFC 1459 descrive i protocolli utilizzati e più recentemente IRC2 con il RFC 2810, il RFC 2811, il RFC 2812 e il RFC 2813 descrivono un insieme di proposte di estensioni al modello IRC. Molte implementazioni IRC consistono nel protocollo IRC2 con vari add-on che prevengono le incompatibilità causate delle differenze tra i software utilizzati per la gestione dei server di rete.
IRC è un protocollo di rete aperto che utilizza il protocollo di trasmissione TCP (Transmission Control Protocol) e opzionalmente il Transport Layer Security (TLS). Un server IRC (chiamato IRCd) è in grado di connettersi con altri server IRC formando così una vera e propria rete di comunicazione; gli utenti accedono ad essa mediante la connessione di un client ad un server. Molti server IRC non richiedono all'utente di autenticarsi, ma va comunque specificato un nickname (univoco a livello della rete IRC).
IRC è un protocollo plaintext, questo significa che è possibile (comunque con qualche inconveniente) usarlo tramite una connessione socket di tipo raw. Tuttavia non vi è modo di definire il carattere di decodifica dei messaggi e dei nickname rendendo impossibile il filtraggio di caratteri non-ASCII.
Il mezzo di comunicazione fondamentale in una sessione IRC è il "canale", un gruppo di utenti identificato da un nome, dove tutti gli appartenenti possono mandare messaggi leggibili solo dagli utenti dello stesso gruppo. Un canale IRC si crea automaticamente al primo ingresso da parte di qualsiasi utente.
I nomi dei canali appartenenti a tutta un'intera rete IRC si identificano col carattere "#" iniziale, mentre quelli locali (specifici di un server) sono identificati con il carattere "&" (tuttavia quest'ultimo potrebbe non essere disponibile su alcune reti). Per ovviare a problemi di desincronizzazione dei canali nel momento in cui dei server si fossero scollegati furono creati i canali "!" senza i problemi di sincronismo che però ottennero scarso successo anche per la mancanza di informazione agli utenti.
Il primo utente che entra in un canale acquisisce automaticamente dei privilegi che può poi passare a qualsiasi altro utente presente nel medesimo canale; questi utenti vengono chiamati channel operator o, in italiano "operatori di canale". Vi sono anche diversi utenti con privilegi differenti e con compiti di amministrazione del network; questi sono chiamati IRC Operator (abbreviato in IRCop, spesso erroneamente confuso in IR-Cop) o in italiano "operatori IRC". Nelle implementazioni più recenti è anche possibile registrare i canali, in modo che i diritti di accesso non vengano persi alla disconnessione dell'ultimo operatore; ove questo non sia possibile viene fatto uso di bot, programmi speciali che appaiono come normali utenti, ma che presidiano il canale e, all'uso, ri-conferiscono lo status di operatore ai proprietari.
Gli "Operatori del canale" possono impostare diverse opzioni su quel determinato canale, vedi b:IRC/Modi canale.
Gli utenti nell'ambito del canale o del server possono avere diversi attributi, vedi b:IRC/Modi utente
Le connessioni IRC sono un ghiotto obiettivo per cracker malintenzionati, in quanto, pur essendo cifrate, prendono, per loro stessa natura, lunghi periodi di tempo di connessione. È necessario pertanto assicurare a queste connessioni, una accurata politica di sicurezza in grado di proteggerle dagli attacchi di script kiddie che cercano di prenderne il controllo (IRC takeover war), magari tentando di sfruttare a proprio vantaggio un netsplit (come si dice in gergo cavalcando lo split).
La connessione IRC viene spesso utilizzata da parte degli script kiddies come "laboratorio" per provare diversi tipi di attacchi in rete, per esempio inviando pacchetti ICMP (Internet Control Message Protocol) mal formati al fine di disturbarne gli utenti (vedi anche nuke). Tuttavia, con l'entrata in scena dei Bouncer (BNC) e dei virtual host, è molto difficile per queste persone malintenzionate portare a termine un attacco, visto che questi servizi riescono a nascondere l'indirizzo IP collegato ad un nickname.