Tracez la séquence de fermeture de connexion réseau sur le Moteur de base de données
Cet article présente des exemples de trace réseau qui capture la séquence pendant laquelle une connexion TCP (Transmission Control Protocol) entre une application cliente et le serveur SQL Server Moteur de base de données (le serveur) est fermée. La compréhension de ces modèles est essentielle pour diagnostiquer le comportement du réseau, identifier les stratégies de regroupement et optimiser la gestion des connexions dans les applications web ou de service.
Fermeture des types de connexion
Cet article fournit des exemples pour les connexions TCP normales et les connexions MARS (Multiple Active Result Sets). MARS est une fonctionnalité de SQL Server, introduite avec SQL Server 2005 (9.x), qui permet l’exécution de plusieurs commandes sur une connexion sans avoir à nettoyer les résultats de la première commande, avant d’exécuter la deuxième commande. MARS est obtenu via le multiplexage de session (SMUX).
Cette section décrit plusieurs exemples de fermeture d’une connexion réseau.
- L’adresse IP du client est
10.10.10.104
- L’adresse IP du serveur est
10.10.10.22
Fermeture des paquets
Cet exemple montre une séquence normale de fermeture de connexion. Notez les nombres d’images faibles et les décalages de temps. Cette séquence est probablement une fermeture de connexion mise en pool. Cela doit se produire dans les 30 secondes suivant le début de la trace, ou vous pouvez également voir des paquets keep-alive.
Frame Offset Source IP Dest IP Description
----- --------- ------------ ------------ ---------------------------------------------------------------------------
50 4.1529661 10.10.10.104 10.10.10.22 TCP:Flags=...A...F, SrcPort=4657, DstPort=1433, PayloadLen=0, Seq=413460761
51 4.1529661 10.10.10.22 10.10.10.104 TCP:Flags=...A...., SrcPort=1433, DstPort=4657, PayloadLen=0, Seq=280398321
52 4.1529661 10.10.10.22 10.10.10.104 TCP:Flags=...A...F, SrcPort=1433, DstPort=4657, PayloadLen=0, Seq=280398321
54 4.2330441 10.10.10.104 10.10.10.22 TCP:Flags=...A...., SrcPort=4657, DstPort=1433, PayloadLen=0, Seq=413460761
Instructions Transact-SQL et paquets fermants
Cet exemple montre la fermeture d’une connexion non mise en pool, après deux instructions Transact-SQL. Si cette connexion n’a pas été mise en pool, vous pouvez également voir les paquets keep-alive associés à l’envoi de la connexion dans le pool de connexions, au lieu des paquets fermants immédiatement après la dernière réponse du serveur. Nous vous recommandons de regrouper les connexions dans n’importe quel type d’application web ou de service pour autoriser la réutilisation des connexions. Le regroupement de connexions réduit le nombre de connexions au serveur et réduit le coût et le retard associés aux nouvelles connexions.
Frame Offset Source IP Dest IP Description
----- --------- ------------ ------------ ---------------------------------------------------------------------------
364 9.1949581 10.10.10.104 10.10.10.22 TDS:SQLBatch, Version = 7.300000, SPID = 0, PacketID = 1, Flags=...AP..., S
365 9.1949581 10.10.10.22 10.10.10.104 TDS:Response, Version = 7.300000, SPID = 130, PacketID = 1, Flags=...AP...,
366 9.3043331 10.10.10.104 10.10.10.22 TDS:SQLBatch, Version = 7.300000, SPID = 0, PacketID = 1, Flags=...AP..., S
367 9.3072631 10.10.10.22 10.10.10.104 TDS:Response, Version = 7.300000, SPID = 130, PacketID = 1, Flags=...AP...,
375 9.4078491 10.10.10.104 10.10.10.22 TCP:Flags=...A...F, SrcPort=4647, DstPort=1433, PayloadLen=0, Seq=157672648
376 9.4078491 10.10.10.22 10.10.10.104 TCP:Flags=...A...., SrcPort=1433, DstPort=4647, PayloadLen=0, Seq=192890973
379 9.4078491 10.10.10.22 10.10.10.104 TCP:Flags=...A...F, SrcPort=1433, DstPort=4647, PayloadLen=0, Seq=192890973
397 9.5221071 10.10.10.104 10.10.10.22 TCP:Flags=...A...., SrcPort=4647, DstPort=1433, PayloadLen=0, Seq=157672649
Connexion inactive ou mise en pool fermée
La connexion est fermée 10 secondes après l’échange continu précédent (voir Delta
la colonne).
Remarque
L’analyseur marque par erreur le paquet initial ACK+FIN
(Frame 1881) comme paquet de conservation active, car le paquet keep-alive ACK
précédent. Toutefois, il initialise la fermeture de la connexion.
Frame Offset Delta Source IP Dest IP Description
----- ---------- ---------- ----------- ----------- -----------------------------------------------------------------
1314 16.3641802 0.0000000 10.10.10.45 10.10.10.51 TCP:[Keep alive]Flags=...A...., SrcPort=51708, DstPort=1433, Payl
1317 16.3677083 0.0035281 10.10.10.51 10.10.10.45 TCP:[Keep alive ack]Flags=...A...., SrcPort=1433, DstPort=51708,
1327 16.4269375 0.0592292 10.10.10.51 10.10.10.45 TCP:[Keep alive]Flags=...A...., SrcPort=1433, DstPort=51708, Payl
1328 16.4269637 0.0000262 10.10.10.45 10.10.10.51 TCP:[Keep alive ack]Flags=...A...., SrcPort=51708, DstPort=1433,
1881 26.7918499 10.3648862 10.10.10.45 10.10.10.51 TCP:[Keep alive ack]Flags=...A...F, SrcPort=51708, DstPort=1433,
1886 26.7929474 0.0010975 10.10.10.51 10.10.10.45 TCP:Flags=...A...., SrcPort=1433, DstPort=51708, PayloadLen=0, Se
1888 26.7929474 0.0000000 10.10.10.51 10.10.10.45 TCP:Flags=...A...F, SrcPort=1433, DstPort=51708, PayloadLen=0, Se
1890 26.7929947 0.0000473 10.10.10.45 10.10.10.51 TCP:Flags=...A...., SrcPort=51708, DstPort=1433, PayloadLen=0, Se