Dit artikel bevat verschillende voorbeelden van een netwerktracering die verschillende handshakes en verificatiereeksen vastlegt tijdens het tcp-verbindingsproces (Transmission Control Protocol) tussen een clienttoepassing en de SQL Server Database Engine (de server).
In dit artikel worden ook MARS-verbindingen (Multiple Active Result Sets) beschreven. MARS is een functie van SQL Server, geïntroduceerd met SQL Server 2005 (9.x), waarmee meerdere opdrachten kunnen worden uitgevoerd op een verbinding zonder de resultaten van de eerste opdracht op te schonen, voordat de tweede opdracht wordt uitgevoerd. MARS wordt bereikt via sessie-multiplexing (SMUX).
In dit proces wordt een normaal aanmeldingsproces beschreven met behulp van SQL-verificatie, waarbij elke stap van het gesprek tussen de client en de server wordt weergegeven via een gedetailleerde netwerktraceringsanalyse. In het voorbeeld van de netwerktracering worden de volgende stappen beschreven:
- TCP-handshake in drie richtingen
- Bestuurder handdruk
- SSL/TLS-handshake
- Aanmeldingspakketuitwisseling
- Aanmeldingsbevestiging
- Een opdracht uitvoeren en het antwoord lezen
- TCP vierweg-sluitingshandshake
Voorbeeld van netwerktracering
Deze transactie is 1 seconde toegewezen, ongeacht de Login Timeout
instelling in de verbindingsketen.
- Het IP-adres van de client is
10.10.10.10
- Het IP-adres van de server is
10.10.10.120
Stap 1. TCP-handshake in drie richtingen
Alle TCP-gesprekken beginnen met een SYN
pakket (S
vlagset) dat van de client naar de server wordt verzonden. In Frame 6127
gebruikt de client een tijdelijke poort (dynamisch toegewezen door het besturingssysteem) en maakt deze verbinding met de serverpoort, in dit geval poort 1433
. De server reageert met zijn eigen SYN
-pakket met de ACK
-vlag die ook ingesteld staat. Ten slotte reageert de client met een ACK
pakket om de server te laten weten dat het SYN
pakket is ontvangen.
Met deze stap wordt een eenvoudige TCP-verbinding tot stand gebracht, op dezelfde manier als een telnet
opdracht. Het besturingssysteem bemiddelt dit deel van het gesprek. Op dit moment weten de client en server niets van elkaar.
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=
In deze stap zijn de [Bad CheckSum]
waarschuwingen goedaardig en een indicator dat checksum offload is ingeschakeld. Dat wil zeggen, ze worden toegevoegd op een lager niveau in de netwerkstapel dan waar de tracering plaatsvindt. Als er geen andere informatie is, geeft deze waarschuwing aan of de netwerktracering is uitgevoerd op de client of de server. In dit geval verschijnt het op het eerste SYN
-pakket, dus is de tracering op de client uitgevoerd.
Stap 2. Handshake van bestuurder
Zowel het clientstuurprogramma als SQL Server moeten iets van elkaar weten. In deze handshake verzendt het stuurprogramma enkele informatie en vereisten naar de server. Deze informatie omvat het versleutelen van gegevenspakketten, of er gebruik moet wordengemaakt van MULTIPLE Active Result Sets (MARS), het versienummer ervan, of federatieve verificatie, de verbindings-GUID enzovoort moet worden gebruikt.
De server reageert met de gegevens, zoals of verificatie is vereist. Deze volgorde vindt plaats voordat een soort beveiligingsonderhandeling wordt uitgevoerd.
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
Stap 3. SSL/TLS-handshake
De SSL/TLS-handshake begint met het Client Hello-pakket en vervolgens het Server Hello-pakket, plus enkele extra pakketten met betrekking tot Secure Channel. In deze stap wordt onderhandeld over de beveiligingssleutel voor het versleutelen van pakketten. Normaal gesproken is alleen het aanmeldingspakket versleuteld, maar de client of de server kan vereisen dat gegevenspakketten ook worden versleuteld. Het kiezen van de versie van TLS vindt plaats in deze fase van de aanmelding. De client of server kan de verbinding in deze fase sluiten als de TLS-versies niet overeenkomen of als ze geen coderingssuites hebben.
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
Stap 4. Aanmeldingspakket
Dit pakket is versleuteld en kan worden weergegeven als SSL Application Data
of TDS:Data
, afhankelijk van uw netwerkparser. Als alle pakketten na deze stap ook worden weergegeven als SSL Application Data
, wordt de verbinding versleuteld.
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
Stap 5. Aanmeldingsbevestiging
Anders ziet u een antwoordpakket dat de aanmelding bevestigt (met het ACK
token) of een Login Failed
foutbericht naar de client retourneert.
Hier volgt een voorbeeld van wat u kunt zien in de hexadecimale pakketgegevens voor een geslaagde aanmelding:
.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
Stap 6. Een opdracht uitvoeren en het antwoord lezen
Opdrachten worden verzonden als een TDS:SQLBatch
of een TDS:RPCRequest
pakket. De vorige voert gewone Transact-SQL instructies uit en de laatste voert opgeslagen procedures uit. Mogelijk ziet u TCP-vervolgpakketten als de opdracht lang is of in het antwoordpakket als er meer dan een paar rijen worden geretourneerd.
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=
Stap 7. Vierfasen-handshake voor het beëindigen van een TCP-verbinding
Microsoft-drivers gebruiken de four-way handshake om verbindingen te sluiten. Veel stuurprogramma's van derden stellen de verbinding gewoon opnieuw in om deze te sluiten, waardoor het moeilijker is om onderscheid te maken tussen een normale en abnormale sluiting.
De four-way handshake begint met de client die een FIN
-pakket naar de server verzendt, waarop de server reageert met een ACK
. De server verzendt vervolgens een eigen FIN
pakket, dat de client bevestigt (ACK
).
Als de server eerst een FIN
pakket verzendt, is het een abnormale sluiting, meestal te zien in de SSL/TLS-handshake als de client en server niet kunnen onderhandelen over het beveiligde kanaal.
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=
Dit proces beschrijft het verificatieproces, met name het vergelijken van de SQL-verificatiereeks met het toevoegen van een SSPI-pakket. In het voorbeeld van de netwerktracering worden de volgende stappen beschreven:
- TCP-handshake in drie richtingen
- Handshake van bestuurder
- SSL/TLS-handshake
- Aanmeldingspakketuitwisseling
- SSPI-pakkettransmissie
- Aanmeldingsbevestiging
- Vierzijdige TCP-afsluitingshandshake
Voorbeeld van netwerktracering
Deze aanmeldingsreeks lijkt op de SQL-verificatiereeks. De toevoeging van het SSPI-pakket is het grote verschil, maar is moeilijk te zien, tenzij u de eigenschappen uitvouwt. Soms ziet u meer dan één SSPI-pakket.
De client reageert vervolgens met inloggegevens, die de server verifieert met de domeincontroller aan zijn kant.
Deze uitwisseling krijgt 1 seconde toegekend, ongeacht de Login Timeout
-instelling in de verbindingsstring.
- Het IP-adres van de client is
10.10.10.10
- Het IP-adres van de server is
10.10.10.20
Stap 1. TCP-handshake in drie richtingen
In deze stap wordt een verbinding tot stand gebracht tussen de client en de server via TCP. Het omvat SYN
, SYN-ACK
en ACK
pakketten om volgnummers te synchroniseren en communicatie tot stand te brengen.
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
In deze stap zijn de [Bad CheckSum]
waarschuwingen goedaardig en wijzen erop dat checksum offload is ingeschakeld. Dat wil zeggen, ze worden toegevoegd op een lager niveau in de netwerk-stack dan waar de trace wordt genomen. Als er geen andere informatie is, geeft deze waarschuwing aan of de netwerktracering is uitgevoerd op de client of de server. In dit geval wordt het weergegeven op het eerste SYN
-pakket, dus werd de tracering uitgevoerd op de client.
Stap 2. Chauffeurshanddruk
Deze stap omvat de uitwisseling van TDS-pakketten (Tabular Data Stream) tussen de client en de server om parameters voor communicatie tot stand te brengen.
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
Stap 3. SSL/TLS-handshake
Hier maken de client en server gebruik van een beveiligde handshake om een versleutelde verbinding tot stand te brengen. Dit proces omvat meerdere pakketten, waaronder Client Hello, Server Hello, certificaatuitwisseling en coderingswijzigingsspecificaties.
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
Stap 4. Aanmeldingspakket
De client verzendt een TDS-pakket met aanmeldingsgegevens naar de server.
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
Stap 5. SSPI-pakkettransmissie
Dit pakket bevat het SSPI-token (Security Support Provider Interface) dat verificatie aangeeft met behulp van Kerberos. De eigenschappen ervan worden uitgebreid om tokengegevens weer te geven.
In de volgende uitvoer ziet u het SSPI-pakket, met pakketeigenschappen uitgevouwen.
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:
Stap 6. Bevestiging en herkenning van inlog
De server reageert met een TDS-pakket dat de aanmelding bevestigt en de ontvangst van gegevens bevestigt.
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
Stap 7. TCP vierdelig afsluitingshandshake
Ten slotte sluit de client en server de verbinding probleemloos met behulp van FIN
en ACK
pakketten.
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
De aanwezigheid van het SSPI-pakket onderscheidt dit aanmeldingsproces van SQL-verificatie. Identificatie vereist echter mogelijk uitbreiding van pakketeigenschappen, met name wanneer meerdere SSPI-pakketten worden uitgewisseld.
In dit proces wordt het verificatieproces beschreven, met name het vergelijken van de SQL-verificatiereeks met de toevoeging van NTLM-vraag- en antwoordpakketten. In het voorbeeld van de netwerktracering worden de volgende stappen beschreven:
- TCP-handshake in drie richtingen
- Handdruk van bestuurder
- SSL/TLS-handshake
- Aanmeldingspakketuitwisseling
- NTLM-uitdaging- en antwoordpakketten
- Aanmeldingsbevestiging
- Opdrachtuitvoering
Voorbeeld van netwerktracering
Het verschil tussen deze aanmeldingsreeks en de SQL-verificatiereeks is het toevoegen van twee pakketten.
De client reageert vervolgens met inloggegevens, die de server bevestigt via de domeincontroller aan zijn kant.
Deze uitwisseling wordt 1 seconde toegewezen, ongeacht de Login Timeout
instelling in de verbindingsreeks.
- Het IP-adres van de client is
10.10.10.120
- Het IP-adres van de server is
10.10.10.55
Stap 1. TCP-handshake in drie richtingen
In deze stap wordt een verbinding tot stand gebracht tussen de client en de server via TCP. Het omvat SYN
, SYN-ACK
en ACK
pakketten om volgnummers te synchroniseren en communicatie tot stand te brengen.
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=
In deze stap zijn de [Bad CheckSum]
waarschuwingen goedaardig en wijzen erop dat checksum offload is ingeschakeld. Dat wil zeggen, ze worden toegevoegd op een lager niveau in de netwerkstack dan waar de tracering plaatsvindt. Als er geen andere informatie is, geeft deze waarschuwing aan of de netwerktracering is uitgevoerd op de client of de server. In dit geval wordt het weergegeven op het eerste SYN
pakket, dus de tracering is genomen op de client.
Stap 2. Chauffeurshanddruk
Deze stap omvat de uitwisseling van TDS-pakketten (Tabular Data Stream) tussen de client en de server om parameters voor communicatie tot stand te brengen.
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
Stap 3. SSL/TLS handshake
Hier maken de client en server gebruik van een beveiligde handshake om een versleutelde verbinding tot stand te brengen. Dit proces omvat meerdere pakketten, waaronder Client Hello, Server Hello, certificaatuitwisseling en coderingswijzigingsspecificaties.
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
Stap 4. Aanmeldingspakket
De client verzendt een TDS-pakket met aanmeldingsgegevens naar de server.
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
Stap 5. NTLM-uitdaging- en antwoordpakketten
Het NTLM-uitdagingspakket wordt vanaf de server naar de client verzonden nadat de client het aanmeldingspakket heeft verzonden.
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 {
Stap 6. Aanmeldingsbevestiging
De server reageert met een TDS-pakket dat de aanmelding bevestigt en de ontvangst van gegevens bevestigt.
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,
Stap 7. Een opdracht uitvoeren
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
De verbinding kan mislukken met een time-out, als gevolg van een van de volgende redenen:
- een SQL Server met een tekort aan threads
- verschillende gelijktijdige aanmeldingsaanvragen die resulteren in verificatie in de wachtrij met de domeincontroller
- een domeincontroller op een andere geografische locatie
- een trage of niet-reagerende domeincontroller
In deze sectie wordt beschreven hoe u een MARS-verbinding kunt bepalen op basis van de volgende pakketten:
-
SMP:SYN
start een nieuwe sessie
-
SMP:ACK
erkent gegevenspakketten
-
SMP:FIN
een sessie beëindigt
In de volgende traceringsvoorbeelden ziet u de verschillende pakketten.
- Het IP-adres van de client is
10.10.10.10
- Het IP-adres van de server is
10.10.10.22
Een nieuwe MARS-verbinding openen
In de volgende voorbeelduitvoer wordt ervan uitgegaan dat de volgende stappen al zijn voltooid met behulp van NTLM-verificatie. MARS kan ook worden gebruikt met Kerberos- en SQL-verificatie.
- TCP-drie-weg-handshake
- Chauffeurshanddruk
- SSL/TLS-handshake
- Aanmeldingspakketuitwisseling
- NTLM-uitdaging- en antwoordpakketten
- Aanmeldingsbevestiging
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=.
Een nieuwe MARS-sessie maken
Nadat de verbinding tot stand is gebracht, maakt u een nieuwe MARS-sessie (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
Verschillende opdrachten uitvoeren op de sessie
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=...
Voorbeeld van het SMP:ACK-pakket
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 =