Réseau informatique - Couche d'application

Table des matières

Présentation de la couche d'application

Insérer la description de l'image ici

  • Caractéristiques
    • Aucun logiciel de couche application dans le cœur du réseau
    • Le cœur du réseau n'a pas de fonctionnalité de couche d'application
    • Les applications réseau n'existent que sur le système final, développement et déploiement rapides d'applications réseau

1. Communication de processus

Dans un réseau informatique, ce sont les processus , et non les programmes , qui communiquent . Les processus sur différents systèmes finaux sont échangés sur un réseau informatiquemessageEt communiquer les uns avec les autres.

  • Interface processus et réseau informatique
    • Le processus est appelépriseL'interface logicielle envoie et reçoit des messages du réseau. La socket est équivalente à la « porte » de la « maison » du processus. Les sockets peuvent également être appelées Application Programming Interface (API, Application Programming Interface) .

    • Le développeur d'applications a le contrôle sur tout ce qui se trouve du côté de la couche application du socket , mais le contrôle sur la couche transport est limité à :

      • Sélectionnez le protocole de couche de transport
      • Peut-être que quelques paramètres de couche de transport peuvent être définis, tels que la mise en mémoire tampon maximale et la longueur maximale du segment.

Insérer la description de l'image ici

  • adressage de processus
    • Afin d'identifier le processus récepteur, on définit : ① L'adresse de l'hôte ; ② L'identifiant du processus récepteur désigné dans l'hôte de destination.
      • Un hôte est identifié de manière unique par son adresse IP (une quantité de 32 bits)
      • Le numéro de port peut être utilisé pour spécifier le processus de réception (socket de réception) de l'hôte de destination.

      Une liste des numéros de port connus pour tous les protocoles standard Internet est disponible sur : http://www.iana.org.

2. Services de transport destinés à être utilisés par les applications

  • Des paquets de transfert de données fiables
    peuvent être abandonnés dans les réseaux informatiques en raison d'un dépassement de tampon du routeur ou d'une corruption de bits .
    • Lors du processus de transmission de données de certaines applications, une petite partie de la perte de données n'aura pas un grand impact sur les fichiers, comme les applications multimédia (audio/vidéo, etc., de petites interférences n'auront pas un grand impact)
    • Mais pour certaines applications telles que la messagerie électronique, le transfert de fichiers, l'accès à distance à un hôte, le transfert de documents Web et les applications financières, la perte de données aura des conséquences catastrophiques.Transmission de données fiable pour garantir l’intégrité des données
  • Débit
    • Les applications sensibles à la bande passante
      ont des exigences spécifiques en matière de débit , et si le débit est inférieur au débit requis, les données seront soit codées à un débit inférieur, soit abandonnées (le débit est trop faible pour être faible ou faible). pas d'Utilisation). Tels que : les applications de téléphonie Internet.
    • Les applications Elastic
      utilisent le débit disponible en fonction de la bande passante disponible (plus c'est toujours mieux, bien sûr). Tels que : e-mail, transfert de fichiers, transfert Web.
  • sécurité
    • Le protocole de transport crypte les données avant de les envoyer à l'hôte et les déchiffre avant de les transmettre au processus de réception. (Assure la confidentialité entre l'envoi et la réception)
    • Les protocoles de transport assurent également l'intégrité des données et l'authentification des points finaux.

3. Services de transport fournis par Internet

  • Service TCP
    Insérer la description de l'image ici
    • Caractéristiques

      • services orientés connexion(Après la poignée de main à trois, une connexion TCP est établie pour transmettre des données)

      • Service de transfert de données fiable

        • Livraison des données sans erreur et dans le bon ordre
        • Aucune perte d'octets et redondance
      • connexion duplex intégral

      • La connexion doit être démantelée après l'envoi du message.

    • Mécanisme de contrôle de congestion TCP

      • En cas de congestion du réseau, TCP inhibe le processus d'envoi .
      • Le contrôle de la congestion tente également de limiter chaque connexion TCP afin quePartage équitable de la bande passante du réseau

Cela n’apporte pas nécessairement des avantages au processus de communication, mais à l’Internet dans son ensemble.

  • Service UDP
    Un protocole de transport léger qui ne fournit pas de services inutiles et ne fournit que des services minimaux.

    • Caractéristiques:
      • pas de connection(donc pas de processus de poignée de main)
      • transfert de données peu fiable
        • Les données peuvent être perdues
        • Les données peuvent arriver dans le désordre
    • Pas de mécanisme de contrôle de la congestion
      • L'expéditeur peut sélectionner n'importe quel débit pour injecter des données dans la couche réseau ( le débit réel peut être inférieur à ce débit en raison d'une bande passante limitée ou d'une congestion sur la liaison intermédiaire ) .
  • autre
    Insérer la description de l'image ici

1. Modèle d'application réseau

1.1 Modèle C/S (client/serveur, client/serveur)

définition

Le modèle C/S fait référence au modèle Client/Serveur, qui est une architecture d'application réseau courante. Dans ce modèle, il y a unProgramme client (Client) et un programme serveur (Serveur), client et serveurCommuniquer via des protocoles spécifiques

principe de fonctionnement

Dans ce modèle, le programme client envoie une requête au serveur, le serveur reçoit la requête et renvoie une réponse, et le client effectue les opérations correspondantes en fonction de la réponse. Le modèle C/S peut être implémenté via le réseau, de sorte que le client et le serveur puissent être situés sur des ordinateurs différents .从而实现分布式计算和数据存储

Caractéristiques

  • client:

    • Communiquer activement avec le serveur
    • Connexion intermittente à Internet
    • Peut-être une adresse IP dynamique
    • Ne communique pas directement avec les autres clients
  • serveur:

    • Il faut continuer à fonctionner pour fournir des services
    • Adresse IP fixe et numéro de port connu (convention)
    • extension du centre de données

Avantage

  • Interactivité : Le client peut interagir avec le serveur en temps réel pour réaliser un échange de données en temps réel.
  • Évolutivité : le modèle C/S a une bonne évolutivité et des clients ou des serveurs peuvent être ajoutés selon les besoins pour atteindre l'évolutivité du système.
  • Sécurité : Car entre le client et le serveur 通信是加密的, la transmission des données est relativement sécurisée.

application

Le modèle C/S est largement utilisé, comme la banque en ligne, les achats en ligne, les réseaux sociaux, etc. nécessitent tous l'utilisation de ce modèle.
Dans le modèle C/S, les clients doivent généralement installer des applications indépendantes, tandis que le serveur est un lieu qui fournit des services publics et auquel plusieurs clients peuvent accéder simultanément.
Par exemple, les jeux en ligne, les services bancaires en ligne, le commerce électronique, etc.

Insérer la description de l'image ici

1.2 Modèle P2P (peer to peer) et distribution de fichiers P2P

2.1 Modèle P2P

définition

Le modèle P2P fait référence au modèle peer-to-peer (modèle Peer-to-Peer). Il s'agit d'un modèle d'architecture de réseau,Chaque nœud agit en tant que client et serveur et peut demander et fournir des services à d'autres nœuds.. afin que chaque nœud du réseauPeut communiquer directement entre eux, sans avoir besoin d' un relais via un serveur central .

Caractéristiques

  • Adresse IP modifiable : les nœuds peuvent avoir des adresses IP dynamiques
  • 可扩展性好: Le modèle P2P peut être étendu à l'infini et n'est pas limité par le nombre de serveurs , ce qui rend possible l'informatique distribuée et le partage de fichiers à grande échelle.
  • 网络健壮性强Le réseau n'est pas facilement paralysé, chaque nœud du réseau P2P peut fournir des données, donc lorsque certains hôtes ou nœuds sont en panne ou qu'un grand nombre d'hôtes inondent le réseau, les hôtes peuvent toujours demander et fournir des services normalement (les ressources sont suffisantes et la bande passante n'est pas limitée). la fonctionnalité de l'ensemble du réseau.
  • (Presque) pas de "serveur" fonctionnant tout le temps
  • La communication entre n’importe quel système final est possible

  • Auto-évolutivité : les nouveaux nœuds homologues apportent de nouvelles capacités de service et bien sûr de nouvelles demandes de service.

  • Les hôtes participants sont connectés par intermittence et peuvent changer d'adresse IP

  • Le modèle P2P présente également des inconvénients :

    • 1. Efficacité de la recherche : dans le modèle P2P, 搜索特定资源需要遍历整个网络,Moins efficace
    • 2. Problème de partage des ressources : Dans le modèle P2P,Le partage de ressources nécessite de la bande passante réseau et des ressources informatiques des nœuds, ce qui peut affecter les performances du réseau.
    • 3. Difficile à gérer
      • Les principales raisons sont les suivantes :
        • Décentralisation : Le modèle P2P annule le serveur central et chaque nœud agit comme client et serveur, rendant la gestion décentralisée et complexe.
        • Anonymat des nœuds : dans le modèle P2P, la communication entre les nœuds est généralement basée sur l'anonymat, ce qui rend difficile pour les gestionnaires d'identifier et de localiser des nœuds spécifiques.
        • Dynamique : les nœuds du modèle P2P changent de manière dynamique et peuvent rejoindre ou quitter le réseau à tout moment, ce qui rend difficile pour les gestionnaires de suivre et de surveiller l'état du réseau.
        • Problèmes de partage de ressources : dans le modèle P2P, le partage de ressources nécessite de la bande passante réseau et des ressources informatiques des nœuds, ce qui peut affecter les performances du réseau. Dans le même temps, il existe également certains problèmes de partage de ressources, tels que la violation du droit d'auteur, le contenu illégal, etc.

