DE112013006089B4 - System und Verfahren zum intelligenten Auswählen einer Netzwerkschnittstelle - Google Patents

System und Verfahren zum intelligenten Auswählen einer Netzwerkschnittstelle Download PDF

Info

Publication number
DE112013006089B4
DE112013006089B4 DE112013006089.2T DE112013006089T DE112013006089B4 DE 112013006089 B4 DE112013006089 B4 DE 112013006089B4 DE 112013006089 T DE112013006089 T DE 112013006089T DE 112013006089 B4 DE112013006089 B4 DE 112013006089B4
Authority
DE
Germany
Prior art keywords
network
network interface
interface
connection
interfaces
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.)
Active
Application number
DE112013006089.2T
Other languages
English (en)
Other versions
DE112013006089T5 (de
Inventor
Joshua V. Graessley
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of DE112013006089T5 publication Critical patent/DE112013006089T5/de
Application granted granted Critical
Publication of DE112013006089B4 publication Critical patent/DE112013006089B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/18Management of setup rejection or failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/19Connection re-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/18Selecting a network or a communication service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/54Allocation or scheduling criteria for wireless resources based on quality criteria
    • H04W72/542Allocation or scheduling criteria for wireless resources based on quality criteria using measured or perceived quality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W74/00Wireless channel access
    • H04W74/08Non-scheduled access, e.g. ALOHA
    • H04W74/0866Non-scheduled access, e.g. ALOHA using a dedicated channel for access
    • H04W74/0875Non-scheduled access, e.g. ALOHA using a dedicated channel for access with assigned priorities based access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

Auf einem Netzwerk-Client, der zwei oder mehr Netzwerkschnittstellen einschließt, implementiertes Verfahren, wobei die zwei oder mehr Netzwerkschnittstellen eine erste Netzwerkschnittstelle, bei der es sich um eine WLAN-Schnittstelle handelt, und eine zweite Netzwerkschnittstelle, bei der es sich um eine mobile Schnittstelle handelt, einschließt, wobei das Verfahren umfasst:Versehen der zwei oder mehr Netzwerkschnittstellen mit einer Priorität durch den Netzwerkclient;anfängliches Versuchen einer Verbindung über die erste Netzwerkschnittstelle durch den Netzwerkclient, wobei die erste Netzwerkschnittstelle eine relativ höhere Priorität als die zweite Netzwerkschnittstelle besitzt;Starten eines Rückfallzeitgebers durch den Netzwerkclient im Wesentlichen gleichzeitig mit dem Versuchen der Verbindung über die erste Netzwerkschnittstelle;falls der Rückfallzeitgeber einen ersten festgelegte Zeitgeberschwellenwert erreicht hat, bevor eine erfolgreiche Verbindung über die erste Netzwerkschnittstelle hergestellt wurde, Versuchen einer Verbindung über die zweite Netzwerkschnittstelle durch den Netzwerkclient parallel zum Versuch, eine Verbindung über die erste Netzwerkschnittstelle herzustellen; undVerwenden der ersten der ersten und der zweiten Netzwerkschnittstelle, über die erfolgreich eine Verbindung hergestellt wird, um Daten zu übertragen.

Description

  • Hintergrund
  • Technisches Gebiet
  • Der hierin beschriebene Gegenstand betrifft allgemein das Gebiet von Datenverarbeitungssystemen. Genauer betrifft der hierin beschriebene Gegenstand die intelligente Auswahl von Netzwerkschnittstellen für die Kommunikation.
  • Beschreibung der verwandten Technik
  • Derzeitige drahtlose Datenverarbeitungsvorrichtungen sind in der Lage, über mehrere unterschiedliche Kommunikationsschnittstellen einschließlich WLAN-Schnittstellen (z. B. 802.11-Schnittstellen) und mobile Datenschnittstellen (z. B. GPRS-, G3-, G4-Schnittstellen) eine Verbindung mit Netzwerkdiensten herzustellen. 1 veranschaulicht zum Beispiel einen drahtlosen Client 101 mit einer WLAN-Schnittstelle 102 zum Verbinden mit einem Netzwerkdienst 110 über ein WLAN-Netzwerk 105 und einer mobilen Schnittstelle 103 zum Verbinden mit einem Push-Benachrichtigungsdienst 110 über das mobile Netzwerk 106.
  • US 2006/0045069 A1 zeigt ein Kommunikationsverfahren, in welchem das Einleiten eines Anrufs zwischen einer Mobilstation in einem Mobilfunknetz und einer Teilnehmereinheit, die über das Mobilfunknetz zugänglich ist, offenbart ist. Eine erste Verbindung zum Bedienen des Anrufs wird zwischen einer Basisstation im Mobilfunknetz und der Mobilstation geöffnet. Eine zweite Verbindung zur Bedienung des Anrufs wird zwischen der Mobilstation und einem Zugangspunkt in einem drahtlosen lokalen Netzwerk (WLAN) geöffnet. Während die erste Verbindung offen ist, wird der Datenverkehr zwischen der Mobilstation und der Teilnehmereinheit über die zweite Verbindung übertragen.
  • US 2005/0003822 A1 zeigt ein Verfahren zur automatischen Trägerwahl, so dass ein Benutzer einer Telekommunikationsvorrichtung eine Verbindung mit einem anderen Benutzer herstellen kann, ohne einen zu verwendenden Träger angeben zu müssen, d.h. wenn der andere Benutzer über verschiedene Träger (Kommunikationstechnologien) wie Bluetooth, UTRAN oder WLAN erreichbar ist und auch wenn der andere Benutzer über mehr als eine Telekommunikationsvorrichtung erreichbar ist. Um einer Vorrichtung zu ermöglichen, automatisch einen Träger zum Bereitstellen einer Verbindung zu einer zweiten Vorrichtung auszuwählen, beinhaltet das Verfahren: einen Schritt, in dem sich die erste Vorrichtung auf einen Kontaktträgerdatenspeicher bezieht, der für die erste Vorrichtung zugänglich ist, um eine Liste von mindestens zwei möglichen Trägern zum Bereitstellen der Verbindung zu erhalten; und einen Schritt, in dem die erste Vorrichtung einen der mindestens zwei möglichen Träger basierend auf einer vorbestimmten Auswahlstrategie auswählt.
  • Es ist die Aufgabe der Erfindung, eine Benutzererfahrung beim Herstellen einer Interkonnektivität zu verbessern.
  • Diese Aufgabe wird durch das in den unabhängigen Patentansprüchen definierte Verfahren, das maschinenlesbare Medium und den Netzwerkclienten gelöst.
  • Optionale Ausführungsformen ergeben sich aus den abhängigen Ansprüchen.
  • Figurenliste
  • Ein besseres Verständnis des hierin beschriebenen Gegenstands kann anhand der folgenden detaillierten Beschreibung in Verbindung mit den folgenden Zeichnungen erreicht werden, in denen
    • 1 einen drahtlosen Client des Standes der Technik veranschaulicht, der über ein WLAN-Netzwerk und ein mobiles Netzwerk eine Verbindung mit einem Push-Benachrichtigungsdienst herstellt;
    • 2 einen beispielhaften drahtlosen Client zum intelligenten Auswählen entweder einer WLAN-Netzwerkschnittstelle oder einer mobilen Netzwerkschnittstelle veranschaulicht;
    • 3 einen beispielhaften drahtlosen Client zum intelligenten Auswählen zwischen einer Vielfalt unterschiedlicher Netzwerkschnittstellen veranschaulicht;
    • 4 ein beispielhaftes Verfahren zum intelligenten Auswählen zwischen Netzwerkschnittstellen veranschaulicht;
    • 5 eine Anwendungsprogrammierschnittstelle veranschaulicht, die auf einer drahtlosen Clientvorrichtung verwendet werden kann;
    • 6 beispielhafte Anwendungen veranschaulicht, die über eine Schnittstelle eine Verbindung mit Diensten und Betriebssystemen herstellen;
    • 7 eine beispielhafte Architektur einer Datenverarbeitungsvorrichtung veranschaulicht;
    • 8 eine weitere Architektur einer Datenverarbeitungsvorrichtung veranschaulicht.
  • Detaillierte Beschreibung
  • Nachstehend werden Vorrichtungen, Verfahren und maschinenlesbare Medien zum intelligenten Auswählen einer Netzwerkschnittstelle beschrieben. Innerhalb der Beschreibung werden zum Zwecke der Erklärung zahlreiche spezifische Details dargelegt. Es ist jedoch für den Fachmann ersichtlich, dass der hierin beschriebene Gegenstand ohne manche dieser spezifischen Details ausgeführt werden kann. In anderen Fällen sind allgemein bekannte Strukturen und Vorrichtungen nicht gezeigt oder in Form eines Blockdiagramms gezeigt, um ein Verschleiern der zugrundeliegenden Prinzipien des beschriebenen Gegenstandes zu vermeiden.
  • Nachstehend wird eine mobile Vorrichtung, wie eine Tablet-Computervorrichtung (z. B. ein iPad), ein Smartphone (z. B. ein iPhone) oder ein mobiler Computer (z. B. ein MacBook Pro), beschrieben. Es sollte beachtet werden, dass die hierin beschriebenen zugrundeliegenden Techniken auf jedem Typ von mobiler Computervorrichtung implementiert werden können.
  • Unter Verwendung der hierin beschriebene Techniken wird eine mobile Vorrichtung, die einem WLAN-Netzwerk zugeordnet ist und Zugang zu einer mobilen Datenverbindung besitzt, versuchen, für jegliche Verbindungsversuche, die über WLAN nicht funktionieren, auf die mobile Datenverbindung zurückgreifen. Zum Beispiel verwenden WLAN-Netzwerke typischerweise eine Firewall, die einen Zugriff auf bestimmte Dienste oder Anwendungen, die auf der mobilen Vorrichtung ausgeführt werden, sperren kann. In anderen Fällen ist das WLAN-Netzwerk möglicherweise nicht an das Internet angebunden (z. B. weil das Kabelmodem oder die DSL-Verbindung des Benutzers die Funktion eingestellt hat).
  • Ein drahtloser Client kann eine Verbindung über eine mobile Netzwerkschnittstelle versuchen, nachdem er eine sinnvolle Zeitspanne auf eine erfolgreiche Verbindung über die WLAN-Netzwerkschnittstelle gewartet hat. Wie in 2 veranschaulicht, kann ein drahtloser Client 201 eine Verbindungslogik 204 zum Implementieren der hierin beschriebenen Techniken einschließen, um zwischen einer WLAN-Schnittstelle 202 und einer mobilen Schnittstelle 203 auszuwählen und eine Verbindung mit einem bestimmten Netzwerkdienst 210 bis 211 herzustellen. Wie veranschaulicht, kann die WLAN-Schnittstelle 202 über ein WLAN-Netzwerk 205 eine Verbindung mit dem drahtlosen Client 201 herstellen, und die mobile Schnittstelle 203 kann über ein mobiles Netzwerk 206 eine Verbindung mit dem kabellosen Client 201 herstellen. Für mobile Verbindungen können vielfältige Techniken verwendet werden, einschließlich, jedoch nicht beschränkt auf: 3rd-Generation-Partnership-Project-Technologien (z. B. 3GPP2) Code-Division-Multiple-Access-Technologien (z. B. CDMA2000-Technologie unter Verwendung von 1xRTT/EVDO/eHRPD); die Long-Term-Evolution(LTE)-Technologie und/oder die LTE-Advanced(LTE-A)-Technologie; und die Universal-Mobile-Telecommunications-System(UMTS)-Technologie wie WCDMA/TDSCDMA.
  • Die Verbindungslogik 204 schließt eine Verbindungspriorisierungslogik 208 zum Versehen der Netzwerkschnittstellen 202 bis 203 mit einer Priorität sowie einen Rückfallzeitgeber 207 zum Zeitplanen von Verbindungsversuchen ein. Als Reaktion auf eine Netzwerkanfrage durch einen der Prozesse 220 bis 230 versucht die Verbindungslogik 202, über die Netzwerkschnittstelle mit der höchsten Priorität, die verfügbar ist (z. B. die WLAN-Schnittstelle 202), eine Verbindung mit dem benannten Dienst 210 oder 211 herzustellen. Der Rückfallzeitgeber 207 beginnt mit der Zeitplanung des Verbindungsversuchs . Wenn nach einer festgelegten Zeitdauer (z. B. 5 Sekunden) über die Netzwerkschnittstelle 202 mit der höchsten Priorität keine erfolgreiche Verbindung hergestellt wurde, initiiert die Verbindungslogik 204 einen parallelen Verbindungsversuch über die Netzwerkschnittstelle mit der nächsthöheren Priorität (z. B. die mobile Schnittstelle 203). Die Verbindungslogik 204 kann dann die erste Verbindung verwenden, die erfolgreich über eine der Schnittstellen 202 bis 203 hergestellt wird.
  • Die hierin beschriebenen Techniken können auf Grundlage einzelner Verbindungen implementiert werden. Zum Beispiel kann ein Prozess 220 über das WLAN 202 eine erfolgreiche Verbindung mit einem Dienst herstellen, während ein anderer Prozess 220 unter Umständen nicht in der Lage ist, eine Verbindung über das WLAN 202 herzustellen, jedoch unter Umständen unter Verwendung der hierin beschriebenen Techniken eine erfolgreiche Verbindung über Mobilfunk 203 herstellen kann. Das Fehlschlagen einer Verbindung über WLAN kann auf die Art und Weise bezogen sein, in welcher die WLAN-Firewall konfiguriert ist. Zum Beispiel kann die Firewall konfiguriert sein, bestimmte Typen von Datenverkehr (z. B. Video-Streaming von bestimmten Netzwerkquellen) zu sperren. Bei den Prozessen 220 bis 223 kann es sich um jede Form von ausführbarem Programmcode handeln, der in der Lage ist, eine Netzwerkverbindung anzufordern und aufrechtzuerhalten (z. B. Netzwerkprozesse innerhalb von Apps, Anwendungen, Hintergrundaufgaben oder andere Formen von Programmcode).
  • 3 veranschaulicht drei unterschiedliche Schnittstellentypen 302 bis 304, die für jede Anzahl von Netzwerkschnittstellen zum Kommunizieren über Netzwerke 305 bis 307 stehen, einschließlich, jedoch nicht beschränkt auf, Ethernet, Bluetooth, WiMAX, kabelgebundene mobile Schnittstellen, WLAN und Mobilfunk, um nur einige zu nennen. Mit der Entwicklung neuer Schnittstellen können die hierin beschriebenen zugrundeliegenden Techniken mit diesen Schnittstellen verwendet werden. Die Priorisierungslogik 208 kann (ungeachtet des Schnittstellentyps) ein Priorisierungsschema für jede der Netzwerkschnittstellen 302 bis 304 festlegen, das dann durch die Verbindungslogik 204 verwendet werden kann, wenn Verbindungen initiiert werden. Das Priorisierungsschema kann auf Grundlage einzelner Prozesse festgelegt werden. Zum Beispiel können manche Prozesse 220 bis 223 und/oder Dienste 210 bis 211 ein Verbinden über die Netzwerkschnittstelle 302 bevorzugen, während andere Prozesse/Dienste ein Verbinden über die Netzwerkschnittstelle 303 bevorzugen können.
  • Der Rückfallzeitgeber 207 kann den Zeitgeberschwellenwert für einen zweiten Verbindungsversuch auf der Grundlage aktueller Bedingungen dynamisch anpassen. Zum Beispiel kann der Rückfallzeitgeber 207 anfänglich einen „langsamen“ Zeitgeberwert einstellen (z. B. 5 Sekunden). Wenn die Verbindung über die Netzwerkschnittstelle mit der höchsten Priorität (z. B. WLAN) nicht erfolgreich ist und die Verbindungslogik 204 in der Lage ist, erfolgreich zur Netzwerkschnittstelle mit der nächsthöchsten Priorität (z. B. mobil) zurückzufallen, kann der Rückfallzeitgeber ein Anpassen auf einen „schnellen“ Zeitgeberwert vornehmen, der beim nächsten Mal zu verwenden ist, wenn eine Verbindung über die Netzwerkschnittstelle mit der höchsten Priorität versucht wird. Über Prozesse/Dienste hinweg können dieselben Zeitgeberwerte eingerichtet und verwendet werden. Die Zeitgeberwerte können auch pro Prozess/Schnittstelle oder Dienst/Schnittstelle eingestellt werden.
  • Die Verbindungslogik 204 kann die Notwendigkeit, irgendein Verfahren zum Einrichten einer Verbindung zu versuchen, gegenüber dem Strom- und -Kostenaufwand beim Verwenden einiger oder aller Netzwerkschnittstellen 302 bis 304 abwägen. Bestimmte Verbindungstypen, bestimmte Prozesse und/oder bestimmte Dienste können als für ein Zurückfallen nicht in Frage kommend bezeichnet werden (z. B. ist ein Zurückfallen von WLAN auf Mobilfunk für diese Verbindungen, Prozesse oder Dienste deaktiviert). Ein Benutzer kann auch in die Lage versetzt werden, die Verbindungslogik 204 so zu konfigurieren, dass Verbindungen durch bestimmte Prozesse/Dienste über bestimmte Netzwerkschnittstellen verhindert werden. Zum Beispiel kann der Benutzer festlegen, dass jegliche Prozesse, bei denen ein Medien-Streaming durchgeführt wird, nicht über die mobile Schnittstelle zu verwenden sind (z. B. um mobile Datenkosten und/oder den Stromverbrauch zu verringern). Darüber hinaus können bestimmte Prozesse 220 bis 223 so vorkonfiguriert werden, dass nur bestimmte Schnittstellen 302 bis 304 verwendet werden.
  • Ein gegebener Prozess kann zu einem Zurückfallen auf eine mobile Verbindung berechtigt sein, sofern bestimmte festgelegte Bedingungen erfüllt sind; zum Beispiel: (1) das Zurückfallen wurde nicht deaktiviert; (2) die Verbindung würde über WLAN erfolgen; (3) die Verbindung wird nicht über ein VPN geroutet; (4) der Client hat ein Zurückfallen nicht abgewählt (wie bei bestimmten bekannten Prozessen wie „mediaserverd“); (5) der Client hat keine spezielle Schnittstelle verbindlich gewählt; (6) der Client hat nicht die Option „nicht mobil“ festgelegt; und (7) eine mobile Verbindung ist verfügbar. Wenn all diese Bedingungen erfüllt sind, kann der Rückfallzeitgeber zur selben Zeit gestartet werden, zu welcher der Verbindungsversuch über WLAN gestartet wird. Wenn der Verbindungsversuch über WLAN nicht erfolgreich ist oder innerhalb der angegebenen Zeitdauer fehlschlägt, wird ein paralleler Verbindungsversuch über Mobilfunk gestartet. An diesem Punkt „gewinnt“ derjenige Verbindungsversuch, der als Erstes abgeschlossen ist, und der andere Versuch wird abgebrochen.
  • Der „schnelle“ Zeitgeberwert kann auf der Grundlage der gemessenen Umlaufzeit (Round Trip Time (RTT)) über WLAN und die gemessene RTT über Mobilfunk angepasst werden. Das Ziel liegt darin, sicherzustellen, dass die RTT über WLAN immer eine bestimmte Zeitdauer (z. B. 50 Millisekunden) kürzer ist als die RTT über Mobilfunk plus dem schnellen Rückfallzeitgeber. Bei gegebener Tatsache, dass Mobilfunk typischerweise eine viel längere Umlaufzeit besitzt, kann der Rückfallzeitgeber 0 betragen, was bedeutet, dass sowohl WLAN als auch Mobilfunk gleichzeitig mit dem „schnellen“ Zeitgeberwert versucht werden.
  • Wenn eine Rückfallverbindung vor dem ursprünglichen Versuch über WLAN erfolgreich ist, kann, wie erwähnt, ein Wechseln auf den schnellen Zeitgeber erfolgen, wenn er nicht schon verwendet wurde. Wenn ein ursprünglicher Versuch über WLAN erfolgreich ist, kann die Verbindungslogik 204 zum „langsamen“ Zeitgeberwert zurückwechseln, wenn er nicht schon verwendet wurde. Der schnelle/langsame Zeitgeberzustand kann auf der Grundlage einzelner Prozesse gespeichert werden (d.h. jedem Prozess 220 bis 223 ist entweder ein „schneller“ oder ein „langsamer“ Zeitgeberwert zugeordnet).
  • In manchen Fällen können die vorstehenden Techniken den Vorteil besitzen, die Benutzererfahrung zu verbessern, denn falls das WLAN-Netzwerk keine Intemetkonnektivität bereitstellt, kann ein Prozess eine Verzögerung von ungefähr 5 Sekunden für den ersten Verbindungsversuch erfahren (unter Verwendung des „langsamen“ Zeitgebers), alle nachfolgenden Verbindungsversuche wären jedoch ungefähr gerade so schnell wie Mobilfunk (unter Verwendung des „schnellen“ Zeitgebers). WLAN kann immer die erste Gelegenheit zum Verbinden geboten werden (unter der Annahme, dass eine WLAN-Verbindung machbar ist).
  • Sobald eine Transmission-Control-Protocol(TCP)-Verbindung hergestellt ist, wird (in manchen Fällen) unter Umständen nicht zu einer anderen Schnittstelle zurückgewechselt. Ein Grund hierfür liegt darin, dass bei vielen TCP-Implementierungen eine TCP-Verbindung nicht von einer Schnittstelle zur anderen migrieren kann (d.h. weil TCP-Verbindungen durch die Quellen- und Ziel-IP-Adressen und -Ports gebunden sind). Nachfolgende Verbindungen können nach wie vor auf Grundlage einzelner Verbindungen zurückfallen. Alles, was über WLAN funktioniert, wird somit dazu tendieren, WLAN zu verwenden und alles andere wird Mobilfunk verwenden.
  • Die mobile Datenverbindung wird möglicherweise nur verwendet, wenn die Vorrichtung Zugriff auf mobile Daten hat. In einem Roaming-Zustand und/oder wenn der Benutzer mobiles Daten-Roaming deaktiviert hat oder sich im „Flug“-Modus befindet oder wenn der Benutzer mobile Daten deaktiviert hat, wird ein Rückfall auf Mobilfunk deaktiviert.
  • Ein Verfahren zum Zurückfallen auf eine Netzwerkschnittstelle ist in 4 veranschaulicht. Bei 401 wird ein Versuch unternommen, eine Netzwerkverbindung über eine erste Netzwerkschnittstelle (z. B. WLAN) herzustellen. Wie vorstehend erläutert, können die Netzwerkschnittstellen mit einer Priorität versehen werden, und die erste Netzwerkschnittstelle stellt die höchste Priorität der verfügbaren Netzwerkschnittstellen dar. Bei 402 wird der Rückfallzeitgeber gestartet und bei 403 wird eine Ermittlung vorgenommen, ob innerhalb der angegebenen Rückfallzeitgeberdauer eine Verbindung über die erste Netzwerkschnittstelle hergestellt wurde. Falls ja, wird bei 404 die Verbindung über die erste Netzwerkschnittstelle aufrechterhalten, und bei 408 wird der Rückfallzeitgeber auf den „langsamen“ Zeitgeberwert (z. B. 5 Sekunden) eingestellt oder darauf belassen.
  • Wenn innerhalb der angegebenen Rückfallzeitgeberdauer keine Verbindung über die erste Netzwerkschnittstelle hergestellt wurde, wird bei 405 ein paralleler Versuch unternommen, eine Verbindung über die zweite Netzwerkschnittstelle (z. B. mobil) herzustellen. Bei 406 wird eine Ermittlung vorgenommen, ob über die erste oder die zweite Netzwerkschnittstelle erfolgreich eine Verbindung hergestellt wurde. Falls dies über die erste erfolgt ist, wird bei 404 die Verbindung über die erste Netzwerkschnittstelle aufrechterhalten, und bei 408 wird der Rückfallzeitgeber auf den „langsamen“ Zeitgeberwert eingestellt oder darauf belassen. Wenn jedoch zuerst eine Verbindung über die zweite Netzwerkschnittstelle hergestellt wird, wird bei 407 die Verbindung über die zweite Netzwerkschnittstelle aufrechterhalten, und bei 408 wird der Rückfallzeitgeber auf den „schnellen“ Zeitgeberwert eingestellt oder darauf belassen.
  • Obwohl in 4 nicht gezeigt, kann die drahtlose Clientvorrichtung versuchen, auf eine dritte Netzwerkschnittstelle zurückzufallen, wenn eine Verbindung über die erste und die zweite Netzwerkschnittstelle nicht erfolgreich ist. Wenn es zum Beispiel sowohl der ersten als auch der zweiten Schnittstelle nicht gelingt, nach einem weiteren festgelegten Zeitgeberwert eine Verbindung herzustellen, kann ein paralleler Versuch über eine dritte Netzwerkschnittstelle unternommen werden. Die Anzahl von Verbindungsversuchen ist nur durch die Anzahl von Schnittstellen begrenzt, die auf der drahtlosen Clientvorrichtung verfügbar sind. Somit kann die Verbindungslogik 204 jede Netzwerkschnittstelle durchlaufen, bis eine Verbindung erfolgreich ist.
  • Die mobile Vorrichtung kann ermitteln, ob sie mit einem Host verbunden ist, der ihren Verbindungsversuch einfach an einen anderen Ort umleitet (z. B. im Falle einer HTTP-Umleitung). Manche Netzwerke (manchmal als „captive portals“ bezeichnet) erlauben keine Verbindungen auf dem Netzwerk, bis der Benutzer sich authentifiziert oder Bedingungen akzeptiert. Diese Netzwerke fangen einen HTTP-Verbindungsversuch ab und leiten ihn zu einer speziellen Webseite um, die das Authentifizierungsportal oder die Bedingungen enthält. Die vorstehend beschriebenen mobilen Rückfalltechniken können für Fälle verwendet werden, in denen ein Verbindungsversuch auf ein Portal umgeleitet wird. Zum Beispiel wird die mobile Vorrichtung bei Erkennen der Umleitung eine Verbindung über die mobile Schnittstelle initiieren. Auf andere Weise ausgedrückt, ist die Definition einer „erfolgreichen“ Verbindung durch die Fähigkeit bestimmt, auf die gewünschte Ressource zugreifen zu können und nicht nur eine Netzwerkverbindung herzustellen.
  • Obwohl bestimmte Techniken vorstehend innerhalb des Kontextes zweier spezifischer Kommunikationskanäle, WLAN und Mobilfunk, beschrieben wurden, sind die zugrundeliegenden Prinzipien nicht auf irgendeinen speziellen Typ von Kommunikationskanal beschränkt. Zum Beispiel können die hierin beschriebenen Techniken auf jeder Clientvorrichtung mit mehreren Kommunikationsschnittstellen verwendet werden, die in der Lage ist, eine Verbindung über mehrere unterschiedliche Typen von Kommunikationskanälen herzustellen. Zum Beispiel können diese Techniken implementiert werden, um eine Verbindung über eine erste Kommunikationsschnittstelle herzustellen und dann auf eine zweite Kommunikationsschnittstelle zurückzufallen, wenn die Verbindung über die erste Schnittstelle nach einer Zeitdauer nicht erfolgreich ist.
  • Verschiedene beispielhafte API's
  • Verschiedene Anwendungsprogrammierschnittstellen (application programming interfaces (APIs)) können durch eine Softwarekomponente (hierin nachstehend „API-Implementierungs-Softwarekomponente“) implementiert werden, die es einer anderen Softwarekomponente (hierin nachstehend „API-Aufruf-Softwarekomponente“) erlaubt, auf eine oder mehrere Funktionen, Verfahren, Prozeduren, Datenstrukturen und/oder andere durch die API-Implementierungs-Softwarekomponente bereitgestellte Dienste zuzugreifen und sie zu nutzen. Zum Beispiel ermöglicht es eine API einem Entwickler einer API-Aufruf-Softwarekomponente (bei dem es sich um einen Drittentwickler handeln kann), festgelegte, durch eine API-Implementierungs-Softwarekomponente bereitgestellte Funktionen einzusetzen. Es kann eine einzige API-Aufruf-Softwarekomponente oder es können mehr als eine solche Softwarekomponente vorhanden sein. Bei einer API kann es sich um eine Quellcode-Schnittstelle handeln, die ein Computersystem oder eine Programmbibliothek bereitstellt, um Anfragen von einer Softwareanwendung nach Diensten zu unterstützen. Eine API kann hinsichtlich einer Programmiersprache festgelegt sein, die interpretierend oder kompiliert sein kann, wenn eine Anwendung aufgebaut wird, anstelle einer expliziten maschinennahen Beschreibung davon, wie Daten im Speicher gestaltet sind.
  • Die API definiert die Sprache und die Parameter, die API-Aufruf-Softwarekomponenten verwenden, wenn sie auf festgelegte Funktionen der API-Implementierungs-Softwarekomponente zugreifen und diese nutzen. Zum Beispiel greift eine API-Aufruf-Softwarekomponente auf die festgelegten Funktionen der API-Implementierungs-Softwarekomponente durch einen oder mehrere API-Aufrufe zu (manchmal als Funktions- oder Verfahrensaufrufe bezeichnet), die durch die API dargeboten werden. Die API-Implementierungs-Softwarekomponente kann als Reaktion auf einen API-Aufruf von einer API-Aufruf-Softwarekomponente einen Wert durch die API ausgeben. Während die API die Syntax und das Ergebnis eines API-Aufrufs definiert (z. B. wie der API-Aufruf aufzurufen ist und was der API-Aufruf tut), enthüllt die API typischerweise nicht, wie der API-Aufruf die durch den API-Aufruf festgelegte Funktion erreicht. Verschiedene Funktionsaufrufe oder Nachrichten werden über die eine oder mehreren Anwendungsprogrammierschnittstellen zwischen der aufrufenden Software (API-Aufruf-Softwarekomponente) und einer API-Implementierungs-Softwarekomponente übermittelt. Das Übermitteln der Funktionsaufrufe oder Nachrichten kann ein Ausgeben, Aktivieren, Aufrufen, Empfangen, Rücksenden oder Antworten auf die Funktionsaufrufe oder Nachrichten einschließen. Somit kann eine API-Aufruf-Softwarekomponente einen Aufruf übermitteln, und eine API-Implementierungs-Softwarekomponente kann einen Aufruf übermitteln.
  • In beispielhafter Weise kann es sich bei der API-Implementierungs-Softwarekomponente 2010 und der API-Aufruf-Softwarekomponente um ein Betriebssystem, eine Bibliothek, einen Vorrichtungstreiber, eine API, ein Anwendungsprogramm oder ein anderes Softwaremodul handeln (es versteht sich, dass es sich bei der API-Implementierungs-Softwarekomponente und der API-Aufruf-Softwarekomponente um dieselben oder sich voneinander unterscheidende Typen von Softwaremodulen handeln kann). Bei der API-Aufruf-Softwarekomponente kann es sich um eine lokale Softwarekomponente (d.h. auf demselben Datenverarbeitungssystem wie die API-Implementierungs-Softwarekomponente) oder eine entfernt angeordnete Softwarekomponente (d.h. auf einem anderen Datenverarbeitungssystem als die API-Implementierungs-Softwarekomponente) handeln, die mit der API-Implementierungs-Softwarekomponente durch die API über ein Netzwerk kommuniziert. Es versteht sich, dass eine API-Implementierungs-Softwarekomponente auch als eine API-Aufruf-Softwarekomponente fungieren kann (d.h. sie kann API-Aufrufe zu einer API vornehmen, die durch eine andere API-Implementierungs-Softwarekomponente dargeboten wird), und eine API-Aufruf-Softwarekomponente kann auch als eine API-Implementierungs-Softwarekomponente fungieren, indem eine API implementiert wird, die einer anderen API-Aufruf-Softwarekomponente dargeboten wird.
  • Die API kann es mehreren API-Aufruf-Softwarekomponenten, die in unterschiedlichen Programmiersprachen geschrieben sind, ermöglichen, mit der API-Implementierungs-Softwarekomponente zu kommunizieren (somit kann die API Merkmale zum Übersetzen von Aufrufen und Ausgaben zwischen der API-Implementierungs-Softwarekomponente und der API-Aufruf-Softwarekomponente einschließen); die API kann jedoch hinsichtlich einer spezifischen Programmiersprache implementiert sein.
  • 5 veranschaulicht eine API-Architektur, die eine API-Implementierungs-Softwarekomponente 510 (z. B. ein Betriebssystem, eine Bibliothek, einen Vorrichtungstreiber, eine API, ein Anwendungsprogramm oder ein anderes Softwaremodul) einschließt, welche die API 520 implementiert. Die API 520 legt eine oder mehrere Funktionen, Verfahren, Klassen, Objekte, Protokolle, Datenstrukturen, Formate und/oder andere Merkmale der API-Implementierungs-Softwarekomponente fest, die durch die API-Aufruf-Softwarekomponente 530 verwendet werden können. Die API 520 kann mindestens eine Aufrufkonvention festlegen, die festlegt, wie eine Funktion in der API-Implementierungs-Softwarekomponente Parameter von der API-Aufruf-Softwarekomponente empfängt und wie die Funktion ein Ergebnis an die API-Aufruf-Softwarekomponente ausgibt. Die API-Aufruf-Softwarekomponente 530 (z. B. ein Betriebssystem, eine Bibliothek, ein Vorrichtungstreiber, eine API, ein Anwendungsprogramm oder ein anderes Softwaremodul) nimmt durch die API 520 API-Aufrufe vor, um auf die Funktionen der API-Implementierungs-Softwarekomponente 510, die durch die API 520 festgelegt sind, zuzugreifen und diese zu verwenden. Die API-Implementierungs-Softwarekomponente 510 kann als Reaktion auf einen API-Aufruf einen Wert durch die API 520 an die API-Aufruf-Softwarekomponente 530 ausgeben.
  • Es ist ersichtlich, dass die API-Implementierungs-Softwarekomponente 510 zusätzliche Funktionen, Verfahren, Klassen, Datenstrukturen und/oder andere Merkmale einschließen kann, die nicht durch die API 520 festgelegt sind und die für die API-Aufruf-Softwarekomponente 530 nicht verfügbar sind. Es versteht sich, dass sich die API-Aufruf-Softwarekomponente 530 auf demselben System wie die API-Implementierungs-Softwarekomponente 510 befinden oder entfernt angeordnet sein kann und auf die API-Implementierungs-Softwarekomponente 510 unter Verwendung der API 520 über ein Netzwerk zugreift. Obwohl 5 eine einzige API-Aufruf-Softwarekomponente 530 veranschaulicht, die mit der API 520 interagiert, versteht es sich, dass weitere API-Aufruf-Softwarekomponenten, die in anderen Sprachen als (oder derselben Sprache wie) die API-Aufruf-Softwarekomponente 530 geschrieben sein können, die API 520 verwenden können.
  • Die API-Implementierungs-Softwarekomponente 510, die API 520 und die API-Aufruf-Softwarekomponente 530 können auf einem maschinenlesbaren Medium gespeichert sein, das irgendeinen Mechanismus zum Speichern von Informationen in einer Form einschließt, die durch eine Maschine (z. B. einen Computer oder ein anderes Datenverarbeitungssystem) lesbar ist. Zum Beispiel schließt ein maschinenlesbares Medium magnetische Platten, optische Platten, Speicher mit wahlfreiem Zugriff, Nur-Lese-Speicher, Flash-Speichervorrichtungen usw. ein.
  • In 6 („Softwarestapel“) können Anwendungen Aufrufe von Diensten 1 oder 2 unter Verwendung mehrerer Dienst-APIs und von einem Betriebssystem (BS) unter Verwendung mehrerer BS-APIs vornehmen. Der Dienst 1 und der Dienst 2 können unter Verwendung mehrerer BS-APIs Aufrufe des BS vornehmen.
  • Es ist zu beachten, dass der Dienst 2 zwei APIs besitzt, von denen eine (Dienst 2 API 1 ) Aufrufe von Anwendung 1 empfängt und Werte an sie ausgibt und die andere (Dienst 2 API 2) Aufrufe von Anwendung 2 empfängt und Werte an diese ausgibt. Der Dienst 1 (bei dem es sich zum Beispiel um eine Softwarebibliothek handeln kann) nimmt Aufrufe von BS-API 1 vor und empfängt ausgegeben Werte von dieser, und Dienst 2 (bei dem es sich zum Beispiel um eine Softwarebibliothek handeln kann) nimmt Aufrufe von sowohl BS-API 1 als auch BS-API 2 vor und empfängt ausgegebene Werte von diesen. Die Anwendung 2 nimmt Aufrufe von BS-API 2 vor und empfängt ausgegebene Werte von dieser.
  • Beispielhafte Datenverarbeitungsvorrichtungen
  • 7 zeigt ein Blockdiagramm, das ein beispielhaftes Computersystem veranschaulicht, das verwendet werden kann. Obwohl 7 verschiedene Komponenten eines Computersystems veranschaulicht, versteht es sich, dass es nicht beabsichtigt ist, dass sie irgendeine bestimmte Architektur oder Art und Weise des Verbindens der Komponenten wiedergibt, da solche Details für die hierin beschriebenen Techniken nicht relevant sind. Es ist ersichtlich, dass andere Computersysteme, die weniger Komponenten oder mehr Komponenten besitzen, bei den vorliegenden Techniken ebenfalls verwendet werden können.
  • Wie in 7 veranschaulicht, schließt das Computersystem 700, bei dem es sich um eine Form von Datenverarbeitungssystem handelt, den oder die Busse 750 ein, der oder die mit dem Verarbeitungssystem 720, der Stromversorgung 725, dem Speicher 730, und dem nichtflüchtigen Speicher 740 (z. B. ein Festplattenlaufwerk, Flash-Speicher, Phasenänderungsspeicher (Phase-Change Memory (PCM)) und so weiter) verbunden ist. Der oder die Busse 750 können miteinander über vielfältige Brücken, Steuereinheiten und/oder Adapter verbunden sein, wie in der Technik allgemein bekannt ist. Das Verarbeitungssystem 720 kann eine oder mehrere Anweisungen vom Speicher 730 und/oder vom nichtflüchtigen Speicher 740 abrufen und die Anweisungen ausführen, um Operationen wie vorstehend beschrieben durchzuführen. Der Bus 750 verbindet die vorstehenden Komponenten miteinander und verbindet diese Komponenten auch mit der optionalen Dockingstation 760, der Anzeigesteuereinheit und Anzeigevorrichtung 770, Eingabe/AusgabeVorrichtungen 780 (z. B. eine Ethernet-Netzwerkschnittstelle), einer Cursorsteuereinheit (z. B. einer Maus, einem Touchscreen, einem Touchpad, einer Tastatur usw.) und einer oder mehreren drahtlosen Schnittstellen 790 (z. B. Bluetooth, WLAN 202, mobil 203, Infrarot usw.).
  • 8 zeigt ein Blockdiagramm, das ein beispielhaftes Datenverarbeitungssystem veranschaulicht, auf dem die hierin beschriebenen Techniken implementiert werden können. Zum Beispiel kann es sich bei dem Datenverarbeitungssystem 800 um einen handgeführten Computer, einen persönlichen digitalen Assistenten (personal digital assistant (PDA)), ein mobiles Telefon, ein transportables Spielsystem, eine transportable Medienwiedergabeeinheit, eine Tablet- oder eine handgeführte Computervorrichtung handeln, die ein mobiles Telefon, eine Medienwiedergabeeinheit und/oder ein Spielsystem einschließen kann. Als ein weiteres Beispiel kann es sich bei dem Datenverarbeitungssystem 800 um einen Netzwerkcomputer oder eine eingebettete Verarbeitungsvorrichtung innerhalb einer anderen Vorrichtung handeln.
  • Die beispielhafte Architektur des Datenverarbeitungssystems 800 kann für die vorstehend beschriebenen mobilen Vorrichtungen verwendet werden. Das Datenverarbeitungssystem 800 schließt das Verarbeitungssystem 820 ein, das einen oder mehrere Mikroprozessoren und/oder ein System auf einer integrierten Schaltung einschließen kann. Das Verarbeitungssystem 820 ist mit einem Speicher 810, einer Stromversorgung 825 (die eine oder mehrere Batterien einschließt), einer Audio-Eingabe/Ausgabe 840, einer Anzeigesteuereinheit und Anzeigevorrichtung 860, einer optionalen Eingabe/Ausgabe 850, einer oder mehreren Eingabevorrichtungen 870 und einer oder mehreren drahtlosen Schnittstellen 830 (wie z. B. die vorstehend erläuterte WLAN- 202 und mobile 203 Schnittstelle) gekoppelt. Es ist ersichtlich, dass in 8 nicht gezeigte zusätzliche Komponenten ebenfalls ein Teil des Datenverarbeitungssystems 800 sein können und dass weniger Komponenten als in 8 gezeigt verwendet werden können. Darüber hinaus ist ersichtlich, dass ein oder mehrere in 8 nicht gezeigte Busse verwendet werden können, um die vielfältigen Komponenten miteinander zu verbinden, wie beim Stand der Technik allgemein bekannt ist.
  • Im Speicher 810 können Daten und/oder Programme zum Ausführen durch das Datenverarbeitungssystem 800 gespeichert werden. Die Audio-Eingabe/ Ausgabe 840 kann ein Mikrofon und/oder einen Lautsprecher einschließen, um zum Beispiel Musik wiederzugeben und/oder durch den Lautsprecher und das Mikrofon eine Telefonfunktionalität bereitzustellen. Die Anzeigesteuereinheit und Anzeigevorrichtung 860 kann eine grafische Benutzeroberfläche (graphical user interface (GUI)) einschließen. Die drahtlosen (z. B. Funkfrequenz) Schnittstellen 830 (die z. B. drahtlose Sende-Empfänger (Transceiver) und/oder Basisband-Verarbeitungskomponenten zum Übertragen von Daten unter Verwendung von WLAN-Technologie, Infrarottechnologie, Bluetooth-Technologie, drahtloser Mobiltelefontechnologie und/oder weiterer Typen von Technologie einschließen können) können verwendet werden, um mit anderen Datenverarbeitungssystemen zu kommunizieren. Die eine oder die mehreren Eingabevorrichtungen 870 können es einem Benutzer ermöglichen, dem System Eingaben bereitzustellen. Bei diesen Eingabevorrichtungen kann es sich um ein Tastenfeld, eine Tastatur, ein Touchpanel, ein Multi-Touchpanel usw. handeln. Bei der optionalen weiteren Eingabe-Ausgabe 850 kann es sich um einen Verbinder für eine Dockingstation handeln.
  • Die hierin beschriebenen Merkmale können gemäß den verschiedenen Schritten implementiert werden, wie vorstehend dargelegt. Diese Schritte können in maschinenlesbaren Anweisungen ausgebildet sein, die einen universellen oder zweckbestimmten Prozessor veranlassen, bestimmte Schritte durchzuführen. Altemativ dazu können diese Schritte durch spezifische Hardwarekomponenten, die festverdrahtete Logik zum Durchführen der Schritte enthalten, oder durch irgendeine Kombination programmierter Computerkomponenten und angepasster Hardwarekomponenten durchgeführt werden.
  • Die hierin beschriebenen Merkmale können auch als maschinenlesbares Medium zum Speichern des maschinenausführbaren Programmcodes implementiert werden. Das maschinenlesbare Medium kann, ohne auf diese beschränkt zu sein, Floppydisketten, optische Platten, CD-ROMs und magneto-optische Platten, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten oder einen anderen Typ von Medium/maschinenlesbarem Medium einschließen, das zum Speichern elektronischer Programmcodes geeignet ist.
  • Innerhalb der vorhergehenden Beschreibung wurden zum Zwecke der Erklärung zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis der Erfindung bereitzustellen. Es ist jedoch für den Fachmann ersichtlich, dass die Erfindung ohne manche dieser spezifischen Details ausgeführt werden kann. Zum Beispiel wird für den Fachmann leicht ersichtlich sein, dass die hierin beschriebenen funktionellen Module und Verfahren als Software, Hardware oder irgendeine Kombination davon implementiert werden können. Darüber hinaus sind die zugrundeliegenden Prinzipien der Erfindung nicht auf eine mobile Computerimplementierung beschränkt, obwohl manche Ausführungsformen der Erfindung hierin innerhalb des Kontextes einer mobilen Computerumgebung beschrieben sind. Praktisch jeder Typ von Client- oder Peer-Datenverarbeitungsvorrichtungen kann in manchen Ausführungsformen verwendet werden, einschließlich zum Beispiel Desktop- oder Workstation-Computer. Dementsprechend sollte der Umfang und Geist der Erfindung im Hinblick auf die folgenden Ansprüche beurteilt werden.

Claims (15)

  1. Auf einem Netzwerk-Client, der zwei oder mehr Netzwerkschnittstellen einschließt, implementiertes Verfahren, wobei die zwei oder mehr Netzwerkschnittstellen eine erste Netzwerkschnittstelle, bei der es sich um eine WLAN-Schnittstelle handelt, und eine zweite Netzwerkschnittstelle, bei der es sich um eine mobile Schnittstelle handelt, einschließt, wobei das Verfahren umfasst: Versehen der zwei oder mehr Netzwerkschnittstellen mit einer Priorität durch den Netzwerkclient; anfängliches Versuchen einer Verbindung über die erste Netzwerkschnittstelle durch den Netzwerkclient, wobei die erste Netzwerkschnittstelle eine relativ höhere Priorität als die zweite Netzwerkschnittstelle besitzt; Starten eines Rückfallzeitgebers durch den Netzwerkclient im Wesentlichen gleichzeitig mit dem Versuchen der Verbindung über die erste Netzwerkschnittstelle; falls der Rückfallzeitgeber einen ersten festgelegte Zeitgeberschwellenwert erreicht hat, bevor eine erfolgreiche Verbindung über die erste Netzwerkschnittstelle hergestellt wurde, Versuchen einer Verbindung über die zweite Netzwerkschnittstelle durch den Netzwerkclient parallel zum Versuch, eine Verbindung über die erste Netzwerkschnittstelle herzustellen; und Verwenden der ersten der ersten und der zweiten Netzwerkschnittstelle, über die erfolgreich eine Verbindung hergestellt wird, um Daten zu übertragen.
  2. Verfahren nach Anspruch 1, ferner umfassend: Einstellen des festgelegten Zeitgeberschwellenwerts auf einen zweiten festgelegten Zeitgeberschwellenwert als Reaktion auf ein Verbinden über die zweite Netzwerkschnittstelle.
  3. Verfahren nach Anspruch 2, ferner umfassend: Rückeinstellen des festgelegten Zeitgeberschwellenwerts zurück auf den ersten festgelegten Zeitgeberschwellenwert als Reaktion auf ein Verbinden über die erste Netzwerkschnittstelle.
  4. Verfahren nach Anspruch 1, wobei die zwei oder mehr Netzwerkschnittstellen eine dritte Netzwerkschnittstelle einschließen, und wobei, falls der Rückfallzeitgeber einen zweiten festgelegten Zeitgeberschwellenwert erreicht hat, bevor eine erfolgreiche Verbindung über die erste und die zweite Netzwerkschnittstelle hergestellt wurde, eine Verbindung über die dritte Netzwerkschnittstelle versucht wird; und Verwenden der ersten der ersten, zweiten und dritten Netzwerkschnittstelle, über die erfolgreich eine Verbindung hergestellt wird, um Daten zu übertragen.
  5. Verfahren nach Anspruch 1, ferner umfassend: Empfangen einer Eingabe von einem Benutzer; und Versehen der zwei oder mehr Netzwerkschnittstellen mit einer Priorität auf der Grundlage der vom Benutzer empfangenen Eingabe.
  6. Verfahren nach Anspruch 1, wobei das Versehen der Netzwerkschnittstellen mit einer Priorität auf der Grundlage einzelner Prozesse durchgeführt wird, wobei jeder Netzwerkprozess einem separaten Satz von Netzwerkschnittstellenpriorisierungen zugeordnet ist.
  7. Verfahren nach Anspruch 1, wobei die zweite Netzwerkschnittstelle nicht verwendet wird, wenn ein bestimmter Prozess so gestaltet ist, dass er nur die erste Netzwerkschnittstelle verwendet.
  8. Verfahren nach Anspruch 1, ferner umfassend: Ermitteln, ob die Verbindung über ein virtuelles privates Netzwerk (VPN) geroutet wird; und Verwenden der zweiten Netzwerkschnittstelle nur, wenn die Verbindung nicht über ein VPN zu routen ist.
  9. Verfahren nach Anspruch 1, ferner umfassend: Ermitteln, ob ein Prozess, für den eine Verbindung gewünscht wird, ein Bindung an eine bestimmte Netzwerkschnittstelle besitzt, bei der es sich nicht um die zweite Benutzerschnittstelle handelt; und Versuchen, die zweite Netzwerkschnittstelle nur zu verwenden, wenn der Prozess nicht an die erste Netzwerkschnittstelle gebunden wurde.
  10. Verfahren nach Anspruch 1, wobei eine erfolgreiche Verbindung als die Fähigkeit definiert ist, auf eine gewünschte Ressource zuzugreifen.
  11. Maschinenlesbares Medium mit darauf gespeichertem Programmcode, der bei Ausführen durch eine Maschine die Maschine veranlasst, die Operationen eines der Folgenden durchzuführen: Versehen zweier oder mehrerer Netzwerkschnittstellen mit einer Priorität, wobei die zwei oder mehr Netzwerkschnittstellen eine erste Netzwerkschnittstelle und eine zweite Netzwerkschnittstelle einschließen; anfängliches Versuchen einer Verbindung über die erste Netzwerkschnittstelle, wobei die erste Netzwerkschnittstelle eine relativ höhere Priorität als die zweite Netzwerkschnittstelle besitzt; Starten eines Rückfallzeitgebers im Wesentlichen gleichzeitig mit dem Versuchen der Verbindung über die erste Netzwerkschnittstelle; wobei, falls der Rückfallzeitgeber einen ersten festgelegte Zeitgeberschwellenwert erreicht hat, bevor eine erfolgreiche Verbindung über die erste Netzwerkschnittstelle hergestellt wurde, parallel zum Versuch, eine Verbindung über die erste Netzwerkschnittstelle herzustellen, eine Verbindung über die zweite Netzwerkschnittstelle versucht wird; und Verwenden der ersten der ersten und der zweiten Netzwerkschnittstelle, über die erfolgreich eine Verbindung hergestellt wird, um Daten zu übertragen.
  12. Netzwerkclient, der einen Prozessor zum Verarbeiten von Programmcode umfasst, um die Operationen eines der Folgenden durchzuführen: Versehen zweier oder mehrerer Netzwerkschnittstellen mit einer Priorität, wobei die zwei oder mehr Netzwerkschnittstellen eine erste Netzwerkschnittstelle und eine zweite Netzwerkschnittstelle einschließen; anfängliches Versuchen einer Verbindung über die erste Netzwerkschnittstelle, wobei die erste Netzwerkschnittstelle eine relativ höhere Priorität als die zweite Netzwerkschnittstelle besitzt; Starten eines Rückfallzeitgebers im Wesentlichen gleichzeitig mit dem Versuchen der Verbindung über die erste Netzwerkschnittstelle; wobei, falls der Rückfallzeitgeber einen ersten festgelegte Zeitgeberschwellenwert erreicht hat, bevor eine erfolgreiche Verbindung über die erste Netzwerkschnittstelle hergestellt wurde, parallel zum Versuch, eine Verbindung über die erste Netzwerkschnittstelle herzustellen, eine Verbindung über die zweite Netzwerkschnittstelle versucht wird; und Verwenden der ersten der ersten und der zweiten Netzwerkschnittstelle, über die erfolgreich eine Verbindung hergestellt wird, um Daten zu übertragen.
  13. Netzwerkclient nach Anspruch 12, der zusätzlichen Programmcode umfasst, der bei Ausführen die Operationen eines des Folgenden veranlasst: Einstellen des festgelegten Zeitgeberschwellenwerts auf einen zweiten festgelegten Zeitgeberschwellenwert als Reaktion auf ein Verbinden über die zweite Netzwerkschnittstelle.
  14. Netzwerkclient nach Anspruch 13, der zusätzlichen Programmcode umfasst, der bei Ausführen die Operationen veranlasst eines: Rückeinstellens des festgelegten Zeitgeberschwellenwerts zurück auf den ersten festgelegten Zeitgeberschwellenwert als Reaktion auf ein Verbinden über die erste Netzwerkschnittstelle.
  15. Netzwerkclient nach Anspruch 12, wobei die erste Netzwerkschnittstelle eine WLAN-Schnittstelle umfasst und die zweite Netzwerkschnittstelle eine mobile Schnittstelle umfasst.
DE112013006089.2T 2012-12-19 2013-10-22 System und Verfahren zum intelligenten Auswählen einer Netzwerkschnittstelle Active DE112013006089B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/719,927 2012-12-19
US13/719,927 US9439234B2 (en) 2012-12-19 2012-12-19 System and method for intelligently selecting a network interface
PCT/US2013/066195 WO2014099126A1 (en) 2012-12-19 2013-10-22 System and method for intelligently selecting a network interface

Publications (2)

Publication Number Publication Date
DE112013006089T5 DE112013006089T5 (de) 2015-09-03
DE112013006089B4 true DE112013006089B4 (de) 2020-01-02

Family

ID=49517752

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013006089.2T Active DE112013006089B4 (de) 2012-12-19 2013-10-22 System und Verfahren zum intelligenten Auswählen einer Netzwerkschnittstelle

Country Status (5)

Country Link
US (1) US9439234B2 (de)
CN (1) CN104798405B (de)
DE (1) DE112013006089B4 (de)
TW (1) TWI493997B (de)
WO (1) WO2014099126A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363754B2 (en) 2012-08-17 2016-06-07 Apple Inc. Managing power consumption in mobile devices
US10187430B2 (en) 2013-06-07 2019-01-22 Apple Inc. Smart management of background network connections
US9603086B2 (en) * 2013-06-07 2017-03-21 Apple Inc. Smart management of background network connections based on historical data
US9350772B2 (en) 2014-10-24 2016-05-24 Ringcentral, Inc. Systems and methods for making common services available across network endpoints
US9398085B2 (en) 2014-11-07 2016-07-19 Ringcentral, Inc. Systems and methods for initiating a peer-to-peer communication session
US10187300B2 (en) 2015-12-08 2019-01-22 Carrier Corporation Fallback mobile proxy
KR102515269B1 (ko) * 2016-03-05 2023-03-30 삼성전자주식회사 전자장치에서의 비디오 스트리밍 장치 및 방법
US20180019802A1 (en) * 2016-07-15 2018-01-18 Qualcomm Incorporated Managing Network Communication of a Drone
WO2019172044A1 (ja) * 2018-03-09 2019-09-12 パナソニックIpマネジメント株式会社 制御方法、機器、及び、システム
US20220337582A1 (en) * 2018-11-27 2022-10-20 Assa Abloy Ab Device Engagement Connection System with Verification
JP7394653B2 (ja) * 2020-02-19 2023-12-08 本田技研工業株式会社 通信装置、通信システム、無線基地局、通信制御方法、及びプログラム
US11630551B1 (en) * 2021-10-28 2023-04-18 Dallen Yu Chao Smart keychain or accessory devices, systems, and methods
GB202216434D0 (en) 2022-11-04 2022-12-21 Bullitt Group Ltd Dual-mode cellular and satellite messaging

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050003822A1 (en) 2003-07-01 2005-01-06 Markus Aholainen Method and apparatus for automatically selecting a bearer for a wireless connection
US20060045069A1 (en) 2004-08-31 2006-03-02 Ephraim Zehavi Cellular network service over WLAN

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003077580A1 (en) * 2002-02-15 2003-09-18 Telefonaktiebolaget Lm Ericsson (Publ) Method and node for establishing priority connections in telecommunication networks
CN1324490C (zh) 2003-07-01 2007-07-04 联想(新加坡)私人有限公司 面向应用的自动连接系统和方法
US20080275992A1 (en) 2005-02-09 2008-11-06 Access Systems Americas, Inc. System and method of managing connections between a computing system and an available network using a connection manager
US8971883B2 (en) 2006-11-07 2015-03-03 Qualcomm Incorporated Registration timer adjustment based on wireless network quality
US7898995B2 (en) * 2007-02-21 2011-03-01 Qualcomm, Incorporated Dynamic adjustment of inactivity timer threshold for call control transactions
JP5085203B2 (ja) * 2007-06-28 2012-11-28 京セラ株式会社 無線通信端末
US8495224B2 (en) 2007-06-29 2013-07-23 Apple Inc. Network management
US8406160B2 (en) 2010-05-21 2013-03-26 Qualcomm Incorporated Time-sliced search of radio access technologies during connected-mode radio link failure
EP2578050B1 (de) * 2010-05-28 2018-12-12 Nokia Technologies Oy Verfahren und vorrichtung zur definition einer netzwerkschnittstellenpräferenzregel
CN102026263B (zh) * 2010-12-09 2013-08-28 苏州捷泰科信息技术有限公司 一种无线通信网络连接方法
US8811187B2 (en) * 2011-08-17 2014-08-19 Verizon Patent And Licensing Inc. Radio access network technology optimization based on application type
JP2013078065A (ja) * 2011-09-30 2013-04-25 Fujitsu Mobile Communications Ltd 無線通信端末及び無線通信方法
US9077622B2 (en) * 2012-02-16 2015-07-07 Blackberry Limited Method and apparatus for automatic VPN login on interface selection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050003822A1 (en) 2003-07-01 2005-01-06 Markus Aholainen Method and apparatus for automatically selecting a bearer for a wireless connection
US20060045069A1 (en) 2004-08-31 2006-03-02 Ephraim Zehavi Cellular network service over WLAN

Also Published As

Publication number Publication date
DE112013006089T5 (de) 2015-09-03
TW201440557A (zh) 2014-10-16
CN104798405A (zh) 2015-07-22
CN104798405B (zh) 2019-03-22
US20140171065A1 (en) 2014-06-19
US9439234B2 (en) 2016-09-06
TWI493997B (zh) 2015-07-21
WO2014099126A1 (en) 2014-06-26

Similar Documents

Publication Publication Date Title
DE112013006089B4 (de) System und Verfahren zum intelligenten Auswählen einer Netzwerkschnittstelle
DE102014208162B4 (de) Mehrweg-tcp-subflow-aufbau und -steuerung
DE602004009637T2 (de) Selektive Vorauthentifizierung zu den vorzeitigen primären drahtlosen Zugangspunkten
DE102016212392B4 (de) Priorisierung von drahtlosen Paketen über kurze Entfernungen für zeitkritische Anwendungen
DE102015208666B4 (de) Langlebige MPTCP-Sitzungen
DE102017211969B4 (de) Dynamisches Verbindungsüberwachen, um ein Ungleichgewicht bei einer LAA/LTE-Funkressourcenallokation aufzulösen
DE112016000711T5 (de) Dynamisches Teilnehmer-Identitätsmodul
DE60214059T2 (de) Verfahren und Funkschnittstellenschicht bestehend aus einer Menge von Anwendungsprogrammierungsschnittstellen (APIs)
DE112015004267T5 (de) Speicherung und Übertragung von Anwendungsdaten zwischen Vorrichtungen
CN104125307A (zh) 一种数据流量分享方法和装置
DE102012207695A1 (de) Übertragung des Anwendungsstatus über verschiedene Vorrichtungen hinweg
DE112016000409B4 (de) Sicherheitstechniken für das erneute verbinden mit einer konferenzsitzung mithilfe eines computergeräts
DE112010000431T5 (de) Netzwerkverbindungsverwaltungseinrichtung
DE112013002517T5 (de) Schnelle Kommunikationswiederherstellung bei Doppelnetzfunkressourcenverwaltung
CN106339632B (zh) 一种分配m2m设备管理权限的方法、用户设备及系统
DE102019216558A1 (de) Mechanismus zur Aktivierung und Verwaltung einer eigenständigen Vorrichtung für Mobilfunkdienste
CN105872956A (zh) 一种基于蓝牙sim卡的远程鉴权应用系统及方法
DE112015004457B4 (de) Vermittlerdienst-Vorrichtung zum Steuern einer Mobileinheit
DE102017107863A1 (de) Verfahren und Vorrichtung für dynamische Fahrzeugkommunikationsantwort
DE102017116422A1 (de) Verfahren und gerät für gemeinsame fahrzeug-fernkonnektivität mit unterschiedlichen hosts
DE102016107051A1 (de) Identifikation einer Breitbandverbindung
DE10296595B4 (de) Verfahren und Einrichtung zum Verarbeiten von Echtzeitereignissen, die einem Drahtloskommunikationsprotokoll zugeordnet sind
DE102012100034A1 (de) Drahtloses Gerät und drahtloses Verbindungsverfahren dafür
CN104349506A (zh) 关联管理方法、无线接入设备及系统
US20220124790A1 (en) Method for data transmission, method for data reception, and device

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final