Tu vas me demander la couche application?Je vais vous parler, et vous montrer les dépendances cycliques du printemps.

Android Martin Jr. 2021-08-19 21:51:10 阅读数:580

tu vas demander la couche

TCP?Les caractéristiques du modèle de service sont les suivantes

  • Services axés sur la connectivité

Après l'envoi du datagramme de la couche application, TCP Permettre aux clients et aux serveurs d'échanger des informations sur le contrôle de la couche transport.Ce processus de poignée de main est de rappeler aux clients et aux serveurs qu'ils doivent être prêts à accepter des datagrammes.Après la phase de poignée de main,Un?TCP Connexion(TCP Connection)?C'est fait.C'est une connexion duplex complète,C'est - à - dire:Les processus des deux côtés de la connexion peuvent envoyer et recevoir des messages simultanément sur cette Connexion.Lorsque le message de fin d'application est envoyé,Les connexions doivent être enlevées.

  • Transmission fiable des données

Le processus de communication peut compter sur TCP,Aucune erreur、Livrer toutes les données envoyées dans l'ordre approprié.Les applications peuvent compter sur TCP La prise qui donne le même flux d'octets au récepteur,Pas de perte et de redondance d'octets.

  • Contrôle de la congestion

TCP Le contrôle de la congestion n'est pas nécessairement un avantage direct pour le processus de communication,Mais peut apporter des avantages globaux à Internet.En cas de congestion du réseau entre le destinataire et l'expéditeur,TCP Le contrôle de la congestion supprimera le processus d'envoi(Client ou serveur),Nous discuterons plus en détail du contrôle de la congestion plus loin

UDP

UDP?C'est un Protocole de transport léger,Il n'offre qu'un service minimal.UDP N'est pas connecté,Donc il n'y a pas de poignée de main avant que les deux processus communiquent.UDP Il n'y a aucune garantie que le message sera transmis au serveur,C'est comme un marchand.Plus que ça,Les messages qui arrivent au processus de réception peuvent également arriver de façon désordonnée.

Voici les protocoles sélectionnés pour certaines des applications énumérées dans le tableau ci - dessus

Application Protocole de couche d'application Accords de transport soutenus
E - mail SMTP TCP
Accès au terminal distant Telnet TCP
Web HTTP TCP
Transfert de fichiers FTP TCP
Streaming Multimedia HTTP TCP
Téléphone Internet SIP、RTP TCPOuUDP

Protocole de couche d'application

Maintenant, nous allons explorer quelques protocoles de couche d'application , D'abord, voyons ce que c'est. Protocole de couche d'application,Protocole de couche d'application(application-layer protocol)?Définit comment les processus d'application fonctionnant sur différents systèmes de bout en bout se transmettent les messages les uns aux autres.

Le Protocole de couche d'application définit

  • Type de message échangé , Par exemple, message de demande et message de réponse ;
  • Syntaxe des différents types de messages , Tel que décrit en détail par le public dans chaque champ du message ;
  • Sémantique des champs , Ce que signifie l'information contenue dans le champ ;
  • Quand le processus 、 Comment envoyer un message et y répondre .

Classification des protocoles de couche d'application

  • Système de noms de domaine(Domain Name System, DNS): Pour implémenter le nom du périphérique réseau à IP Services réseau pour la cartographie des adresses .
  • Protocole de transfert de fichiers (File Transfer Protocol,FTP): Pour le transfert interactif de fichiers .
  • Protocole de livraison du courrier (Simple Mail Transfer Protocol, SMTP): Utilisé pour réaliser la fonction de transfert de courrier électronique .
  • Protocole de transfert hypertexte(HyperText Transfer Protocol,HTTP):Pour réaliser Web Services.
  • Protocole de connexion à distance (Telnet): Utilisé pour implémenter la fonction de connexion à distance .

Web Et HTTP

Web(World Wide Web) Réseau étendu mondial ,C'est - à - dire URL Pour www Réseau initial ,C'est... HTTP Principaux vecteurs du Protocole ,Est basé sur Internet Un service réseau , Comme d'habitude. Web , C'est ce que ça veut dire. HTTP Accord,HTTP Accord en tant que web Un protocole que le programmeur doit maîtriser et comprendre , Il faut bien comprendre. .

Le Protocole de transfert hypertexte peut être utilisé pour la segmentation du texte :Hypertexte(Hypertext)、Transmission(Transfer)、Accord(Protocol), Leurs relations sont les suivantes:

Selon la taille de la plage Accord > Transmission > Hypertexte. Voici une explication de chacun de ces trois noms. .

Qu'est - ce qu'un hypertexte

Au début d'Internet, , Les informations que nous avons saisies ne peuvent être sauvegardées que localement , Impossible d'interagir avec d'autres ordinateurs . Les informations que nous stockons sont généralement Texte C'est - à - dire qu'il existe des formes de caractères simples ,Le texte est un paquet binaire significatif qui peut être analysé par ordinateur. Avec le développement rapide d'Internet , Après le transfert de données entre deux ordinateurs , Les gens ne se contentent pas de transmettre du texte entre deux ordinateurs. , Vous souhaitez également transférer des images 、Audio、Vidéo, Même en cliquant sur un texte ou une image HyperliensLe saut de, La sémantique du texte est alors élargie , Ce texte sémantiquement élargi est appelé Hypertexte(Hypertext).

