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.
la source
Réponses:
Il y a des idées fausses ou des malentendus potentiels dans la question qui sera abordée dans cet article.
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):
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:
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):
Depuis Internet Protocol Suite (Wikipedia):
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.
3. Applications
Depuis le logiciel d'application (Wikipedia):
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):
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
La suite de protocoles TCP / IP n'est pas une pile logicielle. De Technopedia :
Il s'agit plutôt d'une pile de protocoles, généralement implémentée par le noyau (également de Technopedia ):
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
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:
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:
Voici une représentation correcte et supérieure (du Guide 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 .
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 ):
Pour plus d'informations, consultez ces articles:
Comprendre les protocoles derrière l'Internet des objets
Normes et protocoles IoT
Guide technologique IoT
la source
Pour quelque chose à échanger sur Internet, il devra passer par une pile IP quelque part.
Le protocole IP est défini par le RFC 791 , donc l'OS / Firmware doit s'y conformer, quel qu'il soit.
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.
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.
la source
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.
la source
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.
la source
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.
la source