我有一个问题,我的应用程序正在运行到运行Citrix IA客户端的Windows XP PC客户端。 我们正在使用citrix com端口redirect将客户端PC上的数据捕获设备的串行数据传输到服务器上运行的应用程序。
基于Wireshark捕获,我们看到从每台客户端计算机发送的每秒大约400个数据包(对于约28千字节/秒的带宽使用率),每个大约10-15个字节的数据和50个字节的TCP / IP的开销,这是饱和我们的广域网,造成拥塞问题。
我认为问题是思杰认为这个COM端口stream量交互式stream量,并尽可能尽快发送。 就服务器上的应用而言,这个COM端口数据实际上不是交互式stream量,如果com端口数据被缓冲,然后每100毫秒发送一次或者类似的东西会减less分组数据开销。
在这个问题上,我一直没能从思杰那里得到很多帮助。 大多数Citrix文档都侧重于优化从服务器到客户端的下行stream量,或通过优化来自客户端的上游“交互”stream量来优化客户端的响应能力。 不幸的是,在我的情况下,这是我的广域网以小克。
我能做些什么来防止这种堵塞? 我已经看到了一些有关为COM端口数据做虚拟通道带宽上限的参考资料,但是我想知道它是如何工作的,即使是Citrix,我也找不到任何有关它的详细信息。 它会caching在客户端接收到的COM端口数据,只发送给虚拟通道带宽上限允许的较慢速率的服务器?
任何其他想法或build议如何解决这一点,也将不胜感激。
不幸的是,通过Citrix / RDP /等等的通讯都遭受同样的问题。 应用程序的行为与com端口很好。 如果应用程序试图每秒钟从comport读取1个字节10000次,那么最终会有10000个请求在整个电线上传输1个字节…这导致了您所看到的情况。 没有重写你的应用程序,以更多的思杰/ RDP友好…你只能设置带宽消耗的硬性限制…但是这可能不会像你所希望的那样工作。