Qu'est - ce qu'une transmission

On a dit: , Les deux ordinateurs communiquent entre eux ,L'hypertexte que nous stockons est analysé en paquets binaires, Par le transporteur ( Par exemple, câble coaxial , Ligne téléphonique , Câble optique )Le processus de transfert de paquets binaires d'un terminal informatique à un autre est appeléTransmission(transfer).

En général, nous appelons la partie qui transmet le paquet Partie requérante , La partie qui reçoit un paquet binaire est appelée Répondeur . Le demandeur et le répondant peuvent être échangés , Le demandeur peut également accepter les données en tant que répondant , Le répondant peut également demander des données en tant que demandeur , Leurs relations sont les suivantes:

Comme le montre la figure,A Et B Deux systèmes terminaux différents , Ils peuvent exister entre eux en tant que vecteurs d'échange d'informations , Au début, A Demande et B Échange d'informations ,B Fournir des renseignements en tant que partie répondant ;Avec le temps,B Peut également être demandé en tant que demandeur A Échange d'informations ,Alors A Peut également répondre en tant que répondant B Informations demandées.

Qu'est - ce qu'un accord?

Le terme "Protocole" ne se limite pas à Internet. , Dans la vie quotidienne. , Par exemple, les couples ont convenu où manger. , C'est une sorte d'accord. Accord, Par exemple, vous avez réussi à postuler. , L'entreprise signera un contrat de travail avec vous , Cette relation de travail entre les deux parties est également ?Accord. Notez que vous ne pouvez pas conclure un accord avec vous - même. , La condition préalable à l'accord doit être un accord multipartite. .

Quel est le Protocole réseau? ?

Le Protocole réseau est dans le réseau ( Y compris Internet )Passer、 Quelques spécifications pour la gestion de l'information .Tout comme la communication entre les gens exige certaines règles,La communication mutuelle entre ordinateurs exige le respect commun de certaines règles, Ces règles sont appelées protocoles réseau .

Internet sans protocole Internet est un chaos , Comme la société humaine. , On ne peut pas faire ce qu'on veut. , Votre conduite est régie par la loi. ;Alors le système terminal d'Internet ne peut pas non plus vouloir envoyer quoi que ce soit lui - même, Sont également soumis au Protocole de communication .

Alors nous pouvons résumer ,Qu'est - ce que HTTP? Vous pouvez répondre avec ce résumé classique :?HTTP C'est une transmission de texte entre deux points dans le monde informatique、Photos、Audio、 Conventions et spécifications pour les données hypertexte telles que les vidéos

Connexions persistantes et non persistantes

HTTP Peut utiliser des connexions persistantes et non persistantes , Nous allons maintenant nous concentrer sur ces deux approches.

Connexion non persistante

Examinons d'abord les liens persistants HTTP

Vous êtes curieux? , Lorsque vous saisissez une URL dans votre navigateur , Que s'est - il passé? ? Comment le contenu que vous voulez se manifeste - t - il? ? Examinons un exemple , Nous supposons que URL L'adresse est?http://www.someSchool.edu/someDepartment/home.index, Lorsque nous tapons l'URL et cliquons sur Entrée , Ce qui suit se produit à l'intérieur du navigateur:

  • DNS Le serveur mappe d'abord le nom de domaine , Accès trouvé www.someSchool.edu Adresse ,Et puis HTTP Processus du client en 80 Le port lance un vers le serveur ?www.someSchool.edu?De TCP Connexion(80 Le port est HTTP Port par défaut pour ). Il y en aura un dans les processus client et serveur Socket Connecté .
  • HTTP Le client envoie un HTTP Message de demande. Le message contient le chemin ?someDepartment/home.index?Ressources, On en parlera plus tard. HTTP Message de demande.
  • HTTP Le serveur accepte le message via sa Socket , Effectuer l'analyse demandée , Et à partir de Mémoire(RAM Ou disque ) Objet récupéré dans www.someSchool.edu/someDepartment/home.index, Les objets récupérés sont ensuite encapsulés ,Encapsulé dans HTTP Dans le message de réponse , Et l'envoyer au client par Socket .
  • HTTP Le serveur informe TCP Déconnecter TCP Connexion,En fait, il faut attendre que le client accepte le message de réponse avant de se déconnecter TCP Connexion.
  • HTTP Une fois que le client a reçu le message de réponse ,TCP La connexion se ferme .HTTP Le client extrait un message d'une réponse qui est HTML Fichier de réponse , Et vérifiez ceci HTML Documentation, Vérifiez ensuite les autres objets internes dans le message. .
  • Une fois l'inspection terminée ,HTTP Le client présente la ressource correspondante à l'utilisateur via l'affichage.

Jusqu'ici., Tapez l'URL et appuyez sur Entrée pour terminer le processus . Le processus décrit ci - dessus est simple Demande-Réponse Tout le processus , Demande authentique - La réponse peut être beaucoup plus complexe que le processus décrit ci - dessus. .

Les étapes ci - dessus illustrent l'utilisation de connexions non persistantes, Chacun d'eux TCP Tous les liens sont fermés après l'envoi du serveur .Chaque TCP La connexion ne transmet qu'un seul message de demande et de réponse .

Persistant connecté HTTP

Les connexions non persistantes présentent certains inconvénients .Premièrement,Une nouvelle connexion doit être établie et maintenue pour chaque objet demandé.. Pour chacune de ces connexions, , Assigner au client et au serveur TCP Buffer and hold for TCP Variables, Voilà. Web Le serveur impose un lourd fardeau . Parce qu'un Web Le serveur peut servir des centaines, voire des milliers de demandes de clients en même temps.

En cours d & apos; adoption HTTP 1.1 En cas de connexion continue , Le serveur maintient ceci après avoir envoyé la réponse TCP Connexion ouverte non fermée . Entre le même client et le même serveur ,Les messages de demande et de réponse ultérieurs peuvent être transmis par la même connexion.En général, Si une connexion Hop passe par un certain intervalle de temps (Configurable) Non utilisé depuis ,HTTP Le serveur devrait fermer sa connexion .

HTTP Format du message

Nous l'avons décrit ci - dessus. HTTP Processus de réponse à la demande pour , Le processus est simple , Mais j'ai peur d'être sérieux. , C'est sérieux. , Il y a beaucoup de choses à développer. ,Par exemple,?HTTP À quoi ressemble le message? , Quel est son format de composition? ?? Voici une discussion

HTTP L'accord se compose principalement de trois parties: :

  • Ligne de départ (start line): Informations de base décrivant la demande ou la réponse ;
  • Champ d'en - tête (header):Utiliser key-value Présentation plus détaillée du message ;
  • Corps du message (entity): Données effectivement transférées , Ce n'est pas nécessairement du texte simple , Ça pourrait être une photo. 、 Données binaires telles que vidéo .

Où la ligne de départ et le champ d'en - tête deviennent ?En - tête de la demande?Ou?En - tête de réponse, Collectivement appelés ?Header; Le corps du message est également appelé entité ,Appelé?body.HTTP L'Accord stipule que chaque message envoyé doit avoir: Header, Mais non. body, C'est - à - dire que l'en - tête est nécessaire , Les informations de l'entité peuvent ne pas être disponibles .Et dans header Et body Il doit y avoir une ligne vide entre (CRLF), Et si vous utilisez une image , Je crois que c'est là - Bas.

Prenons l'exemple ci - dessus. http Message de demande

Comme le montre la figure,C'est?http://www.someSchool.edu/someDepartment/home.index? En - tête de la demande , En observant ceci HTTP Le message nous permet d'apprendre beaucoup ,Tout d'abord,, Nous voyons que le message est normal ?ASCII? Texte écrit , Pour que le garant puisse comprendre .Et puis,Nous pouvons voir qu'il y a une nouvelle ligne entre chaque ligne et la suivante, Et la dernière ligne ( Après avoir demandé la tête ) Plus un saut de ligne de retour .

La ligne de départ de chaque message est composée de trois champs :Méthodes、URL Champs et HTTP Champ de version.

HTTP Méthode de demande

HTTP Les méthodes de demande sont généralement divisées en: 8 Espèce,Ils sont

  • GET Accès aux ressources ,GET La méthode utilisée pour demander l'accès a été utilisée par URI Ressources identifiées .La ressource spécifiée renvoie le contenu de la réponse après analyse côté serveur.C'est - à - dire, Si la ressource demandée est du texte , Alors revenez comme ça. ;

  • POST Entité de transmission ,Bien que GET La méthode peut également transmettre des informations principales , Mais facile à distinguer , On n'en a pas besoin. GET Informations sur l'entité de transmission , Utilise plutôt POST Informations sur l'entité de transmission ,

  • PUT Transfert de fichiers,PUT Méthode utilisée pour transférer des fichiers .C'est comme... FTP Le téléchargement de fichiers du Protocole est le même,Exiger que le contenu du fichier soit inclus dans le corps du message de demande, Puis sauvegardez la requête URI Emplacement spécifié.

    Mais,Considérant que HTTP De PUT Méthode elle - même sans mécanisme de validation , N'importe qui peut télécharger des fichiers , Problèmes de sécurité , Donc en général W eb Le site n'utilise pas cette méthode . En cas de coopération W eb Mécanisme de validation de l'application , Ou la conception architecturale est adoptée REST(REpresentational State Transfer, Transition de l'état de représentation ) Catégorie standard Web Site Web, Peut être ouvert à l'utilisation PUT Méthodes.

  • HEAD Obtenir l'en - tête de réponse ,HEAD Méthodes et GET La même méthode, Ne renvoie pas la partie principale du message . Pour confirmer URI Efficacité et date et heure de mise à jour des ressources, etc. .

  • DELETE Supprimer le fichier,DELETE Méthode utilisée pour supprimer un fichier ,Oui PUT L'approche opposée .DELETE Méthode sur demande URI Supprimer la ressource spécifiée .

  • OPTIONS Demander des méthodes de soutien,OPTIONS Méthode utilisée pour interroger les requêtes URI Méthodes supportées par les ressources spécifiées .

  • TRACE Tracer le chemin,TRACE La méthode est de laisser Web Méthode par laquelle le serveur renvoie la communication de la demande précédente au client.

  • CONNECT Nécessite un protocole tunnel pour connecter l'agent,CONNECT La méthode nécessite un tunnel lors de la communication avec le serveur mandataire ,Mise en œuvre par protocole Tunnel TCP Communications.Utilisation principale?SSL(Secure Sockets Layer, Couche Condom )Et TLS(Transport Layer Security, Sécurité de la couche transport ) Le Protocole ajoute le contenu de la communication Transmission par Tunnel réseau après densification .

