INTRODUÇÃO

O SAP (Service Advertising Protocol) permite nodos que realizam serviços, tais como servidores de arquivo, servidores de impressora, servidores gateway noticiarem seus serviços e endereços. O protocolo SAP possibilita aos processos adicionarem e removerem serviços dinamicamente na rede. Quando um servidor é adicionado a rede, ele noticia seus serviços utilizando o SAP. Quando um servidor é desativado, ele utiliza o SAP para indicar que seus serviços não estão mais a disposição.

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.

FORMATO DO PACOTE

Conforme a maioria dos protocolos de alto nível do Netware, os pacotes SAP são encapsulados na área de dados dos pacotes IPX. Os pacotes SAP são definidos no cabeçalho IPX preenchendo-se o campo tipo com o valor 4 e o campo socket origem ou o campo socket destino com o valor 452h. O pacote SAP possui os seguintes campos:

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".

OPERAÇÕES SAP

Se o campo "operação" é 1, o pacote SAP é uma requisição genérica ou específica. Neste caso, somente os campos "operação" e "tipo de serviço" (dentro do campo "entrada de servidor") são utilizados e os pacotes são limitados ao tamanho de 34 bytes. Requisições específicas são utilizadas para encontrar todos os servidores de um tipo de serviço. Neste caso o campo "tipo de serviço" é preenchido com o valor que identifique o serviço desejado. Requisições genéricas são utilizadas para encontrar todos os servidores. Este tipo de requisição ocorrerá se o campo "tipo de serviço" for preenchido com FFFFh.

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)

ROTEAMENTO

Utilizando o SAP, servidores e roteadores Netware podem noticiar seus serviços e endereços. As informações emitidas pelos servidores não são utilizadas diretamente pelo clientes mas coletadas por agentes SAP localizados em cada roteador Netware no segmento do servidor. Os agentes SAP armazenam estas informações em uma Tabela de Informações de Servidores. Desta forma, os clientes podem contactar o roteador mais próximo para obter informações sobre servidores.

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.