Перейти к содержанию

П/з №3. Модели сетей связи

1. Понятие модели сети.

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

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

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

Рисунок 1 - Общий принцип декомпозиции

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

Рисунок 2 - Многоуровневый подход

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

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

2. Понятие сетевого протокола

На рисунке 3 показана модель взаимодействия двух узлов. С каждой стороны средства взаимодействия представлены четырьмя уровнями. Каждый уровень поддерживает интерфейсы двух типов. Во-первых, это интерфейсы услуг с выше- и нижележащим уровнем «своей» иерархии средств. Во-вторых, это одноранговый интерфейс со средствами взаимодействия другой стороны, расположенными на том же уровне иерархии. Этот тип интерфейса называют протоколом.

Рисунок 3 - Взаимодействие двух узлов

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

Суть сети состоит в соединении разного оборудования, а значит, проблема совместимости является здесь одной из наиболее острых. Без согласования всеми производителями общепринятых стандартов для оборудования и протоколов прогресс в деле «строительства» сетей был бы невозможен. Поэтому все развитие компьютерной отрасли, в конечном счете, отражено в стандартах - любая новая технология только тогда приобретает «законный» статус, когда ее содержание закрепляется в соответствующем стандарте. В компьютерных сетях идеологической основой стандартизации является рассмотренная выше модель взаимодействия открытых систем (OSI).

Далее будут рассмотрены две основные сетевые модели - TCP/IP и OSI.

3. Модель OSI

Модель взаимодействия открытых систем (Open Systems Interconnection) - это эталонная модель организации компьютерных сетей. Модель является юридическим стандартом, принятым Международной организацией по стандартизации (ISO) в 1983 г.

Важно!

Модель OSI не содержит описаний реализаций конкретного набора протоколов. Она лишь определяет, во- первых, уровни взаимодействия, во-вторых, стандартные названия уровней, в-третьих, функции, которые должен выполнять каждый уровень.

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

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

  • прикладной (application layer);
  • представления (presentation layer);
  • сеансовый (session layer);
  • транспортный (transport layer);
  • сетевой (network layer);
  • канальный (data link layer);
  • физический (physical layer).

Именно поэтому модель OSI называют также семиуровневой моделью. Каждый уровень связан со вполне определенным аспектом взаимодействия сетевых устройств. Для иллюстрации логической структуры модели OSI рассмотрим взаимодействие двух приложений, \(А\) и \(В\), выполняющихся на компьютерах 1 и 2 соответственно (рис. 4).

Рисунок 4 - Модель взаимодействия открытых систем

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

Пусть, например, приложение \(А\) посылает сообщение «Данные для отчета \(N\) готовы» приложению \(В\). Для этого оно, используя интерфейс API, выполняет запрос к системным средствам прикладного уровня модели OSI (в нашем примере к сетевой файловой системе) с просьбой передать файл с этим сообщением на удаленный компьютер 2. В ходе выполнения запроса приложения \(А\) клиент и сервер файловой системы в соответствии со своим протоколом обмениваются собственной последовательностью команд - протокольных сообщений. В поле данных одной из таких команд клиента файловой системы упаковано сообщение приложения \(А\), а в заголовке (на рисунке заголовок прикладного уровня 7) - служебная информация для сервера файловой системы. Чтобы это сообщение прикладного уровня было доставлено по назначению, необходимо решить еще ряд задач, ответственность за которые несут нижележащие уровни средств сетевого взаимодействия.

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

Наконец, сообщение достигает средств нижнего, физического уровня, которые, собственно, и передают его по линиям связи машине-адресату. К этому моменту сообщение «обрастает» заголовками всех уровней. Средства физического уровня помещают сообщение на физический выходной интерфейс компьютера 1, и оно начинает свое «путешествие» по сети (до этого момента сообщение передавалось от одного уровня к другому в пределах компьютера 1). Когда сообщение по сети поступает на входной интерфейс компьютера 2, оно принимается его физическим уровнем и последовательно перемещается вверх с уровня на уровень. Средства каждого уровня анализируют и обрабатывают заголовок своего уровня, выполняя соответствующие функции, а затем удаляют этот заголовок и передают сообщение вышележащему уровню до тех пор, пока оно не поступит на вход приложения В. Приложение В соответствующим образом интерпретирует сообщение «Данные для отчета N готовы», например, подготавливает буфер для приема данных.

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

Далее рассмотрим каждый уровень модели отдельно и более подробно.

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

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

Физический уровень не вникает в смысл информации, которую он передает. Для него информация, поступающая от вышележащего канального уровня, представляет собой однородный поток битов, которые нужно доставить без искажений, в соответствии с заданной тактовой частотой (интервалом между соседними битами) и выбранным способом кодирования. Примером стандарта физического уровня может служить спецификация Gigabit Ethernet, которая определяет в качестве используемого кабеля неэкранированную витую пару категории 5 с волновым сопротивлением 100 Ом, разъемом типа RJ-45, максимальной длиной физического сегмента не более 100 м, манчестерским кодом для представления данных в кабеле, а также некоторые другие характеристики среды и электрических сигналов.

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

Канальный уровень, используя возможности, предоставляемые ему нижележащим, физическим, уровнем, предлагает вышележащему, сетевому, уровню следующие услуги:

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

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

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

https://zvondozvon.ru/wp-content/uploads/2019/08/formirovanie-kadra-768x359.jpg

