DE602005005724T2 - Endpunktadressenänderung in einem Paketnetzwerk - Google Patents

Endpunktadressenänderung in einem Paketnetzwerk Download PDF

Info

Publication number
DE602005005724T2
DE602005005724T2 DE602005005724T DE602005005724T DE602005005724T2 DE 602005005724 T2 DE602005005724 T2 DE 602005005724T2 DE 602005005724 T DE602005005724 T DE 602005005724T DE 602005005724 T DE602005005724 T DE 602005005724T DE 602005005724 T2 DE602005005724 T2 DE 602005005724T2
Authority
DE
Germany
Prior art keywords
migrator
address
new
endpoint
migrant
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
DE602005005724T
Other languages
English (en)
Other versions
DE602005005724D1 (de
Inventor
Furquan A. Middletown Ansari
Ajay Woodbridge Sathyanath
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies 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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of DE602005005724D1 publication Critical patent/DE602005005724D1/de
Application granted granted Critical
Publication of DE602005005724T2 publication Critical patent/DE602005005724T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • H04W36/0019Control or signalling for completing the hand-off for data sessions of end-to-end connection adapted for mobile IP [MIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/06Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft das Wechseln von Übertragungsverbindungen in einem Kommunikationsnetzwerk und spezieller den Wechsel bestehender Sitzungen über Adressen in einem Paketnetzwerk.
  • Beschreibung des Standes der Technik
  • Mit dem Wachstum und der starken Zunahme von mobilen und drahtlosen Rechner-Einrichtungen (mobilen Einrichtungen), die auf das Internet zugreifen, ist eine Infrastruktur erforderlich, die einen reibungslosen Wechsel über Internet-Protokoll-(IP)-Subnetzwerke (Subnetze) unterstützt. Viele Benutzer verwenden ein dynamisches Host-Konfigurations-Protokoll (DHCP), um eine IP-Adresse für Verbindungen zu erhalten, aber die Verwendung von DHCP bietet nur Portabilität und liefert keine relative Transparenz für einen reibungslosen Bereichswechsel. Jede Bewegung einer mobilen Einrichtung über ein IP-Subnetz erfordert zuerst die Freigabe der alten IP-Adresse und dann die Erlangung einer neuen IP-Adresse, was zum Verlust von Übertragungs-Verbindungen (und Verbindungen höherer Ebenen) führt.
  • Die normale Netzwerk-Kommunikation zwischen zwei Einheiten umfasst die Festlegung einer eindeutigen Endpunkt-Kennung, wie z. B. einer IP-Adresse, die sich während der Kommunikationsdauer nicht ändert. Zum Beispiel beginnt eine typische Übertragungs-Steuerungs-Protokoll-(TCP)-Verbindungsaufbau-Prozedur zwischen zwei Endpunkten (z. B. Rosts) damit, dass die Anwendungen ein Socket-Anwendungs-Programmierungs-Schnittstellen-(API)-Paket benutzen. Jede Socket-API ist explizit auf ein gegebenes 5-Tupel begrenzt, das die folgenden fünf Elemente umfasst. Das erste Element ist das "Protokoll"-Element, welches das spezielle Kommunikations-Protokoll für das Paket kennzeichnet. Das zweite Element ist das Element "Source IP address", das die IP-Adresse des Quell-Knotens, von dem das Paket stammt, kennzeichnet. Das dritte Element ist das Element "Source Transport Port", das den Anschluss des Quell-Knotens, von dem das Paket stammt, kennzeichnet. Das vierte Element ist das Element "Destination IP Address", das die IP-Adresse des Ziel-Knotens, der das Paket empfängt, kennzeichnet. Das fünfte Element ist das Element "Destination Transport Port", das den Anschluss des Ziel-Knotens, der das Paket empfängt, kennzeichnet. Alle Änderungen eines beliebigen dieser 5-Tupel-Elemente während einer Sitzung werden einen Sitzungs-Fehler verursachen und typischerweise einen erneuten Aufbau der Verbindung auslosen.
  • Bei gegebener 5-Tupel-Struktur werden im Folgenden der Aufbau und die Aufrechterhaltung einer Verbindung in derzeitigen TCP-kompatiblen Paketnetzwerken beschrieben. Die Verbindungsaufbau-Prozedur einer TCP-Engine umfasst eine Sequenz von ausgetauschten Nachrichten zwischen einem Client (erster Endpunkt) und einem Server (zweiter Endpunkt). Der Client beginnt mit dem Senden einer SYN-Nachricht an den Server, und der Client empfängt als Antwort eine Nachricht SYN-ACK vom Server. Der Client antwortet als Quittung dem Server mit einer ACK-Nachricht, und die Verbindung zwischen dem Client und dem Server ist dann geöffnet und voll funktionsfähig. Die TCP-Engine an beiden Enden der Verbindung geht in den Zustand ESTABLISHED, wobei die Zustandsinformation im TCP-Steuerblock (TCB) im Betriebssystemkern gespeichert wird. Die TCP-Sitzung ist nun eindeutig im Netzwerk durch das 5-Tupel identifizierbar, das in den IP-Datagrammen (Paketkopf-Teilen) enthalten ist, die das Netzwerk durchlaufen. Aus der Sicht der Anwendung und des Betriebssystems kann diese Sitzung eindeutig durch den Socket identifiziert werden, der dieser Sitzung zugeordnet ist. Jede Änderung auch nur eines der Elemente des 5-Tupels führt zu einem Sitzungs-Fehler.
  • Ein TCP-Sitzungs-Fehler tritt auf, wenn TCP die Sitzung abbricht und die zugehörigen Socket-Bindungen schließt. Es gibt viele Gründe, warum TCP eine Verbindung abbricht, einige davon sind: 1) Empfang eines Paketes TCP RST (Reset) vom entfernten Ende; 2) Überschreitung der Anzahl von Neuübertragungs-Versuchen, die im Protokoll definiert sind; 3) zu viele unquittierte "Keep-alive"-Probe-Pakete; 4) Aufforderung durch die Anwendung; und 5) eine anormale externe Bedingung. Diese TCP-Reset-Bedingungen treten im Normalbetrieb eines Paketnetzwerks routinemäßig auf und können durch Änderung der Schnittstellen-IP-Adresse, ausgedehnte Zeiten des Verbindungsverlustes, Host-Ausfälle/Neustarts oder ähnliche Beiträge zu einem TCP-Verbindungsfehler entstehen.
  • Da die Anwendung, die die TCP-Übertragungs-Sitzung benutzt, an den Socket mit dem ursprünglichen 5-Tupel (mit der alten IP-Adresse) gebunden ist, wird durch Ändern der IP-Adresse der Schnittstelle die zugehörige Socket-Bindung der Anwendung nicht geändert. Alle Benutzerdaten, die von der Anwendung an den Kernel gesendet werden, werden in der TCP-Ebene als Transportschicht-Segmente in der TCP-Sende-Warteschlange (send-Q) gespeichert, weil es keine gültige Ausgabe-Schnittstelle mit der alten IP-Adresse gibt, auf der die Daten gesendet werden können. Der Neusende-Mechanismus von TCP versucht, diese Daten erneut auszusenden, bis eine gültige Route/Schnittstelle erscheint oder ein Timeout der Verbindung selbst auftritt. Wenn zwischen den beiden End-Systemen keine Erreichbarkeit vorliegt, bleibt der TCP-Zustand auf jeder Seite (normalerweise) in seinem vorherigen Zustand (z. B. bleiben beide Seiten im Zustand ESTABLISHED). Wenn die IP-Adresse der Schnittstelle auf ihre ursprüngliche Adresse (dadurch das ursprüngliche 5-Tupel) zurückkehrt, wird die Kommunikation zwischen den Endpunkt-Anwendungen wieder aufgenommen, vorausgesetzt, es ist eine Route vorhanden. Wenn sich jedoch die IP-Adresse der Schnittstelle ändert, werden alle vom entfernten Host empfangenen Datenpakete auf der IP- Ebene verworfen, da es keine gültige Schnittstelle gibt, die den Daten zuzuordnen ist. Sowohl am lokalen Ende, als auch am entfernten Ende tritt abhängig von deren TCP-Zustand ein Timeout der entsprechenden Verbindungen auf.
  • Der Prozess zum Aufbau und zur Aufrechterhaltung von Sitzungen ist restriktiv und setzt Grenzen für bestimmte Arten von Anwendungen, wie z. B. Teilnehmer-Mobilität oder fehlertolerante Verbindungen. Mobile IP nach dem Stand der Technik wurde entwickelt, um Host-Mobilität zu erreichen, indem diese Einschränkungen unter Verwendung von Routing-Techniken in der Netzwerkschicht umgangen werden. Entsprechend Mobile IP muss, damit ein Knoten seinen Zugangspunkt ändern kann, ohne seine Fähigkeit zu kommunizieren zu verlieren, zurzeit typischerweise einer der folgenden Mechanismen verwendet werden: Entweder 1) der Knoten muss seine IP-Adresse ändern, wenn er seinen Zugangspunkt ändert, oder 2) es müssen für den Host spezifische Routen im Großteil des Internet-Koppelbausteins verbreitet werden. Beide diese Alternativen sind oft nicht akzeptierbar. Der erste Mechanismus macht es einem Knoten unmöglich, Verbindungen auf Übertragungs-Ebene und auf höheren Ebenen aufrecht zu erhalten, wenn der Knoten den Standort wechselt. Der zweite Mechanismus zeigt schwere Skalierungs-Probleme, die insbesondere relevant sind, wenn man das explosive Wachstum des Verkaufs von (mobilen) Notebook-Computern berücksichtigt.
  • Im Stand der Technik gibt es viele Verfahren, die vorgeschlagen wurden, um Probleme der Host-Mobilität und der Ausfallsicherheit zu verringern. Diese Verfahren können in die klassifiziert werden, die eine Lösung für die Netzwerkschicht (z. B. IP-Schicht), die Transportschicht (z. B. TCP/UDP (User Datagram Protocol)) oder höherer Ebenen (z. B. Socket- oder Anwendungsschicht) liefern.
  • Mobile IP, wie in "Mobile IP", IEEE Communications Magazine, Mai 1997, Seite 84–99 beschrieben, unternimmt den Versuch, Probleme der Host-Mobilität auf der Netzwerk-Ebene zu lösen, indem ein Grad von Routing-Umwegen oder Dreieck-Routing aller Pakete von einem entsprechenden Host zu einem mobilen Knoten verwendet wird. Diese Routing-Umwege werden durch Verwendung von "Home Agents" und "Foreign Agents" erreicht, die Proxies sind, welche Dienste für den mobilen Knoten bereitstellen. Obwohl Mobile IP die Host-Mobilität und Erreichbarkeits-Probleme gut behandelt, behandelt es keine Fehler von Übertragungsverbindungen (z. B. wenn Änderungen der Übertragungs-Endpunkte zu einem Sitzungs-Fehler führen). Typischerweise müssen Anwendungen abhängig von den Verbindungsmöglichkeiten der Übertragungs-Sitzung neu gestartet und eine neue Übertragungsverbindung aufgebaut werden. Andere Nachteile von Mobile IP sind ein nicht optimales Dreieck-Routing und ein umfangreicher Einsatz von IP-Tunneling. Aus Sicherheitsgründen verbieten Dienstanbieter typischerweise getunnelte Pakete. Wegen der erhöhten Häufigkeit von Denial-Of-Service-(DOS)-Angriffen benutzen Dienstanbieter außerdem Eingangs-Filter, um Pakete zu blockieren, die Quell-Adressen fälschen. Obwohl dieses Problem der Eingangs-Filterung gelöst werden kann, indem Rückwärts-Tunneling benutzt wird, führt Rückwärts-Tunneling zu einer weiteren suboptimalen Verwendung von Vernetzungs-Ressourcen und fügt zusätzliche Paket-Verzögerungen zwischen zwei Endpunkten hinzu.
  • Verfahren, die den Versuch unternehmen, das Problem der Ende-zu-Ende-Host-Mobilität auf der Übertragungs-Ebene oder auf höheren Ebenen zu lösen, gehen typischerweise wie folgt vor: 1) Aufteilung der Verbindung in mehrere Segmente, 2) Änderung einer Standard-TCP-Implementation durch Hinzufügung neuer Nachrichten und Zustände zum TCP-Zustandsautomaten, oder 3) überlisten der Anwendung, so dass sie glaubt, dass die Verbindung noch besteht, während versucht wird, die Verbindung neu aufzubauen, wie zum Beispiel in Su, G. und Nieh, J.: "Mobile Communication with Virtual Network Address Translation" Feb. 2002, TR CUCS-003-02, Department of Computer Science, Columbia University, XP002286437 offen gelegt.
  • Zum Beispiel verwenden MSOCKS (Mobile Sockets) einen Proxy für Verbindungs-Teilung zur Umleitung einer Verbindung. MSOCKS fügen einen Proxy in den Kommunikations-Pfad zwischen den mobilen Knoten und seine entsprechenden Hosts ein und benutzten einen TCP-Spleiß-Mechanismus, um die Verbindung in mehrere Segmente aufzuteilen und somit die Mobilitäts-Probleme des mobilen Knotens vor den entsprechenden Hosts zu verstecken. Durch die Hinzufügung eines Kommunikations-Pfad-Proxy kann sich der Dienst jedoch beträchtlich verschlechtern.
  • Einige Verfahren umfassen die Einführung einer Bibliothek zwischen der Anwendung und der Socket-API, die die Illusion einer einzigen, nicht unterbrochenen Verbindung über aufeinander folgende Verbindungs-Instanzen aufrechterhält. All diese Lösungen erfordern es, die Anwendung mit ihren (speziellen) Bibliotheken zu verbinden. Die Illusion einer nicht unterbrochenen Verbindung erhält man, indem man die Anwendung so überlistet, dass sie glaubt, die Übertragungs-Sitzung ist noch aktiv, obwohl die Übertragungs-Sitzung geschlossen wurde. Die Zwischen-Bibliothek versucht dann, die (neue) Übertragungs-Verbindung erneut aufzubauen und bildet die neue Übertragungs-Verbindung auf die Anwendung ab, die sie benutzt. Die Implementation und die damit verbundenen Schwierigkeiten im Betrieb solcher Lösungen umfassen Virtualisierungs-Mechanismen, wie I/O-Polling, asynchrone und blockierungsfreie I/O-Prozesse, der Bedarf an Timern und Signal-Handlern, und der Bedarf an zusätzlichen Prozesssteuerungs-Schnittstellen, wie "wait", "kill" und "exec".
  • Ein anderes Verfahren liefert einen Mechanismus zum Erreichen der Ende-zu-Ende-Host-Mobilität durch Änderung des Übertragungs-Ebenen-Protokolls und der End-Anwendungen. Die Änderung fügt neue Zustände und Semantiken zum endlichen TCP-Zustandsautomaten hinzu und definiert neue TCP-Optionen, um die Migration der Verbindung auszuhandeln. Es gibt weitere Verfahren, bei denen entweder der TCP-Kopf, das Paketformat, die Protokoll-Semantik geändert werden, oder zusätzliche Kopfinformationen in den Paketen hinzugefügt werden. Der Nachteil dieser Techniken ist jedoch, dass die Endbenutzer-Anwendungen die neue Funktion kennen müssen, um sie zu nutzen, was eine Änderung der vorhandenen Anwendungen erforderlich macht.
  • In einer Ausführung liefert die vorliegende Erfindung ein Verfahren, um während einer Sitzung zwischen einem Migrator und einem Nicht-Migrator in einem auf Paketen basierenden Kommunikationssystem von einer aktuellen Migrator-Endpunkt-Adresse zu einer neuen Migrator-Endpunkt-Adresse zu wechseln. Ein Migrator ist ein Endpunkt, der eine Adresse hat, die während der Sitzung von der aktuellen Migrator-Endpunkt-Adresse zu der neuen Migrator-Endpunkt-Adresse wechselt, und ein Nicht-Migrator ist ein Endpunkt, der eine Adresse hat, die sich während der Sitzung nicht ändert. Das Verfahren umfasst den Schritt a) Im Migrator Ändern der aktuellen Migrator-Endpunkt-Adresse auf die neue Migrator-Endpunkt-Adresse durch die Schritte a1) Senden einer Registrierungs-Anforderungs-Steuerungs-Nachricht an den Nicht-Migrator über einen Außerband-Kanal, um den Migrator beim Nicht-Migrator zu registrieren, a2) Empfangen einer Registrierungs-Antwort-Steuerungs-Nachricht vom Nicht-Migrator über den Außerband-Kanal als Quittung der Registrierung beim Nicht-Migrator, a3) nachdem die Schritte a1) und a2) ausgeführt wurden, logisches Umschalten auf die neue Migrator-Endpunkt-Adresse durch Wechsel von einem aktuellen 5-Tupel, das die aktuelle Migrator-Endpunkt-Adresse enthält, auf ein neues 5-Tupel, das die neue Migrator-Endpunkt-Adresse enthält, und a4) Aktualisierung einer Kernel-Struktur des Migrators durch Ändern eines Socket mit dem neuen 5-Tupel, um das neue 5-Tupel wiederzugeben, wobei der Socket der Sitzung zugeordnet ist. Das Verfahren umfasst ferner die Schritte b) Einstellen der Übertragung von Paketen mit der neuen Migrator-Endpunkt-Adresse zum Nicht-Migrator, und c) Informieren des Nicht-Migrators über den Außerband-Kanal, der von dem Kanal der Sitzung zwischen dem Migrator und dem Nicht-Migrator getrennt ist, über die Änderung auf die neue Migrator-Endpunkt-Adresse durch die Schritte c1) Senden einer Steuerungs-Nachricht an den Nicht-Migrator, die den Nicht-Migrator von der Änderung auf die neue Migrator-Endpunkt-Adresse informiert, und c2) Empfangen der Bestätigung vom Nicht-Migrator, dass der Nicht-Migrator die neue Migrator-Endpunkt-Adresse geändert hat. Das Verfahren umfasst ferner den Schritt d) der Wiederaufnahme der Übertragung von Paketen mit der neuen Migrator-Endpunkt-Adresse zum Nicht-Migrator.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Weitere Aspekte, Eigenschaften und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung, den beigefügten Ansprüchen und den begleitenden Zeichnungen offensichtlich, in denen:
  • 1 eine nahtlose Übertragungs-Endpunkt-Mobilitäts-Architektur (Seamless Transport Endpoint Mobility, STEM) für zwei Knoten zeigt, die über ein Paket-Netzwerk kommunizieren;
  • 2 eine beispielhafte Migrations-Ereignis-Sequenz zwischen einem Migrator und einem Nicht-Migrator zeigt;
  • 3 ein beispielhaftes Verfahren zeigt, das vom Migrator während der Ereignis-Sequenz in 2 benutzt wird;
  • 4 ein beispielhaftes Verfahren zeigt, das vom Nicht-Migrator während der Ereignis-Sequenz in 2 benutzt wird;
  • 5 ein beispielhaftes Format eines allgemeinen Steuerungs-Kopfes einer STEM-System-Steuerungs-Nachricht zeigt;
  • 6 ein beispielhaftes Format eines Erweiterungs-Kopfes einer STEM-System-Steuerungs-Nachricht zur Authentifizierung zeigt;
  • 7 ein beispielhaftes Format eines Erweiterungs-Kopfes einer STEM-System-Steuerungs-Nachricht für die Migration zeigt;
  • 8 ein beispielhaftes Format eines Erweiterungs-Kopfes einer STEM-System-Steuerungs-Nachricht für Opaque Data zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Terminologie und Definitionen werden als Hilfe zum Verständnis der vorliegenden Erfindung benutzt. Ein "Migrator" oder "Migrations-Endpunkt" ist ein End-System, das sich gerade im Prozess der Änderung seiner Internet-Protokoll-(IP)-Adresse befindet, oder sie bereits geändert hat. Der Migrator ist das End-System, das eine Steuerungs-Nachricht an einen entfernten Endpunkt auslöst, die seine neue IP-Adresse kennzeichnet. Ein "Nicht-Migrator" oder "Nicht-Migrations-Endpunkt" oder "fester Endpunkt" ist das entfernte Endpunkt-System, das seine IP-Adresse nicht ändert. Der Nicht-Migrator akzeptiert die vom Migrator gesendete Steuerungs-Nachricht und antwortet dem Migrator mit einer Quittungs-Nachricht. Ein Eins-zu-Eins-Zusammenhang zwischen Migrator/Nicht-Migrator und Client/Server ist nicht notwendigerweise vorhanden. Für die TCP-Verbindungen ist ein Client ein System, das eine TCP-Verbindung zu einem anderen System auslöst, während der Server das System ist, das für den Client einen Dienst bereitstellt, wie z. B. ein Datei-Übertragungs-Protokoll (File Transport Protocol, FTP), Telnet oder Secure Shell (SSH). Der Migrator/Nicht-Migrator kann entweder ein Client oder ein Server sein.
  • Der Prozess zum Aufbau und zur Aufrechterhaltung einer Sitzung zwischen dem Migrator und dem Nicht-Migrator entspricht folgenden Charakteristiken. Ein Knoten erhält die bestehende Kommunikation mit anderen Knoten aufrecht, während er seine IP-Adresse oder Schnittstelle ändert. Alle Nachrichten, die erforderlich sind, die Verbindung auf die neue IP-Adresse zu ändern, können optional authentifiziert werden, um einen Schutz gegen Sicherheitslücken der Sitzung vorzusehen, wie z. B. gegen verschiedene Techniken von Umleitungs- und Replay-Attacken. Der Knoten erhält eine IP-Adresse durch zum Beispiel das dynamische Host-Konfigurations-Protokoll (DHCP), durch manuelle Konfiguration oder andere verfügbare Netzwerk-Mechanismen. Die IP-Adresse (oder der Punkt des Anschlusses) ändert sich nicht rasch. Die Geschwindigkeit, mit der sich IP-Adressen ändern können, während die entsprechende Übertragungs-Ebenen-Verbindung aufrecht erhalten bleibt, ist von der Geschwindigkeit abhängig, mit der die Knoten miteinander kommunizieren können und nach der Authentifizierung ihre Kernel-Datenstrukturen aktualisieren können. Beide End-Systeme der Verbindung haben vorzugsweise einen relativ symmetrischen Code, der eine Ausführung der vorliegenden Erfindung implementiert.
  • Gemäß beispielhaften Ausführungen der vorliegenden Erfindung führt eine nahtlose Übertragungs-Endpunkt-Mobilitäts-Architektur (STEM) eine dynamische Änderung einer 5-Tupel-Zuordnung für eine aufgebaute Sitzung (Verbindung) durch, die in der Kernel-Datenstruktur des Migrators gespeichert ist, und informiert den Nicht-Migrator, dieselbe Adressen-Änderung seiner Kernel-Datenstruktur durchzuführen. Ein dynamisches, ladbares Kernel-Modul und ein Steuerungs-Informations-Kommunikations-Dienstprogramm werden in jedem der Endpunkte eingesetzt, um die Quell- und Ziel-IP-Adressen in Paketen beider Endpunkte zu ändern. Somit ist es wünschenswert, dass, um eine erfolgreiche Übertragungs-Endpunkt-Migration auf eine neue IP-Adresse zu erzielen, Referenzen auf die alte IP-Adresse während der Datenübertragung beseitigt werden. Für den Migrator enthalten alle an den Nicht-Migrator gesendeten IP-Pakete die neue IP-Adresse als Quelladresse, während alle vom Nicht-Migrator empfangenen Pakete die neue IP-Adresse als Zieladresse enthalten. Aus der Perspektive des Nicht-Migrators müssen alle vom Migrator empfangenen IP-Pakete die neue IP-Adresse als Quelladresse enthalten, während alle zum Migrator gesendeten Pakete die neue IP-Adresse als Zieladresse enthalten müssen.
  • 1 zeigt das STEM-System 100 für die Knoten 101 und 102, die über das Internet 103 kommunizieren. Der Knoten 101 enthält zwei Benutzer-Anwendungen APP1 und APP2, die Daten erzeugen, die vom Transportschicht-Modul 106 und vom Netzwerkschicht-Modul 107 verarbeitet werden, bevor sie als Pakete über das Internet 103 übertragen werden. Knoten 102 enthält Netzwerkschicht-Modul 108 und Transportschicht-Modul 109, um Pakete zu verarbeiten, die vom Internet 103 empfangen werden, um die Daten an Anwendungs-Server SRV1, SRV2 und SRV3 zu liefern. Die Transportschicht-Module 106 und 109 kommunizieren zum Beispiel auf der Grundlage des Übertragungs-Steuerungs-Protokolls (TCP), und die Netzwerkschicht-Module 107 und 108 kommunizieren zum Beispiel auf der Grundlage von IP. Die TCP/IP-Kommunikation ist in der Technik wohlbekannt, und findet sich zum Beispiel in Andrew S. Tannenbaum, Computer Networks, zweite Auflage, Prentice Hall, 1988.
  • Die Anwendung APP1 baut eine TCP/IP-Sitzung mit Anwendungs-Server SRV1 auf und erhält sie aufrecht. STEM-Dienstprogramme 104 und 105 koordinieren den Austausch und die Steuerung der Daten, wie z. B. die Erkennung der 5-Tupel-Information, die Quell- und Ziel-IP-Adressen enthält, für die Knoten 101 bzw. 102. Die STEM-Dienstprogramme 104 und 105 können über einen Außerband-Kanal (Kanal, der vom TCP-Sitzungs-Kanal getrennt ist) kommunizieren, der als User-Datagramm-Protocol-(UDP)-Sitzung dargestellt ist, die über das Internet 103 läuft.
  • Jedes STEM-Dienstprogramm ist mit einem dynamisch ladbaren Kernel-Modul (in 1 nicht gezeigt) implementiert. Ein Dienstprogramm ist ein Programm, das kontinuierlich läuft und den Zweck hat, regelmäßige Dienstanforderungen zu behandeln, deren Empfang vom Computersystem erwartet wird. Das Dienstprogramm leitet die Anforderungen an andere Programme (oder Prozesse) weiter, wie durch ein gegebenes Kommunikationsprotokoll spezifiziert. Die Kernel-Module der STEM-Dienstprogramme 104 und 105 ändern ihre Kernel-Datenstruktur, in der die 5-Tupel-Information gespeichert ist. Das 5-Tupel kennzeichnet eindeutig einen Kernel-Socket-Deskriptor (Deskriptor, der die TCP/IP-Sitzung in der Anwendung kennzeichnet).
  • 2 zeigt eine beispielhafte Migrations-Ereignis-Sequenz zwischen einem Migrator und einem festen Ende (dem Nicht-Migrator). Die normale Datenübertragung findet zwischen den beiden Endpunkten während des Zeitraums 201 statt, wobei die IP-Adresse 192.168.1.1 für den Migrator benutzt wird. In 2 werden Nachrichten über die TCP-Sitzung für Daten vom Migrator unter (M) und für Daten vom festen Ende unter (F) gezeigt, während Steuerungs-Nachrichten über den Außerband-Kanal (z. B. UDP-Sitzung) für Daten vom Migrator unter (MD) und für Daten vom festen Ende unter (FD) gezeigt werden. An einem Punkt nach dem Verbindungsaufbau, aber vor dem IP-Adressen-Änderungs-Punkt 202 registriert sich der Migrator optional beim festen Ende unter Verwendung einer Registrierungs-Anforderung, die das feste Ende mit einer Antwort über den Außerband-Kanal quittiert. Der Migrator registriert sich optional beim festen Ende aus Sicherheitsgründen und um das feste Ende zu informieren, dass der Migrator im Begriff ist, seine IP-Adresse zu verlegen oder zu ändern.
  • Der Migrator kann die neue IP-Adresse für seine Schnittstelle mit einer Anzahl unterschiedlicher Verfahren erhalten. Der Migrator kann die Adresse selbst von einem Netzwerk-Manager einer höheren Ebene oder einem DHCP-Server anfordern, der dann die Adresse zuweist und liefert. Alternativ kann die Schnittstele manuell auf eine neue IP-Adresse rekonfiguriert werden.
  • Am IP-Adressen-Änderungs-Punkt 202 beginnt der Migrator damit, die IP-Adresse auf 192.168.2.99 zu ändern. Während der Periode 203 nach dem IP-Adressen-Änderungs-Ereignis 202 aktualisiert das Kernel-Modul des Migrators (z. B. Knoten 101) die IP-Adresse in der 5-Tupel-Datenstruktur, die dem Socket-Deskriptor zugeordnet ist. Jeder Socket-Deskriptor ist eindeutig einem 5-Tupel zugeordnet. Die Aktualisierung der Kernel-Datenstruktur beginnt mit dem Suchen aller offenen Socket-Deskriptoren und deren Abgleich gegen das spezifizierte 5-Tupel (das die alte IP-Adresse wie eines der Tupel enthält). Wenn eine gültige Übereinstimmung erkannt wird, wird diese Datenstruktur geeignet geändert, um die neue IP-(Endpunkt)-Adresse widerzuspiegeln. Zusätzlich dazu wird die Paket-Übertragung zum Ziel-Knoten eingestellt. TCP-Datensegmente werden in der Sende-Warteschlange des Knotens (TCP send-Q) gepuffert, bis eine gültige Route aufgebaut ist.
  • Somit sind, soweit die Anwendung (z. B. APP1) betroffen ist, die Änderungen des Kernels transparent, da die Anwendung weiter an denselben Socket-Deskriptor gebunden ist. Somit verwendet die Anwendung denselben Socket-Deskriptor und arbeitet weiterhin normal. Auf dem geänderten Socket-Deskriptor gesendete Daten ergeben während des Routen-Such-Prozesses eine gültige Route/Schnittstelle. Gleichzeitig informiert der Migrator über eine Außerband-Kommunikation (als Steuerungs-Nachricht "migrate req" gezeigt) das entfernte (feste) Ende über die Änderung auf die neue Endpunkt-IP-Adresse. Auf der Grundlage dieser Information wendet das feste Ende die gleichen Änderungen auf seine Kernel-Datenstrukturen an, so dass die Zieladresse im IP-Kopf der vom festen Ende ausgesendeten Datenpakete den neuen Wert widerspiegelt. Das feste Ende quittiert die Änderung seines Kernels (als Steuerungs-Nachricht "migrate reply" gezeigt) zum Migrator, und die beiden Endpunkte nehmen im Zeitraum 205 die Kommunikation als normale TCP-Sitzung wieder auf, wobei die neue IP-Adresse für den Migrator verwendet wird. TCP-Datensegmente, die in der TCP send-Q gepuffert wurden, werden über die Schnittstelle zum Ziel gesendet, da eine gültige Route vorliegt, und die IP-Adresse aller gesendeten Pakete enthält die geeignete neue Adresse im IP-Kopf.
  • Die Steuerung des Migrations-Prozesses auf sanfte und systematische Weise verhindert Bedingungen, die Wettrennen-Bedingungen genannt werden, die TCP-Reset-Nachrichten erzeugen können, welche die Verbindung beenden würden. Speziell können bevorzugte Ausführungen diese Bedingungen verhindern, indem sie folgendes sicherstellen: 1) dass Kernel-Änderungen des Migrators immer zuerst angewendet werden, bevor der Nicht-Migrator von diesen Änderungen informiert wird, und 2) dass der Migrator während der Periode des Austausches von Steuerungs-Nachrichten keine Daten auf der Sitzung sendet. Eine solche Verhinderung kann zum Beispiel erzielt werden, indem Firewall-Regeln im System benutzt werden (z. B. Output-Chain-Regeln von iptables in einem Linux-Betriebssystem), um zu verhindern, dass Sitzungs-Daten das System verlassen, bis der Migrations-Prozess beendet ist. Die Regeln werden dynamisch zum Kernel hinzugefügt, um die Übertragung von Paketen auf dieser Sitzung zum entfernten Ende explizit zu verhindern. Sobald vom Nicht-Migrator eine Quittung empfangen wurde, werden die Regeln zurückgezogen, um den Normalbetrieb wieder aufzunehmen. Alternativ können bevorzugte Ausführungen die Neuzuordnung der alten Endpunkt-IP-Adresse für eine bestimmte Zeitdauer verzögern. Hierdurch wird sichergestellt, dass zwei verschiedene Sitzungen nicht gleichzeitig dieselbe IP-Adresse benutzen.
  • 3 zeigt ein beispielhaftes Verfahren, das vom Migrator während der Ereignis-Sequenz in 2 benutzt wird. In Schritt 301 nimmt der Migrator aktuell an einer bestehenden Sitzung teil, wobei der Nicht-Migrator eine aktuelle Endpunkt-IP-Adresse benutzt. In Schritt 302 sendet der Migrator über einen Außerband-Kanal (z. B. einen UDP-Kanal) eine Registrierungs-Anforderungs-Steuerungs-Nachricht an den Nicht-Migrator, um den Migrator beim Nicht-Migrator zu registrieren. Wenn Schritt 302 ausgeführt ist, empfängt der Migrator in Schritt 303 als Quittung der Registrierung beim Nicht-Migrator über den Außerband-Kanal eine Registrierungs-Antwort-Steuerungs-Nachricht vom Nicht-Migrator.
  • In Schritt 304 beginnt der Migrator damit, seine aktuelle Endpunkt-IP-Adresse in eine neu erworbene Endpunkt-IP-Adresse ("neue Endpunkt-IP-Adresse") zu ändern. In Schritt 305 beendet der Migrator die Übertragung von Paketen und stellt die Pakete in die Warteschlange TCP send-Q. In Schritt 306 beginnt der Migrator damit, vom Nicht-Migrator empfangene Pakete, die die alte Endpunkt-IP-Adresse enthalten, zu verwerfen. In Schritt 307 aktualisiert der Migrator die Kernel-Datenstruktur des STEM-Dienstprogramms des Migrators, damit sie die neue Endpunkt-IP-Adresse enthält.
  • In Schritt 308 sendet der Migrator über den Außerband-Kanal eine Endpunkt-Adressen-Änderungs-Steuerungs-Nachricht an den Nicht-Migrator, um anzuzeigen, dass der Migrator auf die neue Endpunkt-IP-Adresse gewechselt hat. Während dieser Zeit fährt der Migrator damit fort, Pakete in die Warteschlange TCP send-Q zu stellen. In Schritt 309 empfängt der Migrator über den Außerband-Kanal eine Endpunkt-Adressen-Änderungs-Quittungs-Steuerungs-Nachricht vom Nicht-Migrator, die anzeigt, dass der Nicht-Migrator seine Kernel-Datenstruktur geändert hat, um die neue Endpunkt-IP-Adresse zu enthalten. In Schritt 310 fährt der Migrator mit der Sitzung mit der neuen Endpunkt-IP-Adresse fort, indem er Pakete von der TCP send-Q ausgibt.
  • 4 zeigt ein beispielhaftes Verfahren, das vom Nicht-Migrator während der Ereignis-Sequenz in 2 benutzt wird. In Schritt 401 nimmt der Nicht-Migrator an einer bestehenden Sitzung mit dem Migrator teil, wobei eine aktuelle Endpunkt-IP-Adresse verwendet wird. In Schritt 402 empfängt der Nicht-Migrator über einen Außerband-Kanal eine Registrierungs-Anforderung vom Migrator, den Migrator beim Nicht-Migrator zu registrieren. Wenn Schritt 402 ausgeführt ist, registriert in Schritt 403 der Nicht-Migrator den Migrator und sendet über den Außerband-Kanal als Quittung der Registrierung durch den Nicht-Migrator eine Registrierungs-Antwort-Steuerungs-Nachricht an den Migrator.
  • In Schritt 404 fährt der Nicht-Migrator mit dem Empfang von Paketen vom Migrator fort, die die alte Endpunkt-IP-Adresse enthalten. In Schritt 405 empfängt der Nicht-Migrator über den Außerband-Kanal eine Endpunkt-Adressen-Änderungs-Steuerungs-Nachricht vom Migrator, um anzuzeigen, dass der Migrator auf die neue Endpunkt-IP-Adresse gewechselt hat. In Schritt 406 aktualisiert der Nicht-Migrator die Kernel-Datenstruktur des STEM-Dienstprogramms des Nicht-Migrators, um die neue Endpunkt-IP-Adresse zu enthalten.
  • In Schritt 407 sendet der Nicht-Migrator über den Außerband-Kanal eine Endpunkt-Adressen-Änderungs-Quittungs-Steuerungs-Nachricht an den Migrator, die anzeigt, dass der Nicht-Migrator seine Kernel-Datenstruktur geändert hat, um die neue Endpunkt-IP-Adresse zu enthalten. In Schritt 408 fährt der Nicht-Migrator mit der Sitzung mit der neuen Endpunkt-IP-Adresse fort.
  • Kehrt man zurück zu 1, benutzt das STEM-System 100 einen Außerband-Steuerungs-Kanal, der als UDP-Kanal 150 gezeigt wird, um zwischen Partnern, wie z. B. den STEM-Dienstprogramm-Modulen 104 und 105 zu kommunizieren. Die Außerband-Kommunikation über den UDP-Kanal 150 bietet den Vorteil, dass der Migrator seine Änderungen auch nachdem die IP-Adressen-Änderung aufgetreten ist an den Nicht-Migrator übermitteln kann. Zusätzlich dazu kann die Außerband-Kommunikation Informationen bezüglich mehreren TCP-Sitzungen gleichzeitig übertragen. Die 5 bis 8 zeigen Formate für beispielhafte Steuerungs-Nachrichten für den Migrator und den Nicht-Migrator, die über den UDP-Kanal 150 ausgetauscht werden können. In allen Steuerungs-Nachrichten wird ein gemeinsamer Kopf verwendet, der einem UDP-Format entsprechen kann, das eine von Null verschiedene Prüfsumme hat.
  • 5 zeigt ein beispielhaftes Format eines allgemeinen Steuerungs-Kopfes einer STEM-System-Steuerungs-Nachricht. In 5 kennzeichnet "Version" die Versions-Nummer des Protokolls, "Sequence #" kennzeichnet den 16-Bit-Zählwert in der Sequenz der Daten-Nachrichten, "Identifier cookie" ist eine 48-Bit-Kennung, die einen Knoten eindeutig kennzeichnet, und "Replay Protect ID" ist eine eindeutige 64-Bit-Kennung, die auf einem Zeitstempel oder einem Zufallswert beruht, um gegen Replay-Attacken zu schützen. "Type" kennzeichnet das Paket als Steuerungs-Nachricht und kann vier Werte annehmen: eine "1" kennzeichnet die Nachricht als Registrierungs-Anforderung, eine "2" kennzeichnet die Nachricht als Registrierungs-Antwort, eine "3" kennzeichnet die Nachricht als Migrations-Anforderung und eine "4" kennzeichnet die Nachricht als Migrations-Antwort. "Flags/Codes" kennzeichnet die Flags und Rückgabe-Codes, die in der Migrations-Registrierungs-Steuerungs-Nachricht benutzt werden, wobei eine "1" angibt, dass die Registrierungs-Anforderung akzeptiert wird. Andere Werte von "Flags/Codes" können anzeigen, dass die Registrierungs-Anforderung aus einem gegebenen Grund abgelehnt wird.
  • Der Registrierungs-Prozess beginnt damit, dass der Migrator eine Registrierungs-Anforderungs-Steuerungs-Nachricht, die seine Fähigkeiten anzeigt, an den Nicht-Migrator sendet. Nach der Authentifizierung und Überprüfung antwortet der Nicht-Migrator mit der Registrierungs-Antwort-Steuerungs-Nachricht, in der der geeignete Antwort-Code eingestellt ist, der den Status der Anforderung anzeigt. Das Feld "Identifier Cookie" wird dazu benutzt, einen Knoten eindeutig zu kennzeichnen. Viele Verfahren, mit denen dieses Cookie erzeugt werden kann, sind in der Technik bekannt. Zum Beispiel können Cookie-Erzeugungs-Verfahren eingesetzt werden, die in SCTP oder TCP (z. B. SYN-Cookie-Erzeugung) benutzt werden. Typischerweise ist das Cookie eine Funktion einer Invarianten, die den Knoten kennzeichnet. Da sich die IP-Adresse kontinuierlich ändert, ergibt zum Beispiel ein voll qualifizierter Domain-Name mit einer einseitigen Hash- Funktion, die auf den Domain-Namen angewendet wird, ein eindeutiges 48-Bit-Eintritts-Cookie.
  • Das vom Migrator konstruierte Feld "Replay-Protection ID" wird dazu benutzt, die Registrierungs-Anforderungen und Antwort-Nachrichten anzupassen, um Playback-/Replay-Attacken entgegenzuwirken. Eine Replay-Attacke ist ein Angriff auf ein Sicherheits-Protokoll, bei dem die Wiederholung von Nahrichten aus einem anderen Kontext in den ursprünglichen Kontext benutzt wird, wodurch der/die ehrliche(n) Teilnehmer getäuscht werden, zu glauben, dass sie den Protokoll-Ablauf erfolgreich beendet haben. Die Registrierungs-Antwort-Nachricht vom Nicht-Migrator setzt dieses Feld auf einen Wert, der auf der Grundlage des Feldes "Replay-Protection ID", das in der Anforderungs-Nachricht empfangen wird, und des verwendeten Replay-Schutzmechanismus (z. B. Zeitstempel oder Nonces (Zufallszahlen), die durch die Sicherheitsverbindung des Knotens gegeben sind) berechnet wird.
  • 6 zeigt ein beispielhaftes Format eines Erweiterungs-Kopfes einer STEM-System-Steuerungs-Nachricht zur Authentifizierung. In 6 kennzeichnet "Type" das Paket als Authentifizierungs-Kopf-Typ, "Length" ist die Länge des Paketes, "SPI" ist ein Sicherheits-Parameter-Index, der einen Sicherheits-Kontext zwischen zwei Partnern kennzeichnet, und "Authentication" ist ein Authentifizierungs-Feld mit variabler Länge.
  • Der vom beispielhaften STEM-System verwendete Authentifizierungs-Mechanismus kann ähnlich dem in Mobile IP verwendeten sein. Jeder Knoten unterstützt eine Sicherheitsverbindung, die durch den Opaque-Sicherheits-Parameter-Index (SPI) und den Identifier-Cookie indiziert wird. Der SPI im Authentifizierungs-Erweiterungs-Kopf definiert den Sicherheits-Kontext, der benutzt wird, um den Authentifizierungs-Wert zu berechnen und von einem Empfänger verwendet wird, den Wert zu überprüfen. Der Empfänger wählt den Authentifizierungs-Algorithmus (z. B. den Verschlüsselungs- Algorithmus HMAC-MD5 (Hashed Message Authentication Code-Message Digest Version 5) und SHA (Secure Hash Algorithm)), den Algorithmus-Modus (z. B. Präfix + Suffix) und das Geheimnis (gemeinsamer Schlüssel oder öffentliches/privates Schlüssel-Paar), das zur Berechnung der auf diesem SPI basierenden Authentifizierung benutzt wird. Der berechnete Authentifizierungs-Wert schützt die Nutzinformation des Paketes des UDP-Kanals (Registrierungs-Anforderungs-/Antwort-Steuerungs-Nachrichten), andere Erweiterungen (Migrations-Anforderung-/Antwort-Steuerungs-Nachrichten) und den Anfangs-Teil des Paketkopfes (Typ, Länge und den SPI).
  • 7 zeigt ein beispielhaftes Format eines Erweiterungs-Kopfes einer STEM-System-Steuerungs-Nachricht für die Migration. In 7 kennzeichnet "Type" das Paket als Migrations-Kopf-Typ, "Length" ist die Länge der Daten, "Proto Flags" kennzeichnet den Protokoll-Typ (z. B. Bit 0 = TCP, Bit 1 = UDP), "Old IP addr" ist die IP-Adresse vor der Migration, "New IP addr" ist die IP-Adresse nach der Migration, "Old Port" ist die alte Anschluss-Nummer vor der Migration, und "New Port" ist die neue Anschluss-Nummer nach der Migration.
  • Der Migrationsprozess, wie oben beschrieben, umfasst den Austausch von Migrations-Anforderungs-/Antwort-Steuerungs-Nachrichten zwischen den Partnern. Zusätzlich zum gemeinsamen Kopf und zum optionalen Authentifizierungs-Kopf enthält die Steuerungs-Nachricht ein oder mehrere Migrations-Köpfe. Jeder Migrations-Kopf enthält Informationen über die Abbildung des alten 5-Tupels auf ein neues 5-Tupel für eine oder mehrere Sitzungen zwischen den Partnern. Jedes Bit im Feld "Protocol flags" zeigt ein vordefiniertes Protokoll. Es können gleichzeitig mehr als ein Bit gesendet werden, um die Migration mehrerer interessierender Protokolle anzuzeigen. Stellt man das Feld auf einen Wert Null, zeigt dies die Migration für alle Protokolle an. Die Felder "Old IP" und "New IP" liefern die spezifizierte Abbildung von der alten IP-Adresse auf die neue IP-Adresse des Migrations-Endpunktes, während die Felder "Old Port" und "New Port" die äquivalenten Abbildungen für die in jeder Sitzung verwendeten Anschlüsse liefern. Wie das Feld "Protocol ID Flags" können auch die Anschluss-Felder auf einen Wert von Null gesetzt werden, um anzuzeigen, dass der Migrator es wünscht, alle Sitzungen zwischen den beiden Endpunkten zu migrieren, wie wenn der mobile Knoten sich über IP-Subnetze bewegt, und der mobile Knoten alle offenen Sitzungen gleichzeitig migrieren möchte.
  • Zusätzlich zu den Nachrichten im Außerband-Kanal, die mit Bezug auf die 5, 6 und 7 beschrieben wurden, können zusätzliche Außerband-Nachrichten für spezielle Anwendungen des STEM-Systems verwendet werden. Da das STEM-System für die Host-Mobilität eingesetzt werden kann, können Nachrichten für Verbindungs-Übergabe und Lokalisierungs-Management eingesetzt werden. Solche Nachrichten können Daten enthalten, wie Position, fester Endpunkt, Signal-Rauschverhältnis (SNR), Verbindungsqualität oder ähnliche Informationen, die zusammengefasst als "Opaque Data" bezeichnet werden. 8 zeigt ein beispielhaftes Format eines Erweiterungs-Kopfes einer STEM-System-Steuerungs-Nachricht für Opaque Data. In 8 kennzeichnet "Type" das Paket als vom Typ Opaque Header, "Length" kennzeichnet die Länge der Felder "Sub Type" und "Opaque Data", "Sub-Type" kennzeichnet die Art der Aktualisierungs-Information, die in den Opaque Data enthalten ist (z. B. Positions-Aktualisierungs-Information), "Flag/Codes sind Flags oder Codes, die dazu benutzt werden, den Austausch von Opaque Data zu vereinfachen, und "Opaque Data" sind die Opaque Data variabler Länge des Paketes.
  • Die vorliegende Erfindung erlaubt folgende Vorteile. Endpunkte, die gemäß einer oder mehrerer Ausführungen des STEM-Systems arbeiten, unterbrechen weder die Ende-zu-Ende-TCP-Verbindung, noch weisen Sie einen Code/Proxy im Kommunikationspfad zwischen den Endpunkten zu. Es wird kein neuer Code zum Datenpfad hinzugefügt, und die Anwendung wird nicht dahingehend getäuscht, zu glauben, dass die Verbindung noch besteht. Eine oder mehrere Ausführungen des STEM-Systems migrieren dieselbe TCP-Verbindung zur neuen Adresse oder zum neuen Anschlusspunkt (d. h. der TCP-Zustandsautomat des Endpunktes bleibt während des Migrations-Prozesses im Zustand "ESTABLISHED").
  • Obwohl die vorliegende Erfindung mit Bezug auf ein Paketnetzwerk beschrieben wurde, das gemäß einem TCP-IP-Kommunikations-Prozess arbeitet, ist die vorliegende Erfindung nicht darauf beschränkt. Ein Fachmann kann die hier gegebenen Lehren leicht auf andere Paketnetzwerke erweitern, in denen ein Knoten seine Verbindung auf einen anderen Knoten überträgt. Zusätzlich dazu kann die vorliegende Erfindung für den Einsatz in drahtlosen, Funk-, Zellular- oder anderen drahtlosen Anwendungen (insgesamt als "drahtlose" Anwendungen bezeichnet) bevorzugt werden, die vorliegende Erfindung ist aber nicht darauf beschränkt und kann in drahtgebundenen oder optischen Netzwerken eingesetzt werden, welche die Kommunikation auf Paket-Basis unterstützen.
  • Die vorliegende Erfindung kann in Form von Verfahren und Vorrichtungen zur Ausführung dieser Verfahren ausgeführt werden. Die vorliegende Erfindung kann auch in Form von Programmcode ausgeführt werden, der auf materiellen Medien enthalten ist, wie z. B. auf Disketten, CD-ROMs, Festplatten-Laufwerken oder jedem anderen maschinenlesbaren Speichermedium, wobei, wenn der Programmcode in eine Maschine, wie z. B. einen Computer, geladen und von ihr ausgeführt wird, die Maschine zu einer Vorrichtung zur Ausführung der Erfindung wird. Die vorliegende Erfindung kann zum Beispiel auch in Form von Programmcode ausgeführt werden, sei er gespeichert auf einem Speichermedium, in eine Maschine geladen und/oder von ihr ausgeführt, oder über ein Übertragungsmedium, wie elektrische Leitungen oder Kabel, optische Fasern oder über elektromagnetische Strahlung, übertragen, wobei, wenn der Programmcode in eine Maschine, wie z. B. einen Computer, geladen und von ihr ausgeführt wird, die Maschine zu einer Vorrichtung zur Ausführung der Erfindung wird. Wenn sie auf einem Allzweck-Prozessor implementiert werden, verbinden sich die Programmcode-Segmente mit dem Prozessor, um ein einzigartiges Gerät bereitzustellen, das analog zu speziellen Logik-Schaltkreisen arbeitet.
  • Es versteht sich ferner, dass verschiedene Änderungen in Details, Materialien und Anordnungen der Teile, die beschrieben und gezeigt wurden, um die Natur dieser Erfindung zu erklären, von einem Fachmann vorgenommen werden können, ohne vom Prinzip und Schutzumfang der Erfindung abzuweichen, wie in den folgenden Ansprüchen ausgedrückt. FIG. 1
    106, 109 Transportschicht
    107, 108 Netzwerkschicht (IP)
    UDP session UDP-Sitzung
    TCP sessions TCP-Sitzungen
    104, 105 STEM-Dienstprogramm
    Kernel update Kernel-Aktualisierung
    Physical network Physikalisches Netzwerk
    FIG. 2
    Fixed end (F) Festes Ende (F)
    201, 205 Datenaustausch
    Addr change Adressenänderung
    203 Pakete vom Tx blockiert
    Migrate Req Migrations-Anforderung
    Migrate reply Migrations-Antwort
    FIG. 3
    301 Bestehende Sitzung mit Nicht-Migrator wird unter Verwendung der aktuellen Endpunkt-Adresse durchgeführt
    302 Senden eine Registrierungs-Anforderung zum Nicht-Migrator zum Registrieren
    303 Empfangen einer Registrierungs-Antwort vom Nicht-Migrator, um die Registrierung auszuführen
    304 IP-Endpunkt-Adresse ändern
    305 Unterbrechen der Übertragung von Paketen; Pakete in TCP-Warteschlange Send-Q stellen
    306 Verwerfen von Paketen vom Nicht-Migrator auf IP-Ebene
    307 Aktualisieren der Kernel-Struktur des Migrators durch die neue Endpunkt-Adresse
    308 Senden einer Endpunkt-Adressen-Änderungs-Steuerungs-Nachricht an den Nicht-Migrator; Unterbrechen der Paket-Übertragung
    309 Empfangen einer Quittung für die Endpunkt-Adressen-Änderungs-Steuerungs-Nachricht
    310 Fortführen der Sitzung mit der neuen Endpunkt-Adresse
    FIG. 4
    401 Bestehende Sitzung mit Migrator wird unter Verwendung der aktuellen Endpunkt-Adresse durchgeführt
    402 Empfangen einer Registrierungs-Anforderung vom Migrator
    403 Senden einer Registrierungs-Antwort zum Migrator
    404 Fortführen des Empfangens von Paketen vom Migrator
    405 Empfangen einer Endpunkt-Adressen-Änderungs-Steuerungs-Nachricht vom Migrator
    406 Aktualisieren der Kernel-Struktur des Nicht-Migrators durch die neue Endpunkt-Adresse
    407 Quittieren der Endpunkt-Adressen-Änderungs-Steuerungs-Nachricht vom Migrator
    408 Fortführen der Sitzung mit der neuen Endpunkt-Adresse
    FIG. 5
    (cont.) (Forts.)
    FIG. 6
    (cont.) (Forts.)
    FIG. 7
    (cont.) (Forts.)
    8

