Протокол это стандарт описывающий правила взаимодействия двух систем

Обновлено: 02.07.2024

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

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

Протоколы связи через Интернет публикуются Инженерной группой Интернета (IETF). IEEE (Институт инженеров по электротехнике и электронике) ручках проводной и беспроводной сети и Международная организация по стандартизации (ISO) обрабатывает другие типы. В МСЭ-Т протоколы ручки телекоммуникационные и форматы для коммутируемой телефонной сети общего пользования (PSTN). По мере конвергенции ТфОП и Интернета стандарты также стремятся к конвергенции.

СОДЕРЖАНИЕ

Сетевые исследования в начале 1970-х годов, проведенные Робертом Э. Каном и Винтом Серфом, привели к разработке Программы управления передачей (TCP). [10] Его спецификация RFC 675 была написана Серфом совместно с Йогеном Далалом и Карлом Саншайном в декабре 1974 года, и в то время все еще оставалась монолитной.

Международная рабочая группа по сети согласовало установления соединения дейтаграмм стандарт , который был представлен на CCIT в 1975 году , но не был принят МСЭ или по ARPANET. [11] Международные исследования, в частности , работа Ремигия Депре , внесли свой вклад в развитие X.25 стандарта, на основе виртуальных каналов со стороны МСЭ-Т в 1976 г. [12] [13] Производители компьютеров разработали собственные протоколы , такие как IBM, Системная сетевая архитектура (SNA), DECnet и Digital Equipment Corporation.Сетевые системы Xerox . [14]

Международная работа над эталонной моделью для стандартов связи привела к модели OSI , опубликованной в 1984 году. В течение периода в конце 1980-х - начале 1990-х инженеры, организации и нации разошлись по вопросу о том, какой стандарт , модель OSI или Интернет. набор протоколов, приведет к созданию лучших и наиболее надежных компьютерных сетей. [16] [17] [18]

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

Операционные системы обычно содержат набор взаимодействующих процессов, которые манипулируют общими данными для связи друг с другом. Этот обмен данными регулируется хорошо понятными протоколами, которые могут быть встроены в сам код процесса. [19] [20] Напротив, из-за отсутствия общей памяти системы связи должны взаимодействовать друг с другом, используя общую среду передачи . Передача не всегда надежна, и отдельные системы могут использовать другое оборудование или операционные системы.

Для реализации сетевого протокола программные модули протокола взаимодействуют со структурой, реализованной в операционной системе машины. Эта структура реализует сетевые функции операционной системы. [21] Когда алгоритмы протокола выражаются на переносимом языке программирования, программное обеспечение протокола может быть сделано независимым от операционной системы . Лучшие известные структуры являются / модель TCP IP и модель OSI .

В то время, когда был разработан Интернет, разделение на уровни абстракции оказалось успешным подходом к проектированию как компилятора, так и операционной системы, и, учитывая сходство между языками программирования и протоколами связи, первоначально монолитные сетевые программы были разложены на взаимодействующие протоколы. [22] Это привело к появлению концепции многоуровневых протоколов, которая в настоящее время составляет основу проектирования протоколов. [23]

Системы обычно не используют один протокол для обработки передачи. Вместо этого они используют набор взаимодействующих протоколов, иногда называемый набором протоколов . [24] Некоторые из наиболее известных наборов протоколов - это TCP / IP , IPX / SPX , X.25 , AX.25 и AppleTalk .

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

Принципы системной инженерии были применены для создания набора общих принципов проектирования сетевых протоколов. Разработка сложных протоколов часто включает разложение на более простые, взаимодействующие протоколы. Такой набор взаимодействующих протоколов иногда называют семейством протоколов или набором протоколов [24] в рамках концептуальной основы.

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

Рисунок 2. Модель TCP / IP или схема многоуровневого Интернета и ее связь с некоторыми распространенными протоколами.

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

Протоколы связи, используемые в Интернете , предназначены для работы в разнообразных и сложных условиях. Интернет-протоколы разработаны с учетом простоты и модульности и вписываются в грубую иерархию функциональных уровней, определенных в Internet Protocol Suite . [41] Первые два взаимодействующих протокола, протокол управления передачей (TCP) и Интернет-протокол (IP), возникли в результате разложения исходной программы управления передачей, монолитного коммуникационного протокола, в этот многоуровневый коммуникационный пакет.

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

Обычно прикладное программное обеспечение построено на надежном транспортном уровне данных. В основе этого транспортного уровня лежит механизм доставки и маршрутизации дейтаграмм, который обычно не требует установления соединения в Интернете. Ретрансляция пакетов по сетям происходит на другом уровне, который включает только технологии сетевого соединения, которые часто специфичны для определенных технологий физического уровня, таких как Ethernet . При необходимости многоуровневый обмен технологиями позволяет, например, протоколы часто объединяются в туннельную структуру, чтобы обеспечить соединение разнородных сетей. Например, IP может быть туннелирован через сеть с асинхронным режимом передачи (ATM).

Уровни протоколов составляют основу конструкции протокола. [23] Он позволяет разложить отдельные сложные протоколы на более простые взаимодействующие протоколы. [41] Каждый уровень протокола решает отдельный класс коммуникационных проблем. Вместе слои составляют схему или модель наслоения.

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

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

Перевод программы разбит на подзадачи. В результате программное обеспечение для перевода также является многоуровневым, что позволяет разрабатывать уровни программного обеспечения независимо. Тот же подход можно увидеть в многоуровневом TCP / IP. [43]

Модули ниже уровня приложения обычно считаются частью операционной системы. Передача данных между этими модулями намного дешевле, чем передача данных между прикладной программой и транспортным уровнем. Граница между уровнем приложения и транспортным уровнем называется границей операционной системы. [44]

Строгое соблюдение многоуровневой модели, практика, известная как строгая многоуровневая структура, не всегда является лучшим подходом к сети. [45] Строгое разделение на уровни может отрицательно сказаться на производительности реализации. [46]

Хотя использование многоуровневого протокола сегодня повсеместно используется в компьютерных сетях, оно исторически подвергалось критике со стороны многих исследователей [47] по двум основным причинам. Во-первых, абстрагирование стека протоколов таким образом может привести к тому, что верхний уровень будет дублировать функциональные возможности нижнего уровня, ярким примером которого является устранение ошибок как для каждого канала, так и на сквозной основе. [48]

Часто повторяющиеся проблемы при разработке и реализации протоколов связи могут быть решены с помощью шаблонов из нескольких различных языков шаблонов: Язык шаблонов для протоколов связи на уровне приложений ( CommDP ), [49] [50] Шаблоны проектирования служб, [51] Шаблоны предприятия Архитектура приложений, [52] Шаблонно-ориентированная архитектура программного обеспечения: язык шаблонов для распределенных вычислений. [53] Первый из этих языков шаблонов фокусируется на разработке протоколов, а не на их реализации. Остальные решают проблемы либо в обеих областях, либо только во втором.

Формальные методы описания коммуникационного синтаксиса - это абстрактная синтаксическая нотация 1 ( стандарт ISO ) и расширенная форма Бэкуса-Наура ( стандарт IETF ).

Модели конечных автоматов [54] [55] и коммуникационные конечные автоматы [56] используются для формального описания возможных взаимодействий протокола.

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

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

Некоторыми организациями по стандартизации, имеющими отношение к протоколам связи, являются Международная организация по стандартизации (ISO), Международный союз электросвязи (ITU), Институт инженеров по электротехнике и радиоэлектронике (IEEE) и Инженерная группа Интернета (IETF). IETF поддерживает протоколы, используемые в Интернете. IEEE контролирует множество программных и аппаратных протоколов в электронной промышленности для коммерческих и потребительских устройств. МСЭ является зонтичной организацией телекоммуникационных инженеров проектирования коммутируемого телефонной сети общего пользования (PSTN), а также множество радио систем связи. Заморская электроника используются стандарты NMEA . World Wide Web Consortium (W3C) производит протоколы и стандарты для Web - технологий.

Международные организации по стандартизации должны быть более беспристрастными, чем местные организации, которые должны учитывать национальные или коммерческие интересы. Организации по стандартизации также проводят исследования и разработки для стандартов будущего. На практике упомянутые организации по стандартизации тесно сотрудничают друг с другом. [57]

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

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

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

Международные стандарты периодически переиздаются для устранения недостатков и отражения меняющихся взглядов на предмет. [58]

Урок, извлеченный из ARPANET , предшественника Интернета, заключался в том, что протоколам для работы нужна структура. Поэтому важно разработать универсальную, ориентированную на будущее инфраструктуру, подходящую для структурированных протоколов (таких как многоуровневые протоколы) и их стандартизации. Это предотвратило бы перекрывающиеся функциональные возможности стандартов протокола и позволило бы четко определить обязанности протокола на разных уровнях (слоях). [59] Это привело к появлению эталонной модели взаимодействия открытых систем OSI (RM / OSI), которая используется в качестве основы для разработки стандартных протоколов и услуг, соответствующих спецификациям различных уровней. [60]

В модели OSI предполагается, что коммуникационные системы связаны базовой физической средой, обеспечивающей базовый (и неуказанный) механизм передачи. Слои над ним пронумерованы (от одного до семи); n- й слой называется (n) -уровнем. Каждый уровень предоставляет услуги вышележащему слою (или процессу приложения наверху), используя сервисы уровня, находящегося непосредственно под ним. Уровни связываются друг с другом посредством интерфейса, называемого точкой доступа к сервису . Соответствующие уровни в каждой системе называются одноранговыми объектами.. Для связи два одноранговых объекта на данном уровне используют (n) -протокол, который реализуется с помощью служб (n-1) -уровня. Когда системы не подключены напрямую, используются промежуточные одноранговые объекты (называемые реле ). Адрес однозначно идентифицирует точку доступа к услуге. Домены именования адресов не должны ограничиваться одним уровнем, поэтому можно использовать только один домен именования для всех уровней. [61] Для каждого уровня существует два типа стандартов: стандарты протокола, определяющие, как одноранговые объекты на данном уровне обмениваются данными, и стандарты услуг, определяющие, как данный уровень взаимодействует с уровнем над ним.

В исходной версии RM / OSI уровни и их функциональность (от самого высокого до самого низкого уровня) следующие:

Процесс стандартизации описан в RFC2026 .

В настоящее время IETF превратилась в организацию по стандартизации протоколов, используемых в Интернете. RM / OSI расширил свою модель, включив в нее сервисы без установления соединения, и благодаря этому TCP и IP могут быть преобразованы в международные стандарты.

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

Отводками схема сочетает в себе функции и область применения. Преобладающими схемами расслоения являются схемы, предложенные IETF и ISO. Несмотря на то, что базовые допущения схем многоуровневого разделения достаточно различны, чтобы гарантировать различение этих двух схем, обычной практикой является их сравнение путем соотнесения общих протоколов с уровнями двух схем. [71]

Схема многоуровневого доступа от IETF называется многоуровневым Интернетом или TCP / IP .

Схема слоев из ISO называется моделью OSI или слоями ISO .

Читайте также: