Александр Ватаманюк - Домашние и офисные сети под Vista и XP
Сеансовый уровень служит для контроля передачи пакетов между компьютерами. Синхронизируя принятые и отправленные пакеты, протоколы сеансового уровня отслеживают недостающие пакеты и передают их заново. За счет того что передаются только недостающие пакеты, достигается повышение скорости передачи данных.
Уровень представления данныхЧтобы урегулировать процессы отправки и получения информации между двумя компьютерами, существует уровень представления, отвечающий за приведение информации к единому синтаксическому стандарту. Именно здесь можно эффективно использовать разнообразные методы шифрования информации, чем и занимаются многие протоколы.
Прикладной уровеньПрикладной уровень отвечает за связь с прикладными программами. Это обычный набор протоколов, с помощью которых можно наладить доступ к любым ресурсам сети.
Таким образом, пройдя все семь уровней, сообщение пользователя пополняется служебной информацией (заголовками) каждого из них. Аналогично, попав к требуемому получателю и опять пройдя все семь уровней, информация очищается от всей служебной информации.
Что такое протокол и зачем он нужен
В предыдущем разделе была очень кратко рассмотрена модель ISO/OSI, которая описывает работу любого сетевого оборудования и сети в целом. Однако это всего лишь модель, рисунок на бумаге. Чтобы все это начало работать, необходим реализующий ее механизм, которым является протокол передачи данных, точнее, множество протоколов.
Таким образом, протокол – набор правил, используя которые можно передать данные между компьютерами. Все эти правила работают в рамках модели ISO/OSI и не могут отступать от нее ни на шаг, так как это может повлечь за собой несовместимость оборудования и программного обеспечения.
Поскольку каждый из уровней модели ISO/OSI обладает своими особенностями, реализация всех этих особенностей невозможна в рамках одного протокола. Мало того, она даже невыгодна, так как значительную часть логики можно создавать на уровне аппаратного обеспечения, что приводит к ускорению обработки данных. Исходя из этих соображений было разработано множество узконаправленных протоколов, каждый из которых выполняет свою задачу и делает это с максимальной отдачей и быстродействием.
Все протоколы можно разделить на низкоуровневые и высокоуровневые.
Низкоуровневые реализованы давно, и никаких кардинальных изменений в них не вносится, что за длительное время их использования позволило найти и устранить все возможные дыры и ошибки.
Примечание
Низкоуровневые протоколы реализуются на аппаратном уровне, что позволяет добиться максимального быстродействия и безошибочности.
Высокоуровневые протоколы разрабатывают и совершенствуют постоянно. В этом нет ничего плохого, даже наоборот: всегда существует возможность придумать новый, более эффективный способ передачи данных.
Примечание
Как правило, высокоуровневые протоколы реализуются в виде драйверов к сетевому оборудованию под разные операционные системы.
Существует множество разных протоколов, каждый из которых имеет свои особенности. Одни из них узконаправленные, другие имеют более широкое применение. Протоколы разрабатывают несколько фирм, поэтому неудивительно, что каждая из них создает свой собственный стек (набор) протоколов. Хотя эти стеки по умолчанию между собой несовместимы, существуют дополнительные протоколы, являющиеся мостами между ними, что позволяет использовать в одной операционной системе несколько несовместимых между собой протоколов.
Стоит также упомянуть, что не все протоколы могут применяться в одинаковых условиях. Случается, применение одного из них выгодно для небольшой группы компьютеров и крайне невыгодно для большого количества машин с несколькими маршрутизаторами и подключением к Интернету.
Наибольшую популярность приобрели такие стеки протоколов, как NetBIOS/NetBEUI, IPX/SPX, TCP/IP, DECnet и др.
Протокол NetBIOS/NetBEUI
NetBIOS (Network Basic Input/Output System) – один из первых сетевых протоколов, разработанный в 1984 году для создания интерфейса передачи сообщений по локальной сети: как одноранговой, так и на основе сервера.
Чтобы передавать сообщения по сети NetBIOS, используются логические имена компьютеров. Когда такая машина заходит в сеть, она не только сообщает об этом всем остальным, но и заносит их имена в свою динамическую таблицу.
В силу своей простоты NetBIOS – один из самых быстрых протоколов, и это его сильная сторона.
На самом деле NetBIOS не является полноценным протоколом, так как описывает только программную часть передачи данных – набор сетевых API-функций. Это означает, что, используя его, можно только подготовить данные для передачи. Физическая же передача может осуществляться только с помощью любого транспортного протокола, например TCP.
Положительный момент этой ситуации – непривязанность к транспортному протоколу, что позволяет использовать любой подходящий для этих целей протокол. Кроме того, неоспоримым плюсом является его быстродействие.
Минус в том, что для полноценной работы NetBIOS требуется, чтобы на всех машинах сети стоял одинаковый транспортный протокол, иначе компьютеры не смогут синхронизироваться. Однако главный недостаток протокола – отсутствие поддержки маршрутизации, без чего не обходится любая мало-мальски развернутая сеть.
NetBEUINetBEUI (NetBIOS Extended User Interface) – транспортный протокол, «собрат» протокола NetBIOS. Однако он обладает большей скоростью доставки сообщений, надежностью и устойчивостью к ошибкам, что достигается путем подтверждающих пакетов, каждый раз присылаемых в ответ на полученное сообщение. При этом прежде всего в самом начале устанавливается логическая связь между компьютером-отправителем и компьютером-получателем, что уже гарантирует доставку пакетов.
Еще один момент надежности передачи данных – механизм, отслеживающий время «жизни» пакета (TTL). Если по его истечении компьютер-получатель не пришлет подтверждения о доставке очередного пакета данных, то компьютер-отправитель отсылает порцию данных повторно. Повторная отправка сведений аналогична предыдущей, и если пакет оказался поврежденным и компьютер-получатель его отклоняет, то он сообщает об этом компьютеру-отправителю.
Как и NetBIOS, NetBEUI не поддерживает маршрутизацию в сети, что не позволяет эффективно использовать его скорость и применять в глобальных сетях. Тем не менее этот протокол – один из основных компонентов NT-систем, и устанавливается он автоматически.
Протокол IPX/SPX
Протоколы IPX и SPX – представители стека протоколов, разработанных компанией Novell, которая в свое время являлась прямым конкурентом компании Microsoft. Конкуренция велась в области сетевых операционных систем: с одной стороны стояла операционная система Novell Netware, с другой – Windows NT. Соответственно каждая из этих систем использовала свой набор протоколов.
К сожалению, со временем Novell сдала свои позиции, и первенство завоевали сетевые версии операционных систем Windows NT. Тем не менее разработанные Novell протоколы используют до сих пор и будут использоваться еще очень долго.
Протоколы IPX и SPX являются продолжением протокола XNS компании Xerox, который не получил широкого распространения.
IPX/SPX представляет собой набор подпротоколов, каждый из которых может выполнять возложенную на него задачу на высоком уровне (рис. 5.2). Тем не менее два нижних уровня (физический и сетевой) реализуют стандартные протоколы Ethernet.
Рис. 5.2. Распределение протоколов стека IPX/SPX по уровням модели ISO/OSI (в сравнении)
Рассмотрим некоторые протоколы, входящие в состав протокола IPX/SPX.
• IPX (Internetwork Packet Exchange) – отвечает за работу сетевого уровня. Его основные функции – вычисление адресов компьютеров сети и организация маршрутизации между двумя выбранными компьютерами. Анализируя данные других протоколов, IPX составляет наиболее эффективный путь маршрутизации, после чего пакет данных (датаграмма[12]) с добавленной информацией об адресе получателя и отправителя отсылается по выбранному маршруту. К сожалению, этот протокол самостоятельно работать не может, так как не устанавливает соединение между компьютерами, а без этого нельзя ожидать от него надежности доставки пакетов.
• SPX (Sequenced Packet Exchange) – протокол транспортного уровня, отвечающий за установку соединения между выбранными компьютерами и передающий сообщения – датаграммы.
• SAP (Service Advertising Protocol) – отвечает за работу сразу трех уровней: прикладного, представления данных и сеансового. Однако одна из основных его функций – рассылка сообщений о доступных сервисах, благодаря чему все сетевые устройства знают об имеющихся сетевых сервисах. SAP – очень мощное средство организации службы поддержки, однако это и его основной недостаток. Поскольку любое сетевое устройство сети постоянно посылает о себе информацию, это приводит к повышению трафика сети и соответственно – снижению ее эффективности. Для уменьшения засорения сети используют возможности маршрутизаторов, позволяющих фильтровать SAP-сообщения.