Isso é completamente normal e esperado. Quando você tenta se conectar a uma porta TCP que tem nada escutando , o servidor sempre responde com um pacote "reset" (tendo o sinalizador RST
). Isso está documentado em RFC 793 página 65 , Protocolo de Controle da Transmissão: Especificação do Protocolo :
SEGMENT ARRIVES If the state is CLOSED (i.e., TCB does not exist) then all data in the incoming segment is discarded. An incoming segment containing a RST is discarded. An incoming segment not containing a RST causes a RST to be sent in response. The acknowledgment and sequence field values are selected to make the reset sequence acceptable to the TCP that sent the offending segment. If the ACK bit is off, sequence number zero is used, <SEQ=0><ACK=SEG.SEQ+SEG.LEN><CTL=RST,ACK> If the ACK bit is on, <SEQ=SEG.ACK><CTL=RST> Return.
No entanto, muitos firewalls, incluindo o que vem com o Windows, são configurados para soltar todos os pacotes que o firewall não reconhece - o chamado "modo furtivo". Assim, o firewall do Win7 elimina sua solicitação de conexão antes mesmo de chegar ao driver TCP, pois ele não tem uma regra para aceitar as conexões da porta TCP 7.
(Qual é a coisa mais irritante que já pude adicionar? Em vez de um simples "nada aqui, vá embora", isso causa longos e irritantes tempos limites.)
No seu Windows Server, o TCP responde como pretendido , uma vez que o firewall está inativo ou não configurado para bloquear essa porta.