¿Por qué los módulos WiFi no pueden escuchar solicitudes HTTP remotas?

0

Puedo ver que ATMEL tiene este módulo WiFi - ATWINC1500 . Sé que los módulos como ESP8266 no pueden escuchar las solicitudes fuera de la red (lo que significa que no estoy en casa y quiero controlarlo desde mi iPhone).

Estoy tratando de entender qué palabra clave debo buscar en la hoja de datos, para entender si puedo configurarlo como una estación que escuche solicitudes HTTP todo el tiempo.

¿Por qué, por ejemplo, con ESP , tiene que configurar un reenvío de puerto para hacer esto, y cuando compra una máquina de café inteligente, puede hacerse sin ningún problema? ¿Cuál es la diferencia en el hardware que permite a estas compañías hacer que los dispositivos inteligentes sean accesibles sin todos estos inconvenientes técnicos de redirección de puertos? ¿Cómo es que mi computadora es accesible desde cualquier lugar y estos módulos no?

    
pregunta LindaZ

1 respuesta

4

Esta no será una respuesta completa, ya que todo este problema domina el desarrollo de IoT y es demasiado grande para caber aquí. En cambio, será una lista de lugares para comenzar a encontrar las soluciones. Ponga las palabras en negrita en su motor de búsqueda.

El problema clave es NAT . Esto normalmente hace que sea imposible iniciar conexiones en una red de usuario final, solo son posibles las conexiones salientes. UDP es compatible a través de "pseudo-conexiones" que deben pasar una cierta cantidad de tráfico para mantenerse abierto. NAT se implementa ampliamente debido a la escasez de direcciones IPV4 .

NAT puede aplicarse a Wifi (para dispositivos en instalaciones de consumidores) o GSM. Es muy raro que una red GSM esté configurada para permitir TCP entrante con direcciones IP públicas.

Así que hay varias soluciones alternativas. HTTP long polling , donde el dispositivo se conecta a un servidor y deja la conexión abierta. Sistemas para abrir puertos a través de NAT como STUN y UPnP .

Muchos sistemas de IoT parecen utilizar MQTT , que envuelve algunas de estas cosas para ti.

Otra alternativa es implementar IPv6 y obtener las direcciones IPv6 públicamente enrutables de los dispositivos a las que se pueden realizar las conexiones entrantes. Sin embargo, esto depende de que sus clientes actualicen sus redes.

Vale la pena buscar desmontaje o ingeniería inversa de dispositivos existentes, como máquina de café (solo LAN, no disponible en el trabajo, por lo que no lo hace) No resuelva el problema de conexión entrante de su pregunta) o lightbulbs (desastrosamente inseguro).

    
respondido por el pjc50

Lea otras preguntas en las etiquetas