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 a exceção de 'DEL', que vem no final da tabela).

Para que são usados, além de borking seu terminal quando você gata um arquivo binário?

Alguns deles são óbvios:

   Oct   Dec   Hex   Char
   ----------------------------------------------
   000   0     00    NUL '
   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)
' 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)

outras, como

   Oct   Dec   Hex   Char
   ----------------------------------------------
   000   0     00    NUL '
   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)
' 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)

Eu nunca vi usado.

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

Editar: veja as Coisas de Eric Hackmond que cada hacker sabia certa vez

    
por Barton Chittenden 21.08.2013 / 18:42

2 respostas

4

Estes são chamados códigos de controle e foram feitos para dizer ao terminal atual que você estava fazendo algo, em vez de passar para exibir algo. Alguns deles, como BEL (0x07), retrocedem tanto quanto os terminais eram verdadeiros teli-computadores (neste, 0x07 tocaria a campainha física no teletipo).

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

ACK, NAK e SYN (e muitos outros, como início de cabeçalho SOH, início de texto STX, fim de texto ETX) podem ser usados para implementar um protocolo, mas não foram projetados com o TCP / IP em mente. O TCP / IP indica que, ao definir bits em um cabeçalho, não é transmitido um código ASCII inteiro. Estes podem ser úteis se fizer algo como transmitir arquivos através de um modem de 56k. Eu sei que os protocolos serial / modem, como o ZModem, usam alguns desses, e tenho certeza de que há outras coisas baseadas em modem serial / 56k que fazem isso.

Este gráfico sabe mais do que eu sobre eles, incluindo o que o DC1, Os códigos DC2, DC3 e DC4 foram criados para.

    
por 21.08.2013 / 19:20
3

Nos velhos tempos, eles tinham computadores mainframe para fazer o processamento em massa e simples máquinas "terminais" que exibiam os dados.

Estes terminais foram conectados via linhas de dados seriais, isto significa que algum tipo de conjunto de comandos é necessário 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 são provavelmente vistos apenas em terminais muito específicos e, enquanto ACK, SYN e NAK são análogos aos seus correspondentes TCP, eles não estão diretamente relacionados.

    
por 21.08.2013 / 18:58

Tags