No conozco particularmente Internet, y las tecnologías de IoT son especialmente confusas para mí. Estaba leyendo este libro blanco de Stanford sobre la estructura de Internet. En el Diagrama 2, muestra una representación de la "pila" de software que una computadora (PC) usaría para crear, procesar y enviar un mensaje, a través de Internet, a otra computadora.
¿Todos los tipos de computadoras (teléfonos inteligentes / televisores / consolas de juegos, etc.) utilizan este formato?
¿Importa el sistema operativo?
(En este sentido) ¿hay alguna diferencia entre Internet celular y Wifi / Ethernet?
¿Qué sucede con los dispositivos de una sola función que no parecen tener una capa de "Aplicación", por ejemplo, cámara conectada a la web, interruptores de luz o termostatos?
fuente
Respuestas:
Hay algunos posibles conceptos erróneos o malentendidos en la pregunta que se abordará en esta publicación.
La presencia de estos conceptos erróneos requiere la inclusión de una explicación de lo siguiente (para proporcionar un contexto para la discusión posterior):
Entonces las preguntas serán abordadas directamente.
Tenga en cuenta que dada su importancia y complejidad, se han escrito series completas de libros sobre el conjunto de protocolos TCP / IP. Las definiciones y explicaciones aquí se extraerán principalmente de Wikipedia, TCP / IP Ilustrado Volumen 1 Segunda edición: Los protocolos de Stevens y Fall, y el Tutorial TCP / IP de IBM y Descripción técnica general .
1. Internet
El Internet es técnicamente una red de área amplia (WAN) , pero de una manera más útil pensar que es como una especie de SuperNetwork (una red de redes) o un agregado de muchos diferentes inter conectados netos obras. Aquí hay una imagen de las rutas de enrutamiento a través de una parte de Internet:
Una lectura divertida sobre cómo funciona Internet se puede encontrar en el artículo de Arstechnica Cómo funciona Internet: fibra submarina, cerebros en frascos y cables coaxiales .
Entonces, ¿cómo se pueden comunicar entre sí diferentes sistemas que se ejecutan en diferentes plataformas de hardware conectadas a diferentes redes? ¿Cómo es posible la comunicación entre una gama tan amplia y heterogénea de sistemas y redes? ¿Cómo puede suceder todo esto simultáneamente?
2. El conjunto de protocolos de Internet
La respuesta la proporciona el conjunto de protocolos de Internet, también conocido como el conjunto de protocolos TCP / IP. Estas preguntas fueron consideradas durante el proceso de diseño de la arquitectura de Internet (TCP / IP ilustrado, Sección 1.1: Principios arquitectónicos):
Desde Internet Protocol Suite (Wikipedia):
Una forma de pensar en el conjunto de protocolos TCP / IP es como una especificación de cómo los procesos que se ejecutan en diferentes sistemas y diferentes redes pueden comunicarse entre sí. En esencia, el conjunto de protocolos TCP / IP proporciona un estándar para la comunicación entre procesos.
Cualquier sistema que implemente correctamente el conjunto de protocolos TCP / IP puede usar la funcionalidad que proporciona para permitir que sus procesos se comuniquen a través de Internet. De hecho, para que los procesos se comuniquen a través de Internet con otros procesos que se ejecutan en sistemas remotos en otras redes, un sistema debe utilizar protocolos de suite TCP / IP que cumplan con los estándares.
3. Aplicaciones
Del software de aplicación (Wikipedia):
Una aplicación puede considerarse como un proceso de espacio de usuario que se ejecuta en un sistema. Además de los ejemplos enumerados anteriormente, esto puede incluir programas tales como virus informáticos (modo sin núcleo), servidores web, aplicaciones de cámara y programas de agregación de datos de sensores.
Cuando una aplicación transmite y recibe datos a través de Internet, debe utilizar la implementación del conjunto de protocolos TCP / IP de su sistema host. Desde la capa de aplicación (Wikipedia):
La capa de aplicación del conjunto de protocolos TCP / IP incluye protocolos como el Protocolo de transferencia de archivos (FTP), el Sistema de nombres de dominio (DNS) y, probablemente, el Protocolo de transferencia de hipertexto (HTTP).
Como ejemplo, el protocolo de capa de aplicación HTTP especifica cómo se transmiten los datos entre 2 procesos que se ejecutan en (generalmente) diferentes sistemas: la aplicación cliente, un navegador web y la aplicación del servidor, el proceso del servidor web.
Aclaración de posibles conceptos erróneos
El conjunto de protocolos TCP / IP no es una pila de software. De Technopedia :
Más bien, es una pila de protocolos, generalmente implementada por el núcleo (también de Technopedia ):
El conjunto de protocolos TCP / IP es una especificación de comunicaciones independiente del hardware y del sistema operativo, no un formato . Si un proceso que se ejecuta en una plataforma de hardware necesita comunicarse con un proceso que se ejecuta en un sistema remoto en una plataforma de hardware diferente y la comunicación se realiza a través de Internet, entonces los sistemas deben
Mi interpretación de esta pregunta es "¿Hay alguna diferencia en la forma en que un dispositivo móvil se conecta a una red GSM y la forma en que un dispositivo móvil se conecta a una red WiFi?"
La diferencia está en la capa de interfaz de red.
Esta pregunta expone la pobre representación del conjunto de protocolos TCP / IP en el diagrama del artículo vinculado a la pregunta. Como referencia, aquí está el diagrama:
La capa más baja, denominada "hardware", debe denominarse capa de enlace , capa de control de acceso a medios (MAC) o capa de interfaz de red .
De la "Tutorial TCP / IP y descripción técnica general" de IBM, página 34:
Aquí hay una representación correcta y superior (de la Guía TCP / IP ):
La razón por la que la discusión sobre la capa de interfaz de red es relevante es porque es en esta capa donde hay una diferencia en la forma en que un dispositivo celular / móvil se conecta a una red GSM frente a una red WiFi.
cuando se conecta a una red GSM, el protocolo de capa de interfaz de red empleado para manejar la conexión entre el dispositivo móvil y la estación base del transceptor (BTS) generalmente se especifica por 3G
Cuando se conecta a un punto de acceso inalámbrico WiFi (WAP), el protocolo utilizado está especificado por el estándar IEEE 802.11 .
Como se describió anteriormente, los protocolos en la capa de aplicación del conjunto de protocolos TCP / IP proporcionan un estándar sobre cómo se intercambian los datos de la aplicación entre procesos.
Las capas son conceptuales. No residen en un sistema o en una plataforma de hardware.
Las cámaras conectadas a la web, los interruptores de luz y los termostatos pueden tener procesos que se ejecutan en ellos que se comunican a través de Internet con procesos que se ejecutan en sistemas remotos (comprobación de actualizaciones de firmware, intercambio de datos con un servidor, etc.). Estos procesos, o aplicaciones, utilizarán la implementación del conjunto de protocolos TCP / IP para lograr esta comunicación entre procesos.
El conjunto de protocolos TCP / IP y los sistemas integrados ("IoT")
Si bien hay una variedad de diferentes aplicaciones que utilizan diferentes protocolos de capa de aplicación que se ejecutan en PC o servidores tradicionales, no hay tanta variación en términos de cómo las plataformas de hardware se conectan a sus respectivos puntos de acceso (interfaz de red / capa de enlace de datos). Se realiza principalmente por cable o de forma inalámbrica a través de Ethernet.
La situación es algo diferente cuando se trata de la gran variedad de sistemas integrados que se comunican a través de TCP / IP. Aquí hay una ilustración de esto (de Postscapes ):
Para obtener más información, consulte estos artículos:
Comprender los protocolos detrás de Internet de las cosas
Estándares y protocolos de IoT
Guía de tecnología de IoT
fuente
Para que algo se intercambie en Internet, tendrá que pasar por una pila de IP en alguna parte.
El protocolo IP está definido por el RFC 791 , por lo que el SO / Firmware debe cumplirlo, sea lo que sea.
Simplificando un poco, la diferencia aquí estará en la señal de radio de capa 1 (física) frente a la señal eléctrica en los cables. Más detalles en la página de wikipedia del modelo de interconexión de sistemas abiertos (modelo OSI) .
Todos sirven para transponer la capa 3 (Red), IP en este caso, en sus medios específicos.
La capa de aplicación se relaciona con un protocolo de comunicación específico (HTTP, SSH, etc.), no tiene que ser una aplicación como Chrome o Firefox, por ejemplo.
Por lo general, esos protocolos se implementarán en la parte superior de TCP , algunos están en la parte superior de UDP cuando hay un deseo de no bloquear la espera del reconocimiento o cuando obtener un paquete desactualizado no tiene sentido (llamadas de voz, transmisión). Hay otros protocolos de capa 4, pero generalmente para usos específicos, como ICMP para
ping
. TCP es el protocolo de elección cuando desea asegurarse de que algunos datos lleguen a destino.Para un 'dispositivo remoto', como el termostato en su ejemplo, puede usar protocolos ya existentes como HTTP o usar uno patentado para enviar sus datos, que aún estarán en la capa de Aplicación, ya que no será solo un transporte protocolo.
Puede hacerse solo en la capa 4, pero eso necesita crear un nuevo protocolo y la sobrecarga generalmente no vale la pena y hace que el sistema sea incompatible con otros, el uso de estándares abiertos es un mejor enfoque en mi humilde opinión.
fuente
Aunque es cierto que cualquier dispositivo conectado a Internet utilizará TCP / IP (o UDP) para la comunicación, es realmente el siguiente nivel en la pila donde las cosas se ponen interesantes.
Cualquier dispositivo IoT moderno utilizará TLS para proporcionar cifrado y autenticación. Esto evita (en teoría) que cualquier otra persona observe o interfiera con los mensajes que se transmiten. Una consideración importante de la pila TCP / IP es que gran parte de la información que se transmite se puede observar trivialmente, y esto a menudo conduce muy fácilmente a fallas de seguridad.
Los dispositivos no necesitan conectarse a Internet 'en origen', por lo que no es necesario implementar TCP a través de Bluetooth (como ejemplo). También puede ver dispositivos IoT que utilizan protocolos de teléfonos móviles (como SMS o mensajes de texto normales) como su salto final. Eventualmente, estos protocolos (seleccionados de alguna manera para el entorno instalado) es probable que se conecten a 'Internet' por un dispositivo concentrador.
fuente
Todos los dispositivos que desean usar TCP sobre IP necesitan una pila TCP / IP.
El protocolo está estandarizado, de modo que los dispositivos de diferentes fabricantes, o que utilizan diferentes sistemas operativos, pueden entenderse entre sí.
Tenga en cuenta que TCP se asegura de que lleguen los paquetes de datos, o el remitente será notificado de su pérdida. TCP se usaría cuando no pueda permitirse perder ningún dato sin estar al tanto (por ejemplo, comunicación con su banco).
También hay UDP, que envía paquetes y "espera que lleguen allí". Esto se puede usar, por ejemplo, para transmitir música o video, donde la pérdida de unos pocos cuadros no es fatal.
La parte importante es la estandarización.
fuente
La pila en sí es un concepto virtual. Cada capa en la pila modifica los bits finales que se envían a través del medio físico (ondas de radio u otras señales electrónicas). No hay una regla que diga que cada capa en la pila debe diseñarse en una sola unidad discreta de código o hardware. Por ejemplo, iEthernet Chips combina capas TCP, IP, MAC y PHY, dejando a los desarrolladores la tarea de implementar TLS y el software de capa de aplicación.
Dicho esto, todos los bits deben cumplir con los diversos protocolos involucrados, y por esta razón, por lo general, es más fácil diseñar cada capa como una entidad separada, para que puedan probarse y verificarse de forma independiente. La mayoría de los dispositivos, incluidos los teléfonos inteligentes, los televisores inteligentes y las consolas de juegos, suelen comprar sus chips a terceros que se han especializado en alguna área. Por ejemplo, la mayoría de los teléfonos usan solo uno de los pocos chips bluetooth diferentes; Esto significa que el fabricante no tiene que preocuparse por reinventar la rueda con cada nuevo producto.
En teoría, algunos dispositivos pequeños y especializados pueden tener un solo procesador con SoC (Software on Chip) integrado que maneja todas las capas de la red (aplicación, TLS, TCP, IP, PHY) como una única unidad de código discreta. No puedo encontrar ningún ejemplo concreto en este momento, pero no me sorprendería si algunos dispositivos de función pequeños, de baja potencia o dedicados combinaran todas las capas de la pila en una sola unidad para reducir el consumo de energía (extender la vida útil de la batería). Los productos más grandes y complicados, como televisores, teléfonos y sistemas de juegos, probablemente tengan al menos 3 capas (aplicación, sistema operativo y piezas de hardware), mientras que una tostadora podría tener solo 1 o 2 capas.
Nota: No estoy diciendo que la tostadora en particular que vinculé tiene 1 o 2 capas, solo que sería lógico si estuviera diseñada de esa manera, siendo un dispositivo de un solo propósito.
fuente