SQL Server 網絡協議和 TDS 端點

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)。您不能禁用,但可以停止和啓動默認端點。停止的端點仍在偵聽,但它拒絕並關閉新的連接。


clip_image001

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章