Bagikan melalui


Melacak urutan penutupan koneksi jaringan pada Mesin Database

Artikel ini menyajikan contoh jejak jaringan yang menangkap urutan selama ketika koneksi Protokol Kontrol Transmisi (TCP) antara aplikasi klien dan Mesin Database SQL Server (server) ditutup. Memahami pola-pola ini sangat penting untuk mendiagnosis perilaku jaringan, mengidentifikasi strategi pengumpulan, dan mengoptimalkan manajemen koneksi dalam aplikasi web atau layanan.

Menutup jenis koneksi

Artikel ini menyediakan contoh untuk koneksi TCP yang normal, dan koneksi Multiple Active Result Sets (MARS). MARS adalah fitur SQL Server, diperkenalkan dengan SQL Server 2005 (9.x), yang memungkinkan beberapa perintah dijalankan pada koneksi tanpa harus membersihkan hasil dari perintah pertama, sebelum menjalankan perintah kedua. MARS dicapai melalui pemultipleksan sesi (SMUX).

Bagian ini menjelaskan beberapa contoh penutupan koneksi jaringan.

  • Alamat IP klien adalah 10.10.10.104
  • Alamat IP server adalah 10.10.10.22

Menutup paket

Contoh ini menunjukkan urutan penutupan koneksi normal. Perhatikan jumlah bingkai yang rendah dan offset waktu. Urutan ini kemungkinan besar merupakan penutupan koneksi terkumpul. Ini harus terjadi dalam waktu 30 detik dari awal pelacakan, atau Anda mungkin juga melihat paket keep-alive.

Diagram penutupan sesi TCP empat arah.

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

Pernyataan T-SQL dan paket penutup

Contoh ini menunjukkan penutupan koneksi nonpool, setelah menjalankan dua pernyataan Transact-SQL. Jika koneksi ini tidak terikat dengan pool, Anda juga dapat melihat paket menjaga koneksi tetap aktif yang terkait dengan pengembalian koneksi ke kumpulan koneksi, alih-alih paket penutupan yang langsung mengikuti respons terakhir dari server. Sebaiknya kumpulkan koneksi dalam segala jenis aplikasi web atau layanan untuk memungkinkan penggunaan kembali koneksi. Pengumpulan koneksi mengurangi jumlah koneksi ke server, dan meminimalkan biaya dan penundaan yang terkait dengan koneksi baru.

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

Koneksi diam atau terkumpul sedang ditutup

Koneksi ditutup 10 detik setelah pertukaran tetap hidup sebelumnya (lihat Delta kolom).

Catatan

Pengurai secara keliru menandai paket awal ACK+FIN (Bingkai 1881) sebagai paket keep-alive ACK, karena adanya paket keep-alive sebelumnya. Namun, ini menginisialisasi penutupan koneksi.

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