Par conséquent, la gestion du modèle P2P nécessite certaines mesures spéciales, telles que des systèmes basés sur la réputation, des filtres, une révision du contenu, etc., pour parvenir à une gestion efficace du réseau P2P.

application

Le modèle P2P peut être appliqué à divers domaines, tels que le partage de fichiers, l'informatique distribuée, le stockage réseau, etc. Le modèle P2P convient aux scénarios d'informatique distribuée et de partage de fichiers à grande échelle, tels que BitTorrent, Emule et d'autres logiciels de partage de fichiers.
* Exemple : Gnutella, Tonnerre

Insérer la description de l'image ici

2.2 Distribution de fichiers P2P

  • Temps de distribution :
    dans C/S(客户端/服务器)模型, le temps de distribution fait généralement référence au temps nécessaire au client pour demander des données ou des services au serveur, et au serveur pour répondre et renvoyer les données ou les services .
    Dans P2P模型, fait référence au temps nécessaire à N homologues pour obtenir une copie du fichier.
  • F : longueur du fichier
  • dn : taux de téléchargement du nième nœud
  • un : taux de téléchargement du nième nœud

1. Extensibilité de l'architecture P2P

Distribution de fichiers : C/S vs P2P

Insérer la description de l'image ici
Insérer la description de l'image ici

Mode C/S

Insérer la description de l'image ici

Modèle P2P

Insérer la description de l'image ici

2.Bittorrent

2.1 Aperçu
  • Définition : Un protocole P2P populaire pour la distribution de fichiers.
  • Torrent : en termes Bittorrent, une collection de tous les pairs participant à la distribution d'un fichier spécifique.
    Un homologue peut quitter le torrent à tout moment avec seulement un sous-ensemble de blocs.

Les pairs dans un torrent téléchargent des morceaux de fichiers de longueur égale, la longueur typique étant de 256 Ko.

Insérer la description de l'image ici
Insérer la description de l'image ici

2.2 Demander, envoyer un bloc de fichier
  • Première technique la plus rare : un homologue demande d'abord les blocs avec le plus petit nombre de répliques parmi ses voisins, afin d'égaliser le nombre de répliques de chaque bloc dans le flot.

Insérer la description de l'image ici

Insérer la description de l'image ici

Insérer la description de l'image ici

Insérer la description de l'image ici

2.3 Autres

Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici

Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image iciInsérer la description de l'image ici
Insérer la description de l'image ici

*2,4 DHT

DHT (Distributed Hash Table) est un modèle P2P structuré.

Une topologie ordonnée en arbre ou en anneau est conservée entre chaque nœud. Chaque nœud possède sa propre adresse IP hachée sous la forme d'une valeur d'ID de 16 octets.

En prenant la topologie en anneau comme exemple, chaque nœud forme un anneau en fonction de sa valeur d'identification pour former une topologie de réseau ordonnée.
Le contenu du fichier est également converti en une valeur de hachage de 16 octets comme valeur d'identification. 6-88 est conservé à l'emplacement du nœud 88. Lors de la recherche du fichier, demandez directement au nœud 88 de trouver l'emplacement du fichier.

5
88
1011
199

Insérer la description de l'image ici

1.3 Hybrides : architectures client-serveur et peer-to-peer

définition

Hybride : l'architecture client-serveur et peer-to-peer est un modèle de structure de réseau qui combine le modèle client-serveur et l'architecture peer-to-peer. Dans un environnement hybride, la communication entre le client et le serveur et la communication entre les nœuds homologues peuvent se produire simultanément, coopérant les uns avec les autres pour accomplir des tâches spécifiques .

  • Exemples d'applications hybrides d'architecture C/S et P2P
    • Napster (logiciel de téléchargement MP3)
      • Recherche de fichiers : centralisée
        • L'hébergeur enregistre ses ressources sur le serveur central
        • L'hôte interroge le serveur central pour connaître l'emplacement des ressources
      • Transfert de fichiers : P2P
        • Entre n’importe quel nœud homologue
    • messagerie instantannée
      • Tests en ligne : centralisés
        • Lorsqu'un utilisateur se connecte, enregistrez son adresse IP auprès du serveur central
        • Les utilisateurs contactent un serveur central pour trouver l'emplacement de leurs amis en ligne
      • Chat entre deux utilisateurs : P2P

avantage

La structure hybride présente les avantages suivants :

Évolutivité : La structure hybride a une bonne évolutivité et de nouveaux nœuds ou composants peuvent être ajoutés à tout moment pour améliorer les performances et la capacité du système.

Forte flexibilité : Les nœuds de la structure hybride peuvent communiquer directement entre eux sans passer par un serveur central, rendant les connexions réseau plus flexibles.

Haute fiabilité : Chaque nœud de la structure hybride supporte une certaine charge, ce qui rend le réseau plus fiable et stable.

défaut

Cependant, les structures hybrides présentent également certains inconvénients :

Haute complexité: La structure hybride doit gérer simultanément la communication client-serveur et la communication entre les nœuds homologues, et la conception et la mise en œuvre du système sont relativement complexes.
Problèmes de partage de ressources: Dans une structure hybride, le partage des ressources nécessite de la bande passante réseau et des ressources informatiques des nœuds, ce qui peut affecter les performances du réseau .

application

La structure hybride convient aux scénarios qui doivent prendre en charge à la fois la communication client-serveur et la communication entre nœuds homologues, comme certaines applications telles que l'informatique distribuée, le partage de fichiers et les réseaux sociaux.

2. Lié à la demande

2.1 Web et HTTP

1.1 Quelques termes

concept de base

  • page web: (également appelé document) se compose de quelques objets.
  • Objet : Il peut s'agir d'images HTML, JPEG, d'applets Java, de fichiers de clips audio, etc.
  • La page Web contient unFichier HTML de base, le fichier HTML contient également des références à plusieurs objets ( 链接). Les pages Web sont imbriquées avec des liens vers de nombreux objets, plutôt que vers les objets eux-mêmes.
    Nombre d'objets dans une page web = fichiers HTML de base + nombre d'autres (images, vidéos, etc.)
  • En URLfaisant une référence (un accès) à chaque objet
    • 访问协议,用户名,口令,端口等

WWW

Insérer la description de l'image ici

URL

  • Définition :
    L'URL (Uniform Resource Locator) est l'outil de localisation d'Internet.Utilisé pour spécifier l'emplacement des informations sur le serveur World Wide Web (www)Méthode d'expression

  • Format :
    Le format de syntaxe générale de l'URL est le suivant :
    protocol :// hostname[:port] / path / [:parameters][?query]#fragment
    Ceux entre crochets sont facultatifs.

    • protocole: Utilisé pour spécifier le protocole utilisé. Par exemple, les noms de protocole couramment utilisés sont : HTTP (Hypertext Transfer Protocol), HTTPS (Hypertext Transfer Protocol Secure), FTP (File Transfer Protocol), FTPS (Secure File Transfer Protocol), SFTP ( SSH protocole de transfert de fichiers) et ainsi de suite.

    HTTPS est un canal HTTP destiné à la sécurité. En termes simples, il s'agit d'une version sécurisée de HTTP. Il utilise Secure Socket Layer (SSL) pour l'échange d'informations, les détails de cryptage nécessitent donc SSL.
    Les URL préfixées par https:// utilisent le protocole de sécurité SSL/TLS pour chiffrer entre les requêtes et les réponses.
    La fonction principale du protocole HTTPS est de crypter le protocole http et d'assurer la sécurité de la transmission des données en établissant un canal sécurisé.
    Lors de la communication HTTPS, des certificats numériques sont utilisés pour l'authentification et la communication cryptée.
    Les certificats numériques sont émis par un organisme tiers de confiance et servent à vérifier la légitimité des identités des deux parties communicantes.
    HTTPS utilise le port 443, pas le port 80 comme HTTP.

    • nom d'hôte:Fait référence àLe nom d'hôte du système de noms de domaine (DNS) ou l'adresse IP du serveur hébergeant la ressource. Certains sites Web prennent en charge l'accès anonyme, tandis que d'autres nécessitent un nom d'utilisateur et un mot de passe pour y accéder.在主机名前包含连接到服务器所需的用户名和密码(格式:username:password@hostname)。

    • port (numéro de port) : utilisé pourSpécifiez le numéro de port où se trouve la ressource默认情况下,HTTP 使用的端口号是80,HTTPS 使用的端口号是443。

    Dans la syntaxe d'URL standard , le numéro de port est placé après le nom d'hôte et non à la fin de l'URL. Par exemple, l'URL suivante contient un numéro de port :
    http://www.example.com:8080/index.html
    Dans cet exemple, le nom d'hôte est www.example.com, le numéro de port est 8080 et le chemin est /index.html.
    Cependant, certaines URL non standard peuvent mettre le numéro de port à la fin , mais il ne s'agit pas d'une syntaxe d'URL standard. Une telle URL peut fonctionner correctement dans certains cas spécifiques, mais peut causer des problèmes dans la plupart des cas .
    Par conséquent, il est recommandé de suivre les spécifications de syntaxe URL standard et de placer le numéro de port après le nom d'hôte.

    • chemin: Utilisé pour spécifier le chemin où se trouve la ressource, c'est-à-dire le chemin relatif du fichier ou du répertoire.

    • paramètres (paramètres de requête) : utilisés pour spécifier certains paramètres de requête afin de transmettre des informations supplémentaires au serveur lors de la demande.

    • requête :
      facultatif, utilisé pour transmettre des paramètres à des pages Web dynamiques (telles que des pages Web produites à l'aide de CGI, ISAPI, PHP/JSP/ASP/ASP.NET et d'autres technologies). Il peut y avoir plusieurs paramètres, séparés par le symbole "&" .Activé , le nom et la valeur de chaque paramètre sont séparés par le symbole "=" .

    • fragment (identifiant du fragment): Utilisé pour spécifier une partie d'une ressource, comme un horodatage dans une vidéo ou un numéro de page dans un document, etc.

1.2 Présentation de HTTP

HTTP vs HTTPS
Insérer la description de l'image iciRFC expliqué

« Hyper Text » (HT) est l'abréviation chinoise d'Hyper Text.

  • L'hypertexte est un texte en réseau qui utilise des hyperliens pour organiser les informations textuelles dans divers espaces. Afficher le texte et le contenu lié au texte.
  • Le texte contient des liens vers d'autres emplacements ou documents.,Connectez différents 对象liens ensemble pour former une structure de réseau, permettant de passer directement de la position de lecture actuelle à la position pointée par le lien hypertexte.

Protocole de transfert hypertexte (HTTP)

  • Protocole simple de requête-réponse
  • Il s'exécute généralement sur TCP .
  • Il spécifie le type de messages que le client peut envoyer au serveur et le type de réponse qu'il reçoit.
  • 请求和响应消息的头以ASCII形式给出
  • Le contenu du message a un format de type MIME.

Insérer la description de l'image ici

  • Socket est une abstraction de points de terminaison pour la communication bidirectionnelle entre les processus d'application sur différents hôtes du réseau.
  • TCP (Transmission Control Protocol) : est unFiable et orienté connexionprotocole de transport, peutRéaliser des fonctions telles que la transmission fiable et le contrôle du flux des paquets de données
  • UDP (User Datagram Protocol) :
    est unprotocole sans connexion peu fiable,Un transfert de données rapide peut être obtenu, mais des problèmes tels qu'une perte de données peuvent survenir
  • Le service sans connexion
    signifie que les parties communicantes n'ont pas besoin d'établir une ligne de communication à l'avance . Au lieu de cela, chaque paquet (groupe de messages) avec une adresse de destination est envoyé à la ligne et le système sélectionne indépendamment un itinéraire de transmission.
  • Service orienté connexion
    Lors de la communication, les deux parties doivent établir une ligne de communication au préalable . Le processus est le suivant :Établir des connexions, utiliser des connexions et libérer des connexionstrois processus

Dans les réseaux informatiques,Avec état et sans état indiquent si le protocole réseau enregistre des informations sur l'état de la connexion réseau.

1. Le protocole sans état signifie que le protocole n'enregistre pas d'informations sur l'état de la connexion réseau.Les protocoles sans état ne conservent pas de trace des demandes ou réponses précédentes, des informations complètes sont requises pour chaque demande. Par exemple, le protocole HTTP est un protocole sans état. Il ne sauvegarde pas les informations de requête envoyées par le client. Chaque requête est indépendante.

2. Les protocoles avec état font référence aux protocoles qui enregistrent des informations sur l'état des connexions réseau.Les protocoles avec état conservent des enregistrements des demandes ou réponses précédentes, pour un traitement ultérieur. Par exemple, le protocole FTP est un protocole avec état qui enregistre les informations sur l'état de connexion du client sur le serveur pour un traitement ultérieur.

Dans les réseaux informatiques, les protocoles avec et sans état présentent chacun des avantages et des inconvénients. Le protocole sans état peut mieux prendre en charge le traitement simultané et l'équilibrage de charge , car le protocole sans état n'enregistre pas les informations sur l'état de la connexion , il est donc plus facile de traiter plusieurs demandes et peut prendre en charge plus d'utilisateurs dans les mêmes conditions de ressources du serveur .
Les protocoles avec état peuvent mieux prendre en charge les scénarios dans lesquels les informations sur l'état de la connexion doivent être enregistrées, comme les applications Web qui doivent maintenir des sessions.

Il convient de noter que les protocoles avec état sont vulnérables aux attaques s'ils ne sont pas gérés correctement. Par exemple, les droits d'accès anonymes à un serveur FTP peuvent facilement provoquer une attaque du serveur FTP. Par conséquent, dans les applications pratiques, il est nécessaire de sélectionner un protocole approprié en fonction de la situation spécifique.

1.3 Connexion HTTP

Les connexions HTTP sont divisées en 持续(持久)连接et非持续(非持久)连接

Si vous souhaitez voir quelle méthode est utilisée pour une certaine connexion HTTP, vous pouvez capturer le paquet et le juger en fonction de la valeur de connexion dans la requête HTTP ou le message de réponse.

  • connexion non persistante
    Insérer la description de l'image ici

  • connexion persistante

    Connection: Keep-Alive
    

3.1 HTTP avec connexions non persistantes

