Zum Hauptinhalt springen

7. Router State Diagram (Router-Zustandsdiagramm)

7. Router State Diagram (Router-Zustandsdiagramm)

Das Router-Verhalten wird durch die folgenden Zustandsübergangsdiagramme formaler spezifiziert.

Ein Router kann sich in Bezug auf ein einzelnes angeschlossenes Netzwerk in einem von zwei möglichen Zuständen befinden:

  • "Querier" (Abfragender), wenn dieser Router dazu bestimmt ist, IGMP Membership Queries in diesem Netzwerk zu übertragen.

  • "Non-Querier" (Nicht-Abfragender), wenn ein anderer Router dazu bestimmt ist, IGMP membership Queries in diesem Netzwerk zu übertragen.

Die folgenden drei Ereignisse können dazu führen, dass der Router den Zustand ändert:

  • "query timer expired" (Abfragetimer abgelaufen) tritt auf, wenn der für die Abfrageübertragung eingestellte Timer abläuft.

  • "query received from a router with a lower IP address" (Abfrage von einem Router mit einer niedrigeren IP-Adresse empfangen) tritt auf, wenn eine IGMP Membership Query von einem Router im selben Netzwerk mit einer niedrigeren IP-Adresse empfangen wird.

  • "other querier present timer expired" (Anderer Abfragender Anwesend Timer abgelaufen) tritt auf, wenn der Timer abläuft, der gesetzt wurde, um die Anwesenheit eines anderen Abfragenden mit einer niedrigeren IP-Adresse im Netzwerk zu vermerken.

Es gibt drei Aktionen, die als Reaktion auf die oben genannten Ereignisse ergriffen werden können:

  • "start general query timer" (Starten des allgemeinen Abfragetimers) für das angeschlossene Netzwerk.

  • "start other querier present timer" (Starten des Anderer Abfragender Anwesend Timers) für das angeschlossene Netzwerk [Other Querier Present Interval].

  • "send general query" (Senden der allgemeinen Abfrage) im angeschlossenen Netzwerk. Die General Query wird an die All-Systems-Gruppe (224.0.0.1) gesendet und hat eine Max Response Time von [Query Response Interval].

                                      --------------------------------
_______|________ gen. query timer |
--------- | | expired |
| Initial |---------------->| | (send general query, |
--------- (send gen. q., | | set gen. q. timer) |
set initial gen. q. | |<----------------------
timer) | Querier |
| |
-----| |<---
| | | |
| |________________| |
query received from a | | other querier
router with a lower | | present timer
IP address | | expired
(set other querier | ________________ | (send general
present timer) | | | | query,set gen.
| | | | q. timer)
| | | |
---->| Non |----
| Querier |
| |
| |
---->| |----
| |________________| |
| query received from a |
| router with a lower IP |
| address |
| (set other querier |
| present timer) |
---------------------------

Ein Router sollte im Initial-Zustand auf allen angeschlossenen Netzwerken starten und sofort in den Querier-Zustand wechseln.

Darüber hinaus kann sich ein Router, um zu verfolgen, welche Gruppen Mitglieder haben, in Bezug auf eine einzelne IP-Multicast-Gruppe in einem einzelnen angeschlossenen Netzwerk in einem von vier möglichen Zuständen befinden:

  • "No Members Present" (Keine Mitglieder anwesend) Zustand, wenn keine Hosts im Netzwerk Berichte für diese Multicast-Gruppe gesendet haben. Dies ist der Anfangszustand für alle Gruppen auf dem Router; er erfordert keinen Speicher im Router.

  • "Members Present" (Mitglieder anwesend) Zustand, wenn ein Host im Netzwerk einen Membership Report für diese Multicast-Gruppe gesendet hat.

  • "Version 1 Members Present" (Version 1 Mitglieder anwesend) Zustand, wenn ein IGMPv1-Host im Netzwerk einen Version 1 Membership Report für diese Multicast-Gruppe gesendet hat.

  • "Checking Membership" (Mitgliedschaft prüfen) Zustand, wenn der Router eine Leave Group Nachricht empfangen hat, aber noch keinen Membership Report für die Multicast-Gruppe gehört hat.

Es gibt sechs signifikante Ereignisse, die Router-Zustandsübergänge verursachen können:

  • "v2 report received" (v2-Bericht empfangen) tritt auf, wenn der Router einen Version 2 Membership Report für die Gruppe auf der Schnittstelle empfängt. Um gültig zu sein, muss die Report-Nachricht mindestens 8 Oktette lang sein und eine korrekte IGMP-Prüfsumme haben.

  • "v1 report received" (v1-Bericht empfangen) tritt auf, wenn der Router einen Version 1 Membership Report für die Gruppe auf der Schnittstelle empfängt. Es gelten dieselben Gültigkeitsanforderungen.

  • "leave received" (Verlassen empfangen) tritt auf, wenn der Router eine IGMP Group Leave Nachricht für die Gruppe auf der Schnittstelle empfängt. Um gültig zu sein, muss die Leave-Nachricht mindestens 8 Oktette lang sein und eine korrekte IGMP-Prüfsumme haben.

  • "timer expired" (Timer abgelaufen) tritt auf, wenn der für eine Gruppenmitgliedschaft eingestellte Timer abläuft.

  • "retransmit timer expired" (Wiederholungstimer abgelaufen) tritt auf, wenn der Timer abläuft, der für die Wiederholung einer gruppenspezifischen Membership Query eingestellt wurde.

  • "v1 host timer expired" (v1-Host-Timer abgelaufen) tritt auf, wenn der Timer abläuft, der gesetzt wurde, um die Anwesenheit von Version 1 Hosts als Gruppenmitglieder zu vermerken.

Es gibt sechs mögliche Aktionen, die als Reaktion auf die oben genannten Ereignisse ergriffen werden können:

  • "start timer" (Timer starten) für die Gruppenmitgliedschaft auf der Schnittstelle - setzt auch den Timer auf seinen Anfangswert [Group Membership Interval] zurück, wenn der Timer gerade läuft.

  • "start timer*" (Timer starten*) für die Gruppenmitgliedschaft auf der Schnittstelle - diese alternative Aktion setzt den Timer auf [Last Member Query Interval] * [Last Member Query Count], wenn dieser Router ein Querier ist, oder auf die [Max Response Time] im Paket * [Last Member Query Count], wenn dieser Router ein Non-Querier ist.

  • "start retransmit timer" (Wiederholungstimer starten) für die Gruppenmitgliedschaft auf der Schnittstelle [Last Member Query Interval].

  • "start v1 host timer" (v1-Host-Timer starten) für die Gruppenmitgliedschaft auf der Schnittstelle, setzt auch den Timer auf seinen Anfangswert [Group Membership Interval] zurück, wenn der Timer gerade läuft.

  • "send group-specific query" (gruppenspezifische Abfrage senden) für die Gruppe im angeschlossenen Netzwerk. Die Group-Specific Query wird an die abgefragte Gruppe gesendet und hat eine Max Response Time von [Last Member Query Interval].

  • "notify routing +" (Routing benachrichtigen +) benachrichtigt das Routing-Protokoll, dass Mitglieder dieser Gruppe in diesem verbundenen Netzwerk vorhanden sind.

  • "notify routing -" (Routing benachrichtigen -) benachrichtigt das Routing-Protokoll, dass keine Mitglieder dieser Gruppe mehr in diesem verbundenen Netzwerk vorhanden sind.

Das Zustandsdiagramm für einen Router im Querier-Zustand folgt:

                              ________________
----------------------------| |<-----------------------
| | |timer expired |
| timer expired| |(notify routing -, |
| (notify routing -)| No Members |clear rxmt tmr) |
| ------->| Present |<------- |
| | | | | |
|v1 report rec'd | | | | ------------ |
|(notify routing +, | |________________| | | rexmt timer| |
| start timer, | | | | expired | |
| start v1 host | v2 report received| | | (send g-s | |
| timer) | (notify routing +,| | | query, | |
| | start timer)| | | st rxmt | |
| __________|______ | _____|_|______ tmr)| |
| | |<------------ | | | |
| | | | |<----- |
| | | v2 report received | | |
| | | (start timer) | | |
| | Members Present |<-------------------| Checking | |
| ----->| | leave received | Membership | |
| | | | (start timer*, | | |
| | | | start rexmt timer,| | |
| | | | send g-s query) | | |
| | --->| |------------------->| | |
| | | |_________________| |______________| |
| | |v2 report rec'd | | | |
| | |(start timer) | |v1 report rec'd |v1 report rec'd |
| | ---------------- |(start timer, |(start timer, |
| |v1 host | start v1 host timer) | start v1 host |
| |tmr ______________V__ | timer) |
| |exp'd | |<---------------------- |
| ------| | |
| | Version 1 |timer expired |
| | Members Present |(notify routing -) |
| | |-------------------------------------------
| | |<--------------------
------->|_________________| v1 report rec'd |
| v2 report rec'd | | (start timer, |
| (start timer) | | start v1 host timer) |
----------------- --------------------------

Das Zustandsdiagramm für einen Router im Non-Querier-Zustand ist ähnlich, aber Non-Queriers senden keine Nachrichten und werden nur durch den Empfang von Nachrichten gesteuert. Beachten Sie, dass es Non-Queriers egal ist, ob eine Membership Report Nachricht Version 1 oder Version 2 ist.

                              ________________
| |
| |
timer expired| |timer expired
(notify routing -)| No Members |(notify routing -)
--------->| Present |<---------
| | | |
| | | |
| | | |
| |________________| |
| | |
| |report received |
| |(notify routing +,|
| | start timer) |
________|________ | ________|________
| |<--------- | |
| | report received | |
| | (start timer) | |
| Members Present |<-------------------| Checking |
| | g-s query rec'd | Membership |
| | (start timer*) | |
---->| |------------------->| |
| |_________________| |_________________|
| report received |
| (start timer) |
-----------------