2 votes

Pourquoi le port 20 n'est pas utilisé pour le canal de données en mode passif FTP?

En mode actif, un serveur FTP utilise deux ports, le 21 pour les signaux de commande et le 20 pour les données. En mode passif FTP, après que le client se connecte au serveur sur le port 21, le serveur donne au client un port éphémère aléatoire auquel se connecter, pour la connexion de données, sur lequel il commence à écouter. Pourquoi le serveur ne donne-t-il pas le port 20 (comme c'est habituel en mode actif) pour les connexions de données?

PS: J'ai regardé sur pourquoi le mode passif FTP nécessite une plage de ports au lieu d'un seul port? mais cela ne répond pas à ma question spécifique.

1voto

Martin Prikryl Points 7129

Je ne sais pas pourquoi les auteurs originaux de la spécification FTP ont décidé de cette façon. Mais cette décision présente des avantages avec la façon dont Internet fonctionne de nos jours.

Si vous deviez vous connecter au même port (20) à chaque fois, le serveur ne serait pas en mesure de savoir à quel fichier vous vous connectez. Le numéro de port sert de lien entre une demande de transfert sur la connexion de contrôle et une connexion de données. Notez qu'il n'y a pas de "protocole" sur la connexion de données, qui pourrait être utilisé par le client pour indiquer ce qu'il demande. Le numéro de port est la seule information unique dont dispose le serveur.

Si deux clients demandaient un transfert en même temps, et que le serveur acceptait des connexions de données sur le même port, le serveur ne pourrait pas savoir quel fichier transférer. Bien sûr, le serveur pourrait utiliser l'adresse IP du client pour la décision (en réalité de nombreux serveurs FTP valident que l'adresse IP du client correspond à l'adresse IP utilisée sur la connexion de contrôle pour des raisons de sécurité).

Mais cela ne fonctionnerait pas pour :

  • Des connexions multiples à partir de la même machine (la plupart des clients FTP prennent en charge les transferts/ files d'attente parallèles).
  • Connexion à partir de différentes machines au sein du même réseau (d'entreprise), car celles-ci ont la même adresse IP externe.

Aucune des deux options ci-dessus n'était probablement la raison pour laquelle la spécification FTP a introduit une plage de ports, car à l'époque (1980) les réseaux d'entreprise n'existaient pas et les connexions multiples à partir de la même machine étaient probablement également peu probables. D'autre part, à cette époque, la plage de ports pouvait considérablement simplifier la mise en œuvre du serveur.

0voto

user1700494 Points 1632

En mode actif, le serveur FTP ne "donne" pas le port 20 au client. Il initie la connexion du port 20 vers le client. Cette connexion entrante (du point de vue du pare-feu du client) sera bloquée par la majorité des pare-feux modernes. De plus, il est assez compliqué de faire fonctionner le mode actif à travers NAT. Le mode passif est dépourvu de tous ces inconvénients, car dans le mode passif, le serveur FTP n'initie aucune connexion.

0voto

kofemann Points 4088

Comme il n'y a pas de concept de session dans FTP, l'utilisation d'un seul port, disons 20, introduira une ambiguïté lorsque plusieurs clients sont connectés, car le serveur ne peut pas faire correspondre un client à un fichier. Pour surmonter cette limitation, il y a un port dédié pour chaque transfert. En d'autres termes, chaque port est un identifiant unique d'un transfert.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X