3

Первые 32 символа таблицы ASCII (0x00 - 0x1F) являются непечатными символами (за исключением «DEL», который находится в конце таблицы).

Для чего они используются, кроме того, что вы закрываете свой терминал, когда вы загружаете двоичный файл?

Некоторые из них очевидны:

   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)                

другие, такие как

   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)

Я никогда не видел б.

Являются ли ACK, NAK и SYN одними и теми же байтами, используемыми для трехстороннего рукопожатия в TCP, или они просто аналогичны?

Изменить: увидеть вещи Эрика Рэймонда каждый хакер когда-то знал

2 ответа2

4

Они называются контрольными кодами и предназначались для того, чтобы сообщать фактическому терминалу, что вы собираетесь что-то делать, а не проходить через что-либо для отображения. Некоторые из них, такие как BEL (0x07), уходят так далеко назад, когда терминалы были настоящими телетайпами (в этом случае 0x07 будет звонить в физический звонок телетайпа).

Предполагается, что DLE работает как ESC - как только терминал принимает его, дальнейшие входящие символы должны быть командой или другим сообщением к терминалу, а не выводиться на само устройство. Хотя я никогда не был свидетелем фактического использования этого.

ACK, NAK и SYN (и многие другие, такие как начало заголовка SOH, начало текста STX, конец текста ETX) можно использовать для реализации протокола, но они не были разработаны с учетом TCP/IP. TCP/IP указывает это путем установки битов в заголовке, а не путем передачи всего кода ASCII. Это может быть полезно, если вы делаете что-то вроде передачи файлов через модем 56k. Я знаю, что последовательные / модемные протоколы, такие как ZModem, используют пару из них, и я уверен, что есть другие вещи, основанные на последовательном / 56k-модеме, которые делают.

Эта диаграмма знает о них больше, чем я , включая то, для чего предназначались коды DC1, DC2, DC3 и DC4.

3

В прежние времена у них были мэйнфрейм-компьютеры для массовой обработки и простые "терминальные" машины, которые отображали данные.

Эти терминалы были подключены через последовательные линии передачи данных, это означает, что необходим некоторый набор команд, чтобы обе стороны могли сигнализировать, когда они готовы к приему данных, готовы к отправке и так далее. Набор символов ASCII в основном перечисляет все доступные команды и символы и стандартизирует их.

Сигналы, которые вы никогда не видели, вероятно, видны только на очень специфических терминалах, и хотя ACK, SYN и NAK аналогичны своим аналогам TCP, они не связаны напрямую.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .