DE60304515T2 - Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität - Google Patents

Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität Download PDF

Info

Publication number
DE60304515T2
DE60304515T2 DE60304515T DE60304515T DE60304515T2 DE 60304515 T2 DE60304515 T2 DE 60304515T2 DE 60304515 T DE60304515 T DE 60304515T DE 60304515 T DE60304515 T DE 60304515T DE 60304515 T2 DE60304515 T2 DE 60304515T2
Authority
DE
Germany
Prior art keywords
packet
network
device driver
time
transmission
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
DE60304515T
Other languages
English (en)
Other versions
DE60304515D1 (de
Inventor
Paul Barham
Richard Black
Neil Haddenham Stratford
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE60304515D1 publication Critical patent/DE60304515D1/de
Application granted granted Critical
Publication of DE60304515T2 publication Critical patent/DE60304515T2/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
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erindung 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 Überlaufs 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 Parametern 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.
  • 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 Intervallen 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 erniedrigt. 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 K., Baker M., "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 unterschiedlichen 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.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist das Ziel der vorliegenden Erfindung eine Technik zum Messen sowohl der Kapazität als auch der Last eines Kanals zu liefern.
  • Dieses Ziel wird durch die Erfindung erreicht, wie sie in den unabhängigen Patentansprüchen definiert ist. Ausführungen werden in den abhängigen Patentansprüchen angegeben.
  • Kurz liefert die vorliegende Erfindung ein Verfahren und ein Medium, das ein Computerprogramm speichert zum Messen von Kanallast und -kapazität bei Netzwerken mit variabler Kanalkapazität. Das Verfahren und das Programm 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, einen 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 Elementen 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 Festplat tenlaufwerk 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 Benutzer 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 136, 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 Netzwerk nicht möglich. Man bemerke, 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 Natur 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üh ren, 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.
  • 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.
  • 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 Übertragungs zeiten 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 500510. 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 Anforderung 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 Puffern 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 liefern. 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 35 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 700706 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).
  • 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.
  • 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 Gemeinschaftsme dien-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 van-Jacobson 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 verwendet, 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 ver fü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 abhä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.

