TCP/IP
Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Посвящается моему мужу и другу Вальтеру.
Предисловие
Эта книга служит введением в протоколы TCP/IP и содержит все необходимые сведения как для начинающих, так и для опытных пользователей. Она является практическим руководством по использованию TCP/IP и включает подробное описание применения этих протоколов в реальных сетях: как связать между собой локальные и глобальные сети, как выбрать имена систем, где получить сетевые адреса и как использовать существующие программные продукты для TCP/IP.
Книга поможет изучить работу протоколов TCP/IP разработчикам, системным и сетевым администраторам, программистам, обслуживающему персоналу или конечным пользователям, которые хотят познакомиться с работой своего сетевого окружения.
В книге описана терминология, концепции и механизмы TCP/IP. Рассматриваются стандарты, определяющие работу этих протоколов, а также методы работы с приложениями TCP/IP: каким образом выполняются фоновые процессы и как диагностировать состояние сетевых ресурсов. Для тех, кому это необходимо, приведено детальное (на уровне бит и байт) описание структур сетевых сообщений и информационных потоков при обмене этими сообщениями. Обсуждается работа программного интерфейса socket и приводятся примеры клиентских и серверных программ.
В данном издании существенно расширен объем материала. Целая глава посвящена наиболее распространенным коммуникационным протоколам. Отдельные главы описывают систему именования доменов, Word Wide Web, сетевые новости и приложения Gopher. Приведены сведения о следующем поколении протокола IP (версия 6). Средства безопасности рассматриваются на протяжении всей книги, но есть и отдельная глава по этой теме.
Благодарности
Хочется выразить признательность факультету математики Йельского университета за предоставленную возможность посещения этого учебного заведения во время создания первой редакции книги. Работа на различных компьютерах университетской сети, а также ознакомление с предоставленной технической документацией оказали существенную помощь в написании книги. Руководитель компьютерного центра университета Г. Морроу Лонг познакомил меня с проблемами безопасности и способами их решения, с новым интересным программным обеспечением и важными тенденциями в развитии Интернета. Морроу был бесценным источником фактов о реальных реализациях сетевых систем.
Грэхем Ярброу прочитал рукопись книги от начала и до конца, предоставив ценные суждения о применении компьютеров и сетей на практике. Майкл МакФарланд прокомментировал несколько глав и сделал очень важные замечания.
Редактор этой серии книг, Джей Ренейд, всегда оказывал необходимую помощь в работе над книгой.
Компания Netmanage, Inc. предоставила последнюю версию Chameleon NFS (включающую Personal Web Server) и программное обеспечение сетевого мониторинга NewtWatch. Сценарии сетевого управления выполнялись с помощью HP Open View for Windows Workgroup Node Manager. Компания Network General предоставила монитор Sniffer, подробную документацию, советы и много мегабайт отчетов отслеживания работы протоколов. Компания Ashmount Research Ltd. предоставила программу для Windows под названием NSLookup.
Многие другие производители предложили свои продукты и техническую информацию. Компания FTP Software, Inc. поделилась своими программными продуктами для Windows и технической документацией к ним. Производители, и среди прочих Cisco Systems и Bay Systems, тщательно и подробно отвечали на все возникшие при работе над книгой вопросы о производимых ими продуктах.
Предисловие к русскому изданию
По тематике протоколов TCP/IP существует достаточно обширная литература, в том числе на русском языке (например, издательство "Лори" выпустило книгу Тодда Леммла, Моники Леммл и Джеймса Челлиса "TCP/IP. Учебное руководство для специалистов MCSE"). Однако эти книги в основном имеют инженерную направленность. Две-три первые главы в них посвящены теоретическим вопросам TCP/IP, а далее идет описание конкретных реализаций на уровне устройств и программных продуктов. Прогресс в области компьютерной техники ведет к тому, что приводимые в этих изданиях сведения быстро устаревают.
Предлагаемая русскому читателю книга имеет более теоретическую направленность, подробно и досконально описывая все связанные с TCP/IP спецификации и стандарты. Если в основном устройства или программные продукты устаревают примерно в течение года, то некоторые спецификации TCP/IP используются без изменений уже в течение десятка лет. Именно знакомство с теоретическими основами поможет глубже понять работу и функции различных протоколов, в том числе и реализованных в конкретных устройствах или программах.
Данную книгу можно с полным правом назвать энциклопедией, поскольку она содержит подробное обсуждение не только вопросов, связанных с TCP/IP, но и рассматривает смежную с ними тематику. Приведены сведения о протоколах, используемых в настоящее время, а также данные о протоколах и спецификациях, находящихся на стадии разработки и внедрения. Книга разделена на компактные части с пронумерованными заголовками. Для удобства читателей в конце тома приведены расшифровки всех аббревиатур и глоссарий. Надеемся, что данное издание послужит прекрасным справочником для многих специалистов по компьютерным сетям.
Хотя читателю более известны понятия из теории операционных систем, связанные с MS DOS или Windows, в данной книге в основном рассматриваются примеры из Unix. Мы не стали комментировать специфику стандартных средств этой операционной системы. Заметим только, что системные команды часто именуются программами, поскольку каждая из них реализуется отдельной программой. За более подробными сведениями можно обратиться к различным книгам издательства "Лори" по тематике Unix, в частности к прекрасной книге Кеннета Розена, Ричарда Розински, Джеймса Фарбра и Дугласа Хорста "Unix System V Release 4".
Введение
I.1 Основы
С самых первых дней использования компьютеров хосты обменивались информацией с непосредственно подключенными к ним устройствами, такими, как устройство чтения перфокарт или устройство печати. Интерактивное использование компьютеров потребовало сначала локального, а затем удаленного подключения терминалов конечных пользователей. Далее последовало объединение нескольких компьютеров в рамках одной организации, что было вызвано необходимостью обеспечения обмена данными между компьютерами или потребностью пользователя одного из компьютеров получить доступ к другому компьютеру.
Разработчики компьютерных систем откликнулись на эти потребности созданием соответствующего аппаратного и программного обеспечения. Однако средства того времени обладали следующими недостатками:
■ Программные средства были лицензионными (мы будем использовать для proprietary перевод "лицензионные", в смысле коммерческие и не доступные для бесплатного использования. — Прим. пер.) и работали только с оборудованием того же производителя.
■ Поддерживался только ограниченный набор локальных и региональных сетей.
■ Часто программные средства были очень сложными и требовали различных диалектов для работы с разными устройствами.
■ Отсутствие гибкости не позволяло объединить уже существующие сети недорогими и простыми в работе средствами.
Эта ситуация изменилась с появлением протокола управления передачей/протокола Интернета (Transmission Control Protocol/Internet Protocol — TCP/IP) и порождаемыми им технологиями маршрутизации.