Por que o protocolo Telnet usa apenas 1 porta no servidor enquanto o FTP usa 2 portas

1

Eu recebi essa pergunta em uma entrevista de emprego e não tinha ideia do que responder. Alguém pode me ajudar a entender isso?

Por que o protocolo telnet usa apenas 1 porta enquanto o protocolo FTP usa 2 portas no servidor?

    
por farhangdon 23.04.2015 / 17:06

4 respostas

4

Como já foi observado, o telnet usa apenas 1 porta, pois é um uso interativo / terminal. O Ftp configura dois canais de comunicação - controle e dados. Isso significa que o canal de dados é independente das comunicações de controle [interativas]. Além disso, o canal de controle usa o protocolo Telnet ( RFC ):

The Relationship between FTP and Telnet:

         The FTP uses the Telnet protocol on the control connection.

Aqui está um bom exemplo de como a sinalização fora do limite (canais separados) poderia ser usada para otimizar os caminhos de comunicação (também do RFC )):

In another situation a user might wish to transfer files between two hosts, neither of which is a local host. The user sets up control connections to the two servers and then arranges for a data connection between them. In this manner, control information is passed to the user-PI but data is transferred between the server data transfer processes. Following is a model of this server-server interaction.

                Control     ------------   Control
                ---------->| User-FTP |<-----------
                |          | User-PI  |           |
                |          |   "C"    |           |
                V          ------------           V
        --------------                        --------------
        | Server-FTP |   Data Connection      | Server-FTP |
        |    "A"     |<---------------------->|    "B"     |
        -------------- Port (A)      Port (B) --------------
    
por 23.04.2015 / 17:50
1

O FTP usa um canal de comando e um canal de dados, portanto, duas conexões são necessárias. O Telnet conecta-se a exatamente uma porta - aquela para a qual você diz.

Veja esta seção na página da Wikipédia para mais informações

    
por 23.04.2015 / 17:14
1

O Telnet usa apenas uma porta porque estabelece apenas um fluxo bidirecional de dados entre o cliente e o servidor: os dados do teclado do cliente (ou stdin) para o servidor e os dados do servidor para a tela do cliente (ou stdout). Não há necessidade de enviar informações de "controle" ou "status". Seu cliente se conecta ao servidor telnet e, a partir de então, o telnet emula um cabo de três fios (dados Tx, dados Rx e aterramento) entre a porta serial de um computador e um terminal serial. Seu cliente não tem como enviar comandos ou outras informações "fora da banda" para o servidor telnet depois disso, nem precisa - então não há necessidade de um canal de comunicação separado, que é o que uma porta secodnd forneceria. A única "informação de controle" que é passada é quando o cliente se desconecta - e a notificação de desconexão é tratada automaticamente pelo TCP.

O FTP precisa trocar dados e um protocolo de comando e resposta entre o cliente e o servidor. Os designers escolheram usar portas diferentes para essas duas funções. Isso facilita alguns aspectos da programação, particularmente com sistemas operacionais mais antigos que também não suportam E / S assíncronas ou multithreading. Por exemplo, você pode enviar ou receber informações de controle e status enquanto recebe ou envia dados de arquivos e, do ponto de vista do programa, o fluxo de "controle" não precisa esperar que um buffer seja concluído nos "dados". "stream antes de enviar ou receber seu próprio buffer.

No entanto! Os designers do ftp poderiam ter feito isso de forma diferente. Eles poderiam ter usado apenas uma única porta. Eles poderiam ter adicionado um byte ou mais à frente de cada bloco de dados de arquivo, ou comando, ou resposta, que diria ao outro extremo "isto é um pedaço de dados" ou "isto vai para o caminho de comando / resposta". Isso torna a programação um pouco mais difícil e impede leituras e gravações independentes nos dois fluxos. Mas as funções básicas do ftp poderiam ter sido feitas com apenas uma porta.

E o telnet poderia ter usado uma segunda porta - embora com a funcionalidade limitada do telnet, não consigo imaginar para quê. Talvez uma porta para cada direção ... ou talvez implementar de forma limpa o envio de um "intervalo".

Então, uma resposta válida, mas provavelmente inútil, é: "porque as pessoas que as escreveram implementaram dessa maneira."

    
por 23.04.2015 / 20:11
-2
O protocolo

Ftp usa 2 portas 20 e 21, a porta 20 é para Controle e a porta 21 para Dados, e telnet use apenas a porta 23 para fazer interações com um terminal.

    
por 23.04.2015 / 17:12