SQL Server 网络协议和 TDS 端点


SQL Server 网络协议


SQL Server支持四种协议,Shared Memory;TCP/IP;Named Pipes和Virtual Interface Adapter(VIA)。打开SQL Server配置管理器之后,会显示一个配置SQL Server服务,SQL Server网络协议和SQL Native Client协议的节点。可以通过展开SQL Server网络配置节点进行服务器协议的配置。


Shared Memory:Shared Meory协议只能由本地连接使用,因为它是一个用于服务器内部通信的由进程共享内存的空间。在SQL Server上本地运行的应用程序或任务可以利用Shared Memroy协议。


Named Pipes:Named Pipes协议使用进程间通信信信道进行高效的服务器内部通信和局域网通信,但由于通过网络或防火墙连接时Named Pipes需要过多的开销,而且它还要求打开额外的端口445,所以一般来说最好禁用Named Pipes。然而有许多应用程序需要用到Named Pipes协议,因为他们是围绕NetbBIOS或给予LAN的协议设计的。Named Pipes可以轻松访问单个安全域中的远程过程调用,因而对这些应用程序很有帮助。如果您需要支持这些应用程序,而SQL Server并没有暴露给外部通信量,那么启用Named Pipes协议和相应的端点的风险是最小的。


TCP/IP:TCP/IP是大部分SQL安装时的主要也是首选的协议。


Virtual Interface Adapter:该协议与支持的硬件和网络配置一起使用。虚拟接口体系由Compaq,也就是现在的惠普,Intel和Microsoft联合开发,被设计成一个可减少创痛网络协议的开两开销的高性能协议,该协议在用户模式上下文而非内核模式上下文下运行。VIA网络客户机与系统区域网络连接。


SQL Native Client 配置


SQL Native Client支持同样的四种服务器端协议,除了配置客户端协议之外,还可以设置协议的绑定顺序。可以使用SQL Native Client配置节点创建别名。通过制定一个别名,不用改变服务器名称就可以把客户端的请求定向到该服务器。别名也可以用来取代复杂的命名实例名称。


SQL Server 端点


SQL Server将连接对象作为端点,允许侦听不同的端口,为不同的服务使用不同的传输协议。SQL Server提供了四种不同类型的端点:TSQL(默认和TCP);数据库镜像;SOAP;Service Broker。


默认TSQL端点:在安装过程中会创建5个TSQL端点:TSQL默认TCP,TSQL默认VIA,TSQL Named Pipes,TSQL本地计算机,Dedicated Administrator Connection(DAC,专用管理员连接)。TSQL端点为四个支持的协议提供链接服务,第五个用来支持DAC的端点侦听一个专用TCP端口,该端口在启动时被配置为支持一个管理连接。配置的端口记录在当前SQL Server日志文件中。


TSQL默认TCP端点创建于SQL Server实例的安装过程中,并被自动配置为替默认实例侦听端口1433.每次启动命名实例时,命名实例TSQL默认TCP端点都会被随机分配一个 TCP端口。不过,可以通过SQL Server配置管理器静态配置命名实例的端口号。配置一个静态端口能够简化客户端访问,减少对于美剧命名实例的SQL Server浏览器服务的依赖。


VIA协议用于支持VIA硬件设备,VIA协议取决于供应商的实现方案,所以如果不选择特定的硬件供应商,讨论VIA端点还是比较困难的

TSQL Named Pipes端点用于支持Named Pipes协议连接。

TSQL本地计算机端点允许使用Shared Memory协议进行连接。


引用自《SQL Server 2012 Internals》:

When an application communicates with the Database Engine, the application programming interfaces (APIs) exposed by the protocol layer formats the communication using a Microsoft-defned format called a tabular data stream (TDS) packet. The SQL Server Network Interface (SNI) protocol layer on both the server and client computers encapsulates the TDS packet inside a standard communication protocol, such as TCP/IP or Named Pipes. On the server side of the communication, the network libraries are part of the Database Engine. On the client side, the network libraries are part of the SQL Native Client. The confguration of the client and the instance of SQL Server determine which protocol is used.


