Что такое сетевая модель OSI. Уровни модели OSI. Как работают сетевые устройства согласно сетевой модели OSI

Только начали работать сетевым администратором? Не хотите оказаться сбитым с толку? Наша статья вам пригодится. Слышали, как проверенный временем администратор говорит о сетевых неполадках и упоминает какие-то уровни? Может вас когда-нибудь спрашивали на работе, какие уровни защищены и работают, если вы используете старый брандмауэр? Чтобы разобраться с основами информационной безопасности, нужно понять принцип иерархии модели OSI. Попробуем увидеть возможности данной модели.

Уважающий себя системный администратор должен хорошо разбираться в сетевых терминах

В переводе с английского - базовая эталонная модель взаимодействия открытых систем. Точнее, сетевая модель стека сетевых протоколов OSI/ISO. Введена в 1984 году в качестве концептуальной основы, разделившей процесс отправки данных во всемирной паутине на семь несложных этапов. Она не является самой популярной, так как затянулась разработка спецификации OSI. Стек протоколов TCP/IP выгоднее и считается основной используемой моделью. Впрочем, у вас есть огромный шанс столкнуться с моделью OSI на должности системного администратора или в IT-сфере.

Создано множество спецификаций и технологий для сетевых устройств. В таком разнообразии легко запутаться. Именно модель взаимодействия открытых систем помогает понимать друг друга сетевым устройствам, использующим различные методы общения. Заметим, что наиболее полезна OSI для производителей программного и аппаратного обеспечения, занимающихся проектированием совместимой продукции.

Спросите, какая же в этом польза для вас? Знание многоуровневой модели даст вам возможность свободного общения с сотрудниками IT-компаний, обсуждение сетевых неполадок уже не будет гнетущей скукой. А когда вы научитесь понимать, на каком этапе произошёл сбой, сможете легко находить причины и значительно сокращать диапазон своей работы.

Уровни OSI

Модель содержит в себе семь упрощённых этапов:

  • Физический.
  • Канальный.
  • Сетевой.
  • Транспортный.
  • Сеансовый.
  • Представительский.
  • Прикладной.

Почему разложение на шаги упрощает жизнь? Каждый из уровней соответствует определённому этапу отправки сетевого сообщения . Все шаги последовательны, значит, функции выполняются независимо, нет необходимости в информации о работе на предыдущем уровне. Единственная необходимая составляющая - способ получения данных с предшествующего шага, и каким образом пересылается информация на последующий шаг.

Перейдём к непосредственному знакомству с уровнями.

Физический уровень

Главная задача первого этапа - пересылка битов через физические каналы связи. Физические каналы связи - устройства, созданные для передачи и приёма информационных сигналов. К примеру, оптоволокно, коаксиальный кабель или витая пара. Пересылка может проходить и через беспроводную связь. Первый этап характеризуется средой передачи данных: защитой от помех, полосой пропускания, волновым сопротивлением. Так же задаются качества электрических конечных сигналов (вид кодирования, уровни напряжения и скорость передачи сигнала) и подводятся к стандартным типам разъёмов, назначаются контактные соединения.

Функции физического этапа осуществляются абсолютно на каждом устройстве, подключённом к сети. Например, сетевой адаптер реализовывает эти функции со стороны компьютера. Вы могли уже столкнуться с протоколами первого шага: RS -232, DSL и 10Base-T, определяющими физические характеристики канала связи.

Канальный уровень

На втором этапе связываются абстрактный адрес устройства с физическим устройством, проверяется доступность среды передачи. Биты сформировываются в наборы - кадры. Основная задача канального уровня - выявление и правка ошибок. Для корректной пересылки перед и после кадра вставляются специализированные последовательности битов и добавляется высчитанная контрольная сумма . Когда кадр достигает адресата, вновь высчитывается контрольная сумма, уже прибывших данных, если она совпадает с контрольной суммой в кадре, кадр признаётся правильным. В ином случае появляется ошибка, исправляемая через повторную передачу информации.

Канальный этап делает возможным передачу информации, благодаря специальной структуре связей. В частности, через протоколы канального уровня работают шины, мосты, коммутаторы. В спецификации второго шага входят: Ethernet, Token Ring и PPP. Функции канального этапа в компьютере исполняют сетевые адаптеры и драйверы к ним.

Сетевой уровень

В стандартных ситуациях функций канального этапа не хватает для высококачественной передачи информации. Спецификации второго шага могут передавать данные лишь между узлами с одинаковой топологией, к примеру, дерева. Появляется необходимость в третьем этапе. Нужно образовать объединённую транспортную систему с разветвлённой структурой для нескольких сетей, обладающих произвольной структурой и различающихся методом пересылки данных.

Если объяснить по-другому, то третий шаг обрабатывает интернет-протокол и исполняет функцию маршрутизатора: поиск наилучшего пути для информации. Маршрутизатор - устройство, собирающее данные о структуре межсетевых соединений и передающее пакеты в сеть назначения (транзитные передачи - хопы). Если вы сталкиваетесь с ошибкой в IP-адресе, то это проблема, возникшая на сетевом уровне. Протоколы третьего этапа разбиваются на сетевые, маршрутизации или разрешения адресов: ICMP, IPSec, ARP и BGP.

Транспортный уровень

Чтобы данные дошли до приложений и верхних уровней стека, необходим четвёртый этап. Он предоставляет нужную степень надёжности передачи информации. Значатся пять классов услуг транспортного этапа. Их отличие заключается в срочности, осуществимости восстановления прерванной связи, способности обнаружить и исправить ошибки передачи. К примеру, потеря или дублирование пакетов.

Как выбрать класс услуг транспортного этапа? Когда качество каналов транспортировки связи высокое, адекватным выбором окажется облегчённый сервис. Если каналы связи в самом начале работают небезопасно, целесообразно прибегнуть к развитому сервису, который обеспечит максимальные возможности для поиска и решения проблем (контроль поставки данных, тайм-ауты доставки). Спецификации четвёртого этапа: TCP и UDP стека TCP/IP, SPX стека Novell.

Объединение первых четырёх уровней называется транспортной подсистемой. Она сполна предоставляет выбранный уровень качества.

Сеансовый уровень

Пятый этап помогает в регулировании диалогов. Нельзя, чтобы собеседники прерывали друг друга или говорили синхронно. Сеансовый уровень запоминает активную сторону в конкретный момент и синхронизирует информацию, согласуя и поддерживая соединения между устройствами. Его функции позволяют возвратиться к контрольной точке во время длинной пересылки и не начинать всё заново. Также на пятом этапе можно прекратить соединение, когда завершается обмен информацией. Спецификации сеансового уровня: NetBIOS.

Представительский уровень

Шестой этап участвует в трансформации данных в универсальный распознаваемый формат без изменения содержания. Так как в разных устройствах утилизируются различные форматы, информация, обработанная на представительском уровне, даёт возможность системам понимать друг друга, преодолевая синтаксические и кодовые различия. Кроме того, на шестом этапе появляется возможность шифровки и дешифровки данных, что обеспечивает секретность. Примеры протоколов: ASCII и MIDI, SSL.

Прикладной уровень

Седьмой этап в нашем списке и первый, если программа отправляет данные через сеть. Состоит из наборов спецификаций, через которые юзер , Web-страницам. Например, при отправке сообщений по почте именно на прикладном уровне выбирается удобный протокол. Состав спецификаций седьмого этапа очень разнообразен. К примеру, SMTP и HTTP, FTP, TFTP или SMB.

Вы можете услышать где-нибудь о восьмом уровне модели ISO. Официально, его не существует, но среди работников IT-сферы появился шуточный восьмой этап. Всё из-за того, что проблемы могут возникнуть по вине пользователя, а как известно, человек находится у вершины эволюции, вот и появился восьмой уровень.

Рассмотрев модель OSI, вы смогли разобраться со сложной структурой работы сети и теперь понимаете суть вашей работы. Всё становится довольно просто, когда процесс разбивается на части!

Понятие “открытая система” и проблемы стандартизации

Универсальный тезис о пользе стандартизации, справедливый для всех отраслей, в компьютерных сетях приобретает особое значение. Суть сети - это соединение разного оборудования, а значит, проблема совместимости является одной из наи­более острых. Без принятия всеми производителями общепринятых правил пост­роения оборудования прогресс в деле “строительства” сетей был бы невозможен. Поэтому все развитие компьютерной отрасли в конечном счете отражено в стан­дартах - любая новая технология только тогда приобретает “законный” статус, когда ее содержание закрепляется в соответствующем стандарте.

В компьютерных сетях идеологической основой стандартизации является мно­гоуровневый подход к разработке средств сетевого взаимодействия. Именно на основе этого подхода была разработана стандартная семиуровневая модель взаи­модействия открытых систем, ставшая своего рода универсальным языком сетевых специалистов.

Многоуровневый подход. Протокол. Интерфейс. Стек протоколов