Claims (3)

  1. Verfahren zur Migration von einer aktuellen Migrator-Endpunkt-Adresse zu einer neuen Migrator-Endpunkt-Adresse während einer Sitzung zwischen einem Migrator und einem Nicht-Migrator in einem auf Paketen basierenden Kommunikationssystem, wobei der Migrator ein Endpunkt ist, der eine Adresse hat, die sich während der Sitzung von der aktuellen Migrator-Endpunkt-Adresse auf die neue Migrator-Endpunkt-Adresse ändert, und der Nicht-Migrator ein Endpunkt ist, der eine Adresse hat, die sich während der Sitzung nicht ändert, wobei das Verfahren folgende Schritte umfasst: a) Im Migrator Ändern (304) der aktuellen Migrator-Endpunkt-Adresse auf die neue Migrator-Endpunkt-Adresse durch folgende Schritte: a1) Senden einer Registrierungs-Steuerungs-Nachricht (302, 303) an den Nicht-Migrator über einen Außerband-Kanal, um den Migrator beim Nicht-Migrator zu registrieren, a2) Empfangen einer Registrierungs-Antwort-Steuerungs-Nachricht vom Nicht-Migrator über den Außerband-Kanal als Quittung der Registrierung beim Nicht-Migrator, a3) Nachdem die Schritte a1) und a2) ausgeführt sind, logisches Wechseln auf die neue Migrator-Endpunkt-Adresse, indem von einem aktuellen 5-Tupel, das die aktuelle Migrator-Endpunkt-Adresse enthält, auf ein neues 5-Tupel, das die neue Migrator-Endpunkt-Adresse enthält, gewechselt wird (307), und a4) Aktualisieren einer Kernel-Struktur des Migrators durch Andern eines Socket mit dem aktuellen 5-Tupel, um das neue 5-Tupel widerzuspiegeln, wobei der Socket mit der Sitzung verbunden ist; b) Unterbrechen (305) der Übertragung von Paketen mit der neuen Migrator-Endpunkt-Adresse zum Nicht-Migrator; c) Informieren (308) des Nicht-Migrators über den Außerband-Kanal, der vom Kanal der Sitzung zwischen dem Migrator und dem Nicht-Migrator getrennt ist, über den Wechsel zur neuen Migrator-Endpunkt-Adresse durch folgende Schritte: c1) Senden (308) einer Steuerungs-Nachricht an den Nicht-Migrator, die den Nicht-Migrator über den Wechsel zur neuen Migrator-Endpunkt-Adresse informiert, und c2) Empfangen (309) einer Bestätigung vom Nicht-Migrator, dass der Nicht-Migrator auf die neue Migrator-Endpunkt-Adresse gewechselt hat; und d) Wiederaufnahme (310) der Übertragung von Paketen mit der neuen Migrator-Endpunkt-Adresse zum Nicht-Migrator.
  2. Verfahren aus Anspruch 1, wobei Schritt b) folgende Schritte umfasst: Verwerfen (306) von Paketen vom Nicht-Migrator, die auf der Netzwerkschicht empfangen wurden, und Beenden (308) der Übertragung von Paketen zum Nicht-Migrator auf der Transportschicht, und wobei der Schritt des Beendens der Übertragung von Paketen zum Nicht-Migrator auf der Transportschicht die Paket-Übertragung während einer Wettrennen-Bedingung mit Firewall-Filter-Regeln beendet.
  3. Verfahren gemäß einem der Ansprüche 1 und 2, wobei die Sitzung einem Übertragungs-Steuerungs-Protokoll und einem Internet-Protokoll entspricht.
