Windows 7或Vista TCP行为更改

| 分辨率,各种 出现此问题的客户端计算机已安装趋势科技安全管理。此安全套件将服务或驱动程序放在系统中每个网络适配器的顶部。这个旧版应用程序再次开始工作后,我就再也不用去调试了。 更新1 我在Win7上禁用了TCP窗口比例自动调整功能。 在Windows 7上,如果我拔下直接连接到服务器的以太网电缆,则断开连接会在大约5秒钟后发生,但客户端进程会崩溃。服务器上的netstat报告到客户端的两个TCP连接不再有效,因为客户端进程没有正常关闭并关闭连接。 在物理断开连接后将服务器置于这种奇怪的状态之后,如果我重新启动客户端进程,则它在连接到服务器时会挂起(正如原始内容中所述) 如果我在XP端执行物理断开连接,则断开连接的发生速度比Win7上的断开连接快。在XP上,某种保持生命值或行为是不同的。在SSH(通过Putty)连接时,在XP上SSH连接的断开速度比Win7更快。 原版的 我有一个旧式TCP客户端/服务器应用程序,该客户端应用程序似乎仅在客户端是Windows 7机器时才会损坏服务器。 该服务器是运行2.6.11的OpenEmbedded Linux。 Windows 7客户端进行了一段时间的连接,最终进入一两秒后客户端断开连接的状态。 服务器处于此状态后,如果我立即连接Windows XP客户端,则XP客户端将无法连接。 我似乎无法通过仅与XP客户端连接来使服务器进入越野车状态。 我想知道从Vista或Windows 7开始对TCP / IP堆栈进行了哪些更改,以便更好地调试旧代码。 我还想知道我可以在Linux服务器上运行哪些命令,这些命令可能会更好地帮助我了解连接失败的原因。     
已邀请:
        也许您能做的最好的事情就是在Linux下启动
tcpdump
或analyze1ѭ并分析Windows XP和Windows 7发送的TCP SYN。Wireshark允许您逐位分解发送的TCP选项...例如,这是从建立TCP连接的debian lenny框中看到的内容:
Transmission Control Protocol, Src Port: 58456 (58456), Dst Port: 23 (23), Seq: 0, Len: 0
    Source port: 58456 (58456)
    Destination port: 23 (23)
    Sequence number: 0    (relative sequence number)
    Header length: 40 bytes
    Flags: 0x02 (SYN)
        0... .... = Congestion Window Reduced (CWR): Not set
        .0.. .... = ECN-Echo: Not set
        ..0. .... = Urgent: Not set
        ...0 .... = Acknowledgment: Not set
        .... 0... = Push: Not set
        .... .0.. = Reset: Not set
        .... ..1. = Syn: Set
        .... ...0 = Fin: Not set
    Window size: 5840
    Checksum: 0x8b77 [correct]
        [Good Checksum: True]
        [Bad Checksum: False]
    Options: (20 bytes)
        Maximum segment size: 1460 bytes
        SACK permitted
        Timestamps: TSval 136991740, TSecr 0
        NOP
        Window scale: 6 (multiply by 64)
我怀疑您会在RFC 1323窗口缩放中看到差异,但是我没有方便的XP机器来验证这一点。 我在这个答案中给出了如何在Linux下使用
tcptrace
分析TCP连接的详细响应... 如何衡量服务器代码的性能和TCP RTT?     
        我也怀疑有Window Scaling问题。我暂时无法找到链接,但是当Vista首次发布时,有人抱怨说某些路由器正在发生故障(贝尔金斯,如果我还记得的话)。他们将其归因于Vista(以及Windows 7)默认更改的一种窗口大小问题。路由器将被挂断,需要每隔几分钟重置一次。 您可以发出一些命令来关闭窗口缩放,以查看问题是否消失。 从这里:
netsh interface tcp set global autotuninglevel=disabled
编辑: 尝试在Windows 7上禁用IPv6。链接有关操作方法。使用IPv4,它的作用应与Windows XP相同。在两个系统上加载wireshark并比较差异     

要回复问题请先登录注册