Организация взаимодействия между устройствами в сети является сложной зада­чей. Как известно, для решения сложных задач используется универсальный при­ем - декомпозиция, то есть разбиение одной сложной задачи на несколько более простых задач-модулей (рис. 1.20). Процедура декомпозиции включает в себя четкое определение функций каждого модуля, решающего отдельную задачу, и интер­фейсов между ними. В результате достигается логическое упрощение задачи, а кроме того, появляется возможность модификации отдельных модулей без изменения остальной части системы.

При декомпозиции часто используют многоуровневый подход. Он заключается в следующем. Все множество модулей разбивают на уровни. Уровни образуют иерар­хию, то есть имеются вышележащие и нижележащие уровни (рис. 1.21). Множе­ство модулей, составляющих каждый уровень, сформировано таким образом, что для выполнения своих задач они обращаются с запросами только к модулям не­посредственно примыкающего нижележащего уровня. С другой стороны, результа­ты работы всех модулей, принадлежащих некоторому уровню,могут быть переданы только модулям соседнего вышележащего уровня. Такая иерархическая деком­позиция задачи предполагает четкое определение функции каждого уровня и интерфейсов между уровнями. Интерфейс определяет набор функций, которые нижележащий уровень предоставляет вышележащему. В результате иерархической декомпозиции достигается относительная независимость уровней, а значит, и воз­можность их легкой замены.

При этом модули нижне­го уровня могут, например, решать все вопросы, связанные с надежной передачей электрических сигналов между двумя соседними узлами. Модули более высокого уровня организуют транспортировку сообщений в пределах всей сети, пользуясь для этого средствами упомянутого нижележащего уровня. А на верхнем уровне работают модули, предоставляющие пользователям доступ к различным службам - файловой, печати и т. п. Конечно, это только один из множествавозможных вариантов деления общей задачи организации сетевого взаимодействия на частные под­задачи.

Многоуровневый подход к описанию и реализации функций системы применя­ется не только в отношении сетевых средств. Такая модель функционирования используется, например, в локальных файловых системах, когда поступивший за­прос на доступ к файлу последовательно обрабатывается несколькими программ­ными уровнями (рис. 1.22). Запрос вначале анализируется верхним уровнем, на котором осуществляется последовательный разбор составного символьного имени файла и определение уникального идентификатора файла. Следующий уровень находит по уникальному имени все основные характеристики файла: адрес, атри­буты доступа и т. п. Затем на более низком уровне осуществляется проверка прав доступа к этому файлу, а далее, после расчета координат области файла, содержа­щей требуемые данные, выполняется физический обмен с внешним устройством с помощью драйвера диска.

Многоуровневое представление средств сетевого взаимодействия имеет свою специфику, связанную с тем, что в процессе обмена сообщениями участвуют две машины, то есть в данном случае необходимо организовать согласованную работу двух “иерархий”. При передаче сообщений оба участника сетевого обмена должны принять множество соглашений. Например, они должны согласовать уровни и форму электрических сигналов, способ определения длины сообщений, договориться о методах контроля достоверности и т. п. Другими словами, соглашения должны быть приняты для всех уровней, начиная от самого низкого - уровня передачи битов - до самого высокого, реализующего сервис для пользователей сети.

На рис. 1.23 показана модель взаимодействия двух узлов. С каждой стороны средства взаимодействия представлены четырьмя уровнями. Процедура взаимо­действия этих двух узлов может быть описана в виде набора правил взаимодей­ствия каждой пары соответствующих уровней обеих участвующих сторон.

Формализованные правила, определяющие последовательность и формат сообщений, которыми обмениваются сетевые компоненты, лежащие на одном уровне, но в разных узлах, называются протоколом.

Модули, реализующие протоколы соседних уровней и находящиеся в одном узле, также взаимодействуют друг с другом в соответствии с четко определенными правилами и с помощью стандартизованных форматов сообщений. Эти правила принято называть интерфейсом. Интерфейс определяет набор сервисов, предо­ставляемый данным уровнем соседнему уровню.

В сущности, протокол и интер­фейс выражают одно и то же понятие, но традиционно в сетях за ними закрепили разные области действия: протоколы определяют правила взаимодействия моду­лей одного уровня в разных узлах, а интерфейсы - модулей соседних уровней в одном узле.

Средства каждого уровня должны отрабатывать, во-первых, свой собственный протокол, а во-вторых, интерфейсы с соседними уровнями.

Иерархически организованный набор протоколов, достаточный для организа­ции взаимодействия узлов в сети, называется стеком коммуникационных прото­колов.

Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней часто реализуются комбинацией программ­ных и аппаратных средств, а протоколы верхних уровней - как правило, чисто программными средствами.

Программный модуль, реализующий некоторый протокол, часто для краткости также называют “протоколом”.При этом соотношение между протоколом - фор­мально определенной процедурой и протоколом - программным модулем, реали­зующим эту процедуру, аналогично соотношению между алгоритмом решения некоторой задачи и программой, решающей эту задачу.

Понятно, что один и тот же алгоритм может быть запрограммирован с разной степенью эффективности. Точно так же и протокол может иметь несколько про­граммных реализации. Именно поэтому при сравнении протоколов следует учиты­вать не только логику их работы, но и качество программных решений. Более того, на эффективность взаимодействия устройств в сети влияет качество всей совокуп­ности протоколов, составляющих стек, в частности, насколько рационально рас­пределены функции между протоколами разных уровней и насколько хорошо определены интерфейсы междуними.

Модель OSI

Из того, что протокол является соглашением, принятым двумя взаимодействую­щими объектами, в данном случае двумя работающими в сети компьютерами, со­всем не следует, что он обязательно является стандартным. Но на практике при реализации сетей стремятся использовать стандартные протоколы. Это могут быть фирменные, национальные или международные стандарты.

В начале 80-х годов ряд международных организаций по стандартизации - ISO, ITU-T и некоторые другие, разработали модель, которая сыграла значительную роль в развитии сетей. Эта модель называется моделью взаимодействия открытых систем (Open System Interconnection , OSI ) или моделью OSI. Модель OSI определя­ет различные уровни взаимодействия систем, дает им стандартные имена и указы­вает, какие функции должен выполнять каждый уровень. Модель OSI была разработана на основании большого опыта, полученного при создании компьютер­ных сетей, в основном глобальных, в 70-е годы. Полное описание этой модели занимает более 1000 страниц текста.

В модели OSI (рис. 1.25) средства взаимодействия делятся на семь уровней:

    Прикладной

    Представительный

    Сеансовый

    Транспортный

    Сетевой

    Канальный

    Физический.

Каждый уровень имеет дело с одним определенным аспектом взаимо­действия сетевых устройств.

Модель OSI описывает только системные средства взаимодействия, реализуе­мые операционной системой, системными утилитами, системными аппаратными средствами. Модель не включает средства взаимодействия приложений конечных пользователей. Свои собственные протоколы взаимодействия приложения реали­зуют, обращаясь к системным средствам. Поэтому необходимо различать уровень взаимодействия приложений и прикладной уровень.

Следует также иметь в виду, что приложение может взять на себя функции некоторых верхних уровней модели OSI. Например, некоторые СУБД имеют встро­енные средства удаленного доступа к файлам. В этом случае приложение, выпол­няя доступ к удаленным ресурсам, не использует системную файловую службу: оно обходит верхние уровни модели OSI и обращается напрямую к системным средствам, ответственным за транспортировку сообщений по сети, которые распо­лагаются на нижних уровнях модели OSI.

Итак, пусть приложение обращается с запросом к прикладному уровню, напри­мер к файловой службе. На основании этого запроса программное обеспечение прикладного уровня формирует сообщение стандартного формата. Обычное сооб­щение состоит из заголовка и поля данных. Заголовок содержит служебную информацию, которую необходимо передать через сеть прикладному уровню ма­шины-адресата, чтобы сообщить ему, какую работу надо выполнить. В нашем слу­чае заголовок, очевидно, должен содержать информацию о месте нахождения файла и о типе операции, которую необходимо над ним выполнить. Поле данных сообще­ния может быть пустым или содержать какие-либо данные, например те, которые необходимо записать в удаленный файл. Но для того чтобы доставить эту ин­формацию по назначению, предстоит решить еще много задач, ответственность за которые несут нижележащие уровни.

После формирования сообщения прикладной уровень направляет его вниз по стеку представительному уровню. Протокол представительного уровня на основа­нии информации, полученной из заголовка прикладного уровня, выполняет требу­емые действия и добавляет к сообщению собственную служебную информацию - заголовок представительного уровня, в котором содержатся указания для протоко­ла представительного уровня машины-адресата. Полученное в результате сообще­ние передается вниз сеансовому уровню, который в свою очередь добавляет свой заголовок, и т. д. (Некоторые реализации протоколов помещают служебную ин­формацию не только в начале сообщения в виде заголовка, но и в конце, в виде так называемого “концевика”-.) Наконец, сообщение достигает нижнего, физического уровня, который собственно и передает его по линиям связи машине-адресату. К этому моменту сообщение “обрастает” заголовками всех уровней (рис. 1.26).

Когда сообщение по сети поступает на машину-адресат, оно принимается ее физическим уровнем и последовательно перемещается вверх с уровня на уровень. Каждый уровень анализирует и обрабатываетзаголовок своего уровня, выполняя соответствующие данному уровню функции, а затем удаляет этот заголовок и пе­редает сообщение вышележащему уровню.

