Annexe A Annexe A : Application des algorithmes à la conception de réseaux

Annexe A Annexe A : Application des algorithmes à la conception de réseaux

Introduction aux communications de données et aux réseaux

En informatique, un réseau est un système d'ordinateurs et d'autres technologies interconnectés pour stocker et partager des informations. Les réseaux permettent les communications de données, permettant aux utilisateurs d'interagir sur des ordinateurs et d'autres technologies, tels que les téléphones portables. Cela donne aux utilisateurs la possibilité de discuter et d'échanger des informations sur des applications telles que les médias sociaux, les courriels et les appels vidéo. Pour plus d'informations sur l'un de ces sujets, nous vous suggérons de consulter Computer Networks: A Systems Approach de Larry Peterson et Bruce Davie, en utilisant les liens inclus ici.

Composants de réseau

Les réseaux sont composés de divers composants. Les applications sont des programmes informatiques et des logiciels qui nous permettent d'utiliser un réseau (https://book.systemsapproach.org/foundation/applications.html). Des exemples d'applications incluent le World Wide Web, la messagerie instantanée, les services de streaming pour les films et la musique, le partage de fichiers, les médias sociaux et les courriels.

Pour construire un réseau robuste, les informaticiens doivent prendre en compte les exigences du réseau (https://book.systemsapproach.org/foundation/requirements.html). Les exigences incluent les parties prenantes qui développent le réseau, ainsi que celles qui le gèrent et l'exploitent. La connectivité évolutive est une exigence critique pour comprendre les besoins que le réseau doit actuellement satisfaire, ainsi que les besoins qui devront être satisfaits par le réseau à mesure que l'organisation grandit et évolue. D'autres exigences incluent la rentabilité du réseau, la prise en charge assurée par le réseau pour les services courants, tels que l'application de messagerie d'une organisation, et la capacité du réseau à être géré.

À l'instar des plans pour construire des bâtiments, les réseaux informatiques ont besoin d'une architecture pour garantir que les composants sont agencés et structurés de manière appropriée afin d'assurer le bon fonctionnement du réseau (https://book.systemsapproach.org/foundation/architecture.html).

Les réseaux informatiques ne peuvent pas fonctionner sans logiciel, qui fait référence aux programmes qui donnent des instructions aux ordinateurs sur les tâches à effectuer. Les différents types de logiciels incluent les logiciels système, utilitaires et d'application. Des exemples de logiciels incluent les programmes de traitement de texte et de tableur comme Microsoft Word et Excel (https://book.systemsapproach.org/foundation/software.html).

Liens de communication

Les liens de communication sont essentiels pour connecter les différents nœuds et utilisateurs d'un réseau. Cela nécessite des outils comme le fil de cuivre, la fibre optique et l'air pour les liens sans fil (https://book.systemsapproach.org/direct/perspective.html). Ensuite, des processus comme l'encodage (https://book.systemsapproach.org/direct/encoding.html), la mise en trames (https://book.systemsapproach.org/direct/framing.html) et la détection d'erreurs (https://book.systemsapproach.org/direct/error.html) sont nécessaires pour développer une transmission fiable (https://book.systemsapproach.org/direct/reliable.html). Il est également important de reconnaître que différents types de liens de communication sont nécessaires pour différents types de réseaux, tels que le multi-accès (https://book.systemsapproach.org/direct/ethernet.html), le sans fil (https://book.systemsapproach.org/direct/wireless.html) et l'accès (https://book.systemsapproach.org/direct/access.html).

L'Internet

Pour comprendre le concept de réseau informatique, considérons l'Internet, qui est un réseau mondial qui connecte des millions de personnes, leur permettant de communiquer et de partager des informations (https://book.systemsapproach.org/scaling/global.html).

L'Internet est un bon exemple de réseau de réseaux, car il est en fait composé de nombreux réseaux plus petits interconnectés (https://book.systemsapproach.org/internetworking/basic-ip.html).

Pour que l'Internet et les autres réseaux informatiques puissent fonctionner, ils doivent disposer de protocoles, qui sont des règles standardisées pour guider la manière dont les données sont formatées et traitées. Les protocoles permettent aux réseaux de transmettre des informations (https://book.systemsapproach.org/e2e/problem.html). Les protocoles courants incluent le démultiplexeur simple (https://book.systemsapproach.org/e2e/udp.html), le flux d'octets fiable (https://book.systemsapproach.org/e2e/tcp.html), l'appel de procédure distante (https://book.systemsapproach.org/e2e/rpc.html) et le transport en temps réel (https://book.systemsapproach.org/e2e/rtp.html). Les services web ont également des protocoles, y compris les standards émis par le World Wide Web Consortium (https://book.systemsapproach.org/applications/traditional.html#web-services).

Périphérie et cœur du réseau

Pour utiliser un réseau, tel que l'Internet, les utilisateurs s'appuient sur des systèmes terminaux, tels que les ordinateurs personnels, les tablettes et les téléphones portables. Les systèmes terminaux incluent également des composants comme les serveurs de messagerie et même les consoles de jeux connectées à l'Internet. Les dispositifs de système terminal fonctionnent à la périphérie de l'Internet, qui est le point où ces dispositifs sont connectés au réseau (https://book.systemsapproach.org/direct/trend.html).

Hôtes en tant que clients et serveurs

Pour permettre la communication, les réseaux s'appuient sur le client, qui envoie une requête pour accéder à un fichier du réseau, et le serveur, qui rend un fichier disponible en fournissant l'accès (https://book.systemsapproach.org/foundation/requirements.html#support-for-common-services).

Les réseaux d'accès sont un exemple de la relation client-serveur dans les réseaux (https://book.systemsapproach.org/direct/access.html). Les fournisseurs de services Internet et les services câblés sont des exemples de réseaux d'accès, qui permettent aux utilisateurs de se connecter à un réseau via des appareils personnels comme les ordinateurs, les téléphones portables et les téléviseurs.

Bien que les réseaux s'appuient souvent sur des liens câblés pour fonctionner, de nombreux réseaux sont sans fil. Les technologies sans fil populaires incluent Bluetooth, Wi-Fi et la 4G cellulaire (https://book.systemsapproach.org/direct/wireless.html).

Cœur du réseau

Pour fonctionner, les réseaux doivent avoir une connectivité évolutive, ce qui signifie que les ordinateurs du réseau sont connectés et que le réseau a la capacité de croître à une plus grande échelle (https://book.systemsapproach.org/foundation/requirements.html#scalable-connectivity). Ceci est réalisé grâce aux réseaux commutés, qui ont des composants matériels qui connectent les dispositifs en utilisant un réseau qui leur permet de partager des paquets de données.

Les différents types de réseaux commutés incluent les réseaux à commutation de paquets et les réseaux à commutation de circuits. Les réseaux à commutation de paquets sont couramment utilisés pour les réseaux informatiques et traitent les données en paquets qui sont envoyés via le réseau vers les nœuds. Avec la commutation de paquets, les données peuvent être divisées en paquets plus petits qui voyagent indépendamment sur différentes routes du réseau. Dans les réseaux à commutation de circuits, couramment utilisés par le système téléphonique, les messages empruntent un chemin dédié jusqu'à leur destination.

Fonctions du cœur du réseau

En plus de la commutation, une fonction vitale des réseaux est le routage, qui fait référence au processus que les réseaux utilisent pour déterminer le chemin optimal pour que les paquets de données voyagent à travers le réseau (https://book.systemsapproach.org/internetworking/routing.html et https://book.systemsapproach.org/internetworking/switching.html#source-routing). Les routeurs garantissent que les données atteignent réellement leur destination.

Performance du réseau

La performance est un aspect important des réseaux qui détermine l'efficacité de leur fonctionnement. La performance a deux aspects importants, y compris la bande passante, qui fait référence au nombre de bits qu'un réseau peut transmettre dans un temps donné, et la latence, qui est le temps nécessaire pour transférer des données (https://book.systemsapproach.org/foundation/performance.html).

Sécurité du réseau

Comme les réseaux partagent des informations, il est vital qu'ils soient sécurisés pour protéger la confidentialité et les informations sensibles des utilisateurs. Les concepts importants en sécurité des réseaux incluent la confiance et les menaces de sécurité, les chiffrements, les authentificateurs, les clés publiques et secrètes, les protocoles d'authentification et les pare-feu (https://book.systemsapproach.org/security.html).

Couches réseau et modèles de service

Une partie importante de la fonctionnalité des réseaux est l'abstraction, qui est un outil fondamental permettant aux concepteurs de réseaux de gérer la complexité d'un système en simplifiant le code informatique. Avec l'abstraction, le code est organisé en fonctions et la complexité sous-jacente est masquée. Cela facilite la compréhension du code par les programmeurs, et ils peuvent travailler avec plus d'efficacité, écrivant du code plus rapidement avec moins d'erreurs.

Les abstractions sont le fondement de la stratification, qui est le processus de division d'un réseau en couches qui facilitent la transmission d'informations à travers le réseau (https://book.systemsapproach.org/foundation/architecture.html#layering-and-protocols). Chaque couche a un objectif différent, comme fournir une connectivité hôte-à-hôte et prendre en charge les programmes d'application.

L'un des premiers protocoles de stratification était le modèle OSI, qui utilise sept couches dans son architecture (https://book.systemsapproach.org/foundation/architecture.html#osi-model).

L'encapsulation est une partie importante de ce processus. Avec l'encapsulation, les données sont protégées et l'accès au code informatique est contrôlé, permettant aux utilisateurs d'interagir avec le réseau sans risquer de compromettre l'intégrité des données (https://book.systemsapproach.org/foundation/architecture.html#encapsulation).

Protocoles de réseau Internet

L'architecture du réseau Internet comprend les principaux protocoles Transmission Control Protocol (TCP) et Internet Protocol (IP), ainsi que User Datagram Protocol (UDP) (https://book.systemsapproach.org/foundation/architecture.html#internet-architecture). D'autres protocoles importants pour le fonctionnement de l'Internet incluent les protocoles pour la couche application (https://book.systemsapproach.org/applications/traditional.html), l'application web, le transfert de fichiers (https://book.systemsapproach.org/foundation/requirements.html#identify-common-communication-patterns), le courrier électronique (https://book.systemsapproach.org/applications/traditional.html#electronic-mail-smtp-mime-imap), le streaming vidéo et la couche transport (https://book.systemsapproach.org/security/systems.html#secure-shell-ssh). De plus, les protocoles de mise en trames sont importants, y compris les protocoles orientés octets (https://book.systemsapproach.org/direct/framing.html#byte-oriented-protocols-ppp), les protocoles orientés bits (https://book.systemsapproach.org/direct/framing.html#bit-oriented-protocols-hdlc) et la mise en trames basé sur l'horloge (https://book.systemsapproach.org/direct/framing.html#clock-based-framing-sonet). Pour les services de livraison hôte-à-hôte, le démultiplexeur simple (UDP) est utile (https://book.systemsapproach.org/e2e/udp.html).

Fonction de transfert des routeurs

Les routeurs ont également des protocoles, et il est important de comprendre les architectures des routeurs, y compris les fonctions de commutation et de port d'entrée. Le routage utilise la théorie des graphes et des algorithmes pour s'assurer que les paquets empruntent la route appropriée et atteignent leur destination prévue (https://book.systemsapproach.org/internetworking/routing.html). Des protocoles tels que le Routing Information Protocol (RIP) (https://book.systemsapproach.org/internetworking/routing.html#routing-information-protocol-rip) et le routage à état de liens (https://book.systemsapproach.org/internetworking/routing.html#link-state-ospf) contribuent à assurer la fonctionnalité de routage.

Le routage ne peut pas fonctionner sans commutation (https://book.systemsapproach.org/internetworking/switching.html), et cela inclut les datagrammes (https://book.systemsapproach.org/internetworking/switching.html#datagrams), la commutation de circuits virtuels (https://book.systemsapproach.org/internetworking/switching.html#virtual-circuit-switching) et le routage source (https://book.systemsapproach.org/internetworking/switching.html#source-routing).

Protocole de message de contrôle Internet

Les erreurs sont une partie inévitable de tout réseau, et cela peut nuire au fonctionnement du réseau. Pour faire face à ce problème, l'Internet s'appuie sur un protocole compagnon pour IP appelé Internet Control Message Protocol (ICMP) (https://book.systemsapproach.org/internetworking/basic-ip.html#error-reporting-icmp). ICMP définit une collection de messages d'erreur et les renvoie à l'hôte source si un routeur ou un hôte ne peut pas traiter le datagramme IP et livrer les messages. La gestion de réseau a également des protocoles, y compris le Simple Network Management Protocol (SNMP) et OpenConfig (https://book.systemsapproach.org/applications/infrastructure.html#network-management-snmp-openconfig). Pour la traduction d'adresses, l'Address Resolution Protocol (ARP) est important (https://book.systemsapproach.org/internetworking/basic-ip.html#address-translation-arp).

Encodage

Le fonctionnement du réseau dépend du codage, qui est le processus de conversion d'une séquence de caractères dans le format approprié pour stocker ou transmettre les données (https://book.systemsapproach.org/direct/encoding.html). Le codage peut être abordé en utilisant la compression, qui vise à encoder des bits de données dans le plus petit ensemble possible. Les techniques de compression incluent le codage par longueurs de plages, la modulation différentielle par impulsions codées et les méthodes basées sur un dictionnaire (https://book.systemsapproach.org/data/multimedia.html#lossless-compression-techniques). Le codage est également un processus important pour préparer des fichiers comme JPEG (https://book.systemsapproach.org/data/multimedia.html#encoding-phase), MPEG (https://book.systemsapproach.org/data/multimedia.html#transmitting-mpeg-over-a-network) et les vidéos (https://book.systemsapproach.org/data/multimedia.html#video-encoding-standards).

Réseaux sans fil et mobiles

Les réseaux sans fil fonctionnent de manière similaire aux réseaux câblés, à l'exception que tous les liens sans fil utilisent le même support. Pour s'assurer que ce support est partagé efficacement, il est divisé en utilisant les dimensions de fréquence et d'espace. Les agences gouvernementales, telles que la Commission fédérale des communications des États-Unis, prennent de nombreuses décisions concernant les réseaux qui peuvent utiliser le support, et cela inclut l'attribution de certaines plages de fréquences pour des usages spécifiques, tels que la télévision et les téléphones portables (https://book.systemsapproach.org/direct/wireless.html#basic-issues). Les propriétés physiques des réseaux sans fil incluent les bandes passantes (https://book.systemsapproach.org/direct/wireless.html#physical-properties). L'évitement des collisions est un point central des protocoles sans fil (https://book.systemsapproach.org/direct/wireless.html#collision-avoidance), et les réseaux de distribution sans fil utilisent la couche de liaison pour les opérations (https://book.systemsapproach.org/direct/wireless.html#distribution-system). Comme pour tous les réseaux, la sécurité est une préoccupation majeure pour les systèmes sans fil (https://book.systemsapproach.org/direct/wireless.html#security-of-wireless-links). Bluetooth est un réseau sans fil populaire (https://book.systemsapproach.org/direct/wireless.html#bluetooth-802-15-1).

Le routage peut être difficile pour les appareils mobiles sans fil. Par exemple, les adresses IP et les hôtes mobiles doivent être gérés différemment dans les réseaux sans fil, ce qui rend nécessaire l'utilisation de protocoles différents lors du développement de réseaux sans fil (https://book.systemsapproach.org/scaling/mobile-ip.html#routing-among-mobile-devices).

Systèmes distribués et décentralisés

Certains réseaux utilisent la commutation de circuits virtuels comme technique alternative à la commutation de paquets (https://book.systemsapproach.org/internetworking/switching.html#virtual-circuit-switching). Le mode de transfert asynchrone (ATM) est un exemple bien connu de technologie de réseau qui s'appuie sur la commutation de circuits virtuels (https://book.systemsapproach.org/internetworking/switching.html#asynchronous-transfer-mode-atm). Une autre option est la commutation multiprotocole par étiquette, qui tire parti de la robustesse et de la flexibilité des datagrammes avec des propriétés de commutation de circuits virtuels (https://book.systemsapproach.org/scaling/mpls.html).

Les réseaux pair-à-pair sont également utiles dans les réseaux qui permettent à une communauté d'utilisateurs de partager leurs ressources—y compris la bande passante, le stockage et le contenu—pour leur donner un accès réseau plus large qu'ils n'auraient individuellement. Des exemples de réseaux pair-à-pair incluent Gnutella et BitTorrent (https://book.systemsapproach.org/applications/overlays.html#peer-to-peer-networks).

Histoire de l'Internet et fonctionnement interne

Historiquement, l'Internet s'est appuyé sur des dispositifs spécialisés construits avec des circuits intégrés spécifiques à l'application (ASIC), ce qui a rendu le développement de réseaux chronophage. Les commutateurs matériels ont contribué à améliorer cette situation (https://book.systemsapproach.org/internetworking/impl.html#hardware-switch). Avec ce changement, les réseaux définis par logiciel sont devenus plus courants (https://book.systemsapproach.org/internetworking/impl.html#software-defined-networks).

Les métriques, ou coûts de liaison, sont une considération importante dans le routage et la sélection de l'algorithme correct pour gérer le processus. L'ARPANET a servi de terrain d'essai pour développer des approches de calcul des coûts de liaison (https://book.systemsapproach.org/internetworking/routing.html#metrics).

L'Ethernet a été développé au milieu des années 1970 et a finalement dominé la technologie des réseaux locaux. La base de l'Ethernet était Aloha, un réseau radio à paquets développé à l'Université d'Hawaï comme réseau de support pour permettre les communications informatiques à travers les îles hawaïennes (https://book.systemsapproach.org/direct/ethernet.html).