Pregunta:
¿Cómo puedo monitorear pasivamente la pérdida de paquetes en las conexiones TCP hacia / desde mi máquina?
Básicamente, me gustaría una herramienta que se sienta en segundo plano y observe TCP ack / nak / re-transmite para generar un informe sobre qué direcciones IP de pares "parecen" estar experimentando una gran pérdida.
La mayoría de preguntas como esta que encuentro sobre SF sugieren el uso de herramientas como iperf. Pero, necesito monitorear las conexiones hacia / desde una aplicación real en mi máquina.
¿Están estos datos ahí en la pila TCP de Linux?
Respuesta:
Para tener una idea general de la escala de su problema, netstat -s
rastreará el número total de retransmisiones.
# netstat -s | grep retransmitted
368644 segments retransmitted
Puede asociar grep para segments
para obtener una vista más detallada:
# netstat -s | grep segments
149840 segments received
150373 segments sent out
161 segments retransmitted
13 bad segments received
Para una inmersión más profunda, probablemente querrá encender Wireshark.
En Wireshark, configure su filtro en tcp.analysis.retransmission
para ver las retransmisiones por flujo.
Esa es la mejor opción que se me ocurre.
Otros callejones sin salida explorados:
- Las herramientas de netfilter / conntrack no parecen mantener retransmisiones
- stracing
netstat -s
mostró que solo está imprimiendo/proc/net/netstat
- la columna 9 en / proc / net / tcp parecía prometedora, pero lamentablemente parece no estar en uso.