O TCP foi projetado para suportar conexões de ponta a ponta, ou seja, um host comunicando-se diretamente com outro host. Claro, havia pontes e roteadores no meio, mas esses dispositivos não tocavam no cabeçalho do TCP ou na carga útil. Isso, entretanto, não é mais o caso. Agora temos coisas como tradutores de endereços de rede, firewalls, sistemas de prevenção de intrusão e aceleradores de rede. Todas estas coisas podem modificar o cabeçalho TCP, enviar reconhecimentos ou reinicializar ou simplesmente deixar cair o pacote no balde de bits. Para piorar a situação, estes dispositivos estão em cada extremidade da rede e às vezes também no meio.
Imagine o caso de um host A na rede B com uma conexão com o host Y na rede Z. Na frente da rede B está um acelerador de WAN que aumenta o rendimento através de reconhecimentos falsos do host Y. Isto permite que o host A envie dados o mais rápido possível. O acelerador cuidará de todos os amortecedores e retransmissões. Infelizmente, o sistema de prevenção de intrusão em frente à rede Z está deixando cair um pacote de aparência inocente, mas suspeito, do host A. O host Y nunca o vê, portanto não o reconhece. O acelerador WAN em frente à rede B retransmite, mas é claro que o pacote é descartado novamente. O acelerador eventualmente sai e envia um reset de volta ao host A e ao host Y.
O que o administrador do sistema do host A vê quando ele tenta descobrir o que está acontecendo depois que um usuário reclama? Ele vê pacotes deixando o host A ser reconhecido pelo host Y, mas nenhuma resposta da camada de aplicação do host Y e então o host Y redefine a conexão, nada que indique qualquer problema ou porque o host Y redefine a conexão. O que o administrador do sistema do host Y vê? Ela vê que o host A simplesmente parou de enviar pacotes e então enviou um reset, novamente nada que indique qualquer problema ou por que o host A resetou a conexão.
A suposição de que o host A está se comunicando diretamente com o host Y está errada e fazer essa suposição faz com que cada administrador culpe o outro sistema pela falha na conexão.
Para descobrir o que está acontecendo, você precisa prestar atenção aos valores dos campos "desinteressantes" nos dados de rastreamento do cabeçalho IP, campos como o "Tipo de serviço", ID, Bandeiras, e "Time to Live" (TTL). Mudanças nestes campos, por exemplo, pacotes com dados têm uma TTL de 47 e pacotes sem dados têm uma TTL de 127, podem lhe dizer que os pacotes são originários de duas fontes diferentes.
A comparação de traços tanto do hospedeiro A quanto do hospedeiro Y pode iluminar o problema. Não só é possível ver pacotes em um traço que não estão no outro, mas as mudanças em todos aqueles campos de cabeçalho IP desinteressantes ou nos números de porta TCP ou seqüência indicarão com 100% de certeza que estes hospedeiros não estão se comunicando diretamente entre si.
Pode não ser possível desligar o acelerador de rede ou o sistema de prevenção de intrusão (e também pode não ser uma boa idéia), mas saber que eles estão lá e saber o que eles estão fazendo lhe dá uma melhor chance de entender e corrigir problemas quando eles ocorrem.