Performance degrades when enabling Citrix (Branch) Repeater Traffic Acceleration
December 11, 2012
An interesting problem where a customer has a PoC environment to see if Citrix Repeaters would add value to the Citrix XenApp/XenDesktop implementation over a WAN connection with the help of a Citrix Repeaters 8540 on each end.
Whenever the Traffic Acceleration mode was enabled performance of the XenApp/XenDesktop connection was worse then having Traffic Acceleration disabled. Movies would play frame by frame, it would take ages to move a AutoCAD object from A to B within a drawing.
The ‘receiving’ Citrix Repeater’s Log mentioned Fragmented IP Packets are being received.
What a Citrix (Branch) Repeater does is add a TCP Option so that the Citrix Repeater partner unit knows this packet is optimized and it has to process this particular packet. It seems that adding the “Optimized Header” TCP Option is making the MTU size too big for the receiving Citrix (Branch) Repeater and needs to fragment the packets before processing them. This is probably the root cause of the performance degradation. The MTU Size is a combination of payload (the actual Data) and IP-headers (usually 20 bytes for an IPv4 header and 20 bytes for a TCP header).
A way to verify if the packet is being fragmented is by using the Ping utility, within ping you can force the packet to not fragment (-f) and define a packet size (-l). Let’s see what happens when sending a default MTU size of 1500 over the WAN connection. You can ping any node on the other end of the WAN, just make sure the ping crosses both the Citrix (Branch) Repeaters.
Here you see that a packet size of 1500 did not get across without fragmentation but a packet size of 1400 did, so somewhere in the middle is your magic number.
Since the MTU size is too big when it leaves the sending Citrix Repeater, make sure both Citrix (Branch) Repeater(s) use a lower value for the actual payload data (also known as Maximum Segment Size). Within the console go to Configuration => Tuning, adjust the “TCP Maximum Segment Size (MSS)” to a lower value (for instance 1340, default=1380) until the message about IP fragmenting is gone in the receiving Citrix Repeater. If you set this value too low it could result in more packets which in turn leads to more overhead traffic which could lead to a different type of performance degradation.
Some good information on Maximum Segment Size (MSS):