Discussion amusante sur les protocoles réseau - Conférence 5 | De la couche physique à la couche MAC: comment jouer à des jeux en ligne dans le dortoir?

Cette série de blog lié, référence geeks temps - Quelque chose sur le protocole réseau

Dans la section précédente, nous avons assisté à la naissance de l'adresse IP ou de l'ensemble du système d'exploitation. Une fois que la machine a une adresse IP, elle peut communiquer avec d'autres machines dans l'environnement réseau.

L'histoire commence avec mon dortoir universitaire. Après les années 80, je veux révéler mon âge.

Il y a quatre personnes dans notre dortoir. Pendant la première année, l'école ne permet pas l'accès à Internet et n'ouvre pas Internet. Cependant, il y a une personne dans le dortoir qui est relativement riche et a acheté le premier ordinateur. Pourquoi avez-vous acheté un ordinateur?

Tout d'abord, il existe des jeux autonomes, tels que "The King of Fighters". Les deux utilisaient un clavier, et il faisait encore chaud. Plus tard, une deuxième personne a acheté un ordinateur. Ces deux ordinateurs peuvent-ils être connectés? Vous diriez, bien sûr, que vous pouvez acheter un routeur à la place.

Maintenant, un routeur domestique est très bon marché, plus d'une centaine de choses. À cette époque, le routeur était définitivement un luxe. Jusqu'à la dernière année, nous n'avons pas acheté de routeur dans notre dortoir. C'est peut-être parce que la technologie n'était pas aussi développée à l'époque, ce qui m'a amené à approfondir progressivement ma compréhension de la technologie réseau, et chaque couche est vraiment en contact.

La première couche (couche physique)
utilise des routeurs et se trouve sur la troisième couche. Commençons par la première couche physique.

La première couche (couche physique)

Que peut lancer la couche physique? Les camarades de classe d'aujourd'hui peuvent ne pas penser que lorsque nous sommes allés à l'école pour acheter un câble réseau à l'endroit où l'ordinateur était équipé, le maître qui a vendu le câble réseau demandait: votre câble réseau est-il connecté à l'ordinateur ou l'ordinateur au port réseau?

Ce que nous voulons, c'est un ordinateur avec un ordinateur. Cette méthode est un câble réseau à deux têtes. Branchez une extrémité sur la carte réseau d'un ordinateur et l'autre extrémité sur la carte réseau d'un autre ordinateur. Mais à l'époque, les câbles réseau ordinaires ne pouvaient pas passer par là, donc la tête de cristal devait être utilisée comme un câble croisé 1-3、2-6交叉接法.

Les première et deuxième broches et les troisième et sixième broches de la tête de cristal jouent respectivement le rôle de réception et d'envoi de signaux. En échangeant les positions de la ligne 1 et de la ligne 3, de la ligne 2 et de la ligne 6 à une extrémité, le signal envoyé par une extrémité peut être réalisé au niveau de la couche physique, et l'autre extrémité peut le recevoir.

Bien sûr, si l'ordinateur est connecté à l'ordinateur, en plus du croisement du câble réseau, l'adresse IP, le masque de sous-réseau et la passerelle par défaut des deux ordinateurs doivent être configurés. Ces trois concepts ont été décrits en détail dans la section précédente. Pour que deux ordinateurs puissent communiquer, ces trois éléments doivent être configurés en réseau, l'un peut être 192.168.0.1/24 et l'autre est 192.168.0.2/24, sinon cela ne fonctionnera pas.

Ici, je veux vous poser une question, le paquet réseau entre deux ordinateurs inclut-il la couche MAC? Bien sûr, il doit être complet. La couche IP doit encapsuler la couche MAC pour placer le paquet dans la couche physique.

Jusqu'à présent, les deux ordinateurs ont formé un réseau local minimal, ou LAN. Vous pouvez jouer à des jeux LAN en ligne!

Lorsque le troisième copain a également acheté un ordinateur, comment connecter les trois ordinateurs ensemble?

Sans parler des commutateurs, les commutateurs étaient également chers à l'époque. Il y a une chose appelée Hub, qui est un hub . Cet appareil possède plusieurs ports qui peuvent connecter plusieurs ordinateurs dans le dortoir. Cependant, contrairement à un commutateur, un concentrateur n'a pas de cerveau et fonctionne entièrement au niveau physique. Il copiera chaque octet qu'il reçoit sur d'autres ports. Il s'agit de la première couche de connectivité de la couche physique .

La deuxième couche (couche de liaison de données)

La deuxième couche (couche de liaison de données)

Vous avez peut-être découvert le problème. Le Hub adopte le mode de diffusion. Si le colis envoyé par chaque ordinateur peut être reçu par tous les ordinateurs du dortoir, cela sera gênant. Cela nécessite de résoudre plusieurs problèmes:

  1. À qui s'adresse ce forfait? Qui devrait recevoir?
  2. Tout le monde l'envoie, cela causera-t-il de la confusion? Y a-t-il des règles pour qui envoie le premier et qui envoie plus tard?
  3. Que faire si une erreur se produit lors de l'envoi?

