OSCAR ( Open System for Communication in Realtime ) — это фирменный протокол обмена мгновенными сообщениями и информации о присутствии компании AOL . Он использовался системой обмена мгновенными сообщениями AIM компании AOL и ICQ .
Несмотря на название, спецификации протокола остаются запатентованными. AOL приложила немало усилий, чтобы не дать конкурентам (а именно Microsoft , XMPP и Cerulean Studios) реализовать совместимые клиенты для их запатентованных систем обмена сообщениями. [1] [2] В 2002 году AOL подписала контракт с Apple, Inc. , позволяющий им использовать OSCAR (а также собственные библиотеки кода AOL) в их приложении iChat . Это позволило пользователям iChat напрямую взаимодействовать с пользователями ICQ и AIM. Сделка также позволила пользователям сервиса .Mac от Apple входить в сеть AIM, используя свои адреса электронной почты .Mac. (Это перешло и в сервис MobileMe от Apple .)
По состоянию на 2009 год [обновлять]значительная часть протокола была подвергнута обратному проектированию и внедрена рядом сторонних клиентов.
Протокол OSCAR может использоваться отдельно от сети AOL. Фактически, AOL расширяет общую концепцию OSCAR, добавляя системы для списков и иконок друзей на стороне сервиса, а также функции для передачи файлов с использованием Bonjour .
6 марта 2006 года AOL выпустила AIM SDK и запустила веб-сайт для разработчиков, позволяющий разработчикам создавать плагины для AIM Triton и создавать собственные клиенты, подключающиеся по протоколу OSCAR. Однако на тот момент они не опубликовали никакой информации о самом протоколе.
5 марта 2008 года AOL опубликовала части документации протокола OSCAR. Google также предоставила возможность входа в сеть AIM через встроенный в Gmail клиент Google Talk .
Все пакеты, отправленные через OSCAR, инкапсулируются таким же образом. Все 16-битные целые числа, отправленные по сети, являются беззнаковыми и имеют обратный порядок байтов (см. Порядок байтов .) То же самое касается 32-битных целых чисел и 8-битных целых чисел (или байтов.)
Специальный контейнер Frame Layer Protocol (FLAP [3] ) охватывает каждый пакет. Он несет информацию о размере пакета, канале и его номере в последовательности.
Почти в каждом пакете, отправленном по каналу 2, пакеты содержат SNAC (Simple Network Atomic Communication). В пакете всегда содержится один или ноль таких элементов, и поэтому они не содержат (и не должны содержать) длину.