2017-01-02 62 views
0

了解SQL Server体系结构时,我对客户机\服务器组件之间的术语和关系感到困惑。我希望回答几个有关问题将有助于我更好地理解事情:SQL Server驱动程序和SQL Server网络接口之间的关系

  1. 如前所述here,ADO.NET Server驱动程序是TDS协议的C#实现。如解释here,使用SqlConnection表示使用ADO.NET。那么,服务器网络接口(SNI)在哪里起作用?继续SqlConnection示例:拨打new SqlConnection时是否建立了SNI?
  2. This就是维基百科有关谈谈OLE DB到ODBC:

OLE DB提供程序是类似于ODBC驱动程序,JDBC驱动程序和 ADO.NET数据提供商。

而且also

的OLE DB-ODBC桥由它使用ODBC驱动程序的 服务连接到目标数据库的OLE DB提供程序。此提供程序将OLE DB方法调用转换为ODBC函数调用。

我不知道为什么这些被认为是“类似的”,但无论如何:提供商和/或驱动程序在建立SNI和传输TDS数据包方面的作用是什么?

  1. 让我们以SSMS为例:连接到SQL Server时使用什么驱动程序/提供程序?建立连接时是否存在传输的TDS数据包?

回答

0

这是我的SNI的理解:

  1. 的SNI取代了SQL Server 2000和Microsoft数据访问组件(MDAC),这是包含在Windows中发现的网络库。
  2. SNI将TDS包封装在标准通信协议(如TCP \ IP或命名管道)内。
  3. 在客户端,SNI是使用SQL Native CLient实现的。但是,Microsoft现在建议使用诸如ODBC驱动程序等替代SQL Native Client的替代方案,因为SQL Native Client的支持将在2012年以后停止供SQL Server版本使用。
  4. OLEDB驱动程序和ADO驱动程序是遗留的,将要停用。因此,从客户端,当与服务器建立连接时,SNI协议层(SQL Server体系结构内的协议层)将确保TDS数据包封装在网络数据包中。
  5. SQL Server根据使用的协议侦听TSQL端点上的TDS数据包。 SNI协议层的服务器端实现是将网络数据包解封装回TDS数据包的位置。
  6. 此外,数据库引擎中还有网络库,它们将从TDS数据包中检索查询。
  7. 在客户端,SNI由驱动程序实现并由服务器上的SNI协议层实现。
相关问题