ldap 放弃请求的 ACK 数据包延迟

ldap 放弃请求的 ACK 数据包延迟

我们已经从 Linux 上的 openldap 服务器迁移到 Windows 2008 上的 DirX。ldap 服务器和正常搜索请求的行为符合预期。但是,某些应用程序(weblogic 部署的 web 应用程序)遇到了性能问题。

我们跟踪了网络活动,发现当客户端发送“放弃”操作时,ldap 服务器会发送 ACK,其 RTT 约为 0.1 - 0.2 秒。

我们不是 100% 确定,但我们认为这就是性能下降的原因。我们观察到的交互有 270 次放弃,其中 179 个 ACK​​S 的 RTT 大于 0.2 秒。

我对 TCP 不太熟悉,因此有以下疑问:

  1. 为响应数据包的接收而发送的 ACK 与接收方处理所发送数据所需的时间无关。这发生在 TCP 级别,甚至在接收方收到传入的有效负载(在我们的例子中是放弃)之前。对吗?
  2. 所有其他交互都表明 searchrequest/searchresponse 在有效载荷数据包中具有确认。这是“延迟确认”?它们仅需要大约 0.01 秒,其中包括有效载荷和可能计算。那么为什么要为放弃发送单独的 ACK?或者提出这样的问题:何时发送单独的确认,而不是组合确认+数据?

    657 9.2943  ldapserver  ldapclient  LDAP    170 searchResDone(57)                                                          
    658 9.2948  ldapclient  ldapserver  TCP 66  18367 > 389 [ACK] Seq=10007 Ack=19799 Len=0  
    659 9.2954  ldapclient  ldapserver  LDAP    1009    searchRequest(134)                                         
    660 9.2972  ldapserver  ldapclient  LDAP    630 searchResEntry(134)                                        
    661 9.2973  ldapserver  ldapclient  LDAP    172 searchResDone(134)                                             
                                                            Sequence number:45106, len=106
    662 9.2978  ldapclient  ldapserver  LDAP    76  abandonRequest(134)                                                            
                                                            Sequence number: 46818, len=10
    
    
    663 9.3378  ldapclient  ldapserver  TCP 66  18368 > 389 [ACK] Seq=46828 Ack=45212 Len=0            
                                                            (The RTT to ACK the segment was: 0.040492000 seconds)
    664 9.5062  ldapserver  ldapclient  TCP 66  389 > 18368 [ACK] Seq=45212 Ack=46828 Len=0            
                                                            (The RTT to ACK the segment was: 0.208397000 seconds)
    
    665 9.5068  ldapclient  ldapserver  LDAP    183 searchRequest(136)                                          
    666 9.5229  ldapserver  ldapclient  LDAP    163 searchResEntry(136)                                             
    667 9.5229  ldapserver  ldapclient  LDAP    170 searchResDone(136)                                      
    

谢谢,

迈克尔

相关内容