Réseaux informatiques - Principes des protocoles de la couche application

Table des matières

1. Architecture des applications réseau

1.1 Architecture client/serveur

1.2 Structure P2P 

1.3 Structure hybride 

2. Processus de communication

2.1 Communication du processus d'identification 

Prise 2.2 (prise) 

3. Exigences de service des applications Web

3.1 Transmission de données fiable

3.2 Débit

3.3 Calendrier

3.4 Sécurité 

3.5 Exigences pour les applications réseau courantes 

4. Services de transmission fournis par Internet 

4.1 Service TCP

4.2 Service UDP 

5. Protocole de la couche application 


Préface : Les applications réseau sont la raison d'être des réseaux informatiques. Ces applications fournissent des services aux utilisateurs au niveau de la couche application, et les programmes réseau qui répondent à nos besoins quotidiens se trouvent tous au niveau de la couche application.  

1. Architecture des applications réseau

L'architecture de la couche d'application est différente de l'architecture du réseau évoquée précédemment. L'architecture du réseau est fixe, tandis que l'architecture de l' application ( architecture d'application ) est conçue par le développeur de l'application. organiser l'application sur

Il existe actuellement trois architectures d'application courantes :

  • Architecture client-serveur ( client-serveur, C/S )
  • Structure point à point ( peer-to-peer, P2P )
  • Structure hybride ( Hybride )

1.1 Architecture client/serveur

  • Client : un hôte qui demande des services à un serveur
  • Serveur : un hôte toujours actif qui répond aux demandes d'autres hôtes appelés clients 

Les applications bien connues du modèle client-serveur incluent Web, FTP, Telnet et e-mail. Un exemple typique est une application Web, où un serveur Web toujours actif traite les requêtes des navigateurs (s'exécutant sur des hôtes clients).

Les fonctionnalités du serveur sont :

  • 7*24 heures pour fournir un service
  • Adresse d'accès permanente/nom de domaine
  • Évolutivité avec un grand nombre de serveurs

Les fonctionnalités du client sont :

  • Communiquer avec le serveur et utiliser les services fournis par le serveur
  • Accès intermittent au réseau
  • Utiliser éventuellement une adresse IP dynamique
  • Ne communique pas directement avec les autres clients 

En règle générale, un seul serveur peut être débordé s'il reçoit trop de demandes. Pour cette raison, les centres de données ( centres de données ) équipés d'un grand nombre d'hôtes sont souvent utilisés pour créer des serveurs virtuels puissants. Par exemple, Google possède 30 à 50 centres de données répartis dans le monde entier, et chaque centre de données peut avoir des centaines de milliers de serveurs.

1.2 Structure P2P 

Dans la structure P2P, la dépendance vis-à-vis du serveur est réduite et, à la place, l'application peut communiquer directement entre les hôtes, appelés pairs.

De nombreuses applications actuellement populaires et gourmandes en trafic sont d'architecture P2P, y compris le partage de fichiers (comme BitTorrent), les accélérateurs de téléchargement assistés par les pairs (comme Thunder), la téléphonie Internet et la vidéoconférence (comme Skype) 

Les caractéristiques du P2P sont :

  • pas de serveurs toujours actifs
  • Communication directe entre tous les systèmes finaux/nœuds
  • Les nœuds sont connectés par intermittence au réseau
  • Les nœuds peuvent changer d'adresse IP 

L'avantage de l'architecture P2P, et l'une des caractéristiques les plus fascinantes, est son auto-évolutivité Dans une application de partage de fichiers P2P, bien que chaque pair génère une charge de travail en raison de la demande de fichiers, chaque pair passe à d'autres pairs distribuent des fichiers en ajoutant également des capacités de service au système

L'inconvénient de l'architecture P2P est qu'il est difficile à gérer

1.3 Structure hybride 

Combinant les caractéristiques de la structure C/S et de la structure P2P, une structure hybride est née sur la base de tirer pleinement parti de leurs avantages respectifs et d'éviter les inconvénients

Un exemple typique est Napster, qui est un logiciel qui peut télécharger les fichiers MP3 que vous voulez sur Internet. Il peut également faire de sa propre machine un serveur, fournissant des téléchargements à d'autres utilisateurs.

Les fonctionnalités de Napster sont :

  • Le transfert de fichiers utilise la structure P2P
  • La recherche de fichiers adopte une structure C/S——centralisée (chaque nœud enregistre son propre contenu auprès du serveur central, et chaque nœud soumet une demande de requête au serveur central pour trouver un contenu intéressant) 

2. Processus de communication

2.1 Communication du processus d'identification 

En termes de système d'exploitation, la communication entre les applications est en fait la communication entre les processus , qui sont des programmes exécutés sur l'hôte.

Les processus s'exécutant sur le même hôte peuvent communiquer entre eux via le mécanisme de communication inter-processus et le système d'exploitation

La communication de processus entre les processus s'exécutant sur différents hôtes se fait principalement par échange de messages

Dans une structure client-serveur

Processus client : le processus qui initie la communication
Processus serveur : le processus qui attend la demande de communication 

Dans une structure de partage de fichiers P2P

Le pair qui a téléchargé le fichier est identifié en tant que client

Le pair qui a téléchargé le fichier est identifié comme le serveur

Prise 2.2 (prise) 

La plupart des applications consistent en des paires de processus communicants, avec deux processus dans chaque équipe qui s'envoient des messages. Les processus envoient et reçoivent des messages vers et depuis le réseau via une interface logicielle appelée socket

La communication inter-processus est réalisée en utilisant socket pour envoyer/recevoir des messages, ce qui est similaire à l'envoi d'une lettre

  1. L'expéditeur envoie le message à la boîte aux lettres à l'extérieur de la porte (la porte ici équivaut à une prise)
  2. L'expéditeur s'appuie sur une infrastructure de transmission (à l'extérieur de la porte) pour transmettre le message à l'hôte où se trouve le destinataire et l'envoie à l'extérieur de la porte du destinataire
  3. Le récepteur reçoit le message de l'extérieur de la porte

Afin d'établir une communication inter-processus sur différents hôtes, chaque processus doit avoir un identifiant et chaque hôte a une adresse IP unique, mais cela ne suffit pas pour identifier de manière unique un processus (il peut y avoir plusieurs processus sur un hôte qui doivent communiquer), nous attribuons un numéro de port à chaque processus sur l'hôte qui doit communiquer , et utilisons l'adresse IP + le numéro de port pour identifier un processus

Adresse IP : l'identification de l'hôte, une adresse IP peut identifier de manière unique un hôte 

Numéro de port : l'identification du processus sur l'hôte, un numéro de port peut identifier de manière unique un processus sur l'hôte, des exemples typiques sont :

Serveur HTTP:80

Serveur de messagerie:25

3. Exigences de service des applications Web

Le réseau informatique est une structure hiérarchique, la couche inférieure fournit des services pour la couche supérieure, et ce service est réalisé via l'interface

Dans le modèle de référence à cinq couches que nous adoptons, la couche inférieure de la couche application est la couche transport et le socket est l'interface entre le programme d'application et le protocole de la couche transport Par conséquent, lors de la conception d'un programme d'application, il est souvent sélectionné selon les exigences du programme d'application protocole de la couche transport

Classer les exigences de service d'une application dans quatre domaines : transfert de données fiable , débit , synchronisation et sécurité

3.1 Transmission de données fiable

Comme indiqué précédemment, des paquets peuvent être perdus dans les réseaux informatiques : les tampons du routeur débordent, les paquets sont corrompus et abandonnés. Et certaines applications sont intolérables à la perte de données, telles que le courrier électronique, le transfert de fichiers, l'accès à distance à l'hôte, le transfert de documents Web et les applications financières, etc.

Pour prendre en charge ces applications, un certain travail doit être fait pour s'assurer que les données envoyées par un côté de l'application sont livrées correctement et complètement à l'autre côté de l'application.

On dit qu'un protocole fournit un mécanisme de transport fiable s'il fournit un service pour assurer la livraison des données

Lorsqu'un protocole de couche de transport fournit une transmission de données fiable, le processus d'envoi peut être pleinement confiant que les données atteindront le processus de réception sans erreur tant qu'il transmet ses données dans le socket

Certaines applications ne sont pas sensibles à la perte de données. Ces applications sont appelées applications tolérantes à la perte . Les plus courantes sont les applications multimédia, telles que les conversations audio/vidéo, qui peuvent tolérer une certaine quantité de perte de données .

3.2 Débit

Le débit disponible est le débit auquel le processus d'envoi peut livrer des bits au processus de réception

La communication entre deux processus dépend souvent d'un certain chemin réseau, et la bande passante de ce chemin sera partagée par d'autres sessions. Au fur et à mesure que la session arrive et part, le débit disponible fluctue.

Pour certaines applications, le protocole de la couche transport doit garantir qu'il peut fournir un débit disponible garanti à un certain débit

Par exemple, si une application de téléphonie Internet encode la parole à 32 kbit/s, elle doit envoyer des données au réseau à ce débit et fournir des données à ce débit à l'application réceptrice. Si le protocole ne peut pas fournir ce débit, l'application doit Encoder à un débit inférieur. taux ou abandonner l'envoi. De telles applications avec des exigences de débit sont appelées applications sensibles à la bande passante ( applications sensibles à la bande passante )

Les applications telles que la messagerie électronique, le transfert de fichiers et la diffusion Web qui utilisent plus ou moins le débit disponible en fonction de la bande passante disponible sont appelées  applications élastiques.

3.3 Calendrier

Le protocole de la couche de transport peut également fournir des garanties de synchronisation, par exemple : chaque bit injecté dans la socket par l'expéditeur atteint la socket du récepteur au plus tard 100 ms

Un tel service serait attrayant pour les applications interactives en temps réel telles que la téléphonie Internet, les environnements virtuels, les téléconférences et les jeux multipartites, qui nécessitent tous la livraison de données avec des contraintes de temps strictes pour être efficaces. 

Lors des appels et des jeux multijoueurs, ce service peut garantir que le délai se situe dans une certaine plage pour répondre à la nature en temps réel des appels ou des jeux.

3.4 Sécurité 

Les protocoles de la couche transport peuvent également fournir un ou plusieurs services de sécurité aux applications. Un service qui assure la confidentialité entre le processus d'envoi et de réception , empêchant les données d'être observées d'une manière ou d'une autre entre les deux processus

Par exemple : dans l'hôte expéditeur, le protocole de la couche transport peut chiffrer toutes les données transmises par le processus expéditeur, et dans l'hôte récepteur, le protocole de la couche transport peut déchiffrer les données avant qu'elles ne soient transmises au processus récepteur.

3.5 Exigences pour les applications réseau courantes 

application données perdues bande passante sensibles au temps
transfert de fichier ne peut pas être perdu élasticité Non
e-mail ne peut pas être perdu élasticité Non
Document Web ne peut pas être perdu Elasticité (plusieurs kbps) Non
Téléphonie Internet/Vidéoconférence perte de tolérance

Audio (plusieurs kbps ~ 1Mbps)

Vidéo (10kbps~5Mbps)

Oui, 100 ms
Diffuser de l'audio/vidéo perte de tolérance idem oui, secondes
jeu interactif perte de tolérance Plusieurs kbps ~ 10kbps Oui, 100 ms
message sur téléphone intelligent ne peut pas être perdu élasticité Oui et non

4. Services de transmission fournis par Internet 

Internet (plus généralement, le réseau TCP/IP) fournit deux protocoles de couche de transport pour les applications : TCP et UDP. En tant que développeur de logiciels, lors de la création d'une nouvelle application pour Internet, la première décision à prendre est de choisir UDP ou TCP.

4.1 Service TCP

Le modèle de service TCP comprend des services orientés connexion et des services de transmission de données fiables

Connexion orientée

  • Avant que les paquets de données de la couche application ne commencent à circuler, TCP permet au client et au serveur d'échanger entre eux des informations de contrôle de la couche transport, ce que l'on appelle la "prise de contact".
  • Après le "handshake", une connexion TCP est établie entre les sockets des deux processus, et cette connexion est full -duplex
  • L'application a fini d'envoyer le message et la connexion doit être supprimée

transmission de données fiable

  • Les processus de communication peuvent s'appuyer sur TCP pour fournir des données envoyées sans erreur et dans le bon ordre
  • La livraison des données TCP est basée sur le flux d'octets

De plus, ni TCP ni UDP ne fournissent de mécanisme de cryptage.Afin d'assurer la sécurité, la communauté Internet a développé une version améliorée de TCP— Secure Sockets LayerSecure Sockets Layer, SSL  ), qui fournit des services de sécurité de processus à processus, y compris le chiffrement, l'intégrité des données et l'authentification des terminaux

4.2 Service UDP

UDP est sans connexion , il fournit des services de transmission de données non fiables et est un protocole qui fait de son mieux pour fournir des données à la couche supérieure (l'implication est que l'exactitude de la transmission des données ne peut être garantie)

Lorsqu'un processus envoie un message dans un socket UDP, le protocole UDP ne garantit pas que le message atteindra le processus récepteur. Non seulement cela, les paquets arrivant au processus de réception peuvent également arriver dans le désordre 

Nous présenterons en détail les connaissances pertinentes de TCP et UDP au niveau de la couche de transport

5. Protocole de la couche application 

Maintenant que nous savons comment l'application envoie des messages dans le socket et réalise la communication du processus réseau, le problème suivant auquel nous sommes confrontés est de savoir comment spécifier le protocole de la couche application.

Les applications réseau doivent suivre le protocole de la couche application, qui définit la manière dont les processus d'application exécutés sur différents systèmes finaux peuvent se transmettre des messages. Certains protocoles de la couche application sont publics, ces protocoles

  • Défini par RFC ( demande de commentaires
  •  permettre l'interopérabilité
  • HTTP, SMTP, ……

Certains protocoles de couche application sont propriétaires,

  • La plupart des applications de partage de fichiers P2P 

Le contenu du protocole de la couche application comprend principalement

  • Type de message (type) - message de demande, message de réponse
  • La syntaxe/format du message - quels champs se trouvent dans le message et comment chaque champ est décrit
  • Sémantique du champ - le sens de l'information dans le champ
  • règles - quand un processus envoie/répond à un message, comment un processus envoie/répond à un message
Le format du message de requête HTTP

Je suppose que tu aimes

Origine blog.csdn.net/weixin_58165485/article/details/128599605
conseillé
Classement