BC/NW 2006, №2, (9) :8.2
ОРГАНИЗАЦИЯ СОГЛАСОВАННОГО СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ УДАЛЕННЫХ
ПОЛЬЗОВАТЕЛЕЙ В РАСПРЕДЕЛЁННЫХ СИСТЕМАХ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ
В. Ю. Харитонов
(Москва, Московский
энергетический институт (ТУ), Российская Федерация)
В последнее время с ростом пропускной способности вычислительных сетей и
расширением графических возможностей ПК растет интерес к распределенным
системам виртуальной реальности, позволяющим множеству пользователей,
объединенных сетью, осуществлять взаимодействие (в том числе и визуальное) в единой
трёхмерной виртуальной среде. Каждый пользователь представлен в виртуальной
среде некоторым объектом, состояние (положение в пространстве, скорость,
ускорение и т. д.) которого контролируется с помощью интерактивной программы,
устанавливаемой на его рабочей станции. Данная программа позволяет
пользователю «погружаться» в виртуальную среду за счет динамической
визуализации вида, наблюдаемого с его текущей позиции в виртуальной среде. Примерами
распределенных систем виртуальной реальности являются различные обучающие
симуляторы и тренажеры, а также сетевые компьютерные игры [1].
В рассматриваемых
системах рабочие станции всех пользователей хранят данные о текущем состоянии виртуальной среды и управляемых
объектов. При любых изменениях этих состояний,
данные каждого пользователя должны
обновляться в реальном времени, т. е. в системе должна обеспечиваться
когерентность по данным. Однако, вследствие удаленности пользователей, а также из-за возникающих физических
ограничений обеспечить когерентность не всегда удается. В данной статье
рассматриваются эти ограничения и
приводятся методы их преодоления.
При организации сетевого
взаимодействия в распределённых системах виртуальной реальности лимитирующими,
в основном, являются два следующих
фактора: полоса пропускания канала и латентность передачи данных по сети. Эти факторы напрямую связаны
с аппаратурой передачи данных и
физическими свойствами линий связи. Они непосредственно влияют на поддержание когерентности
данных в сети, поскольку определяют время
прохождения пакетов между узлами. Рассмотрим их подробнее.
Полоса пропускания
канала определяется информационной емкостью коммуникационной линии, а именно
объемом данных, который может быть передан по ней за единицу времени, и может
быть большим препятствием в
системах, как рассматриваемая, где необходимы частые сетевые обмены. Эффективность
использования пропускной способности может зависеть от числа и распределения
пользователей внутри сети, а также от способа посылки сообщений (unicast-, multicast- и broadcast-рассылки).
Если же говорить про
латентность, то она определяет время, за которое сообщение доходит от одного
узла сети до другого. Окончательно скрыть или замаскировать её невозможно.
Например, задержка сигнала при пересечении
Атлантики, в среднем, составляет 25–30 мс. Более того, маршрутизация, формирование очередей в каналах и
обработка пакетов добавляют еще несколько десятков мс к указанному времени.
Для пользователя
латентность становится заметной и осязаемой, начиная со значения порядка 200 мс. Распределённые системы
виртуальной реальности являются особенно
чувствительными к значению латентности, поскольку в них производится управление
процессами в реальном времени. В
таких системах при больших значениях латентности пользователь, даже имея канал
с большой пропускной способностью, не сможет адекватно реагировать на изменения состояния виртуальной среды,
поскольку информация об этих
изменениях будет поступать к нему с задержкой. Кроме того, латентность может
изменяться во времени (особенно это заметно в сети Интернет), создавая
дополнительные неудобства пользователю.
Вычислительная мощность
конечного узла обработки сетевого трафика также может оказаться лимитирующим
фактором. С ростом числа пользователей
сети, нагрузка на каждый такой узел начинает возрастать, и может настать
момент, когда узел перестанет справляться с трафиком, т. е. часть трафика будет
теряться. Это неминуемо приведет к дополнительным задержкам на повторную пересылку данных.
Поскольку полностью преодолеть физические ограничения, возникающие при
построении распределённых систем виртуальной реальности, не представляется возможным, появляется
необходимость в применении методов, позволяющих сократить объем трафика,
передаваемого по сети, а также «замаскировать» задержки передачи данных от узла
к узлу. К числу таких методов относятся технологии компенсации (compensatory techniques) [2].
Одной из технологий компенсации является технология компрессии данных и
их группировки (message compression and aggregation). С помощью компрессии данных ценой
вычислительной мощности узлов можно уменьшить используемую полосу пропускания
канала. Группировка данных позволяет сократить частоту пересылки данных за
счет увеличения размера посылок (вместо нескольких одиночных сообщений посылается
одно, включающее все одиночные – экономия на лишних заголовках сообщений).
Другой технологией
компенсации является т. н. «взаимодействие по интересам» (interest
management), которая позволяет одним пользователям распределенной системы
виртуальной реальности взаимодействовать только с теми другими пользователями,
которые наиболее важны для них в данный момент. Тем самым экономится пропускная
способность каналов передачи данных в сети.
Каждый объект
виртуальной среды имеет свою «область интереса», которая определяет подпространство его взаимодействия с другими
объектами. До тех пор, пока
«области» двух объектов не пересекаются, они не обмениваются информацией и, в общем случае, «не видят» друг друга.
Как только их «области интереса» начинают соприкасаться, объекты попадают в
зону видимости друг друга и начинают взаимодействовать. Взаимодействие по интересам всегда симметрично:
если «области» пересекаются, то обе стороны начинают получать сообщения друг от
друга.
Технология
«взаимодействия по интересам» может использоваться вместе с сетевой технологией множественной рассылки (multicasting), которая позволяет передавать пакеты в сети от
одного отправителя сразу нескольким
получателям, объединённым в группу с общим адресом.
Существуют два подхода формирования групп [2]. В первом подходе (group-per-object allocation) каждому объекту виртуальной среды назначается
своя собственная группа множественной рассылки, состоящая из тех объектов,
которые попадают в его «область интереса». Во втором подходе группы
создаются по территориальному принципу (group-per-region allocation) — виртуальная среда делится на регионы, каждый
из которых имеет собственную группу множественной рассылки. В обоих
подходах каждый объект при изменении своего состояния сообщает об этом связанной
с ним группе.
Еще одной технологией
компенсации является технология предсказания перемещения (в общем случае, состояния)
объектов [2] (dead reckoning — рисунок
3), которая применяется в распределенных системах виртуальной реальности для предсказания
одними объектами состояний других объектов.
Благодаря этой технологии можно увеличить интервал между последовательными посылками данных от одного объекта
другому и, тем самым, скрыть
латентность передачи данных по сети.
Рассмотрим работу технологии
на примере двух объектов A и B. Когда объект
B принимает очередное сообщение обновления от объекта A, он изменяет
свою базу данных о состоянии виртуального мира, занося в нее новое состояние объекта A. До
прихода следующей порции данных объект B вычисляет новое состояние
объекта A, экстраполируя его из последнего
принятого. При этом, для определения того, как часто сообщать объекту A об изменении своего состояния, объект B может сам
использовать технологию предсказания
перемещения, посылая объекту A обновления только тогда,
когда разница между реальным и расчетным состояниями превысит определенное значение.
Рисунок 1 —
Технология предсказания перемещения с применением плавной коррекции траектории.
При использовании
технологии предсказания в процессе экстраполяции траектории объектов может
накапливаться значительная ошибка. Для того чтобы избежать резких, скачкообразных
движений объектов при приеме сообщений обновления, применяется плавная
коррекция траектории (convergence technique
— рисунок 1). Данная технология позволяет сделать обновление состояния объекта незаметным с использованием
интерполяции, как линейной, так и более высокого порядка.
В заключение отметим,
что рассмотренные технологии компенсации находят широкое применение при разработке
современных распределенных систем
виртуальной реальности. В частности, технология предсказания перемещения реализована автором в
сетевой модели воспроизведения группового полета над местностью [3]. Это
позволило уменьшить требования к
каналам передачи данных, а также перейти к использованию более экономичного (с точки
зрения объема передаваемого трафика) протокола UDP для обмена данными о состояниях
виртуальных объектов.
ЛИТЕРАТУРА
1. Juri Munnkki. Design and
Implementation of Networked Games. http://www.hut.fi/~jmunkki/netgames.
2. J. Smed, T. Kaukoranta, and H.
Hakonen. Aspects of networking in multiplayer computer games. In L. W. Sing, W.
H. Man, and W. Wai, editors, Proceedings of International Conference on
Application and Development of Computer Games in the 21st Century, pages 74–81,
Hong Kong SAR, China, Nov. 2001.
3.
Харитонов В.Ю. «Сетевая модель воспроизведения
группового полета над местностью»,
Труды международной технической конференции
«Информационные средства и технологии». Москва, МЭИ, 18-20 октября 2005г., в
3-х т.т. Т3. — М.: Янус-К, 2005. — с. 138 – 141.