O protocolo telnet, descrito em RFC 854 , inclui uma maneira de enviar comandos em banda, consistindo do < em> caractere IAC , '5'
, seguido por vários bytes adicionais. Esses comandos podem fazer coisas como enviar uma interrupção para o controle remoto, mas normalmente eles são usados para enviar opções .
Uma análise detalhada de uma troca que envia a opção tipo de terminal pode ser encontrada em Microsoft Q231866 .
A opção tamanho da janela é descrita em RFC 1073 . Primeiro, o cliente envia sua vontade de enviar uma opção NAWS
. Se o servidor responder DO NAWS
, o cliente poderá enviar os dados da opção NAWS
, que é composta por dois valores de 16 bits.
Exemplo de sessão, em um terminal de coluna de 80 linhas 80:
telnet> set options
Will show option processing.
telnet> open localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SENT WILL NAWS
RCVD DO NAWS
SENT IAC SB NAWS 0 80 (80) 0 47 (47)
O protocolo ssh é descrito em RFC 4254 . Consiste em um fluxo de mensagens. Uma dessas mensagens é "pty-req"
, que solicita um pseudo-terminal, e seus parâmetros incluem a altura e a largura do terminal.
byte SSH_MSG_CHANNEL_REQUEST
uint32 recipient channel
string "pty-req"
boolean want_reply
string TERM environment variable value (e.g., vt100)
uint32 terminal width, characters (e.g., 80)
uint32 terminal height, rows (e.g., 24)
uint32 terminal width, pixels (e.g., 640)
uint32 terminal height, pixels (e.g., 480)
string encoded terminal modes
Os clientes telnet e ssh irão capturar o sinal SIGWINCH
, então se você redimensionar uma janela de terminal durante uma sessão, eles enviarão uma mensagem apropriada para o servidor com o novo tamanho. Ssh envia a mensagem de mudança da dimensão da janela:
byte SSH_MSG_CHANNEL_REQUEST
uint32 recipient channel
string "window-change"
boolean FALSE
uint32 terminal width, columns
uint32 terminal height, rows
uint32 terminal width, pixels
uint32 terminal height, pixels