Рисунок 5 - Канальный уровень

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

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

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

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

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

  • группой протоколов;
  • специальными устройствами - маршрутизаторами.

Рисунок 6 - Сетевой уровень

Определение маршрута является важной задачей сетевого уровня. Маршрут описывается последовательностью сетей (или маршрутизаторов), через которые должен пройти пакет, чтобы попасть к адресату. Например, на рисунке 7 штриховой линией показано три маршрута, по которым могут быть переданы данные от компьютера А к компьютеру Б. Маршрутизатор собирает информацию о топологии связей между сетями и на основе этой информации строит таблицы коммутации, которые в данном случае носят специальное название таблиц маршрутизации.

https://cf.ppt-online.org/files1/slide/7/7wFLDMqt2r4Kzi8oYCsHGJTecnZfUS5Xj0Ad31gh6B/slide-22.jpg

Рисунок 7 - Пример составной сети

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

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

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

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

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

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

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

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

Уровень представления

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

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

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

Для наглядности ниже приведен пример как элементы компьютерной сети (конечные узлы - компьютеры; промежуточные узлы - коммутаторы и маршрутизаторы) соответствуют уровням модели (рис.8).

Рисунок 8 - Соответствие функций различных устройств сети уровням модели OSI

Рисунок 9 - Уровни модели OSI

4. Модель TCP/IP

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

Рисунок 10 - Соотношение уровней модели OSI и TCP/IP

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

Канальный уровень (сетевых интерфейсов)

Канальный уровень (Link layer) описывает, каким образом передаются пакеты данных через физический уровень, и определяет, как информация будет передаваться от одного устройства к другому. Информация здесь кодируется, делится на пакеты и отправляется по нужному каналу, т.е. среде передачи.

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

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

Сетевой уровень отвечает за объединение локальных сетей в глобальную. И сетевой уровень также отвечает за адресацию хостов, упаковку и функции маршрутизации. Основными протоколами сетевого уровня являются IP, протокол разрешения адресов (ARP), протокол управляющих сообщений Интернета (ICMP) и протокол управления группами Интернета (IGMP). IP - это маршрутизируемый протокол, отвечающий за IP-адресацию, маршрутизацию и фрагментацию, и повторную сборку пакетов. ARP отвечает за обнаружение адреса уровня сетевого доступа, такого как адрес аппаратных средств, связанный с данным доступом к Интернет-уровню. ICMP отвечает за предоставление диагностических функций и отчетов об ошибках из-за неудачной доставки IP-пакетов. IGMP отвечает за управление многоадресными группами IP. На этом уровне IP добавляет заголовок к пакетам, который известен как IP-адрес. Сейчас есть *IPv*4 (32-битный) адрес и *IPv*6 (128-битный) адрес.

примеры-адресов-IPv4-и-адресов-IPv6

Рисунок 11 - Примеры адресов IPv4 и адресов IPv6

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

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

Протокол TCP обеспечивает ориентированную на соединение, надежную службу связи. Он отвечает за последовательность и подтверждение отправленных пакетов, а также восстановление пакетов, потерянных при передаче.

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

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

На прикладном уровне (Application layer) работает большинство сетевых приложений. Эти программы имеют свои собственные протоколы обмена информацией, например, HTTP для WWW, FTP (передача файлов), SMTP (электронная почта), SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.

В многоуровневой системе, устройства уровня обмениваются данными в другом формате, который известен как protocol data unit (PDU). На рисунке ниже показаны PDU на разных уровнях.

OSI vs. TCP/IP - Orkhan Alishov

Рисунок 12 - PDU, обрабатываемые на разных уровнях

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

Помимо разницы в количестве слоев, существуют другие разницы между TCP/IP и моделью OSI:

  • TCP/IP - это модель клиент-сервер, т.е. Когда клиент запрашивает сервис, он предоставляется сервером. Принимая во внимание, что OSI является концептуальной моделью;
  • TCP/IP - это стандартный протокол, используемый для каждой сети, включая Интернет, тогда как OSI - это не протокол, а эталонная модель, используемая для понимания и проектирования архитектуры системы;
  • TCP/IP следует вертикальному подходу. С другой стороны, модель OSI поддерживает горизонтальный подход;
  • TCP/IP следует принципу «сверху вниз», а модель OSI - подходу «снизу вверх».

Таким образом, модель TCP/IP и модель OSI являются концептуальными моделями, используемыми для описания всех сетевых коммуникаций, в то время как TCP/IP сама по себе также является важным протоколом, используемым во всех операциях Интернета. Как правило, когда мы говорим об уровне 2, уровне 3 или уровне 7, в котором работает сетевое устройство, мы имеем в виду модель OSI. Модели TCP/IP используется как для моделирования текущей архитектуры Интернета и обеспечивают набор правил, которым следуют все формы передачи по сети.

Контрольные вопросы

1) Какие уровни модели OSI отвечают за физическое соединение устройств? 2) Что такое протоколы передачи данных в сети и какие примеры таких протоколов вы знаете? 3) Какие основные преимущества модели TCP/IP перед моделью OSI? 4) Какие уровни модели TCP/IP соответствуют уровням модели OSI? 5) Какой протокол обеспечивает доставку данных от источника к назначению на уровне сетевого слоя модели OSI? 6) Какие преимущества и недостатки имеет модель OSI по сравнению с моделью TCP/IP? 7) Какие преимущества предоставляет модель OSI для разработки и стандартизации сетевых протоколов? 8) Какую роль играет декомпозиция в сетевых моделях?