当 SQL Server 数据库引擎 与应用程序通信时,它将使用称为“表格格式数据流”(TDS) 数据包的 Microsoft 通信格式来格式化通信数据。网络 SQL Server 网络接口 (SNI) 协议层替代了 SQL Server 2000 和 Microsoft 数据访问组件 (MDAC) 的 Net-Library,它将 TDS 数据包封装在标准通信协议(例如,TCP/IP 或 Named Pipes)内。SNI 协议层是数据库引擎和 SQL Server Native Client 共有的。SNI 协议层不是直接配置的。相反,服务器和 SQL Server Native Client 被配置为使用网络协议。然后,数据库引擎和 SQL Server Native Client 自动使用适当的协议设置。服务器为每个网络协议创建一个称为“TDS 端点”的 SQL Server 对象。在服务器中,TDS 端点是在 SQL Server 安装过程中由 SQL Server 安装的。


在客户端计算机上,必须安装 SQL Server Native Client 并将其配置为使用服务器上所启用的网络协议。


安装后启用服务器协议


基本操作系统网络协议(如 TCP/IP)应已安装在客户端和服务器上。网络协议通常在 Windows 安装过程中安装;它们不是 SQL Server 安装的一部分。如果所需的网络协议不可用或未在服务器中配置,则数据库引擎将无法启动。如果所需的网络协议不可用或未在客户端上配置,则网络库将不起作用。


在安装过程中通常不会为 SQL Server 启用与其他计算机上的 SQL Server 通信所需的网络协议。因此,若要从客户端计算机进行连接,可能需要启用 TCP/IP、Named Pipes 或 VIA 协议。(默认情况下,所有安装都启用 shared memory 协议,但只用于从同一计算机上客户端应用程序连接到数据库引擎。)


要启用网络协议,请使用 SQL Server 配置管理器。或者,可以通过在命令提示符下使用选项来在安装过程中启用协议。


安装和配置了网络连接后,SQL Server 可以同时侦听任何服务器网络协议的组合。


引用自《SQL Server 2012 Internals》:

tabular Data Stream endpoints

SQL Server 2012 also allows you to create a TDS endpoint, so that SQL Server listens on an ad-

ditional TCP port. During setup, SQL Server automatically creates an endpoint for each of the

three protocols supported by SQL Server, and if the protocol is enabled, all users have access to

it. For disabled protocols, the endpoint still exists but can’t be used. An additional endpoint is

created for the DAC, which only members of the sysadmin fxed server role can use.


定义的 TDS 端点


TDS 端点是表示 SQL Server 与客户端之间通信点的 SQL Server 对象。SQL Server 自动为 SQL Server 支持的四个协议分别创建一个端点。默认情况下,启用协议后所有用户都可以访问它们。如果没有启用网络协议,则端点仍然存在但不可用。附加端点为仅 sysadmin 固定服务器角色的成员可以使用的专用管理员连接 (DAC) 创建。


SQL Server 为每一个 TDS 端点生成唯一名称。下表显示了自动创建的端点。


用途

端点名称

Shared Memory

TSQL LocalMachine

Named Pipes

TSQL Named Pipes

TCP/IP

TSQL Default TCP

VIA

TSQL Default VIA

DAC

Dedicated Admin Connection

HTTP

HyperText Transport Protocol



对于 Named Pipes 和 Shared Memory 协议,每个实例只能有一个端点。对于这些协议类型没有可配置的端点。对于 TCP/IP 和 VIA,有默认端点,但可以创建附加端点。HTTP 端点也是用户创建的,它们不会显示在 SQL Server 配置管理器中。


重要提示:不推荐使用 VIA 协议。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。


只可以在系统端点上更改所有者和状态(使用 ALTER ENDPOINT)。您不能禁用,但可以停止和启动默认端点。停止的端点仍在侦听,但它拒绝并关闭新的连接。


SQL Server 网络协议和 TDS 端点_第1张图片

https://msdn.microsoft.com/zh-cn/library/ms191220.aspx