-
Ein
Teil dieses Patentdokuments enthält
Material, welches dem Urheberschutz unterliegt. Dieses Patentdokument
kann Sachen zeigen und/oder beschreiben, welche zur Aufmachung des
Inhabers gehören
oder gehören
werden. Der Urheber und der Aufmachungsinhaber hat keine Einwände gegen eine
Reproduktion der Patentoffenbarung durch Dritte, so wie sie in den
Patentakten oder Aufzeichnungen des Patent- und Markenamts erscheint,
behält sich
ansonsten aber alle Urheber- und Aufmachungsrechte vor.
-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft das Prüfen und Analysieren von Kommunikationsnetzwerken, -systemen
und -einrichtungen und insbesondere das Aufbauen und Verwenden von
virtuellen Netzwerkadressen.
-
Beschreibung des verwandten
Standes der Technik
-
Netzwerke,
wie das Internet, bieten vielfältige
Daten von allen möglichen
Arten, welche unter Verwendung vielfältiger Netzwerkeinrichtungen übermittelt
werden, einschließlich
von Servern, Routern, Hubs, Switches und anderen Einrichtungen.
Bevor ein Netzwerk genutzt wird, wird das Netzwerk, einschließlich der
darin enthaltenen Netzwerkeinrichtungen üblicherweise getestet, um einen
erfolgreichen Betrieb sicherzustellen. In ähnlicher Weise können vor
dem Plazieren einer Website in dem Internet die Website und die
zugehörigen
Server und die anderen Netzwerkeinrichtungen getestet werden, um
sicherzustellen, dass sie wunschgemäß funktionieren und die voraussichtlichen
Verkehrsanforderungen aushalten können.
-
Um
den Aufbau, die Installation und die Wartung von Netzwerken und
Websites zu unterstützen, können Netzwerke
mit Netzwerkanalysierereinrichtungen, Netzwerküberwachungseinrichtungen und Netzwerkprotokollkonformitätssystemen
erweitert werden, welche hier alle als Netzwerktestsysteme bezeichnet
werden. Die Netzwerktestsysteme können das Senden, Erfassen und
Analysieren von Netzwerkdatenübertragungen
ermöglichen.
-
Eine
Art von Netzwerktestsystem ist der Verkehrsgenerator. Verkehrsgeneratoren
werden verwendet, um simulierte Daten auf einem wirklichen Netzwerk
oder Testnetzwerk zu verursachen. Einige Verkehrsgeneratoren werden
mit Verkehrsmustern geladen, und der Verkehrsgenerator verursacht
gemäß diesen
Mustern Daten auf dem Netzwerk. Beispielsweise können Verkehrsgeneratoren verwendet werden,
um Websites und Netzwerkkommunikationseinrichtungen zu testen.
-
So
wie der Begriff hier verwendet wird, ist eine netzwerkfähige Einrichtung
eine beliebige Einrichtung, die die Möglichkeit hat, über ein
Netzwerk zu kommunizieren. In vielen Netzwerken haben netzwerkfähige Einrichtungen
jeweils eine Media Access Control- bzw. Medienzugriffssteuerungs-Adresse (MAC-Adresse),
um die netzwerkfähige
Einrichtung in dem Netzwerk zu identifizieren. Eine Recheneinrichtung
oder eine andere netzwerkfähige
Einrichtung kann eine Netzwerkschnittstellenkarte (NIC) zum Zugreifen
auf ein Ethernet-Netzwerk enthalten. Die NIC hat eine eindeutige
MAC-Adresse.
-
Eine
MAC-Adresse wird von Industrienormen als Hardwareadresse definiert,
welche die netzwerkfähige
Einrichtung eindeutig identifiziert. In der Ethernet-Norm und der
Norm IEEE 802, enthält
die MAC-Adresse sechs Oktetts mit insgesamt 48 Bits. Die ersten
drei Oktetts der Adresse entsprechen dem organisatorisch eindeutigen
Identifizierer (OUI – Organizationally
Unique Identifier) des Herstellers. Der OUI wird von dem IEEE zugewiesen.
Die verbleibenden drei Oktetts der Adresse identifizieren die netzwerkfähige Einrichtung
eindeutig und werden als organisatorisch eindeutige Adresse (OUA – Organizationally
Unique Address) bezeichnet. Die OUA wird üblicherweise von dem Hersteller
der netzwerkfähigen
Einrichtung zugewiesen. Die MAC-Adressen werden üblicherweise zugewiesen, wenn
die netzwerkfähige
Einrichtung hergestellt wird und können in Firmware gespeichert
werden.
-
Ein
Patent,
US 5,590,285 mit
dem Titel Virtual Network Addresses, schlägt vor, dass mehrere Hardware-MAC-Adressen
in eine Netzwerkschnittstellenkarte eingebaut werden und dass nach
einer Mehrzahl von MAC-Adressen gefiltert wird.
-
In
aktuellen Netzwerktestsystemen und in Netzwerktestsystemen enthaltenen
Karten hat jedes NIC eine einzige eindeutige MAC-Adresse.
-
Gemäß der vorliegenden
Erfindung werden hier eine Netzwerkkarte und ein Netzwerktestsystem und
ein Verfahren beschrieben und in den beigefügten Ansprüchen spezifiziert.
-
BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt
ein Blockschaltbild einer erfindungsgemäßen Umgebung.
-
2 zeigt
ein Blockschaltbild einer einem Aspekt der Erfindung entsprechenden
Netzwerkkarte.
-
3 zeigt
ein Blockschaltbild einer einem anderen Aspekt der Erfindung entsprechenden
Netzwerkkarte.
-
4 zeigt
ein Flussdiagramm der Aktionen, die gemäß einem Aspekt der Erfindung
ausgeführt werden,
um mehrere virtuelle MAC-Adressen zu erzeugen.
-
5 zeigt
ein Flussdiagramm der Aktionen, die gemäß einem Aspekt der Erfindung
ausgeführt werden,
um eine an eine der Mehrzahl von virtuellen MAC-Adressen adressierte
Dateneinheit zu empfangen.
-
6 zeigt
ein Flussdiagramm der Aktion, die gemäß einem Aspekt der Erfindung
ausgeführt werden,
um eine Dateneinheit von einer der Mehrzahl der virtuellen MAC-Adressen
zu senden.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
In
dieser Beschreibung sind die gezeigten Ausführungsformen und Beispiele
als typische Beispiele zu betrachten und nicht als Beschränkungen der
Einrichtungen und Verfahren der vorliegenden Erfindung.
-
Systeme der Erfindung
-
Es
wird nun auf 1 Bezug genommen, in der ein
Blockschaltbild einer erfindungsgemäßen Umgebung gezeigt ist. Die
Umgebung enthält
ein Netzwerkprüfsystem
bzw. -testsystem 100, ein Netzwerk 140 und mehrere
netzwerkfähige
Einrichtungen 150.
-
Das
Netzwerktestsystem 100 kann eines oder mehrere der folgenden
Elemente enthalten oder sein: einen Verkehrsgenerator, einen Leistungsanalysator,
ein Konformitätsvalidierungssystem,
einen Netzwerkanalysator und/oder ein Netzwerkmanagementsystem.
Das Netzwerktestsystem 100 kann eine oder mehrere Netzwerkkarten 120 und
eine Rückwandplatine 110 enthalten.
Das Netzwerktestsystem 100 kann die Form einer Europakarte
(card rack) haben, wie in 1 gezeigt
ist, oder kann eine integrierte Einheit sein. Alternativ kann das
Netzwerktestsystem aus einer Anzahl von separaten Einheiten bestehen,
die zusammenwirken, um die Verkehrserzeugung und andere Aufgaben
bereitzustellen. Das Netzwerktestsystem 100 und die Netzwerkkarten 120 können einen
oder mehrere bekannte Standards oder Protokolle unterstützen, beispielsweise
den 10-Gigabit-Ethernet-Standard und den Fibre-Channel-Standard,
sie können
gesetzlich geschützte
Protokolle unterstützen
und können
andere Protokolle unterstützen
sowie einen oder mehrere Arten der IEEE-802-Ethernet-Standards,
wie beispielsweise IEEE 802.3 und IEEE 802.11.
-
Die
Netzwerkkarten 120 können
ein oder mehrere feldprogrammierbare Gate-Arrays (FPGA – field
programmable gate arrays), anwendungsspezifische integrierte Schaltungen
(ASIC – application specific
integrated circuits), programmierbare Logikeinrichtungen (PLD – programmable
logic devices), programmierbare Logik-Arrays (PLA – programmable
logic arrays), Prozessoren und andere Arten von Einrichtungen enthalten.
-
Zusätzlich können die
Netzwerkkarten 120 Software und Firmware enthalten. Der
Begriff Netzwerkkarte umfasst Leitungskarten, Testkarten, Analysekarten,
Netzwerkleitungskarten, Lademodule, Schnittstellenkarten, Netzwerkschnittstellenkarten, Datenschnittstellenkarten,
Paketmaschinenkarten, Servicekarten, Smart-Karten, Switch- bzw.
Schalterkarten, Relais-Zugangskarten und dergleichen.
-
Jede
Netzwerkkarte 120 kann eine oder mehrere Schaltungen, Chips
oder Chipsätze
enthalten, die es der Netzwerkkarte 120 erlauben, als eine oder
mehrere netzwerkfähige
Einrichtung bzw. Einrichtungen zu arbeiten. Eine netzwerkfähige Einrichtung
ist eine Einrichtung, welche über
das Netzwerk 140 kommunizieren kann. Bei einer Ausführungsform enthält jede
Netzwerkkarte 120 eine Schaltung, einen Chip oder einen
Chipsatz und zugehörige
Hardware und Software, welche es der Netzwerkkarte 120 ermöglichen, über ein
Netzwerk zu kommunizieren. Die Netzwerkkarten 120 können über eine
Verdrahtung, eine optische Faser, drahtlos oder auf sonstige Weise
mit dem Netzwerk verbunden sein. Jede Netzwerkkarte 120 kann
ein einziges Kommunikationsprotokoll unterstützen, kann eine Anzahl von
verwandten Protokollen unterstützen
oder kann eine Anzahl von nicht verwandten Protokollen unterstützen. Die
Netzwerkkarten 120 können
in dem Netzwerktestsystem 100 permanent installiert sein,
können austauschbar
sein oder können
eine Kombination aus beidem sein. Wie detaillierter im folgenden
beschrieben wird, kann jede Netzwerkkarte 120 zusätzlich oder
anstelle einer einzigen traditionellen MAC-Adresse eine oder mehrere
virtuelle MAC-Adressen bereitstellen. Auf diese Weise kann jede
Netzwerkkarte 120 als mehr als ein Knoten oder Client in
dem Netzwerk dienen. Jede Netzwerkkarte 120 kann mehrere
MAC-Adressen enthalten und kann mehrere virtuelle Netzwerkschnittstellenkarten (NICs – network
interface cards) emulieren und/oder mehrere netzwerkfähige Einrichtungen.
-
Die
Rückwandplatine 110 kann
als Bus oder Kommunikationsmedium für die Netzwerkkarten 120 dienen.
Die Rückwandplatine 110 kann
die Netzwerkkarten 120 auch mit Energie versorgen.
-
Die
netzwerkfähigen
Einrichtungen 150 können
beliebige Einrichtungen sein, die über das Netzwerk 140 kommunizieren
können.
Die netzwerkfähigen
Einrichtungen 150 können
Recheneinrichtungen sein, wie beispielsweise Workstations, Personalcomputer,
Server, tragbare Computer, PDA-Computer (PDAs), Rechentabletts und
dergleichen; Peripherieeinrichtungen, wie beispielsweise Drucker,
Scanner, Facsimilegeräte
und dergleichen; netzwerkfähige Speichereinrichtungen,
einschließlich
Plattenlaufwerke, wie beispielsweise Network-Attached-Storage(NAS) – und Storage-Area-Network
(SAN)-Einrichtungen; Netzwerkeinrichtungen, wie beispielsweise Router,
Relais, Firewalls, Hubs, Switches, Brücken und Multiplexer. Zusätzlich können die
netzwerkfähigen
Einrichtungen 150 Anwendungen wie Kühlschränke, Waschmaschinen und dergleichen umfassen,
sowie Wohn- oder Geschäfts-HLK-Systeme,
Alarmsysteme, Telefone sowie beliebige andere Einrichtungen oder
Systeme, die über
ein Netzwerk kommunizieren können.
Die netzwerkfähigen
Einrichtungen 150 können
als Einrichtungen im Test bezeichnet werden (DUTs – devices
under test).
-
Das
Netzwerk 140 kann ein lokales Netzwerk (LAN), ein Fernnetzwerk
(WAN), ein Speichernetzwerk (SAN) sein. Das Netzwerk 140 kann
verdrahtet, drahtlos oder eine Kombination von beiden sein und kann
das Internet enthalten oder das Internet sein. Das Netzwerk 140 kann öffentlich
oder privat sein und kann ein getrenntes Testnetzwerk sein. Datenübertragungen
in dem Netzwerk 140 können
verschiedene Formen aufweisen, einschließlich Frames, Zellen, Datagrammen,
Paketen oder anderen Informationseinheiten, die hier alle als Dateneinheiten
bezeichnet werden. Das Netzwerktestsystem 100 und die netzwerkfähigen Einrichtungen 150 können gleichzeitig
miteinander kommunizieren und es kann mehrere logische Kommunikationsverbindungen
zwischen dem Netzwerktestsystem 100 und einer vorgegebenen
netzwerkfähigen
Einrichtung 150 geben. Das Netzwerk 150 kann aus
einer Vielzahl von Knoten bestehen, welche zahlreiche physikalischen
und logischen Pfade zur Übertragung
von Daten bereitstellt.
-
Es
wird nun auf 2 Bezug genommen, in der ein
Blockschaltbild einer einem Aspekt der Erfindung entsprechenden
Netzwerkkarte 210 dargestellt ist. Die Netzwerkkarte 210 kann
die Netzwerkkarte 120 gemäß 1 sein.
Die Netzwerkkarte 210 enthält einen Prozessor 212,
einen Speicher 216 und eine Netzwerkschnittstellenschaltung 218.
Der Prozessor 212, der Speicher 216 und die Netzwerkschnittstellenschaltung 218 können auf
einem einzigen Chip beispielsweise einem FPGA enthalten sein oder
können
eine Kombination mehrerer Chips oder Einrichtungen sein. Die Netzwerkschnittstellenschaltung 218 kann
ein darin enthaltenes MAC-Management-Modul 214 aufweisen,
oder ein FPGA mit einer Netzwerkschnittstellenschaltung 218 kann
ein darin integriertes MAC-Management-Modul aufweisen. Alternativ
kann das MAC-Management-Modul 214 als Software auf einem
Festplattenlaufwerk oder einem anderen maschinenlesbaren Medium
enthalten sein (z. B. einem Kompakkt-Disc-Nur-Lese-Speicher bzw. CD-ROM,
Diskette) oder auf einer Flash-Speichereinrichtung oder einer anderen
Speichereinrichtung (z. B. einem elektronisch löschbaren programmierbaren Nur-Lese-Speicher
oder EEPROM), welche mit dem Prozessor 212 und/oder der
Netzwerkschnittstellenschaltung 218 über einen Bus oder eine andere
Kopplungstechnik gekoppelt sein können.
-
Der
Prozessor 212 kann mit dem Speicher 216 und der
Netzwerkschnittstellenkarte 218 gekoppelt sein. Der Prozessor 212 kann
jeder beliebige Prozessor oder jede beliebige Verarbeitungseinrichtung
sein, die Befehle ausführen
kann. Befehle umfassen Objektcode, Assemblercode, Befehle höherer Programmiersprachen,
und andere Befehlsarten. Die Befehle können permanent oder vorübergehend
auf der Netzwerkkarte 210 gespeichert werden. Der Prozessor 212 kann
von außerhalb
der Netzwerkkarte Befehle empfangen, beispielsweise Verkehrsmuster, die
die Netzwerkkarte erzeugen soll. Der Prozessor 212 kann
eine Anwendungsprogrammierschnittstelle (API) zur externen Steuerung
der Netzwerkkarte 210 aufweisen. Ein Benutzer kann ein
Softwareprogramm auf einem Host verwenden, um Kommandos einzugeben,
welche die Befehle erzeugen, die an den Prozessor 212 gesendet
werden. Der Prozessor 212 kann die Befehle im Speicher 216 vor,
nach und während
ihrer Ausführung
speichern.
-
Der
Speicher 216 kann eine beliebige Speichereinrichtung sein,
einschließlich
Direktzugriffsspeicher (RAM). Zusätzliche Speichereinrichtungen können in
der Netzwerkkarte 210 enthalten sein. Andere Arten von
Speichereinrichtungen, beispielsweise Flash-Speicher sowie EEPROMs,
können
in der Netzwerkkarte 210 enthalten sein.
-
Die
Netzwerkschnittstellenschaltung 218 enthält die Software,
Firmware und/oder Hardware, welche es der Netzwerkkarte 210 ermöglicht, über ein
Netzwerk via PHY 220 zu kommunizieren. Die Netzwerkschnittstellenschaltung 218 kann
als Port bezeichnet werden. Es kann mehrere Ports auf jeder Netzwerkkarte 210 geben.
Jeder Port/jede Netzwerkschnittstellenschaltung 218 kann
ein oder mehrere Protokolle unterstützen, welche der Datenverbindungsschicht(DLL)-Anforderung
des OSI-Referenzmodells und/oder den LLC- und MAC-Schichten des Standards
IEEE 802 entsprechen.
-
Das
MAC-Management-Modul 240 kann Software und/oder Firmware
sein, welche ermöglicht, dass
mehrere MAC-Adressen der Netzwerkschnittstellenschaltung 218 zugeordnet
werden. Ein Anwendungsprogramm oder ein anderes Softwareprogramm,
Modul oder Subroutine kann anfordern, dass eine oder mehrere MAC-Adressen der Netzwerkschnittstelle 218 zugewiesen
werden. Dies kann dadurch erzielt werden, dass eine Anforderung
an das MAC-Management-Modul 214 der
Netzwerkschnittstellenschaltung über
eine API ausgegeben wird, dass ein Prozeduraufruf oder eine Subroutine
aufgerufen wird, oder dadurch dass Daten an eine Speicher- oder
Registerstelle der Netzwerkschnittstellenkarte platziert werden
und ein Interrupt aufgerufen wird. Das MAC-Management-Modul 214 kann eine MAC-Adresstabelle
oder eine andere Datenstruktur führen,
um eine Liste der MAC-Adressen zu führen, die der Netzwerkschnittstelle 218 zugewiesen
werden und mit dieser verbunden sind. Die MAC-Adresstabelle kann
im Speicher 216 gespeichert werden, in einer Speichereinrichtung
auf dem FPGA, ASIC oder einer anderen Einrichtung, auf welcher die
Netzwerkschnittstellenschaltung 218 implementiert ist.
-
Die
PHY 220 kann ein dickes Koaxialkabel (beispielsweise RG-11)
sein, ein dünnes
Koaxialkabel (beispielsweise RG-58), ein Kabel der Kategorie (CAT)
3, 4 oder 5, welche auch bekannt ist als ungeschirmtes verdrilltes
Paar (UTP – unshielded
twisted pair), drahtlos oder dergleichen. Die Netzwerkschnittstellenschaltung 218 und
die PHY 220 können
das Ethernet, Fast-Ethernet, Gigabit-Ethernet, IEEE 802 und/oder
andere Kommunikationsstandards unterstützen, einschließlich beispielsweise
des asynchronen Transfermodus (ATM), Fiber-Distributed-Data-Interface (FDDI),
Token-Ring, 1000BaseT, 100BaseT, 10BaseT, 10BaseF, 10Base2, 10Base5 und
dergleichen. Das im Zusammenhang mit 1 oben beschriebene
Netzwerk 140 unterstützt
auch einen oder mehrerer dieser Standards.
-
Gemäß den hier
beschriebenen Systemen und Verfahren kann die Netzwerkschnittstelle 118 ausgehende
Dateneinheiten 230 von mehreren MAC-Adressen über PHY 220 erzeugen.
Die Netzwerkschnittstellenschaltung 218 kann eingehende Dateneinheiten 240 empfangen,
die an mehrere MAC-Adressen über
PHY 220 adressiert sind.
-
Es
wird nun auf 3 Bezug genommen, in der ein
Blockschaltbild der Netzwerkkarte 300 gemäß einem
Aspekt der Erfindung dargestellt ist. Die Netzwerkkarte 300 kann
die Netzwerkkarte 120 gemäß 1 sein.
Die Netzwerkkarte 300 kann eingehende Dateneinheiten empfangen
und ausgehende Dateneinheiten über
die PHY 350 senden. Die Netzwerkkarte 300 enthält einen
Medienzugriffssteuerungs(MAC)-Schichttreiber 340, welcher
die Kommunikation über
die spezielle Art der physikalischen Schicht, d. h. die PHY 350,
ermöglicht.
Beispielsweise kann der Treiber 340 eine Kommunikation über ein oder
mehrere Koaxialkabel, ein dünnes
Koaxialkabel, CAT-5-Cable/UTP, drahtlos und auf andere Weise unterstützen.
-
Der
Demultiplexer 330 ist in der Netzwerkkarte 330 enthalten.
Der Demultiplexer 330 ist mit dem Treiber 340 virtuell
oder logisch gekoppelt. Der Demultiplexer 330 empfängt von
dem Treiber 340 eingehende Dateneinheiten. Die eingehenden
Dateneinheiten können
an eine oder mehrere MAC-Adressen adressiert sein. Der Demultiplexer 330 ist
mit den Software-Netzwerkein richtungen 320 logisch oder
virtuell gekoppelt 332. Der Demultiplexer 330 leitet
eingehende Dateneinheiten, die jeder der verschiedenen MAC-Adressen
zugeordnet sind, an jede der Software-Netzwerkeinrichtungen 320 weiter
oder macht sie diesen verfügbar.
-
Die
Software-Netzwerkeinrichtungen 320 sind Einrichtungen,
die gemäß dem Linux-Betriebssystem 310 oder
gemäß einem
anderen Betriebssystem erzeugt wurden. Im Linux-Betriebssystem oder in
Versionen des Unix-Betriebssystems kann ein IOCTL-Aufruf verwendet
werden, um Software-Netzwerkeinrichtungen zu erzeugen/auf diese
zuzugreifen. Jeder Software-Netzwerkeinrichtung 320 ist
eine andere MAC-Adresse zugeordnet.
-
Der
Treiber 340 verbindet jede MAC-Adresse mit einer entsprechenden
Software-Netzwerkeinrichtung bzw. bildet sie darauf ab. Der Treiber 340 kann
eine MAC-Adresstabelle in Form einer Datenbank, Liste oder einer
anderen Datenstruktur führen, welche
MAC-Adressen Netzwerkeinrichtungen zuordnet. Auf diese MAC-Adressliste
kann zugegriffen werden, wenn eine IOCTL, API oder eine andere Subroutine
oder Prozedur verwendet wird, um auf eine MAC-Adresse/Netzwerksoftwareeinrichtung
zuzugreifen und/oder zu erzeugen.
-
Die
Software-Netzwerkeinrichtungen 320 leiten eingehende Dateneinheiten
an Netzwerkschicht-, Sitzungsschicht-, Präsentationsschicht- und Anwendungsschicht-Softwareprogramme über das
Linux-Betriebssystem 310 weiter oder machen sie diesen
verfügbar.
Die Sitzungsschicht und/oder Netzwerkschicht-Softwareprogramme können in
dem Linux-Betriebssystem 310 enthalten sein. Die in dem Linux-Betriebssystem
enthaltene Netzwerkschicht kann beispielsweise das TCP-Protokoll
(transmission control protocol), das IP-Protokoll (internet protocol), das
UDP-Protokoll (user datagram protocol) und/oder andere Protokolle
unterstützen.
Buchsen bzw. Sockel oder andere API, die von einem Betriebssystem
wie Linux 310 bereitgestellt werden, können von den oberen Schichten
und den Anwendungsprogrammen 302 verwendet werden, um auf die
Software-Netzwerkeinrichtungen 320 zuzugreifen. Auf diese
Weise können
Anwendungsprogramme und andere Software der oberen Schichten auf die
Soft ware-Netzwerkeinrichtungen 320 mit den virtuellen MAC-Adressen
in der gleichen Weise zugreifen, wie die Anwendungsprogramme auf
traditionelle Netzwerkeinrichtungen zugreifen.
-
Von
jeder der verschiedenen MAC-Adressen ausgehende Dateneinheiten können erzeugt
und gesendet werden auf der Basis von Befehlen, die von einem Anwendungsschichtprogramm 302 außerhalb der
Netzwerkkarte 300 empfangen werden. Bei anderen Ausführungsformen
kann das Anwendungsprogramm 302 in der Netzwerkkarte enthalten
sein und/oder mehrere Anwendungsprogramme 302 können sowohl
außerhalb
der Netzwerkkarte 300 als auch in der Netzwerkkarte 300 angeordnet
sein. Das Anwendungsprogramm 302 kann angeben, dass Dateneinheiten
von einer speziellen MAC-Quelladresse gesendet werden, indem auf
die entsprechende Software-Netzwerkeinrichtung 320 zugegriffen
wird. Die Software-Netzwerkeinrichtungen 320 empfangen
Informationen und/oder Befehle, um Dateneinheiten zu erzeugen und/oder
von einem oder mehreren Anwendungsprogrammen 302 oder anderen
Programmen der oberen Schichten über
das Linux Betriebssystem 310 zu senden. Jede der Software-Netzwerkeinrichtungen 320 ist
logisch oder virtuell mit dem Treiber 340 gekoppelt 322.
von einem Netzwerkschichtprogramm, einem Anwendungsprogramm oder
einem anderen Programm einer oberen Schicht initiierte ausgehende
Dateneinheiten werden von einer Netzwerkeinrichtung 320 über den
Treiber 340 über
die PHY 350 gesendet.
-
Wie
in den vorhergehenden Absätzen
angegeben ist, können
die Software-Netzwerkeinrichtungen 320 in Kombination mit
unterstützenden
Komponenten jeweils als virtueller NIC und/oder Netzwerkknoten dienen.
Auf diese weise kann ein Anwendungsprogramm eine einzige Netzwerkkarte
zum Emulieren mehrerer virtueller NICs verwenden, die jeweils eine
andere MAC-Adresse haben. Die MAC-Adressen können zufällig und/oder sequentiell erzeugt
werden. Die MAC-Adressen können
einen organisatorisch eindeutigen Identifizierer (OUI – Organizationlly
Unique Identifier) des Einrichtungs- oder Systemherstellers und
eine sequentiell oder zufällig
ausgewählte
organisatorisch eindeutige Adresse (OUA – Organisationally Unique Address)
enthalten. Das Testsystem kann es einem Benutzer erlauben, OUIs
und OUAs manuell auszuwählen.
Das Testsystem kann es einem Benutzer ermöglichen, auszuwählen, ob
die OUI und/oder die OUA zufällig oder
sequentiell erzeugt werden soll.
-
Anders
als das US-Patent Nr. 5,590,285 mit dem Titel Virtuelle Netzwerkadressen,
welches beschreibt, dass mehrere MAC-Hardware-Adressen in eine Netzwerkschnittstellenkarte
eingebaut werden, ermöglichen
die hier beschriebenen Systeme und Verfahren, dass ein Anwendungsprogramm
mehrere MAC-Adressen für
eine einzige Netzwerkkarte über einen
Prozeduraufruf oder eine andere Technik erzeugt, dass die gewünschte(n)
MAC-Adresse oder -Adressen
angegeben werden, dass angegeben wird, ob die MAC-Adresse oder -Adressen
ganz oder teilweise zufällig
erzeugt werden soll(en) und/oder dass angegeben wird, ob die MAC-Adresse
oder -Adressen sequentiell erzeugt werden soll(en). Dementsprechend
kann eine einzige Netzwerkkarte, welche die hier beschriebenen Systeme
und Verfahren verwendet, von einem Netzwerktestprogramm beim Testen
eines Netzwerks verwendet werden, um mehrere traditionelle Hardware-NICs
zu ersetzen.
-
Erfindungsgemäße Verfahren
-
Es
wird nun auf 4 Bezug genommen, in der ein
Flussdiagramm der gemäß einem
Aspekt der Erfindung ausgeführten
Aktionen gezeigt ist, um mehrere virtuelle MAC-Adressen zu erzeugen.
Es wird eine Anforderung zur Erzeugung einer Anzahl virtueller MAC-Adressen
empfangen, wie in Block 410 gezeigt ist. Diese Anforderung
kann von einem Anwendungsprogramm, beispielsweise einem Netzwerk-Testprogramm,
einem Netzwerkverkehrserzeugungsprogramm sowie von anderen Programmen
erstellt werden. Diese Anforderung kann unter Verwendung eines Prozeduraufrufs
erstellt werden, kann erreicht werden, indem Daten in Registern
eines Prozessors platziert werden und ein Interrupt aufgerufen wird
und durch andere Techniken. Diese Anforderung kann angeben, dass
eine oder mehrere Software-Netzwerkeinrichtungen mit einer spezifizierten MAC-Adresse
erzeugt werden sollen, einer zufälligen MAC-Adresse
oder einer teil weise spezifizierten und teilweise zufälligen MAC-Adresse.
Das Netzwerktestprogramm oder eine andere Anwendung kann spezielle
MAC-Adressen oder Teile von diesen bezeichnen, kann numerische Grenzen
spezifizieren, innerhalb der die MAC-Adressen zufällig und/oder sequentiell
erzeugt werden sollen und/oder kann fordern, dass eine oder mehrere
OUIs und die OUAs der MAC-Adressen zufällig und/oder sequentiell erzeugt
werden.
-
Die
angeforderte Anzahl virtueller MAC-Adressen wird erzeugt, wie es
im Block 420 dargestellt ist. Für jede der virtuellen MAC-Adressen kann
eine Software-Netzwerkeinrichtung erzeugt werden, wie in Block 430 dargestellt
ist. Dies kann dadurch erreicht werden, dass eine Linux-Einrichtungserzeugungstechnik
verwendet wird, beispielsweise ein IOCTL-Aufruf. Eine MAC-Adresse,
welche die MAC-Adressen und die zugehörigen Software-Netzwerkeinrichtungen
auflistet, wird aktualisiert wie in Block 440 gezeigt ist.
-
Die
virtuellen MAC-Adresstabellenliste und die zugehörigen Software-Netzwerkeinrichtungen werden
zurückgegeben
oder verfügbar
gemacht, wie im Block 450 gezeigt ist. Dies kann dadurch
erreicht werden, dass ein Zeiger auf die Software-Netzwerkeinrichtung
weitergeleitet wird, welcher von dem Betriebssystem erkannt werden
kann, dass ein Identifizierer der Software-Netzwerkeinrichtung zurückgesendet
wird, der von dem Betriebssystem erkannt wird, oder durch andere
Techniken. Der Identifizierer kann eine Textkette, eine Zahl, eine
Kombination aus beiden oder ein beliebiger Identifizierer sein.
-
Es
wird nun auf 5 Bezug genommen, in der ein
Flussdiagramm der Aktionen gezeigt ist, die gemäß einem Aspekt der Erfindung
ausgeführt
werden, um eine Dateneinheit zu empfangen, die an eine der mehreren
virtuellen MAC-Adressen adressiert ist. Eine an eine der einer Netzwerkkarte
zugeordneten virtuellen MAC-Adressen adressierte Dateneinheit kann
von einem Netzwerk über
die PHY empfangen werden, wie im Block 510 gezeigt ist.
Auf eine MAC-Adresstabelle kann Bezug genommen werden, um eine entsprechende
Software-Netzwerkeinrichtung zu identifizieren, wie im Block 520 gezeigt
ist. Die Dateneinheit kann an die Software-Netzwerkeinrichtung weitergeleitet
wer den, die der in der Dateneinheit spezifizierten virtuellen MAC-Adresse
zugeordnet ist, wie im Block 530 gezeigt ist. Die Dateneinheit
wird über
die Software-Netzwerkeinrichtung Anwendungsprogrammen verfügbar gemacht,
wie im Block 540 gezeigt ist. Auf die Dateneinheit kann
dann von einem Anwendungsprogramm über einen IOCTL-Aufruf an die
Software-Netzwerkeinrichtung zugegriffen werden, eine Buchse, das
warten in einer der Software-Netzwerkeinrichtung zugeordneten Warteschlange,
eine API oder mit anderen Techniken.
-
Es
wird nun auf 6 Bezug genommen, in der ein
Ablaufdiagramm der Aktionen gezeigt ist, die gemäß einem Aspekt der Erfindung
ausgeführt
werden, um eine Dateneinheit von einer der mehreren virtuellen MAC-Adressen
zu senden. Ein Anwendungsprogramm bereitet eine Anforderung zum
Senden einer Dateneinheit vor, in dem es auf eine Software-Netzerkeinrichtung
zugreift, wie in Block 610 gezeigt ist. Dies kann dadurch
erreicht werden, dass eine Linux-Schnittstelle zu der Software-Netzwerkeinrichtung über einen
Prozeduraufruf verwendet wird. Dieser Prozeduraufruf kann einen
Zugriff auf eine Buchse oder eine andere der Software-Netzwerkeinrichtung
zugeordnete API bereitstellen. Dies kann ebenfalls dadurch erreicht
werden, dass Daten in Registern eines Prozessors platziert werden
und ein Interrupt aufrufen wird und mit anderen Techniken. Eine
Software-Netzwerkeinrichtung empfängt die Anforderung zum Senden
einer Dateneinheit von der Software-Netzwerkeinrichtung an eine
Zieladresse, wie in Block 620 gezeigt ist. Eine von der
der Software-Netzwerkeinrichtung zugeordneten virtuellen MAC-Adresse
adressierte Dateneinheit wird wie in Block 630 gezeigt
ist, vorbereitet. Die Dateneinheit wird mit Hilfe eines Treibers
auf das Netzwerk gesendet, wie in Block 620 gezeigt ist.
-
Gemäß den in
den 4, 5 und 6 beschriebenen
Verfahren kann ein Anwendungsprogramm und/oder ein Benutzer auf
die mehreren MAC-Adressen einer einzelnen Netzwerkkarte zugreifen,
um eine Mehrzahl von Dateneinheiten zu empfangen, zu emulieren und/oder
zu erzeugen, um die Leistungsfähigkeit
einer oder mehrerer DUTs zu bewerten. Auf diese Weise kann eine
einzige die hier beschriebenen Verfahren verwendende Netzwerkkarte
mehrere traditionelle Hardware-NICs ersetzen.
-
Obwohl
beispielhafte Ausführungsformen der
Erfindung gezeigt und beschrieben wurden, ist es für Fachleute
klar, dass eine Vielzahl von Änderungen,
Modifikationen oder Abwandlungen an der Erfindung, wie sie hier
beschrieben wurde, vorgenommen werden kann, ohne den Schutzbereich
der Erfindung zu verlassen. Es sollte klar sein, dass alle diese Änderungen,
Modifikationen und Abwandlungen im Schutzbereich der Erfindung liegen.