-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich allgemein auf Computersysteme
und Netzwerke und spezieller auf ein Messen von Netzwerküberlastung.
-
HINTERGRUND DER ERFINDUNG
-
Netzwerküberlastung
bezieht sich allgemein auf eine Überlastung
der Ressourcen eines Netzwerks wie Überleiteinrichtungen und Schalter
mit Paketen, die abgewickelt werden müssen. Wenn eine Netzwerküberlastung
auftritt, werden Pakete durch eine überlastete Ressource aufgegeben
und müssen noch
einmal übertragen
werden. Zahlreiche Verfahren und Vorschläge zur Umgehung von Netzwerküberlastung
sind bekannt, aber jedes besitzt seine eigene Nachteile mit Hinsicht
auf Abläufe
wie Gerechtigkeit (z.B. welche Pakete aufgegeben werden), Vollzug,
praktische Implementierungsschwierigkeiten und so weiter.
-
Zum
Beispiel bei dem Datenübertragungs-Steuerungsprotokoll
(TRANSMISSION CONTROL PROTOCOL (TCP)) wird eine Netzwerküberlastung über verschiedene
Phasen und Techniken gesteuert, einschließlich einer Überlastungsumgehungsphase.
TCP steuert seine Übertragungsrate durch
ein Überlastungsfenster,
welches die maximale Menge an Daten bestimmt, welche sich zu jeder Zeit
in Übertragung
befinden können,
wobei ein Datenwert eines Überlastungsfensters
zu jeder Umlaufzeit übermittelt
wird. Bei Abwesenheit von Überlastung
erhöht
TCP sein Überlastungsfenster
um ein Paket pro Umlaufzeit. Um eine Überlastung zu vermeiden, halbiert,
wenn das Netzwerk irgendein Paket aufgibt TCP sein Überlastungsfenster.
Eine Ermittlung von Überlastung über Paketverlust,
typischerweise als ein Ergebnis eines Oberlaufs in einer Ausgabewarteschlange
einer Überleiteinrichtung,
besitzt jedoch eine Anzahl von Nachteilen einschließlich dem,
dass diese Methode eher reagiert als in die Zukunft wirkt, da zu
der Zeit, zu der die (oft wesentlichen) Pufferspeicher der Überleiteinrichtung
aufgefüllt
sind und Pakete anfangen aufgegeben zu werden das Netzwerk ernsthaft überlastet
ist. Als Folge besteht der „normale" Betriebszustand
des Netzwerks darin beträchtliche
Warte- Schlangenverzögerungen
bei jeder Überleiteinrichtung
zu besitzen. Darüber
hinaus bemerken nur die Datenflüsse,
deren Pakete aufgegeben werden die Überlastung, worin der Grund
liegt, dass TCP heftig kehrt machen muss und das Überlastungsfenster
halbieren. Die aufgegebenen Pakete stammen oft nicht aus der Quelle,
welche ursprünglich
die Überlastung
verursacht hat.
-
Ein
mehr in die Zukunft wirkender Ansatz um Netzwerküberlastung zu vermeiden basierend
auf dem obigen Reduzierung-bei-aufgegebenen-Paketen-Schema ist "zufällige frühe Entdeckung" (Random Early Detection
(RED)). RED arbeitet durch zufälliges
Wegwerfen von immer mehr Paketen, sowie das Netzwerk immer mehr überlastet
wird, wodurch die TCP-Überlastungsumgehungsmechanismen
der verschiedenen Quellen ihre Überlastungsfenster
halbieren, bevor eine vollständige Überlastung
eintritt. Pakete werden mit einer Wahrscheinlichkeit aufgegeben,
die aus vielen Parameter und Variablen berechnet wird, einschließlich der
geglätteten
Länge der Versand-Warteschlange.
Dieses Schema besitzt auch seine Nachteile, unter anderem darin,
dass Pakete unnötigerweise
aufgegeben werden, bevor das Netzwerk tatsächlich voll ist.
-
Eine
vorgeschlagene Verbesserung von TCP/IP, bekannt als explizite Überlastungsbenachrichtigung
(Explicit Congestion Notifikation (ECN)) würde die Pakete (z.B. die, welche
bei RED aufgegeben würden)
markieren, statt sie tatsächlich
aufzugeben. Die Markierung wird an die Quelle zurückgesandt,
wodurch die Quelle ihre Übertragungsrate
erniedrigen kann. Spezieller würde
ECN arbeiten, um den Beginn einer Überlastung zu signalisieren,
indem es ein einzelnes Bit in dem IP-Paketkopf setzt. Um einen inkrementellen
Einsatz im Internet zu unterstützen
würden
Datenverkehrsflüsse,
die ECN erkennen sich selbst durch Setzen eines weiteren Bits in
dem IP-Kopf identifizieren, wodurch ECN nicht erkennende Datenflüsse ihre
Pakete wie normal gelöscht
bekommen. Nach dem Empfang sendet der Bestimmungsort (TCP-Senke)
diese ECN-Bits zu der Quelle (z.B. bei einem Rückmeldungspaket oder ACK) als
eine TCP-Option zurück,
wodurch die Quelle auf die ECN-Signale auf die gleiche Weise reagiert,
wie TCP auf verlorene Pakete reagiert, zum Beispiel durch Halbieren
des Überlastungsfensters nach
Empfang eines solchen Signals.
-
Als
eine Alternative zu den obigen Modellen haben Theoretiker eine Überlastungs-Preisstellung als
eine mögliche
Lösung
für Netzwerküberlastungsprobleme
vorgeschla gen. Zusammengefasst schlagen diese Überlastungs-Preisstellungstheorien
vor, dass jede Überleiteinrichtung
in dem Netzwerk alle Quellen belasten sollte, die für eine Netzwerküberlastung
verantwortlich sind (z.B. durch eine Inbandmarkierung ihre Pakete).
Dann wird bei der Rückmeldung
von dem Bestimmungsort oder durch irgendwelche anderen Einrichtungen
jede Quelle von der insgesamt verursachten Überlastung benachrichtigt, so
dass Quellen freiwillig ihre Übertragungsraten
basierend auf ihrem "Zahlungswillen" reduzieren.
-
Verschiedene
solche Netzwerküberlastungs-Preisstellungsschemata
wurden entworfen und/oder implementiert. Zum Beispiel bezieht sich die
US-Patentveröffentlichung
US 2003097461 , eingereicht
am 8. November 2001 und dem Rechtsnachfolger der vorliegenden Erfindung
zugeteilt auf die Steuerung einer Netzwerkanforderung über eine Überlastungs-Preisstellung
und beschreibt eine Anzahl von praktischen Auslegungen und/oder
Implementierungen mit vielen vorteilhaften Eigenschaften.
-
Solche
Schemata zur Steuerung (oder Anzeige) von Überlastungspegeln erfordern
typischerweise das Messen von der Netzwerklast hinsichtlich der
Verbindung oder den Verbindungen in dem Netzwerk. Allgemein wird
ein Messen der Last durchgeführt
durch Aufzeichnung der, auf der Verbindung gesandten Pakete in Relation
zu der Kapazität
der Verbindung.
-
Dies
kann jedoch speziell problematisch sein, wenn die Kapazität der Verbindung
eher variabel als fixiert ist, was aus einer Vielzahl von Gründen und
bei einer Vielzahl von Umständen,
beide tatsächlich
und effektiv, eintreten kann. Eine Komprimierung zum Beispiel kann
die effektive Kapazität
einer Verbindung variieren, da das Ausmaß der erreichten Kompression
sich mit dem Datentyp, der komprimiert wird verändert. Ein anderes Beispiel
liegt vor, wenn zusätzliche
physikalische Verbindungen oder Übertragungskanäle hinzugefügt oder
entfernt werden abhängig
von der Verwendung des Netzwerks, z.B. bei einem System, das zusätzliche
Verbindungen je nach Notwendigkeit anwählt. Noch ein anderes Beispiel
ist drahtlose Technologie. Drahtlose Technologie kann keine Kollisionen übermittelter
Pakete ermitteln und verwendet somit ein Kollisionsumgehungsprotokoll,
um die Wahrscheinlichkeit von Paketkollision zu erniedrigen. Neben
anderen Eigenschaften dieses Protokolls werden Paketübertragungen
mit langen Intervallen, die zwischen den Paketen vorgesehen sind
verstreut. Ein Resultat von langen Inter vallen zwischen Paketen
besteht darin, dass der Betrag an Kapazität, der verwendet wird, um ein
Paket zu senden größer ist
als nur die Größe des Pakets. Darüber hinaus
gibt es, da Paketgrößen variieren und
die Intervalle nicht von der Paketgröße abhängen, kein einfaches Verhältnis zwischen
Paketgröße und verbrauchtem
Betrag an Kapazität
und somit beeinflussen Paketgrößen die
effektive Kapazität.
-
Ferner
passt ein drahtloses Protokoll dynamisch die Übertragungsrate basierend auf
der aktuellen Signalqualität
an, die gemessen wird und somit variiert die Kapazität basierend
auf dem aktuellen Radiofrequenz(RF)-Rauschen. Spezieller wird, wenn bedeutendes
RF-Rauschen vorhanden ist, die Zeitdauer mit der jedes Bit übertragen
wird vergrößert (z.B.
verdoppelt) um einen Empfang zu erleichtern, was die Rate eriedrigt.
Umgekehrt kann die Bitübertragungslänge vermindert
werden, wenn sich die Signalqualität verbessert, was die Rate
bis zu einem bestimmten Maximum anhebt.
-
Zusammenfassend
vermeiden oder reduzieren zumindest einige (z.B. auf dem Preis basierende) Schemata
Netzwerküberlastung
und funktionieren durch Steuerung (z.B. Zurückdrosseln), von ausgegebenen Übertragungen
basierend auf einem aktuellen Ausmaß an Überlastung, das von der aktuellen Kapazität der Übertragungsleitung
abhängt.
Wenn die Kapazität
jedoch variabel ist, wird eine genaue Messung der aktuellen Kapazität und Netzwerklast benötigt, dass
solche Schemata richtig arbeiten.
-
Lai
et al. "MEASURING
LINK BANDWIDTH USING A DETERMINISTIC MODEL OF PACKET DELAY", COMPUTER COMMUNICATIONS
REVIEW, ASSOCIATION FOR COMPUTING MACHINERY, NEW YORK, US, Band
30, Nr. 4, Oktober 2000 bezieht sich auf eine Messung von Verbindungsbandbreiten
unter Verwendung von Paketverzögerungszeiten.
Die Bandbreiten-Messung basiert auf einer Umlauf-Verzögerungszeit
hinsichtlich aufeinander folgender Überleiteinrichtungen entlang
eines Pfades. Die Umlaufverzögerungszeit
kann modellhaft dargestellt werden als die Summe der Einwegverzögerungszeit
für das
Ausgangspaket und die von seiner Rückmeldung. Die problematische
Annahme, dass es keine Warteschlange gibt wird gelöst durch die
Beobachtung, dass eine Warteschlange, welche durch zusätzlichen
Verkehr verursachen wird Verzögerungszeiten
nur erhöhen
kann. Deshalb passt das Minimum von verschiedenen beobachteten Verzögerungszeiten
von einer speziellen Paketgröße zu dem Modell.
Die Technik besteht darin, verschiedene Pakete für jede der verschiedenen unterschiedli chen Paketgrößen zu senden,
die Verzögerungszeiten
von diesen Paketen gegen ihre Größe aufzutragen
und dann lineare Regression zu verwenden, um die Steigung des Graphen
zu erhalten. Der Kehrwert der Steigung ist die Bandbreite.
-
Stevens
et al. "TCP/IP illustrated.
The Protocols" TCP/IP
ILLUSTRATED. VOL.1: THE PROTOCOLS, PROFESSIONAL COMPUTING SERIES, READING,
MA. ADDISON WESLEY, US, Band 1, 1994, Seite 297–304 bezieht sich auf eine
TCP-Unterbrechung und Rückübertragung.
Es wird ausgeführt,
dass ein Rückübertragungs-Unterbrechungswert
berechnet werden kann basierend auf einer geglätteten Umlaufzeit-Schätzfunktion
unter Verwendung eines Tiefpassfilters.
-
Deshalb
ist es ein Ziel der Erfindung ein verbessertes Verfahren für eine drosselnde Übermittlung
zu liefern, um eine Netzwerküberlastung
zu reduzieren.
-
Dieses
Ziel wird durch den beanspruchten Hauptgegenstand der unabhängigen Patentansprüche erreicht.
-
Bevorzugte
Ausführungen
sind Gegenstand der abhängigen
Patentansprüche.
-
Kurz
liefert die vorliegende Erfindung ein Verfahren und ein System zum
Messen von Kanallast und -kapazität bei Netzwerken mit variabler
Kanalkapazität.
Das Verfahren und das System können
an bestimmte Typen von Gemeinschaftsmedien-Netzwerken mit variabler
Bandbreite, an verschiedene Typen von Hardware und andere Faktoren
angepasst werden oder als geeignet gewählt werden.
-
Bei
einer Implementierung, welche für
bestimmte Typen von Gemeinschaftsmedien-Netzwerken mit variabler Bandbreite
geeignet ist wird jedes System verbessert durch das Hinzufügen einer
Komponente, welche die genaue Ortszeit, zu der die Pakete dem Netzwerk
zur Übertragung übergeben
werden und die Zeit, bei der die Übertragung vollendet ist aufzeichnet.
Aus der Verteilung des Intervalls zwischen diesen beiden Zeiten
wird die Last und die effektive Kanalkapazität in dem Netzwerk berechnet, wie
durch Vergleich der gemessenen Zeit mit einer nominalen Zeit für die Übertragung,
z.B. der Betrag an Zeit, welche eine Übertragung in Abwesenheit von Faktoren
benötigt,
welche eine Kanalkapazität
verändern.
Durch regelmäßige Abtastung
von Paketen können
eine dynamische Kanalkapazität
und Netzwerklastdaten regelmäßig an Mechanismen
geliefert werden, welche eine Netzwerküberlastung steuern.
-
Bei
einer alternativen Implementierung zeichnet auch für bestimmte
Typen von Gemeinschaftsmedien-Netzwerken jedes Gerät die Größe von Paketen
und die Zeit, zu der Pakete zur Übersendung
abgerufen werden und die Größe von Paketen und
die Zeit zu der Pakete ankommen auf. Periodische zeitprotokollierte
Sendepakete (z.B. von einer konsistenten Zeitkontrolle) erlauben
es, dass diese Pakete gruppiert und angepasst werden, was es wiederum
ermöglicht,
dass das Verhalten, die Kapazität und
die Last des Netzwerkkanals bestimmt werden.
-
Bei
einer anderen alternativen Implementierung zeichnet für bestimmte
Typen von Punkt zu Punkt Verbindungen mit einer variablen (datenabhängigen)
Komprimierung jedes Gerät
die Größe von Paketen
und die Zeit, zu der Pakete an das Netzwerk zur Übermittlung übergeben
werden und die Zeit, zu der die Übertragung
vollendet ist auf. Dies erlaubt es sowohl die Last der unterlegten
Verbindung als auch das erzielbare Komprimierungsverhältnis zu
berechnen.
-
Andere
Ziele und Vorteile werden aus der folgenden detaillierten Beschreibung
ersichtlich, wenn sie im Zusammenhang mit den Zeichnungen gesehen
wird, bei denen:
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 einen
Blockdiagramm ist, welches ein Computersystem darstellt, in welches
die vorliegende Erfindung eingebaut werden kann;
-
2 ein
Blockdiagramm ist, welches allgemein ein beispielhaftes Netzwerk
mit variabler Kapazität
darstellt, in welches die vorliegende Erfindung eingebaut werden
kann;
-
3 ein
Blockdiagramm ist, das allgemein beispielhafte Komponenten in einem
Computersystem darstellt, das ausgelegt ist, um direkt Paketübertragungsdaten
in Übereinstimmung
mit einem Gesichtspunkt der vorliegenden Erfindung zu erhalten;
-
4 ein
Blockdiagramm ist, das allgemein alternative beispielhafte Komponenten
in einem Computersystem darstellt, das ausgelegt ist, um indirekt
Paketübertragungsdaten
aus Anfragen, die an Systemressourcen gerichtet sind in Übereinstimmung
mit einem Gesichtspunkt der vorliegenden Erfindung zu erhalten;
-
5 ein
Flussdiagramm ist, das eine allgemeine Logik zum indirekten Erhalt
von Paketübertragungsdaten
aus Anfragen, die an Systemressourcen gerichtet sind in Übereinstimmung
mit einem Gesichtspunkt der vorliegenden Erfindung darstellt;
-
6 ein
Blockdiagramm ist, das allgemein alternative Beispielkomponenten
in einem Computersystem darstellt, das ausgelegt ist, um aktiv eine
aktuelle Paketübertragung
in Übereinstimmung
mit einem Gesichtspunkt der vorliegenden Erfindung zu takten;
-
7 ein
Flussdiagramm ist, das in Übereinstimmung
mit einem Gesichtspunkt der vorliegenden Erfindung eine allgemeine
Logik zum Messen von Last und Kapazität in Netzwerksystemen mit Netzwerkkarten
darstellt, die Pakete vor einer Übertragung
Puffern; und
-
8 ein Blockdiagramm ist, das in Übereinstimmung
mit einem Gesichtspunkt der vorliegenden Erfindung allgemein alternative
Punkt zu Punkt Netzwerke mit einer variablen Kanalkapazität darstellt,
die aus einem dynamischen Hinzufügen
und Entfernen von Verbindungen und/oder einer Datenkomprimierung
resultiert.
-
DETAILLIERTE BESCHREIBUNG
-
EXEMPLARISCHE BETRIEBSUMGEBUNG
-
1 zeigt
ein Beispiel einer geeigneten Rechensystemumgebung 100,
in welche die Erfindung implementiert werden kann. Die Rechensystemumgebung 100 ist
nur ein Beispiel einer geeigneten Rechenumgebung und soll nicht
irgendeine Begrenzung des Rahmens der Verwendung oder der Funktionalität der Erfindung
nahe legen. Noch sollte die Rechensystemumgebung 100 so
interpretiert werden, dass sie irgendeine Abhängigkeit oder Anforderung hinsichtlich
irgendeiner einzelnen oder einer Kombination von Komponenten besitzt,
die in der exemplarischen Betriebsumgebung 100 dargestellt sind.
-
Die
Erfindung funktioniert mit vielen anderen Universal- oder Spezial-Rechensystemumgebungen oder
Konfigurationen. Beispiele für
gut bekannte Rechensysteme, Umgebungen und/oder Anordnungen, welche
zur Verwendung der Erfindung geeignet sind schließen Personalcomputer,
Servercomputer, Hand-Held- oder Laptop-Vorrichtungen, Multiprozessor-Systeme,
auf Mikroprozessoren basierende Systeme, Aufsatzgeräte, programmierbare
Unterhaltungselektronik, Netzwerk PCs, Minicomputer, Mainframecomputer,
verteilte Rechenumgebungen, die irgendeines der obigen Systeme oder
Vorrichtungen enthalten und Ähnliches
ein, sind aber nicht begrenzt darauf.
-
Die
Erfindung kann in dem allgemeinen Zusammenhang von computerausführbaren
Anweisungen wie Programmmodule, die durch einen Computer ausgeführt werden
beschrieben werden. Allgemein enthalten Programmmodule Routinen,
Programme, Objekte, Komponenten, Datenstrukturen und so weiter,
die spezielle Aufgaben durchführen oder
spezielle abstrakte Datentypen implementieren. Die Erfindung kann
auch in verteilten Rechenumgebungen betrieben werden, bei denen
Aufgaben durch ferngesteuerte Verarbeitungsvorrichtungen durchgeführt werden,
die über
ein Kommunikationsnetzwerk verbunden sind. In einer verteilten Rechenumgebung können Programmmodule
sowohl in lokalen als auch in ferngesteuerten Computerspeichermedien
einschließlich
Speichervorrichtungen angeordnet sein.
-
Mit
Bezug auf 1 enthält ein exemplarisches System
zur Implementierung der Erfindung eine Universalrechenvorrichtung
in der Form eines Computers 110. Die Komponenten des Computers 110 können eine
Verarbeitungseinheit 120, einen Systemspeicher 130 und
ein Systembus 121 einschließen, der verschiedene Systemkomponenten einschließlich des
Systemspeichers mit der Verarbeitungseinheit 120 koppelt,
sind aber nicht begrenzt darauf. Der Systembus 121 kann
aus irgendeinem von verschiedenen Typen von Busstrukturen bestehen
einschließlich
eines Speicherbusses oder eines Speichercontrollers, eines peripheren
Busses und eines lokalen Busses unter Verwendung von irgendeiner
aus einer Vielzahl von Busarchitekturen. Als Beispiel und nicht
zur Begrenzung schließen
solche Architekturen einen Industry Standard Architecture(ISA)-Bus, einen Micro
Channel Architecture(MCA)-Bus, einen Enhanced ISA(EISA)-Bus, ei nen lokalen
Video Electronics Standards Association(VESA)-Bus und einen Peripheral
Component Interconnect(PCI)-Bus auch bekannt als Mezzanine-Bus ein.
-
Der
Computer 110 enthält
typischerweise eine Vielzahl von computerlesbaren Medien. Computerlesbare
Medien können
alle verfügbaren
Medien sein, auf welche der Computer 110 zugreifen kann und
enthalten sowohl flüchtige
als auch nicht flüchtige
Medien und entfernbare und nicht entfernbare Medien. Als Beispiel
und nicht zur Begrenzung können computerlesbare
Medien Computerspeichermedien und Kommunikationsmedien umfassen.
Computerspeichermedien schließen
sowohl flüchtige
als auch nicht flüchtige,
entfernbare und nicht entfernbare Medien ein, die in irgendeinem
Verfahren oder irgendeiner Technologie zur Speicherung von Information
wie computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen
oder anderen Daten implementiert sind. Computerspeichermedien schließen RAM, ROM,
EEPROM, Flash-Speicher oder andere Speichertechnologie, CD-ROM,
digitale vielseitig verwendbare Platten (DVD) oder andere optische
Plattenspeicher, Magnetkassetten-, Magnetband-, Magnetplattenspeicher
oder andere Magnetspeichervorrichtungen oder irgend ein anderes
Medium ein, das verwendet werden kann, um die erwünschte Information
zu speichern und auf das der Computer 110 zugreifen kann,
sind aber nicht beschränkt
darauf. Kommunikationsmedien umfassen typischerweise computerlesbare
Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in
einem modulierten Datensignal wie einer Trägerschwingung oder einem anderen
Transportmechanismus und schließen
jegliche Informationslieferungsmedien ein. Der Begriff "moduliertes Datensignal" bedeutet ein Signal,
das eine oder mehrere seiner Eigenschaften auf eine solche Weise
gesetzt oder verändert
hat, dass es Information in dem Signal kodiert. Als Beispiel und
nicht als Begrenzung schließen
Kommunikationsmedien festverdrahtete Medien wie ein festverdrahtetes
Netzwerk oder eine direkt verdrahtete Verbindung und drahtlose Medien
wie akustische, RF, Infrarot und andere drahtlose Medien ein, sind aber
nicht beschränkt
darauf. Jegliche Kombinationen von obigen Vorrichtungen sollten
auch in den Rahmen der computerlesbaren Medien eingeschlossen werden.
-
Der
Systemspeicher 130 schließt Computerspeichermedien in
der Form eines flüchtigen und/oder
nicht flüchtigen
Speichers wie einen Festwertspeicher (ROM) 131 und einen
Direktzugriffsspeicher (RAM) 132 ein. Ein Eingabe-/Ausgabewerk 133 (BIOS),
welches die grundlegenden Routinen enthält, welche dabei helfen Information
zwischen Elemen ten innerhalb des Computers 110 zu übertragen,
wie während
des Hochfahrens wird typischerweise in ROM 131 gespeichert.
RAM 132 enthält
typischerweise Daten und/oder Programmmodule, auf welche durch Verarbeitungseinheit 120 sofort
zugegriffen werden kann und/oder welche momentan von ihr verarbeitet
werden. Als Beispiel und nicht zur Begrenzung stellt 1 ein
Betriebssystem 134, Anwendungsprogramme 135, andere
Programmmodule 136 und Programmdaten 137 dar.
-
Der
Computer 110 kann auch andere entfernbare/nicht entfernbare,
flüchtige/nicht
flüchtige Computerspeichermedien
einschließen.
Nur als Beispiel stellt 1 ein Festplattenlaufwerk 141 dar,
das von nicht entfernbaren, nicht flüchtigen magnetische Medien
liest oder darauf schreibt, ein Magnetplattenlaufwerk 151,
das von einer entfernbaren, nicht flüchtigen Magnetplatte 152 liest
oder darauf schreibt und ein optisches Plattenlaufwerk 155,
das von einer entfernbaren, nicht flüchtigen optischen Platte 156 wie einer
CD-ROM oder anderen optische Medien liest oder darauf schreibt.
Andere entfernbare/nicht entfernbare, flüchtige/nicht flüchtige Computerspeichermedien,
die bei der exemplarischen Betriebsumgebung verwendet werden können schließen Magnetbandkassetten,
Flashspeicherkarten, DVDs, digitales Videoband, Halbleiter-RAM,
Halbleiter-ROM und Ähnliches
ein, sind aber nicht beschränkt
darauf. Das Festplattenlaufwerk 141 ist typischerweise
mit dem Systembus 121 über
eine nicht entfernbare Speicherschnittstelle wie Schnittstelle 140 (z.B.
Festplattencontroller) verbunden und Magnetplattenlaufwerk 151 und
optisches Platten-Laufwerk sind typischerweise mit dem Systembus 121 durch
eine entfernbare Speicherschnittstelle wie Schnittstelle 150 verbunden.
-
Die
Laufwerke und ihre verbundenen Computerspeichermedien, die oben
diskutiert wurden und in 1 dargestellt sind, liefern
eine Speicherung von computerlesbaren Anweisungen, Datenstrukturen,
Programmmodulen und anderen Daten für den Computer 110.
In 1 ist zum Beispiel Festplattenlaufwerk 141 dargestellt
als Speicherort für
das Betriebsystem 144, die Anwendungsprogramme 145, andere
Programmmodule 146 und die Programmdaten 147.
Man bemerke, dass diese Komponenten entweder die gleichen sein können oder
sich von dem Betriebssystem 134, den Anwendungsprogrammen 135,
anderen Programmmodulen 136 und den Programmdaten 137 unterscheiden.
Dem Betriebsystem 144, den Anwendungsprogrammen 145,
den anderen Programmmodulen 146 und den Programmdaten 147 werden
hier unterschiedliche Zahlen gegeben, um zu zeigen, dass sie zumindest
unterschiedliche Kopien sind. Ein Be nutzer kann Befehle und Information
in den Computer 110 über
Eingabevorrichtungen wie eine Tastatur 162 und eine Zeigevorrichtung 161,
allgemein als Maus bezeichnet, einen Trackball oder ein Touchpad
eingeben. Andere Eingabevorrichtungen (nicht gezeigt) können ein
Mikrofon, einen Joystick, ein Gamepad, ein Satellitenbrett, einen
Scanner oder Ähnliches
einschließen.
Diese und andere Eingabevorrichtungen sind oft mit der Verarbeitungseinheit 120 über eine
Benutzereingabeschnittstelle 160, die mit dem Systembus
verknüpft ist
verbunden, aber sie können
durch eine andere Schnittstelle und andere Busstrukturen wie einem parallelen
Anschluss, einem Gameport oder einem universellen seriellen Bus
(USB) verbunden sein. Ein Monitor 191 oder eine andere
Art von Anzeigevorrichtung ist auch mit dem Systembus 121 über eine Schnittstelle
wie eine Videoschnittstelle 190 verbunden. Zusätzlich zu
dem Monitor können
Computer auch andere periphere Ausgabevorrichtungen wie Lautsprecher 197 und
Drucker 196, die über
eine periphere Ausgabeschnittstelle 190 verbunden sein können einschließen.
-
Der
Computer 110 kann in einer Netzwerkumgebung unter Verwendung
von logischen Verknüpfungen
mit einem oder mehreren abgesetzten Computern wie einem abgesetzten
Computer 180 arbeiten. Der abgesetzte Computer 180 kann
ein Personal-Computer, ein Server, eine Überleiteinrichtung, ein Netzwerk-PC,
eine gleichrangige Vorrichtung oder ein anderer allgemeinen Netzwerkknoten
sein und schließt
typischerweise viele oder alle der oben beschriebenen Elemente relativ
zu dem Computer 110 ein, auch wenn nur eine Speichervorrichtung 181 in 1 dargestellt
wurde. Die in 1 abgebildeten logischen Verknüpfungen
schließen
ein lokales Netzwerk (LAN) 171 und ein weiträumiges Netzwerk (WAN) 173 ein,
können
aber auch andere Netzwerke einschließen. Solche Netzwerkumgebungen
sind in Büros,
firmenweiten Computernetzwerken, in Intranets und dem Internet allgemein üblich.
-
Wenn
der Computer 110 in einer LAN Netzwerkumgebung verwendet
wird, ist er mit dem LAN 171 über eine Netzwerkschnittstelle
oder einen Adapter 170 verbunden. Wenn der Computer 110 in
einer WAN Netzwerkumgebung verwendet wird, schließt er typischerweise
ein Modem 172 oder andere Einrichtungen zur Herstellung
von Kommunikation über
das WAN 173, wie das Internet ein. Das Modem 172,
das intern oder extern sein kann, kann mit dem Systembus 121 über die
Benutzereingabeschnittstelle 160 oder einen anderen geeigneten
Mechanismus verbunden sein. Bei einer Netzwerkumgebung können Programmmodule,
die in Verbindung mit dem Computer 110 abgebildet sind oder
Teile davon in der abgesetzten Speichervorrichtung gespeichert sein. Als
Beispiel und nicht als Begrenzung zeigt 1 abgesetzte
Anwendungsprogramme 185, wie sie in der Speichervorrichtung 181 resident
sind. Man wird einsehen, dass die gezeigten Netzwerkverbindungen exemplarisch
sind und dass andere Einrichtungen zum Aufbau einer Kommunikationsverbindung
zwischen den Computern verwendet werden kann.
-
MESSEN VON LAST AUF EINEM KANAL MIT VARIABLER
KAPAZITÄT.
-
2 stellt
eine Beispielumgebung dar, in welcher ein Gesichtspunkt der vorliegenden
Erfindung implementiert werden kann. In 2 wird ein Netzwerk 200 durch
eine Anzahl von Geräten 202, 204 und 206 dargestellt,
die durch ein Übertragungsmedium
miteinander verbunden sind, auch wenn es einzusehen ist, dass mehr
als drei solcher Computer in einem Netzwerk zusammengeschaltet werden können. Ebenso
kann zumindest eines der Geräte (z.B. 212)
eine (festverdrahtete oder drahtlose) Verbindung 210 zu
dem Internet 212 besitzen. Man beachte, dass das Netzwerk 200 in 2 so
gezeigt ist, das es ein drahtloses Netzwerk ist, welches Daten über einen Übertragungskanal 214 in
dem Übertragungsmedium
(z.B. eine RF-Verbindung, dargestellt als eine gestrichelte Linie) überträgt, auch
wenn es einzusehen ist, dass die vorliegende Erfindung in der Lage
ist die Vorteile bei festverdrahteten oder drahtlosen Netzwerken
oder irgendeiner Kombination von beiden zu liefern.
-
Die
vorliegende Erfindung ist nicht auf irgendeinen speziellen Typ Netzwerk
begrenzt, aber sie ist vorteilhaft bei einem Typ von Netzwerk, der
bestimmte Eigenschaften besitzt einschließlich der, dass das Netzwerk
ein Gemeinschaftsmedien-Netzwerk ist, bei dem die Verwendung des
Netzwerkkanals 214 durch einen der Computer (z.B. den Computer 204)
die gleichzeitige Verwendung des Netzwerks durch einen anderen angeschlossenen
Computer (z.B. den Computer 206) verhindert. Dies ist allgemein
in 2 dargestellt, wo nur Gerät B 204 als tatsächlich übermittelnd
dargestellt ist.
-
Eine
andere Eigenschaft dieses Typs von Netzwerk
200 besteht
darin, dass das Netzwerk es nicht erlaubt oder unterstützt, dass
ein angeschlossener Computer sämtliche
Pakete, die an das Netzwerk gesendet werden ohne Berücksichtigung
der Ziele der Pakete empfängt
(manchmal als gemischter Modus bezeichnet). Eine Bestimmung des
Netzwerkverhaltens aus einer vollständigen Paketerfassung ist somit
bei diesem Netz werk nicht möglich. Man
bemerke, dass, wenn eine vollständige
Paketerfassung verfügbar
war und keine anderen Aspekte einer variablen Kanalkapazität vorhanden
waren, die Methoden, welche in der vorher erwähnten U.S.-Patentanmeldung
US 2003097461 beschrieben
wurden allgemein ausreichen würden.
Ferner bemerke man, dass das Fehlen einer Unterstützung des
gemischten Modus nur ein Grund ist, warum das Verständnis des Netzwerkverhaltens
von der vollständigen
Paketerfassung her nicht möglich
ist. Andere Gründe
zum Beispiel schließen
das wohlbekannte Problem des verdeckten Knotens (bei dem zwei Sender
einander nicht entdecken können,
auch wenn andere Empfänger
mit beiden kommunizieren können)
und/oder die Verwendung von verschiedenen SSIDs (Funknetzwerkkennungen
(Service Set identifiers)) oder WEP (zur Festverdrahtung gleichwertige
Geheimhaltung (Wired Equivalent Privacy))-Tasten ein.
-
Noch
eine weitere Netzwerkeigenschaft besteht darin, dass das Netzwerk 200 ein
Medienzugriffssteuer-(Media Access Control (MAC))-Protokoll einschließt, dessen
Zweck es ist eine näherungsweise
(z.B. stochastische) gerechte Verwendung des Netzwerkkanals 214 durch
die Computer zu liefern, die ein Paket zu irgendeinem Zeitpunkt übermitteln wollen,
was zum Beispiel durch die Verwendung von Konkurrenz und exponentieller
Unteraussteuerung durchgeführt
werden kann. Noch eine andere Eigenschaft des Netzwerks 200 aus 2 besteht
darin, dass die Kapazität
des Netzwerks effektiv variabel ist auf Grund der Funktion des Media
Access Control-Protokolls,
eines Unterschieds in der unterlegten Codierungsrate, eines Verbindungspegel-Rückübertragungsmechanismus,
der für
die Computersoftware nicht sichtbar ist und/oder anderen Gründen. Ein üblicherweise
angewandtes Beispiel eines Netzwerks mit diesen Eigenschaften ist
eines, das in Übereinstimmung
mit dem IEEE-Standard
802.11, umgangssprachlich bekannt als "drahtloses Ethernet" angeordnet ist.
-
Im
Allgemeinen besteht bei einem solchen Netzwerk 200, wenn
ein Computer versucht ein Paket zu übertragen, die gesamte Übertragungszeit
des Pakets aus der Zeit zur Erlangung von Zugriff auf das Medium,
was ein Warten darauf einschließen
kann, dass die Pakete von anderen Computern (die in der Größe variieren
können)
zuerst übermittelt
werden, gefolgt von der zufälligen
Rückkopplungszeit
der Kollisionsumgehung MAC, gefolgt von einer Serialisierungs-Verzögerungszeit
zur sequentiellen Übertragung
jedes Symbols, welches das Paket enthält. Zusammen spiegeln diese
Zeiten die variable Na tur der Rate wieder, mit der Pakete auf dem
Kanal befördert werden
können,
zumindest teilweise auf Grund des MAC-Protokolls und der Kodierungsrate.
-
In Übereinstimmung
mit einem Gesichtspunkt der vorliegenden Erfindung sind durch Messen der
tatsächlichen
Zeit, die benötigt
wird, um ein Paket zu übertragen
und Wiederholung der Messung bezüglich
anderer Pakete so, dass genügend
Messungen verfügbar
sind, um statistische Methoden darauf anzuwenden, z.B. um das stochastische
Verhalten des MAC-Protokolls auszumitteln, die Last bezüglich des
Netzwerks und der momentane Betrag an variabler Kanalkapazität des Kanals 214 bestimmbar.
Zum Beispiel ist die nominale Zeit zur Übertragung eines Pakets mit
einer gegebenen Größe in Abwesenheit von
verändernden
Faktoren wie Rauschen und Überlastung
aus der maximalen Übertragungsrate
bekannt (z.B. entsprechend 11 Mbs für drahtloses Ethernet) oder
kann auf andere Weisen gemessen werden und somit können die
tatsächliche
Kanalkapazität
und -last leicht aus der tatsächlichen
Zeit für die
abgetasteten Pakete bestimmt werden.
-
Um
die Abtastwerte zu erhalten, kann ein Computergerät (z.B.
das Gerät
B 204) ausgewählt, gekennzeichnet
oder bestimmt werden, um eine ausreichende Menge von zeitlich festgelegten
Paketabtastwerten zu erhalten, um die statistische Analyse durchzuführen. Man
bemerke, dass nicht jedes Paket abgetastet werden muss, zum Beispiel,
wenn die Abtastung das System belastet. Ein solcher Computer ist
vorzugsweise einer, der regelmäßigen Gebrauch von
den Kanal 214 macht, wie ein Servercomputer, ein verdrahteter
Zugriffspunkt für
ein drahtloses Netzwerk oder ein Gateway oder eine Überleiteinrichtung zwischen
diesem Netzwerkkanal und anderen Netzwerken. Man bemerke, dass umgekehrt,
wenn kein Computer aktiven Gebrauch von dem Netzwerk macht die Netzwerklast
niedrig ist und es keine Netzwerküberlastung zu reduzieren gibt,
wodurch eine Kenntnis der Last und der variierenden Kapazität für diesen
Zweck nicht benötigt
wird, d.h. ein Drosseln zur Reduzierung einer Netzwerküberlastung.
-
Um
bei der vorliegenden Erfindung zu bleiben, können verschiedene alternative
Wege angewandt werden, um die Zeitmessungen auszuführen. Ein
solcher Weg wird durch 3 dargestellt, wo die Netzwerkschnittstellenkarte
(NIC) 302 (welche Netzwerkschnittstelle/Adapter 170 aus 1 entsprechend
kann) einen Vorrichtungstreiber 304 besitzt, der die Netzwerkkapazitäts- und
Lastmessung erkennt und bei der Messung mitwirkt. Bei einer solchen
Implementierung übergibt
eine Netzwerkkomponente 306 höheren Levels ein Paket bekannter Größe an den
Vorrichtungstreiber 304 zur Übertragung und der Vorrichtungstreiber 304 zeichnet
die Zeit, bei welcher die Paketübertragung
von der NIC-Hardwarevorrichtung 302 angefordert wird auf (oder
gibt sie aus). Der Vorrichtungstreiber 304 zeichnet auf ähnliche
Weise die Zeit auf, bei welcher die NIC-Hardwarevorrichtung 302 die Übertragung
bestätigt,
z.B. über
einen Interrupt (oder gibt sie aus).
-
Ein
solcher Vorrichtungstreiber 304 kann die Ursprungszeitintervalle
an eine Messkomponente 308 des Systems liefern, welche
eine statistische Mittelung oder Ähnliches durchführt, um
geglättete,
errechnete Werte von Last und Kapazität zu erhalten. Alternativ kann
der Vorrichtungstreiber einige oder alle von den Berechnungen intern
durchführen,
um das Intervall auszugeben oder periodisch die Last- und Kapazitätsdaten
direkt ausgeben. Zum Beispiel kann ein Teil oder die gesamte Funktionalität der Messkomponente 308 in
dem Vorrichtungstreiber 304 enthalten sein.
-
In
jedem Fall wird die tatsächliche
Zeit zur Übertragung
eines Pakets durch zeitliche Abstimmung der von dem Vorrichtungstreiber
304 gelieferten
Daten (oder durch den Vorrichtungstreiber
304 selbst) gemessen,
die Zeiten für
eine Anzahl von Paketen werden statistisch kombiniert und die Last
und Kapazität
werden daraus berechnet. Eine detaillierte Erklärung wie diese genauen Zeitprotokolle
aufgezeichnet werden und wie sie verarbeitet werden, um die Effekte
des Kanals auf die Paketlatenz zu bestimmen, ist in der U.S.-Patentanmeldung
US6975656 beschrieben, welche
dem Rechtsnachfolger der vorliegenden Erfindung zugeteilt wurde.
-
Die
Kapazitäts-
und Lastdaten können
direkt aus den Paketlatenzstatistiken abgeleitet werden und somit
durch einen Paketratencontroller
310 oder Ähnlichem
verwendet werden, um die Übertragung basierend
auf bestimmten Kriterien (z.B. "Zahlungswillen") herunterzudrosseln,
um Netzwerküberlastung
zu verhindern, wie in der vorher erwähnten U.S.-Patentanmeldung
US2003097461 beschrieben wurde.
-
Man
beachte, dass, wenn der Vorrichtungstreiber 304 nicht selbst
kooperativ ist, es durchführbar
ist, einen Code (einen lower-level-Treiber) zur Einführung zwischen
dem NIC-Treiber 304 und dem NIC 302 zu entwickeln
und damit einen kooperativen Treiber (in 3 nicht
separat gezeigt) zu emulieren. Jedoch ist, wie man leicht einsehen
kann ein Vorrichtungstreibercode oft geschützt und sorgfältig mit
der Hardwarevorrichtung getestet und somit müsste, um die Vorrichtung zu
schützen
ein jeder solcher Treiber, der zwischen einem Hardwaretreiber und
seiner Hardware eingefügt
wird sorgfältig
ausgelegt werden, um nicht die Funktion des Vorrichtungstreibers zu
verändern,
zum Beispiel nur eine begrenzte Funktionalität auszuführen, wie ein Notieren und
Ausgeben der Zeit, bei der ein Paket durchgeleitet wird und der
späteren
Bestätigung
seiner Übertragung.
-
In Übereinstimmung
mit einem anderen Gesichtspunkt der vorliegenden Erfindung kann
man, wenn man nicht mit einem erkennenden Vorrichtungstreiber operiert,
der in der Lage ist zumindest die Zeitablauf-Information zu liefern
eine alternative Technik anwenden, um das Zeitintervall zu messen. Allgemein
basiert diese alternative Messtechnik, wie bei dem Betriebssystemen 134 auf
einer Ermittlung des Verbrauchs von irgendeiner Form von Systemressource 400 (4)
des Pakets, der mit der erfolgreichen Übertragung des Pakets verknüpft ist. 4 zeigt
eine Anordnung von Software-Komponenten, welche
verwendet werden können,
um die tatsächlichen Übertragungszeiten
beim Betrieb eines NIC 402 innerhalb eines Computersystems
mit einem solchen "nicht
erkennenden" Vorrichtungstreiber 404 zu bestimmen.
-
Zum
Beispiel kann ein Paket bestimmte Speicherressourcen, welche durch
den Vorrichtungstreiber 404 über das Betriebssystem 134 frei
gemacht werden verbrauchen, wenn der Vorrichtungstreiber 404 mit
den Speicherressourcen fertig ist. Solange der Vorrichtungstreiber 404 ein
Treiber ist, der in seiner Zuweisung und Freigabe von Speicherressourcen
für Pakete
konsistent ist, kann das Betriebssystem 134 die Start-
und Bestätigungszeiten
des Pakets basierend auf den Speicheranforderungen von dem Vorrichtungstreiber 404 herleiten.
Man bemerke, dass viele solcher Abtastwerte diesen Intervallen entnommen
werden und statistisch interpretiert werden (z.B. mit verworfenen
schlechten Messungen), so dass, auch wenn ein Treiber manchmal die
Ressource nicht konsistent anfordert und/oder freigibt, die gültigen Start-
und Bestätigungszeiten gültige Ergebnisse
liefern werden.
-
Als
ein anderes Beispiel von Ressourcenverwendung für kann jedes Paket einem Vorrichtungstreiber 404 ein
Referenzzählwert
gegeben werden (oder ein existierender kann erhöht werden), oder es kann ihm
eine Kennung für
einen Speicher übergeben
werden, in welchem das Paket platziert ist. Der Referenzzählwert wird
dann erniedrigt oder die Kennung zurückgereicht, wenn die Übertragung
vollständig
ist. Das Betriebssystem 134 kann wieder unter der Annahme
eines konsistenten, richtig geschriebenen Vorrichtungstreibers 404 die
Start- und Bestätigungszeiten
des Pakets basierend auf den Anforderungen, deren Grundlage die
Referenzzählwerte
sind oder den kennungsbasierenden Anforderungen von dem Vorrichtungstreiber 404 herleiten.
-
Bei
einem anderen Beispielen kann der Vorrichtungstreiber 404 von
dem Betriebssystem 134 anfordern, dass ein Speicherbereich
für DMA
oder Eingabe/Ausgabe-Zugriff verfügbar gemacht wird und ebenso
wird der Vorrichtungstreiber 404 dem Betriebssystem 134 anzeigen,
wenn solche Zugriffe beendet sind. Diese Anforderungen können wieder
verwendet werden, um das Zeitmessungsintervall für jedes übermittelte Paket zu bestimmen.
-
Eine
andere Beispielressource, deren Verwendung in dem Betriebssystem 134 gefunden
werden könnte
ist ein Teilprozess, z.B. der Vorrichtungstreiber 404 kann
das Paket synchron mit dem Teilprozess der Steuerung übermitteln,
welcher den Treiber 404 auffordert das Paket zu senden.
In einem solchen Fall wird der Treiber 404 die Steuerung
zu dem A-Teilnehmer (d.h. dem Datenstapel oder der Teilprozessressource)
zurückgeben,
wenn das Paket als übermittelt
bestätigt
wurde und somit kann der Unterschied zwischen der Teilprozessanforderung
und der Rückgabe
der Steuerung verwendet werden, um das Intervall zu bestimmen.
-
Um
zusammenzufassen erfasst bei jeder der oben beschriebenen Situationen
ein Vorrichtungstreiber 404 eine Systemressource 400,
um zu arbeiten und gibt die Systemressource 400 frei, um
zu verhindern, dass er eine Netzwerk-Ressourcensenke wird (etwas,
was richtig geschriebene Vorrichtungstreiber sorgfältig vermeiden).
Als ein Ergebnis kann das Betriebssystem 134 die Zeitintervalle
zwischen einer Zeit, zu der die mit dem Paket verknüpfte Ressource erfasst
wird und einer Zeit, zu der sie freigegeben wird aufzeichnen und
diese Zeitintervalle verwenden, um die Zeit zu berechnen, die benötigt wird,
um das Paket auf dem Kanal zu übertragen. 5 zeigt
allgemein die Logik aus der Perspektive des Betriebssystems in den
Schritten 500–510.
Man beachte, dass Schritt 506 zur Vereinfachung als eine
Schleife gezeigt ist, auch wenn das Betriebssystem natürlich andere
Operationen zwischen der Anforderung der Ressource und der An forderung
ihrer Freigabe durchführt.
Man beachte auch, dass Schritt tatsächlich die Zeit von der Anforderung
der Freistellung aufzeichnen kann, sondern zum Beispiel direkt eine
Berechnung wie die Berechnung des Intervalls durchführen kann
und/oder auch einen aktiven Mittelwert anpassen kann.
-
Während die
obigen Mechanismen erfolgreich bei mit vielen Arten von Netzwerkkarten
getestet wurden, können
solche Mechanismen dabei versagen, genaue Resultate mit einem speziellen
Typ von Netzwerkkarte zu liefern, nämlich eine, die ihre eigenen
Paketpuffer besitzt und eine Bestätigung einer Paketübertragung
an den Treiber bei der Pufferung eines Pakets zurückgibt statt
bei der tatsächlichen Übertragungsbestätigung.
Wie man sehen kann und wie im Folgenden beschrieben wird, würde mit
einem solchen Mechanismus die oben mit Bezug auf 4 und 5 beschriebe
Messtechnik die Kapazität
der Verbindung hinsichtlich der Puffer der NIC-Karte messen statt
einem Messen der Kapazität des
Netzwerkkanals.
-
Ein
allgemeines Beispiel einer solchen NIC-Karte 602 ist in 6 gezeigt,
wobei zum Beispiel die NIC-Karte 602 in einem der Computersysteme
(z.B. dem Gerät
A 202), verknüpft
mit dem Netzwerk 200 aus 2 vorhanden
sein kann. In 6 besitzt das Hauptverarbeitungsmittel
in dem Computersystem keine direkte Verbindung zu dem Netzwerk,
aber es ist stattdessen indirekt an das Netzwerk über einen
Netzwerk-Koprozessor
oder Mikrocontroller (CPU) 618 oder andere autonome Puffer oder
Puffermittel angeschlossen. Ein Softwarecode in der Form eines internen
Vorrichtungstreibers 620 liefert eine Übertragungsbestätigung nach
einem Puffer eines Pakets und steuert die CPU 620, um ausgehende
Pakete zur Übertragung
und eingehende Pakete zur Zurückgabe
an die anderen Komponenten jeweils in Ausgangs- und Eingangspuffern 622 und 624 zu
puffern. In einem solchen System kann der interne Vorrichtungstreiber 620 ein
zu übermittelndes
Paket in den Pufferspeicher auf der Hardwarevorrichtung 602 kopieren,
wenn eine Übertragung
angefordert wird, wodurch der Vorrichtungstreiber 608 extern
zu der NIC abschließt
unter Verwendung der Systemressourcen unter der Steuerung des Betriebssystems
an dem Punkt, bei dem das Paket gepuffert wird, was voraussichtlich
vor der Zeit ist, zu der das Paket tatsächlich auf dem Netzwerk übertragen
wird. Als Folge werden weder eine direkte Messung durch den Vorrichtungstreiber 608 (wie
in 3) noch eine indirekte Messung durch Aufzeichnung
der Verwendung der Betriebssystemressourcen (wie in den 4 oder 5)
eine genaue Zeitinformation lie fern. Man beachte, dass ähnlich zu dem
kooperativen Treiber aus 3 zukünftig solche NIC-Karten hergestellt
werden können,
welche die Notwendigkeit zur Messung von Netzwerkkapazität und -last
erkennen und dadurch programmiert werden, um Zeitablaufdaten hinsichtlich
der tatsächlichen Übertragung
in Übereinstimmung
mit der vorliegenden Erfindung zu liefern. Gegenwärtig jedoch
besitzen viele Karten, die bereits kommerziell existieren eine solche
Erkennungsmöglichkeit
nicht.
-
In Übereinstimmung
mit einem anderen Gesichtspunkt der vorliegenden Erfindung kann
die Last und die variable Kapazität für eine Netzwerkvorrichtung
von dem in 6 dargestellten Typ z.B. mit
einem Mikrocontroller 618 mit seinen eigenen Pufferspeichern 622 und 624,
der in einem halbselbstständigen
Modus arbeitet hinsichtlich des Vorrichtungstreibers 608 für die Netzwerkvorrichtung
bestimmt werden. Spezieller, wie in 7 dargestellt,
kann bei einem Netzwerk, das eines oder mehrere solcher Vorrichtungen
einschließt
seine Last und Kapazität gemessen
werden durch anfängliche
Aufzeichnung der Zeiten, zu welchen die Pakete an die Netzwerkschnittstellenkarte 602 zur Übermittlung übergeben werden
(Schritte 700 und 702).
-
Geeignete
Mechanismen zur Lieferung und/oder Aufzeichnung der Zeit können einen
oben mit Bezug auf die 3–5 beschriebenen
einschließen,
dargestellt in 6 durch den Zeitaufzeichnungsmechanismus 630.
Der Zeitaufzeichnungsmechanismus 630 zeichnet auch die
Zeiten auf, zu denen Pakete an der Netzwerkschnittstellenkarte 624 ankommen,
wie bei den Schritten 704 und 706 aus 7 dargestellt
ist. Man bemerke, dass die Schritte 700–706 nicht implizieren,
dass ein Paket empfangen wird unmittelbar folgend darauf, dass eines
gesandt wurde, sondern sie sind nur als ein Beispiel vorgesehen,
um die allgemeine Operation zu zeigen.
-
Um
die Messung zu implementieren wird ein Gerät in dem Netzwerk ausgewählt oder
bestimmt, als eine Zeitkontrolle
640 zu fungieren, wie
in
6 dargestellt ist. Die Zeitkontrolle
640 ist
für eine
Unterteilung der Netzwerkaktivität
den Perioden oder Schlitze verantwortlich, worüber die Last und Kapazität bestimmt
wird. Der folgende erklärende
Text beschreibt diese als unterschiede Perioden, aber man kann leicht
einsehen, dass jedes System beweglicher Zeit mit überlappenden
Perioden ebenfallsausreichend ist, vorausgesetzt dass die Zeitkontrolle
die Perioden deutlich anzeigt. Die Zeitkontrolle
640 führt dies
durch, indem sie manchmal ein Sende-Zeitkontrollpaket (TKP in
6)
in dem Netzwerk sendet. Da Sendepakete durch die 802.11 Sicherungsschicht nicht
zurückübertragen
werden, wird die Zeit, zu der es in jedem der Netzwerkgeräte empfangen
wird die gleiche sein. Die Zeitkontrolle
640 schreibt ihre
eigene lokale Zeit in das Paket unmittelbar bevor sie es sendet
und jedes Gerät
zeichnet die Zeit auf, zu der es empfangen wurde. Die Zeitkontrollpakete
enthalten auch eine Verweisadresszahl, welche es erlaubt, dass alle
Pakete, die durch einen speziellen Knoten aufgegeben werden bestimmt
werden (sie werden nicht zurückübertragen).
Ein geeigneter Zeitprotokoll-Mechanismus
642 zum
Einschreiben einer Zeit- und Verweiszahl ist in der vorher erwähnten U.S.-Patentanmeldung
US6975656 beschrieben.
-
Jeder
Computerknoten besitzt Zeitprotokolle der Zeitkontrolle in dem Zeitkontrollpaket
TKP und die lokale Zeit, zu der das Zeitkontrollpaket TKP ankam
und verwendet einen oder mehrere Algorithmen (z.B. ein verallgemeinertes
Regressionsverfahren wie einen linearen Regressionsalgorithmus)
hinsichtlich der Zeitdaten, um den Versatz und die Drift (Rate)
zwischen dem lokalen Taktsignal des Knotens und dem in dem Zeitkontrollknoten
arbeitenden Taktsignal zu berechnen. Auf diese Weise werden der
Versatz und die Drift bei jedem Knoten kompensiert, d.h. die Zeiten,
zu denen die Pakete lokal an die Hardware zur Übertragung übergeben werden und von der
Hardware empfangen werden, werden in die Zeit des Zeitkontrollknotens
konvertiert unter Verwendung der berechneten Versetzung und Drift,
wie auch in Schritt
710 aus
7 dargestellt
wird. Wieder erläutert
die vorher erwähnte
U.S.-Patentanmeldung
US6975656 im
Detail, wie verschiedene Algorithmen, Prozeduren und Techniken verwendet
werden, um die Zeitaufzeichnungen für die verschiedenen Pakete
zu manipulieren.
-
Wie
in Schritt 712 von 7 dargestellt,
meldet für
den aktuellen Zeitschlitz jeder Computerknoten die Zeiten, zu denen
in dem Knoten Pakete lokal an die Hardware zur Übertragung gegeben werden und
von der Hardware empfangen werden an die Zeitkontrolle 640.
Die Größen jedes
dieser Pakete werden auch mit den Paketdaten in einer Informationszusammenstellung,
die als das Berichtspaket bezeichnet wird gemeldet.
-
Nach
Empfang der Berichtspakete von jedem Computer in dem Netzwerk für eine Zeitschlitzperiode
prüft die
Zeitkontrolle 640 nach, welche Paketübertragung auf welchen Knoten
dem folgenden Empfang eines Paketes bei einem anderen Netzwerkknoten
in dem Netzwerk entspricht, wie allgemein in Schritt 714 dargestellt
ist. Dann sind in Schritt 716 die tatsächlichen Zeiten bekannt und
werden verwendet, um die Netzwerkkapazitäts- und Lastdaten zu berechnen,
welche wiederum zur Drosselung verwendet werden können, um
eine Netzwerküberlastung
zu reduzieren. Spezieller leitet durch Verwendung der Warteschlangenzeit
von Paketen an dem Knoten, der Zeit für den Zugriff auf das Netzwerk
und der Ankunft von den Paketen der Zeitkontrollknoten die Netzwerklast,
die Medienzugriffsverzögerung
und alle Datenübertragungslevel-Rückübertragungen, die
aufgetreten sind ab. Deshalb sind die Netzwerklast und die variable
Netzwerkkapazität
durch den Zeitkontrollknoten bekannt, was direkt oder indirekt zur
Drosselung von Übertragungen
verwendet werden kann, um Netzwerküberlastung zu reduzieren, abhängig von
dem eingesetzten System. Man beachte, dass bei einigen Systemen
die Netzwerkkapazitäts-
und Lastdaten an den Knoten benötigt
werden, wodurch die Netzwerkkapazitäts- und Lastdaten an diese
anderen Knoten verteilt werden können,
zum Beispiel als zusätzlicher
Punkt bei dem nächsten Zeitkontrollpaket.
-
Die
vorliegende Erfindung liefert auch Vorteile bei anderen Netzwerktypen,
die eine variable Kapazität
besitzen, aber andere Eigenschaften wie jene von drahtlosen Ethernet-Netzwerken besitzen. 8A stellt
ein Netzwerk-System dar, bei dem das Netzwerk ein Punkt zu Punkt
Netzwerk ist, das einem Duplex-Kanal 802 mit einem Computersystem 804, 806 jeweils
an jedem Ende umfasst. Das Netzwerk ist kein Gemeinschaftsmedien-Netzwerk.
Die beiden Richtungen des Duplex-Kanals 802 können nicht
mit der gleichen Geschwindigkeit arbeiten und, wie auch in 8B dargestellt,
jede Richtung des Kanals kann aus verschiedenen Sammelverbindungen 802a –802d bestehen, bei denen die Anzahl an
Verbindungen mit oder ohne dem direkten Wissen der Computersysteme
an dem Ende des Knotens dynamisch durch den Kanal verändert werden
kann. Zusätzlich
können entweder
der Kanal oder die Computersysteme an den Enden des Kanals mit Intra-Paket-
oder Inter-Paketkomprimierungstechniken (wie die vanJacobson Kopfbereich-Komprimierung)
in Eingriff stehen. Das PPP-Protokoll über den Verbindungsaufbau oder
das ISDN ist ein allgemein angewandtes Beispiel von einem Netzwerk
mit diesen Eigenschaften.
-
Bei
einem solchen System rührt
die Veränderlichkeit
des Kanals von der Paketkomprimierung und/oder von der Anzahl von
Verbindungen, welche der Kanal umfasst und die dynamisch variieren
her. In Übereinstimmung
mit der vorliegenden Erfindung wird ein ähnliches System wie das, das
mit Bezug auf die 6 und 7 beschrieben
wird ver wendet, um die Größen und
Zeiten der Pakete, die zur Übertragung
angefordert werden und die Zeiten der Vollendung der Übertragung
von Paketen aufzuzeichnen. Da bei der PPP-Umgebung keinen anderes
System die jeweilige Hälfte
des Kanals verwendet, können die
Last und die Kapazität
direkt berechnet werden, d.h. der Bruchteil der Zeit, während der
der Kanal nicht belastet ist, ist gleich der Summe der Perioden an
Zeit zwischen der Vollendung der Übertragung von einem Paket
und der Zeit, zu welcher das nächste
Paket zur Übertragung
in die Warteschlange gesetzt wird zu der Gesamtzeit. Die Kapazität des Kanals
wird aus der Anzahl an Bytes berechnet, wie die in dem Paket übertragen
werden und der Länge
an Zeit zwischen dem Punkt, zu dem das Paket in die Warteschlange
gestellt wurde und der beendeten Übertragung.
-
In Übereinstimmung
mit einem anderen Gesichtspunkt der aktuellen Erfindung können diese
Berechnungen auch in dem Fall ausgeführt werden, bei dem mehrere
ausstehende Pakete zur Übertragung durch
eine Netzwerkschnittstelle in die Warteschlange gestellt werden.
In diesem Fall wird die Last in dem Kanal durch die Zeitperioden
bestimmt, bei denen keine in die Warteschlange gestellten Pakete
zur Übermittlung
vorhanden sind. Dies kann leicht bestimmt werden entweder durch
Zählen
des Auftretens von in die Warteschlange gestellten Paketen und dadurch,
dass ihre vollständige Übertragung
angezeigt wird durch einen direkten Zähler oder durch irgendein anderes
verfügbares
Mittel. Die mittlere Kapazität
des Kanals wird jedes Mal bestimmt, wenn eine vollständige Paketübermittlung
angezeigt wird, entweder durch Teilen der Zeit, die seit dem Ende
der letzten untätigen
Periode des Kanals verstrichen ist mit der Summe der übertragenen
Pakete seit dieser Zeit einschließlich des aktuell angezeigten
Paketes, oder durch Teilen des Intervalls seit der vorausgehenden
allerletzten Paketübertragungs-Vervollständigungszeit
(oder der Zeit der Einstellung in die Warteschlange, was auch immer
die spätere
ist) mit der Größe des zu
allerletzt abgeschlossenen Paketes. Diese beiden Messergebnisse
können
tatsächlich gemittelt
werden, was dabei behilflich sein kann, einige Effekte der Ablaufsteuerung
oder anderes Abtastrauschen in den Computersystemen zu reduzieren.
-
Wie
man aus der vorausgehenden detaillierten Beschreibung ersehen kann,
wird ein Verfahren und ein System zum Messen der Kanalkapazität und -last
bei einem Netzwerk mit variabler Kapazität geliefert. Das Verfahren
und das System sind flexibel ab hängig
von den Typen an Rechenkomponenten und Netzwerken, die bei gegebenen
Systemen und Netzwerken verfügbar
sind.
-
Während die
Erfindung für
verschiedene Modifikationen und alternative Konstruktionen geeignet ist,
sind bestimmte dargestellte Ausführungen
davon in den Zeichnungen gezeigt und wurden im oben im Detail beschrieben.
Es sollte jedoch selbstverständlich
sein, dass keine Absicht vorliegt die Erfindung auf die spezielle
Form oder die Formen, die offen gelegt wurden zu begrenzen, sondern
im Gegenteil die Erfindung soll alle Modifikationen, alternative
Konstruktionen und Äquivalenzen
innerhalb des Rahmens der Erfindung abdecken.