Cuando un servidor TCP acepta un socket en un puerto, obtiene un nuevo socket para trabajar con ese cliente.
El socket aceptante sigue siendo válido para ese puerto y puede aceptar más clientes en ese puerto.En el diseño del protocolo, ¿por qué alguna vez usaría 2 puertos?
¿Por qué la especificación FTP original RFC 959 decidió crear un puerto de control y un puerto de datos?
¿Habría alguna razón para hacer esto en un protocolo personalizado similar?
Me parece que esto podría haberse especificado fácilmente en un solo puerto.
Teniendo en cuenta todos los problemas con los firewalls y los NATS con FTP, parece que un solo puerto hubiera sido mucho mejor.
Para una implementación de protocolo general, la única razón por la que podría pensar que desea hacer esto es para poder servir los archivos desde un host diferente del que los comandos van a utilizar.
Debe recordar que el FTP se especificó antes que NAT y que los Firewall eran la norma. – grieve
La pregunta sigue siendo la misma, ¿por qué eligieron 2 puertos? –
Consulte la sección 2.3 que tiene un buen diagrama ASCII del FTP que ocurre con un host local y dos hosts remotos. – grieve