DE602005005724T 2004-01-28 2005-01-07 Endpunktadressenänderung in einem Paketnetzwerk Active DE602005005724T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US766164 2004-01-28
US10/766,164 US8195835B2 (en) 2004-01-28 2004-01-28 Endpoint address change in a packet network

Publications (2)

Publication Number Publication Date
DE602005005724D1 DE602005005724D1 (de) 2008-05-15
DE602005005724T2 true DE602005005724T2 (de) 2009-06-04

Family

ID=34654327

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005005724T Active DE602005005724T2 (de) 2004-01-28 2005-01-07 Endpunktadressenänderung in einem Paketnetzwerk

Country Status (6)

Country Link
US (1) US8195835B2 (de)
EP (1) EP1560397B1 (de)
JP (1) JP4672382B2 (de)
KR (1) KR101099382B1 (de)
CN (1) CN1649351B (de)
DE (1) DE602005005724T2 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895648B1 (en) * 2004-03-01 2011-02-22 Cisco Technology, Inc. Reliably continuing a secure connection when the address of a machine at one end of the connection changes
US20050246346A1 (en) * 2004-04-30 2005-11-03 Gerdes Reiner J Secured authentication in a dynamic IP environment
US20060101090A1 (en) * 2004-11-08 2006-05-11 Eliezer Aloni Method and system for reliable datagram tunnels for clusters
US7908286B2 (en) * 2004-12-08 2011-03-15 Oracle International Corporation Techniques for providing XQuery access using web services
US7693138B2 (en) * 2005-07-18 2010-04-06 Broadcom Corporation Method and system for transparent TCP offload with best effort direct placement of incoming traffic
US20070233822A1 (en) * 2006-04-03 2007-10-04 International Business Machines Corporation Decrease recovery time of remote TCP client applications after a server failure
US8122492B2 (en) * 2006-04-21 2012-02-21 Microsoft Corporation Integration of social network information and network firewalls
US20080219271A1 (en) * 2006-04-25 2008-09-11 Nokia Corporation IP multicast based systems, apparatuses and methods for TCP connection migration
US8079073B2 (en) * 2006-05-05 2011-12-13 Microsoft Corporation Distributed firewall implementation and control
US8176157B2 (en) * 2006-05-18 2012-05-08 Microsoft Corporation Exceptions grouping
BRPI0622098A2 (pt) 2006-10-31 2011-12-27 Telecom Italia Spa terminais de modo duplo e de modo énico, sistema de comunicaÇço, e, produto de software
US8412207B2 (en) 2006-12-21 2013-04-02 Core Wireless Licensing S.A.R.L. Method of providing a mobility service
JP5034495B2 (ja) * 2006-12-27 2012-09-26 日本電気株式会社 ストレージシステムとプログラム並びに方法
CN101047716B (zh) * 2007-01-04 2011-05-04 华为技术有限公司 一种ip传输会话迁移的方法和装置
US7983218B2 (en) * 2007-03-29 2011-07-19 Intel Corporation Techniques to support seamless mobility of electronic devices engaged in a session initiation protocol (SIP) session
WO2009039891A1 (en) * 2007-09-28 2009-04-02 Telefonaktiebolaget Lm Ericsson (Publ) Method of controlling a communication device
KR100925493B1 (ko) * 2007-12-20 2009-11-05 한국전자통신연구원 Ip주소에 기반한 네트워킹에서의 통신 세션 관리 방법 및시스템
US20100296486A1 (en) * 2007-12-21 2010-11-25 Carlo Sansone Method, Apparatus and Computer Program for Handover From A First Access Point To A Second Access Point
JP4623177B2 (ja) * 2008-09-17 2011-02-02 富士ゼロックス株式会社 情報処理システム
US8443109B2 (en) * 2009-05-22 2013-05-14 Sprint Communications Company L.P. Selection of a communication device for a user by a base station in response to receiving a communication session hand-off
US20100311401A1 (en) * 2009-06-09 2010-12-09 Sprint Communications Company L.P. Communication session transfer from one communication device to another based on location correlated to time
US8438309B2 (en) * 2010-10-12 2013-05-07 Xg Technology, Inc. Method to support rapid inter base station handoffs in IP based wireless networks
US9063852B2 (en) * 2011-01-28 2015-06-23 Oracle International Corporation System and method for use with a data grid cluster to support death detection
US9164806B2 (en) 2011-01-28 2015-10-20 Oracle International Corporation Processing pattern framework for dispatching and executing tasks in a distributed computing grid
US9081839B2 (en) 2011-01-28 2015-07-14 Oracle International Corporation Push replication for use with a distributed data grid
US9063787B2 (en) 2011-01-28 2015-06-23 Oracle International Corporation System and method for using cluster level quorum to prevent split brain scenario in a data grid cluster
CN102223307B (zh) * 2011-06-29 2017-02-15 中兴通讯股份有限公司 一种处理套接字的方法、分组数据传输的方法及装置
US8868710B2 (en) * 2011-11-18 2014-10-21 Amazon Technologies, Inc. Virtual network interface objects
KR20130097358A (ko) * 2012-02-24 2013-09-03 삼성전자주식회사 다이렉트 푸시 이메일 서비스 제공 방법과 그를 위한 이메일 클라이언트 및 이메일 서버
US9916545B1 (en) 2012-02-29 2018-03-13 Amazon Technologies, Inc. Portable network interfaces for authentication and license enforcement
US8813225B1 (en) 2012-06-15 2014-08-19 Amazon Technologies, Inc. Provider-arbitrated mandatory access control policies in cloud computing environments
US9160497B2 (en) * 2012-07-02 2015-10-13 Intel Corporation Application continuity with reroute and reset in a wireless communication network
US9075953B2 (en) * 2012-07-31 2015-07-07 At&T Intellectual Property I, L.P. Method and apparatus for providing notification of detected error conditions in a network
US9614918B2 (en) * 2013-03-14 2017-04-04 International Business Machines Corporation Migration of network connection under mobility
US9345060B1 (en) 2013-03-21 2016-05-17 Sprint Spectrum L.P. Invoking circuit switched fallback in response to VoIP call setup failure
US9021157B2 (en) * 2013-03-28 2015-04-28 Microsoft Technology Licensing, Llc Reliable socket transfer based on initializing and re-initializing a communication link and retaining a connected state
US9635114B2 (en) * 2014-01-24 2017-04-25 Netapp, Inc. Externally initiated application session endpoint migration
US20150236904A1 (en) * 2014-06-02 2015-08-20 Hsiaokuei Tsui Internet Device Architecture to Save Power And Cost
US9787499B2 (en) 2014-09-19 2017-10-10 Amazon Technologies, Inc. Private alias endpoints for isolated virtual networks
US10664495B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation System and method for supporting data grid snapshot and federation
US10021196B1 (en) 2015-06-22 2018-07-10 Amazon Technologies, Inc. Private service endpoints in isolated virtual networks
US10798146B2 (en) 2015-07-01 2020-10-06 Oracle International Corporation System and method for universal timeout in a distributed computing environment
US10585599B2 (en) 2015-07-01 2020-03-10 Oracle International Corporation System and method for distributed persistent store archival and retrieval in a distributed computing environment
US11163498B2 (en) 2015-07-01 2021-11-02 Oracle International Corporation System and method for rare copy-on-write in a distributed computing environment
US10860378B2 (en) 2015-07-01 2020-12-08 Oracle International Corporation System and method for association aware executor service in a distributed computing environment
US10833832B2 (en) 2016-06-22 2020-11-10 Intel Corporation Communication device and a method for full duplex scheduling
US10038639B2 (en) * 2016-09-16 2018-07-31 Alcatel Lucent Congestion control based on flow control
US20220095075A1 (en) * 2019-02-13 2022-03-24 Mediatek Singapore Pte. Ltd. Transport protocol selection between a user equipment and a distributed location function
WO2021031000A1 (en) * 2019-08-16 2021-02-25 Nokia Shanghai Bell Co., Ltd. Apparatus, method, and computer program

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6072942A (en) * 1996-09-18 2000-06-06 Secure Computing Corporation System and method of electronic mail filtering using interconnected nodes
US6018659A (en) * 1996-10-17 2000-01-25 The Boeing Company Airborne broadband communication network
JP3442257B2 (ja) 1997-05-06 2003-09-02 日本電信電話株式会社 パケット通信方法
US6332163B1 (en) * 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US8077679B2 (en) * 2001-03-28 2011-12-13 Qualcomm Incorporated Method and apparatus for providing protocol options in a wireless communication system
US6781963B2 (en) * 2002-02-14 2004-08-24 Qualcomm Inc Method and an apparatus for terminating a user from a group call in a group communication network
US6721907B2 (en) * 2002-06-12 2004-04-13 Zambeel, Inc. System and method for monitoring the state and operability of components in distributed computing systems
US20040151158A1 (en) * 2002-11-08 2004-08-05 Ecrio, Inc. Method and apparatus for exchanging voice over data channels in near real time
US7058052B2 (en) * 2003-04-11 2006-06-06 Nokia Corporation System and method for using a mobile router tunneling protocol to locate functionality in a distributed architecture

