¿Todas las cosas conectadas a Internet utilizan la misma pila "Aplicación - TCP - IP - Hardware" para comunicarse?


15

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?



3
Es mucho mejor hacer una sola pregunta por pregunta; sin embargo, eso es un poco difícil para estas preguntas muy básicas. Si tiene preguntas de seguimiento, asegúrese de intentar hacerlas más específicas.
Sean Houlihane

Todos los dispositivos tienen una capa de aplicación. La capa de aplicación para un interruptor de luz conectado a la web es el software que enciende y apaga la luz cuando recibe un comando.
user253751

@immibis esto va a sonar terriblemente pedante, pero las capas de pila de protocolos no son propiedades que un dispositivo pueda poseer. En TCP / IP, la capa de aplicación contiene los protocolos de comunicación y los métodos de interfaz utilizados en las comunicaciones de proceso a proceso a través de una red informática IP. Un dispositivo puede alojar un sistema y ese sistema puede estar ejecutando aplicaciones, pero un dispositivo no tiene una capa de aplicación. TCP / IP en sí es un modelo conceptual.
julian

@SYS_V Cuando digo "el dispositivo tiene una capa de aplicación" quiero decir "el dispositivo tiene algún componente de software que implementa lo que TCP / IP describe como la capa de aplicación"
user253751

Respuestas:


26

Hay algunos posibles conceptos erróneos o malentendidos en la pregunta que se abordará en esta publicación.

  • 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?

  • (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" ?

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):

  • ¿Qué es Internet?
  • Qué es el conjunto de protocolos TCP / IP
  • Qué es una aplicación

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:

Visualización de ruta de ruta

  • Internet consta de muchas redes conectadas
  • Una red puede constar de 1 o más sistemas ( host )
  • Un sistema conectado generalmente se ejecuta en algún tipo de plataforma de hardware
  • Existe una variación significativa en los tipos de sistemas conectados a las redes y el hardware en el que se ejecutan.

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):

Varios objetivos guiaron la creación de la arquitectura de Internet. En [C88], Clark recuerda que el objetivo principal era "desarrollar una técnica efectiva para la utilización multiplexada de las redes interconectadas existentes". La esencia de esta declaración es que la arquitectura de Internet debería ser capaz de interconectar múltiples redes distintas y que múltiples actividades deberían ser capaz de ejecutarse simultáneamente en la red interconectada resultante .

Desde Internet Protocol Suite (Wikipedia):

El conjunto de protocolos de Internet es el modelo conceptual y el conjunto de protocolos de comunicaciones utilizados en Internet y redes informáticas similares.

El conjunto de protocolos de Internet proporciona una comunicación de datos de extremo a extremo que especifica cómo se deben empaquetar, direccionar, transmitir, enrutar y recibir los datos . Esta funcionalidad está organizada en cuatro capas de abstracción que se utilizan para clasificar todos los protocolos relacionados de acuerdo con el alcance de la red involucrada.

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.

Conjunto de protocolos TCP / IP

3. Aplicaciones

Del software de aplicación (Wikipedia):

Un programa de aplicación (aplicación o aplicación para abreviar) es un programa de computadora diseñado para realizar un grupo de funciones, tareas o actividades coordinadas en beneficio del usuario. Los ejemplos de una aplicación incluyen un procesador de textos, una hoja de cálculo, una aplicación de contabilidad, un navegador web, un reproductor multimedia, un simulador de vuelo aeronáutico, un juego de consola o un editor de fotos. El software de aplicación de sustantivo colectivo se refiere a todas las aplicaciones colectivamente. Esto contrasta con el software del sistema, que se dedica principalmente a ejecutar la computadora.

Software de la aplicacion

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):

En TCP / IP, la capa de aplicación contiene los protocolos de comunicación y los métodos de interfaz utilizados en las comunicaciones de proceso a proceso a través de una red informática de Protocolo de Internet (IP). La capa de aplicación solo estandariza la comunicación y depende de los protocolos subyacentes de la capa de transporte para establecer canales de transferencia de datos de host a host y administrar el intercambio de datos en un modelo de red cliente-servidor o punto a punto.

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

  1. 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.

El conjunto de protocolos TCP / IP no es una pila de software. De Technopedia :

Una pila de software es un grupo de programas que funcionan en conjunto para producir un resultado o lograr un objetivo común. La pila de software también se refiere a cualquier conjunto de aplicaciones que funciona en un orden específico y definido hacia un objetivo común, o cualquier grupo de utilidades o aplicaciones de rutina que funcionan como un conjunto. Los archivos instalables, las definiciones de software de los productos y los parches se pueden incluir en una pila de software. Uno de los paquetes de software más populares basados ​​en Linux es LAMP (Linux, Apache, MYSQL, Perl o PHP o Python). WINS (Windows Server, Internet Explorer, .NET, SQL Server) es un popular paquete de software basado en Windows.

Más bien, es una pila de protocolos, generalmente implementada por el núcleo (también de Technopedia ):

Una pila de protocolos se refiere a un grupo de protocolos que se ejecutan simultáneamente y que se emplean para la implementación del conjunto de protocolos de red.

Los protocolos en una pila determinan las reglas de interconectividad para un modelo de red en capas, como en los modelos OSI o TCP / IP. Para convertirse en una pila, los protocolos deben ser interoperables, pudiendo conectarse tanto verticalmente entre las capas de la red como horizontalmente entre los puntos finales de cada segmento de transmisión.


  1. ¿Todos los tipos de computadoras (teléfonos inteligentes / televisores / consolas de juegos, etc.) utilizan este formato ?

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

  • implementar correctamente el conjunto de protocolos TCP / IP y
  • los protocolos apropiados dentro de esta suite deben usarse para lograr la comunicación entre procesos

  1. (En este sentido) ¿hay alguna diferencia entre Internet celular y Wifi / Ethernet?

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:

Diagrama TCP / IP de mierda

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:

La capa de interfaz de red, también llamada capa de enlace o capa de enlace de datos, es la interfaz para el hardware de red real. Esta interfaz puede o no proporcionar una entrega confiable, y puede estar orientada a paquetes o transmisiones. De hecho, TCP / IP no especifica ningún protocolo aquí, pero puede usar casi cualquier interfaz de red disponible, lo que ilustra la flexibilidad de la capa IP. Ejemplos son IEEE 802.2, X.25 (que es confiable en sí mismo), ATM, FDDI e incluso SNA.

Aquí hay una representación correcta y superior (de la Guía TCP / IP ):

Diagrama superior de la pila 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 .


  1. ¿Qué pasa 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

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 ):

IoT y TCP / IP 1

IoT y TCP / IP 2

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


En este nivel de detalles, mi lado de Netadmin está triste porque no hay una palabra sobre TCP / IP que signifique TCP en IP, TCP no está vinculado a IP en absoluto, también se ha implementado en redes IPX (incluso si el sigle es cerca, eran 2 protocolos muy diferentes)
Tensibai

1
@Tensibai ¿No sería TCP en IPX casi igual a SPX (es decir, la versión de transporte confiable y basada en puerto)? - Pero eso me recuerda que la afirmación de que dos hosts que desean comunicarse a través de Internet (es decir, a través de diferentes redes) deben implementar TCP / IP no es estrictamente cierta: el host A en la red 1 y el host B en la red 3 podrían hablar por ejemplo, IPX / SPX incluso si la red de conexión 2 es TCP / IP pura, siempre que haya puertas de enlace de túnel en la red 1 y 3 ...
Hagen von Eitzen

2
@hagen no, SPX era el equivalente de TCP, pero absolutamente no era interconectable con un sistema TCP, de ahí que se haya desarrollado TCP sobre IPX, para permitir comunicaciones TCP de extremo a extremo para sistemas en IP e IPX con un simple enrutador de capa 3 en el medio . Y sí, Internet se basa principalmente en IP, MPLS y protocolos de enrutamiento (probablemente me olvide de algunos), TCP no reproduce nada en el enrutamiento general, simplemente circula por él.
Tensibai

@Tensibai Si he cometido un error o errores, avíseme y haré todo lo posible para corregirlos
Julio

@SYS_V no es realmente un error, algunos atajos me molestan un poco. digamos que está bien en un punto de vista de comunicación TCP :) Hay toda la información necesaria para alguien dispuesto a resolver el problema. Siento que eres un poco grosero con el OP en tu primer párrafo, intentaré proponer una edición mañana (desde una computadora) para abordar mis preocupaciones :)
Tensibai

12

¿Todos los tipos de computadoras (teléfonos inteligentes / televisores / consolas de juegos, etc.) utilizan este formato?

Para que algo se intercambie en Internet, tendrá que pasar por una pila de IP en alguna parte.

¿Importa el sistema operativo?

El protocolo IP está definido por el RFC 791 , por lo que el SO / Firmware debe cumplirlo, sea lo que sea.

(En este sentido) ¿hay alguna diferencia entre Internet celular y Wifi / Ethernet?

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.

¿Qué sucede con los dispositivos de una sola función que no parecen tener una capa de "Aplicación"?

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.


3
Quizás valga la pena aclarar que TCP-IP es un 'must have' bastante común en cualquier sistema operativo (desde mbed / arduino hasta MC Windows y Linux).
Sean Houlihane

De hecho, me parece tan implícito para los protocolos de nivel superior que lo olvido.
Tensibai

la respuesta 1 y la respuesta 2 no son respuestas y la respuesta 3 se explica utilizando el modelo de referencia OSI en lugar del conjunto de protocolos TCP / IP. Ninguna de las respuestas en esta publicación aborda los errores conceptuales que se cometen en la pregunta.
julian

2
@Sys_v No estaba dispuesto a escribir un Novell :)
Tensibai

5

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.


Con respecto a la premisa del segundo párrafo, me temo que podemos encontrar incluso dispositivos diseñados más tarde que hoy y que aún ignoran la criptografía
Hagen von Eitzen

1
Significado moderno diseñado utilizando las mejores prácticas de hoy, no solo lo que sea fácil.
Sean Houlihane

4

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.


2

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.


¿Cómo podría el tostador no tener todas las capas? Puede enchufar un cable de red o reacciona a las ondas WiFi, por lo tanto, implementa la capa PHY. In puede comunicarse con dispositivos locales y remotos (como su iPhone), por lo tanto, implementa la capa IP. Requiere una transmisión segura de datos (la imagen), por lo tanto, es mejor implementar TCP. Una parte debe tener sentido de los datos transmitidos, por lo que ciertamente tenemos una capa de aplicación en la parte superior. --- (Bueno, posiblemente no si en lugar de redes usan bluetooth ...)
Hagen von Eitzen

@HagenvonEitzen Los protocolos dictan las capas que se colocan, pero mi punto es que una "capa" en la "pila" TCP / IP podría no ser una sola "capa" discreta en una "pila" de software / hardware. Di un ejemplo de un conjunto de chips que implementa cuatro capas por sí solo. En términos de hardware / software, esta es solo una "capa" en la "pila" que implementa la conectividad. El uso de ese chip más una aplicación que implementa sus propios resultados TLS en una pila de dos capas; Los componentes físicos no se alinean con las cuatro capas lógicas descritas en el OP.
phyrfox
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.