Pourquoi certaines connexions expirent-elles et d'autres sont-elles refusées?

13

J'ai remarqué que parfois en essayant de telnet dans un port aléatoire, j'ai observé deux types de scénarios:

$ telnet example.com 3432
  Trying 173.252.110.27...

$ telnet example.com 3432
  Connection Refused.

Quelqu'un peut-il m'expliquer quelle est la différence entre les deux?

pradeepchhetri
la source
1
Dans le premier cas, le trafic est abandonné et dans le second cas, le trafic est rejeté. Le lien ci-dessous résume la différence entre DROP et REJECT chiark.greenend.org.uk/~peterb/network/drop-vs-reject
tuk

Réponses:

10

Une des raisons serait le comportement d'un pare-feu sur example.com. Dans le cas où le pare-feu baisse simplement le trafic, vous verrez la première réponse. En revanche, si le pare-feu rejette le trafic, vous obtiendrez le second.

Pour mieux comprendre, prenez un filtre de paquets tel que tcpdump ou wirehark et reniflez le trafic pendant que vous effectuez les tests.

Le premier cas ressemblera à Syn, Syn, Syn ...

Le deuxième cas ressemblera à Syn, Rst avec un éventuel port ICMP inaccessible.

Une connexion réussie ressemblera à Syn, Syn-Ack, Ack que nous attendons dans la prise de contact à trois voies tcp .

dmourati
la source
2
Un doute, donc au cas où, si une application n'écoute pas sur un port et qu'aucun pare-feu ne bloque la connexion à ce port, je devrais rencontrer le deuxième cas. Je veux dire que je devrais obtenir un indicateur TCP RST défini dans la réponse. Ai-je raison ?
pradeepchhetri
2
@pradeepchhetri Oui, s'il n'y a rien qui écoute ou bloque le trafic vers un hôte actif , vous obtiendrez une erreur de connexion refusée (et le paquet TCP RST associé). C'est pourtant très rare sur Internet de nos jours.
un CVn le