В компьютерных сетях надежный протокол — это протокол связи , который уведомляет отправителя, была ли доставка данных предполагаемым получателям успешной. Надежность — это синоним слова «гарантия» , термин, используемый МСЭ и Форумом АТМ .
Надежные протоколы обычно несут больше накладных расходов, чем ненадежные протоколы, и в результате функционируют медленнее и с меньшей масштабируемостью. Это часто не является проблемой для одноадресных протоколов, но может стать проблемой для надежных многоадресных протоколов.
Transmission Control Protocol (TCP), основной протокол, используемый в Интернете , является надежным одноадресным протоколом; он обеспечивает абстракцию надежного потока байтов для приложений. UDP является ненадежным протоколом и часто используется в компьютерных играх , потоковом мультимедиа или в других ситуациях, где скорость является проблемой, а некоторая потеря данных может быть допустима из-за временного характера данных.
Часто надежный одноадресный протокол также ориентирован на соединение . Например, TCP ориентирован на соединение, а идентификатор виртуального канала состоит из IP-адресов источника и назначения и номеров портов. Однако некоторые ненадежные протоколы ориентированы на соединение, например, Asynchronous Transfer Mode и Frame Relay . Кроме того, некоторые протоколы без установления соединения, например, IEEE 802.11 , надежны.
Основываясь на концепциях коммутации пакетов, предложенных Дональдом Дэвисом , первый протокол связи в ARPANET представлял собой надежную процедуру доставки пакетов для соединения своих хостов через интерфейс 1822 года . [1] [2] Хост-компьютер просто упорядочивал данные в правильном формате пакета, вставлял адрес хоста назначения и отправлял сообщение через интерфейс на подключенный к нему процессор интерфейсных сообщений (IMP). После того, как сообщение было доставлено хосту назначения, хосту-отправителю отправлялось подтверждение. Если сеть не могла доставить сообщение, IMP отправлял сообщение об ошибке обратно хосту-отправителю.
Между тем, разработчики CYCLADES и ALOHAnet продемонстрировали, что можно построить эффективную компьютерную сеть, не обеспечивая надежной передачи пакетов. Этот урок позже был принят разработчиками Ethernet .
Если сеть не гарантирует доставку пакетов, то обеспечение надежности путем обнаружения и повторной передачи потерянных пакетов становится обязанностью хоста. Последующий опыт ARPANET показал, что сама сеть не может надежно обнаруживать все сбои в доставке пакетов, и это в любом случае переложило ответственность за обнаружение ошибок на отправляющий хост. Это привело к разработке принципа сквозной связи , который является одним из основополагающих принципов проектирования Интернета .
Надежный сервис — это тот, который уведомляет пользователя в случае сбоя доставки, в то время как ненадежный не уведомляет пользователя в случае сбоя доставки. [ необходима цитата ] Например, протокол Интернета (IP) предоставляет ненадежный сервис. Вместе протокол управления передачей (TCP) и IP предоставляют надежный сервис, тогда как протокол пользовательских датаграмм (UDP) и IP предоставляют ненадежный.
В контексте распределенных протоколов свойства надежности определяют гарантии, которые протокол предоставляет в отношении доставки сообщений предполагаемому получателю(ям).
Примером свойства надежности для протокола одноадресной передачи является «по крайней мере один раз», т. е. по крайней мере одна копия сообщения гарантированно будет доставлена получателю.
Свойства надежности для многоадресных протоколов могут быть выражены на основе каждого получателя (простые свойства надежности), или они могут связывать факт доставки или порядок доставки среди различных получателей (сильные свойства надежности). В контексте многоадресных протоколов сильные свойства надежности выражают гарантии, которые протокол предоставляет в отношении доставки сообщений различным получателям.
Примером свойства сильной надежности является отзыв последней копии , что означает, что пока хотя бы одна копия сообщения остается доступной для любого из получателей, каждый другой получатель, который не выходит из строя, в конечном итоге также получает копию. Такие свойства сильной надежности, как это, обычно требуют, чтобы сообщения передавались или пересылались между получателями.
Примером свойства надежности, более сильного, чем отзыв последней копии, является атомарность . Свойство утверждает, что если хотя бы одна копия сообщения была доставлена получателю, все остальные получатели в конечном итоге получат копию сообщения. Другими словами, каждое сообщение всегда доставляется либо всем получателям, либо ни одному из них.
Одним из наиболее сложных свойств высокой надежности является виртуальная синхронность .
Надежный обмен сообщениями — это концепция передачи сообщений через ненадежную инфраструктуру с возможностью предоставления определенных гарантий относительно успешной передачи сообщений. [3] Например, если сообщение доставлено, оно будет доставлено не более одного раза, или что все успешно доставленные сообщения прибудут в определенном порядке.
Надежную доставку можно противопоставить доставке с наилучшими усилиями , при которой нет гарантии, что сообщения будут доставлены быстро, в нужном порядке или вообще.
Надежный протокол доставки может быть построен на ненадежном протоколе. Крайне распространенным примером является наслоение протокола управления передачей на протокол Интернета , комбинация, известная как TCP/IP .
Сильные свойства надежности предлагаются системами групповой связи (GCS), такими как IS-IS , Appia framework , JGroups или QuickSilver Scalable Multicast . QuickSilver Properties Framework — это гибкая платформа, которая позволяет выражать сильные свойства надежности чисто декларативным образом, используя простой язык правил, и автоматически переводить их в иерархический протокол.
Одним из протоколов, реализующих надежный обмен сообщениями, является WS-ReliableMessaging , который обеспечивает надежную доставку сообщений SOAP . [4]
Функция координации услуг ATM обеспечивает прозрачную гарантированную доставку с помощью AAL5 . [5] [6] [7]
IEEE 802.11 пытается обеспечить надежное обслуживание для всего трафика. Отправляющая станция повторно отправит кадр, если отправляющая станция не получит кадр ACK в течение предопределенного периода времени.
Однако существует проблема с определением надежности как «доставки или уведомления о сбое» в вычислениях в реальном времени . В таких системах сбой в доставке данных в реальном времени отрицательно скажется на производительности систем, и некоторые системы, например, критически важные для безопасности , связанные с безопасностью и некоторые защищенные критически важные для миссии системы, должны быть доказаны для работы на некотором указанном минимальном уровне. Это, в свою очередь, требует, чтобы была соблюдена указанная минимальная надежность доставки критических данных. Поэтому в этих случаях важна только доставка; уведомление о сбое в доставке действительно смягчает сбой. В жестких системах реального времени все данные должны быть доставлены к крайнему сроку, иначе это будет считаться сбоем системы. В жестких системах реального времени запоздалые данные по-прежнему бесполезны, но система может допустить некоторое количество запоздалых или отсутствующих данных. [8] [9]
Существует ряд протоколов, способных удовлетворить требования реального времени по обеспечению надежной и своевременной доставки:
MIL-STD-1553B и STANAG 3910 являются хорошо известными примерами таких своевременных и надежных протоколов для шин данных авионики . MIL-1553 использует общую среду 1 Мбит/с для передачи данных и управления этими передачами и широко используется в федеративных военных системах авионики . [10] Он использует контроллер шины (BC) для управления подключенными удаленными терминалами (RT) для приема или передачи этих данных. Таким образом, BC может гарантировать, что не будет перегрузки, и передачи всегда будут своевременными. Протокол MIL-1553 также допускает автоматические повторные попытки, которые все еще могут гарантировать своевременную доставку и повысить надежность по сравнению с физическим уровнем. STANAG 3910, также известный как EFABus при использовании на истребителях Eurofighter Typhoon , по сути, представляет собой версию MIL-1553, дополненную общей шиной мультимедиа со скоростью 20 Мбит/с для передачи данных, при этом общая шина мультимедиа со скоростью 1 Мбит/с сохранилась для целей управления.
Асинхронный режим передачи (ATM), Avionics Full-Duplex Switched Ethernet (AFDX) и Time Triggered Ethernet (TTEthernet) являются примерами протоколов сетей с коммутацией пакетов, где своевременность и надежность передачи данных может быть гарантирована сетью. AFDX и TTEthernet также основаны на IEEE 802.3 Ethernet, хотя и не полностью совместимы с ним.
ATM использует ориентированные на соединение виртуальные каналы (VC), которые имеют полностью детерминированные пути через сеть, а также управление использованием и параметрами сети (UPC/NPC), которые реализованы в сети, для ограничения трафика на каждом VC по отдельности. Это позволяет рассчитывать использование общих ресурсов (буферов коммутатора) в сети на основе параметров трафика, который будет передаваться заранее, т. е. во время проектирования системы. То, что они реализованы сетью, означает, что эти расчеты остаются действительными, даже если другие пользователи сети ведут себя непредвиденным образом, т. е. передают больше данных, чем от них ожидается. Затем рассчитанные использования можно сравнить с возможностями этих ресурсов, чтобы показать, что, учитывая ограничения на маршруты и пропускную способность этих соединений, ресурс, используемый для этих передач, никогда не будет переподписан. Таким образом, эти передачи никогда не будут затронуты перегрузкой, и не будет никаких потерь из-за этого эффекта. Затем, из прогнозируемого максимального использования буферов коммутатора можно также предсказать максимальную задержку в сети. Однако для того, чтобы обеспечить надежность и своевременность, а также чтобы доказательства были устойчивы к сбоям и злонамеренным действиям оборудования, подключенного к сети, расчеты этих использований ресурсов не могут основываться на каких-либо параметрах, которые не применяются активно сетью, то есть они не могут основываться на том, что, как ожидается, будут делать источники трафика, или на статистическом анализе характеристик трафика (см. сетевое исчисление ). [11]
AFDX использует распределение полосы пропускания в частотной области и контроль трафика , что позволяет ограничить трафик на каждом виртуальном канале, чтобы можно было предсказать требования к общим ресурсам и предотвратить перегрузку, чтобы можно было доказать, что она не влияет на критически важные данные. [12] Однако методы прогнозирования требований к ресурсам и доказательства предотвращения перегрузки не являются частью стандарта AFDX.
TTEthernet обеспечивает минимально возможную задержку при передаче данных по сети с помощью методов управления во временной области — каждый раз инициированная передача планируется на определенное время, чтобы контролировать конкуренцию за общие ресурсы и, таким образом, исключать возможность перегрузки. Коммутаторы в сети обеспечивают эту синхронизацию, чтобы обеспечить устойчивость к сбоям и вредоносным действиям со стороны другого подключенного оборудования. Однако «синхронизированные локальные часы являются фундаментальной предпосылкой для связи, инициируемой по времени». [13] Это связано с тем, что источники критических данных должны иметь такое же представление о времени, как и коммутатор, чтобы они могли передавать данные в правильное время, и коммутатор будет считать это правильным. Это также требует, чтобы последовательность, с которой планируется критическая передача, была предсказуемой как для источника, так и для коммутатора. Это, в свою очередь, ограничит график передачи до высокодетерминированного, например, циклического исполнительного .
Однако низкая задержка при передаче данных по шине или сети не обязательно означает низкие задержки при транспортировке между прикладными процессами, которые являются источником и приемником этих данных. Это особенно верно, когда передачи по шине или сети циклически планируются (как это обычно бывает с MIL-STD-1553B и STANAG 3910, и обязательно с AFDX и TTEthernet), но прикладные процессы не синхронизированы с этим графиком.
Как в AFDX, так и в TTEthernet требуются дополнительные функции интерфейсов, например, управление пропускной способностью распределения AFDX и требование TTEthernet к очень близкой синхронизации источников данных, запускаемых по времени, что затрудняет использование стандартных интерфейсов Ethernet. Другие методы управления трафиком в сети, которые позволили бы использовать такие стандартные сетевые интерфейсы IEEE 802.3, являются предметом текущих исследований. [14]
во всех отношениях первоначальное предложение Дэвиса, разработанное в конце 1965 г., было похоже на реальные сети, которые строятся сегодня.
Каждая система имеет свои собственные компьютеры, выполняющие свои собственные функции
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка )