-
Querverweis
auf eine verwandte Anmeldung
-
Die
vorliegende Anmeldung beansprucht die Rechte der vorläufigen US-Anmeldung
mit der Seriennummer 60/125,009 vom 18. März 1999.
-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft allgemein Computernetzwerke und insbesondere
eine Verbesserung der Funktionalität im drahtlosen Netzwerkbetrieb.
-
Hintergrund
der Erfindung
-
Um
die größtmögliche Kompatibilität zwischen
Software- und Hardwarekomponenten in einem Computersystem vorzusehen,
definiert das Betriebssystem des Computers bestimmte Schnittstellen,
die durch Programmierer der Softwarekomponenten verwendet werden
können
und die durch Entwickler von Hardwarekomponenten vorzusehen und
zu unterstützen
sind. Unter Verwendung einer definierten Schnittstelle kann für die Softwarekomponente
eine Kompatibilität
mit allen die Schnittstelle unterstützenden Hardwarekomponenten
sichergestellt werden. Entsprechend kann für eine Hardwarekomponente mit
einer spezifischen Schnittstelle sichergestellt werden, dass Softwarekomponenten über die
Schnittstelle auf die durch die Hardwarekomponente vorgesehenen
Funktionen zugreifen können.
-
Die
bestehende Unterstützung
für den
drahtlosen Netzwerkbetrieb verwendet jedoch nicht die Schnittstellen,
die durch moderne Betriebssysteme wie etwa MICROSOFT WINDOWS 98
oder MICROSOFT WINDOWS NT von der Microsoft Corporation definiert
werden. Die Software und Hardware für drahtlose Netzwerke wie insbesondere
WLANs (Wireless Local Area Networks) verwendet allgemein Betriebssystem-Schnittstellen
wie etwa NDIS-Schnittstellen
(Network Device Interface Specification), die im Kontext eines drahtgebundenen
Netzwerks wie etwa des herkömmlichen
drahtgebundenen LAN (Local Area Network) entwickelt wurden. Hauptaufgabe
der vorliegenden Erfindung ist es deshalb, eine Standard-API für Netzwerkschnittstellenkarten
(NICs) zu definieren. Im Kontext drahtgebundener Netz werke entwickelte
Schnittstellen sehen jedoch nicht die erforderliche Kommunikation
zwischen der Software und der Hardware vor, um alle durch die drahtlose
Netzwerk-Hardware unterstützen
Funktionen zu ermöglichen.
Das Dokument „Extensions
to NDIS for wireless WANs",
PCCA Standard STD-201 gibt verschiedene Modifikationen der NDIS-Schnittstelle
an, um Statusinformationen von dem drahtlosen Netzwerk-Adapter zu
erhalten. Die aktuellen Schnittstellen sehen keine ausreichenden
Informationen zu Übertragungsstörungen vor,
in Bezug auf die sich die Softwarekomponenten für eine Übertragung über ein drahtloses Netzwerk
anpassen könnten.
Entsprechend sehen die aktuellen Schnittstellen keine Mechanismen
zur Bestimmung der Position eines Benutzers vor, weil ein derartiges
Konzept in einem drahtgebundenen Netzwerk keinen Sinn macht.
-
Zusammenfassung
der Erfindung
-
Dementsprechend
gibt die vorliegende Erfindung ein Verfahren für die Kommunikation zwischen
Hardwarekomponenten und Softwarekomponenten in einem drahtlosen
Netzwerk an, wobei die Softwarekomponenten darahtlos-spezifische
Funktionen der Hardwarekomponenten nutzen können.
-
Die
vorliegende Erfindung gibt auch ein Standardverfahren zum Definieren
des Umfangs von drahtlos-spezifischen Funktionen von Hardwarekomponenten
an.
-
Die
vorliegende Erfindung definiert Schnittstellen zwischen der Hardware
und der Software in einem drahtlosen Netzwerk, um eine drahtlos-spezifische
Funktionalität
in den folgenden Bereichen vorzusehen: statische Anfragen, dynamische
Anfragen und Setzen von Attributen. Statische Anfragen beziehen
sich auf Informationen, die sich nicht in Abhängigkeit von der drahtlosen
Verbindung ändern.
Zum Beispiel ist die durch die Hardware unterstützte maximale Rohbit-Rate eine
Funktion der Hardware und ändert
sich nicht in Abhängigkeit
von der durch die Hardware hergestellten drahtlosen Verbindung.
Eine Anfrage zur Bestimmung der unterstützten maximalen Rohbitrate
ist deshalb eine statische Anfrage. Eine dynamische Anfrage versucht
Informationen auf der Basis der durch die Hardware aufrechterhaltenen
aktuellen drahtlosen Verbindung zu erhalten. Zum Beispiel ist die
Kennung der Basisstation, mit der die drahtlose Hardware derzeit
kommuniziert, ein Wert, der durch eine dynamische Anfrage erhalten
werden kann. Über
das Setzen von Attributen können
die Softwarekomponenten Parameter mit den Hardwarekomponenten austauschen.
Das Erzwingen der Aufrechterhaltung einer Verbindung zwischen der
Hardware und einer spezifischen Basisstation währe ein Beispiel für das Setzen
eines Attributs.
-
Weitere
Merkmale und Vorteile der Erfindung werden aus der folgenden ausführlichen
Beschreibung von beispielhaften Ausführungsformen mit Bezug auf
die beigefügten
Figuren verdeutlicht.
-
Kurzbeschreibung
der Zeichnungen
-
Der
Erfindungsumfang wird durch die beigefügten Ansprüche definiert, wobei die Erfindung
mit ihren Aufgaben und Vorteilen am besten durch die folgende ausführliche
Beschreibung mit Bezug auf die beigefügten Zeichnungen verdeutlicht
wird.
-
1 ist ein Blockdiagramm,
das allgemein ein beispielhaftes Computersystem darstellt, in dem
die vorliegende Erfindung realisiert werden kann.
-
2 ist ein Blockdiagramm,
das allgemein die Ebenen eines beispielhaften Computernetzwerks zeigt,
in dem die vorliegende Erfindung realisiert werden kann.
-
3 ist ein Blockdiagramm,
das allgemein ein beispielhaftes Computernetzwerk zeigt, in dem
die vorliegende Erfindung betrieben wird.
-
Ausführliche
Beschreibung der Erfindung
-
In
den Zeichnungen werden identische Elemente durch gleiche Bezugszeichen
angegeben. Die Erfindung wird in einer geeigneten Computerumgebung
implementiert gezeigt. Die Erfindung wird in dem allgemeinen Kontext
von Computer-ausführbaren
Befehlen wie etwa Programmmodulen beschrieben, die durch einen PC
ausgeführt
werden. Allgemein umfassen die Programmmodule Routinen, Programme,
Objekte, Komponenten, Datenstrukturen usw., die bestimmte Aufgaben
ausführen
oder bestimmte abstrakte Datentypen implementieren. Darüber hinaus
sollte dem Fachmann deutlich sein, dass die Erfindung auch in anderen
Computersystemkonfigurationen realisiert werden kann, etwa in Handheld-Geräten, Mehrprozessorsystemen,
Mikroprozessor-basierten oder programmierbaren Elektronikgeräten, Netzwerk-PCs,
Minicomputern, Großrechnern und ähnlichem.
Die Erfindung kann auch in verteilten Computerumgebungen realisiert
werden, in denen Tasks durch entfernte Recheneinrichtungen ausgeführt werden,
die über
ein Kommunikationsnetzwerk miteinander verbunden sind. In einer
verteilten Computerumgebung können
Programmmodule in lokalen und entfernten Speichereinrichtungen gespeichert
sein.
-
Wie
in 1 gezeigt, umfasst
ein beispielhaftes System für
die Implementierung der Erfindung eine Universalcomputereinrichtung
in der Form eines PC 20 mit einer Verarbeitungseinheit 21,
einem Systemspeicher 22 und einem Systembus 23,
der die verschiedenen Systemkomponenten einschließlich des
Systemspeichers mit der Verarbeitungseinheit 21 verbindet.
Der Systembus 23 kann einen bestimmten Typ von Busstruktur
aufweisen, wobei er einen Speicherbus oder einen Speicher-Controller,
einen peripheren Bus und einen lokalen Bus mit verschiedenen Busarchitekturen
umfassen kann. Der Systemspeicher umfasst einen ROM 24 und
einen RAM 25. Ein BIOS 26, das Basisroutinen enthält, die
zum Austausch von Informationen zwischen den Elementen in dem PC 20 etwa
während
des Startens erforderlich sind, ist in dem ROM 24 gespeichert. Der
PC 20 umfasst weiterhin ein Festplattenlaufwerk 27 zum
Lesen und Schreiben auf einer Festplatte 60, ein Magnetplattenlaufwerk 28 zum
Lesen und Schreiben von einer entfernbaren Magnetplatte 29 und
ein optisches Laufwerk 30 zum Lesen und Schreiben auf einer
entfernbaren optischen Platte 31 wie etwa einer CD-ROM
oder einem anderen optischen Medium.
-
Das
Festplattenlaufwerk 27, das Magnetplattenlaufwerk 28 und
das optische Laufwerk 30 sind jeweils über eine Festplattenlaufwerks-Schnittstelle 32,
eine Magnetplattenlaufwerks-Schnittstelle 33 und
eine Optikplattenlaufwerks-Schnittstelle 34 mit dem Systembus 23 verbunden.
Die Laufwerke und ihre assoziierten Computer-lesbaren Medien sehen
einen nicht-flüchtigen
Speicher für
Computer-lesbare Befehle, Datenstrukturen, Programmmodule und andere
Daten für
den PC 20 vor. Während
die hier beschriebene beispielhafte Umgebung eine Festplatte 60,
eine entfernbare Magnetplatte 29 und eine entfernbare optische
Platte 31 verwendet, sollte dem Fachmann deutlich sein,
dass in der beispielhaften Betriebsumgebung auch andere Typen von Computer-lesbaren
Medien, auf denen Daten für
einen Computer zugreifbar gespeichert werden können, verwendet werden können, wie
etwa Magnetkassetten, Flash-Memory-Karten, DVDs, Bernoulli-Kassetten, RAMs,
ROMs und ähnliches.
-
Eine
Anzahl von Programmmodulen einschließlich eines Betriebssystems 35,
eines oder mehrerer Anwendungsprogramme 37 und Programmdaten 38 können auf
der Festplatte 60, der Magnetplatte 29, der optischen
Platte 32 bzw. in dem ROM 24 oder RAM 25 gespeichert
werden. Ein Benutzer kann Befehle und Informationen über Eingabegeräte wie etwa
eine Tastatur 40 und eine Zeigeeinrichtung 42 in
den PC 20 eingeben. Andere Eingabegeräte (nicht gezeigt) können ein
Mikrofon, ein Joystick, ein Game-Pad, eine Satellitenantenne, ein
Scanner oder ähnliches
sein. Diese und andere Eingabegeräte sind häufig über eine serielle Schnittstelle 46 des
Systembusses mit der Verarbeitungseinheit 21 verbunden,
können
aber auch über
andere Schnittstellen wie etwa eine parallele Schnittstelle, einen
Game-Port oder eine USB-Schnittstelle verbunden sein. Weiterhin
ist ein Monitor 37 oder ein anderes Anzeigegerät über eine
Schnittstelle wie etwa eine Grafikkarte 48 mit dem Systembus 23 verbunden.
Zusätzlich
zu dem Monitor umfassen PCs gewöhnlich
auch andere Ausgabeperipheriegeräte
wie etwa Lautsprecher und Drucker (nicht gezeigt).
-
Der
PC 20 kann in einer Netzwerkumgebung betrieben werden und über logische
Verbindungen mit einem oder mehreren entfernten Computern wie etwa
einem Remote-Computer 49 verbunden sein. Der Remote-Computer 49 kann
ein anderer PC, ein Server, ein Routen, ein Netzwerk-PC, ein Peer-Gerät oder ein anderer üblicher
Netzwerkknoten sein und umfasst gewöhnlich alle die oben für den PC
20 beschriebenen Elemente, obwohl in 1 nur
eine Speichereinrichtung 50 gezeigt ist. Die in 1 gezeigten logischen Verbindungen
umfassen ein WLAN (Wireless Local Area Network) 51 und
ein WAN (Wide Area Network) 52. Derartige Netzwerkumgebungen
sind in Büros,
unternehmensweiten Netzwerken, Intranets und im Internet üblich.
-
Bei
der Verwendung in einer WLAN-Netzwerkumgebung ist der PC 20 über eine
drahtlose Netzwerkschnittstelle oder einen Adapter 53 mit
dem drahtlosen Netzwerk 51 verbunden. Bei der Verwendung
in einer WAN-Netzwerkumgebung umfasst der PC 20 gewöhnlich ein
Modem (nicht gezeigt), ein Funkmodem 54 oder eine andere
Einrichtung zum Herstellen einer Kommunikation über das WAN 52. Das
Funkmodem 54, das intern oder extern vorgesehen sein kann,
ist über
die serielle Schnittstelle 46 mit dem Systembus 23 verbunden. In
einer Netzwerkumgebung können
die für
den PC 20 gezeigten Programmmodule oder Teile derselben
in der entfernten Speichereinrichtung gespeichert sein. Es ist zu
beachten, dass die gezeigten Netzwerkverbindungen beispielhaft sind
und dass andere Einrichtungen zum Herstellen einer Kommunikationsverbindung
zwischen den Computern verwendet werden können.
-
In
der folgenden Beschreibung wird die Erfindung mit Bezug auf Vorgänge und
symbolische Wiedergaben von Operationen beschrieben, die durch einen
oder mehrere Computer ausgeführt
werden, sofern keine näheren
Angaben gemacht werden. Dabei ist zu beachten, dass derartige Vorgänge und
Operationen, die gelegentlich als Computer-ausgeführte Operationen
bezeichnet werden, eine Manipulation von elektrischen Signalen,
die Daten in einer strukturierten Form wiedergeben, durch die Verarbeitungseinheit
des Computers sind. Diese Manipulation wandelt die Daten um oder
hält sie
an Speicherpositionen im Systemspeicher des Computers aufrecht,
wobei die Operationen des Computers auf eine dem Fachmann bekannte
Weise umkonfiguriert oder verändert
werden. Die Datenstrukturen, in denen die Daten aufrechterhalten
werden, sind physikalische Speicherorte im Speicher, die bestimmte
durch das Format der Daten definierte Eigenschaften aufweisen. Die
Erfindung wird mit Bezug auf den vorstehend beschriebenen Kontext
beschrieben, wobei dem Fachmann jedoch deutlich sein sollte, dass
die Erfindung nicht auf die nachfolgend beschriebenen Vorgänge und Operationen
beschränkt
ist, sondern auch in Hardware implementiert werden kann.
-
Gemäß der Erfindung
ist in 2 das OSI (Open
Systems Interconnection)-Modell mit sieben Schichten gezeigt. Dieses
Model ist ein Branchenstandard für
Computernetzwerke. Die Anwendungsschicht 100 bedient direkt
den Endbenutzer und unterstützt
die Softwareanwendungen, mit denen der Benutzer interagiert. Die
Präsentationsschicht 102 sieht
die Mechanismen vor, die von der Anwendungsschicht 100 auf
einem Computer zu der Anwendungsschicht auf einem anderen Computer
gesendeten Daten interpretiert. Die Sitzungsschicht 104 beschreibt
die Organisation der übertragenen
Daten. Die Transportschicht 106 dient als Fehlerkorrekturschicht,
um sicherzustellen, dass die Daten korrekt in der richtigen Abfolge
und ohne Verlust oder Verdoppelung übertragen werden. Die Netzwerkschicht 108 definiert
die Adressierung und die Weitergabe der Daten durch das Netzwerk.
Sie steuert den Betrieb des lokalen Sub-Netzwerks und entscheidet,
welchen physikalische Pfad die Daten unter den gegebenen Netzwerkbedingungen,
der gegebenen Dienstpriorität
und anderen Faktoren nehmen sollen. Die Datenverbindungsschicht 110 steuert
die Übertragung
von Blockdaten oder Paketen über
das Netzwerk und bietet eine grundlegende Fehlerkorrektur. Die Datenverbindungsschicht 110 ist
in zwei Subschichten unterteilt: die LLC-Subschicht (Logical Link
Control) und die MAC-Subschicht (Media Access Control). Die LLC-Subschicht
stellt eine fehlerfreie Übertragung
von Datenrahmen unter Aufrechterhaltung der logischen Links sicher,
wobei sie den Rahmenfluss, die Sequenzrahmen, die Bestätigungsrahmen
steuert und nicht bestätigte
Rahmen erneut sendet. Die MAC-Subschicht verwaltet den Zugriff auf
das Netzwerk, prüft
Rahmenfehler und führt
die Adresserkennung für
die empfangenen Rahmen durch. Protokolle mit einer LLC-Subschicht
benötigen
nur eine minimale Transportschicht 106. Die physikalische
Schicht 112 trägt
die Signale, die zu der Netzwerkverbindung 114 geführt werden.
Allgemein ist die physikalische Schicht 112 in der Hardware
implementiert, die den Computer 20 mit der Netzwerkverbindung 114 verbindet.
-
Eine
Netzwerkgeräteschnittstellen-Spezifikation
NDIS (Network Device Interface Specification) 116 kann
zwischen der Netzwerkschicht 108 und der Datenverbindungsschicht 110 residieren.
Die NDIS 116 kann eine Bibliothek von Schnittstellen zwischen
den Softwarekomponenten und den Hardwarekomponenten vorsehen. Die
NDIS 116 kann eine vollständig abstrahierte Umgebung
für die
Entwicklung von Netzwerkschnittstellenkarten-Treiber (NIC-Treiber)
definieren, indem sie Routinen für
jede externe Funktion vorsieht, die ein NIC-Treiber durchführen muss. Die NDIS 116 kann
Schnittstellen für
die Kommunikation zwischen einem NIC-Treiber und einem übergeordneten
Protokoll-Treiber sowie zwischen einem NIC-Treiber und der untergeordneten
NIC-Hardware vorsehen.
-
Allgemein
werden die Anwendungsschicht 100, die Präsentationsschicht 102,
die Sitzungsschicht 104, die Transportschicht 106 und
die Netzwerkschciht 108 in auf einem Computer laufenden
Softwarekomponenten implementiert. Die Datenverbindungsschicht 110 und
die physikalische Schicht 112 werden allgemein durch die
Hardwarekomponenten wie etwa die Netzwerkschnittstellenkarte implementiert.
Die NDIS-Bibliothek kann durch einen in der Transportschicht 110 implementierten
Software-Treiber verwendet werden, um mit einem in der Datenverbindungsschicht 110 implementierten
Netzwerkschnittstellenkarten-Treiber zu kommunizieren. Eine Transportschicht
implementiert allgemein einen Netzwerk-Protokollstack wie etwa den wohlbekannten
im Internet verwendeten TCP/IP-Stack (Transport Control Protocol
/ Internet Protocol). Wenn der Transportschicht-Software-Treiber
ein zu übertragendes
Datenpaket aufweist, kann er den NIC-Treiber über eine Schnittstelle von
der NDIS-Bibliothek
aufrufen und das zu übertragende
Paket weitergeben. Entsprechend kann der NIC-Treiber eine Schnittstelle
der NDIS 116 verwenden, um das Paket zu der Netzwerkschnittstellenkarte
für die Übertragung über das
Netzwerk zu geben. Die NDIS-Schnittstelle kann Betriebssystem-spezifische
Komponenten aufrufen, die die Übertragung
an der Netzwerkschnittstellenkarte durchführen. Die NDIS-Schnittstellen
können
auch durch den NIC-Treiber
verwendet werden, um mit dem Transportschicht-Software-Treiber zu
kommunizieren und ein empfangenes Datenpaket oder andere Informationen
weiterzugeben.
-
Die
vorliegende Erfindung sieht also zusätzliche Schnittstellen in der
NDIS-Bibliothek vor, um drahtlos-spezifische Funktionen vorzusehen.
Die drahtlos-spezifischen Funktionen umfassen Funktionen, die in
einer drahtlosen Umgebung nützlich
sind oder die in einer drahtlosen Umgebung eine unterschiedliche
Verwendung als in einer drahtgebundenen Umgebung aufweisen. Zum
Beispiel ist die Position eines Benutzers in einer drahtgebundenen
Umgebung kein nützlicher
Parameter, weil der Benutzer seine Position aufgrund der drahtgebundenen
Verbindung nicht ändert
kann. In einer drahtlosen Umgebung dagegen kann sich die Position
des Benutzers dynamisch ändern,
wenn sich der Benutzer bewegt und gleichzeitig mit dem Netzwerk
verbunden ist. Die aktuellen Schnittstellen in der NDIS 116 sehen
keine derartigen drahtlos-spezifische Funktionalität vor. Die
vorliegende Erfindung gibt deshalb eine drahtlosspezifische Funktionalität in den
folgenden drei Bereichen an: statische Anforderungen, dynamische
Anforderungen und Setzen von Attributen.
-
Die
vorliegende Erfindung sieht vor, dass Softwarekomponenten die unterstützte Funktionalität der Drahtlosnetzwerkverbindungs-Hardware
durch eine statische Anfrage bestimmt. Beispiele für eine statische Anfrage,
die weiter unten ausführlicher
beschrieben werden, sind Bestimmen in Bezug auf die unterstützte Rohbitrate,
die Verbindungsschicht- Bestätigungsunterstützung, die
anpassbare FEC-Unterstützung
(Forward Error Correction), die Unterstützung von Handoffs zwischen
Basisstationen, die Unterstützung
einer dynamischen Anpassung der Übertragungsleistung
und die Methode des Medienzugriffs.
-
In 3 ist ein beispielhaftes
WLAN 118 gezeigt. Das WLAN 118 ist auch mit einem
anderen Netzwerk 134 und einem drahtgebundenen Netzwerk 140 verbunden.
Ein Computer wie etwa ein tragbarer Computer 120 und ein
tragbarer Computer 130 können über eine WNIC (Wireless Network
Interface Card) 122 oder eine WNIC 132 mit dem
WLAN verbunden sein. Die WNIC 122 kann drahtlos mit einer
Basisstation 124, einer Basisstation 126 oder
einer Basisstation 128 verbunden sein. Außerdem kann
die WNIC 122 direkt mit einer anderen WNIC 132 kommunizieren.
Dem Fachmann sollte deutlich sein, dass die unterstützte maximale
Rohbitrate von dem Hardwareaufbau der WNIC 122 abhängig ist.
Die Bitrate wird gewöhnlich
in Bits pro Sekunde (Bit/s) angegeben. Eine statische Anfrage an
eine durch die WNIC 122 unterstützte Schnittstelle kann für die an
der Schnittstelle anfragende Softwarekomponente die unterstützte Rohbitrate
vorsehen.
-
Ein
Verfahren zum Vornehmen eines derartigen Schnittstellen-Aufrufs
erfolgt über
die Verwendung einer NDIS-Schnittstelle wie etwa die NdisRequest-Schnittstelle.
Zum Beispiel kann bei einem MICROSOFT WINDOWS NT-Betriebssystem
von der MICROSOFT Corporation die Struktur eines Aufrufs an die
NdisRequest-Schnittstelle wie folgt aussehen:
-
-
Die
NdisRequest-Schnittstelle sieht eine NdisBindingHandle-Eingabe und
eine NdisRequest-Eingabe vor.
Die NdisBindingHandle-Eingabe identifiziert die Ziel-NIC, d.h. in
diesem Fall die WNIC 122. Die NdisRequest-Eingabe ist ein
Zeiger auf eine Datenstruktur, die in einem Puffer gespeichert ist
und die durch die NdisRequest-Schnittstelle angeforderte Operation
spezifiziert. Eine derartige Datenstruktur wird weiter unten ausführlicher
beschrieben. Die NdisRequest-Schnittstelle sieht auch eine Status-Ausgabe
vor. Die Status-Ausgabe ist ein Zeiger auf eine Variable, die eine
durch die WNIC 122 in Reaktion auf eine Anforderung über die NdisRequest-Schnittstelle
ausgegebene Datenstruktur enthält.
-
Ein
Beispiel für
eine Datenstruktur, die als NdisRequest-Eingabe zu der NdisRequest-Schnittstelle gegeben
werden kann, ist die NDIS_REQUEST-Datenstruktur, die die folgende
Form aufweisen kann:
-
-
Es
ist deutlich, dass die NDIS_REQUEST-Datenstruktur aus einer Anzahl
von Elementen besteht. MacReserved[16] ist ein 16-Byte-Bereich,
der für
die Verwendung durch den Treiber der WNIC 122 reserviert ist,
InformationBuffer ist ein Zeiger auf den Puffer, der den angeforderten
Wert speichert, wenn die NWIC 122 ihn ausgibt, BytesWritten
ist ein Zeiger auf den Wert, der die Anzahl der durch die Anforderung
geschriebenen Bytes angibt, und Bytes-Needed ist ein Zeiger auf den Wert,
der die erwartete Anzahl der auszugebenden Bytes der Anforderung
angibt. Oid (Objekt IDentifier) spezifiziert die Objektkennung der
durch die Ndis-Request-Schnittstelle
angeforderten Operation. Die vorliegende Erfindung sieht eine Anzahl
von drahtlos-spezifischen Objektkennungen zum Anfordern von für eine drahtlose
NIC wie etwa die WNICs 122 und 132 spezifische
Daten vor. RequestType kann NdisRequest-QueryInformation, NdisRequestSetInformation
oder NdisRequestQueryStatistics sein.
-
Eine
OID der vorliegenden Erfindung, die in Verbindung mit der NdisRequest-Schnittstelle
verwendet werden kann, um die durch die WNIC 122 unterstützte Rohbitrate
anzufordern, kann OID_WL_GEN_RAW_BIT_RATE sein. Wie dem Fachmann
deutlich sein sollte, kann eine beliebige OID verwendet werden,
solange sie vordefiniert ist und sowohl die Hardwareals auch die
Softwarekomponenten dieselbe Funktion mit der OID assoziieren. Allgemein
ist eine OID mit einer bestimmten Struktur benannt. Zum Beispiel
weisen die OID-Namen bei einem MICROSOFT WINDOWS NT-Betriebssystem
von MICROSOFT Corporation die Form OID_WL_YYY_XXX auf, wobei „OID" angibt, dass es
sich um eine OID und nicht um eine Datenstruktur wie etwa die oben
beschriebene NDIS-REQUEST-Datenstruktur handelt, „WL" angibt, dass die
OID im Kontext eines drahtlosen LAN verwendet wird, „YYY" ein Satz von Zeichen
zur Spezifizierung des Typs der OID sein kann und „XXX" ein beschreibender
Name für
die OID sein kann.
-
Wie
oben erläutert,
ist die OID ein definierter Term, der für die WNIC 122 die
Befehle unterer Ebene zur Durchführung
der angeforderten Operation vorsieht. Deshalb wird die OID allgemein
durch den Hardware-Hersteller der WNIC 122 in der Form
eines Gerätetreibers
implementiert. Auf diese Weise kann ein Aufruf für eine spezifische OID durch
den Software-Entwickler
verwendet werden, um eine spezifische Funktion unabhängig von
der zugrundeliegenden Hardware durchzuführen. In dem dargestellten
Beispiel kann die OID OID_WL_GEN_RAW_BIT_RATE eine Anforderung auf
Hardwareebene zusammen mit einem Zeiger auf eine vordefinierte Datenstruktur
zu der WNIC 122 geben, um die unterstützte Rohbitrate zu erhalten.
Die Datenstruktur kann wie etwa die oben definierte NDIS_REQUEST-Datenstruktur
komplex sein, wobei aber auch eine einfachere Datenstruktur zu der
WNIC 122 gegeben werden kann, um die unterstützte Rohbitrate
zu erhalten. Eine derartige einfacher Datenstruktur kann die folgende
Form aufweisen:
-
-
Dabei
ist uRawBitRate eine Ganzzahl, die die durch WINC 122 unterstützte Rohbitrate
angeben kann.
-
Um
also die durch eine WNIC wie etwa die WNIC 122 unterstützte Rohbitrate
zu bestimmen, kann eine NDIS-Schnittstelle wie etwa NdisRequest
aufgerufen werden. Eine der Eingaben zu der NdisRequest-Schnittstelle
ist die NDIS_REQUEST-Datenstruktur, die die OID des Objekts, die
Puffergröße und die
Position spezifiziert, zu der die Rohbitrate durch die WNIC 116 ausgegeben
werden soll. Die durch die NDIS_REQUEST-Datenstruktur spezifizierte
OID wie etwa OID_WL_GEN_RAW_BIT_RATE gibt für den Treiber der WNIC 122 die Art
der durch die Softwarekomponente getätigten Anfrage, die Art und
die Struktur der gewünschten
Antwort und die Position für
die Ausgabe der Antwort an. Der Treiber der WNIC 122 platziert
dann an der durch die OID spezifizierten Position einen Wert, der
der unterstützten
Rohbitrate in Bits entspricht, in Reaktion auf die den Schnittstellenaufruf
tätigende
Softwarekomponente.
-
Ein
anderer Schnittstellenaufruf für
eine statische Anfrage, die durch eine Softwarekomponente getätigt werden
kann, ist eine Anfrage, die bestimmt, ob die WINC 122 Verbindungsschicht-Bestätigungen
unterstützt.
Eine Verbindungsschicht-Bestätigung
wird durch die Hardware gesendet und gibt an, dass das zuletzt übertragene
Informationspaket durch die Hardware empfangen wurde und dass die
Hardware zum Empfang eines weiteren Pakets bereit ist. Zum Beispiel
kann in 3 eine Kommunikation
zwischen der Basisstation 124 und der WNIC 122 eine
Verbindungsschicht-Bestätigung
verwenden, wenn die Basisstation 124 nach jedem Paket für die WNIC 122 wartet,
um mit einer Bestätigung
zu antworten. Weil Verbindungsschicht-Bestätigungen in Hardware implementiert
werden können,
sollte eine Softwarekomponente bestimmen können, ob die bestimmte WNIC 122 Verbindungsschicht-Bestätigungen
unterstützt.
-
Wie
weiter oben ausführlicher
beschrieben, sieht eine Methode zum Aufrufen einer derartigen Schnittstelle
die Verwendung einer OID vor. Eine beispielhafte OID in dem WINDOWS
NT-Betriebssystem kann die Form OID_WL_GEN_ACKS SUPPORTED aufweisen.
Ein beispielhafter Schnittstellenaufruf zu der Schnittstelle in
der NDIS-Schicht kann wie oben die NdisRequest-Schnittstelle verwenden,
wobei als Eingabe eine NDIS_REQUEST-Datenstruktur mit OID_WL_GEN_ACKS
SUPPORTED als OID vorgesehen ist. Im Fall einer Anfrage zu der Unterstützung einer
bestimmten Funktion durch die Hardwarekomponente wie etwa in dem
vorliegenden Beispiel erfolgt die Antwort häufig in der Form eines einfachen
Binärwerts,
der angibt, ob die Hardware die Funktion unterstützt oder nicht. In dem Fall
der oben beschriebenen Anfrage können
die BytesNeeded-Elemente der NDIS_REQUEST-Datenstruktur deshalb
kleiner als ein Byte sein, weil nur ein Bit für eine positive oder negative
Antwort erforderlich ist.
-
In
gleicher Weise können
andere statische Anfragen von einer Softwarekomponente an eine Hardwarekomponente
wie etwa die WNIC 122 vorgenommen werden. Eine andere statische
Anfrage, die in einem drahtlosen Kontext nützlich sein kann, ist eine
Anfrage, die bestimmt, ob die WNIC 122 eine anpassbare
FEC (Forward Error Correction) unterstützt. Dem Fachmann ist bekannt,
dass der Empfänger
mithilfe einer FEC Fehler in den empfangenen Paketen korrigieren
kann, wenn der Sender Fehlerkorrekturinformation in dem Paket codiert.
Je mehr Fehlerkorrekturinformation die Pakete enthalten, desto weniger
wahrscheinlicher ist es, dass der Empfänger ein Paket empfängt, das
derart beschädigt
ist, dass er es nicht korrigieren kann. Die zusätzliche Fehlerkorrekturinformation
erfordert jedoch größere Pakete, die
zusätzliche
Zeit für
die Übertragung über das
Netzwerk benötigen.
Weil die aktuelle Technologie in drahtlosen Netzwerken keinen entsprechenden Durchsatz
wie in einem drahtgebundenen Netzwerk vorsehen kann, können größere Pakete
in einem drahtlosen Netzwerk ein Problem darstellen. Eine anpassbare
FEC gestattet es der WNIC 122, Pakete mit wenig Fehlerkorrekturinformation
zu senden, wenn weniger Rauschen im Netzwerk gegeben ist, das Fehler
erzeugen könnte.
In diesem Fall ist ein schnellerer Netzwerkzugriff möglich. Wenn
jedoch mehr Rauschen im System gegeben ist, das etwa durch einen
Mikrowellenofen oder andere drahtlose Hardware wie etwa andere WNICs verursacht
wird, kann die WNIC den Grad der FEC steuernd erhöhen, was
einen langsameren Zugriff zur Folge hat, wobei aber die Zuverlässigkeit
der Verbindung aufrechterhalten wird. Eine Anfrage durch eine Softwarekomponente,
die bestimmen soll, ob eine anpassbare FEC unterstützt wird,
kann analog zu der Anfrage zur Bestimmung der Unterstützung von
Verbindungsschicht-Bestätigungen
durchgeführt
werden, wobei jedoch eine andere OID verwendet wird. Ein Beispiel
für eine
OID für
die Anfrage zur Bestimmung, ob eine anpassbare FEC unterstützt wird,
kann OID WL GEN CONTROL FEC SUPPORTED sein. Der Ausgabepuffer kann entweder
einen positiven oder einen negativen Wert in Reaktion auf die Anfrage
enthalten.
-
Bei
einer drahtlosen Verbindung kann sich ein Benutzer frei bewegen.
Dazu muss die WNIC 122 jedoch einen Handoff zwischen zwei
Basisstationen wie etwa den Basisstationen 124 und 128 in 3 unterstützen. Wenn
sich der Benutzer aus dem Umkreis der Basisstation 124 zu
dem Umkreis der Basisstation 128 nähert, wird das Signal der Basisstation 124 schwächer und
damit anfälliger
für Rauschen
und Fehler, während das
Signal der Basisstation 128 stärker wird. Wenn ein bestimmter
Schwellwert erreicht wird, ist es vorteilhafter für die WNIC 122,
wenn sie mit der Basisstation 128 und nicht mehr mit der
Basisstation 124 kommuniziert. Die Fähigkeit der WNIC 122,
die Kommunikation mit der Basisstation 124 zu beenden und
die Kommunikation mit der Basisstation 128 zu beginnen,
ohne den Benutzer von dem Netzwerk 118 zu trennen, wird
als Handoff bezeichnet. Eine statische Anfrage, die der oben beschriebenen
analog ist, aber eine andere OID wie zum Beispiel OID_WL_GEN_BASESTATION_HANDOFF_SUPPORTED
aufweist, kann verwendet werden, um zu bestimmen, ob die WNIC 122 Handoffs
zwischen Basisstationen zu unterstützt.
-
Eine
drahtlose Umgebung in Verbindung mit einem tragbaren Computer wie
etwa dem tragbaren Computer 120 ist sehr nützlich,
wobei jedoch die Akkunutzdauer ein beschränkender Faktor sein kann. Um
den Stromverbrauch der WNIC 122 zu reduzieren, haben Hardware-Hersteller
Karten entwickelt, die die Sendeleistung dynamisch anpassen können.
-
Wenn
sich also der tragbare Computer 120 in der Nähe der Basisstation 124 befindet,
kann die WNIC 122 ihre Sendeleistung reduzieren und trotzdem
eine hohe Verbindungsqualität
aufrechterhalten. Wenn sich der tragbare Computer von der Basisstation 124 entfernt,
kann die WNIC 122 ihre Sendeleistung erhöhen, um eine
relativ fehlerfreie und damit schnelle Verbindung aufrechtzuerhalten.
Eine Softwarekomponente kann eine statische Anfrage verwenden, um
zu bestimmen, ob die WNIC 122 eine dynamisch anpassbare
Sendeleistung unterstützt.
Eine derartige Anfrage könnte
eine OID wie etwa OID_WL_GEN_DYNAMIC_TX_POWER_SUPPORTED in der NDIS_REQUEST-Datenstruktur
wie weiter oben ausführlicher
beschrieben verwenden. Der Schnittstellenaufruf kann im Fall einer
Unterstützung
einen Wert ausgeben, der den Bereich der anpassbaren Sendeleistung
angibt, oder kann bei einer nicht gegebenen Unterstützung einen
Wert wie etwa 0 oder –1
ausgeben.
-
Für den drahtlosen
Netzwerkbetrieb wurden verschiedene Methoden des Medienzugriffs
entwickelt. Einer der besonderen Aspekte des Netzwerkbetriebs besteht
darin, dass eine Anzahl von Computern mit einer einzelnen Basisstation
oder direkt miteinander über
einen gemeinsam genutzten Kanal kommunizieren können. Um eine Situation zu
verhindern, in der zwei Computer gleichzeitig zu einer einzelnen
Basisstation senden, sodass eine oder beide Kommunikationen verloren
gehen, wurden verschiedene Methoden entwickelt, um die Empfangsbereitschaft
einer Basisstation zu erhalten. Derartige Methoden werden als Medienzugriff
bezeichnet. Eine derartige Methode ist RTS/CTS (Request To Send
/ Clear To Send). Bei RTS/CTS ist es erforderlich, dass die WNIC 122 die
Basisstation 124 oder eine andere WNIC 132 durch
das Senden einer RTS zum Empfang auffordert. Wenn die Basisstation
oder der Zielempfänger
mit einer CTS (Clear to Send) bestätigt, weiß die WNIC 122, dass
sie die einzige Karte ist, die zu diesem Zeitpunkt mit der Basisstation 124 kommuniziert.
Es sind weitere Methoden wie etwa DNSS (Direct Sequence Spread Spectrum),
CSMA (Carrier Sense Muliple Access und FHSS (Frequency Hopping Spread
Spectrum) aus dem Stand der Technik bekannt. Eine statische Anfrage
kann verwendet werden, um eine Schnittstelle aufzurufen, die den
durch die WNIC 122 unterstützten Typ der Medienzugriffsmethoden
ausgibt. Der Schnittstellenaufruf kann analog zu den oben beschriebenen
vorgenommen werden. Ein Beispiel für eine OID, die verwendet werden
kann, ist OID_WL_GEN_MEDIA_ACQ. Die Schnittstelle kann dann die
unterstützten
Typen der Medienzugriffsmethoden in den vorgesehenen Puffer ausgeben.
-
Außer statischen
Anfragen können
die Schnittstellen der NDIS 116 auch drahtlos-spezifische
dynamische Anfragen unterstützen.
Eine dynamische Anfrage kann im Gegensatz zu einer statischen Anfrage
Informationen zu den dynamischen Aspekten einer drahtlosen Verbindung
zu einem bestimmten Zeitpunkt erhalten. Während also die Methode des
verwendeten Medienzugriffs ein konstanter Parameter der WNIC 122 ist, ist
die Signalstärke
zu einem bestimmten Zeitpunkt ein sich kontinuierlich verändernder
Wert, sodass hier eine dynamische Anfrage angebracht ist. Andere
drahtlos-spezifische Werte zu der Basisstation, mit der die WNIC aktuell
kommuniziert, die ebenfalls über
einen Aufruf an die entsprechende Schnittstelle in der NDIS 116 erhalten
werden können,
sind: das Grundrauschen am Sender, die MAC-Adresse der Basisstation,
die Kennung der Basisstation und die Frequenz der Beacon-Signale.
Außerdem
können
für jedes
eingehende Paket die Signalstärke,
das Grundrauschen am Sender, das Grundrauschen am Empfänger, die
MAC-Adresse des Senders und die Verbindungsschicht-Neuübertragungszählung erhalten
werden. Für
jedes ausgehende Paket können
die Sendeleistung, die Neuübertragungszählung und
die Verzögerung
beim Medienzugriff erhalten werden. Es ist auch nützlich,
wenn die Softwarekomponenten auf laufende Durchschnittsstatistiken
zugreifen können,
die durch Hardwarekomponenten aufrechterhalten werden. Deshalb können Schnittstellenaufrufe
für den
durchschnittlichen Durchsatz, die Bitfehlerrate (BER), die Medienzugriffsverzögerung und
den Prozentsatz der empfangenen Beacons durch die NDIS 116 unterstützt werden.
Schließlich
können
die Softwarekomponenten spezifische Schnittstellen aufrufen, um
einen Rückruf
zu registrieren, sodass die Hardwarekomponenten die Software benachrichtigen,
wenn ein bestimmtes Ereignis auftritt oder ein Schwellwert erreicht
wird. Die Schnittstellen zum Registrieren von Rückrufen sehen das Registrieren
eines Rückrufs
vor, wenn ein Medienzugriff fehlschlägt, wenn eine Bestätigungsempfang
fehlschlägt
oder wenn die Hardware mit einer spezifischen Basisstation verbunden
ist.
-
Wie
weiter oben erläutert
wurde, wird der Benutzer in einem drahtlosen System zwischen Basisstationen übergeben,
wenn er sich bewegt. Derartige Basisstationen sind Verbindungspunkte.
Die Leistung des drahtlosen Netzwerks ist von dem aktuellen Verbindungspunkt
abhängig,
sodass es für
die Softwarekomponenten nützlich
ist, wenn diese auf Informationen zu dem aktuellen Verbindungspunkt
zugreifen können.
Ein Informationselement zu dem aktuellen Verbindungspunkt kann die
Signalstärke
der aktuellen Basisstation sein, die durch die WNIC 122 empfangen
wird. Dieses Informationselement wird auch als RSSI (Received Signal
Strength Indicator) bezeichnet. Wenn sich der tragbare Computer 120 in
dem WLAN 118 bewegt, kann er zwischen Basisstationen übergeben
werden. Wie weiter oben erläutert
wurde, wird der tragbare Computer 120, wenn er sich von
der Basisstation 124 zu der Basisstation 128 bewegt,
von der einen Basisstation zur anderen Basisstation übergeben.
Ein häufig
verwendetes Maß für die Bestimmung,
wann ein Handoff zwischen den Basisstationen vorgenommen werden
soll, ist der durch die WNIC 122 empfangene RSSI jeder
Basisstation.
-
Eine
dynamische Anfrage kann eine Schnittstelle der Hardware in der NDIS 116 aufrufen,
um die Hardware zur Ausgabe der angefragten Information aufzufordern. Ähnlich wie
bei einer statischen Anfrage kann eine OID verwendet werden, um
die NdisRequest-Schnittstelle aufzurufen. Zum Beispiel kann eine
OID für eine
dynamische Anfrage zur Bestimmung der Signalstärke OID_WL_GEN_BASESTATION
RSSI sein. Der Aufruf an die NdisRequest-Schnittstelle kann Parameter enthalten,
die der Hardware die Ausgabe des angefragten Werts im NDIS_REQUEST-Datenformat
gestatten. Ein solcher Parameter ist die OID: Wie bei einer statischen
Anfrage gibt die dynamische Anfrage die OID aus, die für den Treiber
der WNIC 122 die Art der durch die Softwarekomponente getätigten Anfrage
angibt. Der Treiber der WNIC 122 fügt dann an der durch die Anfrage
spezifizierten Position einen Wert in Entsprechung zu dem RSSI in
Dezibel-Milliwatt in Reaktion auf den Schnittstellen-Aufruf ein.
-
Ein
weiterer Parameter, der von dem Treiber der WNIC 122 über einen
Schnittstellen-Aufruf an die NDIS-Schicht erhalten werden kann,
ist das Grundrauschen an der Basisstation. Das Grundrauschen ist
der untere Grenzwert der Signalstärke von der Basisstation, über den
hinaus das Signal nicht mehr von Rauschen unterschieden werden kann.
Das Grundrauschen kann verwendet werden, um die Signalstärkeanforderungen in
der Betriebsumgebung zu bestimmen und um zu bestimmen, wann ein
Handoff zu einer anderen Basisstation durchgeführt werden soll. Wie zuvor
sieht eine Methode zum Erhalten der Grundrauschen von der Hardware
vor, dass eine OID verwendet wird und ein Schnittstellen-Aufruf durchgeführt wird.
Eine beispielhafte OID ist OID_WL_GEN_BASESTATION_NOISE_FLOOR. Analog
zu der oben beschriebenen Vorgehensweise kann ein Schnittstellen-Aufruf
zu der NDIS mit einer OID und Parametern zur Beschreibung des Puffers
ausgegeben werden, in den das Grundrauschen an der Basisstation
in Dezibel ausgegeben werden soll.
-
Jede
Basisstation wie etwa die Basisstation 124, die Basisstation 126 und
die Basisstation 128 in 3 weist
eine einzigartige MAC-Schichtadresse auf. Die MAC-Adresse wird allgemein
durch den Hersteller der Basisstation gesetzt und soll eine permanente,
eindeutige Kennung sein. Außerdem
gibt es eine Basisstations-Kennung, die Basisstationen in einem
Netzwerk eindeutig identifiziert und die Handoffs zwischen den Basisstationen
unterstützt.
Jede dieser Kennungen kann durch eine Softwarekomponente über eine
Schnittstelle in der NDIS 116 abgefragt werden. Eine OID
wie etwa OID_WL_GEN_CURRENT_ACCESS_POINT kann verwendet werden,
um die Basisstations-Kennung der Basisstation abzufragen. Entsprechend
kann eine OID wie etwa OID_WL_GEN_BASESTATION_PERMANENT_ADDRESS
verwendet werden, um die MAC-Adresse einer Basisstation abzufragen.
In jedem Fall kann ein Aufruf analog zu dem oben beschriebenen durchgeführt werden.
Die Hardware kann dann die Adresse in den im Aufruf spezifizierten
Puffer ausgeben.
-
In
einem drahtlosen Netzwerk 118 sendet jede der Basisstationen
ein Beacon-Signal. Das Beacon-Signal erlaubt es der WNIC 122,
die Signalstärke
der Basisstation zu messen, eine Synchronisation zu der Basisstation
herzustellen und Information zu den Netzwerk und der Basisstation
wie etwa die Last und die Anzahl der aktuell das Netzwerk oder die
bestimmte Basisstation nutzenden Benutzer zu erhalten. Die WNIC 122 in 3 kann also mit der Basisstation 124 kommunizieren,
wobei sie gleichzeitig die Beacon-Signale von den Basisstationen 126 und 128 feststellt.
Die Frequenzen der Beacon-Signale der Basisstationen können sich
unterscheiden, um eine Interferenz zwischen den Basisstationen zu
verhindern. Die in Hertz angegebene Frequenz dieser Beacon-Signale
kann durch die NDIS-Schicht angefragt werden, und der WNIC-Treffger
kann die Frequenz in Hertz ausgeben. Zum Beispiel kann eine OID
wie etwa OID_WL_GEN_BASESTATION_BEACON_FREQUENCY in einem Schnittstellen-Aufruf
analog zu der weiter oben beschriebenen Vorgehensweise verwendet
werden.
-
Jeder
der Elemente (RSSI, Grundrauschen, MAC- und Basisstations-Kennung,
Frequenz des Beacon-Signals) kann nicht nur für die Basisstation, mit der
der Computer aktuell kommuniziert, sondern auch für jede andere
Basisstation bestimmt werden, die durch die drahtlose Schnittstelle
erkannt wird. Wenn also die Hardware das Ergebnis der Abfrage ausgibt,
kann der Puffer entweder den Wert für den aktuellen Verbindungspunkt
oder eine Tabelle mit Werten für
alle Basisstationen innerhalb der Erfassungsbereichs enthalten. Die
beschriebenen Methoden unterstützen
beide Szenarios, da der Puffer zum Speichern der ausgegebenen Information
beliebig groß vorgesehen
werden kann. Eine Methode zum Bestimmen der feststellbaren anderen Basisstationen
sieht die Verwendung eines NDIS-Schnittstellen-Aufrufs in Verbindung mit einer OID
wie etwa OID_WL_NEIGHBORING_ACCESS_POINTS vor. Dabei kann eine Liste
der verfügbaren
Basisstationen ausgegeben werden.
-
Eine
dynamische Anfrage kann auch Informationen zu den einzelnen Paketen
bestimmen, die durch die Drahtlosnetzwerk-Hardware gesendet und
empfangen werden. Ein derartiges Informationselement ist die Signalstärke in Dezibel-Milliwatt
der empfangenen Pakete. Wie weiter oben erläutert, kann die durch die WNIC 122 am
Computer 120 festgestellte Signalstärke der Basisstation variieren,
wenn sich der Benutzer innerhalb des WLAN bewegt. Ein durch die
NDIS 116 unterstützter
Schnittstellen-Aufruf kann die Signalstärke jedes empfangenen Pakets
vorsehen. Eine Methode zum Tätigen
eines derartigen Aufrufs besteht darin, eine OID und Parameter analog
zu der weiter oben beschriebenen Vorgehensweise auszugeben. Es kann
zum Beispiel eine OID_OID_WL_GEN_RX_SIGNAL_STRENGTH verwendet werden.
Die Hardware kann dann die Signalstärke des zuletzt empfangenen
Paketes oder eine Tabelle mit den Signalstärken für eine Reihen von empfangenen
Paketen in den vorgesehen Puffer ausgeben.
-
Das
Grundrauschen an der Basisstation 129 und das Grundrauschen
an der WNIC 122 können
auch für
jedes empfangene Paket erhalten werden. Das Grundrauschen ist wie
zuvor erläutert
die Signalstärke,
bei der das Signal nicht mehr von dem Umgebungsrauschen zu unterscheiden
ist. Dem Fachmann sollte deutlich sein, dass das Grundrauschen an
der Basisstation 124 und an der WNIC 122 Informationen
zu der Verbindungsqualität
an einer bestimmten Position vorsehen können. Die NDIS 116 kann
Schnittstellen für
Softwarekomponenten vorsehen, um das Grundrauschen an beiden Positionen
für das
zuletzt empfangene Paket von der Hardwarekomponente anzufragen.
Wie zuvor kann die OID verwendet werden, um die Schnittstelle aufzurufen.
Eine OID wie etwa OID_WL_GEN_RX_PACKET_NOISE_FLOOR kann verwendet
werden, um das Grundrauschen an der Basisstation anzufragen, und
eine OID wie etwa OID_WL_GEN_TX_PACKET_NOISE_FLOOR kann verwendet
werden, um das Grundrauschen an der WNIC anzufragen. In jedem Fall
kann die Hardware entweder den Wert des Grundrauschens für das zuletzt
empfangene Paket oder eine Tabelle mit Werten des Grundrauschens
für eine
Reihe von empfangenen Paketen in Dezibel angeben.
-
Jedes
empfangene Paket enthält
die MAC-Adresse der Basisstation, die das Paket gesendet hat. Die wie
oben definierte MAC-Adresse kann verwendet werden, um zu bestimmen,
wann der Benutzer von einer Basisstation zu einer anderen übergeben
wurde. Weil die MAC-Adresse
eine Basisstation mit fixer Position identifiziert, kann sie verwendet
werden, um die ungefähre
Position des Benutzers im WLAN 118 anzugeben. Eine Softwarekomponente
kann eine durch die NDIS 116 vorgesehene Schnittstelle
aufrufen, um die MAC-Adresse des zuletzt empfangenen Pakets von
der Hardware zu erhalten. Ein Schnittstellen-Aufruf kann analog
zu der weiter oben beschriebenen Vorgehensweise unter Verwendung
einer OID wie etwa OID_WL_GEN_RX_PACKET_PERMANENT_ADDRESS getätigt werden,
um die MAC-Adresse
anzufragen. Die MAC-Adresse des zuletzt empfangenen Pakets oder
eine Tabelle von MAC-Adressen für
eine Reihe von zuletzt empfangenen Paketen kann dann in den durch
den Schnittstellen-Aufruf spezifizierten Puffer ausgegeben werden.
-
Eine
Methode zum Korrigieren von Übertragungsfehlern
verwendet wie oben genannt eine FEC. Eine alternative Methode verwendet
keine FEC, sondern sendet statt dessen einfach das Paket nochmals,
wenn ein Fehler festgestellt wurde. Eine derartige Methode weist
den Vorteil auf, dass der Durchsatz des Netzwerks in Situationen
erhöht
wird, in denen wenig Rauschen oder eine geringe Verzerrung gegeben
ist. Ein nützliches Maß für das Rauschen
im Netzwerk ist die Verbindungsschicht-Neuübertragungszählung bzw.
die Häufigkeit von
Aufforderungen von der WNIC 122 an die Basisstation 124,
um das Paket erneut zu senden. Unter Verwendung dieser Information
kann die Software anfordern, dass eine FEC verwendet wird oder nicht.
Wenn keine FEC verwendet wird, kann diese Information verwendet
werden, um zu bestimmen, ob die FEC in einer weiter unten zu beschreibenden
Weise verstärkt
werden sollte, damit die Übertragungseffizienz
in einer rauschenden Umgebung verbessert wird. Eine Schnittstelle
mit einer Zwischenschicht-Neuübertragungszählung für das zuletzt
empfangene Paket kann unter Verwendung einer OID wie etwa OID_WL_GEN_RX_PACKET_NUM_RETRANSMITS ähnlich wie
oben beschrieben aufgerufen werden. Der durch den Aufruf spezifizierte
Ausgabepuffer kann dann entweder die Anzahl der Neuübertragungen
für das zuletzt
empfangene Paket oder für
eine Reihe von zuletzt empfangenen Paketen enthalten.
-
Es
können
unterschiedliche Informationen für
Pakete erhalten werden, die durch die Hardwarekomponenten gesendet
werden. Weil ein drahtloses Netzwerk am nützlichsten ist, wenn es für die Verbindung
von tragbaren Computers 120 und 130 verwendet
wird, ist die Reduzierung des Stromverbrauchs von Bedeutung. Die
Sendeleistung der WNIC 122 kann also nützlich sein, um zu bestimmen,
wie lange der Akku noch hält
und wie viel Energie die WNIC 122 verbraucht. Die Softwarekomponente
kann die Sendeleistung des zuletzt versendeten Pakets abfragen,
indem es eine Schnittstelle in der NDIS 116 aufruft. Als
OID kann beim Abrufen einer derartigen Schnittstelle OID_WL_GEN_TX_PACKET_POWER
verwendet werden. Der WNIC-Treiber kann die Sendeleistung in Watt
des zuletzt empfangenen Pakets oder eine Tabelle mit Werten zu der
Sendeleistung für
eine Reihe von Paketen in den durch die Softwarekomponente spezifizierten
Puffer ausgeben.
-
Die
Neuübertragungszählung kann
wie die weiter oben erläuterte
Verbindungsschicht-Neuübertragungszählung eine
Angabe zu dem Rauschen in dem drahtlosen Netzwerk sein. Die Neuübertragungszählung entspricht
der Häufigkeit,
mit welcher der Computer des Benutzers ein Paket erneut übertragen
muss, weil das Paket bei der vorausgegangenen Übertragung nicht korrigierbare
Fehler enthalten hat. Dies ist analog zu der Verbindungsschicht-Neuübertragungszählung, die
der Häufigkeit
entspricht, mit welcher der Computer des Benutzers die Neuübertragung
eines Pakets anfordern musste. Die Neuübertragungszählung kann über eine Schnittstellenabfrage
erhalten werden, die wie oben beschrieben eine OID und zusätzliche
Parameter enthalten kann. Eine OID, die verwendet werden kann, ist
OID_WL_GEN_TX_PACKET_NUM_RETRANSMITS. Der Ausgabepuffer kann dann
eine Zahl, die die Häufigkeit
der erneuten Sendungen des letzten Pakets angibt, oder eine Tabelle
mit Zahlen zu der Häufigkeit
enthalten, mit der eine Reihe von Paketen erneut gesendet werden
mussten.
-
Der
Medienzugriff ist wie weiter oben erläutert ein Prozess, mit dem
ein drahtloses Netzwerk sicherstellt, dass nur eine WNIC zu einem
bestimmten Zeitpunkt mit einer Basisstation kommuniziert. Die Zeitdauer, die
die WNIC vor dem Erfassen des Mediums warten muss, kann eine Angabe
für die
Belastung des Netzwerks sein. Eine Softwarekomponente kann die Wartezeit
für das
ausgehende Paket unter Verwendung einer dynamischen Anfrage für den Zugriff
auf eine Schnittselle der NDIS 116 bestimmen. Wie oben
kann eine OID wie etwa OID_WL_GEN_TX_PACKET_MEDIUM_ACQUISITION_DELAY
bei dem Schnittstellen-Aufruf
verwendet werden. Die Verzögerung
beim Medienzugriff für
die Neuübertragung
des letzten Pakets oder eine Tabelle mit den Verzögerungen
für eine
Reihe von Paketen kann in einen beim Aufruf der Schnittstelle spezifizierten
Puffer ausgegeben werden.
-
Der
WNIC-Treiber kann nicht nur Information zu den einzelnen gesendeten
und empfangenen Paketen vorsehen, sondern kann auch kontinuierlich
aktualisierte „laufende" Durchschnitte aufrechterhalten
und zu einer Softwarekomponente ausgeben. Ein derartiger Durchschnitt
ist der Durchsatz der aktuellen Verbindung in Bits pro Sekunde.
Eine Softwarekomponente kann eine derartige Statistik abfragen,
indem sie die NdisRequest-Schnittstelle in der NDIS 116 abruft.
In einigen Fällen
können
die Anfragen für
laufende Durchschnitte durch die NDIS 116 selbst beantwortet
werden. Ein Beispiel für
eine in der NDIS_REQUEST-Datenstruktur für die NdisRequest-Schnittstelle
verwendete OID ist OID_WL_GEN_PERFORMANCE_STATISTICS_THROUGHPUT.
-
Wenn
eine FEC zu einem Paket hinzugefügt
wird, müssen
die empfangenen Bits nicht alle fehlerfrei sein, damit das Paket
korrekt gelesen werden kann. Der Vorteil der FEC ist bekanntlich,
dass das Paket die erforderliche Information enthält, um eine
bestimmte Anzahl von Fehlern zu korrigieren. Um einen Fehler in einem
binären
Kontext zu korrigieren, ist einfach eine Änderung des Bits von einem
Zustand zu dem anderen Zustand erforderlich. Die Bitfehlerrate (BER)
entspricht der Anzahl von zu korrigierenden Bits, geteilt durch
die Gesamtanzahl der empfangenen Bits. Eine hohe BER gibt eine Umgebung
mit viel Rauschen an. Die BER kann erhalten werden, indem eine Schnittstelle
in der NDIS-Schicht 116 aufgerufen wird. Es kann eine Methode
verwendet werden, die der oben ausführlich beschriebenen Methode
analog ist. Eine OID wie etwa OID_WL_GEN_PERFORMANCE-STATISTICS_BER kann
zusammen mit Parametern verwendet werden, die den Puffer angegeben,
in den die BER als Prozentsatz ausgegeben werden kann.
-
Die
Verzögerung
beim Medienzugriff ist wie oben erläutert eine Angabe zu der Belastung
des Systems. Die durchschnittliche Verzögerung beim Medienzugriff kann
nützlich
zur Voraussage von zukünftigen Verzögerungen
und als Angabe zu vergangenen Belastungen verwendet werden. Ein
durch die NDIS 116 unterstützter Schnittstellen-Aufruf
kann die durchschnittliche Verzögerung
zum Erfassen des Mediums erhalten Eine Methode zum Tätigen eines
derartigen Abrufs erfordert das Ausgeben einer OID und von Parametern
wie oben beschrieben. Eine OID, die in dem Aufruf verwendet werden
kann, ist OID_WL_GEN_PERFORMANCE_STATISTICS_MEDIUM_ACQUISITION_DELAY.
Der in dem Aufruf spezifizierte Puffer speichert dann die durchschnittliche
Medienzugriffsverzögerung
in Millisekunden.
-
Das
Beacon-Signal einer Basisstation kann wie oben beschrieben auch
als eine Angabe zu der Zuverlässigkeit
des Signalempfangs von dieser Basisstation dienen. Wenn zum Beispiel
die Distanz des tragbaren Computers 120 und der WNIC 122 in 3 zu der Basisstation 124 zunimmt,
werden die Beacon-Signale von der Basisstation 124 schwächer. Ein
sehr schwaches Signal kann überhaupt
nicht empfangen werden. Wenn also die Signale von der Basisstation 124 schwächer werden,
werden immer mehr Beacons nicht korrekt oder überhaupt nicht empfangen und
werden durch die WNIC 122 ignoriert. Eine Angabe zu der
Zuverlässigkeit
der Übertragung
von der Basisstation 124 ist der Prozentsatz der korrekt
empfangenen Beacon-Signale. Weil die WNIC 124 die Anzahl
der zu empfangenden Signale mit Bezug auf die Frequenz der Beacon-Signal-Übertragungen
bestimmen kann, kann sie den Prozentsatz der empfangenen Beacon-Signale
bestimmen. Eine Softwarekomponente kann diese Information erhalten,
indem sie die entsprechende Schnittstelle in der NDIS 116 wie
oben beschrieben aufruft. Eine OID, die beim Aufrufen der Schnittstelle
verwendet werden kann, ist OID_WL_GEN_PERFORMANCE_STATISTICS_BEACONS_RECEIVED.
Der Treiber gibt dann das Verhältnis
zwischen der Anzahl der empfangenen Beacons und der Anzahl zu empfangenden
Beacons über
eine Zeitperiode seit der letzten Tätigung dieses Aufrufs in den
spezifizierten Puffer aus. Alternativ hierzu kann eine analoge Schnittstelle
den Prozentsatz der verlorenen Beacons bestimmen.
-
Die
Kommunikation über
die NDIS 116 ist nicht auf Anfragen von Softwarekomponenten
begrenzt. Es kann vorteilhaft sein, einen Mechanismus vorzusehen, über den
die Hardwarekomponenten einen Rückruf
zu der Software registrieren können,
um die Software über
spezifizierte Ereignisse zu informieren. Ein Beispiel für ein Ereignis,
das durch den WNIC-Treiber
festgestellt und dann zu den Softwarekomponenten kommuniziert werden
kann, ist ein fehlgeschlagener Medienzugriff. In diesem Fall kann
die Software den Benutzer darüber benachrichtigen,
das die Übertragung
nicht abgeschlossen werden konnte, anstatt einfach darauf zu warten, dass
die Hardware eine Übertragung
durchführt,
die sie gar nicht abschließen
kann. Ein Rückruf
kann auch eine Schnittstelle in der NDIS 116 sein. In diesem
Fall wird die Schnittstelle durch den WNIC-Treiber aufgerufen, und
es ist keine Antwort von der Softwarekomponente erforderlich. Eine
Methode zum Aufrufen einer Rückruf-Schnitstelle
besteht in der Verwendung einer OID. Eine OID, die zum Durchführen eines
Rückrufs
verwendet werden kann, wenn der Medienzugriff fehlschlägt, ist: OID_WL_GEN_INDICATION_REQUEST_MEDIUM_NOT_ACQUIRED.
-
Ein
weiterer Fehlschlag, der über
einen Rückruf
an die Softwarekomponenten kommuniziert werden kann, ist ein nicht
erfolgender Empfang eines Bestätigungspakets
von der empfangenen Basisstation. Wie erläutert ist eine Bestätigung eine
Angabe dazu, dass das zuletzt gesendete Paket korrekt empfangen
wurde. Ohne eine Bestätigung
weiß der
Sender nicht, ob er das nächste
Paket senden soll oder das vorausgehende Paket erneut senden soll.
Allgemein wird das vorausgehende Paket nach einer bestimmten Zeitdauer
erneut gesendet. Wenn der Sender jedoch keine Bestätigungen
feststellt, wird die Übertragung
unterbrochen. Der Treiber der WNIC 122 kann die Softwarekomponenten über einen
Schnittstellen-Aufruf analog zu dem oben beschriebenen Rückruf hinsichtlich
nicht empfangener Bestätigungen
benachrichtigen. Eine OID, die zum Tätigen eines derartigen Aufrufs
verwendet werden kann, kann OID_WL_GEN_INDICATION_REQUEST_ACK_NOT_RECEIVED
sein. Der durch den Rückruf
spezifizierte Puffer enthält
dann die Nachricht von der Hardware- an die Softwareschicht, die
den nicht erfolgenden Empfang einer Bestätigung angibt.
-
Weil
die den Benutzern abgerechneten Gebühren je nach der Position des
Benutzers variieren können,
ist es vorteilhaft den Benutzer darüber zu benachrichtigen, wenn
er sich in seinem „Heimbereich" befindet. Deshalb
gestattet ein weiterer durch die NDIS 116 vorgesehener
Rückruf,
dass die WNIC 122 Softwarekomponenten benachrichtigt, wenn
die WNIC mit einer bestimmten Basisstation im „Heimbereich" oder in einem anderen
interessanten Bereich kommuniziert. Der Rückruf kann unter Verwendung
einer OID wie etwa OID_WL_GEN_INDICATION_REQUEST_ATTACH_POINT ähnlich wie
oben beschrieben getätigt
werden. Ein Rückruf,
der angibt, dass die Kommunikation mit der bestimmten Basisstation
beendet wurde, kann auf analoge Weise getätigt werden.
-
Zusätzlich zu
den statischen und dynamischen Aufrufen unterstützt die NDIS 116 auch
Aufrufe, die es den Softwarekomponenten gestatten, die Attribute
der Softwarekomponenten zu ändern
oder zu setzen. Zum Beispiel kann eine Softwarekomponente eine WNIC 122 anweisen,
nur mit der Basisstation 124 zu kommunizieren. Die Erzwingung
eines Verbin dungspunkts kann unter Verwendung eines durch die NDIS 116 unterstützten Schnittstellen-Aufrufs bewerkstelligt
werden. Eine Methode zum Durchführen
eines derartigen Schnittstellen-Aufrufs seiht das Senden einer OID
wie etwa OID_WL_SET_POINT_OF_ATTACHMENT zusammen mit Parametern
vor. Wie oben definiert, sieht die NDIS-REQUEST-Datenstruktur ein Format für QUERY_INFORMATION
und SET_INFORMATION vor. In dem vorliegenden Beispiel kann das für SET INFORMATION
definierte Format verwendet werden.
-
Die
WNIC 122 kann wie oben beschrieben abgefragt werden, um
zu bestimmen, ob sie eine anpassbare FEC unterstützt. Wenn eine anpassbare FEC
unterstützt
wird, kann sie über
eine entsprechende Schnittstelle in der NDIS 116 angepasst
und ein- und ausgeschaltet werden. Eine Methode zum Aufrufen einer
derartigen Schnittstelle sieht die Verwendung einer OID wie etwa
OID_WL_GEN_SUPPORTED_FED_LEVELS vor. Der Treiber der WNIC 122 kann
dann eine Bestätigung
des Befehls in den spezifizierten Puffer ausgeben.
-
Weil
der tragbare Computer 120 in 3 allgemein
durch einen Akku mit begrenzter Kapazität betrieben wird, ist das Stromsparen
von wesentlicher Bedeutung. Wie weiter oben erläutert wurde, kann die WNIC 122 Information
zu der Sendeleistung an die Softwarekomponenten geben. Es kann auch
eine Schnittstelle vorgesehen sein, um die Sendeleistung anzupassen
und den Akku effizienter zu nutzen. Zum Beispiel wird die WNIC 122 über einen
durch die NDIS 116 unterstützten Schnittstellen-Aufruf
angewiesen, in den Standby-Modus einzutreten, in dem sie weniger
Energie verbraucht, oder aus dem Standby-Modus zurückzukehren, wenn eine Kommunikation
mit dem WLAN 118 erforderlich ist. Eine Methode zum Zugreifen
auf diese Schnittstellen sieht einen Aufruf unter Verwendung einer
OID wie etwa OID_WL_GEN_STANDBY vor. Der Treiber der WNIC 122 kann
dann eine Bestätigung
des Befehls in den durch den Schnittstellen-Aufruf spezifizierten
Puffer ausgeben.
-
Drahtlose
Netzwerk-Standards sind derart aufgebaut, dass sie den Betrieb einer
WNIC 122 mit verschiedenen Datenraten gestatten. Allgemein
wird die Rate, mit der eine WNIC 122 betrieben wird, durch
die Anzahl der Paketfehler und die Distanz zu der Basisstation 124 bestimmt.
Wenn sich die WNIC in der Nähe der
Basisstation befindet und nur wenige Pakete mit Fehlern empfangen
werden, ist es vorteilhaft, die WNIC mit einer höheren Datenrate zu betreiben.
Wenn dagegen die Distanz zwischen der Basisstation 124 und
der WNIC 122 groß ist
oder die Anzahl der Paketfehler hoch ist, ist es besser, wenn die
WNIC 122 mit einer niedrigeren Datenrate betrieben wird.
Es ist deshalb nützlich,
wenn die Verbindungseigenschaften mithilfe von OIDs wie etwa den
oben beschriebenen überwacht
werden können
und wenn die WNIC 122 angewiesen werden kann, mit einer
bestimmten Datenrate betrieben zu werden. Eine Methode zum Setzen
der Datenrate der WNIC 122 besteht in dem Aufrufen einer
OID wie etwa der OID_WL_SEN_SET_DATA_RATE und dem Ausgeben eines
Parameters, der die Datenrate in Megabits pro Sekunde enthält, an die
WNIC 122.
-
Die
Drahtlosnetzwerk-Hardware kann konfiguriert sein, um in entweder
einem Infrastruktur-Modus,
in dem die WNIC 122 mit einer Basisstation 124 verbunden
ist und alle Pakete zu der Basisstation 124 sendet oder
von dieser empfängt,
oder in einem Ad-Hoc-Modus betrieben zu werden, in dem die WNIC 122 nicht
mit einer Basisstation 124 verbunden ist, aber Pakete direkte
zu einer anderen WNIC 132 senden und empfangen kann. Wenn
zwei oder mehr WNICs nahe beieinander sind und miteinander kommunizieren
möchten,
ist es nützlich,
diese für
eine Ad-Hoc-Verbindung zu konfigurieren, damit Pakete direkt zwischen
denselben gesendet und empfangen werden können und nicht über die
Basisstation 124 laufen müssen. Dadurch kann die Bandbreite
optimiert werden, die zum Übertragen
von Paketen zwischen den zwei WNICs erforderlich ist, sodass die Übertragungszeit
für diese
Pakete reduziert wird. Eine Methode zum Setzen der WNIC in den Ad-Hoc-Verbindungsmodus
oder in den Infrastruktur-Verbindungsmodus besteht in dem Aufruf
einer OID wie etwa OID_WL_GEN_SET_NETWORK_MODE und dem Ausgaben
eines Parameters, der die WNIC 122 zur Selbstkonfiguration
im Infrastruktur-Modus oder zur Selbstkonfiguration im Ad-Hoc-Netzwerk
anweist, an die WNIC 122.
-
Aus
dem vorstehenden sollte deutlich geworden sein, dass eine Anzahl
von drahtlos-spezifischen Schnittstellen in der NDIS vorgesehen
wurden. Die Schnittstellen können
in einer statischen Anfrage, einer dynamischen Anfrage oder einer
Setz-Anfrage verwendet werden. Außerdem können Rückrufe verwendet werden, um
Information von den Hardwarekomponenten zu den Softwarekomponenten
zu übertragen.
-
Alle
hier zitierten Referenzen einschließlich von Patenten, Patentanmeldungen
und Veröffentlichungen
sind hier vollständig
unter Bezugnahme eingeschlossen.
-
Angesichts
der vielen möglichen
Ausführungsformen,
zu denen die Prinzipien der vorliegenden Erfindung umgesetzt werden
können,
ist zu beachten, dass die hier mit Bezug auf die Zeichnungen beschriebene Ausführungsform
lediglich beispielhaft ist und den Erfindungsumfang nicht einschränkt. Dem
Fachmann sollte zum Beispiel deutlich sein, dass die in der dargestellten
Ausführungsform
durch Software realisierten Elemente auch in Hardware vorgesehen
sein könnten
und umgekehrt. Außerdem
kann die dargestellte Ausführungsform
in ihrer Anordnung und im Detail modifiziert werden, ohne dass deshalb
der Erfindungsumfang verlassen wird. Der Erfindungsumfang wird durch
die beigefügten
Ansprüche
und deren Äquivalente
definiert.