Наряду с термином сообщение (message ) существуют и другие термины, приме­няемые сетевыми специалистами для обозначения единиц данных в процедурах обмена. В стандартах ISO для обозначения единиц данных, с которымиимеют дело протоколы разных уровней, используется общее название протокольный блок данных ( Protocol Data Unit , PDU ). Для обозначения блоков данных определенныхуровней- часто используются специальные названия: кадр (frame), пакет (packet), дейта­грамма (datagram), сегмент (segment).

В модели OSI различаются два основных типа протоколов.В протоколах с установлением соединения (connection - oriented ) перед обменом данными отправитель и получатель должны сначала установить соединение и, возможно, выбрать неко­торые параметры протокола, которые они будут использовать приобмене данны­ми.После завершения диалога они должны разорвать этосоединение. Телефон - это примервзаимодействия, основанного на установлениисоединения.

Вторая группа протоколов - протоколы без предварительного установления со­единения (connectionless ). Такие протоколы называются также дейтаграммнылш про­токолами. Отправитель просто передает сообщение, когда оно готово. Опускание письма в почтовый ящик - это пример связи без предварительного установления соединения. При взаимодействии компьютеров используются протоколы обоих типов.

Уровни модели OSI

Физический уровень

физический уровень (Physical layer) имеет дело с передачей битов по физическим каналам связи, таким, например, как коаксиальный кабель, витая пара, оптоволо­конный кабель или цифровой территориальный канал. К этому уровню имеют отношение характеристики физических сред передачи данных, такие как полоса пропускания, помехозащищенность, волновое сопротивление и другие. На этом же уровне определяются характеристики электрических сигналов, передающих диск­ретную информацию, например, крутизна фронтов импульсов, уровни напряже­ния или тока передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме этого, здесь стандартизуются типы разъемов и назначение каждого контакта.

Функции физического уровня реализуются во всех устройствах, подключен­ных к сети. Со стороны компьютера функции физического уровнявыполняютсясетевым адаптером или последовательным портом.

Примером протокола физического уровняможет служить спецификация1OBase- Tтехнологии Ethernet, которая определяет в качестве используемого кабеля неэкра­нированную витую пару категории 3 с волновым сопротивлением100 Ом, разъемRJ-45, максимальную длину физического сегмента 100 метров,манчестерский код для представления данных в кабеле, а также некоторые другие характеристики среды и электрических сигналов.

Канальный уровень

На физическом уровне просто пересылаются биты. При этом не учитывается, что в некоторых сетях, в которых линии связи используются (разделяются) поперемен­но несколькими парами взаимодействующих компьютеров, физическая среда пе­редачи может быть занята. Поэтому одной из задач канального уровня (Data Link layer) является проверка доступности среды передачи. Другой задачей канальногоуровня является реализация механизмов обнаружения и коррекции ошибок.Дляэтого на канальном уровне биты группируются в наборы, называемые кадрами (frames ). Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность бит в начало и конец каждого кадра, для его выделения, а также вычисляет контрольную сумму, обрабатывая всебайтыкадра определенным способом и добавлял контрольную сумму к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпада­ют, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровеньможет не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Необходимо отметить, что функция исправления ошибок не является обя­зательной для канального уровня, поэтому в некоторых протоколах этого уровня она отсутствует, например, в Ethernet и frame relay.

В протоколах канального уровня, используемых в локальных сетях, заложена определенная структура связей между компьютерами и способы их адресации. Хотя канальный уровень и обеспечивает доставку кадра между любыми двумя узлами локальной сети, он это делает только в сети с совершенно определенной топологи­ей связей, именно той топологией, для которой он был разработан. К таким типо­вым топологиям, поддерживаемым протоколами канального уровня локальных сетей, относятся общая шина, кольцо и звезда, а также структуры, полученные из них с помощью мостов и коммутаторов. Примерами протоколов канального уров­ня являются протоколы Ethernet, Token Ring, FDDI, lOOVG-AnyLAN.

В локальных сетях протоколы канального уровня используются компьютерами, мостами, коммутаторами и маршрутизаторами. В компьютерах функции канально­го уровня реализуются совместными усилиями сетевых адаптеров и их драйверов.

В глобальных сетях, которые редко обладают регулярной топологией, каналь­ный уровень часто обеспечивает обмен сообщениями только между двумя соседни­ми компьютерами, соединенными индивидуальной линией связи. Примерами протоколов “точка-точка” (как часто называют такие протоколы) могут служить широко распространенные протоколы РРР и LAP-B. В таких случаях для достав­ки сообщений между конечными узлами через всю сеть используются средства сетевого уровня. Именно так организованы сети Х.25. Иногда в глобальных сетях функции канального уровня в чистом виде выделить трудно, так как в одном и том же протоколе они объединяются с функциями сетевого уровня. Примерами такого подхода могут служить протоколы технологий АТМ и frame relay.

В целом канальный уровень представляет собой весьма мощный и законченный набор функций по пересылке сообщений между узлами сети. В некоторых случаях протоколы канального уровня оказываются самодостаточными транспортными средствами и могут допускать работу поверх них непосредственно протоколов при­кладного уровня или приложений, без привлечения средств сетевого и транспорт­ного уровней. Например, существует реализация протокола управления сетью SNMP непосредственно поверх Ethernet, хотя стандартно этот протокол работает поверх сетевого протокола IP и транспортного протокола UDP. Естественно, что примене­ние такой реализации будет ограниченным - она не подходит для составных сетей разных технологий, например Ethernet и Х.25, и даже для такой сети, в которой во всех сегментах применяется Ethernet, но между сегментами существуют петлевид-ные связи. А вот в двухсегментной сети Ethernet, объединенной мостом, реализа­ция SNMP над канальным уровнем будет вполне работоспособна.

Тем не менее, для обеспечения качественной транспортировки сообщений в се­тях любых топологий и технологий функций канального уровня оказывается недо­статочно, поэтому в модели OSI решение этой задачи возлагается на два следующих уровня - сетевой и транспортный.

Сетевой уровень

Сетевой уровень (Network layer) служит для образования единой транспортной системы, объединяющей несколько сетей, причемэти сети могут использовать совершенно различные принципы передачи сообщений между конечными узлами и обладать произвольной структурой связей. Функции сетевого уровня достаточно разнообразны. Начнем их рассмотрение на примере объединения локальных сетей.

Протоколы канального уровня локальных сетей обеспечивают доставку данных между любыми узлами только в сети с соответствующей типовой топологией, на­пример топологией иерархической звезды. Это очень жесткое ограничение, кото­рое не позволяет строить сети с развитой структурой, например, сети, объединяющие несколько сетей предприятия в единую сеть, или высоконадежные сети, в которых существуют избыточные связи между узлами. Можно было бы усложнять прото­колы канального уровня для поддержания петлевидных избыточных связей, но принцип разделения обязанностей между уровнями приводит к другому решению. Чтобы с одной стороны сохранить простоту процедур передачи данных для типо­вых топологии, а с другой допустить использование произвольных топологий, вво­дится дополнительный сетевой уровень.

На сетевом уровне сам термин сеть наделяют специфическим значением. В дан­ном случае под сетью понимается совокупность компьютеров, соединенных между собой в соответствии с одной из стандартных типовых топологий и использующих для передачи данных один из протоколов канального уровня, определенный для этой топологии.

Внутри сети доставка данных обеспечивается соответствующим канальным уров­нем, а вот доставкой данных между сетями занимается сетевой уровень, который и поддерживает возможность правильного выбора маршрута передачи сообщения даже в том случае, когда структура связей между составляющими сетями имеет характер, отличный от принятого в протоколах канального уровня.

Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизатор - это устройство, которое собирает инфор­мацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно со­вершить некоторое количество транзитных передач между сетями, или хопов (от hop - прыжок), каждый раз, выбирая подходящий маршрут. Таким образом, марш­рут представляет собой последовательность маршрутизаторов, через которые про­ходит пакет.

На рис. 1.27 показаны четыре сети, связанные тремя маршрутизаторами. Меж­ду узлами А и В данной сети пролегают два маршрута: первый через маршрутиза­торы 1 и 3, а второй через маршрутизаторы 1,2 и 3.

Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня. Эта проблема осложняется тем, что самый короткий путь не всегда самый лучший. Часто критерием при выборе маршрута является время передачи данных по этому маршруту; оно зависит от пропускной способности каналов связи и интенсивности графика, которая может изменяться с течением времени. Некоторые алгоритмы маршрутизации пытаются приспособиться к изменению нагрузки, в то время как другие принимают решения на основе средних показателей за длительное время. Выбор маршрута может осу­ществляться и по другим критериям, например надежности передачи.

В общем случае функции сетевого уровня шире, чем функции передачи сооб­щений по связям с нестандартной структурой, которые мы сейчас рассмотрели на примере объединения нескольких локальных сетей. Сетевой уровень решает также задачи согласования разных технологии, упрощения адресации в крупных сетях и создания надежных и гибких барьеров на пути нежелательного трафика между сетями.

