Análisis PCAP de VPN y sujeción de TCP MSS: búsqueda de segmentos de gran tamaño, discrepancias de MTU y túneles lentos

Cómo analizar problemas de sujeción de TCP MSS en VPN y túneles, incluidos valores SYN MSS, falta de coincidencia de MTU, segmentos sobredimensionados, retransmisiones, fragmentación y evidencia de captura de paquetes.


Los problemas de rendimiento de VPN y túneles a menudo parecen una lentitud aleatoria. Las pequeñas solicitudes funcionan. Se conecta SSH. El DNS funciona. Luego, las transferencias de archivos se detienen, los sitios web se bloquean, los protocolos de enlace TLS fallan o las cargas se rastrean. Los usuarios buscan "VPN de sujeción TCP MSS", "captura de paquetes VPN MTU", "MSS no coincide con pcap", "retransmisión de segmentos TCP de gran tamaño" y "problema de MTU de túnel lento" cuando la ruta funciona para paquetes pequeños pero falla para tráfico más grande.

La sujeción de MSS es una mitigación común. Ajusta el tamaño máximo de segmento TCP anunciado durante el intercambio SYN para que los puntos finales eviten enviar paquetes demasiado grandes para la ruta tunelizada.

La cirugía PCAP es útil porque la evidencia clave está en los paquetes SYN y el patrón de retransmisión posterior.

Relación MSS y MTU

MTU es el tamaño máximo de paquete en un enlace. MSS es el tamaño máximo de carga útil de TCP. En Ethernet normal con MTU de 1500 bytes, IPv4 TCP MSS suele tener 1460 bytes.

Las VPN añaden gastos generales. Si el túnel reduce la MTU efectiva pero los puntos finales aún anuncian MSS 1460, los paquetes pueden volverse demasiado grandes después de la encapsulación.

¿Qué hace la sujeción MSS?

Un enrutador, firewall o puerta de enlace VPN puede reescribir TCP MSS en paquetes SYN:

Original MSS: 1460
Clamped MSS: 1360

This encourages endpoints to send smaller TCP segments that fit inside the tunnel.

If clamping is missing, too high, or applied only in one direction, large transfers may retransmit or stall.

Packet evidence

Inspect:

  • Client SYN MSS.
  • Server SYN-ACK MSS.
  • Whether a middlebox rewrote MSS.
  • Segment sizes after handshake.
  • Retransmissions of large segments.
  • ICMP packet-too-big or fragmentation-needed messages.
  • VPN/tunnel path and overhead.

If SYN MSS is 1460 across a tunnel that needs smaller packets, suspect missing clamping.

Asymmetric clamping

Sometimes one direction is clamped and the other is not. Downloads may work while uploads fail, or vice versa. Capture both directions and inspect both SYN and SYN-ACK.

Direction matters:

  • Client upload uses server-advertised MSS.
  • Server download uses client-advertised MSS.

Checklist

Use this workflow:

  1. Identify the tunneled path.
  2. Capture TCP SYN and SYN-ACK.
  3. Record MSS values in both directions.
  4. Estimate tunnel overhead and effective MTU.
  5. Inspect large transfer segment sizes.
  6. Look for repeated retransmissions.
  7. Look for ICMP packet-too-big messages.
  8. Compare inside and outside tunnel captures.
  9. Test lower MSS or MTU as a controlled experiment.
  10. Preserve handshake and failure packets together.

Final diagnosis

TCP MSS clamping problems are tunnel-size problems visible in packet captures. If MSS is too high for the VPN path, large segments retransmit, fragment, or disappear while small traffic works.

PCAP Surgery helps isolate the SYN/MSS evidence and the later transfer failure so VPN MTU problems can be proven instead of guessed.

<!-- pcap-localized-evidence-foundation-v1:start -->

Respuesta basada en paquetes para «Análisis PCAP de VPN y sujeción de TCP MSS: búsqueda de segmentos de gran tamaño, discrepancias de MTU y túneles lentos»

La respuesta directa es que una etiqueta del analizador o un mensaje de la aplicación no determina la causa. Empieza por punto de captura y dirección; demuestra la última frontera correcta y la primera fallida. En «Análisis PCAP de VPN y sujeción de TCP MSS: búsqueda de segmentos de gran tamaño, discrepancias de MTU y túneles lentos», otro revisor debe poder encontrar el packet, hueco o intervalo que sostiene cada frase y saber qué evidencia podría refutarla.

Situar la captura en el camino

Registra client, server y cualquier proxy, load balancer, NAT o firewall. Indica interface, lugar, reloj, sistema y direcciones visibles. Una captura junto al client demuestra lo que llegó allí, no que el server no enviara. Una junto al server demuestra salida en ese punto, no tránsito completo. Antes de comparar dos puntos corrige clock offset y alinea flow tuple, TCP sequence o transaction ID.

Comprueba calidad: snap length, dropped packets, offload, capture filter, ring buffer y hora inicial. Un checksum incorrecto en host puede ser offload artifact. Un segmento grande puede provenir de GRO/TSO y no existir así en el cable. Un packet ausente en un archivo limitado no es network loss hasta demostrar que el punto debía verlo.

Leer fronteras en orden

Frontera Evidencia correcta Evidencia de fallo
Link e IP dirección, addresses y ruta coherentes ARP/NDP ausente, ICMP, MTU, asimetría
TCP SYN, SYN-ACK, ACK y sequence retransmission, RST, zero window, timeout
TLS ClientHello, ServerHello y progreso alert o límite SNI/ALPN/certificate
Aplicación request completo y response relacionado status, gap o cierre temprano
Usuario response time o failure window stall ligado a una frontera

