Адресация компьютеров
Другой проблемой, возникающей при объединении в сеть трех и более компьютеров, является проблема их адресации. От выбранной схемы адресации во многом будут зависеть характеристики сети, такие как гибкость, масштабируемость, удобство работы. На практике в сетях применяется несколько схем адресации одновременно. Наибольшее распространение получили следующие схемы.
Аппаратные адреса. Этот адрес представляет собой уникальное число, которое идентифицирует сетевой интерфейс компьютера в сети. Как правило, аппаратный адрес жестко программируется производителем в сетевом адаптере и не может быть изменен. Уникальность адресов в пределах всех выпущенных адаптеров, поддерживающих определенный тип сети, обеспечивается производителями. Например, для популярных сетей технологии Ethernet длина аппаратного адреса равна 6 байт. Аппаратные адреса так же называют MAC-адресами (Media Access Control – управление доступом к среде), так как механизм разделения среды передачи может использовать аппаратную адресацию. Достоинством аппаратных адресов является то, что их не нужно конфигурировать и обеспечивать уникальность. К недостаткам аппаратной адресации относится то, что такая схема адресации является плоской. Это делает аппаратную адресацию неприменимой для идентификации компьютеров в больших сетях. Кроме того, при смене сетевого адаптера компьютера меняется его адрес, что не всегда удобно.
Сетевые адреса. Этот адрес так же является числовым, однако он состоит как минимум из двух частей – номера сети и номера узла. Двухуровневая иерархия делает возможным построение составных сетей, в которых передача сообщений между составляющими сетями производится на основании номера сети, а передача внутри каждой сети – на основании номера узла. По такому же принципу организованы почтовые адреса, в которых письмо сначала доставляется в указанное почтовое отделение по индексу, и только потом используется улица и номер дома. Сетевые адреса как правило требуют ручного конфигурирования сетевых компонентов операционной системы администратором. Типичным представителем сетевых адресов являются IP-адреса длиной 4 байта, используемые в интернет.
Символьные адреса или имена. Как аппаратные, так и сетевые адреса являются числами, и поэтому их сложно запомнить человеку. Символьные адреса предназначены для запоминания людьми и поэтому несут смысловую нагрузку. Существуют иерархические символьные адреса, используемые в глобальных сетях. Например, интернет-адрес www.surgu.ru означает то, компьютер с именем www относится к сети Сургутского университета (surgu), которая в свою очередь расположена в России (ru). В локальных сетях могут использоваться плоские символьные адреса - последовательности символов, идентифицирующие компьютер. Символьные адреса должны быть придуманы и вручную указаны администратором.
В современных сетях применяются, как правило, все три рассмотренные схемы адресации. При этом возникает проблема установления соответствия между различными схемами адресации. Поиск таких соответствий называется разрешением адресов. Установить аппаратный адрес компьютера по известному сетевому адресу можно при помощи широковещательного опроса всех компьютеров в сети. Для разрешения символьных имен в сетевые может использоваться специальная служба, которая называется службой разрешения имен. В сети Интернет такой службой является служба Domain Name System (DNS). При отсутствии централизованной службы разрешения имен администратор будет вынужден заранее вручную установить соответствия для тех символьных адресов, которые будут использоваться. Обычно эта информация хранится в текстовом файле специального формата.
Тема 1.4Модель взаимодействия открытых систем
1.4.1Многоуровневый подход к решению задачи сетевого взаимодействия
При разработке сетевых технологий продуктов особое значение имеет стандартизация. Цель построения сети – соединить различное оборудование, следовательно, проблема совместимости является чрезвычайно важной. В области сетевых технологий работает большое количество научно-исследовательских и производственных организаций, а так же всевозможных комитетов и объединений, образованных группами этих организаций для работы над определенными проблемами. Без принятия всеми организациями общих правил построения сетей прогресс в этой области был бы невозможен.
Организация взаимодействия компьютеров по сети является сложной задачей. Для решения сложных задач применяется хорошо известный принцип – декомпозиция, то есть разбиение задачи на несколько более простых задач - модулей. Программно – аппаратную организацию компьютерных систем часто представляют в виде иерархии соответствующих компонентов. Использование такого подхода при проектировании сетевых средств имеет ряд преимуществ:
1. Разбиение задачи на подзадачи упрощает процесс ее решения. При этом можно привлечь к работе большее число специалистов и распределить их усилия.
2. Функции небольшого компонента проще поддаются формализации, соответственно упрощается разработка стандартов.
3. Разработку различных компонентов можно поручить разным рабочим группам или организациям, так как правила взаимодействия компонентов стандартизированы.
4. Появляется возможность замены отдельных компонентов без необходимости модификации остальных компонентов.
5. Упрощается процесс диагностики и настройки сетевых средств
Каждый компонент находится на соответствующем уровне иерархии, при этом говорят о применении многоуровневого подхода. Множество компонентов каждого уровня организовано таким образом, что может использовать для выполнения своих задач только те средства, которые предоставляют компоненты нижнего уровня (рис 1.4.1). С другой стороны, результаты работы каждого уровня доступны для использования только соседним, вышележащим уровнем. Правила взаимодействия, по которым компоненты вышележащего уровня обращаются к функциям нижележащего компонента, называются интерфейсом. Примерами таких интерфейсов являются программные интерфейсы API (Application Program Interface) операционной системы, наборы микрокоманд внешних устройств компьютера и т.д.
Рис. 1.4.1 Многоуровневая организация сетевых средств
1.4.2Взаимодействие двух систем, понятие протокола
Многоуровневое представление сетевых средств имеет свою специфику, связанную с тем, что в процессе взаимодействия участвуют два компьютера. Для их согласованной работы требуется наличие одних и тех же компонентов в обоих взаимодействующих компьютерах. Компоненты каждого уровня одного компьютера обмениваются служебной информацией с компонентами другого компьютера, лежащими на таком же уровне. Это объясняется тем, что для успешного взаимодействия обоим участникам обмена приходится принять множество соглашений. Они должны согласовать методы кодирования информации, длину сообщений, принятые схемы адресации, методы обнаружения ошибок передачи и т.д. Правила обмена информацией компонентов взаимодействующих систем, лежащих на одном уровне, называются протоколом (рис. 1.4.2). Набор протоколов всех уровней называется стеком протоколов.
Рис. 1.4.2 Взаимодействие двух компьютеров
Целью функционирования стека протоколов является обеспечение передачи сообщений между процессами. В качестве процесса рассматривается любая прикладная программа - например, браузер, текстовый редактор, программа для работы с электронной почтой и др. Сообщением может являться запрос, файл, набор записей базы данных или любой другой блок информации, в зависимости от того, какие функции выполняет процесс. Наряду с термином сообщение (message) для обозначения единиц передаваемых данных могут использоваться и другие термины. На разных уровнях сообщения могут именоваться: пакет (paket), кадр (frame), датаграмма (datagram), сегмент (segment).
Все уровни каждой из взаимодействующих систем участвуют в процессе передачи сообщения (рис. 1.4.3). При этом, сообщение передается от одного уровня другому на передающем компьютере вниз, а на принимающем – вверх. Каждый уровень передающего компьютера добавляет к полученному сообщению заголовок стандартного формата, определяемого соответствующим протоколом, и передает сообщение на нижележащий уровень. Заголовок содержит служебную информацию, необходимую для обработки сообщения соответствующим уровнем на принимающем компьютере. На принимающем компьютере сообщение обрабатывается в обратном порядке. Каждый уровень, прочитав «свой» заголовок, удаляет его, и передает сообщение вышележащему уровню. Так происходит, пока сообщение не достигнет процесса-адресата. Таким образом, количество заголовков, которые дописываются к сообщению, всегда равно количеству уровней, которые используются в системе.
Рис. 1.4.3 Передача сообщений между компьютерами
Когда компонент какого-либо уровня получает сообщение от вышележащего уровня, то ему недоступна информация, содержащаяся в заголовках всех вышележащих уровней. Компонент не в состоянии различить заголовки тех протоколов, которые он не поддерживает, поэтому он рассматривает все сообщение, как непрерывный блок данных, помещая его в поле данных своего протокола. Таким образом, сообщения разных уровней являются вложенными друг в друга, как вкладываются друг в друга куклы-матрешки. Процесс помещения сообщения одного уровня в поле данных сообщения нижележащего уровня называется инкапсуляцией, (рис. 1.4.4).
Рис. 1.4.4 Инкапсуляция сообщений
Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней часто реализуются комбинацией программных и аппаратных средств – в виде сетевого адаптера и его драйвера. Протоколы верхних уровней – как правило, чисто программными средствами, в виде компонентов ОС.
Следует заметить, что физически взаимодействуют только нижние уровни систем, так как именно эти уровни выполняют работу по формированию и приему электрических сигналов, которые распространяются в среде передачи. Взаимодействие всех остальных уровней заключается в формировании и чтении соответствующих заголовков. Таким образом, формат заголовка в некоторой степени является синонимом слова протокол, так как определяет вид информации, которой обмениваются соответствующие уровни компьютеров.
Для иллюстрации понятий интерфейса и протокола можно привести пример, не имеющий отношения к вычислительным сетям. Рассмотрим процесс взаимодействия двух предприятий, одно из которых поставляет некоторую продукцию другому (рис. 1.4.5). В соответствии с договоренностью начальник отдела сбыта первого предприятия ежемесячно посылает начальнику отдела закупок второго предприятия официальное сообщение о количестве и типе продукции, которая может быть поставлена в этом месяце. В ответ на это сообщение начальник отдела закупок второго предприятия посылает заявку установленного образца. Такой порядок взаимодействия можно считать «протоколом уровня начальников». Начальники посылают сообщения через своих секретарей. Порядок взаимодействия начальника и секретаря соответствует понятию межуровневого интерфейса «начальник-секретарь». На каждом предприятии может быть по-разному организовано взаимодействие начальника и секретаря. Например, при помощи телефона или при личной встрече. После того, как сообщение передано секретарю, оно попадает на уровень компетенции секретарей. Секретари сами решают, каким образом они будут обмениваться сообщениями – по факсу, электронной почте или каким-либо иным образом. Этот способ обмена является протоколом «секретарь-секретарь». Секретарей не интересует напрямую содержание сообщения, равно как и начальников не интересует способ передачи, который используют секретари.
Рис. 1.4.5 Пример многоуровневого взаимодействия предприятий
1.4.3Модель OSI
В начале 1980-х годов несколько международных организаций по стандартизации, таких как ISO (International Standards Organization), ITU (International Telecommunications Units) и др., разработали модель, которая сыграла большую роль в развитии компьютерных сетей. Эта модель называется моделью взаимодействия открытых систем (Open System Interconnection, OSI). Модель OSI определяет различные уровни взаимодействия систем, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень.
В модели OSI (рис. 1.4.6) средства взаимодействия делятся на семь уровне: прикладной, представительный, сеансовый, транспортный, сетевой, канальный физический. Каждый уровень имеет дело с одним определенным аспектом взаимодействия сетевых устройств.
Рис. 1.4.6 Модель OSI
Физический уровень
Физический уровень (Physical layer) имеет дело с передачей битов по физическим каналам связи, таким, например, как коаксиальный кабель, витая пара, оптоволоконный кабель или телефонная линия. К этому уровню имеют отношение характеристики физических сред передачи данных, такие как полоса пропускания, помехозащищенность, волновое сопротивление и другие. На этом же уровне определяются характеристики электрических сигналов, передающих дискретную информацию, например, крутизна фронтов импульсов, уровни напряжения или тока передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме этого, здесь стандартизуются типы разъемов и назначение каждого контакта.
Функции физического уровня реализуются во всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером.
Канальный уровень
На физическом уровне просто пересылаются биты. При этом не учитывается, что в некоторых сетях, в которых линии связи используются (разделяются) попеременно несколькими парами взаимодействующих компьютеров, физическая среда передачи может быть занята. Поэтому одной из задач канального уровня (Data Link layer) является проверка доступности среды передачи. Другой задачей канального уровня является реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами (frames). Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность бит в начало и конец каждого кадра для его выделения, а также вычисляет контрольную сумму, обрабатывая все байты кадра определенным способом и добавляя контрольную сумму к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровень может не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Необходимо отметить, что функция исправления ошибок не является обязательной для канального уровня, поэтому в некоторых протоколах этого уровня, например Ethernet, она отсутствует.
В протоколах канального уровня, используемых в локальных сетях, заложена определенная структура связей между компьютерами и способы их адресации. Физические адреса компьютеров используются на канальном уровне, и поэтому называются так же адресами канального уровня. Хотя канальный уровень и обеспечивает доставку кадра между любыми двумя узлами локальной сети, он это делает только в сети с совершенно определенной топологией связей, именно той топологией, для которой он был разработан. К таким типовым топологиям, поддерживаемым протоколами канального уровня локальных сетей, относятся общая шина, кольцо и звезда, а также структуры, полученные из них с помощью мостов и коммутаторов. Примерами протоколов канального уровня являются протоколы Ethernet, Token Ring, FDDI.
Функции проверки доступности среды передачи и адресации компьютеров часто выделяют в отдельный подуровень MAC (Medium Access Control, подуровень доступа к среде), а физические адреса называют MAC-адресами (рис. 1.4.7).
В компьютерах функции канального уровня реализуются совместными усилиями сетевых адаптеров и их драйверов.
В целом канальный уровень представляет собой весьма мощный и законченный набор функций по пересылке сообщений между узлами сети. В некоторых случаях протоколы канального уровня оказываются самодостаточными транспортными средствами и могут допускать работу поверх них непосредственно протоколов прикладного уровня или приложений, без привлечения средств сетевого и транспортного уровней.
Тем не менее, для обеспечения качественной транспортировки сообщений в сетях любых топологий и технологий функций канального уровня оказывается недостаточно, поэтому в модели OSI решение этой задачи возлагается на два следующих уровня — сетевой и транспортный.
Сетевой уровень | ||
Канальный уровень | Подуровень LLC (Logical Link Control - управление логическим каналом) | Функции: Обеспечение надежной доставки сообщений на основе процедур установления соединения и подтверждения |
Подуровень MAC (Media Access Control - управление доступом к среде) | Функции: 1) Упаковка данных в кадры (пакеты) 2) Проверка доступности среды передачи и организация совместного использования разделяемых линий связи 3) Физическая адресация узлов сети (MAC-адрес) | |
Физический уровень |
Рис. 1.4.7 Структура канального уровня ISO/OSI
Сетевой уровень
Сетевой уровень (Network layer) служит для образования единой транспортной системы, объединяющей несколько сетей, причем эти сети могут использовать совершенно различные принципы передачи сообщений между конечными узлами и обладать произвольной структурой связей. Функции сетевого уровня достаточно разнообразны.
Протоколы канального уровня локальных сетей обеспечивают доставку данных между любыми узлами только в сети с соответствующей типовой топологией, например топологией иерархической звезды. Это очень жесткое ограничение, которое не позволяет строить сети с развитой структурой, например, сети, объединяющие несколько сетей предприятия в единую сеть, или высоконадежные сети, в которых существуют избыточные связи между узлами. Можно было бы усложнять протоколы канального уровня для поддержания петлевидных избыточных связей, но принцип разделения обязанностей между уровнями приводит к другому решению. Чтобы с одной стороны сохранить простоту процедур передачи данных для типовых топологий, а с другой допустить использование произвольных топологий, вводится дополнительный сетевой уровень.
На сетевом уровне сам термин сеть наделяют специфическим значением. В данном случае под сетью понимается совокупность компьютеров, соединенных между собой в соответствии с одной из стандартных типовых топологий и использующих для передачи данных один из протоколов канального уровня, определенный для этой топологии.
Внутри сети доставка данных обеспечивается соответствующим канальным уровнем, а вот доставкой данных между сетями занимается сетевой уровень, который и поддерживает возможность правильного выбора маршрута передачи сообщения даже в том случае, когда структура связей между составляющими сетями имеет характер, отличный от принятого в протоколах канального уровня.
Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизатор — это устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями, или хопов (от hop — прыжок), каждый раз выбирая подходящий маршрут. Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет. Очень часто между двумя сетями существует несколько альтернативных маршрутов (Рис. 1.4.7).
Рис. 1.4.8 Пример составной сети
Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня. Эта проблема осложняется тем, что самый короткий путь не всегда самый лучший. Часто критерием при выборе маршрута является время передачи данных по этому маршруту; оно зависит от пропускной способности каналов связи и интенсивности трафика, которая может изменяться с течением времени. Некоторые алгоритмы маршрутизации пытаются приспособиться к изменению нагрузки, в то время как другие принимают решения на основе средних показателей за длительное время. Выбор маршрута может осуществляться и по другим критериям, например надежности передачи.
Сообщения сетевого уровня принято называть пакетами (packets). При организации доставки пакетов на сетевом уровне используется понятие «номер сети». В этом случае адрес получателя состоит из старшей части — номера сети и младшей — номера узла в этой сети. Все узлы одной сети должны иметь одну и ту же старшую часть адреса, поэтому термину «сеть» на сетевом уровне можно дать и другое, более формальное определение: сеть — это совокупность узлов, сетевой адрес которых содержит один и тот же номер сети.
На сетевом уровне различают несколько видов протоколов. Первый вид — сетевые протоколы (routed protocols) — реализуют передачу данных через сеть. Именно эти протоколы обычно имеют в виду, когда говорят о протоколах сетевого уровня. Примерами протоколов сетевого уровня являются протокол межсетевого взаимодействия IP стека TCP/IP и протокол межсетевого обмена пакетами IPX стека Novell.
Протоколы второго вида называются протоколами обмена маршрутной информацией или просто протоколами маршрутизации (routing protocols). С помощью этих протоколов маршрутизаторы собирают информацию о топологии межсетевых соединений.
Протоколы третьего типа отвечают за отображение адреса узла, используемого на сетевом уровне, в физический адрес (адрес канального уровня). Такое отображение необходимо, так как узлы обмениваются пакетами сетевого уровня, помещая (инкапсулируя) их в кадры канального уровня в соответствии с принципом функционирования сетевых средств. Такие протоколы часто называют протоколами разрешения адресов — Address Resolution Protocol, ARP. Разрешение адресов может производиться при помощи широковещательного опроса компьютеров сети.
Протоколы сетевого уровня реализуются программными модулями операционной системы, а также программными и аппаратными средствами маршрутизаторов.
Дата добавления: 2018-11-26; просмотров: 1375;