2009-11-12 43 views
0

SLES 10如何实现Tcp套接字与SLES 9之间有何重大变化?SLES 9与SLES 10

我有几个使用C#(.NET 3.5)编写的应用程序,它们运行在Windows XP和Windows Server 2003上。它们运行良好超过一年,使用套接字连接从SLES 9机器获取市场数据。

该机今天已经升级至SLES 10和其造成了一些奇怪的行为。套接字通常每秒返回几百或几千个字节。但偶尔,我停止接收数据。十秒或更长时间内没有数据,然后接收返回10k +字节。而且有些缓冲区正在导致数据丢失,因为我在套接字上收到的字节不再构成正确的数据包。

唯一改变是SLES 9到10升级。回滚立即修复此问题。有任何想法吗?

回答

0

为的/ proc/sys的内容默认/净设置可能已经改变。也许更新的SLES支持像tcp_ecn这样的东西?

如果您的网络丢弃一些它不喜欢SLES10数据包,那么它可能使新的TCP功能。否则我不知道。我会用tcpdump/wireshark来看它。也可以通过服务器进程来查看它在做什么系统调用。

SLES是发送者,因此它可能事情就可以改变了,使得它决定等待,直到它有数据或某事的整个窗口。但10K太多了。听起来更像是丢弃的数据包,然后在丢失的数据包最终到达时获得较大的回报,从而允许排队的数据也被返回。

1

被丢弃的数据包可以通过SMB内核升级到2.6.16.60-0.37或更高版本来解决。 BNX2内核模块是丢包的根本原因。这是开箱即用的SLES 10的一个已知问题。

参考:http://www.novell.com/support/search.do?cmd=displayKC&sliceId=SAL_Public&externalId=7002506

+0

的安东尼奥您好,感谢回答,即使这个问题是旧的。不幸的是,系统管理员说我们已经在更高版本的驱动程序中。所以我不认为就是这样。 – 2010-04-21 00:17:09