Megosztás:


A hálózati kapcsolat szoros sorrendjének nyomon követése az adatbázismotoron

Ez a cikk olyan hálózati nyomkövetési példákat mutat be, amelyek rögzítik a sorozatot az ügyfélalkalmazás és az SQL Server adatbázismotor (a kiszolgáló) közötti TCP-kapcsolat lezárásakor. Ezeknek a mintáknak a megértése elengedhetetlen a hálózati viselkedés diagnosztizálásához, a készletezési stratégiák azonosításához és a webes vagy szolgáltatásalkalmazások kapcsolatkezelésének optimalizálásához.

Kapcsolattípusok bezárása

Ez a cikk példákat tartalmaz a normál TCP-kapcsolatokra és a több aktív eredményhalmaz (MARS) kapcsolatokra. A MARS az SQL Server egyik funkciója, amelyet az SQL Server 2005 -ben (9.x) vezetnek be, amely lehetővé teszi, hogy több parancsot is végrehajtson egy kapcsolaton anélkül, hogy törölnie kellene az eredményeket az első parancsból a második parancs futtatása előtt. A MARS munkamenet-multiplexálással (SMUX) érhető el.

Ez a szakasz számos példát mutat be egy hálózati kapcsolat bezárására.

  • Az ügyfél IP-címe 10.10.10.104
  • A kiszolgáló IP-címe 10.10.10.22

Csomagok bezárása

Ez a példa egy normál kapcsolatzárási sorozatot mutat be. Figyelje meg az alacsony keretszámokat és az időeltolódásokat. Ez a folyamat valószínűleg egy gyűjtött kapcsolatlezárás. Ennek a nyomkövetés kezdetétől számított 30 másodpercen belül kell történnie, vagy előfordulhat, hogy az életben maradó csomagok is megjelennek.

négyirányú TCP-munkamenet bezárásának diagramja.

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

Transact-SQL állítások és csomagok lezárása

Ez a példa egy nem poolozott kapcsolat lezárását mutatja be két Transact-SQL utasítás után. Ha ez a kapcsolat nem volt pool része, kapcsolatfenntartó csomagokat is láthatna, amelyek a kapcsolat visszaküldéséhez kapcsolódnak a kapcsolatkészletbe, ahelyett, hogy a záró csomagokat látná közvetlenül a kiszolgáló utolsó válaszát követően. Javasoljuk, hogy a kapcsolatok újrafelhasználása érdekében bármilyen web- vagy szolgáltatásalkalmazásban készletezni lehessen a kapcsolatokat. A kapcsolatkészletezés csökkenti a kiszolgálóval létesített kapcsolatok számát, és minimalizálja az új kapcsolatokhoz kapcsolódó költségeket és késéseket.

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

Tétlen vagy összegyűjtött kapcsolat lezárva

A kapcsolat a korábbi keep-alive kapcsolatcsere után 10 másodperccel megszakad (lásd a Delta oszlopot).

Jegyzet

A parser tévesen a kezdeti ACK+FIN csomagot (1881-es keret) egy életben tartási ACK csomagként jelöli meg, mert az előző életben tartási csomag miatt. A kapcsolat bezárását azonban inicializálja.

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