Protocolo OSCAR - OSCAR protocol
OSCAR ( S caneta S istema para C ommunic Um ção em R ealtime ) é AOL 's proprietária mensagens instantâneas e informação de presença de protocolo . Foi usado pelo sistema de mensagens instantâneas AIM da AOL e pelo ICQ .
Apesar do nome, as especificações do protocolo permanecem proprietárias. A AOL não mediu esforços para impedir que os concorrentes (a saber , Microsoft , XMPP e Cerulean Studios) implementassem clientes compatíveis para seus sistemas de mensagens proprietários. Em 2002, a AOL assinou um contrato com a Apple, Inc. , permitindo-lhes usar OSCAR (bem como as próprias bibliotecas de código da AOL) em seu aplicativo iChat . Isso permitiu que os usuários do iChat interagissem com os usuários do ICQ e AIM diretamente. O acordo também permitiu usuários de Apple .Mac serviço para iniciar sessão para a rede AIM usando seus endereços de e-mail .Mac. (Isso foi transportado para o serviço MobileMe da Apple .)
Em 2009, grandes partes do protocolo foram submetidas a engenharia reversa e implementadas por vários clientes de terceiros.
O protocolo OSCAR pode ser usado separadamente da rede da AOL. Na verdade, a AOL expande o conceito geral de OSCAR, adicionando sistemas para listas de amigos e ícones do lado do serviço, bem como recursos para transferência de arquivos usando Bonjour .
Em 6 de março de 2006, a AOL lançou o AIM SDK e lançou um site de desenvolvedor, permitindo aos desenvolvedores construir plug-ins para AIM Triton e construir seus próprios clientes personalizados, que se conectam por meio do protocolo OSCAR. Eles não haviam, entretanto, divulgado qualquer informação sobre o protocolo em si.
Em 5 de março de 2008, a AOL lançou partes da documentação do protocolo OSCAR. O Google também forneceu a capacidade de entrar na rede AIM por meio do cliente Google Talk integrado ao Gmail .
Estrutura do pacote
Todos os pacotes enviados por OSCAR são encapsulados da mesma maneira. Todos os inteiros de 16 bits enviados pela rede não têm sinal e são big endian (consulte Endianness .) Isso é o mesmo para inteiros de 32 bits e inteiros de 8 bits (ou bytes).
Cabeçalho FLAP
Um contêiner especial Frame Layer Protocol (FLAP) envolve cada pacote. Ele carrega informações sobre o tamanho do pacote, canal e seu número em sequência.
Offset ( hex ) | Campo | Tipo / tamanho (em bytes) | Observações |
---|---|---|---|
00 | FLAP ID | byte / 1 | Sempre contém 2A. É a marca do início do pacote. |
01 | Canal | byte / 1 | 1 = login, 2 = camada SNAC, 3 = erro, 4 = desconectar |
02 | Número em sequência | int16 / 2 | Incrementado em 1 cada vez que um pacote é enviado. Volta para 0 após FFFF. |
04 | Tamanho dos dados | int16 / 2 | O tamanho não inclui cabeçalho FLAP |
Dados SNAC
Em quase todos os pacotes enviados pelo canal 2, os pacotes contêm um SNAC (Simple Network Atomic Communication). Sempre há um ou zero deles contidos em um pacote e, portanto, eles não contêm (nem precisam) um comprimento.
Offset ( hex ) | Campo | Tipo / tamanho (em bytes) | Observações |
---|---|---|---|
00 | Grupo de comida | int16 / 2 | O tipo geral do pacote |
02 | Modelo | int16 / 2 | O tipo específico do pacote |
04 | Bandeiras | int16 / 2 | |
06 | Identificação do Pedido | int32 / 4 | Um ID de solicitação, pode ser aleatório, mas os clientes não podem enviá-lo com o conjunto de bits de pedido mais alto. |
Implementações
Veja também
- Comparação de clientes de mensagens instantâneas
- Comparação de protocolos de mensagens instantâneas
- Protocolo TOC , o protocolo de mensagens gratuito, mas obsoleto da AOL
- Protocolo TOC2 , a partir de 2009, a versão mais atual do protocolo TOC