I.1 Основы
С самых первых дней использования компьютеров хосты обменивались информацией с непосредственно подключенными к ним устройствами, такими, как устройство чтения перфокарт или устройство печати. Интерактивное использование компьютеров потребовало сначала локального, а затем удаленного подключения терминалов конечных пользователей. Далее последовало объединение нескольких компьютеров в рамках одной организации, что было вызвано необходимостью обеспечения обмена данными между компьютерами или потребностью пользователя одного из компьютеров получить доступ к другому компьютеру.
Разработчики компьютерных систем откликнулись на эти потребности созданием соответствующего аппаратного и программного обеспечения. Однако средства того времени обладали следующими недостатками:
■ Программные средства были лицензионными (мы будем использовать для proprietary перевод "лицензионные", в смысле коммерческие и не доступные для бесплатного использования. — Прим. пер.) и работали только с оборудованием того же производителя.
■ Поддерживался только ограниченный набор локальных и региональных сетей.
■ Часто программные средства были очень сложными и требовали различных диалектов для работы с разными устройствами.
■ Отсутствие гибкости не позволяло объединить уже существующие сети недорогими и простыми в работе средствами.
Эта ситуация изменилась с появлением протокола управления передачей/протокола Интернета (Transmission Control Protocol/Internet Protocol — TCP/IP) и порождаемыми им технологиями маршрутизации.
Сегодня компьютерные сети организаций стали взаимосвязанными системами. В организациях локальными сетями (Local Area Network — LAN) объединяются настольные рабочие станции (workstation), серверы (server) и хосты (host). Локальные сети (ЛС) соединяются с другими ЛС и региональными сетями (Wide Area Network — WAN).
Обычным для сегодняшнего дня требованием стала возможность взаимодействия между системами независимо от их территориального размещения в сети.
I.2 Приложения TCP/IP
С самого начала в TCP/IP было заложено несколько важных свойств для служб работы с приложениями:
■ Терминальный доступ к любому хосту
■ Возможность копирования файлов с одного хоста на другой
■ Обмен сообщениями электронной почты между любыми двумя пользователями
С течением времени в наборе протоколов TCP/IP появились и другие возможности, очень важные для приложений:
■ Печать на удаленном принтере (Remote Printing)
■ Работа с сетевой файловой системой (Network File System — NFS)
■ Сетевые новости (Network News)
■ Gopher
■ Word Wide Web (WWW — Иногда эту службу Интернета в русскоязычной литературе называют "Всемирной паутиной", однако мы будем придерживаться более распространенного среди специалистов названия WWW. — Прим. пер.)
Кроме того, расширился набор утилит администрирования и обслуживания сети. Среди новых средств можно назвать:
■ Службу каталогов для отображения содержательных сетевых имен хостов на их физические сетевые адреса
■ Протокол динамического конфигурирования хоста (Dynamic Host Configuration Protocol — DHCP)
■ Сетевое управление хостами, маршрутизаторами (router) и другими сетевыми устройствами
Семейство TCP/IP продолжает жить, расширяться и использоваться. Количество применяющих эти протоколы пользователей увеличивается экспоненциально, разрабатываются новые службы и продукты для модульной интеграции в TCP/IP.
Приложения для WWW привели к революционным переменам в вычислениях клиент/сервер и полностью преобразили методы выполнения прикладных расчетов.
Благодаря программным продуктам для TCP/IP множество организаций смогли подключиться к Интернету, что добавило новые силы этому семейству протоколов, первоначально разработанных для применения в военных и правительственных учреждениях. Именно с последними раньше были связаны основные проблемы сетевой адресации, которые решались путем разработки эффективного механизма адресации и маршрутизации, а также создания надежной защиты сетей от внешнего вторжения.
I.3 Терминология
Обмен данными, как это принято в технических дисциплинах, имеет собственный язык. Все специалисты в этой области используют одни и те же термины. Единственная проблема заключается в том, что разные группы людей одной специальности применяют одни и те же слова для различных понятий, равно как и разные слова для выражения одного и того же понятия.
Мы попытаемся ограничиться очень простым набором терминов, который и будем использовать во всей книге. В этом разделе даны используемые нами определения основных понятий.
I.3.1 Протоколы, элементы, стеки и наборы
Протоколом (protocol) называется набор правил для одной из коммуникационных функций. Например, протокол IP представляет собой набор правил для маршрутизации данных, a TCP определяет правила для надежной и последовательной доставки данных.
Элемент данных протокола (protocol data unit — PDU), или пакет (packet) — это форматированный элемент данных, который передается по сети. Пересылаемая в таком пакете информация часто называется полезной нагрузкой (payload).
Стек протоколов (protocol stack) представляет собой набор организованных по уровням протоколов, которые, работая совместно, позволяют приложениям обмениваться данными. Например, стеком является набор протоколов TCP, IP и Ethernet.
Набор протоколов (protocol suite) — это семейство протоколов, работающих совместно и связанных между собой. Набор протоколов TCP/IP обеспечивает множество различных возможностей, начиная от динамического определения адреса сетевого адаптера и заканчивая службой каталогов, определяющей способ доставки сообщения электронной почты.
I.3.2 Хосты
Хостом называется компьютер, который выполняет приложения и имеет одного или нескольких пользователей. Поддерживающий TCP/IP хост работает как конечная точка сетевой коммуникации. Отметим, что персональные компьютеры (ПК), рабочие станции, мини-компьютеры или большие ЭВМ подпадают под определения хоста и каждый из этих компьютеров может реализовать стек TCP/IP.
В книге будут также использоваться термины: "станция" (station), "компьютер" (computer) и "компьютерная система" (computer system) как синонимы термина "хост".
I.3.3. Маршрутизаторы
Маршрутизатор (router) управляет пересылкой данных по сети. Первоначально в стандартах TCP/IP использовался термин шлюз (gateway), однако в области производства большее распространение получил термин "маршрутизатор". В области коммуникаций термин "шлюз" определяет систему, выполняющую некоторое преобразование протокола.
В книге будет применяться термин "маршрутизатор", однако при обращении к документации по стандартам TCP/IP нужно помнить, что в них используется термин "шлюз".
I.3.4 Интернет
Термин "интернет" (со строчной буквы) обозначает сетевую среду (локальную или региональную), объединенную с помощью маршрутизаторов. Интернет (с прописной буквы) определяет сообщество из сетей интернета, объединяющее тысячи компьютеров.
I.3.5 Сетевой узел, система и элемент сети
Термины "сетевой узел" (network node), "система" (system) и "элемент сети" (network element) служат для обозначения такого коммуникационного объекта сети, для которого не указаны специализированные свойства (т.е. не задано, что это хост, маршрутизатор или иное устройство, например мост). Пример: "Целью обслуживания сети является управление и мониторинг всех ее узлов".
I.3.6 ЛС, региональные сети и связи
Локальные сети (ЛС) предназначены для обслуживания относительно малых географических областей, в основном не превышающих нескольких квадратных километров. Региональные сети охватывают большие географические области и обычно организованы на основе последовательных телефонных линий и устройств для совместного использования коммутации пакетов.
Более общий термин "связь" (link) определяет любую среду передачи данных для локальных или региональных сетей, через которую могут взаимодействовать любые узлы (с помощью протоколов уровня связи данных).
I.3.7 Люди
Термин "хакер" (hacker) часто используется в положительном смысле — человек, имеющий высокий уровень компьютерных знаний. С другой стороны, хакером называют и человека, пытающегося взломать личные компьютерные сети. В книге мы будем использовать второе значение слова "хакер".
I.3.8 Байты и октеты
Наиболее часто под байтом (byte) понимается группа из восьми бит. Однако слово "байт" означает и наименьшую адресуемую часть памяти компьютера. Время от времени некоторые производители компьютеров создают машины с иным размером байтов информации.
Общепринятым для технической документации является термин октет (octet), который всегда определяет ровно 8 бит данных. В книге мы будем использовать слова "байт" и "октет" как синонимы, а для обозначения байтов, не равных 8 бит, применять термин "логический байт" (logical byte).
I.3.9 Стиль "тупоконечников" и "остроконечников"
Некоторые компьютеры хранят данные начиная от наиболее значимого бита. Такой стиль называется стилем "тупоконечников" (Big Endian). Однако другие компьютеры первым размещают менее значимый бит — стиль "остроконечников" (Little Endian; — Оба выражения заимствованы из романа Дж. Свифта "Путешествие Гулливера". — Прим. пер.)
Аналогичные названия имеют и стили для стандартов коммуникационного обмена данными, которые зависят от очередности передачи битов.
Стандарты для протоколов Интернета предполагают стиль "тупоконечников". Однако некоторые организации, например Институт инженеров по электротехнике и электронике (IEEE), предлагают при передаче начинать пересылку с битов или байтов наименьшей значимости (для обычных арабских чисел наименьшую значимость имеет крайняя правая цифра, а наибольшую — крайняя левая. — Прим. пер.).
I.4 Реализации с использованием оборудования различных производителей
В отличие от использовавшихся ранее лицензионных сетевых протоколов TCP/IP реализованы на компьютерах различных производителей и могут использовать программное обеспечение независимых компаний.
Реализация базировалась на принятых стандартах и бесплатном программном обеспечении, разработанном добровольцами. Строгие ограничения содержатся в дополнительных документах Host Requirements (требования к хостам) и Router Requirements (требования к маршрутизаторам).
Достигается определенный уровень взаимодействия систем, и конечные пользователи убеждаются, что нужные приложения прекрасно работают друг с другом.
Однако, если заглянуть за кулисы происходящих событий, можно обнаружить, что иногда разработчики ограничивают некоторые возможности с целью достичь большей производительности или улучшить процедуру исправления ошибок. Часто разработчики программного обеспечения просто не до конца понимают некоторые детали стандартов и в результате не реализуют в своих продуктах имеющиеся возможности.
Следовательно, любой из описанных в этой книге механизмов необязательно будет реально реализован в любом из программных продуктов. При покупке программного обеспечения TCP/IP для хоста нужно всегда проверять его на соответствие документу Host Requirements. Разработчик должен ответить на все вопросы о реализации в своем продукте любой из определенных в этом документе возможностей (эти возможности определяются как "должен и обязан" — must and should).
Разработчикам программного обеспечения можно рекомендовать внимательно изучить по этой книге все, что должны поддерживать протоколы, равно как и то, каким образом это должно быть реализовано. Однако одной этой книги будет недостаточно. Дело в том, что стандарты TCP бесплатно доступны в интерактивном виде (см. приложение В). Эти документы постоянно находятся в состоянии доработки — в них включаются новые возможности и более совершенные механизмы реализации и исключаются устаревшие разделы.
I.5 Диалоги
В книге приведено много примеров интерактивных диалогов (листингов работы пользователя). Текстовые диалоги были получены на компьютерах компании Sun Microsystems. Во многих примерах работа проводилась с хостом tigger.jvnc.net, который находится в Принстоне (Нью-Джерси). Это большой сервер, обслуживаемый провайдером Global Enterprise Systems (GES), который ранее назывался JVNC (именно поэтому имя сервера заканчивается на jvnc.net). Статистические данные о работе этого сервера заслуживают внимания, поскольку он взаимодействует через Интернет со многими хостами по всему миру. Несколько примеров были получены на компьютерах Йельского университета.
TCP/IP реализованы с помощью похожих пользовательских интерфейсов и наборов команд на различных типах компьютеров. Поэтому приведенные примеры диалогов будут очень похожи или полностью идентичны для совершенно разных систем. В текстовых диалогах вводимые пользователем фрагменты выделены полужирным шрифтом, а приглашения и ответы компьютера набраны обычным шрифтом.
Несколько примеров представляют работу с графическим пользовательским интерфейсом (Graphical User Interface — GUI) для приложений TCP/IP, выполняющихся на компьютерах Windows и Macintosh. Некоторые из этих примеров показывают работу приложения Chameleon компании Netmanage и браузера Netscape Navigator компании Netscape, Inc. Отдельные экраны получены в HP Open View for Windows Workgroup Node Manager компании Hewlett-Packard и NSLookup for Windows компании Ashmount Research Ltd. Работа электронной почты демонстрируется на примере Eudora компании Qualicomm для компьютеров Macintosh.
I.6 Дополнительная литература
Как и в любой другой работе по цифровым коммуникациям, в данной книге множество аббревиатур. Все они представлены в приложении А. Глоссарий содержит определение всех встречающихся в книге терминов.
В приложении В приведен список документов, которые определяют TCP/IP и связанные с этими протоколами возможности. Приложение С посвящено службам сетевых информационных центров (Network Information Center — NIC). Там же рассмотрены способы обращения в эти центры. Приложение D содержит примеры более эффективного использования IP-адресов (маски подсети переменной длины).