Введение

Возможность подтверждения получения протокола

В компьютерных сетях надежный протокол – это протокол связи, который уведомляет отправителя об успешной или неуспешной доставке данных предполагаемым получателям. Надежность является синонимом уверенности, термин, используемый МСЭ и ATM Forum. Надежные протоколы обычно имеют больший объем служебной информации, чем ненадежные, и, как следствие, работают медленнее и обладают меньшей масштабируемостью. Это часто не является проблемой для одноадресных протоколов, но может стать проблемой для надежных многоадресных протоколов. Протокол управления передачей (TCP), основной протокол, используемый в Интернете, является надежным одноадресным протоколом; он предоставляет приложениям абстракцию надежного байтового потока. UDP является ненадежным протоколом и часто используется в компьютерных играх, потоковом мультимедиа или в других ситуациях, где скорость имеет значение, а некоторая потеря данных может быть допустима из-за временного характера данных. Часто надежный одноадресный протокол также ориентирован на установление соединения. Например, TCP ориентирован на установление соединения, идентификатор виртуальной цепи которого состоит из IP-адресов и номеров портов источника и назначения. Однако некоторые ненадежные протоколы также ориентированы на установление соединения, такие как Asynchronous Transfer Mode и Frame Relay. Кроме того, некоторые протоколы без установления соединения, такие как IEEE 802.11, могут быть надежными.

История

Основываясь на концепции пакетной коммутации, предложенной Дональдом Дэвисом, первым протоколом связи в ARPANET стала надежная процедура доставки пакетов для соединения хостов через интерфейс 1822. Компьютер-хост просто форматировал данные в правильный формат пакета, вставлял адрес хоста-получателя и отправлял сообщение через интерфейс подключенному процессору сообщений интерфейса (IMP). После доставки сообщения хосту-получателю, отправляющий хост получал подтверждение. Если сеть не могла доставить сообщение, IMP отправлял сообщение об ошибке обратно отправителю. В то же время разработчики CYCLADES и ALOHAnet продемонстрировали возможность создания эффективной компьютерной сети без обеспечения надежной передачи пакетов. Этот урок впоследствии был воспринят разработчиками Ethernet. Если сеть не гарантирует доставку пакетов, то ответственность за обеспечение надежности – обнаружение и повторная передача потерянных пакетов – ложится на хост. Последующий опыт работы с ARPANET показал, что сама сеть не может надежно обнаруживать все сбои при доставке пакетов, и в любом случае ответственность за обнаружение ошибок перекладывается на отправителя. Это привело к разработке принципа «от конца к концу», являющегося одним из основополагающих принципов проектирования Интернета.

Свойства надежности

Надежный сервис – это сервис, который уведомляет пользователя в случае неуспешной доставки, в то время как ненадежный сервис не уведомляет пользователя о неудачной доставке. Например, протокол Интернет (IP) предоставляет ненадежный сервис. Вместе протокол управления передачей (TCP) и IP обеспечивают надежный сервис, а протокол пользовательских данных (UDP) и IP – ненадежный. В контексте распределенных протоколов свойства надежности определяют гарантии, которые протокол предоставляет относительно доставки сообщений предполагаемым получателям. Примером свойства надежности для одноадресного протокола является «доставка как минимум один раз», то есть гарантируется доставка хотя бы одной копии сообщения получателю. Свойства надежности для многоадресных протоколов могут быть выражены для каждого получателя в отдельности (простые свойства надежности) или могут относиться к факту доставки или порядку доставки между различными получателями (сильные свойства надежности). В контексте многоадресных протоколов сильные свойства надежности выражают гарантии, которые протокол предоставляет относительно доставки сообщений различным получателям. Примером сильного свойства надежности является восстановление последней копии, что означает, что пока хотя бы одна копия сообщения остается доступной у любого из получателей, все остальные получатели, не столкнувшиеся с ошибками, в конечном итоге также получат копию. Сильные свойства надежности, такие как это, обычно требуют повторной передачи или пересылки сообщений между получателями. Примером свойства надежности, более сильного, чем восстановление последней копии, является атомарность. Это свойство утверждает, что если хотя бы одна копия сообщения была доставлена получателю, все остальные получатели в конечном итоге получат копию сообщения. Иными словами, каждое сообщение всегда доставляется либо всем, либо никому из получателей. Одним из наиболее сложных сильных свойств надежности является виртуальная синхронность. Надежная передача сообщений – это концепция передачи сообщений через ненадежную инфраструктуру с возможностью предоставления определенных гарантий успешной передачи сообщений. Например, гарантия того, что если сообщение доставлено, оно доставлено не более одного раза, или что все успешно доставленные сообщения приходят в определенном порядке. Надежная доставка противопоставляется доставке с максимальными усилиями, где нет гарантии, что сообщения будут доставлены быстро, в порядке или вообще.

Реализация

Надежный протокол доставки может быть построен на ненадежном протоколе. Ярким примером является использование протокола управления передачей (TCP) поверх интернет-протокола (IP), комбинация, известная как TCP/IP. Сильные гарантии надежности обеспечиваются системами групповой коммуникации (GCS), такими как ISIS, Appia framework, JGroups или QuickSilver Scalable Multicast. QuickSilver Properties Framework – это гибкая платформа, позволяющая выражать сильные свойства надежности декларативным способом, используя простой язык, основанный на правилах, и автоматически преобразовывать их в иерархический протокол. Одним из протоколов, реализующих надежную передачу сообщений, является WS ReliableMessaging, который обеспечивает надежную доставку сообщений SOAP. Функция координации служб, специфичных для ATM, обеспечивает прозрачную гарантированную доставку с использованием AAL5. IEEE 802.11 стремится обеспечить надежное обслуживание для всего трафика. Отправляющая станция повторно отправит кадр, если не получит подтверждающий кадр (ACK) в течение заданного периода времени.