Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
modem.pdf
Скачиваний:
27
Добавлен:
17.05.2015
Размер:
3.06 Mб
Скачать

непосредственно к цифровому «хребту» телефонной сети, а не к ана логовой абонентской линии. В частности, это означает, что два таких модема не смогут обмениваться данными на максимальной скорости — для достижения 56 Кбит/с нужно, чтобы на одном из концов линии был не модем, а специальное цифровое оборудование.

В нашей же стране перспективы применения таких модемов еще менее ясны. Большинство российских ATG остаются еще аналоговыми устройствами, и единого цифрового «хребта», к которому могли бы подключаться провайдеры, не существует даже в телефонных сетях крупных городов. Поэтому, увы, большинству российских пользователей покупать такой аппарат в ближайшее время смысла нет

— в наших условиях модем на 56 Кбит/с сможет в лучшем случае работать' на скорости 33,6 Кбит/с (по стандарту V.34, стр. 78).

Кроме телефонных линий, для компьютерной связи ис пользуются любительские диапазоны радио с помощью так назы ваемых радиомодемов, а также каналы кабельного телевидения

— для них разработаны устройства, которые называются ка* бельными модемами. Перспективы у этого последнего новшества самые впечатляющие — кабельным телевещанием в США охвачены 92% домов, а пропускная способность телевизионного коаксиального кабеля во много десятков раз превышает пропу скную способность даже ISDN подключения, не говоря уже об аналоговой телефонной линии.

Данные

Теперь давайте разберемся, из чего состоят цифровые сигналы и как с их помощью можно передавать информацию. Здесь вы так же узнаете о стандарте ASCII, о том, чем текстовые ASCII файлы отличаются от бинарных и какие проблемы возникают из за этого при пересылке последних по телекоммуникационным каналам.

Биты и байты

Тех, кто привык измерять информацию в байтах (килобайтах, ме габайтах), возможно, удивит, что основной единицей для из мерения информации является бит. Узнав же, что бит — всего лишь одна восьмая часть байта, можно и вообще встать в тупик

— какой смысл в эдакой крошечной единице?

Что ж, действительно, измерять объем винчестеров (особенно последних моделей) в битах довольно неудобно. Но зато бит замечателен тем, что он представляет собой минимальное количество информации, которое возможно передать или принять за один прием.

Представим себе паралитика, который все слышит и пони мает, но сам может в ответ лишь мигать (или не мигать) одним

глазом. Этот несчастный — довольно точная модель элемента любого электронного устройства, и самое удивительное заклю чается в том, что он одним своим веком может сообщить вовне любую информацию (конечно, за соответствующее время).

Разберемся, как же это происходит. Допустим, мы знаем, что наш подопытный строит свои сообщения из букв алфавита. Поэтому мы сразу задаем ему вопрос: «Первая буква — а?». Он не мигает, что означает «нет». Следующий вопрос: «Первая буква — б?» Снова «нет». «В?» — «Нет». И так далее — до тех пор, пока он наконец не мигнет, что будет означать «да».

Итак, первая буква нам известна. Передохнем и заодно до говоримся о терминах: битом как раз и называется то количество информации, которое было нам сообщено одним актом подмиги вания либо неподмигивания — т. е. ответом на вопрос, на который может быть только два ответа, «да» или «нет». (Отсюда, кстати, и название: bit означает «binary digit», «двоичная цифра».)

Первую букву, таким образом, мы узнали, сделав определен ное число попыток, т. е. приняв определенное число бит. В нашем примере, как понятно, это число было равно номеру буквы в алфавите. Но есть и более быстрый, хотя и не такой простой способ. Зададим вопрос: «Номер этой буквы в алфавите больше 16?» Допустим, «да». Тогда «...больше 24?» — «Нет». Значит, буква расположена между «П» (16 я буква алфавита) и «Ч» (24 я). Продолжая тем же манером (в математике это называется «методом половинного деления»), можно распознать букву гораздо быстрее. Те, у кого в школе было все в порядке с математикой, без труда сообразят, что для передачи этим способом любой буквы алфавита потребуется ровно loga 32 = 5 бит (в русском алфавите, не считая ё, ровно 32 буквы).

Именно так информация передается внутри компьютера, а также — что особенно важно для нас — и между компьютерами. Разница лишь в том, что там никто ничего не спрашивает (это и не нужно, так как вопросы всегда одни и те же), а все только отвечают друг другу: «да нет да да нет нет да...» или, в более привычном для программистов виде, «1011001...»

Цифровые сигналы — потоки ноликов и единиц — по сылаются, принимаются, хранятся и обрабатываются разнообразными «паралитиками»: процессором, памятью, дисковыми накопителями и прочими устройствами, образуя грандиозную картину работающего компьютера. Правда, многие из этих действующих лиц для скорости моргают сразу несколькими глазами (например, 8 ю или 16 ю), но об этом мы поговорим чуть ниже (стр. 57).

Конечно, удобнее не заглатывать длинные ленты битов целиком (так можно и подавиться), а разбить их на куски подходя

