Лабораторная среда для анализа работы протокола X11

Автор: Кубалиев Жоламан Максутович, Ружников Вадим Александрович

Журнал: Инфокоммуникационные технологии @ikt-psuti

Рубрика: Управление и подготовка кадров для отрасли инфокоммуникаций

Статья в выпуске: 3 т.13, 2015 года.

Бесплатный доступ

В статье рассматривается проблема построения лабораторной среды с целью анализа графического протокола X11 оконной системы X Windows, которая является стандартом оконных систем в Unix-подобных операционных системах.

Протокол x11, система x windows

Короткий адрес: https://sciup.org/140191782

IDR: 140191782   |   DOI: 10.18469/ikt.2015.13.3.18

Текст научной статьи Лабораторная среда для анализа работы протокола X11

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

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

Оконная система X Windows использует протокол X11 для взаимодействия графичеcкого X сервера c X клиентами. В основе алгоритма работы лежит множественный контроль этапов работы (см. рис.1).

Анализ работы протокола X11

Для сбора статистических данных была разработана лабораторная среда (рис.2):

  • -    настроены виртуальные машины клиента и сервера на базе ОС GNU/Linux;

  • -    установлен и настроен шлюз между клиентом и сервером (по технологии WANem);

  • -    настроена система X Windows для передачи проходящего между клиентом и сервером трафика;

    - настроена система регистрации событий (170 видов) в журнал для дальнейшего анализа.

Рис.1 Пример взаимодействия клиента и сервера

Шлюз WANem используется для контроля пропускной способности сетевого подключения между клиентом и сервером.

Для качественного анализа работы протокола X11 необходима соответствующая среда, включающая в себя:

  • -    виртуальную машину – сервер, с установленным оконным пакетом X Windows;

  • -    виртуальную машину – клиент, с установленным оконным пакетом X Windows;

  • -    виртуальную машину – шлюз, с установленным программным пакетом WANem;

  • -    настроенный трассировщик пакетов на виртуальной машине клиента.

Наиболее ответственным участком лабораторной среды является трассировщик пакетов, в задачу которого входит разделение сетевого трафика на дискретные пакеты или сообщения с последующим анализом частоты появления конкретных типов сообщения и расчет суммарного объема передаваемых данных.

Рис. 2 Взаимодействие X клиента с X сервером

В модельной среде регистрировались следующие виды пакетов, посылаемых через сеть асинхронно:

  • -    запрос (Request): посылается клиентом серверу для инициализации сервера на выполнение какого-либо действия, например создания окна, кнопки на форме;

  • -    отклик (Reply): ответ сервера на запрос, возвращает клиенту данные, сформированные по его запросу;

  • -    событие (Event): уведомление клиента о каком-либо событии на стороне сервера. Данное событие может быть результатом предыдущего запроса или таких действий, как нажатие на клавишу, мышку;

  • -    сообщения об ошибках (Error): уведомление клиенту в случае возникновения ошибки на стороне сервера.

В журнале регистрировались запросы как CreateWindow, PutImage, GetImage, PolyLine и ImageText8 и т.д., контролировались важные события, такие как ButtonPress (нажатие на кнопку мыши), MotionNotify (перемещение курсора мыши). Некоторые запросы оконной системы X Windows не имели откликов, например связанные с перемещением мыши. Такие события группировались и посылались единым потоком.

Особенностью работы X клиента является взаимодействие с X сервером по протоколу TCP/ IP в асинхронном режиме. В связи с этим в системе регистрации была реализована многопоточная запись. В целях минимизации влияния жесткого диска на сбор сетевых данных разработанная программа мониторинга протокола Х11 записывала минимально необходимые сведения о проходящих сетевых пакетах в лог-файл. Запись каждого пакета сопровождалась штампом времени с точностью до 1 мс. Трассировщик, записывающий информацию обо всех пакетах, работал с заданным приоритетом –20 (nice –20) во избежание потери пакетов.

Формат записываемых в лог-файл пакетов содержит следующие данные:

  • -    последовательный номер пакета;

  • -    размер окна;

  • -    длину пакета.

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

Построенная лабораторная среда позволяет проводить детальный анализ протокола Х11 по последовательности пакетов.

На рис. 3 приведен один из образцов пересылаемых пакетов между Х сервером и Х клиентом:

  • 1)    время отправки пакета;

  • 2)    порядковый номер клиент;

  • 3)    тип записи (запрос, отклик, событие);

  • 4)    количество байт в пакете;

  • 5)    последовательность;

  • 6)    длина пакета;

  • 7)    маркер (функция);

  • 8)    запрос;

  • 9)    номер окна.

о

© ©

О

0

©

0

©

1049594552.000399459

1 Send

1448

353024

1448

1

20364

23808

Рис. 3 Формат сетевого пакета Х11

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

  • -    геометрия: данный вид передает информацию о геометрических объектах – линия, полигон и их координаты в метрической системе;

  • -    картинки, включая перемещения курсора на экране (используемые функции X_PutImage, X_GetImage и др.);

  • -    ввод: к этой категории относятся события – нажатие клавиш клавиатуры и мыши;

  • -    текст: к данной категории относятся все сообщения, содержащие текстовые данные, которые, как правило, помимо текста, также содержат информацию о положении курсора;

  • -    окна: этот вид сообщений включает информацию о типе, цвете, координатах, отображаемых системой X Windows окнах.

Анализ протокола X11, помимо разделения сообщений на категории, сводится к исследованиям в следующих направлениях:

  • -    относительная важность сообщения для стабильной работы системы X Windows;

  • -    изменение активности передачи конкретных типов сообщений в течение работы приложения системы X Windows;

  • -    использование коротких последовательностей сообщений, отражающих высокоуровневую работу приложений;

  • -    зависимость размера служебной информации от типа сообщения и их группировка по типу.

Заключение

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

Основной целью исследования является разработка алгоритма эффективного сжатия протокола X11, который позволит комфортно использовать протокол в сетях с низкой пропускной способностью и высокой латентностью.

Список литературы Лабораторная среда для анализа работы протокола X11

  • Adrian Nye. X Protocol Reference Manual for Version 11 of the X Window System (Definitive Guides to the X Window System) (V.0). O'Reilly Media, 2001. -500 p.
  • Adrian Nye. XLIB Reference Manual(R4/R5) for Version 11, (Volume 2) (Definitive Guides to the X Window System). O'Reilly Media, 1994. -935 p.
  • Bell T. Text Compression. Prentice Hall, 1990. -318 p.
  • Barkakati N. X Window System Programming. Sams, 1991. -750 p.
  • Douglas A. Young. The X Window System: Programming and Applications with Xt, OSF/Motif. Prentice Hall, 1994. -656 p.
  • Foley J.D.Fundamentals of Interactive Computer Graphics (Systems Programming Series). Addison Wesley, 1982. -664 p.
  • Jones O. Introduction to The X Window System. Prentice Hall, 1988. -528 p.
  • Kozierok C. The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference. No Starch Press, 2005. -1616 p.
  • Mansfield N. The Joy of X: The Architecture of the X Window System. UIT Cambridge Ltd., 2010. -380 p.
  • Nelson M. The data compression book: Featuring fast, efficient data compression techniques in C. M&T Books, 1991. -527 p.
  • Rosenthal D., Flowers J., Scheifler R., Gettys J. X Window Sytem, Third Edition: The Complete Reference to Xlib, X Protocol, ICCM, XLFD, X Version 11, Release 5. Digital Press, 1992. -1000 p.
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Stein C. Introduction to Algorithms, 3rd Edition. The MIT Press, 2009. -1312 p.
Еще
Статья научная