exam17 - stankin/inet-2022 GitHub Wiki

Билет 17

1. Модель взаимосвязи открытых систем. Понятия уровня и протокола.

2. Виды интерфейсов, используемых в веб-программировании.

◀️ Реферат к вопросам экзамена по дисциплине Интернет-технологии 1 курса магистратуры ▶️

Выполнили: Арсеньев Даниэль ИДМ-22-01, Розанова Ирина ИДМ-22-02, Балалаева Юлия ИДМ-22-03, Каноник Карина ИДМ-22-04, Михайлов Даниил ИДМ-22-06, Копылов Эдуард ИДМ-22-07.


Модель взаимосвязи открытых систем. Понятия уровня и протокола.


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

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

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

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

Иными словами, протокол — это набор соглашений между разработчиками ПО и аппаратуры. Текст протокола отвечает на вопрос: "Что нужно сделать, чтобы программы и устройства могли взаимодействовать с другими программами/устройствами, поддерживающими протокол" [9].

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

Так, протокол определяет правила взаимодействия модулей одного уровня в разных узлах, а интерфейс – модулей соседних уровней в одном узле.

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

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

Для взаимодействия протоколов между собой существует модель OSI, или Open Systems Interconnection. Дословно название переводится как «взаимодействие открытых систем».

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

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

Уровневая организация системы не означает, что функции, выполнявшиеся ранее системами передачи и коммутации в сети связи, аннулируются и заменяются другими. Уровневая организация означает лишь, что эти функции подвергаются упорядочению и стандартизации.

Функциональные уровни модели OSI:

Рис. 1. Модель OSI

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

  1. Физический уровень (Physical layer). Физический уровень имеет дело с передачей битов по физическим линиям и каналам связи. Передача бит происходит по кабелям (например, через оптоволокно) или без — например, через Bluetooth, Wi-Fi и т.д. На этом уровне определяются характеристики физических сред, параметры электрических сигналов, тип кодирования, стандартизуются типы разъемов и назначение каждого контакта. Данный уровень выполняет следующие функции:

    • установление и разъединение физических соединений;
    • передача последовательностей сигналов;
    • прослушивание канала (необходимо в тех случаях, когда к одному каналу подключается группа систем, но одновременно передавать сигналы разрешается только одной из них, тогда прослушивание используется для определения, свободен ли канал для передачи);
    • идентификация канала;
    • оповещение о появлении неисправностей и отказов.
  2. Канальный уровень (Date link layer). Данный уровень решает проблему адресации при передаче информации. На канальном уровне биты группируются в наборы, называемыми кадрами (frame). У канального уровня есть два подуровня: уровень управления доступом к среде и уровень управления логическими связями. Уровень управления доступом к среде (MAC) — отвечает за управление тем, как устройства в сети получают доступ к среде и разрешение на передачу данных. Уровень управления логическими связями (LLC) — отвечает за идентификацию и инкапсуляцию протоколов сетевого уровня, а также контролирует проверку ошибок и синхронизацию кадров. Протоколы канального уровня оформляют переданные им пакеты в кадры собственного формата, помещая указанный адрес назначения в одно из полей кадра, а также сопровождая кадр контрольной суммой и отправляя кадры для передачи на физический уровень. В компьютерах функции канального уровня реализуются сетевыми адаптерами и их драйверами. Протокол канального уровня имеет локальный смысл, он предназначен для доставки кадров данных, как правило, в пределах сетей с простой топологией связей и однотипной технологией, когда адрес назначения имеет локальный смысл для данной сети и не изменяется при прохождении кадра от узла-источника к узлу назначения. Для доставки сообщений между конечными узлами через глобальную, многоузловую сеть требуется обращение к средствам сетевого и транспортного уровней

  3. Сетевой уровень (Network layer). Сетевой уровень служит для образования единой транспортной системы. Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизаторы получают MAC-адрес от коммутаторов с предыдущего уровня и занимаются построением маршрута от одного устройства к другому с учетом всех потенциальных неполадок в сети. Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня. Сообщения сетевого уровня принято называть пакетами. Основная идея сетевого уровня состоит в том, чтобы оставить технологии, используемые в объединяемых сетях в неизменном в виде, но добавить в кадры канального уровня дополнительную информацию - заголовок сетевого уровня, на основании которой можно было бы находить адресата в сети с любой базовой технологией. Протоколы сетевого уровня реализуются программными модулями операционной системы компьютеров оконечных узлов, а также программными и аппаратными средствами маршрутизаторов. Примером протокола сетевого уровня является протокол межсетевого взаимодействия IP стека протоколов TCP/IP.

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

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

  6. Представительный уровень (Presentation layer). Этот уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Представительный уровень имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. Информация, передаваемая прикладным уровнем одной системы, всегда должна быть понятна прикладному уровню другой системы. С помощью средств представительного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или различия в кодах символов. На уровне представления реализованы следующие функции: преобразование данных; перевод символов, например, из кодировки ASCII в EBCDIC; сжатие данных для увеличения пропускной способности канала; шифрование и дешифрование (одно из применений шифрования - передача пароля принимающему компьютеру).

  7. Прикладной уровень (Application Layer). Прикладной уровень – это просто набор протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые web-страницы, а также организуют свою совместную работу, например, по протоколу электронной почты (E-mail), обеспечивают прием и хранение пакетов в «почтовых ящиках» (mail-box). Единица данных, которой оперирует прикладной уровень, обычно называется сообщением.