Сообщения сетевого уровня принято называть пакетами (packets ). При органи­зации доставки пакетов на сетевом уровне используется понятие “номер сети”. В этом случае адрес получателя состоит из старшей части - номера сети и млад­шей - номера узла в этой сети. Все узлы одной сети должны иметь одну и ту же старшую часть адреса, поэтому термину “сеть” на сетевом уровне можно дать и другое, более формальное определение: сеть - это совокупность узлов, сетевой ад­рес которых содержит один и тот же номер сети.

На сетевом уровне определяются два вида протоколов. Первый вид - сетевые протоколы (routedprotocols ) - реализуют продвижение пакетов через сеть. Именно эти протоколы обычно имеют в виду, когда говорят о протоколах сетевого уровня. Однако часто к сетевому уровню относят и другой вид протоколов, называемых протоколами обмена маршрутной информацией или просто протоколами маршру­тизации (routing protocols ). С помощью этих протоколов маршрутизаторы собира­ют информацию о топологии межсетевых соединений. Протоколы сетевого уровня реализуются программными модулями операционной системы, а также" программ­ными и аппаратными средствами маршрутизаторов.

На сетевом уровне работают протоколы еще одного типа, которые отвечают за отображение адреса узла, используемого на сетевом уровне, в локальный адрес сети. Такие протоколы часто называют протоколами разрешения адресов - Address Resolution Protocol, ARP. Иногда их относят не к сетевому уровню, а к канальному, хотя тонкости классификации не изменяют их сути.

Примерами протоколов сетевого уровня являются протокол межсетевого взаи­модействия IP стека TCP/IP и протокол межсетевого обмена пакетами IPX стека Novell.

Транспортный уровень

На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие,которые предпочитают сразу иметь дело с надежнымсоедине­нием. Транспортный уровень (Transport layer) обеспечивает приложениям или верх­нимуровням стека - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между раз­личными прикладными протоколами через общий транспортный протокол, а глав­ное - способностью к обнаружению и исправлению ошибок передачи,таких как искажение, потеря и дублирование пакетов.

Выбор класса сервиса транспортного уровня определяется, с одной стороны, тем, в какой степени задача обеспечения надежности решается самими прило­жениями и протоколами более высоких, чем транспортный, уровней, а с другой стороны, этот выбор зависит от того, насколько надежной является система транспортировки данных в сети, обеспечиваемая уровнями, расположенными ниже транспортного - сетевым, канальным и физическим. Так, например, если качество каналов передачи связи очень высокое и вероятность возникновения ошибок, не обнаруженных протоколами более низких уровней, невелика, то разумно воспользоваться одним из облегченных сервисов транспортного уров­ня, не обремененных многочисленными проверками, квитированием и другими приемами повышения надежности. Если же транспортные средства нижних уровней изначально очень ненадежны, то целесообразно обратиться к наиболее развитому сервису транспортного уровня, который работает, используя макси­мум средств, для обнаружения и устранения ошибок, - с помощью предвари­тельного установления логического соединения, контроля доставки сообщений по контрольным суммам и циклической нумерации пакетов, установления тайм-аутов доставки и т. п.

Как правило, все протоколы, начиная с транспортного уровня и выше, реализу­ются программными средствами конечных узлов сети - компонентами их сетевых операционных систем. В качестве примера транспортных протоколов можно при­вести протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell.

Протоколы нижних четырех уровней обобщенно называют сетевым транспор­том или транспортной подсистемой, так как они полностью решают задачу транс­портировки сообщений с заданным уровнем качества в составных сетях с произвольной топологией и различными технологиями. Остальные три верхних уровня решают задачи предоставления прикладных сервисов на основании имею­щейся транспортной подсистемы.

Сеансовый уровень

Сеансовыйуровень (Session layer) обеспечивает управление диалогом: фиксирует, какая из сторон является активной в настоящий момент, предоставляет средства синхронизации. Последние позволяют вставлять контрольные точки в длинные передачи, чтобы в случае отказа можно было вернуться назад к последней конт­рольной точке, а не начинать все с начала. На практике немногие приложения используют сеансовый уровень, и он редко реализуется в виде отдельных протоко­лов, хотя функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе.

Представительный уровень

Представительный уровень (Presentation layer) имеет дело с формой представле­ния передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной си­стемы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например кодов ASCII и EBCDIC. На этом уровне может выполняться шифрование и де­шифрование данных, благодаря которому секретность обмена данными обеспечи­вается сразу для всех прикладных служб. Примером такого протокола является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сооб­щениями для протоколов прикладного уровня стека TCP/IP.

Прикладной уровень

Прикладной уровень (Application layer) - это в действительности просто набор разнообразных протоколов, с помощью которых пользователи сети получают до­ступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют свою совместную работу, например, с помо­щью протокола электронной почты. Единица данных, которой оперирует приклад­ной уровень, обычно называется сообщением (message ).

Существует очень большое разнообразие служб прикладного уровня. Приведем в качестве примера хотя бы несколько наиболее распространенных реализации файловых служб: NCP в операционной системе Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP.

Сетезависимые и сетенезависимые уровни

Функции всех уровней модели OSI могут быть отнесены к одной из двух групп:

либо к функциям, зависящим от конкретной технической реализации сети, либо к функциям, ориентированным на работу с приложениями.

Три нижних уровня - физический, канальный и сетевой - являются сетезависимыми, то есть протоколы этих уровней тесно связаны с технической реализаци­ей сети и используемым коммуникационным оборудованием. Например, переход на оборудование FDDI означает полную смену протоколов физического и каналь­ного уровней во всех узлах сети.

Три верхних уровня - прикладной, представительный и сеансовый - ориенти­рованы на приложения и мало зависят от технических особенностей построения сети. На протоколы этих уровней не влияют какие бы то ни было изменения в топологии сети, замена оборудования или переход на другую сетевую технологию. Так, переход от Ethernet на высокоскоростную технологию lOOVG-AnyLAN не по­требует никаких изменений в программных средствах, реализующих функции при­кладного, представительного и сеансового уровней.

Транспортный уровень является промежуточным, он скрывает все детали функ­ционирования нижних уровней от верхних. Это позволяет разрабатывать прило­жения, не зависящие от технических средств непосредственной транспортировки сообщений.

На рис. 1.28 показаны уровни моделиOSI, на которых работают различные элементы сети. Компьютер с установленной на нем сетевой ОС взаимодейству­ет с другим компьютером с помощью протоколов всех семи уровней.Этовзаимодействие компьютеры осуществляют опосредовано через различные коммуникационные устройства: концентраторы, модемы, мосты, коммутаторы, маршрутизаторы, мультиплексоры. В зависимости от типа коммуникационное устройство может работать либо только на физическом уровне (повторитель), либо на физическом и канальном (мост), либо на физическом, канальном и сетевом, иногда захватывая и транспортный уровень (маршрутизатор).

На рис. 1.29 показано соответствие функций различных коммуникационных устройств уровням модели OSI.

Модель OSI представляет хотя и очень важную, но только одну из многих мо­делей коммуникаций. Эти модели и связанные с ними стеки протоколов могут отличаться количеством уровней, их функциями, форматами сообщений, службами, поддерживаемыми на верхних уровнях, и прочими параметрами.

Эталонная модель OSI

Для наглядности процесс работы сети в эталонной модели OSI разде­лен на семь уровней. Эта теоретическая конструкция облегчает изу­чение и понимание довольно сложных концепций. В верхней части модели OSI располагается приложение, которому нужен доступ к ре­сурсам сети, в нижней - сама сетевая среда. По мере того как дан­ные продвигаются от уровня к уровню вниз, действующие на этих уровнях протоколы постепенно подготавливают их для передачи по сети. Добравшись до целевой системы, данные продвигаются по уров­ням вверх, причем те же протоколы выполняют те же действия, толь­ко в обратном порядке. В 1983 г. Международная организация по стандартизации (Interna­tional Organization for Standardization, ISO) и Сектор стандартизации телекоммуникаций Международного телекоммуникационного союза (Te­lecommunication Standardization Sector of International Telecommu­nication Union, ITU-T) опубликовали документ «The Basic Reference Model for Open Systems Interconnection», где была описана модель распределения сетевых функций между 7 различными уровнями (рис. 1.7). Предполагалось, что эта семиуровневая структура станет основой для нового стека протоколов, но в коммерческой форме он так и не был реализован. Вместо этого модель OSI используется с су­ществующими стеками протоколов в качестве обучающего и справоч­ного пособия. Большая часть популярных в наши дни протоколов появилась до разработки модели OSI, поэтому в точности с ее семиуровневой струк­ турой они не согласуются. Зачастую в одном протоколе совмещены функции двух или даже нескольких уровней модели, да и границы протоколов часто не соответствуют границам уровней OSI. Тем не менее модель OSI остается отличным наглядным пособием для ис­следования сетевых процессов, и профессионалы часто связывают функции и протоколы с определенными уровнями.

Инкапсуляция данных

По сути, взаимодействие протоколов, работающих на разных уров­нях модели OSI, проявляется в том, что каждый протокол добавляет заголовок (header) или (в одном случае) трейлер (footer) к информа­ции, которую он получил от уровня, расположенного выше. Напри­мер, приложение генерирует запрос к сетевому ресурсу. Этот запрос продвигается по стеку протоколов вниз. Когда он достигает транспорт­ного уровня, протоколы этого уровня добавляют к запросу собствен­ный заголовок, состоящий из полей с информацией, специфической для функций данного протокола. Сам исходный запрос становится для протокола транспортного уровня полем данных (полезной нагрузкой). Добавив свой заголовок, протокол транспортного уровня переда­ет запрос сетевому уровню. Протокол сетевого уровня добавляет к заголовку протокола транспортного уровня свой собственный заго­ловок. Таким образом, для протокола сетевого уровня полезной на­грузкой становятся исходный запрос и заголовок протокола тран­спортного уровня. Вся эта конструкция становится полезной нагруз­кой для протокола канального уровня, который добавляет к ней заго­ловок и трейлер. Итогом этой деятельности является пакет (packet), готовый для передачи по сети. Когда пакет достигает места назначения, процесс повторяется в обратном порядке. Протокол каждого следующего уровня стека (теперь снизу вверх) обрабатывает и удаля­ет заголовок эквивалентного протокола передающей системы. Когда процесс завершен, исходный запрос достигает приложения которо­му он предназначен, в том же виде, в каком он был сгенерирован. Процесс добавления заголовков к запросу (рис. 1.8), сгенериро­ ванному приложением, называется инкапсуляцией данных (data encap­sulation). По сути эта процедура напоминает процесс подготовки письма для отправки по почте. Запрос - это само письмо, а добавле­ние заголовков аналогично вкладыванию письма в конверт, написа­нию адреса, штемпелеванию и собственно отправке.

Физический уровень

На самом нижнем уровне модели OSI - физическом (physical) - оп­ределяются характеристики элементов оборудования сети - сетевая среда, способ установки, тип сигналов, используемых для передачи по сети двоичных данных. Кроме того, на физическом уровне опре­деляется, какой тип сетевого адаптера нужно установить на каждом компьютере и какой использовать концентратор (если это нужно). На физическом уровне мы имеем дело с медным или оптоволоконным кабелем или с каким-либо беспроводным соединением. В ЛВС спецификации физического уровня напрямую связаны с используюемым в сети протоколом канального уровня. Выбрав протокол канального уровня, Вы должны использовать одну из спецификаций физического уровня, поддерживаемую этим протоколом. Например, протокол канального уровня Ethernet поддерживает несколько различных вариантов физического уровня - один из двух типов коаксиального кабеля, любой кабель типа «витая пара», оптоволоконный кабель. Параметры каждого из этих вариантов формируются из многочисленных сведений о требованиях физического уровня, например, к типу кабеля и разъемов, допустимой длине кабелей, числу концентраторов и др. Соблюдение этих требований необходимо для нормальной работы протоколов. Например, в чересчур длинном кабеле система Ethernet может не заметить коллизию пакетов, а если система не в состоянии обнаружить ошибки, она не может и исправить их, результат - потеря данных. Стандартом протокола канального уровня определяются не все аспекты физического уровня. Некоторые из них определяются отдельно. Одна из наиболее часто используемых спецификаций физического уровня описана в документе «Commercial Building Telecommunications Cabling Standard», известном как EIA/TIA 568A. Он опубликован совместно Американским национальным институтом стан дартов (American National Standards Institute, ANSI), Ассоциации от раслей электронной промышленности (Electronics Industry Association, EIA) и Ассоциацией промышленности средств связи (Telecommunications Industry Association, TIA). В этот документ включено подробное описание кабелей для сетей передачи данных в промышленных условиях, в том числе минимальное расстояние от источников электромагнитных помех и другие правила прокладки кабеля. Сегодня кладку кабеля в больших сетях чаще всего поручают специализированным фирмам. Нанятый подрядчик должен быть хорошо знаком с EIA/TIA 568A и другими подобными документами, а также с правилами эксплуатации зданий в городе. Другой коммуникационный элемент, определяемый на физическом уровне, - тип сигнала для передачи данных по сетевой среде. Для кабелей с медной основой таким сигналом является электрический заряд, для оптоволоконного кабеля - световой импульс. В сетевых средах других типов могут использоваться радиоволны, инфракрасные импульсы и другие сигналы. Помимо природы сигналов, на физическом уровне устанавливается схема их передачи, т. е. комбинация электрических зарядов или световых импульсов, используемая для кодирования двоичной информации, которая сгенерирована вы­шестоящими уровнями. В системах Ethernet применяется схема пе­редачи сигналов, известная как манчестерская кодировка (Manchester encoding), а в системах Token Ring используется дифференциальная манчестерская (Differential Manchester) схема.

Канальный уровень

Протокол канального (data-link) уровня обеспечивает обмен инфор­мацией между аппаратной частью включенного в сеть компьютера и сетевым ПО. Он подготавливает для отправки в сеть данные, пере­данные ему протоколом сетевого уровня, и передает на сетевой уро­вень данные, полученные системой из сети. При проектировании и создании ЛВС используемый протокол ка­нального уровня - самый важный фактор для выбора оборудования и способа его установки. Для реализации протокола канального уровня необходимо следующее аппаратное и программное обеспечение: адаптеры сетевого интерфейса (если адаптер представляет собой отдельное устройство, подключаемое к шине, его называют пла­той сетевого интерфейса или просто сетевой платой); драйверы сетевого адаптера; сетевые кабели (или другая сетевая среда) и вспомогательное со­ единительное оборудование; сетевые концентраторы (в некоторых случаях). Как сетевые адаптеры, так и концентраторы разрабатываются для определенных протоколов канального уровня. Некоторые сетевые кабели также приспособлены для конкретных протоколов, но есть и кабели, подходящие для разных протоколов. Безусловно, сегодня (как и всегда) самый популярный протокол канального уровня - Ethernet. Далеко отстал от него Token Ring, за которым следуют другие протоколы, например, FDDI (Fiber Dist­ributed Data Interface). В спецификацию протокола канального уров­ня обычно включаются три основных элемента: формат кадра (т. е. заголовок и трейлер, добавляемые к данным сетевого уровня перед передачей в сеть); механизм контроля доступа к сетевой среде; одна или несколько спецификаций физического уровня, приме­няемые с данным протоколом.

Формат кадра

Протокол канального уровня добавляет к данным, полученным от протокола сетевого уровня, заголовок и трейлер, превращая их в кадр (frame) (рис. 1.9). Если снова прибегнуть к аналогии с почтой, заголовок и трейлер - это конверт для отправки письма. В них содержатся адреса системы-отправителя и системы-получателя пакета. Для протоколов ЛВС, подобных Ethernet и Token Ring, эти адреса представляют собой 6-байтные шестнадцатеричные строки, присвоенные сетевым адаптерам на заводе-изготовителе. Они, в отличие от адресов, используемых на других уровнях модели OSI, называются аппа ратными адресами (hardware address) или МАС-адресами (см. ниже).

Примечание Протоколы различных уровней модели OSI по-разному называют структуры, создаваемые ими путем добавления заголовка к данным, пришедшим от вышестоящего протокола. Например, то, что протокол канального уровня называет кадром, для сетевого уровня бу­дет дейтаграммой. Более общим названием для структурной единицы данных на любом уровне является пакет.

Важно понимать, что протоколы канального уровня обеспечива­ют связь только между компьютерами одной и той же ЛВС. Аппарат­ный адрес в заголовке всегда принадлежит компьютеру в той же ЛВС, даже если целевая система находится в другой сети. Другие важные функции кадра канального уровня - идентифика­ция протокола сетевого уровня, сгенерировавшего данные в пакете, и информация для обнаружения ошибок. На сетевом уровне могут использоваться различные протоколы, и потому в кадр протокола канального уровня обычно включается код, с помощью которого можно установить, какой именно протокол сетевого уровня сгенери­ровал данные в этом пакете. Руководствуясь этим кодом, протокол канального уровня компьютера-получателя пересылает данные соот­ветствующему протоколу своего сетевого уровня. Для выявления ошибок передающая система вычисляет цикличес­ кий избыточный код (cyclical redundancy check, CRC) полезной нагруз­ки и записывает его в трейлер кадра. Получив пакет, целевой компью­тер выполняет те же вычисления и сравнивает результат с содержи­мым трейлера. Если результаты совпадают, информация передана без ошибок. В противном случае получатель предполагает, что пакет ис­ порчен, и не принимает его.

Управление доступом к среде

Компьютеры в ЛВС обычно используют общую полудуплексную се­тевую среду. При этом вполне возможно, что передавать данные нач­нут одновременно два компьютера. В таких случаях происходит свое­го рода столкновение пакетов, коллизия (collision), при котором дан­ ные в обоих пакетах теряются. Одна из главных функций протокола канального уровня - управление доступом к сетевой среде (media access control, MAC), т. е. контроль за передачей данных каждым из компьютеров и сведение к минимуму случаев столкновения пакетов. Механизм управления доступом к среде - одна из важнейших ха­ рактеристик протокола канального уровня. В Ethernet для управле­ния доступом к среде используется механизм с контролем несущей и обнаружением коллизий (Carrier Sense Multiple Access with Collision Detection, CSMA/CD). В некоторых других протоколах, например, в Token Ring, используется передача маркера (token passing).