Ce que nous utilisons le plus souvent, GET Méthodes et POST Méthodes, D'autres méthodes peuvent être apprises temporairement .En bas. HTTP1.0 Et HTTP1.1 Liste des méthodes prises en charge

HTTP Demande URL

HTTP Utilisation du Protocole URI Localiser les ressources sur Internet .C'est parce que URI Fonctions spécifiques , Accès aux ressources partout sur Internet .URL Identifiant avec l'objet demandé .Dans l'exemple ci - dessus,, Le navigateur demande un objet ?/somedir/page.html?Ressources.

Encore une fois, analysons - le avec un nom de domaine complet. URL

Par exemple,?http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument?C'est URL C'est compliqué. , Prends ça. URL J'ai compris le reste. URL Ce n'est pas un problème. .

La première apparition ?http

http:// Indique au navigateur quel protocole utiliser . Pour la plupart Web Ressources,Généralement utilisé HTTP Le Protocole ou sa version sécurisée ,HTTPS Accord.En plus, Les navigateurs savent également comment gérer d'autres protocoles .Par exemple,?mailto:? Le Protocole indique au navigateur d'ouvrir le client de messagerie ;ftp: Le Protocole indique au navigateur de gérer le transfert de fichiers .

La deuxième apparition ?Hôte

www.example.com? Est à la fois un nom de domaine , Représente également l'organisme qui gère le nom de domaine .Il indique à quel hôte du réseau la demande doit être faite.Bien sûr., Ou directement à l'hôte ? IP address? Adresse demande d'origine . Mais directement IP Les scénarios d'adresses ne sont pas courants .

Le troisième était ?Port

Comme nous l'avons dit plus tôt, , Démarrer entre deux hôtes TCP La connexion nécessite deux conditions ,Hôte + Port. Il représente l'accès Web Entrée des ressources sur le serveur . Si vous accédez à Web Utilisation du serveur HTTP Port standard pour le Protocole (HTTPPour80,HTTPSPour443) Accorder l'accès à ses ressources , Cette partie est généralement omise . Sinon, le port est URI Partie requise .

C'est une demande. URL Partie requise , En bas. URL Chemin de la ressource de demande spécifique

Le quatrième était ?Chemin

/path/to/myfile.html?- Oui. Web Chemin vers la ressource sur le serveur . Le premier derrière le port ?/?C'est parti.,À??? Terminé avant ,Intermédiaire Chaque/? Ils représentent tous les niveaux. ( Supérieur et inférieur )Relations.C'est URL La ressource demandée pour html Page.

Juste après le chemin, ?Paramètres de requête

?key1=value1&key2=value2? Oui fourni à Web Paramètres supplémentaires pour le serveur .Si oui GET Demande, Généralement avec demande URL Paramètres,Si oui POST Demande, Aucun paramètre n'est ajouté directement après le chemin . Ces paramètres sont utilisés & Symbole séparé Clé/Paires de valeursListe.key1 = value1 C'est le premier couple. ,key2 = value2 Est la deuxième paire de paramètres

Ce qui suit le paramètre Point d'ancrage

#SomewhereInTheDocument? Est un point d'ancrage pour une partie de la ressource elle - même . Un point d'ancrage représente l'une des ressources “Signets”, Il donne au navigateur l'affichage à “ Signet ” Indication du contenu du point . Par exemple,InHTML Sur le document , Le navigateur défile vers le point où l'ancre est définie ; Sur un document vidéo ou audio , Le navigateur va à l'heure que l'ancre représente .Ce qui est remarquable, c'est que # Après le numéro , Aussi appelé identificateur de fragment , Ne jamais envoyer au serveur avec la demande .

Courrier électronique sur Internet