Преимущества OSI:

  • Это общая модель, которая служит руководством для разработки любой сетевой модели.
  • Это многоуровневая модель. Изменения одного слоя не влияют на другие слои при условии, что интерфейсы между слоями не меняются кардинально.
  • Она четко разделяет сервисы, интерфейсы и протоколы. Следовательно, она является гибкой по своей природе. Протоколы на каждом уровне могут быть очень удобно заменены в зависимости от характера сети.
  • Она поддерживает как сервисы, ориентированные на подключение, так и сервисы без подключения. [10]

Недостатки OSI:

  • Семиуровневая модель OSI считается устаревшей.
  • При построении сети используются не все уровни модели ОСИ. 5 и 6 уровни при работе с реальными сетями практически не применяются.
  • Модель ISO/OSI является закрытой.
  • Это чисто теоретическая модель, которая не учитывает доступность соответствующей технологии. Это ограничивает ее практическую реализацию.
  • Модель OSI очень сложна. Первоначальная реализация была громоздкой, медленной и дорогостоящей.
  • Существует дублирование услуг на разных уровнях. Такие услуги, как адресация, управление потоком и контроль ошибок, предлагаются на нескольких уровнях.
  • Стандарты модели OSI являются теоретическими и не предлагают адекватных решений для практической реализации сети. [10]

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

Межуровневые функции

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

Конкретные примеры межуровневых функций включают следующее:

  • Служба безопасности (электросвязь), определенная рекомендацией X.800.
  • Функции управления, то есть функции, которые позволяют настраивать, создавать экземпляры, отслеживать, прерывать связь двух или более объектов: существует определенный протокол прикладного уровня, протокол common management information protocol (CMIP) и соответствующая ему служба (CMIS), они должны взаимодействовать с каждым уровнем, чтобы иметь дело с их экземплярами.
  • Многопротокольная коммутация меток (MPLS), ATM и X.25 являются протоколами 3a. OSI подразделяет сетевой уровень на три подуровня:3a) Доступ к подсети, 3b) зависимая от подсети конвергенция и 3c) независимая от подсети конвергенция. Она была разработана для обеспечения унифицированной службы передачи данных как для клиентов на основе каналов, так и для клиентов с коммутацией пакетов, которые предоставляют модель обслуживания на основе дейтаграмм. Она может использоваться для передачи множества различных видов трафика, включая IP-пакеты, а также собственные фреймы ATM, SONET и Ethernet. Иногда можно увидеть ссылку на слой 2.5.
  • Перекрестное планирование MAC и PHY имеет важное значение в беспроводных сетях из-за изменяющейся во времени природы беспроводных каналов. Планируя передачу пакетов только при благоприятных условиях канала, что требует от уровня MAC получения информации о состоянии канала от уровня PHY, можно значительно повысить пропускную способность сети и избежать потерь энергии.

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


Интерфейс (англ. interface – взаимодействие, сопряжение) в широком смысле – это место соприкосновения двух функциональных объектов. Если говорить более узко, то интерфейс – это «мост», посредник между человеком, программами и машинами, иными системами. Это инструменты взаимодействия, с помощью которых одна система контактирует и строит диалог с другой.

Рис. 2. Интерфейс = Система ∩ Окружение

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

Виды интерфейсов:

Вид интерфейса Среда работы Основные возможности и ограничения
1.Текстовый Терминал, командная строка ОС, DOS-системы Позволяет общаться с приложением с помощью ввода команд и получения ответов в текстовом виде. Команда набирается на клавиатуре и отображается на экране дисплея. Окончанием ввода команды служит нажатие клавиши Enter. Для работы с операционными системами, имеющими текстовый интерфейс, необходимо овладеть командным языком данной среды, т.е. совокупностью команд, структура которых определяется синтаксисом этого языка. Графические возможности сильно ограничены и заключаются в использовании текстовых символов рисования. Основное преимущество: скорость работы машины (низкие требования к ресурсам). Приложения обычно привязаны к определенной платформе выполнения (ОС)
2.Графический (визуальный) ОС с графическим интерфейсом [Windows, *NIX с оконными менеджерами) Общение человека с приложением обогащено визуальными образами, графикой, метафорами и другими приемами эффективной работы. Появляется возможность видеть реальный графический результат работы на мониторе и выводить все виды графической и текстовой информации. Устройствами управления в данном случае являются клавиатура и мышь. Активным элементом управления является указатель мыши — графический объект, перемещение которого на экране синхронизировано с перемещением мыши. Пассивные элементы управления — это графические элементы управления приложений (экранные кнопки, значки, переключатели, флажки, раскрывающиеся списки, строки меню и т.д.). Эффективность взаимодействия высокая. Требования к ресурсам значительно больше.
3.Веб-интерфейс (HTML) Веб-браузер, поддерживающий использованный стандарт Подобен графическому интерфейсу по возможностям, с определенными ограничениями. Требования к ресурсам зависят от других элементов (ОС и особенностей приложения), колеблются от низких до средних. Требования к среде работы интерфейса обычно сводятся к версиям веб-браузера. Приложения могут работать на различных программных платформах (межплатформенность)
4.Веб-интерфейс (использующий эмуляцию графического) Виртуальная машина Java, библиотеки Тк и т.д. Полностью повторяют функциональность графического интерфейса. Требования к ресурсам повышенные. Переносимость ниже, чем у DTM-интерфейсов, но выше, чем у простых графических приложений. Для работы требуют установки дополнительных компонентов системы (виртуальной машины или библиотек)
5.Веб-интерфейс нового поколения (Rich UI) Интерактивная среда Adobe Flash, AIR: Microsoft Silverlight Расширение традиционных видов интерфейсов (графического и веб-) за счет использования векторной графики, анимации, эффектов, дополнительных видов взаимодействия. Позволяет легко интегрировать мультимедиа-контент и создавать любые элементы управления с индивидуальным дизайном. Большая интерактивность за счет частичного обновления элементов по сети. С клиентской стороны требуют установки дополнений к браузерам, не все решения полностью межплатформенные

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

Варианты реализации.

Классическим и наиболее популярным методом создания веб-интерфейсов является использование HTML с применением CSS и JavaScript'a. Однако различная реализация HTML, CSS, DOM и других спецификаций в браузерах вызывает проблемы при разработке веб-приложений и их последующей поддержке. Кроме того, возможность пользователя настраивать многие параметры браузера (например, размер шрифта, цвета, отключение поддержки сценариев) может препятствовать корректной работе интерфейса.

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

Преимущества применения.

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

API как средство интеграции приложений

Интерфе́йс программи́рования приложе́ний (Application Programming Interface, API) — набор методов (функций), который программист может использовать для доступа к функциональности программного компонента (программы, модуля, библиотеки). API является важной абстракцией, описывающей функциональность «в чистом виде», безотносительно того, как реализована эта функциональность.

API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована. Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать.

Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов. По такому принципу построены протоколы передачи данных по Internet. Стандартный протокол Internet (сетевая модель OSI) содержит 7 уровней (от физического уровня передачи пакетов бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP). Каждый уровень пользуется функциональностью предыдущего уровня передачи данных и, в свою очередь, предоставляет нужную функциональность следующему уровню. Важно заметить, что понятие протокола близко по смыслу к понятию API. И то и другое является абстракцией функциональности, только в первом случае речь идёт о передаче данных, а во втором — о построении компьютерных приложений. API библиотеки функций и классов включает в себя описание сигнатур и семантики функций.

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

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

ИСТОЧНИКИ

  1. 📑 Лекции по дисциплине "Интернет-технологии"
  2. 📑 Открытые системы, модель взаимодействия открытых систем
  3. 📃 ТЕХНОЛОГИИ И ВОЗМОЖНОСТИ ВЕБ-ИНТЕРФЕЙСОВ
  4. 📃 Википедия: Веб-интерфейсы
  5. 📃 Википедия: Модель OSI
  6. 📃 ПОРТАЛ ЗНАНИЙ
  7. 📃Модель взаимодействия открытых систем OSI.
  8. 📃Эталонная модель взаимосвязи открытых систем (модель OSI).
  9. 📃Открытая сетевая модель OSI.
  10. 📃Advantages and Disadvantages of the OSI Model.

ИСТОЧНИКИ

  1. 📑 Учебный материал (лекция, практикум...) или стандарт
  2. 📃 Научно-популярная или техническая статья (Википедия...)
  3. 🎦 Видео-ролик
  4. 💻 Веб-приложение
⚠️ **GitHub.com Fallback** ⚠️