Спецификации физического уровня

Протоколы канального уровня, используемые в ЛВС, часто поддер­живают более одной сетевой среды, и в стандарт протокола включе­ны одна или несколько спецификаций физического уровня. Каналь­ный и физический уровни тесно связаны, т. к. свойства сетевой сре­ды существенно влияют на то, как протокол управляет доступом к среде. Поэтому можно сказать, что в локальных сетях протоколы ка­нального уровня осуществляют также функции физического уровня. В глобальных сетях используются протоколы канального уровня, в которые информация физического уровня не включается, например, SLIP (Serial Line Internet Protocol) и РРР (Point-to-Point Protocol).

Сетевой уровень

На первый взгляд может показаться, что сетевой (network) уровень дублирует некоторые функции канального уровня. Но это не так: про­токолы сетевого уровня «отвечают» за сквозные (end-to-end) связи, тогда как протоколы канального уровня функционируют только в пределах ЛВС. Иными словами, протоколы сетевого уровня полнос­тью обеспечивают передачу пакета от исходной до целевой системы. В зависимости от типа сети, отправитель и получатель могут нахо­диться в одной ЛВС, в различных ЛВС в пределах одного здания или в ЛВС, разделенных тысячами километров. Например, когда Вы свя­зываетесь с сервером в Интернете, на пути к нему пакеты, созданные Вашим компьютером, проходят через десятки сетей. Подстраиваясь под эти сети, протокол канального уровня неоднократно изменится, но протокол сетевого уровня на всем пути останется тем же самым. Краеугольным камнем набора протоколов TCP/IP (Transmission Control Protocol/Internet Protocol) и наиболее часто используемым протоколом сетевого уровня является протокол IP (Internet Protocol). У Novell NetWare есть собственный сетевой протокол IPX (Inter­network Packet Exchange), а в небольших сетях Microsoft Windows обычно используется протокол NetBEUI (NetBIOS Enhanced User Interface). Большинство функций, приписываемых сетевому уровню, определяются возможностями протокола IP. Подобно протоколу канального уровня, протокол сетевого уровня добавляет заголовок к данным, которые он получил от вышестояще­го уровня (рис. 1.10). Элемент данных, созданный протоколом сете­вого уровня, состоит из данных транспортного уровня и заголовка сетевого уровня и называется дейтаграммой (datagram).


Адресация

Заголовок протокола сетевого уровня, как и заголовок протокола ка­нального уровня, содержит поля с адресами исходной и целевой сис­тем. Однако в данном случае адрес целевой системы принадлежит конечному назначению пакета и может отличаться от адреса получа­теля в заголовке протокола канального уровня. Например, когда Вы вводите в адресной строке браузера адрес Web-узла, в пакете, сгене­рированном Вашим компьютером, в качестве адреса целевой систе­мы сетевого уровня указан адрес Web-сервера, тогда как на канальном уровне на целевую систему указывает адрес маршрутизатора в Вашей ЛВС, обеспечивающего выход в Интернет. В IP используется собственная система адресации, которая совер­шенно не зависит от адресов канального уровня. Каждому компьюте­ру в сети с протоколом IP вручную или автоматически назначается 32-битовый IP- адрес, идентифицирующий как сам компьютер, так и сеть, в которой он находится. В IPX же для идентификации самого компьютера используется аппаратный адрес, кроме того, специаль­ный адрес используется для идентификации сети, в которой находит­ся компьютер. В NetBEUI компьютеры различаются по NetBIOS-именам, присваиваемым каждой системе во время ее установки.

Фрагментация

Дейтаграммам сетевого уровня на пути к месту назначения приходит­ся проходить через множество сетей, сталкиваясь при этом со специ­ фическими свойствами и ограничениями различных протоколов ка­нального уровня. Одно из таких ограничений - максимальный раз­мер пакета, разрешенный протоколом. Например, размер кадра Token Ring может достигать 4500 байт, тогда как размер кадров Ethernet не может превышать 1500 байтов. Когда большая дейтаграмма, сформи­рованная в сети Token Ring, передается в сеть Ethernet, протокол се­тевого уровня должен разбить ее на несколько фрагментов размером не более 1500 байт. Этот процесс называется фрагментацией (frag­ mentation). В процессе фрагментации протокол сетевого уровня разбивает дейтаграмму на фрагменты, размер которых соответствует возможно­стям используемого протокола канального уровня. Каждый фрагмент становится самостоятельным пакетом и продолжает путь к целевой системе сетевого уровня. Исходная дейтаграмма формируется лишь после того, как места назначения достигнут все фрагменты. Иногда на пути к целевой системе фрагменты, на которые разбита дейта­грамма, приходится фрагментировать повторно.

Маршрутизация

Маршрутизацией (routing) называется процесс выбора в интерсети самого эффективного маршрута для передачи дейтаграмм от систе­мы-отправителя к системе-получателю. В сложных интерсетях, на­пример, в Интернете или больших корпоративных сетях, часто от од­ного компьютера к другому можно добраться несколькими путями. Проектировщики сетей специально создают избыточные связи, что­бы трафик нашел дорогу к месту назначения даже в случае сбоя одно­ го из маршрутизаторов. С помощью маршрутизаторов соединяют отдельные ЛВС, входя­щие в интерсеть. Назначение маршрутизатора - принимать входя­щий трафик от одной сети и передавать его конкретной системе в другой. В интерсетях различают системы двух видов: оконечные (end systems) и промежуточные (intermediate systems). Оконечные системы являются отправителями и получателями пакетов. Маршрутизатор - промежуточная система. В оконечных системах используются все семь уровней модели OSI, тогда как пакеты, поступающие в проме­жуточные системы, не поднимаются выше сетевого уровня. Там мар­шрутизатор обрабатывает пакет и отправляет его вниз по стеку для передачи следующей целевой системе (рис. 1.11).


Чтобы верно направить пакет к цели, маршрутизаторы хранят в памяти таблицы с информацией о сети. Эта информация может быть внесена администратором вручную или собрана автоматически с дру­гих маршрутизаторов с помощью специализированных протоколов. В состав типичного элемента таблицы маршрутизации входят адрес другой сети и адрес маршрутизатора, через который пакеты должны добираться до этой сети. Кроме того, в элементе таблицы маршрути­зации содержится метрика маршрута - условная оценка его эффективности. Если к некой системе имеется несколько маршрутов, мар­шрутизатор выбирает из них самый эффективный и отправляет дей­таграмму на канальный уровень для передачи маршрутизатору, ука­занному в элементе таблицы с наилучшей метрикой. В больших сетях маршрутизация может быть необычайно сложным процессом, но чаще всего она осуществляется автоматически и незаметно для пользователя.

Идентификация протокола транспортного уровня

Так же, как в заголовке канального уровня указан протокол сетевого уровня, сгенерировавший и передавший данные, в заголовке сетево­го уровня содержится информация о протоколе транспортного уров­ня, от которого эти данные были получены. В соответствии с этой информацией система-получатель передает входящие дейтаграммы соответствующему протоколу транспортного уровня.

Транспортный уровень

Функции, выполняемые протоколами транспортного (transport) уров­ня, дополняют функции протоколов сетевого уровня. Часто протоко­лы этих уровней, используемые для передачи данных, образуют взаи­ мосвязанную пару, что видно на примере TCP/IP: протокол TCP функционирует на транспортном уровне, IP - на сетевом. В боль­шинстве наборов протоколов имеется два или несколько протоколов транспортного уровня, выполняющих разные функции. Альтернати­вой TCP является протокол UDP (User Datagram Protocol). В набор протоколов IPX также включено несколько протоколов транспортно­го уровня, в том числе NCP (NetWare Core Protocol) и SPX (Sequenced Packet Exchange). Разница между протоколами транспортного уровня из определен­ного набора заключается в том, что некоторые из них ориентированы на соединение, а другие - нет. Системы, использующие протокол, ориентированный на соединение (connection-oriented), перед передачей данных обмениваются сообщениями, чтобы установить связь друг с другом. Это гарантирует, что системы включены и готовы к работе. Протокол TCP, например, ориентирован на соединение. Когда Вы с помощью браузера подключаетесь к серверу Интернета, браузер и сервер для установления связи сначала выполняют так называемое трехшаговое рукопожатие (three-way handshake). Лишь после этого браузер передает серверу адрес нужной Web-страницы. Когда переда­ча данных завершена, системы выполняют такое же рукопожатие для прекращения связи. Кроме того, протоколы, ориентированные на соединение, выпол­няют дополнительные действия, например, отправляют сигнал подтверждения приема пакета, сегментируют данные, управляют пото­ком, а также обнаруживают и исправляют ошибки. Как правило, про­токолы этого типа используются для передачи больших объемов ин­формации, в которых не должно содержаться ни единого ошибочно­го бита, например, файлов данных или программ. Дополнительные функции протоколов с ориентацией на соединение гарантируют корректную передачу данных. Вот почему эти протоколы часто называ­ют надежными (reliable). Надежность в данном случае является техни­ческим термином и означает, что каждый передаваемый пакет проверяется на наличие ошибок, кроме того, система-отправитель уведом­ляется о доставке каждого пакета. Недостаток протоколов этого типа состоит в значительном объеме управляющих данных, которыми об­мениваются две системы. Во-первых, дополнительные сообщения передаются при установлении и завершении связи. Во-вторых, заго­ловок, добавляемый к пакету протоколом с ориентацией на соедине­ние, существенно превосходит по размеру заголовок протокола, не ориентированного на соединение. Например, заголовок протокола TCP/IP занимает 20 байтов, а заголовок UDP - 8 байтов. Протокол, не ориентированный на соединение (connectionless), не устанавливает соединение между двумя системами до передачи дан­ных. Отправитель просто передает информацию целевой системе, не беспокоясь о том, готова ли она принять данные и существует ли эта система вообще. Обычно системы прибегают к протоколам, не ориентированным на соединение, например, к UDP, для коротких транзакций, состоящих только из запросов и ответных сигналов. Ответный сигнал от получателя неявно выполняет функцию сигнала подтверждения о передаче.

