Telnet

Telnet (abreviação do inglês para teletype network)  é um protocolo de rede na Internet ou redes locais para proporcionar uma facilidade de comunicação baseada em texto interativo bidirecional usando uma conexão de terminal virtual. Os dados do usuário são intercalados em banda com informações de controle Telnet em um byte de conexão 8-bit de dados orientado sobre o Transmission Control Protocol (TCP).

O Telnet foi desenvolvido em 1969 com a chegada do RFC 15, prorrogado no RFC 854, e padronizado como Internet Engineering Task Force (IETF) Internet STD Padrão 8, um dos primeiros padrões da Internet.

Definição 

O protocolo Telnet é um protocolo standard de Internet que permite a interface de terminais e de aplicações através da Internet. Este protocolo fornece as regras básicas para permitir ligar um cliente (sistema composto de uma afixação e um teclado) a um intérprete de comando (do lado do servidor).

O Telnet existe há mais de 40 anos, muito antes de aparecer a Internet. Este sistema de transmissão de dados foi inventado pelas Forças Armadas Americanas para transmissão de dados entre bases militares. Foi disponibilizado ao público em 1977, tendo sido os  radioamadores os primeiros a aproveitá-lo.

Portanto, pode-se dizer que a Internet trabalha por cima do Telnet, servindo-se do seu sistema para funcionar.
A transmissão de dados pelo Telnet utiliza software específico  que os codifica, permitindo utilizar centenas de portas por nós definidas e reencaminhá-las para o PC que pretendemos.
Se tivermos uma rede interna com vários PC's instalados, utilizando um router, abrimos uma porta para cada PC e, com o mesmo IP, os dados fluem direccionados e reencaminhados simultaneamente, sem qualquer problema.
O utilizador que recebe dados combina com o seu correspondente a porta de passagem para o sistema funcionar.
A máquina que envia os dados fá-lo em pacotes. Informa o correspondente que tem dados. Este, por sua vez, dá o OK para a transmissão. O pacote é enviado com a informação do número de bits que este tem.
Só depois do correspondente ter informado que recebeu os bits todos, é que pede o segundo pacote.
Se por qualquer motivo informa que os bits não chegaram todos, o envio do pacote é repetido.
Muita coisa fica ainda por dizer sobre este sistema.
O protocolo baseia-se numa conexão TCP para enviar dados em formato ASCII codificado em 8 bits entre os quais se intercalam sequências de controle para o Telnet. Fornece assim um sistema orientado para a comunicação, bidireccional (half-duplex), codificado em 8 bits fácil de aplicar. Com essa conexão é possível o acesso remoto para qualquer máquina ou equipamento que esteja sendo executado em modo servidor.

Conceitos fundamentais 
O protocolo Telnet assenta em três conceitos fundamentais que serão explicados a seguir:

O paradigma do terminal rede virtual (NVT, Network Virtual Terminal);
O princípio de opções negociadas;
As regras de negociação.

Terminal virtual 
O Telnet consiste em criar abstrações no terminal, fazendo com que qualquer cliente ou servidor se comunique com outro host sem conhecer as suas características.

A comunicação de NVT, comumente chamada de Terminal Rede Virtual, fornece uma base padrão de:
 Caracteres de 7 bits ASCII
 Três caracteres de controle
 Cinco caracteres de controle opcionais
 Um jogo de sinais de controle básico

Opções negociadas 
As opções negociadas permitem que alguns terminais proponham serviços adicionais que não são definidos nas especificações básicas. Esses serviços adicionais permitem a utilização de funções avançadas em forma de opções, fazendo iniciar os pedidos para solicitar a autorização ao sistema distante a ativação desse serviço ou não. Qualquer um dos lados da rede pode emitir o sinal e logo em seguida a outra deve responder se aceita ou não a liberação da opção requerida. Caso o pedido seja para desativar a opção, quem recebe a mensagem não deve recusar a mensagem, para ser compatível com o modelo NVT.

Regras de negociação 
As regras de negociação de opções podem evitar um caso de bloqueio do pedido, pois os pedidos só devem ser emitidos quando acontece a mudança de um modo. Caso exista um envio para mudança esse deve ser inserido no fluxo de dados apenas no lugar onde tem efeito, o receptor da mensagem só deve adotá-lo quando não se encontrar no mesmo modo pedido.

Especificações 
Este protocolo é um protocolo básico, no qual se apoiam outros protocolos da sequência TCP/IP (FTP, SMTP, POP3,…). As especificações de Telnet não mencionam autenticação porque o Telnet está totalmente separado das aplicações que o utilizam (o protocolo FTP define uma sequência de autenticação acima do Telnet). Além disso, o protocolo Telnet é um protocolo de transferência de dados não seguro, o que quer dizer que os dados que veicula circulam às claras na rede (de maneira não codificada). Quando o protocolo Telnet é utilizado para ligar um hóspede distante à máquina na qual é aplicado como servidor, este protocolo é atribuído à porta 23.

Se fizermos uma exceção às opções e às regras de negociação associadas, as especificações do protocolo Telnet são básicas. A transmissão de dados através de Telnet consiste unicamente em transmitir bytes no fluxo TCP (o protocolo Telnet precisa que os dados devem, por default - isto é, se nenhuma opção precisar o contrário - ser agrupados num tampão antes de serem enviados. Mais concretamente, isto significa que por default os dados são enviados linha por linha). Quando o byte 255 é transmitido, o próximo deve ser interpretado como um comando. O byte 255 é assim nomeado IAC (Interpret As Command, traduza-se "interpretar como um comando"). Os comandos são descritos posteriormente.

As especificações básicas do protocolo Telnet estão disponíveis no RFC 854, enquanto as numerosas opções são descritas nos RFC 855 a 861.

Ver também 
 Bulletin board system
 Hypertext Transfer Protocol
 PuTTY
 Secure Shell

Ligações externas 
 Lista de servidores telnet
 RFCs relacionadas:
 RFC 854: TELNET protocol specification
 RFC 855: TELNET option specifications
 RFC 856: TELNET binary transmission
 RFC 857: TELNET echo option
 RFC 858: TELNET suppress Go Ahead option
 RFC 859: TELNET status option
 RFC 860: TELNET timing mark option
 RFC 861: TELNET extended options - list option
 RFC 885: Telnet end of record option
 RFC 1041: Telnet 3270 regime option
 RFC 1073: Telnet Window Size Option
 RFC 1079: Telnet terminal speed option
 RFC 1091: Telnet terminal-type option
 RFC 1096: Telnet X display location option
 RFC 1097: Telnet subliminal-message option
 RFC 1116: Telnet linemode option
 RFC 1205: 5250 Telnet interface
 RFC 1372: Telnet remote flow control option
 RFC 2217: Telnet Com Port Control Option
 RFC 2941: Telnet Authentication Option
 RFC 2942: Telnet Authentication: Kerberos Version 5
 RFC 2943: TELNET Authentication Using DSA
 RFC 2944: Telnet Authentication: SRP
 RFC 2946: Telnet Data Encryption Option
 RFC 4248: The telnet URI Scheme
 RFC 4777: IBM's iSeries Telnet Enhancements

História da Internet
Telnet
Programas Unix
Normas da internet