щего размера. А так как основным видом информации для всех нас являются тексты, было решено разрезать потоки битов на кусочки, как раз достаточные для передачи одного символа. Правда, пяти бит (как в нашем примере) для этого мало — помимо букв, есть ведь еще и пробелы, и цифры, и знаки препинания, да и о других алфавитах не мешает подумать, — и потому размер кусочка был выбран равным 8 бит, что и составляет один байт (англ. byte — «кусочек»). Байт позволяет закодировать любой из 28 = 256 символов. Какие это именно символы и как они кодируются

— к этому мы сейчас и перейдем.

ASCII

Выгоды стандартизации общеизвестны. И ничего удивительного, что такая фундаментальная для компьютеров вещь, как кодировка символов (иными словами, соответствие между символами и восьмибитовыми последовательностями — байтами), была приведена к общему знаменателю довольно давно. Стандарт этот называется ASCII (American Standard Code for Information Interchange, «Американский стандартный код обмена информацией»).

К сожалению, исходный стандарт ASCII жестко задает лишь одну половину таблицы кодировки — первые 128 байт (рис. 2), у которых старший (крайний слева) бит равен нулю. Вторая поло вина таблицы была оставлена на откуп разработчикам компьютеров и операционных систем, которые не замедлили вос пользоваться этим и создали множество расширений стандартной таблицы ASCII. Байтами в диапазоне 128—255 в этих расширенных таблицах кодировались, как правило, всевозможные символы не первой необходимости — буквы с диакритическими знаками из разных европейских языков, палочки и крестики псевдографики, обозначения валют, символы типа \ или J и т. п.

Рис. 3

Вторая половина таблицы ASCII с буквами национальных алфавитов европейских языков

К сожалению, одной расширенной таблицы ASCII, которая стала бы стандартом для всех, так и не появилось. Во первых, из соображений конкуренции каждый хоть сколько нибудь извест ный производитель компьютеров или программ старался быть «не как все» (необходимость унификации и совместимости друг с другом компьютерная индустрия осознала сравнительно недавно). Вторая же причина — вполне объективная: предусмотреть во второй половине таблицы запас символов на все случаи жизни просто невозможно. Тем более — если речь идет о локализованных версиях программ, которые должны поддерживать не только латиницу, но и алфавит какого то другого языка. Многие европейские языки обходятся одной, общей для них расширенной таблицей (рис. 3), содержащей все возможные буквы с диакритическими знаками и лигатуры из французского, немецкого и остальных языков с алфавитом на основе латиницы

Кодировки кириллицы

Для русского же языка с его кириллическим алфавитом пришлось изобретать свое особое расширение ASCII. А самое неприятное то, что по историческим причинам распространение получили сразу несколько стандартов кодирования русского языка, различающихся тем, где именно в диапазоне байтов 128 255 располагаются русские буквы. Расцвет глобальных сетей, связы вающих компьютеры друг с другом, придает этой проблеме осо бую остроту — чтобы обмениваться с кем нибудь текстами на русском языке, вы должны быть уверены в том, что посылаете

текст в кодировке получателя (или, по крайней мере, в той ко дировке, которую он сможет преобразовать в свою).

Давайте познакомимся с самыми распространенными из кодировок кириллицы. Хронологически одним из первых стандартов кодирования русских букв на компьютерах был КОИ8 («Код обмена информацией, 8 битный», — рис. 4). Эта кодировка применялась еще в доисторические советские времена на компьютерах ЕС ЭВМ, и когда в середине 80 х появились первые русифицированные версии операционной системы UNIX, они переняли эту кодировку у своих «старших братьев». Сеть Релком, с которой начинался российский Интернет в начале 90 х и которая поначалу состояла в основном из компьютеров с UNIX, также приняла кодировку КОИ8 в качестве стандартной. В результате сейчас КОИ8 является единственно допустимой кодировкой в русскоязычной электронной почте и телеконференциях. Если только вы не работаете с UNIX, кодировка КОИ8 для вашего компьютера не является «родной», и вам следует обратить особое внимание на правильную настройку своей почтовой программы (подробнее об этом мы поговорим в гл. 7).

Рис. 4

Кодировка КОИ8. Обратите внимание на то. что буквы идут не по алфавиту

Вторая по значению в русском Интернете (и, безусловно, первая по употребимости на персональных компьютерах) кодировка — это стандартная кириллическая кодировка Microsoft Windows, обозначаемая сокращением СР1251 («СР» означает «Code Page», «кодовая страница», — рис. 5). Все Windows прило жения, работающие с русским языком, обязаны понимать эту

кодировку без перевода. В русскоязычном WWW исторически утвердилось «двоевластие» кодировок — любой WWW сервер должен предлагать посетителям версии своих страниц как в кодировке КОИ8, так и в СР1251 (а в идеале — ив остальных кодировках, о которых ниже). Однако в почте и телеконференциях нельзя пользоваться никакой другой кодировкой, кроме КОИ8.

Рис. 5

Кодировка СР1251

