Este artigo apresenta vários exemplos de um rastreamento de rede que captura vários handshakes e sequências de autenticação durante o processo de estabelecimento da conexão TCP (Transmission Control Protocol) entre um aplicativo cliente e o Mecanismo de Banco de Dados do SQL Server (o servidor).
Este artigo também descreve conexões MARS (Conjuntos de Resultados Múltiplos Ativos). O MARS é um recurso do SQL Server, introduzido com o SQL Server 2005 (9.x), que permite que vários comandos sejam executados em uma conexão sem a necessidade de limpar os resultados do primeiro comando, antes de executar o segundo comando. O MARS é obtido por meio de multiplexação de sessão (SMUX).
Esse processo descreve um processo de login normal usando autenticação SQL, mostrando cada etapa da conversa entre o cliente e o servidor por meio de uma análise detalhada de rastreamento de rede. O exemplo de rastreamento de rede delineia as seguintes etapas:
- Handshake de três vias TCP
- Aperto de mão do motorista
- Handshake SSL/TLS
- Troca de pacotes de login
- Confirmação de login
- Execute um comando e leia a resposta
- Handshake de fechamento de quatro vias TCP
Exemplo de rastreamento de rede
Essa troca é alocada por 1 segundo, independentemente da Login Timeout
configuração na cadeia de conexão.
- O endereço IP do cliente é
10.10.10.10
- O endereço IP do servidor é
10.10.10.120
Etapa 1. Handshake de três vias TCP
Todas as conversas TCP começam com um SYN
pacote (S
conjunto de sinalizadores) enviado do cliente para o servidor. No Frame 6127
, o cliente usa uma porta efêmera (atribuída dinamicamente pelo sistema operacional) e se conecta à porta do servidor, neste caso a porta 1433
. O servidor responde com seu próprio SYN
pacote com o ACK
sinalizador também definido. Finalmente, o cliente responde com um ACK
pacote para que o servidor saiba que recebeu seu SYN
pacote.
Esta etapa estabelece uma conexão TCP básica, da mesma forma que um telnet
comando faria. O sistema operacional medeia essa parte da conversa. Neste ponto, o cliente e o servidor não sabem nada um sobre o outro.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6127 116.5776698 10.10.10.10 10.10.10.120 TCP:Flags=......S., SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702293, Ack=0, Win=8192 ( Ne
6128 116.5776698 10.10.10.120 10.10.10.10 TCP:Flags=...A..S., SrcPort=1433, DstPort=60123, PayloadLen=0, Seq=4095166896, Ack=4050702294, Win=
6129 116.5786458 10.10.10.10 10.10.10.120 TCP:Flags=...A...., SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702294, Ack=4095166897, Win=
Nesta etapa, os avisos são benignos e são um indicador de que o [Bad CheckSum]
descarregamento da soma de verificação está habilitado. Ou seja, eles são adicionados em um nível inferior na pilha de rede do que o rastreamento é feito. Na ausência de outras informações, esse aviso indica se o rastreamento de rede foi feito no cliente ou no servidor. Nesse caso, ele aparece no pacote inicial SYN
, portanto, o rastreamento foi feito no cliente.
Etapa 2. Aperto de mão do motorista
Tanto o driver cliente quanto o SQL Server precisam saber um pouco um sobre o outro. Nesse handshake, o driver envia algumas informações e requisitos para o servidor. Essas informações incluem se os pacotes de dados devem ser criptografados, se devem ser usados MARS (Vários Conjuntos de Resultados Ativos), seu número de versão, se devem ser usados a autenticação federada, o GUID da conexão e assim por diante.
O servidor responde com suas informações, como se requer autenticação. Essa sequência acontece antes que qualquer tipo de negociação de segurança seja executada.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6130 116.5786458 10.10.10.10 10.10.10.120 TDS:Prelogin, Version = 7.1 (0x71000001), SPID = 0, PacketID = 0, Flags=...AP..., SrcPort=60123, Ds
6131 116.5805998 10.10.10.120 10.10.10.10 TDS:Response, Version = 7.1 (0x71000001), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=1433, Dst
Etapa 3. Handshake SSL/TLS
O handshake SSL/TLS começa com o pacote Client Hello e, em seguida, o pacote Server Hello, além de alguns pacotes extras relacionados ao Secure Channel. Esta etapa é onde a chave de segurança é negociada para criptografar pacotes. Normalmente, apenas o pacote de login é criptografado, mas o cliente ou o servidor também pode exigir que os pacotes de dados sejam criptografados. A escolha da versão do TLS acontece neste estágio do login. O cliente ou servidor pode fechar a conexão neste estágio se as versões do TLS não se alinharem ou não tiverem nenhum conjunto de criptografia em comum.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6132 116.5835288 10.10.10.10 10.10.10.120 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:328, SSLVersionSelector:327, TDS:326, TCP:325, IP
6133 116.5845058 10.10.10.120 10.10.10.10 TLS:TLS Rec Layer-1 HandShake: Server Hello. Certificate. Server Hello Done. {TLS:328, SSLVersionSe
6134 116.5864588 10.10.10.10 10.10.10.120 TLS:TLS Rec Layer-1 HandShake: Client Key Exchange.; TLS Rec Layer-2 Cipher Change Spec; TLS Rec La
6135 116.5923178 10.10.10.120 10.10.10.10 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handshake Message. {TL
Etapa 4. Pacote de login
Esse pacote é criptografado e pode ser exibido como SSL Application Data
ou TDS:Data
, dependendo do analisador de rede. Se todos os pacotes após esta etapa também forem exibidos como SSL Application Data
, a conexão será criptografada.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6136 116.5932948 10.10.10.10 10.10.10.120 TLS:TLS Rec Layer-1 SSL Application Data {TLS:328, SSLVersionSelector:327, TDS:326, TCP:325, IPv4:3
Etapa 5. Confirmação de login
Caso contrário, você verá um pacote de resposta, que confirma o login (tem o token de login ACK
) ou retorna uma mensagem de Login Failed
erro ao cliente.
Aqui está um exemplo do que você pode ver nos dados hexadecimais do pacote para um login bem-sucedido:
.C.h.a.n.g.e.d. .d.a.t.a.b.a.s.e. .c.o.n.t.e.x.t. .t.o. .'.A.d.v.e.n.t.u.r.e.W.o.r.ks'
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6137 116.5962248 10.10.10.120 10.10.10.10 TDS:Response, Version = 7.1 (0x71000001), SPID = 96, PacketID = 1, Flags=...AP..., SrcPort=1433, Ds
Etapa 6. Execute um comando e leia a resposta
Os comandos são enviados como um TDS:SQLBatch
ou um TDS:RPCRequest
pacote. O primeiro executa instruções Transact-SQL simples e o último executa procedimentos armazenados. Você poderá ver pacotes de continuação TCP se o comando for longo ou no pacote de resposta se mais do que algumas linhas forem retornadas.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6138 116.5991538 10.10.10.10 10.10.10.120 TDS:SQLBatch, Version = 7.1 (0x71000001), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=60123, Ds
6139 116.5991538 10.10.10.120 10.10.10.10 TDS:Response, Version = 7.1 (0x71000001), SPID = 96, PacketID = 1, Flags=...AP..., SrcPort=1433, Ds
6266 116.8032558 10.10.10.10 10.10.10.120 TCP:Flags=...A...., SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702956, Ack=4095168204, Win=
Etapa 7. Handshake de fechamento de quatro vias TCP
Os drivers da Microsoft usam o handshake de quatro vias para fechar as conexões. Muitos drivers de terceiros apenas redefinem a conexão para fechá-la, tornando mais difícil distinguir entre um fechamento normal e anormal.
O handshake de quatro vias consiste no envio de um FIN
pacote ao servidor pelo cliente, ao qual o servidor responde com um ACK
. O servidor então envia seu próprio FIN
pacote, que o cliente reconhece (ACK
).
Se o servidor enviar um FIN
pacote primeiro, será um fechamento anormal, mais comumente visto no handshake SSL/TLS se o cliente e o servidor não puderem negociar o canal seguro.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6362 116.9097008 10.10.10.10 10.10.10.120 TCP:Flags=...A...F, SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702956, Ack=4095168204, Win=
6363 116.9097008 10.10.10.120 10.10.10.10 TCP:Flags=...A...., SrcPort=1433, DstPort=60123, PayloadLen=0, Seq=4095168204, Ack=4050702957, Win=
6364 116.9097008 10.10.10.120 10.10.10.10 TCP:Flags=...A...F, SrcPort=1433, DstPort=60123, PayloadLen=0, Seq=4095168204, Ack=4050702957, Win=
6366 116.9106778 10.10.10.10 10.10.10.120 TCP:Flags=...A...., SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702957, Ack=4095168205, Win=
Esse processo descreve o processo de autenticação, comparando especificamente a sequência de autenticação SQL com a adição de um pacote SSPI. O exemplo de rastreamento de rede delineia as seguintes etapas:
- Handshake de três vias TCP
- Aperto de mão do motorista
- Handshake SSL/TLS
- Troca de pacotes de login
- Transmissão de pacotes SSPI
- Confirmação de login
- Handshake de fechamento de quatro vias TCP
Exemplo de rastreamento de rede
Essa sequência de login é semelhante à sequência de autenticação SQL. A adição do pacote SSPI é a grande diferença, mas é difícil dizer, a menos que você expanda suas propriedades. Ocasionalmente, você pode ver mais de um pacote SSPI.
Em seguida, o cliente responde com credenciais, que o servidor confirma com o controlador de domínio em sua extremidade.
Essa troca é alocada por 1 segundo, independentemente da Login Timeout
configuração na cadeia de conexão.
- O endereço IP do cliente é
10.10.10.10
- O endereço IP do servidor é
10.10.10.20
Etapa 1. Handshake de três vias TCP
Esta etapa é onde uma conexão é estabelecida entre o cliente e o servidor via TCP. Envolve SYN
, SYN-ACK
, e ACK
pacotes para sincronizar números de sequência e estabelecer comunicação.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
216 16.9554967 10.10.10.10 10.10.10.20 TCP:Flags=......S., SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243174743, Ack=0, Win=64240 ( N
217 16.9561482 10.10.10.20 10.10.10.10 TCP:Flags=...A..S., SrcPort=1433, DstPort=49299, PayloadLen=0, Seq=329197620, Ack=2243174744, Win=8
218 16.9562004 10.10.10.10 10.10.10.20 TCP:Flags=...A...., SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243174744, Ack=329197621, Win=8
Nesta etapa, os avisos são benignos e são um indicador de que o [Bad CheckSum]
descarregamento da soma de verificação está habilitado. Ou seja, eles são adicionados em um nível inferior na pilha de rede do que o rastreamento é feito. Na ausência de outras informações, esse aviso indica se o rastreamento de rede foi feito no cliente ou no servidor. Nesse caso, ele aparece no pacote inicial SYN
, portanto, o rastreamento foi feito no cliente.
Etapa 2. Aperto de mão do motorista
Esta etapa envolve a troca de pacotes TDS (Tabular Data Stream) entre o cliente e o servidor para estabelecer parâmetros de comunicação.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
219 16.9567950 10.10.10.10 10.10.10.20 TDS:Prelogin, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=49299, Ds
220 17.0035332 10.10.10.20 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=1433, Dst
Etapa 3. Handshake SSL/TLS
Aqui, o cliente e o servidor se envolvem em um handshake seguro para estabelecer uma conexão criptografada. Esse processo envolve vários pacotes, incluindo Client Hello, Server Hello, troca de certificados e especificações de alteração de criptografia.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
221 17.0041297 10.10.10.10 10.10.10.20 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:37, SSLVersionSelector:36, TDS:35, TCP:34, IPv4:3
222 17.0081618 10.10.10.20 10.10.10.10 TLS:TLS Rec Layer-1 HandShake: Server Hello. Certificate. Server Key Exchange. Server Hello Done. {
223 17.0102991 10.10.10.10 10.10.10.20 TLS:TLS Rec Layer-1 HandShake: Client Key Exchange.; TLS Rec Layer-2 Cipher Change Spec; TLS Rec La
224 17.0120222 10.10.10.20 10.10.10.10 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handshake Message. {TL
Etapa 4. Pacote de login
O cliente envia um pacote TDS contendo informações de login para o servidor.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
236 17.0264540 10.10.10.10 10.10.10.20 TDS:Data, Version = 7.4 (0x74000004), Reassembled Packet {TDS:35, TCP:34, IPv4:33}
237 17.0268945 10.10.10.20 10.10.10.10 TCP:Flags=...A...., SrcPort=1433, DstPort=49299, PayloadLen=0, Seq=329198912, Ack=2243178543, Win=8
Etapa 5. Transmissão de pacotes SSPI
Esse pacote carrega o token SSPI (Security Support Provider Interface), indicando autenticação usando Kerberos. Suas propriedades são expandidas para revelar dados de token.
A saída a seguir mostra o pacote SSPI, com as propriedades do pacote expandidas.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
238 17.0280923 10.10.10.20 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 0, Flags=...AP..., SrcPort=1433, Dst
Frame: Number = 238, Captured Frame Length = 250, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-03-F6-03],SourceAddress:[00-15-5D-03-F6-00]
+ Ipv4: Src = 10.10.10.20, Dest = 10.10.10.10, Next Protocol = TCP, Packet ID = 26363, Total IP Length = 236
+ Tcp: Flags=...AP..., SrcPort=1433, DstPort=49299, PayloadLen=196, Seq=329198912 - 329199108, Ack=2243178543, Win=8212 (scale factor 0x8) =
- Tds: Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 0, Flags=...AP..., SrcPort=1433, DstPort=49299, PayloadLen=196, Seq=3291989
+ PacketHeader: SPID = 0, Size = 196, PacketID = 0, Window = 0
- TDSServerResponseData:
TokenType: SSPI <---- SSPI Token
+ TokenData:
Etapa 6. Confirmação e confirmação de login
O servidor responde com um pacote TDS confirmando o login e confirmando o recebimento dos dados.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
239 17.0294294 10.10.10.20 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 57, PacketID = 1, Flags=...AP..., SrcPort=1433, Ds
240 17.0294472 10.10.10.10 10.10.10.20 TCP:Flags=...A...., SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243178543, Ack=329199489, Win=8
Etapa 7. Handshake de fechamento de quatro vias TCP
Finalmente, o cliente e o servidor fecham a conexão normalmente usando FIN
pacotes e ACK
.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
242 18.5494518 10.10.10.10 10.10.10.20 TCP:Flags=...A...F, SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243178543, Ack=329199489, Win=8
243 18.5501180 10.10.10.20 10.10.10.10 TCP:Flags=...A...., SrcPort=1433, DstPort=49299, PayloadLen=0, Seq=329199489, Ack=2243178544, Win=8
244 18.5502723 10.10.10.20 10.10.10.10 TCP:Flags=...A...F, SrcPort=1433, DstPort=49299, PayloadLen=0, Seq=329199489, Ack=2243178544, Win=8
245 18.5502896 10.10.10.10 10.10.10.20 TCP:Flags=...A...., SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243178544, Ack=329199490, Win=8
A presença do pacote SSPI distingue esse processo de login da autenticação SQL. No entanto, a identificação pode exigir a expansão das propriedades do pacote, principalmente quando vários pacotes SSPI são trocados.
Esse processo descreve o processo de autenticação, comparando especificamente a sequência de autenticação SQL com a adição de pacotes de desafio e resposta NTLM. O exemplo de rastreamento de rede delineia as seguintes etapas:
- Handshake de três vias TCP
- Aperto de mão do motorista
- Handshake SSL/TLS
- Troca de pacotes de login
- Pacotes de desafio e resposta NTLM
- Confirmação de login
- Execução do comando
Exemplo de rastreamento de rede
A diferença entre essa sequência de login e a sequência de autenticação SQL é a adição de dois pacotes.
Em seguida, o cliente responde com credenciais, que o servidor confirma com o controlador de domínio em sua extremidade.
Essa troca é alocada por 1 segundo, independentemente da Login Timeout
configuração na cadeia de conexão.
- O endereço IP do cliente é
10.10.10.120
- O endereço IP do servidor é
10.10.10.55
Etapa 1. Handshake de três vias TCP
Esta etapa é onde uma conexão é estabelecida entre o cliente e o servidor via TCP. Envolve SYN
, SYN-ACK
, e ACK
pacotes para sincronizar números de sequência e estabelecer comunicação.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76078 1181.9915832 10.10.10.120 10.10.10.55 TCP: [Bad CheckSum]Flags=......S., SrcPort=64444, DstPort=57139, PayloadLen=0, Seq=2766542083, Ack=
76079 1181.9922255 10.10.10.55 10.10.10.120 TCP:Flags=...A..S., SrcPort=57139, DstPort=64444, PayloadLen=0, Seq=3862866646, Ack=2766542084, Win
76080 1181.9924272 10.10.10.120 10.10.10.55 TCP: [Bad CheckSum]Flags=...A...., SrcPort=64444, DstPort=57139, PayloadLen=0, Seq=2766542084, Ack=
Nesta etapa, os avisos são benignos e são um indicador de que o [Bad CheckSum]
descarregamento da soma de verificação está habilitado. Ou seja, eles são adicionados em um nível inferior na pilha de rede do que o rastreamento é feito. Na ausência de outras informações, esse aviso indica se o rastreamento de rede foi feito no cliente ou no servidor. Nesse caso, ele aparece no pacote inicial SYN
, portanto, o rastreamento foi feito no cliente.
Etapa 2. Aperto de mão do motorista
Esta etapa envolve a troca de pacotes TDS (Tabular Data Stream) entre o cliente e o servidor para estabelecer parâmetros de comunicação.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76081 1181.9936195 10.10.10.120 10.10.10.55 TDS:Prelogin, Version = 7.3 (0x730a0003), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=64444, Ds
76082 1181.9945238 10.10.10.55 10.10.10.120 TDS:Response, Version = 7.3 (0x730a0003), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=57139, Ds
Etapa 3. Handshake SSL/TLS
Aqui, o cliente e o servidor se envolvem em um handshake seguro para estabelecer uma conexão criptografada. Esse processo envolve vários pacotes, incluindo Client Hello, Server Hello, troca de certificados e especificações de alteração de criptografia.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76083 1181.9953108 10.10.10.120 10.10.10.55 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:3192, SSLVersionSelector:3191, TDS:3190, TCP:3189
76084 1181.9967001 10.10.10.55 10.10.10.120 TLS:TLS Rec Layer-1 HandShake: Server Hello. Certificate. Server Hello Done. {TLS:3192, SSLVersionS
76085 1181.9978947 10.10.10.120 10.10.10.55 TLS:TLS Rec Layer-1 HandShake: Client Key Exchange.; TLS Rec Layer-2 Cipher Change Spec; TLS Rec La
76086 1182.0010146 10.10.10.55 10.10.10.120 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handshake Message. {TL
Etapa 4. Pacote de login
O cliente envia um pacote TDS contendo informações de login para o servidor.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76096 1182.0069763 10.10.10.120 10.10.10.55 TLS:TLS Rec Layer-1 SSL Application Data {TLS:3192, SSLVersionSelector:3191, TDS:3190, TCP:3189, IP
Etapa 5. Pacotes de desafio e resposta NTLM
O pacote de desafio NTLM é enviado do servidor para o cliente depois que o cliente envia o pacote de login.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76097 1182.0093903 10.10.10.55 10.10.10.120 NLMP:NTLM CHALLENGE MESSAGE {TDS:3190, TCP:3189, IPv4:3187}
76098 1182.0102507 10.10.10.120 10.10.10.55 NLMP:NTLM AUTHENTICATE MESSAGEVersion:v2, Domain: CONTOSO, User: joe33, Workstation: 10.10.10.120 {
Etapa 6. Confirmação de login
O servidor responde com um pacote TDS confirmando o login e confirmando o recebimento dos dados.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76100 1182.0274716 10.10.10.55 10.10.10.120 TDS:Response, Version = 7.3 (0x730a0003), SPID = 315, PacketID = 1, Flags=...AP..., SrcPort=57139,
Etapa 7. Executar um comando
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76102 1182.0324639 10.10.10.120 10.10.10.55 TDS:SQLBatch, Version = 7.3 (0x730a0003), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=64444, Ds
A conexão pode falhar com um tempo limite, resultante de qualquer um dos seguintes motivos:
- um SQL Server faminto por threads
- Várias solicitações de logon simultâneas resultando em autenticação enfileirada com o controlador de domínio
- um controlador de domínio em uma localização geográfica diferente
- Um controlador de domínio lento ou sem resposta
Esta seção descreve como você pode determinar uma conexão MARS a partir dos seguintes pacotes:
SMP:SYN
inicia uma nova sessão
SMP:ACK
reconhece pacotes de dados
SMP:FIN
encerra uma sessão
Os exemplos de rastreamento a seguir mostram os vários pacotes.
- O endereço IP do cliente é
10.10.10.10
- O endereço IP do servidor é
10.10.10.22
Abra uma nova conexão MARS
A saída de exemplo a seguir pressupõe que as etapas a seguir já estejam concluídas, usando a autenticação NTLM. O MARS também pode ser usado com autenticação Kerberos e SQL.
- Handshake de três vias TCP
- Aperto de mão do motorista
- Handshake SSL/TLS
- Troca de pacotes de login
- Pacotes de desafio e resposta NTLM
- Confirmação de login
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------
6704 568.0608108 10.10.10.10 10.10.10.22 TCP:Flags=CE....S., SrcPort=52965, DstPort=1433, PayloadLen=0, Seq=66183290
6713 568.0608483 10.10.10.22 10.10.10.10 TCP: [Bad CheckSum]Flags=.E.A..S., SrcPort=1433, DstPort=52965, PayloadLen=
6754 568.0613015 10.10.10.10 10.10.10.22 TCP:Flags=...A...., SrcPort=52965, DstPort=1433, PayloadLen=0, Seq=66183290
6777 568.0615479 10.10.10.10 10.10.10.22 TDS:Prelogin, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...
6786 568.0616817 10.10.10.22 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...
6833 568.0622426 10.10.10.10 10.10.10.22 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:165, SSLVersionSelector:1
6873 568.0627953 10.10.10.22 10.10.10.10 TLS:TLS Rec Layer-1 HandShake: Server Hello. Certificate. Server Key Exchan
6900 568.0632639 10.10.10.10 10.10.10.22 TCP:Flags=...A...., SrcPort=52965, DstPort=1433, PayloadLen=0, Seq=66183319
6977 568.0643795 10.10.10.10 10.10.10.22 TLS:TLS Rec Layer-1 HandShake: Client Key Exchange.; TLS Rec Layer-2 Cipher
7045 568.0655160 10.10.10.22 10.10.10.10 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypte
7233 568.0679639 10.10.10.10 10.10.10.22 TDS:Data, Version = 7.4 (0x74000004), Reassembled Packet {TDS:162, TCP:160,
7275 568.0684467 10.10.10.22 10.10.10.10 NLMP:NTLM CHALLENGE MESSAGE {TDS:162, TCP:160, IPv4:1}
7331 568.0692389 10.10.10.10 10.10.10.22 NLMP:NTLM AUTHENTICATE MESSAGE Version:NTLM v2, Domain: CONTOSO, User: joe1
11791 568.1295675 10.10.10.22 10.10.10.10 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=52965, PayloadLen=
17978 568.2162145 10.10.10.22 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 255, PacketID = 1, Flags=.
Criar uma nova sessão MARS
Depois que a conexão for estabelecida, crie uma nova sessão MARS (Sid = 0
).
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------
18024 568.2170301 10.10.10.10 10.10.10.22 SMP:SYN, Sid = 0, Length = 16, SeqNum = 0, Wndw = 4 {SMP:190, TCP:160, IPv4
Execute vários comandos na sessão
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------
18028 568.2170301 10.10.10.10 10.10.10.22 TDS:SQLBatch, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...
18031 568.2170676 10.10.10.22 10.10.10.10 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=52965, PayloadLen=
18038 568.2173641 10.10.10.22 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 255, PacketID = 1, Flags=.
18079 568.2178650 10.10.10.10 10.10.10.22 TDS:SQLBatch, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...
Exemplo do pacote SMP:ACK
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------
40874 568.5121135 10.10.10.22 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 255, PacketID = 1, Flags=.
40876 568.5121237 10.10.10.22 10.10.10.10 TDS:Continuous Response, Version = 7.4 (0x74000004), SPID = 255, PacketID =
40911 568.5124644 10.10.10.10 10.10.10.22 SMP:ACK, Sid = 0, Length = 16, SeqNum = 34, Wndw = 40 {SMP:190, TCP:160, IP
40950 568.5128422 10.10.10.22 10.10.10.10 TDS:Continuous Response, Version = 7.4 (0x74000004), SPID = 255, PacketID =