Компьютерные сети. Способы организации межкомпьютерной связи. Протокол коммуникации.
Существуют задачи, которые трудно или невозможно решить без организации информационной связи между различными компьютерами:
перенос информации на большие расстояния (сотни, тысячи километров);
совместное использование несколькими компьютерами дорогостоящих аппаратных, программных или информационных ресурсов — мощного процессора, ёмкого накопителя, высокопроизводительного лазерного принтера, баз данных, программного обеспечения и т.д.;
совместная работа над большим проектом, когда исполнили должны всегда иметь последние (актуальные) копии общих данных во избежание путаницы, и т.д.
Есть три основных способа организации межкомпьютерной связи:
объединение двух рядом расположенных компьютеров через их коммуникационные порты посредством специального кабеля;
передача данных от одного компьютера к другому посредством модема с помощью проводных или спутниковых линий связи;
объединение компьютеров в компьютерную сеть.
Часто при организации связи между двумя компьютерами за одним компьютером закрепляется роль поставщика ресурсов (программ, данных и т.д.), а за другим — роль пользователя этих ресурсов. В этом случае первый компьютер называется сервером, а второй — клиентом или рабочей станцией. Работать можно только на компьютере-клиенте под управлением специального программного обеспечения.
Сервер (англ. serve — обслуживать) — это высокопроизводительный компьютер с большим объёмом внешней памяти, который обеспечивает обслуживание других компьютеров путем управления распределением дорогостоящих ресурсов совместного пользования (программ, данных и периферийного оборудования).
Клиент (иначе, рабочая станция) — любой компьютер, имеющий доступ к услугам сервера.
В некоторых случаях компьютер может быть одновременно и клиентом, и сервером. Это значит, что он может предоставлять свои ресурсы и хранимые данные другим компьютерам и одновременно использовать их ресурсы и данные.
Для преодоления несовместимости интерфейсов отдельных компьютеров вырабатывают специальные стандарты, называемые протоколами коммуникации.
Протокол коммуникации — это согласованный набор конкретных правил обмена информацией между разными устройствами передачи данных. Имеются протоколы для скорости передачи, форматов данных, контроля ошибок и др.
Для работы с сетью необходимо наличие специального сетевого программного обеспечения, которое обеспечивает передачу данных в соответствии с заданным протоколом.
Протоколы коммуникации предписывают разбить весь объём передаваемых данных на пакеты — отдельные блоки фиксированного размера. Пакеты нумеруются, чтобы их затем можно было собрать в правильной последовательности. К данным, содержащимся в пакете, добавляется дополнительная информация примерно такого формата:
Поле контрольной суммы
Контрольная сумма данных пакета содержит информацию, необходимую для контроля ошибок. Первый раз она вычисляется передающим компьютером. После того, как пакет будет передан, контрольная сумма повторно вычисляется принимающим компьютером. Если значения не совпадают, это означает, что данные пакета были повреждены при передаче. Такой пакет отбрасывается, и автоматически направляется запрос повторно передать пакет.
Коммуникационный протокол
Сетево́й протоко́л — набор правил, позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть устройствами.
Разные протоколы зачастую описывают лишь разные стороны одного типа связи; взятые вместе, они образуют стек протоколов. Названия «протокол» и «стек протоколов» также указывают на программное обеспечение, которым реализуется протокол.
Новые протоколы для Интернета определяются IEEE или ITU-T занимается телекоммуникационными протоколами и форматами.
Наиболее распространённой системой классификации сетевых протоколов является так называемая модель OSI, в соответствии с которой протоколы делятся на 7 уровней по своему назначению — от физического (формирование и распознавание электрических или других сигналов) до прикладного (API для передачи информации приложениями).
Содержание
Некоторые сетевые протоколы
Физический уровень
- RS-232
- EIA-422
Канальный уровень
- Token ring
- HDLC
- PPP, L2TP
- xDSL
Сетевой уровень
- IPv4, IPX
Транспортный уровень
- TCP/IP
- RDP (Reliable Data Protocol)
Сеансовый уровень
Уровень представления данных
- XML-RPC
- TDI
- SNMP
- Telnet
- NCP
Прикладной уровень
- DHCP (в модели OSI располагают на транспортном уровне)
- Finger
- Gnutella
- HTTPS
- IRC
- LDAP
- NNTP
- RDP (Remote Desktop Protocol)
- SMTP
- SNMP
См. также
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое «Коммуникационный протокол» в других словарях:
Коммуникационный протокол — совокупность правил, регламентирующих формат и процедуры обмена информацией между двумя или несколькими независимыми устройствами, компьютерами, программами или процессами. По английски: Communications protocol Синонимы: Протокол коммуникации См … Финансовый словарь
коммуникационный протокол — протокол связи протокол Формализованные правила, которые определяют, в какой последовательности и в каком формате должны обмениваться сообщениями сетевые компоненты, принадлежащие одному уровню, но в разным узлам. [Источник] Тематики сети… … Справочник технического переводчика
UCI (протокол) — У этого термина существуют и другие значения, см. UCI. UCI (англ. Universal Chess Interface) свободно распространяемый коммуникационный протокол, позволяющий движкам шахматных программ взаимодействовать с их графическим интерфейсом. Был… … Википедия
Инферно (операционная система) — Inferno Скриншот Inferno Разработчик Vita Nuova Исходный код Открытый Последняя версия … Википедия
LonTalk — LonTalk созданный компанией Echelon Corporation протокол, оптимизированный под задачи мониторинга и управления для сетевых устройств, взаимодействующих через различные среды коммуникации такие, как витая пара, линии электропитания,… … Википедия
Modbus — Modbus открытый коммуникационный протокол, основанный на архитектуре «клиент сервер». Широко применяется в промышленности для организации связи между электронными устройствами. Может использоваться для передачи данных через последовательные … Википедия
Inferno (операционная система) — У этого термина существуют и другие значения, см. Inferno. Inferno … Википедия
LonWorks — LonWorks сетевая платформа для достижения производительности, гибкости, соответствия инсталляционным и эксплуатационным потребностям в задачах активного мониторинга и управления. Платформа построена на созданном компанией Echelon… … Википедия
PROFINET — коммуникационный протокол, определяемый стандартами IEC 61158 и IEC 61784 для использования в системах автоматизации. В основе PROFINET лежит Industrial Ethernet. Основными направлениями применения PROFInet являются следующие: PROFINET IO… … Википедия
Meter-Bus — Содержание 1 Описание протокола 2 Некоторые параметры протокола M Bus 3 … Википедия
Протокол связи
Протокол связи представляет собой систему правил , которая позволяет два или более подразделений в системе связи для передачи информации с помощью какого — либо изменений в физической величине . Протокол определяет правила, синтаксис , семантика и синхронизацию по коммуникации и возможных способов устранения ошибок . Протоколы могут быть реализованы аппаратно , программно или их комбинацией. [1]
Коммуникационные системы используют четко определенные форматы для обмена различными сообщениями. Каждое сообщение имеет точное значение, предназначенное для получения ответа из ряда возможных ответов, заранее определенных для данной конкретной ситуации. Указанное поведение обычно не зависит от того, как оно должно быть реализовано . Протоколы связи должны быть согласованы участвующими сторонами. [2] Для достижения соглашения протокол может быть разработан в виде технического стандарта . Язык программирования описывает то же самое для вычислений, поэтому существует тесная аналогия между протоколами и языками программирования: протоколы для общения , что языки программирования для вычислений . [3] Альтернативная формулировка гласит, что протоколы предназначены для связи, а алгоритмы — для вычислений . [4]
Несколько протоколов часто описывают разные аспекты одной связи. Группа протоколов, предназначенных для совместной работы, известна как набор протоколов; при программной реализации они представляют собой стек протоколов .
Протоколы связи через Интернет публикуются Инженерной группой Интернета (IETF). IEEE (Институт инженеров по электротехнике и электронике) ручках проводной и беспроводной сети и Международная организация по стандартизации (ISO) обрабатывает другие типы. В МСЭ-Т протоколы ручки телекоммуникационные и форматы для коммутируемой телефонной сети общего пользования (PSTN). По мере конвергенции КТСОП и Интернета стандарты также стремятся к конвергенции.
Коммуникационные системы
История
Одно из первых применений термина « протокол» в контексте коммутации данных происходит в меморандуме « Протокол для использования в сети передачи данных NPL», написанном Роджером Скантлбери и Китом Бартлеттом в апреле 1967 года. [5] [6]
В ARPANET отправной точкой для связи между хостами в 1969 году был протокол 1822 , который определял передачу сообщений в IMP. [7] Программа управления сетью для ARPANET была впервые реализована в 1970 году. [8] Интерфейс NCP позволял прикладному программному обеспечению подключаться через ARPANET за счет реализации протоколов связи более высокого уровня, что является ранним примером концепции многоуровневого протокола . [9]
Сетевые исследования в начале 1970-х годов, проведенные Робертом Э. Каном и Винтом Серфом, привели к разработке Программы управления передачей (TCP). [10] Его спецификация RFC 675 была написана Серфом совместно с Йогеном Далалом и Карлом Саншайном в декабре 1974 года, и в то время все еще оставалась монолитной.
Международная рабочая группа по сети согласовало установления соединения дейтаграмм стандарт , который был представлен на CCIT в 1975 году , но не был принят МСЭ или по ARPANET. [11] Международные исследования, в частности , работа Ремигия Депре , внесли свой вклад в развитие X.25 стандарта, на основе виртуальных каналов со стороны МСЭ-Т в 1976 г. [12] [13] Производители компьютеров разработали собственные протоколы , такие как IBM, Системная сетевая архитектура (SNA), DECnet и Digital Equipment Corporation. Сетевые системы Xerox . [14]
Программное обеспечение TCP было преобразовано в модульный стек протоколов. Первоначально называвшийся IP / TCP , он был установлен в SATNET в 1982 году и в ARPANET в январе 1983 года. Разработка полного набора протоколов к 1989 году, как указано в RFC 1122 и RFC 1123 , заложила основу для роста TCP. / IP как всеобъемлющий набор протоколов как основной компонент развивающегося Интернета . [15]
Международная работа над эталонной моделью для стандартов связи привела к модели 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 .
Протоколы могут быть организованы по функциональности в группы, например, есть группа транспортных протоколов . Функциональные возможности отображаются на уровнях, каждый уровень решает отдельный класс проблем, связанных, например, с: функциями приложений, транспорта, Интернета и сетевых интерфейсов. [25] Для передачи сообщения необходимо выбрать протокол на каждом уровне. Выбор следующего протокола осуществляется расширением сообщения с помощью селектора протокола для каждого уровня. [26]
Существует два типа протоколов связи, основанных на их представлении передаваемого контента: текстовые и двоичные.
Текстовые
Протокол на основе текста или текстовый протокол представляет его содержание в воспринимаемом формате , часто в виде обычного текста.
Непосредственная читаемость человеком отличается от двоичных протоколов, которые имеют неотъемлемые преимущества для использования в компьютерной среде (такие как простота механического анализа и улучшенное использование полосы пропускания ).
В разных сетевых приложениях используются разные методы инкапсуляции данных. Один из методов, очень распространенных в Интернет-протоколах, — это текстовое представление, которое передает запросы и ответы в виде строк текста ASCII , оканчивающихся символом новой строки (и обычно символом возврата каретки). Примерами протоколов, которые используют простой, понятный для человека текст для своих команд, являются FTP ( протокол передачи файлов ), SMTP ( простой протокол передачи почты ) и протокол finger . [27]
Текстовые протоколы обычно оптимизированы для синтаксического анализа и интерпретации человеком и поэтому подходят всякий раз, когда требуется проверка содержимого протокола человеком, например, во время отладки и на ранних этапах разработки протокола.
Двоичный
Двоичный протокол использует все значения в бай , в отличие от протокола на основе текста , который использует только значение , соответствующие человека считываемых символов в ASCII — кодировке. Двоичные протоколы предназначены для чтения машиной, а не человеком. Двоичные протоколы имеют преимущество краткости, что означает скорость передачи и интерпретации.
Двоичные файлы используются в нормативных документах, описывающих современные стандарты, такие как EbXML , HTTP / 2 , HTTP / 3 и EDOC . [28] Интерфейс в UML [29] также может считаться двоичным протоколом.
Основные требования
Передача данных по сети — это только часть проблемы протокола. Полученные данные должны оцениваться в контексте хода разговора, поэтому протокол должен включать правила, описывающие контекст. Считается, что такие правила выражают синтаксис общения. Другие правила определяют, значимы ли данные для контекста, в котором происходит обмен. Считается, что такие правила выражают семантику коммуникации.
Сообщения отправляются и принимаются в коммуникационных системах для установления связи. Поэтому протоколы должны определять правила, регулирующие передачу. Как правило, следует обратить внимание на многие из следующих вопросов: [30]
Форматы данных для обмена данными Обмен битовыми строками цифрового сообщения. Строки битов разделены на поля, и каждое поле несет информацию, относящуюся к протоколу. Концептуально цепочка битов делится на две части, называемые заголовком и полезной нагрузкой . Фактическое сообщение переносится в полезной нагрузке. Область заголовка содержит поля, относящиеся к работе протокола. Строки битов длиннее максимальной единицы передачи (MTU) делятся на части подходящего размера. [31] Форматы адресов для обмена данными Адреса используются для идентификации как отправителя, так и предполагаемых получателей. Адреса переносятся в области заголовка цепочек битов, позволяя получателям определять, представляют ли цепочки битов интерес и должны ли их обрабатываться, или их следует игнорировать. Соединение между отправителем и получателем можно определить с помощью пары адресов (адрес отправителя, адрес получателя) . Обычно некоторые значения адресов имеют особое значение. An All — 1 сек — адрес может быть принят для обозначения адресации всех станций в сети, так что отправка по этому адресу приведет к трансляции по локальной сети. Правила, описывающие значения значения адреса, в совокупности называются схемой адресации . [32] Отображение адресов Иногда протоколам необходимо сопоставить адреса одной схемы с адресами другой схемы. Например, для преобразования логического IP-адреса, указанного приложением, в MAC-адрес Ethernet. Это называется отображением адресов . [33] Маршрутизация Когда системы не связаны напрямую, промежуточные системы на пути к предполагаемому получателю (ям) должны пересылать сообщения от имени отправителя. В Интернете сети соединяются с помощью маршрутизаторов. Взаимосвязь сетей через маршрутизаторы называется межсетевым взаимодействием . Обнаружение ошибок передачи Обнаружение ошибок необходимо в сетях, где возможно повреждение данных. В обычном подходе CRC области данных добавляется в конец пакетов, что позволяет получателю обнаруживать различия, вызванные повреждением. Получатель отклоняет пакеты при различиях CRC и каким-то образом организует повторную передачу. [34] Благодарности Подтверждение правильного приема пакетов требуется для связи с установлением соединения . Подтверждения отправляются получателями обратно их соответствующим отправителям. [35] Потеря информации — таймауты и повторные попытки Пакеты могут теряться в сети или задерживаться в пути. Чтобы справиться с этим, в соответствии с некоторыми протоколами отправитель может ожидать подтверждения правильного приема от получателя в течение определенного периода времени. Таким образом, по истечении времени ожидания отправителю может потребоваться повторно передать информацию. [a] В случае постоянно разрыва связи повторная передача не имеет никакого эффекта, поэтому количество повторных передач ограничено. Превышение лимита повторов считается ошибкой. [36] Направление информационного потока Направление необходимо адресовать, если передача может происходить только в одном направлении за раз, как на полудуплексных каналах, или от одного отправителя за раз, как на совместно используемой среде . Это называется контролем доступа к среде . Должны быть приняты меры для учета случая коллизии или разногласий, когда две стороны соответственно одновременно передают или желают передать. [37] Последовательный контроль Если длинные строки битов разделены на части, а затем отправлены по сети по отдельности, части могут быть потеряны или задержаны, или, в некоторых типах сетей, они будут следовать по разным маршрутам к месту назначения. В результате части могут поступать не по порядку. Повторная передача может привести к дублированию частей. Помечая части с информацией о последовательности у отправителя, получатель может определить, что было потеряно или дублировано, запросить необходимые повторные передачи и повторно собрать исходное сообщение. [38] Управление потоком Управление потоком необходимо, когда отправитель передает быстрее, чем получатель или промежуточное сетевое оборудование может обработать передачи. Управление потоком может быть реализовано путем обмена сообщениями от получателя к отправителю. [39] Очередь Взаимодействующие процессы или конечные автоматы используют очереди (или «буферы»), обычно очереди FIFO, для обработки сообщений в порядке отправки, и иногда могут иметь несколько очередей с разными приоритетами.
Дизайн протокола
Принципы системной инженерии были применены для создания набора общих принципов проектирования сетевых протоколов. Разработка сложных протоколов часто включает разложение на более простые, взаимодействующие протоколы. Такой набор взаимодействующих протоколов иногда называют семейством протоколов или набором протоколов [24] в рамках концептуальной основы.
Коммуникационные системы работают одновременно. Важным аспектом параллельного программирования является синхронизация программного обеспечения для приема и передачи сообщений связи в надлежащей последовательности. Параллельное программирование традиционно было темой в текстах по теории операционных систем. [40] Формальная проверка кажется необходимой, потому что параллельные программы печально известны скрытыми и сложными ошибками, которые они содержат. [41] Математический подход к изучению параллелизма и коммуникации называется взаимодействующими последовательными процессами (CSP). [42] Параллелизм также можно моделировать с помощью конечных автоматов , таких как Мили и Машины Мура . Машины Мили и Мура используются как инструменты проектирования в системах цифровой электроники, встречающиеся в виде аппаратного обеспечения, используемого в телекоммуникационных или электронных устройствах в целом. [43] [ нужен лучший источник ]
В литературе представлены многочисленные аналогии между компьютерным общением и программированием. По аналогии, механизм передачи протокола можно сравнить с центральным процессором (ЦП). Фреймворк вводит правила, которые позволяют программисту разрабатывать взаимодействующие протоколы независимо друг от друга.
Наслоение
В современном дизайне протоколов протоколы разделены на уровни и образуют стек протоколов. Уровни — это принцип проектирования, который разделяет задачу разработки протокола на более мелкие шаги, каждый из которых выполняет определенную часть, взаимодействуя с другими частями протокола только небольшим количеством четко определенных способов. Распределение по уровням позволяет разрабатывать и тестировать части протокола без комбинаторного взрыва случаев, сохраняя каждый проект относительно простым.
Протоколы связи, используемые в Интернете , предназначены для работы в разнообразных и сложных условиях. Интернет-протоколы разработаны с учетом простоты и модульности и вписываются в грубую иерархию функциональных уровней, определенных в Internet Protocol Suite . [44] Первые два взаимодействующих протокола, протокол управления передачей (TCP) и Интернет-протокол (IP), возникли в результате разложения исходной программы управления передачей, монолитного коммуникационного протокола, в этот многоуровневый коммуникационный пакет.
Модель OSI была разработана на международном уровне на основе опыта работы с сетями, предшествовавшими Интернету, в качестве эталонной модели для общей коммуникации с гораздо более строгими правилами взаимодействия протоколов и строгим распределением уровней.
Обычно прикладное программное обеспечение построено на надежном транспортном уровне данных. В основе этого транспортного уровня лежит механизм доставки и маршрутизации дейтаграмм, который обычно не требует установления соединения в Интернете. Ретрансляция пакетов по сетям происходит на другом уровне, который включает только технологии сетевого соединения, которые часто специфичны для определенных технологий физического уровня, таких как Ethernet . При необходимости многоуровневый обмен технологиями позволяет, например, протоколы часто объединяются в туннельную структуру, чтобы обеспечить соединение разнородных сетей. Например, IP может быть туннелирован через сеть с асинхронным режимом передачи (ATM).
Распределение протоколов
Распределение протоколов по уровням лежит в основе конструкции протокола. [23] Он позволяет разложить отдельные сложные протоколы на более простые взаимодействующие протоколы. [44] Каждый уровень протокола решает отдельный класс коммуникационных проблем. Вместе слои составляют схему или модель наслоения.
Вычисления имеют дело с алгоритмами и данными; Коммуникация включает протоколы и сообщения; Таким образом, аналог диаграммы потока данных — это своего рода диаграмма потока сообщений. [4] Для визуализации слоев протоколов и наборов протоколов на рисунке 3 показана схема потоков сообщений в двух системах, A и B, и между ними. Обе системы A и B используют один и тот же набор протоколов. Вертикальные потоки (и протоколы) являются внутрисистемными, а горизонтальные потоки сообщений (и протоколы) — между системами. Потоки сообщений регулируются правилами, а форматы данных определяются протоколами. Синие линии обозначают границы (горизонтальных) уровней протокола.
Уровни программного обеспечения
Программное обеспечение, поддерживающее протоколы, имеет многоуровневую организацию, и ее взаимосвязь с многоуровневым протоколом показана на рисунке 5.
Чтобы отправить сообщение в систему A, программный модуль верхнего уровня взаимодействует с модулем непосредственно под ним и передает сообщение для инкапсуляции. Нижний модуль заполняет данные заголовка в соответствии с протоколом, который он реализует, и взаимодействует с нижним модулем, который отправляет сообщение по каналу связи нижнему модулю системы B. В принимающей системе B происходит обратное, поэтому в конечном итоге сообщение доставляется в исходном виде в верхний модуль системы B. [45]
Перевод программы разбит на подзадачи. В результате программное обеспечение для перевода также является многоуровневым, что позволяет разрабатывать уровни программного обеспечения независимо. Тот же подход можно увидеть в многоуровневом TCP / IP. [46]
Модули ниже уровня приложения обычно считаются частью операционной системы. Передача данных между этими модулями намного дешевле, чем передача данных между прикладной программой и транспортным уровнем. Граница между уровнем приложения и транспортным уровнем называется границей операционной системы. [47]
Строгое наслоение
Строгое соблюдение многоуровневой модели, практика, известная как строгая многоуровневая структура, не всегда является лучшим подходом к сети. [48] Строгое разделение на уровни может отрицательно сказаться на производительности реализации. [49]
Хотя использование многоуровневого протокола сегодня повсеместно используется в компьютерных сетях, оно исторически подвергалось критике со стороны многих исследователей [50], поскольку такое абстрагирование стека протоколов может привести к тому, что верхний уровень будет дублировать функциональность нижнего уровня, т.е. Ярким примером является устранение ошибок как для каждого канала, так и для сквозного. [51]
Паттерны дизайна
Часто повторяющиеся проблемы при разработке и реализации протоколов связи могут быть решены с помощью шаблонов проектирования программного обеспечения . [52] [53] [54] [55] [56]
Формальная спецификация
Популярными формальными методами описания коммуникационного синтаксиса являются абстрактная синтаксическая нотация 1 ( стандарт ISO ) и расширенная форма Бэкуса – Наура ( стандарт IETF ).
Модели конечных автоматов используются для формального описания возможных взаимодействий протокола. [57] [58] и коммуникационные конечные автоматы [59]
Разработка протокола
Для установления связи необходимо выбрать протоколы. Правила могут быть выражены алгоритмами и структурами данных. Независимость от оборудования и операционной системы повышается за счет выражения алгоритмов на переносимом языке программирования. Независимость спецификации от источника обеспечивает более широкое взаимодействие.
Стандарты протоколов обычно создаются путем получения одобрения или поддержки организации по стандартизации , которая инициирует процесс стандартизации. Члены организации по стандартизации соглашаются придерживаться результата работы на добровольной основе. Часто участники контролируют крупные доли рынка, относящиеся к протоколу, и во многих случаях стандарты соблюдаются законом или правительством, поскольку считается, что они служат важным общественным интересам, поэтому получение одобрения может быть очень важным для протокола.
Потребность в стандартах протокола
Потребность в стандартах протоколов можно показать, посмотрев, что случилось с протоколом би-синхронизации (BSC), изобретенным IBM . BSC — это ранний протокол канального уровня, используемый для соединения двух отдельных узлов. Первоначально он не предназначался для использования в многоузловой сети, но это позволило выявить несколько недостатков протокола. В отсутствие стандартизации производители и организации не стеснялись улучшать протокол, создавая несовместимые версии в своих сетях. В некоторых случаях это было сделано намеренно, чтобы отговорить пользователей от использования оборудования других производителей. Существует более 50 вариантов исходного протокола би-синхронизации. Можно предположить, что стандарт предотвратил бы хотя бы часть этого. [21]
В некоторых случаях протоколы завоевывают доминирующее положение на рынке, не проходя через процесс стандартизации. Такие протоколы называются стандартами де-факто . Стандарты де-факто распространены на развивающихся рынках, нишевых рынках или рынках, которые являются монополизированными (или олигополизированными ). Они могут удерживать рынок в очень негативном состоянии, особенно когда используются для отпугивания конкурентов. С исторической точки зрения стандартизацию следует рассматривать как меру противодействия отрицательному воздействию стандартов де-факто. Существуют положительные исключения; Стандартная де-факто операционная система, такая как Linux, не имеет такого негативного влияния на своем рынке, потому что исходные коды публикуются и поддерживаются в открытом виде, что способствует конкуренции.
Организации по стандартизации
Некоторыми организациями по стандартизации, имеющими отношение к протоколам связи, являются Международная организация по стандартизации (ISO), Международный союз электросвязи (ITU), Институт инженеров по электротехнике и радиоэлектронике (IEEE) и Инженерная группа Интернета (IETF). IETF поддерживает протоколы, используемые в Интернете. IEEE контролирует множество программных и аппаратных протоколов в электронной промышленности для коммерческих и потребительских устройств. МСЭ является зонтичной организацией телекоммуникационных инженеров проектирования коммутируемого телефонной сети общего пользования (PSTN), а также множество радио систем связи. Для судовая электроника используются стандарты NMEA . World Wide Web Consortium (W3C) производит протоколы и стандарты для Web — технологий.
Международные организации по стандартизации должны быть более беспристрастными, чем местные организации, которые должны учитывать национальные или коммерческие интересы. Организации по стандартизации также проводят исследования и разработки для стандартов будущего. На практике упомянутые организации по стандартизации тесно сотрудничают друг с другом. [60]
Процесс стандартизации
Процесс стандартизации начинается с того, что ISO вводит в эксплуатацию рабочую группу подкомитета. Рабочая группа выдает рабочие проекты и документы для обсуждения заинтересованным сторонам (включая другие органы по стандартизации), чтобы вызвать обсуждение и комментарии. Это вызовет множество вопросов, дискуссий и, как правило, некоторых разногласий по поводу того, что должен предоставлять стандарт и может ли он удовлетворить все потребности (обычно нет). Все противоречивые точки зрения должны быть приняты во внимание, часто в качестве компромисса, для продвижения к проекту предложения рабочей группы.
Проект предложения обсуждается органами по стандартизации стран-членов и другими организациями в каждой стране. Комментарии и предложения сопоставляются, и перед тем, как члены ISO проголосуют по предложению, будут сформулированы национальные мнения. В случае отклонения проект предложения должен рассмотреть возражения и встречные предложения, чтобы создать новый проект предложения для повторного голосования. После множества отзывов, изменений и компромиссов предложение достигает статуса проекта международного стандарта и, в конечном итоге, международного стандарта .
Обычно процесс занимает несколько лет. Оригинальный бумажный черновик, созданный дизайнером, будет существенно отличаться от стандартного и будет содержать некоторые из следующих «особенностей»:
- Различные дополнительные режимы работы, например, чтобы разрешить установку разных размеров пакетов во время запуска, потому что стороны не могут достичь консенсуса по оптимальному размеру пакета.
- Параметры, которые не определены или могут принимать значения определенного набора по усмотрению разработчика. Это часто отражает противоречивые взгляды некоторых участников.
- Параметры зарезервированы для использования в будущем, что свидетельствует о том, что участники согласились с тем, что объект должен быть предоставлен, но не смогли прийти к соглашению о том, как это должно быть сделано в отведенное время.
- При внедрении стандарта неизбежно будут обнаружены различные несоответствия и двусмысленности.
Международные стандарты периодически переиздаются для устранения недостатков и отражения меняющихся взглядов на предмет. [61]
Стандартизация OSI
Урок, извлеченный из ARPANET , предшественника Интернета, заключался в том, что протоколам для работы нужна структура. Поэтому важно разработать универсальную, ориентированную на будущее инфраструктуру, подходящую для структурированных протоколов (таких как многоуровневые протоколы) и их стандартизации. Это предотвратило бы перекрывающиеся функциональные возможности стандартов протокола и позволило бы четко определить обязанности протокола на разных уровнях (слоях). [62] Это привело к появлению эталонной модели взаимодействия открытых систем OSI (RM / OSI), которая используется в качестве основы для разработки стандартных протоколов и услуг, соответствующих спецификациям различных уровней. [63]
В модели OSI предполагается, что коммуникационные системы связаны базовой физической средой, обеспечивающей базовый (и неуказанный) механизм передачи. Слои над ним пронумерованы (от одного до семи); n- й слой называется (n) -уровнем. Каждый уровень предоставляет услуги вышележащему слою (или процессу приложения наверху), используя сервисы уровня, находящегося непосредственно под ним. Уровни связываются друг с другом посредством интерфейса, называемого точкой доступа к сервису . Соответствующие уровни в каждой системе называются одноранговыми объектами. . Для связи два одноранговых объекта на данном уровне используют (n) -протокол, который реализуется с помощью служб (n-1) -уровня. Когда системы не подключены напрямую, используются промежуточные одноранговые объекты (называемые реле ). Адрес однозначно идентифицирует точку доступа к услуге. Домены именования адресов не должны ограничиваться одним уровнем, поэтому можно использовать только один домен именования для всех уровней. [64] Для каждого уровня существует два типа стандартов: стандарты протокола, определяющие, как одноранговые объекты на данном уровне взаимодействуют, и стандарты услуг, определяющие, как данный уровень взаимодействует с уровнем, находящимся над ним.
В исходной версии RM / OSI уровни и их функциональность (от самого высокого до самого низкого уровня) следующие:
- Прикладной может предоставлять следующие услуги для прикладных процессов: идентификация предполагаемых партнеров коммуникации, создание необходимых полномочий для связи, определение наличия и подлинности партнеров, соглашение о механизмах обеспечения конфиденциальности для связи, соглашения об ответственности за ошибки восстановление и процедуры для обеспечения целостности данных, синхронизация между взаимодействующими процессами приложений, идентификация любых ограничений синтаксиса (например, наборов символов и структур данных), определение стоимости и приемлемого качества обслуживания, выбор диалоговой дисциплины, включая необходимые процедуры входа и выхода . [65]
- Уровень представления может предоставлять следующие услуги прикладному уровню: запрос на установление сеанса, передачу данных, согласование синтаксиса, который будет использоваться между уровнями приложений, любые необходимые преобразования синтаксиса, форматирование и преобразования специального назначения (например, данные сжатие и шифрование данных). [66]
- Слой сеанса может предоставить следующие услуги уровня представления: создание и выпуск сеанса связи, нормальной и ускоренный обмен данных, службу карантина , который позволяет посылать представление объекта поручить получающие сеансы не опубликуют данные своей презентацию лица без разрешение, управление взаимодействием, чтобы объекты представления могли контролировать, чья очередь выполнять определенные функции управления, повторную синхронизацию сеансового соединения, сообщение о неисправимых исключениях объекту представления. [67]
- Транспортный уровень обеспечивает надежную и прозрачную передачу данных в экономически эффективном способе в соответствии с требованиями выбранного качеством обслуживания. Он может поддерживать мультиплексирование нескольких транспортных соединений в одно сетевое соединение или разделять одно транспортное соединение на несколько сетевых соединений. [68]
- Сетевой уровень делает установку, техническое обслуживание и выпуск сетевых путей между транспортной равноправными объектами. Когда необходимы реле, этот уровень обеспечивает функции маршрутизации и ретрансляции. Качество обслуживания оговаривается между сетью и транспортными объектами во время установки соединения. Этот уровень также отвечает за контроль перегрузки сети . [69]
- Уровень канала передачи данных выполняет настройку, обслуживание и освобождение соединений канала передачи данных. Ошибки, возникающие на физическом уровне, обнаруживаются и могут быть исправлены. Об ошибках сообщается на сетевой уровень. Обмен блоками передачи данных (включая управление потоком) определяется этим уровнем. [70]
- Физический уровень описывает деталь , как электрические характеристики физического соединения, использовали методы передачи, а также установку, техническое обслуживание и очистку физических соединений. [71]
В отличие от многоуровневой схемы TCP / IP , которая предполагает сеть без установления соединения, RM / OSI предполагает сеть, ориентированную на установление соединения. Сети с установлением соединения больше подходят для глобальных сетей, а сети без установления соединения больше подходят для локальных сетей. Использование соединений для связи подразумевает некоторую форму сеансовых и (виртуальных) цепей, следовательно (в модели TCP / IP отсутствует) сеансовый уровень. Составные члены ISO в основном занимались глобальными сетями, поэтому разработка RM / OSI была сосредоточена на сетях с установлением соединения, а сети без установления соединения были упомянуты только в дополнении к RM / OSI. [72] В то время IETF пришлось справиться с этим, а также с тем фактом, что Интернету нужны были протоколы, которых просто не было. В результате IETF разработала собственный процесс стандартизации, основанный на «приблизительном консенсусе и работающем коде». [73]
Процесс стандартизации описан в RFC2026 .
В настоящее время IETF превратилась в организацию по стандартизации протоколов, используемых в Интернете. RM / OSI расширил свою модель, включив в нее сервисы без установления соединения, и благодаря этому TCP и IP могут быть преобразованы в международные стандарты.
Таксономии
Схемы классификации протоколов обычно ориентированы на область использования и функции. В качестве примера области использования протоколы с установлением соединения и протоколы без установления соединения используются в сетях с установлением соединения и сетях без установления соединения соответственно. Примером функции является протокол туннелирования , который используется для инкапсуляции пакетов в протокол высокого уровня, чтобы пакеты могли передаваться через транспортную систему с использованием протокола высокого уровня.
Отводками схема сочетает в себе функции и область применения. Преобладающими схемами расслоения являются схемы, предложенные IETF и ISO. Несмотря на то, что исходные допущения схем многоуровневого разделения достаточно различны, чтобы гарантировать различение этих двух схем, обычной практикой является их сравнение, связывая общие протоколы с уровнями двух схем. [74]
Схема многоуровневого доступа от IETF называется многоуровневым Интернетом или многоуровневым протоколом TCP / IP .
Схема слоев из ISO называется моделью OSI или слоями ISO .
В конфигурации сетевого оборудования часто проводится различие в терминах искусства: термин «протокол» строго относится к транспортному уровню, а термин «услуга» относится к протоколам, использующим «протокол» для транспорта. В общем случае TCP и UDP службы различаются номерами портов. Соответствие этим номерам портов является добровольным, поэтому в системах проверки содержимого термин «служба» строго относится к номерам портов, а термин «приложение» часто используется для обозначения протоколов, идентифицированных с помощью проверочных подписей.
Протокол связи — Communication protocol
A протокол связи — это система правил, которая позволяет двум или более объектам система связи для передачи информации посредством любого вида изменения физической величины. Протокол определяет правила, синтаксис, семантику и синхронизацию связи и возможные методы устранения ошибок. Протоколы могут быть реализованы с помощью аппаратного обеспечения, программного обеспечения или их комбинации.
Коммуникационные системы используют четкие форматы для обмена различными сообщениями. Каждое сообщение имеет точное значение, предназначенное для получения ответа из действий, заранее определенных для конкретной ситуации. Указанное поведение обычно не должно зависеть от того, как оно должно быть реализовано. Протоколы связи должны быть согласованы заинтересованными сторонами. Для достижения соглашения протокол может быть разработан в виде технического стандарта. язык программирования это то же самое для вычислений, поэтому существует близкая аналогия между протоколами и языками программирования: протоколы для коммуникации то же самое, что языки программирования для вычислений. Альтернативная формулировка гласит, что протоколы предназначены для связи, как алгоритмы для вычислений.
Несколько протоколов часто описывают разные аспекты одной связи. Группа протоколов, предназначенных для совместной работы, известна как набор протоколов; при реализации в программном бюллетене они отличаются собой стек протоколов ..
Протоколы связи в Интернете публикуются Инженерной группой Интернета (IETF). IEEE (Институт инженеров по электротехнике и электронике) обрабатывает проводные и беспроводные сети, а Международная организация по стандартизации (ISO) обрабатывает другие типы. ITU-T обрабатывает телекоммуникационные протоколы и форматы для коммутируемой телефонной сети общего пользования (PSTN). По мере того как ТСОП и Интернет сходятся, стандарты также стремятся к конвергенции.
Содержание
- 1 Коммуникационные системы
- 1.1 История
- 1.2 Концепция
- 3.1 Уровни
- 3.1.1 Уровни протоколов
- 3.1. 2 Уровни программного обеспечения
- 3.1.3 Строгие уровни
- 4.1 Потребность в стандартах протоколов
- 4.2 Организации по стандартизации
- 4.3 Процесс стандартизации
- 4.4 Стандартизация OSI
- 8.1 Библиография
Коммуникационные системы
История
Одно из первых применений термина «протокол» в контексте коммутации данных в меморандуме «Протокол для использования в сети передачи данных NPL. написано Роджером Скантлбери и Китом Бартлеттом в апреле 1967 года.
На ARPANET отправной точки связи хост-хост в 1969 г. 1822 г., определяющий протокол передачи сообщений IMP. Программа управления сетью для ARPANET была впервые реализована в 1970 году. Интерфейс NCP позволяет прикладному программному обеспечению подключаться через ARPANET, реализовать протоколы связи более высокого уровня , ранний пример концепции многоуровневого протокола.
Исследования сетей в начале 1970-х, проведенные Робертом Э. Каном и Винтом Серфом, привести к формулировке Программа управления коробкой передач (TCP). Его спецификация RFC 675 была написана Серфом с Йогеном Далалом и Карлом Саншайном в декабре 1974 года, в то время все еще представляет собой монолитную конструкцию.
Международная рабочая группа по сетям согласовала стандарт дейтаграммы без объединения соединений, который был представлен в CCIT в 1975 году, но не был принят МСЭ или через ARPANET. Международные исследования, в частности, работа Реми Деспре, способствовали разработке стандарта X.25, основанного на виртуальных цепях, ITU-T в 1976 году. Производители компьютеров разработали проприетарные протоколы, такие как IBM Systems Network Architecture (SNA), DECnet и Xerox Network от Digital Equipment Corporation. Системы.
Программное обеспечение TCP было переработано в модульный стек протоколов. Первоначально называвшийся IP / TCP, он был установлен в SATNET в 1982 году и в ARPANET в январе 1983 года. Разработка полного набора протоколов к 1989 году, как в RFC 1122 и RFC 1123, заложили основу для TCP / IP как всеобъемлющего набора протоколов, как основная развивающаяся Интернет.
Международная работа над эталонной моделью для стандартов связи привел к модели OSI, опубликованной в 1984 году. В течение периода в конце 1980-х и начале 1990-х инженеры, организации и страны разошлись по вопросу о том, какой стандарт, модель OSI или набор Интернет-протоколов приведет к созданию лучших и наиболее надежных компьютерных сетей.
Концепция
Информация, которая обменивается устройствами через сеть или другие носители, регулируются правила и соглашения, которые могут быть изложены в спецификациях протокола связи. Эти спецификации определяют характер обмена данными, фактический обмен данных и поведение, зависящее от состояния и. Правила цифровых вычислительных систем могут быть выражены с помощью алгоритмов и структур данных. Протоколы предназначены для связи, как алгоритмы или языки программирования для вычислений.
Операционные системы обычно содержат набор взаимодействующих процессов, которые манипулируют общими данными для взаимодействия друг с другом. Этот обмен данными регулируется хорошо понятными протоколами, которые могут быть встроены в сам код процесса. Напротив, из-за отсутствия используемая используемая память системы связи должны взаимодействовать друг с другом, используя используемую среду передачи . Передача не всегда надежна, и отдельные системы могут использовать другое оборудование или операционные системы.
для реализации сетевого протокола программных модулей протокола взаимодействия со структурой, реализованной в операционной системе машины. Эта структура реализует сетевые функции операционной системы. Когда алгоритмы выражаются на переносимом языке программирования, программное обеспечение может быть сделано операционной системой протокола независимым протоколом. Самыми известными фреймворками являются модель TCP / IP и модель OSI.
. В то время, когда был разработан Интернет, уровни абстракции оказались успешными. подход к проектированию как компилятора, так и операционные системы, особенности программы, установленные между языками программирования и протоколами связи, используемые монолитные сетевые программы были разложены на взаимодействующие протоколы. Это привело к появлению концепции многоуровневых протоколов, которая в настоящее время составляет основу протокола.
Протоколы могут быть организованы по функциональности в группе, например, есть группа из транспортных протоколов. Функциональные возможности на уровнях, каждый из которых решает отдельный класс проблем, связанных, например, с: функции приложений, транспорта, Интернета и сетевых интерфейсов. Для передачи сообщения на каждом уровне должен быть выбран протокол. Выбор следующего протокола осуществляется путем расширения сообщениями с помощью селектора протокола для каждого уровня.
Основные требования
Получение данных по сети — лишь часть проблемы для протокола. Полученные данные необходимо оценивать в контексте разговора, поэтому протокол должен включать правила, описывать контекст. Считается, что такие правила выражают синтаксис общения. Другие правила определяют, значимы ли данные для контекста, в котором происходит обмен. Считается, что такие правила выражают семантику коммуникации.
Сообщения отправляются и принимаются в системы связи для связи. Поэтому должны определять правила, регулирующие протокол передачи. В общем, следует большую часть следующего:
Форматы данных для обмена данными Обмен битовыми строками цифровых сообщений. Строки битов разделены на поля, и несет поле информацию, относящуюся к протоколу. Концептуально цепочка битов делится на части, называемые заголовком и полезной нагрузкой. Фактическое сообщение переносится в полезной нагрузке. Область заголовка содержит поля, относящиеся к работе протокола. Строки битов длиннее максимальной единицы передачи (MTU) делятся на части соответствующего размера. Форматы адресов для обмена данными Адреса используются для обозначения как отправителя, так и предполагаемый получатель (и). Адреса переносятся в области заголовка цепочек битов, позволяя получать данные, получать ли цепочки битов интерес и должны ли их обрабатываться, или их следует игнорировать. Соединение между отправителем и получателем можно определить с помощью пары (адрес отправителя, адрес получателя). Обычно некоторые значения адресов имеют особое значение. Адрес all-1s может означать адресацию всех станций в сети, поэтому отправка на этот адрес приведет к широковещательной рассылке в локальной сети. Правила, описывающие значения значения адреса, в совокупности называются схемой адресации. Отображение адресов Иногда протоколам необходимо сопоставить адреса одной схемы с адресами другими схемами. Например, для преобразования логического IP-адреса, приложения, в MAC-Ethernet. Это называется нанесением адресов. Маршрутизация Когда системы не подключены напрямую, промежуточным системам на пути к предполагаемому получателю (ям) необходимо пересылать сообщения от имени отправителя. В Интернете сети соединяются с помощью маршрутизаторов. Взаимосвязь сетей через маршрутизаторы называется Межсетевым взаимодействием. Обнаружение ошибок передачи Обнаружение ошибок в сети, где возможно повреждение данных. В обычном подходе CRC области данных добавляется в конец пакетов, что позволяет обнаруживать различия, вызванные повреждением. Получатель отклоняет пакеты из-за разницы CRC и каким-то образом организует повторную передачу. Подтверждения Подтверждение правильного приема пакетов требуется для связи с установлением соединения. Подтверждения отправляются получателями обратно их отправителям. Потеря информации — таймауты и повторные попытки Пакеты могут быть потеряны в сети или задержаны при передаче. Чтобы справиться с этим, в соответствии с некоторыми протоколами отправителя может ожидать подтверждения правильного приема от получателя в течение определенного периода времени. Таким образом, по истечении времени ожидания отправителю может потребоваться повторно передать информацию. В случае постоянно разрыва связи повторная передача не имеет никакого эффекта, поэтому количество повторных передач ограничено. Превышение лимита повторных попыток считается ошибкой. Направление информационного потока Необходимо указать направление, если передача может происходить только в одном направлении за раз, как в полудуплексе или от одного отправителя за раз, как на общем носителе . Это известно как управление доступом к среде. Необходимо принять меры для учета случая коллизии или конфликта, когда две стороны соответственно передают или желают передать. Управление последовательностью Если цепочки битов разделены на части, а затем отправлены по сети по отдельной, части могут быть потеряны или задержаны, или в некоторых типах сетей, по разным маршрутам к месту назначения. В результате части могут поступать не по порядку. Повторная передача может привести к дублированию частей. Помечая часть с информацией о отправителю, получатель может определить, что было потеряно или дублировано, запросить необходимые повторные передачи и повторно восстановить исходное сообщение. Управление потоком Управление потоком необходимо, когда отправитель передает быстрее, чем может обработать получатель или промежуточное сетевое оборудование. Управление потоком может быть реализовано путем обмена сообщениями от получателя к отправителю. Организация очередей Коммуникационные процессы или конечные автоматы используют очередь (или «буферы»), обычно очереди FIFO, для обработки сообщений в заказ отправлен, и иногда может иметь несколько очередей с разными приоритетами
Разработка
Принципы системного проектирования были применены для создания протокола общих принципов проектирования сетевых протоколов. Разработка сложных протоколов часто включает разложение на более простые, взаимодействующие протоколы. Такой набор протоколов протоколов иногда называют семейством протоколов или набором протоколов в рамках концептуальной основы.
Коммуникационные системы работают одновременно. Важным аспектом параллельного программирования является синхронизация программного обеспечения для приема и передачи сообщений в надлежащей последовательности. Параллельное программирование, традиционное в текстах по операционной тем систем. Формальная проверка кажется необходимой, потому что параллельные программы печально известны скрытыми и сложными ошибками, которые они содержат. Математический подход к изучению параллелизма и связи называется взаимодействующими последовательными процессами (CSP). Параллелизм также можно смоделировать с помощью конечных автоматов, таких как Мили и машин Мура. Машины Мили и Мура используются в качестве инструментов проектирования систем цифрового электроники, встречающихся в видеовыходе, используемых в телекоммуникационных или электронных устройствах в целом.
В литературе представлены многочисленные аналогии между компьютерной связью и программированием. По аналогии, механизм передачи протокола можно сравнить с центральным процессором (ЦП). Структура вводит правила, которые позволяют программисту разрабатывать протоколы независимо друг от друга.
Уровни
Рисунок 2. Модель TCP / IP или схема многоуровневого Интернета и ее связь с распространенными протоколами.
В современных дизайне протоколов протоколы разделены на уровни для формирования стека протоколов. Уровни — это принцип проектирования, который разделяет задачу разработки протокола на более мелкие шаги. Распределение уровней позволяет проектировать и тестировать части протокола без общего взрыва случаев, сохраняя каждый проект относительно простого.
Протоколы связи, используемые в Интернете, предназначены для работы в разнообразных и сложных условиях. Интернет-протоколы разработаны для простоты и модульности и вписываются в грубую иерархию функциональных уровней, определенные в Internet Protocol Suite. Первые два взаимодействующих протокола, Протокол управления передачей (TCP) и Интернет-протокол (IP), возникший в результате декомпозиции исходной программы управления передачей, монолитного протокола связи, на этот многоуровневый коммуникационный пакет.
Модель OSI предоставлена на международном уровне на основе опыта работы с сетями, предшествовавшими Интернету, в качестве эталонной модели для общей коммуникации с гораздо более строгими взаимодействием протоколов и строгим распределением уровней.
Обычно прикладное программное обеспечение построено на надежном транспортном уровне данных. В основе этого транспортного уровня механизм доставки и маршрутизации дейтаграмм, который обычно без соединения в Интернете. Ретрансляция пакетов по сетям происходит на другом уровне, включает только технологии сетевых соединений, которые часто специфичны для методов физического уровня, таких как Ethernet. При необходимости многоуровневый обмен технологиями предоставляет возможности, например, протоколы часто объединяются в систему восстановления туннелирования для обеспечения соединения разнородных сетей. Например, IP может быть туннелирован через сеть асинхронного режима передачи (банкомат).
Уровни протоколов
Рис. 3. Потоки сообщений с использованием набора протоколов. Черные петли показывают фактические петли обмена сообщениями, красные петли — эффективную связь между уровнями, обеспечиваемую нижними уровнями.
Распределение уровней протокола составляет основу конструкции протокола. Он позволяет разложить отдельные сложные протоколы на более простые взаимодействующие протоколы. Каждый уровень протокола решает отдельный класс коммуникационных проблем. Вместе слои составляют схему или модель наслоения.
Вычисления имеют дело с алгоритмами и данными; Коммуникация включает протоколы и сообщения; Таким образом, аналог диаграммы потока данных — это своего рода диаграмма потока сообщений. Для визуализации слоев протоколов и наборов протоколов на рисунке 3 показана схема потоков сообщений в двух системах, A и B, и между ними. В обеих системах A и B используется один и тот же набор протоколов. Вертикальные потоки (и протоколы) являются внутрисистемными, а горизонтальные потоки сообщений (и протоколы) — между системами. Потоки сообщений регулируются правилами, а форматы данных определяются протоколами. Синие линии отмечают границы (горизонтальных) уровней протокола.
Уровни программного обеспечения
Рис. 5: Уровни протокола и программного обеспечения. Программные модули, реализующие протоколы, представлены кубами. Информационный поток между модулями представлен стрелками. Красные стрелки (две верхние горизонтальные) виртуальны. Синие линии отмечают границы уровней.
Программное обеспечение, поддерживающее протоколы, имеет многоуровневую организацию, и ее связь с многоуровневым протоколом показана на рисунке 5.
Чтобы отправить сообщение в системе A, программное обеспечение верхнего уровня module взаимодействует с модулем непосредственно под ним и передает сообщение для инкапсуляции. Нижний модуль заполняет данные заголовка в соответствии с протоколом, который он реализует, и взаимодействует с нижним модулем, который отправляет сообщение по каналу связи нижнему модулю системы B. В принимающей системе B происходит обратное, поэтому в конечном итоге сообщение доставляется в исходной форме в верхний модуль системы B.
Трансляция программы разделена на четыре подзадачи: компилятор, ассемблер, редактор ссылок и загрузчик. В результате программное обеспечение для перевода также является многоуровневым, что позволяет разрабатывать уровни программного обеспечения независимо. Отметив, что способы преодоления сложности трансляции программ могут быть легко применены к протоколам из-за аналогии между языками программирования и протоколами, разработчики набора протоколов TCP / IP стремились наложить те же уровни на программную структуру. Это можно увидеть в разбиении на уровни TCP / IP, рассматривая перевод скомпилированной программы (сообщения) на паскале (функция уровня приложения) в программу ассемблера, которая собирается (функциятранспортный уровень) в объектный код (часть), который связан (функция уровня Интернета) вместе с объектомным кодом библиотеки (таблицей маршрутизации), редактором ссылок, создавая перемещаемый машинный код (дейтаграмму), который передается загрузчику, который заполняет ячейки (Ethernet) для создает исполняемый код (сетевой кадр), который должен быть загружен (функция уровня сетевого интерфейса) в физическую память (среду передачи). Чтобы показать, насколько точно подходит эта аналогия, термины в скобках в предыдущем предложении обозначают соответствующие аналоги, обозначенные курсивом, обозначают представления данных. Трансляция программы формирует линейную последовательность, которая выводит каждый слой передается как вводится на следующий уровень. Кроме того, процесс перевода включает в себя несколько представлений данных. То же самое происходит в программном блоке протокола.
Модули ниже уровня приложения обычно рассматриваемой операционной системы. Передача данных между этим модулями намного дешевле. Граница между приложениями и транспортным уровнем называется границей операционной системы.
Строгое разбиение на уровнях
Строгое соблюдение многоуровневой модели, практика, известная как строгое многоуровневое распределение, не всегда является лучшим подходом к сети. Строгое разделение на уровнях может иметь серьезное влияние на реализацию, поэтому существует, по крайней мере, компромисс между простотой и производительностью.
Хотя использование протоколов сегодня повсеместно используется в компьютерных сетях, он исторически подвергался критике со стороны многих основных причин. Во-первых, абстрагирование стека протоколов таким образом может привести к тому, что верхний уровень будет дублировать функциональные возможности нижнего уровня, ярким примером которого является восстановление после ошибок для каждого канала, так и на сквозной основе.
Шаблоны проектирования для протоколов прикладного уровня
Обычно повторяющиеся проблемы при проектировании и реализации протоколов связи могут решены с помощью различных шаблонов из нескольких языков шаблонов: Язык шаблонов для протоколов связи уровня приложений (CommDP ), Шаблоны проектирования сервисов, Шаблоны корпоративных приложений, Шаблонно-ориентированная архитектура программного обеспечения: язык шаблонов для распределенных вычислений. Первый из этих шаблонов фокусируется на разработке протоколов, а не на их реализацию. Остальные решают проблемы либо в другой области, либо только во втором.
Формальная спецификация
Формальные методы описания синтаксиса связи являются Абстрактная нотация синтаксиса 1 (стандарт ISO ) и Расширенный Backus-Naur форма (стандарт IETF ).
Модели конечных автоматов и взаимодействующие конечные автоматы для формального описания действия протокола.
Разработка протокола
Для связи необходимо выбрать протоколы. Правила могут быть выражены алгоритмами и структурами данных. Независимость от оборудования и операционной системы повышается за счет выражения алгоритмов на переносимом языке программирования. Независимость от источника обеспечивает более широкое взаимодействие.
Стандарты протокола обычно тестирования одобрения или поддержки организации по стандартизации, которая начинает процесс стандартизации. Эта деятельность называется разработкой протокола. Члены организации по стандартизации соглашаются с достижением результата работы на добровольной основе. Согласуются, что одобряются соглашения о соблюдении требований общественного мнения.
Потребность в стандартах протоколов
Потребность в стандартах протоколов можно показать, посмотрев, что случилось с протоколом би-синхронизации (BSC), изобретенным IBM. BSC — это ранний протокол канального уровня, используемый для соединения двух отдельных узлов. Первоначально он не предназначался для использования в многоузловой сети, но это выявить некоторые ошибки протокола. В отсутствие стандартизации производители и не стеснялись «улучшать» протокол, создавая несовместимые версии в своих сетях. В некоторых случаях это было сделано намеренно, чтобы отговорить пользователей от использования оборудования других производителей. Существует более 50 вариантов исходного протокола би-синхронизации. Можно предположить, что стандарт предотвратил бы хотя бы часть этого.
В некоторых случаях протоколы завоевывают доминирующее положение на рынке без прохождения процесса стандартизации. Такие называются протоколми де-факто. Стандарты де-факто распространены на безопасных рынках, нишевых рынках или рынках, которые являются монополизированными (или олигополизированными). Они могут удерживать рынок в очень негативном состоянии, когда используются для отпугивания конкуренции. С исторической точки зрения стандартизация должна рассматриваться как мера противодействия отрицательному воздействию стандартов де-факто. Существуют положительные исключения; «Стандартная де-факто» операционная система, такая как GNU / Linux, не имеет такого негативного влияния на своем рынке, потому что исходные тексты публикуются и поддерживаются в открытом виде, что конкуренции. Таким образом, стандартизация — не единственное решение для соединения открытых систем.
Организации по стандартизации
Некоторые из организаций по стандартизации, имеющие отношение к протоколам связи, — это Международная организация по стандартизации (ISO), Международный союз электросвязи (ITU), Институт инженеров по электротехнике и электронике (IEEE) и Инженерная группа Интернета (IETF). IETF поддерживает протоколы, используемый в Интернете. IEEE контролирует многие программные и аппаратные протоколы в электронной промышленности для коммерческих и потребительских устройств. ITU является головной организацией инженеров электросвязи, проектирующими телефонную сеть общего пользования (PSTN), а также многие системы радиосвязи. Для морской электроники используются стандарты NMEA. Консорциум World Wide Web (W3C) производит протоколы и стандарты для веб-технологий.
Международные организации по стандартизации должны быть беспристрастными, местными организациями, которые должны использовать свои национальные или коммерческие интересы. Организации по стандартизации также проводят исследования и разработки для стандартов будущего. На практике используются организации по стандартизации.
Процесс стандартизации
Процесс стандартизации начинается с того, что ISO вводит в эксплуатацию рабочую группу подкомитета. Рабочая группа выдает рабочие проекты и документы для обсуждения заинтересованным сторонам (включая другие органы по стандартизации), чтобы вызвать обсуждение и комментарии. Это вызовет множество вопросов, как правило, некоторые разногласий по поводу того, что должно быть стандартным и может ли он удовлетворить все потребности (обычно нет). Все противоречивые мнения должны приниматься во внимание, часто в качестве компромисса, для продвижения проекту предложения рабочей группы.
Проект предложения обсуждается по стандартизации стран-членов и другими организациями в каждой стране. Комментарии и предложения сопоставляются, и до того, как члены ISO проголосуют по предложению, будут сформулированы национальные мнения. В случае отклонения проект предложения должен рассмотреть возражения и встречные предложения, чтобы создать новый проект предложения для повторного голосования. После множества отзывов, изменений и компромиссов предложение достигает статуса проекта международного стандарта и в конечном итоге, международного стандарта.
Процесс обычно занимает несколько лет. Первоначальный бумажный черновик, созданный разработчиком, отличаться от стандартного и будет некоторые настройки из следующих «функций»:
- Различные дополнительные режимы работы, например, для достижения достижимого консенсуса по оптимальному размеру пакета.
- Параметры, которые оставлены неопределенными или разрешено принимать значения определенного набора по усмотрению разработчика. Это часто отражает противоречивые взгляды некоторых участников.
- Параметры зарезерв для использования в будущем, что могло быть достигнуто за счет того, что могло быть предоставлено, но не удалось достичь согласия, как это должно быть сделано в доступное время.
- При внедрении неизбежно будут обнаружены различные несоответствия и двусмысленности.
Международные стандарты периодически переиздаются для устранения недостатков и отражения меняющихся взглядов на предмет.
Стандартизация OSI
Урок, извлеченный из ARPANET, предшественницы Интернета, заключался в том, что протоколам для работы нужна структура. Поэтому важная технология универсальной, перспективной структуры, подходящей для структурированных протоколов (таких как многоуровневые протоколы) и их стандартизации. Это предотвратило бы перекрывающиеся функциональные возможности стандартных протоколов и четко определить обязанности протокола на разных уровнях (слоях). Используется в качестве основы для стандартных протоколов и услуг, соответствующих спецификациям различных уровней.
В OSI В модели принцип, что коммуникационные системы соединены обычным физическим средой, обеспечивающей базовый (и неуказанный) механизм передачи. Слои над ним пронумерованы (от одного до семи); n-слой называется (n) -уровнем. Каждый уровень предоставляет услуги вышележащему слою (или процессы приложения наверху), используя сервисы уровня, находящегося непосредственно под ним. Уровни связываются друг с другом посредством интерфейса, который называется точкой доступа к услуге. Соответствующие уровни в каждой системе называются одноранговыми объектами. Для связи два одноранговых объекта на данном уровне используют (n) -протокол, который реализуется с помощью сервисов (n-1) -уровня. Когда системы не подключены напрямую, используются промежуточные одноранговые объекты (называемые реле). Адрес однозначно определяет точку доступа к услуге. Домены именования адресов не обязательно должны быть ограничены одним уровнем, поэтому можно использовать только один домен именования для всех уровней. Для каждого уровня определяется уровень: стандарты, определяющие, как одноранговые объекты на данном уровне отвечают, и стандарты обслуживания, определяющие уровень.
В исходной версии RM / OSI уровни и их функциональность (от самого высокого до самого низкого уровня) следующие:
-
Уровни и их функциональность (от самого высокого до самого низкого уровня) следующие:
- для связи, определение доступности и аутентификации партнеров, соглашение о механизмах конфиденциальности для связи, соглашение об ответственности за устранение ошибок и процедуры для обеспечения целостности данных, синхронизация между взаимодействующими процессами приложений, идентификация любых ограничений синтаксиса (например, наборы символов и структуры данных), определение стоимости и приемлемого качества обслуживания, выбор диалоговой дисциплины, включая необходимые процедуры входа в систему и выхода из системы.
- Уровень представления может предоставлять следующие услуги прикладному уровню: запрос на установление сеанса, передача данных, согласование синтаксиса tob е используются между уровнями приложения, любые необходимые преобразования синтаксиса, форматирование и преобразования специального назначения (например, сжатие данных и шифрование данных).
- Сеансовый уровень может предоставлять следующие услуги уровню представления: установление и разъединение сеансовых соединений, нормальный и ускоренный обмен данными, служба карантина, которая позволяет отправляющему объекту представления давать инструкции принимающий объект сеанса не выпускал данные в объект представления без разрешения, управление взаимодействием, чтобы объекты представления могли контролировать, чья очередь выполнять определенные функции управления, повторная синхронизация соединения сеанса, сообщение о неисправимых исключениях объекту представления.
- Транспортный уровень обеспечивает надежную и прозрачную передачу данных экономичным способом в соответствии с выбранным качеством обслуживания. Он может поддерживать мультиплексирование нескольких транспортных соединений в одно сетевое соединение или разделять одно транспортное соединение на несколько сетевых соединений.
- Сетевой уровень выполняет настройку, обслуживание и освобождение сетевых путей между транспортными одноранговыми объектами. Когда необходимы реле, этот уровень обеспечивает функции маршрутизации и ретрансляции. Качество обслуживания оговаривается между сетью и транспортными объектами во время установки соединения. Этот уровень также отвечает за контроль перегрузки сети.
- Уровень канала данных выполняет настройку, обслуживание и освобождение соединений канала данных. Ошибки, возникающие на физическом уровне, обнаруживаются и могут быть исправлены. Об ошибках сообщается на сетевой уровень. Обмен звеньями передачи данных (включая управление потоком) определяется этим уровнем.
- Физический уровень описывает такие детали, как электрические характеристики физического соединения, используемые методы передачи, а также настройку, обслуживание и очистку физические соединения.
В отличие от Схема уровней TCP / IP, которая предполагает сеть без установления соединения, RM / OSI предполагает сеть, ориентированное на установление соединения. Сети с установлением больше подходят для глобальных сетей, а сети без соединения больше подходят для локальных сетей. Использование соединений для связи подразумевает некоторую форму сеансовых и (виртуальных) цепей, следовательно (в модели TCP / IP) сеансовый уровень. Составные члены ISO в основном занимались глобальными сетями, поэтому разработка RM / OSI была определена в сетях с установлением соединений, без соединения были упомянуты только в дополнении к RM / OSI. В то время IETF пришлось справиться с этим, а также с тем фактом, что Интернету нужны были протоколы, которых просто не было. В результате IETF разработала собственный процесс стандартизации, основанный на «приблизительном консенсусе и работающем коде».
Процесс стандартизации в RFC2026.
В настоящее время превратилась в организацию IETF в по стандартизации для протокола, используемого в Интернете. RM / OSI расширил свою модель, включив в нее соединения, и благодаря этому TCP и IP могут быть преобразованы в международные стандарты.
Таксономии
Схемы классификации протоколов обычно ориентированы на использование и функции. В качестве использования области использования протоколы с установлением соединения и протоколы без установления соединения используются в сети с установлением соединения и сети без соединения соединения соответственно. Примером функции является протокол туннелирования, который используется для инкапсуляции пакетов в протокол высокого уровня, чтобы пакеты передавались через транспортную систему с использованием протокола высокого уровня.
A схема слоев сочетает в себе функцию, так и область использования. Преобладающими схемами расслоения являются схемы, предложенные IETF и ISO. Несмотря на то, что исходные допущения схем многоуровневой структуры достаточно различаются, чтобы было различать эти две схемы, обычной практикой их сравнение посредством соотнесения общих протоколов с уровнями двух.
Схема многоуровневости от IETF называется многоуровневым Интернетом или TCP / IP.
Схема слоев ISO называется моделью OSI или многоуровневой системой ISO.
В конфигурации сетевого оборудования часто проводится различие в терминах искусства: термин «протокол» строго относится к транспортному уровню, а термин «служба» относится к протоколам, использующим «протокол» для транспорта.. В общем случае TCP и UDP службы различаются по номерам портов. Соответствие этим номерам портов является добровольным, поэтому в системе присутствует термин «служба» строго к номерам портов, а термин «приложение» часто используется для обозначения протоколов, идентифицированных с помощью проверочных подписей.