Лабораторная среда для анализа работы протокола 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.