-
Querverweis auf verwandte Anmeldungen
-
Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung Nr. 14/854939 mit dem Titel ”SYSTEMS AND METHODS FOR PROCESSING PACKETS IN A COMPUTER NETWORK”, die am 15. September 2015 eingereicht wurde und die hier durch Bezugnahme vollständig mit aufgenommen ist.
-
Hintergrund
-
Informationen werden über Computernetze übertragen. Die Informationen sind als Bits dargestellt, die auf Pakete aufgeteilt sind. Die Pakete werden zwischen Netzvorrichtungen wie etwa Switches und Router übertragen, wodurch sich die Informationen in den Computernetzen verbreiten. Jedes Paket wird von seiner Quelle an ein Ziel übertragen, das in den Header-Informationen des jeweiligen Pakets angegeben ist. Quelle und Ziel eines Pakets können sich jeweils in anderen Teilen des Netzes befinden. Zwischen der Quelle und dem Ziel kann es verschiedene mögliche Routen geben.
-
Zusammenfassung
-
In einigen Aspekten bezieht sich die Offenbarung auf ein System. Das System kann eine erste Rechenvorrichtung, eine zweite Rechenvorrichtung und eine erste Paketweiterleitungsvorrichtung umfassen. Die erste Rechenvorrichtung und die zweite Rechenvorrichtung können jeweils mit einem jeweiligen Port der ersten Paketweiterleitungsvorrichtung kommunikationstechnisch gekoppelt sein. Die erste Paketweiterleitungsvorrichtung kann dazu ausgelegt sein, für ein erstes von der ersten Rechenvorrichtung empfangenes Paket zu bestimmen, ob eine Ziel-MAC-Adresse des ersten Pakets dem Port zugeordnet ist, an dem das erste Paket empfangen wurde. Die erste Paketweiterleitungsvorrichtung kann zudem dazu ausgelegt sein, als Antwort auf die Bestimmung, dass die Ziel-MAC-Adresse des ersten Pakets dem Port zugeordnet ist, an dem das erste Paket empfangen wurde, das erste Paket an die zweite Rechenvorrichtung weiterzuleiten. Für ein zweites von der zweiten Rechenvorrichtung empfangenes Paket kann die erste Paketweiterleitungsvorrichtung dazu ausgelegt sein, das zweite Paket über den Port weiterzuleiten, der einer Quell-MAC-Adresse des zweiten Pakets zugeordnet ist.
-
In einigen Implementierungen ist die erste Paketweiterleitungsvorrichtung ferner dazu ausgelegt, als Antwort auf die Bestimmung, dass die Quell-MAC-Adresse des zweiten Pakets keinem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, das zweite Paket zu verwerfen. In einigen Implementierungen ist die erste Paketweiterleitungsvorrichtung für ein drittes von der ersten Rechenvorrichtung empfangenes Paket dazu ausgelegt, zu bestimmen, ob das dritte Paket entweder ein Broadcast- oder ein Multicast-Paket ist, eine Ziel-MAC-Adresse des dritten Pakets in eine MAC-Adresse, die dem Port zugeordnet ist, an dem das dritte Paket empfangen wurde, zu ändern und das dritte Paket an die zweite Rechenvorrichtung weiterzuleiten.
-
In einigen Implementierungen basiert eine MAC-Adresse, die mindestens einem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, auf einer IP-Adresse der ersten Paketweiterleitungsvorrichtung und einer Zahl, die den mindestens einen Port eindeutig identifiziert. In einigen Implementierungen enthält eine MAC-Adresse, die mindestens einem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, die IP-Adresse der ersten Paketweiterleitungsvorrichtung und die Zahl, die den mindestens einen Port eindeutig identifiziert.
-
In einigen Implementierungen ist die erste Paketweiterleitungsvorrichtung ferner dazu ausgelegt, zu bestimmen, ob eine Ziel-MAC-Adresse eines vierten von der ersten Rechenvorrichtung empfangenen Pakets nicht dem Port zugeordnet ist, an dem das vierte Paket empfangen wurde, und ob die Ziel-MAC-Adresse des vierten Pakets weder eine Broadcast-MAC-Adresse noch eine Multicast-MAC-Adresse ist, und als Antwort auf die Bestimmung, dass die Ziel-MAC-Adresse des vierten Pakets nicht dem Port zugeordnet ist, an dem das vierte Paket empfangen wurde, und die Ziel-MAC-Adresse des vierten Pakets weder eine Broadcast-MAC-Adresse noch eine Multicast-MAC-Adresse ist, das vierte Paket zu verwerfen.
-
In einigen Implementierungen kann das System eine dritte Rechenvorrichtung umfassen, die mehrere Ports enthält. Die dritte Rechenvorrichtung kann mit einem jeweiligen Port der ersten Paketweiterleitungsvorrichtung kommunikationstechnisch gekoppelt sein. Die erste Paketweiterleitungsvorrichtung kann ferner dazu ausgelegt sein, zu bestimmen, ob eine Ziel-MAC-Adresse eines fünften Pakets, das von der dritten Rechenvorrichtung empfangen wurde, einer Vorrichtungs-ID der dritten Rechenvorrichtung zugeordnet ist. Die erste Paketweiterleitungsvorrichtung kann ferner dazu ausgelegt sein, als Antwort auf die Bestimmung, dass die Ziel-MAC-Adresse eines fünften Pakets der Vorrichtungs-ID der dritten Rechenvorrichtung zugeordnet ist, das fünfte Paket an die zweite Rechenvorrichtung weiterzuleiten.
-
In einigen Implementierungen ist die dritte Rechenvorrichtung dazu ausgelegt ist, zu bestimmen, ob eine Quell-MAC-Adresse eines sechsten Pakets, das von der ersten Paketweiterleitungsvorrichtung empfangen wurde, dem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, mit dem die dritte Rechenvorrichtung kommunikationstechnisch gekoppelt ist, und das sechste Paket über den Port der dritten Rechenvorrichtung, der der Quell-MAC-Adresse des sechsten Pakets zugeordnet ist, weiterzuleiten. In einigen Implementierungen ist die erste Rechenvorrichtung ferner dazu ausgelegt, sicherzustellen, dass jedes Paket, das die zweite Rechenvorrichtung als Ziel hat, eine Ziel-MAC-Adresse aufweist, die dem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, mit dem die erste Rechenvorrichtung kommunikationstechnisch gekoppelt ist. In einigen Implementierungen ist die zweite Rechenvorrichtung ferner dazu ausgelegt, sicherzustellen, dass jedes Paket, das die erste Rechenvorrichtung als Ziel hat, eine Quell-MAC-Adresse aufweist, die dem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, mit dem die erste Rechenvorrichtung kommunikationstechnisch gekoppelt ist.
-
In einigen Aspekten bezieht sich die Offenbarung auf ein Verfahren zur Verarbeitung von Paketen. Das Verfahren kann ein Empfangen eines ersten Pakets von einer ersten Rechenvorrichtung durch eine erste Paketweiterleitungsvorrichtung umfassen. Das Verfahren kann ein Bestimmen durch die erste Paketweiterleitungsvorrichtung, ob eine Ziel-MAC-Adresse des ersten Pakets dem Port zugeordnet ist, an dem das erste Paket empfangen wurde, umfassen. Das Verfahren kann ein Weiterleiten des ersten Pakets an die zweite Rechenvorrichtung durch die erste Paketweiterleitungsvorrichtung als Antwort auf die Bestimmung, dass die Ziel-MAC-Adresse des ersten Pakets dem Port zugeordnet ist, an dem das erste Paket empfangen wurde. Das Verfahren kann ein Senden eines zweiten Pakets an die erste Paketweiterleitungsvorrichtung durch die zweite Rechenvorrichtung umfassen. Das Verfahren kann ein Weiterleiten des zweiten Pakets über den Port, der einer Quell-MAC-Adresse des zweiten Pakets zugeordnet ist, durch die erste Paketweiterleitungsvorrichtung umfassen.
-
In einigen Implementierungen kann das Verfahren ein Bestimmen durch die erste Paketweiterleitungsvorrichtung, ob eine Quell-MAC-Adresse des zweiten Pakets keinem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, und als Antwort auf die Bestimmung, dass die Quell-MAC-Adresse des zweiten Pakets keinem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, ein Verwerfen des zweiten Pakets durch die erste Paketweiterleitungsvorrichtung umfassen.
-
In einigen Implementierungen kann das Verfahren ein Empfangen eines dritten Pakets von der ersten Rechenvorrichtung durch die erste Paketweiterleitungsvorrichtung umfassen. Das Verfahren kann ein Bestimmen durch die erste Paketweiterleitungsvorrichtung, ob das dritte Paket entweder ein Broadcast- oder ein Multicast-Paket ist, umfassen. Das Verfahren kann ein Ändern einer Ziel-MAC-Adresse des dritten Pakets in eine MAC-Adresse, die dem Port zugeordnet ist, an dem das dritte Paket empfangen wurde, durch die erste Paketweiterleitungsvorrichtung umfassen. Das Verfahren kann ein Weiterleiten des dritten Pakets an die zweite Rechenvorrichtung durch die erste Paketweiterleitungsvorrichtung umfassen.
-
In einigen Implementierungen basiert eine MAC-Adresse, die mindestens einem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, auf einer IP-Adresse der ersten Paketweiterleitungsvorrichtung sowie einer Zahl, die den mindestens einen Port eindeutig identifiziert. In einigen Implementierungen enthält eine MAC-Adresse, die mindestens einem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, die IP-Adresse der ersten Paketweiterleitungsvorrichtung sowie die Zahl, die den mindestens einen Port eindeutig identifiziert.
-
In einigen Implementierungen kann das Verfahren ein Empfangen eines vierten Pakets von der ersten Rechenvorrichtung durch die erste Paketweiterleitungsvorrichtung umfassen. Das Verfahren kann ein Bestimmen durch die erste Paketweiterleitungsvorrichtung, ob eine Ziel-MAC-Adresse des vierten Pakets nicht dem Port zugeordnet ist, an dem das vierte Paket empfangen wurde, und die Ziel-MAC-Adresse des vierten Pakets weder eine Broadcast-MAC-Adresse noch eine Multicast-MAC-Adresse ist, umfassen. Das Verfahren kann als Antwort auf die Bestimmung, dass die Ziel-MAC-Adresse des vierten Pakets nicht dem Port zugeordnet ist, an dem das vierte Paket empfangen wurde, und die Ziel-MAC-Adresse des vierten Pakets weder eine Broadcast-MAC-Adresse noch eine Multicast-MAC-Adresse ist, ein Verwerfen des vierten Pakets durch die erste Paketweiterleitungsvorrichtung umfassen.
-
In einigen Implementierungen kann das Verfahren ein Empfangen eines fünften Pakets von einer dritten Rechenvorrichtung durch die erste Paketweiterleitungsvorrichtung umfassen. Die dritte Rechenvorrichtung kann mehrere Ports enthalten. Das Verfahren kann ein Bestimmen durch die erste Paketweiterleitungsvorrichtung, ob eine Ziel-MAC-Adresse des fünften Pakets, das von der dritten Rechenvorrichtung empfangen wurde, einer Vorrichtungs-ID der dritten Rechenvorrichtung zugeordnet ist, umfassen. Das Verfahren kann als Antwort auf die Bestimmung, dass die Ziel-MAC-Adresse eines fünften Pakets der Vorrichtungs-ID der dritten Rechenvorrichtung zugeordnet ist, ein Weiterleiten des fünften Pakets an die zweite Rechenvorrichtung durch die erste Paketweiterleitungsvorrichtung umfassen.
-
In einigen Implementierungen kann das Verfahren ein Senden eines sechsten Pakets an die dritte Rechenvorrichtung durch die erste Paketweiterleitungsvorrichtung umfassen. Das Verfahren kann ein Bestimmen durch die dritte Rechenvorrichtung, ob eine Quell-MAC-Adresse eines Pakets, das von der ersten Paketweiterleitungsvorrichtung empfangen wurde, dem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, mit dem die dritte Rechenvorrichtung kommunikationstechnisch gekoppelt ist, umfassen. Das Verfahren kann ein Weiterleiten des Pakets über den Port der dritten Rechenvorrichtung, der der Quell-MAC-Adresse des sechsten Pakets zugeordnet ist, durch die dritte Rechenvorrichtung umfassen.
-
In einigen Implementierungen kann das Verfahren ein Sicherstellen durch die erste Rechenvorrichtung, dass jedes Paket, das die zweite Rechenvorrichtung zum Ziel hat, eine Ziel-MAC-Adresse aufweist, die dem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, mit dem die erste Rechenvorrichtung kommunikationstechnisch gekoppelt ist, umfassen. In einigen Implementierungen kann das Verfahren ein Sicherstellen durch die erste Rechenvorrichtung, dass jedes Paket, das die erste Rechenvorrichtung zum Ziel hat, eine Quell-MAC-Adresse aufweist, die dem Port der ersten Paketweiterleitungsvorrichtung zugeordnet ist, mit dem die erste Rechenvorrichtung kommunikationstechnisch gekoppelt ist, umfassen.
-
Kurzbeschreibung der Zeichnungen
-
Die oben genannten und verwandte Objekte, Merkmale und Vorteile der vorliegenden Offenbarung sind unter Bezugnahme auf die folgende genaue Beschreibung und gemeinsam mit den begleitenden Figuren leichter verständlich, wobei:
-
1A ein Blockdiagramm eines beispielhaften Systems zum Weiterleiten von Paketen ist;
-
1B ein Blockdiagramm ist eines weiteren beispielhaften Systems zum Weiterleiten von Paketen ist;
-
2 ein Blockdiagramm einer beispielhaften Paketweiterleitungsvorrichtung, die in 1A gezeigt ist, ist;
-
3 ein Ablaufdiagramm ist, das ein beispielhaftes Verfahren zum Weiterleiten von Paketen veranschaulicht;
-
4 ein Ablaufdiagramm ist, das ein weiteres beispielhaftes Verfahren zum Weiterleiten von Paketen veranschaulicht;
-
Der Klarheit halber ist möglicherweise nicht jede Komponente in jeder Figur bezeichnet. Die Zeichnungen sollen nicht maßstabgetreu sein. Ähnliche Bezugszeichen und Bezeichnungen in den verschiedenen Figuren geben ähnliche Elemente an
-
Genaue Beschreibung
-
Die Systeme und Verfahren der Offenbarung beziehen sich auf die Verarbeitung von Paketen. Insbesondere beschreibt die Offenbarung eine Art von Paketweiterleitungsvorrichtung, die die Netzsicherheit verbessern kann, indem es auf der Portebene eine Kontrolle von Paketen, die zwischen Hostvorrichtungen und Routingvorrichtungen versendet werden, ermöglicht. Die Paketweiterleitungsvorrichtung kann mehrere Downstreamports und einen Upstreamport enthalten und alle Pakete zwischen den Downstreamports und dem Upstreamport derart weiterleiten, dass sich die Upstreamvorrichtung der Herkunft aller Pakete sicher sein kann, die es von den Hostvorrichtungen empfängt. Im Allgemeinen kann sich die Herkunft eines Pakets auf den Ursprung des Pakets und den Satz an Downstreamports von Paketweiterleitungsvorrichtungen, über die das Paket auf seinem Weg zu der Upstreamvorrichtung lief, beziehen. Die Upstreamvorrichtung und die Paketweiterleitungsvorrichtung können ferner dazu ausgelegt sein, es der Upstreamvorrichtung zu ermöglichen, den Satz an Ports von Paketweiterleitungsvorrichtungen auszuwählen, durch die ein von der Upstreamvorrichtung gesendetes Paket abgehen wird.
-
1A ist ein Blockdiagramm, das ein beispielhaftes System 100 zum Weiterleiten von Paketen veranschaulicht. Das System 100 enthält mehrere Hostvorrichtungen 102a–102h (im Allgemeinen als Hostvorrichtungen 102 bezeichnet), drei Paketweiterleitungsvorrichtungen 110a–110c (im Allgemeinen als Paketweiterleitungsvorrichtungen 110 bezeichnet) und eine Routingvorrichtung 122. Das System 100 kann zudem ein Netz 124 umfassen, das mit der Routingvorrichtung 122 verbunden ist. In einigen Implementierungen kann das Netz 124 ein großes externes Computernetz wie etwa das Internet sein. Die Routingvorrichtung 122 kann beispielsweise eine Gatewayvorrichtung eines Unternehmensnetzes sein, die Internetzugang für die Hostvorrichtungen 102 bereitstellt. In einigen anderen Implementierungen kann das Netz 124 ein anderes Computernetz sein.
-
Die Paketweiterleitungsvorrichtung 110a enthält drei Downstreamports 114a–114c und einen Upstreamport 118a. Ebenso enthält die Paketweiterleitungsvorrichtung 110b drei Downstreamports 114d–114f und einen Upstreamport 118b, während die Paketweiterleitungsvorrichtung 110c drei Downstreamports 114g–114i sowie einen Upstreamport 118c enthält. Die Downstreamports 114a–114i werden im Allgemeinen als Downstreamports 114 bezeichnet, während die Upstreamports 118a–118c im Allgemeinen als Upstreamports 118 bezeichnet werden. Die Bezeichnung eines Ports entweder als ”Upstreamport” oder als ”Downstreamport” bezieht sich nicht auf die Richtung, in der Pakete durch die Ports laufen können. Stattdessen bezieht sie sich auf die relative Position der Ports in der Gesamthierarchie des Systems 100. Das heißt, dass Upstreamports 118 näher an der Routingvorrichtung 122 liegen, während Downstreamports 114 näher an den Hostvorrichtungen 102 liegen.
-
Die Paketweiterleitungsvorrichtungen 110a und 110b sind über ihre jeweiligen Upstreamports 118a und 118b direkt mit der Routingvorrichtung 122 verbunden. Der Upstreamport 118c der Paketweiterleitungsvorrichtung 110c ist mit dem Downstreamport 114f der Paketweiterleitungsvorrichtung 110b verbunden. Somit sind die Paketweiterleitungsvorrichtung 110b und die Paketweiterleitungsvorrichtung 110c in einer ”kaskadierten” Anordnung miteinander verbunden. Als Ergebnis müssen Pakete, die zwischen der Routingvorrichtung 122 und der Paketweiterleitungsvorrichtung 110c laufen, auch die Paketweiterleitungsvorrichtung 110b durchlaufen. Der Downstreamport 114f der Paketweiterleitungsvorrichtung 110b kann auch als Kaskadenport bezeichnet werden, da er mit der kaskadierten Paketweiterleitungsvorrichtung 110c und statt einer Hostvorrichtung 102 verbunden ist. Die kaskadierte Anordnung der Paketweiterleitungsvorrichtungen 110b und 110c kann dafür sorgen, dass sich mehr Hostvorrichtungen 102 mit der Routingvorrichtung 122 verbinden lassen als dies mit der Paketweiterleitungsvorrichtung 110b allein möglich wäre, da die Paketweiterleitungsvorrichtung 110c zusätzliche Downstreamports 114 bereitstellt, die sich jeweils mit einer zusätzlichen Hostvorrichtung 102 verbinden lassen. In einigen Implementierungen kann das System 100 mehr als zwei Ebenen mit kaskadierten Paketweiterleitungsvorrichtungen 110 enthalten. Das System 100 kann beispielsweise drei, vier, fünf oder mehr Ebenen an kaskadierten Paketweiterleitungsvorrichtungen 110 enthalten.
-
In einigen Implementierungen kann der Downstreamport 114f ein dedizierter Kaskadenport sein (d. h. ein Port, der ausschließlich mit einer kaskadierten Paketweiterleitungsvorrichtung 110 wie etwa der Paketweiterleitungsvorrichtung 110c und nicht direkt mit einer Hostvorrichtung 102 verbunden werden sollte). In einigen anderen Implementierungen können beliebige der Downstreamports 114 der Paketweiterleitungsvorrichtung 110b als Kaskadenport ausgelegt sein und die Wahl des Downstreamports 114f, der als Kaskadenport dienen soll, kann willkürlich sein. Die Paketweiterleitungsvorrichtung 110b kann beispielsweise eine Tabelle pflegen, die angibt, welcher ihrer Downstreamports 114 ein Kaskadenport ist. Wenn eine Paketweiterleitungsvorrichtung 110 mit einem Downstreamport 114 gekoppelt wird, kann die Tabelle aktualisiert werden, um anzugeben, dass der Downstreamport 114, mit dem die kaskadierte Paketweiterleitungsvorrichtung 110 verbunden ist, ein Kaskadenport ist. Das Pflegen von Informationen, die dem als Kaskadenport dienenden Downstreamport 114 entsprechen, kann beim Verarbeiten von Paketen helfen, die von der Routingvorrichtung 122 empfangen werden, wie es weiter unten beschrieben ist.
-
Jedes Hostvorrichtung 102 ist mit einem jeweiligen Downstreamport 114 einer der Paketweiterleitungsvorrichtungen 110 verbunden. Obwohl alle Paketweiterleitungsvorrichtungen 110 als drei Downstreamports 114 enthaltend gezeigt sind, gilt es zu verstehen, dass diese Konfiguration ausschließlich Anschauungszwecken dient. In anderen Implementierungen kann jede Paketweiterleitungsvorrichtung 110 eine höhere Zahl von Downstreamports 114 enthalten. In einigen Implementierungen kann jede Paketweiterleitungsvorrichtung 110 beispielsweise 16, 32, 64 oder 128 Downstreamports 114 enthalten. In einigen Implementierungen kann jede Paketweiterleitungsvorrichtung 110 bis zu 255 Downstreamports 114 enthalten.
-
Die Paketweiterleitungsvorrichtungen 110 können dazu ausgelegt sein, eine Steuerung des Netzverkehrs zwischen der Routingvorrichtung 122 und den Hostvorrichtungen 102 auf Portebene zu ermöglichen, so dass sich die Routingvorrichtung 122 sicher sein kann, über welchen Downstreamport 114 ein eingehendes Paket ankam. Somit kann die Routingvorrichtung 122 die Quelle eines Pakets verfolgen, was zu erhöhter Sicherheit in dem System 100 führen kann. Wenn die Routingvorrichtung 122 beispielsweise ein Paket empfängt, das bösartige Nutzdaten enthält, kann die Hostvorrichtung 102, von der das bösartige Paket gesendet wurde, identifiziert werden. Das Identifizieren der Hostvorrichtung 102 kann es ermöglichen, Korrekturmaßnahmen zu ergreifen, wie beispielsweise das Entfernen der Hostvorrichtung 102 aus dem System 100 oder das Reparieren der Hostvorrichtung 102. Die Paketweiterleitungsvorrichtungen 110 können ferner dazu ausgelegt sein, es der Routingvorrichtung 122 zu ermöglichen, auszuwählen, von welchem Downstreamport 114 ein ausgehendes Paket abgehen wird. In einigen Implementierungen kann die Routingvorrichtung 122 so einen Lastausgleich in dem System 100 implementieren.
-
Damit die Routingvorrichtung 122 die Herkunft eingehender Pakete bestimmen und den Downstreamport 114, von dem die jeweiligen ausgehenden Pakete abgehen werden, auswählen kann, kann jeder Downstreamport 114 der Paketweiterleitungsvorrichtungen 110 einer oder mehreren MAC-Adressen zugeordnet sein. Jeder Downstreamport 114, der direkt mit einer Hostvorrichtung 102 verbunden ist, kann beispielsweise einer eindeutigen MAC-Adresse zugeordnet sein, die diesem Downstreamport 114 zugewiesen ist. Die einem Downstreamport 114 zugeordnete MAC-Adresse kann nicht nur in Bezug auf die MAC-Adressen der anderen Downstreamports 114 der gleichen Paketweiterleitungsvorrichtung 110 eindeutig sein, sondern auch in Bezug auf die Downstreamports 114 der anderen Paketweiterleitungsvorrichtungen 110. Jede Hostvorrichtung 102 kann dazu ausgelegt sein, Pakete, die für eine Paketweiterleitungsvorrichtung 110 bestimmt sind, mit einer Ziel-MAC-Adresse zu adressieren, die mit den jeweiligen Downstreamports 114 übereinstimmen, mit denen die Hostvorrichtungen 102 verbunden sind. Im Gegensatz zu der Paketweiterleitungsvorrichtung 110a verfügt ein typischer Netzknoten (wie etwa ein Switch) im Allgemeinen über eine einzelne MAC-Adresse und Hostvorrichtungen adressieren Pakete, die für diesen Knoten bestimmt sind, mit der gleichen Ziel-MAC-Adresse, und zwar unabhängig davon, mit welchen Ports die Hostvorrichtungen verbunden sind. Da jede Hostvorrichtung 102 in dem System 100 mit einem jeweiligen Downstreamport 114 verbunden ist und alle Downstreamports 114, die direkt mit einer Hostvorrichtung 102 verbunden sind, einer eindeutigen MAC-Adresse zugeordnet sind, kann basierend auf den in dem Header des Pakets enthaltenen Zielinformationen bestimmt werden, dass ein Paket, das an der Routingvorrichtung 122 über die Paketweiterleitungsvorrichtungen 110 ankommt, von einer bestimmten Hostvorrichtung 102 stammt.
-
In einigen Implementierungen kann die MAC-Adresse, die einem Downstreamport 114 einer Paketweiterleitungsvorrichtung 110 zugeordnet ist, auf Informationen basieren, die die Paketweiterleitungsvorrichtung 110 gegenüber den anderen Paketweiterleitungsvorrichtungen 110 eindeutig identifiziert; zudem kann die MAC-Adresse auf Informationen basieren, die den Downstreamport 114 gegenüber den anderen Downstreamports 114 der Paketweiterleitungsvorrichtung 110 eindeutig identifiziert. In einigen Implementierungen können die Informationen, die jeweilige Paketweiterleitungsvorrichtungen 110 eindeutig identifizieren (manchmal als eine Vorrichtungs-ID bezeichnet), beispielsweise aus einer IPv4-Adresse bestehen, die der Paketweiterleitungsvorrichtung 110 zugeordnet ist. In einigen anderen Implementierungen lassen sich andere identifizierende Informationen verwenden, um die jeweiligen Paketweiterleitungsvorrichtungen 110 voneinander zu unterscheiden. Die Paketweiterleitungsvorrichtungen 110 lassen sich beispielsweise durch Werte wie Seriennummern oder eine andere Hardwareadresse (z. B. MAC-Adresse) unterscheiden, die den einzelnen Paketweiterleitungsvorrichtungen 100 zugeordnet sind. In einigen Implementierungen können die Informationen, die die Downstreamports 114 an jeweiligen Paketweiterleitungsvorrichtungen 110 eindeutig identifizieren, aus einer beliebigen Nummer bestehen, die den einzelnen Downstreamports 114 einer bestimmten Paketweiterleitungsvorrichtung 110 eindeutig zugeordnet ist, sich jedoch möglicherweise nicht von der Nummer unterscheiden, die einem Downstreamport 114 einer anderen Paketweiterleitungsvorrichtung 110 zugeordnet ist. Ein Downstreamport 114 kann beispielsweise durch eine ganze Zahl zwischen 1 und der Zahl von Ports in der Paketweiterleitungsvorrichtung 100 eindeutig identifiziert werden. In einigen Implementierungen kann jeder Port einer ganzen Zahl zwischen 1 und 255 zugeordnet sein.
-
In einigen Implementierungen kann der Satz an Informationen, der einen Downstreamport 114 gegenüber allen anderen Downstreamports 114 in dem System 100 eindeutig identifiziert (d. h. die Informationen, die die Paketweiterleitungsvorrichtung 110 eindeutig gegenüber den anderen Paketweiterleitungsvorrichtungen 110 identifizieren, und die Informationen, die den Downstreamport 114 gegenüber den anderen Downstreamports 114 des Paketweiterleitungsvorrichtung 110 eindeutig identifizieren), die Form einer MAC-Adresse haben, die den jeweiligen Downstreamports 114 zugeordnet ist, die direkt mit einer Hostvorrichtung 102 verbunden sind. Da dieser Satz an Informationen für jeden Downstreamport 114 in dem System 100 eindeutig ist, können die entsprechenden MAC-Adressen in dem System 100 ebenfalls eindeutig sein. In einigen Implementierungen kann die einem Downstreamport 114 zugeordnete MAC-Adresse beispielsweise auf der IP-Adresse, die der Paketweiterleitungsvorrichtung 110 zugeordnet ist, an der sich der Downstreamport 114 befindet, sowie auf einer Zahl, die den Downstreamport 114 gegenüber den anderen Downstreamports der Paketweiterleitungsvorrichtung 110 eindeutig identifiziert, basieren.
-
In einigen Implementierungen kann die einem Downstreamport 114 zugeordnete MAC-Adresse die IP-Adresse, die der Paketweiterleitungsvorrichtung 110 zugeordnet ist, an dem sich der Downstreamport 114 befindet, sowie die Zahl, die den Downstreamport 114 gegenüber den anderen Downstreamports 114 der Paketweiterleitungsvorrichtung 110 eindeutig identifiziert, enthalten. Typischerweise besteht eine MAC-Adresse aus einer 48-Bit-Zahl, die sich als Folge von 12 Hexadezimalziffern ausdrücken lässt. In einigen Implementierungen können die ersten zwei Hexadezimalziffern einer MAC-Adresse auf bestimmte Werte beschränkt sein. Die einem Downstreamport 114 zugeordnete MAC-Adresse kann für die ersten beiden Hexadezimalziffern beliebige gültige Werte enthalten. Gültige Werte für die ersten beiden Hexadezimalziffern der einem Downstreamport 114 zugeordneten MAC-Adresse können beispielsweise 02 oder 0E enthalten. Die folgenden acht Hexadezimalziffern der einem Downstreamport 114 zugeordneten MAC-Adresse können der IPv4-Adresse der Paketweiterleitungsvorrichtung 110, an der sich der Downstreamport 114 befindet, entsprechen, während die letzten beiden Hexadezimalziffern eine Zahl zwischen 1 und der Zahl der Downstreamports 114, die von der Paketweiterleitungsvorrichtung 110 unterstützt werden, sein können. In diesem Beispiel werden die ersten zehn Hexadezimalziffern der MAC-Adressen, die den Downstreamports 114 einer bestimmten Paketweiterleitungsvorrichtung 110 zugeordnet sind, identisch sein und können als gemeinsames Präfix für alle Downstreamports 114 der Paketweiterleitungsvorrichtung 110 dienen. Die letzten beiden Hexadezimalziffern werden sich an jedem Downstreamport 114 der Paketweiterleitungsvorrichtung 110 unterscheiden.
-
In einigen Implementierungen können Downstreamports 114, die in kaskadierter Form mit anderen Paketweiterleitungsvorrichtungen 110 und nicht direkt mit Hostvorrichtungen 102 verbunden sind (beispielsweise der Downstreamport 114f, der mit der Paketweiterleitungsvorrichtung 110c verbunden ist), keiner jeweiligen MAC-Adresse zugeordnet sein. Stattdessen können diese Downstreamports 114 den MAC-Adressen der Downstreamports 114 der kaskadierten Paketweiterleitungsvorrichtung 110 zugeordnet sein, mit denen sie verbunden sind. Der Downstreamport 114f kann beispielsweise nicht einer eigenen MAC-Adresse zugeordnet sein, sondern den MAC-Adressen der Downstreamports 114g–114i der kaskadierten Paketweiterleitungsvorrichtung 110c. In einigen Implementierungen kann ein Downstreamport 114 den MAC-Adressen aller Downstreamports 114 einer mehrstufigen Kaskade von Paketweiterleitungsvorrichtungen 110 zugeordnet sein. So kann ein bestimmter Downstreamport 114 im Allgemeinen einer oder mehreren MAC-Adressen zugeordnet sein, die eine eindeutige MAC-Adresse, die diesem Downstreamport 114 zugeordnet ist, sowie die MAC-Adressen von Downstreamports 114 an kaskadierten Paketweiterleitungsvorrichtungen 110, die mit diesem Downstreamport 114 verbunden sind, enthalten können.
-
In einigen Implementierungen können die Paketweiterleitungsvorrichtungen 110 Pakete gemäß eines Satzes an Regeln verarbeiten, die so gewählt sind, dass es einer Upstreamvorrichtung (z. B. Routingvorrichtung 122) ermöglicht wird, die Herkunft der einzelnen von den Hostvorrichtungen 102 an die Upstreamvorrichtung übertragenen Pakete zu ermitteln. Diese Regeln, die zum Teil auf den MAC-Adressen, die den Downstreamports 114 zugeordnet sind, über welche Pakete übertragen werden, basieren können, sind weiter unten erörtert.
-
In einigen Implementierungen können die Paketweiterleitungsvorrichtungen 110 dazu ausgelegt sein, es der Routingvorrichtung 122 zu ermöglichen, den Downstreamport 114 auszuwählen, von dem ein von der Routingvorrichtung 122 übertragenes Paket abgehen wird. Die Routingvorrichtung 122 kann beispielsweise dazu ausgelegt sein, Pakete, die für die Hostvorrichtung 102a bestimmt sind, so zu erzeugen, dass eine Quell-MAC-Adresse der erzeugten Pakete mit der MAC-Adresse übereinstimmt, die dem Downstreamport zugeordnet ist, mit dem das Hostvorrichtung 102a verbunden ist (d. h. Downstreamport 114a). Die Paketweiterleitungsvorrichtung 110a kann dazu ausgelegt sein, zu bestimmen, dass die Quell-MAC-Adresse des von der Routingvorrichtung 122 empfangenen Pakets der MAC-Adresse zugeordnet ist (z. B. mit dieser übereinstimmt), die dem Downstreamport 114a zugeordnet ist, und das Paket als Antwort auf diese Bestimmung über den Downstreamport 114a weiterzuleiten. Wenn die Paketweiterleitungsvorrichtung 110a bestimmt, dass die Quell-MAC-Adresse des von der Routingvorrichtung 122 empfangenen Pakets keinem der Downstreamports 114a–114c zugeordnet ist, kann die Paketweiterleitungsvorrichtung 110a dazu ausgelegt sein, das Paket zu verwerfen. In diesem Beispiel leitet die Paketweiterleitungsvorrichtung 110a ein Paket daher basierend auf der Quell-MAC-Adresse des Pakets weiter und verwirft Pakete, deren Quell-MAC-Adresse keinem der eigenen Downstreamports 114a–114c zugeordnet ist. So lassen sich Angriffe durch eine Vorrichtung verhindern, die ein Paket mit einer Quell-MAC-Adresse erzeugt, die so gefälscht ist, dass sie mit der Adresse des Routingvorrichtung 122 und einer Ziel-MAC-Adresse einer der Hostvorrichtungen 102 übereinstimmt. Solch ein Paket wird verworfen, da die Quell-MAC-Adresse keine MAC-Adresse ist, die einem der Downstreamports 114 der Paketweiterleitungsvorrichtung 110 zugeordnet ist.
-
1B ist ein Blockdiagramm eines weiteren beispielhaften Systems 101 zum Weiterleiten von Paketen. Wie das in 1 dargestellte System 100 enthält das System 101 die Routingvorrichtung 122, die mit dem Netz 124 verbunden ist. Das System 101 enthält zudem drei Hostvorrichtungen 102i–102k (im Allgemeinen als Hostvorrichtungen 102 bezeichnet) und zwei Paketweiterleitungsvorrichtungen 110d und 110e (im Allgemeinen als Paketweiterleitungsvorrichtungen 110 bezeichnet). Die Paketweiterleitungsvorrichtungen 110d und 110e ähneln den Paketweiterleitungsvorrichtungen 110a–110c von 1, während die Hostvorrichtungen 102i–102k den Hostvorrichtungen 102 von 1 ähneln. Die Paketweiterleitungsvorrichtung 110d enthält beispielsweise drei Downstreamports 114j–114l und einen Upstreamport 118d, während die Paketweiterleitungsvorrichtung 110e drei Downstreamports 114m–114o und einen Upstreamport 118e enthält. Die Downstreamports 114j–114o werden im Allgemeinen als Downstreamports 114 bezeichnet, während die Upstreamports 118d und 118e im Allgemeinen als Upstreamports 118 bezeichnet werden.
-
Die Paketweiterleitungsvorrichtungen 110d und 110e sind über ihre jeweiligen Upstreamports 118d und 118e direkt mit der Routingvorrichtung 122 verbunden. Das System 101 unterscheidet sich von dem in 1 dargestellten System 100 dadurch, dass es im System 101 mehrere Wege zwischen den jeweiligen Hostvorrichtungen 102 und der Routingvorrichtung 122 gibt. Die Hostvorrichtung 102i kann beispielsweise über den Downstreamport 114j oder den Downstreamport 114k, die Hostvorrichtung 102j über den Downstreamport 114l oder den Downstreamport 114m und die Hostvorrichtung 102k über den Downstreamport 114n oder den Downstreamport 114o erreicht werden. Wie oben in Verbindung mit 1A erläutert ist jedem Downstreamport 114, der direkt mit einer Hostvorrichtung 102 verbunden ist, eine eindeutige MAC-Adresse zugeordnet.
-
Die den Downstreamports 114 zugeordneten eindeutigen MAC-Adressen ermöglichen es der Routingvorrichtung 122, einen bestimmten Weg zu den einzelnen Hostvorrichtungen 102 auszuwählen. Wie oben erörtert kann die Routingvorrichtung 122 beispielsweise dazu ausgelegt sein, ein Paket zu erzeugen, dessen Quell-MAC-Adresse mit der MAC-Adresse des Downstreamports 114 übereinstimmt, durch den das Paket abgehen soll. Daher kann die Routingvorrichtung 122 eine bestimmte Route für ein Paket auswählen, indem es als Quell-MAC-Adresse des Pakets die MAC-Adresse des Downstreamports 114 festlegt, der entlang der gewünschten Route liegt.
-
In einigen Implementierungen kann die Routingvorrichtung 122 eine Route basierend auf einem Lastausgleichsschema auswählen. Die Routingvorrichtung 122 kann ein Paket oder einen Fluss von Paketen beispielsweise selektiv über die Paketweiterleitungsvorrichtung 110d durch den Downstreamport 114j oder den Downstreamport 114k an die Hostvorrichtung 102l weiterleiten, indem sie in dem Quell-MAC-Adressfeld des entsprechenden Pakets die Kennung des gewünschten Ports spezifiziert. So lässt sich verhindern, dass die Downstreamports 114j oder 114k überlastet werden. Die oben beschriebene Funktion kann besonders in hierarchischen Netzen nützlich sein, die über komplexere Switch-Fabrics verfügen (z. B. Rechenzentrumsnetzen), die verschiedene Routen zwischen Aggregationsknoten und verschiedenen Serverracks bereitstellen.
-
Es ist zu beachten, dass die Topologie des Systems 101 nur Anschauungszwecken dient. In einigen Implementierungen kann das System 101 beispielsweise zusätzliche Paketweiterleitungsvorrichtungen 110 enthalten, von denen einige in einer Kaskadenform angeordnet sein können. Jede Hostvorrichtung 102 kann ferner mit mehr als zwei Downstreamports 114 oder lediglich einem einzigen Downstreamport 114 verbunden sein.
-
Jede Paketweiterleitungsvorrichtung 110 in dem System 100, das in 1A gezeigt ist, und in dem System 101, das in 1B gezeigt ist, kann im Allgemeinen beliebige Arten von Vorrichtungen enthalten, die zur Kommunikation mit anderen Vorrichtungen (z. B. anderen Paketweiterleitungsvorrichtungen 110) geeignet sind. Die jeweiligen Paketweiterleitungsvorrichtungen 110 können beispielsweise aus einem Computer, einem Router, einem Switch, einem Server oder einer beliebigen Kombination aus diesen Elementen bestehen. Ebenso können die Hostvorrichtungen 102 und die Routingvorrichtung 122 ebenfalls aus einem Computer, einem Router, einem Switch, einem Server oder einer beliebigen Kombination aus diesen Elementen bestehen. Die Paketweiterleitungsvorrichtungen 110, die Hostvorrichtungen 102 und die Routingvorrichtung 122 können jeweils mindestens einen Prozessor, einen Speicher und eine Netzkarte enthalten. In einigen Implementierungen kann das Netz 124 das Internet sein und das System 100 kann ein Rechenzentrum repräsentieren, das mit dem Internet verbunden ist. Die Hostvorrichtungen 102 können beispielsweise dazu ausgelegt sein, von dem Rechenzentrum gehostete Daten zu speichern und Anfragen nach Daten über die Paketweiterleitungsvorrichtungen 110 und die Routingvorrichtung 122 empfangen und beantworten. Im Allgemeinen können Rechenzentren eine große Vielfalt an Computernetzverkehr unterstützen, darunter Datenverkehr, der mit einer echtzeitbasierten Bereitstellung von Inhalt verbunden ist, Cloud-Rechendiensten, die von Anwendern persönlicher oder mobiler Rechenvorrichtungen aufgerufen werden, Datenspeicher, Datenindizierung, Datensicherung, Übertragung von Massendaten und Datenzugriff. In einigen anderen Implementierungen kann das System 100 ein Unternehmensnetz repräsentieren, das mit dem Internet oder einem anderen externen Netz verbunden ist.
-
2 ist ein Blockdiagramm der beispielhaften Paketweiterleitungsvorrichtung 110b von 1A. Wie oben erläutert enthält die Paketweiterleitungsvorrichtung 110b Downstreamports 114d–114f (im Allgemeinen als Downstreamports 114 bezeichnet) und einen Upstreamport 118b. Die Paketweiterleitungsvorrichtung 110b enthält zudem ein MAC-Adressen-Bekanntmachungsmodul 201, ein Headermodifizierungsmodul 204, ein Paketweiterleitungsmodul 206 und einen Speicher 208.
-
In einigen Implementierungen kann das MAC-Adressen-Bekanntmachungsmodul 201 dazu ausgelegt sein, an jede mit einem Downstreamport 114 verbundene Vorrichtung Informationen zu senden, in denen die eindeutige MAC-Adresse der Downstreamports 114 enthalten ist, die direkt mit Hostvorrichtungen verbunden sind. Das MAC-Adressen-Bekanntmachungsmodul 201 kann beispielsweise die MAC-Adressen, die den Downstreamports 114d und 114e zugeordnet sind, an die jeweils mit diesen Ports verbundenen Vorrichtungen senden.
-
In einigen Implementierungen kann das MAC-Adressen-Bekanntmachungsmodul 201 dazu ausgelegt sein, die entsprechenden MAC-Adressen als Antwort auf das Empfangen einer Anfrage von den Vorrichtungen, die mit den Downstreamports 114 verbunden sind, an die jeweiligen Downstreamports 114 zu senden. Das MAC-Adressen-Bekanntmachungsmodul 201 kann beispielsweise dazu ausgelegt sein, auf von verbundenen Hostvorrichtungen empfangene Adressauflösungsprotokoll-Anfragen (ARP-Anfragen) zu antworten. Eine Vorrichtung, die mit einem Downstreamport 114d verbunden ist, kann beispielsweise eine ARP-Anfrage an die Paketweiterleitungsvorrichtung 110b senden. Das MAC-Adressen-Bekanntmachungsmodul 201 kann auf die ARP-Anfrage antworten, indem es Informationen, die der MAC-Adresse des Downstreamports 114d entsprechen, an die Vorrichtung sendet, die mit dem Downstreamport 114d verbunden ist. ARP-Anfragen können von den Vorrichtungen, die mit dem Downstreamport 114e verbunden sind, empfangen und verarbeitet werden. Darum können Vorrichtungen, die mit verschiedenen Downstreamports 114 der Paketweiterleitungsvorrichtung 110b verbunden sind, verschiedene Antworten auf ARP-Anfragen erhalten. Im Gegensatz dazu sind typische Netzvorrichtungen dazu ausgelegt, auf ARP-Anfragen mit einer einzelnen Adresse zu antworten, und zwar unabhängig von dem Port, mit dem die Vorrichtung verbunden ist, die die ARP-Anfrage initiiert. Das MAC-Adressen-Bekanntmachungsmodul 201 kann zudem dazu ausgelegt sein, die MAC-Adressen seiner Downstreamports 114 über seinen Upstreamport 118b bekanntzumachen. Wie oben beschrieben ist der Downstreamport 114f, der mit einer anderen Paketweiterleitungsvorrichtung 110c und nicht mit einer Hostvorrichtung 102 verbunden ist (siehe 1A), möglicherweise keiner MAC-Adresse zugeordnet, kann jedoch den MAC-Adressen der Downstreamports 114 anderer Paketweiterleitungsvorrichtungen zugeordnet sein, die mit der Paketweiterleitungsvorrichtung 110b in Kaskadenform verbunden sind (beispielsweise der Downstreamports 114 der Paketweiterleitungsvorrichtung 110c, siehe 1A). Das MAC-Adressen-Bekanntmachungsmodul kann also auch dazu ausgelegt sein, die MAC-Adressen dieser Ports über seinen Upstreamport 118b bekanntzumachen.
-
Das Paketweiterleitungsmodul 206 kann dazu ausgelegt sein, Pakete basierend auf einem Satz von Regeln weiterzuleiten, die im Folgenden unter Bezugnahme auf 3 und 4 beschrieben sind. Für ein Paket, das von einer Hostvorrichtung über einen Downstreamport 114 direkt empfangen wird, kann das Paketweiterleitungsmodul 206 beispielsweise dazu ausgelegt sein, zu bestimmen, ob die Ziel-MAC-Adresse eines empfangenen Pakets dem Downstreamport 114 zugeordnet ist, an dem das Paket empfangen wurde. In einigen Implementierungen können die den einzelnen Downstreamports 114 zugeordneten MAC-Adressen im Speicher 208 gespeichert werden. Das Paketweiterleitungsmodul 206 kann diese Informationen aus dem Speicher 208 abrufen und die Ziel-MAC-Adresse eines über einen Downstreamport 114 empfangenen Pakets mit den Informationen vergleichen, um zu bestimmen, ob das Paket über den Upstreamport 118 weitergeleitet werden soll.
-
Das Headermodifizierungsmodul 204 kann dazu ausgelegt sein, Informationen, die in dem Header eines von der Paketweiterleitungsvorrichtung 110b empfangenen Pakets enthalten sind, zu modifizieren. In einigen Implementierungen kann es erforderlich sein, die Header-Informationen eines Pakets so zu modifizieren, das eine Routingvorrichtung 122, die in 1A gezeigt ist, die Herkunft eines Pakets bestimmen kann, das aus der Downstreamrichtung kommt (z. B. den Satz an Downstreamports 114 von Paketweiterleitungsvorrichtungen 110, die das Paket durchlaufen hat). In einigen Implementierungen kann eine Hostvorrichtung beispielsweise ein Paket senden, das über eine Ziel-MAC-Adresse verfügt, die das Paket als Broadcast- oder Multicast-Paket identifiziert. Wenn das Paket von der Routingvorrichtung jedoch unverändert empfangen wird, nachdem es die Paketweiterleitungsvorrichtung 110b durchlaufen hat, kann die Routingvorrichtung nicht den Downstreamport 114 bestimmen, über den das Paket gelaufen ist. Zur Behebung dieses Problems kann das Headermodifizierungsmodul 204 dazu ausgelegt sein, zu bestimmen, ob ein vom einem der Downstreamports 114 empfangenes Paket ein Broadcast- oder Multicast-Paket ist, und, wenn ja, den Header des Pakets zu modifizieren. Der Header des Pakets kann so modifizieren werden, dass er eine Ziel-MAC-Adresse enthält, die mit der Ziel-MAC-Adresse übereinstimmt, die dem Downstreamport 114 zugeordnet ist, an dem das Paket empfangen wurde, so dass die Routingvorrichtung die Herkunft des Pakets bestimmen kann, indem sie das Ziel-MAC-Adressfeld des Pakets überprüft.
-
In einigen Implementierungen kann das Paketweiterleitungsmodul 206 dazu ausgelegt sein, die Ziel-MAC-Adresse des empfangenen Pakets zu bestimmen und die Ziel-MAC-Adresse mit einer Liste von Ziel-MAC-Adressen, die Broadcast- und Multicast-Paketen zugeordnet sind, zu vergleichen. So eine Liste kann beispielsweise in dem Speicher 208 gepflegt werden. Wenn ein empfangenes Paket ein Broadcast- oder Multicast-Paket ist, kann das Paketweiterleitungsmodul 206 das Paket an das Headermodifizierungsmodul 204 senden, das dazu ausgelegt sein kann, das in dem Header des Pakets enthaltene Zielfeld so zu verändern, dass es mit der MAC-Adresse übereinstimmt, die dem Downstreamport 114 zugeordnet ist, an dem das Paket empfangen wurde. Das Paketweiterleitungsmodul 206 kann das veränderte Paket an die Routingvorrichtung senden. Sobald die Routingvorrichtung das modifizierte Paket empfangt, kann die Routingvorrichtung den Downstreamport 114 bestimmen, über den das Paket übertragen wurde, indem sie das Zielfeld des empfangenen Pakets überprüft.
-
In einigen Implementierungen kann das Paketweiterleitungsmodul 206 bestimmen, ob es ein über einen kaskadierten Downstreamport 114 empfangenes Paket weiterleiten soll. Die Paketweiterleitungsvorrichtung 110b kann beispielsweise eine Liste von MAC-Adressen speichern, die den Downstreamports 114 aller kaskadierten Paketweiterleitungsvorrichtungen 110 zugeordnet sind, welche sich zwischen den Downstreamports 114d–114f der Paketweiterleitungsvorrichtung 110b und einer oder mehreren Hostvorrichtungen 102 befinden. Solch eine Liste kann beispielsweise in dem Speicher 208 gespeichert werden. Das Paketweiterleitungsmodul 206 kann dazu ausgelegt sein, die Ziel-MAC-Adresse eines über einen Downstreamport 114 empfangenen Pakets mit den in der Liste gespeicherten MAC-Adressen zu vergleichen. Wenn eine Übereinstimmung bestimmt wird, kann das Paketweiterleitungsmodul 206 das Paket über den Upstreamport 118b weiterleiten. Wird keine Übereinstimmung bestimmt, kann das Paket verworfen werden. In einigen anderen Implementierungen kann die Paketweiterleitungsvorrichtung 110b eine Liste der gemeinsamen Präfixe von MAC-Adressen speichern, die den Downstreamports 114 aller kaskadierten Paketweiterleitungsvorrichtungen 110 zugeordnet sind, die zwischen den Downstreamports 114d–114f der Paketweiterleitungsvorrichtung 110b und einer oder mehreren Hostvorrichtungen 102 liegen. Wie oben erörtert kann ein gemeinsamer Präfix ein Abschnitt der MAC-Adressen sein (z. B. die ersten zehn Hexadezimalziffern), der für alle Downstreamports 114 einer Paketweiterleitungsvorrichtung 110 gleich ist. So kann das Paketweiterleitungsmodul 206 bestimmen, ob ein über einen kaskadierten Downstreamport 114 empfangenes Paket effizienter weitergleitet werden kann, indem es eine Übereinstimmung zwischen dem Präfix der Ziel-MAC-Adresse eines empfangenen Pakets und dem gemeinsamen Präfix einer kaskadierten Paketweiterleitungsvorrichtung 110 bestimmt, statt zu bestimmen, ob es eine Übereinstimmung zwischen der gesamten Ziel-MAC-Adresse des empfangenen Pakets und der eindeutigen MAC-Adresse, die einem Downstreamport 114 an einer beliebigen der kaskadierten Paketweiterleitungsvorrichtungen 110 zugeordnet ist, gibt.
-
In einigen Implementierungen kann das Paketweiterleitungsmodul 206 dazu ausgelegt sein, ein Paket, das es von einer Upstreamvorrichtung (wie etwa der in 1A dargestellten Routingvorrichtung 122 oder einer anderen Paketweiterleitungsvorrichtung 110) direkt empfangen hat, über einen Downstreamport 114 weiterzuleiten. Das Paketweiterleitungsmodul 206 kann beispielsweise dazu ausgelegt sein, zu bestimmen, ob die Quell-MAC-Adresse des empfangenen Pakets irgendeinem Downstreamport 114 zugeordnet ist. In einigen Implementierungen können die den jeweiligen Downstreamports 114 zugeordneten MAC-Adressen in dem Speicher 208 gespeichert werden. Das Paketweiterleitungsmodul 206 kann diese Informationen aus dem Speicher 208 abrufen und die Quell-MAC-Adresse eines über einen Upstreamport 118 empfangenen Pakets mit diesen Informationen vergleichen. Wenn eine Übereinstimmung bestimmt wird, kann das Paketweiterleitungsmodul 206 dazu ausgelegt sein, das empfangene Paket über den Downstreamport 114, der der Quell-MAC-Adresse des empfangenen Pakets zugeordnet ist, weiterzuleiten. Eine Zuordnung kann beispielsweise dann bestimmt werden, wenn eine MAC-Adresse eines Downstreamports 114 mit der Quell-MAC-Adresse des empfangenen Pakets übereinstimmt oder der Downstreamport 114 mit einer weiteren Paketweiterleitungsvorrichtung 110 verbunden ist, die einen Downstreamport aufweist, dessen MAC-Adresse mit der Quell-MAC-Adresse des empfangenen Pakets übereinstimmt. Daher kann das Paketweiterleitungsmodul 206 als Antwort auf die Bestimmung einer Übereinstimmung zwischen der Quelladresse des empfangenen Pakets und einer MAC-Adresse, die dem kaskadierten Downstreamport 114 zugeordnet ist, ein von einer Upstreamvorrichtung empfangenes Paket über den entsprechenden Downstreamport 114 weiterleiten. In einigen Implementierungen kann der Downstreamport 114 ein kaskadierter Downstreamport 114 sein, der mit einer weiteren Paketweiterleitungsvorrichtung 100 verbunden ist, die einen Downstreamport aufweist, dessen MAC-Adresse mit der Quell-MAC-Adresse des empfangenen Pakets übereinstimmt. Wenn keine Übereinstimmung bestimmt wird, kann das Paketweiterleitungsmodul 206 dazu ausgelegt sein, das Paket zu verwerfen.
-
In einigen Implementierungen kann das Paketweiterleitungsmodul 206 ein Paket an ein kaskadiertes Paketweiterleitungsvorrichtung 110 weiterleiten, und zwar als Antwort auf die Bestimmung, dass die Quell-MAC-Adresse des Pakets nicht mit der MAC-Adresse übereinstimmt, die einem beliebigen der Downstreamports 114 zugeordnet ist, die direkt mit Hostvorrichtungen verbunden sind, ohne zu bestimmen, dass die Quell-MAC-Adresse des Pakets mit den Quell-MAC-Adressen übereinstimmt, die mit den Downstreamports 114 aller kaskadierten Paketweiterleitungsvorrichtungen übereinstimmen, die zwischen den Downstreamports 114d–114f der Paketweiterleitungsvorrichtung 110b und einer oder mehreren Hostvorrichtungen 102 liegen. Wenn das Paket die letzte Paketweiterleitungsvorrichtung 110 in der Kaskade erreicht, kann diese Paketweiterleitungsvorrichtung basierend auf ihrer eigenen Überprüfung der Quell-MAC-Adresse des Pakets bestimmen, ob sie das Paket verwerfen oder weiterleiten soll.
-
In einigen Implementierungen können das MAC-Adressen-Bekanntmachungsmodul 201, das Headermodifizierungsmodul 204 und das Paketweiterleitungsmodul 206 jeweils als Spezial-Logikschaltungen implementiert sein, wie etwa als feldprogrammierbare Gatteranordnung (FPGA) oder anwendungsspezifische integrierte Schaltung (ASIC). In anderen Implementierungen können das MAC-Adressen-Bekanntmachungsmodul 201, das Headermodifizierungsmodul 204 und das Paketweiterleitungsmodul 206 als ein oder mehrere Softwaremodule implementiert sein, die auf einem computerlesbaren Medium gespeichert sind und auf einem oder mehreren Allzweckprozessoren ausgeführt werden. In einigen Implementierungen können einige oder alle Funktionen des MAC-Adressen-Bekanntmachungsmoduls 201, des Headermodifizierungsmoduls 204 und des Paketweiterleitungsmoduls 206 in einem einzigen Modul zusammengefasst bzw. weiter auf kleinere Module aufgeteilt sein. Die Paketweiterleitungsvorrichtung 110b kann auch andere Kommunikationshardware enthalten, die nicht in 2 dargestellt ist, beispielsweise eine Netzkarte, zusätzliche Speichermodule und Eingabe-/Ausgabevorrichtungen.
-
Es ist zu beachten, dass beliebige der im System 100 enthaltenen Paketweiterleitungsvorrichtungen 110, die in 1A und 1B dargestellt sind, Module enthalten können, die jenen ähneln, die oben in Verbindung mit der Paketweiterleitungsvorrichtung 110b beschrieben sind. Die Paketweiterleitungsvorrichtung 110a und die Paketweiterleitungsvorrichtung 110d können beispielsweise jeweils ein jeweiliges MAC-Adressen-Bekanntmachungsmodul 201, ein jeweiliges Headermodifizierungsmodul 204, ein jeweiliges Paketweiterleitungsmodul 206 und einen entsprechenden Speicher 208 enthalten. Die in anderen Paketweiterleitungsvorrichtungen 110 enthaltenen Module können auf ähnliche Weise arbeiten, wie es oben in Verbindung mit den Modulen der Paketweiterleitungsvorrichtung 110b beschrieben ist.
-
3 ist ein Ablaufdiagramm, das ein beispielhaftes Verfahren 300 zum Weiterleiten von Paketen veranschaulicht. In einigen Ausführungen kann der Prozess 300 dazu verwendet werden, dass durch eine Paketweiterleitungsvorrichtung wie etwa den Paketweiterleitungsvorrichtungen 110, die in 1A und 1B dargestellt sind, von einer Rechenvorrichtung wie etwa einer der in 1A und 1B dargestellten Hostvorrichtungen 102 empfangene Pakete verarbeitet werden. Zusammengefasst umfasst der Prozess 300 ein Empfangen eines Pakets von einer ersten Rechenvorrichtung durch eine Paketweiterleitungsvorrichtung (Phase 302). Der Prozess 300 umfasst ein Bestimmen, ob das empfangene Paket entweder ein Broadcast-Paket oder ein Multicast-Paket ist (Phase 304). Wenn das Paket ein Broadcast-Paket oder ein Multicast-Paket ist, umfasst der Prozess 300 ein Ändern einer Ziel-MAC-Adresse des Pakets in die MAC-Adresse des Ports, an dem das Paket empfangen wurde (Phase 306), und ein Weiterleiten des modifizierten Pakets an die zweite Rechenvorrichtung (Phase 308). Wenn das Paket weder ein Broadcast-Paket noch ein Multicast-Paket ist, umfasst der Prozess 300 ein Bestimmen, ob eine Ziel-MAC-Adresse des Pakets dem Port zugeordnet ist, an dem das Paket empfangen wurde (Phase 310). Wenn die Ziel-MAC-Adresse des Pakets dem Port zugeordnet ist, an dem das Paket empfangen wurde, umfasst der Prozess 300 ein Weiterleiten des Pakets an die zweite Rechenvorrichtung (Phase 312). Wenn die Ziel-MAC-Adresse des Pakets nicht dem Port zugeordnet ist, an dem das Paket empfangen wurde, umfasst der Prozess 300 ein Verwerfen des Pakets (Phase 314).
-
Unter erneuter Bezugnahme auf 3 umfasst der Prozess 300 ein Empfangen eines Pakets von einer ersten Rechenvorrichtung durch eine Paketweiterleitungsvorrichtung (Phase 302). In einigen Implementierungen kann die erste Rechenvorrichtung eine Hostvorrichtung wie etwa eine der in 1A und 1B dargestellten Hostvorrichtungen 102 sein und über einen Downstreamport der Paketweiterleitungsvorrichtung mit der Paketweiterleitungsvorrichtung verbunden sein. In einigen anderen Implementierungen kann die erste Rechenvorrichtung eins weitere Paketweiterleitungsvorrichtung sein, das zwischen der ersten Paketweiterleitungsvorrichtung und einer Hostvorrichtung liegt. In wieder anderen Implementierungen kann die erste Rechenvorrichtung eine Rechenvorrichtung sein, die möglicherweise versucht, sich als eine der Hostvorrichtungen auszugeben, beispielsweise durch Fälschen (oder Spoofen) der Quell-MAC-Adresse des Pakets derart, dass diese mit der Quell-MAC-Adresse einer der Hostvorrichtungen übereinstimmt. Der Prozess 300 kann dazu verwendet werden, Pakete zu verwerfen, die sich nicht ordnungsgemäß an eine Upstream-Routingvorrichtung wie etwa die in 1A und 1B dargestellte Routingvorrichtung 122 richten, und es der Routingvorrichtung zu ermöglichen, die Herkunft von Paketen, die von der Paketweiterleitungsvorrichtung weitergeleitet werden, zu bestimmen.
-
Der Prozess 300 umfasst ein Bestimmen, ob das empfangene Paket entweder ein Broadcast-Paket oder ein Multicast-Paket ist (Phase 304). In einigen Implementierungen können bestimmte Ziel-MAC-Adressen für Broadcast- oder Multicast-Pakete reserviert sein, die beispielsweise für Sicherheitsverhandlungen zwischen Netzvorrichtungen, ARP-Anfragen, Routererkennung oder Bekanntmachungen von Routingprotokollen verwenden werden können, ohne darauf beschränkt zu sein. Wenn bestimmt wird, dass das Paket ein Broadcast-Paket oder ein Multicast-Paket ist, umfasst der Prozess 300 ein Ändern einer Ziel-MAC-Adresse des Pakets in die MAC-Adresse des Ports, an dem das Paket empfangen wurde (Phase 306). Würde ein Broadcast- oder Multicast-Paket unverändert an die Routingvorrichtung weitergeleitet werden, könnte die Routingvorrichtung möglicherweise weder die jeweilige Hostvorrichtung, von der das Paket stammt, noch den Downstreamport der Paketweiterleitungsvorrichtung, durch den das Paket empfangen wurde, bestimmen. So könnte eine weitere Hostvorrichtung beispielsweise die in dem Paket verwendeten Quell-IP- und Quell-MAC-Adressen spoofen. Zur Behebung dieses Problem kann die Paketweiterleitungsvorrichtung das Zielfeld des Pakets so ändern, dass es die MAC-Adresse des Downstreamports enthält, an dem das Paket ankam. In einigen Implementierungen kann der Inhalt des Pakets noch immer angeben, dass das Paket ein Multicast- oder Broadcast-Paket ist, obwohl die Ziel-MAC-Adresse von der Paketweiterleitungsvorrichtung modifiziert worden ist.
-
Der Prozess 300 umfasst ein Weiterleiten des modifizierten Pakets an eine zweite Rechenvorrichtung (Phase 308). In einigen Implementierungen kann die zweite Rechenvorrichtung die Routingvorrichtung 122 sein, die in 1A und 1B dargestellt ist. Wie oben erläutert kann jeder Downstreamport der Paketweiterleitungsvorrichtung, der direkt mit einem Host verbunden ist, eine eindeutige MAC-Adresse aufweisen. Wenn die zweite Rechenvorrichtung das modifizierte Paket empfängt, kann die zweite Rechenvorrichtung somit den Downstreamport bestimmen, über den das Paket lief, indem sie die modifizierte Ziel-MAC-Adresse des empfangenen Pakets überprüft.
-
Wenn das Paket weder ein Broadcast-Paket noch ein Multicast-Paket ist, umfasst der Prozess 300 ein Bestimmen, ob die Ziel-MAC-Adresse des Pakets dem Port zugeordnet ist, an dem das Paket empfangen wurde (Phase 310). Die Bestimmung kann beispielsweise dadurch erfolgen, dass die Ziel-MAC-Adresse des empfangenen Pakets mit den MAC-Adressen verglichen wird, die dem Port zugeordnet sind, an dem das Paket empfangen wurde. Wenn die Ziel-MAC-Adresse des Pakets dem Port zugeordnet ist, an dem das Paket empfangen wurde, umfasst der Prozess 300 ein Weiterleiten des Pakets an die zweite Rechenvorrichtung (Phase 312). In einigen Implementierungen werden über einen kaskadierten Downstreamport (d. h. einen Downstreamport, der mit einer weiteren Paketweiterleitungsvorrichtung verbunden ist) empfangene Pakete ohne Inspektion an den Upstreamport weitergeleitet, da das Paket bereits von der kaskadierten Paketweiterleitungsvorrichtung ordnungsgemäß verarbeitet worden war, bevor das kaskadierte Paketweiterleitungsvorrichtung das Paket weiterleitete.
-
In einigen Implementierungen kann ein Weiterleiten des Pakets auf der Basis der Bestimmung, dass die Ziel-MAC-Adresse des Pakets dem Downstreamport zugeordnet ist, an dem das Paket empfangen wurde, dabei helfen, Angriffe durch Vorrichtungen zu verhindern, die möglicherweise versuchen, sich als eine Hostvorrichtung auszugeben. In einigen Implementierungen sind die Hostvorrichtungen beispielsweise dazu ausgelegt, für die zweite Rechenvorrichtung bestimmte Pakete derart zu erzeugen, dass eine Ziel-MAC-Adresse der Pakete mit der MAC-Adresse des Downstreamports einer Paketweiterleitungsvorrichtung übereinstimmt, mit dem die jeweiligen Hostvorrichtungen verbunden sind. Wenn die Ziel-MAC-Adresse des Pakets nicht dem Port zugeordnet ist, an dem das Paket empfangen wurde, kann die Paketweiterleitungsvorrichtung auf diese Weise bestimmen, dass das Paket nicht von der entsprechenden Hostvorrichtung stammt, und das Paket verwerfen (Phase 314). Daher wird ein Paket, dessen Quell-MAC-Adresse so gefälscht wurde, dass sie mit der Adresse einer Hostvorrichtung übereinstimmt, nicht weitergeleitet, es sei denn, das Paket enthält ferner die korrekte Ziel-MAC-Adresse (d. h. eine MAC-Adresse, die dem Downstreamport zugeordnet ist, an dem das Paket von der Paketweiterleitungsvorrichtung empfangen wurde). Ebenso wird ein an einem Downstreamport empfangenes Paket, dessen Quell-MAC-Adresse so gefälscht wurde, dass sie mit der Adresse einer Upstreamvorrichtung übereinstimmt, auch nicht weitergeleitet, es sei denn, das Paket enthält ferner die korrekte Ziel-MAC-Adresse (d. h. eine MAC-Adresse, die dem Downstreamport zugeordnet ist, an dem das Paket von der Paketweiterleitungsvorrichtung empfangen wurde). Die Wahrscheinlichkeit, dass ein Paket mit einer gefälschten Quell-MAC-Adresse die zweite Rechenvorrichtung erreicht, wird somit verringert.
-
In einigen Implementierungen kann es das Weiterleiten des Pakets auf der Basis der Bestimmung, ob die Ziel-MAC-Adresse des Pakets dem Downstreamport zugeordnet ist, an dem das Paket empfangen wurde, einer Upstreamvorrichtung wie etwa der Routingvorrichtung 122, die in 1A dargestellt ist, ermöglichen, die Quelle eines bösartigen Pakets zu ermitteln. Wenn die Upstreamvorrichtung beispielsweise ein Paket empfängt, das bösartige Nutzdaten enthält (z. B. als Folge einer Virusinfektion), kann die Hostvorrichtung, von der das bösartige Paket gesendet wurde, basierend auf der Ziel-MAC-Adresse des Pakets identifiziert werden und es kann eine Korrekturmaßnahme zum Entfernen oder Reparieren der Hostvorrichtung durchgeführt werden.
-
4 ist ein Ablaufdiagramm, das ein weiteres beispielhaftes Verfahren 400 zum Weiterleiten von Paketen veranschaulicht. In einigen Implementierungen kann der Prozess 400 dazu verwendet werden, um durch eine Paketweiterleitungsvorrichtung wie etwa die Paketweiterleitungsvorrichtungen 110 von 1A und 1B von einer Rechenvorrichtung wie etwa der in 1A und 1B dargestellten Hostvorrichtung 122 empfangenen Pakete zu verarbeiten. Kurz zusammengefasst umfasst der Prozess 400 ein Empfangen eines Pakets von einer zweiten Rechenvorrichtung durch eine Paketweiterleitungsvorrichtung (Phase 402). Der Prozess 400 umfasst ein Bestimmen, ob eine Quell-MAC-Adresse des Pakets einem beliebigen Downstreamport der Paketweiterleitungsvorrichtung zugeordnet ist (Phase 404). Wenn die Quell-MAC-Adresse des Pakets einem Downstreamport der Paketweiterleitungsvorrichtung zugeordnet ist, umfasst der Prozess 400 ein Weiterleiten des Pakets über den Downstreamport, dessen MAC-Adresse mit der Quell-MAC-Adresse des Pakets übereinstimmt (Phase 406). Wenn die Quell-MAC-Adresse des Pakets keinem Downstreamport der Paketweiterleitungsvorrichtung zugeordnet ist, umfasst der Prozess 400 ein Verwerfen des Pakets (Phase 408).
-
Unter erneuter Bezugnahme auf 4 umfasst der Prozess 400 ein Empfangen eines Pakets von einer zweiten Rechenvorrichtung durch eine Paketweiterleitungsvorrichtung (Phase 402). In einigen Implementierungen kann die zweite Rechenvorrichtung eine Routingvorrichtung wie etwa die Routingvorrichtung 122, die in 1A und 1B dargestellt ist, sein, die der Paketweiterleitungsvorrichtung vorgeschaltet ist und über einen Upstreamport der Paketweiterleitungsvorrichtung mit der Paketweiterleitungsvorrichtung verbunden ist. In einigen anderen Implementierungen kann die zweite Rechenvorrichtung eine kaskadierte Paketweiterleitungsvorrichtung sein. Der Prozess 400 kann verwendet werden, um es der Upstream-Routingvorrichtung zu ermöglichen, einen Port der Paketweiterleitungsvorrichtung auszuwählen, durch den das Paket abgehen wird.
-
Der Prozess 400 umfasst ein Bestimmen, ob eine Quell-MAC-Adresse des Pakets einem beliebigen Downstreamport der Paketweiterleitungsvorrichtung zugeordnet ist (Phase 404). Die Bestimmung kann beispielsweise vorgenommen werden, indem die Quell-MAC-Adresse des empfangenen Pakets mit den MAC-Adressen verglichen wird, die den jeweiligen Downstreamports der Paketweiterleitungsvorrichtung zugeordnet sind. Wie oben erörtert kann ein Downstreamport sowohl einer MAC-Adresse, die diesem Downstreamport zugeordnet ist, als auch den MAC-Adressen von Downstreamports kaskadierter Paketweiterleitungsvorrichtungen zugeordnet sein, die mit diesem Downstreamport verbunden sind. Wenn die Quell-MAC-Adresse des Pakets einem Downstreamport der Paketweiterleitungsvorrichtung zugeordnet ist, umfasst der Prozess 400 ein Weiterleiten des Pakets über den Downstreamport, der der Quell-MAC-Adresse des Pakets zugeordnet ist (Phase 406). Das Weiterleiten des Pakets auf der Basis der Bestimmung einer Zuordnung zwischen der Quell-MAC-Adresse des Pakets und einem der Downstreamports der Paketweiterleitungsvorrichtung kann dabei helfen, Angriffe durch Hostvorrichtungen zu verhindern, die möglicherweise versuchen, sich als weitere Hostvorrichtung auszugeben. Die Auswahl eines Downstreamports, von dem ein Paket abgehen wird, wird von der Upstream-Routingvorrichtung statt von der Paketweiterleitungsvorrichtung getroffen. Die Paketweiterleitungsvorrichtung wird jedes von der Routingvorrichtung empfangene Paket über den Downstreamport weiterleiten, dessen MAC-Adresse der Quell-MAC-Adresse des Pakets zugeordnet ist, und zwar unabhängig von der Zieladresse des Pakets. Die Routingvorrichtung kann eine Zielhostvorrichtung auswählen, die ein Paket empfangen soll, indem sie als Ziel-MAC-Adresse des Pakets die MAC-Adresse festlegt, die dem Downstreamport zugeordnet ist, für den die Zielhostvorrichtung ausgewählt wird. Als Folge wird verhindert, dass eine weitere Hostvorrichtung, die versucht, für die Zielhostvorrichtung bestimmte Pakete zu empfangen, beispielsweise durch Bekanntmachung einer MAC-Adresse, die mit der MAC-Adresse der Zielhostvorrichtung übereinstimmt, solche Pakete empfangen kann. Im Gegensatz dazu leiten die meisten Netzvorrichtungen Pakete basierend auf der Ziel-MAC-Adresse des Pakets und nicht auf der Quell-MAC-Adresse weiter und leiten daher mit einer größeren Wahrscheinlichkeit Pakete an Hostvorrichtungen weiter, die auf bösartige Weise vorgeben, eine Zielhostvorrichtung zu sein.
-
Implementierungen des Gegenstands und die in dieser Beschreibung beschriebenen Operationen können in digitalen elektronischen Schaltungen oder in Computersoftware, die in einem physischen Medium, Firmware oder Hardware verkörpert ist, implementiert werden, einschließlich der in dieser Beschreibung offengelegten Strukturen und ihrer strukturellen Äquivalente oder in Kombinationen von einer oder mehrerer davon. Implementierungen des in dieser Beschreibung beschriebenen Gegenstands können als ein oder mehrere Computerprogramme auf einem physischen Medium, d. h. als ein oder mehrere Module von Computerprogrammbefehlen, die auf einem oder mehreren Computerspeichermedien zur Ausführung durch eine Datenverarbeitungsvorrichtung oder die Steuerung des Betriebs einer Datenverarbeitungsvorrichtung codiert sind, implementiert werden. Ein Computerspeichermedium kann eine maschinell lesbare Speichervorrichtung, ein maschinell lesbarer Speicherträger, eine Speichervorrichtung mit wahlfreiem oder seriellem Zugriff oder eine Kombination aus einem oder mehreren davon sein oder in ihnen enthalten sein. Das Computerspeichermedium kann eine oder mehrere unterschiedliche physische Komponenten oder Medien (z. B. mehrere CDs, Disks oder andere Speichervorrichtungen) sein bzw. darin enthalten sein. Das Computerspeichermedium kann konkret und nichttransitorisch sein.
-
Ein Computerprogramm (auch bezeichnet als Programm, Software, Softwareanwendung, Script oder Code) kann in einer beliebigen Form von Programmiersprache geschrieben sein, einschließlich kompilierter Sprachen, interpretierter Sprachen, deklarativer Sprachen und verfahrensorientierter Sprachen, und das Computerprogramm kann in jeder beliebigen Form eingesetzt werden, darunter als unabhängiges Programm oder als ein Modul, eine Komponente, eine Subroutine, ein Objekt oder eine andere Einheit, die zur Verwendung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei, die andere Programme oder Daten enthält (z. B. ein oder mehrere Scripts, die in einem Dokument in Auszeichnungssprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Bibliotheken, Unterprogramme oder Teile von Code speichern) gespeichert sein. Ein Computerprogramm kann auf einem Computer oder mehreren Computern, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind, eingesetzt oder ausgeführt werden.
-
Die Prozesse und Logikabläufe, die in dieser Beschreibung beschrieben sind, können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Aktionen durch Bearbeiten von Eingabedaten und Erzeugen einer Ausgabe durchzuführen. Die Prozesse und Logikabläufe können auch von Spezial-Logikschaltungen durchgeführt werden und die Vorrichtung kann als eine solche Spezial-Logikschaltung wie etwa als feldprogrammierbare Gatteranordnung (FPGA) oder anwendungsspezifische integrierte Schaltung (ASIC) implementiert sein. Solch eine Spezial-Logikschaltung kann als Computerprozessor bezeichnet werden, selbst wenn es sich nicht um einen Universalprozessor handelt.
-
Obwohl diese Patentschrift viele spezifische Implementierungsdetails enthält, sollten diese nicht als Beschränkungen des Umfangs einer Erfindung oder des Beanspruchbaren ausgelegt werden, sondern vielmehr als Beschreibungen von Merkmalen, die für bestimmte Ausführungsformen spezifisch sein können. Bestimmte Merkmale, die in dieser Beschreibung im Zusammenhang mit getrennten Ausführungsformen beschrieben sind, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzelnen Ausführungsform beschrieben sind, auch in mehreren Ausführungsformen getrennt oder in jeder geeigneten Unterkombination implementiert werden. Obwohl darüber hinaus Merkmale oben so beschrieben sein können, dass sie in bestimmten Kombinationen agieren und sogar anfänglich derart beansprucht werden, können ein oder mehrere Merkmale aus einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgenommen werden und die beanspruchte Kombination kann auf eine Unterkombination oder Variation einer Unterkombination ausgerichtet werden.
-
Obwohl Operationen in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, sollte dies ebenfalls nicht dahingehend verstanden werden, dass es erforderlich ist, dass solche Operationen in der gezeigten Reihenfolge oder in sequentieller Reihenfolge ausgeführt werden oder dass alle dargestellten perationen durchgeführt werden, um wünschenswerte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemmodule und Komponenten in den oben beschriebenen Ausführungsformen nicht so verstanden werden, dass eine solche Trennung in allen Ausführungsformen erforderlich ist, und es sollte verstanden werden, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in einem einzigen Softwareprodukt integriert werden können oder in mehreren Softwareprodukten verpackt werden können.
-
Verweise auf ”oder” können als einschließend ausgelegt werden, so dass jegliche Begriffe, die mit ”oder” beschrieben werden, einen, mehr als einen oder alle der beschriebenen Begriffe anzeigen können. Die Bezeichnungen ”erste/r/s”, ”zweite/r/s”, ”dritte/r/s” usw. stehen nicht unbedingt für eine Reihenfolge und werden im Allgemeinen nur verwendet, um zwischen gleichen oder ähnlichen Objekten oder Elementen zu unterscheiden.
-
Somit sind bestimmte Implementierungen des Gegenstandes beschrieben worden. Andere Ausführungsformen liegen innerhalb des Umfangs der folgenden Ansprüche. Zum Beispiel können in einigen Fällen die in den Ansprüchen aufgeführten Aktionen in einer anderen Reihenfolge ausgeführt werden und dennoch wünschenswerte Ergebnisse erzielen. Weiterhin erfordern die in den begleitenden Figuren dargestellten Prozesse nicht notwendigerweise die bestimmte gezeigte Reihenfolge oder sequentielle Reihenfolge, um wünschenswerte Ergebnisse zu erzielen. In bestimmten Implementierungen können Multitasking oder Parallelverarbeitung verwendet werden.