Results 1 to 11 of 11
  1. #1
    Join Date
    Sep 2003
    Posts
    54

    Unanswered: How can I tell what protocols are enabled for the client?

    If TCP/IP is the only protocol enabled on the General tab of the Client Network Utility, does it mean that other protocols are disabled and will not be used in communicating to SQL Servers on other machines?

    In this case, should the registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\ Client\SuperSocketNetLib only contain the Tcp entry?

    If I have alias setup to use other protocol such as Named Pipes, does it mean that the alias cannot be connected since Named Pipes is not enabled?

    Thank you for any help.

  2. #2
    Join Date
    Apr 2004
    Location
    Kansas City, MO
    Posts
    734
    1. Yes, it does mean the other protocols are disabled.

    2. They will still show up as keys; however, the following key will have a value called ProtocolList which will only show tcp for a value.

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\ MSSQLServer\SuperSocketNetLib

    3. Yes
    MeanOldDBA
    derrickleggett@hotmail.com
    When life gives you a lemon, fire the DBA.

  3. #3
    Join Date
    Sep 2003
    Posts
    54
    Hi derrickleggett,

    Thank you for the reply.

    I want to make sure that my understanding is correct.

    Client machine (testclient):
    If on the Client Network Utility, only tcp/ip is enabled and an alias (test-namedpipes) for server machine testserver is setup using Named Pipes.

    Server machine (testserver):
    If on the Server Network Utility, only named pipes is enabled.

    For this case, I should not able to register testserver (tcp/ip) on the testclient's EM since TCP/IP is not enabled on testserver. I should not able to register test-namedpipes (named pipes) on the testclient's EM since Named Pipes is not enabled on testclient. In other words, if there is no matching pair between testclient's enabled protocols of the Client Network Utility and testserver's enabled protocols of the Server Network Utility, I should not able to establish a communication between testclient and testserver.

    Thank you.

  4. #4
    Join Date
    Apr 2004
    Location
    Kansas City, MO
    Posts
    734
    That's correct. Now, I'm curious why you are asking though.
    MeanOldDBA
    derrickleggett@hotmail.com
    When life gives you a lemon, fire the DBA.

  5. #5
    Join Date
    Sep 2003
    Posts
    54
    Hi derrickleggett,

    I ask because I'm trying to understand about client and server communication and how the Client Network Utility and Server Network Utility work.

    My understand of the Client Network Utility is to control how a client machine applications communicates with its own SQL Servers and SQL Servers in other machines. The settings in the Client Network Utility are stored in the registry

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\ Client

    My understand of the Server Network Utility is to control how the SQL Servers on a machine communicates with local application and applications in client machines. The settings in the Server Network Utility for a default instance are stored in the registry

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\ MSSQLServer\SuperSocketNetLib

    If my understanding is correct, the settings in the Server Network Utility of the client machine should not have any effect in the scenario of my last post.

    I have setup the client and server machines to test the scenario. I can register the alias test-namedpipes in the client machine and I can see that the communication is established using port 139 of the testserver from Port Reporter and TCPView.

    If based on the result of my testing, the network library setup for an alias actually is enabled regardless of what protocols are enabled in the General tab of the Client Network Utility. So, this seems to be different from your understanding. I hope you can confirm whether my result is correct or your understanding is correct.

    Thank you for your help.

  6. #6
    Join Date
    Feb 2004
    Location
    In front of the computer
    Posts
    15,579
    Provided Answers: 54
    Named pipes is a network level protocol, that can run on almost any communications protocol (TCP/IP, IPX, even Token Ring). TCP/IP port 139 (both TCP and UDP) are for NetBios. I don't think you've discovered anything too surprising.

    -PatP

  7. #7
    Join Date
    Sep 2003
    Posts
    54
    Hi Pat,

    If port 139 is used to establish the communication, I believe it means Named Pipes protocol is used.

    If this is true, am I right that the network library setup for an alias actually is enabled regardless of what protocols are enabled in the General tab of the Client Network Utility?


    Thank you.

  8. #8
    Join Date
    Feb 2004
    Location
    In front of the computer
    Posts
    15,579
    Provided Answers: 54
    If you bind a protocol to an alias, then that protocol (and in most circumstances only that protocol) will be used for that alias. It doesn't matter if the protocol is enabled for search resolution or not.

    There are historical reasons for this behavior, and it is required for C2 certification (to enforce TDS encryption) that have little to do with technical requirements.

    -PatP

  9. #9
    Join Date
    Sep 2003
    Posts
    54
    Hi Pat,

    If I understand your reply correctly, you're saying yes to my question:

    If this is true, am I right that the network library setup for an alias actually is enabled regardless of what protocols are enabled in the General tab of the Client Network Utility?

    I also assume that port 139 used = Named Pipes used.


    Thank you for your help.

  10. #10
    Join Date
    Feb 2004
    Location
    In front of the computer
    Posts
    15,579
    Provided Answers: 54
    Not exactly... If an alias is defined, then the protocol bound to that alias is usually used to access that alias. That is not the same thing as saying that the protocol is enabled, because then the protocol could be used for any server search, and if found could be used to carry the session.

    Use of UDP 139 and/or TCP 139 means that NetBIOS is being used. NetBIOS is the preferred medium for Named Pipes, but not the only one by any means.

    Unfortunately, the networking side of SQL Server is very complex because so many different protocols are supported, some of them in more than one way. In order to really understand these issues, you need to completely understand NT Networking, and then tackle the extra complexity that SQL Server brings to the party. This is no small task!

    -PatP

  11. #11
    Join Date
    Sep 2003
    Posts
    54
    Hi Pat,

    I believe I almost understand this alias area now. The only question I have regarding alias is that you state: the protocol bound to that alias is usually used to access that alias. I don't quite get what you mean by "usually".

    I agree with you that the networking area is quite complicated to understand.

    I'm confused about port 139 and port 445. I have created an alias test-namedpipes on a client machine. I have enabled Windows Firewall of Windows XP SP2 RC2 (SQL Server machine). If I only add port 139 to the exception list of the Windows Firewall, I can register test-namedpipes on the client machine. If I only add port 445 to the exception list of the Windows Firewall, I CANNOT register test-namedpipes on the client machine. Do you know why opening port 445 won't work but opening 139 will work?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •