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?