Depuis que nous avons Internet , Le courrier électronique est devenu populaire sur Internet . Comme pour le courrier ordinaire , Le courrier électronique est un support de communication asynchrone ,C'est - à - dire que les gens peuvent échanger des courriels avec d'autres personnes à leur convenance, Sans avoir à communiquer avec les autres . Le courrier électronique moderne a de nombreuses caractéristiques puissantes , Y compris les accessoires 、Hyperliens、HTML Formatage des messages texte et image . Voici un aperçu général du système de courrier électronique

Comme le montre le graphique, il comporte trois éléments principaux:Agent utilisateur(user agent)Serveur de courrier(mail server)、Et Protocole de transfert de courrier simple (Simple Mail Transfer Protocol,SMTP). Décrivons le processus d'envoi et de réception des courriels. .

L'agent utilisateur permet à l'utilisateur de lire 、Réponse、Avant、 Enregistrer et écrire des messages .Microsoft?Outlook?Et?Apple Mail? Est un exemple d'agent utilisateur de courriel . Lorsque l'utilisateur termine d'écrire un message , Son agent utilisateur envoie des messages au serveur de messagerie , Les messages envoyés par l'utilisateur sont placés sur le serveur de messagerie File d'attente des messages sortants (Outgoing message queue)Moyenne, Lorsque l'utilisateur destinataire veut lire le message ,Son agent utilisateur obtient le message directement de la file d'attente des messages sortants.

Le serveur de courrier constitue le noyau de l'ensemble du système de courrier . Chaque destinataire aura un Boîte aux lettres(mailbox)?Existe. Gestion et maintenance de la boîte aux lettres de l'utilisateur . Un processus typique d'envoi de courrier est : Commencez par l'agent utilisateur de l'expéditeur , Serveur de courrier transféré à l'expéditeur , Transfert au serveur de courrier du destinataire , Puis distribué ici à la boîte aux lettres du destinataire . Lorsque l'utilisateur du destinataire veut lire le message de la boîte aux lettres , Son serveur de courrier authentifiera l'utilisateur .Si le message envoyé par l'expéditeur ne peut pas être livré correctement au serveur du destinataire, L'agent utilisateur de l'expéditeur stockera le message dans un File d'attente des messages (message queue)Moyenne, Et essayez d'envoyer à nouveau plus tard , En général, 30 Envoyer une fois par minute , Si l'envoi échoue après un certain temps ,Le serveur supprime le message dans la file d'attente du message et en informe l'expéditeur par courriel.

SMTP? Est le principal Protocole de couche d'application dans le courrier électronique Internet .SMTP Aussi utilisé TCP En tant qu'accord de transport , Assurer la fiabilité de la transmission des données .

SMTP Processus de transfert du Protocole

Pour décrire SMTP Fonctionnement de base de, Regardons ce qui suit: .

Supposons que Alice - Oui. Bob Envoyer un message simple ASCII Message

  • Alice Appelez son agent de messagerie et fournissez Bob Adresse postale de (Par exemple [email protected]), Écrire un message électronique , Demander ensuite à l'agent utilisateur d'envoyer le message

  • Alice L'agent utilisateur envoie le message à son serveur de messagerie , Où le message est mis en file d'attente .

  • En cours Alice Sur le serveur de messagerie pour SMTP Le client a trouvé un message dans la file d'attente du message , Il crée un Bob Sur le serveur de courrier SMTP Serveur TCP Connexion

  • Après une certaine initialisation SMTP Après la poignée de main ,SMTP Le client passe par TCP Envoi de la connexion Alice Messages pour .

  • In Bob Sur le serveur de messagerie pour ,SMTP Le serveur pour recevoir ce message ,Bob Le serveur de courrier de Bob Dans la boîte aux lettres de

  • In Bob Quand vous voulez voir le courrier , Il appellera l'agent utilisateur pour lire le message

Le courrier mentionné ci - dessus est en fait un message , Il s'agit d'une série ASCII Code,SMTP Avant de transférer un message , Les données multimédias binaires doivent être encodées comme suit: ASCII Code à transmettre .

SMTP N'utilisez généralement pas de serveur de courrier intermédiaire pour envoyer des messages ,Même si ces deux serveurs de courrier sont situés aux deux extrémités de la terre.TCP Connexion généralement directe Alice Serveur de courrier et Bob Serveur de courrier pour .

Maintenant vous connaissez le processus général d'envoi du courrier sur les deux serveurs de courrier,Alors,SMTP Comment envoyer un message à partir de Alice Serveur de courrier envoyé à Bob Et le serveur de courrier? ? Il est divisé en trois étapes principales:

  • Établir une connexion:À ce stade,SMTP Demande du client et serveur 25 Le port crée un TCP Connexion. Une fois la connexion établie ,SMTP Les serveurs et les clients commencent à s'annoncer mutuellement leurs noms de domaine , Confirmer également le nom de domaine de l'autre partie .
  • Livraison du courrier : Une fois la connexion établie , Commencer le transfert de courrier .SMTP Dépendance TCP Capacité de transmettre le message avec précision au serveur de messagerie du destinataire.SMTP L'adresse source du message que le client enverra 、 Adresse de destination et contenu spécifique du message transmis à SMTP Serveur,SMTP Le serveur répond en conséquence et reçoit des messages .
  • Libération de la connexion :SMTP Le client émet une commande de sortie , Le serveur répond après le traitement de la commande , Puis fermé TCP Connexion.

