Quando uma comunicação falha, classificar o sintoma reduz as hipóteses e indica o próximo teste. As falhas de comunicação TCP cabem em quatro categorias, e cada categoria aponta para um lugar diferente.
Primeira categoria: falha de nome
O nome não é traduzido em endereço, e a conexão nem chega a ser tentada.
- Sintoma: a mensagem de que não foi possível localizar o host aparece na hora, e o acesso pelo endereço IP funciona.
- Camada: Aplicação, na tradução de nomes.
- Causas: o DNS, o arquivo hosts, um nome DDNS desatualizado ou um nome digitado errado.
- Exemplos: em um banco de dados, o erro de servidor desconhecido. Em uma integração, a mensagem de que não foi possível resolver o nome.
Segunda categoria: recusa
A tentativa chegou a um equipamento que respondeu que não aceita a conexão. Nenhum programa aceita conexões naquela porta, e o destino responde com uma mensagem RST.
- Sintoma: falha rápida ou recusa explícita.
- Camada: Transporte, com possível participação de um firewall que recusa a conexão.
- Causas: o serviço parado, a porta errada, o serviço escutando apenas no loopback ou a rejeição ativa de um firewall.
- Exemplos: em um banco de dados, o erro de que não foi possível conectar, com a indicação de que o servidor recusou a conexão. No telnet, a falha imediata.
Uma recusa vinda do destino prova que existe caminho de ida e volta até ele. Diante de uma recusa, a investigação sai da rede e segue para o serviço.
Terceira categoria: tempo esgotado
O pacote sai e nada volta, nem aceitação nem recusa.
- Sintoma: a espera vai até o limite da ferramenta ou do sistema.
- Camadas: Acesso à Rede, Internet ou Transporte.
- Causas: um firewall que descarta a conexão, um endereço errado, um equipamento desligado, a falta de rota, uma regra de encaminhamento ausente ou apontando para um endereço vazio, ou o CGNAT.
- Exemplos: em um banco de dados, o erro de que não foi possível conectar, com a indicação de que o servidor não respondeu no tempo esperado. No teste da porta 9000 da matriz, a demora seguida de falha.
O tempo esgotado é o sintoma menos específico e o que exige mais investigação.
Quarta categoria: a conexão abre, mas não funciona
O handshake TCP se completa e a porta responde, mas o sistema não opera.
- Sintoma: o teste de porta é bem-sucedido, e o sistema mostra um erro.
- Camada: Aplicação.
- Causas: o serviço travado, outro programa ocupando a porta, uma porta secundária bloqueada, uma versão incompatível, o usuário e a senha, a permissão ou a licença.
- Exemplos: em um banco de dados, o erro de usuário ou senha inválidos ou o erro de computador sem autorização para conectar. No compartilhamento de pastas, a mensagem de acesso negado.
Como as categorias aparecem nas integrações
Nos registros das integrações, as mesmas categorias aparecem como mensagens do programa:
- as mensagens de que não foi possível resolver o nome ou de host desconhecido indicam falha de nome;
- a mensagem de conexão recusada indica recusa;
- as mensagens de tempo esgotado, ou timeout, indicam tempo esgotado;
- as mensagens de conexão encerrada pelo host remoto ou de conexão redefinida indicam que a conexão abriu e caiu no meio da troca;
- os erros de autenticação, de certificado ou os códigos de erro do fornecedor indicam que a conexão funciona e que a falha está na aplicação.
As falhas esporádicas
Às vezes, a mesma integração funciona quase sempre e, de vez em quando, esgota o tempo. Essas falhas esporádicas costumam vir da perda de pacotes no caminho: um Wi-Fi instável, um cabo ou uma porta de switch com defeito, uma conexão saturada nos horários de pico ou um problema de MTU em uma VPN. Nesses casos, o ping contínuo gravado em arquivo, com a hora de cada linha, permite comparar os horários das perdas com os horários das falhas.
No suporte
Antes de qualquer alteração, convém classificar o sintoma:
- quando o nome não é traduzido, a verificação começa pelo DNS e pelo arquivo hosts;
- quando há recusa ou falha imediata, a verificação começa pelo serviço, pela porta e pelo bind;
- quando a espera vai até o limite, a investigação segue para o caminho, os filtros, o NAT e o equipamento;
- quando a conexão abre e o sistema não funciona, a verificação segue para a aplicação.
O tempo e a forma da falha são indícios, mas variam entre as ferramentas e precisam ser combinados com outros testes.
Para guardar
- Falha de nome, recusa, tempo esgotado e conexão que abre sem funcionar apontam para lugares diferentes.
- A recusa leva ao serviço, e o tempo esgotado leva ao caminho.
- Nenhum sintoma isolado prova a causa.
O caixa 01 não conecta ao banco de dados do servidor da loja, e a mensagem de erro indica que o servidor recusou a conexão. Em qual categoria a falha se encaixa e o que verificar?
Na categoria de recusa: o servidor respondeu, mas não aceitou a conexão. Convém verificar se o serviço do banco de dados está em execução, se a porta é a 3306 e se o serviço não está escutando apenas no endereço 127.0.0.1.
E se a mensagem indicar que o servidor não respondeu no tempo esperado?
A falha passa a ser de tempo esgotado: nada respondeu. Convém verificar se o endereço do servidor é o configurado, se o servidor está ligado e se o firewall do servidor está descartando a porta 3306.