Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

317
Vistas
¿Cómo calcular la tasa de paquetes recibidos en una PC basada en Linux? Como pps o fps

Estoy escribiendo un programa de red que puede calcular la tasa de paquetes de datos precisa (paquete por segundo, cuadro por segundo, bps). Ahora tengo un dispositivo llamado testcenter que puede enviar un flujo preciso a una computadora específica (el protocolo es UDP/IP) en Linux, me gusta saber los pps (paquetes por segundo) precisos con mi programa, he considerado gettimeofday(&start,NULL) antes de llamar a recvfrom() y actualizar el contador de paquetes, luego llamar a gettimeofday(&end,NULL) y obtener la tasa de pps. Espero que haya una solución mejor que esta, ya que la barrera de usuario/núcleo se atraviesa en las llamadas al sistema. Saludos.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Creo que deberías usar clock_gettime() con CLOCK_MONOTONIC_COARSE. Pero solo será preciso hasta el último tic. Por lo tanto, puede estar errado por decenas de milisegundos. Pero definitivamente es más rápido que usarlo con CLOCK_MONOTONIC_RAW. También puede usar gettimeofday pero clock_gettime con CLOCK_MONOTONIC_RAW es ligeramente más rápido y de mayor resolución que gettimeofday. También gettimeofday() da la hora del reloj de pared, que podría cambiar incluso para el horario de verano... No creo que debas usarlo para medir la tasa de tráfico.

over 4 years ago · Santiago Trujillo Denunciar

0

Su observación de que gettimeofday cambia al modo kernel es incorrecta para Linux en algunas arquitecturas populares debido al uso de vsyscalls. Claramente, usar gettimeofday aquí no es una mala opción. Sin embargo, debería considerar usar un reloj monótono, vea man 3 clock_gettime . Tenga en cuenta que clock_gettime aún no se ha convertido a vsyscall para tantas arquitecturas como gettimeofday .

Más allá de esta opción, puede configurar la opción de socket SO_TIMESTAMP y obtener marcas de tiempo precisas a través recvmsg .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda