-
GEBIET DER ERFINDUNG
-
Die vorliegenden erfinderischen Konzepte betreffen allgemein ein in einem Rechenzentrum realisiertes Verbindungsschichtprotokoll (link layer protocol). Genauer betreffen die vorliegenden erfinderischen Konzepte die Fragmentierung eines „Link Layer Discovery Protocol”(LLDP)-Paketes, das eine Vielzahl von „Typ-Länge-Wert”-Elementen (type-length-values (TLVs)) aufweist.
-
HINTERGRUND
-
Bei LLDP handelt es sich um ein allgemein bekanntes Nachbarschaftserkennungsprotokoll, mit dem Ethernet-Netzwerkeinheiten benachbarten Elementen Topologieinformationen, wie beispielsweise eine Einheitenkonfiguration und Identifikationseinzelheiten, bekannt geben können. Zum Beispiel kann ein Ethernet-Blade-Switch anderen LLDP-Stationen im selben LAN das Vorhandensein seiner Anschlüsse, wichtige Fähigkeiten und einen aktuellen Status bekanntgeben. LLDP-Übertragungen treten auf Anschlüssen in regelmäßigen Intervallen auf oder wann immer es eine relevante Änderung ihres Status gibt. Der Switch kann auch von benachbarten LLDP-fähigen Netzwerkeinheiten bekanntgegebene LLDP-Informationen empfangen. Die Informationen werden über eine Vielzahl von TLVs ausgetauscht, die während der Übertragung in einem LLDP-Paket bereitgestellt werden.
-
Mit der fortschreitenden Entwicklung von Rechenzentrumstechnologien hat sich die Anzahl von TLVs in einem LLDP-Paket gemeinsam mit der in den TLVs enthaltenen Informationsmenge erhöht. Die maximale Rahmengröße für ein Übertragen eines LLDP-Paketes über ein Ethernet-Netzwerk beträgt jedoch 1522 Byte. Somit ist die in einer gegebenen einzelnen LLDP-Instanz übertragene Anzahl von TLVs begrenzt.
-
KURZDARSTELLUNG
-
In einem Aspekt weist die Erfindung ein Verfahren zum Austauschen von Netzwerkeinheiteninformationen zwischen Netzwerkeinheiten auf. Ein Datenaustausch wird zwischen einer ersten Netzwerkeinheit und einer zweiten Netzwerkeinheit gemäß einem „Link Layer Discovery Protocol” (LLDP) hergestellt. Das Verfahren weist weiterhin ein Ausgeben einer LLDP-Bekanntgabenachricht im Datenaustausch von der zweiten Netzwerkeinheit zur ersten Netzwerkeinheit auf. Das Verfahren weist weiterhin ein Ermitteln durch die erste Netzwerkeinheit auf, ob die zweite Netzwerkeinheit fragmentierte Pakete verarbeitet, indem die LLDP-Bekanntgabenachricht nach einem Fragmentierungs-„Zeit-Länge-Wert”(TLV)-Feld durchsucht wird. Das Verfahren weist weiterhin als Reaktion auf ein Feststellen, dass die LLDP-Bekanntgabenachricht das Fragmentierungs-TLV-Feld enthält, ein Ausgeben einer Vielzahl von Paketfragmenten von der zweiten Netzwerkeinheit zur ersten Netzwerkeinheit auf.
-
In einem weiteren Aspekt weist die Erfindung ein Verfahren zum Verarbeiten von LLDP-Paketfragmenten auf. Das Verfahren weist weiterhin ein Empfangen eines Fragmentierungs-TLV-Feldes auf, das angibt, dass eine übertragende Netzwerkeinheit eingerichtet ist, eine Vielzahl von Paketfragmenten durch eine Peer-Netzwerkeinheit auszugeben. Das Verfahren weist weiterhin ein Ermitteln einer Gesamtanzahl von Paketfragmenten vom Fragmentierungs-TLV-Feld auf. Das Verfahren weist weiterhin ein Empfangen der Vielzahl von Paketfragmenten von der übertragenden Netzwerkeinheit durch die Peer-Netzwerkeinheit auf. Das Verfahren weist weiterhin ein Wiederzusammensetzen der empfangenen Vielzahl von Paketfragmenten durch die Peer-Netzwerkeinheit auf.
-
In noch einem weiteren Aspekt weist die Erfindung ein LLDP-Fragmentierungssystem einer Netzwerkeinheit auf. Das LLDP-Fragmentierungssystem enthält einen Fragmentbiterzeuger, der ein Fragmentbit setzt, das angibt, dass das LLDP-Fragmentierungssystem eingerichtet ist, LLDP-Paketfragmente zu verarbeiten, und einen Fragmentverarbeiter, der die LLDP-Paketfragmente verarbeitet.
-
In noch einem weiteren Aspekt weist die Erfindung ein Computerprogrammprodukt zum Austauschen von Netzwerkeinheiteninformationen zwischen Netzwerkeinheiten auf. Das Computerprogrammprodukt weist ein computerlesbares Speichermedium mit darauf ausgebildetem computerlesbarem Programmcode auf. Der computerlesbare Programmcode weist computerlesbaren Programmcode auf, der eingerichtet ist, einen Datenaustausch zwischen einer ersten Netzwerkeinheit und einer zweiten Netzwerkeinheit gemäß einem „Link Layer Discovery Protocol” (LLDP) herzustellen. Der computerlesbare Programmcode weist weiterhin einen computerlesbaren Programmcode auf, der eingerichtet ist, eine LLDP-Bekanntgabe-Nachricht im Datenaustausch von der zweiten Netzwerkeinheit zur ersten Netzwerkeinheit auszugeben. Der computerlesbare Programmcode weist weiterhin einen computerlesbaren Programmcode auf, der eingerichtet ist, durch die erste Netzwerkeinheit zu ermitteln, ob die zweite Netzwerkeinheit fragmentierte Pakete verarbeitet, indem die LLDP-Bekanntgabenachricht nach einem Fragmentierungs-„Zeit-Länge-Wert”(TLV)-Feld durchsucht wird. Der computerlesbare Programmcode weist weiterhin einen computerlesbaren Programmcode auf, der eingerichtet ist, als Reaktion auf ein Feststellen, dass die LLDP-Bekanntgabenachricht das Fragmentierungs-TLV-Feld enthält, eine Vielzahl von Paketfragmenten von der zweiten Netzwerkeinheit zur ersten Netzwerkeinheit auszugeben.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die vorstehenden und weitere Vorteile dieser Erfindung können durch Bezugnahme auf die folgende Beschreibung in Verbindung mit den begleitenden Zeichnungen besser verstanden werden, in denen gleiche Bezugszeichen in verschiedenen Figuren gleiche strukturelle Elemente und Merkmale angeben. Die Zeichnungen sind nicht notwendigerweise maßstabsgerecht, stattdessen kann mehr Wert auf ein Veranschaulichen der Grundgedanken der Erfindung gelegt worden sein.
-
1 zeigt ein Blockschaubild einer Rechenzentrumsumgebung, in der Ausführungsformen der vorliegenden erfinderischen Konzepte verwendet werden können;
-
2 zeigt ein Blockschaubild eines in einem Ethernet-Rahmen gekapselten LLDP-Pakets gemäß einer Ausführungsform;
-
3 zeigt ein Ablaufschaubild eines Verfahrens zum Fragmentieren eines LLDP-Pakets gemäß einer Ausführungsform;
-
4 zeigt ein Ablaufschaubild eines Verfahrens zum Verarbeiten von LLDP-Paketfragmenten gemäß einer Ausführungsform;
-
5 zeigt ein Blockschaubild eines LLDP-Paketaustausches zwischen dem LLDP-Fragmentiermodul des ersten Switch und dem LLDP-Fragmentiermodul des zweiten Switch von 1 gemäß einer Ausführungsform;
-
6 zeigt ein weiteres Blockschaubild eines LLDP-Paketaustausches zwischen dem LLDP-Fragmentiermodul des ersten Switch und dem LLDP-Fragmentiermodul des zweiten Switch von 1 gemäß einer Ausführungsform; und
-
7 zeigt gemäß einer Ausführungsform ein Blockschaubild einer Vielzahl von Paketfragmenten, die zwischen dem ersten Switch und dem zweiten Switch von 1 ausgetauscht werden.
-
DETAILLIERTE BESCHREIBUNG
-
In der folgenden Beschreibung werden spezifische Details dargelegt, obwohl für den Fachmann ersichtlich sein sollte, dass die Systeme und Verfahren ohne zumindest manche der Details ausgeführt werden können. In manchen Beispielen werden bekannte Merkmale oder Prozesse nicht im Detail beschrieben, um die vorliegende Erfindung nicht zu verschleiern.
-
Ein LLDP-Paket mit einer umfangreichen Anzahl von TLVs erhöht die Gefahr eines Rahmenausfalls oder Datenverlusts während einer Übertragung, insbesondere wenn die vereinte Größe der TLVs eine Ethernet-Rahmengröße, d. h. 1522 Byte, überschreitet. Dies stellt insbesondere in Rechenzentrumsumgebungen eine Herausforderung dar, wo Ethernet-Anschlussdichten hoch sind und eine große Anzahl von TLVs zum Austausch von den Ethernet-Anschlüssen zugehörigen Daten erforderlich ist. Rechenzentren enthalten zudem üblicherweise Virtualisierungsanwendungen, die viele physische E/A-Verbindungen pro Server erfordern. Gleichermaßen ist eine große Anzahl von TLVs für den Austausch solcher Daten erforderlich.
-
Ein Ansatz zum Aufnehmen einer erhöhten Anzahl von TLVs liegt darin, die LLDP-Zustandsmaschine in der übertragenden Netzwerk-Brücke (bridge), dem übertragenden Netzwerk-Router, Switch oder der zugehörigen Netzwerkeinheit zu verändern, so dass zum Beispiel der LLDP-Rahmen im Hinblick auf die Anzahl von TLVs modifiziert wird. Die Rückwärtskompatibilität zwischen beispielsweise LLDP-Peers, einem Endstationsserver und einer Brücke kann jedoch nicht sichergestellt werden.
-
In einer kurzen Übersicht werden ein Verfahren und ein System zum Aufteilen der einem LLDP-Paket zugeordneten TLVs in eine Vielzahl von LLDP-Fragmenten bereitgestellt. Jedes fragmentierte Paket wird als ein unabhängiges LLDP-Paket behandelt. Jedes fragmentierte Paket enthält ein Fragmentierungs-TLV, das Informationen enthält, die bei Empfang durch eine als ein LLDP-Peer bezeichnete Zielnetzwerkeinheit für eine Wiederzusammensetzung notwendig sind. Auf diese Weise kann der Peer auf den Empfang aller Fragmente warten, bevor die TLVs der Pakete so verarbeitet werden, als ob die Fragmente Teil einer einzigen LLDP-Instanz wären.
-
1 zeigt ein Blockschaubild einer Rechenzentrumsumgebung 10, in der Ausführungsformen der vorliegenden erfinderischen Konzepte verwendet werden können. Die Rechenzentrumsumgebung 10 enthält Host-Computer 12A, 12B (allgemein 12), von denen jeder über eine Netzwerkkonnektivitätseinheit, zum Beispiel einen Zugangs-Switch 16A, 16B (allgemein 16), in Datenaustausch mit einem Netzwerk 14 steht. Obwohl nicht gezeigt, kann die Rechenzentrumsumgebung 10 weitere Netzwerkeinheiten, wie beispielsweise Brücken, Router, Aggregator-Switches, Zugangs-Switches und Ähnliches, enthalten, die zwischen die Zugangs-Switches 16 und das Netzwerk 14 und/oder andere allgemein bekannte Rechenzentrumsausstattung gestellt sind. Bei dem Netzwerk 14 kann es sich um eine direkt verbundene Verbindung, einen Hub, ein Schicht-2-Netzwerk usw. zwischen den Zugangs-Switches 16A, 16B handeln. Zum Beispiel kann das Netzwerk 14 eine Verbindung wie beispielsweise ein Lichtleiterkabel, ein Kupferkabel und Ähnliches enthalten.
-
Bei jedem Host-Computer 12 kann es sich um eine Ausführungsform einer gegenständlichen Datenverarbeitungseinheit wie beispielsweise einen Server oder ein Blade handeln. Jeder Host-Computer 12 kann alleine oder in einem Gehäuse mit anderen Host-Computern angeordnet sein, zum Beispiel wie bei einem Rack-Server oder einem Blade-Server. Die Host-Computer 12 können eine oder mehrere Verarbeitungseinheiten wie beispielsweise eine CPU, eine Speichereinheit wie beispielsweise RAM, RAM oder ein anderes Speichermedium zum Speichern von Programmcode, und eine Netzwerkschnittstelle (network interface (NIC)) enthalten, die mit jedem über einen oder mehrere Busse, Anschlüsse, Adapter und ähnliche dem Fachmann bekannte Elemente Daten austauschen. Auf den Host-Computern 12 kann ein (nicht gezeigtes) Virtualisierungssystem ausgeführt werden, das optional einen Hypervisor oder einen Verwalter für virtuelle Maschinen (virtual machine manager (VMM)) enthalten kann. In anderen Ausführungsformen kann es sich bei den Host-Computern 12 um nicht-virtualisierte Server oder Server-Blades handeln.
-
Der Zugangs-Switch 16A kann eine oder mehrere Verarbeitungseinheiten 24A, wie beispielsweise eine CPU und eine Speichereinheit 28A wie beispielsweise RAM, RAM oder ein anderes Speichermedium zum Speichern von Programmcode enthalten, zum Beispiel Programmcode, der einer LLDP-Zustandsmaschine 20A und einem Fragmentiermodul 18A zugehörig ist. Der Zugangs-Switch 16A kann als ein Ethernet-Switch, für ein Switching von Host-Computern zwischen Anschlüssen 26A, 32A, zum Beispiel Uplink- und Downlink-Anschlüsse, zwischen auf demselben Host-Computer 12 ausgeführten virtuelle Maschinen oder eine Kombination davon realisiert sein. Eine Beispielrealisierung einer physischen Verbindung 32A zwischen dem Host-Computer 12A und dem Zugangs-Switch 16A stellt eine 10-Gb-Ethernet-Verbindung dar. Der Zugangs-Switch 16A kann eine identische oder ähnliche Konfiguration wie der Zugangs-Switch 16A aufweisen.
-
Die LLDP-Zustandsmaschine 20A erzeugt ein LLDP-Paket 22, das anderen LLDP-konformen Einheiten auf dem Netzwerk 14, zum Beispiel dem Zugangs-Switch 16B, Details über den Host-Computer 12A, wie beispielsweise eine Einheitenkonfiguration, Identifikationsinformationen und Ähnliches, bekannt gibt. Das LLDP-Fragmentiermodul 18A des Zugangs-Switch 16A erzeugt abhängig von der Größe und Anzahl von TLVs im LLDP-Paket 22 aus dem LLDP-Paket 22 ein oder mehrere LLDP-Fragmente. Das LLDP-Paket 22 wird über eine Verbindung 30 oder einen Kanal an einen LLDP-Peer übertragen, d. h. den Zugangs-Switch 16B. Das LLDP-Fragmentiermodul 18B setzt die empfangenen LLDP-Fragmente wieder zusammen, um nachfolgende Operationen, wie z. B. ein Aufbauen einer Topologiekarte, durchzuführen.
-
2 zeigt ein detailliertes Blockschaubild von in einem Ethernet-Rahmen 100 gekapselten LLDP-Paketdaten 124 gemäß einer Ausführungsform. Das in 1 gezeigte LLDP-Paket 22 kann in den Nutzdaten des Ethernet-Rahmens 100 enthalten sein, die als LLDP-Paketdaten 124 bezeichnet werden. Die LLDP-Paketdaten 124 werden durch den Host-Computer 12A im Ethernet-Rahmen 100 übertragen, um seine Identität, Fähigkeiten und Nachbarn bekannt zu geben.
-
Der Ethernet-Rahmen 100 enthält eine Präambel 102, ein Quell-MAC-Adressfeld 104, ein Ziel-MAC-Adressfeld 106 und ein Rahmenprüfsequenz(frame check sequence (FCS))-Feld 122, bei denen es sich um allgemein bekannte Ethernet-Rahmenelemente handelt und die aus Gründen der Kürze nicht beschrieben werden. Ebenso ist vom Ethertyp-Feld 108 allgemein bekannt, dass es angibt, welches Protokoll, d. h. LLDP, in den Nutzdaten des Ethernet-Rahmens 100 gekapselt ist.
-
Die LLDP-Paketdaten 124 enthalten mehrere Bekanntgabenachrichten, von denen jede in einem TLV enthalten ist. Die TLVs der LLDP-Paketdaten 124 enthalten einen Satz von Pflicht-TLVs 126, und zwar ein Gehäuse-ID-TLV 110, ein Anschluss-ID-TLV 112, ein Lebensdauer(time-to-live (TTL))-TLV 114 und ein Ende-der-LLDP-PDU 120 TLV. Die Pflicht-TLVs sind allgemein bekannt und werden daher hierin aus Gründen der Kürze nicht detailliert beschrieben.
-
Die LLDP-Paketdaten 124 enthalten ein Fragmentierungs-TLV 116, oder Fragment-TLV, bei dem es sich in einer Ausführungsform um ein Pflicht-TLV 126 handelt, wenn eine LLDP-Peer-Beziehung zwischen der übertragenden Einheit der Netzwerkeinheit und der empfangenden Netzwerkeinheit hergestellt wird. In einer anderen Ausführungsform wird keine LLDP-Peer-Beziehung hergestellt, wobei das TLV 126 nicht übertragen wird. Das Fragment-TLV 116 enthält Informationen bezüglich der Fragmentierung eines LLDP-Pakets. Das Fragment-TLV 116 kann als Teil eines LLDP-Paketes an einen Peer-Anschluss ausgegeben werden, der das LLDP-Paket als ein fragmentiertes Paket identifiziert, das heißt ein Paket, dass Inhalte wie beispielsweise TLVs in mehreren Paketen bereitstellt, um sicherzustellen, dass die TLVs eine maximale Rahmengröße von 1522 Byte nicht überschreiten. Auf diese Weise kann das Pflicht-Fragment-TLV 116 fragmentierte Paketinformationen tragen, so dass im Falle eines Empfangs des Fragment-TLV 116 durch einen Peer-Anschluss der empfangende Switch 16B bestätigt, dass eine Fragmentierung der LLDP-Paketdaten 124 aufgetreten ist und auf die verbleibenden Paketfragmente wartet, bevor die Fragmente im LLDP-Fragmentiermodul 18B wieder zusammengesetzt werden.
-
Das Fragment-TLV 116 enthält eine Sequenznummer (seq_num) 130, eine Gesamtfragmentanzahl (frag_total) 132 und eine Fragment-ID (frag_ID) 134. Die Sequenznummer 130 gibt eine bestimmte LLDP-Instanz an. Dementsprechend besitzen alle Fragmente in einer LLDP-Instanz dieselbe Sequenznummer. Die Gesamtfragmentanzahl 132 bezieht sich auf die Anzahl von Fragmenten in einer LLDP-Instanz. Die Anzahl von Fragmenten kann durch die übertragende Netzwerkeinheit ermittelt werden, welche die Größe der vereinten TLVs durch eine maximale Nutzdatengröße, d. h. 1522 Byte, teilt. Bei der Fragment-ID 134 handelt es sich um eine Variable, die jedes Fragment in einer LLDP-Instanz eindeutig definiert.
-
3 zeigt ein Ablaufschaubild eines Verfahrens 300 zum Fragmentieren eines LLDP-Pakets gemäß einer Ausführungsform. Beim Beschreiben des Verfahrens 300 wird Bezug auf 1 und 2 genommen. Einiges des Verfahrens 300 oder das gesamte Verfahren 300 kann auf den in 1 gezeigten Zugangs-Switches 16 durchgeführt werden.
-
In Schritt 302 gibt der als ein erster Switch bezeichnete Zugangs-Switch 16A seinen Peers über LLDP bekannt, dass der erste Switch 16A eine Vielzahl von LLDP-Paketfragmenten für eine gegebene LLDP-Instanz verarbeiten kann. Die Fragmentierungs-TLV-Bekanntgabe kann ein Fragment-TLV 116 mit Pseudo-Attributen enthalten, zum Beispiel eine Sequenznummer (seq_num), eine Gesamtfragmentanzahl (frag_total) und eine Fragment-ID (frag_ID oder frag_num), die jeweils einen Wert von „0” besitzen. In einer Ausführungsform handelt es sich bei dem mit der Bekanntgabe gesendeten Fragment-TLV 116 um ein Pflicht-TLV. Wenn jeder der Switches 16A, 16B an jeden anderen ein Pflicht-Fragment-TLV in einem LLDP-Paket sendet, wird ein Datenaustausch hergestellt, wobei jeder der Switches 16A, 16B die Übertragung und den Empfang von LLDP-Fragmenten unterstützt.
-
In Schritt 304 erfolgt ein Ermitteln, ob der als ein zweiter Switch bezeichnete Switch 16B LLDP-Paketfragmentierung unterstützt. Zum Beispiel kann der erste Switch 16A aus einer in Schritt 302 vom zweiten Switch empfangenen LLDP-Bekanntgabe ermitteln, ob der zweite Switch 16B LLDP-Paketfragmentierung unterstützt, indem festgestellt wird, ob die LLDP-Bekanntgabe ein Fragment-TLV enthält. Wenn der zweite Switch 16B ein Fragment-TLV ausgibt, wird festgestellt, dass der zweite Switch 16B LLDP-Paketfragmentierung unterstützt, und der zweite Switch kann einen Satz von LLDP-Fragmenten an den ersten Switch 16A ausgeben (Schritt 308). Zum Beispiel können Paketfragmente erzeugt werden, wenn eine ermittelte TLV-Datennutzlast eine maximale Rahmengröße, zum Beispiel 1522 Byte, überschreitet. Jedes Paketfragment wird als ein unabhängiges Paket an den ersten Switch 16A gesendet. Die Paketfragmente können von derselben oder ähnlicher Größe oder von unterschiedlicher Größe sein.
-
Wenn festgestellt wird, dass der zweite Switch 16B nicht für eine Paketfragmentierung eingerichtet ist, zum Beispiel, wenn der zweite Switch 16B ein LLDP-Paket an den ersten Switch 16A sendet, dem ein Fragment-TLV fehlt, tritt in Schritt 308 in einem Austausch zwischen dem ersten Switch 16A und dem zweiten Switch 16B keine Paketfragmentierung auf. Dementsprechend werden alle eine einzelne LLDP-Instanz betreffenden TLVs als ein einziges Paket übertragen.
-
4 zeigt ein Ablaufschaubild eines Verfahrens 400 zum Verarbeiten von LLDP-Paketfragmenten gemäß einer Ausführungsform. Beim Beschreiben des Verfahrens 300 kann auf 1 bis 3 Bezug genommen werden. Einiges oder das gesamte Verfahren 400 kann auf den in 1 gezeigten Switches 16 durchgeführt werden.
-
Eine LLDP-Peer-Beziehung wird zwischen dem ersten Switch 16A und dem zweiten Switch 16B in einer allgemein bekannten Weise hergestellt, zum Beispiel während des Austausches von LLDP-Bekanntgaben.
-
In Schritt 402 empfängt und verarbeitet der erste Switch 16A ein durch den zweiten Switch 16B gesendetes Fragment-TLV. Der erste Switch 16A kann das empfangene Fragment-TLV anhand der frag_ID identifizieren, die einen Wert von 0 aufweist, d. h. frag_ID=0. Der erste Switch 16A speichert (Schritt 404) den frag_total-Wert und den seq_num-Wert, die mit dem Fragment-TLV bereitgestellt werden.
-
In Schritt 406 empfängt der erste Switch 16A ein LLDP-Fragment vom zweiten Switch 16B.
-
In Schritt 408 werden im empfangenen LLDP-Fragment bereitgestellte Daten gespeichert, wobei solche Daten den mit dem LLDP-Fragment bereitgestellten frag_total-Wert sowie mit dem LLDP-Fragment bereitgestellte TLV-Daten enthalten.
-
In Schritt 410 erfolgt ein Vergleich zwischen dem frag_total-Wert und der frag_ID des LLDP-Fragments. Wenn es eine Übereinstimmung gibt, d. h. der frag_total-Wert und der frag_ID-Wert derselbe sind, setzt in Schritt 412 der erste Switch alle empfangenen LLDP-Pakete mit derselben seq_num wieder zusammen. Hier können relevante Anwendungen die TLV-Daten empfangen. Zum Beispiel kann einer VLAN-Datenbank ein VLAN-TLV bereitgestellt werden, einem FCoE-Modul kann ein FCoE-TLV bereitgestellt werden und so weiter.
-
5 zeigt ein Blockschaubild, das gemäß einer Ausführungsform einen LLDP-Paketaustausch zwischen dem LLDP-Fragmentiermodul 18A des ersten Switch 16A und dem LLDP-Fragmentiermodul 18B des zweiten Switch 16B von 1 veranschaulicht. Der LLDP-Paketaustausch kann gemäß dem Verfahren 300 und/oder dem Verfahren 400 durchgeführt werden, die hierin beschrieben sind.
-
Wie in 5 gezeigt, enthält das als ein erstes LLDP-Fragmentiermodul bezeichnete LLDP-Fragmentiermodul 18A einen Bekanntgabeübertrager 52, einen Fragmentbiterzeuger 54 sowie einen Fragmentempfänger 56, und das als ein zweites LLDP-Fragmentiermodul bezeichnete LLDP-Fragmentiermodul 18B enthält einen Bekanntgabeempfänger 64, einen Fragmentübertrager 66 und einen Fragmentbiterzeuger 68. Obwohl in 5 nicht gezeigt, sind diese Elemente der LLDP-Fragmentiermodule 18A und 18B vorzugsweise im selben Fragmentiermodul enthalten, so dass ein Switch 16 Paketfragmente sowohl übertragen als auch empfangen kann.
-
In Schritt 502 wird über den Bekanntgabeübertrager 52 des ersten LLDP-Fragmentiermoduls 18A eine Fragmentierungs-TLV-Bekanntgabe ausgegeben und durch den Bekanntgabeempfänger 64 des zweiten LLDP-Fragmentiermoduls 18B empfangen. Die Fragmentierungs-TLV-Bekanntgabe kann in einer LLDP-Dateneinheit (LLDP Data Unit (LLDPDU)) im TLV-Format gekapselt sein.
-
In Schritt 504 setzt der Fragmentbiterzeuger 68 des zweiten LLDP-Fragmentiermoduls 18B ein Fragmentbit, wodurch es dem zweiten LLDP-Fragmentiermodul 18B ermöglicht wird, LLDP-Paketfragmente zu erzeugen. Das Fragmentbit des ersten LLDP-Fragmentiermoduls 18A wird standardmäßig gesetzt, wodurch ein Erzeugen von LLDP-Bekanntgaben ermöglicht wird, die ein Pseudo-Fragment-TLV-Feld enthalten. Das Pseudo-Fragment-TLV-Feld enthält vorzugsweise eine Sequenznummer, eine Gesamtfragment- und eine Fragmentnummer, die jeweils einen Wert von 0 besitzen.
-
Der Fragmentübertrager 66 des zweiten LLDP-Fragmentiermoduls 18B erzeugt ein anfängliches LLDP-Paket, das ein Fragment-TLV enthält, und gibt das LLDP-Paket an das erste LLDP-Fragmentiermodul 18A aus (Schritt 506).
-
Der Fragmentübertrager 66 des zweiten LLDP-Fragmentiermoduls 18B erzeugt ein oder mehrere Paketfragmente, von denen jedes TLVs enthält, und sendet (Schritt 508) die Paketfragmente an das erste LLDP-Fragmentiermodul 18A.
-
6 zeigt ein weiteres Blockschaubild, das gemäß einer Ausführungsform einen Paketaustausch zwischen dem LLDP-Fragmentiermodul 18A des ersten Switch 16A und dem LLDP-Fragmentiermodul 18B des zweiten Switch, 16B von 1 veranschaulicht.
-
In Schritt 602 wird gleich dem Schritt 502 von 5 über den Bekanntgabeübertrager 52 des ersten LLDP-Fragmentiermoduls 18A eine Fragmentierungs-TLV-Bekanntgabe ausgegeben und durch den Bekanntgabeempfänger 64 des zweiten LLDP-Fragmentiermoduls 18B empfangen.
-
In Schritt 604 gibt der Fragmentübertrager 66 des zweiten LLDP-Fragmentiermoduls 18B ein anfängliches LLDP-Paket an das erste LLDP-Fragmentiermodul 18A aus. Das anfängliche LLDP-Paket enthält kein Fragmentierungs-TLV-Feld.
-
Der Fragmentbiterzeuger 68 des zweiten LLDP-Fragmentiermoduls 18B sendet kein Fragmentbit, da kein Fragmentierungs-TLV verarbeitet wird. In Schritt 606 wird jedoch der Fragmentbiterzeuger 54 des ersten LLDP-Fragmentiermoduls 18A auf „Aus” gesetzt. In Schritt 608 tauscht das erste LLDP-Fragmentiermodul 18A mit dem zweiten LLDP-Fragmentiermodul 18B Daten in einer Weise aus, die keinen Austausch von Paketfragmenten beinhaltet. Zudem enthalten nachfolgende, vom Bekanntgabeübertrager 52 erzeugte LLDP-Bekanntgabenachrichten keine Fragmentierungs-TLVs. Dementsprechend stellt eine LLDP-konforme Netzwerkeinheit gemäß bevorzugten Ausführungsformen Rückwärtskompatibilität im Hinblick auf einen Datenaustausch mit Peer-Einheiten bereit, die keine LLDP-Paketfragmentierung unterstützen.
-
7 zeigt gemäß einer Ausführungsform ein Blockschaubild 700 einer Vielzahl von Paketfragmenten, die zwischen dem ersten Switch 16A und dem zweiten Switch 16B von 1 ausgetauscht werden. Vor dem Austauschen von LLDP-Paketfragmenten wird eine Peer-Beziehung zwischen dem ersten Switch 16A und dem zweiten Switch 16B hergestellt, wobei jeder erste Switch 16A und der zweite Switch 16B dem anderen über LLDP-Bekanntgaben anzeigt, dass LLDP-Paketfragmentierung unterstützt wird.
-
In Block 702 wird ein erstes LLDP-Paketfragment vom zweiten Switch 16B an den ersten Switch 16A übertragen. In Block 710 speichert der erste Switch 16A das erste LLDP-Paketfragment in einem Speicher, zum Beispiel der Datenspeichereinheit 28A. Der erste Switch 16A kann die Fragment-ID (frag_ID) 134 lesen, um festzustellen, dass es sich bei dem Paketfragment um ein erstes Fragment handelt (frag_ID=01). Als Reaktion auf diese Feststellung kann der erste Switch 16A die Sequenzanzahl 130, d. h. seq_num=01, und die Gesamtfragmentanzahl 132, d. h. frag_tot=04, aus dem Fragment-TLV 116 lesen, das mit dem ersten LLDP-Paketfragment 702 bereitgestellt wurde. Das erste LLDP-Paketfragment 702 kann TLVs 1 bis 10 enthalten, zum Beispiel ein VLAN-TLV.
-
In Block 704 wird ein zweites LLDP-Paketfragment vom zweiten Switch 16B an den ersten Switch 16A übertragen. In Block 712 liest der erste Switch 16A die Sequenzanzahl (seq_num) 130 und die Gesamtfragmentanzahl (frag_tot) 132 aus dem Fragment-TLV 116, das mit dem zweiten LLDP-Paketfragment 704 bereitgestellt wurde. Wenn die Sequenzanzahl 130 bekannt ist und die Fragment-ID weniger als die Gesamtfragmentanzahl 132 beträgt, werden die inkrementellen Informationen, zum Beispiel TLVs 11 bis 20, beim ersten Switch 16A gespeichert.
-
Ein drittes LLDP-Paketfragment wird in Block 706 vom zweiten Switch 16B an den ersten Switch 16A übertragen. Ähnlich Block 712 liest in Block 714 der erste Switch 16A die Sequenzanzahl (seq_num) 130 und die Gesamtfragmentanzahl (frag_tot) aus dem Fragment-TLV 116, das mit dem dritten LLDP-Paketfragment 706 bereitgestellt wurde. Wenn die Sequenzanzahl 130 bekannt ist und die Fragment-ID weniger als die Gesamtfragmentanzahl 132 beträgt, werden die inkrementellen Informationen, zum Beispiel TLVs 21 bis 30, beim ersten Switch 16A gespeichert.
-
In Block 708 wird ein viertes LLDP-Paketfragment vom zweiten Switch 16B an den ersten Switch 16A übertragen. In Block 716 liest der erste Switch 16A die Sequenzanzahl (seq_num) 130 und die Gesamtfragmentanzahl (frag_tot) 132 aus dem Fragment-TLV 116, das mit dem vierten LLDP-Paketfragment 708 bereitgestellt wurde. Hier wird festgestellt, dass die Gesamtfragmentanzahl gleich der Fragment-ID ist, d. h. frag_tot==frag_ID=04. Hier werden die inkrementellen Informationen, zum Beispiel die TLVs 31 bis 40 im vierten LLDP-Paketfragment beim ersten Switch 16A gespeichert und die empfangenen LLDP-Paketfragmente 702, 704, 706, 708 beim ersten Switch 16A wieder zusammengesetzt. Die TLVs 2 bis 40 können relevanten Anwendungen bereitgestellt werden. Zum Beispiel kann ein TLV 2 bis 40 ein VLAN-TLV enthalten, das einer VLAN-bezogenen Anwendung bereitgestellt wird.
-
Wie für den Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als ein System, Verfahren, oder Computerprogrammprodukt ausgebildet werden. Dementsprechend können Aspekte der vorliegenden Erfindung in Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder in einer Ausführungsform ausgebildet werden, die Software- und Hardware-Aspekte kombiniert, was hierin sämtlich allgemein als „Schaltung”, „Modul” oder „System” bezeichnet sein kann. Weiterhin können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts ausgebildet werden, das in einem oder mehreren computerlesbaren Medien mit darauf enthaltenem computerlesbarem Programmcode enthalten sein kann.
-
Jede beliebige Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um ein System, eine Vorrichtung oder eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot oder Halbleiter verwendender Art sowie jede beliebige geeignete Kombination des Vorgenannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium kann Folgendes gehören (nicht abschließende Liste): eine elektrische Verbindung mit einer oder mehreren Leitungen, eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (random access memory (RAM)), ein Nur-Lese-Speicher (read-only memory (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory (EPROM) oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Compact-Disk-Nur-Lese-Speicher (compact disc read-only memory (CD-ROM)), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorgenannten. Im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes gegenständliche Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen beinhalten oder speichern kann.
-
Zu einem computerlesbaren Signalmedium kann ein verbreitetes Datensignal mit darin zum Beispiel in einem Basisband oder als Teil einer Trägerwelle ausgebildetem computerlesbarem Programmcode zählen. Solch ein verbreitetes Signal kann in jeder beliebigen einer Vielfalt von Formen ausgebildet werden, einschließlich, ohne auf diese beschränkt zu sein, elektromagnetische, optische oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um jedes computerlesbare Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen übertragen, verbreiten oder transportieren kann. Der in einem computerlesbaren Medium enthaltene Programmcode kann mittels eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne auf diese beschränkt zu sein, kabellose, kabelgebundene, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder eine beliebige geeignete Kombination des Vorgenannten.
-
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, darunter ein lokales Netzwerk (local area network (LAN)) oder ein Weitverkehrsnetzwerk (wide area network (WAN)) verbunden sein, oder es kann eine Verbindung zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Abbildungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Abbildungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen realisiert werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen erzeugen, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebene Funktion/Handlung ausführen. Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Operationsschritten hervorzurufen, um einen auf dem Computer realisierten Prozess so zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen bereitstellen.
-
Das Ablaufschaubild und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder in den Blockschaubildern für ein Modul, ein Segment oder einen Codeabschnitt stehen, der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen logischen Funktion(en) aufweist. Es soll zudem angemerkt werden, dass bei einigen alternativen Realisierungen die im Block angegebenen Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Abbildung von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder der Abbildung von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen realisiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen.
-
Obwohl die Erfindung unter Bezugnahme auf spezielle Ausführungsformen gezeigt und beschrieben wurde, sollte es sich für den Fachmann verstehen, dass vielfältige Änderungen in Form und Einzelheit darin vorgenommen werden können, ohne vom Geist und Umfang der Erfindung abzuweichen.