Многие пользователи сегодня используют MetaFrame в локальных сетях. Благодаря высокой пропускной способности и малому времени реакции они достаточно комфортно могут работать с приложениями так, как будто запустили их на локальном устройстве. Однако, беспроводные сети и WAN отличаются медленностью и высоким временем реакции. Эти факторы особенно чувствительны в беспроводных сетях, где производительность пользователей может снизиться до непримелимого уровня.
Пропускная способность (throughput) и задержки (latency) - вот основные факторы, определяющие скорость сети. Пропускная способность - это количество данных, которое может пройти от источника к назначению за определенный промежуток времени. Задержки - это время, требуемое для осуществления единичной транзакции данных (т.е. промежуток времени между посылкой данных и приемом).
Задержки оказывают критическое влияние на комфортнось работы пользователя, поскольку каждое действие пользователя должно передаться по сети на сервер, сервер должен это обработать и вернуть ответ. В локальных сетях (LAN) задержки обычно невелики и не превышают 10мс. Однако, в проводных глобальных сетях (WAN) они составляют 100-500мс, а в беспроводных глобальных сетях (wWAN) - даже 300-3000мс. При этом задержкам подвергается весь траффик, не только ICA.
Беспроводные WAN обычно соединяют пользователей с интернетом, через который они получают доступ к серверу MetaFrame. Интернет основан на протоколе TCP, который требует подтверждения на каждый переданный пакет. Если отправитель не получает ответа в течении заданного времени, TCP считает связь перегруженной и снижает скорость посылки пакетов. TCP весьма эффективен в проводном интернете. Беспроводные сети имеют большую задержку, чем проводные, и кроме того они характеризуются "дрожанием" (jitter) (переменной задержкой). Низлежащие беспроводные сети основаны на архитектуре передачи голоса и не содержат эффективных механизмов передачи подтверждающих пакетов данных. Для улучшения передачи данных такие сети обычно ждут прихода нескольких кадров перед ответом на них одним подтверждением. Тут и возникает задержка.
Как правило, задержка возрастает при увеличении размера пакета TCP. В LAN это практически незаметно. В WAN она оказывает небольшое влияние. Но в wWAN, например, задержка 32-байтного пакета может составлять 400мс, а для 1460-байтного пакета - более 1800мс. Это негативно влияет на сеансы MetaFrame.
В этом документе Citrix старается дать рекомендации по оптимизации MetaFrame для работы по беспроводным глобальным сетям.
Уменьшение максимального размера пакета
Максимальный размер пакета TCP, используемый Citrix, обычно составляет 1460 байт. После тестирования в беспроводной среде оказалось, что рекомендуемый размер пакета составляет 512 байт.
Уменьшение количества передаваемых малых пакетов
Задержки также возникают при поступлении пакетов малого размера, т.е. размером ниже 64 байт, которые ниже MTU. Посылка большого количества маленьких пакетов создает перегрузку сети. Для решения этой проблемы рекомендуется использовать объединение пакетов.
Использование технологии SpeedScreen3
SpeedScreen 3 являтся очень важным компонентом в решении проблемы wWAN. Особенности SpeedScreen позволяют снизить дискомфорт от задержек, поскольку пользовательский ввод дублируется на экране локально.
Кеширование и сжатие данных
При работе в wWAN необходимо учитывать две вещи - квалификацию пользователя и стоимость. Как правило, каналы wWAN имеют ограниченную ширину канала и важно использовать ее максимально полно. Это достигается сжатием потока данных и увеличением кеширования на стороне клиента. Биллинг многих операторов основан на учете передданного и принятого траффика. Минимизация объема пересылаемых данных снижает стоимость для мобильных пользователей.
MetaFrame XP FR2 содержит ряд улучшений, в частности:
Citrix настоятельно рекомендует использовать FR2 или более поздние выпуски при работе в wWAN, а также соответствующие версии клиентов.
Если вы используете FR1, то следуйте рекомендациям, изложенным в Приложении 2.
Включение SpeedScreen3 Latency Reduction
Для уменьшения зарежек в SpeedScreen3 используется два компонента:
Локальное эхо повторяет нажатия клавиш на устройстве клиента. Эти символы отображаются немедленно, а затем прозрачно перерисовываются изображением, полученным с сервера. Это устраняет задержки при наборе текста.
Ответная реакция мыши меняет форму курсора мыши на клиенте при щелчке в состояние “busy working”. Когда сервер присылает ответ на щелчок мыши, форма кусора меняется на обычную.
На сервере для изменения этих двух методов используется SpeedScreen3 Latency Reduction Manager. По умолчанию реакция мыши включена, а локальное эхо текста отключено. При использовании WWAN локальное эхо также должно быть включено. Подробнее см. "Руководство Администратора".
Увеличение задержки показа меню
Это относится к оптимизации интерфейса Windows. Эти рекомендации полезны также и для высокоскоростных соединений.
Задержка показа меню - это время, которое мышь должна оставаться на родительском меню перед тем, как появится низлежащее меню. При увеличении этого тайм-аута облегчается навигация по меню Start.
Задержка показа меню устанавливается в реестре HKCU\Control Panel\Desktop\MenuShowDelay.
Рекомендуемое значение 1500 (в миллисекундах).
NFuse является предпочтительным методом соединения с серверами MetaFrame через wWAN.
Citrix рекомендует создать два сервера NFuse - один для обслуживания беспроводных пользователей, а другой - для обслуживания пользователей LAN. Эти серверы имеют разные настройки.
Запрет отображения клиентских драйвов
Запрет отображения драйвов (drive mapping) уменьшает время регистрации, а также улучшает производительность, поскольку операционная система не тратит время на поиск драйвов клиента, что обычно происходит, например, при вводе URL в адресную строку Internet Explorer, открытии диалога Save As... или File Open.
| Параметр | Значение | Смысл |
| COMAllowed | Off | Виртуальный канал отображения COM-портов |
| CPMAllowed | Off | Виртуальный канал отображения принтеров клиента |
| VSLAllowed | Off | Виртуальный канал спулера печати |
| CDMAllowed | Off | Использование виртуального канала отображение клиентских драйвов |
| ClientAudio | Off | Виртуальный канал аудио |
Запрет обновления клиента
Это также уменьшает время регистрации. Для этого установите параметр Update в Off.
Ограничение максимального размера пакета
Как говорилось выше, максимальный размер пакета, используемый ICA в сетях TCP/IP, составляет 1460 байт. Уменьшение этого размера снижает задержки.
| Параметр | Значение | Смысл |
| OutBufCountHost | 118 | Макс. количество пересылаемых данных от сервера клиенту, которое соединение пытается поддерживать в активном состоянии. Увеличение значения выше указанного не рекомендуется |
| OutBufCountClient | 118 | То же самое, но от клиента к серверу |
| OutBufLength | 512 | Размер пакета для wWAN. Citrix нашла это значение оптимальным |
Включение SpeedScreen3 Latency Reduction
Установите следующие значения:
| Параметр | Значение | Смысл |
| ZLMouseMode | 1 | Реакция мыши |
| ZLKeyboardMode | 1 | Эхо текста |
Включение максимального сжатия данных
| Параметр | Значение | Смысл |
| Compress | On | |
| MaximumCompression | On |
Включение буферизации клавиатуры и мыши
Это уменьшит количество пересылаемых малых пакетов.
| Параметр | Значение | Смысл |
| MouseTimer | 200 | Значение можно варьировать, но слишком большая величина ухудшит интерактивный ответ |
| KeyboardTimer | On | Значение можно варьировать, но слишком большая величина ухудшит интерактивный ответ |
Включение постоянного кеша
Включение постоянного кеша уменьшит время регистрации и увеличит производительность
графики в сеансах ICA. Постоянный кеш поддерживается не на всех платформах.
Например, он не поддерживается в Windows CE.
Для включения постоянного кеша установите параметр
PersistentCacheEnabled=On.
Установите размер кеша Thinwire 8192Кб
Это позволит более эффективно использовать ширину канала. Размер кеша Thinwire
контролируется параметром WindowsCache. Максимальный размер его составляет 8192Кб.
Пользователи MetaFrame FR1 и выше с клиентами версии 6.20 и выше не должны менять
это значение.
Установите параметр
WindowsCache=8192
Добавьте следующие значения в раздел [Wfclient] файла appsrv.ini.
В клиентах Windows NT и XP этот файл находится в каталоге C:\Documents and Settings\[username]\Application
Data\ICAClient).
Серым цветом отмечен существующий текст в файле.
[WFClient]
Version=2COMAllowed=Off
CPMAllowed=Off
VSLAllowed=Off
CDMAllowed=Off
ClientAudio=Off
UpdatesAllowed=OffOutBufCountHost=118
OutBufCountClient=118
OutBufLength=512
PersistentCacheEnabled=On
MouseTimer=200
KeyboardTimer=50
Помимо этого, добавьте в раздел Connection” следующие параметры (например, [Microsoft Outlook]):
[Microsoft Outlook]
ZLKeyboardMode=1
ZLMouseMode=1MaximumCompression=On
Compress=On
Пометьте следующие каталоги как кешируемые:
IIS 5.0 и более поздние версии могут использовать заголовок HTTP “Cache-Control”. Этот заголовок состоит из двух параметров: время пре-проверки и время пост-проверки (pre-check и post-check).
Время пост-проверки - это интервал в секундах, после которого объект должен быть проверен на свежесть после показа пользователю. Время пре-проверки определяет интервал в секундах, после которого объект должен быть проверен на свежесть перед отображением пользователю.
Если подобрать нужные значения, то пользователю будут показываться изображения из кеша.
Поскольку изменения опубликованных приложений бывают нечасто, чувствительные значения этих параметров таковы:
• Post-check = 1200
• Pre-check = 360000
Эти значения соответствуют 20 минутам и 4.2 дням соответственно. Это означает следующее:
Для установки этих значений щелкните кнопку "Add" на закладке "HTTP Headers".
Аналогичное поведение можно настроить в веб-сервере Apache версии 1.20 и выше
с помощью модуля mod_expire. Необходимые директивы можно вписать как в
httpd.conf, так и в .htaccess. В последнем случае необходима
директива AllowOverride indexes.
Пример:
<Directory /directory/path/required> # if using .htaccess scope, set AllowOverride # AllowOverride Indexes # Everything else you want to add to this section ExpiresActive on ExpiresDefault "access plus 2 months" ExpiresByType image/gif "access plus 1 year" ExpiresByType text/html "modification plus 5 days" </Directory>
Apache также поддерживает мета-тег Cache-Control. Подробнее см. http://httpd.apache.org/docs/mod/mod_headers.html.
Пример template.ica для NFuse Classic
; Wireless wWAN ICA file template for the Citrix ICA Client ; Copyright 2000-2002 Citrix Systems, Inc. All rights reserved. <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="ja"]> [Encoding] InputEncoding=SJIS <[/NFuse_IFSESSIONFIELD]> <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="de"]> [Encoding] InputEncoding=ISO8859_1 <[/NFuse_IFSESSIONFIELD]> <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="en"]> [Encoding] InputEncoding=ISO8859_1 <[/NFuse_IFSESSIONFIELD]> <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="fr"]> [Encoding] InputEncoding=ISO8859_1 <[/NFuse_IFSESSIONFIELD]> <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="es"]> [Encoding] InputEncoding=ISO8859_1 <[/NFuse_IFSESSIONFIELD]> <[NFuse_setSessionField NFuse_ContentType=application/x-ica]> [WFClient] Version=2 ClientName=[NFuse_ClientName] ;----------------------------------------------------------- ;The following are recommended settings for wWAN connections ;----------------------------------------------------------- COMAllowed=Off CPMAllowed=Off VSLAllowed=Off CDMAllowed=Off ClientAudio=Off UpdatesAllowed=Off OutBufCountHost=118 OutBufCountClient=118 OutBufLength=512 PersistentCacheEnabled=On MouseTimer=200 KeyboardTimer=50 ;----------------------------------------------------------- <[NFuse_IfSessionField sessionfield="NFuse_CSG_Enable" value="On"]> TransportReconnectEnabled=Off <[/NFuse_IfSessionField]> RemoveICAFile=yes [NFuse_SOCKSSettings] [ApplicationServers] [NFuse_AppName]= [[NFuse_AppName]] Address=[NFuse_AppServerAddress] InitialProgram=#[NFuse_AppName] LongCommandLine="[NFuse_AppCommandLine]" DesiredColor=[NFuse_WindowColors] TransportDriver=TCP/IP WinStationDriver=ICA 3.0 ;----------------------------------------------------------- ;The following are recommended settings for wWAN connections ;----------------------------------------------------------- ZLKeyboardMode=1 ZLMouseMode=1 MaximumCompression=On Compress=On ;----------------------------------------------------------- [NFuse_ClientLogon] [NFuse_SOCKSSettings] AutologonAllowed=ON [NFuse_Ticket] [NFuse_IcaWindow] [NFuse_IcaEncryption] SessionsharingKey=[NFuse_SessionSharingKey] [EncRC5-0] DriverNameWin16=pdc0w.dll DriverNameWin32=pdc0n.dll [EncRC5-40] DriverNameWin16=pdc40w.dll DriverNameWin32=pdc40n.dll [EncRC5-56] DriverNameWin16=pdc56w.dll DriverNameWin32=pdc56n.dll [EncRC5-128] DriverNameWin16=pdc128w.dll DriverNameWin32=pdc128n.dll [Compress] DriverNameWin16=pdcompw.dll DriverNameWin32=pdcompn.dll
Изменения в настройке сервера FR1
Обратите внимание, что ни одно из следующих изменений не требуется для MetaFrame XP FR2 или выше; эти модификации только для FR1.
Создайте новый ICA Listener:
Для запуска нового слушателя:
Включение таймера задержек
Итнерактивный таймер используется на сервере для обеспечения интерактивности сеанса. Таймер периодически сбрасывает буферы ожидания. При увеличении времени задержки таймера буферы будут содержать больше данных при сбросе. Это уменьшает количество маленьких пакетов.
Буферизация виртуальных каналов контролируется ключом
HKLM\System\CurrentControlSet\Control\TerminalServer\WDs\icawd
Значение типа REG_MULTI_SZ. Каждая строка представляет собой имя виртуального
канала, которое следует буферизовать. Для редактирования этого значения используйте
regedt32.exe. Имя канала SpeedScreen Latency Reduction равно “CTXZLC
". Завершающий пробел необходим.
После внесения изменений перезапустите слушатель.