Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se presentan ejemplos de una traza de red que captura la secuencia que tiene lugar cuando se cierra una conexión TCP entre una aplicación cliente y el Motor de base de datos de SQL Server (el servidor). Comprender estos patrones es fundamental para diagnosticar el comportamiento de red, identificar estrategias de agrupación y optimizar la administración de conexiones en aplicaciones web o de servicio.
Cierre de tipos de conexión
En este artículo se proporcionan ejemplos de conexiones TCP normales y varias conexiones de conjuntos de resultados activos (MARS). MARS es una característica de SQL Server, introducida con SQL Server 2005 (9.x), que permite ejecutar varios comandos en una conexión sin tener que limpiar los resultados del primer comando, antes de ejecutar el segundo comando. MARS se logra mediante la multiplexación de sesiones (SMUX).
En esta sección se describen varios ejemplos de cierre de una conexión de red.
- La dirección IP del cliente es
10.10.10.104 - La dirección IP del servidor es
10.10.10.22
Paquetes de cierre
En este ejemplo se muestra una secuencia de cierre de conexión normal. Tenga en cuenta los números de fotograma bajos y los desplazamientos temporales. Es más probable que esta secuencia sea un cierre de conexión agrupado. Esto debería ocurrir dentro de los 30 segundos posteriores al inicio de la traza, o también es posible que vea paquetes 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
Instrucciones Transact-SQL y paquetes de cierre
En este ejemplo se muestra cómo cerrar una conexión no agrupada, después de dos instrucciones Transact-SQL. Si esta conexión no formara parte de un pool, también podría ver paquetes de keep-alive asociados a la devolución de la conexión al pool de conexiones, en lugar de los paquetes de cierre inmediatamente después de la última respuesta del servidor. Se recomienda agrupar conexiones en cualquier tipo de aplicación web o de servicio para permitir la reutilización de la conexión. La agrupación de conexiones reduce el número de conexiones al servidor y minimiza el costo y el retraso asociados a las nuevas conexiones.
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
Conexión inactiva o agrupada que se cierra
La conexión se cierra 10 segundos después del último intercambio de keep-alive (consulte la columna Delta).
Nota:
El analizador marca erróneamente el paquete inicial ACK+FIN (Frame 1881) como un paquete keep-alive, porque el paquete keep-alive ACK anterior. Sin embargo, está iniciando el cierre de la conexión.
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