Voici une analyse d'un SMTP Processus d'envoi du courrier , Ci - après dénommés collectivement SMTPClients(C)Et?SMTPServeur(S). Le nom d'hôte du client est ?crepes.fr, Le nom d'hôte du serveur est ?hamburger.edu.Par C: Au début ASCII Le texte du Code est donné par le client TCP Les lignes de socket ,Par S: Au début ASCII Le Code est envoyé par le serveur TCP Les lignes de socket . Une fois la connexion créée , Et nous avons commencé le processus suivant

S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <[email protected]>
S: 250 [email protected] ... Sender ok
C: RCPT TO: <[email protected]>
S: 250 [email protected] ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

Dans l'exemple ci - dessus, Client à partir du serveur de courrier crepes.fr Vers le serveur de courrier hamburger.edu Un message a été envoyé (" Do you like ketchup? How about pickles? ") . Dans le cadre du dialogue , Le client a envoyé 5 Commandes :?HELO(- Oui. HELLO Abréviation de)、?MAMIL FROMRCPT TODATA?Et?QUIT. Ces commandes sont auto - interprétées .

Qu'est - ce que l'auto - explication , Il n'y a plus besoin d'explications. , Vous pouvez vous expliquer ce que vous voulez dire. .

C'est un simple SMTP Processus d'échange , Inclure l'établissement de la connexion 、 Trois processus spécifiques de livraison de courrier et de libération de connexion

Tout d'abord, TCP Connexion、SMTP Appelez TCP Accord25 Port # Listening Connection requests , Puis le client envoie HELO L'instruction est utilisée pour indiquer l'identité de l'expéditeur , Le serveur répond ensuite .Et puis,Envoi par le client MAIL FROM Les ordres, Indique que l'adresse électronique du client est ?<[email protected]>, Serveur à OK En réponse , Indique qu'il est prêt à recevoir .Envoi par le client RCPT TO Indique l'adresse électronique du destinataire ,Il peut y en avoir plusieurs. RCPT D'accord, Un message peut être envoyé à plusieurs destinataires en même temps . Le côté serveur indique s'il souhaite recevoir des messages pour les destinataires . Après consultation , Pour le client DATA Message d'envoi de la commande , Le drapeau de fin est CRLF.CRLF?,C'est - à - dire Retour à la ligne.Retour à la ligne.Enfin, Fin facultative de la session à chaque extrémité de l'interaction de contrôle , Pour ce faire, il envoie un QUIT Les ordres, Commande à l'autre extrémité 221Réponse, Consentement à mettre fin à la connexion , Les deux parties fermeront la connexion .

Plusieurs processus similaires sont impliqués HTTP Code d'état pour .250 C'est tout. OK ,Similaire HTTP De 200. Lorsque la commande est réussie , Code de retour du serveur 250, Code de retour en cas d'échec 550( Commande non reconnue )、451( Erreur de traitement )、452( Pas assez d'espace de stockage )、421( Serveur non disponible )Attendez.,354 Indique l'entrée des informations de démarrage .

SMTP Le message sera limité. ,SMTP Les limites de ASCII Message codé ,Chinois non pris en charge、 Français 、 Devon et al. , Il ne supporte pas non plus la voix 、 Données vidéo .Adoption?MIMEAccord,C'est exact. SMTP Supplément.MIME Utiliser un terminal virtuel réseau (NVT)Critères, Non autorisé ASCII Code data pass SMTPTransmission.

SMTP Avec HTTP Comparaison

HTTP Est le premier Protocole de couche d'application que nous avons appris ,SMTP Est le deuxième Protocole de couche d'application que nous avons appris , Alors comparons les deux Protocoles. .

Les deux protocoles sont utilisés pour transférer des fichiers d'un hôte à un autre:HTTP De Web Serveur vers Web Client( Généralement un navigateur ) Transfert de documents ,SMTP Est le transfert de fichiers d'un serveur de courrier à un autre( Message électronique ).

Il y aura également plusieurs différences importantes entre les deux accords.

  • Tout d'abord,,HTTP C'est un? Accord de retrait (pull protocol),Le client envoie la demande, Demande d'accès aux ressources du serveur , Puis le serveur répond , Transférer les fichiers à télécharger au client ;Et SMTP C'est un? Accord push (push protocol),SMTP Les clients de SMTP Serveur pour.
  • La deuxième différence est ,SMTP Exiger que chaque message adopte 7 Bits ASCII Format du Code , Si un message contient non 7 Bits ASCII Données auto - négatives ou binaires , Le message doit être envoyé conformément à 7Bits ASCII Codage par Code .HTTP Les données ne sont pas soumises à cette restriction .
  • La troisième différence est le traitement d'un document qui contient à la fois du texte et des graphiques,HTTP Encapsuler chaque objet dans son propre HTTP Dans le message de réponse ,Et SMTP Placez tous les objets du message dans un seul message .

DNS Protocole de service d'annuaire internet

Imaginez une question. , Combien de façons les humains peuvent - ils se reconnaître? ? Peut être identifié par une carte d'identité , Peut être identifié par un numéro de carte de sécurité sociale , Peut également être identifié par un permis de conduire , Bien que nous ayons plusieurs façons d'identifier , Mais dans un contexte particulier , Une méthode d'identification peut être plus appropriée qu'une autre . Les hôtes d'Internet sont les mêmes que les humains , Peut être identifié de plusieurs façons . Une façon d'identifier un hôte sur Internet est de l'utiliser ?Nom d'hôte(hostname)?,Par exemple: www.facebook.com、 www.google.com Attendez.. Mais c'est notre façon de nous souvenir. , Les routeurs ne comprennent pas ça. , Les routeurs aiment les longueurs fixes 、 Hiérarchique ?IPAdresse,so,Tu te souviens? IP C'est quoi? ?

IP L'adresse est simple. , C'est le résultat 4 Composition des octets , Avec une hiérarchie stricte .Par exemple?121.7.106.83?Comme ça. IP Adresse, Chaque octet peut être utilisé ?.?Diviser, Oui. ?0 - 255? Nombre décimal de .(Plus précisément IP On en parlera plus tard. )

Et pourtant, Ce que les routeurs aiment IP Adresse à analyser , Ce dont nous nous souvenons, c'est l'URL. , Comment les routeurs IP Les adresses se résolvent aux adresses Web que nous connaissons ? C'est le moment. ?DNS?C'est parti..

DNS Son nom complet est?Domain Name System,DNS?, Il est stratifié ?DNS Serveur(DNS server) Base de données distribuée mise en œuvre ;.C'est aussi un Protocole de couche d'application qui permet aux hôtes d'interroger des bases de données distribuées.DNS Le serveur fonctionne normalement ?BIND(Berkeley Internet Name Domain)?Logiciel UNIX Machines.DNS Le Protocole fonctionne à?UDP?Au - dessus de,Utiliser 53 Port.

DNS Aperçu général

Avec HTTP、FTP Et SMTP C'est pareil,DNS Le Protocole est également un Protocole de couche d'application ,DNS UtiliserClients-Serveur Le mode fonctionne entre les systèmes terminaux de communication ,Transmission entre les systèmes terminaux de communication par le Protocole de transport de bout en bout suivant DNS Message.Mais DNS Pas une application qui traite directement avec les utilisateurs .DNS Est de fournir une fonctionnalité de base pour les applications utilisateur sur Internet et d'autres logiciels.

DNS Ce n'est généralement pas un accord autonome , Il est généralement utilisé par d'autres protocoles de couche d'application , Ces accords comprennent: HTTP、SMTP Et FTP, Résoudre le nom d'hôte fourni par l'utilisateur à IP Adresse.

Voici un exemple de ceci DNS Processus d'analyse , Ceci et après que vous avez entré l'URL , Ce que fait le navigateur a des similitudes et des différences

Vous tapez dans le Navigateur www.someschool.edu/index.html Que se passe - t - il? ? Afin de permettre à l'hôte utilisateur de HTTP Message de demande envoyé à Web Serveur www.someschool.edu , Les opérations suivantes seront effectuées:

  • Fonctionne sur le même hôte utilisateur DNS Client appliqué
  • Navigateur à partir de URL Extraire le nom de l'hôte www.someschool.edu , Et passer ce nom d'hôte à DNS Client appliqué
  • DNS Les clients DNS Le serveur envoie une requête avec un nom d'hôte .
  • DNS Le client recevra finalement un message de réponse , Qui contient le IP Adresse
  • Une fois que le navigateur a reçu le IP Après l'adresse, Il est capable d'atteindre IP Adresse 80 Port HTTP Le processus serveur lance un TCP Connexion.

En plus de fournir IP Conversion de l'adresse en nom d'hôte ,DNS Les services suivants sont également disponibles:

  • Alias de l'hôte (host aliasing),Un hôte avec un nom d'hôte complexe peut avoir un ou plusieurs autres alias, Par exemple, un groupe appelé relay1.west-coast.enterprise.com Hôte de, En même temps enterprise.com Et www.enterprise.com Deux alias hôtes pour ,Dans ce cas,,relay1.west-coast.enterprise.com Aussi appelé? Nom de l'hôte de spécification , L'alias de l'hôte est plus facile à mémoriser que le nom de l'hôte standard . L'application peut appeler DNS Pour obtenir le nom d'hôte canonique correspondant à l'alias de l'hôte et IPAdresse.
  • Alias du serveur de courrier (mail server aliasing),La même chose., L'application email peut également appeler DNS Résoudre le nom d'hôte fourni .
  • Répartition de la charge (load distribution),DNS Également utilisé pour la répartition de la charge entre les serveurs redondants . Sites occupés tels que ?cnn.com? Distribué de façon redondante sur plusieurs serveurs , Chaque serveur fonctionne entre différents systèmes finaux , Chacun a sa propre IP Adresse. En raison de ces redondances Web Serveur,Un IP La collection d'adresses est donc associée au même nom d'hôte canonique .DNS Ceux - ci sont stockés dans la base de données IP Collection d'adresses . Parce que le client lance à chaque fois HTTP Demande,Alors... DNS Dans toutes ces redondances Web Les charges sont réparties en boucle entre les serveurs .