L'algorithme multi-accès résout le problème du contrôle d'accès aux médias: qui envoie en premier et qui envoie plus tard?

Ces problèmes sont tous la deuxième couche, la couche liaison de données, c'est-à-dire la couche MAC pour résoudre le problème. Le nom complet de MAC est Medium Access Control, ie 媒体访问控制. Quels contrôles? En fait, il s'agit de contrôler l'envoi de données aux médias pour 谁先发、谁后发的问题éviter le chaos. Ce que cela résout, c'est 第二个问题. La règle de cette question est appelée scientifiquement 多路访问. Il existe de nombreux algorithmes pour résoudre ce problème. Tout comme la direction de la voiture est responsable de la voiture qui roule sur la route, je peux penser à toutes les façons dont je peux penser.

Par exemple, les trois méthodes suivantes:

  • Méthode 1: se diviser en plusieurs voies. Il y a une voie par voiture, vous allez la vôtre, je vais la mienne. C'est ce qu'on appelle dans le réseau informatique 信道划分;
  • Méthode 2: voyagez avec un seul numéro aujourd'hui et tournez avec un double numéro demain. C'est ce qu'on appelle dans le réseau informatique 轮流协议;
  • Troisième méthode: peu importe 3, 7, 21, si vous avez quelque chose à faire, sortez d'abord et trouvez un bloc spécial, puis revenez en arrière. Manquez le pic et sortez à nouveau. Nous l'appelons 随机接入协议. Le célèbre Ethernet utilise cette méthode.

Le deuxième problème est résolu, c'est-à-dire que le problème de contrôle d'accès aux médias est résolu et le problème MAC est résolu. Cela n'a rien à voir avec l'adresse MAC.

Format de paquet réseau d'adresses de couche liaison: qui est envoyé et qui le reçoit?

Ensuite, nous devons résoudre 第一个问题:发给谁,谁接收?une adresse physique utilisée ici, appelée 链路层地址. Mais parce que la deuxième couche résout principalement le problème du contrôle d'accès aux médias, elle est souvent appelée MAC地址.

La résolution du premier problème implique la deuxième couche de format de paquet réseau . Pour Ethernet, le début de la deuxième couche est 目标的MAC地址et 源的MAC地址.
Insérez la description de l'image ici
Ensuite 类型, la plupart des types le sont IP数据包, puis IP contient TCP, UDP et HTTP, qui sont tous des éléments encapsulés.

Avec cette adresse MAC cible, le paquet de données est diffusé sur la liaison avant que la carte réseau MAC puisse découvrir que ce paquet est pour lui. La carte réseau MAC a reçu le paquet, puis a ouvert le paquet IP et a constaté que l'adresse IP était également la sienne. Puis a ouvert le paquet TCP et a constaté que le port était le sien, qui est 80, et que nginx écoutait 80.

Soumettez donc la demande à nginx, nginx renvoie une page Web. Renvoyez ensuite la page Web à la machine demandeuse. Puis encapsulation couche par couche, et enfin à la couche MAC. Parce que l'adresse MAC source vient quand elle arrive, et quand elle revient, le MAC source devient le MAC cible, qui est renvoyé à la machine demandeuse.

CRC (Cyclic Redundancy Check) Solution: que dois-je faire si une erreur se produit pendant la transmission?

Pour Ethernet, la dernière face de la deuxième couche est CRC, c'est-à-dire 循环冗余检测. Par XOR异或le 算法paquet entier calculé si une erreur est survenue dans le processus d'envoi, la solution principale 第三个问题.

Solution de protocole ARP: ne connaît pas l'adresse MAC de la machine cible

Il y a toujours un problème non résolu ici. Lorsque la machine source connaît la machine cible, elle peut mettre l'adresse cible dans le paquet, si elle ne sait pas? N machines sont connectées à un réseau de diffusion, comment savoir qui est chaque adresse MAC? Il s'agit ARP协议du protocole qui recherche l'adresse MAC en connaissant l'adresse IP.
Insérez la description de l'image ici
Dans un réseau local, que dois-je faire si je connais l'adresse IP mais pas le MAC? Par "rugissement".
Insérez la description de l'image ici
Annoncez, envoyez un paquet de diffusion, qui répondra à cette IP. Les messages de requête et de réponse spécifiques sont les suivants:
Insérez la description de l'image ici
Afin d'éviter à chaque fois d'utiliser des requêtes ARP, la machine s'exécutera également localement ARP缓存. Bien sûr, la machine continuera à se connecter et à se déconnecter, et l'IP peut également changer, de sorte que le cache d'adresse MAC ARP expirera après un certain temps.

LAN

