Toutes les choses connectées à Internet utilisent-elles la même pile «Application - TCP - IP - Matériel» pour communiquer?

15

Je ne suis pas particulièrement averti d'Internet, et les technologies IoT sont particulièrement déroutantes pour moi. Je lisais ce livre blanc de Stanford sur la structure Internet. Dans le diagramme 2, il montre une représentation de la «pile» logicielle qu'un ordinateur (PC) utiliserait pour créer, traiter et envoyer un message, via Internet, à un autre ordinateur.

  • Est-ce que toutes sortes d'ordinateurs - smartphones / téléviseurs / consoles de jeux, etc. utilisent ce format?

  • L'OS est-il important?

  • (À cet égard) y a-t-il une différence entre Internet cellulaire et Wifi / Ethernet?

  • Qu'en est-il des appareils à fonction unique qui ne semblent pas avoir de couche "Application" - par exemple, une caméra connectée au Web, des interrupteurs d'éclairage ou des thermostats.

BestMillimeter
la source
Connexes iot.stackexchange.com/questions/1119
Sean Houlihane
3
Il est préférable de ne poser qu'une seule question par question - mais c'est un peu difficile pour ces questions très basiques. Si vous avez des questions de suivi, assurez-vous d'essayer de les rendre plus spécifiques.
Sean Houlihane
Tous les appareils ont une couche d'application. La couche d'application pour un commutateur d'éclairage connecté au Web est le logiciel qui allume et éteint la lumière lorsqu'il reçoit une commande.
user253751
@immibis, cela va sembler horriblement pédant, mais les couches de pile de protocoles ne sont pas des propriétés qu'un appareil peut posséder. Dans TCP / IP, la couche d'application contient les protocoles de communication et les méthodes d'interface utilisés dans les communications de processus à processus sur un réseau informatique IP. Un périphérique peut héberger un système et ce système peut exécuter des applications, mais un périphérique n'a pas de couche d'application. TCP / IP lui-même est un modèle conceptuel.
julian
@SYS_V Quand je dis "l'appareil a une couche d'application" je veux dire "l'appareil a un composant logiciel qui implémente ce que TCP / IP décrit comme la couche d'application"
user253751

Réponses:

26

Il y a des idées fausses ou des malentendus potentiels dans la question qui sera abordée dans cet article.

  • Dans le diagramme 2, il montre une représentation de la «pile» logicielle qu'un ordinateur (PC) utiliserait pour créer, traiter et envoyer un message, via Internet, à un autre ordinateur

  • Est-ce que toutes sortes d'ordinateurs - smartphones / téléviseurs / consoles de jeux, etc. utilisent ce format?

  • (À cet égard) y a-t-il une différence entre Internet cellulaire et Wifi / Ethernet?

  • Qu'en est-il des appareils à fonction unique qui ne semblent pas avoir de couche "Application" - par exemple, une caméra connectée au Web, des interrupteurs d'éclairage ou des thermostats.

La présence de ces idées fausses nécessite l'inclusion d'une explication des éléments suivants (afin de fournir un contexte pour une discussion ultérieure):

  • Qu'est-ce que l'Internet
  • Qu'est-ce que la suite de protocoles TCP / IP
  • Qu'est-ce qu'une application

Ensuite, les questions seront traitées directement.

Notez que compte tenu de leur importance et de leur complexité, des séries entières de livres ont été écrites sur la suite de protocoles TCP / IP. Les définitions et explications ici seront tirées principalement de Wikipedia, TCP / IP Illustrated Volume 1 Second edition: The Protocols by Stevens and Fall, et d'IBM TCP / IP Tutorial and Technical Overview .

1. Internet

L'Internet est techniquement un réseau étendu (WAN) , mais d' une manière plus utile de penser est comme une sorte de SuperNetwork (un réseau de réseaux) ou un agrégat de plusieurs inter connectés net travaux. Voici une image des chemins de routage à travers une partie d'Internet:

Visualisation du chemin de l'itinéraire

  • Internet se compose de nombreux réseaux connectés
  • Un réseau peut comprendre 1 ou plusieurs systèmes ( hôte )
  • Un système connecté fonctionne généralement sur une sorte de plate-forme matérielle
  • il existe une grande variabilité dans les types de systèmes connectés aux réseaux et au matériel sur lequel ils fonctionnent

Une lecture amusante sur le fonctionnement d'Internet est disponible dans l'article d'Arstechnica Comment fonctionne Internet: Fibre sous-marine, cerveaux dans des bocaux et câbles coaxiaux .

Alors, comment différents systèmes fonctionnant sur différentes plates-formes matérielles sont-ils connectés à différents réseaux capables de communiquer entre eux? Comment la communication entre un éventail aussi vaste et hétérogène de systèmes et de réseaux est-elle possible? Comment tout cela peut-il se produire simultanément?

2. La suite de protocoles Internet

La réponse est fournie par la suite de protocoles Internet, alias la suite de protocoles TCP / IP. Ces questions ont été examinées lors du processus de conception de l'architecture d'Internet (TCP / IP illustré, section 1.1: Principes architecturaux):

Plusieurs objectifs ont guidé la création de l'architecture Internet. Dans [C88], Clark raconte que l'objectif principal était de «développer une technique efficace pour l'utilisation multiplexée des réseaux interconnectés existants». L'essence de cette déclaration est que l'architecture Internet devrait être capable d'interconnecter plusieurs réseaux distincts et que de multiples activités devraient être capable de fonctionner simultanément sur le réseau interconnecté résultant .

Depuis Internet Protocol Suite (Wikipedia):

La suite de protocoles Internet est le modèle conceptuel et l'ensemble de protocoles de communication utilisés sur Internet et les réseaux informatiques similaires.

La suite de protocoles Internet fournit une communication de données de bout en bout spécifiant comment les données doivent être mises en paquets, adressées, transmises, acheminées et reçues . Cette fonctionnalité est organisée en quatre couches d'abstraction qui sont utilisées pour trier tous les protocoles associés en fonction de l'étendue du réseau impliqué.

Une façon de penser à la suite de protocoles TCP / IP est de spécifier comment les processus s'exécutant sur différents systèmes et différents réseaux peuvent communiquer entre eux. En substance, la suite de protocoles TCP / IP fournit une norme pour la communication interprocessus.

Tout système qui implémente correctement la suite de protocoles TCP / IP peut utiliser la fonctionnalité qu'il fournit pour permettre à ses processus de communiquer sur Internet. En fait, pour que les processus communiquent sur Internet avec d'autres processus s'exécutant sur des systèmes distants sur d'autres réseaux, un système doit utiliser des protocoles de suite TCP / IP conformes aux normes.

Suite de protocoles TCP / IP

3. Applications

Depuis le logiciel d'application (Wikipedia):

Un programme d'application (application ou application en abrégé) est un programme informatique conçu pour exécuter un groupe de fonctions, de tâches ou d'activités coordonnées au profit de l'utilisateur. Des exemples d'application comprennent un traitement de texte, une feuille de calcul, une application de comptabilité, un navigateur Web, un lecteur multimédia, un simulateur de vol aéronautique, un jeu sur console ou un éditeur de photos. Le logiciel d'application de nom collectif fait référence à toutes les applications collectivement. Cela contraste avec le logiciel système, qui est principalement impliqué dans l'exécution de l'ordinateur.

Logiciel d'application

Une application peut être considérée comme un processus d' espace utilisateur exécuté sur un système. Outre les exemples répertoriés ci-dessus, cela peut inclure des programmes tels que les virus informatiques (en mode non noyau), les serveurs Web, les applications de caméra et les programmes d'agrégation de données de capteur.

Lorsqu'une application transmet et reçoit des données sur Internet, elle doit utiliser l'implémentation de la suite de protocoles TCP / IP de son système hôte. Depuis la couche Application (Wikipedia):

Dans TCP / IP, la couche d'application contient les protocoles de communication et les méthodes d'interface utilisés dans les communications de processus à processus sur un réseau informatique IP (Internet Protocol). La couche d'application standardise uniquement la communication et dépend des protocoles de couche de transport sous-jacents pour établir des canaux de transfert de données d'hôte à hôte et gérer l'échange de données dans un modèle de réseau client-serveur ou d'égal à égal.

La couche d'application de la suite de protocoles TCP / IP comprend des protocoles tels que File Transfer Protocol (FTP), Domain Name System (DNS) et probablement le plus célèbre, Hypertext Transfer Protocol (HTTP).

