LAB ENVIRONMENT FOR ANALYSIS OF X11 PROTOCOL

Abstract


All GUI applications in UNIX environment require both graphic and data communication protocols, and these applications are interactive. That means if performance would be lower some threshold, users will mark them as unapplicable. Also there is a high performance threshold, when users will not be able to detect improvements under its growing. The problem of low performance network can be sold by graphic protocol compression. However this approach for the high performance networks does not work. For example, network transmits graphic command much faster then command is generated by application or faster then graphic server capabilities to receive and process them. Also there is a case, when application operates fast enough under current resources. Here user will miss all application improvements if application provides feedback at 100 ms, and compression would be inappropriate. However generally the network is a bottleneck, and both compute server and graphic sever have reserve cycles for graphic protocol compression. Graphic protocol is a machine language that provides for application program operating in the one computer to interact with graphics server operating in another computer. This work is devoted to problem of lab environment development for X11 graphic protocol analysis for research and following developing of method providing network traffic reducing between X-server and X-user.

Keywords

Full Text

Введение Особенностью графической оконной системы 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) номер окна. Рис. 3 Формат сетевого пакета Х11 Анализ проходящих пакетов, дает представление о формате протокола и активности проходящих в оконной системой X операций. Проанализировав некоторый объем собранной в результате мониторинга работы протокола X11 информации, можно сделать следующий вывод. Система X Windows использует пять основных категорий сообщений: - геометрия: данный вид передает информацию о геометрических объектах - линия, полигон и их координаты в метрической систем; - картинки, включая перемещения курсора на экране. (используемые функции X_PutImage, X_GetImage и др.); - ввод: к этой категории относятся события нажатие клавиш клавиатуры и мыши; - текст: к данной категории относятся все сообщения содержащие текстовые данные, которые как правило помимо текста, также содержат информацию о положении курсора; - окна: этот вид сообщений включает информацию о типе, цвете, координатах, отображаемых системой X Windows окнах. Анализ протокола X11, помимо разделения сообщений на категории, сводится к исследованиям в следующих направлениях: - относительная важность сообщения для стабильной работы системы X Windows; - изменение активности передачи конкретных типов сообщений в течении работы приложения системы X Windows; - использование коротких последовательностей сообщений отражающих высокоуровневую работу приложений; - зависимость размера служебной информации от типа сообщения и их группировка по типу. Заключение Построение лабораторной среды, имеет строгую зависимость от поставленной перед исследователями задачи. В данной статье рассмотрена лабораторная среда, построенная с целью исследования внутреннего устройства и работы графического протокола X11. Основной целью исследования является разработка алгоритма эффективного сжатия протокола X11, который позволит комфортно использовать протокола в сетях с низкой пропускной способностью и высокой латентностью.

About the authors

Zholaman Maksutovtch Kubaliyev

Povolzhskiy State University of Telecommunication and Information

Email: kubalievzh@gmail.com

Vadim Aleksandrovich Ruzhnikov

Povolzhskiy State University of Telecommunication and Information

Email: rv@psuti.ru

References

  1. 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.
  2. 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.
  3. Bell T. Text Compression. Prentice Hall, 1990. - 318 p.
  4. Barkakati N. X Window System Programming. Sams, 1991. - 750 p.
  5. Douglas A. Young. The X Window System: Programming and Applications with Xt, OSF/Motif. Prentice Hall, 1994. - 656 p.
  6. Foley J.D.Fundamentals of Interactive Computer Graphics (Systems Programming Series). Addison Wesley, 1982. - 664 p.
  7. Jones O. Introduction to The X Window System. Prentice Hall, 1988. - 528 p.
  8. Kozierok C. The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference. No Starch Press, 2005. - 1616 p.
  9. Mansfield N. The Joy of X: The Architecture of the X Window System. UIT Cambridge Ltd., 2010. - 380 p.
  10. Nelson M. The data compression book: Featuring fast, efficient data compression techniques in C. M&T Books, 1991. - 527 p.
  11. 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.
  12. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Stein C. Introduction to Algorithms, 3rd Edition. The MIT Press, 2009. - 1312 p.

Statistics

Views

Abstract - 21

PDF (Russian) - 2

Cited-By


Article Metrics

Metrics Loading ...

PlumX

Dimensions


Copyright (c) 2015 Kubaliyev Z.M., Ruzhnikov V.A.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies