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

Для описания структуры и функциональности протоколов обмена данными часто используется архитектурная модель, разработанная Международной организацией по стандартизации (International Standards Organization, ISO). Данная модель как раз является общей точкой отсчета для разговора о коммуникация х и называетс я опорной моделью взаимодействия открытых систем (Open Systems Interconnect (OSI) Reference Model). Термины, определенные в рамках модели, нашли глубокое понимание и имеют широкое хождение в сетевом сообществе - настолько широкое, что обмен данными сложно обсуждать, не применяя терминологию OSI.

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

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

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

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


Несмотря на эффективность модели OSI протоколы TCP/IP не до конца следуют установленной структуре модели. Поэтому в разговоре о TCP/IP мы будем интерпретировать уровни модели OSI следующим образом:

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

Уровень представления (Presentation Layer)
Чтобы взаимодействующие приложения смогли обмениваться данными, необходимо соглашение о представлении данных. В OSI стандартная функциональность представления данных обозначена уровнем представления. Функция представления часто реализуется в приложениях TCP/IP, а также такими протоколами TCP/IP, как XDR и MIME.

Сеансовый уровень (Session Layer)
Аналогично уровню представления, сеансовый уровень не является само- стоятельным в иерархии протоколов TCP/IP. Сеансовый уровень OSI от- вечает за управление сеансами (соединениями) взаимодействия приложе- ний. В TCP/IP эта функциональность заложена преимущественно на транспортном уровне, а термин «сеанс» не имеет хождения; для описа- ния вектора взаимодействия приложений применяются термины «сокет» (socket, гнездо) и «порт».

Транспортный уровень ( Transport Layer)
Большая часть информации в рассказе о TCP/IP связана с протоколами транспортного уровня. В опорной модели OSI транспортный уровень гарантирует получение адресатом данных в неизмененном виде. В TCP/IP такая функциональность возложена на протокол управления передачей (Transmission Control Protocol, TCP). При этом в TCP/IP существует вторая служба транспортного уровня - протокол пользовательских дейтаграмм (User Datagram Protocol, UDP) , который не гарантируе т надежно й доставки данных.

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

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

Физический уровень (Physical Layer)
Физический уровень определяет характеристики аппаратного обеспечения, необходимого для осуществления передачи данных, в частности такие свойства, как уровни напряжения, количество и расположение контактов интерфейсов. В качестве примеров стандартов физического уровня можно упомянуть стандарты на интерфейсные разъемы RS232C V.35, а также монтажные стандарты для локальных сетей, такие как IEEE 802.3. TCP/IP не определяет физические стандарты, но пользуется существующими.

Терминология опорной модели OSI способствует более прозрачному описанию TCP/IP, но для полного понимания системы следует воспользоваться архитектурной моделью, точнее отражающей структуру TCP/IP. Модель, которую мы используем для описания TCP/IP, представлена в следующем разделе.