À titre d'exemple, le protocole de couche application HTTP spécifie comment les données sont transmises entre 2 processus s'exécutant sur (généralement) des systèmes différents: l'application cliente, un navigateur Web et l'application serveur, le processus du serveur Web.

Clarification des idées fausses potentielles

  1. Dans le diagramme 2, il montre une représentation de la «pile» logicielle qu'un ordinateur (PC) utiliserait pour créer, traiter et envoyer un message, via Internet, à un autre ordinateur.

La suite de protocoles TCP / IP n'est pas une pile logicielle. De Technopedia :

Une pile logicielle est un groupe de programmes qui fonctionnent en tandem pour produire un résultat ou atteindre un objectif commun. La pile logicielle fait également référence à tout ensemble d'applications qui fonctionne dans un ordre spécifique et défini vers un objectif commun, ou à tout groupe d'utilitaires ou d'applications de routine qui fonctionnent comme un ensemble. Les fichiers installables, les définitions de logiciels des produits et les correctifs peuvent être inclus dans une pile de logiciels. LAMP (Linux, Apache, MYSQL, Perl ou PHP ou Python) est l'une des piles de logiciels Linux les plus populaires. WINS (Windows Server, Internet Explorer, .NET, SQL Server) est une pile de logiciels Windows populaire.

Il s'agit plutôt d'une pile de protocoles, généralement implémentée par le noyau (également de Technopedia ):

Une pile de protocoles fait référence à un groupe de protocoles qui s'exécutent simultanément et qui sont utilisés pour la mise en œuvre de la suite de protocoles réseau.

Les protocoles d'une pile déterminent les règles d'interconnectivité pour un modèle de réseau en couches, comme dans les modèles OSI ou TCP / IP. Pour devenir une pile, les protocoles doivent être interopérables et pouvoir se connecter à la fois verticalement entre les couches du réseau et horizontalement entre les extrémités de chaque segment de transmission.


  1. Est-ce que toutes sortes d'ordinateurs - smartphones / téléviseurs / consoles de jeux, etc. utilisent ce format ?

La suite de protocoles TCP / IP est une spécification de communication indépendante du matériel et du système d'exploitation, pas un format . Si un processus exécuté sur une plate-forme matérielle doit communiquer avec un processus exécuté sur un système distant sur une plate-forme matérielle différente et que la communication se fait sur Internet, les systèmes doivent

  • implémenter correctement la suite de protocoles TCP / IP et
  • les protocoles appropriés dans cette suite doivent être utilisés pour réaliser la communication inter-processus

  1. (À cet égard) y a-t-il une différence entre Internet cellulaire et Wifi / Ethernet?

Mon interprétation de cette question est "Y a-t-il une différence entre la façon dont un appareil mobile se connecte à un réseau GSM et la façon dont un appareil mobile se connecte à un réseau WiFi?"

La différence se situe au niveau de la couche d'interface réseau.

Cette question expose la mauvaise représentation de la suite de protocoles TCP / IP dans le diagramme de l'article lié à la question. Pour référence, voici le schéma:

Diagramme TCP / IP merdique

La couche la plus basse, appelée « matériel », devrait être appelée la couche de liaison , couche de contrôle d'accès au support (MAC) ou la couche d'interface réseau .

À partir de la page 34 «Tutoriel TCP / IP et présentation technique» d'IBM:

La couche d'interface réseau, également appelée couche liaison ou couche liaison de données, est l'interface avec le matériel réseau réel. Cette interface peut fournir ou non une livraison fiable et peut être orientée par paquets ou par flux. En fait, TCP / IP ne spécifie aucun protocole ici, mais peut utiliser presque toutes les interfaces réseau disponibles, ce qui illustre la flexibilité de la couche IP. Les exemples sont IEEE 802.2, X.25 (qui est fiable en soi), ATM, FDDI et même SNA.

Voici une représentation correcte et supérieure (du Guide TCP / IP ):

Diagramme supérieur de la pile TCP / IP

