Технология мультивещания создаёт проблему надёжности сети, но снижает требования к пропускной способности

Дэйв Козюр

 

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

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

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

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

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

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

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

Классификация и сравнение протоколов

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

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

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

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

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

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

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

Промежуточные получатели снижают трафик обратной связи

Промежуточные получатели могут восстанавливать пакеты, утраченные другими

получателями их области. Если промежуточный получатель не находит у себя

требуемого пакета (область А), он посылает запрос другому промежуточному

получателю ( область Б).

Гарантировать последовательность приема пакетов всеми получателями способен лишь полностью упорядоченный протокол (третий уровень), который основан на глобальных правилах.

Большинство начальных экспериментов по спецификации IP Multicasting проводилось в рамках проекта Multicast Backbone, т. е. по цепочке специализированных маршрутизаторов, образующих подсеть Интернет. Основная часть программных средств многоадресной передачи данных свободно доступна для исследователей уже многие годы, однако коммерческие продукты, специально предназначенные для обеспечения надежного мультивещания, появились лишь в прошлом году.

Сегодня все они базируются на пяти протоколах: протоколе на базе кольцевых структур под названием RMP (Reliable Multicast Protocol - надежный протокол мультивещания), двух протоколах на базе бессистемных "облаков" - MFTP (Multicast File Transfer Protocol - протокол многоадресной передачи файлов) и SRM (Scalable Reliable Multicast - масштабируемое надежное мультивещание), а также двух протоколов на базе древовидных структур - RMTP (Reliable Multicast Transport Protocol - надежный транспортный протокол мультивещания) и PGM (Pragmatic Group Multicasting - практичное мультивещание в практических группах).

Протоколы RMP, SRM и RMTP включены в комплект разработки приложений, выпущенный фирмой Globalcast Communications, которая открыла доступ к ним посредством одного-единственного интерфейса прикладного программирования.

Представители Globalcast Communications считают, что протокол RMP в наибольшей степени пригоден для тиражирования серверов и баз данных. Подходит он и для доставки информации в реальном масштабе времени, причем обслуживаемая группа может содержать до сотни членов. Протокол SRM рассматривается как средство потоковой трансляции мультимедийных передач и проведения видеоконференций с участием тысяч получателей, а протокол RMTP планируется использовать для пересылки файлов и данных в реальном масштабе времени на тысячи приемных компьютеров.

Фирма Lucent Technologies, предложившая протокол RMTP, производит сейчас бета-тестирование e-cast, приложения под Windows, специально предназначенного для пересылки файлов. Проблему многоадресной передачи файлов решает и корпорация Starburst Communications, заложившая в основу своих проектов разработанный ею же протокол MFTP. Продукты этой корпорации уже используются крупными компаниями для обмена финансовой информацией и отчетами инвентаризации, а также для обновления ПО через наземные и спутниковые линии связи.

Новейший протокол надежного мультивещания под названием PGM разработан совместно фирмами TIBCO и Cisco Systems. Как и другие протоколы этого класса, он представлен в Целевую группу инженерной поддержки Интернета (IETF) для утверждения в качестве стандарта. Фирма TIBCO уже использует протокол PGM в своей линии продуктов TIBnet (они предназначены для публикации данных и абонентской подписки на них в разнообразных приложениях, в первую очередь финансовых).

Дэйв Козюр - независимый автор и консультант. издательство Wiley & Sons выпустило его новую книгу IP Multicasting: The Complete Guide to Interactive Corporate Networks ("IP Multicasting: Полное руководство по интерактивным корпоративным сетям"). Связаться с ним можно через Internet по адресу: drkosiur@ix.netcom.com.