C incorporado: compruebe la conexión a Internet

8

¿Hay alguna forma de verificar si realmente mi dispositivo incorporado tiene una conexión que funciona (es decir, puede llegar a la WAN)? Mi dispositivo no tiene RTOS, por lo que no puedo confiar en las funcionalidades del sistema operativo como ping. Puedo ver que el DHCP proporciona una IP correcta a mi dispositivo, pero no es 100% cierto que, dada una IP correcta, puedo contactar, por ejemplo, www.google.com.

Ya he investigado un poco, y hay diferentes enfoques:

  1. es imposible
  2. es una pregunta estupida
  3. soluciones alternativas de todo tipo, pero me siento seguro con respecto a SO, así que lo intentaré.

Entonces, si esta pregunta tiene 1) o 2) como respuestas, la eliminaré y está bien.

panc_fab
fuente
¿Para qué estás usando el dispositivo? ¿Se verifica la conexión a Internet para verificar que la conexión funciona cuando su funcionalidad principal no funciona?
Helmar
@Helmar Necesito estar seguro de que la conexión a Internet funciona porque necesito acceder al dispositivo desde Internet e intercambiar datos con él
panc_fab
1
No estoy seguro de entender lo que estás tratando de hacer. Su objetivo es acceder al dispositivo en cualquier momento desde Internet de forma remota, ¿correcto? Entonces ya tiene un componente activo bajo su control en Internet. ¿Por qué no intentas llegar a ese componente y hacer lo que sea que planeas restablecer la conectividad si eso falla?
Helmar
Sí, supongo que lo que está diciendo podría ser lo más inteligente que hacer ... a veces me pierdo en problemas que no son problemas, soy bastante nuevo en el entorno incrustado y me confundo fácilmente. ¡Gracias! Publicaré una respuesta más tarde para cerrar la pregunta.
panc_fab

Respuestas:

4

Gracias chicos por el apoyo. Finalmente he usado el método descrito por Helmar en el que solo trato de alcanzar el objetivo deseado y ver. Si puedo obtener una respuesta del objetivo, sé que mi conexión está activa y funcionando; de lo contrario, logro desconectar el dispositivo y volver a intentarlo con una nueva conexión nueva.

panc_fab
fuente
3

No puedo confiar en las funcionalidades del sistema operativo como ping.

Implemente ping usted mismo. Probablemente pueda encontrar un ejemplo para su plataforma.

O póngase en contacto con algún servicio a través de algún otro protocolo que pueda admitir; simplemente no asuma que el servicio permanecerá disponible durante la vida útil del dispositivo, a menos que sea un servidor que administre.

Necesito acceder al dispositivo desde Internet e intercambiar datos con él.

Si su objetivo real es permitir el tráfico entrante , generalmente es una mala idea y es difícil para los usuarios finales permitir que sus redes lo permitan. En su lugar, normalmente haría / mantendría una conexión saliente a un servidor inactivo que podría hacer un túnel o retransmitir el tráfico entrante examinado destinado a su dispositivo. Puede equipar fácilmente el código que hace / mantiene / vuelve a conectar este túnel con un mecanismo de salida para indicar su estado.

Chris Stratton
fuente