La raison pour laquelle la discussion de la couche d'interface réseau est pertinente est que c'est à cette couche qu'il y a une différence dans la façon dont un appareil cellulaire / mobile se connecte à un réseau GSM par rapport à un réseau WiFi.

  • lors de la connexion à un réseau GSM, le protocole de couche d'interface réseau utilisé pour gérer la connexion entre l'appareil mobile et la station d'émission-réception de base (BTS) est généralement spécifié par la 3G

  • lors de la connexion à un point d'accès sans fil WiFi (WAP), le protocole utilisé est spécifié par la norme IEEE 802.11 .


  1. Qu'en est-il des appareils à fonction unique qui ne semblent pas avoir de couche "Application" - par exemple une caméra connectée au Web, des interrupteurs d'éclairage ou des thermostats

Comme décrit précédemment, les protocoles de la couche d'application de la suite de protocoles TCP / IP fournissent une norme pour l'échange de données d'application entre les processus.

Les couches sont conceptuelles. Ils ne résident pas dans un système ou sur une plate-forme matérielle.

Les caméras, interrupteurs et thermostats connectés au Web peuvent avoir des processus en cours d'exécution qui communiquent sur Internet avec des processus s'exécutant sur des systèmes distants (vérification des mises à jour du micrologiciel, échange de données avec un serveur, etc.). Ces processus, ou applications, utiliseront l'implémentation de la suite de protocoles TCP / IP pour réaliser cette communication interprocessus.

La suite de protocoles TCP / IP et les systèmes embarqués ("IoT")

Bien qu'il existe une variété d'applications différentes utilisant différents protocoles de couche application exécutés sur des PC ou des serveurs traditionnels, il n'y a pas beaucoup de différences en termes de connexion des plates-formes matérielles à leurs points d'accès respectifs (interface réseau / couche liaison de données). Il est principalement réalisé avec ou sans fil via Ethernet.

La situation est quelque peu différente en ce qui concerne la grande variété de systèmes embarqués qui communiquent via TCP / IP. Voici une illustration de cela (de Postscapes ):

IoT et TCP / IP 1

IoT et TCP / IP 2

Pour plus d'informations, consultez ces articles:

Comprendre les protocoles derrière l'Internet des objets

Normes et protocoles IoT

Guide technologique IoT

