Введение

Протокол обмена мгновенными сообщениями AOL

Протокол TOC, или протокол Talk to OSCAR, использовался некоторыми сторонними клиентами AOL Instant Messenger и рядом клиентов, разработанных самой AOL. Примерно 19 августа 2005 года AOL прекратила поддержку этого протокола и больше не использует его ни в одном из активно поддерживаемых клиентов мгновенных сообщений, таких как клиенты для Windows и Mac для систем AOL Instant Messenger и ICQ. Однако ранее AOL выпустила несколько собственных TOC-клиентов, включая TiK и TAC, написанные на Tcl/Tk, TNT, написанный на Emacs Lisp, все из которых имеют открытый исходный код, а также Java-клиент, первоначально названный TIC, который впоследствии стал веб-апплетом Quick Buddy. AOL также открыто предоставила спецификацию протокола TOC разработчикам в надежде, что они предпочтут его проприетарному протоколу OSCAR, который используется самой AOL. В июле 2012 года AOL отключила серверы TOC2, и подключение к AIM с использованием этого протокола стало невозможным. TOC был протоколом на основе ASCII, в то время как OSCAR – двоичный. Кроме того, TOC обладал меньшим набором функций, чем OSCAR. OSCAR обеспечивает такие возможности, как значки контактов, передача файлов и показ рекламы.

Как это работает

TOC выступал в роли оболочки для протокола OSCAR. По сути, сервер TOC был ничем иным, как клиентом OSCAR, который случайно прослушивал сокет и транслировал сообщения между двумя протоколами. При входе в систему клиент TOC указывал сервер авторизации OSCAR (предположительно, один из двух), который сервер TOC использовал от имени клиента. TOC использовал FLAP для инкапсуляции своих сообщений, как и OSCAR, однако FLAP был модифицирован таким образом, что его можно было реализовать на том же порту, что и HTTP-сервер. По умолчанию сервер TOC работал в HTTP-режиме, неотличимом от обычного веб-сервера. Если подключающийся клиент вместо HTTP-запроса отправлял строку "" с двумя последующими символами перевода строки (CRLF), TOC переключался в режим чтения сообщений FLAP. Получив профиль пользователя, клиент должен был повторно подключиться к TOC и использовать его как HTTP-сервер, который размещал профиль пользователя в формате HTML. После подключения существовало два основных формата сообщений для обмена данными внутри FLAP. Сообщения от клиента к серверу отправлялись в формате, напоминающем командную строку в стиле Unix: команды с аргументами, разделенными пробелами, с использованием кавычек и экранирования обратным слешем. Сообщения от сервера к клиенту были значительно проще: они отправлялись в виде ASCII-строк, разделенных двоеточиями, подобно многим конфигурационным файлам Unix. Таким образом, написать клиент было довольно легко, поскольку входящие сообщения было очень просто разбирать, а исходящие команды – генерировать. Это отличалось от OSCAR, который из-за двоичного представления данных мог быть сложнее для понимания.

Топ-класс 2

Протокол TOC2 является обновленной версией протокола TOC, или протокола "Talk to OSCAR". Его существование никогда не было задокументировано AOL, и он используется лишь в нескольких клиентах AOL Instant Messenger. Некоторые клиенты начинают предлагать плагины для TOC2 в связи с недавним закрытием AOL серверов TOC. Как и его предшественник, TOC2 является ASCII-протоколом и лишен некоторых функций OSCAR, но, в отличие от TOC, TOC2 поддерживает отображение значков контактов и получение файлов (но не отправку). TOC2 работает по сути так же, как и TOC, являясь оболочкой для OSCAR. Перенос кода из TOC в TOC2 также удивительно прост. Из-за сходства между TOC1.0 и TOC2.0, их лучше определять по различиям, которых немного: В TOC1.0 подключение с пустым списком контактов приводило к тому, что другие не могли видеть вас онлайн. Это исправлено в TOC2.0. В TOC1.0 существует команда toc add deny, но отсутствует команда toc remove deny. TOC2.0 также исправляет это. Процесс входа в систему в основном такой же, как в TOC1.0, но с несколькими новыми параметрами: версия (число), и код, созданный на основе имени пользователя и пароля. Назначение числа неизвестно. Значение по умолчанию — 160, и, похоже, изменение этого значения не оказывает никакого эффекта. Механизмы разрешений и запретов были переработаны и стали проще и функциональнее в TOC2.0. Команды toc2 add permit, toc2 remove permit, toc2 add deny и toc2 remove deny присутствуют и доступны в любое время. Также улучшены команды для работы со списком контактов. Управление группами стало проще благодаря командам toc2 new group и toc2 del group. Кроме того, можно добавлять или удалять несколько контактов одновременно и выбирать группы, в которые они входят. Внесены также некоторые изменения в синтаксис, а некоторые команды получили дополнительные параметры. Назначение этих параметров пока не определено. Помимо этого, единственное отличие от TOC заключается в том, что в большинстве команд добавлена цифра "2", как в запросах CLIENT > SERVER, так и наоборот. Например, IM IN2, UPDATE BUDDY2 и т.д. TOC2 также ограничивает количество ScreenNames, которые могут войти с одного IP-адреса (10).