Aracılığıyla paylaş


Veritabanı Altyapısı'nda ağ bağlantısı kapatma sırasını izleme

Bu makalede, istemci uygulaması ile SQL Server Veritabanı Altyapısı (sunucu) arasındaki bir İletim Denetimi Protokolü (TCP) bağlantısı kapatılırken sırayı yakalayan bir ağ izlemesinin örnekleri gösterilir. Bu desenleri anlamak ağ davranışını tanılamak, havuz stratejilerini belirlemek ve web veya hizmet uygulamalarında bağlantı yönetimini iyileştirmek için çok önemlidir.

Bağlantı türleri kapatılıyor

Bu makalede normal TCP bağlantıları ve Birden Çok Etkin Sonuç Kümesi (MARS) bağlantısı için örnekler sağlanmaktadır. MARS, SQL Server 2005 (9.x) ile sunulan ve ikinci komutu çalıştırmadan önce ilk komuttan sonuçları temizlemek zorunda kalmadan bir bağlantıda birden çok komutun yürütülmesine olanak tanıyan bir SQL Server özelliğidir. MARS, SMUX (oturum çoğullama) aracılığıyla elde edilir.

Bu bölümde, ağ bağlantısını kapatmaya yönelik çeşitli örnekler açıklanmaktadır.

  • İstemci IP adresi 10.10.10.104
  • Sunucu IP adresi 10.10.10.22

Paketleri kapatma

Bu örnekte normal bir bağlantı kapatma sırası gösterilmektedir. Düşük kare sayılarına ve zaman uzaklıklarına dikkat edin. Bu sıra büyük olasılıkla bir havuz bağlantısı kapanışıdır. Bu, izlemenin başlangıcından itibaren 30 saniye içinde gerçekleşmelidir veya canlı tutma paketleri de görebilirsiniz.

Dört yönlü TCP oturum kapatma diyagramı.

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 ifadeler ve kapatma paketleri

Bu örnekte, iki Transact-SQL deyiminin ardından, havuzlanmamış bir bağlantının kapatılması gösteriliyor. Eğer bu bağlantı havuzlanmamış durumda olsaydı, sunucudan gelen son yanıttan hemen sonra kapatma paketleri yerine, bağlantının tekrar bağlantı havuzuna gönderilmesiyle ilişkili etkinleştirme paketlerini de görebilirdiniz. Bağlantıların yeniden kullanılmasına izin vermek için herhangi bir web veya hizmet uygulamasındaki bağlantıları havuza almanızı öneririz. Bağlantı havuzu, sunucuya yönelik bağlantı sayısını azaltır ve yeni bağlantılarla ilişkili maliyeti ve gecikmeyi en aza indirir.

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

Boşta veya havuzdaki bağlantı kapatılıyor.

Önceki bağlantıyı açık tutma değişiminden 10 saniye sonra bağlantı kapatılır (bkz. Delta sütunu).

Not

Ayrıştırıcı, ilk ACK+FIN paketini (Çerçeve 1881) yanlışlıkla bir keep-alive ACK paketi olarak işaretler, çünkü önceki keep-alive paketi. Ancak, bağlantı kapanışını başlatmakta.

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