TDS预登录数据包的版本为0 [英] TDS pre-login packet has version 0

查看:221
本文介绍了TDS预登录数据包的版本为0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我遇到的问题是JDBC连接从客户端(Windows Server 2012)到服务器(Windows Server上托管的MSSQL Server 2012 SP2)的超时:

The problem I'm encountering is JDBC connectivity time out from client (Windows Server 2012) to server (MSSQL Server 2012 SP2 hosted on Windows Server):





"连接超时已过期。  尝试
消耗登录前握手确认时经过的超时时间。  这可能是因为登录前握手失败或服务器无法及时回复。  尝试连接此服务器时花费的时间是 - [Pre-Login] initialization = 273;
握手= 29736;  (Microsoft SQL Server,错误:-2)"








我们分析了数据包跟踪,之后在TCP握手中,客户端向服务器发送TDS预登录数据包,但是表示版本的字节都设置为0。 服务器没有响应,因此客户端重新发送,最终客户端
向服务器发送TCP重置。 

We analyzed a packet trace, and after the TCP handshake, the client sends a TDS pre-login packet to the server, but with the bytes representing the version all set to 0.  The server doesn't respond, so the client re-transmits and eventually the client sends a TCP reset to the server. 





我怀疑版本0导致服务器没有响应,虽然协议表明服务器必须以某种方式响应...  (详见"3.3.5.1初始状态" - 我无法发布链接。)

I suspect having version 0 leads to the server not responding, though the protocol indicates the server MUST respond in some way...  (Detailed in "3.3.5.1 Initial State" - I cannot post links.)





其他详细信息:



  • 端口1433在客户端和服务器上都已打开。
  • 没有网络或软件过滤从客户端到服务器的流量。
  • 连接到server 使用相同的连接字符串从不同域上的其他计算机成功。
  • 从数据链路层的客户端到服务器的连接成功(使用数据链接编辑器测试)。
  • 在客户端和服务器上都启用了IPv4和IPv6的TCP / IP。
  • 在两台服务器上都启用了TLS。
  • 我们使用Squirrel SQL尝试了3种不同的JDBC驱动程序&安培; MSSQL Server Management Studio。 所有都提供相同的错误。 驱动程序引用正确的DLL。
  • 从客户端到服务器的Tracert成功完成。
  • 我们已尝试修改连接字符串以强制信任服务器认证,强制加密,增加  ;连接超时值等于几分钟等。
  • 在客户端上使用.NET 4.5,但.NET 4.5也用于可以成功连接到服务器的其他计算机上。
  • Port 1433 is open on both the client and server.
  • No network or software is filtering traffic from client to server.
  • Connectivity to the server is successful from other machines on different domains using the same connection string.
  • Connectivity is successful from client to server at the data link layer (tested using Data Link Editor).
  • TCP/IP is enabled for IPv4 and IPv6 on both the client and server.
  • TLS is enabled on both servers.
  • We have tried 3 different JDBC drivers using Squirrel SQL & MSSQL Server Management Studio.  All provide the same error.  The drivers refer to the correct DLLs.
  • Tracert from client to server completes successfully.
  • We have tried modifying the connection string to force trust of the server certification, force encryption, increase connection timeout value to several minutes, etc.
  • .NET 4.5 is used on the client, but .NET 4.5 is also used on other machines that can successfully connect to the server.



什么可能导致TDS预登录数据包的版本设置为0?

What could cause the TDS pre-login packet to have the version set to 0?

推荐答案

您好autotelic,

Hello autotelic,

感谢您发布您的问题。我们的工程师之一会回复。 

Thank you for posting your question. One of our engineers will respond. 

谢谢,


这篇关于TDS预登录数据包的版本为0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