Also Published As

Publication number Publication date
DE602005005724D1 (de) 2008-05-15
US8195835B2 (en) 2012-06-05
KR20050077740A (ko) 2005-08-03
CN1649351B (zh) 2010-10-13
JP4672382B2 (ja) 2011-04-20
EP1560397B1 (de) 2008-04-02
EP1560397A1 (de) 2005-08-03
JP2005218111A (ja) 2005-08-11
KR101099382B1 (ko) 2011-12-29
US20050198384A1 (en) 2005-09-08
CN1649351A (zh) 2005-08-03

Similar Documents

Publication Publication Date Title
DE602005005724T2 (de) Endpunktadressenänderung in einem Paketnetzwerk
DE602004007301T2 (de) Adressierungs-verfahren und -vorrichtung zum aufbau von hip-verbindungen zwischen gewöhnlichen und hip-fähigen netzknoten
DE60116447T2 (de) Verfahren und System zur Verbindungsbehandlung
DE60305378T2 (de) Verfahren zum Weitergeben von einem Netzwerkstapel
DE60028897T2 (de) Verfahren und Vorrichtung zur Umschaltung zwischen zwei Netzwerkzugangstechnologien ohne Unterbrechung der aktiven Netzwerkanwendungen
US8725894B2 (en) Transparent auto-discovery of network devices logically located between a client and server
DE60314659T2 (de) System und Verfahren zur Entdeckung und Einstellung von einem Server
DE602004007303T2 (de) Identifizierungs-verfahren und -vorrichtung zum aufbau von hip-verbindungen zwischen gewöhnlichen und hip-fähigen netzknoten
DE602006000489T2 (de) Konnektivität über stateful firewalls
EP1826956B1 (de) Anpassung von virtuellen und physikalischen Netzwerkschnittstellen
DE602005005219T2 (de) Paketzusammenführung
DE60122782T2 (de) Adressierungsverfahren und system zur verwendung einer anycast-adresse
DE60310645T2 (de) Verhinderung von Paketzerteilung
DE112013002272T5 (de) ARP/ND-Cache vor Denial-Of-Service-Angriffen schützen
DE60211287T2 (de) Handhabung von Verbindungen, die zwischen Firewalls umziehen
US20040030765A1 (en) Local network natification
DE112020004639T5 (de) Verwaltung verteilter endpunkte
US11575577B2 (en) User information method and apparatus for directing link-layer communication
EP1593253B1 (de) Verfahren und anordnung zur transparenten vermittlung des datenverkehrs zwischen datenverarbeitungseinrichtungen sowie ein entsprechendes computerprogamm-erzeugnis und ein entsprechendes computerlesbares speichermedium
DE60127871T2 (de) Einrichtung, verfahren und system für verbessertes routing bei der mobil-ip-vernetzung
US7564854B2 (en) Network architecture with a light-weight TCP stack
DE102023203519A1 (de) Sitzungsbasierter direkter Fernarbeitsspeicherzugriff
Bhagwat et al. MSOCKS+: an architecture for transport layer mobility
DE60222875T2 (de) Verfahren und system zur erkennung einer namenserveradresse
Cisco Command Reference

Legal Events

Date Code Title Description
8364 No opposition during term of opposition