DNS Aperçu des travaux

DNS Est un système complexe,Nous ne sommes ici que pour étudier les principaux aspects de son fonctionnement, Voici un exemple DNS Aperçu général du processus de travail

Supposons que certaines applications fonctionnent sur l'hôte utilisateur (Par exemple: Web Navigateur ou lecteur de courrier ) Le nom d'hôte doit être converti en IP Adresse. Ces applications appelleront DNS Le client de, Et indique le nom d'hôte à convertir . Sur l'hôte utilisateur DNS Après réception ,Sera utilisé UDP Adoption 53 Le port envoie un DNS Message de requête , Après un certain temps , Sur l'hôte utilisateur DNS Vous recevrez un nom d'hôte correspondant DNS Message de réponse .Donc,, Du point de vue de l'hôte utilisateur ,DNS C'est comme une boîte noire. , Vous ne pouvez pas voir le fonctionnement interne .Mais en fait,Réalisation DNS La boîte noire de ce service est très complexe , Il est composé d'un grand nombre de DNS Serveur et défini DNS Composition du Protocole de couche d'application pour la communication entre le serveur et l'hôte de requête.

DNS L'un des premiers dessins simples était d'utiliser un DNS Serveur. Le serveur contiendra toutes les cartes .C'est une sorte deCentraliséConception, Cette conception n'est pas adaptée à l'Internet d'aujourd'hui ,Parce qu'Internet a un nombre énorme et croissant d'hôtes, Cette conception centralisée pose les problèmes suivants:

  • Défaillance en un seul point (a single point of failure),Si DNS Crash du serveur, Alors tout le réseau s'est effondré. .
  • Capacité de communication (traaffic volume),Unique DNS Le serveur doit traiter tous les DNS Requête, Ce niveau de requête peut être des millions ou des millions
  • Base de données centralisée à distance (distant centralized database),Unique DNS Impossible pour le serveur ? Proximité ? Tous les utilisateurs , Supposons qu'aux États - Unis, DNS Le serveur ne peut pas être proche pour les requêtes australiennes ,Où les demandes de renseignements doivent passer par des liaisons lentes et encombrées, Cause de graves retards .
  • Entretien(maintenance), Les coûts d'entretien sont énormes , Et des mises à jour fréquentes sont nécessaires .

Alors... DNS Conception centralisée impossible , Il n'a aucune extensibilité. ,Adoption Conception distribuée , Les caractéristiques de cette conception sont donc les suivantes:

Distribué、 Base de données hiérarchique

Tout d'abord, la conception distribuée résout d'abord le problème DNS Problèmes d'extensibilité du serveur ,Donc, DNS Utilise beaucoup DNS Serveur, Leur mode d'organisation est généralement hiérarchique , Et dans le monde entier . Pas un seul. DNS Le serveur peut avoir une cartographie de tous les hôtes sur Internet .Au contraire., Ces cartes sont distribuées dans tous les DNS Sur le serveur.

En gros, il y en a trois. DNS Serveur:Racine DNS Serveur、? Domaine de haut niveau (Top-Level Domain, TLD) DNS Serveur?Et?Autorité DNS Serveur?. Les modèles hiérarchiques de ces serveurs sont présentés ci - dessous.

Supposons que maintenant DNS Le client veut savoir www.amazon.com De IP Adresse, Comment le serveur de noms de domaine ci - dessus se résout - il? ?Tout d'abord,, Le client est d'abord associé à l'un des serveurs racine , Il retournera au domaine de premier niveau ?com?De TLD Serveur IP Adresse. Le client est lié à ces TLD Un des contacts du serveur , Il sera amazon.com Retourner au serveur faisant autorité IP Adresse.Enfin, Le client est lié à amazom.com Un des contacts du serveur faisant autorité ,Il est www.amazom.com Retour à IP Adresse.

Enfin

C'est tout ce qu'il y a à partager avec vous cette fois

Tout est dans—— Mes notes d'étude:Le vrai problème de l'interview de Dachang+Microservices+MySQL+Java+Redis+Algorithmes+Réseau+Linux+SpringSeau familial+JVM+Diagramme de notes d'étude

Enfin, partagez un grand paquet cadeau pour l'architecture ultime de déchirure manuelle(Notes d'étude):Distribué+Microservices+Cadre Open Source+Optimisation des performances

image

Copyright:Cet article est[Android Martin Jr.]Établi,Veuillez apporter le lien original pour réimprimer,remercier。 https://fra.fheadline.com/2021/08/20210819214304099i.html