O Que É uma Conexão TCP? Fluxos de Bytes Confiáveis
Uma conexão TCP é um canal confiável e ordenado entre dois endpoints, estabelecido com um handshake, que garante que os bytes cheguem intactos e em ordem ou a conexão falha.
A maioria dos protocolos de aplicação, incluindo HTTP e gRPC, roda sobre TCP. O TCP transforma a rede de pacotes não confiável em um fluxo de bytes confiável, reconhecendo dados, retransmitindo perdas e ordenando tudo corretamente. Quando um job de CI reporta um connection reset ou timeout, é uma falha em nível de TCP por baixo de qualquer protocolo que estivesse usando.
O handshake de três vias
Uma conexão TCP abre com uma troca SYN, SYN-ACK, ACK que sincroniza ambos os lados antes de qualquer dado fluir. Somente após o handshake completar a aplicação pode enviar bytes.
Confiável e ordenado
O TCP numera os bytes, reconhece o recebimento e retransmite qualquer coisa perdida, para que a aplicação veja um fluxo limpo e em ordem. Essa confiabilidade é o motivo pelo qual ele sustenta tanto tráfego.
Portas identificam endpoints
Uma conexão é identificada pelo IP de origem e de destino mais a porta. Um cliente abre uma porta local efêmera para uma porta de servidor bem conhecida, como a 443 para HTTPS.
Como erros de TCP aparecem em CI
- Connection refused: nada está escutando naquela porta.
- Connection reset: o peer derrubou a conexão no meio do fluxo.
- Connection timed out: nenhuma resposta dentro do prazo.
Conexões e deploys
Durante um deploy, um backend reiniciando vai recusar ou resetar conexões até que esteja escutando novamente. Health checks e retries suavizam essa janela curta para que os callers não vejam falhas duras.
Resets transitórios em pipelines
Um reset ou timeout de uma instabilidade momentânea geralmente é seguro de repetir em uma requisição idempotente. Os runners da Latchkey repetem automaticamente essas falhas transitórias em nível de TCP para endpoints comuns, então uma única conexão derrubada não falha um job.
Principais conclusões
- O TCP fornece um fluxo de bytes confiável e ordenado, estabelecido com um handshake de três vias.
- Resets, recusas e timeouts são os erros em nível de TCP por trás de muitas falhas de CI.
- Resets transitórios em requisições idempotentes geralmente são seguros de repetir.