Comment créer une topologie de réseau au niveau de la couche liaison de données si seuls des commutateurs non gérés sont utilisés dans le sous-réseau souhaité? Dans l'article, je vais essayer de répondre à cette question.
Je vais commencer par la cause de LLTR ( Link Layer Topology Reveal ).
J'ai eu un «vélo» - un synchroniseur de fichiers volumineux «à pleine vitesse réseau», capable de télécharger complÚtement un fichier de 120 Gio sur Fast Ethernet ( 100 Mbps ; 100BASE - TX; duplex) à 1, 10, 30 ou 3 heures > 200 piÚces C'était un «vélo» trÚs utile car la vitesse de synchronisation des fichiers était presque indépendante du nombre d'ordinateurs sur lesquels télécharger le fichier. Tout irait bien, mais cela nécessite une connaissance de la topologie du réseau pour son travail.
Plus dans l'article sur lui: D'accord, pourquoi avez-vous eu besoin de «conduire» un fichier de 120 Gio sur le réseau vers une telle quantité de PC?
Ce fichier était VHD avec le systÚme d'exploitation, les programmes, etc. Le fichier a été créé sur le systÚme maßtre, puis distribué à tous les autres PC. Le disque dur virtuel n'était pas seulement un moyen de fournir le systÚme aux PC cibles, mais il permettait également de restaurer l'état initial du systÚme lors du redémarrage du PC. Plus de détails dans l'article: « System Freezing: The History of the Transition from EWF to dVHD ».
Vous pouvez continuer la chaĂźne plus loin, mais je vais rompre.
Les protocoles existants de dĂ©couverte de la topologie de la couche liaison de donnĂ©es ( LLDP , LLTD , CDP , ...) nĂ©cessitent une prise en charge appropriĂ©e de tous les nĆuds de rĂ©seau intermĂ©diaires pour leur fonctionnement. Autrement dit, ils nĂ©cessitent au moins des commutateurs gĂ©rĂ©s qui prennent en charge le protocole appropriĂ©. Il y avait dĂ©jĂ un article sur HabrĂ© comment utiliser ces protocoles pour « dĂ©terminer la topologie du rĂ©seau aux 2/3 niveaux du modĂšle OSI ».
Mais que faire si les nĆuds intermĂ©diaires sont de simples commutateurs non gĂ©rĂ©s?
Si vous ĂȘtes intĂ©ressĂ© par la façon dont cela peut ĂȘtre fait, alors bienvenue au chat. Je promets la disponibilitĂ© de nombreuses illustrations et exemples.
{taille de l'image: 924 Ko; Texte: 69 Ko; ĂmoticĂŽnes: 9 piĂšces. }
Un peu d'UserCSS avant de lire
Remarque : ce spoiler était à l'origine placé avant le kat.
Certes, tous ceux qui voulaient personnaliser les styles pour eux-mĂȘmes l'avaient dĂ©jĂ fait. Cependant, voici une partie de mon UserCSS. Changements majeurs:
- la fin du spoiler ouvert est visible (utile lorsque le spoiler est grand et que vous ne remarquez pas immédiatement la différence de retrait entre le texte principal et le texte dans le spoiler), plus précisément, a renvoyé le cadre et l'arriÚre-plan précédents du spoiler;
- le bloc de citations est revenu à sa forme précédente (j'ai montré à plusieurs personnes qui ne comprenaient pas la langue russe et n'ont pas lu les nouvelles "citations jaunes" Habré, et ils ont dit qu'il s'agissait d'inserts publicitaires contextuels ...);
- la police principale, sa taille et son interligne sont également revenus (à mon humble avis, le texte long est plus facile à lire);
- Suppression de la note de publication et du nombre de vues, mais ajout du nombre de signets.
En général, j'ai rendu (avec des modifications mineures) l'aspect familier des principaux éléments de l'article. Avec cette conception, un grand nombre de bons articles ont déjà été lus (des souvenirs agréables apparaissent).
@charset "utf-8"; body { font-family: Verdana,sans-serif !important; } .nav-links__item-link { font-family: Helvetica,Arial,sans-serif !important; } .comment__message, .comment-form__preview { font-family:Arial !important; } .post__text { font-size:13px !important; line-height:1.60 !important; } .post__title-text, .post__title_link { font-family: Tahoma,sans-serif !important; line-height:118% !important; } .post__title-text { font-size:30px !important; } .post__title_link { font-size:26px !important; } .post__text br { line-height:normal !important; } .post__text img { -o-object-fit:contain; object-fit:scale-down; } .post__text h1, .post__text h2, .post__text h3 { font-family: Helvetica,Arial,sans-serif !important; } .post__text h2 { font-size:1.5em !important; } .post__text h3 { font-size:1.375em !important; } .post__text h4, .post__text h5, .post__text h6 { font-family: Verdana,sans-serif !important; font-size:1.125em !important; font-weight:bold !important; } .post__text h5 { color:#3D3D3D !important; } .post__text h6 { color:#5C5C5C !important; } .post__text ul li, .post__text ul ul li, .post__text ul ol li, .post__text ol li, .post__text ol ul li, .post__text ol ol li { line-height:inherit !important; padding:0 !important; } .post__text ul, .post__text ul ul, .post__text ul ol, .post__text ol, .post__text ol ul, .post__text ol ol { margin-left:35px !important; } .post__text ul ul, .post__text ul ol, .post__text ol ul, .post__text ol ol { margin-bottom:9px !important; } .post__text .spoiler .spoiler_title { color:#6DA3BD !important; font-size:inherit !important; font-weight:400 !important; } .post__text .spoiler::before { margin-top:2px !important; } .post__text .spoiler .spoiler_text { color:#666 !important; background:#F9F9F9 !important; border:1px solid #EEE !important; } .post__text .spoiler .spoiler_text hr:first-child, .post__text .spoiler .spoiler_text hr:last-child { display:none !important; } .post__text code { font-size:13px !important; border:1px solid #F2F2F2 !important; border-radius:3px !important; padding:0 0.25em !important; white-space:pre-wrap !important; } .post__text strong > code { font-weight: normal !important; background-color: #F8F8F8 !important; } .post__text pre code { line-height:1.5 !important; background-color:#F8F8F8 !important; border-color:#DDD !important; padding:0.5em 1em !important; white-space:pre !important; overflow-x:auto !important; } .hljs-comment, .hljs-quote { color:#808080 !important; font-style:inherit !important; } .hljs-doctag,.hljs-keyword,.hljs-formula, .hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst { color:#4d7386 !important; } .hljs-literal{ color:#7296a3 !important; } .hljs-string,.hljs-regexp,.hljs-addition,.hljs-meta-string{ color:#390 !important; } .hljs-built_in,.hljs-class .hljs-title{ color:#968e5b !important; } .hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{ color:#2f98ff !important; } .hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{ color:#968e5b !important; } .post__text kbd { display:inline-block !important; padding:0.2em 0.5em 0.3em !important; vertical-align:middle !important; background-color:#FCFCFB !important; border:1px solid #D9D9D9 !important; border-radius:3px !important; border-bottom-color:#C6CBD1 !important; box-shadow:inset 0px -1px 0px #C6CBD1 !important; font:11px/10px Tahoma, sans-serif !important; color:#575757 !important; text-shadow:0px 1px 0px #FFF !important; } .post__text blockquote, .comment__message blockquote, .comment-form__preview blockquote { background:inherit !important; border-left:0.25em solid #DFE2E5 !important; color:#70767D !important; padding:0 1em !important; } .post__text .user_link { display:inline-block !important; padding-left:14px !important; color:#666 !important; font:92.4%/1.5em Arial !important; background:url("https://hsto.org/storage/habrastock/i/bg-user2.gif") 0px 60% no-repeat !important; } .post__text .user_link::before { content:'@' !important; color:transparent !important; position:absolute !important; left:0 !important; } .voting-wjt_post>.voting-wjt__counter, .post-stats__item_views { display:none !important; }
MISE Ă JOUR : UserJS - Anti-quotes-hell et <code>
(voir les détails dans ce commentaire ):
Les principaux styles ont été empruntés aux versions précédentes de la matrice Habr:
- 2012-06 (UserCSS) - la police principale Verdana 13px, interligne 160%
- 2012-06 - premiĂšre apparition d'un spoiler + bloc avec un code
- 2012-04 - tableau + en-tĂȘtes
- 2012-05 - plus de titres
- 2012-05 - juste un bon article
- 2011-05 - interligne 1,54em (dans une colonne Ă©troite, avec un espace vide Ă gauche et Ă droite, le texte est lu moins bien qu'avec un intervalle de 160%), les blocs avec le code ont changĂ© la couleur d'arriĂšre-plan et ont perdu le trait [un article peut ĂȘtre dans de nombreux hubs] est devenu un blog [un article peut ĂȘtre dans un seul blog])
- 2011-01 - le contenu est étiré sur toute la largeur de l'écran (dans ce format, le texte avec un espacement des lignes réduit semble optimal, à mon humble avis), à mon humble avis: la large colonne de droite (avec une largeur d'écran de 1600 pixels) crée une sensation de confort, et est également meilleure ici que dans les autres versions apparence des commentaires (bonnes tailles de retrait sélectionnées)
- 2010-08 , 2009-12 , 2009-05 , 2009-03 - changements sur l'exemple du mĂȘme article
- 2010-02 , 2009-06 - articles avec un texte plus dense (paragraphes plus longs)
- 2010-03 , 2010-02 , 2009-06 , 2008-12 - souvenirs positifs sur Opera
- 2007-12 - Effacement ïŒïŒ et le nuage de tags dans la colonne de droite
- 2007-04 - L'espacement des lignes est encore plus petit
à propos de LLTR, je vais écrire une série d'articles sur le thÚme général "comment créer un protocole". Cet article est nul.
# Une analogie du monde physique - le transport pneumatique
Imaginez que nous ayons 2 tuyaux d'air ...
Un tuyau pour les colis entrants (conteneurs rouges) et un pour les colis sortants (conteneurs bleus).
Nous avons plusieurs amis connectĂ©s au mĂȘme systĂšme de transport pneumatique. Nous pouvons leur envoyer des conteneurs et ils peuvent nous envoyer des conteneurs. L'adresse de livraison du conteneur est marquĂ©e sur le conteneur lui-mĂȘme (par exemple, en RFID ou code-barres).
à un moment donné, tout le monde a voulu savoir l'itinéraire emprunté par leurs colis chaque jour et savoir à quels commutateurs (centres de commutation) leurs tuyaux pneumatiques sont connectés, c'est-à -dire Découvrez la topologie du réseau pneumatique.
Tout ce que nous et nos amis pouvons faire, c'est envoyer et recevoir des conteneurs avec un certain contenu.
Je propose de réfléchir à la façon dont, dans ce cas, vous pouvez construire la topologie de ce réseau. Plusieurs options sont sous le spoiler:
spoiler
1. Si les tuyaux sont transparents, comme dans le transport pneumatique à Futurama ( KDPV ), vous pouvez simplement envoyer une caméra vidéo qui capturera tout le chemin de déplacement du conteneur.
2. Vous pouvez placer les capteurs (gyroscope, boussole, accéléromÚtre, ...) dans le conteneur, et construire une carte de déplacement basée sur les données qu'ils ont collectées.
3. Vous pouvez vous passer de capteurs, en envoyant des conteneurs remplis d'air d'une maniÚre spéciale. Cette option est examinée ci-dessous, car Elle s'applique aux réseaux Ethernet cùblés ordinaires.
# LLTR Basic
Pour en revenir aux réseaux Ethernet cùblés, permettez-moi de vous rappeler le problÚme dû à la création du LLTR. Le problÚme est décrit en détail dans la section «PC connectés à différents commutateurs» de l'article RingSync - il s'agit d'un problÚme de réduction de vitesse si la chaßne de pairs n'est pas correctement construite dans un réseau avec plusieurs commutateurs. Pour créer correctement une chaßne d'homologues, vous avez besoin d'informations sur la topologie du réseau.
Un petit exemple (pas de problĂšme):
Nous avons 2 commutateurs (connectĂ©s par un «fil»), 4 hĂŽtes (homologues) , toutes les connexions sont en duplex et la vitesse de toutes les connexions est la mĂȘme. Les flĂšches indiquent le chemin des donnĂ©es. Dans ce cas, il n'y a pas de problĂšme - les donnĂ©es sont transmises Ă la vitesse maximale du rĂ©seau.
Un autre exemple (il y a un problĂšme):
Dans cet exemple, la chaßne de pairs a été construite avec moins de succÚs (car nous ne connaissons pas la topologie du réseau), ce qui a conduit à la formation d'un «goulot d'étranglement» (deux flux de données unidirectionnels dans une connexion) et à une diminution du taux de transfert de données global.
Dans ce cas, la solution au problĂšme (dĂ©terminer la topologie du rĂ©seau) rĂ©side dans la raison de la nĂ©cessitĂ© de le rĂ©soudre - dans la formation d'un «goulot d'Ă©tranglement». Toute la chaĂźne de problĂšmes est la suivante: vous devez vous dĂ©barrasser des «goulots d'Ă©tranglement» â vous devez crĂ©er la «bonne» chaĂźne â vous devez dĂ©terminer la topologie du rĂ©seau. Soit dit en passant, nous ne passerons pas par toutes les combinaisons possibles de la chaĂźne, Ă la recherche d'une chaĂźne sans «goulots d'Ă©tranglement» - c'est trop long, nous ferons plutĂŽt plus intelligemment / plus dĂ©licat:

Remplissez le réseau de trafic - sélectionnez l'un des hÎtes comme source du trafic de diffusion. Sur tous les autres hÎtes, nous commencerons à collecter des statistiques sur le trafic de diffusion reçu. Ensuite, sélectionnez 2 hÎtes non diffusés et commencez à envoyer du trafic unicast du premier hÎte au deuxiÚme hÎte. Selon les statistiques du trafic de diffusion collectées sur les hÎtes en ce moment, on verra que sur certains hÎtes la vitesse de réception du trafic de diffusion a chuté - ces hÎtes, dans ce cas, étaient connectés au bon commutateur. Et sur tous les hÎtes connectés au commutateur gauche, la vitesse de réception du trafic de diffusion n'a pas changé.
La connexion entre les deux commutateurs est devenue un «goulot d'étranglement» et a permis de sélectionner tous les hÎtes connectés au commutateur de droite dans un cluster séparé.
Remarque : Dans les cas ordinaires, il est courant de lutter contre la diffusion de toutes nos forces, en particulier celle qui «utilise toute la bande passante», mais nous avons affaire Ă un rĂ©seau de commutation non gĂ©rĂ© qui peut avoir souffert plus d'une fois d'une tempĂȘte / inondation de diffusion, et au moins une fois la vie veut qu'une telle Ă©mission en profite. Soit dit en passant, il est tout Ă fait possible de remplacer la diffusion par la monodiffusion, seule une telle analyse prendra plus de temps. Pour le transport pneumatique, vous devrez Ă©galement utiliser la monodiffusion jusqu'Ă ce que vous libĂ©riez l'installation qui clone le problĂšme et l'installiez dans chaque centre de commutation : won.
Pour construire la topologie de rĂ©seau correcte, il reste Ă rĂ©pĂ©ter la mĂȘme chose pour toutes les combinaisons possibles de paires orientĂ©es d'hĂŽtes non diffusĂ©s. Que signifie «paires orientĂ©es»? Vous devez d'abord envoyer du trafic unicast du premier hĂŽte vers le second, collecter des statistiques, puis changer de direction (trafic du second vers le premier), puis collecter des statistiques distinctes pour cette option.
Le nombre de combinaisons Ă vĂ©rifier peut ĂȘtre calculĂ© Ă l'aide de la formule n Ă (n - 1) {chaque (n) doit "dire bonjour" Ă tous les autres (n - 1) , mĂȘme s'ils l'ont dĂ©jĂ saluĂ© plus tĂŽt}, oĂč n est le nombre tous les hĂŽtes moins un (hĂŽte de diffusion).
En conséquence, toutes les statistiques collectées sont alimentées à l'entrée d'un algorithme spécial (plus à ce sujet dans l'un des articles suivants), qui construit la topologie du réseau (plus précisément, il en fait plus - il construit immédiatement la chaßne de pairs correcte pour RingSync).
Soit dit en passant, la configuration rĂ©seau minimale Ă analyser consiste en deux commutateurs, chacun ayant deux hĂŽtes connectĂ©s. Quant Ă la vitesse de diffusion et de monodiffusion, le trafic de diffusion peut ĂȘtre maintenu dans la plage de 75% Ă 100% du « dĂ©bit de donnĂ©es net » (dĂ©bit binaire net; recherche sur «Ethernet 100Base-TX»), et de la monodiffusion dans la plage de 80% Ă 100% .
Et que se passe-t-il si vous supprimez l'un des hĂŽtes?
Cela se traduira par un rĂ©seau dans lequel un commutateur auquel 3 hĂŽtes sont connectĂ©s et un autre commutateur est connectĂ© dans le contexte entre l'un des hĂŽtes et le commutateur. Autrement dit, il n'y a qu'un seul commutateur dans le rĂ©seau (insĂ©rĂ© dans la section s'est transformĂ© en un "cavalier" - nous ne le comptons pas), et c'est un cas idĂ©al pour RingSync "le goulot d'Ă©tranglement" ne vient d'oĂč. Puisqu'il n'y a pas de problĂšme, il n'y a rien Ă corriger ïŒ Cong
# LLTR Advanced
Un OVNI est entré et a laissé cet espace ici ? Rappelle l'une des photos du test de QI
Comme il a été écrit ci-dessus, lors de l'utilisation de LLTR Basic, nous devons scanner le réseau n à (n - 1) fois, ce qui nous conduit à O (n 2 ). Pour un petit nombre d'hÎtes, ce n'est pas un problÚme:
- 4 hĂŽtes, n = 3 â 6 balayages;
- 30 hĂŽtes, n = 29 â 812 scans.
Mais si nous avons 200 hĂŽtes, n = 199 â 39 402 analyses. Pire encore ...
Voyons comment nous pouvons améliorer la situation. Groknom deux options simples pour la topologie de l'arbre:
- une étoile de commutateurs;
- connexion série de commutateurs.
# Topologie: «étoile des commutateurs»
Ci-dessous, l'action décrite dans cette image est expliquée étape par étape.
Nous avons 5 commutateurs et 12 hĂŽtes. Les hĂŽtes sont indiquĂ©s par des cercles [â] Ă l'intĂ©rieur du commutateur auquel ils sont connectĂ©s. Un commutateur complĂštement noir est le commutateur «racine».
Nous sĂ©lectionnons l'un des hĂŽtes pour le rĂŽle de la source du trafic de diffusion (reprĂ©sentĂ© dans le diagramme par un cercle [â]).
Si vous utilisez LLTR Basic, alors pour 12 hĂŽtes, n = 11 â vous avez besoin de 110 analyses (itĂ©rations).
Itération 1 . Choisissez l'un des hÎtes (indiqué en bleu
) comme source (src) du trafic unicast et un hĂŽte (indiquĂ© en bleu â ) comme destinataire du trafic (dst) unicast. Commençons, Ă une certaine pĂ©riode, Ă analyser et Ă collecter des statistiques.
Les statistiques recueillies ont montré une diminution de la vitesse du trafic de diffusion sur 9 hÎtes. Pour plus de clarté, la baisse de vitesse sur tous les hÎtes connectés au commutateur est désignée par
.
En fonction de la baisse de vitesse détectée, vous pouvez répartir les hÎtes dans deux clusters:
- jaune (initial) - hÎtes sur lesquels la vitesse de diffusion est restée proche du maximum;
- vert - hÎtes sur lesquels une baisse significative de la vitesse de diffusion a été enregistrée.
Itération 2 . Nous sélectionnerons d'autres hÎtes src et dst unicast, et recommencerons l'analyse et la collecte de statistiques.
La baisse de vitesse est fixée sur 3 hÎtes. Maintenant, ils sont dans le cluster vert , car lors de l'itération précédente, une baisse de vitesse a également été enregistrée sur ces hÎtes. Déplacez ces 3 hÎtes du cluster vert vers le nouveau cluster rouge .
Itération 3 . Encore une fois, sélectionnez les autres hÎtes src et dst unicast, puis recommencez l'analyse et la collecte de statistiques.
La baisse de vitesse est enregistrée sur les 3 autres hÎtes. Maintenant, ils sont dans le cluster vert . Déplacez ces 3 hÎtes du cluster vert vers le nouveau cluster violet .
Conclusion : aprÚs trois itérations sur 110, tous les hÎtes ont été divisés en grappes correspondant à leurs commutateurs. Dans les 107 itérations restantes, aucun nouveau cluster ne sera formé.
C'était un cas idéal - soit nous connaissions la topologie du réseau, soit nous avons eu beaucoup de chance.
# Je me demande quelles pourraient ĂȘtre les options pour la premiĂšre itĂ©ration?
Option 1: «unicast on broadcast sw» . Unicast src est situĂ© sur le mĂȘme commutateur que broadcast src (ainsi que dans l'exemple ci-dessus dans la figure de l'itĂ©ration 1). Unicast dst est situĂ© sur tout autre commutateur (pas de diffusion src).
Dans tous les cas, la rĂ©ponse du rĂ©seau Ă l'analyse est la mĂȘme - une baisse de la vitesse sur tous les commutateurs src non diffusĂ©s. Ceci est comprĂ©hensible - unicast src fusionne au mĂȘme dĂ©but du canal que broadcast src - d'oĂč la baisse de vitesse sur tous les autres commutateurs, et peu importe celui sur lequel le dic unicast est activĂ©.
Option 2: «monodiffusion générale» . Unicast src est situé sur n'importe quel commutateur «non broadcast src». Unicast dst est situé sur tout autre commutateur («not broadcast src» et «not unicast src»).
Dans tous les cas, une baisse de vitesse se produit sur celle des commutateurs sur lesquels se trouvait dst unicast. Le mĂȘme comportement de rĂ©seau Ă©tait Ă l'itĂ©ration 2 et 3 (voir la figure) de l'exemple au dĂ©but de la section.
Option 3: «unicast pour diffuser sw» . Unicast src est situĂ© sur n'importe quel commutateur «non broadcast src» (ainsi que dans l'option 2). Unicast dst est situĂ© sur le mĂȘme commutateur que broadcast src.
Dans ces cas, il n'y a pas de réponse du réseau à l'analyse. Si dans les versions précédentes (1 et 2) un nouveau cluster a été créé, alors dans cette variante de nouveaux clusters ne sont pas créés. C'est en partie mauvais - nous n'obtenons pas de nouvelles informations sur la topologie du réseau (en fait, dans certains cas, et si cette itération n'est pas la premiÚre, vous pouvez obtenir des informations sur l'emplacement de dst de monodiffusion).
Option 4: «unicast in sw» . Unicast src et dst sont situĂ©s sur le mĂȘme commutateur.
Ici aussi, le réseau ne répond pas du tout à l'analyse et il n'y a donc pas de nouveaux clusters.
Le résultat . Les options 1 et 2 sont bonnes, le réseau y répond et nous donne de nouvelles informations sur sa topologie. Et sur la base de ces informations, de nouveaux clusters sont créés.
Les options 3 et 4 ne peuvent que dire que dst unicast est soit sur le mĂȘme commutateur avec src de diffusion, soit sur le mĂȘme commutateur avec src unicast. De plus, ils ne peuvent pas donner des informations complĂštes en une seule itĂ©ration sur l'emplacement exact de dst de monodiffusion - ils seront toujours Ă cĂŽtĂ© de src de diffusion ou de src de monodiffusion. L'emplacement exact ne peut ĂȘtre obtenu qu'en combinant les informations reçues avec des informations provenant d'autres itĂ©rations.
# Le choix de src et dst unicast dans l'exemple était-il aléatoire?
Peut-ĂȘtre que le choix n'Ă©tait pas alĂ©atoire et qu'il y a un motif cachĂ© dedans?
Ok, nous venons de voir comment le rĂ©seau rĂ©pond aux diffĂ©rentes options de numĂ©risation. Rappelez-vous l'exemple du dĂ©but de la section, il est peut-ĂȘtre temps de le regarder sous un «nouvel angle» et de rĂ©pondre Ă la question: ai-je accidentellement choisi unicast src et dst, ou trichĂ©?
Cette image est similaire à l'image du début de la section, la différence est que des choix alternatifs de src unicast ont été ajoutés à chaque itération, et quelque chose à droite ...
Ce «quelque chose» est le calcul de la probabilité de formation d'un nouveau cluster (le nombre d'options dans lesquelles un nouveau cluster sera créé divisé par le nombre d'options dans lesquelles un nouveau cluster sera créé + le nombre d'options qui ne conduisent pas à la création d'un nouveau cluster). Les options ont été calculées par rapport au src unicast fixe et au dst unicast libre. Unicast dst "free" - cela signifie que toutes les options possibles pour son emplacement ont été considérées.
Autrement dit, dans l'exemple, j'ai choisi spécifiquement les options qui avaient la plus grande probabilité de former un nouveau cluster. Malheureusement, en réalité, nous ne pouvons pas utiliser une telle estimation (des probabilités). Pas étonnant à la fin j'ai écrit:
C'était un cas idéal - soit nous connaissions la topologie du réseau, soit nous avons eu beaucoup de chance.
Cependant, la capacité d'évaluer la probabilité de formation d'un nouveau cluster nous est utile ci-dessous.
# Scannez à l'intérieur du cluster, ou utilisez le scan inter-cluster - c'est la question ...
Dans l'exemple ci-dessus, lors de la derniÚre (3e) itération, l'analyse entre les clusters a été utilisée. Est-ce si bon, car au début, ils utilisaient la numérisation à l'intérieur du cluster?
Remarque : Si unicast src et dst se trouvent dans le mĂȘme cluster, il s'agit d'une analyse Ă l'intĂ©rieur du cluster . Si unicast src se trouve dans un cluster et unicast dst dans un autre, il s'agit de l' analyse intercluster .
Si vous regardez les probabilités dans la 3Úme itération, l'analyse intercluster aura 0,60 contre 0,30 pour l'analyse à l'intérieur du cluster. La probabilité semble nous dire «utilisez le balayage intercluster, bro.», Mais cela vaut-il la peine de suivre aveuglément ses conseils?
Remarque : L'utilisation d'un seul type d'analyse (au sein d'un cluster ou d'un intercluster) réduira considérablement le nombre d'itérations.
Si dans l'exemple ci-dessus, Ă partir de la 4Ăšme itĂ©ration, nous commençons Ă scanner uniquement Ă l'intĂ©rieur du cluster , cela prendra 20 itĂ©rations (3 Ă 2 + 3 Ă 2 + 2 Ă 1 + 3 Ă 2) , au total 23 itĂ©rations seront obtenues au lieu de 110 (comme cela a Ă©tĂ© calculĂ© au dĂ©but de la section). Si, Ă partir de la mĂȘme 4Ăšme itĂ©ration, seul le scan intercluster est dĂ©marrĂ© , alors il faudra 87 itĂ©rations (3 Ă (3 + 2 + 3) + 3 Ă (3 + 2 + 3) + 2 Ă (3 + 3 + 3) + 3 Ă (3 + 3 + 2) - 3) , au total 90 itĂ©rations se rĂ©vĂ©leront.
Le balayage intercluster perd sensiblement, de plus, il ne peut pas ĂȘtre utilisĂ© Ă la 1Ăšre itĂ©ration (pour le moment il n'y a qu'un seul cluster). Si nous prĂȘtons attention Ă la 2e itĂ©ration de l'exemple ci-dessus, nous pouvons voir que la derniĂšre option de scan alternative a une probabilitĂ© de former un nouveau cluster de 0,00. Je crois que la rĂ©ponse Ă la question: «Quel type de numĂ©risation cette alternative avait-elle?» Est dĂ©jĂ claire.
# Les plaisirs du balayage parallĂšle
Si, en utilisant l' analyse à l'intérieur d'un cluster , il est possible d'exécuter simultanément une analyse dans tous les clusters, les 20 itérations supplémentaires (3 à 2 + 3 à 2 + 2 à 1 + 3 à 2) seront réduites à 6 itérations (3 à 2). Le scan intercluster peut également bénéficier d'un scan parallÚle.
La question est de savoir si une analyse affectera les résultats d'une autre analyse, exécutée en parallÚle.
Note : ( ), â , ?
: â ; , 2â â .
â 6â . , unicast src dst , 2 . , 2â : â 0.00â.
â â, . , â âŠ
, , . 2â (â unicast on broadcast sw â: unicast src , broadcast src) (âunicast in swâ: unicast src dst ).
â unicast on broadcast sw â , âunicast in swâ, . , âunicast in swâ , unicast src ( â ), 2 .
. , ( , ), . ââ , broadcast src. , , broadcast src , ! .
Note : , unicast src , , ( ), .
: .
IQ âŠ
# : â â
.
unicast ( ) broadcast ( ) , broadcast ( ). 5â , ââ , â . , , , (âŒ), ( ) â (â), .. (â).
.
5 15 . LLTR Basic, 15 , n=14 â 182 .
. 1â , , unicast src , broadcast src, unicast dst broadcast src . Unicast ( ) broadcast broadcast src . ( ). 2â , , unicast dst broadcast src .
. ( ).
3 . broadcast unicast â .
4 . broadcast unicast â .
5 . Unicast src dst broadcast src â , unicast dst ( ). , 2â , , â â.
, , (2 ):
, . 4â ( , , ), 1â .
30 ((4) + (3Ă2 + 3Ă2 + 3Ă2 + 2Ă1 + 3Ă2)) , 182 LLTR Basic.
?
, â . 3â , unicast (âŒ), broadcast , unicast src . , unicast src ( ), , . unicast src , . , , â â .
, , , ? â â âŠ
( ), :
(2 ), ( ).
, â , 1 . â / .
, 1 , ( , ), , 1 , ? ?
: ( ), () . , , 4 (1 + 3 ):
:
: â , ?â â , .
? . ⊠ïŒïŒ
# TL;DR
, âŠ
, , :
- 2 / , â ;
- / , , ( â ).
xkcd, , ïŒïŒ
# / To be continuedâŠ
- OMNeT++ INET [ tutorial ]
- OMNeT++
- OMNeT++ 2
- (â: â â)
: GitHub Pages ;

âŠ
, / .
, , / .
, / .
PS :
( â â ââ (~~), â ( ), ( : â â))
PS
ïŒïŒ URI )
PPS , ïŒïŒ
PPPS , , â . ( ) , / , â ïŒïŒ
PPPPS , .