Eh bien, jusqu'à présent, quatre ordinateurs dans notre dortoir ont formé un réseau local. Connectez-vous à Hub pour jouer à la version LAN de Warcraft. 
Insérez la description de l'image ici
Ouvrez le jeu, entrez "Options LAN", sélectionnez une carte et cliquez sur "Créer un jeu" pour entrer dans la salle de cette carte. Une fois que d'autres petits partenaires d'un réseau local se sont joints, le jeu peut commencer.

Cette méthode de mise en réseau n'est cependant pas un problème pour un dortoir 一旦机器数目增多,问题就出现了. Étant donné que le concentrateur est diffusé, qu'une interface soit nécessaire ou non, tous les bits seront envoyés, puis laisser l'hôte déterminer si elle est nécessaire. De cette façon, il n'y aura pas de problème avec moins de voitures sur la route 产生冲突的概率就提高. De plus, c'est un gaspillage de transmettre des paquets inutiles au passé. Il semble que Hub, un appareil qui transmet indépendamment de 3, 7, 21, ne fonctionnera pas et nécessite une certaine intelligence. Étant donné que chaque port n'est connecté qu'à un seul ordinateur, cet ordinateur ne modifie pas l'adresse IP et MAC. Tant que vous vous souvenez de l'adresse MAC de cet ordinateur, si l'adresse MAC cible n'est pas cet ordinateur, ce port n'a pas besoin d'être transféré.

Commutateur

Qui peut savoir si l'adresse MAC cible est l'adresse MAC de l'ordinateur connecté à un certain port? Cela nécessite un appareil qui peut prendre l'en-tête MAC, vérifier l'adresse MAC cible, puis la transmettre conformément à la stratégie. Comme mentionné dans la deuxième classe, cet appareil est évidemment un appareil de couche 2 , que nous appelons un commutateur .

Comment le commutateur connaît-il l'adresse MAC de chaque ordinateur de port? Cela nécessite que le commutateur apprenne.

Un ordinateur MAC1 envoie un paquet à un autre ordinateur MAC2. Lorsque le paquet arrive au niveau du commutateur, le commutateur ne sait pas quel port de l'ordinateur MAC2 était au début, il n'y a donc aucun moyen, il ne peut que transférer le paquet. Toutes les autres bouches sauf celle-là. Cependant, à ce moment, le commutateur fera une chose très intelligente, c'est-à-dire qu'il se souviendra que MAC1 provient d'un port clair. À l'avenir, l'adresse de destination du paquet est MAC1 et elle peut être envoyée directement à ce port.

Lorsque le commutateur agit comme un niveau, après une certaine période de temps, il y aura une structure de l'ensemble du réseau. À l'heure actuelle, aucune diffusion n'est nécessaire, et tout peut être transmis avec précision. Bien sûr, l'adresse IP de chaque machine changera, et le port où elle changera également, donc le résultat de l'apprentissage sur le commutateur, nous l'appelons la table de transfert , oui 有一个过期时间的.

Avec un interrupteur, en règle générale, si vous prenez des dizaines ou des centaines de machines pour jouer à des jeux, cela ne devrait pas poser de problème. Vous pouvez former une équipe. Si vous pouvez vous connecter, vous pouvez jouer à des jeux en ligne.

Ici, je vous recommande un cours. Geek Time a récemment lancé "Learning Game Development from 0". L'architecte du moteur de jeu Netease original et expert technique de bas niveau Cai Neng vous guidera à travers le processus et les détails du développement du jeu Analysez pour vous le succès des jeux populaires. Aidez les programmeurs ordinaires à devenir des ingénieurs de développement de jeux et à entrer dans la voie du développement de jeux.

Résumé

Ok, le contenu d'aujourd'hui est presque le même, résumons, il y a trois points importants dont vous devez vous souvenir:
premièrement, la couche MAC est utilisée pour résoudre le problème d'embouteillage du multi-accès;
deuxièmement, ARP est à trouver par rugissement L'adresse MAC cible est mémorisée pendant un certain temps après le rugissement. C'est ce qu'on appelle la mise en cache.
Troisièmement, le commutateur a la capacité d'apprendre les adresses MAC. Après l'avoir apprise, il saura qui est où et n'a pas besoin de diffuser.

Enfin, laissez-vous deux questions de réflexion.

  1. Dans la deuxième couche, nous avons parlé du protocole ARP, c'est-à-dire que l'adresse IP connue cherche MAC; il y a aussi un protocole RARP, c'est-à-dire que le MAC connu cherche IP, savez-vous à quoi il peut être utilisé?
  2. S'il y a plusieurs commutateurs dans un LAN, qu'adviendra-t-il du mode de diffusion ARP?
Publié 40 articles originaux · louange gagné 1 · vues 4973

Je suppose que tu aimes

Origine blog.csdn.net/aha_jasper/article/details/105526564
conseillé
Classement