This is a limitation of the VPN vendor which is not handling IP fragmentation properly.
The work-around involves lowering the ICA/EDT MTU to a known value that will not cause fragmentation.
This MTU value needs to be determined by the customer, for example by using a tool like mturoute.exe
- In the .ica file template in the Storefront server, add these two lines:
OutBufLength=1480 (or whatever value the customer determines)
udtMSS=1480 (or whatever value the customer determines)
These should be added under the section [Application], see image below with value 1480 just for reference.
Again, the customer needs to calculate the MTU over his specific VPN.
Then, client and server will agree on sizes during the connection negotiation.
2. To allow these custom parameters to be read from ICA file, a tweak on Receiver-side is needed.
- If you have Receiver for Windows 4.10 / 4.11 or 4.12 (4.13 or higher does not require this)
Create UDPStackParameters Registry Key. Key is missing/off by default.
- If you have Receiver for Windows 4.9/ 4.9 CU1/ 4.9 CU2 / 4.9 CU3 / 4.8 / 4.7:
In addition to the modification for 4.10, you also need to modify the following Key.
There is a legacy issue in these Windows Receivers where OutbufLength, when passed in an ICA file, is being ignored.
Even if the registry is modified to “*”, meaning accept everything from the ICA file, the ICA file setting is still ignored by Receiver for Windows.
The only way to change the default OutbufLength in those Receivers is to update the Client Lockdown Registry itself with the desired value (1480 in our example):
- 64-bit Windows
- 32-bit Windows
HKLMSOFTWARE CitrixICA ClientEngineConfigurationAdvancedModulesTCP/IPOutbufLength
- If you have Receiver for Mac – App Property
- Controls if the EDT parameters in the ICA files can be read. Defaults to NO
- To enable, open Terminal and run:
- defaults write com.citrix.receiver.nomas UDPStackParameters -bool YES
- If you have Receiver for iOS – User Toggle
- Configure: Settings | Advanced | Adaptive Transport Settings | Read EDT stack parameter