Примечание Ориентированные и не ориентированные на соединение протоколы есть не только на транспортном уровне. Например, прото­колы сетевого уровня обычно не ориентированы на соединение, по­ скольку обеспечение надежности связи они возлагают на транспортный уровень.

Протоколы транспортного уровня (как и сетевого и канального уровней) обычно содержат информацию с вышестоящих уровней. Например, в заголовки TCP и UDP включаются номера портов, иден­тифицирующие приложение, породившее пакет, и приложение, ко­торому он предназначен. На сеансовом (session) уровне начинается существенное расхождение между реально применяемыми протоколами и моделью OSI. В отли­чие от нижестоящих уровней, выделенных протоколов сеансового уровня не существует. Функции этого уровня интегрированы в про­токолы, которые выполняют также функции представительского и прикладного уровней. Транспортный, сетевой, канальный и физичес­кий уровни занимаются собственно передачей данных по сети. Про­токолы сеансового и вышестоящих уровней к процессу связи отно­шения не имеют. К сеансовому уровню относятся 22 службы, многие из которых задают способы обмена информацией между системами, включенными в сеть. Наиболее важны службы управления диалогом и разделения диалога. Обмен информацией между двумя системами в сети называется диалогом (dialog). Управление диалогом (dialog control) заключается в выборе режима, в котором системы будут обмениваться сообщения­ми. Таких режимов два: полудуплексный (two-way alternate, TWA) и дуплексный (two-way simultaneous, TWS). В полудуплексном режиме две системы вместе с данными передают также маркеры. Передавать информацию можно только компьютеру, у которого в данный момент находится маркер. Так удается избежать столкновения сообщений в пути. Дуплексная модель сложнее. Маркеров в ней нет; обе системы могут передавать данные в любой момент, даже одновременно. Разделение диалога (dialog separation) состоит во включении в по­ток данных контрольных точек (checkpoints), позволяющих синхро­низировать работу двух систем. Степень сложности разделения диа­лога зависит от того, в каком режиме он осуществляется. В полудуп­ лексном режиме системы выполняют малую синхронизацию, заклю­чающуюся в обмене сообщениями о контрольных точках. В дуплекс­ном режиме системы выполняют полную синхронизацию с помощью главного/активного маркера.

Представительский уровень

На представительском (presentation) уровне выполняется единствен­ная функция: трансляция синтаксиса между различными системами. Иногда компьютеры в сети применяют разные синтаксисы. Предста­вительский уровень позволяет им «договориться» об общем синтак­сисе для обмена данными. Устанавливая соединение на представи­тельском уровне, системы обмениваются сообщениями с информа­ цией о том, какие синтаксисы в них имеются, и выбирают тот, кото­рый они будут использовать во время сеанса. У обеих систем, участвующих в соединении, есть абстрактный синтаксис (abstract syntax) - их «родная» форма связи. Абстрактные синтаксисы различных компьютерных платформ могут отличаться. В процессе согласования системы выбирают общий синтаксис передачи данных (transfer syntax). Передающая система преобразует свой абст­рактный синтаксис в синтаксис передачи данных, а система-получа­тель по завершению передачи - наоборот. При необходимости сис­тема может выбрать синтаксис передачи данных с дополнительными функциями, например, сжатием или шифрованием данных.

Прикладной уровень

Прикладной уровень - это точка входа, через которую программы получают доступ к модели OSI и сетевым ресурсам. Большинство про­ токолов прикладного уровня предоставляет службы доступа к сети. Например, протоколом SMTP (Simple Mail Transfer Protocol) боль­шинство программ электронной почты пользуется для отправки со­общений. Другие протоколы прикладного уровня, например, FTP (File Transfer Protocol), сами являются программами. В протоколы прикладного уровня часто включают функции сеан­сового и представительского уровня. В результате типичный стек про­токолов содержит четыре отдельных протокола, которые работают на прикладном, транспортном, сетевом и канальном уровнях.

Сетевая модель OSI — это эталонная модель взаимодействия открытых систем, на английском звучит как Open Systems Interconnection Basic Reference Model. Ее назначение в обобщенном представлении средств сетевого взаимодействия.

То есть модель OSI — то обобщенные стандарты для разработчиков программ, благодаря которым любой компьютер одинаково может расшифровать данные, переданные с другого компьютера. Чтобы было понятно, приведу жизненный пример. Известно, что пчелы видят все окружающее их в утрафиалетовом свете. То есть одну и ту же картинку наш глаз и пчелиный воспринимает абсолютно по-разному и то, что видят насекомые, может быть незаметно для зрения человека.

То же самое и с компьютерами — если один разработчик пишет приложение на каком-либо программном языке, который понимает его собственный компьютер, но не доступен ни для одного другого, то на любом другом устройстве вы прочитать созданный этим приложением документ не сможете. Поэтому пришли к такой идее, чтобы при написании приложений следовать единому своду правил, понятному для всех.

Для наглядности процесс работы сети принято разделять на 7 уровней , на каждом из которых работает своя группа протоколов.


Сетевой протокол — это правила и технические процедуры, позволяющие компьютерам, объединенным в сеть, осуществлять соединение и обмен данными.
Группа протоколов, объединенных единой конечной целью, называется стек протоколов.

Для выполнения разных задач имеется несколько протоколов, которые занимаются обслуживанием систем, например, стек TCP/IP. Давайте здесь внимательно посмотрим на то, каким образом информация с одного компьютера отправляется по локальной сети на другой комп.

Задачи компьютера ОТПРАВИТЕЛЯ:

  • Взять данные из приложения
  • Разбить их на мелкие пакеты, если большой объем
  • Подготовить к передаче, то есть указать маршрут следования, зашифровать и перекодировать в сетевой формат.

Задачи компьютера ПОЛУЧАТЕЛЯ:

  • Принять пакеты данных
  • Удалить из него служебную информацию
  • Скопировать данные в буфер
  • После полного приема всех пакетов сформаровать из них исходный блок данных
  • Отдать его приложению

Для того, чтобы верно произвести все эти операции и нужен единый свод правил, то есть эталонная модель OSI.

Вернемся у к уровням OSI. Их принято отсчитывать в обратном порядке и в верхней части таблицы располагаются сетевые приложения, а в нижней — физическая среда передачи информации. По мере того, как данные от компьютера спускаются вниз непосредственно к сетевому кабелю, протоколы, работающие на разных уровнях, постепенно их преобразовывают, подготавливая к физической передаче.


Разберем их подробнее.

7. Прикладной уровень (Application Layer)

Его задача забрать у сетевого приложения данные и отправить на 6 уровень.

6. Уровень представления (Presentation Layer)

Переводит эти данные на единый универсальный язык. Дело в том, что каждый компьютерный процессор имеет собственный формат обработки данных, но в сеть они должны попасть в 1 универсальном формате — именно этим и занимается уровень представления.

5. Сеансовый уровень (Session Layer)

У него много задач.

  1. Установить сеанс связи с получателем. ПО предупреждает компьютер-получатель о том, что сейчас ему будут отправлены данные.
  2. Здесь же происходит распознавание имен и защита:
    • идентификация — распознавание имен
    • аутентификация — проверка по паролю
    • регистрация — присвоение полномочий
  3. Реализация того, какая из сторон осуществляет передачу информации и как долго это будет происходить.
  4. Расстановка контрольных точек в общем потоке данных для того, чтобы в случае потери какой-то части легко было установить, какая именно часть потеряна и следует отправить повторно.
  5. Сегментация — разбивка большого блока на маленькие пакеты.

4. Транспортный уровень (Transport Layer)

Обеспечивает приложениям необходимую степень защиты при доставке сообщений. Имеется две группы протоколов:

  • Протоколы, которые ориентированы на соединение — они отслеживают доставку данных и при необходимости запрашивают повторную отправку при неудаче. Это TCP — протокол контроля передачи информации.
  • Не ориентированные на соединение (UDP) — они просто отправляют блоки и дальше не следят за их доставкой.

3. Сетевой уровень (Network Layer)

Обеспечивает сквозную передачу пакета, рассчитывая его маршрут. На этом уровне в пакетах ко всей предыдущей динформации, сформированной другими уровнями, добавляются IP адреса отправителя и получателя. Именно с этого момент пакет данных называется собственно ПАКЕТОМ, у которого есть >>IP адреса (IP протокол — это протокол межсетевого взаимодействия).

2. Канальный уровень (Data Link Layer)

Здесь происходит передача пакета в пределах одного кабеля, то есть одной локальной сети. Он работает только до пограничного маршрутизатора одной локальной сети. К полученному пакету канальный уровень добавляет свой заголовок — MAC адреса отправителя и получателя и в таком виде блок данных уже называется КАДРОМ.

При передачи за пределы одной локальной сети пакету присваивается MAC не хоста (компьютера), а маршрутизатора другой сети. Отсюда как раз появляется вопрос серых и белых IP, о которых шла речб в статье, на которую была выше дана ссылка. Серый — это адрес внутри одной локальной сети, который не используетс яза ее пределами. Белый — уникальный адрес во всем глобальном интернете.

При поступлении пакета на пограничный роутер IP пакета подменяется на IP этого роутера и вся локальная сеть выходит в глобальную, то есть интернет, под одним единственным IP адресом. Если адрес белый, то часть данных с IP адресом не изменяется.

1. Физический уровень (Transport layer)

Отвечает за преобразование двоичной информации в физический сигнал, который отправляется в физический канал передачи данных. Если это кабель, то сигнал электрический, если оптоволоконная сеть, то в оптический сигнал. Осуществляется это преобразование при помощи сетевого адаптера.

Стеки протоколов

TCP/IP — это стек протоколов, который управляет передачей данных как в локальной сети, так и в глобальной сети Интернет. Данный стек содержит 4 уровня, то есть по эталонной модели OSI каждый из них объединяет в себе несколько уровней.

  1. Прикладной (по OSI — прикладной, представления и сеансовый)
    За данный уровень отвечают протоколы:
    • TELNET — удаленный сеанс связи в виде командной строки
    • FTP — протокол передачи файлов
    • SMTP — протокол пересылки почты
    • POP3 и IMAP — приема почтовых отправлений
    • HTTP — работы с гипертекстовыми документами
  2. Транспортный (по OSI то же самое) — это уже описанные выше TCP и UDP.
  3. Межсетевой (по OSI — сетевой) — это протокол IP
  4. Уровень сетевых интерфейсов (по OSI — канальный и физический)За работу этого уровня отвечают драйверы сетевых адаптеров.

Терминология при обозначении блока данных

  • Поток — те данные, которыми оперируются на прикладном уровне
  • Дейтаграмма — блок данных на выходе с UPD, то есть у которого нет гарантированной доставки.
  • Сегмент — гарантированный для доставки блок на выходе с протокола TCP
  • Пакет — блок данных на выходе с протокола IP. поскольку на данном уровне он еще не гарантирован к доставке, то тоже может называться дейтаграммой.
  • Кадр — блок с присвоенными MAC адресами.

Данный материал посвящен эталонной сетевой семиуровневой модели OSI . Здесь Вы найдете ответ на вопрос для чего системным администраторам необходимо понимать данную сетевую модель, будут рассмотрены все 7 уровней модели, а также Вы узнаете основы модели TCP/IP, которая и была построена на основе эталонной модели OSI.

Когда я начал увлекаться различными IT технологиями, стал работать в этой сфере, я, конечно же, не знал не о какой модели, даже не задумывался об этом, но мне более опытный специалист посоветовал изучить, точнее, просто понять эту модель, добавив что «если будешь понимать все принципы взаимодействия, то будет намного проще управлять, конфигурировать сеть и решать всевозможные сетевые и другие проблемы ». Я его, конечно же, послушался и стал лопатить книги, Интернет и другие источники информации, одновременно с этим проверять на существующей сети, правда ли это все так на самом деле.

В современном мире развитие сетевой инфраструктуры достигло такого высокого уровня, что без построения, даже маленькой сети, предприятие (в т.ч. и маленькое ) не сможет просто на всего нормально существовать, поэтому системные администраторы становятся, все более востребованы. А для качественного построения и конфигурирования любой сети, системный администратор должен понимать принципы эталонной модели OSI, как раз, для того чтобы Вы научились понимать взаимодействие сетевых приложений, да и вообще принципы сетевой передачи данных, я попытаюсь изложить этот материал доступно даже для начинающих админов.

Сетевая модель OSI (open systems interconnection basic reference model ) – это абстрактная модель взаимодействия компьютеров, приложений и других устройств в сети. Если вкратце, суть данной модели состоит в том, что организация ISO (International Organization for Standardization ) разработала стандарт работы сети, для того чтобы все смогли опираться на него, и происходило совместимость всех сетей и взаимодействие между ними. Один из самых популярных протоколов взаимодействия сети, который применяется во всем мире, это TCP/IP он и построен на базе эталонной модели.

Ну, давайте перейдем непосредственно к самим уровням этой модели, и для начала ознакомитесь с общей картиной этой модели в разрезе ее уровней.

Теперь поговорим поподробней о каждом уровне, принято описывать уровни эталонной модели сверху в низ, именно по этому пути, и происходит взаимодействие, на одном компьютере сверху вниз, а на компьютере где идет прием данных снизу вверх, т.е. данные проходят каждый уровень последовательно.

Описание уровней сетевой модели

Уровень приложений (7) (прикладной уровень ) – это отправная и в то же время конечная точка данных, которые Вы хотите передать по сети. Этот уровень отвечает за взаимодействие приложений по сети, т.е. на этом уровне общаются приложения. Это самый верхний уровень и необходимо помнить это, при решении возникающих проблем.

HTTP, POP3, SMTP, FTP, TELNET и другие. Другими словами приложение 1 посылает запрос приложению 2 по средствам этих протоколов, и для того чтобы узнать, что приложение 1 послало запрос именно приложению 2, между ними должна быть связь, вот именно протокол и отвечает за эту связь.

Уровень представления (6) – этот уровень отвечает за кодирование данных, для того чтобы их потом можно было передать по сети и соответственно преобразует их обратно, для того чтобы приложение понимало эти данные. После этого уровня данные для других уровней становятся одинаковыми, т.е. без разницы, что это за данные, будь то документ word или сообщение электронной почты.

На этом уровне работают такие протоколы как: RDP, LPP, NDR и другие.

Сеансовый уровень (5) – отвечает за поддержание сеанса между передачей данных, т.е. продолжительность сеанса отличается, в зависимости от передаваемых данных, поэтому его необходимо поддерживать или прекращать.

На этом уровне работают следующие протоколы: ASP, L2TP, PPTP и другие.

Транспортный уровень (4) – отвечает за надежность передачи данных. Он также разбивает данные на сегменты и собирает их обратно, так как данные бывают разного размера. Существует два известных протокола этого уровня - это TCP и UDP . TCP протокол дает гарантию на то, что данные будут доставлены в полном объеме, а протокол UDP этого не гарантирует, именно поэтому их используют для разных целей.

Сетевой уровень (3) – он предназначен для определения пути, по которому должны пройти данные. На этом уровне работают маршрутизаторы. Также он отвечает за: трансляцию логических адресов и имён в физические, определение короткого маршрута, коммутацию и маршрутизацию, отслеживание неполадок в сети. Именно на этом уровне работает протокол IP и протоколы маршрутизации, например RIP, OSPF .

Канальный уровень (2) – он обеспечивает взаимодействие на физическом уровне, на этом уровне определяются MAC адреса сетевых устройств, также здесь ведется контроль ошибок и их исправление, т.е. посылает повторный запрос поврежденного кадра.

Физический уровень (1) – это уже непосредственно преобразование всех кадров в электрические импульсы и обратно. Другими словами физическая передача данных. На этом уровне работают концентраторы .

Вот так выглядит весь процесс передачи данных с точки зрения этой модели. Она является эталонной и стандартизированной и поэтому на ней основаны другие сетевые технологии и модели в частности модель TCP/IP.

Модель TCP IP

Модель TCP/IP немного отличается от модели OSI, если говорить конкретней в данной модели объединили некоторые уровни модели OSI и их здесь всего 4:

  • Прикладной;
  • Транспортный;
  • Сетевой;
  • Канальный.

На картинке представлено отличие двух моделей, а также еще раз показано на каких уровнях работают всем известные протоколы.

Говорить о сетевой модели OSI и конкретно про взаимодействие компьютеров в сети можно долго и в рамках одной статьи это не уместить, да и будет немного не понятно, поэтому здесь я попытался представить как бы основу этой модели и описание всех уровней. Главное понимать, что все это действительно так и файл, который Вы отправили по сети проходит просто «огромный » путь, перед тем как попасть к конечному пользователю, но это происходит на столько быстро, что Вы этого не замечаете, во многом благодаря развитым сетевым технологиям.

Надеюсь все это, Вам поможет понимать взаимодействие сетей.