-
Die
vorliegende Erfindung bezieht sich allgemein auf paketbasierte Kommunikationssysteme
und insbesondere auf ein System und ein Verfahren zum Verwalten
der Kommunikation zwischen Computergeräten.
-
Es
existieren Internet-Protokolle, welche die paketbasierte Kommunikation
zwischen einem Host-Computergerät
und einem Client-Computergerät
bestimmen. Beispielsweise werden in einem auf IPsec (Internet Protocol
Security) basierenden VPN (Virtual Private Network) Pakete im Zusammenhang mit
dem Austausch von Schlüsseln,
die zum Verschlüsseln
und Authentifizieren von Daten verwendet werden, und Pakete im Zusammenhang
mit dem Austausch der eigentlichen Daten typischerweise zwischen
dem Host- und dem Client-Computergerät kommuniziert. Beim Herstellen
einer Verbindung zwischen dem Host- und dem Client-Computergerät werden
im Allgemeinen die mit der Verbindung assoziierten Schlüssel zwischen
den Geräten
ausgetauscht, bevor die Daten ausgetauscht werden.
-
In
einigen Situationen kann es vorkommen, dass innerhalb eines gegebenen
Zeitraums mehrere auf einem Client-Computergerät befindliche Komponenten (z.
B. Anwendungen oder Anwendungs-Threads) mit einem oder mehreren Host-Computergeräten kommunizieren
müssen.
Um eine solche Kommunikation zu ermöglichen, müssen mehrere Verbindungen zwischen
dem Host- und dem Client-Computergerät über denselben
Port oder über unterschiedliche
Ports hergestellt werden. Um die Verbindungen ordnungsgemäß zu verwalten,
müssen
die einzelnen mit den unterschiedlichen Komponenten assoziierten
Kommunikationen separat gehalten werden, da sie sich potenziell
in unterschiedlichen Stadien (z. B. eines Schlüssel- oder Datenaustauschs)
befinden.
-
Außerdem haben
die zwischen dem Host- und dem Client-Computergerät hergestellten
Verbindungen im Allgemeinen beschränkte Lebensdauern. Das führt typischerweise
zu einer periodischen Änderung
der mit jeder Verbindung assoziierten Schlüssel. Daher müssen, um
eine ordnungsgemäße Verwaltung
der Verbindungen zu ermöglichen,
die durch unterschiedliche Sicherheitsparameter (z. B. unterschiedliche
Schlüssel)
geschützten
Kommunikationen über
einen oder mehrere Ports auch separat gehalten werden.
-
Die
Art und Weise, wie die Verwaltung der Kommunikationen über mehrere
Verbindungen zwischen einem Client-Computergerät und einem oder mehreren Host-Computergeräten in einem
VPN erfolgen soll, wird jedoch durch die aktuell allgemein verwendeten
Protokolle wie IPsec nicht explizit angesprochen.
-
US2004/0081202
offenbart ein hardware-integriertes System im unteren Speicherbereich,
das es Verbraucher- und Industriegeräten, die herkömmlich nicht
für Verbindungen
zu entfernten Computergeräten
eingerichtet sind, ermöglicht,
mit solchen Geräten
verbunden zu werden. Das System umfasst eine Basiseinheit, die mehrere
gleichzeitige Verbindungen zwischen Client-Einheiten der Basiseinheit und
einem oder mehreren entfernten Computergeräten unterstützt. Die Basiseinheit führt eine
NAT-Funktion (Network Address Translation) durch, um die von dem
einen oder mehreren entfernten Computergeräten empfangenen Datenpakete
zu den jeweils richtigen Client-Geräten zu pushen.
-
US5497339 offenbart ein
System zum Erleichtern der Kommunikation von Paketen zwischen mehreren
Komponenten von einer oder mehreren Anwendungen, die sich auf einem
ersten Computergerät
befinden, und mindestens einem zweiten Computergerät, wobei
das System umfasst: einen Verbindungsmanager, der angepasst ist,
um Pakete von dem mindestens einen zweiten Computergerät zu empfangen;
und einen Paket-Cache, der mit dem Verbindungsmanager gekoppelt
ist, zum Speichern der durch den Verbindungsmanager empfangenen Pakete;
wobei der Verbindungsmanager so eingerichtet ist, dass er ein von
einem zweiten Computergerät
empfangenes Paket zur Speicherung zum Paket-Cache überträgt.
-
Hintergrund
-
Die
Ausführungsformen
der Erfindung richten sich allgemein auf ein System und ein Verfahren zum
Verwalten der Kommunikation zwischen Computergeräten, die paketbasierte Kommunikation über mehrere
Verbindungen zwischen einem Client-Computergerät und einem oder mehreren Host-Computergeräten ermöglichen.
-
In
einem umfassenden Aspekt der Erfindung wird ein System zum Erleichtern
der Kommunikation von Paketen zwischen mehreren Komponenten von einer
oder mehreren Anwendungen, die sich auf einem ersten Computergerät befinden,
und mindestens einem zweiten Computergerät bereitgestellt, das System
umfassend: einen Verbindungsmanager der angepasst ist, um Pakete
von dem mindestens einen zweiten Computergerät zu empfangen; und einen Paket-Cache,
der mit dem Verbindungsmanager gekoppelt ist, zum Speichern der
durch den Verbindungsmanager empfangenen Pakete; wobei der Verbindungsmanager
so eingerichtet ist, dass er ein von einem zweiten Computergerät empfangenes
Paket zur Speicherung zum Paket-Cache überträgt, und das System dadurch
gekennzeichnet ist, dass der Verbindungsmanager außerdem so
eingerichtet ist, dass er jede der mehreren Komponenten der einen oder
mehreren Anwendungen über
den Empfang des Pakets informiert; wobei das Paket durch eine informierte
Komponente aus dem Paket-Cache abgerufen werden kann und eine Verifizierung
erfolgt, dass das Paket für
die Kommunikation zu der informierten Komponente vorgesehen ist;
und wobei jede informierte Komponente so eingerichtet ist, dass
sie ermittelt, ob sie den Empfang eines Pakets von dem mindestens
einen zweiten Computergerät
erwartet; und dass der Abruf und die Verifizierung, dass das Paket
für die
Kommunikation zur informierten Komponente vorgesehen ist, nur dann
erfolgt, wenn die informierte Komponente ermittelt, dass sie den
Empfang eines Pakets von dem mindestens einen zweiten Computergerät erwartet.
-
In
einem anderen umfassenden Aspekt der Erfindung wird ein Verfahren
zum Erleichtern der Kommunikation von Paketen zwischen mehreren Komponenten
von einer oder mehreren Anwendungen, die sich auf einem ersten Computergerät befinden,
und mindestens einem zweiten Computergerät bereitgestellt, das Verfahren
umfassend die folgenden Schritte: das Empfangen eines Pakets von
einem zweiten Computergerät;
und das Übertragen des
empfangenen Pakets zur Speicherung zu einem Paket-Cache; wobei das
Verfahren dadurch gekennzeichnet ist, dass es des Weiteren die folgenden Schritte
umfasst: das Informieren von jeder der mehreren Komponenten der
einen oder mehreren Anwendungen über
den Empfang des empfangenen Pakets; für eine informierte Komponente
beim Empfang der informierten Komponente das Abrufen des empfangenen
Pakets von dem Paket-Cache;
das Verifizieren, ob das empfangene Paket für die Kommunikation zu der
informierten Komponente vorgesehen ist; und das Ermitteln, ob die
informierte Komponente erwartet, ein Paket von dem mindestens einem
zweiten Computergerät
zu empfangen; wobei die Schritte des Abrufens und des Verifizierens
nur dann ausgeführt
werden, wenn die informierte Komponente erwartet, ein Paket von
dem mindestens einen zweiten Computergerät zu empfangen.
-
Die
vorliegende Erfindung definiert des Weiteren eine Softwareanwendung
gemäß Anspruch
12 und ein Mobilgerät
gemäß Anspruch
13.
-
Kurze Beschreibung der Zeichnungen
-
Zum
besseren Verständnis
von Ausführungsformen
der Erfindung und um deutlicher zeigen zu können, wie es in der Praxis
umgesetzt werden kann, wird nun Bezug auf die beiliegenden Zeichnungen
genommen, die lediglich exemplarisch zu verstehen sind und die folgende
Bedeutung haben:
-
1 ist
ein Blockdiagramm eines Mobilgeräts
in einer exemplarischen Ausführungsform;
-
2 ist
ein Blockdiagramm einer Kommunikationssubsystem-Komponente des Mobilgeräts aus 1;
-
3 ist
ein Blockdiagramm eines Knotens eines Drahtlosnetzes;
-
4 ist
ein Blockdiagramm einer exemplarischen Topologie in einem Virtual
Private Network;
-
5 ist
ein Blockdiagramm eines Mobilgeräts,
das Komponenten umfasst, welche in einer Ausführungsform der Erfindung die
paketbasierte Kommunikation mit einem Host-System ermöglichen;
-
6 ist
ein Flussdiagramm zur Darstellung der Schritte in einem Verfahren
zum Erleichtern der Kommunikation von Paketen zwischen einer oder mehreren
Anwendungen, die sich auf einem ersten Computergerät befinden,
und mindestens einem zweiten Computergerät gemäß einer Ausführungsform
der Erfindung.
-
Beschreibung von bevorzugten
Ausführungsformen
-
Einige
Ausführungsformen
der Erfindung verwenden eine Mobilstation. Eine Mobilstation ist ein
Zweiwege-Kommunikationsgerät
mit erweiterten Datenkommunikationsfähigkeiten, welches über die Fähigkeit
verfügt,
mit anderen Computersystemen zu kommunizieren, und wird hier allgemein
als ein Mobilgerät
bezeichnet. Ein Mobilgerät
kann auch die Fähigkeit
zur Sprachkommunikation einschließen. In Abhängigkeit von der durch ein
Mobilgerät
bereitgestellten Funktionalität
kann es als Daten- und Nachrichtenübertragungsgerät, als Zweiwege-Pager, als Mobiltelefon
mit Möglichkeit
zur Daten- und Nachrichtenübertragung,
als drahtloses Internet-Gerät oder
als Datenkommunikationsgerät
(mit und ohne Telefoniefunktionen) bezeichnet werden. Ein Mobilgerät kommuniziert über ein
Netz von Senderempfängerstationen
mit anderen Geräten.
-
Um
dem Leser ein besseres Verständnis
der Struktur eines Mobilgeräts
zu vermitteln und wie es mit anderen Geräten kommuniziert, wird auf 1 bis 3 Bezug
genommen.
-
Zunächst unter
Bezug auf 1 ist in einem Blockdiagramm
ein Mobilgerät
in einer exemplarischen Ausführungsform
allgemein als 100 bezeichnet. Das Mobilgerät 100 umfasst
eine Reihe von Komponenten, von denen der Mikroprozessor 102 die
steuernde Komponente ist. Der Mikroprozessor 102 steuert
den Gesamtbetrieb des Mobilgeräts 100. Die
Kommunikationsfunktionen, einschließlich der Daten- und Sprachkommunikation,
werden durch das Kommunikations-Subsystem 104 ausgeführt. Das
Kommunikations-Subsystem 104 empfängt Nachrichten von und sendet
Nachrichten zu einem Drahtlosnetz 200. In dieser exemplarischen
Implementierung des Mobilgeräts 100 ist
das Kommunikations-Subsystem 104 gemäß den Standards Global System
for Mobile Communication (GSM) und General Packet Radio Services
(GPRS) konfiguriert. Das GSM/GPRS-Drahtlosnetz wird weltweit verwendet, und
es wird erwartet, dass diese Standards letztendlich durch die Standards
Enhanced Data GSM Environment (EDGE) und Universal Mobile Telecommunications
Service (UMTS) abgelöst
werden. Es werden noch immer neue Standards definiert, es wird jedoch erwartet,
dass diese Ähnlichkeiten
zum hier beschriebenen Netzverhalten aufweisen werden, und dem Fachmann
auf dem Gebiet der Technik wird auch einleuchten, dass die Erfindung
zur Verwendung aller anderen geeigneten Standards vorgesehen ist,
die in Zukunft entwickelt werden. Die Drahtlosverbindung, die das
Kommunikations-Subsystem 104 mit dem Netz 200 verbindet,
wird durch einen oder mehrere verschiedene Hochfrequenzkanäle (HF)
repräsentiert,
die entsprechend definierten Protokollen arbeiten, die für die GSM/GPRS-Kommunikation
spezifiziert sind. Bei neueren Netzprotokollen sind diese Kanäle in der
Lage, sowohl leitungsvermittelte Sprachkommunikation als auch paketvermittelte Datenkommunikation
zu unterstützen.
-
Obwohl
das dem Mobilgerät 100 in
einer exemplarischen Implementierung des Mobilgeräts 100 zugeordnete
Drahtlosnetz ein GSM/GPRS-Drahtlosnetz ist, können in abweichenden Implementierungen
auch andere Drahtlosnetze dem Mobilgerät 100 zugeordnet sein.
Zu anderen Typen von Drahtlosnetzen, die verwendet werden können, zählen beispielsweise
datenzentrische Drahtlosnetze, sprachzentrische Drahtlosnetze und
Doppelmodusnetze, die über dieselben
physischen Basisstationen sowohl Sprachkommunikation als auch Datenkommunikation
unterstützen
können.
Zu den kombinierten Doppelmodusnetzen gehören unter anderem Code Division
Multiple Access (CDMA) oder CDMA2000-Netze, GSM/GPRS-Netze (wie
oben erwähnt),
und zukünftige
Netze der dritten Generation (3G) wie EDGE und UMTS. Zu einigen älteren Beispielen
für datenzentrische
Netze gehören
das MobitexTM-Funknetz und das DataTACTM-Funknetz. Zu einigen älteren Beispielen für sprachzentrische
Netze gehören PSC-Netze
(Personal Communications Systems) wie GSM- und TDMA-Systeme (Time
Division Multiple Access).
-
Der
Mikroprozessor 102 interagiert auch mit zusätzlichen
Subsystemen wie dem Random Access Memory (RAM) 106, dem
Flash-Speicher 108, dem Display 110, dem zusätzlichen
Eingabe-/Ausgabe-Subsystem (E/A) 112, dem seriellen Port 114,
der Tastatur 116, dem Lautsprecher 118, dem Mikrofon 120,
einem Nahbereichskommunikations-Subsystem 122 und sonstigen
Geräten 124.
-
Einige
der Subsysteme des Mobilgeräts 100 führen kommunikationsbezogene
Funktionen aus, während
andere Subsysteme für "residente" oder gerätespezifische
Funktionen verantwortlich sind. Beispielsweise können das Display 110 und
die Tastatur 116 sowohl für kommunikationsbezogene Funktionen
wie das Eingeben einer Textnachricht zur Übertragung über das Netz 200 als
auch für
geräteresidente
Funktionen wie ein Kalender oder eine Aufgabenliste verwendet werden.
Die vom Mikroprozessor 102 verwendete Betriebssystemsoftware
ist typischerweise in einem Dauerspeicher wie einem Flash-Speicher 108 gespeichert,
bei dem es sich alternativ auch um einen Festwertspeicher (Read-Only Memory,
ROM) oder um ein ähnliches
Speicherelement (nicht dargestellt) handeln kann. Dem Fachmann auf
dem Gebiet der Technik wird einleuchten, dass das Betriebssystem, spezifische
Geräteanwendungen
oder Teile davon temporär
in einen flüchtigen Speicher
wie den RAM 106 geladen werden können.
-
Das
Mobilgerät 100 kann
nach Abschluss der erforderlichen Netzregistrierungs- oder -aktivierungsprozeduren
Kommunikationssignale über
das Netz 200 senden und empfangen. Der Netzzugriff wird
einem Teilnehmer oder Benutzer eines Mobilgeräts 100 zugeordnet.
Um einen Teilnehmer zu identifizieren, benötigt das Mobilgerät 100 ein
Teilnehmeridentitätsmodul
(Subscriber Identity Module) bzw. eine "SIM"-Karte 126,
die in eine SIM-Schnittstelle 128 eingelegt wird, damit
die Kommunikation mit einem Netz erfolgen kann. Die SIM-Karte 126 entspricht
vom Typ her einer konventionellen "SmartCard", die – unter anderem – zur Identifizierung
eines Teilnehmers des Mobilgeräts 100 und
zur Personalisierung des Mobilgeräts 100 verwendet wird.
Ohne die SIM-Karte 126 ist das Mobilgerät 100 nicht voll funktionsfähig für die Kommunikation
mit dem Netz 200. Durch Einlegen der SIM-Karte 126 in
die SIM-Schnittstelle 128 erhält ein Teilnehmer Zugriff auf
alle abonnierten Dienste. Zu diesen Diensten könnten zählen: Webbrowsing und Nachrichtenübertragung
wie z. B. per E-Mail, Sprachnachrichten, Short Message Service (SMS)
und Multimedia Messaging Services (MMS). Zu weiterentwickelten Diensten
können
gehören:
Point of Sale-, Außendienst-
und Sales Force-Automatisierung.
Die SIM-Karte 126 enthält
einen Prozessor und einen Speicher zum Speichern von Informationen.
Sobald die SIM-Karte 126 in die SIM-Schnittstelle 128 eingelegt
wird, ist sie mit dem Mikroprozessor 102 gekoppelt. Um
den Teilnehmer zu identifizieren, enthält die SIM-Karte 126 einige
Benutzerparameter wie z. B. eine International Mobile Subscriber
Identity (IMSI). Ein Vorteil in der Verwendung der SIM-Karte 126 besteht
darin, dass ein Teilnehmer nicht notwendigerweise an ein einziges
physisches Mobilgerät
gebunden ist. Die SIM-Karte 126 kann
auch zusätzliche
Informationen für
ein Mobilgerät
speichern, beispielsweise Informationen zu Terminen (Kalenderdaten) oder
Informationen zu den zuletzt erfolgten Anrufen.
-
Das
Mobilgerät 100 ist
ein batteriebetriebenes Gerät
und enthält
eine Batterieschnittstelle 132 zur Aufnahme von einer oder
mehreren wiederaufladbaren Batterien 130. Die Batterieschnittstelle 132 ist
an einen Regler (nicht dargestellt) gekoppelt, der die Batterie 130 bei
der Bereitstellung des Stroms V+ an das Mobilgerät 100 unterstützt. Obwohl
derzeitige Technologien eine Batterie verwenden, können auch zukünftige Technologien
wie Mikrobrennstoffzellen den Strom für das Mobilgerät 100 liefern.
-
Der
Mikroprozessor 102 ermöglicht
zusätzlich
zu seinen Betriebssystemfunktionen die Ausführung von Softwareanwendungen
auf dem Mobilgerät 100.
Eine Reihe von Anwendungen zur Steuerung der grundlegenden Gerätefunktionen,
einschließlich Anwendungen
zur Daten- und Sprachkommunikation, sind normalerweise bereits herstellerseitig
auf dem Mobilgerät 100 installiert.
Eine weitere Anwendung, die auf das Mobilgerät 100 geladen werden könnte, ist
ein Personal Information Manager (PIM), Ein PIM verfügt über Funktionen
zum Organisieren und Verwalten von Datenobjekten, die für einen
Teilnehmer von Interesse sind, was beispielsweise unter anderem
E-Mails, Kalenderereignisse, Sprachnachrichten, Termine und Aufgabenobjekte
sein können. Eine
PIM-Anwendung verfügt über die
Fähigkeit
zum Senden und Empfangen von Datenobjekten über das Drahtlosnetz 200.
Die PIM-Datenobjekte können
mit den entsprechenden Datenobjekten des Mobilgerätteilnehmers,
die auf einem Host-Computersystem gespeichert und/oder zugeordnet
sind, über
das Drahtlosnetz 200 nahtlos integriert, synchronisiert und
aktualisiert werden. Diese Funktionalität erstellt hinsichtlich dieser
Objekte ein gespiegeltes Abbild des Host-Computers auf dem Mobilgerät 100.
Das kann insbesondere vorteilhaft sein, wenn es sich beim Host-Computersystem
um das Bürocomputersystem
des Mobilgerätteilnehmers
handelt.
-
Weitere
Anwendungen können
auch über das
Netz 200, das zusätzliche
E/A-Subsystem 112, den
seriellen Port 114, das Nahbereichskommunikations-Subsystem 122 oder
jedes andere geeignete Subsystem 124 auf das Mobilgerät 100 geladen
werden. Diese Flexibilität
bei der Anwendungsinstallation erhöht die Funktionalität des Mobilgeräts 100 und kann
erweiterte gerätespezifische
Funktionen, kommunikationsbezogene Funktionen oder beides ermöglichen.
Beispielsweise können über sichere Kommunikationsanwendungen
E-Commerce-Funktionen und andere derartige Finanztransaktionen mit dem
Mobilgerät 100 ermöglicht werden.
-
Der
serielle Port 114 ermöglicht
es einem Teilnehmer, über
ein externes Gerät
oder eine Softwareanwendung Voreinstellungen festzulegen, und erweitert
die Fähigkeiten
des Mobilgeräts 100 durch das
Bereitstellen von Informations- oder Softwaredownloads zum Mobilgerät 100,
die nicht über
ein drahtloses Kommunikationsnetz erfolgen. Der alternative Downloadpfad
kann beispielsweise verwendet werden, um über eine direkte und damit
vertrauenswürdige
Verbindung einen Verschlüsselungsschlüssel auf
das Mobilgerät 100 zu
laden, um eine sichere Gerätekommunikation
zu ermöglichen.
-
Das
Nahbereichskommunikations-Subsystem 122 ermöglicht die
Kommunikation zwischen dem Mobilgerät 100 und verschiedenen
Systemen oder Geräten,
ohne dazu das Netz 200 zu verwenden. Beispielsweise kann
das Subsystem 122 ein Infrarotgerät sowie die zugehörigen Schaltungen
und Komponenten für
die Nahbereichskommunikation enthalten. Beispiele für die Nahbereichskommunikation
sind die von der Infrared Data Association (IrDA) entwickelten Standards,
Bluetooth sowie die Gruppe der von der IEEE entwickelten 802.11-Standards.
-
Bei
der Verwendung wird ein empfangenes Signal wie z. B. eine Textnachricht,
eine E-Mail-Nachricht oder ein Webseitendownload durch das Kommunikations-Subsystem 104 verarbeitet
und in den Mikroprozessor 102 eingespeist. Der Mikroprozessor 102 verarbeitet
dann das empfangene Signal zur Ausgabe an das Display 110 oder
alternativ an das zusätzlichen
E/A-Subsystem 112. Ein Teilnehmer kann auch Datenobjekte
wie beispielsweise E-Mail-Nachrichten erstellen, wozu die Tastatur 116 in
Verbindung mit dem Display 110 und möglicherweise das zusätzliche
E/A-Subsystem 112 verwendet wird. Das zusätzliche
Subsystem 112 kann Geräte
wie die folgenden enthalten: einen Touchscreen, eine Maus, einen
Trackball, einen Infrarot-Fingerabdruckleser oder ein Drehrad mit
dynamischer Tastendruckfunktion. Bei der Tastatur 116 handelt
es sich um eine alphanumerische Tastatur und/oder um ein für Telefone
typisches Ziffernfeld. Ein erstelltes Objekt kann durch das Kommunikations-Subsystem 104 über das
Netz 200 übertragen
werden.
-
Für die Sprachkommunikation
ist der allgemeine Betrieb des Mobilgeräts 100 im Wesentlichen gleich,
außer
dass die empfangenen Signale zum Lautsprecher 118 ausgegeben
würden,
und die Signale für
die Übertragung
würden
durch das Mikrofon 120 erzeugt werden. Alternative Sprach-
oder Audio-E/A-Subsysteme, wie z. B. ein Aufzeichnungssystem für Sprachnachrichten,
können
auch auf dem Mobilgerät 100 implementiert
sein. Obwohl die Sprach- oder Audiosignalausgabe in erster Linie durch
den Lautsprecher 118 erreicht wird, kann auch das Display 110 verwendet
werden, um zusätzliche Informationen
wie z. B. die Identität
des Anrufers, die Dauer eines Sprachanrufs oder andere auf Sprachanrufe
bezogene Informationen bereitzustellen.
-
Nunmehr
Bezug nehmend auf 2 wird ein Blockdiagramm einer
Kommunikations-Subsystemkomponente 104 aus 1 gezeigt.
Das Kommunikations-Subsystem 104 umfasst einen Empfänger 150,
einen Sender 152, einen oder mehrere eingebettete oder
interne Antennenelemente 154, 156, Lokaloszillatoren
(LOs) 158 und ein Verarbeitungsmodul wie beispielsweise
einen digitalen Signalprozessor (DSP) 160.
-
Der
konkrete Aufbau des Kommunikations-Subsystems 104 hängt vom
Netz 200 ab, in dem das Mobilgerät 200 arbeiten soll,
daher sollte es einleuchten, dass der in 2 gezeigte
Aufbau nur als Beispiel dient. Die von der Antenne 154 über das Netz 200 empfangenen
Signale werden in den Empfänger 150 eingespeist,
der solche üblichen
Empfängerfunktionen
wie die Signalverstärkung,
die Frequenzabwärtsmischung,
die Filterung, die Kanalauswahl und die Analog-Digital-(A/D)-Wandlung durchführen kann.
Die A/D-Wandlung eines empfangenen Signals ermöglicht die Durchführung komplexerer Kommunikationsfunktionen
wie Demodulation und Decodierung im DSP 160. In einer ähnlichen
Weise werden die zu übertragenden
Signale durch den DSP 160 verarbeitet, einschließlich Modulation
und Codierung. Diese vom DSP verarbeiteten Signale werden in den
Sender 152 eingespeist, wo die Digital-Analog-(D/A)-Wandlung,
die Frequenzaufwärtsmischung,
die Filterung, die Verstärkung
und die Übertragung über das
Netz 200 mit der Antenne 156 erfolgt. Der DSP 160 verarbeitet
nicht nur die Kommunikationssignale, sondern übernimmt auch die Empfänger- und
Sendersteuerung. Beispielsweise können die im Empfänger 150 und
im Sender 152 auf die Kommunikationssignale angewendeten
Verstärkungsgrade
adaptiv durch automatische Verstärkungsregelungsalgorithmen
gesteuert werden, die im DSP 160 implementiert sind.
-
Die
drahtlose Verbindung zwischen dem Mobilgerät 100 und einem Netz 200 kann
einen oder mehrere unterschiedliche Kanäle einschließen, typischerweise
unterschiedliche HF-Kanäle
sowie die zugehörigen
Protokolle, die zwischen dem Mobilgerät 100 und dem Netz 200 verwendet
werden. Ein HF-Kanal ist eine beschränkte Ressource, mit der sparsam
umgegangen werden muss, was sich typischerweise aus den Einschränkungen
in der Gesamtbandbreite und aus der beschränkten Batterieleistung des
Mobilgeräts 100 ergibt.
-
Wenn
das Mobilgerät 100 sich
im vollen Betrieb befindet, wird der Sender 152 typischerweise nur
dann getastet oder eingeschaltet, wenn er an das Netz 200 sendet,
und ist ansonsten abgeschaltet, um sparsam mit Ressourcen umzugehen.
In gleicher Weise wird der Empfänger 150 periodisch
abgeschaltet, um Strom zu sparen, bis er benötigt wird, um Signale oder
Informationen (wenn überhaupt) während ausgewiesener
Zeitabschnitte zu empfangen.
-
Nunmehr
Bezug nehmend auf 3 wird ein Blockdiagramm eines
Knotens eines Drahtlosnetzes als 202 gezeigt. In der Praxis
umfasst das Netz 200 einen oder mehrere Knoten 202.
Das Mobilgerät 100 kommuniziert
mit einem Knoten 202 innerhalb des Drahtlosnetzes 200.
In der exemplarischen Implementierung von 3 ist der
Knoten 202 gemäß den Technologien
General Packet Radio Service (GPRS) und Global Systems for Mobile
(GSM) konfiguriert. Der Knoten 202 enthält eine Basisstationssteuerungseinheit
(Base Station Controller – BSC) 204 mit einer
zugehörigen
Turmstation 206, eine Paketsteuerungseinheit (Packet Control
Unit – PCU) 208,
die zur GPRS-Unterstützung
in GSM hinzugefügt
wurde, ein mobile Vermittlungsstelle (Mobile Switching Center – MSC) 210,
ein Heimatregister (Home Location Register – HLR) 212, ein Besucherregister
(Visitor Location Register – VLR) 214,
einen Serving GPRS Support Node (SGSN) 216, einen Gateway
GPRS Support Node (GGSN) 218 und ein Dynamic Host Configuration
Protocol (DHCP) 220. Die Liste der Komponenten ist nicht
als erschöpfende
Liste jedes Knotens 202 innerhalb eines GSM/GPRS-Netzes
gemeint, sondern vielmehr als eine Liste der Komponenten, die im
Allgemeinen in der Kommunikation über das Netz 200 verwendet
werden.
-
In
einem GSM-Netz ist MSC 210 mit BSC 204 und mit
einem ortsfesten Netz wie einem Public Switched Telephone Network
(PSTN) 222 gekoppelt, um die Anforderungen der Leitungsvermittlung
zu erfüllen.
Die Verbindung über
PCU 208, SGSN 216 und GGSN 218 zum öffentlichen
oder privaten Netz (Internet) 224 bildet den Datenpfad
für GPRS-taugliche Mobilgeräte. In einem
um GPRS-Funktionen erweiterten GSM-Netz enthält BSC 204 auch eine
Packet Control Unit (PCU) 208, die eine Verbindung zu SGSN 216 hat,
um die Segmentierung und die Funkkanalzuweisung zu steuern und um
den Paketvermittlungsanforderungen gerecht zu werden. Um die Mobilgerätposition
und die Verfügbarkeit
für sowohl leitungsvermittelte
als auch paketvermittelte Verwaltung zu verfolgen, wird HLR 212 gemein sam
von MSC 210 und SGSN 216 verwendet. Der Zugriff
auf VLR 214 wird durch MSC 210 gesteuert.
-
Station 206 ist
eine feststehende Sende-Empfangsstation. Station 206 und
BSC 204 bilden gemeinsam die feststehende Sende-Empfangsausrüstung. Die
feststehende Sende-Empfangsausrüstung
sorgt für
die drahtlose Netzabdeckung für
ein bestimmtes Abdeckungsgebiet, das im Allgemeinen als eine "Zelle" bezeichnet wird.
Die feststehende Sende-Empfangsausrüstung überträgt Kommunikationssignale zu
den und empfängt
Kommunikationssignale von den Mobilgeräten innerhalb dieser Zelle über die
Station 206. Die feststehende Sende-Empfangsausrüstung führt normalerweise solche
Funktionen durch wie die Modulation und möglicherweise die Codierung
und/oder Verschlüsselung
von Signalen, die zum Mobilgerät übertragen werden
sollen, und zwar entsprechend bestimmten, üblicherweise vorgegebenen Kommunikationsprotokollen
und -parametern, unter der Steuerung ihrer Steuerungseinheit. Die
feststehende Sende-Empfangsausrüstung übernimmt
in gleicher Weise die Demodulation und möglicherweise die Decodierung und
Entschlüsselung,
falls erforderlich, aller Kommunikationssignale, die innerhalb seiner
Zelle vom Mobilgerät 100 empfangen
werden. Die Kommunikationsprotokolle und – parameter können zwischen
unterschiedlichen Knoten voneinander abweichen. Zum Beispiel kann
ein Knoten ein abweichendes Modulationsschema verwenden und mit
anderen Frequenzen arbeiten als andere Knoten.
-
Für alle innerhalb
eines bestimmten Netzes registrierten Mobilgeräte 100 sind permanente
Konfigurationsdaten wie z. B. ein Benutzerprofil im HLR 212 gespeichert.
HLR 212 enthält
auch Positionsinformationen für
jedes registrierte Mobilgerät
und kann abgefragt werden, um die aktuelle Position eines Mobilgeräts zu ermitteln.
MSC 210 ist verantwortlich für eine Gruppe von Positionsbereichen
und speichert die Daten der Mobilgeräte, die sich aktuell in seinem
Verantwortlichkeitsbereich befinden, im VLR 214. Des Weiteren
enthält
VLR 214 auch Informationen zu den Mobilgeräten, die
andere Netze besuchen. Die Informationen im VLR 214 schließen für einen
schnelleren Zugriff einen Teil der permanenten Mobilgerätedaten
ein, die vom HLR 212 zum VLR 214 übertragen
wurden. Durch die Verschiebung zusätzlicher Informationen von
einem entfernten HLR-Knoten 212 zum VLR 214 kann
das Ausmaß an Verkehr
zwischen diesen Knoten reduziert werden, sodass Sprach- und Datendienste
mit kürzeren
Reaktionszeiten bereitgestellt werden können und gleichzeitig weniger
Computerressourcen verwendet werden müssen.
-
SGSN 216 und
GGSN 218 sind Elemente, die innerhalb von GSM zur GPRS-Unterstützung hinzugefügt wurden,
konkret für
die Unterstützung
paketvermittelter Daten. SGSN 216 und MSC210 haben innerhalb
des Drahtlosnetzes 200 ähnliche
Verantwortlichkeiten, indem sie die Position jedes Mobilgeräts 100 verfolgen.
SGSN 216 führt
außerdem
Sicherheitsfunktionen und die Zugriffssteuerung für den Datenverkehr
auf dem Netz 200 durch. GGSN 218 stellt Verbindungen
für den
netzübergreifenden Betrieb
mit externen paketvermittelten Netzen bereit und stellt die Verbindung
zu einem oder mehreren SGSNs 216 über ein Internet Protocol (IP)
Backbone-Netz her, das innerhalb des Netzes 200 betrieben
wird. Während
des normalen Betriebs muss ein bestimmtes Mobilgerät 100 einen "GPRS-Attach" durchführen, um
eine IP-Adresse zu erhalten und um auf Datendienste zuzugreifen.
Diese Anforderung ist in leitungsvermittelten Sprachkanälen nicht
vorhanden, da ISDN-Adressen (Integrated Services Digital Network)
für die
Leitweglenkung ankommender und abgehender Anrufe verwendet werden.
Gegenwärtig verwenden
alle GPRS-fähigen
Netze private, dynamisch zugewiesene IP-Adressen, wodurch ein an das
GGSN 218 angeschlossener DHCP-Server 220 erforderlich
ist. Es gibt viele Mechanismen zur dynamischen IP-Zuweisung, einschließlich der
Verwendung einer Kombination aus einem RADIUS-Server (Remote Authentication
Dial-In User Service) und einem DHCP-Server. Sobald der GPRS-Attach
abgeschlossen ist, wird eine logische Verbindung von einem Mobilgerät 100, über PCU 208 und
SGSN 216 zu einem Access Point Node (APN) innerhalb von GGSN 218 eingerichtet.
Der APN repräsentiert
ein logisches Ende eines IP-Tunnels,
der entweder auf direkte Internet-kompatible Dienste oder auf Privatnetzverbindungen
zugreifen kann. Der APN repräsentiert
auch einen Sicherheitsmechanismus für das Netz 200, insofern
als dass jedes Mobilgerät 100 einem
oder mehreren APNs zugewiesen sein muss und das Mobilgerät 100 keine
Daten austauschen kann, ohne zuerst einen GPRS-Attach zu einem APN durchzuführen, für dessen
Benutzung es autorisiert wurde. Für den APN kann angenommen werden, dass
er einem Internet-Domänennamen
wie „meineverbindung.drahtlos.com" ähnelt.
-
Sobald
der GPRS-Attach abgeschlossen ist, wird ein Tunnel erstellt, und
der gesamte Verkehr wird innerhalb standardmäßiger IP-Pakete ausgetauscht,
wozu jedes Protokoll verwendet wird, das in IP-Paketen unterstützt werden
kann. Dazu zählen Tunnelungsverfahren
wie IP over IP, wie das bei einigen IPsec-Verbindungen (IPSecurity)
der Fall ist, die mit VPNs (Virtual Private Networks) verwendet
werden.
-
Diese
Tunnel werden auch als PDP-Kontexte (Packet Data Protocol) bezeichnet,
und von diesen ist nur eine begrenzten Anzahl im Netz 200 verfügbar. Um
die Verwendung von PDP-Kontexten zu maximieren, führt das
Netz 200 einen Idle-Timer für jeden PDP-Kontext aus, um
zu ermitteln, ob es ein Fehlen von Aktivität gibt. Wenn ein Mobilgerät 100 nicht
seinen PDP-Kontext verwendet, kann die Zuordnung des PDP-Kontexts
aufgehoben und die IP-Adresse wieder dem IP-Adressenpool zugeführt werden,
der durch den DHCP-Server 220 verwaltet wird.
-
In
einer exemplarischen Implementierung der Erfindung, in der ein VPN
eingerichtet ist, erfolgt der Austausch der IP-Pakete mit einem
Host-System 250 über
das öffentliche
oder private Netz (z. B. das Internet) 224 (hier auch als "gemeinsam verwendetes
Netz" oder "gemeinsam verwendete
Netzinfrastruktur" bezeichnet).
Diese exemplarische Implementierung wird detailliert unter Bezug
auf 4 beschrieben.
-
Nunmehr
unter Bezug auf 4, zeigt ein Blockdiagramm eine
exemplarische Topologie in einem Virtual Private Network. In dieser
exemplarischen Topologie kommuniziert das Mobilgerät 100 mit
dem Host-System 250 über
einen Knoten 202 des Drahtlosnetzes 200 und eine
gemeinsam verwendete Netzinfrastruktur 224, beispielsweise
ein Dienstanbieternetz oder das öffentliche
Internet. Das Host-System 250 kann ein Host- oder Desktop-Computergerät sein,
oder es kann aus einem Netz aus Computergeräten bestehen. Der Zugriff auf
das Host-System 250 kann über einen
Router 252 ermöglicht
werden, und die Computergeräte
des Host-Systems 250 können
hinter einer Firewall [nicht dargestellt] operieren.
-
In
einer abweichenden Implementierung kann das Host-System 250 einen
drahtlosen VPN-Router umfassen, um den Datenaustausch zwischen dem
Host-System 250 und
dem Mobilgerät 100 zu
erleichtern. Das Konzept eines drahtlosen VPN-Routers ist in der
Drahtlosindustrie noch neu, und es impliziert, dass eine VPN-Verbindung direkt über ein
spezielles drahtloses Netzwerk zu einem Mobilgerät 100 eingerichtet
werden kann. Die Möglichkeit
zur Verwendung eines drahtlosen VPN-Routers steht erst seit kurzem zur Verfügung und
könnte verwendet
werden, wenn die neue Version 6 des Internetprotokolls
(IPV6) in IP-basierte Drahtlosnetzwerke eingeführt wird. Dieses neue Protokoll
wird ausreichend IP-Adressen bereitstellen, um jedem Mobilgerät 100 eine
IP-Adresse zuzuordnen, wodurch es möglich wird, jederzeit Informationen
zu einem Mobilgerät 100 zu
pushen. Ein Vorteil der Verwendung eines drahtlosen VPN-Routers
besteht darin, dass es sich dabei um eine Standard-VPN-Komponente
handeln kann, für
deren Verwendung kein separates drahtloses Gateway und keine separate drahtlose
Infrastruktur erforderlich ist. Eine VPN-Verbindung wäre vorzugsweise
eine Transmission Control Protocol (TCP)/IP- oder User Datagram
Protocol (UDP)/IP-Verbindung, um die Nachrichten in dieser abweichenden
Implementierung direkt an das Mobilgerät 100 zu liefern.
-
Ausführungsformen
der Erfindung können
in Implementierungen ausgeführt
werden, bei denen Pakete in den Kommunikationen zwischen dem Mobilgerät 100 und
dem Host-System 250 ausgetauscht werden. Allerdings wird
es dem Fachmann auf dem Gebiet der Technik verständlich sein, dass bestimmte Ausführungsformen
der Erfindung in Implementierungen ausgeführt werden können, bei
denen andere Computergeräte
als das Mobilgerät 100 mit
dem Host-System 250 kommunizieren sollen, innerhalb eines
VPN oder in anderer Weise.
-
Beispielsweise
können
Ausführungsformen der
Erfindung in verschiedenen anderen Typen von VPN-Topologien ausgeführt werden.
Zum Beispiel kann ein Intranet-Site-to-Site-VPN die Verbindung von
einem LAN (Local Area Network) in einem entfernten Büro 254 oder
an einem anderen entfernten Standort (über den der Zugriff über einen
Router 252 ermöglicht
werden kann) zum Host-System 250 über das gemeinsam verwendete
Netz 224 ermöglichen. Oder
ein weiteres Beispiel: Ein Fernzugriffs-VPN kann die Verbindung
von entfernten Benutzern in einem Heim-Büro 256 oder von einem
anderen mobilen Benutzer 258 zum Host-System 250 herstellen, und
zwar über
eine POP-Verbindung (Point-of-Presence) 260, über die
der Zugriff auf das gemeinsam verwendete Netz 224 erfolgt
(z. B. per Einwahlverbindung). Andere Standorte [nicht dargestellt]
können über ein
Extranet-basiertes VPN ebenfalls mit dem Host-System 250 kommunizieren,
was ein weiteres Beispiel wäre.
-
Jede
der obigen VPN-Anwendungen wird durch sichere Netz-zu-Netz-, Host-zu-Netz- oder Host-zu-Host-Tunnel
unterstützt,
bei denen es sich um virtuelle Point-to-Point-Verbindungen handelt. Die Tunnel
können
auf verschiedenen Protokollschichten existieren. Beispielsweise
stellen bestimmte Tunnel IP-basierte virtuelle Verbindungen bereit. Bei
diesem Ansatz werden normale IP-Pakete zwischen den Tunnelendpunkten
weitergeleitet, die durch irgendeine intervenierende Netztopologie
getrennt sind. Die getunnelten Pakete werden in Headern verpackt,
welche die Nachrichtenintegrität
und -vertraulichkeit gewährleisten.
In dieser Hinsicht ist IPsec ein Set von Protokollen, die durch
die IETF (Internet Engineering Task Force) definiert wurden und die
verwendet werden können,
um die IP-Sicherheit auf der Netzebene zu gewährleisten.
-
Ein
auf IPsec basierendes VPN besteht aus zwei Teilen: einem IKE-Protokoll
(Internet Key Exchange) und IPsec-Protokollen für den Datenaustausch. Der erste
Teil, IKE, ist die anfängliche
Verhandlungsphase, in der zwei VPN-Endpunkte sich darauf einigen,
welche Verfahren verwendet werden sollen, um die Sicherheit für den zugrunde
liegenden IP-Verkehr zu gewährleisten.
Sitzungsschlüssel
für die
zum Einsatz kommenden Verschlüsselungs-
und Authentifizierungsalgorithmen werden verteilt. IKE wird auch
verwendet, um Verbindungen zu verwalten, indem ein Set von Sicherheitszuordnungen
für jede
Verbindung definiert wird. Der zweite Teil – die IPsec-Protokolle – beschreibt,
wie die Daten verarbeitet werden. Zu diesen Protokollen gehören beispielsweise
AH (Authentication Header) und ESP (Encapsulating Security Payload).
Das oben Erwähnte
ist nicht als vollständige
Beschreibung von IPsec und VPNs gedacht, was dem Fachmann auf dem
Gebiet der Technik einleuchten dürfte.
-
Es
wird dem Fachmann auf dem Gebiet der Technik auch verständlich sein,
dass Implementierungen von Ausführungsformen
der Erfindung auch für
andere Anwendungen als für
die Einrichtung von VPNs eingesetzt werden können und dass dabei auch andere
paketbasierte Kommunikationsprotokolle zum Einsatz kommen können, die
oben nicht erwähnt
wurden.
-
Unter
Bezug auf 5 zeigt ein Blockdiagramm ein
Mobilgerät,
das Komponenten umfasst, welche in einer Ausführungsform der Erfindung die paketbasierte
Kommunikation mit einem Host-System ermöglichen. Zur Vereinfachung
der Darlegung ist im Rahmen der Beschreibung dieser Ausführungsform
der Erfindung nur eine Teilmenge der Komponenten des Mobilgeräts dargestellt.
-
Wie
bereits früher
angedeutet, ist die Anwendung der Erfindung – obwohl diese Ausführungsform unter
Bezug auf ein Mobilgerät
beschrieben wird – nicht
auf Implementierungen unter Verwendung von Mobilgeräten beschränkt. In
abweichenden Ausführungsformen
der Erfindung kann ein anderes Computergerät als ein Mobilgerät eingesetzt
werden, das mit dem Host-System kommunizieren soll.
-
Auf
dem Mobilgerät 100 und
auf dem Host-System 250 ist Software gehostet, um ein VPN zu
implementieren. Gemäß dieser
Ausführungsform implementiert
die Software auf dem Mobilgerät 100 einen
Verbindungsmanager 270, durch den die Kommunikationen zum
und vom Host-System 250 verwaltet werden. Der Verbindungsmanager 270 funktioniert,
indem er über
das Drahtlosnetz 200 und über das gemeinsam verwendete
Netz 224 Pakete zum Host-System 250 überträgt und vom
Host-System 250 Pakete empfängt. Jede Verbindung zum Host-System 250 kann über einen
ausgewählten Port
von einem oder mehreren Ports auf dem Mobilgerät 100 zu einem speziellen
Port von einem oder mehreren Ports auf dem Host-System 250 hergestellt werden.
-
Eine
Anwendung 272 oder ein Thread 274 einer Anwendung,
die sich auf dem Mobilgerät 100 befindet
und dort ausgeführt
wird, kann anfordern, dass die Kommunikation mit dem Host-System 250 hergestellt
wird. Auf dem Mobilgerät 100 können mehrere
Anwendungen 1..n ausgeführt
werden, und mehrere Threads 1..n einer Ausführung können ebenfalls ausgeführt werden,
die jeweils unabhängig voneinander
die Kommunikation mit dem Host-System 250 erfordern.
-
Zur
Vereinfachung der Darlegung in der nachfolgenden Beschreibung werden
die Anwendungen 272 und die Threads 274 gemeinsam
als Anwendungen 272 betrachtet. Dementsprechend bezieht sich
der hier in der Beschreibung und auch in den Ansprüchen verwendete
Begriff "Anwendung" im Allgemeinen auf
eine Anwendung 272 oder auf einen speziellen Thread 274 einer
Anwendung 272.
-
Eine
Anwendung 272 kann sich beim Verbindungsmanager 270 registrieren,
wenn sie die Kommunikation mit dem Host-System 250 wünscht. Der Verbindungsmanager 270 öffnet ankommende
und abgehende Verbindungen je nach Bedarf. Jede Anwendung 272 wird
zu einem "Paket-Listener", sobald sie registriert
ist, und alle Paket-Listener werden durch den Verbindungsmanager 270 verfolgt.
-
Wenn
eine Anwendung 272 ein Paket zum Host-System 250 senden
will, übergibt
es das abgehende Paket an den Verbindungsmanager 270, der die
geeignete abgehende Verbindung auswählt, über die das abgehende Paket
gesendet werden soll. Das kann die Auswahl eines geeigneten Ports
auf dem Mobilgerät 100 erforderlich
machen, über
den das abgehende Paket übertragen
werden soll.
-
Wenn
vom Host-System 250 ein ankommendes Paket eintrifft, wird
das ankommende Paket vom Verbindungsmanager 270 empfangen,
der die Ports des Mobilgeräts 100 überwacht.
Das empfangene Paket wird dann durch den Verbindungsmanager 270 zu
einem Paket-Cache 276 übertragen,
wo es gespeichert wird. Der Verbindungsmanager 270 weist jedem
empfangenen Paket eine für
den Cache eindeutige Kennung zu, um die Verfolgung der im Paket-Cache 276 gespeicherten
Pakete zu unterstützen und
um das nachfolgende Abrufen von Paketen (z. B. durch die Anwendungen 272)
aus dem Paket-Cache 276 zu erleichtern. Wo der Paket-Cache 276 die
verfügbaren
Kennungen verfolgt, kann durch den Verbindungsmanager 270 ein
Aufruf zum Paket-Cache 276 erfolgen, und zwar über eine
geeignete Schnittstelle von diesem, um eine Kennung für das empfangene
Paket abzurufen und zu reservieren.
-
Nachdem
das empfangene Paket im Paket-Cache 276 gespeichert wurde,
informiert der Verbindungsmanager 270 alle Paket-Listener
(d. h. alle Anwendungen 272, die beim Verbindungsmanager 270 registriert
sind) darüber,
dass er ein Paket vom Host-System 250 empfangen hat. In
dieser Ausführungsform
der Erfindung umfasst diese Information die dem empfangenen Paket
zugewiesene Kennung.
-
Jede
Anwendung 272, die ein Paket-Listener ist, kann entscheiden,
welche Aktionen beim Empfang der Information ergriffen werden sollen.
Wenn eine bestimmte Anwendung 272 kein Paket vom Host-System 250 erwartet,
kann diese Anwendung bzw. dieser Thread die Information ignorieren.
-
Wenn
jedoch eine spezielle Anwendung 272 ein Paket vom Host-System 250 erwartet,
kann sie das mit der empfangenen Kennung assoziierte Paket aus dem
Paket-Cache 276 anfordern und abrufen, um zu verifizieren,
dass das Paket für
diese spezielle Anwendung 272 bestimmt ist.
-
Der
durch die Anwendung 272, welche das Paket anfordert, durchgeführte Verifizierungsprozess kann
beispielsweise das Überprüfen der
in dem Paket enthaltenen Header und Sequenznummern umfassen. Wenn
das Paket den Verifizierungsprozess nicht erfolgreich besteht, kann
die spezielle Anwendung 272 auf eine andere Information
vom Verbindungsmanager 270 über ein ankommendes Paket warten.
Wenn dagegen das Paket erfolgreich verifiziert wird, kann die spezielle
Anwendung 272 den Paket-Cache 276 darüber informieren,
dass das Paket gerade verwendet wird, wodurch es dem Paket-Cache 276 ermöglicht wird,
das Paket aus seinem Speicher zu entfernen und die zugehörige Kennung
freizugeben.
-
In
dieser Ausführungsform
werden die Pakete direkt durch eine Anwendung 272 aus dem
Paket-Cache 276 abgerufen, die ihren eigenen Verifizierungsprozess verwendet
(der von Anwendung zu Anwendung unterschiedlich sein kann), um die
Pakete zu verifizieren. In einer abweichenden Ausführungsform
der Erfindung kann jedoch der Paket-Cache 276 so eingerichtet
sein, dass er die Verifizierungen im Auftrag einer Anwendung 272 durchführt, indem
er die zur Verifizierung eines Pakets erforderlichen Daten empfängt und
das Paket nur dann an die Anwendung 272 freigibt, wenn
die Verifizierung erfolgreich verlaufen ist. In einer anderen abweichenden
Ausführungsform
der Erfindung übergibt
der Verbindungsmanager 270 die Kennung nicht in ihren Informationen
an die Anwendungen 272, sondern behält die Kennung stattdessen
im Speicher. Die informierten Anwendungen 272 können dann
die Pakete indirekt über
den Verbindungsmanager 270 aus dem Paket-Cache 276 anfordern
und abrufen, und die Verifizierungen können je nach der konkreten
Implementierung durch die informierten Anwendungen 272, durch
den Paket-Cache 276 oder durch den Verbindungsmanager 270 durchgeführt werden.
-
Für den Fachmann
auf dem Gebiet der Technik wird verständlich sein, dass obwohl bestimmte Komponenten
(z. B. Verbindungsmanager 270, Paket-Cache 276)
hier als in einem einzelnen Computergerät untergebracht gezeigt werden,
das mit dem Host-System kommunizieren soll, diese Komponenten in
abweichenden Ausführungsformen über eine Anzahl
von unterschiedlichen Computergeräten verteilt sein können. Die
unterschiedlichen Computergeräte, über die
die Komponenten verteilt sind, können sich
innerhalb desselben sicheren Netzes befinden oder können sich
nicht innerhalb desselben sicheren Netzes befinden, obwohl im Hinblick
auf die Sicherheit in solchen abweichenden Ausführungsformen eventuell Konfigurationen
des ersten Typs mehr erwünscht
sind als die des zweiten Typs.
-
Für den Fachmann
auf dem Gebiet der Technik wird es ebenso verständlich sein, dass das Host-System 250 aus
einem einzelnen Computergerät
oder aus mehreren Computergeräten
bestehen kann. Außerdem
kann der Verbindungsmanager 270 in abweichenden Ausführungsformen
der Erfindung mit mehreren Host-Systemen 250 kommunizieren, und
zwar über
einen oder mehrere Ports auf jedem Computergerät von jedem Host-System 250.
-
Der
Verbindungsmanager 270 kann auch zusätzliche Sicherheitsmechanismen
implementieren, die auf die Kommunikationen über bestimmte Verbindungen
zu einem oder mehreren Host-Systemen 250 angewendet werden.
-
Unter
Bezug auf 6 zeigt ein Flussdiagramm die
Schritte in einem allgemein mit der Bezugsziffer 300 bezeichneten
Verfahren zum Erleichtern der Kommunikation von Paketen zwischen
einer oder mehreren Anwendungen, die sich auf einem ersten Computergerät befinden,
und mindestens einem zweiten Computergerät gemäß einer Ausführungsform
der Erfindung.
-
In
Schritt 310 registrieren sich Anwendungen (z. B. die Anwendungen 272 oder
Anwendungs-Threads 274 aus 5) auf einem
ersten Computergerät
bei einem Verbindungsmanager (z. B. beim Verbindungsmanager 270 aus 5).
Dann können
ankommende und abgehende Verbindungen zu mindestens einem zweiten
Computergerät
auf einem oder mehreren Host-Systemen (z. B. dem Host-System 250 aus 5)
durch den Verbindungsmanager hergestellt werden.
-
In
Schritt 312 sendet der Verbindungsmanager im Auftrag einer
Anwendung, die sich auf dem ersten Computergerät befindet und in Schritt 310 beim
Verbindungsmanager registriert wurde, abgehende Pakete zu einem
Host-System.
-
In
Schritt 314 wird ein ankommendes Paket durch den Verbindungsmanager
von einem Host-System empfangen.
-
In
Schritt 316 überträgt der Verbindungsmanager
das in Schritt 314 empfangene Paket zur Speicherung zu
einem Paket-Cache (z. B. zum Paket-Cache 276 aus 5).
Der Verbindungsmanager weist dem gespeicherten Paket eine für den Cache
eindeutige Kennung zu, die anschließend zum Abrufen des gespeicherten
Pakets aus dem Paket-Cache verwendet werden kann.
-
In
Schritt 318 informiert der Verbindungsmanager alle registrierten
Anwendungen über
den Empfang des empfangenen Pakets, das in Schritt 316 im Paket-Cache
gespeichert wurde.
-
In
Schritt 320 ermittelt jede registrierte Anwendung, ob sie
ein Paket erwartet. Wenn eine spezielle Anwendung kein Paket erwartet,
ignoriert sie die durch den Verbindungsmanager in Schritt 318 übertragene
Information.
-
Wenn
die registrierte Anwendung dagegen ein Paket erwartet, dann verifiziert
die Anwendung in Schritt 322, ob das Paket für diese
Anwendung bestimmt ist. Mit anderen Worten: Es erfolgt eine Verifizierung,
ob das Paket Bestandteil einer Kommunikation von dem Host-System
zu dieser speziellen Anwendung ist. In dieser Ausführungsform
wird das Paket unter Verwendung der dem Paket zugeordneten Kennung
aus dem Paket-Cache angefordert und abgerufen. Die in dem Paket
enthaltenen Header und Sequenznummern werden dann durch die Anwendung überprüft. Dem
Fachmann auf dem Gebiet der Technik wird verständlich sein, dass durch die
Anwendung auch zusätzliche
oder andere Paketverifizierungsprozesse eingesetzt werden können.
-
Wenn
erfolgreich verifiziert wurde, dass das Paket für die Anwendung bestimmt, dann
wird der Cache in Schritt 324 durch die Anwendung informiert, dass
das Paket gerade verwendet wird. Dies ermöglicht es dem Cache, das Paket
aus seinem Speicher zu entfernen und die dem Paket zugeordnete Kennung
freizugeben.
-
In
Schritt 326 wird die Ausführung der Anwendungen auf dem
ersten Computergerät
fortgesetzt. Weitere abgehende Pakete können zum Host-System gesendet
werden, indem der Schritt 312 von Verfahren 300 wiederholt
wird. Wenn jedes ankommende Paket vom Host-System empfangen wird,
können
die mit Schritt 314 beginnenden Schritte des Verfahrens 300 wiederholt
werden.
-
Der
Verbindungsmanager in den Ausführungsformen
der Erfindung kann es derselben Anwendung gestatten, mehrere Threads
zu registrieren, wenn die Anwendung mehr als eine Verbindung benötigt. Für IPsec
bedeutet dies, dass eine IKE-Verbindung von einer ESP- oder AH-Verbindung
getrennt gehalten werden kann. Darüber hinaus können mehrere
IKE-, ESP- oder AH-Verbindungen mit unterschiedlichen Schlüsselerneuerungszeiten
geöffnet werden,
was die Existenz einer Verbindung ermöglicht, die durch einen Schlüssel gesichert
ist, der bald abläuft,
während
bereits eine neue Verbindung unter einem neuen Schlüssel ausgehandelt
wird. Dementsprechend kann die Kommunikation über mehrere Verbindungen erleichtert
werden, die möglicherweise durch
unterschiedliche Sicherheitsparameter bestimmt sind.
-
In
den Ausführungsformen
der Erfindung, in denen der Verbindungsmanager sämtliche ankommenden Pakete
verwaltet, wird der Verbindungsmanager auch eingesetzt, um besser
gewährleisten
zu können,
dass jede einzelne der mehreren Komponenten (z. B. Anwendungen)
in einem Computergerät
die richtigen Pakete empfängt,
selbst wenn die Komponenten möglicherweise über unterschiedliche Ports
mit einem Host kommunizieren oder selbst wenn sie über denselben
Port im Computergerät kommunizieren,
der durch mehrere Komponenten gemeinsam verwendet wird. Darüber hinaus
muss nicht jede Komponente ihre eigenen Verbindungen mit einem Host
oder mit mehreren Hosts einrichten, wenn die Verbindungen durch
den Verbindungsmanager verwaltet werden.
-
Der
Verbindungsmanager kann, wenn er in Kombination mit dem Paket-Cache aus den Ausführungsformen
der Erfindung verwendet wird, auch eine zusätzliche Abwehr gegen Denial-of-Service-Angriffe
bieten, bei denen ein Computergerät mit gefälschten Paketen bombardiert
wird. Wenn Komponenten (z. B. Anwendungen) kein Paket erwarten, werden
die durch den Verbindungsmanager empfangenen Pakete durch die Komponenten
nicht verarbeitet. Alte Pakete können
dann periodisch erkannt und aus dem Cache gelöscht werden.
-
Die
Schritte eines Verfahrens zum Erleichtern der Kommunikation von
Paketen in den Ausführungsformen
der Erfindung können
als ausführbare Software-Anweisungen bereitgestellt
werden, die auf computerlesbaren Medien gespeichert sind, wozu auch übertragbare
Medien gehören
können.
-
Die
Erfindung wurde im Hinblick auf eine Reihe von Ausführungsformen
beschrieben. Dem Fachmann auf dem Gebiet der Technik wird jedoch
verständlich
sein, dass auch andere Varianten und Modifikationen umgesetzt werden
können,
ohne dass dadurch der Umfang der Erfindung verlassen wird, der durch
die beigefügten
Ansprüche
definiert ist.