Vamos agora focar em outras responsabilidades do NBT que é prover serviços de conexão entre duas máquinas NetBIOS. São dois estes serviços, o serviço de datagrama e o serviço de sessão, o entendimento destes serviços não é essencial para a utilização do Samba mas dá uma nítida idéia de como o NBT funciona e como proceder para solucionar eventuais problemas quando o Samba não funciona.
O serviço de datagrama não possui uma conexão estável entre máquinas. Os pacotes de dados são simplesmente enviados de uma máquina para outra ou são broadcasted sem qualquer preocupação com a ordem de chegada no destino ou mesmo se estão chegando no destino. Datagramas são utilizados para a transmissão rápida de blocos simples de dados entre máquinas de uma rede NetBIOS. O serviço de datagrama possui as seguintes primitivas:
Primitiva | Descrição |
Send Datagram | Transmite o datagrama para uma máquina ou um grupo delas |
Send Broadcast Datagram | Dá um broadcast de um datagrama para as máquinas que se encontram em Receive Broadcast Datagram. |
Receive Datagram | Recebe um datagram de uma máquina. |
Receive Broadcast Datagram | Espera por um broadcast de um datagrama |
O serviço de sessão é um pouco mais complexo. As sessões são um método de comunicação que em teoria oferece a habilidade de detecção de conexões problemáticas ou inoperantes entre dois aplicativos NetBIOS. Ajuda muito pensar numa sessão NBT em termos de uma chamada telefônica, uma conexão full-duplex é aberta entre a máquina transmissora e a receptora e deve permanecer aberta durante a duração da conversação. Cada lado sabe quem é o transmissor e que é o receptor podendo então se comunicar com as primitivas abaixo:
Primitiva | Descrição |
Call | CallInicia uma sessão com a máquina especificada |
Listen | Espera a chamada de uma máquina conhecida ou de qualquer máquina |
Send | Transmite dados para a outra máquina. |
Receive | Recebe dados da outra máquina |
Hang-up | Termina um call |
Session Status | Retorna informações nas sessões requisitadas |
As sessões são a espinha dorsal do compartilhamento de recursos em uma rede NBT. Elas são utilizadas tipicamente para o estabelecimento de conexões estáveis entre máquinas clientes e discos ou impressoras compartilhadas no servidor. O cliente “chama” o servidor e inicia-se uma troca de informações como que arquivo deseja-se abrir ou que dados devem ser trocados. Essas “chamadas” podem durar longos períodos de tempo ocorrendo dentro de um contexto de uma unica conexão. Se acontecer algum erro o software de sessão (TCP) irá retransmitir até que os dados sejam recebidos corretamente, ao contrário da abordagem “punt-and-pray” do serviço de datagrama. (UDP).