Tienes razon en que ha sido una discusion esteril, pero volviendo al tema: por que piensas eso de lo de redireccionar puertos?
Creo que seria muy util conseguir que el Engel conectase de nuevo con los server para ver cual es la respuesta (aunque no sea la solucion), y comparar con la que obtiene un 8100. Asi tendriamos una base para ver si los protocolos cambian tambien (y de que forma).
Yo he probado a simplemente redireccionar puertos, probando con varias de las IPs y puertos posibles, pero no funciona.
En cuanto a lo de ver la respuesta, quizás pueda ser interesante. Por lo que yo he visto, es difícil comparar, quizás si tuviésemos una captura de los 4800 cuando funcionaban sería más sencillo comparar. Por mis pruebas, las respuestas haciendo una simple redirección son:
1. No hay respuesta, el servidor espera una información y como no es la que espera simplemente no responde e incluso cierra la conexión.
2. Hay respuesta y siempre es el mismo resultado:
2.1. Para los puertos acabados en (19412,19312..): Un paquete de 16 bytes donde los bytes 0 a 8 son iguales a los bytes 8 a 15. (Si le envías ese mismo paquete te devuelve 16 bytes nulos (0x00))
2.2. Para los puertos acabados en 00 (19500, 19600..): devuelve un paquete que siempre es el mismo de 500 y pico bytes.
Estoy seguro al 99% que el protoco del 8100 está cifrado. El paquete de 16 bytes esta cifrado usando alguna clave hardcodeada en el firmware, y en ese paquete se incluye de alguna forma la dirección MAC del deco (no se si el servidor podría estar usandola para autenticar al cliente). Y además de la MAC debería también incluir la información que usen (no se que usarán) para solicitar la clave de descifrado del video.
Ese paquete de 16bytes podría ser algo así como:
cifrar(MAC+IDCANAL, clave)
Por eso me gustaría tener una dirección MAC de un deco y una captura de red.
Los paquetes de 16bytes a los puertos acabados en 00 (según las capturas que compartió carol) siempre son los mismos al principio de la comunicación (no importa el canal, ni el tiempo), y a partir del primer paquete el siguiente es diferente. No tengo capturas más largas, así que no se si a partir de ahí los paquetes cambian o no. Ese primer paquete que es siempre igual siempre recibe como respuesta un paquete de 500 y pico bytes. Y a partir de ahí el siguiente que es diferente recibe una respuesta de 100 y pico bytes.
Sobre los puerto acabado en 12 no se mucho, ya que en las capturas viene un solo paquete por servidor y la respuesta es de 16 bytes. Con un programa que hice, si le envío los 16 bytes que envñia el deco, recibo los otros 16bytes distintos, y cada 4 segundos el servidor me envía (sin yo enviar nada) un paquete de 16 bytes diferente. Si le reenvío el último paquete que el servidor me envío, se dan situaciones extrañas en las que llega a responderme con 16bytes nulos (0x00).
La verdad que no se para que usa dos conexiones con cada servidor por puertos diferentes, pero lo único que se me ocurre es que por un lado obtenga la información de descifrado de video, y por otro lado intercambie algún tipo de clave de cifrado o nonce o algo necesario para comprender los paquetes del otro puerto.