O que os primeiros 32 caracteres da tabela ascii fazem?

3

Os primeiros 32 caracteres da tabela ASCII (0x00 - 0x1F) são todos os caracteres não imprimíveis (com exceção de 'DEL', que fica no final da tabela).

Para que eles são usados, além de conectar o terminal ao criar um arquivo binário?

Alguns deles são óbvios:

   Oct   Dec   Hex   Char
   ----------------------------------------------
   000   0     00    NUL '\0'                    

   007   7     07    BEL '\a' (bell)             
   010   8     08    BS  '\b' (backspace)        
   011   9     09    HT  '\t' (horizontal tab)   
   012   10    0A    LF  '\n' (new line)         
   013   11    0B    VT  '\v' (vertical tab)     
   014   12    0C    FF  '\f' (form feed)        
   015   13    0D    CR  '\r' (carriage ret)     

   033   27    1B    ESC (escape)                

outros, como

   020   16    10    DLE (data link escape)
   021   17    11    DC1 (device control 1)
   022   18    12    DC2 (device control 2)
   023   19    13    DC3 (device control 3)
   024   20    14    DC4 (device control 4)

Eu nunca vi usado.

ACK, NAK e SYN são os mesmos bytes usados ​​para o handshake de três vias no TCP ou são simplesmente análogos?

Edit: veja as coisas de Eric Raymond que todo hacker sabia uma vez

Barton Chittenden
fonte

Respostas:

4

Estes são chamados códigos de controle e foram feitos para informar ao terminal atual que você estava fazendo algo, em vez de passar para exibir algo. Alguns deles, como BEL (0x07), remontam a quando os terminais eram verdadeiros teletipos de máquina de escrever (nisso, 0x07 tocava a campainha física no teletipo).

O DLE deve funcionar como ESC - uma vez que o terminal o recebe, outros caracteres recebidos devem ser um comando ou outra comunicação com o terminal, e não serem enviados para o próprio dispositivo. Embora eu nunca tenha testemunhado um uso real disso.

ACK, NAK e SYN (e muitos outros, como início do cabeçalho SOH, início do texto STX, final do texto ETX) podem ser usados ​​para implementar um protocolo, mas não foram projetados com o TCP / IP em mente. TCP / IP indica que, definindo bits em um cabeçalho, não transmitindo um código ASCII inteiro. Isso pode ser útil se você estiver transmitindo arquivos em um modem de 56k. Eu sei que protocolos seriais / modem como o ZModem usam alguns deles, e tenho certeza de que existem outras coisas baseadas em modem serial / 56k.

Este gráfico sabe mais do que eu sobre eles, incluindo o significado dos códigos DC1, DC2, DC3 e DC4.

LawrenceC
fonte
3

Antigamente, eles tinham computadores mainframe para processar em massa e simples máquinas "terminais" que exibiam os dados.

Esses terminais foram conectados via linhas de dados seriais, ou seja, é necessário algum tipo de conjunto de comandos para que ambos os lados possam sinalizar quando estiverem prontos para receber dados, prontos para enviar e assim por diante. O conjunto de caracteres ASCII basicamente lista todos os comandos e caracteres disponíveis e os padroniza.

Os sinais que você nunca viu usados ​​provavelmente são vistos apenas em terminais muito específicos e, embora ACK, SYN e NAK sejam análogos aos seus equivalentes TCP, eles não estão diretamente relacionados.

Mokubai
fonte