Передача данных в компьютерных сетях
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Тема 5 Передача данных в компьютерных сетях
5.1 Общие принципы построения сетей
Для организации связи между компьютером и периферийным устройством (ПУ) в обоих этих устройствах предусмотрены внешние физические интерфейсы.
Физический интерфейс (называемый также портом) - определяется набором электрических связей и характеристиками сигналов.
Обычно он представляет собой разъем с набором контактов, каждый из которых имеет
определенное назначение, например, это может быть группа контактов для передачи данных,
контакт синхронизации данных и т. п. Пара разъемов соединяется кабелем, который состоит
из набора проводов, каждый из которых соединяет соответствующие контакты (рис. 5.1).
Рис.5.1. Взаимодействие компьютера с периферийным устройством.
1- запрос приложения к ОС, 2 – вызов драйвера, 3 – загрузка в буфер интерфейсной карты
команды или данных, 4 – побитная передача информации в линию связи, 5 - прием битов и
размещение их в буфере
Логический интерфейс – это набор информационных сообщений определенного формата, которыми обмениваются два устройства или две программы, а также набор правил,
определяющих логику обмена этими сообщениями.
Примерами стандартных интерфейсов, используемых в компьютерах, являются параллельный (передающий данные байтами) интерфейс Centronics, предназначенный, как правило, для подключения принтеров, и последовательный интерфейс (передающий данные битами) RS-232C (известный также как СОМ-порт), который имеет более универсальное назначение – он поддерживается не только принтерами, но и графопостроителями, манипуляторами типа «мышь» и многими другими устройствами. Существуют также специализированные
интерфейсы, которые предназначены для подключения уникальных периферийных
устройств, например сложной физической экспериментальной установки. В настоящее время
широкое распространение нашел интерфейс USB (Universal Serial Bus -универсальная последовательная шина).
В компьютере операции интерфейса реализуются совокупностью аппаратных и программных средств: интерфейсной платой (аппаратное устройство) и специальной програм1
мой, управляющей этим контроллером, которую называют драйвером соответствующего периферийного устройства.
В ПУ интерфейс чаще всего полностью реализуется аппаратным устройством - контроллером, хотя встречаются и программно-управляемые контроллеры для управления современными принтерами, обладающими более сложной логикой.
Периферийные устройства могут принимать от компьютера как данные, например байты информации, которую нужно распечатать на бумаге, так и команды управления, в ответ
на которые контроллер ПУ может выполнять специальные действии (перевести головку диска на требуемую дорожку, вытолкнуть лист бумаги из принтера и т. д.). Контроллер принтера, например, поддерживает некоторый набор достаточно простых команд, таких как «Печать символа», «Перевод строки», «Возврат каретки» и т. п., которые он получает от компьютера по интерфейсу и отрабатывает, управляя электромеханическими частями принтера.
Итак, рассмотрим порядок действий, в результате которых приложение распечатывает
данные на принтере.
1. Приложение обращается с запросом на выполнение операции ввода-вывода к операционной системе. В запросе указываются адрес данных в оперативной памяти,
идентифицирующая информация о периферийном устройстве и операция, которую
надо выполнить.
2. Получив запрос, операционная система запускает драйвер принтера. Дальнейшие
действия по выполнению операции ввода-вывода со стороны компьютера реализуются интерфейсной картой, работающей под управлением драйвера.
3. Драйвер принтера оперирует командами, понятными контроллеру принтера, то есть
командами «Печать символа», «Перевод строки», «Возврат каретки». Драйвер в
определенной последовательности помещает коды этих команд в регистр интерфейсной карты, которая побайтно передает их по линиям связи контроллеру периферийного устройства. Для одного и тот же контроллера можно разработать различные драйверы, которые с помощью одного набора команд будут реализовывать
разные алгоритмы управления ПУ.
4. Интерфейсная карта выполняет низкоуровневую работу, она не вдастся в смысл
данных и команд, передаваемых ей драйвером, считая их однородным потоком битов. После получения от драйвера очередного байта интерфейсная карта просто последовательно передает биты в линию связи, представляя каждый бит электрическим сигналом.
Чтобы контроллеру ПУ стало понятно, что начинается передача байта, перед передачей
первого бита интерфейсная карта формирует стартовый сигнал специфической формы, а
после передачи последнего информационного бита - стоповый сигнал. Эти сигналы синхронизируют передачу байта. Контроллер, опознав стартовый бит, начинает принимать информационные биты, формируя из них байт и своем приемном буфере.
Помимо информационных битов карта может передавать бит контроля четности для определения достоверности обмена. При корректно выполненной передаче в регистре контроллера
устанавливается соответствующий признак.
5. Получив очередной байт, контроллер интерпретирует его и запускает заданную
операцию принтера. Закончив работу по печати всех символов документа, контроллер принтера сообщает об этом драйверу компьютера. Драйвер передает операционной системе сообщение о выполнении запроса, а та, в свою очередь, сигнализирует об этом событии приложению.
Простейший случай взаимодействия двух компьютеров
Вернемся к исходному вопросу: как пользователю, работающему с некоторым при ложением на компьютере А. распечатать текст на принтере компьютера В (рис. 5.2).
2
Рис. 5.2. Совместное использование периферийного устройства.
Приложение А не может получить непосредственный доступ к ресурсам компьютера В – его
дискам, файлам, принтеру. Оно может только «попросить» об этом другую программу, выполняемую на том компьютере, которому принадлежат эти ресурсы. Эти «просьбы» выражаются в виде сообщений, передаваемых по каналам связи между компьютерами. Сообщения могут содержать как команды на выполнение некоторых действий («открыть файл»), так
и собственно информационные данные (содержимое некоторого файла).
Сообщение – блок данных стандартного формата. Формат сообщения: заголовок, данные.
Механизмы взаимодействия компьютеров в сети многое позаимствовали у схемы взаимодействия компьютера с периферийными устройствами. В самом простом случае связь
компьютеров может быть реализована с помощью тех же самых средств, которые используются для связи компьютера с периферией. Пусть для определенности связь между компьютерами будет осуществляться через последовательный интерфейс – СОМ-порт. С каждой
стороны контроллер СОМ-порт работает под управлением драйвера СОМ-порта. Вместе они
обеспечивают передачу по кабелю между компьютерами одного байта информации. В
«настоящих» локальных сетях подобные функции передачи данных в линию связи выполняются сетевыми интерфейсными картами (Network Interface Card, NIC), называемыми также
сетевыми адаптерами, и их драйверами.
Итак, механизм обмена байтами между двумя компьютерами определен. Однако этого
еще недостаточно для решения поставленной задачи – распечатки текста на «чужом» принтере. В частности, необходимо, чтобы компьютер В «понял», какую операцию он должен
выполнить с передаваемыми данными, на каком из имеющихся в его распоряжении
устройств, в каком виде должен быть распечатан текст и т. п. Обо всем этом должны договориться приложения А и В путем обмена сообщениями.
Чтобы приложения могли «понимать» получаемую друг от друга информацию,
программисты, разрабатывавшие приложения А и В, должны строго оговорить форматы
сообщений, которыми будут обмениваться приложения, и их семантику. Например, они могут договориться о том, что любое выполнение удаленной операции печати начинается с передачи сообщения, запрашивающего информацию о готовности приложения В; что в следующем сообщении идут идентификаторы компьютера и пользователя, сделавшего запрос; что
признаком срочного завершения печати является определенная кодовая комбинация и т. п.
Тем самым определяется протокол взаимодействия приложений.
Протокол – это набор информационных сообщений определенного формата, которыми обмениваются два устройства или две программы, а также набор правил, определяющих
логику обмена этими сообщениями.
3
Рассмотрим взаимодействие всех элементов этой небольшой сети, которые позволят
приложению на компьютере А распечатать текст на принтере компьютера В
1. Приложение А формирует сообщение-запрос для приложения В на печать текста и
помещает его в свой буфер. Чтобы передать данный запрос компьютеру В, приложение А обращается к локальной ОС, которая запускает драйвер СОМ-порта компьютера и сообщает ему адрес буфера, где хранится запрос. Затем, по ранее описанной
схеме, драйвер и контроллер СОМ-порта компьютера А, взаимодействуя с драйвером
и контроллером СОМ-порта компьютера В, передают сообщение байт за байтом в
компьютер В.
2. Драйвер СОМ-порта компьютера В постоянно находится в режиме ожидания прихода информации из внешнего мира. В некоторых случаях драйвер вызывается асинхронно, по прерываниям от контроллера. Получив очередной байт и убедившись в
его корректности, драйвер помещает его в буфер приложения В.
3. Приложение В принимает сообщение, интерпретирует его и формирует запрос к локальной ОС на выполнение тех или иных действии с принтером. В ходе печати могут
возникнуть ситуации, о которых необходимо сообщить приложению А. В этом случае используется симметричная схема: теперь запрос на передачу сообщения поступает от приложения В к локальной ОС компьютера В. Драйверы и контроллеры
СОМ-портов обоих компьютеров организуют побайтную передачу сообщения, которое затем помещается в буфер приложения А.
Потребность в доступе к удаленным файлам может возникать у пользователей многих
других приложений: текстового редактора, графического редактора, системы управления базой данных (СУБД). Очевидно, нерационально включать рассмотренные универсальные
функции по организации ввода-вывода в состав каждого приложения. Более эффективно решают задачу пара специализированных программных модулей.
Клиент – системный программный модуль, предназначенный для формирования сообщений-запросов к удаленной машине от разных приложений, а затем приема результатов и
передачи их соответствующим приложениям.
Сервер – системный программный модуль, который постоянно ожидает прихода по
сети запросов от клиентов и, приняв запрос, пытается его выполнить, возможно, с участием
локальной ОС. Один сервер может выполнять запросы сразу нескольких клиентов (последовательно или одновременно)
Очень удобной и полезной функцией клиентской программы является способность отличить запрос к удаленному ресурсу от запроса к локальному ресурсу. Если клиентская
программа умеет это делать, то приложения не должны заботиться о том, с каким принтером
они работают (локальным или удаленным), клиентская программа сама распознает и перенаправляет (redirect) запрос к удаленной машине. Отсюда и название, часто используемое
для клиентского модуля, – редиректор.
Клиент и сервер выполняют системные функции по обслуживанию запросов всех приложений компьютера A на удаленный доступ к ресурсу (принтеру, файлам, факсу) компьютера В. Чтобы приложения компьютера В могли пользоваться ресурсами компьютера А. описанную схему нужно симметрично дополнить клиентом для компьютера В и сервером для
компьютера А.
Схема взаимодействия клиента и сервера с приложениями и локальной операционной
системой приведена на рис. 5.3. Взаимодействие между компьютерами сети происходит за
счет передачи сообщений через сетевые адаптеры и каналы связи. С помощью этих сообщений один компьютер обычно запрашивает доступ к локальным ресурсам другого компьютера. Такими ресурсами могут быть как данные, хранящиеся на диске, так и разнообразные периферийные устройства – принтеры, плоттеры, факс-аппараты и т.д.
4
Рис. 5.3. Взаимодействие программных компонентов при связи двух компьютеров.
Разделение локальных ресурсов каждого компьютера между всеми пользователями сети – основная цель создания вычислительной сети.
Несмотря на то, что мы рассмотрели очень простую схему связи только двух компьютеров, функции программ, обеспечивающих удаленный доступ к принтеру, во многом совпадают с функциями сетевой операционной системы, работающей в сети с более сложными
аппаратными связями компьютеров.
К основным функциональным компонентам сетевой ОС относятся средства управления локальными ресурсами и сетевые средства.
Сетевые средства можно разделить на три компоненты:
1. Средства предоставления локальных ресурсов и услуг в общее пользование – серверная часть ОС.
2. Средства запроса доступа к удаленным ресурсам – клиентская часть ОС.
3. Транспортные средства ОС, которые с коммуникационной системой обеспечивают
передачу сообщений между компьютерами сети.
В связи с этим, локальные сети можно подразделить в зависимости от используемой
сетевой операционной системы на:
• Серверные сети
• Одноранговые сети
• Комбинированные сети.
Термины «клиент» и «сервер» используются для обозначения не только программных
модулей, но и компьютеров, подключенных к сети. Если компьютер преимущественно
предоставляет свои ресурсы другим компьютерам сети, то он называется сервером, а если он
их потребляет – клиентом. Иногда один и тот же компьютер может одновременно играть
роли и сервера, и клиента.
5.2 Сетевые службы и приложения
Предоставление пользователям совместного доступа к определенному типу ресурсов,
например к файлам, называют также предоставлением сервиса.
Обычно сетевая операционная система поддерживает несколько видов сетевых сервисов для своих пользователей – файловый сервис, сервис печати, сервис электронной почты,
сервис удаленного доступа и т. п. Программы, реализующие сетевые сервисы, относятся к
классу распределенных программ.
5
Распределенная программа – это программа, которая состоит из нескольких взаимодействующих частей (в приведенном на рис. 5.4 примере – из двух), причем каждая часть,
как правило, выполняется на отдельном компьютере сети.
Рис. 5.4. Взаимодействие частей распределенного приложения
Сетевые службы – это системные распределенные программы, реализующие сетевые
сервисы. Они представляют собой пару «клиент-сервер» и являются неотъемлемыми компонентами сетевой ОС.
Однако в сети могут выполняться и распределенные пользовательские приложения.
Распределенное приложение также состоит из нескольких частей, каждая из которых выполняет какую-то определенную законченную работу по решению прикладной задачи. Например, одна часть приложения, выполняющаяся на компьютере пользователя, может поддерживать специализированный графический интерфейс, вторая – работать на мощном выделенном компьютере и заниматься статистической обработкой введенных пользователем данных, третья – заносить полученные результаты в базу данных на компьютере с установленной стандартной СУБД. Распределенные приложения в полной мере используют потенциальные возможности распределенной обработки, предоставляемые вычислительной сетью, и
поэтому часто называются сетевыми приложениями.
Не всякое приложение, выполняемое в сети, является распределенным. Значительная
часть истории локальных сетей связана как раз с использованием таких нераспределенных
приложений. Рассмотрим, например, как происходила работа пользователя с известной в
свое время СУБД dBase. Файлы базы данных, с которыми работали все пользователи сети,
располагались на файловом сервере. Сама же СУБД хранилась на каждом клиентском компьютере в пиле единого программного модуля. Программа dBase была рассчитана только на
обработку данных, расположенных на том же компьютере, что и сама программа. Пользователь запускал dBase на своем компьютере, и программа искала данные на локальном диске,
совершенно не принимая во внимание существование сети. Чтобы обрабатывать с помощью
dBase данные, расположенные на удаленном компьютере, пользователь обращался к услугам
файловой службы, которая доставляла данные с сервера на клиентский компьютер и создавала для СУБД эффект их локального хранения.
Большинство приложений, используемых в компьютерных сетях в середине 80-х годов,
являлись обычными нераспределенными приложениями. И это понятно – они были написаны для автономных компьютеров, а потом просто были перенесены в сетевую среду. Создание же распределенных приложений, хотя и сулило много преимуществ (снижение сетевого
трафика, специализация компьютеров), оказалось делом совсем не простым. Нужно было
решать множество дополнительных проблем:
• на сколько частей разбить приложение,
• какие функции возложить на каждую часть,
6
как организовать взаимодействие этих частей, чтобы в случае сбоев и отказов оставшиеся части корректно завершали работу и т. д.
Поэтому до сих пор только небольшая часть приложений являются распределенными,
хотя очевидно, что именно за этим классом приложений будущее, так как они в полной мере
могут использовать потенциальные возможности сетей, по распараллеливанию вычислений.
•
5.3 Физическая передача данных по линиям связи
Даже при рассмотрении простейшей сети, состоящей всего из двух машин, можно выявить многие проблемы, связанные с физической передачей сигналов по линиям связи.
Кодирование
В вычислительной технике для представления данных используется двоичный код. Внутри
компьютера единицам и нулям данных соответствуют дискретные электрические сигналы.
Представление данных в виде электрических или оптических сигналов называется кодированием
Существуют различные способы кодирования двоичных цифр, например потенциальный способ, при котором единице соответствует один уровень напряжения, а нулю – другой,
или импульсный способ, когда для представления цифр используются импульсы различной
полярности, либо часть импульса – перепад (фронт).
Аналогичные подходы применимы для кодирования данных и при передаче их между
двумя компьютерами по линиям связи. Однако эти линии связи отличаются по своим характеристикам от линий внутри компьютера. Главное отличие внешних линий связи от
внутренних состоит в их гораздо большей протяженности, а также в том, что они проходят
вне экранированного корпуса по пространствам, зачастую подверженным воздействию сильных электромагнитных помех. Все это приводит к существенно большим искажениям прямоугольных импульсов (например. «заваливанию» фронтов), чем внутри компьютера. Поэтому для надежного распознавания импульсов на приемном конце линии связи при передаче данных внутри и вне компьютера не всегда можно использовать одни и те же скорости и
способы кодирования. Например, медленное нарастание фронта импульса из-за высокой емкостной нагрузки линии требует, чтобы импульсы передавались с меньшей скоростью (чтобы передний и задний фронты соседних импульсов не перекрывались, и импульс успел «дорасти» до требуемого уровня).
В вычислительных сетях применяют как потенциальное, так и импульсное кодирование
дискретных данных, а также специфический способ представления данных, который никогда
не используется внутри компьютера, – модуляцию (См. тема 4). При модуляции дискретная
информация представляется синусоидальным сигналом той частоты, которую хорошо передает имеющаяся линия связи.
Характеристики физических каналов
Существует большое количество характеристик, связанных с передачей трафика через физические каналы. С теми из них, которые будут необходимы нам уже в ближайшее время, мы
познакомимся сейчас.
• Предложенная нагрузка - это поток данных, поступающий от пользователя на вход
сети. Предложенную нагрузку можно характеризовать скоростью поступления данных в сеть – в битах в секунду (или килобитах, мегабитах и т. д.).
• Скорость передачи данных (information rate или throughput, оба английских термина
используются равноправно) – это фактическая скорость потока данных, прошедшего
через сеть. Эта скорость может быть меньше, чем скорость предложенной нагрузки,
так как данные в сети могут искажаться или теряться.
• Емкость канала связи (capacity), называемая также пропускной способностью,
представляет собой максимально возможную скорость передачи информации по каналу. Спецификой этой характеристики является то, что она отражает не только пара7
метры физической среды передачи, но и особенности выбранного способа передачи
дискретной информации по этой среде. Например, емкость канала связи в сети
Ethernet на оптическом волокне равна 10 Мбит/с. Эта скорость является предельно
возможной для сочетания технологии Ethernet и оптического волокна. Однако для того же самого оптического волокна можно разработать и другую технологию передачи
данных, отличающуюся способом кодирования данных, тактовой частотой и другими
параметрами, которая будет иметь другую емкость. Так, технология Fast Ethernet
обеспечивает передачу данных по тому же оптическому волокну с максимальной скоростью 100 Мбит/с, а технология Gigabit Ethernet - 1000 Мбит/с. Передатчик коммуникационного устройства должен работать со скоростью, равной пропускной способности канала. Эта скорость иногда называется битовой скоростью передатчика (bit
rate of transmitter).
Еще одна группа характеристик канала связи связана с возможностью передачи информации по каналу в одну или обе стороны.
При взаимодействии двух компьютеров обычно требуется передавать информацию в
обоих направлениях, от компьютера А к компьютеру В и обратно. Даже в том случае, когда
пользователю кажется, что он только получает информацию (например, загружает файл из
Интернета) или передает (отправляет электронное письмо), обмен информации идет в двух
направлениях. Просто существует основной поток данных, которые интересуют пользователя, и вспомогательный поток противоположного направления, который образуют квитанции
о получении этих данных.
Физические каналы связи делятся на несколько типов в зависимости от того, могут они
передавать информацию в обоих направлениях или нет.
• Дуплексный канал обеспечивает одновременную передачу информации в обоих
направлениях. Дуплексный канал может состоять их двух физических сред, каждая их
которых используется для передачи информации только в одном направлении. Возможен вариант, когда одна среда служит для одновременной передачи встречных потоков, в этом случае применяют дополнительные методы выделения каждого потока
из суммарного сигнала.
• Полудуплексный канал также обеспечивает передачу информации в обоих направлениях, но не одновременно, а по очереди. То есть в течение определенного периода
времени информация передается в одном направлении. а в течении следующего периода – в обратном.
• Симплексный канал позволяет передавать информацию только в одном направлении. Часто дуплексный канал состоит из двух симплексных каналов.
Проблемы связи нескольких компьютеров
До сих пор мы рассматривали вырожденную сеть, состоящую всего из двух машин.
При объединении в сеть большего числа компьютеров возникает целый комплекс новых
проблем.
5.4 Топология физических связей
Объединяя в сеть несколько (больше двух) компьютеров, необходимо решить, каким
образом соединить их друг с другом, другими словами, выбрать конфигурацию связей, или
топологию.
Под топологией сети понимается геометрическая фигура, вершинами которого соответствуют конечные узлы сети (например, компьютеры) и коммуникационное оборудование (например, маршрутизаторы), а ребрам – физические или информационные связи
между вершинами
8
Виды коммуникационного оборудования, используемого в компьютерных сетях: повторители, концентраторы, мосты, коммутаторы, маршрутизаторы, шлюзы.
Число возможных вариантов конфигураций резко возрастает при увеличении числа
связываемых устройств. Так, если три компьютера мы можем связать двумя способами (рис.
5.5, а), то для четырех можно предложить уже шесть топологически разных конфигураций
(при условии неразличимости компьютеров), что и иллюстрирует рис. 5.5, б.
Рис. 5.5. Варианты связи компьютеров
Мы можем соединять каждый компьютер с каждым или же связывать их последовательно, предполагая, что они будут общаться, передавая сообщения друг другу «транзитом».
Транзитные узлы должны быть оснащены специальными средствами, позволяющими им выполнять эту специфическую посредническую операцию. В качестве транзитного узла может
выступать как универсальный компьютер, так и специализированное устройство.
От выбора топологии связей существенно зависят характеристики сети. Например,
наличие между узлами нескольких путей повышает надежность сети и делает возможным
балансировку загрузки отдельных каналов. Простота присоединения новых узлов, свойственная некоторым топологиям, делает сеть легко расширяемой. Экономические соображения часто приводят к выбору топологий, для которых характерна минимальная суммарная
длина линий связи. Среди множества возможных конфигураций различают полносвязные и
непол
носвязные.
Полносвязная топология (рис. 5.6. а) соответствует сети, в которой каждый компьютер непосредственно связан со всеми остальными. Несмотря на логическую простоту, этот
вариант оказывается громоздким и неэффективным. Действительно, в таком случае каждый
компьютер в сети должен иметь большое количество коммуникационных портов, достаточное для связи с каждым из остальных компьютеров сети. Для каждой пары компьютеров
должна быть выделена отдельная физическая линия связи. (В некоторых случаях даже две,
если невозможно использование этой линии для двусторонней передачи.) Полносвязные топологии в компьютерных сетях применяются редко. Чаше этот вид топологии используется в
многомашинных комплексах или в глобальных сетях, объединяющих небольшое количество
компьютеров.
Все другие варианты основаны на неполноснязных топологиях, когда для обмена
данными между двумя компьютерами может потребоваться транзитная передача данных через другие узлы сети.
Ячеистая топология получается из полносвязной путем удаления некоторых связей
(рис. 5.5.b). Ячеистая топология допускает соединение большого количества компьютеров и
характерна, как правило, для крупных глобальных сетей.
9
Рис.5.6. Типовые топологии сетей
В сетях с кольцевой топологией (рис. 5.6. f) данные передаются по кольцу от одного
компьютера к другому. Кольцо представляет собой очень удобную конфигурацию и для организации обратной связи – данные, сделав полный оборот, возвращаются к узлу-источнику.
Поэтому источник может контролировать процесс доставки данных адресату. В то же время
в сетях с кольцевой топологией необходимо принимать специальные меры, чтобы в случае
выхода из строя или отключения какого-либо компьютера не прерывался канал связи между
остальными узлами кольца.
Звездообразная топология (рис. 5.6, d) образуется в случае, когда каждый компьютер
подключается непосредственно к общему центральному устройству, называемому концентратором. В функции концентратора входит направление передаваемой компьютером информации одному или всем остальным компьютерам сети. В качестве концентратора может
выступать как универсальный компьютер, так и специализированное устройство. К недостаткам топологам типа звезда относится более высокая стоимость сетевого оборудования
из-за необходимости приобретения специализированного центрального устройства. Кроме
того, возможности по наращиванию количества узлов в сети ограничиваются количеством
портов концентратора.
Иногда имеет смысл строить сеть с использованием нескольких концентраторов,
иерархически соединенных между собой связями типа звезда (рис. 5.6, e). Получаемую в результате структуру называют иерархической звездой, а также деревом. В настоящее время
дерево является самой распространенной топологией связей как в локальных, так и глобальных сетях.
Особым частным случаем звезды является конфигурация общая шина (рис. 5.6. c).
Здесь в качестве центрального элемента выступает пассивный кабель, к которому по схеме
«монтажного ИЛИ» подключается несколько компьютеров (такую же топологию имеют
многие сети, использующие беспроводную связь – роль общей шины здесь играет общая радиосреда). Передаваемая информация распространяется по кабелю и доступна одновременно
всем компьютерам, присоединенным к этому кабелю. Основными преимуществами такой
схемы являются ее дешевизна и простота присоединения новых узлов к сети, а недостатками
– низкая надежность (любой дефект кабеля полностью парализует всю сеть) и невысокая
производительность (в каждый момент времени только один компьютер может передавать
данные по сети, поэтому пропускная способность делится здесь между всеми узлами сети).
В то время как небольшие сети, как правило, имеют типовую топологию - звезда, кольцо или общая шина, для крупных сетей характерно наличие произвольных связей между
компьютерами. В таких сетях можно выделить отдельные произвольно связанные фрагменты
(подсети), имеющие типовую топологию, поэтому их называют сетями со смешанной топологией (рис. 5.7).
10
Рис.5.7. Смешанная топология
5.5 Адресация узлов сети
Еще одной новой проблемой, которую нужно учитывать при объединении трех и более
компьютеров, является проблема их адресации, точнее адресации их сетевых интерфейсов 1.
Один компьютер может иметь несколько сетевых интерфейсов. Например, для создания
полносвязной структуры из N компьютеров необходимо, чтобы у каждого из них имелся N- 1
интерфейс. По количеству адресуемых интерфейсов адреса можно классифицировать следующим образом:
• уникальный адрес (unicast) используется для идентификации отдельных интерфейсов;
• групповой адрес (multicast) идентифицирует сразу несколько интерфейсов, поэтому
данные, помеченные групповым адресом, доставляются каждому из узлов, входящих
в группу;
• данные, направленные по широковещательному адресу (broadcast), должны быть
доставлены всем узлам сети;
• в новой версии протокола IPv6 определен адрес произвольной рассылки (anycast),
который, так же как и групповой адрес, задает группу адресов, однако данные, посланные по этому адресу, должны быть доставлены не всем адресам данной группы, а
любому из них.
Адреса могут быть числовыми (например, 129.26.255.255 или 81.la.ff.ff) и символьными (site.domen.ru, willi-winki).
Символьные адреса (имена) предназначены для запоминания людьми и поэтому
обычно несут смысловую нагрузку. Для работы в больших сетях символьное имя может
иметь иерархическую структуру, например ftp-arch1.ucl.ac.uk. Хотя символьные имена удобны для людей, из-за переменного формата и потенциально большой длины их передача по
сети не очень экономична.
Множество всех адресов, которые являются допустимыми в рамках некоторой схемы адресации, называется адресным пространством
Адресное пространство может иметь плоскую (линейную) организацию (рис. 5.8) или
иерархическую организацию (рис. 5.9).
При плоской организации множество адресов никак не структурировано. Примером плоского числового адреса является МАС-адрес, предназначенный для однозначной
идентификации сетевых интерфейсов в локальных сетях. Такой адрес обычно используется
только аппаратурой, поэтому его стараются сделать по возможности компактным и записывают в виде двоичного или шестнадцатеричного числа, например 0081005е24а8. При задании
МАС-адрссов не требуется выполнение ручной работы, так как они обычно встраиваются к
11
аппаратуру компанией - изготовителем, поэтому их называют также аппаратными адресами (ardware addresses). Использование плоских адресов является жестким решением – при
замене аппаратуры, например, сетевого адаптера, изменяется и адрес сетевого интерфейса
компьютера.
Иногда вместо точного выражения «адрес сетевого интерфейса» мы будем использовать упрошенное – «адрес узла сети».
Рис.5.8. Плоская организация адресного пространства
Рис. 5.9. Иерархическая структура адресного пространства
При иерархической организации адресное пространство организовано в виде
вложенных друг в друга подгрупп, которые, последовательно сужая адресуемую область, в конце концов, определяют отдельный сетевой интерфейс.
В показанной на рис. 5.9 трехуровневой структуре адресного пространства адрес конечного узла задается тремя составляющими: идентификатором группы (К), в которую входит данный узел, идентификатором подгруппы (L) и, наконец, идентификатором узла (n),
однозначно определяющим его в подгруппе. Иерархическая адресация во многих случаях
оказывается более рациональной, чем плоская. В больших сетях, состоящих из многих тысяч
узлов, использование плоских адресов приводит к большим издержкам - конечным узлам и
коммуникационному оборудованию приходится оперировать таблицами адресов, состоящими из тысяч записей. В противоположность этому иерархическая система адресации позволяет при перемещении данных до определенного момента пользоваться только старшей составляющей адреса (например, идентификатором группы К), затем для дальнейшей локали12
зации адресата задействовать следующую по старшинству часть (L) и в конечном счете –
младшую часть (n).
Типичными представителями иерархических числовых адресов являются сетевые IP- и
IPX-адреса. В них поддерживается двухуровневая иерархия, адрес делится на старшую часть
– номер сети и младшую - номер узла. Такое деление позволяет передавать сообщения между сетями только на основании номера сети, а номер узла используется после доставки сообщения в нужную сеть; точно так же, как название улицы используется почтальоном только
после того, как письмо доставлено в нужный город.
На практике обычно применяют сразу несколько схем адресации, так что сетевой интерфейс компьютера может одновременно иметь несколько адресов-имен. Каждый адрес задействуется в тон ситуации, когда соответствующий вид адресации наиболее удобен. А для
преобразования адресов из одного вида в другой используются специальные вспомогательные протоколы, которые называют протоколами разрешения адресов
Пользователи адресуют компьютеры иерархическими символьными именами, которые
автоматически заменяются в сообщениях, передаваемых по сети, иерархическими числовыми адресами. С помощью этих числовых адресов сообщения передаются из одной сети в
другую, а после доставки сообщения в сеть назначения вместо иерархического числового
адреса используется плоский аппаратный адрес компьютера. Проблема установления соответствия между адресами различных типов может решаться как централизованными, так и
распределенными средствами.
При централизованном подходе в сети выделяется один или несколько компьютеров
(серверов имен), в которых хранится таблица соответствия имен различных типов, например
символьных имен и числовых адресов. Все остальные компьютеры обращаются к серверу
имен с запросами, чтобы по символьному имени найти числовой номер необходимого компьютера. Пример: DNS (Domain Name System) стека TCP/IP.
При распределенном подходе каждый компьютер сам решает задачу установления соответствия между адресами разного типа. Тогда компьютер, которому необходимо определить по известному иерархическому числовому адресу некоторого компьютера его плоский
аппаратный адрес, посылает в сеть широковещательный запрос. Все компьютеры сети сравнивают содержащийся в запросе адрес с собственным. Тот компьютер, у которого обнаружилось совпадение, посылает ответ, содержащий искомый аппаратный адрес. Такая схема
использована в протоколе разрешения адресов (Address Resolution Protocol, ARP) стека
TCP/IP.
Достоинство распределенного подхода в том, что в этом случае не нужно выделять
специальный компьютер, который к тому же часто требует ручного задания таблицы соответствия адресов. Недостатком его является необходимость широковещательных сообщении,
перегружающих сеть. Именно поэтому распределенный подход используется в небольших
сетях, а централизованный – в больших.
До сих пор мы говорили об адресах сетевых интерфейсов, компьютеров и коммуникационных устройств, однако конечной целью данных, пересылаемых но сети, являются не сетевые интерфейсы или компьютеры, а выполняемые на этих устройствах программы – процессы. Поэтому в адресе назначения наряду с информацией, идентифицирующей интерфейс
устройства, должен указываться адрес процесса, которому предназначены посылаемые по
сети данные Очевидно, что достаточно обеспечить уникальность адреса процесса в пределах
компьютера. Примером адресов процессов являются номера портов протоколов TCP и
UDP, используемые в стеке TCP/IP.
5.6 Коммутация
Итак, пусть компьютеры физически связаны между собой в соответствии с некоторой
топологией и выбрана система адресации. Остается нерешенной проблема: каким способом
передавать данные между конечными узлами? Особую сложность приобретает эта задача,
13
когда топология сети неполносвязная. В таком случае обмен данными между произвольной
парой конечных узлов (пользователей) должен идти в общем случае через транзитные узлы.
Соединение конечных узлов через сеть транзитных узлов называют коммутацией.
Последовательность узлов, лежащих на пути от отправителя к получателю, образует
маршрут.
Например, в сети, показанной на рис. 5.10, узлы 2 и 4, непосредственно между собой не
связанные и вынуждены передавать данные через транзитные узлы, в качестве которых могут выступить, например, узлы 1 и 5. Узел 1 должен выполнить передачу данных между своими интерфейсами А и В. а узел 5 – между интерфейсами F и В. В данном случае маршрутом
является последовательность: 2-1-5-4, где 2 – узел-отправитель, 1 и 5 – транзитные узлы, 4 –
узел-получатель.
Рис.5.10. Коммутация абонентов через сеть транзитных узлов
В самом общем виде задача коммутации может быть представлена в виде следующих
взаимосвязанных частных задач.
1. Определение информационных потоков, для которых требуется прокладывать маршруты.
2. Маршрутизация потоков.
3. Продвижение потоков, то есть распознавание потоков и их локальная коммутация на
каждом транзитном узле.
4. Мультиплексирование и демультиплексирование потоков.
Определение информационных потоков
Понятно, что через один транзитный узел может проходить несколько маршрутов,
например, через узел 5 (см. рис.5.9) проходят как минимум все данные, направляемые узлом
4 каждому из остальных узлов, а также все данные, поступающие в узлы 3, 4 и 10. Транзитный узел должен уметь распознавать поступающие на него потоки данных, для того чтобы
обеспечивать передачу каждого из них именно на тот свой интерфейс, который ведет к нужному узлу.
Информационным потоком, или потоком данных, называют непрерывную последовательность данных, объединенных набором общих признаков, выделяющих их из общего
сетевого трафика
Например, как поток можно определить все данные, поступающие от одного компьютера; объединяющим признаком в данном случае служит адрес источника. Эти же данные
можно представить как совокупность нескольких подпотоков, каждый из которых в качестве
дифференцирующего признака имеет адрес назначения. Наконец, каждый из этих подпотоков, в свою очередь, можно разделить на более мелкие подпотоки, порожденные разными
сетевыми службами – электронной почтой, программой копирования файлов, веб-сервером.
14
Данные, образующие поток, могут быть представлены в виде различных информационных
единиц данных – пакетов, кадров или ячеек.
Признаки потока могут иметь глобальное или локальное значение – в первом случае
они однозначно определяю, поток в пределах всей сети, а во втором – в пределах одного
транзитного узла. Пара адресов конечных узлов для идентификации потока – это пример
глобального признака. Примером признака, локально определяющего поток в пределах
устройства, может служить номер (идентификатор) интерфейса данного устройства, на который должны быть направлены данные.
Метка потока – это особый тип признака. Она представляет собой некоторое число,
которое несут все данные потока.
Глобальная метка назначается данным потока и не меняет своего значения на всем
протяжении его пути следования от узла источника до узла назначения, таким образом, она
уникально определяет поток в пределах сети.
В некоторых технологиях используются локальные метки потока, динамически меняющие свое значение при передаче данных от одного узла к другому.
Таким образом, распознавание потоков во время коммутации происходит на основании признаков, в качестве которых, помимо обязательного адреса назначения данных, могут выступать и другие признаки, такие, например, как идентификаторы приложений.
5.7 Маршрутизация
Задача маршрутизации, в свою очередь, включает в себя две подзадачи:
• определение маршрута;
• оповещение сети о выбранном маршруте.
Определить маршрут - это значит выбрать последовательность транзитных узлов и
их интерфейсов, через которые надо передавать данные, чтобы доставить их адресату.
Маршрут может определяться эмпирически («вручную») администратором сети на
основании различных, часто не формализуемых соображений. Среди побудительных мотивов выбора пути могут быть: особые требования к сети со стороны различных типов приложений, решение передавать трафик через сеть определенного поставщика услуг, предположения о пиковых нагрузках на некоторые каналы сети, соображения безопасности.
Однако эмпирический подход к определению маршрутов мало пригоден для большой
сети со сложной топологией. В этом случае используются автоматические методы определения маршрутов. Для этого конечные узлы и другие устройства сети оснащаются специальными программными средствами, которые организуют взаимный обмен служебными сообщениями, позволяющий каждому узлу составить свое «представление» о сети. Затем на основе собранных данных программными методами определяются рациональные маршруты.
Продвижение данных
Для каждой пары абонентов эта операции может быть представлена несколькими (по
числу транзитных узлов) локальными операциями коммутации. Прежде всего, отправитель
должен выставить данные на тот свой интерфейс, с которого начинается найденный маршрут, а все транзитные узлы должны соответствующим образом выполнить «переброску»
данных с одного своего интерфейса на другой, другими словами, выполнить коммутацию
интерфейсов.
Устройство, функциональным назначением которого является коммутация интерфейсов, называется коммутатором (рис. 5.11).
Однако прежде чем выполнить коммутацию, коммутатор должен распознать поток.
Для этого поступившие данные анализируются на предмет наличия в них признаков какоголибо из потоков, заданных в таблице коммутации. Если произошло совпадение, то эти данные направляются на интерфейс, определенный для них в маршруте.
15
Коммутатором может быть как специализированное устройство, так и универсальный
компьютер со встроенным программным механизмом коммутации, в этом случае коммутатор называется программным.
Интерфейсы
коммутатора
Рис.5.11. Коммутатор
Компьютер может совмещать функции коммутации данных с выполнением своих
обычных функций как конечного узла. Однако во многих случаях более рациональным является решение, в соответствии с которым некоторые узлы в сети выделяются специально
для коммутации. Эти узлы образуют коммутационную сеть, к которой подключаются все
остальные.
На рис. 5.12 показана коммутационная сеть, образованная из узлов 1.5. 6 и 8. к которой
подключаются конечные узлы 2. 3. 4, 7. 9 и 10
5.8 Мультиплексирование и демультиплексирование
Чтобы определить, на какой интерфейс следует передать поступившие данные, коммутатор
должен определить, к какому потоку они относятся. Эта задача должна решаться независимо
от того, поступает на вход коммутатора только один «чистый» поток или «смешанный»
поток, являющийся результатом агрегирования нескольких потоков.
В последнем случае к задаче распознавания потоков добавляется задача демультиплексирования, то есть разделения суммарного агрегированного потока на несколько
составляющих его потоков.
Рис.5.12. Коммутационная сеть
Как правило, операцию коммутации сопровождает также обратная операция – мультиплексирование. При мультиплексировании из нескольких отдельных потоков образуется общий агрегированный поток, который можно передавать по одному физическому каналу связи.
Операции мультиплексирования/демультиплексирования имеют такое же важное значение в любой сети, как и операции коммутации, потому что без них пришлось бы для каж-
16
дого потока предусматривать отдельный капал, что привело бы к большому количеству параллельных сиязей в сети и свело бы «на нет» все преимущества неполносвязной сети.
Рис. 5.13. Операции мультиплексирования и демультиплексирования
потоков при коммутации
На рис. 5.13 показан фрагмент сети, состоящий из трех коммутаторов. Коммутатор 1
имеет пять сетевых интерфейсов. Рассмотрим, что происходит на интерфейсе Инт.1. Сюда
поступают данные с трех интерфейсов – Инт.3, Инт.4 и Инт.5. Все их надо передать в общий
физический канал, то есть выполнить операцию мультиплексирования. Мультиплексирование является способом разделения имеющегося одного физического канала между
несколькими одновременно протекающими сеансами связи между абонентами сети.
Частный случай коммутатора, у которого все входящие информационные потоки
коммутируются на один входной интерфейс, где они мультиплексируются в один агрегированный поток, называется мультиплексором (рис.2.14,а). Коммутатор, который имеет
один входной интерфейс и несколько выходных, называется демультиплексором (рис.5. 14,
б).
Одним из основных способов мультиплексирования потоков является разделение
времени. Иначе этот способ мультиплексирования называется мультиплексированием с
разделением времени (Time Division Multiplexing, TDM). При этом способе каждый поток
время от времени (с фиксированным или случайным периодом) получает физический канал в
полное свое распоряжение и передает по нему свои данные. Мультиплексирование с Частный случай коммутатора, у которого все входящие информационные потоки коммутируются
на один входной интерфейс, где они мультиплексируются в один агрегированный поток,
называется мультиплексором (рис.5.14,а). Коммутатор, который имеет один входной интерфейс и несколько выходных, называется демультиплексором (рис. 5.14, б).
Распространено также частотное разделение канала, когда каждый поток передает
данные в выделенном ему частотном диапазоне. Иначе этот способ мультиплексирования
называется частотным мультиплексированием (Frequency Division Multiplexing, FDM).
Частотное мультиплексирование используется при передаче информации в аналоговом виде.
Технология мультиплексирования должна позволять получателю такого суммарного
потока выполнять обратную операцию – разделение (демультиплексирование) данных на
слагаемые потоки. На интерфейсе Инт.3 коммутатор выполняет демультиплексирование потока на три составляющих его подпотока. Один из них он передает на интерфейс Инт.1. другой – на Инт.2. а третий – на Инт.5. А вот на интерфейсе Инт.2 нет необходимости выпол17
нять мультиплексирование или демультиплексирование – этот интерфейс выделен одному
потоку в монопольное использование. Вообще говоря, на каждом интерфейсе могут одновременно выполняться обе функции – мультиплексирования и демультиплексирования.
На рис.5.14 показано оборудование, называемое мультиплексором и демультиплексором, являющееся частным случаем коммутатора.
5.9 Разделяемая среда передачи данных
Еще одним параметром разделяемого канала связи является количество подключенных к нему узлов. В приведенных выше примерах к каждому каналу связи подключались
только два взаимодействующих узла, точнее - два интерфейса (рис.5.15. а и б). В телекоммуникационных сетях используется и другой вид подключения, когда к одному каналу подключается несколько интерфейсов (рис. 5.15. в). Такое множественное подключение интерфейсов порождает уже рассматривавшуюся выше топологию «общая шина», иногда называемую также шлейфовым подключением. Во всех этих случаях возникает проблема организации совместного использования канала несколькими интерфейсами.
a
b
Рис.5.14. Мультиплексор (а) и демультиплексор (b)
Рис.5.15. Совместное использование канала связи
18
Возможны различные варианты разделения каналов связи между интерфейсами. На
рис.5.15, а коммутаторы К1 и К2 связаны двумя однонаправленными физическими каналами,
то есть такими, по которым информация может передаваться только в одном направлении. В
этом случае передающий интерфейс является активным, и физическая среда передачи находится под его управлением. Пассивный интерфейс только принимает данные. Проблема разделения каналa между интерфейсами здесь отсутствует. (Заметим, однако, что задача
мультиплексирования потоков данных в канале при этом сохраняется.) На практике два однонаправленных канала, реализующие в целом дуплексную связь между двумя устройствами, обычно рассматриваются как один дуплексный канал, а пара интерфейсов одного
устройства - как передающая и принимающая части одного и того же интерфейса. На рис.
5.15. б коммутаторы К1 и К2 связаны каналом, который может передавать данные в обе стороны, но только попеременно. При этом возникает необходимость в механизме синхронизации доступа интерфейсов К1 и К2 к такому каналу. Обобщением этого варианта является
случай, показанный на рис.5.15, с. когда к каналу связи подключаются несколько (больше
двух) интерфейсов, образуя общую шину.
Совместно используемый несколькими интерфейсами физический канал называют разделяемым (shared). Часто применяют также термин разделяемая среда передачи
данных.
Среда передачи, которая используется попеременно всеми устройствами сети,
называется разделяемой средой.
Разделяемые каналы связи требуются не только для связей типа коммутатор- коммутатор, но и для связей компьютер-коммутатор и компьютер-компьютер.
Нужно подчеркнуть, что термин «разделяемая среда» традиционно относят именно к
случаю разделения канала между интерфейсами и практически никогда – к случаю разделения канала между потоками.
Существуют различные способы решения задачи организации совместного доступа к
разделяемым линиям связи. Одни из них подразумевают централизованный подход, когда
доступом управляет специальное устройство – арбитр, другие – децентрализованный. Внутри компьютера проблемы разделения линий связи между различными модулями также существуют – примером является доступ к системной шине, которым управляет либо процессор,
либо специальный арбитр шины. В сетях организация совместного доступа к линиям связи
имеет свою специфику из-за существенно большего времени распространения сигналов по
линиям связи, поэтому процедуры согласования доступа к линии связи могут занимать
слишком большой промежуток времени и приводить к значительным потерям производительности сети.
Именно по этой причине разделяемые между интерфейсами среды практически не
используются в глобальных сетях.
В локальных же сетях разделяемые среды используются достаточно часто благодаря
простоте и экономичности их реализации. Этот подход, в частности, применяется в доминирующей сегодня в локальных сетях технологии Ethernet, а также в популярных в прошлом
технологиях Token Ring и FDDI.
Однако в последние годы стала преобладать другая тенденция – отказ от разделяемых
сред передачи данных и в локальных сетях. Это связано с тем, что за достигаемое таким образом удешевление сети приходится расплачиваться производительностью.
Сеть с разделяемой средой при большом количестве узлов будет работать всегда медленнее, чем аналогичная есть с индивидуальными двухточечными линиями связями, так как
пропускная способность линии связи при ее совместном использовании делится между
несколькими компьютерами сети.
И, тем не менее не только в классических, но и в некоторых совсем новых технологиях,
разработанных для локальных сетей, сохраняется режим разделяемых линий связи. Например, разработчики технологии Gigabit Ethernet, принятой в 1998 году в качестве нового стан19
дарта, включили режим разделения среды в свои спецификации наряду с режимом работы по
индивидуальным линиям связи.
Типы коммутации
Комплекс технических решений обобщенной задачи коммутации в своей совокупности составляет основу любой сетевой технологии. Как уже отмечалось, к этим частным задачам
относятся:
• определение потоков и соответствующих маршрутов;
• фиксация маршрутов в конфигурационных параметрах и таблицах сетевых устройств;
• распознавание потоков и передача данных между интерфейсами одного устройства;
• мультиплексирование/демультиплексирование потоков;
• разделение среды передачи.
Среди множества возможных подходов к решению коммутации абонентов в сетях
выделяют два основополагающих, к которым относят коммутацию каналов и коммутацию пакетов.
Сети с коммутацией каналов имеют более богатую историю, они происходят от первых
телефонных сетей. Сети с коммутацией пакетов сравнительно молоды, они появились в конце 60-х годов как результат экспериментов с первыми глобальными компьютерными сетями.
Каждая из этих схем имеет свои достоинства и недостатки, но по долгосрочным прогнозам
многих специалистов будущее принадлежит технологии коммутации пакетов, как более гибкой и универсальной.
Выводы
Для того чтобы пользователь сети получил возможность использовать ресурсы «чужих» компьютеров, таких как диски, принтеры, плоттеры, необходимо дополнить все компьютеры сети специальными средствами. В каждом компьютере функции передачи данных в
линию связи выполняют совместно аппаратный модуль, называемый сетевым адаптером, или
сетевой интерфейсной картой, и управляющая программа – драйвер. Задачи более высокого
уровня – формирование запросов к ресурсам и их выполнение – решают соответственно клиентские и серверные модули ОС.
Даже в простейшей сети, состоящей из двух компьютеров, возникают проблемы физической передачи сигналов по линиям связи: кодирование и модуляция, синхронизация передающего и принимающего устройств, контроль корректности переданных данных.
Важными характеристиками, связанными с передачей трафика через физические каналы, являются: предложенная нагрузка, скорость передачи данных, пропускная способность,
емкость канала связи, полоса пропускание.
•
•
•
•
При связывании в сеть более двух компьютеров возникают проблемы:
выбора топологии (полносвязной, ячеистой, звезды, кольца, общей шины, иерархического дерева, произвольной);
способа адресации (плоского или иерархического, числового или символьного);
способа разделения линий связи;
механизма коммутации.
В неполносвязных сетям соединение пользователей осуществляется путем коммутации
через сеть транзитных узлов. При этом должны быть решены следующие задачи: определение потоков данных и маршрутов для них, продвижение данных в каждом транзитном узле,
мультиплексирование и демультиплексирование потоков.
Среди множества возможных подходов к решению задачи коммутации выделяют два
основополагающих – коммутацию каналов и пакетов.
20