Claims (18)

  1. Verfahren zur Benutzung in einem Computernetzwerk (171, 173, 200), das die Bestimmung einer Last (Auslastung; „Loading") und einer Kapazität eines Kanals umfasst, und wobei der Bestimmungsschritt umfasst: die Messung einer Intervallzeit zwischen einem Zeitpunkt, wenn ein gemessenes Paket in eine Warteschlange zur Übertragung eingereiht wird, und einem Zeitpunkt, wenn die Übertragung des gemessenen Pakets bestätigt wird; und den Vergleich von Daten, die der Intervallzeit entsprechen, mit einer nominellen Zeit für eine Netzwerkpaketübertragung, wobei die Messung der Intervallzeit eine Detektion (500 bis 510) eines Betriebs eines Gerätetreibers (304, 404) umfasst, der das Paket in die Warteschlange zur Übertragung einreiht.
  2. Verfahren nach Anspruch 1, weiterhin umfassend die Bestimmung der Last und der Kapazität des Kanals auf Basis des Datenvergleichs.
  3. Verfahren nach Anspruch 1 oder 2, weiterhin umfassend die Bestimmung eines Wertes durch Anwendung einer statistischen Technik auf die Intervallzeit des gemessenen Pakets und Intervallzeiten einer Vielzahl anderer Pakete; und wobei die Daten, die der Intervallzeit entsprechen, den Wert umfassen.
  4. Verfahren nach Anspruch 3, wobei ein Medienzugangssteuer- („media access control") Protokoll die Netzwerkkommunikation steuert; und wobei der Vergleich das mittlere Verhalten des Medienzugangssteuerprotokolls angibt.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Messung der Intervallzeit den Empfang von Daten von dem Gerätetreiber umfasst.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Messung der Intervallzeit den Empfang der Daten, die der Intervallzeit entsprechen, von dem Gerätetreiber, der das Paket in die Warteschlange zur Übertragung einreiht, umfasst.
  7. Verfahren nach Anspruch 6, wobei der Empfang der Daten, die der Intervallzeit entsprechen, den Empfang einer Startzeit und einer Abschlusszeit umfasst.
  8. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Messung der Intervallzeit eine Detektion mindestens einer Anforderung von dem Gerätetreiber bezüglich einer Systemressource (400) bei einer Betriebssystemkomponente (134) umfasst.
  9. Verfahren nach Anspruch 8, wobei die Detektion der mindestens einen Anforderung bezüglich einer Systemressource eine Detektion einer speicherbezogenen Anforderung umfasst.
  10. Verfahren nach Anspruch 8, wobei die Detektion der mindestens einen Anforderung bezüglich einer Systemressource eine Detektion einer Anforderung bezüglich einer Referenzzählung umfasst.
  11. Verfahren nach Anspruch 8, wobei die Detektion der mindestens einen Anfrage bezüglich einer Systemressource eine Detektion einer Anfrage bezüglich eines Threads umfasst.
  12. Verfahren nach einem der Ansprüche 1 bis 8, wobei die Detektion des Betriebs des Gerätetreibers, der das Paket in die Warteschlange zur Übertragung einreiht, den Empfang mindestens einer Anfrage von dem Gerätetreiber, die eine Speicherbenutzung betrifft, umfasst.
  13. Verfahren nach Anspruch 12, wobei der Gerätetreiberbetrieb eine Anforderung von Speicherallokation und -deallokation umfasst.
  14. Verfahren nach einem der Ansprüche 1 bis 8, wobei die Detektion des Betriebs des Gerätetreibers, der das Paket in die Warteschlange zur Übertragung einreiht, einen Empfang mindestens einer Anfrage von dem Gerätetreiber, die eine Referenzzählung betrifft, umfasst.
  15. Verfahren nach Anspruch 14, wobei der Gerätetreiberbetrieb eine Anforderung einer Erhöhung und Verminderung der Referenzzählung umfasst.
  16. Verfahren nach einem der Ansprüche 1 bis 8, wobei die Detektion des Betriebs des Gerätetreibers, der das Paket in die Warteschlange zur Übertragung einreiht, einen Empfang mindestens einer Anforderung von dem Gerätetreiber, die einen Thread betrifft, umfasst.
  17. Verfahren nach Anspruch 16, wobei der Gerätetreiberbetrieb einem Erhalten und Abgeben von Kontrolle über den Thread entspricht.
  18. Computerlesbares Medium, das computerausführbare Befehle zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 17 enthält.
DE60304515T 2002-06-28 2003-04-30 Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität Expired - Lifetime DE60304515T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/187,043 US7296083B2 (en) 2002-06-28 2002-06-28 Method and system for measuring load and capacity on a variable capacity channel
US187043 2002-06-28

Publications (2)

Publication Number Publication Date
DE60304515D1 DE60304515D1 (de) 2006-05-24
DE60304515T2 true DE60304515T2 (de) 2006-10-05

Family

ID=29718031

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60304515T Expired - Lifetime DE60304515T2 (de) 2002-06-28 2003-04-30 Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität
DE60317837T Expired - Lifetime DE60317837T2 (de) 2002-06-28 2003-04-30 Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE60317837T Expired - Lifetime DE60317837T2 (de) 2002-06-28 2003-04-30 Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität

Country Status (4)

Country Link
US (1) US7296083B2 (de)
EP (2) EP1681813B1 (de)
AT (2) ATE323361T1 (de)
DE (2) DE60304515T2 (de)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL131509A (en) * 1999-08-19 2007-03-08 Israel State A method of growing tomatoes with a low water content
US9094226B2 (en) 2000-08-30 2015-07-28 Broadcom Corporation Home network system and method
US8724485B2 (en) 2000-08-30 2014-05-13 Broadcom Corporation Home network system and method
JP2004525533A (ja) 2000-08-30 2004-08-19 ティアリス, インコーポレイテッド 家庭用ネットワークシステムおよび方法
US8005055B2 (en) * 2003-07-23 2011-08-23 Interdigital Technology Corporation Method and apparatus for determining and managing congestion in a wireless communications system
US20070008884A1 (en) * 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
EP1705845B1 (de) * 2004-01-09 2012-08-08 NEC Corporation Lastverteilungsverfahren
US7606154B1 (en) * 2004-04-01 2009-10-20 Juniper Networks, Inc. Fair bandwidth allocation based on configurable service classes
US8254379B1 (en) * 2004-07-15 2012-08-28 Sprint Spectrum L.P. Method and system for application based compression profile selection
US7643503B2 (en) * 2004-07-30 2010-01-05 Sony Corporation System and method for dynamically determining retransmit buffer time
US7839844B2 (en) * 2004-07-30 2010-11-23 Sony Corporation System and method for dynamically determining retransmit buffer time
US8265091B2 (en) * 2004-08-18 2012-09-11 Avaya Inc. Traffic multiplexing using timestamping
IL164125A (en) * 2004-09-19 2014-06-30 Arthur Schaffer The visitor's garden has a scattering development in tomato fruit cuticle
US8949452B2 (en) * 2005-04-07 2015-02-03 Opanga Networks, Inc. System and method for progressive download with minimal play latency
US8150994B2 (en) * 2005-06-03 2012-04-03 Microsoft Corporation Providing flow control and moderation in a distributed message processing system
EP1761091B1 (de) * 2005-08-30 2012-11-07 LG Electronics, Inc. Verfahren zur Durchführung der Zugangssteuerung in einem zellularen Netzwerk
WO2007055399A1 (en) * 2005-11-10 2007-05-18 Matsushita Electric Industrial Co., Ltd. Method and apparatus for power line communication
US8238925B2 (en) * 2006-01-09 2012-08-07 Cisco Technology, Inc. Hybrid QoS access method for power save stations
US7961605B2 (en) * 2006-07-31 2011-06-14 International Business Machines Corporation System and method for enabling management of a plurality of messages in a communication network
US7697522B2 (en) * 2006-11-20 2010-04-13 Broadcom Corporation Systems and methods for aggregation of packets for transmission through a communications network
US7782850B2 (en) 2006-11-20 2010-08-24 Broadcom Corporation MAC to PHY interface apparatus and methods for transmission of packets through a communications network
US8090043B2 (en) 2006-11-20 2012-01-03 Broadcom Corporation Apparatus and methods for compensating for signal imbalance in a receiver
US7742495B2 (en) 2006-11-20 2010-06-22 Broadcom Corporation System and method for retransmitting packets over a network of communication channels
US7855963B2 (en) * 2006-12-21 2010-12-21 Aruba Networks, Inc. Capacity estimation and proportional sharing of varying capacity channels
US8345553B2 (en) 2007-05-31 2013-01-01 Broadcom Corporation Apparatus and methods for reduction of transmission delay in a communication network
EP2063547B1 (de) * 2007-11-23 2009-11-04 Alcatel, Lucent Adaptive Leistungssteuerung für EDCH
US7933557B1 (en) * 2007-12-05 2011-04-26 Cellco Partnership Methodology to analyze sector capacity in data-only mobile-wireless network
US20090165070A1 (en) * 2007-12-19 2009-06-25 Broadcom Corporation SYSTEMS AND METHODS FOR PROVIDING A MoCA COMPATABILITY STRATEGY
US8098770B2 (en) 2008-05-06 2012-01-17 Broadcom Corporation Unbiased signal-to-noise ratio estimation for receiver having channel estimation error
US9112717B2 (en) 2008-07-31 2015-08-18 Broadcom Corporation Systems and methods for providing a MoCA power management strategy
KR100990041B1 (ko) * 2008-09-23 2010-10-29 한국전자통신연구원 단말 대 단말 간의 채널 용량 예측 장치 및 방법
US8254413B2 (en) 2008-12-22 2012-08-28 Broadcom Corporation Systems and methods for physical layer (“PHY”) concatenation in a multimedia over coax alliance network
US8213309B2 (en) 2008-12-22 2012-07-03 Broadcom Corporation Systems and methods for reducing latency and reservation request overhead in a communications network
US8238227B2 (en) 2008-12-22 2012-08-07 Broadcom Corporation Systems and methods for providing a MoCA improved performance for short burst packets
GB2454606C (en) 2009-02-02 2017-01-25 Skype Ltd Method of transmitting data in a communication system
US8553547B2 (en) 2009-03-30 2013-10-08 Broadcom Corporation Systems and methods for retransmitting packets over a network of communication channels
US20100254278A1 (en) 2009-04-07 2010-10-07 Broadcom Corporation Assessment in an information network
US8769049B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
US8560639B2 (en) * 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
US8935366B2 (en) * 2009-04-24 2015-01-13 Microsoft Corporation Hybrid distributed and cloud backup architecture
US8769055B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
US8730798B2 (en) 2009-05-05 2014-05-20 Broadcom Corporation Transmitter channel throughput in an information network
US8867355B2 (en) 2009-07-14 2014-10-21 Broadcom Corporation MoCA multicast handling
EP2468067A4 (de) * 2009-08-19 2015-09-09 Opanga Networks Inc Optimierung von medieninhalten auf basis von durch eine benutzervorrichtung bestimmten ressourcenmetriken
US8942250B2 (en) 2009-10-07 2015-01-27 Broadcom Corporation Systems and methods for providing service (“SRV”) node selection
US8625622B2 (en) * 2009-12-25 2014-01-07 Cisco Technology, Inc. Increasing transmission rate to a remote device in response to attributing information loss as not being a result of network congestion
JP5611372B2 (ja) * 2010-02-12 2014-10-22 インターデイジタル パテント ホールディングス インコーポレイテッド アップリンクランダムアクセスチャネル伝送を最適化する方法および装置
US8611327B2 (en) 2010-02-22 2013-12-17 Broadcom Corporation Method and apparatus for policing a QoS flow in a MoCA 2.0 network
US8514860B2 (en) 2010-02-23 2013-08-20 Broadcom Corporation Systems and methods for implementing a high throughput mode for a MoCA device
US9197568B2 (en) * 2012-10-22 2015-11-24 Electronics And Telecommunications Research Institute Method for providing quality of service in software-defined networking based network and apparatus using the same
CN103197754B (zh) * 2013-04-01 2016-05-25 华为技术有限公司 一种降低芯片功耗的方法和装置
US10375195B2 (en) 2013-11-06 2019-08-06 Fastly, Inc. Content node selection using network performance profiles
JP6237397B2 (ja) * 2014-03-27 2017-11-29 富士通株式会社 制御装置、および、通信方法
US10028077B2 (en) * 2016-03-10 2018-07-17 Texas Instruments Incorporated Avoidance of collisions and connection loss in network device serving multiple networks
CN106878107B (zh) * 2017-02-28 2019-10-29 无锡研勤信息科技有限公司 基于Linux内核驱动的网络带宽测速方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0576122B1 (de) * 1992-04-27 2001-08-29 Nippon Telegraph And Telephone Corporation Paketnetzwerk und Verfahren zur Vermeidung von Überlastung eines solchen Netzwerks
ZA959722B (en) * 1994-12-19 1996-05-31 Alcatel Nv Traffic management and congestion control for packet-based networks
US5864678A (en) 1996-05-08 1999-01-26 Apple Computer, Inc. System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate
US5878224A (en) * 1996-05-24 1999-03-02 Bell Communications Research, Inc. System for preventing server overload by adaptively modifying gap interval that is used by source to limit number of transactions transmitted by source to server
US6009473A (en) * 1997-04-30 1999-12-28 Oracle Corporation Using callbacks to effectively manage resources
US5987493A (en) * 1997-12-05 1999-11-16 Insoft Inc. Method and apparatus determining the load on a server in a network
US6279001B1 (en) * 1998-05-29 2001-08-21 Webspective Software, Inc. Web service
JP3587352B2 (ja) * 1999-02-04 2004-11-10 富士通株式会社 ネットワーク通信性能測定方法及び装置並びにネットワーク通信性能測定プログラムを格納したコンピュータ読取り可能な記録媒体
US6975656B1 (en) 2000-03-29 2005-12-13 Microsoft Corporation Method and system for accurately calculating latency variation on an end-to-end path in a network
US7284047B2 (en) * 2001-11-08 2007-10-16 Microsoft Corporation System and method for controlling network demand via congestion pricing

Also Published As

Publication number Publication date
DE60317837D1 (de) 2008-01-10
US7296083B2 (en) 2007-11-13
ATE379908T1 (de) 2007-12-15
DE60304515D1 (de) 2006-05-24
EP1376951B1 (de) 2006-04-12
EP1681813A2 (de) 2006-07-19
DE60317837T2 (de) 2008-03-13
EP1681813A3 (de) 2006-10-18
EP1681813B1 (de) 2007-11-28
US20040003107A1 (en) 2004-01-01
EP1376951A1 (de) 2004-01-02
ATE323361T1 (de) 2006-04-15

Similar Documents

Publication Publication Date Title
DE60304515T2 (de) Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität
DE60213974T2 (de) Verfahren und vorrichtung zur prioritäts-basierten flusskontrolle in einer ethernet-architektur
DE69931215T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE19983404B4 (de) Verfahren und Vorrichtung zur Verwendung bei der Einstellung eines TCP Gleitfensters
DE60216887T2 (de) Verfahren zur dynamischen Übertragung von Datenpaketen unter Verwendung von RTP und RTCP Protokollen
DE60020413T2 (de) Verfahren und Einrichtung zur Bestimmung eines Zeit-Parameters
DE60203450T2 (de) Verfahren und Schalter zur Überlastregelung
DE69937537T2 (de) Überwachung von Internet unterschiedlichen Diensten für Transaktionsverwendungen
DE602004011347T2 (de) Ablaufsteuerung und Verfahren zur Planung von Datenübertragung in einem Kommunikationsnetz
DE69834763T2 (de) Verfahren zur Unterstützung von verbindungsindividuellen Warteschlangen für rückgekoppelte Verkehrssteuerung
DE69922180T2 (de) Verfahren und Vorrichtung zur Datenflusssteuerung
DE60020672T2 (de) Verfahren und Vorrichtung zur Wiederholung der Videodatenrahmen mit Prioritätsstufen
DE60117800T2 (de) Drahtloses sprach- und datenkommunikationsnetz und -verfahren
DE19982854B4 (de) Verfahren und Einrichtung zum Minimieren von Leerlaufbedingungen eines asynchronen Sendefifos und von Überlaufbedingungen eines Empfangsfifos
DE602004004706T2 (de) Verfahren und System zur Kommunikationssteuerung
DE69926477T2 (de) Verfahren und Vorrichtung zur dynamischen Steuerung der Bereitstellung von differenzierter Diensten
DE602004011453T2 (de) Sendegerät zur Steuerung der Datenübertragung
EP3120506B1 (de) Teilnehmerstation für ein bussystem und verfahren zur erhöhung der übertragungskapazität in einem bussystem
DE112004002544B4 (de) Verfahren, System und Programm zur Identifizierung von Datenüberlauf
DE10296700T5 (de) Flusssteuerungssystem zur Verringerung der Speicherpufferanforderungen und zur Herstellung einer Prioritätsbedienung zwischen Netzen
DE69921183T2 (de) Schnurloses teilnehmeranschluss-system und hierfür nützliches verfahren
DE60112680T2 (de) Netzwerkerweiterungsmodul
DE102009029498A1 (de) Verfahren zur Datenverkehrsgestaltung, Einrichtung und Drahtlos-Einrichtung
DE60210414T2 (de) Dateneinheit-behandlungsvorrichtung und verfahren zur kontrolle dafür
DE602005005468T2 (de) Umlaufzeitabschätzung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition