Por que o 'telnet' limita as linhas de conexão de controle FTP?

2

A RFC 1123 diz

Implementors MUST NOT assume any correspondence between READ
boundaries on the control connection and the Telnet EOL
sequences (CR LF).

DISCUSSION:
    Thus, a server-FTP (or User-FTP) must continue reading
    characters from the control connection until a complete
    Telnet EOL sequence is encountered, before processing
    the command (or response, respectively).  Conversely, a
    single READ from the control connection may include
    more than one FTP command.

Gostaria de saber se esse requisito ainda é relevante hoje em dia.

Brinquei um pouco com o comando telnet do Linux Netkit (aquele fornecido com o Ubuntu). Quando eu abro a comunicação para um servidor de telnet, o cliente é muito paranóico sobre a limpeza de dados. telnet ativa imediatamente as teclas pressionadas nos pacotes e os busca.

Dado que o FTP está no topo do Telnet, se eu telnet para um servidor FTP, eu esperaria o mesmo comportamento paranoico. Em vez disso, telnet armazena os meus pressionamentos de tecla até a nova linha. Ele busca somente pacotes de comandos FTP inteiros. Apenas quando estiver falando com servidores FTP.

Por que o telnet se incomoda em colocar em buffer caracteres para FTP, especificamente, dado o requisito acima? Ele ainda armazena em buffer além do limite de MTU (e segmentos na camada TCP).

man telnet está silencioso sobre este tópico e não consigo encontrar o código-fonte do Netkit. ( Um dos links está quebrado e o outro leva a um repositório vazio . ) Em qualquer caso, man telnet diz "O código fonte não é compreensível", por isso estou pessimista em encontrar um comentário em algum lugar que explique a lógica.

Existe algum tipo de especificação de atualização ou restrição prática que anula a liberdade de uma implementação para buscar comandos FTP semiacabados? O que estou perdendo?

Por que telnet buffer controla as linhas de conexão de controle?

    
por Yd Ahhrk 11.12.2015 / 23:36

1 resposta

3

O Telnet possui dois modos básicos de operação: modo de linha e modo de caractere. O modo padrão é sempre o modo de linha. O aplicativo de telnet precisa negociar com o servidor remoto o que pode ou não suportar. Isso é feito através de um sistema chamado TELOPT e o caractere especial 255 conhecido como IAC - Interpret As Command.

Somente quando as duas extremidades concordarem que podem fazer o caractere de uma só vez, e mesmo que a extremidade remota ecoará os caracteres recebidos, o link estará no modo interativo tradicional (sem buffer de linha).

Como o FTP não é destinado a interagir manualmente com o uso do telnet, ele não suporta nenhum dos recursos avançados do Telnet TELOPT. Portanto, o modo de caractere nunca pode ser negociado.

Tudo isso está em rfc854

    
por 12.12.2015 / 00:37

Tags