Реликтом эпохи повсеместного господства MS DOS остается так называемая «альтернативная» кодировка, в терминологии фирмы Microsoft — кодировка СР866. Кодировка эта сохраняет определенное значение благодаря тому, что она принята в качестве стандартной в операционной системе OS/2 и в не коммерческой сети Фидо (стр. 193). Из прочих, реже встреча ющихся кодировок русского языка следует упомянуть кодировку компьютеров Макинтош, кодировку ISO 8859 5, применяющуюся на некоторых рабочих станциях, и международный стандарт Unicode, предлагающий единое двухбайтовое кодовое пространство для всех существующих алфавитов мира, включая и кириллицу. Сводка кодов русских букв во всех кодировках кириллицы представлена в приложении 1.

Стоит упомянуть и о еще одной возможности. Если для вас очень важно, чтобы вашу русскоязычную информацию мог прочесть даже тот, у кого на компьютере вообще нет русских букв, стоит воспользоваться еще одной «кодировкой», попросту записав русский текст латиницей — primerno tak. И хотя единых

правил такой транслитерации не существует, в Сети можно найти даже специальные утилиты, которые проделают за вас эту работу. Адреса web страниц со ссылками на всевозможные программы перекодировщики и с другой полезной информацией на эту тему приведены в приложении 5.

ASCII:файлы и бинарные файлы

Стандарт ASCII, будь то сложившаяся еще много лет назад первая половина таблицы или же какая то из расширенных кодировок, устанавливает соответствие между значением байта и неким сим волом, имеющим свое графическое представление и определенные традиции употребления в текстах. Однако из тех же самых байтов состоят и файлы другого рода — содержащие не тексты, а, скажем, программы на машинном языке или графические изображения. Понятно, что интерпретировать содержимое таких файлов в соответствии с таблицей ASCII нет никакого смысла — взглянув на такой файл в текстовом редакторе, вы увидите лишь хаотический набор самых неожиданных символов.

Удобно разделить все символы таблицы ASCII на две группы, которые получили название печатаемые (printable) и непечатае* мые, или специальные символы (non printable; не путать с непе чатными!). Названия объясняются тем, что печатаемые символы (рис. 6) с гарантией отображаются на любом печатающем устрой стве, тогда как специальные могут иметь и другой эффект — например, на многих принтерах символ с кодом 9 приводит к сдвигу печатающей головки на ближайшую позицию табуляции.

A Z a z

0 9

•:''"?! ()<>[] f i

/\l=+ _e«$»"& '"

Рис.6 Печатаемые символы ASCII

Традиционно считается, что для кодировки текста достаточно печатаемых символов плюс три специальных символа: возврат каретки (код 13), перевод строки (код 10) (об их употреблении см. врезку на стр. 57) и символ табуляции (код9). Файлы, в которых нет ничего, кроме этих символов, и называются простыми ASCII файлами (plain ASCII files) или текстовыми файлами (text files).

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

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

Чтобы отправить в письме графическое изображение или ис полняемый файл, его нужно обработать специальной программой (или специальной функцией вашей почтовой программы), которая зашифрует содержимое файла набором печатаемых символов ASCII. Получатель письма должен будет проделать обратное преобразование, чтобы получить исходный бинарный файл. Подробнее о способах такой шифровки и о связанных с этим проблемах мы будем говорить в гл. 7.

Где вэять простой ASCII:файл

Вообще говоря, простые ASCII файлы нынче — большая редкость. Я могу назвать лишь два файла, которые у вас точно есть и которые являются ASCII файлами — CONFIG.SYS и AUTOEXEC.BAT. Прочие же ваши текстовые файлы наверняка записаны в некотором формате (например, в формате Microsoft Word), и, кроме самого текста, там есть какие то специальные символы.

С другой стороны, для электронного письма ASOII текста более чем достаточно, так что не стоит осложнять себе жизнь. Мой совет:

письма лучше всего писать либо во встроенном редакторе почтовой системы, либо в редакторе, про который вы точно знаете, что он не «намусорит» (MultiEdit, QEdit, Norton Editor). Кроме того, во многих редакторах есть команда Save as plain ASCII text (Сохранить как простой ASCII текст) или что то подобное, — можно пользоваться ею.

К сожалению, некоторые узлы Интернета за пределами на шей страны считают специальными все символы второй поло вины таблицы ASCII, в том числе — и все буквы кириллического алфавита. Самые безжалостные из таких узлов просто «обрубают» (т. е. обнуляют) старший бит каждого байта, тем самым превращая проходящие через них письма на русском языке в бессмысленный набор латинских букв (к счастью, сейчас таких узлов осталось уже немного). Другие узлы «на всякий случай» шифруют проходящую почту каким то из упомянутых выше методов, сводя ее к набору печатаемых символов. Пожалуй, лучший способ застраховаться от всех неожиданностей — шифровать свои письма самостоятельно перед отправкой, предварительно убедившись, что ваш адресат умеет расшифровывать их обратно. (При обмене почтой внутри России об этом можно не думать — здесь вы должны лишь следить за правильной настройкой кодировки КОИ8.)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]