Através do SAP, roteadores podem criar e manter uma base de dados dos serviços disponíveis na rede. Isto possibilita aos clientes na rede determinarem quais serviços estão disponíveis e obterem os endereços dos nodos servidores. Este protocolo é básico pois uma workstation não pode iniciar uma sessão com um servidor sem inicialmente obter seu endereço.
Um servidor periodicamente realizará um broadcast de um pacote SAP no segmento de rede no qual está conectado. O agente SAP em cada roteador no segmento copia a informação contida no pacote SAP numa tabela interna (comumente denominada Tabela de Informações de Servidores). Desde que um agente SAP em cada roteador armazena informações dos servidores disponíveis, um cliente que deseje utilizar determinado serviço pode acessar o roteador mais próximo para obtenção do endereço correto do servidor.
Da mesma forma que o protocolo RIP, o SAP utiliza o protocolo IPX e os protocolos de acesso ao meio físico para realizar o transporte dos pacotes. A estrutura dos pacotes SAP permite cinco diferentes funções:
- Uma workstation pode requisitar o nome e o endereço de um servidor de determinado tipo
- Um roteador pode realizar uma requisição genérica, para obtenção dos nomes e endereços de todos os servidores ou de servidores de determinado tipo existentes numa rede
- Respostas para solicitações de requisições genéricas ou requisições específicas para um servidor
- Os servidores e roteadores podem emitir periódicos broadcasts
- Servidores podem trocar informações através de broadcasts
Os agentes SAP existentes em servidores que não são roteadores realizam apenas periódicos broadcasts e respostas a requisições SAP. Todas as demais funções aplicam-se apenas a agentes SAP localizados em roteadores.
Operação (2 bytes)
Entrada de Servidor (64 bytes)
OBSERVAÇÃO: O campo "operação" pode ser seguido por no máximo 7 campos de "entrada de servidor".
Se o campo "operação" é 2, o pacote SAP é uma resposta e pode estar em uma das seguintes formas:
1) Uma resposta oriunda de um roteador ou de um servidor para uma requisição genérica ou específica
2) Um broadcast informativo. Este tipo de broadcast ocorre quando um servidor é inicializado ou desativado, e quando ocorrem alterações nas informações de um servidor da rede. Agentes SAP localizados nos roteadores também emitem broadcasts periódicos de pacotes informativos de resposta SAP contendo todas as informações sobre os servidores conhecidas pelo agente.
Se o campo operação é 3, o pacote SAP é uma requisição para obtenção do servidor mais próximo. Esta requisição é utilizada por uma workstation para encontrar o servidor mais próximo de um determinado tipo. Neste contexto, o servidor ou roteador mais próximo será aquele que estiver habilitado a responder mais rapidamente. Este tipo de pacote SAP, da mesma forma que outros pacotes de requisições esta limitado ao tamanho de 34 bytes. O campo "tipo de serviço" deve ser preenchido com um tipo específico, FFFFh não é permitido.
Se o campo operação é 4, significa uma resposta SAP a um pedido de obtenção do servidor mais próximo. Quando um servidor ou um roteador recebe uma requisição para obtenção do servidor mais próximo, responde com este tipo de pacote. O pacote possuirá um tamanho de 96 bytes (cabeçalho IPX + uma entrada de servidor)
Os SAP broadcasts emitidos pelos roteadores e pelos servidores são locais, ou seja, somente serão recebidos pelos agentes SAP localizados no segmento onde foi realizada a emissão. Consequentemente, agentes SAP periodicamente emitem broadcasts contendo informações dos servidores, permitindo assim que todos os agentes SAP possuam informações a respeito de todos os servidores que estão ativos na rede. Este é o mesmo método de broadcast utilizado pelos roteadores para difundir os pacotes RIP.
A tabela utilizada pelos agentes SAP para armazenar as informações recebidas nos broadcasts é denominada Tabela de Informações de Servidores. Esta tabela possui como principais campos:
- Nome do servidor
- Endereço do servidor (Rede, Nodo e Socket)
- Tipo do servidor
- Saltos até o servidor
- Cartão de interface de rede por onde foram recebidas as informações do servidor
Quando um agente SAP localizado num roteador recebe um broadcast de resposta indicando uma troca na configuração de um servidor da rede, deve atualizar sua tabela e informar os demais agentes do segmento.Para distribuir esta informação para o restante da rede, o agente SAP envia um broadcast para todos os segmentos conectados ao roteador, exceto pelo segmento por onde recebeu o broadcast informativo.
Quando um agente SAP recebe uma requisição genérica, um pacote de resposta SAP é emitido contendo informações a respeito de todos servidores conhecidos pelo agente.
Se uma requisição específica é recebida, o agente SAP envia uma resposta diretamente para o nodo requisitante, contendo informações de todos os servidores conhecidos pelo agente do tipo especificado.
Se uma requisição para obtenção do servidor mais próximo é recebida, o agente SAP responde com o servidor mais próximo do tipo requisitado. Os critérios utilizados para identificar o servidor mais próximo são os seguintes:
1) O agente SAP esta localizado num servidor do tipo requisitado
2) Servidor com a melhor rota. Obtido na Tabela de Informações de Roteamento
3) Servidor com o menor número de saltos. Obtido na Tabela de Informações de Servidores
Se nenhum servidor que satisfaça estes critérios for encontrado, o agente SAP pode escolher qualquer servidor como sendo o mais próximo.