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.