De acordo com as especificações TCP, a identidade de uma conexão TCP é determinada pela combinação dessas quatro coisas:
- endereço IP do terminal A
- Número da porta TCP do terminal A
- endereço IP do ponto final B
- Número da porta TCP do terminal B
Se qualquer uma dessas quatro coisas mudar, então pela definição básica do protocolo TCP não é mais a mesma conexão .
Quando seu Host B mudou de seu IP antigo para o novo, todas as conexões existentes e o estado associado a elas foram vinculados ao endereço IP antigo. O sistema operacional é inteligente o suficiente para saber que, depois que o endereço IP de uma interface é alterado, nenhuma conexão TCP existente pode ser continuada, pois o endereço IP antigo não pode mais ser usado.
Aparentemente, a mudança de endereço IP foi bastante abrupta no que diz respeito ao Host B: não há DHCPRELEASE nem qualquer tentativa de terminação ordenada de conexões existentes antes de derrubar o endereço IP antigo.
Como resultado, na interface de rede do host B, como o endereço IP antigo é derrubado, também existem conexões TCP que estavam associadas ao IP antigo.
Seu Networking Definido por Software aparentemente cuida da tradução dos endereços de destino dos pacotes vindos do host A para o novo endereço IP - mas o sistema operacional do host B não o conhece, e por isso não tem idéia de que Caso específico, teria sido possível manter o estado da conexão e continuar a usá-lo, mesmo com o novo endereço IP.
Assim, uma vez que o host B recebe um dos pacotes retransmitidos do host A, ele é endereçado de 192.168.2.2, porta 1234 para 192.168.2.5, porta 37186. Não há registro de uma conexão TCP existente com esses parâmetros exatos - assim, o sistema operacional só pode enviar um TCP RST como resposta.
(Mesmo se a informação da conexão antiga foi mantida, ela tinha o lado do host B no endereço IP como 192.168.2.3, então, na medida em que o host B saiba, este novo pacote para 192.168.2.5 não tem absolutamente nada a ver com aquela conexão antiga .)
Quando a resposta RST viaja de volta ao host A, o SDN irá traduzir seu endereço de origem para 192.168.2.3, então o host A irá reconhecê-lo como pertencente à sua conexão existente. E assim o host A receberá a mensagem de que o fluxo está morto.