2017-01-02 5 views
0

Изучая архитектуру SQL Server, я запутался в терминологии и отношениях между клиентскими \ серверными компонентами. Я надеюсь, что ответы на несколько вопросов, связанных помогло бы мне понять вещи лучше:Связь между драйверами SQL Server и сетевым интерфейсом SQL Server

  1. Как указано here, драйвер ADO.NET сервера является C# реализация протокола TDS. Как объяснено here, использование SqlConnection означает использование ADO.NET. Где же вступает в действие сетевой интерфейс сервера (SNI)? Продолжение примера SqlConnection: установлено ли SNI при вызове new SqlConnection?
  2. This что Википедия должна сказать о OLE DB по отношению к ODBC:

провайдеры OLE DB аналогичны драйверов ODBC, JDBC драйверов и поставщиков данных ADO.NET.

И also:

OLE DB-ODBC мост состоит из поставщика OLE DB, который использует услуги драйвер ODBC для подключения к целевой базе данных. Этот провайдер переводит вызовы метода OLE DB в вызовы функций ODBC.

Я не уверен, почему они считаются «аналогичными», но в любом случае: Какова роль провайдера и/или драйвера при создании SNI и передаче пакета TDS?

  1. Давайте рассмотрим SSMS как еще один пример: какой драйвер/провайдер он использует при подключении к SQL Server? Существует ли трансляция TDS-пакета при установлении соединения?

ответ

0

Это мое понимание SNI:

  1. SNI заменяет сетевые библиотеки, найденные в SQL Server 2000 и Microsoft Data Access компонентов (MDAC), которые включены в Windows.
  2. SNI инкапсулирует пакет TDS в стандартный протокол связи, такой как TCP \ IP или именованные каналы.
  3. С клиентской стороны SNI реализуется с использованием собственного SQL-клиента. Тем не менее, Microsoft теперь рекомендует использовать альтернативы, такие как драйверы ODBC, вместо SQL Native Client, поскольку поддержка для собственного клиента SQL будет прекращена для версий SQL Server позднее 2012 года.
  4. Драйвер OLEDB и драйвер ADO являются устаревшими и будут прекращены.
  5. Таким образом, с клиентской стороны, когда соединение устанавливается с сервером, уровень протокола SNI (уровень протокола в архитектуре SQL Server) гарантирует, что пакеты TDS будут инкапсулированы в сетевые пакеты.
  6. SQL Server прослушивает пакеты TDS на конечных точках TSQL в зависимости от используемых протоколов. Реализация уровня протокола SNI на стороне сервера - это то, где сетевые пакеты декапсулируются обратно в пакеты TDS.
  7. Кроме того, в базе данных есть сетевые библиотеки, которые собираются получить запросы от пакетов TDS.
  8. С клиентской стороны SNI реализуется драйверами и поддерживается уровнем протокола SNI на сервере.