julien
la source
À ce niveau de détails, mon côté netadmin est triste qu'il n'y ait pas un mot sur TCP / IP signifiant TCP sur IP, TCP n'est pas lié à IP du tout, il a également été implémenté sur les réseaux IPX (un de même si le sigle est près, ils étaient 2 protocoles très différents)
Tensibai
1
@Tensibai TCP sur IPX ne serait-il pas essentiellement le même que SPX (c'est-à-dire la version de transport fiable et basée sur le port)? - Mais cela me rappelle que l'affirmation selon laquelle deux hôtes qui veulent communiquer sur Internet (c'est-à-dire sur des réseaux différents) doivent implémenter TCP / IP n'est pas strictement vraie: l'hôte A sur le net 1 et l'hôte B sur le net 3 pourraient parler par exemple IPX / SPX même si le réseau de connexion 2 est TCP / IP pur, à condition qu'il y ait des passerelles de tunnel dans le réseau 1 et 3 ...
Hagen von Eitzen
2
@hagen nope, SPX était l'équivalent de TCP, mais absolument pas interconnectable avec un système TCP, d'où la raison pour laquelle TCP over IPX a été développé, pour permettre des communications TCP de bout en bout pour les systèmes sur IP et IPX avec un simple routeur de couche 3 entre les deux. . Et oui Internet repose principalement sur IP, MPLS et les protocoles de routage (j'en oublie probablement certains), TCP ne joue rien dans le routage global, il circule simplement dessus.
Tensibai
@Tensibai Si j'ai fait une ou des erreurs, faites-le moi savoir et je ferai de mon mieux pour les corriger
julian
@SYS_V pas vraiment une erreur, certains raccourcis me dérangent un peu. disons que c'est ok du point de vue de la communication TCP :) Il y a toutes les informations nécessaires pour quelqu'un qui veut creuser le problème. Je pense que vous êtes un peu grossier pour l'OP dans votre premier paragraphe, je vais essayer de proposer un montage demain (à partir d'un ordinateur) pour répondre à mes préoccupations :)
Tensibai
12

Est-ce que toutes sortes d'ordinateurs - smartphones / téléviseurs / consoles de jeux, etc. utilisent ce format?

Pour quelque chose à échanger sur Internet, il devra passer par une pile IP quelque part.

L'OS est-il important?

Le protocole IP est défini par le RFC 791 , donc l'OS / Firmware doit s'y conformer, quel qu'il soit.

(À cet égard) y a-t-il une différence entre Internet cellulaire et Wifi / Ethernet?

Pour simplifier un peu, la différence sera ici au niveau du signal radio (physique) de la couche 1 par rapport au signal électrique sur les fils. Plus de détails sur la page wikipedia du modèle d'interconnexion de systèmes ouverts (modèle OSI) .

Ils servent tous à transposer la couche 3 (Réseau), IP dans le cas ici, sur leurs supports spécifiques.

Qu'en est-il des appareils à fonction unique qui ne semblent pas avoir de couche "Application" - par exemple, une caméra connectée au Web, des interrupteurs d'éclairage ou des thermostats.

La couche application concerne un protocole de communication spécifique (HTTP, SSH, etc.), il ne doit pas être une application comme Chrome ou Firefox par exemple.
Habituellement, ces protocoles seront mis en œuvre au-dessus de TCP , certains sont au-dessus de UDP quand on souhaite ne pas bloquer l'attente de l'accusé de réception ou lorsque l'obtention d'un paquet obsolète n'a aucun sens (appels vocaux, streaming). Il existe d'autres protocoles de couche 4, mais généralement pour des utilisations spécifiques, comme ICMP pour ping. TCP est le protocole de choix lorsque vous souhaitez vous assurer que certaines données sont bien arrivées à destination.

Pour un `` appareil distant '', comme le thermostat dans votre exemple, il peut utiliser des protocoles déjà existants comme HTTP ou utiliser un protocole propriétaire pour envoyer ses données, qui seront toujours au niveau de la couche Application, car ce ne sera pas seulement un transport protocole.
Cela peut être fait uniquement sur la couche 4, mais cela nécessite la création d'un nouveau protocole et la surcharge ne vaut généralement pas la peine et rend le système incompatible avec les autres, l'utilisation de normes ouvertes est une meilleure approche à mon humble avis.

Tensibai
la source
3
Peut-être vaut-il la peine de préciser que TCP-IP est un «must have» assez courant dans n'importe quel système d'exploitation (de mbed / arduino jusqu'à MC Windows et Linux).
Sean Houlihane
En effet, les sons m'impliquent tellement pour des protocoles de niveau supérieur que je l'oublie.
Tensibai
la réponse 1 et la réponse 2 sont des non-réponses et la réponse 3 est expliquée à l'aide du modèle de référence OSI plutôt que de la suite de protocoles TCP / IP. Aucune des réponses de cet article ne traite des erreurs conceptuelles commises dans la question.
julian
2
@Sys_v Je n'étais pas prêt à écrire un Novell :)
Tensibai
5

Bien qu'il soit vrai que tout appareil connecté à Internet utilisera TCP / IP (ou UDP) pour la communication, c'est vraiment le niveau supérieur de la pile où les choses deviennent intéressantes.

Tout appareil IoT moderne utilisera TLS pour fournir le chiffrement et l'authentification. Cela empêche (en théorie) quiconque d'observer ou d'interférer avec les messages qui sont transmis. Une considération importante de la pile TCP / IP est qu'une grande partie des informations transmises peuvent être observées de manière triviale - et cela conduit souvent très facilement à des failles de sécurité.

Les appareils n'ont pas besoin de se connecter à Internet `` à la source '', il n'est donc pas nécessaire d'implémenter TCP via Bluetooth (à titre d'exemple). Vous pouvez également voir des appareils IoT utilisant des protocoles de téléphonie mobile (comme des SMS ou des SMS réguliers) comme dernier saut. Finalement, ces protocoles (sélectionnés d'une manière ou d'une autre pour l'environnement installé) sont susceptibles d'être pontés vers «Internet» par un périphérique concentrateur.

Sean Houlihane
la source
En ce qui concerne la prémisse du deuxième paragraphe, je crains que nous ne rencontrions même des appareils conçus plus tard qu'aujourd'hui et ignorant toujours la crypto
Hagen von Eitzen
1
Une signification moderne conçue en utilisant les meilleures pratiques d'aujourd'hui, pas seulement ce qui est facile.
Sean Houlihane
4

Tous les appareils qui souhaitent utiliser TCP sur IP ont besoin d'une pile TCP / IP.

Le protocole est normalisé, afin que les appareils de différents fabricants ou utilisant différents systèmes d'exploitation puissent se comprendre.

Notez que TCP garantit que les paquets de données arrivent, sinon l'expéditeur sera informé de leur perte. TCP serait utilisé lorsque vous ne pouvez pas vous permettre de perdre des données sans le savoir (par exemple, communication avec votre banque).

Il y a aussi UDP, qui envoie des paquets et "espère qu'ils y arriveront". Cela peut être utilisé, par exemple, pour diffuser de la musique ou des vidéos, où la perte de quelques images n'est pas fatale.

La partie importante est la standardisation.

Mawg dit réintégrer Monica
la source
2

La pile elle-même est un concept virtuel. Chaque couche de la pile modifie les derniers bits envoyés sur le support physique (ondes radio ou autres signaux électroniques). Aucune règle ne stipule que chaque couche de la pile doit être conçue dans une seule unité discrète de code ou de matériel. Par exemple, les puces iEthernet combinent les couches TCP, IP, MAC et PHY, laissant aux développeurs la tâche d'implémenter TLS et le logiciel de couche application.

Cela dit, tous les bits doivent être conformes aux différents protocoles impliqués, et pour cette raison, il est généralement plus facile de concevoir chaque couche en tant qu'entité distincte, afin qu'ils puissent être testés et vérifiés indépendamment. La plupart des appareils, y compris les téléphones intelligents, les téléviseurs intelligents et les consoles de jeux, achètent généralement leurs puces à des tiers spécialisés dans certains domaines. Par exemple, la plupart des téléphones utilisent seulement l'une des quelques puces Bluetooth différentes; cela signifie que le fabricant n'a pas à se soucier de réinventer la roue avec chaque nouveau produit.

En théorie, certains petits appareils spécialisés peuvent n'avoir qu'un seul processeur avec SoC (Software on Chip) intégré qui gère toutes les couches de mise en réseau (application, TLS, TCP, IP, PHY) comme une seule unité de code discrète. Je ne trouve aucun exemple concret pour le moment, mais cela ne me surprendrait pas si certains petits appareils à faible consommation ou à fonction dédiée combinaient toutes les couches de la pile en une seule unité pour réduire la consommation d'énergie (prolonger la durée de vie de la batterie). Les produits plus grands et plus compliqués, comme les téléviseurs, les téléphones et les systèmes de jeu, ont probablement au moins 3 couches (application, système d'exploitation et éléments matériels), tandis qu'un grille - pain peut simplement avoir 1 ou 2 couches.


Remarque: Je ne dis pas que le grille-pain particulier que j'ai lié a 1 ou 2 couches, mais qu'il serait logique qu'il soit conçu de cette façon, étant un appareil à usage unique.

phyrfox
la source
Comment le grille-pain pourrait-il ne pas avoir toutes les couches? Vous pouvez y brancher un câble réseau ou il réagit aux ondes WiFi - il met donc en œuvre la couche PHY. Il peut communiquer avec des appareils locaux et distants (comme votre iPhone) - il implémente donc la couche IP. Il nécessite une transmission sécurisée des données (l'image) - d'où une meilleure implémentation de TCP. Une partie doit donner un sens aux données transmises, nous avons donc certainement une couche d'application au-dessus. --- (Eh bien, peut-être pas si au lieu de mettre en réseau ils utilisent le bluetooth ...)
Hagen von Eitzen
@HagenvonEitzen Les protocoles dictent les couches qui sont placées, mais mon point est qu'une "couche" dans la "pile" TCP / IP peut ne pas être une seule "couche" discrète dans une "pile" logicielle / matérielle. J'ai donné un exemple de chipset qui implémente lui-même quatre couches. En termes de matériel / logiciel, ce n'est qu'une "couche" dans la "pile" qui implémente la connectivité. L'utilisation de cette puce et d'une application qui implémente son propre TLS entraîne une pile à deux couches; les composants physiques ne s'alignent pas avec les quatre couches logiques décrites dans l'OP.
phyrfox