Вступление

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

Чтобы понимать сетевой обмен и круг вопросов, рассматриваемых в книге, важно представлять, что сетевые исследования и разработки прошли через три стадии развития До 1960 года, основным вопросом был "Как передавать биты по среде коммуникации эффективно и надежно?". Результаты включают разработку теории информации, теоремы Котельникова и других идей, которые в совокупности называют обработкой сигналов. От начала и до середины 60-х внимание было сконцентрировано на пакетной коммутации и основным вопросом стал: "Как передавать пакеты по среде коммуникации эффективно и надежно?" . Результатами этого этапа стали разработка технологий пакетной коммутации, локальных вычислительных сетей и статистический анализ времени передачи пакетов по сети в зависимости от загрузки. Приблизительно с середины 70-х и до нынешнего времени самым главным направлением стали сетевые архитектуры и вопрос "Как обеспечить средства взаимодействия взаимосвязанных сетей?". Результатами последнего этапа стала разработка технологий межсетевого обмена, многоуровневых моделей протоколов, дейтаграммных и потоковых транспортных средств и парадигмы взаимодействия клиент-сервер.

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

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

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

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

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

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

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

Эта книга организована в виде четырех основных частей. Главы 1 и 2 образуют введение, которое обеспечивает обзор и рассматривает существующие технологии. В частности, глава 2 рассматривает физическое сетевое оборудование. Идея заключается в том, чтобы дать интуитивное понимание о том, что возможно, не тратя лишнего времени на детальное изучение оборудования. Главы 3-12 описывают Интернет TCP/IP с точки зрения отдельной ЭВМ, показывая доступные базовые средства и протоколы, которые использует ЭВМ для доступа к ним. Они охватывают основы адресации Интернета и маршрутизацию, а также понятие о многоуровневой модели протоколов. Главы 13-17 описывают архитектуру сообщества сетей при рассмотрении его в глобальном смысле. Они описывают систему базовых шлюзов и протоколы, которые шлюзы используют для обмена информацией о маршрутах. Наконец, главы 18-26 рассматривают прикладные средства, доступные в Интернете. Они описывают модель взаимодействия клиент-сервер и дают несколько примеров того, как можно организовать программное обеспечение клиента и сервера. Последняя часть рассматривает электронную почту и доменную(domain) систему имен, два раздела, которые очень популярны.

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

Хотя и трудно опустить любую главу полностью, преподаватель обнаружит, что студенты часто удовлетворяются знанием того, что что-то возможно, не зная того, как это возможно. Например, можно пройти главы 5,6 и 9, рассмотрев только возможности и опустив детали протоколов. Кроме того, несколько глав(особенно 16) содержат инженерные технологии, которые могут быть пропущены ради сохранения времени.

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

Много людей внесло свой вклад в создание этой книги. Я благодарю Scott Ballew, Steve Chapin, Jim Griffioen, Chris Kent, Tim Korb, Dan Lynch, Thomas Narten, Vic Norman, Shawn Ostermann, John Steele, Mike StJohns, Dan Tormey, Ray Yavatkar и Preston Wilson, которые читали рукопись и сделали ряд ценных замечаний. Craig Partridge внес много предложений, включая упражнения и исправил несколько технических ошибок. Он и Van Jacobson предложили граф задержек при передаче данных через Интернет в главе 12. Dave Stevens внес как технические, так и грамматические улучшения во второе издание. Barry Shein позволил мне использовать в качестве примера код для UNIX клиента и сервера в приложении 1. Charlotte Tubis сильно помогла при редактировании книги. Особая благодарность моей жене, Chris, которая читала текст бессчетное число раз и внесла много предложений.