Detente en la primera frontera sin éxito. Si TCP no termina, no empieces por HTTP. Si request llega al proxy pero no al upstream, el límite está en proxy o su camino. Si llega al upstream sin response antes del timeout, usa ACK y progreso de bytes para separar application delay de network loss.

Separar observación e hipótesis

La observación se puede señalar: «Client envió hasta cierta sequence; sender repitió un segmento tres veces y no apareció ACK avanzado en este punto». La hipótesis es «el camino perdió el segmento». Otra captura o dropped records pueden refutarla. Para cada hipótesis escribe una prueba favorable y una contraria.

Retransmission o duplicate ACK no asigna culpable. Reordering, loss, capture artifact y receiver delay producen marcas similares. Relaciona dirección, sequence, ACK, SACK, RTT, window y tiempo de aplicación. En DNS o DHCP enlaza transaction ID, addresses e intentos; en HTTP, request y response; en TLS, dirección del handshake.

Preservar el original

Calcula checksum y conserva el original sin cambios. Filtra, recorta y redacta una working copy. Registra input, transformación, hora, packet count antes/después, checksum y motivo. Tras reescribir timestamps o eliminar packets, esa copia pierde capacidad para algunas conclusiones de tiempo o secuencia.

Sustituye addresses e identificadores de forma constante para seguir el mismo endpoint. No elimines ports, directions o lengths necesarios. Guarda aparte el mapa secreto. Revisa límites de captura y exportación y el flujo general de PCAP Surgery.

QA antes de publicar

¿Título y respuesta tratan el mismo flow? ¿Cada duración nombra reloj y puntos? ¿Está identificada la primera frontera fallida? ¿Existe explicación alternativa? ¿Se repite cambiando una variable? ¿Se conserva el original? Declara el límite: «Esta captura demuestra comportamiento junto al client durante este intervalo; no demuestra la ejecución interna del server».

Semrush no se distribuye por plantilla. El término validado PCAP analyzer pertenece solo a la página del producto; este artículo conserva su pregunta técnica y no inventa volumen ni KD.

<!-- pcap-localized-evidence-foundation-v1:end --><!-- pcap-localized-flow-verdicts-v1:start -->

Libro de flow y prueba de descarte

Para «Análisis PCAP de VPN y sujeción de TCP MSS: búsqueda de segmentos de gran tamaño, discrepancias de MTU y túneles lentos», crea una fila por dirección: endpoints con alias, primer/último packet, bytes enviados y reconocidos, resets, retransmissions, requests y responses. No mezcles conexiones por compartir hostname; source port, inicio e initial sequence separan sessions. Con NAT o proxy documenta la relación de flows sin esperar iguales sequence o ports.

Calcular TCP, no contar etiquetas

Sigue next expected sequence del receiver. El payload mueve sequence por su longitud; SYN y FIN consumen un número. Duplicate ACK estable tras segmentos superiores apoya loss o reordering. SACK blocks muestran ranges recibidos, no dónde se perdieron. Si retransmission aparece junto al sender y no junto al receiver, prueba el tramo; si falta el segmento original en sender capture, revisa capture loss u offload.

Separa fast retransmit tras duplicate ACKs de RTO tras silencio. Compara RTT previo, advertised window, zero-window probes, burst y tamaño. No cada label es pérdida independiente: overlap, spurious retransmission o captura iniciada a mitad cambian la clasificación.

Medir tiempo con fronteras

Usa request first byte, request complete, response first byte y response complete. TTFB no equivale a tiempo de server sin punto y transporte. Retransmission antes de response añade posible network delay; request reconocido y silencio largo apoya application wait. Indica valor, unidad, clock y punto.

Con dos puntos alinea un packet distintivo en ambas direcciones, estima offset y usa intervals internos. Si clock es incierto, da un range. Compara ventanas correctas y fallidas de duración y carga similares.

Preguntas por protocolo

DNS: ¿ID, nombre y tipo coinciden, y retry cambia resolver o source port? DHCP: ¿Discover, Offer, Request y ACK pertenecen al mismo client identifier? TLS: ¿último handshake message por dirección y alert visible o cifrado? HTTP: ¿quién genera 4xx/5xx y existe upstream flow? TCP close: ¿quién envía FIN/RST y qué bytes quedan sin ACK?

Prueba decisiva y entrega

Elige dos hipótesis y una prueba que las separe. Captura al otro extremo separa network loss de measurement loss; desactivar offload en test comprueba artifact; request idéntico por path fijo prueba intermittency; log upstream contra packet boundary prueba application delay. Escribe resultados esperados antes.

Acepta cuando otro reviewer repite el cálculo con metadata, encuentra la misma frontera y entiende límites. Entrega original/derived checksum, filter, packet ranges y pasos de trim/redaction. Termina con owner, acción y condición medible.

Revisión de reproducción

Abre una connection nueva y repite tres veces con iguales entradas y filtros. Ports e initial sequence pueden cambiar, pero frontera, dirección y patrón deben repetirse. Informa éxitos y fallos. Una corrección cambia una variable y debe producir el cambio de packets previsto, no solo ocultar el mensaje.

Abre la copia derivada en otro equipo. El reviewer encuentra alias, clock, capture point, último éxito, primer fallo y alternativa. Busca hostname, query, header o payload sensible tras redaction, conservando lengths y directions necesarios. Enumera lo no probado: otra dirección, IPv6, reconnect o carga.

Cierra como demostrado dentro del alcance, todavía reproducible o pendiente por una captura concreta. No escribas «red arreglada» tras probar un solo flow.

<!-- pcap-localized-flow-verdicts-v1:end -->