[go: up one dir, main page]

DE602004005582T2 - Paketbasiertes Kommunikationssystem und Verfahren - Google Patents

Paketbasiertes Kommunikationssystem und Verfahren Download PDF

Info

Publication number
DE602004005582T2
DE602004005582T2 DE602004005582T DE602004005582T DE602004005582T2 DE 602004005582 T2 DE602004005582 T2 DE 602004005582T2 DE 602004005582 T DE602004005582 T DE 602004005582T DE 602004005582 T DE602004005582 T DE 602004005582T DE 602004005582 T2 DE602004005582 T2 DE 602004005582T2
Authority
DE
Germany
Prior art keywords
packet
informed
component
communication
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE602004005582T
Other languages
English (en)
Other versions
DE602004005582D1 (de
Inventor
Jonathan F. Dobbinton Hammell
Michael K. Kitchener Brown
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BlackBerry Ltd
Original Assignee
Research in Motion Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of DE602004005582D1 publication Critical patent/DE602004005582D1/de
Application granted granted Critical
Publication of DE602004005582T2 publication Critical patent/DE602004005582T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

  • 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.

Claims (14)

  1. Ein System zum Erleichtern der Kommunikation von Paketen zwischen mehreren Komponenten von einer oder mehreren Anwendungen (272), die sich auf einem ersten Computergerät (100, 254, 256, 258) befinden, und mindestens einem zweiten Computergerät (250), das System umfassend: einen Verbindungsmanager (270) der angepasst ist, um Pakete von dem mindestens einen zweiten Computergerät zu empfangen; und einen Paket-Cache (276), der mit dem Verbindungsmanager (270) gekoppelt ist, zum Speichern der durch den Verbindungsmanager (270) empfangenen Pakete; wobei der Verbindungsmanager (270) so eingerichtet ist, dass er ein von einem zweiten Computergerät empfangenes Paket zur Speicherung zum Paket-Cache (276) ü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 (272) über den Empfang des Pakets informiert; wobei das Paket durch eine informierte Komponente aus dem Paket-Cache (276) 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 (250) 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.
  2. Das System gemäß Anspruch 1, wobei das erste Computergerät ein Mobilgerät (100) ist.
  3. Das System gemäß jedem der Ansprüche 1 oder 2, wobei sich mindestens einer der beiden Bestandteile Verbindungsmanager (270) oder Paket-Cache (276) auf dem ersten Computergerät (100, 254, 256, 258) befindet.
  4. Das System gemäß jedem der Ansprüche 1 bis 3, wobei der Verbindungsmanager (270) des Weiteren angepasst ist zum Übertragen von Paketen, die durch eine der mehreren Komponenten der einen oder mehreren Anwendungen (272) generiert wurden, zu dem mindestens einen zweiten Computergerät (250).
  5. Das System gemäß jedem der Ansprüche 1 bis 4, wobei jedem Paket, das durch den Verbindungsmanager (270) zur Speicherung zum Paket-Cache (276) übertragen wird, eine Kennung zugewiesen wird; wobei bei der Informierung von jeder der mehreren Komponenten der einen oder mehreren Anwendungen (272) über den Empfang eines Pakets die diesem zugewiesene Kennung eingesetzt wird und wobei die Kennung eines Pakets dessen Abruf aus dem Paket-Cache durch eine informierte Komponente erleichtert.
  6. Ein Verfahren zum Erleichtern der Kommunikation von Paketen zwischen mehreren Komponenten von einer oder mehreren Anwendungen (272), die sich auf einem ersten Computergerät (100, 254, 256, 258) befinden, und mindestens einem zweiten Computergerät (250), das System umfassend die folgenden Schritte: das Empfangen eines Pakets von einem zweiten Computergerät (250); und das Übertragen des empfangenen Pakets zur Speicherung zu einem Paket-Cache (276); 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 (272) über den Empfang des empfangenen Pakets (318); für eine informierte Komponente beim Empfang der informierten Komponente das Abrufen des empfangenen Pakets von dem Paket-Cache (322); 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 (250) 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.
  7. Das Verfahren gemäß Anspruch 6, wobei das erste Computergerät ein Mobilgerät (100) ist.
  8. Das Verfahren gemäß jedem der Ansprüche 6 oder 7, des Weiteren umfassend die Schritte des Generierens von einem oder mehreren Paketen für die Kommunikation zu mindestens einem zweiten Computergerät (250) und des Übertragens der generierten Pakete zu dem mindestens einen zweiten Computergerät.
  9. Das Verfahren gemäß jedem der Ansprüche 6 bis 8, wobei der Schritt des Übertragens das Zuweisen einer Kennung zu dem empfangenen Paket umfasst, das zur Speicherung zum Paket-Cache (276) übertragen wird; wobei beim Schritt des Informierens die dem empfangenen Paket zugewiesene Kennung eingesetzt wird und wobei die Kennung verwendet wird, um das Abrufen des empfangenen Pakets aus dem Paket-Cache (276) im Schritt des Abrufens zu erleichtern.
  10. Das Verfahren gemäß jedem der Ansprüche 6 bis 9, wobei die Anforderung zur Verifizierung des empfangenen Pakets durch eine informierte Komponente erfolgt.
  11. Das Verfahren gemäß jedem der Schritte 6 bis 10, wobei der Schritt des Verifizierens das Überprüfen von Headern und Sequenznummern umfasst, die in dem empfangenen Paket enthalten sind, um zu verifizieren, dass das empfangene Paket für die Kommunikation zu der informierten Komponente vorgesehen ist.
  12. Eine Softwareanwendung zur Ausführung auf einem Mobilgerät (100), die Anwendung umfassend eine Vielzahl von Anweisungen, die auf einem computerlesbaren Medium gespeichert sind, wobei die Anweisungen bei ihrer Ausführung die Schritte des Verfahrens gemäß jedem der Ansprüche 6 bis 11 ausführen.
  13. Ein Mobilgerät (100), das mit mindestens einem entfernten Computergerät (250) gekoppelt ist, das Mobilgerät (100) umfassend: einen Verbindungsmanager (270), der angepasst ist, um Pakete von dem mindestens einen entfernten Computergerät zu empfangen; und einen Paket-Cache (276), der mit dem Verbindungsmanager (270) gekoppelt ist, zum Speichern der durch den Verbindungsmanager (270) empfangenen Pakete; wobei der Verbindungsmanager (270) so eingerichtet ist, dass er ein von dem entfernten Computergerät empfangenes Paket zur Speicherung zum Paket-Cache (276) überträgt, und das Mobilgerät (100) dadurch gekennzeichnet ist, dass der Verbindungsmanager außerdem so eingerichtet ist, dass er jede der mehreren Komponenten der einen oder mehreren Anwendungen (272), die sich auf dem Mobilgerät (100) befinden, über den Empfang des Pakets informiert; wobei das Paket durch eine informierte Komponente aus dem Paket-Cache (276) 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 entfernten Computergerät (250) erwartet; und dass der Abruf und die Verifizierung, dass das Paket für die Kommunikation zu der informierten Komponente vorgesehen ist, nur dann erfolgt, wenn die informierte Komponente ermittelt, dass sie den Empfang eines Pakets von dem mindestens einen entfernten Computergerät erwartet.
  14. Ein Kommunikationssystem, umfassend eine Vielzahl von Mobilgeräten (100) gemäß Anspruch 13.
DE602004005582T 2004-07-12 2004-07-12 Paketbasiertes Kommunikationssystem und Verfahren Expired - Lifetime DE602004005582T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP04103295A EP1617618B1 (de) 2004-07-12 2004-07-12 Paketbasiertes Kommunikationssystem und Verfahren

Publications (2)

Publication Number Publication Date
DE602004005582D1 DE602004005582D1 (de) 2007-05-10
DE602004005582T2 true DE602004005582T2 (de) 2007-12-13

Family

ID=34929314

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004005582T Expired - Lifetime DE602004005582T2 (de) 2004-07-12 2004-07-12 Paketbasiertes Kommunikationssystem und Verfahren

Country Status (4)

Country Link
EP (1) EP1617618B1 (de)
AT (1) ATE358387T1 (de)
CA (1) CA2511047C (de)
DE (1) DE602004005582T2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7372841B2 (en) 2004-07-12 2008-05-13 Research In Motion Limited Packet-based communication system and method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497339A (en) * 1993-11-15 1996-03-05 Ete, Inc. Portable apparatus for providing multiple integrated communication media
WO2002019637A1 (en) * 2000-08-28 2002-03-07 Entridia Corporation Method and apparatus for queue administration in a packet processing device
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor

Also Published As

Publication number Publication date
DE602004005582D1 (de) 2007-05-10
CA2511047A1 (en) 2006-01-12
EP1617618B1 (de) 2007-03-28
CA2511047C (en) 2008-03-25
ATE358387T1 (de) 2007-04-15
EP1617618A1 (de) 2006-01-18
HK1086404A1 (en) 2006-09-15

Similar Documents

Publication Publication Date Title
DE602004010425T2 (de) Netzwerkauswahlverfahren und Gerät mit Heimnetzwerk Priorisierung nach einer Netzwerksignalrückgewinnung oder nach dem einschalten
DE60302882T2 (de) Sicherheitsübertragungsprotokoll für ein mobilitäts-ip-netzwerk
DE60302800T2 (de) Verfahren und vorrichtung für wiederherstellung der datenverbindung mit einem drahtlosen kommunikationsnetz
DE69434896T2 (de) Zugriffsverfahren auf ein drahtloses lokales ad-hoc Netzwerk über ein zellulares Weitbereichnetzwerk mit Koppelung des LAN-MAC-Paketkopfes.
DE60209858T2 (de) Verfahren und Einrichtung zur Zugriffskontrolle eines mobilen Endgerätes in einem Kommunikationsnetzwerk
DE60320050T2 (de) Manuelle Netzwerkauswahl für mobile Stationen
DE602006000817T2 (de) System und Methode für steuernde Datenkommunikation zwischen einem Server und einer Client-Vorrichtung
DE112008003065B4 (de) Ad-hoc-Kommunikations-Funkmodul, Ad-hoc-Kommunikationseinrichtung und Verfahren zum Steuern eines Ad-hoc-Kommunikations-Funkmoduls
DE10393628T5 (de) System und Verfahren zum Integrieren mobiler Vernetzung mit sicherheitsbasierten virtuellen privaten Netzwerksystemen (VPNS)
EP3939344A1 (de) Verfahren zum bereitstellen von subskriptions-profilen, teilnehmeridentitätsmodul und subskriptions-server
EP1761082B1 (de) Verfahren und anordnung zum anbinden eines zweiten kommunikationsnetzes mit einem zugangsknoten an ein erstes kommunikationsnetz mit einem kontaktknoten
DE60222810T2 (de) Verfahren, system und einrichtung zur dienstauswahl über ein drahtloses lokales netzwerk
DE60211287T2 (de) Handhabung von Verbindungen, die zwischen Firewalls umziehen
EP1128615A2 (de) Verfahren und Kommunikationseinrichtung zur Verschlüsselung von E-Mail
DE10341873A1 (de) Verfahren und Vorrichtung für den Aufbau von Verbindungen zwischen Kommunikationsendgeräten und drahtlose Übertragungsstrecken aufweisenden Daten- und/oder Kommunikationsnetzen, wie bspw. Wireless Local Area Networks (WLAN) und/oder Mobilfunknetzen, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
EP1943806B1 (de) Teilnehmerspezifisches erzwingen von proxy-mobile-ip (pmip) anstelle von client-mobile-ip (cmip)
DE602006000868T2 (de) Verfahren und System zur Einsparung von Batterieenergie in drahtlosen Geräten operierend in einem lokalen drahtlosen Netzwerk
DE60006821T2 (de) Zugangskontrolle in einem gateway-server
DE102004003549B4 (de) Kommunikationssystem und Verfahren zum Verarbeiten einer von einem Mobilfunkendgerät eines Mobilfunk-Kommunikationsnetzes einem Nachrichtenfilter-Rechner zugeführten Anforderungs-Nachricht
DE602004005706T2 (de) System und Verfahren zum Erzeugen eines Sicherheitszustandsindikators auf einer Anzeigevorrichtung
EP1240794B1 (de) Verfahren zur Verschlüsselung von Daten und Telekommunikationsendgerät und Zugangsberechtigungskarte
DE602004005582T2 (de) Paketbasiertes Kommunikationssystem und Verfahren
DE60222875T2 (de) Verfahren und system zur erkennung einer namenserveradresse
DE602004007002T2 (de) Verfahren zur Datenübertragung innerhalb eines schnurlosen Gerätes mit verschiedenen Protokollstapeln
DE602005003220T2 (de) Vorausladung von Sicherheitsrelevanten Daten in einem Mobilnetzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: MERH-IP, 80336 MUENCHEN