CTCP, Client-to-client protocol — особый вид соединения между клиентами по протоколу IRC (Internet Relay Chat).

CTCP является широко распространённым протоколом, применяемым на сегодняшний день крупнейшими IRC-клиентами. CTCP расширяет первоначальный протокол IRC, давая пользователям возможность обращаться к другим клиентам или каналам, что позволяет клиентам с канала отвечать по CTCP. Кроме того, CTCP может использоваться для кодирования сообщений, которые первоначальный протокол IRC не позволяет передавать по соединению, подобно сообщениям, содержащим символ перевода строки или с байтом нулевого значения. CTCP не устанавливает прямую связь между клентами; однако для ведения двусторонних бесед обычно используются DCC-соединения.

CTCP помимо прочих вещей позволяет пользователям запрашивать у удалённого клиента версию клиентского программного обеспечения (командой CTCP VERSION), время (командой CTCP TIME) или получать информацию об удалённом пользователе (командой CTCP USERINFO). Также протокол используется для реализации группы команд /me (командой CTCP ACTION).

Сообщение CTCP реализуется как PRIVMSG или NOTICE в случаях, когда первый и последний символы сообщения имеют ASCII-значение 0x01. Символы, неразрешённые протоколом IRC, заменяются ESC-последовательностями. В качестве стандарта NOTICE не генерирует в ответ другое сообщение типа NOTICE, сообщения CTCP отправляются как PRIVMSG и ответ производится сообщением типа NOTICE вместо PRIVMSG.

См. также