アダプティブトランスポート
はじめに
アダプティブトランスポートは、Citrix Virtual Apps and Desktopsのデータ転送メカニズムです。高速で拡張性が高く、アプリケーションの対話機能が向上し、厳しい長距離のWANとインターネット接続でのインタラクティブ性を高めます。アダプティブトランスポートでは、サーバーの高スケーラビリティと帯域幅の使用効率が維持されます。アダプティブトランスポートを使用すると、ICA仮想チャネルはネットワーク状況の変化に自動的に対応します。Enlightened Data Transport(EDT)と呼ばれるCitrixプロトコルとTCPとの間で、基になるプロトコルをインテリジェントに切り替えて、最適なパフォーマンスを実現します。これにより、Thinwireディスプレイリモート、ファイル転送(クライアントドライブマッピング)、印刷、マルチメディアリダイレクトなど、すべてのICA仮想チャネルのデータスループットが向上します。同じ設定をLANとWANの両方の条件に適用できます。
[優先] に設定すると、EDT経由のデータ転送がプライマリとして使用され、TCPにフォールバックします。Windows向けCitrix Workspaceアプリバージョン1808以降またはCitrix Receiver for Windowsバージョン4.10以降、およびセッション画面の保持機能を有効にすると、初期接続、セッション信頼性再接続、および自動クライアント再接続中にEDTとTCPが同時に試行されます。そうすることで、EDT設定が [優先] であるにもかかわらず、必要な基礎となるUDPトランスポートが利用できなくなり、TCPを使用する必要がある場合に、接続時間が短縮されます。デフォルトでは、TCPにフォールバックした後、アダプティブトランスポートは5分ごとにEDTを検索し続けます。
重要
EDTとTCPには、以下が必要です。
- Windows向けCitrix Workspaceアプリバージョン1808以降およびセッション画面の保持機能。
- Citrix Receiver for Windowsバージョン4.10以降およびセッション画面の保持機能。
- Mac向けCitrix Workspaceアプリバージョン1808以降およびセッション画面の保持機能。
- Citrix Receiver for Macバージョン12.8以降およびセッション画面の保持機能。
デフォルトでは、アダプティブトランスポートが有効になり([優先])、可能な場合はEDTが使用されて、TCPにフォールバックします。
テスト目的で、[診断モード]に設定できます。このモードでは、EDTのみが使用され、TCPへのフォールバックは無効になります。
Citrix SD-WAN WAN最適化との互換性
Citrix SD-WAN WAN最適化(WANOP)は、URLベースのビデオキャッシュを含むセッションを越えたトークン化圧縮(データ重複排除)を提供します。WANOPにより大幅に帯域幅を削減できます。オフィスで2人以上のユーザーが同じクライアントが取得したビデオを見たり、同じファイルまたはドキュメントの大部分を転送または印刷する場合に、削減できます。さらに、支社にあるアプライアンス上でICAデータ削減および印刷ジョブ圧縮プロセスを実行することにより、WANOPによりVDAサーバーのCPU負荷を軽減し、Citrix Virtual Apps and Desktopsサーバーでより高いスケーラビリティを実現します。
重要
Citrix SD-WANのWANOP機能を使用する場合、アダプティブトランスポートを無効にする必要はありません。WANOPは、自動的にHDXセッションをTCPデータ転送モードにします。これはWANOPが、EDTと同等のフロー制御を提供し前述のメリットを追加できるためです。非WANOPセッションでは、可能な限りEDTが使用されます。WANOPは、TCPフロー制御と輻輳制御を使用することにより、低速で中程度のパケット損失がある状況でEDTと同等の対話機能を提供できます。
要件および考慮事項
- Citrix Virtual Apps and Desktops:バージョン7 1808以降
- XenAppおよびXenDesktop:バージョン7.13以降。
- 単一セッションOS対応VDA:バージョン7.13以降。
- マルチセッションOS対応VDA:バージョン7.13以降。
- StoreFront:バージョン3.9以降
- Windows向けCitrix Workspaceアプリ:バージョン1808以降
- Citrix Receiver for Windows:バージョン4.7以降(EDTとTCPにはバージョン4.10以降およびセッション画面の保持機能が必要です)
- Mac向けCitrix Workspaceアプリ:バージョン1808以降
- Citrix Receiver for Mac:バージョン12.5以降(EDTとTCPにはバージョン12.8以降およびセッション画面の保持機能が必要です)
- iOS向けCitrix Workspaceアプリ:バージョン1808以降
- Citrix Receiver for iOS:バージョン7.2以降
- Linux向けCitrix Workspaceアプリ:バージョン1808以降
- Citrix Receiver for Linux:Direct VDA接続のみの場合はバージョン13.6以降。NetScaler Gatewayを使用するDTLSサポート(またはDirect VDA接続用のDTLS)の場合は13.7以降。
- Android向けCitrix Workspaceアプリ:バージョン1808以降
- Citrix Receiver for Android:Direct VDA接続のみの場合はバージョン3.12.3以降
- IPv4 VDAのみ。IPv6およびIPv6とIPv4の混在構成はサポートされません。
- Citrix Gateway(Citrix ADC):最小バージョン11.1ビルド51.21、12.0ビルド35.6。DTLSの断片化に関する重要な修正が含まれているため、少なくともバージョン11.1ビルド55.10または12.0ビルド53.6をお勧めします。構成について詳しくは、「EDTおよびHDX InsightをサポートするようにCitrix Gatewayを構成」を参照してください。
構成
- Citrix Virtual Apps and Desktopsをインストールします。
- StoreFrontをインストールします。Citrix Gatewayを使用している場合は、セッション画面の保持機能が有効であることを確認します。[Studio]>[StoreFront]>[NetScaler Gatewayの管理] で使用中のNetScalerを選択し、[Secure Ticket Authority]>[セッション画面の保持を有効にする] で確認します。
- (単一セッションOSまたはマルチセッションOS対応)VDAをインストールします。
- Windows向けCitrix Workspaceアプリ、Mac向けCitrix Workspaceアプリ、iOS向けCitrix Workspaceアプリ、Android向けCitrix Workspaceアプリ、またはLinux向けCitrix Workspaceアプリをインストールします。
- Citrix Gatewayを使用している場合は、Studioポリシーでセッション画面の保持機能を有効にします。また、フロントエンドVPN仮想サーバーでDTLSを有効にします。
- Studioで、ポリシー設定「HDXアダプティブトランスポート」を有効にします(デフォルトでは有効)。
- ポリシー設定を有効にするには、値を [優先] に設定し、[OK] をクリックします。
- 優先。可能な場合、Adaptive transport over EDTが使用され、TCPにフォールバックします。
- 診断モード。EDTが強制的にオンになり、TCPへのフォールバックは無効になります。この設定はトラブルシューティングでのみお勧めします。
- オフ。TCPが強制的にオンになり、EDTが無効になります。
- ポリシー設定を有効にするには、値を [優先] に設定し、[OK] をクリックします。
- [次へ]をクリックし、ウィザードの手順を完了します。
- ユーザーがICAセッションに再接続するときに新しいポリシーが有効になります。任意で gpupdate /force を実行してポリシー設定をサーバーにプルできますが、ユーザーはやはりICAセッションを再接続する必要があります。
- サポートされているCitrix Workspaceアプリからセッションを起動し、アダプティブトランスポートを使用して接続を確立します。
- 外部アクセスをセキュリティで保護するために、Citrix Gateway上でDTLS暗号化を構成します。詳しくは、こちらの記事を参照してください。
ポリシー設定の有効化を確認するには:
- netstat -a を使用して、ICAユーザーデータグラムプロトコル(UDP)サービスがVDA上で有効であることを確認します。
- Director、またはVDAで利用できる CtxSession.exe コマンドラインユーティリティを使用して、仮想チャネルがEDT経由で実行されていることを確認します。
Directorの使用例:
Directorの [セッション詳細]>[接続の種類] に、ポリシー設定が表示されます。[接続の種類]で [HDX] を探します。[プロトコル]が [UDP] の場合、EDTはこのセッションでアクティブです。[プロトコル]が [TCP] の場合、セッションはフォールバックしているか、デフォルトのモードです。[接続の種類]が [RDP] の場合、ICAは使用されておらず、[プロトコル]は [なし] です。詳しくは、「セッションの監視」を参照してください。
CtxSession.exeの例:
この例は、UDP経由のEDTがアクティブなセッションを示しています。コマンドラインで「CtxSession.exe」と入力します。
C:\Program Files (x86)\Citrix\System32>CtxSession
セッション2のトランスポートプロトコル: UDP -> CGP -> ICA
詳細な統計情報を参照するには、-vスイッチを使用します。
>CtxSession -v
EDT接続のトラブルシューティング
要件および考慮事項
- マルチセッションOS VDA 7.13
- 単一セッションOS VDA 7.13
- Receiver for Windows 4.7(4.6は試験段階)
- Receiver for Linux:
- 13.6(直接接続)
- 13.7(DTLS対応)
- Receiver for Mac 12.5
- Receiver for iOS 7.2
- Receiver for Android:
- 3.12.3(直接接続)
- 3.13(DTLS対応)
- StoreFront 3.9
- Citrix Gatewayリリース11.1~51.21/12.0.53.6以降
並行接続
Receiver for Windows 4.10、Receiver for Mac 12.8、Receiver for iOS 7.5には、EDT接続とTCP接続を並行して試行できるコードが含まれています。UDPを優先するため、EDTの方が500ミリ秒早く開始されます。EDTに対応したVDAではすべて、並行接続もサポートされています。
EDT接続のトラブルシューティングについては、次の手順を参照してください:
- 製品およびコンポーネントの最低バージョン要件を確認します。「要件および考慮事項」を参照してください。
-
Studioで、[HDXアダプティブトランスポート] ポリシーが [未構成] または [優先] に設定されているか確認します。
注:
XenAppおよびXenDesktop 7.16では、HDXアダプティブトランスポートがデフォルトで[優先]に設定されるため、Studioポリシーの構成に関する明示的な要件はありません。
- オプションのReceiver GPO管理用テンプレートが使用されているか確認します。このテンプレートを使用している場合は、[Receiverのトランスポートプロトコル] が [未構成] または [優先] に設定されていることを確認します。Receiver for Windowsg側の構成はオプションです。
- VDAでUDPソケットがリスンしていることを確認します。VDAでコマンドプロンプトを開き、「
netstat –a –p udp
」と入力します。詳しくは、「HDX Enlightened Data Transportプロトコルの確認方法」を参照してください。 - NetScaler Gatewayをバイパスする:EDTをテストする最善の方法は、NetScaler Gatewayをバイパスして、内部ネットワークから直接StoreFrontでアプリを起動することです。VDAのコマンドプロンプトで「
ctxsession
」を実行して、セッションでUDPが使用されていることを確認します。UDPが使用されていれば、VDAは外部からのEDT接続にも対応できます。 - NetScaler Gatewayを介してセッションを起動しますが、その前にまずICAファイルを調べます。このファイルに、「
HDXoverUDP = Preferred
」というエントリがあることを確認します。この値がOff
に設定されている場合は、StudioポリシーでHDXアダプティブトランスポートが [優先] に設定されていないか、またはグループポリシーの更新がまだVDAに反映されていないことになります。また、「CGPSecurityTicket=On
」というエントリがあることも確認します。CGPは、NetScaler Gatewayを利用してEDTを機能させるために必要になります。 - NetScaler GatewayのVDAコマンドプロンプトで「
ctxsession
」を実行して、セッションでUDPが使用されていることを確認します。この値がTCPに設定されている場合は、Citrix ReceiverとNetScaler Gatewayのフロントエンド仮想サーバーとの間に問題がある可能性があるため、接続はTCPにフォールバックされています。 - バージョン12.0.56.20より前のNetScaler Gatewayでは、フロントエンドVPN仮想サーバー上で、DTLSを手動で有効にする必要があります。
- Cisco AnyConnectのようなVPNや、ネットワーク内のMTUを変更するソリューションを使用している場合、EDT接続は失敗する可能性があります。VPNベンダーからもたらされるオーバーヘッドを計算し、StoreFrontのICAファイルテンプレートを変更して2つのエントリを追加します。また、Citrix Receiver側でも変更を行います。詳しくは、「CTX231821」を参照してください。
その他のトラブルシューティングツール
-
Wireshark:問題を特定できない場合には、NetScaler GatewayのWiresharkトレースを使用してトラブルシューティングを行います。Wireshark Dissectorでは、EDTが
QUIC
と解釈されてしまうことがあります。WiresharkのDecode As
機能を使用することで、QUICをDTLSとしてデコードできます。 -
NMAP:UDPパケットが仮想サーバーに到達できているかをテストするには、
nmap -sU -p 443 <IP Address of your NSG>
を使用します。 動作中のトレースと動作していないトレースを比較して確認します: - Director: [Citrix Director]>[セッション詳細]>[プロトコル]>[UDP] での確認もお勧めします。
-
CDFトレース:問題を再現しながら、XenAppおよびXenDesktopコンポーネント上のEDTロジックを確認して、CDFトレースを生成することもお勧めします。
損失耐性モード
重要:
この機能は、Windows向けCitrix Workspaceアプリ2002以降が必要です。利用可能になった際、VDAのこのバージョンでサポートされます。
損失耐性モードは、Citrix GatewayまたはCitrix Gatewayサービスではサポートされていません。このモードでは、直接接続でのみ使用可能です。
損失耐性モードは、高遅延やパケット損失が発生しているネットワークを介して接続しているユーザーのユーザーエクスペリエンスを向上させます。これは、EDT Lossyトランスポートプロトコルを使用して達成されます。
最初に、セッションはEDTを使用して確立されています。遅延とパケット損失のしきい値に達するかこれを上回っている場合、該当する仮想チャネルはEDTからEDT Lossyに切り替わります。他の仮想チャネルはEDTのままです。遅延とパケット損失がしきい値を下回るまで減少した場合、該当する仮想チャネルは、EDTに切り替わります。
デフォルトのしきい値は次のとおりです:
- パケット損失:5%
- 遅延:300ミリ秒(RTT)
損失耐性モードはデフォルトで有効になっており、損失耐性モード設定で無効にすることができます。損失耐性モードのしきい値設定を使用して、パケット損失や遅延のしきい値を調整します。
要件:
- Citrix Virtual Delivery Agent(VDA)2003
- Windows向けCitrix Workspaceアプリ2002
- セッション画面の保持が有効。セッション画面の保持について詳しくは、「セッション画面の保持のポリシー設定」を参照してください。
EDT MTU Discovery
EDTは、セッションを確立するときに、最大伝送単位(MTU)を自動的に決定します。これにより、パフォーマンスの低下やセッションの確立失敗となる可能性のある、EDTパケットのフラグメンテーションが防止されます。
最小要件:
- VDAの最小バージョン1912
- Windows向けCitrix Workspaceアプリ1911
- Citrix ADC:
- 13.0.52.24
- 12.1.56.22
- セッション画面の保持を有効にする必要があります
クライアントプラットフォームまたはこの機能をサポートしていないバージョンを使用している場合、環境に適したカスタムEDT MTUを構成する方法について、Knowledge Centerの記事CTX231821を参照してください。
警告:
レジストリエディターの使用を誤ると、深刻な問題が発生する可能性があり、オペレーティングシステムの再インストールが必要になる場合もあります。レジストリエディターの誤用による障害に対して、シトリックスでは一切責任を負いません。レジストリエディターは、お客様の責任と判断の範囲でご使用ください。また、レジストリファイルのバックアップを作成してから、レジストリを編集してください。
VDAでEDT MTU Discoveryを有効または無効にするには
-
次のレジストリキーを設定します:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd
名前:MtuDiscovery
種類:DWORD
データ:00000001
-
VDAを再起動し、VDAが登録されるまで待ちます。
EDT MTU Discoveryを無効にする場合は、このレジストリ値を削除してVDAを再起動します。
この設定はマシン全体で有効であり、サポートされているクライアントから接続しているすべてのセッションに反映されます。
クライアントでEDT MTU Discoveryを制御するには
ICAファイルにMtuDiscoveryパラメーターを追加することで、クライアント上でEDT MTU Discoveryを選択的に制御できます。この機能を無効にする場合は、[アプリケーション]セクションで次のように設定します:
MtuDiscovery=Off
この機能を再度有効にするには、ICAファイルからMtuDiscoveryパラメーターを削除します。
重要:
このICAファイルパラメータを使用するには、VDAでこの機能を有効にします。VDAでこの機能が有効になっていない場合、ICAファイルパラメーターは無効です。