Une connexion non persistante signifie qu'une fois que le client et le serveur ont établi une connexion, le client et le serveur ne peuvent communiquer qu'entre une requête et une réponse (c'est-à-dire que la connexion TCP n'effectue qu'une seule transmission de données), puis la connexion sera fermée.

  • Tout au plus envoyé uniquement 一个对象sur connexion TCP
  • Le téléchargement de plusieurs objets nécessite plusieurs connexions TCP
  • HTTP/1.0 utilise des connexions non persistantes

Exemple d'organigramme de transfert de données sur une connexion non persistante :
Insérer la description de l'image ici
Insérer la description de l'image ici

Modèle de temps de réponse et RTT

  • RTT comprend : le regroupementdélai de propagation, les paquets sont acheminés sur des routeurs et commutateurs intermédiairesRetard dans la file d'attente, grouperetard de traitement
    Insérer la description de l'image ici

3.2 HTTP avec connexions persistantes

  • La connexion persistante fait référence àLes requêtes et les réponses peuvent être entrelacées et plusieurs objets sont transférés sur une seule connexion TCP (entre client et serveur). Toutes les demandes/réponses sont envoyées via la même connexion TCP.
  • HTTP/1.1 utilise des connexions persistantes par défaut

Insérer la description de l'image ici

1.4 Format des messages HTTP

La spécification HTTP [RFC:1945 ; RFC2616 ; RFC7540] contient la définition du format de message HTTP.

Type de message HTTP :

  • message de demande
  • message de réponse

4.1 Message de requête HTTP

Insérer la description de l'image ici

1. Format commun des messages de requête HTTP

Insérer la description de l'image ici

Insérer la description de l'image ici
实体体在使用POST方法时被才会被使用,当使用GET方法时实体体为空。

  • Ligne de requête HTTP : champ méthode, champ URL, champ version HTTP
    • Types de champs de méthode : GET, POST, HEAD, PUT, DELETE
      • GET : souvent utilisé dans les formulaires HTML et inclut les données saisies dans l'URL demandée (dans le champ du formulaire).Les données d'entrée et l'URL normale doivent être séparées par des points d'interrogation (?) en anglais, et plusieurs paramètres doivent être combinés avec &., forment ensemble le lien URL développé. Par exemple : http://www.somesite.com/animalsearch?monkey&bananas.

      • POST : les clients HTTP utilisent souvent la méthode POST lorsqu'un utilisateur soumet un formulaire. existerLe corps de l'entité du message de demande contient la valeur saisie par l'utilisateur dans le champ du formulaire. (Certains sites Web crypteront la valeur saisie, comme indiqué ci-dessous le mot de passe)
        Insérer la description de l'image iciInsérer la description de l'image ici

      • HEAD : Semblable à GET. quandserveurAprès avoir reçu un message de demande de méthode HEAD,Répondra avec un message HTTP, mais ne renverra pas l'objet de requête. Couramment utilisé pour déboguer les traces des applications Web.

      • PUT : souvent utilisé conjointement avec des outils de publication Web, permettant aux utilisateursTélécharger des objets vers le chemin (répertoire) spécifié du serveur Web spécifié

      • SUPPRIMER : Autoriser l'utilisateur ou l'applicationSupprimer des objets sur le serveur Web

  • Ligne d'en-tête :
    • HOST : L'hôte où se trouve l'objet
    • Connexion : s'il faut utiliser des connexions persistantes
    • Agent utilisateur : agent utilisateur (c'est-à-dire le type de navigateur avec lequel le navigateur envoie des requêtes au serveur)
    • Accept-langue : Indique la version de l'objet que l'utilisateur souhaite obtenir (si l'objet existe), fr indique qu'il souhaite obtenir la version française.
2. Soumettre la saisie du formulaire

Insérer la description de l'image ici

3. Type de version HTTP

Insérer la description de l'image ici

4.2 Message de réponse HTTP

1. Format du message de réponse
  • Format de message de réponse commun
    Insérer la description de l'image ici

  • La figure ci-dessous montre le message de réponse au message de requête de l'exemple précédent.
    Insérer la description de l'image ici

  • Ligne d'état HTTP

    • Version : HTTP/1.1
    • Code d'état : 200, déclaration : OK
  • Ligne d'en-tête :

    • Connexion : Mode de connexion (persistant, non persistant).
    • Date : La date et l'heure auxquelles le serveur a généré et envoyé le message de réponse ( 服务器从它的文件系统中检索到对象,将该对象插入到响应报文并发送该响应报文的时间)
    • Serveur : Le serveur qui génère des messages (de réponse), similaire à l'agent utilisateur dans le message de demande.
    • Dernière modificationLa date et l'heure auxquelles l'objet a été créé ou modifié pour la dernière fois
    • Longueur du contenu : envoyerLe nombre d'octets dans l'objet
    • Type de contenu : indicationFormat de texte pour les objets dans les entités. (L'image montre du texte HTML)
2. Code d'état de la réponse

Insérer la description de l'image ici

1.5 Interaction utilisateur-serveur : Cookies

5.1 Statut utilisateur-serveur : cookies

Insérer la description de l'image ici

  • Lorsqu'un utilisateur visite un e-commerce qui utilise des cookies pour la première fois, le serveur lui attribue un identifiant (pour associer le comportement de l'utilisateur, et résumer son comportement ultérieur et les informations de l'utilisateur sous un identifiant pour faciliter la fourniture de services personnalisés à l'utilisateur . Les informations utilisateur sont également enregistrées à des fins d'identification.)

  • Les requêtes ultérieures envoyées au serveur comporteront un cookie de ligne d'en-tête : xxx. (code numérique ou alphabétique)

  • En raison de la fonction des cookies pour stocker les informations de l'utilisateur, HTTP peut être modifié d'un protocole sans état à un « protocole avec état » pour prendre en charge davantage d'applications et fournir davantage de services.

5.2 Cookies : maintien du statut

Insérer la description de l'image ici

  • Utilisez des cookies pour suivre le statut de l'utilisateur :
    Insérer la description de l'image ici

5.3 Problèmes de commodité et de confidentialité des cookies

Insérer la description de l'image ici

1.6 Mise en cache Web

6.1 Définition et explication

  • Cache Web : Aussi appelé serveur proxy, c'est une entité réseau qui peut remplacer le serveur initial pour satisfaire les requêtes HTTP.
  • Le cache Web possède son propre stockage sur disque et conserve une copie de l'objet demandé le plus récemment.
  • processus de travail:
    • Lorsqu'un objet demandé est dans le cacheexisterheure,Le cache Web est directementUtiliser le message de réponse HTTP au navigateur clientretourL'object
    • dans le cache WebQuand il n'y a pas un tel objet,Ouvre une connexion TCP au serveur initial de l'objet. Envoyez une requête HTTP pour cet objet sur la connexion TCP du cache au serveur d'origine.
      • tamponAprès avoir reçu la réponse à la demande, stockez une copie dans l'espace de stockage local,etVia une connexion TCP entre le navigateur client et le cache WebEnvoyer au navigateur client
      • Dans ce processus, le cache Web est à la fois client et serveur.

Insérer la description de l'image ici

Cache push ou pull

Le cache push et le cache pull sont deux types de cache réseau, qui sont principalement utilisés pour réduire les retards du réseau et augmenter la vitesse de transmission des données.

La mise en cache push fait référence au transfert de données du serveur vers le navigateur du client , lorsqueLorsque le client a besoin de ces données, le navigateur les récupère directement depuis le cache sans les télécharger à nouveau depuis le serveur.. Certains navigateurs mettent localement en cache les pages Web fréquemment visitées pour réduire la latence du réseau et augmenter la vitesse d’accès.

Pull cache signifie que lorsque le navigateur client lance une requête, le serveur met en cache les données sur le réseau local .Lorsque les clients ont besoin de ces données, ils peuvent les obtenir directement depuis le réseau local sans les télécharger à nouveau depuis le serveur.. Cette méthode est souvent utilisée pour mettre en cache des données volumineuses telles que des vidéos et des images, ce qui peut réduire la latence du réseau et augmenter la vitesse de transmission des données.

En général, le cache push et le cache pull visent à améliorer les performances du réseau, à réduire la latence du réseau et à augmenter la vitesse de transmission des données.

6.2 Exemple de mise en cache

Insérer la description de l'image ici

1. Liens d'accès plus rapides

Insérer la description de l'image ici

2. Installez le cache local

Insérer la description de l'image ici
Insérer la description de l'image ici

1.7 Méthode GET conditionnelle

  • Génération :
    Bien que la mise en cache puisse réduire le temps de réponse, la copie de l'objet stocké dans le cache peut être obsolète. Afin de garantir que l'objet est à jour, HTTP introduit la méthode GET conditionnelle.
    Insérer la description de l'image ici
  • Conditions de composition :
    • message de demandeUtiliser la méthode GET
    • message de demandeContient une ligne d'en-tête "If-Modified-Since"

If-Modified-Since首部行的值为服务器发送的响应报文中 Last-Modified 首部行的值

  • Ce message de requête indique au serveur :Envoyer l'objet uniquement s'il a été modifié depuis la date indiquée
    • Si l'objet a été modifié, envoyez l'objet modifié et mettez à jour le cache
    • Sinon, l'objet ne sera pas envoyé et le message de réponse sera tel qu'illustré dans la figure suivante :
      Insérer la description de l'image ici

2.2 Protocole de transfert de fichiers FTP

2.2.1 Définition

  • Fonction :
     Utilisation précocePartager des fichiersprotocole (y compris le téléchargement et le téléchargement de fichiers), le rôle des serveurs FTP tels que les actuels Thunder, Baidu et Cloud Disk

Les administrateurs réseau gèrent les serveurs FTP. Le partageur (un utilisateur) télécharge (télécharge) des fichiers à partager via un client FTP. D'autres utilisateurs accèdent à ce contenu via des clients FTP.

  • Constituer
    l'interface utilisateur, l'interface de fichier local. Le serveur FTP dispose d'un disque dur de stockage (disque dur cloud) et transfère les fichiers entre les fichiers locaux et les répertoires de fichiers du serveur.
TFTP:TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进
          行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
      TFTP通常用于从TFTP服务器下载或上传文件,
          例如操作系统引导程序、配置文件等。TFTP客户端和TFTP服务器之间的通信是基于UDP协议进行的,端口号为69。
      与FTP协议相比,TFTP协议更加简单和轻量级,但功能较少。TFTP协议不支持用户认证,只能以匿名方式进行文件传输。
      此外,TFTP协议不支持文件目录操作,只能进行文件传输。
      在TFTP协议中,有两种传输模式,分别是读写模式(读写模式)和只读模式(只读模式):
          读写模式:客户端可以从服务器下载文件,也可以向服务器上传文件。
          只读模式:客户端只能从服务器下载文件,不能向服务器上传文件。

      需要注意的是,由于TFTP协议的安全性较低,因此在实际应用中,通常会使用FTP协议来代替TFTP协议。
  • Serveur et client FTP
    Insérer la description de l'image ici

Le système Windows est livré avec la commande FTP

Les utilisateurs peuvent utiliser la commande FTP en suivant les étapes suivantes :

打开命令提示符。
输入“ftp”并按下回车键,进入FTP模式。
输入FTP服务器的地址,并按照提示进行操作。

Il convient de noter que lors de l’utilisation de commandes FTP, les utilisateurs doivent posséder certaines connaissances et compétences informatiques de base, ainsi que des mesures de sécurité et des procédures d’exploitation correctes pour garantir la sécurité et la fiabilité des données2.

2.2.2 Étapes de travail

Insérer la description de l'image iciInsérer la description de l'image ici

1. Établir une connexion

Quand FTP客户端向FTP服务器发送连接请求时,FTP服务器会向客户端发送连接应答,建立起FTP控制连接.
Ensuite, le client FTP doit envoyer le nom d'utilisateur et le mot de passe au serveur FTP pour authentification. Si l'authentification réussit, des opérations telles que le transfert de fichiers peuvent être lancées.

2. Vérification d'identité

L'authentification de l'utilisateur appartient au contrôle de la connexionLe contenu est exécuté une fois la connexion établie. Voir ce qui suit pour contrôler la connexion.

  • Entrez le nom d'utilisateur et le mot de passe pour vous connecter (le serveur FTP effectueLe nom d'utilisateur et le mot de passe sont transmis en texte clair, qui présente un risque de sécurité et peut être facilement intercepté par les pirates utilisant des outils de capture de paquets)
  • Connectez-vous de manière anonyme

Insérer la description de l'image ici

3. Exploitation et transmission des fichiers

Une fois la connexion établie, deuxConnexion TCP, respectivement appeléconnexion de contrôleetConnexions de données.
Les instructions sont transmises sur la connexion de contrôle et les données de fichier sont transmises sur la connexion de données.

2.2.3 Connexion de contrôle FTP et connexion de données

FTP控制连接与数据连接分开

connexion de contrôle

existerconnexion de contrôlesupérieur

  • Utilisateur d'authentification utilisateur
    , mot de passe使用的是明文传输

  • Le client envoie des instructions au serveur, telles que des instructions pour changer de répertoire, supprimer, télécharger et télécharger des fichiers.
    La transmission des commandes de données est dite « hors bande »

Exemple d'explication du code d'état de la commande FTP et de la réponse :
Insérer la description de l'image iciLes mots minuscules dans l'exemple de commande de la figure ci-dessus sont des paramètres variables et des valeurs spécifiques. Les mots en majuscules sont des noms propres et sont fixes.

L'instruction RETR (récupérer) est une instruction permettant de télécharger un fichier depuis le serveur et spécifie un certain nom de fichier.
Téléchargement STOR (téléchargement).

上载
下载
客户端
服务器

Lorsque le client envoie la commande de téléchargement du fichier au serveur, 服务器的使用自己的20号端口主动与客户端建立数据连接

Connexions de données

existerConnexion de données

  • Effectuez le téléchargement de fichiers, le téléchargement (téléchargement) et d'autres transmissions de flux de données.

La transmission des données s'effectue via la connexion de données. Le transfert de données est appelé « in-band »

Pendant le processus de connexion de données FTP, le client envoie une commande FTP au serveur pour indiquer au serveur qu'il doit transmettre ou recevoir des données. Après avoir reçu la commande, le serveur utilisera son propre port 20 pour envoyer une réponse de confirmation au client. Après avoir reçu la réponse, le client ouvre une connexion de transfert de données et envoie une demande de connexion de données au serveur. Après avoir reçu la requête, le serveur utilisera son propre port 20 pour établir une connexion de transfert de données avec le processus client.

Il convient de noter que le port de connexion de données FTP est alloué dynamiquement et n'est pas un port fixe 20. Mais d'une manière générale, le port de connexion de données de FTP est le port 20, car le protocole FTP stipule que le port 20 est utilisé pour la connexion de données.

FTP est un protocole avec état, le serveur doit conserver l'état du client.

La transmission HTTP est en coursUne connexion TCPeffectué sur. La conception initiale de HTTP étaitpas de statutOui, il peut être transformé en un protocole avec état grâce à la fonction des cookies.

Illustration

Le processus de travail spécifique peut être vu dans la figure ci-dessous :
Insérer la description de l'image ici

Insérer la description de l'image ici

Dans les réseaux informatiques,Avec état et sans état indiquent si le protocole réseau enregistre des informations sur l'état de la connexion réseau..
Un protocole sans état signifie que le protocole n'enregistre pas d'informations sur l'état de la connexion réseau.Les protocoles sans état ne conservent pas de trace des demandes ou réponses précédentes, des informations complètes sont requises pour chaque demande. Par exemple, le protocole HTTP est un protocole sans état. Il ne sauvegarde pas les informations de requête envoyées par le client. Chaque requête est indépendante.
Les protocoles avec état font référence à des protocoles qui enregistrent des informations sur l'état des connexions réseau.Les protocoles avec état conservent des enregistrements des demandes ou réponses précédentes, pour un traitement ultérieur. Par exemple, le protocole FTP est un protocole avec état qui enregistre les informations sur l'état de connexion du client sur le serveur pour un traitement ultérieur.
Dans les réseaux informatiques, les protocoles avec et sans état présentent chacun des avantages et des inconvénients. Les protocoles sans état peuvent mieux prendre en charge le traitement simultané et l'équilibrage de charge, car ils n'enregistrent pas les informations sur l'état de la connexion, ce qui facilite la gestion de plusieurs requêtes. Les protocoles avec état peuvent mieux prendre en charge les scénarios dans lesquels les informations sur l'état de la connexion doivent être enregistrées, comme les applications Web qui doivent maintenir des sessions.
Il convient de noter que les protocoles avec état sont vulnérables aux attaques s'ils ne sont pas gérés correctement. Par exemple, les droits d'accès anonymes à un serveur FTP peuvent facilement provoquer une attaque du serveur FTP. Par conséquent, dans les applications pratiques, il est nécessaire de sélectionner un protocole approprié en fonction de la situation spécifique.

2.3 Courriel Courriel

2.3.1 Aperçu des e-mails

Le courrier électronique est une forme de communication utilisant des réseaux informatiques qui peut être utilisée pour envoyer et recevoir des informations numériques sur Internet.
Les composants de base d'un e-mail comprennent un en-tête et un corps d'e-mail. L'en-tête d'e-mail comprend l'expéditeur, le destinataire, l'objet, la date et d'autres informations. Le corps de l'e-mail est la partie principale du contenu de l'e-mail et peut contenir du texte, des images, des liens. et d'autres éléments.

Le processus d'envoi et de réception d'e-mails nécessite généralement trois étapes : l'utilisateur rédige l'e-mail et l'envoie au serveur d'envoi, le serveur d'envoi transmet l'e-mail au serveur de transfert en fonction de l'adresse du destinataire, et le serveur de transfert transmet ensuite l'e-mail à le destinataire final.

Le destinataire peut se connecter au serveur de réception via un programme client (tel qu'Outlook, Thunderbird, etc.) et télécharger l'e-mail, puis lire le contenu de l'e-mail.
L'utilisation du courrier électronique nécessite la mise en place de protocoles tels que SMTP et POP3, qui précisent les normes de transmission et de réception du courrier électronique.

2.3.2 Structure du système de messagerie

L'e-mail comprend :Agent utilisateur, serveur de messagerie, protocole

Les protocoles de messagerie incluentProtocoles d'envoi (SMTP) et protocoles d'extraction (POP3, IMAP, HTTP). Étant donné que l’envoi et la réception d’e-mails sont des opérations push et pull, ils peuvent également être appelés protocoles « push » et protocoles « pull ».

Expéditeur (agent utilisateur), 发送协议SMTP, serveur de messagerie de l'expéditeur, SMTP协议, serveur de messagerie du destinataire, 拉取协议, destinataire (agent utilisateur).

SMTP est un protocole « push », dans lequel l'expéditeur envoie les données du courrier électronique vers la file d'attente des messages sortants du serveur SMTP ;

HTTPprincipalIl s'agit d'un protocole "pull" qui extrait les fichiers du serveur à tout moment via le client navigateur. Dans le courrier électronique basé sur un navigateur Web, le protocole HTTP peut également fonctionner comme protocole d'envoi.

Insérer la description de l'image iciInsérer la description de l'image ici

  • Flux de travail global

Insérer la description de l'image ici
Insérer la description de l'image ici

2.3.3 Format des messages électroniques

Insérer la description de l'image ici

2.3.4 Protocole de transfert de courrier simple SMTP

SMTP (Simple Mail Transfer Protocol) est un protocole utilisé pour la transmission d'e-mails.

Le protocole SMTP définit le protocole de communication entre l'expéditeur et le destinataire de l'e-mail pendant le processus de transmission de l'e-mail, y compris les réglementations sur le format de l'e-mail, la méthode de transmission, le mécanisme d'authentification, etc.

1.Le protocole SMTP fonctionne

Le workflow du protocole SMTP est le suivant :

Prise de contact TCP à trois voies.
Envoyer une demande de connexion SMTP HELO.
Envoyer les informations sur l'expéditeur SMTP MAIL FROM.
Envoyer les informations du destinataire SMTP RCPT TO.
Envoyer la commande de contenu d'e-mail SMTP DATA.
Envoyez du contenu par e-mail.
Transfert de courrier terminé, SMTP QUITTER.

Il existe certaines commandes de protocole importantes dans SMTP, telles que :

HELO : le nom d'hôte utilisé pour s'identifier auprès du serveur de réception.
MAIL FROM : Utilisé pour spécifier l'adresse de l'expéditeur.
RCPT TO : Utilisé pour préciser l'adresse du destinataire.
DATA : La commande SMTP DATA est utilisée pour spécifier le début du corps de l'e-mail et indique au serveur SMTP de commencer à recevoir le contenu de l'e-mail. DATA doit être suivi du texte de l'e-mail et se terminer par une seule ligne "."

Points clés:

  • C/S : mode client/serveur
  • Connexion TCP
  • transfert direct
    Transmission directe du serveur émetteur vers le serveur récepteur, sans transfert vers d'autres serveurs pour le stockage.
  • Le numéro de port
    Utiliser le port 25 par défautLes messages sont transmis entre le client et le serveur.
  • étape de communication
    • Connexion établie (poignée de main)
    • Envoi d'e-mails (transmission de messages)
    • Connexion libérée (fermée)
  • interaction commande/réponse
    • Commandes : texte ASCII (14 commandes, plusieurs lettres)
    • Réponse : code d'état et informations d'état (21 types d'informations de réponse : code à trois chiffres + description textuelle simple)
  • limite
    • Le message doit être un code ASCII de 7 bits
  • connexion persistante
    • Une connexion TCP peut envoyer plusieurs e-mails en séquence et la connexion est fermée une fois tous envoyés.

Insérer la description de l'image ici

2. Limites

Insérer la description de l'image ici

  • Le protocole SMTP est insuffisant : il ne peut transmettre que des données de courrier électronique ASCII 7 bits, y compris les en-têtes et le corps des courriers électroniques. Si l'e-mail contient des données qui n'ont pas été codées en ASCII, elles seront codées avant la transmission. Cette conception était judicieuse aux débuts d’Internet, car personne ne transmettrait de gros flux de données tels que des vidéos, des images, etc. dans des e-mails.

3. Exemple

Insérer la description de l'image ici

  • Interaction SMTP simple

Insérer la description de l'image ici

Insérer la description de l'image ici

4. Format SMTP

Insérer la description de l'image ici

5. Résumé

HTTP est principalement « pull », mais il peut aussi être « push ».

Insérer la description de l'image ici

2.3.5 La troisième version du protocole postal POP3

POP3 est un protocole d'accès au courrier électronique très simple. Lorsque le destinataire lit le courrier électronique, il présente des inconvénients car SMTP ne prend pas en charge l'extraction de fichiers. Le protocole de lecture d'e-mails de troisième génération POP3 est né, utilisé pour envoyer des e-mails depuis le serveur SMTP du destinataire vers la boîte aux lettres du destinataire.

1. Illustration du poste de travail

Insérer la description de l'image ici

2. Méthode de travail

Insérer la description de l'image ici
POP3 a deux modes de fonctionnement : télécharger et conserver (conservé sur le serveur de réception). Ce mode de fonctionnement permet à plusieurs clients (tels que les téléphones mobiles, les Mac, les ordinateurs, les télécopieurs, etc.) de télécharger et de lire.
La méthode de travail de téléchargement et de suppression ne prend en charge le téléchargement qu'une seule fois, puis sa suppression. Par exemple, si vous recevez un e-mail sur votre téléphone mobile, vous ne pouvez pas le recevoir du serveur de messagerie sur d'autres appareils.

3. Phase de travail POP3

Insérer la description de l'image ici

  • phase de concession
    L'agent utilisateur envoie (texte en clair) nom d'utilisateur et mot de passe pour authentifier l'utilisateur.
  • Étape de traitement des transactions
    • L'agent utilisateur renvoie un message
    • Marquer le message pour suppression et décocher le message pour suppression
    • Obtenez des statistiques sur les e-mails
  • étape de mise à jour : Apparaît après que l'utilisateur a émis la commande quit
    • Terminer la session POP3
    • Supprimer les messages marqués pour suppression

2.3.6 Extension multimédia MIME

Insérer la description de l'image ici
MIME prend en charge le codage des octets non-ASCII, puis leur conversion en ASCII pour la transmission vers SMTP. Il est courant d'encoder les caractères chinois en base64, puis de les convertir.
Insérer la description de l'image ici

2.3.7 Protocole d'accès au courrier Internet IMAP

Le protocole POP3 ne fournit aux utilisateurs aucune méthode pour créer des dossiers distants et attribuer des dossiers aux messages. Afin de résoudre ce problème, le protocole d'accès à la messagerie Internet IMAP a été créé.
Insérer la description de l'image ici

POP3 et IMAP

Insérer la description de l'image iciInsérer la description de l'image ici

2.3.8 Courriel Web

Insérer la description de l'image ici
De l'utilisateur au serveur de messagerie, le protocole HTTP est utilisé, y compris l'expéditeur et le destinataire.. Mais 邮件服务器与邮件服务器之间的传输依然是使用SMTP协议.

2.4 DNS (système de noms de domaine)

Origine :
Il existe deux manières d'identifier les ordinateurs : l'adresse IP et le nom d'hôte.
Les noms d'hôtes sont généralement acceptés car ils sont faciles à mémoriser, mais les noms d'hôtes fournissent peu d'informations sur l'emplacement de l'ordinateur sur Internet.
Les routeurs préfèrent les adresses IP hiérarchiques de longueur fixe.
Afin de compromettre ces deux besoins, un service d'annuaire est nécessaire pour convertir les noms d'hôtes en adresses IP, ce qui constitue la tâche principale du système de noms de domaine (DNS).

Caractéristiques:

  • En couches, mécanisme de dénomination basé sur le domaine
  • LégèrementdistribuéLa base de données termine la conversion des noms en adresses IP.
  • en fonctionnementPort 53 sur UDPservices d'applications
  • Fonctionnalité Internet de base, mais implémentée en tant que protocoles de couche application
    • Gérer la complexité à la périphérie du réseau (systèmes finaux, couche applicative des hôtes)

Fonction:

Insérer la description de l'image ici

2.4.1 Nom de domaine

  • définition:
    nom de domaine(Nom de domaine) est un service de base d'Internet. Il s'agit du nom d'un ordinateur ou d'un groupe d'ordinateurs sur Internet constitué d'une chaîne de noms séparés par des points. Il adopte une structure hiérarchique.

Les noms de domaine sont constitués de deux jeux de caractères différents : ASCII et Unicode. Le jeu de caractères ASCII comprend 128 caractères tels que des chiffres, des lettres et des symboles. Le jeu de caractères Unicode comprend des textes, des symboles et des symboles de presque tous les pays et régions.

Dans le jeu de caractères ASCII,La longueur de chaque niveau de nom de domaine ne doit pas dépasser 63 caractères.. Dans le jeu de caractères Unicode, bien qu'il n'y ait pas de limite claire quant à la longueur d'un nom de domaine, celui-ci doit néanmoins se conformer aux restrictions de la spécification du système de noms de domaine (DNS). Selon les spécifications DNS, la longueur de chaque niveau de nom de domaine ne peut pas dépasser 253 caractères.

Il convient de noter que même s’il existe une limite sur la longueur de chaque niveau de nom de domaine, il n’y a aucune limite sur la longueur du nom de domaine entier.

Les noms de domaine peuvent être utilisés dansLocalisation électronique, et parfois géographique, d'un ordinateur lors de la transmission de données.

Par exemple : nos sites Web portails couramment utilisés, tels que Sohu, Sina, etc., utilisent tous des lettres majuscules comme noms de domaine.

  • Caractéristiques
    • 1.Nommer les appareils à un niveau peut comporter de nombreux noms en double., mais chaque hôte sur Internet peut être identifié de manière unique en combinant le nom d'hôte et le domaine dans lequel il réside
    • 2.Adoption DNSDénomination de la structure arborescente hiérarchiqueméthode

Insérer la description de l'image ici

  • Analyser le problème

Point de défaillance unique : s'il n'y a qu'un seul serveur DNS, une fois qu'il est endommagé, l'impact sera énorme.
Capacité de communication : un serveur DNS gère toutes les requêtes DNS, ce qui représente une charge de travail trop lourde.
Problèmes de maintenance : un serveur DNS doit conserver des enregistrements pour tous les hôtes Internet, ce qui rend la base de données centrale énorme. , et sera également mise à jour à mesure que de nouveaux hôtes sont ajoutés.
Base de données centralisée à distance: Étant donné qu'un serveur DNS ne peut pas être « proche » de tous les utilisateurs, la propagation se fera via des liaisons à faible vitesse et encombrées, ce qui entraînera de graves retards.

Insérer la description de l'image ici

Classification hiérarchique des noms de domaine

下图中 "叶" 只是一个通用代指,并不是说所有域名都归于一个主机或设备。“根”同理(Il y a 13 serveurs racine DNS au total)
De la racine de l'arborescence jusqu'aux feuilles, le domaine supérieur possède un pointeur vers son serveur de sous-domaine.

一系列划分域
一系列划分域
一系列划分域
一系列划分域
一系列划分域
顶级域1
顶级域2
顶级域3
顶级域...
二级域1
二级域2
二级域3
二级域...
二级域...
二级域...
三级域...
...

Insérer la description de l'image ici

Les domaines de premier niveau sont divisés en deux catégories :

  • Générique
  • Des pays

Il y a des doublons dans les images suivantes, jetez-y un œil.
Insérer la description de l'image iciInsérer la description de l'image ici

L'image ci-dessous apparaîtL'arpa de nom de domaine inversé est utilisé pour résoudre inversement les adresses IP en noms de domaine.
Insérer la description de l'image ici
Les extensions suivantes sont extraites de Baidu AI :

arpa est l'abréviation de Reverse Domain Name System (Reverse DNS), qui est utilisée pour résoudre les adresses IP en noms de domaine.
Sur Internet, une adresse IP est une adresse qui identifie de manière unique un ordinateur ou un appareil, tandis qu'un nom de domaine est une chaîne de caractères utilisée pour permettre aux utilisateurs de se souvenir et d'accéder plus facilement à ces adresses. La fonction du système de noms de domaine inversé est de résoudre inversement le nom de domaine correspondant via l'adresse IP.
Le jeu de caractères du nom de domaine arpa est différent du jeu de caractères général du nom de domaine. Il ne contient que des chiffres et des lettres et n'inclut pas de caractères spéciaux tels que des pays, des régions ou des symboles.
Les noms de domaine arpa sont généralement utilisés dans les situations suivantes :

Résolution inversée du nom de domaine : résolvez de manière inversée le nom de domaine correspondant via l'adresse IP, qui peut être utilisée pour la gestion du réseau et la surveillance de la sécurité.
Liste noire DNS : Ajoutez l'adresse IP des logiciels malveillants ou des attaquants réseau à la liste noire des noms de domaine arpa pour restreindre leur accès aux ressources réseau.
Serveur de messagerie : Le nom de domaine arpa est utilisé pour le serveur de messagerie afin de faciliter la réception et l'envoi d'e-mails.
Nom de domaine temporaire : lorsqu'un nom de domaine est supprimé ou expire, il peut encore être nécessaire d'accéder à son adresse IP. À ce stade, le nom de domaine arpa peut être utilisé comme remplacement temporaire.

需要注意的是,arpa域名的使用需要遵守特定的规范和标准,例如逆向DNS解析协议(DNS Reverse Resolution Protocol)等。

域名的构成

  • 命名设备的域名
    主机名.第N级域名.(…).第二级域名.顶级域名
    从树叶开始,每过一个层级用句点分隔开

  • 命名一个域的域名(对某个域做标识)
    树枝开始到顶级域。
    如:ustc.edu.cn (中国科技大学域名)

注:(少数采用)设备也可以直接挂在顶级域名或二级域名之下,不必非要顺着所有域层级来命名。

如:

  • mit.edu
  • xxx.gov

域名管理

.cn:中国的一个顶级域名
.jp:日本的一个顶级域名

Insérer la description de l'image ici

2.4.2 域名服务器

Insérer la description de l'image ici

DNS:根名字服务器

互联网共有13个根服务器 (分布在:欧洲,北美(大部分),日本),不同国家域名划分不一定一样

权威服务器

  • 前置
    为了解决域名的维护(域名到IP地址转换)和解析问题,划分出区域(zone)的概念:
    Insérer la description de l'image ici下图中每个圈就是一个区域。
    Insérer la description de l'image ici

  • 定义
    Insérer la description de l'image ici是否是某个域的权威DNS服务器看是否维护中这个区域的域名到IP地址对应关系
    权威服务器 :清楚本区域内部域名与IP对应关系

TLD服务器

Insérer la description de l'image ici

本地名字服务器(Local Name Server)

地址使用手工配置或动态配置
Insérer la description de l'image ici

名字服务器(Name Server)

Insérer la description de l'image ici

2.4.3 DNS工作机理方面

1. DNS缓存

为了改善时延性能并减少在互联网上传输的DNS报文数量,DNS广泛采用了缓存技术。

  • 原理
    在一个请求链中,DNS服务器收到一个DNS应答(如包含某个主机名到IP地址的映射)时,它能将映射缓存在本地存储器中

由于主机和主机名与IP地址间的映射不是永久的DNS服务器在一段时间后(通常设置为两天),将丢弃缓存信息。

  • 产生的影响
    本地服务器也能缓存 TLD 服务器的 IP 地址,因而允许本地DNS绕过查询链中根DNS服务器。事实上,由于缓存的存在,除了少数DNS查询以外,根服务器被绕过了。

2. 资源记录

共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(Resource Record,RR):提供主机名到IP的映射。
资源记录是一个包含了下列字段的四元组:
(Name,Vaule,Type,TTL),具体见下图:
Insérer la description de l'image ici

资源记录可以类比于数据库的记录方法
  • TTL(生存时间 time to live):是指某个记录的生存时间,决定了某个资源记录删除的时间
    • 1.TTL为无限大:指权威值
    • 2.TTL为有限值: 指缓冲值

下面给出的例子,忽略掉TTL字段。Name和Vaule的值取决于Type:

(结构图)
Insérer la description de l'image ici
(原书)
Insérer la description de l'image ici

  • 资源记录的一个例子:
    Insérer la description de l'image ici

3. DNS工作过程:

Insérer la description de l'image ici

Insérer la description de l'image ici

查询

如果本地服务器有缓存,则直接返回缓存信息(主机与IP映射)。如果没有缓存,需要查询具体映射。
查询方法有以下两种:

  • 递归查询
  • 迭代查询

递归查询

简单来说就是主机任意找一个根服务器,由于通常上一级知道下一级信息,然后从根服务器开始一级一级往下查找,直到最终查到结果
Insérer la description de l'image ici

迭代查询

上一级不会明确下一级的信息,但会有一个指定方向,相当于"踢皮球"。
Insérer la description de l'image ici

4. DNS协议与报文

DNS报文有查询报文和回答报文两种,它们的格式都是相同的。结构如下图:

idenfication即id号
Insérer la description de l'image ici

(原书参考)
Insérer la description de l'image iciInsérer la description de l'image ici

5. 维护问题:新增域

Insérer la description de l'image ici

2.4.4 DNS安全问题

Insérer la description de l'image ici

总的来说,DNS比较健壮

2.5 CDN

1. 因特网视频

视频

  • 定义:一系列以恒定速率(如每秒24或30张图像)来展现的图像。
  • 特点:可以被压缩(因而可以用比特率1来权衡视频质量)

一幅未压缩,数字编码的图像由像素阵列组成,其中每个像素是用来表示颜色和亮度的比特编码。

  • 比特率与音、视频压缩的关系:
    比特率越高,传送数据速度越快,简单的说就是比特率越高,音、视频的质量就越好,但编码后的文件就越大;如果比特率越少则情况刚好相反
    • 例如:低质量视频:100kbps;流式高分辨率电影:超过3Mbps;用于4K流式展望的超过10Mbps。

Insérer la description de l'image ici
Insérer la description de l'image ici

视频流

视频流是指将视频数据以流的形式进行传输这种传输方式可以实时观看视频内容,而不需要等待整个视频文件下载完成。视频流技术使用了流媒体协议,例如HTTP Live Streaming(HLS)和Real-time Messaging Protocol(RTMP)等,使得视频可以在各种设备上流畅播放。视频流技术广泛应用于在线视频播放、直播、视频会议等领域。

流式视频

Insérer la description de l'image ici

  • 定义:
    流式视频是指在数据通过互联网到达计算机的同时在显示器上播放的网络视频。与可下载的互联网视频不同,流媒体形式在收到压缩数据后即开始播放,从而消除了下载时可能伴随病毒的担忧。但是,由于视频在接收数据时播放,视频可能会被慢速连接中断,并可能会自动暂停并重新启动,以尝试"缓冲"数据。此外,与可下载视频不同,流式视频不会"保留"在计算机上;只有当主网站决定继续发布视频时,才可以访问流式视频到网站。

因此,视频流是一种传输方式,而流式视频是一种播放方式视频流可以以流式视频的方式进行播放,而流式视频必须使用视频流技术进行传输

  • 性能度量:平均端到端吞吐量

平均端到端吞吐量是指单位时间内成功地传送数据的数量,也就是传输速率。吞吐量和带宽是两个不同的概念,带宽是指链路的能力,单位是比特每秒(bps),是设计值;而吞吐量是实际测试的传输速率,单位也是bps。平均端到端吞吐量通常用来衡量网络传输性能,可以通过网络延迟、传输速度等指标来评估。

  • 例子:使用流式视频的公司:Netflix,YouTube(谷歌),亚马逊和优酷等。

2. HTTP流和DASH

2.1 HTTP流

  • 定义:
    HTTP流(HTTP streaming)是一种在HTTP协议下进行实时数据传输的技术。它允许服务器将数据以流的形式发送给客户端,而无需等待整个响应完全生成。这种方式可以实现实时性要求较高的应用,如视频直播、音频流传输等。HTTP流可以通过多种方式实现,包括长轮询、服务器推送事件(Server-Sent Events)和WebSocket等。这些技术都允许服务器主动向客户端发送数据,而不需要客户端主动请求。HTTP流的实现可以提供更好的用户体验和更高效的网络通信。

  • 特点:
    在HTTP流中,视频只是存储在HTTP服务器中作为一个普通文件,每个文件有一个特定的URL

  • HTTP流播放视频的工作原理:

  • 1.客户端发起请求

客户端使用HTTP协议向服务器发起视频播放请求(TCP连接)。请求中通常包含视频的URL或其他必要的参数。

    1. 服务器响应

服务器接收到客户端的请求后,开始准备视频数据。服务器使用一种支持流式传输的视频格式,如MPEG-DASH(Dynamic Adaptive Streaming over HTTP)或HLS(HTTP Live Streaming)。

    1. 客户端接收和播放

客户端接收的视频字节被收集在应用缓存中,当缓存中的字节数量超过设定门限时,客户应用程序开始播放。特别的,流式视频应用程序周期性的从客户应用程序缓存中抓取帧,对这些帧解压缩并呈现在用户屏幕上,因此,流式视频应用接收到视频就开始播放,同时缓存视频后面部分的帧

通过以上步骤,HTTP流播放视频实现了实时的视频传输和播放。这种方式可以根据网络条件和设备性能进行自适应调整,提供更好的观看体验。同时,使用分段传输的方式,可以在保证视频连续播放的同时,提高网络传输的效率。

  • 缺点:尽管对不同客户或相同客户的不同时间而言,可用带宽大小不同,但是所有用户接收到相同编码的视频。(这导致了新型的基于HTTP流的研发,即DASH)

2.2 DASH

DASH(Dynamic Adaptive Streaming over HTTP)(基于 / 经HTTP的动态适应性流)
使用DASH后,每个视频版本存储在HTTP服务器,每个版本都有一个不同的URL

  • 特点:
    • 在DASH中,视频编码分为几个不同版本,每个版本具有不同比特率,对应不同的质量水平
    • 客户请求:客户端动态地请求来自不同版本且长度为几秒的视频数据块。使用HTTP GET请求报文一次选择一个不同的块
    • 带宽与版本
      • 带宽较高时:高速率的版本块
      • 带宽较低时:低速率的版本块
    • 带宽变化适应性如果端到端的带宽在会话过程中发生改变,DASH允许客户适应可用带宽。(例如:当移动用户相对基站移动时,能感觉到带宽波动。)
  • 告示文件(manifest file)
    Insérer la description de l'image ici
  • 总述

Insérer la description de l'image ici
Insérer la description de l'image ici

3. 内容分发网CDN

对于一个因特网视频公司提供流式视频服务最直接的方法或许时建立一个单一的大规模数据中心,存储所有视频,并向全世界范围客户传输流式视频。
但存在三个问题
1.出现停滞时延的可能性随中间通信链路数量增加而增加
2.流行的视频可能经过相同通信链路多次发送,导致网络带宽的浪费和公司需要给ISP的费用增加
3.单点故障。数据中心崩溃则无法发送视频。
Insérer la description de l'image ici
Insérer la description de l'image ici

3.1 CDN

Insérer la description de l'image ici

  • 定义:
    内容分发网 (CDN : Content Delivery Network)是一种分布式网络系统,通过将内容缓存到多个地理位置和服务器上,以提高网站或其他互联网应用的性能和可靠性。

  • 分类:
    专用CDN,由内容提供商自己所有。例如,谷歌的CDN分发YouTube视频和其他类型内容。
    第三方CDN,代表多个内容提供商发表内容。

  • CDN的工作原理将网站的内容分发到靠近用户的地方,以便用户可以快速获取所需的内容。这可以通过将内容存储在分布在全球的各个节点上实现。当用户请求网站内容时,CDN会根据用户的地理位置和网络条件选择最合适的节点将内容传递给用户

  • CDN的主要优点包括:

    性能提升:CDN可以将内容存储在靠近用户的地方,从而减少内容的传输延迟和网络拥塞,提高用户访问网站的速度和性能。
    可靠性增强:CDN可以通过多个节点同时提供内容,如果某个节点出现故障或网络故障,其他节点可以自动接替,
               确保用户可以继续访问网站。
    安全性提高:CDN可以提供DDoS攻击防护、CC攻击防护等安全服务,保护网站免受网络攻击。
    节省成本:  使用CDN可以减少服务器负载和带宽成本,提高网站的成本效益。
    

CDN被广泛用于各种互联网应用,如网站、视频流媒体、游戏等,可以提高用户体验和网站性能。

  • 服务器安置原则
    • 深入
      Insérer la description de l'image ici

    • 邀请做客
      Insérer la description de l'image ici

3.2 CDN操作

客户端使用浏览器指令检索特定视频(由URL标识)时,
CDN必须截获该请求以便能够:
1.确定适合的CDN服务集群。
2.将 客户请求重定向到该集群某台服务器。
大多数CDN利用DNS来截获和重定向请求。如下图示:

Insérer la description de l'image ici

  • 1.用户访问目标URL的网页
  • 2.用户主机发送DNS请求
  • 3.本地DNS服务器(LDNS)把DNS请求中继给权威服务器,并得到一个KingCDN域的主机名
  • 4.LDNS发送第二个请求,发送对象为3步骤得到的主机名,并得到IP地址
  • 5.LDNS向转发内容服务CDN的IP地址
  • 6.客户接受到IP后创建TCP连接,并发送HTTP GET请求。

3.3 集群选择策略

CDN的集群选择策略是CDN部署的核心之一,目的是将客户定向到CDN中某个服务器集群或数据中心的机制。常见的集群选择策略包括:

地理最近策略:指派客户到地理上最为临近的集群,这种选择策略忽略了时延和可用带宽随因特网路径时间而变化,总是为特定的客户指派相同的集群。
实时测量策略:基于集群和客户之间的时延和丢包性能执行周期性检查,这种策略可以实时测量集群和客户之间的网络路径,并根据测量结果选择最优的集群。

此外,还有其他集群选择策略,如基于负载均衡的策略、基于DNS解析的策略等。总之,CDN的集群选择策略是为了提高网站的性能和可靠性,根据不同的因素选择最优的集群,并提供更好的用户体验。

4. 学习案例

4.1 案例学习: Netflix视频分发

Insérer la description de l'image ici

  • 主要部件:亚马逊云,专用CDN基础设施
  • 亚马逊云处理的关键功能:
    • 1.内容摄取:用户分发电影之前,Netflix必须首先获取和处理该电影。接收电影母带并上载到亚马逊云主机
    • 2.内容处理:为每部电影按不同格式和比特率生成不同的版本,允许使用DASH经HTTP适应性播放流。
    • 3.向其CDN上载版本:某电影所有版本生成后,亚马逊云中的主机向其CDN上载它们

Insérer la description de l'image ici

  • 补充:Netflix创建了自己专用的CDN,现在它从这些专用CDN发送它所有的视频,(Netflix仍使用Akamai来分发它的Web网页。)所以Netflix已经能够简化并定制其CDN设计。
  • 特点:
    • 1.包含适应性流和CDN分发
    • 2.不需要使用DNS重定向将特殊用户连接到一台CDN服务器;相反,Netflix软件(运行在亚马逊云中)直接告知该用户使用一台特定CDN服务器
    • 3.Netflix CDN使用推高速缓存而不是拉高速缓存:内容在非高峰时段的预定时间被推入服务器,而不是在高峰缓存未命中时动态地被推入。

推高速缓存和拉高速缓存都是网络缓存的一种,主要用来缓解网络延迟和提高数据传输速度。

推高速缓存是指将数据从服务器推到客户的浏览器,当客户需要这些数据时,浏览器直接从缓存中获取,而不需要再次从服务器下载。一些浏览器会将经常访问的网页缓存到本地,以减少网络延迟和提高访问速度。

拉高速缓存是指客户浏览器发起请求时,服务器将数据缓存在本地网络中,当客户需要这些数据时,直接从本地网络中获取,而不需要再次从服务器下载。这种方式常用于视频、图片等大数据的缓存,可以减少网络延迟和提高数据传输速度。

总的来说,推高速缓存和拉高速缓存都是为了提高网络性能,减少网络延迟,提高数据传输速度。

4.2 案例学习: Youtube

2005年4月开始服务,在2006年11月被谷歌公司收购。谷歌/Youtube设计和协议是专用的。

  • 特点:
    • 谷歌使用专用CDN分发视频,从几百个ISP和IXP位置安装服务器集群及它的数据中心分发Youtube的视频。
    • 使用拉高速缓存和DNS重定向
    • 选择策略:大部分时间,谷歌的集群选择策略将客户定向到某个集群,使客户与集群之间RTT最低。但有时为了平衡经集群的负载,有时客户经DNS被定向到更远的集群
    • 没有应用适应性流(如DASH),要求用户人工选择版本
    • Afin d'économiser 将被重定向或提前终止la bande passante gaspillée et les ressources du serveur , utilisez les requêtes HTTP de plage d'octets pour limiter le flux de données transmis après avoir obtenu la quantité cible vidéo .

4.3 Étude de cas : Jetez un œil

Regardez (détenu et géré par Xunlei) qui utilise la livraison P2P au lieu de la livraison client-serveur.

  • Fonctionnalités vidéo en streaming P2P :
    • Lorsqu'un homologue demande à visionner une vidéo, il contacte un tracker pour trouver d'autres homologues possédant une copie de la vidéo et leur demande des fragments de la vidéo.
    • Demander que la priorité soit donnée aux morceaux à venir pour garantir une lecture continue

Insérer la description de l'image ici


  1. Le débit binaire fait référence au nombre de bits transmis par seconde, en bps (Bit Per Second). Indique le nombre de bits nécessaires pour représenter les données audio et vidéo codées (compressées) par seconde, et le bit est la plus petite unité binaire, soit 0 ou 1. ↩︎

Je suppose que tu aimes

Origine blog.csdn.net/qq_74259765/article/details/131573331
conseillé
Classement