Читать книгу Создание и обслуживание локальных сетей - Александр Ватаманюк - Страница 7
Часть 1
Компьютерная сеть. Общие понятия
Глава 3
Модель сети и сетевые протоколы
3.2. Сетевой протокол
ОглавлениеВ предыдущем разделе была кратко рассмотрена модель ISO/OSI, которая описывает работу любого сетевого оборудования и сети в целом. Однако это всего лишь модель, рисунок на бумаге. Чтобы все это начало работать, необходим механизм, ее реализующий. Таким механизмом является протокол передачи данных, а если точнее, множество протоколов.
Таким образом, протокол – набор правил, использование которых делает возможной передачу данных между компьютерами. Все эти правила работают в рамках модели ISO/OSI и не могут отступать от нее ни на шаг, поскольку это может повлечь за собой несовместимость оборудования и программного обеспечения.
Поскольку каждый из уровней модели ISO/OSI обладает своими особенностями, то реализация всех этих особенностей невозможна в рамках одного протокола. Мало того, она даже невыгодна, поскольку значительную часть логики можно разрабатывать на уровне аппаратного обеспечения, что приводит к максимально быстрой обработке данных. Исходя из этих соображений было разработано множество узконаправленных протоколов, каждый из которых выполняет свою задачу и делает это с максимальной отдачей и быстродействием.
Все протоколы можно разделить на низкоуровневые и высокоуровневые.
Низкоуровневые реализованы давно, и никаких кардинальных изменений в них не вносится, что за длительное время их использования позволило найти и устранить все возможные дыры и ошибки в их работе.
Примечание
Низкоуровневые протоколы реализуются на аппаратном уровне, что позволяет добиться максимального быстродействия и безошибочности.
Что касается высокоуровневых протоколов, то их разрабатывают и совершенствуют постоянно. В этом нет ничего плохого, даже наоборот: всегда существует возможность придумать новый, более эффективный способ передачи данных.
Примечание
Как правило, высокоуровневые протоколы реализуются в виде драйверов к сетевому оборудованию для разных операционных систем.
Существует множество разных протоколов, каждый из которых имеет свои особенности. Одни из них узконаправленные, другие имеют более широкое применение. Разрабатываются несколькими фирмами, поэтому неудивительно, что каждая из них создает свой собственный стек (набор) протоколов. Хотя эти стеки по умолчанию между собой несовместимы, существуют дополнительные протоколы, являющиеся мостами между ними, что позволяет использовать в одной операционной системе несколько несовместимых между собой протоколов.
Следует также упомянуть тот факт, что не все протоколы могут применяться в одинаковых условиях. Бывает, применение одного из них выгодно для небольшой группы компьютеров одноранговой сети и крайне невыгодно для большого количества машин сети на основе сервера с несколькими маршрутизаторами и общим выходом в Интернет.
Наибольшую популярность приобрели такие стеки протоколов, как NetBIOS/ NetBEUI, IPX/SPX, TCP/IP и др. Более подробно познакомиться с их возможностями вы сможете ниже.
Протокол NetBIOS
NetBIOS (Network Basic Input/Output System) – один из первых сетевых протоколов, разработанный в 1984 году с целью создания интерфейса передачи сообщений по локальной сети, как одноранговой, так и на основе сервера.
Для передачи сообщений по сети NetBIOS используются логические имена компьютеров. Когда компьютер заходит в сеть, он не только сообщает об этом всем остальным, но и заносит имена всех подключенных к сети компьютеров в свою динамическую таблицу.
В силу своей простоты NetBIOS является одним из самых быстрых протоколов, и это его сильная сторона.
На самом деле NetBIOS не является полноценным протоколом, поскольку описывает только программную часть передачи данных – набор сетевых API-функций. Это означает, что, используя его, можно только подготовить данные для передачи. Физическая же передача осуществляется только с помощью любого транспортного протокола. В частности, обычно в паре с протоколом NetBIOS используется транспортный протокол NetBEUI.
Плюсом этой технологии является непривязанность к транспортному протоколу, что позволяет использовать любой другой подходящий для этих целей протокол. Кроме того, неоспоримым достоинством является его быстродействие.
Недостаток же заключается в том, что для полноценной работы NetBIOS требуется, чтобы на всех компьютерах сети стоял одинаковый транспортный протокол, иначе машины не смогут синхронизироваться. Еще один минус протокола – отсутствие поддержки маршрутизации, без которой не обходится любая сеть сложной топологии. Именно поэтому протокол NetBIOS, как правило, находит свое применение только в сетях малого размера, обычно в одноранговых.
Протокол NetBEUI
NetBEUI (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 представляет собой набор подпротоколов, каждый из которых может выполнять возложенную на него задачу на высоком уровне (рис. 3.2). Два нижних уровня (физический и сетевой) реализуют стандартные протоколы Ethernet.
Рис. 3.2. Распределение протоколов стека IPX/SPX по уровням модели ISO/OSI
Ниже описаны только некоторые из протоколов, входящих в состав стека протоколов IPX/SPX.
IPX (Internetwork Packet Exchange) – отвечает за работу сетевого уровня. Его основные функции – вычисление адресов компьютеров сети и организация маршрутизации между двумя выбранными машинами. Анализируя данные других протоколов, IPX составляет наиболее эффективный путь маршрутизации. После этого пакет данных (датаграмма[1]) с добавленной информацией об адресе получателя и отправителя идет по выбранному маршруту. К сожалению, этот протокол самостоятельно работать не может, поскольку не устанавливает соединение между компьютерами. Без этого нельзя ожидать от него надежной доставки пакетов.
SPX (Sequenced Packet Exchange) – протокол транспортного уровня. Он отвечает за установку соединения между выбранными компьютерами и передает сообщения – датаграммы.
SAP (Service Advertising Protocol) – отвечает за работу сразу трех уровней: прикладного, представления и сеансового. Однако одна из основных его функций – рассылка сообщений о доступных сервисах. Благодаря этому все сетевые устройства знают об имеющихся сетевых сервисах. SAP – очень мощное средство организации службы поддержки, однако это и является его основным недостатком. Поскольку любое сетевое устройство постоянно посылает о себе информацию, это приводит к повышению трафика сети и соответственно снижению ее эффективности. Для уменьшения засорения сети используют возможности маршрутизаторов, которые позволяют фильтровать «чужие» SAP-сообщения.
NCP (NetWare Core Protocol) – протокол верхнего (прикладного) уровня. Он отвечает за взаимодействие сервера операционной системы Novell NetWare и рабочей станции. С его помощью пользователь видит любую нужную информацию о ресурсах сети, открывает, изменяет и сохраняет файлы, меняет их атрибуты, удаляет, копирует и т. д.
Протокол TCP/IP
TCP/IP – самый распространенный протокол транспортного уровня как в локальных, так и в глобальных сетях. В свое время он был разработан Министерством обороны США, что уже говорит о его надежности.
Протокол TCP/IP имеет открытый интерфейс. Это означает, что вся информация об этом протоколе открыта и любой может использовать ее по своему желанию и назначению.
На самом деле TCP/IP состоит из нескольких протоколов.
Как вы уже заметили, в его названии есть разделитель, то есть он состоит из названий двух протоколов. Первый из них – TCP (Transmission Control Protocol), второй – IP (Internet Protocol). Это говорит о том, что в нем участвует по меньшей мере два протокола (рис. 3.3).
Рис. 3.3. Распределение протоколов стека TCP/IP по уровням модели ISO/OSI
На самом деле в стеке TCP/IP участвует намного больше протоколов. Это связано с тем, что каждый из них предназначен для выполнения определенных задач. Как известно, лучше иметь несколько механизмов, работа которых отлажена до мелочей, нежели один большой, но вызывающий неполадки.
Ниже описаны некоторые протоколы, входящие в стек TCP/IP.
TCP (Transmission Control Protocol) осуществляет обмен данными между двумя компьютерами с предварительно установленной логической связью. Он постоянно используется в Интернете, поскольку надежность соединения и универсальность в этом случае играют очень большую роль. Кроме того, TCP обеспечивает надежность доставки сообщений, принимая подтверждение доставки каждой его порции путем подтверждающих пакетов, каждый раз присылаемых в ответ на полученное сообщение. При этом в самом начале устанавливается логическая связь между компьютером-отправителем и компьютером-получателем, что уже гарантирует доставку пакетов.
UDP (User Datagram Protocol) – при использовании этого протокола не нужно иметь установленное логическое соединение двух компьютеров. Когда передаются данные другому компьютеру, предполагается, что он где-то есть, то есть подключен к сети. В этом случае нет никакой гарантии, что обмен данными произойдет. При этом к отсылаемому пакету просто добавляется IP-адрес машины, которой нужно отослать сообщение. Если сообщение принято, присылается подтверждение об этом, иначе отсылка данных повторяется через некоторый промежуток времени. Как ни странно, протокол UDP применяется в сети достаточно часто. Благодарить за это нужно скорость его работы, которая достигается за счет того, что не устанавливаются соединения с другими компьютерами, а это позволяет использовать трафик в нужном направлении. Так, данный протокол часто используют в сетевых играх, для передачи звуковых данных интернет-радио и в других случаях, где надежность доставки пакетов не играет большой роли.
IP (Internet Protocol) – протокол более высокого уровня, чем TCP и UDP. Он используется непосредственно для передачи данных по ранее установленному (или не установленному) соединению и имеет механизмы маршрутизации. Пользуясь информацией о маршрутизации между выбранными компьютерами, он просто добавляет адрес отправителя и получателя к пакету и отсылает его дальше. Наиболее востребованной функцией протокола является разбивка большого пакета на более мелкие на одном компьютере и соответственно соединение всех частей на другом. Это значит, что IP не контролирует доставку сообщений конечному адресату. IP-адреса машины-отправителя и машины-получателя включаются в заголовок датаграммы и используются для ее передачи между шлюзами. При этом информация о маршрутизации, находящаяся на шлюзе, указывает, куда передавать датаграмму на каждом этапе.
ICMP (Internet Control Message Protocol) контролирует протокол IP, отслеживает любые изменения, влияющие на процесс маршрутизации. При возникновении каких-либо ошибок об этом узнают и отправитель, и получатель. При этом в сообщении указывается причина сбоя.
RIP (Routing Information Protocol) – «родной брат» протокола IP. Они оба связаны с маршрутизацией. Тем не менее протокол RIP отвечает за выбор наилучшего маршрута доставки данных.
ARP (Address Resolution Protocol) – работает с адресами компьютеров, то есть определяет фактический адрес машины, расположенной в той или иной ветке сети. Например, если нужно узнать физический адрес в сети Ethernet, имея при этом IP-адрес, ARP конвертирует 32-битный IP-адрес в 48-битный Ethernet-адрес.
DNS (Domain Name System) – важнейший протокол, который позволяет определять адрес компьютера, ориентируясь на его логическое имя.
RARP (Revere Address Resolution Protocol) – протокол, определяющий адрес компьютера в сети. Работает аналогично протоколу ARP, однако конвертирование происходит в обратном порядке, то есть 48-битный Ethernet-адрес конвертируется в 32-битный IP-адрес.
ВООТР (Boot Protocol) – относится к прикладному уровню. С его помощью можно запустить сетевой компьютер, используя данные о загрузке с сервера.
FTP (File Transfer Protocol) – протокол, который позволяет загружать файлы с одного компьютера на другой. Именно его вы используете каждый раз, когда пытаетесь выгрузить или загрузить файл с FTP-сервера в Интернет.
TELNET – используется для связи между двумя компьютерами с целью управления одним из них. Протокол очень эффективен в действии и позволяет связывать любые два компьютера, где бы они ни находились.
Кроме описанных, существует набор протоколов, отвечающих за разные аспекты функционирования сети, в частности администрирование, работу с электронной почтой и т. п.
Имея в составе мощный набор вспомогательных протоколов, TCP/IP не зря так популярен. К тому же сегодня это единственный эффективный протокол, который используется для работы в Интернете.
1
В работе протокол использует понятие «датаграмма» – пакет данных, снабженных служебной информацией о получателе и отправителе.