El protocolo Telnet, se describe en RFC 854 , incluye una forma de enviar comandos en-banda, que consiste en el carácter IAC , '\255'
, seguido por varios más bytes. Estos comandos pueden hacer cosas como enviar una interrupción al control remoto, pero generalmente se usan para enviar opciones .
Puede encontrar una vista detallada de un intercambio que envía la opción de tipo de terminal en Microsoft Q231866 .
La opción de tamaño de ventana se describe en RFC 1073 . El cliente primero envía su disposición a enviar una NAWS
opción. Si el servidor responde DO NAWS
, el cliente puede enviar los NAWS
datos de la opción, que se compone de dos valores de 16 bits.
Ejemplo de sesión, en un terminal de 47 filas y 80 columnas:
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)
El protocolo ssh se describe en RFC 4254 . Consiste en una secuencia de mensajes. Uno de estos mensajes es "pty-req"
, que solicita un pseudo-terminal, y sus parámetros incluyen la altura y el ancho del 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
Los clientes telnet y ssh captarán la SIGWINCH
señal, por lo que si cambia el tamaño de una ventana de terminal durante una sesión, enviarán un mensaje apropiado al servidor con el nuevo tamaño. Ssh envía el mensaje de cambio de dimensión de ventana:
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
Window Dimension Change Message
? No puedo encontrar un ejemplo de ello en ningún lado.