tutorialspoint thread multithread java networking network-programming qos

multithread - thread java tutorialspoint



¿Cómo escucho el tráfico de red en una interfaz/dispositivo usando Java? (1)

Estoy buscando implementar un sistema de QoS inversa (porque no tengo los recursos para saturar mi red y realmente hacer QoS). Todo lo que he visto sobre la captura de tráfico de red usando Java parece apuntar a Jpcap , una biblioteca de más de 3 años, o a otros proyectos similares. Además, leer la documentación de java.net no ayudó mucho, aunque la clase ServerSocket parece estar en el camino correcto.

Lo que estoy buscando es el código fuente de la biblioteca real, o un marco más reciente / compatible para esto. Quiero capturar todos los paquetes que llegan a través de la red y colocarlos en los buffers, y luego liberarlos de los buffers después de un período de tiempo designado, dependiendo del protocolo que esté llevando el paquete.

Sé cómo crear aplicaciones de socket, pero no tengo idea de cómo subir de nivel (técnico) a las interfaces. ¡La ayuda sería muy apreciada!


Lo que estás buscando está simplemente fuera del alcance de una aplicación java universal.

Si planea mantener un sistema operativo específico en mente, como Windows o Linux (mis siguientes ejemplos), entonces hay algunas cosas que puede hacer.

Para Windows, cualquier aplicación determinada no podrá hacer esto sin privilegios de controlador. WinPCap es probablemente la herramienta más utilizada en este caso, y eso es lo que utiliza jpcap. Es un "controlador" que, básicamente, es solo el tráfico de Man-in-the-middle.

Para Linux, eche un vistazo a esta otra publicación https://security.stackexchange.com/questions/13267/monitoring-outgoing-network-traffic

Sé que esta es una respuesta lateral ya que no da ningún código Java, pero eso se debe a que Java simplemente no está diseñado para interactuar con el sistema de esa manera.