В данной главе дается раз'яснение основных концепций об'единения сетей. Представленная здесь основополагающая информация поможет читателю понять тот технический материал, из которого составлена большая часть данной публикации. В главу включены разделы, касающиеся эталонной модели OSI, важные термины и концепции, а также перечень основных организаций по стандартизации сетей.
Перемещение информации между компьютерами различных схем является чрезвычайно сложной задачей. В начале 1980 гг. Международная Организация по Стандартизации (ISO) признала необходимость в создания модели сети, которая могла бы помочь поставщикам создавать реализации взаимодействующих сетей. Эту потребность удовлетворяет эталонная модель "Взаимодействие Открытых Систем" (OSI), выпущенная в 1984 г.
Эталонная модель OSI быстро стала основной архитектурной моделью для передачи межкомпьютерных сообщений. Несмотря на то, что были разработаны другие архитектурные модели (в основном патентованные), большинство поставщиков сетей, когда им необходимо предоставить обучающую информацию пользователям поставляемых ими изделий, ссылаются на них как на изделия для сети, соответствующей эталонной модели OSI. И действительно, эта модель является самым лучшим средством, имеющемся в распоряжении тех, кто надеется изучить технологию сетей.
Эталонная модель OSI делит проблему перемещения информации между компьютерами через среду сети на семь менее крупных, и следовательно, более легко разрешимых проблем. Каждая из этих семи проблем выбрана потому, что она относительно автономна, и следовательно, ее легче решить без чрезмерной опоры на внешнюю информацию.
Каждая из семи областей проблемы решалась с помощью одного из уровней модели. Большинство устройств сети реализует все семь уровней. Однако в режиме потока информации некоторые реализации сети пропускают один или более уровней. Два самых низших уровня OSI реализуются аппаратным и программным обеспечением; остальные пять высших уровней, как правило, реализуются программным обеспечением.
Справочная модель OSI описывает, каким образом информация проделывает путь через среду сети (например, провода) от одной прикладной программы (например, программы обработки крупноформатных таблиц) до другой прикладной программы, находящейся в другом компьютере. Т.к.информация, которая должна быть отослана, проходит вниз через уровни системы, по мере этого продвижения она становится все меньше похожей на человеческий язык и все больше похожей на ту информацию, которую понимают компьютеры, а именно "единицы" и "нули".
В качесте примера связи типа OSI предположим, что Система А на Рис. 1-1 имеет информацию для отправки в Систему В. Прикладная программа Системы А сообщается с Уровнем 7 Системы А (верхний уровень), который сообщается с Уровнем 6 Системы А, который в свою очередь сообщается с Уровнем 5 Системы А, и т.д. до Уровня 1 Системы А. Задача Уровня 1 - отдавать (а также забирать) информацию в физическую среду сети. После того, как информация проходит через физическую среду сети и поглащается Системой В, она поднимается через слои Системы В в обратном порядке (сначала Уровень 1 , затем Уровень 2 и т.д.), пока она наконец не достигнет прикладную программу Системы В.
Хотя каждый из уровней Системы А может сообщаться со смежными уровнями этой системы, их главной задачей является сообщение с соответствующими уровнями Системы В. Т.е. главной задачей Уровня 1 Системы А является связь с Уровнем 1 Системы В; Уровень 2 Системы А сообщается с Уровнем 2 Системы В и т.д. Это необходимо потому, что каждый уровень Системы имеет свои определенные задачи, которые он должен выполнять. Чтобы выполнить эти задачи, он должен сообщаться с соответствующим уровнем в другой системе.
Уровневая модель OSI исключает прямую связь между соответствующими уровнями других систем. Следовательно, каждый уровень Системы А должен полагаться на услуги, предоставляемые ему смежными уровнями Системы А, чтобы помочь осуществить связь с соответствующим ему уровнем Системы В. Взаимоотношения между смежными уровнями отдельной системы показаны на Рис.1-2.
Предположим, что Уровень 4 Системы А должен связаться с Уровнем 4 Системы В. Чтобы выполнить эту задачу, Уровень 4 Системы А должен воспользоваться услугами Уровня 3 Системы А. Уровень 4 называется "пользователем услуг", а Уровень 3 - "источником услуг". Услуги Уровня 3 обеспечиваются Уровню 4 в "точке доступа к услугам" (SAP), которая представляет собой просто местоположение, в котором Уровень 4 может запросить услуги Уровня 3. Как видно из рисунка, Уровень 3 может предоставлять свои услуги множеству об'ектов Уровня 4.
Каким образом Уровень 4 Системы В узнает о том, что необходимо
Уровню 4 Системы А? Специфичные запросы Уровня А запоминаются как
управляющая информация, которая передается между соответствующими
уровнями в блоке, называемом заголовком; заголовок предшествуют
фактической прикладной информации. Например, предположим, что
Система А хочет отправить в Систему В следующий текст (называемый
"данные" или "информация"):
The small grey cat ran up the wall to try to catch
the red bird.
Этот текст передается из прикладной программы Системы А в верхний уровень этой системы. Прикладной уровень Системы А должен передать определенную информацию в прикладной уровень Системы В, поэтому он помещает управляющую информацию (в форме кодированного заголовка) перед фактическим текстом, который должен быть передан. Этот информационный блок передается в Уровень 6 Системы А, который может предварить его своей собственной управляющей информацией. Размеры сообщения увеличиваются по мере того, как оно проходит вниз через уровни до тех пор, пока не достигнет сети, где оригинальный текст и вся связанная с ним управляющая информация перемещаются к Системе В, где они поглащаются Уровнем 1 Системы В. Уровень 1 Системы В отделяет заголовок уровня 1 и прочитывает его, после чего он знает, как обрабатывать данный информационный блок. Слегка уменьшенный в размерах информационный блок передается в Уровень 2, который отделяет заголовок Уровня 2, анализирует его, чтобы узнать о действиях, которые он должен выполнить, и т.д. Когда информационный блок наконец доходит до прикладной программы Системы В, он должен содержать только оригинальный текст.
Концепция заголовка и собственно данных относительна и зависит от перспективы того уровня, который в данный момент анализирует информационный блок. Например, в Уровне 3 информационный блок состоит из заголовка Уровня 3 и следующими за ним данными. Однако данные Уровня 3 могут содержать заголовки Уровней 4, 5, 6 и 7. Кроме того, заголовок Уровня 3 является просто данными для Уровня 2. Эта концепция иллюстрируется на Рис. 1-3. И наконец, не все уровни нуждаются в присоединении заголовков. Некоторые уровни просто выполняют трансформацию фактических данных, которые они получают, чтобы сделать их более или менее читаемыми для смежных с ними уровней.
Эталонная модель OSI не является реализацией сети. Она только определяет функции каждого уровня. В этом отношении она напоминает план для постройки корабля. Точно также, как для выполнения фактической работы по плану могут быть заключены контракты с любым количеством кораблестроительных компаний, любое число поставщиков сети могут построить протокол реализации по спецификации протокола. И если этот план не будет предельно понятным, корабли, построенные различными компаниями, пользующимися одним и тем же планом, пусть незначительно, но будут отличаться друг от друга. Примером самого незначительного отличия могут быть гвозди, забитые в разных местах.
Чем об'ясняется разница в реализациях одного и того же плана корабля (или спецификации протокола)? Частично эта разница вызвана неспособностью любой спецификации учесть все возможные детали реализации. Кроме того, разные люди, реализующие один и тот же проект, всегда интерпретируют его немного по-разному. И наконец, неизбежные ошибки реализации приводят к тому, что изделия разных реализаций отличаются исполнением. Этим об'ясняется то, что реализация протокола Х одной компании не всегда взаимодействует с реализацией этого протокола, осуществленной другой компанией.
После того, как стали понятными основные особенности принципа деления на уровни модели OSI, можно приступить к обсуждению каждого отдельного уровня и его функций. Каждый уровень имеет заранее заданный набор функций, которые он должен выполнить для того, чтобы связь могла состояться.
Прикладной уровень идентифицирует и устанавливает наличие предполагаемых партнеров для связи, синхронизирует совместно работающие прикладные программы, а также устанавливает соглашение по процедурам устранения ошибок и управления целостностью информации. Прикладной уровень также определяет, имеется ли в наличии достаточно ресурсов для предполагаемой связи.
Представительный уровень занят не только форматом и представлением фактических данных пользователя, но также структурами данных, которые используют программы. Поэтому кроме трансформации формата фактических данных (если она необходима), представительный уровень согласует синтаксис передачи данных для прикладного уровня.
Транспортный уровень пытается обеспечить услуги по транспортировке данных, которые избавляют высшие слои от необходимости вникать в ее детали. В частности, заботой транспортного уровня является решение таких вопросов, как выполнение надежной транспортировки данных через об'единенную сеть. Предоставляя надежные услуги, транспортный уровень обеспечивает механизмы для установки, поддержания и упорядоченного завершения действия виртуальных каналов, систем обнаружения и устранения неисправностей транспортировки и управления информационным потоком (с целью предотвращения переполнения системы данными из другой системы).
Т.к. две конечные системы, желающие организовать связь, может разделять значительное географическое расстояние и множество подсетей, сетевой уровень является доменом маршрутизации. Протоколы маршрутизации выбирают оптимальные маршруты через последовательность соединенных между собой подсетей. Традиционные протоколы сетевого уровня передают информацию вдоль этих маршрутов.
Наука об об'единении сетей, как и другие науки, имеет свою собственную терминологию и научную базу. К сожалению, ввиду того, что наука об об'единении сетей очень молода, пока что не достигнуто единое соглашение о значении концепций и терминов об'единенных сетей. По мере дальнейшего совершенствования индустрии об'единенных сетей определение и использование терминов будут более четкими.
Существенным компонентом любой системы сети является оперделение местонахождения компьютерных систем. Существуют различные схемы адресации, используемые для этой цели, которые зависят от используемого семейства протоколов. Другими словами, адресация AppleTalk отличается от адресации TCP/IP, которая в свою очередь отличается от адресации OSI, и т.д.
Двумя важными типами адресов являются адреса канального уровня и адреса сетевого уровня. Адреса канального уровня (называемые также физическими или аппаратными адресами), как правило, уникальны для каждого сетевого соединения. У большинства локальных сетей (LAN) адреса канального уровня размещены в схеме интерфейса; они назначаются той организацией, которая определяет стандарт протокола, представленный этим интерфейсом. Т.к. большинство компьютерных систем имеют одно физическое сетевое соединение, они имеют только один адрес канального уровня. Роутеры и другие системы, соединенные с множеством физических сетей, могут иметь множество адресов канального уровня. В соответствии с названием, адреса канального уровня существуют на Уровне 2 эталонной модели ISO.
Aдреса сетевого уровня (называемые также виртуальными или логическими адресами) существуют на Уровне 3 эталонной модели OSI. В отличие от адресов канального уровня, которые обычно существуют в пределах плоского адресного пространства, адреса сетевого уровня обычно иерархические. Другими словми, они похожи на почтовые адреса, которые описывают местонахождение человека, указывая страну, штат, почтовый индекс, город, улицу, адрес на этой улице и наконец, имя. Хорошим примером одноуровневой адресации является номерная система социальной безопасности США, в соответствии с которой каждый человек имеет один уникальный номер, присвоенный ему службой безопасности.
Иерархические адреса делают сортировку адресов и повторный вызов более легкими путем исключения крупных блоков логически схожих адресов в процессе последовательности операций сравнения. Например, можно исключить все другие страны, если в адресе указана страна "Ирландия". Легкость сортировки и повторного вызова являются причиной того, что роутеры используют адреса сетевого уровня в качестве базиса маршрутизации.
Адреса сетевого уровня различаются в зависимости от используемого семейства протоколов, однако они, как правило, используют соответствующие логические разделы для нахождения компьютерных систем в об'единенной сети. Некоторые из этих логических разделов базируются на физических характеристиках сети (таких, как сегмент сети, в котором находится какая-нибудь система); другие логические разделы базируются на группировках, не имеющих физического базиса (например, "зона" AppleTalk).
Блоки данных, пакеты и сообщения
После того, как по адресам установили местоположение компьютерных систем, может быть произведен обмен информацией между двумя или более системами. В литературе по об'единенным сетям наблюдается непоследовательность в наименовании логически сгруппированных блоков информации, которая перемещается между компьютерными системами. "блок данных", "пакет", "блок данных протокола", "PDU", "сегмент", "сообщение" - используются все эти и другие термины, в зависимости от прихоти тех, кто пишет спецификации протоколов.
В настоящей работе термин "блок данных" (frame) обозначает блок информации, источником и пунктом назначения которого являются об'екты канального уровня. Термин "пакет" (packet) обозначает блок информации, у которого источник и пункт назначения - об'екты сетевого уровня. И наконец, термин "сообщение" (message) oбoзначает информационный блок, у которого об'екты источника и места назначения находятся выше сетевого уровня. Термин "сообщение" используется также для обозначения отдельных информационных блоков низших уровней, которые имеют специальное, хорошо сформулированное назначение.
Без услуг нескольких основных организаций по стандартизации, в области об'единенных сетей было бы значительно больше хаоса, чем его имеется в настоящее время. Организации по стандартизации обеспечивают форум для дискуссий, помогают превратить результаты дискуссий в официальные спецификации, а также распространяют эти спецификации после завершения процесса стандартизации.
Большинство организаций по стандартизации выполняют специфичные процессы, чтобы превратить идеи в официальные стандарты. И хотя у различных организаций эти процессы немного отличаются, они схожи в том, что проходят через несколько раундов организации идей, обсуждения этих идей, разработки проектов стандартов, голосования по всем или некоторым аспектам этих стандартов и наконец, официального выпуска завершенных стандартов.