DE69812777T2 - Verbindung von Ethernetkompatiblen Netzwerken - Google Patents

Verbindung von Ethernetkompatiblen Netzwerken Download PDF

Info

Publication number
DE69812777T2
DE69812777T2 DE69812777T DE69812777T DE69812777T2 DE 69812777 T2 DE69812777 T2 DE 69812777T2 DE 69812777 T DE69812777 T DE 69812777T DE 69812777 T DE69812777 T DE 69812777T DE 69812777 T2 DE69812777 T2 DE 69812777T2
Authority
DE
Germany
Prior art keywords
network
bundle
level
physical
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69812777T
Other languages
English (en)
Other versions
DE69812777D1 (de
Inventor
Ariel Cupertino Hendel
Leo A. Sunnyvale Hejza
Sampath H.K. San Jose Kumar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25386070&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69812777(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69812777D1 publication Critical patent/DE69812777D1/de
Publication of DE69812777T2 publication Critical patent/DE69812777T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Description

  • BEREICH DER ERFINDUNG
  • Diese Erfindung bezieht sich auf Netzwerke im allgemeinen einschließlich Ethernet Netzwerken, und spezieller auf gebündelte Ethernet und Ethernet-kompatible Netzwerke.
  • HINTERGRUND DER ERFINDUNG
  • Ein Netzwerk ist eine Einrichtung, die es einer Anzahl von Workstations (Arbeitsplatzrechnern), Computern und anderer Ausstattung (hier nachfolgend gemeinsam als "Computer" bezeichnet) erlaubt, miteinander zu kommunizieren. Teile eines Netzwerkes umfassen Hardware und Software, zum Beispiel die Computer und Stationen (von denen jeder bzw. jede eine oder mehrere zentrale Verarbeitungseinheiten, freizugreifbaren und persistenten Speicher enthalten kann), die Schnittstellenkomponenten, die Kabel oder Glasfasern, um sie zu verbinden, und gleichermaßen auch Software, die den Zugang zu und den Informationsfluß durch das Netzwerk regelt. In Netzwerken, in denen der Datenfluß 100 Mbits/sec ("Mbps") oder höher ist, ist das Übertragungsmedium oft Glasfaser. In Netzwerken, in denen eine langsamere Datenrate akzeptabel ist, z. B. 10 Mbps, kann das Übertragungsmedium Koaxialkabel oder verdrillte Leitung sein, wie es oft bei einem Ethemet-Netzwerk der Fall ist.
  • In einem Netzwerk definiert die Netzwerkarchitektur Protokolle, Nachrichtenformate und andere Standards, welche die Computer und die übrige Ausstattung sowie die Software einhalten müssen. Die meisten Netzwerkarchitekturen haben sich ein Modell zu eigen gemacht, das funktionale Schichten umfaßt, von denen eine bestimmte Schicht für die Ausführung einer spezifischen Menge von Funktionen und zur Bereitstellung einer spezifischen Menge von Diensten zuständig ist. Daher können die Dienste, die von jeder Schicht zur Verfügung gestellt werden, und die Schnittstellen zwischen den Schichten eine Netzwerkarchitektur definieren. Protokolle definieren die Dienste, die über eine Schnittstelle einer Schicht bereitgestellt bzw. abgedeckt werden, und die Regeln, die in der als Teil dieses Dienstes durchgeführten Verarbeitung befolgt werden.
  • Verschiedene Organisationen haben Modelle und Standards vorgeschlagen, die innerhalb der Netzwerk-Fachwelt akzeptiert wurden. Zum Beispiel hat die International Standards Organisation ("ISO") ein Sieben-Schichten-Referenzmodell für das Zusammenarbeiten in Computernetzwerken vorgeschlagen, das Open Systems Interconnect ("OSI") Architektur genannt wird. Ein anderer Satz von Standards wurde vom Institute of Electrical and Electronics Engineers ("IEEE") als Satz von vorgeschlagenen Standards für lokale Netzwerke (Local Area Network, "LAN"), bekannt als IEEE Projekt 802, veröffentlicht. Dieses Modell ist zum Sieben-Schichten OSI-Modell konform, aber direkt nur zu den untersten zwei OSI-Schichten, nämlich der Bitübertragungsschicht und der Datensicherungsschicht.
  • 1A zeigt ein Netzwerk gemäß der IEEE Projekt 802 Modifikation des ISO Sieben-Schichten-Modells, in dem verschiedene Computer 10, 10', 10" Daten untereinander über ein physikalisches Übertragungsmedium 20, z. B. Kabel, kommunizieren können, typischerweise über eine Datenendeinrichtungseinheit (Data Tenninating Equipment, "DTE") 120, 120', 120". Jede einzelne oder alle von den DTEs kann bzw. können ein Switch, ein Routen, ein anderes Computersystem, etc. sein. In der Praxis kann ein Netzwerk Hunderte oder Tausende Computer enthalten. In 1A ist es so zu verstehen, daß dem Computer 10" (oder etwas Äquivalentem) genau so ein Sieben-Schichten ISO-Modell zugeordnet ist.
  • Die unterste, erste oder "L1"-Schicht 30 ist sowohl im ISO- als auch im Projekt 802 Modell eine Bitübertragungsschicht mit Verbindungen zwischen zwei Maschinen (z. B. Computer 10, 10'), um die Übertragung von Bitströmen über ein physikalisches Übertragungsmedium (z. B. Kabel 20) zu ermöglichen. Daher beschäftigt sich die Bitübertragungsschicht 30 mit Arten von Verkabelung, Kabelsteckern, Anschlußkonnektoren und ähnlichem. Oft kann ein Server bis zu fünfzig physikalische Anschlußkonnektoren haben, auch wenn modernere Einheiten wie der Sun Microsystems Inc. Enterprise Modell 10.000 Server 100 physikalische Verbindungen akzeptieren bzw. aufnehmen können, von denen jede ein Datenflußrate von 100 Mbit/sec hat.
  • Viele Ethernet Netzwerke halten einen Standard zu Mehrfachzugang mit Trägerabfrage und Kollisionsentdeckung (Carrier Sense Multiple Access with Collision Detection, "CSMA/CD") ein. Im 802-Modell für CSMA/CD existiert eine Abgleichschnittstelle 40, die durch einen Standard einer medienunabhängigen Schnittstelle (Media Independent Interface, "MII") definiert ist, zur Abgleich-Teilschicht (Reconciliation Sublayer) 40 Schnittstelle zwischen der Bitübertragungsschicht 30 und der Medienzugangssteuerungsteilschicht (Media Access Control, "MAC") 50B.
  • Gemäß MII sind die Daten und die Begrenzungszeichen synchron zu einem entsprechenden Takt, und zwei asynchrone Signale des Medienzustands, nämlich Carrier Sense ("CRS") und Kollision (Collision, "COL") werden bereitgestellt. MII sieht eine zweiadrige, serielle Managementschnittstelle vor, die Steuerung und Zustand zusammenfaßt, nämlich Managementdatentakt (Management Data Clock, "MDC") und Managementdatenein-/ausgabe (Management Data Input/Output, "MDIO"). Im OSI-Sieben-Schichtenmodell befindet sich oberhalb der Bitübertragungsschicht eine Datensicherungsschicht, die für die fehlerfreie Übertragung von Datenframes zwischen Netzknoten verantwortlich ist. Ein Datenverbindungssteuerungsprotokoll bzw. Steuerungsprotokoll der Datensicherungsschicht beschreibt Betrieb und Schnittstellen dieser Schicht, die auch die höheren Schichten im Modell von Angelegenheiten des physikalischen Übertragungsmediums abschirmen muß.
  • Im 802-Modell, das in 1A abgebildet ist, ist die Datensicherungsschicht unterteilt in die MAC-Schicht 50B und eine darüberliegende Schicht 50A zur Steuerung der logischen Verbindung (Logical Link Control, "LLC"), die gemeinsam die zweite oder L2-Schicht bilden. Die Medienzugangssteuerungsteilschicht befaßt sich mit Zugangssteuerungsmethoden, um festzulegen, wie die Verwendung des physikalischen Übertragungsmediums zu steuern ist. Die LLC-Teilschicht 50A ist für medienunabhängige Datenverbindungsfunktionen verantwortlich und ermöglicht es der Barüberliegenden Netzwerk- oder Vermittlungsschicht (oder Internetprotokoll-, "IP-"Schicht) 60, auf LAN-Dienste unabhängig davon, wie das Netzwerk implementiert ist, zuzugreifen. Die Netzwerk- oder 1P-Schicht 60 wird oft als Schicht 3 oder L3 bezeichnet. Gemäß der 802-Architektur stellt die LLC-Teilschicht 50A der Netzwerkschicht 60 Dienste in derselben Weise bereit, wie sie ein herkömmliches Datensicherungsprotokoll in einem Fernverbindungsnetzwerk (Wide Area Network) bereitstellen würde.
  • Die MAC-Teilschicht 50B stellt für die Barüberliegende LLC-Teilschicht 50A Dienste bereit und verwaltet bzw. reguliert die gemeinsame Nutzung des Übertragungsmediums durch die verschiedenen Stationen im Netzwerk. Eine Medienzugangsverwaltungs- bzw. Regulierungsfunktion empfängt einen Frame von der Dateneinkapselungsfunktion, nachdem die notwendige Steuerungsinformation hinzugefügt wurde. Im Anschluß daran ist die Medienzugangsverwaltung dafür verantwortlich, die physikalische Übertragung der Daten sicherzustellen. Der Datenframe in einer Ethernet-Vollduplex-Umgebung hat eine maximale Größe von 1.518 Bytes. Es gibt verschiedene 802-Standards für die MAC-Teilschicht 50B einschließlich des sogenannten Carrier-Sense-Mehrfachzugang-mit-Kollisionsentdeckung-Standards (Carrier Sense Multiple Access with Collision Detection, "CSMA/CD"), und der 802.3-MAC-Standard stellt Flußsteuerungsmechanismen in einer Halbduplex-Umgebung zur Verfügung. In solchen Umgebungen definiert CSMA/CD Dateneinkapselung/entkapselung und Medienzugangsverwaltungs- bzw. -regulierungsfunktionen, die von der MAC-Teilschicht 50B selbst durchgeführt werden, während das Codieren/Decodieren der Daten von der darunterliegenden Bitübertragungsschicht 30 vorgenommen wird. Jedoch geht die vorliegende Erfindung wie nachfolgend beschrieben von einem Vollduplex-Betrieb in der Bitsicherungs- und der Medienzugangskontrollschicht 30, 50B für jedes Segment des Bündels aus.
  • Die physikalische Übertragung der Daten kann dadurch sichergestellt werden, daß das Trägersignal abgetastet wird, um eine Übertragung zu verzögern, bis das Netzwerk frei ist. Kurz zusammengefaßt hört eine Station (z. B. ein Computer oder Benutzer 10) das Übertragungsmedium (z. B. Kabel 20) ab oder überwacht es vor einer Übertragung, um festzustellen, ob eine andere Station (z. B. Computer oder Benutzer 10') gerade eine Nachricht überträgt, z. B. um zu erfahren, ob das Medium frei ist. Indem es die Dienste der L1 Bitübertragungsschicht 30 benutzt, stellt die Medienzugangsverwaltung fest, ob das Übertragungsmedium (oder der Träger) aktuell benutzt wird. Wenn das Medium nicht benutzt wird, übergibt die Medienzugangsverwaltung den Datenframe an die L1 Bitübertragungsschicht 30 zur Übertragung. Auch nachdem eine Frameübertragung begonnen hat, überwacht die Medienzugangsverwaltung den Träger. Wenn der Träger besetzt ist, setzt die Medienzugangsverwaltung die Überwachung fort, bis keine andere Station mehr am Übertragen ist. Die Medienzu gangsverwaltung wartet dann eine festgelegte, zufällig gewählte Zeit lang, um das Netzwerk frei werden zu lassen, und beginnt danach mit der Übertragung.
  • Jedoch kann eine andere Station bzw. können andere Stationen, die Nachrichten zu senden hat bzw. haben, alle gleichzeitig das Medium abhören, erkennen, daß das Übertragungsmedium ruhig zu sein scheint, und beginnen, gleichzeitig Nachrichten zu übertragen. Das Ergebnis ist eine Kollision und verstümmelte Nachrichten. Wenn Signalkollision festgestellt wird, ignorieren empfangende Stationen die verstümmelten Nachrichten, übertragende Stationen stellen sofort die Übertragung von Nachrichten ein und übertragen ein Stauungs- bzw. Störungssignal über das Medium. Im Anschluß an die Kollision versucht jede übertragende Station, erneut zu übertragen, nachdem sie eine zufällig gewählte Zurückweichungszeitspanne lang darauf gewartet hat, daß der Träger frei wird. Daher muß eine übertragende Station ausreichend lange abhören, um sicherzustellen, daß keine Kollision stattgefunden hat.
  • In 1A beschäftigt sich die Netzwerk- oder 1P-Schicht 60 mit dem Routing der Daten von einem Netzwerk zu einem anderen. Es ist die Aufgabe der Netzwerkschicht 60, Daten zwischen den Netzwerkknoten zu routen.
  • Die Transportschicht 70 leistet Datentransfer zwischen zwei Stationen auf einem abgestimmten Qualitätsniveau, sobald eine Verbindung zwischen den Stationen aufgebaut ist. Die Transportschicht 70 wählt eine bestimmte Dienstklasse zur Benutzung aus, überwacht die Übertragung, um eine anhaltende Dienstqualität sicherzustellen, und benachrichtigt die Stationen (oder Benutzer), wenn die Qualität nicht gehalten werden kann.
  • Die Kommunikationssteuerungs- bzw. Sitzungsschicht 80 stellt Dienste bereit, die einen Dialog zwischen Stationen organisieren und synchronisieren, und verwaltet den Datenaustausch zwischen Stationen. Somit steuert die Kommunikationssteuerungs- bzw. Sitzungsschicht 80, wann Stationen Daten senden und empfangen, je nachdem, ob sie abwechselnd oder gleichzeitig senden und empfangen können.
  • Die Darstellungsschicht 90 stellt sicher, daß Information einem Netzwerkbenutzer sinnvoll dargestellt wird, und kann Dienste zur Übersetzung von Zeichencodes, Datenkonvertierungs-, Datenkomprimierungs- und -expandierungs-Dienste bereitstellen.
  • Die Anwendungsschicht 100 stellt einen Mechanismus für Anwendungsprozesse zur Verfügung, um auf Möglichkeiten der Verbindung zwischen Systemen zum Informationsaustausch zugreifen zu können. Die Anwendungsschicht stellt Dienste bereit, die benutzt werden, um Verbindungen zwischen Benutzern aufzubauen und zu beenden, und um die miteinander verbundenen Systeme und die Ressourcen, die sie verwenden, zu überwachen und zu verwalten.
  • Auch wenn das in 1A gezeigte Netzwerk halb-duplex (oder abwechselnd genutzt) oder vollduplex sein kann, wird bezogen auf die vorliegende Erfindung nur von einem Voll-Duplex-Netzwerk ausgegangen. Bei voll-duplex gibt es Kommunikationspfade für die Übertragung und für den Empfang, und eine oder mehrere Stationen können gleichzeitig übertragen und empfangen. Die doppelten Kommunikationskanäle oder -pfade können tatsächlich mehrere Leitungen oder Kabel sein, oder eine einzelne Leitung bzw. ein einzelnes Kabel, die bzw. das gleichzeitig Sende- und Empfangssignale in beiden Richtungen überträgt, eventuell unter Benutzung von Frequenzbandteilung. Voll-Duplex-Netzwerke können eine höhere Datenrate als Halb-Duplex-Netzwerke zur Verfügung stellen, häufig 100 Mbps, und werden wegen der schnelleren Kommunikationsrate oft bevorzugt.
  • Im Laufe der Zeit sind die Verbindungsgeschwindigkeiten bei der Netzwerkkommunikation gewachsen: 10BASE-T Verbindungen haben den Weg bereitet für 100BASE-T Verbindungen, die nun für Übertragungsraten von bis zu 1 Gigabit/Sekunde (1000 Mbps) bei 1000BASE-T Verbindungen bemessen werden. Aber in der Praxis kann es vorkommen, daß die Wahl der Verbindungsgeschwindigkeit (z. B. 10 Mbps, 100Mbps, 1000 Mbps) nicht gut zur Menge bzw. Größe des anhaltenden Datendurchsatzes paßt, den eine bestimmte Netzwerkeinrichtung unterstützen kann. Zum Beispiel können moderne Mehrprozessor-Server einer zusammenfaßten Netzwerkübertragungsrate von mehr als 100 Mbps standhalten. Darüber hinaus ist es im Fall, daß Switches und Hochleistungsrouter verwendet werden, um mehrere Verbindungen mit einer vorgegebenen Übertragungsgeschwindigkeit untereinander zu verbinden, notwendig und erwünscht, daß eine Verbindung zwischen Switches bzw. zwischen Routern in der Lage ist, zumindest eine gewisse Zusammenfassung von Verbindungen zu unterstützen. Eine Netzwerkgeschwindigkeit von beispielsweise 100 Mbps auf 1000 Mbps zu verbessern, ist kaum kosteneffektiv, wenn die Nutzung von Verbindungen mit höherer Geschwindigkeit nicht wesentlich verbessert wird, z. B. von vielleicht 40% auf 50% oder mehr. Die Netzwerkverbindungsgeschwindigkeit zu steigern erfordert auch neue Hardware.
  • Das Kabelmedium 20 in 1A ist ein Ethernet-kompatibles Kabel und enthält eine Mehrzahl von separaten Leitungen. Wie bereits angemerkt hat ein Host, z. B. der Computer 10, typischerweise eine Mehrzahl von Ausgangsanschlußkonnektoren (z. B. fünfzig), von denen jeder ein separates physikalisches Kabel aufnimmt, dessen anderes Ende mit einem Switch 120 oder einer anderen DTE verbunden ist. Gemeinsam ergeben die separaten Leitungen, welche den Host 10 mit der DTE 120 verbinden, eine einzelne Verbindung eines Ethernet-kompatiblen Kabels, auch wenn mehrere Leitungen innerhalb des Kabels vorhanden sind.
  • 1B zeigt den Server 10 mit einer Mehrzahl von Ausgangskonnektoranschlüssen, die hier mit ihren Netzwerk-ID-Nummern, nid0, nid1, nid2,... nid4 bezeichnet sind. Natürlich können fünfzig oder mehr solcher Anschlüsse und zugeordneter Netwerk-IDs vorhanden sein. Die Verbindung, die nid0 zugeordnet ist, ist dargestellt als physikalisch verbunden mit einer anderen Ausrüstung 95, wobei die genaue Ausrüstung und das abschließende Ziel nicht wichtig sind. Eine Mehrzahl von physikalischen Verbindungen im Kabel 20 ist dargestellt als in der DTE 120 endend, die hier ein Switch ist. Andere Anschlüsse am Switch 120 sind dargestellt mit physikalischen Verbindungen mit zum Beispiel noch einem weiteren System 105 genauso wie mit dem Client 10' und einer anderen DTE 120'.
  • Das Betriebssystem, das dem Server 10 in 1 B zugeordnet ist, muß jeden der Serverkonnektoranschlüsse (oder der physikalischen Kabelverbindungen, die damit verbunden sind) individuell behandeln. Es sei angenommen, daß die Ausrüstung 95 von einer nid0 zugeordneten Anschlußposition zu einem anderen Ausgangsanschluß am Server 10 physikalisch verlegt werden soll. Um dies zu vollziehen, muß der Systemadministrator eine neue IP-Adresse für die anders angeordnete Ausrüstung 95 zuweisen, weil die Kabelverbindung A nicht mehr benutzt wird, sondern eine neue Kabelverbindung statt dessen benutzt wird, die an einem anderen Ausgangsanschluß von Server 10 endet. In gleicher Weise würden im Fall, daß die Kabelverbindung B, die den Serverausgangsanschluß, der nid1 zugeordnet ist, mit dem ersten Eingangsanschluß von Switch 120 verbindet, ausgefallen wäre, z. B. unterbrochen oder defekt wäre, keine Daten diesem Eingangsanschluß von Switch 120 angeboten, bis das Kabel B repariert oder ersetzt werden könnte. Es gibt bei der gezeigten Konfiguration nach dem Stand der Technik keine automatische Umlenkung von Daten, um den Systemdurchsatz zu erhalten.
  • In 1B müßte der Systemadministrator zuerst das System so konfigurieren, daß der Client 10' auf einer aus der Mehrzahl der Teilverbindungen, die dem Switch 120 zugeordnet sind, liegt, damit der Server 10 Daten an diesen Client 10' übertragen kann. Beim Übertragen von Paketinformation würde der Server 10 eine IP-Teilverbindungsadresse (1P-Schicht 60 zugeordnet) angeben, die mit einer von den Verbindungen, der dem Client 10' zugewiesen wurde, korrespondiert. Wie üblich hat eine IP-Teilverbindungsadresse zwei Teile: eine Netzwerk-ID und eine Host-ID. Wie üblich ist mit jeder IP-Teilverbindungsadresse eine andere Netzwerk-IP-Adresse assoziiert (siehe auch 4B). Verständlicherweise würde im Fall, daß zu viele Clients versuchen, dieselbe IP-Adresse zu verwenden, Datenverkehr im Überfluß probieren, durch eine einzige Verbindung zu fließen, und dadurch möglicherweise das Netzwerksystem verstopfen.
  • Der Netzwerkadministrator wird eine gemeinsame ID auf Netzwerk-Level für die IP-Adresse, die mit einer aus der Gruppe von Verbindungen assoziiert ist, der Client 10' zugeordnet ist oder an die er gebunden ist, verwendet haben. Ein unerwünschtes Ergebnis ist, daß der Systemadministrator nicht leicht oder flexibel irgendeine beliebige Zahl von physikalischen Verbindungen gruppieren kann, weil Client 10' DTE und seine physikalische Verbindung (hier: Q) gebunden sind.
  • Die Netzwerk- oder IP-Schicht-3-Adressen sind mit nid0, nid1,... nidN bezeichnet (siehe auch 4B). Nach dem Stand der Technik wird das Gruppieren von Verbindungen so vorgenommen, daß Teilverbindungen auf Schicht 2 mit Adressen nid1.1, nid1.2, nid1.3, usw. bezeichnet werden können.
  • Um mit einem Ausrüstungsteil, z. B. Client 10', zu kommunizieren, das einer Gruppe von Teilverbindungen zugeordnet ist, in der auch nid1 enthalten ist, würde es auch notwendig anzugeben, welche Verbindung involviert ist, z. B. Verbindung 3, bezeichnet mit nid1.3. Daher muß Software, die Information von Server 10 zum Client 10' in 1 B zu senden wünscht, die eindeutige Zieladresse als nid1.3 angeben. Das liegt daran, daß die Softwareanwendung mit Schicht 2 über Schicht 3 (siehe 1A und 4B) kommunizieren muß. Im Wesentlichen wird Schicht 3 per Software angewiesen, das Datenpaket an Adresse nid1.3 zu senden.
  • Schicht-3-Information muß so an Schicht 2 kommuniziert werden, daß sie für Schicht 2, die nur ihr eigenes Adressierungsprotokoll versteht, verständlich ist. Daher enthält Schicht ; eine Serververwaltete Abbildungsfunktion, die nid1.3 in eine physikalische (z. B. MAC/LLC) Adresse übersetzt, die in Netzwerkschicht 2 von Bedeutung ist. In der Praxis veranlaßt der Server seine Schicht 3, eine Abbildungstabelle für jede ID auf Netzwerk-Level, die eine zu einer Ethernet-ID korrespondierende, lokale Verbindung ist, einzurichten und zu pflegen (unter Verwendung von Information gemäß Adreßauflösungsprotokoll, Address Resolution Protocol oder "ARP"). Im Wesentlicher resultiert daraus eine vertikale Abbildung der Schicht-3-Verbindung auf die Schicht-2-MAC-Adresse für die in Frage stehende Netzwerk-ID. Eine separat gepflegte Protokolltabelle enthält einen Eintrag für nid1.3 (unter anderen Einträgen) sowie seiner zugeordneten MAC/LLC-Adresse. Die von der Abbildung gemeldete, spezielle MAC/LLC-Adresse wird und muß auch tatsächlich verwendet werden, um das in Frage stehende Paket an den Client 10' zu senden. Unglücklicherweise haben in einem geschalteten Netzwerk wie das, welches beschrieben wurde, die in Frage stehenden Pakete F eine alternative Route zu Client 10' außer dieser speziellen MAC/LLC-Adresse. Aus diesem Grund wird das Adressierungssystem als statisch bezeichnet.
  • 2A-2C zeigen verschiedene Verbindungskonfigurationen zwischen Netzwerken. In 2A sind im Medium 20 drei separate Verbindungsleitungssegmente A, B und C enthalten und diese werden verwendet, um eine DTE, hier Server 10, und einen Switch 120 (oder einen anderen Mechanismus) aneinander zu koppeln. Natürlich könnten abhängig vom Umfang der für das System benötigten Bandbreite auch mehr oder weniger als drei Verbindungsleitungssegmer te verwendet werden. Switch 120 ist auch an mehrere Clientsegmente angekoppelt, die mit 1, 2, 3, 4 und 5 bezeichnet sind. In dieser Konfiguration kann der Server 10 durch andere Arten von Ausrüstung, z. B. einen Routen, eine Workstation mit hohem Durchsatz, einen Drucker, etc., ersetzt werden.
  • Nach der Ausführungsform in 2B verbinden drei Verbindungsleitungssegmente A, B und C Switch 120' mit Switch 120, wenngleich statt dessen wieder eine andere Anzahl von Segmenten verwendet werden könnte. In 2C koppeln drei Segmente (A, B, C) Server 10' an Server 10, wenngleich einer oder beide Server durch andere Ausrüstung, zum Beispiel einen R guter, ersetzt werden könnte.
  • In Systemen nach dem Stand der Technik erfordern Konfigurationen nach 2A oder 2B oder 2C typischerweise von der Schicht 60, jeder der drei Leitungen A, B, C innerhalb der Verbindung 20 eine separate IP-Adresse zuzuweisen. (Wenn mehrere Clients dieselbe IP-Adresse verwenden sollen, würde ihr gesamter Datenverkehr über eine einzige Verbindung übertragen werden und das System verstopfen.) Daher wären administrativ drei Internetadressen erforderlich, um die drei (exemplarischen) Leitungen innerhalb der Verbindung 20 zu handhaben. Netzwerksoftware würde dann jede dieser Verbindungen als drei verschiedene Verbindungen behandeln. In der Praxis können fünfzig und mehr separate Leitungen (z. B. A, B, C,...) in einer physikalischen Verbindung 20 vorhanden sein, und es ist beschwerlich, administrativ separate Internet-Protokoll-Adressen für jede zuweisen und handhaben zu müssen.
  • Zum Beispiel muß der Systemadministrator in einem System, das mehrere Ethernetverbindungen von einem Server/Host-System hat, das mit einem Ethernet-kompatiblen Netzwerk unter Verwendung eines Ethernet-Switch verbunden ist, jeder Verbindung eine unterschiedliche IP-Adresse (z. B. einen unterschiedlichen IP-Hostnamen) statisch zuweisen und jede Verbindung mit einer unterschiedlichen MAC-Adresse konfigurieren. Zusätzlich dazu, daß dies zeitaufwendig ist, muß der Netzwerkadministrator auch andere Host/Client-Systeme in verschiedene IP-Teilnetze gruppieren, so daß die mehrfachen Verbindungen sich den Datenverkehr zum Server im Netzwerk untereinander aufteilen können. Dieses Gruppieren von Clients in eine zugeordnete logische Gruppe ist erforderlich, weil bestimmte Clients eine einzige IP-Adresse benutzen müßten, um auf den Server zuzugreifen, da ein Kabel verwendet wird.
  • Unglücklicherweise würde ein Client oder eine DTE nun, wenn er bzw. sie innerhalb des Systems anders angeordnet werden mußte, ein neues, vom Server kommendes Kabel benutzen, und seine bzw. ihre neue Anordnung würde es erforderlich machen, daß der Systemadministrator eine neue IP-Adresse zuweist. Die verschiedenen Clients (oder andere DTEs) sind am empfangenden Ende des Systems verteilt, und wenn die Neuzuweisung der IP-Adressen nicht sorgfältig ausgeführt würde, könnte dies dazu führen, daß zu viele Clients dieselbe IP-Adresse verwenden. Dies könnte leicht übermäßigen Verkehr, der durch eine einzelne physikalische Verbindung zu gelangen versucht, nach sich ziehen, der das System verstopft und die Bandbreite des Systems herabsetzt. Darüber hinaus würde ein Client, dessen zugeordnete IP-Adresse eine bestimmte Verbindung impliziert, im Fall, daß diese physikalische Verbindung beschädigt oder getrennt würde, den Zugang zum Server verlieren, weil es keinen anderen Pfad gibt. Daten, die zu diesem Client gelangen oder von diesem Client kommen sollen, würden verloren gehen.
  • Daher muß der Administrator in Netzkonfigurationsprotokollen nach dem Stand der Technik jeder physikalischen Verbindung eine separate Level-3-IP-Schicht-Adresse und eine Level-2-LLC/MAC-Schicht-50A/B-Adresse statisch zuweisen. Da DTE-Einheiten statisch mit einer Verbindung in einer Gruppe von Verbindungen, z. B. in einer Teilverbindung, assoziiert sind, wird eine IP-Adresse der Teilverbindung benötigt.
  • US-Patent 5.633.810 beschreibt einen Video-Server, der zusätzliche Ausgangsbandbreite vom Server ermöglicht, indem er mehrere physikalische Netzwerkschnittstellen über einem einzigen bzw. einzelnen IP-Teilnetzwerk verwendet.
  • US-Patent 5.608.733 offenbart ein Netzwerk mit Asynchronem Übertragungsmodus (Asynchronous Transfer Mode, ATM), in dem ATM-Zellen an einen Zielknoten über mehr als eine Übertragungsverbindung nach Round-Robin-Verfahren gesendet werden. Der Quell- bzw. Ursprungsknoten informiert den Zielknoten über das spezielle Round-Robin-Verfahren für die Übertragungsverbindungen, so daß die ATM-Zellen wieder in einer korrekten, sequentiellen Reihenfolge angeordnet werden können.
  • Die EP-A-0863646 ist für die vorliegende Anwendung Stand der Technik gemäß Artikel 54(3) EPC und offenbart eine Methode und eine Vorrichtung, um erste und zweite Einrichtungen in einem Netzwerk miteinander zu verbinden. Die Einrichtungen sind mit einer Mehrzahl von Schnittstellen verbunden, die eine einzelne Hochgeschwindigkeitsschnittstelle emulieren.
  • Zusammenfassend besteht in einem Ethernet-kompatiblen Netzwerk der Bedarf an einer flexiblen, dynamischen Methode, die es ermöglicht, mehrere physikalische Verbindungen logisch zu einer einzelnen logischen oder virtuellen Verbindung zu gruppieren. In einem solchen System sollte der Systemadministrator in der Lage sein, eine einzige LLC/MAC-Schicht-2-Adresse und eine einzige IP-Schicht-3-Adresse der resultierenden virtuellen Verbindung zuzuweisen. Ein solches System sollte es erlauben, jede beliebige Anzahl von physikalischen Verbindungen zu einem einzelnen Bündel zusammenzugruppieren. Das resultierende System sollte dem Systemadministrator Flexibilität hinsichtlich des schnellen Umkonfigurierens des Netzwerks geben.
  • Eine solche Möglichkeit zum Umkonfigurieren sollte die Lastverteilung und die Verwaltung des Systemdurchsatzes im Netzwerk verbessern und sollte flexible Neuzuweisung von Datenflußverkehr zu anderen physikalischen Verbindungen in dem Moment erlauben, wenn eine Unterbrechung oder ein Ausfall des Datenflusses durch eine verwendete physikalische Verbindung vorliegt. Darüber hinaus sollte ein solches System die Flußreihenfolge der Datenpakete, die vom Netzwerk zwischen zwei Kommunikationspunkten übertragen werden, logisch beibehalten. Darüber hinaus sollte das System im Fall, daß eine zuvor ausgefallene physikalische Verbindung wieder verfügbar wird, eine solche Verbindung wieder verwenden, um die Datenflußlast über das Netzwerkbündel verteilen zu helfen.
  • Die vorliegende Erfindung liefert eine solche Methode zur Verwendung in einem Ethernetkompatiblen Netzwerk.
  • ZUSAMMENFASSUNG DER VORLIEGENDEN ERFINDUNG
  • Spezielle und bevorzugte Aspekte der Erfindung sind in den begleitenden unabhängigen und abhängigen Patentansprüchen ausführlich dargestellt. Merkmale der abhängigen Ansprüche können mit denen der unabhängigen Ansprüche je nach Bedarf und in anderen Kombinationen als denjenigen, die ausdrücklich in den Ansprüchen dargestellt sind, kombiniert werden.
  • In einem Ethernet-kompatiblen Netzwerk sind Senner und Hosts durch DTEs, z. B. einen Switch, verbunden unter Verwendung eines Kabels (oder etwas Äquivalentem), das eine Mehrzahl von separaten Leitungen (oder Verbindungen) enthält. Unter Verwendung eines Satzes von Regeln wird eine beliebige Anzahl von den mehreren Verbindungen (oder Serverkonnektoren) so gebündelt, daß sie höheren Netzwerkschichten gegenüber als eine einzelne logische (oder virtuelle) Verbindung darstellbar sind. Einer solchen virtuellen Verbindung wird eine MAC-Adresse und eine IP-Adresse zugewiesen ungeachtet dessen, daß eine Mehrzahl von separaten physikalischen Verbindungen enthalten sind und verkörpert werden. (Dies unterscheidet sich von Techniken nach dem Stand der Technik, in denen jeder Konnektor oder jede Verbindung eine bestimmte IP-Adresse benötigen würde.)
  • Eine virtuelle Verbindung ermöglicht es der Systemnetzwerkverwaltung, flexibel und dynamisch die Anordnung von Ausrüstung zu ändern, ohne langwierige Neuadressierungsarbeiten zur Folge zu haben. Die Verlegung von Ausrüstung, vielleicht wegen des Verlustes einer Verbindung, geht leicht vonstatten und die anders aufgestellte bzw. angeordnete Ausrüstung bleibt logisch innerhalb desselben virtuellen Netzwerks, obwohl eine andere physikalische Verbindung nach dem Umzug benutzt wird. Diese Flexibilität steht in Kontrast zu Methoden nach dem Stand der Technik, nach welchen jede separate Verbindung in einem Kabel zugeordnet ist und mit ihrer eigenen MAC-Adresse und IP-Adresse konfiguriert werden muß.
  • Eine Ausführungsform der Erfindung stellt logisch N diskrete physikalische Informationskanäle, von denen jeder eine eindeutige physikalische Adresse hat, als einen einzelnen virtuellen Informationskanal dar, der eine einzige physikalische MAC-Adresse hat. Eine Pseudo-Treiber-Software-Schicht zur Bündelung wird zwischen der IP- (oder Netzwerk-)Schicht und dem Gerätetreiber-Teil der Bitübertragungsschicht in dem Ethernet-kompatiblen Netzwerkmodell nur auf der Serverseite eingeführt. (Die Client- oder Empfängerseite ist unverändert.) Bei der Übertragung von Paketen von einem Server über die Mehrzahl von physikalischen Verbindungen wird die Lastverteilung vom Gerätetreibercode zur Bündelung innerhalb des Servers behandelt. Der Algorithmus im Code des Pseudo-Treibers stellt sicher, daß übertragene Pakete verteilt bzw. aufgeteilt werden, um die logische Flußreihenfolge zwischen den zwei Kommunikationsendpunkten, die von den physikalischen Verbindungen überspannt werden, zu bewahren. Ausfall einer physikalischen Verbindung wird dadurch aufgefangen, daß Verkehr einer weiterhin bestehenden Verbindung zugewiesen wird und daß zu mindest ein Teil der Paketlast erst dann auf eine ausgefallene Verbindung gelenkt wird, wenn die Verbindung den Dienst wieder aufgenommen hat.
  • Eine Ausführungsform der Erfindung kann dieselbe Information verwenden, die ansonsten Schicht 3 und Schicht 2 zur Verfügung steht, um zu entscheiden, welche Paketadreßinformation zu senden ist. Während Techniken nach dem Stand der Technik sich auf eine vertikale Verbindung mittels einer Abbildung zwischen Schicht 3 und Schicht 2 abstützen, konstruiert die vorliegende Erfindung indes Ziel-MAC-Adressen unter Verwendung von Information aus herkömmlichen Abbildungstabellen, der eigenen Quell- bzw. Ursprungs-MAC-Adresse und einer Paket-ID, die auf Schicht 3 zeigt. Die vorliegende Erfindung läßt in einer Schicht-3-zu-Schicht-2-Kommunikation eine Mehrzahl von Schicht-2-Verbindungen gegenüber Schicht 3 wie eine einzelne virtuelle Verbindung oder Einrichtung erscheinen. Im Unterschied zu mehreren Schicht-3-Adressen auf IP-Level, eine für jede Verbindung in der unteren Schicht, sieht die Schicht 3 auf IP-Level in der vorliegenden Erfindung eine einzelne virtuelle oder logische Einrichtung.
  • Eine Ausführungsform der Erfindung kann die Schicht 2 im Host modifizieren, daß sie in Software implementierte Treiber mit erweiterten Konfigurationsmöglichkeiten zur Verfügung stellt. Die Gerätetreiber geben Pakete mit Adreßinformation heraus, welche die Einrichtung bzw. das Gerät, die bzw. das mit jeder Verbindung korrespondiert, einschließlich der ID auf Bündelebene, angibt. Diese Information wird lokal beim Empfänger verwendet. Da die Informationspakete, die zum Empfänger übertragen werden, ansonsten nicht anders sind, erkennt der Empfänger nicht, daß er mit einer gebündelten Verbindung kommuniziert.
  • Eine Ausführungsform der Erfindung geht davon aus, daß ein Bündel eine beliebige Anzahl von Segmenten haben kann, von denen jedes identische Voll-Duplex-Betriebscharakteristika in der Bitübertragungsschicht und in der Medienzugangssteuerungsschicht hat und von denen jedes Ursprung und Ziel mit anderen Bündelsegmenten gemeinsam hat. Die zeitliche Reihenfolge von Informationspaketen, die über ein gegebenes Bündelsegment transportiert werden, wird durch das Netzwerk hindurch beibehalten, und jedwede Rundsendung- oder Multirast-Pakete werden nicht als Echo zurückgegeben oder zurück übertragen. Lastverteilung wird gefördert durch Hashing der Ziel-MAC-Adressen und anschließendem Auswählen einer geeigneten physikalischen Verbindung, an die Pakete adressiert und gesendet werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Beispielhafte Ausführungsformen der Erfindung werden nachfolgend nur mittels Beispielen beschrieben unter Bezug auf die beigefügten Zeichnungen, von denen:
  • 1A ein Netzwerk und ein Modell gemäß dem Stand der Technik zeigt;
  • 1B typische Systemverbindungen in einem Netzwerk zeigt, mit denen die vorliegende Erfindung in die Praxis umgesetzt werden kann;
  • 2A–2C beispielhaft verschiedene Verbindungskonfigurationen zeigen, mit denen die vorliegende Erfindung in die Praxis umgesetzt werden kann;
  • 3 eine Modifikation an dem Netzwerkmodell von 1A gemäß der vorliegenden Erfindung zeigt;
  • 4A den Effekt der Modifikationen in den Schichten gemäß der vorliegenden Erfindung zeigt;
  • 4B eine unveränderte Schicht gemäß dem Stand der Technik zeigt;
  • GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Eine Ausführungsform der Erfindung vereinfacht die Systemadministration in einem Netzwerk und fördert die Bandbreite des Systems ohne wesentlich die Kosten in Geld oder Leistungsfähigkeit zu erhöhen, indem eine neue Form von Bündelung angewandt wird. Bündelung kann definiert werden als die Fähigkeit, mehrere parallele physikalische Verbindungen zu einem logischen (oder virtuellen) Kanal zu verbinden. Bündel, wie sie in der vorliegenden Erfindung verwendet werden, sind dahingehend eingeschränkt, daß physikalische Verbindungen (z. B. Medium 20) Ursprung und Ziel gemeinsam haben. Darüber hinaus wird in solchen Bündeln bei jeder der Verbindungen (oder "Bündelsegmente") unterstellt, daß sie im Wesentlichen identische Charakteristika in der Bitübertragungsschicht 30 und in der LLC/MAC-Schicht 50A/B haben.
  • Wiederum gemäß den 2A-2C enthält das physikalische Medium 20 eine Mehrzahl von physikalischen Verbindungen oder Segmenten, z. B. Leitungen A, B, C. Die vorliegende Erfindung bewirkt, daß die Mehrzahl physikalischer Verbindungen oder Segmente aus der Perspektive der höheren Schichten des Netzwerks im Modell von 1A eine einzelne logische oder virtuelle Verbindung zu sein scheinen. Die Fähigkeit, eine Mehrzahl von physikalische Verbindungen als eine einzelne virtuelle Verbindung zu behandeln, kann in großem Maße die Aufgabe der Systemverwaltung im Netzwerk vereinfachen und kann auch dazu beitragen, die Bandbreite im Netzwerk flexibel zu erhöhen und beizubehalten. Von Seiten der Verwaltung kann das Netzwerksystem eine einzelne IP-Adresse und eine einzelne Ethernet-Adresse für eine logische (oder virtuelle) Verbindung verwenden, auch wenn die Verbindung eine Mehrzahl von physikalisch separaten Kabeln oder Segmenten enthält.
  • In einer Ausführungsform der Erfindung wird einer Verbindung innerhalb eines gebündelten Netzwerk-Betriebssystems eine einzelne Identifizierungs- (ID-) Adresse und eine einzelne MAC-Schicht-Adresse zugewiesen (oder wird mit diesen assoziiert). Ein erwünschtes Ergebnis ist, daß ein physi kalisches Kabel (oder etwas Äquivalentes), das eine Mehrzahl von separaten Verbindungen umfaßt, gegenüber höheren Schichten im Netzwerksystem als eine virtuelle oder logische Entität erscheint, eine Entität, der die 1P-Schicht 60 einen einzelnen 1P-Namen zuweisen kann.
  • Ein Vorteil einer solchen virtuellen Verbindungsreferenzierung ist, daß eine höhere effektive Kapazität der Bandbreite im Netzwerk flexibel realisiert werden kann. Zum Beispiel kann in einem Netzwerksystem mit zehn 10 Mbps Verbindungen durch logisches Gruppieren der zehn Verbindungen ein Durchsatz von einer 100 Mbps Verbindung erreicht werden. Von keiner geringeren Bedeutung vom Standpunkt eines Systemadministrators des Netzwerks ist es, daß der Nutzen für die Adressierung, den die vorliegende Erfindung mit sich bringt, eine große Flexibilität hinsichtlich der Umkonfigurierung des Systems zur Verfügung stellt.
  • Bei der Implementierung einer Ausführungsform der Erfindung wird ein Satz von Regeln definiert, die Ausrüstung an jedem Ende des Bündels einhalten muß. Die Regeln sind symmetrisch insofern, als daß jedes Ende des Bündels die Regeln beachten muß. Darüber hinaus gelten die Regeln für Endeinrichtungen einschließlich DTEs, Computer jeder Klassifikation, etc., und sie gelten auch für Komponenten der Netzwerkinfrastruktur (z. B. speziell Switches).
  • Der Satz von Regeln sieht folgendermaßen aus:
    • 1. Ein Bündel kann jede beliebige Anzahl von Segmenten haben, aber alle Segmente müssen identische Charakteristika in der Bitübertragungsschicht und in der Medienzugangssteuerungsschicht besitzen; 2. Jedes Bündelsegment muß einen gemeinsamen Ursprung und ein gemeinsames Ziel mit
    • den anderen Bündelsegmenten teilen; 3. Die zeitliche Reihenfolge von Informationspaketen, die über ein gegebenes Bündelsegment transportiert werden, muß durch das Netzwerk hindurch erhalten bleiben, mit Ausnahme von Verlusten aufgrund von Biffehlern;
    • 4. Es kann nicht davon ausgegangen werden, daß die zeitliche Reihenfolge von Informationspaketen, die über verschiedene Segmente des Bündels transportiert werden, erhalten bleibt;
    • 5. Pakete (einschließlich Rundsendungs- und Multicast-Paketen) dürfen über Bündelsegmente nicht wiederholt oder dupliziert werden;
    • 6. Rundsendungs- und Multicast-Pakete, die über ein Bündelsegment übertragen werden, dürfen nicht als Echo oder als Loop-Back an den Sender über die anderen Bündelsegmente zurückgesandt werden;
    • 7. Die Regeln basieren auf einem Modell, das Voll-Duplex-Betrieb in der Bitübertragungsund Medienzugangskontrollschicht bei jedem Segment voraussetzt, und Halb-Duplex-Betrieb unter Verwendung von CSMA/CD wird weder unterstützt noch ist dieser erwünscht;
    • 8. Endeinrichtungen des Bündels assoziieren eine einzelne 48-Bit-1EEE-MAC-Adresse mit allen Bündelsegmenten;
    • 9. Es kann nicht von vollkommener Lastverteilung zwischen den Segmenten ausgegangen werden, und jedes Bündelende versucht eine Lastverteilung nach seinem besten Vermögen in Übereinstimmung mit allen vorstehenden Regeln.
  • Die vorstehenden Regeln adressieren als solche nicht Konfiguration, Einrichtung, Verwaltung oder Wartung von Bündeln oder Entdeckung von Adressierungsfehlern oder Wiederherstellung. Die Ausführungsform geht davon aus, daß die Bitübertragungsschicht eine Art von Anzeige vorsieht für den Fall, daß ein bestimmtes Bündelsegment ausfällt. Darüber hinaus geht die Ausführungsform der Erfindung davon aus, daß jedes Bündelende überwacht, welcher Zustand auch immer von der Bitübertragungsschicht bereitgestellt wird, und geeignete Maßnahmen ergreift. In der Praxis kann die Konfiguration und die Einrichtung mittels manueller Operationen, die für jede Implementierung spezifisch sind, durchgeführt werden, wenngleich stattdessen auch nicht-manuelle Operationen angewandt werden können.
  • Aus der Perspektive des Servers übt eine Ausführungsform der Erfindung Kontrolle darüber aus, wie Daten ausgesandt werden, jedoch keine Kontrolle darüber, wie Daten ankommen könnten. Darüber hinaus müssen die Switch- (oder anderweitige) Mechanismen, bei denen die vorliegende Erfindung verwendet wird, die virtuelle Natur der beteiligten Verbindungen verstehen, während der Server die Zuweisung einer Client-ID auf dem Gerätetreiber-Level für den logischen Link vornimmt. Demnach sollte der Mechanismus erkennen, daß die Verbindung, auch wenn das, was zu sehen ist, eine zusammengesetzte einzelne Verbindung zu sein scheint, eine logische Verbindung ist und zehn Leitungen enthalten kann, die mit zehn Polen des Switch verbunden sind. Daher sollte der Switch oder der anderweitige Mechanismus wissen, wie der Verkehr vom Server an den Mechanismus vorzugsweise gleichmäßig unter diesen verschiedenen Verbindungen zu verteilen ist. Typischerweise sind der Switch oder die anderen DTE-Mechanismen Mikroprozessor-gesteuert und können leicht dazu veranlaßt werden, einen Satz von Anschlüssen eines spezifizierenden Mechanismus als eine einzelne logische Verbindung zu konfigurieren.
  • Ein wichtiges Ziel in einem bündelnden Modell ist es, auch ein Bündel mit vielen Segmenten aus dem Blickwinkel des Protokollstacks des Servers als eine einzelne Schnittstelle mit hoher Bandbreite erscheinen zu lassen. Darüber hinaus sollten alle Clients, die mit dem Server über das Bündel kommunizieren, eine konsistente Sicht der Identität des Servers haben, z. B. bezüglich der MAC- und Internet-Protokoll- oder IP-Host-Adressen. Die Anmelden haben keinen Versuch unternommen, Lastverteilung durch Verwalten von Adreßprotokolltabellen (ARP) innerhalb des Clients zu erreichen. Ein solcher Ansatz ist nicht wünschenswert, weil der Server zu viele ARP-Frames aussenden müßte und weil die ARP-Implementierung im Server hinsichtlich der Funktionalität wesentlich erweitert werden müßte.
  • Die vierte, oben aufgezählte Regel schließt es aus, eine zeitliche Paketreihenfolge beim Transport von Paketen über unterschiedliche Bündelsegmente vorauszusetzen. Dementsprechend muß der Server sicherstellen, daß alle Pakete in jeder beliebigen Sequenz von Paketen, die eine zeitliche Reihenfolge erfordern, über dasselbe Segment des Bündels übertragen werden. Im allgemeinen können Transportprotokolle in Situationen, in denen Pakete außer der Reihenfolge bzw. in falscher Reihenfolge ankommen, die richtige Reihenfolge wiederherstellen, aber die Wiederherstellung zieht im allgemeinen eine signifikante Verschlechterung des Durchsatzes nach sich. Dies liegt daran, daß der Empfang von Paketen außer der Reihenfolge bzw. in falscher Reihenfolge als Ausnahmesituation behandelt wird und nicht optimiert ist. Dementsprechend sollte jeder Lastverteilungsmechanismus im Server dafür ausgelegt sein, Vorteile aus der dritten Regel zu ziehen, nämlich daß die zeitliche Reihenfolge von Paketen, die über ein gegebenes Segment des Bündels übertragen werden, durch das Netzwerk hindurch erhalten bleiben muß höchstens mit Ausnahme von Verlusten aufgrund von Bitfehlern.
  • 3 zeigt die relativ leichte Modifikation an den unteren Schichten des Modells, das in 1A für ein Ethernet-kompatibles Netzwerk in einer voll-duplex-fähigen, geschalteten bzw. vermittelten Umgebung abgebildet ist, die verwendet wird, die vorliegende Erfindung zu implementieren. Es ist zu beachten, daß relevante Änderungen unterhalb der dritten Schicht im Modell, der IP- oder Netzwerkschicht 60, auftreten. Genauer wird eine bündelnde Pseudo-Treiber Schicht 150 unterhalb der IP-Schicht 20 und oberhalb der LLC/MAC-Schicht 50A/B eingeführt. Da nur leichte Änderungen am zugrundeliegenden Netzwerkmodell vorgenommen werden, ist das resultierende Netzwerk voll IEEE 802 kompatibel.
  • In der gebündelten Serverschnittstelle in 3 fungiert die Pseudo-Treiber-Schicht 150 als ein Demultiplexer im Übertragungspfad und als ein Multiplexer im Empfangspfad. Um die oben aufgezählten Regeln im Hinblick auf die zeitliche Reihenfolge zu erfüllen, versucht der Pseudo-Treiber sicherzustellen, daß alle von den mit einem bestimmten Transportschicht-Datagramm assoziierten Paketen in die Übertragungswarteschlage derselben Netzwerkein richtung bzw. desselben Netzwerkgerätes eingefügt werden. Diese Annahme wird auf der Grundlage getroffen, daß die Erhaltung der Reihenfolge innerhalb eines Datagramms ausreicht und zwischen Datagrammen nicht notwendig ist.
  • 4A zeigt den Effekt der durch 3 vorgeschlagenen Modifikation, und soll im Unterschied zu 4B betrachtet werden, die eine herkömmliche, nicht modifizierte Schnittstelle zwischen IP-Schicht-3 und LLC/MAC-Schicht-2 zeigt. In den 4A und 4B werden schlußendlich eine Mehrzahl von Clients (oder von etwas Äquivalentem), die mit A, B, C,... N bezeichnet werden, von einem Server bedient, dessen Schicht 3-Schicht 2 gezeigt ist. Jedenfalls läßt es die vorliegende Erfindung vorteilhafterweise durch leichtes Modifizieren der Schnittstelle zwischen Schicht 2 und Schicht 3 nur auf der Serverseite zu, daß jeder Client A, B,... N einem einzigen Teilnetz angehört, das gegenüber der IP-Schicht-3 mittels einer einzigen IP- (oder Ethernet-) Adresse referenziert wird, hier dargestellt als nid1. Im wesentlichen operiert die Ausführungsform der Erfindung Peer-zu-Peer in Schicht 2, indem MAC-Adreßinformation in ausgesendete Pakete eingefügt wird. (Im Gegensatz dazu erfordert die Adressierung nach dem Stand der Technik eine vertikale Schicht-3-ARP-Tabelle-zu-Schicht-2 Übersetzung, weil jede physikalische Verbindung einer Netzwerk-ID-Adresse zugeordnet ist.)
  • Dem Betriebssystem, das zu dem Client aus 4A gehört, erscheinen die N separaten Systemkonnektoren oder Kabel, als eine einzelne logische Verbindung. Verwaltungstechnisch können die N Ausrüstungsteile, die mit dem Server aus 4A gekoppelt sind, flexibel verbunden werden, um eine höhere Bandbreite des Systems zu fördern. Wenn es zum Beispiel N 10 Mbit/sec-Verbindungen gibt, können sie logisch gruppiert werden, um ein N × 10 Mbit/sec-System darzustellen. Die Systemverwaltung wird speziell im Hinblick auf das Neuanordnen von Teilen der Ausrüstung vereinfacht, z. B. das Umziehen einer DTE von "Position" A nach Position "C" in 4A, oder es einer DTE an Position C zu ermöglichen, Daten zu empfangen, auch wenn die physikalische Verbindung, die normalerweise benutzt würde, außer Betrieb ist.
  • Es ist im Gegensatz dazu bei 4B nach dem Stand der Technik zu beachten, daß es eine separate Adresse auf IP- (oder Ethernet-) Level für jeden Client gibt, z. B. Verbindung nid0 für Client A mit Einrichtung bzw. Gerät hme0, Verbindung nid2 für Client B mit Einrichtung bzw. Gerät hme2, usw. (Siehe auch 1B.) In 4B sind die verschiedenen Clients oder Einrichtungen bzw. Geräte (bezeichnet mit A, B,... N) in N Teilnetze mit Referenz auf Schnittstellen zwischen Schicht 2 und Schicht 3 gruppiert. In 4B ist auch zu beachten, daß mit der IP-Schicht-3 und der LLC/MAC-Schicht-2 N Netzwerkschicht-IDs (nid0, nid1,... nidN) und N Einrichtungs- bzw. Gerätenamen hme0, hme1,... hmeN assoziiert sind, wobei jeder Einrichtungs- bzw. Gerätenamen eine einzelne physikalische Verbindung repräsentiert. Es wurde bereits darauf hingewiesen, daß in 4b nach dem Stand der Technik die IP-Schicht-3 eine separate Netzwerk-ID-Adresse für jede physikalische Verbindung erkennen muß.
  • Betrachten wir nun die Vorteile für die Adressierung, die mit der vorliegenden Erfindung erreicht werden. Pakete von Daten, die bei einem Mechanismus (z. B. einem Switch) ankommen, führen Adreßinformation mit sich, einschließlich einer Netzwerk-Schicht-2-Zieladresse und einer Bündel-ID-Adresse. Gemeinhin ist die Zieladresse dahingehend absolut eindeutig, daß kein anderer Ethernet-kompatibler Anschluß in der Welt dieselbe Zieladresse besitzt. Die Zieladresse ist 6 Bytes lang, die Quell- bzw. Ursprungsadresse ist 6 Bytes lang, und 2 Bytes werden benutzt, um den Typ des Pakets, das über die physikalische Verbindung vom Server an den Mechanismus übertragen werden soll, zu kennzeichnen. Bündelung gemäß einer Ausführungsform der Erfindung vermeidet es, daß Pakete mehrere unterschiedliche Zieladressen auf Ethemet-Level übertragen müssen. Daher benötigt in der Ausführungsform der Erfindung ein Switch, der angeschlossen ist, um fünf Eingangsverbindungen aufzunehmen bzw. von fünf Eingangsverbindungen zu empfangen, nicht fünf separate, 6 Byte lange Zieladressen für jede der Verbindungen.
  • In Ergänzung zur Zuweisung einer vorzugsweise 6 Byte langen Schicht-2-Zieladresse weist die vorliegende Ausführungsform noch eine Schicht-3-Adresse zu. Während der Stand der Technik eine Schicht-3-Internet-Adresse für jede Schicht-2-Ethemet-Adresse (4B) benötigt, funktioniert die Ausführungsform der Erfindung jedoch mit einer einzelnen Schicht-3-Adresse für eine Mehrzahl von physikalischen Verbindungen mit einer einzelnen Schicht-2-Adresse (4A). In dieser Weise kann die Mehrzahl von Schicht-2-Verbindungen (oder Teilverbindungen) als eine einzige virtuelle Verbindung gegenüber Schicht 3 und den höheren Schichten im Netzwerkmodell dargestellt werden. Die host- oder serverseitige Schicht 2 wird dahingehend modifiziert, daß sie Software-Geräte-Treiber mit erweiterten Konfigurationsfähigkeiten enthält. Die modifizierte Schicht 2 setzt Kommandos an eine Pseudo-Gerätetreiber-Schicht ab, die eine korrespondierende Einrichtung bzw. ein korrespondierendes Gerät für jede Verbindung spezifizieren. Das relevante Bündel wird von der Software mit einer Bündel-ID identifiziert.
  • Wieder gemäß 4B nach dem Stand der Technik hat jede der N Teilverbindungen (z. B. A, B,... N) in Schicht 3 eine andere Teilverbindungs-IP-Adresse. Wenn es N = 5 Verbindungen gäbe, dann würden fünf verschiedene Teilverbindungs-IP-Adressen in Schicht-3 benötigt. Wenn ein Hostserver 10 Daten an einen Client 10' (oder andere Ausrüstung) zu senden wünschte, müßte Server 10 eine passende IP-Teilverbindungs-Adresse angeben, die der spezifischen Verbindung, der Client 10' zugewiesen wäre, entspräche. Demnach würde Server 10, um Client 10' anzugeben, in der IP-Schicht-3 eine eindeutige IP-Adresse mit Host-ID und Netzwerk-ID angeben. Es wurde bereits darauf hingewiesen, daß die Netzwerkschicht-ID, die für Client 10' zugewiesen wurde, zum Zeitpunkt, als der Netzwerkadministrator das Netzwerk konfigurierte, dieselbe ist wie die Adresse auf IP-Level, die mit Client 10' assoziiert ist, weil die zugeordnete physikalische Verbindung an diesen Client gebunden ist. Im Gegensatz dazu kann wie in 4A gezeigt eine einzelne virtuelle Verbindung, welche die Schichten 3 und 2 überspannt, eine Mehrzahl von Verbindungen in den unteren Schichten repräsentieren.
  • In der Praxis wäre es für den Softwarecode, der den Pseudo-Treiber implementiert, schwierig, die Header jedes Paketes zu untersuchen und zu versuchen, sie mit einem bestimmten Datagramm in Verbindung zu bringen. Dies könnte jedoch bewerkstelligt werden vorausgesetzt, daß ein hinreichend schneller Prozessor den Code ausführen würde. Es erscheint ausreichend, einen kleinen Cache-Speicher mit MAC- (oder IP-) Zieladressen, die mit jeder Netzwerkschnittstelle assoziiert sind, z. B. mit jedem Segment des Bündels, vorzuhalten bzw. fortzuschreiben. Ein solcher Cache-Speicher kann in irgendeiner von den Stationen 10, 10', 10", etc. (siehe 1A) vorgehalten werden wie auch der Softwarecode und der Prozessor, der diesen Code ausführt.
  • Demnach inspiziert der Pseudo-Treiber den Cache-Speicher, wenn die IP-Schicht dem Pseudo-Treiber ein Paket übergibt, um in Ertahrung zu bringen, ob er unlängst ein Paket an die relevante Zieladresse (destination address, "DA") übermittelt hat. Falls ja, stellt der Pseudo-Treiber das Paket in die Warteschlage derselben Schnittstelle, die auch dazu verwendet wurde, das letzte Paket an diese DA in die Warteschlange zu stellen. Falls es kürzlich keine Übertragung an diese DA gab, kann der Pseudo-Treiber das Paket entweder in die Übertragungswarteschlange, die am leersten (z. B. am wenigsten voll bzw. belegt) ist, stellen oder in die als nächste verfügbare Warteschlange, z. B. nach einem Round-Robin-Verfahren. Unabhängig davon, welche Warteschlange er auswählt, muß der Pseudo-Treiber den Cache-Speicher für diese Warteschlange mit der neuen DA aktualisieren.
  • Betrachten wir nun den degenerierten Fall, in dem ein Server mit einem und nur mit einem Client kommuniziert. Die vorliegende Erfindung stellt auch dann noch sicher, daß alle Pakete für diesen Client über dieselbe Schnittstelle gehen und somit über dasselbe Segment des Bündels. Lastverteilung wird erreicht, indem die vorliegende Erfindung sogar noch besser im nicht-degenerierten Fall wirkt. Eine hinsichtlich der Reihenfolge geordnete Ablieferung bzw. Übergabe von Paketen ist sichergestellt, vorausgesetzt man kann unterstellen, daß der Grad von Überlappung bzw. Verschachtelung von Paketen an verschiedene Das zwischen dem IP- und dem Netzwerk-Treiber von derselben Größenordnung ist wie die Anzahl von Prozessoren in einem gegebenen Multi-Prozessor-Server. Als eine Leitlinie sollte die Tiefe des Cache-Speichers ungefähr zweimal so groß sein wie die Anzahl von Prozessoren in dem gege benen Server. Natürlich kann das Aktualisieren des Cache-Speichers in gewisser Weise zwangloser bzw. seltener erfolgen, wenn die Tiefe des Cache-Speichers vergrößert wird. Es kann in der Tat eine optimale Größe für die Tiefe des Cache-Speichers geben, genauso wie eine optimale Verteilung der Menge von Schicht-2- und Schicht-3-Adressen, die in den Cache-Speicher eingetragen werden müssen.
  • Verschiedene Mechanismen zur Lastverteilung bei Switches können verwendet werden, um Pakete an ein Bündel zu übergeben. Betrachten wir nun die Lastverteilung zwischen Netzwerk-DTEs wie z. B. Switches, für die der folgende Satz von Lastverteilungsleitlinien für Switch-zu-Server-Bündel (z. B. 2A) und für Switch-zu-Switch-Bündel (z. B. 2B) anwendbar ist. Diese Leitlinien sollen sicherstellen, daß das Verhalten eines Switch mit den herkömmlichen Richtlinien für Bridging konsistent ist. Die Leitlinien sind folgende:
    • 1. Es sollte keine falsche Reihenfolge von Frames für ein gegebenes Prtoritätsniveau bzw. -level zwischen einem gegebenen MAC-Ursprung und -Ziel auftreten;
    • 2. Es sollte keine Verdoppelung von Frames auftreten;
    • 3. Lastverteilung sollte transparent bzw. nicht sichtbar sein für Protokolle, die über der MAC-Schicht arbeiten.
  • Ein Ansatz für Lastverteilung ist es, eine schnellere Verbindung zu emulieren, indem alle Bündelsegmente gleichmäßig ausgelastet gehalten werden. Zum Beispiel könnte die entsprechende Ausgangswarteschlange als Metrik für die Auslastung des Segments vennrendet werden. Vorausgesetzt, daß die Verbindungen eine Flußkontrolle implementieren, ist die Länge der Ausgangswarteschlange ein guter Stellvertreter für die Nutzung eines Segmentes von einem Ende zum anderen. (Ohne Flußkontrolle würde eine hohe Segmentlast nicht notwendigerweise im Zustand der Ausgabewarteschlange widergespiegelt wegen des Paketverlustes am anderen Ende der Empfangswarteschlange.)
  • Jedoch könnte die Verwendung der Warteschlangenlänge allein für die Entscheidung, welches Segment jeweils für ein Paket zu verwenden ist, dazu führen, daß Frames unter Verstoß gegen die erste, oben aufgezählte Leitlinie ein falsche Reihenfolge erhalten. Jedoch wird die erste Leitlinie immer ertüllt, wenn die Entscheidung bezüglich des Segmentes allein als eine Funktion der Ursprungsadresse des Pakets oder des Anschlusses, an dem das Paket eintrifft, getroffen wird. Dieser Ansatz führt jedoch zu einer statischen Lastverteilungsfunktion, in der die Effektivität des Bündels von der Verteilung der Ursprünge bzw. Quellen des Verkehrs abhängt. Einerseits sollte eine große Anzahl von Ursprüngen bzw. Quellen des Verkehrs dazu beitragen, als Ergebnis eine akzeptable Gleichverteilung zu erhalten. Aber andererseits könnte dies immer noch zu Konfigurationen führen, deren Abbildungsfunktion einen wesentlichen Anteil des Verkehrs auf dasselbe Segment lenkt, was einem Systemstau Vorschub leisten würde.
  • Ein bevorzugter Ansatz ist es, eine dynamische Abbildungsfunktion zu implementieren, wobei immer noch die Reihenfolge der Frames erhalten bleibt. Dieser Ansatz geht davon aus, daß Änderungen der Funktion langsamer erfolgen als die Übergangs- bzw. Durchgangszeiten der Ausgangswarteschlange. Als Beispiel kann die Abbildung für eine gegebene Ursprungsadresse zum Zeitpunkt, wenn das erste Paket mit der Quelladresse erkannt wird, festgelegt werden. Die Abbildung kann eventuell veralten, nachdem die Quelladresse für eine genügend lange Zeitspanne nicht mehr vorkam.
  • Vorzugsweise berücksichtigt die Abbildungsfunktion sowohl die Quell- bzw. Ursprungsadresse als auch den Ankunftsanschluß, um die Anzahl von pathologischen Fällen zu reduzieren. Wenn zum Beispiel der Verkehr räumlich bzw. regional dominiert wird von einem bestimmten Eingangsanschluß, dann trägt die Betrachtung der Quell- bzw. Ursprungsadresse dazu bei, dessen Verkehr zu verteilen. Umgekehrt trägt die Betrachtung des Ankunftsanschlusses dazu bei, den Verkehr, der von einer kleinen Anzahl von Adressen dominiert wird (z. B. Senner oder Router), zu verteilen, speziell dann, wenn mehr als ein Bündel im Switch existiert.
  • Frameverdoppelung wird dadurch verhindert, daß der Satz von gebündelten Anschlüssen behandelt wird, als ob sie ein einzelner Anschluß mit einer separaten Warteschlange pro Segment wären, und daß sichergestellt wird, daß jede Übergabe nur an eine der Warteschlangen erfolgt. Darüber hinaus werden gebündelte Anschlüsse für die Zwecke anderer IEEE 802.1(d) Funktionen wie Lernen von MAC-Adressen, Filtern von Frames und Ausführen irgendeines anwendbaren Spanning-Tree-Protokolls so behandelt, als wenn sie ein einzelner Anschluß wären.
  • Bisher hat sich die obenstehende Beschreibung auf Lastverteilung unter Verwendung von Informationen der MAC-Schicht konzentriert. Es ist für einen Netzwerk-Switch auch möglich, Information der höheren Protokollschichten zu beachten, um bessere Lastverteilungsentscheidungen zu treffen, vorausgesetzt, daß die dritte Leitlinie (bezüglich Protokolltransparenz) befolgt wird. Transparenz bedeutet, daß Protokolle nichts von der Lastverteilungsfunktion im Switch mitbekommen und nicht explizit mit der Lastverteilungsfunktion zusammenwirken. Zusätzlich muß die Verbindungsfähigkeit auch noch für Protokolle garantiert sein, die vom Switch weder unterstützt noch verstanden werden.
  • Es ist üblich, Lastverteilung basierend auf Informationen höherer Schichten für Switches zu implementieren, welche die Header der Schicht-3 paketweise überprüft. Zum Beispiel können in VLAN-Konfigurationen Switches die Schicht-3-Adressen einmal überprüfen und die entsprechende Schicht-2-Information für die Paketverarbeitung verwenden. Jedoch haben die Anmelder die mögliche Leistungsfähigkeit der Lastverteilung bei einem solchen Ansatz nicht vollständig untersucht.
  • Obwohl die vorstehenden Beschreibungen in die Richtung gehen, eine Abbildungsfunktion vorzusehen, die eine Gleichverteilung zwischen Segmenten fördert, könnte die Abbildungsfunktion auch in eine andere Richtung zielen. Zum Beispiel könnte die Abbildungsfunktion den Verkehr abhängig von der Priorität oder abhängig davon, ob der Verkehr hinsichtlich der Bandbreite verwaltet wird, oder nach bestem Vermögen (best effort) separieren. Ein Ansatz, der auf Priorität basiert, wird durch die erste aufgezählte Leitlinie (keine Änderung bei der Reihenfolge der Frames) unterstützt, weil es nicht erforderlich ist, die Reihenfolge der Pakete über verschiedene Prioritäten hinweg beizubehalten. Ein Ansatz, der auf Priorität basiert, ist besonders unkompliziert, wenn Information bezüglich der Priorität in der MAC-Schicht wohldefiniert ist, wie es der Fall ist, wenn VLAN-Tags verwendet werden.
  • Aus der vorstehenden Beschreibung kann erkannt werden, daß das Verhalten eines Switch oder von anderer Ausrüstung konzeptionell durch einen Satz von einfachen Regeln geleitet sein kann. Während die spezielle Architektur des Switch berücksichtigt werden sollte, kann die Implementierung von Definitionen unabhängig von spezifischem Lastverteilungsverhalten des Servers vorgenommen werden.
  • Betrachten wir nun die Implementierung der vorliegenden Erfindung innerhalb der Schicht 2 auf Seiten des Servers innerhalb eines Ethemet-kompatiblen Netzwerks. In der folgenden Beschreibung soll eine "hme"-Nomenklatur Gerätetreiber der Art bezeichnen, wie sie in der Schicht der bündelnden Pseudo-Treiber 150 enthalten sind, wie in 3 und in 4A angegeben. In einer bevorzugten Ausführungsform stellt ein hme-Gerät bzw. eine hme-Einrichtung eine 10/100 Mbps Ethernet-kompatible Schnittstelle auf verschiedenen Hardwareplattformen, einschließlich vieler Systeme, die bei Sun Microsystems, Inc. in Entwicklung sind, zur Verfügung. Eine hme-Einrichtung auf diesen verschiedenen Plattformen wird vorzugsweise von demselben Binärcode eines hme-Gerätetreibers gesteuert. Eine Beschreibung eines hme-Gerätetreibers und der Bündelung folgt ebenso wie eine Beschreibung von solchen Änderungen bezogen auf die Architektur und die Software eines hme-Gerätetreibers, wie sie nötig werden, um mehrere hme-Geräte bzw. hme-Einrichtungen zu einem Bündel zusammenzufassen.
  • Um einen Überblick zu geben, ist der hme-Gerätetreiber vorzugsweise ein 2.x Solarfis STREAMS-basierter Treiber, der eine Schnittstelle zu einem Diensterbringer der Datensicherungsschicht (Data Link Provider Interface, "DLPI") zur Verfügung stellt. In der bevorzugten Ausführungsform steuert dieser Treiber die Netzwerkschnittstelle basierend auf einem ASIC eines SCSI-Parallelanschlusses für schnelles Ethernet (Fast Ethernet Parallel Port SCSI, "FEPS") für Sun Microsystems Sbus-Typ Plattformen, und basierend auf einem ASIC der Sun Microsystems Cheerio Klasse für PCI-Plattformen, um MAC-Funktionalität und Transceiver mit medienunabhängiger Schnittstelle (Media Independent Interface, "MII") sicherzustellen. Der Treiber stellt auch eine ioctl-Funktion zum Setzen/Lesen der Parameter der Treiberkonfiguration unter Verwendung des Kommandos ndd zur Verfügung. Der Quellcode des Treibers besteht aus den folgenden Dateien:
    Figure 00220001
  • Fachleute erkennen, daß die Datenstrukturen und Funktionen im hme-Treiber in vielen Arten implementiert werden können. Was nun folgt ist eine Beschreibung einer bevorzugten Implementierung für einige von diesen Strukturen und Funktionen.
  • Verkettete Liste von STREAMS-Strukturen
  • Figure 00230001
  • Verkettete Liste von hme-Strukturen:
  • Figure 00240001
  • Alle Datenstrukturen von hme-Instanzen sind miteinander verkettet mittels des Feldes hme nextp. Der Zeiger auf den Kopf dieser Liste ist: static struct hme *hmeup = NULL;
  • Treiberfunktionen:
  • Die Treiber-Funktionen und -Konfigurationen werden nun angegeben.
  • Konfiguration:
  • Die Funktionen zur Konfiguration des Treibers im Solarfis 2.x Betriebssystemkern sind vorzugsweise:
  • hmeinfo
    • – gibt Information über das Gerät bzw. die Einrichtung zurück;
  • hmeidentify
    • – gibt den Namen des Gerätes bzw. der Einrichtung als "hme" oder "SUNW,hme" an;
  • hmeattach
    • – ordnet die Struktur hme für die Instanz des Gerätes bzw. der Einrichtung zu und initialisiert mit den Konfigurationsparametern; registriert auch die hme-Interrupt-Handler-Funktion für das Gerät bzw. die Einrichtung.
  • hmedetach
    • – hebt die Zuordnung der Struktur hme und weiteren Speichers, der für die Instanz des Gerätes bzw. der Einrichtung zugeordnet wurde, auf; macht auch die Registrierung des Interrupt-Handlers für das Gerät bzw. die Einrchtung rückgängig.
  • STREAMS-Operationen:
  • Die Funktionen zur Implementierung der Operationen der STREAMS-Schnittstelle sind vorzugsweise wie folgt:
  • Schnittstelle:
  • hmeopen
    • – öffnet einen STREAM durch Zuordnen einer Struktur hmestr; versetzt den STREAM in den Zustand DL_UNATTACHED;
  • hmeclose
    • – schließt einen STREAM durch Deallokieren der Struktur hmestr und jedes weiteren Speichers dieses STREAM;
  • hmewput
    • – wird von einem Modul höherer Schichten aufgerufen, um eine STREAMS Nachricht zu übergeben, die eine DLPI Primitive oder eine M_DATA Nachricht für Fast-Path Betrieb bzw. Operation oder eine spezielle STREAMS Nachricht sein kann; M DATA Nachrichten werden durch Aufruf der Funktion hmestart() sofort übertragen; DLPI Primitiven werden in die hme-Schreib-Warteschlange eingehängt, um von der Dienstfunktion hmewsrv() bearbeitet zu werden, wenn die Schreib-Warteschlange für den Dienst bzw. das Bedient-Werden freigegeben wird;
  • hmewsrv
    • – wird vom STREAMS Scheduler aufgerufen, um die in der hme-Schreib-Warteschlange vorhandenen Nachrichten zu bearbeiten; diese Warteschlange enthält Nachrichten vom Typ M_PROTO und Übertragungsnachrichten, die auf freie Einträge im Ring von Übertragungsdeskriptoren warten; die Funktion ruft die Funktion hmestart(), um Pakete zu übertragen, und die Funktion hmeproto(), um Nachrichten vom Typ M_PROTO zu bearbeiten;
  • hmeioctl
    • – wird von Modulen höherer Schichten aufgerufen, um die IOCTLs raw-mode, fastpath und ndd set und get zu bearbeiten.
  • DLPI Operationen:
  • Die folgenden Funktionen werden verwendet, um DLPI Primitiven zu behandeln:
  • hmeproto
    • – ruft die geeigneten Routinen, um eine Nachricht mit einer DLPI Primitive zu bearbeiten; ruft die Funktion hmeudreq(), um Nachrichten vom Typ DL_UNITDATA_REQ zu bearbeiten, die zu übertragende Daten enthalten;
  • hmeareq
    • – bearbeitet die DL_ATTACH_REQ Primitive, die das Feld sb_hmep der Struktur hmestr für den STREAM initialisiert, um auf die Struktur hme der angegebenen hme-Geräte-Instanz zu zeigen; setzt außerdem den STREAM in den Zustand DL ATTACHED;
  • hmedreq
    • – bearbeitet die DL DETACH REQ Primitive; löst die Anbindung des STREAM vom zugeordneten hme-Gerät bzw. -Einrichtung und setzt den STREAM in den Zustand DL_UNATTACHED;
  • hmebreq
    • – bearbeitet die DL_BIND_REQ Primitive; ordnet den STREAM dem angegebenen DLSAP (Data Link Service Access Point, Dienstzugangspunkt der Sicherungsschicht) Wert zu, der dem Typfeld im Ethernet-Header entspricht; setzt außerdem den STREAM in den Zustand DL_IDLE und gibt die Übertragung und den Empfang von Paketen frei;
  • hmeubreq
    • – bearbeitet die DL_UNBIND_REQ Primitive; entfernt den DLSAP, der dem STREAM zugeordnet ist und setzt den STREAM in den Zustand DL_UNBIND_REQ;
  • hmeireq
    • – bearbeitet die DL_INFO_REQ Primitive; gibt Information zum Geräte bzw. zur Einrichtung zurück wie z. B. Typ des Gerätes bzw. der Einrichtung, Ethernet-Adresse, Rundsende-Adresse, etc.;
  • hmeponreq
    • – bearbeitet die DL_PROMISCON_REQ Primitive, um den STREAM in die Lage zu versetzen, entweder alle Pakete (DL_PROMISC_PHYS Modus) oder alle Multicast-Pakete (DL PROMISC MULTI Modus) oder alle SAP-Werte (DL_PROMISC_MULTI Modus) zu empfangen;
  • hmepoffreq
    • – bearbeitet die DL_PROMISCOFF_REQ Primitive, um die angegebenen vermischten Modi (promiscuous modes) auszuschalten;
  • hmeemreq
    • – bearbeitet die DL_ENABMULTI_REQ Primitive, um den Empfang der angegebenen Multicast-Adressen freizugeben;
  • hmedmreq
    • – bearbeitet die DL_DISABMULTI_REQ Primitive, um den Empfang der angegebenen Multicast-Adressen zu sperren bzw. zu deaktivieren;
  • hmepareq
    • – bearbeitet die DL_PHYS_ADDR_REQ Primitive, um entweder die ab Fabrik eingestellte Adresse (DL_FACT_PHYS_ADDR angefordert) oder die aktuelle Adresse (DL_CURR_PHYS_ADDR angefordert) zurückzugeben;
  • hmespareq
    • – bearbeitet die DL_SET_PHYS_ADDR_REQ Primitive, um die angegebene Ethernet-Adresse einzustellen;
  • hmeudreq
    • – bearbeitet die DL_UNITDATA_REQ Primitive, um Daten in der Nachricht in ein Ethernet-Paket zu packen und ruft die Funktion hmestart(), um das Paket zu übertragen.
  • Hardware Initialisierung:
  • hmeinit
    • – initialisiert die Hardware (MAC und den Transceiver) und initialisiert Software-Ressourcen für das Senden und Empfangen von Paketen; wird das erste Mal aufgerufen, wenn das Gerät bzw. die Einrichtung an einen STREAM angebunden wird, und wird auch dann aufgerufen, wenn irgendeine Neuprogrammierung der Hardware erforderlich ist, zum Beispiel um den vermischten Modus (promiscuous mode) freizugeben oder zu sperren, um den Multicast-Empfang freizugeben oder zu sperren, um die Geschwindigkeit oder den Modus der Verbindung zu ändern, etc.; wird auch aufgerufen vom Interrupt-Handlex, um nach schweren Fehlern wieder aufzusetzen;
  • hmeuninit
    • – wird aufgenrufen, um die Hardware vom weiteren Empfangen und Senden von Paketen abzuhalten und um weitere Interrupts zu verhindern;
  • hme_reset_transceiver
    • – wird von der Funktion hmeinit() aufgerufen, um den Transceiver zurückzusetzen;
  • hme_try_speed
    • – wird von der Funktion hmeinit() aufgerufen, um die Verbindung aufzusetzen bzw. zu starten unter Verwendung von automatischer Verhandlung (auto-negotiation);
  • hme_Force_speed
    • – wird von der Funktion hmeinit() aufgerufen, um die Verbindung aufzusetzen bzw. zu starten mit der angegebenen Geschwindigkeit und dem angegebenen Modus (erzwungene(r) bzw. forcierte() Geschwindigkeit und Modus);
  • hme_check_link
    • – wird unter Verwendung der timeout() Schnittstelle alle 30 Sekunden aufgerufen, um den Transceiver zu überprüfen; der hme-Gerätetreiber unterstützt Produkte, die einen auf dem Board vorhandenen Transceiver benutzen, der mit einem RJ45-Konvektor verbunden ist, oder einen externen Transceiver, der mit einem MII (Media Independent Interface) Konnektor verbunden ist; diese Funktion fragt nach Änderung des Tranceivers und ruft, wenn der Transceiver geändert wurde, die Funktion hmeinit() auf, um MAC und den Transceiver neu zu initialisieren;
  • Paket-Übertragung und Paket-Empfang:
  • hmestart
    • – wird aufgerufen von hmewput() für Nachrichten vom Typ M_DATA (fast-path) und von hmeudreq() für M_PROTO Nachrichten mit DL_UNITDATA_Prtmitiven, um ein Ethernet-Paket zu übertragen; ruft auch die Funktion hmereclaim auf, um Übertragungsressourcen freizugeben, wenn mehr als eine bestimmte Anzahl (z. B. > 64) von Deskriptoren beansprucht bzw. belegt wurden; wenn es keine freien Deskriptoren mehr gibt, wird die Nachricht am oberen Ende der Schreib-Warteschlange eingefügt und es wird ein Flag gesetzt, damit die Warteschlange zur Bearbeitung freigegeben und wieder zur Bearbeitung eingeplant wird, wenn freie Übertragungsdeskriptoren verfügbar sind;
  • hmeintr
    • – diese Routine liest das FEPS/Cheerio Statusregister und prüft, ob Ereignisse wie Fehler, Paketempfang und -übertragung eingetreten sind; normalerweise sind Übertragungsinterrupts nicht freigeschaltet; im Falle eines schweren Fehlers wird die Funktion hme_fatal_error() aufgerufen, um den Zustand zu aktualisieren und die Funktion hmeinit() aufzurufen, um die Hardware und die Datenstrukturen in der Software neu zu initialisieren; im Falle von nicht-schweren Fehlern, wird die Funktion hme_non_fatal_err() aufgerufen;
    • – wenn ein Paketübertragungsereignis gemeldet wird, wird die Funktion hmereclaim() aufgerufen, um die Übertragungsdeskriptoren und die zur Übertragung benutzten Paketpuffer freizugeben;
  • hmereclaim
    • – diese Funktion geht in einer Schleife über den Ring von Übertragungsdeskriptoren von dem zuletzt belegten Deskriptor bis zum zuletzt übertragenen Paket; zu jedem übertragenen Deskriptor gibt sie die zur Übertragung benutzten Paketpuffer frei und aktualisiert den Zähler der übertragenen Pakete für jedes übertragene Paket; wenn irgendwelche Pakete in der Schreib-Warteschlange auf freie Übertragungsdeskriptoreinträge warten, werden die Schreib-STREAMS-Warteschlangen vom STREAMS-Scheduler zur Bearbeitung freigegeben;
  • hmeread
    • – ein freier STREAMS-Nachrichtenpuffer wird zugeordnet und an die Hardware im Ring von Empfangsdeskriptoren an der Stelle des empfangenen Pakets übergeben; wenn es keine freien Puffer gibt, werden die empfangenen Daten verworfen und der Puffer wird erneut an die Hardware im Ring von Empfangsdeskriptoren übergeben;
    • – typischerweise ist nur ein Stream von der IP-Schicht aus mit dem Wert des Feldes sb sap auf ETHERTYPE_IP gesetzt geöffnet; die Struktur hme enthält ein Feld hme_ipq, um auf die Lese-Warteschlange eines solchen Streams zu zeigen; wenn das Typfeld des empfangenen Paketes ETHERTYPE_IP ist, dann wird dieses Paket an diese Warteschlange zur IP-Verarbeitung gesendet; ansonsten wird das Typfeld des empfangenen Paketes mit dem Feld sb sap aller an das hme-Gerät bzw. die hme-Einrichtung angebundenen Streams verglichen, und eine Kopie des Paketes wird auf allen Streams, die für den Empfang des Paketes in Frage kommen bzw. auswählbar sind, nach oben gesandt.
  • Wie bereits erwähnt erfordert eine Implementierung der vorliegenden Erfindung in einem gebündelten Ethernet-Protokoll bzw. einem Ethernet-Protokoll mit Bündelung die Befolgung der neun aufgezählten Regeln, die weiter vorne aufgezählt wurden.
  • In einer Implementierung der vorliegenden Erfindung verwendet die Bündelung einen STREAMS Pseudo-Treiber mit Multiplexing, z. B. ausschließlich Software, und verplombt bzw. verbindet hme-Geräte bzw. -Einrichtungen, die Mitglieder bzw. Bestandteile des darunter liegenden Bündels sind. Jedoch erfordert dieser Ansatz einige Änderungen im hme-Treiber und zieht die Zusatzlast nach sich, eine STREAMS-Funktion putnext() für die Kommunikation zwischen dem Pseudo-Treiber und dem hme-Treiber verwenden zu müssen.
  • Eine eher bevorzugte Ausführungsform modifiziert den hme-Treiber selbst, um Bündelkonfiguration unter Verwendung der ioctl-Schnittstelle ND_SET und ND_GET sowie des Kommandos ndd zu unterstützen. Diese Ausführungsform wird vorgezogen, da sie eine große Menge Codeduplizierung im Pseudo-Treiber eliminiert und die Zusatzlast einer zusätzlichen STREAMS-Schicht vermeidet.
  • Das Hochfahren eines Systems über ein Bündel ist nicht möglich, weil der Code zum Hochfahren im fcode kein Bündel behandelt. Der Code kann Anforderungen zum Hochfahren über eine der Verbindungen übertragen, aber wenn der Switch die Antworten über mehrere Verbindungen sendet, kann er nicht alle diese Pakete behandeln.
  • Beim Konfigurieren des Bündels wird eines der hme-Geräte bzw. -Einrichtungen als der Bündelkopf ausgewiesen und die anderen als Bündelmitglieder bzw. Bündelbestandteile. Betrachten wir zum Beispiel vier hme-Geräte bzw. -Einrichtungen, die mit hme 1, hme2, hme3 und hme4 bezeichnet werden und als ein Bündel konfiguriert werden sollen. Jede bzw. jedes von diesen Geräten bzw. Einrichtungen kann verschiedene lokale MAC-Adressen haben, aber um Teil desselben Bündels zu sein, sollten alle diese Geräte bzw. Einrichtungen mit derselben MAC-Adresse konfiguriert werden. Dies kann leicht erreicht werden durch Auswahl eines bzw. einer dieser Geräte bzw. Einrichtungen als Bündelkopf und die anderen als Bündelmitglieder bzw. Bündelbestandteile. Die MAC-Adresse des Bündelkopfes kann als MAC-Adresse für alle anderen Bündelmitglieder bzw. Bündelbestandteile ausgewählt werden. Darüber hinaus wird die Instanznummer für den Bündelkopf von Benutzerprogrammen verwendet, um auf das Bündel zum Zwecke von Datentransfer zuzugreifen, und die ande ren Bündelmitglieder bzw. Bündelbestandteile sind nicht zugänglich für irgendeine Operation des DLPI-Protokolls. Wenn zum Beispiel hme 1 als Bündelkopf ausgewählt wird, würde der Benutzer die Datei /etc/hostname.hme1 kreieren, so daß die Schnittstelle hme 1 für den TCP/IP-Protokollzugang bzw. -zugriff während des Vorgangs, das System hochzufahren, fest zugeordnet ist.
  • Wenn ein System hochgefahren wird (entweder von der lokalen Platte oder über das Netzwerk unter Verwendung einer nicht-gebündelten Netzwerkschnittstelle), konfiguriert der Betriebssystemkern alle Netzwerkschnittstellen in der üblichen Weise als individuelle Verbindungen mit lokalen MAC-Adressen, falls überhaupt. Nachdem die Konfiguration des Betriebssystemkerns abgeschlossen ist, führt der Prozeß /sbin/init das Skript /sbin/rcS aus, welches die Skriptdatei /etc/rcS.d/S30rootusr.sh zur Konfigurierung der Netzwerkschnittstellen, für welche die Dateien /etc/hostname.xx vorhanden sind, ausführt. Indem die Kommandos ndd zur Konfigurierung des Bündels in eine Shell-Skript-Datei im Verzeichnis /etc/rcS.d geschrieben werden und die Datei beispielsweise S20trunk.sh genannt wird, kann der Initprozeß zwangsweise dazu veranlaßt werden, das Bündel zu konfigurieren, bevor irgendein Kommando zur Konfigurierung einer Netzwerkschnittstelle ausgeführt wird.
  • Sobald ein Bündel konfiguriert ist, kann die Konfigurierung (Bündelmitglieder bzw. Bündelbestandteile oder Bündelkopf) vorzugsweise nur nach Modifizierung der Datei /etc/rcS.d/S20trunk.sh und erneutem Hochfahren des Systems modifiziert werden. Die Einschränkung hilft, mögliche Konfusion für Anwendungen, die etwa eine Historie bezüglich der Netzwerkschnittstellen im System unterhalten bzw. fortschreiben, zu vermeiden. Eine Verbindung sollte am besten nach einer entsprechenden Operation zur Neukonfigurierung mit dem Switch, mit dem das Bündel verbunden ist, zu einem Bündel hinzugefügt oder aus einem Bündel entfernt werden.
  • Kommandos zur Konfigurierung:
  • Der hme-Treiber unterstützt vorzugsweise die folgenden, durch den Benutzer konfigurierbaren ndd Variablen für jede Schnittstelle:
    trunk-id – jedes Bündel wird mit einer Nummer im Bereich 1 – 256 identifiziert; der Wert 0 gibt an, daß die Schnittstelle nicht zu einem Bündel gehört;
    trunk-head – der Wert 1 gibt an, daß die Schnittstelle der Bündelkopf ist; ansonsten ist der Wert 0; dieser Parameter ist nur gültig, falls der Parameter trunk-id im Bereich 1 – 256 liegt.
  • Die folgende Sequenz von Kommandos in der Datei /etc/rcS.d/S20trunk.sh illustriert die Konfigurterung eines Bündels, das aus den Schnittstellen hme1, hme2, hme3 und hme4 besteht mit trunk-id gleich 10 und mit hme2 als Bündelkopf:
    ndd -set /dev/hme 1:arunk-id 10
    ndd -set /dev/hme 2:arunk-id 10
    ndd -set /dev/hme 3:arunk-id 10
    ndd -set /dev/hme 4:arunk-id 10
    ndd -set /dev/hme 2:arunk-head 1
  • Zuerst sollten alle Bündelmitglieder bzw. Bündelbestandteile mit einer Bündel-Id identifiziert werden, und dann sollte das letzte Kommando den Bündelkopf identifizieren. Wenn der Bündelkopf identifiziert ist, wird die Konfigurierung des Bündels vollendet durch Neuinitialisierung aller Schnittstellen der Bündelmitglieder bzw. Bündelbestandteile unter Verwendung der MAC-Id der Schnittstelle des Bündelkopfes. Nach diesem Schritt ist nur hme2 (der Bündelkopf) direkt für Benutzer zugänglich, z. B. kann nur hme2 an irgendeinem Stream angebunden werden. Auf die anderen Schnittstellen hme1, hme3 und hme4, die Bündelmitglieder bzw. Bündelbestandteile sind, kann von Benutzern nicht zugegriffen werden, z. B. können sie nicht an irgendeinen Stream angebunden werden.
  • Wenn das Bündel einmal konfiguriert ist, wird die Schnittstelle hme2 des Bündelkopfes genau so verwendet wie irgendeine nicht-gebündelte Netzwerkschnittstelle. Zum Beispiel kann sie vom Kommando ifconfig referenziert werden, um den TCP/IP-Protokollstack anzuschließen bzw. anzubinden. Alle Pakete, die an das Gerät bzw. die Einrichtung hme2 von Benutzerprogrammen oder der IP-Schicht gesendet werden, werden über eine der Verbindungen in dem Bündel so gesandt, daß die Reihenfolge der Pakete in einem Fluß bzw. Strom erhalten bleibt. Alle Pakete, die auf irgendeiner der Verbindungen in dem Bündel empfangen werden, werden auf dem Stream, der an das Gerät bzw. die Einrichtung hme2 angebunden ist, nach oben gesendet.
  • Nur auf die Bündelkopf-Einrichtung kann von ndd zugegnfen werden, um die Verbindungsgeschwindigkeit und den -modus zu ändern. Auch wenn es möglich ist, das Bündel mit Geschwindigkeiten 10/100 Mbps und in Halb-Duplex-/Voll-Duplex-Modi zu betreiben, erscheint es am besten, nur die Geschwindigkeit 100 Mbps und den Voll-Duplex-Modus zu unterstützen. Dementsprechend wird in der bevorzugten Ausführungsform jedes Bündelmitglied bzw. jeder Bündelbestandteil, das bzw. der nur mit der Geschwindigkeit 10 Mbps und im Halb-Duplex-Modus betreibbar ist, behandelt, als wenn die Verbindung außer Betrieb wäre.
  • Lastausgleich bei der Übertragung;
  • Nachrichten, die auf Streams, die an das Bündelkopf-Gerät bzw. die -Einrichtung angebunden sind, zur Übertragung nach unten gesandt werden, sollten so über eine Verbindung im Bündel gesendet werden, daß die Reihenfolge des Paketflusses in jedem beliebigen Fluß nicht gebrochen bzw. verfälscht wird. Vorzugsweise sollte nicht mehr als die Datenbandbreite einer einzelnen Verbindung zu irgendeiner bestimmten Ziel-MAC-Adresse gesendet werden, es sei denn, daß dieses bestimmte Ziel auch als gebündelt bekannt ist. Dies wird zum Beispiel der Fall sein, wenn das Bündel zwei Server direkt miteinander verbindet. Daher wird die Verteilung der Pakete auf Verbindungen normalerweise auf der Grundlage der Ziel-MAC-Adressen im Ethernet-Header bestimmt.
  • Der Benutzer kann angeben, wenn ein Bündel zwei Server direkt verbindet, indem er eine Konfigurationsvariable im Treiber setzt. In einem solchen Fall wird die Verteilung der Pakete auf der Grundlage der TCP/UDP-Portnummer für TCP/UDP-Pakete vorgenommen. Andere IP- oder nicht-IP-Pakete werden auf der Grundlage der Ziel-MAC-Adresse verteilt, wodurch es vorteilhafterweise erlaubt ist, verschiedene Multicast-Ströme auf verschiedene Links zu verteilen.
  • Aber wie bereits in Regel 4 weiter oben bemerkt, ist es wichtig, die zeitliche Reihenfolge von Paketen zu bewahren. Eine bevorzugte Methode zur Erhaltung der zeitlichen Reihenfolge bei der Übertragung von Paketen ist es, immer dieselbe Verbindung zu benutzen, die durch Hashing der Fluß-ID (Ziel-MAC-Adresse oder TCP/UDP-Portnummer) auf die Verbindungs-ID festgelegt wird. Viele Hashing-Schemata können verwendet werden, wobei das Ziel ist, eine zufallsgesteuerte Funktion bereitzustellen.
  • Eine Abbildungstabelle der Verbindungen wird verwendet, um die Fluß-ID auf eine bestimmte Verbindung abzubilden. Die Anzahl der Einträge in der Abbildungstabelle der Verbindungen ist gleich der Anzahl von Bündelmitgliedern bzw. Bündelbestandteilen (einschließlich des Bündelkopfes), wenn die Anzahl von Bündelmitgliedem bzw. Bündelbestandteilen eine Zweierpotenz ist. Falls sie nicht eine Zweierpotenz ist, sollte die Anzahl von Einträgen gleich der nächst höheren Zweierpotenz sein. Wenn es zum Beispiel fünf Bündelmitglieder bzw. Bündelbestandteile gibt, werden acht Einträge in der Abbildungstabelle der Verbindungen vorhanden sein.
  • Jeder Eintrag in der Abbildungstabelle der Verbindungen enthält einen Zeiger auf ein Bündelmitglied bzw. einen Bündelbestandteil und enthält einige Zustandsinformationen zur Verwendung dieses Bündelmitglieds bzw. Bündelbestandteils. Wenn die Größe der Abbildungstabelle der Verbindungen gleich 2n ist, dann können die letzten n Bits der Fluß-ID eines Tx-Paketes als Index in die bzw. der Abbildungstabelle der Verbindungen verwendet werden, und um ein Bündelmitglied bzw. eine Bündelbestandteil zur Übertragung des Paketes auszuwählen.
  • Zum Zeitpunkt der Konfigurierung des Bündels (wenn der Bündelkopf angegeben bzw. festgelegt wird) wird die Abbildungstabelle der Verbindungen kreiert und mit Zeiger auf die Bündelmitglieder bzw. Bündelbestandteile initialisiert, vorzugsweise in einem Round-Robin-Verfahren. Wenn die Bündelgröße nicht eine Zweierpotenz ist, werden einige Bündelmitglieder bzw. Bündelbestandteile zwei Einträgen zugewiesen.
  • Wenn eine Verbindung, die ein Bündelmitglied bzw. Bündelbestandteil ist, ausfällt bzw. außer Betrieb geht, werden die Einträge in der Abbildungstabelle der Verbindungen, die Zeiger auf dieses Bündelmitglied bzw. diesen Bündelbestandteil enthalten, geändert, um auf ein anderes aktives Bündelmitglied bzw. einen anderen aktiven Bündelbestandteil zu zeigen. Die Zustandsinformation für diese Einträge wird modifiziert, um auf den Ablauf einer Zeitüberwachung zu warten, bevor dieses neue Bündelmitglied bzw. dieser neue Bündelbestandteil für die Übertragung von Paketen mit Fluß-IDs, die auf diese Einträge abgebildet werden, benutzt wird. Solche Pakete werden in den STREAMS-Warteschlangen zurückgehalten, bis der Ablauf der Zeitüberwachung eingetreten ist. Eine solche Zeitüberwachung zu verwenden, hilft dabei, die zeitliche Reihenfolge der Pakete, die vor dem Ausfall des Bündelmitglieds bzw. des Bündelbestandteils ausgesendet wurden, zu erhalten. Im Gegensatz zu Ansätzen nach dem Stand der Technik, bei denen eine ausgefallene Verbindung zu Datenverlust führt, kann die vorliegende Erfindung den Datenfluß beibehalten, wenngleich über einen anderen Flußpfad.
  • In gleicher Weise wird in dem Fall, daß eine ausgefallene Verbindung, die Bündelmitglied bzw. Bündelbestandteil ist, wieder hergestellt bzw. betriebsbereit wird, zumindest ein Eintrag in der Abbildungstabelle der Verbindungen geändert, um auf dieses wiederhergestellte Bündelmitglied bzw. diesen wiederhergestellten Bündelbestandteil zu zeigen. Der Zustand für diese Einträge wird modifiziert, um auf den Ablauf einer Zeitüberwachung zu warten, bevor diese Einträge zur weiteren Übertragung verwendet werden.
  • Bevorzugte Datenstrukturen bei der Bündelung:
  • Die folgenden, Benutzer-konfigurierbaren ndd Variablen werden vorzugsweise der Struktur hme_param_array[ ] in der Datei hme.h hinzugefügt:
    Figure 00330001
  • In der Struktur "hme" ist für jede Schnittstelle hinzuzufügen:
    Figure 00330002
    Figure 00340001
  • Funktionen zur Bündelung:
  • hmeioctl
    • – fügt Code zur Behandlung der neuen ndd Variablen trunk-id (Bündel-Id), trunkhead (Bündelkopf) und flow-id (Fluß-Id) hinzu;
    • – ordnet, wenn ein neuer Bündelkopf angegeben wird, der Funktion eine Struktur für das Bündel, initialisiert Strukturen der Bündelmitglieder bzw. Bündelbestandteile und initialisiert die Hardwaregeräte bzw. -einrichtungen der Bündelmitglieder bzw. Bündelbestandteile durch Aufruf der Funktion hmeinit();
    • – fügt Code zur Unterstützung von ndd Variablen hinzu, welche die Instanznummer enthalten, z. B. Varablen der Form <nn>:<name>, wobei nn die Instanznummer ist und name auf den Parameter verweist.
  • hmedetach
    • – hebt, wenn gebündelt, die Zuordnung aller dynamischen Datenstrukturen, die zur Unterstützung des Bündels zugeordnet wurden, auf;
  • hmeareq
    • – fügt Code hinzu, um einen Fehler zurückzuliefern, wenn das Gerät bzw. die Einrichtung als ein Bündelmitglied bzw. Bündelbestandteil, das kein Bündelkopf ist, konfiguriert ist;
  • hme_trunk_init
    • – neue Funktion: wo auch immer die Funktion hmeinit() aufgerufen wird, um die MAC-Parameter bzw. den MAC-Modus zu ändern, wird die Funktion hme_tnank_init() aufgerufen, so daß die MAC-Adresse, Multicast-Adressen, vermischter Modus etc. für alle Bündelmitglieder bzw. Bündelbestandteile gesetzt werden;
  • hme trunk start
    • – neue Funktion: wo auch immer zur Zeit die Funktion hmestart() aufgerufen wird, um ein Paket zu übertragen, wird die Funktion hme_trunk_start() aufgerufen, um die Paketübertragung für ein Bündel zu behandeln;
    • – diese Funktion verwendet die Fluß-Id für das Paket, um die Verbindung zu bestimmen, die verwendet wird bzw. werden soll; wenn das Paket an eine Verbindung weitergeleitet bzw. übergeben werden kann, wird die Funktion hmestart() aufgerufen, um das Pakte auf dieser Verbindung zu übertragen; wenn das Paket an keine Verbindung weitergeleitet bzw. übergeben werden kann, wird es in die STREAMS Warteschlange zurückgestellt und das Flag tr_txall_wait gesetzt;
  • hmeintr
    • – wenn der Verbindungszustand für ein Bündelmitglied bzw. einen Bündelbestandteil die Bedingung "Verbindung ausgefallen bzw. außer Betrieb" anzeigt, wird ein alternatives Bündelmitglied bzw. ein alternativer Bündelbestandteil zugewiesen, und eine Zeitüberwachung gestartet, bevor das neue Bündelmitglied bzw. der neue Bündelbestandteil venniendet wird;
  • hmeread
    • – nachdem das empfangene Paket in einem mblk erhalten wurde, ist der Zeiger "hmep" auf den Bündelkopf zu verwenden, um den mblk nach oben zu senden;
  • Modifikationen und Variationen können an den offenbarten Ausführungsformen vorgenommen werden, ohne den Zuständigkeits- bzw. Geltungsbereich der Efindung zu verlassen.

Claims (17)

  1. Verfahren zum dynamischen Steuern des Datenstromes zwischen physikalischen Verbindungen (20) eines Netzwerksystems, wobei das Verfahren die Schritte aufweist: logisches Kombinieren mehrerer der physikalischen Verbindungen zu einem einzigen logischen Kanalstrang, wobei ein Server (10) in dem Netzwerksystem dem Strang eine einzige Adresse einer Steuerebene des Medienzugriffs zuordnet, und Konstruieren der einzigen Adresse der Steuerebene des Medienzugriffs unter Verwendung einer Zuordnungstabellenfunktion, die für das System verfügbar ist.
  2. Verfahren nach Anspruch 1, wobei jede der physikalischen Verbindungen (20), aus welchen der Strang besteht, durch eine identische physikalische Ebene (30) und durch identische Eigenschaften (50A/B) der Steuerungsebene des Medienzugriffs repräsentierbar ist.
  3. Verfahren nach Anspruch 1, welches weiterhin aufweist: dynamisches Steuern des Datenstromes, um den von jeder der physikalischen Verbindungen (20), aus welchen der einzige logische Kanalstrang besteht, getragenen Datenstrom im wesentlichen auszugleichen.
  4. Verfahren nach Anspruch 1, welches weiterhin aufweist: zufälliges Auswählen einer Bestimmungsadresse für eine der physikalischen Verbindungen (20).
  5. Verfahren nach Anspruch 4, wobei das zufällige Auswählen das Zerlegen der Zieladressen der Steuerebene des Medienzugriffs für die physikalischen Verbindungen (20) umfaßt.
  6. Verfahren nach Anspruch 1, welches weiterhin aufweist: Verteilen von Datenpaketen von einem Server (10) in dem System zu ausgewählten der physikalischen Verbindungen (20), so daß eine zeitliche Ordnung des Datenstromes erhalten bleibt.
  7. Verfahren nach Anspruch 6, welches weiterhin aufweist, daß der Server (10) die Datenpakete über ein gemeinsames Segment des einzigen logischen Kanalstranges verteilt.
  8. Verfahren nach Anspruch 1, welches weiterhin aufweist: Definieren einer Ebene (150) für Pseudo-Treibersoftware für einen Server (10) in dem System, welcher durch ein Mehrebenenmodell repräsentierbar ist, welches zumindest eine physikalische Ebene (30) und eine Netzwerkebene (60) umfaßt, wobei die Ebene (50) für Pseudo-Treibersoftware zwischen der physikalischen Ebene und der Netzwerkebene angeordnet ist.
  9. Verfahren nach Anspruch 8, wobei die Ebene (150) der Pseudo-Treibersoftware als ein MuItiplexer in einem Empfangspfad und als Demultiplexer in einem Sendepfad funktioniert.
  10. Verfahren nach Anspruch 1, wobei das Netzwerk mit dem Ethernet kompatibel ist.
  11. Verfahren nach Anspruch 1, wobei das Netzwerk in einem Voll-Duplexbetrieb funktioniert.
  12. Netzwerksystem mit: einer ersten physikalischen Verbindung (20), einer zweiten physikalischen Verbindung, einem Server (10), der eine Serverschnittstelle hat, welche so betreibbar ist, daß sie jede der (bzw. alle) physikalischen Verbindungen dynamisch zu einem einzigen logischen Kanalstrang kombiniert, wobei der Server so betreibbar ist, daß er dem Strang eine einzige Adresse einer Steuerebene des Medienzugriffs zuordnet, und mit einem Adreßgenerator für das Erzeugen der Adresse der Steuerebene für den Medienzugriff, wobei der Adreßgenerator ausgewählt wird aus einer Gruppe, die besteht aus (i) einer Zuordnungstabelle, (ii) einem Zufallsauswähler von Zieladressen der Steuerebene des Medienzugriffs für die physikalischen Verbindungen (20), und (iii) einer Hash-Einheit bzw. Zerlegungseinheit, welche die Bestimmungsadressen der Steuerebene des Medienzugriffs für die physikalischen Verbindungen zerlegt.
  13. Netzwerksystem nach Anspruch 12, wobei jede der physikalischen Verbindungen (20), aus welchen der Strang besteht, durch eine identische physikalische Ebene (30) und identische Eigenschaften (50A/B) der Steuerebene des Medienzugriffs repräsentierbar ist.
  14. Netzwerksystem nach Anspruch 12, wobei das Serverinterface den von jeder der physikalischen Verbindungen (20), welche den einzelnen logischen Kanalstrang bilden, getragenen Datenstrom dynamisch ausbalanciert.
  15. Netzwerksystem nach Anspruch 12, wobei der Server Datenpakete auf ausgewählte der physikalischen Verbindungen (20) so verteilt, daß die zeitliche Reihenfolge des Datenstromes aufrechterhalten wird.
  16. Netzwerksystem nach Anspruch 12, wobei: die Schnittstelle eine Ebene (50) für Pseudo-Treibersoftware aufweist, die zwischen einer physikalischen Ebene (30) und einer Netzwerkebene (60) in dem Server angeordnet ist, wobei die Ebene der Pseudo-Treibersoftware in einem Empfangspfad als Multiplexer und in einem Sendepfad als Demultiplexer funktioniert.
  17. Netzwerksystem nach Anspruch 12, wobei das Netzwerksystem zumindest eine Eigenschaft hat, die aus der Gruppe ausgewählt wird, welche besteht aus: (i) Das Netzwerk funktioniert in einem Voll-Duplexbetrieb, (ii) das Netzwerk ist ein Ethernet-Netzwerk, und (iii) das Netzwerk ist ethernetkompatibel.
DE69812777T 1997-06-30 1998-06-29 Verbindung von Ethernetkompatiblen Netzwerken Expired - Lifetime DE69812777T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US885072 1997-06-30
US08/885,072 US6049528A (en) 1997-06-30 1997-06-30 Trunking ethernet-compatible networks

Publications (2)

Publication Number Publication Date
DE69812777D1 DE69812777D1 (de) 2003-05-08
DE69812777T2 true DE69812777T2 (de) 2004-02-05

Family

ID=25386070

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69812777T Expired - Lifetime DE69812777T2 (de) 1997-06-30 1998-06-29 Verbindung von Ethernetkompatiblen Netzwerken

Country Status (4)

Country Link
US (1) US6049528A (de)
EP (1) EP0889624B1 (de)
JP (1) JPH11145990A (de)
DE (1) DE69812777T2 (de)

Families Citing this family (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6791947B2 (en) 1996-12-16 2004-09-14 Juniper Networks In-line packet processing
US6591303B1 (en) * 1997-03-07 2003-07-08 Sun Microsystems, Inc. Method and apparatus for parallel trunking of interfaces to increase transfer bandwidth
US7174393B2 (en) * 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US8782199B2 (en) * 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US7167927B2 (en) 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6757746B2 (en) * 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7237036B2 (en) * 1997-10-14 2007-06-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding a TCP connection
US6658480B2 (en) * 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US7185266B2 (en) * 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US7133940B2 (en) * 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6404738B1 (en) * 1998-01-21 2002-06-11 Nec Usa, Inc. Dynamic network bandwidth allocation for multimedia applications with soft quality-of-service requirements
US6195351B1 (en) * 1998-01-28 2001-02-27 3Com Corporation Logical switch set
US6195349B1 (en) * 1998-01-28 2001-02-27 3Com Corporation Scalable logical LAN
US6487214B1 (en) * 1998-04-13 2002-11-26 Cisco Technology, Inc. Method and apparatus for implementing an ethernet protocol using three wires
US6252888B1 (en) * 1998-04-14 2001-06-26 Nortel Networks Corporation Method and apparatus providing network communications between devices using frames with multiple formats
US6359879B1 (en) * 1998-04-24 2002-03-19 Avici Systems Composite trunking
US6496502B1 (en) * 1998-06-29 2002-12-17 Nortel Networks Limited Distributed multi-link trunking method and apparatus
US6449054B1 (en) * 1998-08-01 2002-09-10 Canon Kabushiki Kaisha Dynamic assignment of group addresses for controlling parallel peripheral devices
US6970419B1 (en) * 1998-08-07 2005-11-29 Nortel Networks Limited Method and apparatus for preserving frame ordering across aggregated links between source and destination nodes
US6389030B1 (en) * 1998-08-21 2002-05-14 Adc Telecommunications, Inc. Internet access over a ring network
US6570880B1 (en) * 1998-08-21 2003-05-27 Adc Telecommunications, Inc. Control data over a ring network
US7664883B2 (en) * 1998-08-28 2010-02-16 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands
US6421735B1 (en) * 1998-10-30 2002-07-16 Advanced Micro Devices, Inc. Apparatus and method for automatically selecting a network port for a home network station
FI106499B (fi) * 1998-12-29 2001-02-15 Nokia Networks Oy Tiedonsiirtomenetelmä ja verkkoelementti
US6519231B1 (en) 1999-01-12 2003-02-11 Nortel Networks Limited Method and apparatus providing a spanning tree protocol for a data communications network having a multi-link trunk
US6611502B1 (en) 1999-01-15 2003-08-26 3Com Corportion Spanning tree with rapid propagation of topology changes
US6771610B1 (en) 1999-01-19 2004-08-03 3Com Corporation Spanning tree with protocol for bypassing port state transition timers
US6535490B1 (en) * 1999-03-04 2003-03-18 3Com Corporation High availability spanning tree with rapid reconfiguration with alternate port selection
US6590861B1 (en) * 1999-03-18 2003-07-08 3Com Corporation Combining virtual local area networks and load balancing with fault tolerance in a high performance protocol
US6512774B1 (en) * 1999-03-18 2003-01-28 3Com Corporation Fail over with multiple network interface cards
US6363432B1 (en) * 1999-03-29 2002-03-26 Micro Linear Corporation Media independent interface between IEEE 802.3 (ethernet) based physical layer devices
EP1041776A1 (de) * 1999-03-30 2000-10-04 International Business Machines Corporation Mehrfache ARP Funktionen für ein IP-Übertragungssystem
US6701432B1 (en) * 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US6538990B1 (en) * 1999-04-15 2003-03-25 International Business Machines Corporation Method and system for congestion flow control in a high speed network
US6788692B1 (en) * 1999-05-03 2004-09-07 Nortel Networks Limited Network switch load balancing
US6631141B1 (en) * 1999-05-27 2003-10-07 Ibm Corporation Methods, systems and computer program products for selecting an aggregator interface
US6754220B1 (en) * 1999-05-31 2004-06-22 International Business Machines Corporation System and method for dynamically assigning routers to hosts through a mediator
US6501749B1 (en) * 1999-06-25 2002-12-31 International Business Machines Corporation System and method for data transmission across a link aggregation
US6643287B1 (en) 1999-11-24 2003-11-04 Pluris, Inc. Apparatus and method for forwarding encapsulated data packets on a network having multiple links between nodes
US6697380B1 (en) * 1999-12-07 2004-02-24 Advanced Micro Devices, Inc. Multiple key lookup arrangement for a shared switching logic address table in a network switch
US7765581B1 (en) * 1999-12-10 2010-07-27 Oracle America, Inc. System and method for enabling scalable security in a virtual private network
US6621790B1 (en) * 1999-12-30 2003-09-16 3Com Corporation Link aggregation repeater process
US6765866B1 (en) * 2000-02-29 2004-07-20 Mosaid Technologies, Inc. Link aggregation
JP3745738B2 (ja) * 2000-07-14 2006-02-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信制御方法
US6553005B1 (en) 2000-07-26 2003-04-22 Pluris, Inc. Method and apparatus for load apportionment among physical interfaces in data routers
AU2000264879A1 (en) * 2000-08-17 2002-02-25 Advanced Network Technology Laboratories Pte Ltd Reconfigurable computer networks
US8087064B1 (en) 2000-08-31 2011-12-27 Verizon Communications Inc. Security extensions using at least a portion of layer 2 information or bits in the place of layer 2 information
US7315554B2 (en) 2000-08-31 2008-01-01 Verizon Communications Inc. Simple peering in a transport network employing novel edge devices
US6850495B1 (en) * 2000-08-31 2005-02-01 Verizon Communications Inc. Methods, apparatus and data structures for segmenting customers using at least a portion of a layer 2 address header or bits in the place of a layer 2 address header
US6771673B1 (en) * 2000-08-31 2004-08-03 Verizon Communications Inc. Methods and apparatus and data structures for providing access to an edge router of a network
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US6907395B1 (en) * 2000-10-24 2005-06-14 Microsoft Corporation System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model
US7606898B1 (en) * 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7113900B1 (en) 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US6850498B2 (en) * 2000-12-22 2005-02-01 Intel Corporation Method and system for evaluating a wireless link
US6963569B1 (en) 2000-12-29 2005-11-08 Cisco Technology, Inc. Device for interworking asynchronous transfer mode cells
US7010591B1 (en) * 2001-01-25 2006-03-07 Advanced Micro Devices, Inc. Self-configuring trunking on a network device
JP4141106B2 (ja) * 2001-02-06 2008-08-27 富士通株式会社 帯域制御装置
GB2372670B (en) * 2001-02-27 2003-01-08 3Com Corp Optimisation of network configuration
US7145866B1 (en) 2001-03-01 2006-12-05 Emc Corporation Virtual network devices
US7095716B1 (en) 2001-03-30 2006-08-22 Juniper Networks, Inc. Internet security device and method
US7093280B2 (en) * 2001-03-30 2006-08-15 Juniper Networks, Inc. Internet security system
US7492737B1 (en) * 2001-05-23 2009-02-17 Nortel Networks Limited Service-driven air interface protocol architecture for wireless systems
US8005981B2 (en) * 2001-06-15 2011-08-23 Advanced Network Technology Laboratories Pte Ltd. Computer network with unique identification
US8041814B2 (en) * 2001-06-28 2011-10-18 International Business Machines Corporation Method, system and computer program product for hierarchical load balancing
TW576061B (en) * 2001-08-13 2004-02-11 Via Tech Inc Device and method for load balancing of packet switching
US7787370B1 (en) * 2001-09-06 2010-08-31 Nortel Networks Limited Technique for adaptively load balancing connections in multi-link trunks
US7302700B2 (en) 2001-09-28 2007-11-27 Juniper Networks, Inc. Method and apparatus for implementing a layer 3/layer 7 firewall in an L2 device
US8417788B1 (en) 2001-09-28 2013-04-09 Emc Corporation File system for virtual local area network
EP1300992B1 (de) * 2001-10-08 2005-12-28 Alcatel Verfahren zur Lastverteilung zwischen mehreren gemeinsamen Betriebsmitteln in einem Kommunikationsnetzwerk und Netzwerk zur Anwendung des Verfahrens
US7212526B2 (en) * 2002-01-18 2007-05-01 Hitachi, Ltd. Method and apparatus for composing virtual links in a label switched network
US7313135B2 (en) 2002-01-31 2007-12-25 Mosaid Technologies, Inc. Trunking in a matrix
US6973082B2 (en) * 2002-02-01 2005-12-06 Fujitsu Limited Forwarding packets to aggregated links using distributed ingress card processing
US7734752B2 (en) * 2002-02-08 2010-06-08 Juniper Networks, Inc. Intelligent integrated network security device for high-availability applications
US7650634B2 (en) 2002-02-08 2010-01-19 Juniper Networks, Inc. Intelligent integrated network security device
US8370936B2 (en) 2002-02-08 2013-02-05 Juniper Networks, Inc. Multi-method gateway-based network security systems and methods
US7496689B2 (en) * 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
GB2389023B (en) * 2002-05-20 2004-04-28 Sun Microsystems Inc Computer system, method and network
US7965693B2 (en) * 2002-05-28 2011-06-21 Zte (Usa) Inc. Interworking mechanism between wireless wide area network and wireless local area network
US6895481B1 (en) 2002-07-03 2005-05-17 Cisco Technology, Inc. System and method for decrementing a reference count in a multicast environment
US7453837B2 (en) * 2002-08-15 2008-11-18 Zteit Usa, Inc. Trunking system for CDMA wireless communication
US8631162B2 (en) * 2002-08-30 2014-01-14 Broadcom Corporation System and method for network interfacing in a multiple network environment
EP1540473B1 (de) * 2002-08-29 2012-02-29 Broadcom Corporation System und verfahren zur netzwerkanschaltung in einer mehrfach-netzwerk-umgebung
US7934021B2 (en) * 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
CN100336363C (zh) * 2002-09-18 2007-09-05 中兴通讯股份有限公司 一种实现聚合链路流量均衡的方法
US7191241B2 (en) * 2002-09-27 2007-03-13 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7337241B2 (en) * 2002-09-27 2008-02-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US20040088262A1 (en) * 2002-11-06 2004-05-06 Alacritech, Inc. Enabling an enhanced function of an electronic device
US8635374B1 (en) * 2003-01-28 2014-01-21 Marvell International Ltd. Automatic media converter
US7570648B2 (en) * 2003-02-03 2009-08-04 At&T Intellectual Property I, L.P. Enhanced H-VPLS service architecture using control word
US20040177164A1 (en) * 2003-02-25 2004-09-09 Dimambro Francesco System and method for reclaiming transmit descriptors
US7689676B2 (en) * 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US20040210623A1 (en) * 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US7072807B2 (en) * 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20040184407A1 (en) * 2003-03-21 2004-09-23 Sbc Knowledge Ventures, L.P. Operations, administration, and maintenance data packet and related testing methods
US7643424B2 (en) 2003-03-22 2010-01-05 At&T Intellectual Property L, L.P. Ethernet architecture with data packet encapsulation
US7325002B2 (en) * 2003-04-04 2008-01-29 Juniper Networks, Inc. Detection of network security breaches based on analysis of network record logs
DE10319323B3 (de) 2003-04-29 2004-12-16 Siemens Ag Verfahren zur automatischen Konfiguration einer Kommunikationseinrichtung
US7706363B1 (en) 2003-06-11 2010-04-27 Radlan Computer Communications, Ltd Method and apparatus for managing packets in a packet switched network
US7606929B2 (en) * 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7567504B2 (en) * 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US8285881B2 (en) * 2003-09-10 2012-10-09 Broadcom Corporation System and method for load balancing and fail over
US8233462B2 (en) 2003-10-15 2012-07-31 Qualcomm Incorporated High speed media access control and direct link protocol
US8483105B2 (en) * 2003-10-15 2013-07-09 Qualcomm Incorporated High speed media access control
US9226308B2 (en) 2003-10-15 2015-12-29 Qualcomm Incorporated Method, apparatus, and system for medium access control
US8472473B2 (en) * 2003-10-15 2013-06-25 Qualcomm Incorporated Wireless LAN protocol stack
US8462817B2 (en) 2003-10-15 2013-06-11 Qualcomm Incorporated Method, apparatus, and system for multiplexing protocol data units
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US8903440B2 (en) * 2004-01-29 2014-12-02 Qualcomm Incorporated Distributed hierarchical scheduling in an ad hoc network
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US7474895B1 (en) 2004-03-04 2009-01-06 Zte (Usa) Inc. Frequency reuse in wireless communication networks
ATE471044T1 (de) * 2004-04-19 2010-06-15 Zteit Usa Inc Trunking- und push-to-talk-mechanismen für die drahtlose wcdma-kommunikation
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US8401018B2 (en) * 2004-06-02 2013-03-19 Qualcomm Incorporated Method and apparatus for scheduling in a wireless network
US7729303B2 (en) * 2004-06-30 2010-06-01 Zteit Usa, Inc. Global open trunking system for CDMA wireless communication
US8891509B2 (en) * 2004-07-06 2014-11-18 Hewlett-Packard Development Company, L.P. Proxy networking device for a router
US8355400B2 (en) * 2004-08-06 2013-01-15 Lantiq Deutschland Gmbh System and method for transmitting information over a plurality of communication links
US9699102B2 (en) * 2004-08-09 2017-07-04 Arris Enterprises Llc Very high speed cable modem for increasing bandwidth
US7542463B2 (en) * 2004-09-24 2009-06-02 Cisco Technology, Inc. Communicating packets along a control channel and a media channel
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US7680053B1 (en) 2004-10-29 2010-03-16 Marvell International Ltd. Inter-device flow control
US7987306B2 (en) * 2005-04-04 2011-07-26 Oracle America, Inc. Hiding system latencies in a throughput networking system
US7865624B1 (en) 2005-04-04 2011-01-04 Oracle America, Inc. Lookup mechanism based on link layer semantics
US7992144B1 (en) 2005-04-04 2011-08-02 Oracle America, Inc. Method and apparatus for separating and isolating control of processing entities in a network interface
US7415034B2 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US7443878B2 (en) * 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
US7529245B1 (en) 2005-04-04 2009-05-05 Sun Microsystems, Inc. Reorder mechanism for use in a relaxed order input/output system
US7415035B1 (en) 2005-04-04 2008-08-19 Sun Microsystems, Inc. Device driver access method into a virtualized network interface
US7779164B2 (en) * 2005-04-04 2010-08-17 Oracle America, Inc. Asymmetrical data processing partition
US7843926B1 (en) 2005-04-05 2010-11-30 Oracle America, Inc. System for providing virtualization of network interfaces at various layers
US7889734B1 (en) 2005-04-05 2011-02-15 Oracle America, Inc. Method and apparatus for arbitrarily mapping functions to preassigned processing entities in a network system
US8762595B1 (en) 2005-04-05 2014-06-24 Oracle America, Inc. Method for sharing interfaces among multiple domain environments with enhanced hooks for exclusiveness
US7567567B2 (en) * 2005-04-05 2009-07-28 Sun Microsystems, Inc. Network system including packet classification for partitioned resources
US7664127B1 (en) * 2005-04-05 2010-02-16 Sun Microsystems, Inc. Method for resolving mutex contention in a network system
US7353360B1 (en) 2005-04-05 2008-04-01 Sun Microsystems, Inc. Method for maximizing page locality
US8510491B1 (en) 2005-04-05 2013-08-13 Oracle America, Inc. Method and apparatus for efficient interrupt event notification for a scalable input/output device
US7802144B2 (en) 2005-04-15 2010-09-21 Microsoft Corporation Model-based system monitoring
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US7797147B2 (en) 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US20060250966A1 (en) * 2005-05-03 2006-11-09 Yuan-Chi Su Method for local area network security
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US7746862B1 (en) 2005-08-02 2010-06-29 Juniper Networks, Inc. Packet processing in a multiple processor system
US8600336B2 (en) 2005-09-12 2013-12-03 Qualcomm Incorporated Scheduling with reverse direction grant in wireless communication systems
US8259566B2 (en) 2005-09-20 2012-09-04 Qualcomm Incorporated Adaptive quality of service policy for dynamic networks
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US7738500B1 (en) 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
US8566471B1 (en) * 2006-01-09 2013-10-22 Avaya Inc. Method of providing network link bonding and management
EP1982481B1 (de) * 2006-01-23 2015-05-06 Allied Telesis Holdings K.K. Verfahren und System zur Verbesserung der Verkehrsverteilung über ein Kommunikationsnetz
TWI303367B (en) * 2006-03-30 2008-11-21 Infoaction Technology Inc Management system for usb audio device cluster
US7743129B2 (en) * 2006-05-01 2010-06-22 International Business Machines Corporation Methods and arrangements to detect a failure in a communication network
CN100461741C (zh) * 2006-06-09 2009-02-11 华为技术有限公司 防止以太网链路聚合逻辑端口报文丢失的方法及通信设备
US8565085B2 (en) * 2006-10-17 2013-10-22 Verizon Patent And Licensing Inc. Link aggregation
US9344356B2 (en) * 2007-02-28 2016-05-17 Hewlett Packard Enterprise Development Lp Transmitting a packet from a distributed trunk switch
US8213430B2 (en) * 2007-02-28 2012-07-03 Hewlett-Packard Development Company, L.P. Transmitting a packet from a distributed trunk switch
US7953895B1 (en) * 2007-03-07 2011-05-31 Juniper Networks, Inc. Application identification
US8472325B2 (en) * 2007-05-10 2013-06-25 Futurewei Technologies, Inc. Network availability enhancement technique for packet transport networks
US8189476B1 (en) 2007-08-20 2012-05-29 F5 Networks, Inc. Dynamic trunk distribution on egress
US20090097401A1 (en) * 2007-10-12 2009-04-16 Wael William Diab Method and system for configurable data rate thresholds for energy efficient ethernet
US20090216886A1 (en) * 2008-02-21 2009-08-27 Inventec Corporation Method of multi-path accessing remote logic device under linux system
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
JP5097620B2 (ja) * 2008-06-03 2012-12-12 株式会社日立製作所 マルチパス通信システム
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
US8819161B1 (en) 2010-01-18 2014-08-26 Marvell International Ltd. Auto-syntonization and time-of-day synchronization for master-slave physical layer devices
US9253515B2 (en) * 2012-03-11 2016-02-02 Broadcom Corporation Channel bonding synchronization
US9251025B1 (en) 2013-01-24 2016-02-02 Seagate Technology Llc Managed reliability of data storage
US20160080246A1 (en) * 2014-09-12 2016-03-17 Futurewei Technologies, Inc. Offloading Tenant Traffic in Virtual Networks

Family Cites Families (144)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4539637A (en) * 1982-08-26 1985-09-03 At&T Bell Laboratories Method and apparatus for handling interprocessor calls in a multiprocessor system
GB8407102D0 (en) * 1984-03-19 1984-04-26 Int Computers Ltd Interconnection of communications networks
US4652874A (en) * 1984-12-24 1987-03-24 Motorola, Inc. Serial communication interface for a local network controller
US4641302A (en) * 1985-06-24 1987-02-03 Racal Data Communications Inc. High speed packet switching arrangement
JPS62243057A (ja) * 1986-04-16 1987-10-23 Hitachi Ltd フアイル転送管理方式
US4737953A (en) * 1986-08-04 1988-04-12 General Electric Company Local area network bridge
US4850042A (en) * 1987-04-14 1989-07-18 Westinghouse Electric Corp. Dual media local area network interfacing
US4807111A (en) * 1987-06-19 1989-02-21 International Business Machines Corporation Dynamic queueing method
US4811337A (en) * 1988-01-15 1989-03-07 Vitalink Communications Corporation Distributed load sharing
US4899333A (en) * 1988-03-31 1990-02-06 American Telephone And Telegraph Company At&T Bell Laboratories Architecture of the control of a high performance packet switching distribution network
US4922503A (en) * 1988-10-28 1990-05-01 Infotron Systems Corporation Local area network bridge
US4933938A (en) * 1989-03-22 1990-06-12 Hewlett-Packard Company Group address translation through a network bridge
US5220562A (en) * 1989-05-12 1993-06-15 Hitachi, Ltd. Bridge apparatus and a communication system between networks using the bridge apparatus
GB8915137D0 (en) * 1989-06-30 1989-08-23 Inmos Ltd Message routing
US5179557A (en) * 1989-07-04 1993-01-12 Kabushiki Kaisha Toshiba Data packet communication system in which data packet transmittal is prioritized with queues having respective assigned priorities and frequency weighted counting of queue wait time
US5163046A (en) * 1989-11-30 1992-11-10 At&T Bell Laboratories Dynamic window sizing in a data network
US5159685A (en) * 1989-12-06 1992-10-27 Racal Data Communications Inc. Expert system for communications network
US5210746A (en) * 1990-04-16 1993-05-11 Motorola, Inc. Communication system network having communication system fallback operation
US5301333A (en) * 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
US5309437A (en) * 1990-06-29 1994-05-03 Digital Equipment Corporation Bridge-like internet protocol router
US5231633A (en) * 1990-07-11 1993-07-27 Codex Corporation Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets
US5150358A (en) * 1990-08-23 1992-09-22 At&T Bell Laboratories Serving constant bit rate traffic in a broadband data switch
US5481540A (en) * 1990-08-24 1996-01-02 At&T Corp. FDDI bridge frame learning and filtering apparatus and method
US5251205A (en) * 1990-09-04 1993-10-05 Digital Equipment Corporation Multiple protocol routing
US5353412A (en) * 1990-10-03 1994-10-04 Thinking Machines Corporation Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions
US5490260A (en) * 1990-12-14 1996-02-06 Ceram, Inc. Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size
CA2065578C (en) * 1991-04-22 1999-02-23 David W. Carr Packet-based data compression method
US5500860A (en) * 1991-06-14 1996-03-19 Digital Equipment Corporation Router using multiple hop redirect messages to enable bridge like data forwarding
US5420862A (en) * 1991-06-14 1995-05-30 Digital Equipment Corporation Router using remote address resolution to enable bridge like data forwarding
US5392432A (en) * 1991-08-27 1995-02-21 At&T Corp. Method for automatic system resource reclamation for object-oriented systems with real-time constraints
US5623489A (en) * 1991-09-26 1997-04-22 Ipc Information Systems, Inc. Channel allocation system for distributed digital switching network
US5875464A (en) 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
CA2092134C (en) * 1992-03-24 1998-07-21 Anthony J. Mazzola Distributed routing network element
US5675714A (en) * 1992-03-30 1997-10-07 Canon Kabushiki Kaisha Mode identifying method and output apparatus using such a method
US5313454A (en) * 1992-04-01 1994-05-17 Stratacom, Inc. Congestion control for cell networks
US5343471A (en) * 1992-05-11 1994-08-30 Hughes Aircraft Company Address filter for a transparent bridge interconnecting local area networks
US5432907A (en) * 1992-05-12 1995-07-11 Network Resources Corporation Network hub with integrated bridge
US5742760A (en) 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
US5457681A (en) * 1992-06-05 1995-10-10 Washington University ATM-Ethernet portal/concentrator
JPH066362A (ja) * 1992-06-23 1994-01-14 Hitachi Ltd Lanにおけるホストシステムのメッセージ処理負荷分散方式
US5425028A (en) * 1992-07-16 1995-06-13 International Business Machines Corporation Protocol selection and address resolution for programs running in heterogeneous networks
US5291482A (en) * 1992-07-24 1994-03-01 At&T Bell Laboratories High bandwidth packet switch
US5490252A (en) * 1992-09-30 1996-02-06 Bay Networks Group, Inc. System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing
JP3104429B2 (ja) * 1992-10-08 2000-10-30 株式会社日立製作所 コピー機能を有する共通バッファ形atmスイッチ及びそのコピー方法
US5649109A (en) * 1992-10-22 1997-07-15 Digital Equipment Corporation Apparatus and method for maintaining forwarding information in a bridge or router using multiple free queues having associated free space sizes
US5404538A (en) * 1992-10-28 1995-04-04 International Business Machines Corporation Method and apparatus for multilevel bus arbitration
JPH07118717B2 (ja) * 1993-01-05 1995-12-18 日本電気株式会社 マルチプロトコル対応のパケット網構成方法
US5410722A (en) * 1993-01-21 1995-04-25 Conner Peripherals, Inc. Queue system for dynamically allocating and moving memory registers between a plurality of pseudo queues
US5459714A (en) * 1993-02-22 1995-10-17 Advanced Micro Devices, Inc. Enhanced port activity monitor for an integrated multiport repeater
US5365514A (en) * 1993-03-01 1994-11-15 International Business Machines Corporation Event driven interface for a system for monitoring and controlling a data communications network
US5485578A (en) * 1993-03-08 1996-01-16 Apple Computer, Inc. Topology discovery in a multiple-ring network
US5386413A (en) * 1993-03-19 1995-01-31 Bell Communications Research, Inc. Fast multilevel hierarchical routing table lookup using content addressable memory
JPH077524A (ja) * 1993-04-06 1995-01-10 Siemens Ag 通信加入者のアドレス識別子へのアクセス方法
US5402415A (en) * 1993-04-22 1995-03-28 Washington University Multicast virtual circuit switch using cell recycling
AU675302B2 (en) * 1993-05-20 1997-01-30 Nec Corporation Output-buffer switch for asynchronous transfer mode
US5426736A (en) * 1993-05-26 1995-06-20 Digital Equipment Corporation Method and apparatus for processing input/output commands in a storage system having a command queue
US5396602A (en) * 1993-05-28 1995-03-07 International Business Machines Corp. Arbitration logic for multiple bus computer system
GB9312135D0 (en) * 1993-06-11 1993-07-28 Inmos Ltd Generation of checking data
US5394402A (en) * 1993-06-17 1995-02-28 Ascom Timeplex Trading Ag Hub for segmented virtual local area network with shared media access
JP2546505B2 (ja) * 1993-06-23 1996-10-23 日本電気株式会社 Cladにおけるアドレス学習装置
US5555405A (en) * 1993-07-06 1996-09-10 Digital Equipment Corporation Method and apparatus for free space management in a forwarding database having forwarding entry sets and multiple free space segment queues
US5515376A (en) * 1993-07-19 1996-05-07 Alantec, Inc. Communication apparatus and methods
US5473607A (en) * 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
US5422838A (en) * 1993-10-25 1995-06-06 At&T Corp. Content-addressable memory with programmable field masking
US5574861A (en) * 1993-12-21 1996-11-12 Lorvig; Don Dynamic allocation of B-channels in ISDN
US5485455A (en) 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
JP2713153B2 (ja) * 1994-03-09 1998-02-16 日本電気株式会社 ブリッジ装置
JPH07254906A (ja) * 1994-03-16 1995-10-03 Mitsubishi Electric Corp 優先処理機能を有するシフトレジスタ、それを用いたパケット通信用スイッチング装置及びそれを用いたatmネットワーク並びに優先処理を伴うパケット通信方式及び優先処理を伴うatm通信方式
JP3542159B2 (ja) 1994-03-17 2004-07-14 株式会社日立製作所 マルチプロセッサ構造のブリッジ
US5509123A (en) * 1994-03-22 1996-04-16 Cabletron Systems, Inc. Distributed autonomous object architectures for network layer routing
US5493564A (en) * 1994-03-25 1996-02-20 Sprint International Communications Corp. Method and apparatus for global routing of electronic messages
US5459717A (en) * 1994-03-25 1995-10-17 Sprint International Communications Corporation Method and apparatus for routing messagers in an electronic messaging system
EP0676878A1 (de) * 1994-04-07 1995-10-11 International Business Machines Corporation Effizientes Punkt zu Punkt und Punkt zu Mehrpunkt Weglenkungsverfahren für programmierbare Vermittlungsknoten in Hochgeschwindigkeits-Datenübertragungsnetzen
DE69433109D1 (de) * 1994-04-28 2003-10-09 Hewlett Packard Co Mehrfachsendeeinrichtung
EP0680179B1 (de) * 1994-04-28 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Mehrfachsendeeinrichtung
EP0680178A1 (de) * 1994-04-28 1995-11-02 Hewlett-Packard Company Koppelfeldchip für Zellen
EP0681381A1 (de) * 1994-05-06 1995-11-08 International Business Machines Corporation Verfahren und Anordnung zur Modifizierung von Rahmenkontrollwörtern in Zwischenknoten von Hochgeschwindigkeitsnetzwerken
EP0684716B1 (de) * 1994-05-25 2002-02-27 International Business Machines Corporation Datenübertragungsnetz und Verfahren zum Betreiben des Netzes
US5461611A (en) * 1994-06-07 1995-10-24 International Business Machines Corporation Quality of service management for source routing multimedia packet networks
US5617421A (en) * 1994-06-17 1997-04-01 Cisco Systems, Inc. Extended domain computer network using standard links
US5583981A (en) * 1994-06-28 1996-12-10 Microsoft Corporation Method and system for changing the size of edit controls on a graphical user interface
EP0691769A1 (de) * 1994-07-07 1996-01-10 International Business Machines Corporation System zur Emulation geschalteter Sprachverbindungen in einem Paketvermittlungsnetz
US5615340A (en) * 1994-07-21 1997-03-25 Allied Telesyn Int'l Corp. Network interfacing apparatus and method using repeater and cascade interface with scrambling
US5751967A (en) 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5640605A (en) * 1994-08-26 1997-06-17 3Com Corporation Method and apparatus for synchronized transmission of data between a network adaptor and multiple transmission channels using a shared clocking frequency and multilevel data encoding
US5619500A (en) * 1994-09-01 1997-04-08 Digital Link Corporation ATM network interface
US5594727A (en) * 1994-09-19 1997-01-14 Summa Four, Inc. Telephone switch providing dynamic allocation of time division multiplex resources
US5490139A (en) * 1994-09-28 1996-02-06 International Business Machines Corporation Mobility enabling access point architecture for wireless attachment to source routing networks
US5784573A (en) 1994-11-04 1998-07-21 Texas Instruments Incorporated Multi-protocol local area network controller
US5608733A (en) * 1994-11-29 1997-03-04 Valle; Richard ATM inverse multiplexing
US5837021A (en) 1994-12-09 1998-11-17 L'air Liquide, Societe Anonyme Pour L'etude Et L'exploitation Des Procedes Georges Claude Installation for the treatment of at least one fluid, by passage through two adjacent masses of material
KR0132960B1 (ko) 1994-12-22 1998-04-21 양승택 망 노드 폭주상태 결정장치 및 방법
US5550816A (en) * 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US5566170A (en) * 1994-12-29 1996-10-15 Storage Technology Corporation Method and apparatus for accelerated packet forwarding
US5563878A (en) 1995-01-05 1996-10-08 International Business Machines Corporation Transaction message routing in digital communication networks
JP3099663B2 (ja) 1995-02-09 2000-10-16 株式会社デンソー 通信システム
US5706472A (en) * 1995-02-23 1998-01-06 Powerquest Corporation Method for manipulating disk partitions
US5561666A (en) * 1995-03-06 1996-10-01 International Business Machines Corporation Apparatus and method for determining operational mode for a station entering a network
US5633865A (en) * 1995-03-31 1997-05-27 Netvantage Apparatus for selectively transferring data packets between local area networks
US5561791A (en) * 1995-04-10 1996-10-01 Digital Equipment Corporation Method and apparatus for conditioning timed program independent of transport timing
JPH08288965A (ja) 1995-04-18 1996-11-01 Hitachi Ltd スイッチングシステム
US5608726A (en) * 1995-04-25 1997-03-04 Cabletron Systems, Inc. Network bridge with multicast forwarding table
US5802278A (en) 1995-05-10 1998-09-01 3Com Corporation Bridge/router architecture for high performance scalable networking
JP3515263B2 (ja) 1995-05-18 2004-04-05 株式会社東芝 ルータ装置、データ通信ネットワークシステム、ノード装置、データ転送方法及びネットワーク接続方法
JP2770782B2 (ja) 1995-05-31 1998-07-02 日本電気株式会社 Lan間接続装置
US5815737A (en) 1995-06-05 1998-09-29 Pmc-Sierra, Inc. Approach for identifying a subset of asynchronous transfer mode (ATM) VPI/VCI values in the complete VPI/VCI range
US5619661A (en) * 1995-06-05 1997-04-08 Vlsi Technology, Inc. Dynamic arbitration system and method
US5734865A (en) 1995-06-07 1998-03-31 Bull Hn Information Systems Inc. Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment
US5636371A (en) * 1995-06-07 1997-06-03 Bull Hn Information Systems Inc. Virtual network mechanism to access well known port application programs running on a single host system
US5790808A (en) 1995-07-06 1998-08-04 3 Com Active topology maintenance in reconfiguring bridged local area networks with state transition with forgetting interval
US5751971A (en) 1995-07-12 1998-05-12 Cabletron Systems, Inc. Internet protocol (IP) work group routing
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US5754540A (en) 1995-07-18 1998-05-19 Macronix International Co., Ltd. Expandable integrated circuit multiport repeater controller with multiple media independent interfaces and mixed media connections
US5691984A (en) * 1995-08-15 1997-11-25 Honeywell Inc. Compact, adaptable brouting switch
US5740175A (en) 1995-10-03 1998-04-14 National Semiconductor Corporation Forwarding database cache for integrated switch controller
JPH09130421A (ja) 1995-11-02 1997-05-16 Furukawa Electric Co Ltd:The 仮想ネットワーク管理方法
US5784559A (en) 1995-11-06 1998-07-21 Sun Microsystems, Inc. Full duplex flow control for ethernet networks
US5757771A (en) 1995-11-14 1998-05-26 Yurie Systems, Inc. Queue management to serve variable and constant bit rate traffic at multiple quality of service levels in a ATM switch
US5684800A (en) 1995-11-15 1997-11-04 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
US5754801A (en) 1995-11-20 1998-05-19 Advanced Micro Devices, Inc. Computer system having a multimedia bus and comprising a centralized I/O processor which performs intelligent data transfers
JP2842522B2 (ja) 1995-12-06 1999-01-06 日本電気株式会社 Atmスイッチ及びその制御方法
US5633810A (en) * 1995-12-14 1997-05-27 Sun Microsystems, Inc. Method and apparatus for distributing network bandwidth on a media server
US5689506A (en) * 1996-01-16 1997-11-18 Lucent Technologies Inc. Multicast routing in multistage networks
US5754774A (en) 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5740375A (en) 1996-02-15 1998-04-14 Bay Networks, Inc. Forwarding internetwork packets by replacing the destination address
US5781549A (en) 1996-02-23 1998-07-14 Allied Telesyn International Corp. Method and apparatus for switching data packets in a data network
US5724358A (en) 1996-02-23 1998-03-03 Zeitnet, Inc. High speed packet-switched digital switch and method
US5764634A (en) 1996-03-13 1998-06-09 International Business Machines Corporation Lan switch with zero latency
US5764636A (en) 1996-03-28 1998-06-09 Cisco Technology, Inc. Color blocking logic mechanism for a high-performance network switch
US5740171A (en) 1996-03-28 1998-04-14 Cisco Systems, Inc. Address translation mechanism for a high-performance network switch
US5742604A (en) 1996-03-28 1998-04-21 Cisco Systems, Inc. Interswitch link mechanism for connecting high-performance network switches
US5812527A (en) 1996-04-01 1998-09-22 Motorola Inc. Simplified calculation of cell transmission rates in a cell based netwook
US5923654A (en) 1996-04-25 1999-07-13 Compaq Computer Corp. Network switch that includes a plurality of shared packet buffers
US5748631A (en) 1996-05-09 1998-05-05 Maker Communications, Inc. Asynchronous transfer mode cell processing system with multiple cell source multiplexing
US5878043A (en) 1996-05-09 1999-03-02 Northern Telecom Limited ATM LAN emulation
US5802052A (en) 1996-06-26 1998-09-01 Level One Communication, Inc. Scalable high performance switch element for a shared memory packet or ATM cell switch fabric
US5872783A (en) 1996-07-24 1999-02-16 Cisco Systems, Inc. Arrangement for rendering forwarding decisions for packets transferred among network switches
US5748905A (en) 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US5835491A (en) 1996-11-21 1998-11-10 Xerox Corporation Method for supporting multicast capabilities in switching networks with a reservation ring
US5878232A (en) 1996-12-27 1999-03-02 Compaq Computer Corporation Dynamic reconfiguration of network device's virtual LANs using the root identifiers and root ports determined by a spanning tree procedure
US5852607A (en) 1997-02-26 1998-12-22 Cisco Technology, Inc. Addressing mechanism for multiple look-up tables
US6591303B1 (en) * 1997-03-07 2003-07-08 Sun Microsystems, Inc. Method and apparatus for parallel trunking of interfaces to increase transfer bandwidth
US5859849A (en) 1997-05-06 1999-01-12 Motorola Inc. Modular switch element for shared memory switch fabric
US5856977A (en) 1997-05-15 1999-01-05 Yang; Muh-Rong Distribution network switch for very large gigabit switching architecture

Also Published As

Publication number Publication date
DE69812777D1 (de) 2003-05-08
US6049528A (en) 2000-04-11
EP0889624A1 (de) 1999-01-07
JPH11145990A (ja) 1999-05-28
EP0889624B1 (de) 2003-04-02

Similar Documents

Publication Publication Date Title
DE69812777T2 (de) Verbindung von Ethernetkompatiblen Netzwerken
DE69634916T2 (de) Verfahren und vorrichtung zur filterung von mehradresspaketen in einem lokalen netz durch ein transparentes zwischensystem
DE112012001320B4 (de) Prioritätsgestützte Flusssteuerung in einer Switching-Netzwerkarchitektur mit einem Protokoll einer verteilten Struktur (Distributed Fabric Protocol DFP)
DE60118799T2 (de) Netzwerksvorrichtung zum selektiven datenzeitschlitz verwerfen
DE69727930T2 (de) Zusammenfassung von verbindungen in vermittlungskommunikationsnetzen
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE19950822B4 (de) Verfahren und Vorrichtung für das Verteilen von Paketen über parallele Kommunikationsverbindungen
DE69835762T2 (de) Netz für leitungsvermittelte Breitband-Mehrpunkt-Multimedia-Kommunikation
DE60304045T2 (de) Verfahren, computerlesbares medium und vorrichtungen zur wiederherstellung von datenverkehr bei ausfallsicherung in einer kopfstation eines breitbandkabelnetzes
DE69922690T2 (de) Fehlertolerante netze
DE69727447T2 (de) Übertragungstrennung und Ebene-3-Netzwerk-Vermittlung
DE69937598T2 (de) Auf Identifikationsmarken basierendes Paketvermittlungssystem
DE69837938T2 (de) Übergreifende bildung von server clustern mittels einer netzwerkflussvermittlung
DE60031516T2 (de) Verfahren und gerät für die verwaltung eines netzflusses in einer hochleistungs-netzschnittstelle
DE112012003674B4 (de) Architektur mit verteiltem Chassis, der integrierte Service-Appliances aufweist
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE60111551T2 (de) Mechanismus zur vervollständigung von nachrichten im speicher
DE69829346T2 (de) Ein-/Ausgabevorrichtung für ein Peripheriegerät
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE60211837T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE112017000152T5 (de) Virtueller Core eines CCAP (Converged Cable Access Platform)
AU2016225854B2 (en) Video signal transmission system
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE112008002665T5 (de) Bereitstellen einer Abstraktionsschicht in einem Clusterswitch, der mehrere Switches hat
DE60125611T2 (de) Verfahren und Vorrichtung zur Kommunikation zwischen einem ersten und einem zweiten Netz

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: SUN MICROSYSTEMS, INC., SANTA CLARA, CALIF., US

8364 No opposition during term of opposition