DE602005005727T2 - Verfahren und Vorrichtung zur Verbindung von Knoten mit heterogenen Kommunikationsprotokollen - Google Patents

Verfahren und Vorrichtung zur Verbindung von Knoten mit heterogenen Kommunikationsprotokollen Download PDF

Info

Publication number
DE602005005727T2
DE602005005727T2 DE602005005727T DE602005005727T DE602005005727T2 DE 602005005727 T2 DE602005005727 T2 DE 602005005727T2 DE 602005005727 T DE602005005727 T DE 602005005727T DE 602005005727 T DE602005005727 T DE 602005005727T DE 602005005727 T2 DE602005005727 T2 DE 602005005727T2
Authority
DE
Germany
Prior art keywords
socket
node
function
mobile
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE602005005727T
Other languages
English (en)
Other versions
DE602005005727D1 (de
Inventor
Pyung-Soo Kim
Sun-Woo Kim
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE602005005727D1 publication Critical patent/DE602005005727D1/de
Application granted granted Critical
Publication of DE602005005727T2 publication Critical patent/DE602005005727T2/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • CCHEMISTRY; METALLURGY
    • C01INORGANIC CHEMISTRY
    • C01BNON-METALLIC ELEMENTS; COMPOUNDS THEREOF; METALLOIDS OR COMPOUNDS THEREOF NOT COVERED BY SUBCLASS C01C
    • C01B13/00Oxygen; Ozone; Oxides or hydroxides in general
    • C01B13/10Preparation of ozone
    • C01B13/11Preparation of ozone by electric discharge
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • 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
    • 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/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6
    • CCHEMISTRY; METALLURGY
    • C01INORGANIC CHEMISTRY
    • C01BNON-METALLIC ELEMENTS; COMPOUNDS THEREOF; METALLOIDS OR COMPOUNDS THEREOF NOT COVERED BY SUBCLASS C01C
    • C01B2201/00Preparation of ozone by electrical discharge
    • C01B2201/70Cooling of the discharger; Means for making cooling unnecessary
    • C01B2201/72Cooling of the discharger; Means for making cooling unnecessary by air
    • CCHEMISTRY; METALLURGY
    • C01INORGANIC CHEMISTRY
    • C01BNON-METALLIC ELEMENTS; COMPOUNDS THEREOF; METALLOIDS OR COMPOUNDS THEREOF NOT COVERED BY SUBCLASS C01C
    • C01B2201/00Preparation of ozone by electrical discharge
    • C01B2201/70Cooling of the discharger; Means for making cooling unnecessary
    • C01B2201/74Cooling of the discharger; Means for making cooling unnecessary by liquid
    • C01B2201/76Water
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/04Network layer protocols, e.g. mobile IP [Internet Protocol]
    • H04W80/045Network layer protocols, e.g. mobile IP [Internet Protocol] involving different protocol versions, e.g. MIPv4 and MIPv6

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Chemical & Material Sciences (AREA)
  • Organic Chemistry (AREA)
  • Inorganic Chemistry (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Ausführungsformen der vorliegenden Erfindung beziehen sich auf ein Verfahren, ein Medium und eine Vorrichtung zum Verbinden von Knoten, die heterogene Protokolle verwenden, und im Besonderen auf ein Verfahren und eine Vorrichtung zum Verbinden von Knoten der Internet-Protokollversion 4 (IPv4) mit Knoten der Internet-Protokollversion 6 (IPv6) sowie zum Verbinden nicht-mobiler Knoten mit mobilen Knoten.
  • Knoten, die in einem Netzwerk vorhanden sind, das die Internet-Protokollversion 4 (IPv4) sowie die Internet-Protokollversion 6 (IPv6) enthält, sind möglicherweise nicht mit einer IPv4/IPv6-Umwandlungsfunktion in einer IP-Schicht des Netzwerkes ausgestattet. In diesem Fall können IPv4-Knoten und IPv6-Knoten nach dem Stand der Technik nicht miteinander verbunden werden. Darüber hinaus sind möglicherweise IP-Knoten, die in einem mobilen Netzwerk vorhanden sind, in IP-Schichten des Netzwerkes nicht mit einer mobilen IP-Funktion ausgestattet. Demgemäß können nicht-mobile Knoten, die keine mobile IP-Funktion besitzen, nicht mit mobilen Knoten verbunden werden, die eine mobile IP-Funktion besitzen. Da darüber hinaus eine solche IP-Schicht auf der Kernel-Ebene enthalten ist, welche Benutzer oder Anbieter von Endgeräten nicht verwalten können, ist es für Benutzer oder Anbieter von Endgeräten schwierig, die oben genannten Probleme zu lösen.
  • Das Patent EP 0.667.693 offenbart ein Verfahren zum Betreiben einer Maschine zur Glasherstellung, die eine Datenbank enthält, welche auf Basis eines Protokolls funktioniert, sowie einen Arbeitsplatzrechner, der auf Basis eines zweiten Protokolls funktioniert.
  • Das Patent US 2002/015941 offenbart eine Übersetzungsvorrichtung zum Verbinden eines IPv6-Netzwerkes mit einem IPv4-Netzwerk.
  • Das Patent US 2002/0199019 offenbart ein Kommunikationssystem, das die Funktionen einer Socket-Abstraktionsschicht (socket abstraction layer) zwischen Vorrichtungen verteilt.
  • Das Patent US 2001/0021183 offenbart die Einführung eines Pipeline-Moduls unterhalb einer Anwendungsschicht.
  • Ausführungsformen der vorliegenden Erfindung stellen ein Verfahren, ein Medium sowie eine Vorrichtung zum Verbinden von Knoten bereit, die heterogene Protokolle verwenden, und im Besonderen ein Verfahren, ein Medium sowie eine Vorrichtung, die ein Benutzer oder ein Anbieter von Endgeräten leicht implementieren kann.
  • Gemäß der vorliegenden Erfindung werden eine Vorrichtung und ein Verfahren bereitgestellt, wie in den beigefügten Ansprüchen dargelegt. Bevorzugte Eigenschaften der Erfindung sind aus den abhängigen Ansprüchen und der folgenden Beschreibung ersichtlich.
  • Zusätzliche Aspekte und/oder Vorteile der Erfindung werden zum Teil in der nachfolgenden Beschreibung dargelegt und sind zum Teil aus der Beschreibung ersichtlich oder können durch Anwenden der Erfindung erlernt werden.
  • Alle im Folgenden beschriebenen Merkmale können mit jedem der oben genannten Aspekte in jedweder Kombination kombiniert werden.
  • Für ein besseres Verständnis der Erfindung und für eine Darstellung der Verwirklichung der Ausführungsformen derselben wird im Folgenden beispielhaft auf die beigefügten schematischen Zeichnungen Bezug genommen, in denen:
  • 1 ein Konfigurationsdiagramm einer Netzwerkumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung ist;
  • 2 ist ein Konfigurationsdiagramm einer Netzwerkumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung;
  • 3 ist ein Konfigurationsdiagramm einer anderen Netzwerkumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung;
  • 4 ist ein Konfigurationsdiagramm noch einer anderen Netzwerkumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung;
  • 5 ist ein Konfigurationsdiagramm noch einer anderen Netzwerkumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung;
  • 6 ist ein Ablaufdiagramm, das ein Verfahren zum Verbinden von Knoten heterogener Protokolle gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung darstellt;
  • 7 ist ein Ablaufdiagramm, das ein anderes Verfahren zum Verbinden von Knoten heterogener Protokolle gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung darstellt;
  • 8 ist ein Ablaufdiagramm, das noch ein anderes Verfahren zum Verbinden von Knoten heterogener Protokolle gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung darstellt; und
  • 9 ist ein Ablaufdiagramm, das noch ein anderes Verfahren zum Verbinden von Knoten heterogener Protokolle gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung darstellt.
  • Im Folgenden wird ausführlich Bezug auf die Ausführungsformen der vorliegenden Erfindung genommen, und es werden Beispiele davon in den begleitenden Zeichnungen dargestellt, wobei gleiche Referenznummern sich durchgängig auf gleiche Elemente beziehen. Die Ausführungsformen werden im Folgenden beschrieben, um die vorliegende Erfindung durch Bezugnahme auf die Figuren zu erläutern.
  • 1 ist ein Konfigurationsdiagramm einer Netzwerkumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
  • In 1 kann eine Netzwerkumgebung die Knoten 1, 2 und 3 enthalten. Gemäß dieser Ausführungsform der vorliegenden Erfindung kann der Knoten 1 mit einem Doppelstapel (dual stack) ausgerüstet sein, der beide Protokollstapel enthält, wobei ein erstes Protokoll und ein zweites Protokoll verwendet werden, wobei der Knoten 2 das erste Protokoll verwendet und der Knoten 3 das zweite Protokoll verwendet.
  • In 1 umfasst der Doppelstapel eine Anwendungsschicht 100, ein erstes Socket 200, ein zweites Socket 300, ein erstes Protokoll 400, ein zweites Protokoll 500 sowie eine untere Schicht (lower layer) 600 gemäß der Ausführungsform der vorliegenden Erfindung. In dem Doppelstapel umfasst der rechte Stapel das erste Protokoll 400 und der linke Stapel umfasst das zweite Protokoll 500. Die Anwendungsschicht 100 und die untere Schicht 600 des Doppelstapels können gemeinsame Schichten (common layers) sein.
  • Der Knoten 1 erzeugt das erste Socket 200, welches eine Anwendungsprogramm-Schnittstelle (application program interface – API) ist, die für eine Kommunikation auf Basis des ersten Protokolls zu verwenden ist, sowie ein zweites Socket 300, welches eine API ist, die für die Kommunikation auf Basis des zweiten Protokolls zu verwenden ist, indem Funktionen zum Verbinden mit speziellen Unterroutinen (subroutines) in der Anwendungsschicht 100 aufgerufen werden. Hier betrifft die spezielle Unterroutine das Erzeugen von Sockets.
  • Der Knoten 1 kommuniziert mit dem ersten Knoten 2, der das erste Protokoll 400 verwendet, über das erste Socket 200, welches erzeugt wird, indem Funktionen zum Verbinden mit speziellen Unterroutinen in der Anwendungsschicht aufgerufen werden, und mit dem zweiten Knoten 3, der das zweite Protokoll 500 über das zweite Socket 300 verwendet, das erzeugt wird, indem Funktionen zum Verbinden mit speziellen Unterroutinen in der Anwendungsschicht aufgerufen werden. Hier beziehen sich spezielle Unterroutinen auf die Kommunikation über Sockets. Mit anderen Worten, die von dem Knoten 2 gesendeten Daten, der das erste Protokoll 400 verwendet, werden über ein Netzwerk an den Knoten 1 übertragen. Die von dem Knoten 1 empfangenen Daten passieren die untere Schicht 600, das erste Protokoll 400 und das erste Socket 200 und kommen anschließend bei der Anwendungsschicht 100 an. Die bei der Anwendungs schicht 100 ankommenden Daten passieren das zweite Socket 300, das zweite Protokoll 500 und die untere Schicht 600. Der Knoten 3 empfängt die Daten, die die untere Schicht 600 passiert haben, über ein Netzwerk. Auf die gleiche Weise kann ein umgekehrter Datenstrom aufgebaut werden.
  • Wie oben beschrieben, kommuniziert der Knoten 1 über das erste Socket 200 mit dem ersten Knoten 2, der das erste Protokoll 400 verwendet, und über das zweite Socket 300 mit dem zweiten Knoten 3, das zweite Protokoll 500 verwendet. Demgemäß implementiert der Knoten 1 die Kommunikation mit dem Knoten 2 und dem Knoten 3 selbst dann, wenn Schichten der Kernel-Ebene, die Benutzer oder Anbieter von Endgeräten nicht verwalten können, das heißt, das erste Protokoll 400 und das zweite Protokoll 500, keinen Umwandlungsmechanismus zwischen dem ersten Protokoll 400 und dem zweiten Protokoll 500 enthalten. Hier kann das erste Protokoll 400 IPv6 sein und das zweite Protokoll 500 kann IPv4 sein oder umgekehrt. Darüber hinaus kann das erste Protokoll 400 eine mobile IP sein und das zweite Protokoll 500 kann eine nicht-mobile IP sein oder umgekehrt. Jede der oben genannten Versionen wird nun im Folgenden spezieller beschrieben.
  • 2 ist ein Konfigurationsdiagramm einer ersten Netzwerkumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
  • In Bezug auf 2 kann die Netzwerkumgebung gemäß dieser Ausführungsform der vorliegenden Erfindung einen Knoten 11 einschließlich einer Vorrichtung zum Verbinden von Knoten heterogener Protokolle, einen IPv6-Knoten 21, der einem Client entspricht, sowie einen IPv4-Knoten 31 enthalten, der einem Server entspricht. Der Knoten 11 spielt eine Rolle als ein Server entsprechend dem IPv6-Knoten 21 und gleichzeitig spielt er eine Rolle als ein Client entsprechend dem IPv4-Knoten 31.
  • In 2 umfasst die Vorrichtung zum Verbinden von Knoten heterogener Protokolle gemäß dieser Ausführungsform der vorliegenden Erfindung eine Doppel-Socket-Erzeugungseinheit 101, eine Doppel-Socket-Verbindungseinheit 102, eine erste Socket-Kommunikationseinheit 103 sowie eine zweite Socket-Kommunikationseinheit 104. Wie in 2 dargestellt, ist die Vorrichtung zum Verbinden von Knoten heterogener Protokolle auf einer Anwendungsschicht 100 angeordnet.
  • Die Doppel-Socket-Erzeugungseinheit 101 erzeugt ein erstes Socket 200, das für die IPv6-Kommunikation von jedwedem Anwendungsprogramm zu verwenden ist, und das zweite Socket 300 ist für die IPv4-Kommunikation des Anwendungsprogramms zu verwenden. Ausführlicher erzeugt die Doppel-Socket-Erzeugungseinheit 101 als ein Server und Client das erste Socket 200, indem eine Funktion Socket () aufgerufen wird, das heißt, eine Socket-Funktion in der Anwendungsschicht 100, wobei die Funktion Socket () Informationen über IPv6 enthält. Die Funktion Socket () wird als eine Art von int socket (int family, int type, int protocol) definiert. So kann beispielsweise PF_INET in ein family-Feld eines Sockets () zum Erzeugen des ersten Sockets 200 geschrieben werden, um zu kennzeichnen, dass die Internet-Protokollfamilie verwendet wird, SOCK_STREAM kann in ein type-Feld geschrieben werden, um zu kennzeichnen, dass das TCP (transmission control protocol – Übertragungssteuerungsprotokoll) verbindungsorientierter Kommunikation verwendet wird, und IPv6 kann in ein protocol-Feld geschrieben werden, um die Verwendung von IPv6 anzuzeigen. Wenn das UDP (user datagram protocol – Benutzerdatagrammprotokoll) einer nicht verbindungsorientierten Kommunikation verwendet wird, kann anstelle von SOCK_STREAM SOCK_DGRAM in ein type-Feld geschrieben werden. Darüber hinaus erzeugt die Doppel-Socket-Erzeugungseinheit 101 das zweite Socket 300, indem eine Funktion Socket () in der Anwendungsschicht 100 aufgerufen wird, wobei die Funktion Socket () Informationen über IPv4 enthält, mit der Ausnahme, dass IPv4 in ein protocol-Feld eines Socket () zum Kennzeichnen der Verwendung von IPv4 geschrieben wird, es wird notiert, dass eine Funktion Socket () zum Erzeugen des zweiten Socket 300 identisch mit der Funktion Socket () zum Erzeugen des ersten Socket 200 ist.
  • Darüber hinaus verbindet die Doppel-Socket-Erzeugungseinheit 101 als ein Server eine Adresse des Knotens 11 mit dem ersten Socket 200, indem eine bind ()-Verbindungsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Verbindungsfunktion Informationen über das erste Socket 200 und eine Adresse des Knotens 11 enthält, der als Bestimmungsort des IPv6-Knotens 21 eingestellt ist. Die Verbindungsfunktion bind () wird als ein Typ von int bind (int sockfd, struct sockaddr *myaddr, int addrlen) definiert. Ein Socket-Deskriptor des ersten Socket 200 wird in ein sockfd-Feld einer Funktion bind () zum Verbinden einer Adresse mit dem ersten Socket 200 geschrieben, eine Adressstruktur, die eine IPv6-Adresse sowie eine Anschlussnummer (gort number) enthält, die von TCP/UDP 401 und IPv6 402 bereitgestellt werden, wird in ein myaddr-Feld geschrieben und eine Gröle der Adressstruktur wird in ein addrlen-Feld geschrieben. Die Funktion bind () wird zum Verbinden der IPv6-Adresse und einer Anschlussnummer des Knotens 11, der dem IPv6-Knoten 21 mit einem Socket-Deskriptor des ersten Socket 200 bekannt ist, verwendet, da der Socket-Deskriptor des ersten Socket 200 nur einem Anwendungsprogramm des Knotens 11 bekannt ist und von diesem verwendet wird.
  • Die Doppel-Socket-Verbindungseinheit 102 verbindet das erste Socket 200 und das zweite Socket 300, die in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurden, mit dem IPv6-Knoten 21 beziehungsweise dem IPv4-Knoten 31. Spezieller wartet die Doppel-Socket-Verbindungseinheit 112 als ein Server auf den Empfang einer Verbindungsanforderung, deren Bestimmungsort eine Adresse ist, die mit dem ersten Socket 200 verbunden ist, indem eine Funktion listen () einer Funktion wait in einer Anwendungsschicht 100 aufgerufen wird, wobei die Funktion listen () Informationen über das erste Socket 200 enthält. Die Funktion listen () wird als ein Typ von int listen (int sockfd, int backlog) definiert. Ein Socket-Deskriptor des ersten Socket 200 wird in ein sockfd-Feld einer Funktion listen () zum Empfangen einer Verbindungsanforderung, deren Bestimmungsort eine Adresse ist, die mit dem ersten Socket 200 verbunden ist, geschrieben und die Höchstanzahl von Verbindungsanforderungen, auf die gewartet werden kann, wird in ein backlog-Feld geschrieben.
  • Ferner lässt die Doppel-Socket-Verbindungseinheit 102 als ein Server die empfangene Verbindungsanforderung zu, indem eine Funktion accept () einer Akzeptanzfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die accept-Funktion Informationen über das erste Socket 200 und eine Adresse des IPv6-Knoten 21 enthält, der die Verbindungsanforderung gesendet hat. Hier wird ein neues Socket für eine Direktkommunikation (one to one communication) mit einem Prozess erzeugt, enthalten in einem Anwendungsprogramm, der in dem IPv6-Knoten 21 ausgeführt wird, der einem Client entspricht. Die Funktion accept () wird als ein Typ von int accept (int sockfd, struct sockaddr *clientaddr, int addrlen) definiert. Ein Socket-Deskriptor des ersten Socket 200 wird in ein sockfd-Feld einer Funktion accept () zum Zulassen einer Verbindungsanforderung von dem IPv6-Knoten 21, der einem Client entspricht, geschrieben, eine Adressstruktur wird in ein clientaddr-Feld geschrieben, die Adressstruktur enthält eine IPv6-Adresse sowie eine Anschlussnummer des IPv6-Knotens 21, und eine Größe der Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Darüber hinaus fordert die Doppel-Socket-Verbindungseinheit 102 als ein Client eine Verbindung zu dem IPv4-Knoten 31 an, indem eine Funktion connect () einer Verbindungsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Funktion connect () Informationen über das zweite Socket 300 und eine Adresse des IPv4-Knotens 31 enthält, der auf den Empfang einer Verbindungsanforderung wartet. Die Funktion connect () wird als ein Typ von int connect (int sockfd, struct sockaddr *serveraddr, int addrlen) definiert. Ein Socket-Deskriptor des zweiten Socket wird in ein sockfd-Feld der Funktion connect () zum Anfordern einer Verbindung zu dem IPv4-Knoten 31, der als ein Server fungiert, geschrieben, eine Adressstruktur wird in ein serveraddr-Feld geschrieben, die Adressstruktur enthält eine IPv4-Adresse sowie eine Anschlussnummer des IPv4-Knotens 31, und eine Größe der Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Die erste Socket-Kommunikationseinheit 103 empfängt Daten, die von dem IPv6-Knoten 21 über das erste Socket 200, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 11 UDP verwendet, oder sie empfängt Daten, die von dem IPv6-Knoten 21 über das erste Socket 200 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit verbunden ist, wenn der Knoten 11 TCP verwendet. Dies liegt daran, dass eine Funktion listen () und eine Funktion accept () bei einer verbindungsorientierten Kommunikation wie beispielsweise TCP aufgerufen werden sollten, Daten können jedoch bei einer nicht verbindungsorientierten Kommunikation wie beispielsweise UDP auch direkt empfangen und gesendet werden, ohne dass die Funktionen listen () und accept () aufgerufen werden müssen.
  • Im Besonderen empfängt die erste Socket-Kommunikationseinheit 103 als ein Server Daten, die von dem IPv6-Knoten 21 über das erste Socket 200 übertragen wurden, in dem eine Funktion recv () oder recvfrom () einer Empfangsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Empfangsfunktion Informationen über das erste Socket 200 und die von dem IPv6-Knoten 21 übertragenen Daten enthält. Die zweite Socket-Kommunikationseinheit 104 sendet als ein Client Daten, die von dem IPv6-Knoten 21 über das zweite Socket 300 übertragen wurden, indem eine Funktion send () oder sendto () einer Sendefunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Sendefunktion Informationen über das zweite Socket 300 und die von dem IPv6-Knoten 21 übertragenen Daten enthält. Die Funktionen recv () und send () werden in einer verbindungsorientierten Kommunikation wie beispielsweise TCP aufgerufen, oder die Funktionen recvfrom () und sendto () werden in einer nicht verbindungsorientierten Kommunikation wie beispielsweise UDP aufgerufen.
  • Die Funktion recv () wird als ein Typ von int recv (int sockfd, char buf, int buflen, int flags) definiert. Ein Socket-Deskriptor des ersten Socket 200 wird zum Empfangen der von dem IPv6-Knoten 21 über das erste Socket 200 übertragenen Daten in ein sockfd-Feld der Funktion recv () geschrieben, wobei der Zeiger (pointer) eines Zwischenspeichers (buffer) die empfangenen Daten in einem buf-Feld speichert, eine Größe des Zwischenspeichers wird in ein buflen-Feld geschrieben und ein Wert, der Bandüberschreitung (out of band) und dergleichen anzeigt, wird in ein flags-Feld geschrieben. Andererseits wird die Funktion recvfrom () als ein Typ von int recvfrom (int sockfd, char buf, int buflen, int flags, struct sockaddr *fromaddr, int addrlen) definiert. Das heißt, der mit der Funktion recv () identische Wert wird in ein sockfd-Feld, ein buf-Feld, ein buflen-Feld sowie ein flags-Feld der Funktion recvfrom () zum Empfangen von Daten über das erste Socket 200 geschrieben, eine Quellen-Adressstruktur wird in ein fromaddr-Feld geschrieben, wobei die Quellen-Adressstruktur eine IPv6-Adresse sowie eine Anschlussnummer des IPv6-Knoten 21 enthält, und eine Größe der Quellen-Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Die Funktion send () wird als ein Typ von int send (int sockfd, char buf, int buflen, int flags) definiert. Ein Socket-Deskriptor des zweiten Socket 300 wird in ein sockfd-Feld der Funktion send () zum Senden der von dem IPv6-Knoten 21 übertragenen Daten über das zweite Socket 300 geschrieben; der Zeiger des Zwischenspeichers, der zu sendende Daten speichert, wird in ein buf-Feld geschrieben, wobei der Zeiger mit dem Wert der Funktion recv () identisch ist; und der Wert, der eine Bandüberschreitung und dergleichen anzeigt, wird in ein Hags-Feld geschrieben, wobei der Wert mit dem Wert der Funktion recv () identisch ist. Dieser Prozess ist auf den IPv6-zu-IPv4-Übergangsprozess in der Anwendungsschicht 100 anwendbar. Andererseits wird die Funktion sendto () als ein Typ von int sendto (int sockfd, char buf, int buflen, int flags, struct sockaddr *toaddr, int addrlen) definiert. Das heißt, die mit der Funktion send () identischen Werte werden in ein sockfd-Feld, ein buf-Feld, ein buflen-Feld und ein flags-Feld der Funktion sendto () zum Senden von Daten, die von dem IPv6-Knoten 21 über das zweite Socket 300 übertragen wurden, geschrieben, eine Quellen-Adressstruktur wird in ein toaddr-Feld geschrieben, die Quellen-Adressstruktur enthält eine IPv4-Adresse sowie eine Anschlussnummer des IPv4-Knotens 31, und eine Größe der Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Des Weiteren empfängt die zweite Socket-Kommunikationseinheit 104 Daten, die von dem IPv4-Knoten 31 über das zweite Socket 300, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 11 UDP verwendet, oder sie empfängt Daten, die von dem IPv4-Knoten 31 über das zweite Socket 300 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 11 TCP verwendet. Die erste Socket-Kommunikationseinheit 103 sendet Daten, die von dem IPv4-Knoten 31 über das erste Socket 200, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 11 UDP verwendet, oder sie sendet Daten, die von dem IPv4-Knoten 31 über das erste Socket 200 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist.
  • Spezieller empfängt die zweite Socket-Kommunikationseinheit 104 als ein Server Daten, die von dem IPv4-Knoten 31 über das zweite Socket 300 übertragen wurden, indem eine Funktion recv () oder recvfrom () einer Empfangsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Empfangsfunktion Informationen über das zweite Socket 300 und die von dem IPv4-Knoten 31 übertragenen Daten enthält. Die erste Socket-Kommunikationseinheit 103 sendet als ein Client Daten, die von dem IPv4-Knoten 31 über das erste Socket 200 übertragen wurden, indem eine Funktion send () oder sendto () einer Sendefunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Sendefunktion Informationen über das erste Socket und die von dem IPv4-Knoten 31 übertragenen Daten enthält.
  • Ein Socket-Deskriptor des zweiten Socket 300 wird zum Empfangen der von dem IPv4-Knoten 31 über das zweite Socket 300 übertragenen Daten in ein sockfd-Feld der Funktion recv () geschrieben; ein Zwischenspeicher-Zeiger, der die empfangenen Daten speichert, wird in ein buf-Feld geschrieben; eine Größe des Zwischenspeichers wird in ein buflen-Feld geschrieben; und ein Wert, der Bandüberschreitung und dergleichen anzeigt, wird in ein flags-Feld geschrieben. Andererseits werden die Werte, die mit der Funktion recv () identisch sind, in ein sockfd-Feld, ein buf-Feld, ein buflen-Feld und ein flags-Feld der Funktion recvfrom () zum Empfangen von Daten geschrieben, die von dem IPv4-Knoten 31 über das zweite Socket 300 übertragen wurden; eine Quellen-Adressstruktur wird in ein fromaddr-Feld geschrieben, wobei die Quellen-Adressstruktur eine IPv4-Adresse sowie eine Anschlussnummer des IPv4-Knotens 31 enthält; und eine Größe der Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Ein Socket-Deskriptor des ersten Socket 200 wird in ein Feld sockfd der Funktion send () zum Senden von Daten, die von dem IPv4-Knoten 31 über das erste Socket 200 übertragen wurden, geschrieben; ein Zeiger eines Zwischenspeichers, der zu sendende Daten speichert, wird in ein buf-Feld geschrieben, wobei der Zeiger mit dem Wert der Funktion recv () identisch ist; und ein Wert, der eine Bandüberschreitung und dergleichen anzeigt, wird in ein flags-Feld geschrieben, wobei der Wert mit dem Wert der Funktion recv () identisch ist. Dieser Prozess ist auf den IPv4-zu-IPv6-Übergangsprozess in der Anwendungsschicht 100 anwendbar. Andererseits wird der Wert, der mit der Funktion send () identisch ist, in ein sockfd-Feld, ein buf-Feld, ein buflen-Feld und ein flags-Feld einer Funktion sendto () geschrieben, zum Senden von Daten, die von dem IPv4-Knoten 31 über das erste Socket 200 übertragen wurden; eine Quellen-Adressstruktur wird in ein toaddr-Feld geschrieben, wobei die Quellen-Adressstruktur eine IPv6-Adresse sowie eine Anschlussnummer des IPv6-Knotens 21 enthält; und eine Größe der Adressstruktur wird in ein addrlen-Feld geschrieben.
  • 3 ist ein Konfigurationsdiagramm einer anderen Netzwerkumgebung gemäß einer anderen beispielhaften Ausführungsform der vorliegenden Erfindung.
  • In 3 umfasst die Netzwerkumgebung einen Knoten 12, der mit einer Vorrichtung zum Verbinden von Knoten heterogener Protokolle, einem IPv4-Knoten 22, der als ein Client fungiert, sowie mit dem IPv6-Knoten 32 ausgestattet ist, der als ein Server fungiert. Der Knoten 12 spielt in Bezug auf den IPv4-Knoten 22 eine Rolle eines Servers und spielt gleichzeitig in Bezug auf den IPv6-Knoten 32 auch eine Rolle eines Clients. Ausführungsformen der vorliegenden Erfindung werden nun spezieller beschrieben, wobei das Augenmerk auf die Unterschiede zwischen der Netzwerkumgebung aus 2 und der Netzwerkumgebung aus 3 gelegt wird, die Gemeinsamkeiten zwischen den beiden Netzwerkumgebungen werden nicht erneut beschrieben.
  • Wie in 3 dargestellt, erzeugt die Doppel-Socket-Erzeugungseinheit 101 das erste Socket 200, das für die IPv4-Kommunikation von jedwedem Anwendungsprogramm zu verwenden ist, und das zweite Socket 300 ist für die IPv6-Kommunikation des Anwendungsprogramms zu verwenden. Die Doppel-Socket-Erzeugungseinheit 101 erzeugt als ein Server und Client das erste Socket 200, indem eine Funktion Socket () einer Socket-Funktion in einer Anwendungsschicht 100 aufgerufen wird, wobei die Funktion Socket () Informationen über IPv4 enthält. IPv4 wird in ein protocol-Feld der Funktion Socket () zum Erzeugen des ersten Socket 200 geschrieben, um somit die Verwendung von IPv4 anzuzeigen. Die Doppel-Socket-Erzeugungseinheit 101 erzeugt das zweite Socket 300, indem eine Funktion Socket () in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket () Informationen über IPv6 enthält. IPv6 wird in ein protocol-Feld der Funktion Socket () zum Erzeugen des zweiten Socket 300 geschrieben, um somit die Verwendung von IPv6 anzuzeigen. Darüber hinaus verbindet die Doppel-Socket-Erzeugungseinheit 101 als ein Server eine Adresse des Knotens 12 mit dem ersten Socket 200, indem eine Funktion bind () einer Verbindungsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Verbindungsfunktion Informationen über das erste Socket 200 und eine Adresse des Knotens 12 enthält, der als Bestimmungsort des IPv4-Knotens 22 eingestellt ist. Eine Adressstruktur wird zum Verbinden der Adresse mit dem ersten Socket 200 in ein myaddr-Feld der Funktion bind () geschrieben, wobei die Adressstruktur eine IPv4-Adresse sowie eine Anschlussnummer enthält, die von TCP/UDP 403 und IPv4 404 bereitgestellt wurden.
  • Die Doppel-Socket-Verbindungseinheit 102 lässt als ein Server die empfangene Verbindungsanforderung zu, indem eine Funktion accept () einer Akzeptanzfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Funktion accept Informationen über das erste Socket 200 und die Adresse des IPv4-Knotens 22 enthält, der die Verbindungsanforderung gesendet hat. Eine Adressstruktur wird in ein clientaddr-Feld der Funktion accept () zum Zulassen der Verbindungsanforderung von dem IPv4-Knoten 22, der als ein Client fungiert, geschrieben, die Adressstruktur enthält eine IPv4-Adresse sowie eine Anschlussnummer des IPv4-Knotens 22; und eine Größe der Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Darüber hinaus fordert die Doppel-Socket-Verbindungseinheit 102 als ein Client eine Verbindung zu dem IPv6-Knoten 32 an, indem eine Funktion connect () einer Verbindungsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Funktion connect () Informationen über das zweite Socket 300 und eine Adresse des IPv6-Knotens 32 enthält, der auf den Empfang einer Verbindungsanforderung wartet. Eine Adressstruktur wird in ein serveraddr-Feld einer Funktion connect () zum Anfordern einer Verbindung mit dem IPv6-Knoten 32, der einem Server entspricht, geschrieben, wobei die Adressstruktur eine IPv6-Adresse sowie eine Anschlussnummer des IPv6-Knotens 32 enthält.
  • Die erste Socket-Kommunikationseinheit 103 empfängt Daten, die von dem IPv4-Knoten 22 über das erste Socket 200, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 12 UDP verwendet, oder sie empfängt Daten, die von dem IPv4-Knoten 22 über das erste Socket 200 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 12 TCP verwendet. Die zweite Socket-Kommunikationseinheit 104 empfängt Daten, die von dem IPv4-Knoten 22 über das zweite Socket 300, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 12 UDP verwendet, oder sie empfängt Daten, die von dem IPv4-Knoten 22 über das zweite Socket 300 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 12 TCP verwendet.
  • Die erste Socket-Kommunikationseinheit 103 empfängt als ein Server Daten, die von dem IPv4-Knoten 22 über das erste Socket 200 übertragen wurden, indem eine Funktion recv () oder recvfrom () einer Empfangsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Empfangsfunktion Informationen über das erste Socket 200 und die von dem IPv4-Knoten 22 übertragenen Daten enthält. Die zweite Socket-Kommunikationseinheit 104 sendet als ein Client Daten, die von dem IPv4-Knoten 22 über das zweite Socket 300 übertragen wurden, indem eine Funktion send () oder sendto () einer Sendefunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Sendefunktion Informationen über das zweite Socket und die von dem IPv4-Knoten 22 übertragenen Daten enthält.
  • Eine Quellen-Adressstruktur wird in ein fromaddr-Feld der Funktion recvfrom zum Empfangen von Daten geschrieben, wobei die Quellen-Adressstruktur eine IPv4-Adresse sowie eine Anschlussnummer des IPv4-Knotens 22 enthält, und eine Größe der Quellen-Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Ein Socket-Deskriptor des zweiten Socket 300 wird in ein sockfd-Feld der Funktion send () zum Senden der von dem IPv4-Knoten 22 übertragenen Daten über das zweite Socket 300 geschrieben; ein Zeiger eines Zwischenspeichers, der zu sendende Daten speichert, wird in ein buf-Feld geschrieben, wobei der Zeiger mit dem Wert der Funktion recv () identisch ist; eine Größe des Zwischenspeichers wird in ein buflen-Feld geschrieben, wobei die Größe mit dem Wert der Funktion recv () identisch ist; und ein Wert, der eine Bandüberschreitung und dergleichen anzeigt, wird in ein flags-Feld geschrieben, wobei der Wert mit dem Wert der Funktion recv () identisch ist. Dieser Prozess ist auf den IPv4-zu-IPv6-Übergangsprozess in der Anwendungsschicht 100 anwendbar. Andererseits wird eine Quellen-Adressstruktur in ein toaddr-Feld eines toaddr-Feldes zum Senden von Daten, die von dem IPv4-Knoten 22 über das zweite Socket 300 übertragen wurden, geschrieben, die Quellen-Adressstruktur enthält eine IPv6-Adresse sowie eine Anschlussnummer des IPv6-Knotens 32.
  • Des Weiteren empfängt die zweite Socket-Kommunikationseinheit 104 Daten, die von dem IPv6-Knoten 32 über das zweite Socket 300, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 12 UDP verwendet, oder sie empfängt Daten, die von dem IPv4-Knoten 22 über das zweite Socket 300 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 12 TCP verwendet. Die erste Socket-Kommunikationseinheit 103 sendet Daten, die von dem IPv6-Knoten 32 über das erste Socket 200, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 12 UDP verwendet, oder sie sendet Daten, die von dem IPv6-Knoten 32 über das erste Socket 200 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 12 TCP verwendet.
  • Spezieller empfängt die zweite Socket-Kommunikationseinheit 104 als ein Server Daten, die von dem IPv6-Knoten 32 über das zweite Socket 300 übertragen wurden, indem eine Funktion recv () oder recvfrom () einer Empfangsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Empfangsfunktion Informationen über das zweite Socket 300 und die von dem IPv6-Knoten 32 übertragenen Daten enthält. Die erste Socket-Kommunikationseinheit 103 sendet als ein Client Daten, die von dem IPv6-Knoten 32 über das erste Socket 200 übertragen wurden, indem eine Funktion send () oder sendto () einer Sendefunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Sendefunktion Informationen über das erste Socket und die von dem IPv6-Knoten 32 übertragenen Daten enthält.
  • Eine Quellen-Adressstruktur wird in ein fromaddr-Feld der Funktion recvfrom () zum Empfangen von Daten, die von dem IPv6-Knoten 32 über das zweite Socket 300 übertragen wurden, geschrieben, wobei die Quellen-Adressstruktur eine IPv6-Adresse sowie eine Anschlussnummer des IPv6-Knotens 32 enthält.
  • Ein Socket-Deskriptor des ersten Socket 200 wird in ein Feld sockfd der Funktion send () zum Senden von Daten, die von dem IPv6-Knoten 32 über das erste Socket 200 übertragen wurden, geschrieben; ein Zeiger eines Zwischenspeichers, der die zu sendenden Daten speichert, wird in ein buf-Feld geschrieben, wobei der Zeiger mit dem Wert der Funktion recv () identisch ist; eine Größe des Zwischenspeichers wird in ein buflen-Feld geschrieben, wobei die Größe mit dem Wert der Funktion recv () identisch ist; und ein Wert, der eine Bandüberschreitung und dergleichen anzeigt, wird in ein Hags-Feld geschrieben, wobei der Wert mit dem Wert der Funktion recv () identisch ist.
  • Dieser Prozess ist auf den IPv6-zu-IPv4-Übergangsprozess in der Anwendungsschicht 100 anwendbar. Andererseits wird die Quellen-Adressstruktur in ein toaddr-Feld der Funktion sendto () zum Senden von Daten, die von dem IPv6-Knoten 32 über das erste Socket 200 übertragen wurden, geschrieben, wobei die Quellen-Adressstruktur eine IPv4-Adresse sowie eine Anschlussnummer des IPv4-Knotens 22 enthält.
  • 4 ist ein Konfigurationsdiagramm einer anderen Netzwerkumgebung gemäß noch einer anderen beispielhaften Ausführungsform der vorliegenden Erfindung.
  • In 4 umfasst die Netzwerkumgebung einen Knoten 13, der mit einer Vorrichtung zum Verbinden von Knoten heterogener Protokolle, einem mobilen Knoten 23, der als ein Client fungiert, sowie mit einem nicht-mobilen Knoten 33 ausgestattet ist, der als ein Server fungiert. Der Knoten 13 spielt bei dem mobilen Knoten 23 eine Rolle eines Servers und gleichzeitig spielt er bei dem nicht-mobilen Knoten 33 die Rolle eines Client. Ausführungsformen der vorliegenden Erfindung werden nun spezieller beschrieben, wobei das Augenmerk auf die Unterschiede zwischen der Netzwerkumgebung aus 2 und der Netzwerkumgebung aus 4 gelegt wird, die Gemeinsamkeiten zwischen den beiden Netzwerkumgebungen werden nicht erneut beschrieben.
  • Die Doppel-Socket-Erzeugungseinheit 101 erzeugt das zweite Socket 300, das für die mobile Kommunikation von jedwedem Anwendungsprogramm zu verwenden ist, sowie das zweite Socket 300, das für die nicht-mobile Kommunikation des Anwendungsprogramms zu verwenden ist. Die Doppel-Socket-Erzeugungseinheit 101 erzeugt als ein Server und ein Client das erste Socket 200, indem eine Funktion Socket () einer Socket-Funktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Funktion Socket () Informationen über eine mobile IP enthält. Die mobile IP wird in ein protocol-Feld der Funktion Socket () zum Erzeugen des ersten Socket 200 geschrieben, um somit die Verwendung einer mobilen IP anzuzeigen. Die Doppel-Socket-Erzeugungseinheit 101 erzeugt das zweite Socket 300, indem eine Funktion Socket () in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket () Informationen über die nicht-mobile IP enthält. Die nicht-mobile IP wird in ein protocol-Feld der Funktion Socket () zum Erzeugen des zweiten Socket 300 geschrieben, um somit die Verwendung einer Verwendung einer nicht-mobilen IP anzuzeigen. Darüber hinaus verbindet die Doppel-Socket-Erzeugungseinheit 101 als ein Server eine Adresse des Knotens 13 mit dem ersten Socket 200, indem eine Funktion bind () einer Verbindungsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Verbindungsfunktion Informationen über das erste Socket 200 und eine Adresse des Knotens 13 enthält, der als Bestimmungsort des mobilen Knotens 23 eingestellt ist. Eine Adressstruktur wird in ein myaddr-Feld der Funktion bind () zum Verbinden der Adresse mit dem ersten Socket 200 geschrieben, wobei die Adressstruktur eine mobile IP-Adresse sowie eine Anschlussnummer enthält, die von TCP/UDP 405 und der mobilen IP 406 bereitgestellt wurden.
  • Ferner lässt die Doppel-Socket-Verbindungseinheit 122 als ein Server die empfangene Verbindungsanforderung zu, indem eine Funktion accept () einer Akzeptanzfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die accept-Funktion Informationen über das erste Socket 200 und eine Adresse des mobilen Knotens 23 enthält, der die Verbindungsanforderung gesendet hat. Eine Adressstruktur wird in ein clientaddr-Feld der Funktion accept () zum Zulassen der Verbindungsanforderung von dem mobilen Knoten 23, der einem Client entspricht, geschrieben, wobei die Adressstruktur eine mobile IP-Adresse sowie eine Anschlussnummer des mobilen Knotens 23 enthält, und eine Größe der Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Darüber hinaus fordert die Doppel-Socket-Verbindungseinheit 102 als ein Client eine Verbindung zu dem nicht-mobilen Knoten 33 an, indem eine Funktion connect () einer Verbindungsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Funktion connect () Informationen über das zweite Socket 300 und eine Adresse des nicht-mobilen Knotens 33 enthält, der auf den Empfang einer Verbindungsanforderung wartet. Eine Adressstruktur wird in ein serveraddr-Feld einer Funktion connect () zum Anfordern einer Verbindung mit dem nicht-mobilen Knoten 33, der einem Server entspricht, geschrieben, wobei die Adressstruktur eine nicht-mobile IP-Adresse sowie eine Anschlussnummer des nicht-mobilen Knotens 33 enthält.
  • Die erste Socket-Kommunikationseinheit 103 empfängt Daten, die von dem mobilen Knoten 23 über das erste Socket 200, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 13 UDP verwendet, oder sie empfangt Daten, die von dem mobilen Knoten 23 über das erste Socket 200 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 13 TCP verwendet. Die zweite Socket-Kommunikationseinheit 104 empfängt Daten, die von dem mobilen Knoten 23 über das zweite Socket 300, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 13 UDP verwendet, oder sie empfangt Daten, die von dem mobilen Knoten 23 über das zweite Socket 300 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 13 TCP verwendet.
  • Die erste Socket-Kommunikationseinheit 103 empfängt als ein Server Daten, die von dem mobilen Knoten 23 über das erste Socket 200 übertragen wurden, indem eine Funktion recv () oder recvfrom () einer Empfangsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Empfangsfunktion Informationen über das erste Socket 200 und die von dem mobilen Knoten 23 übertragenen Daten enthält. Die zweite Socket-Kommunikationseinheit 104 sendet als ein Client Daten, die von dem mobilen Knoten 23 über das zweite Socket 300 übertragen wurden, indem eine Funktion send () oder sendto () einer Sendefunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Sendefunktion Informationen über das zweite Socket 300 und Informationen über die von dem mobilen Knoten 23 übertragenen Daten enthält.
  • Eine Quellen-Adressstruktur wird in ein fromaddr-Feld der Funktion recvfrom () zum Empfangen von Daten über das erste Socket 200 geschrieben, die Quellen-Adressstruktur enthält eine mobile IP-Adresse und eine Anschlussnummer des mobilen Knotens 23; und eine Größe der Quellen-Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Ein Socket-Deskriptor des zweiten Socket 300 wird in ein sockfd-Feld der Funktion send () zum Senden von Daten, die von dem mobilen Knoten 23 über das zweite Socket 300 übertragen wurden, geschrieben; ein Zeiger eines Zwischenspeichers, der zu sendende Daten speichert, wird in ein buf-Feld geschrieben, wobei der Zeiger mit dem Wert der Funktion recv () identisch ist; und eine Größe des Wertes, der mit einem Zwischenspeicher identisch ist, wird in ein buflen-Feld geschrieben; und der Wert, der eine Bandüberschreitung und dergleichen anzeigt, wird in ein flags-Feld geschrieben, wobei der Wert mit dem Wert der Funktion recv () identisch ist. Dieser Prozess ist auf den Übergangsprozess von der mobilen IP zu der nicht-mobilen IP in der Anwendungsschicht 100 anwendbar. Andererseits wird die Quellen-Adressstruktur in ein toaddr-Feld der Funktion sendto () zum Senden von Daten, die von dem mobilen Knoten 23 über das erste Socket 300 übertragen wurden, geschrieben, wobei die Quellen-Adressstruktur eine nicht-mobile Adresse und eine Anschlussnummer des nicht-mobilen Knotens 33 enthält.
  • Des Weiteren empfängt die zweite Socket-Kommunikationseinheit 104 Daten, die von dem nicht-mobilen Knoten 33 über das zweite Socket 300, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 13 UDP verwendet, oder sie empfangt Daten, die von dem nicht-mobilen Knoten 33 über das zweite Socket 300 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 13 TCP verwendet. Die erste Socket-Kommunikationseinheit 103 sendet Daten, die von dem nicht-mobilen Knoten 33 über das erste Socket 200, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 13 UDP verwendet, oder sie sendet Daten, die von dem nicht-mobilen Knoten 33 über das erste Socket 200 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 13 TCP verwendet.
  • Die zweite Socket-Kommunikationseinheit 104 empfängt als ein Server Daten, die von dem nicht-mobilen Knoten 33 über das zweite Socket 300 übertragen wurden, indem eine Funktion recv () oder recvfrom () einer Empfangsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Empfangsfunktion Informationen über das zweite Socket 300 und Informationen über die von dem nicht-mobilen Knoten 33 übertragenen Daten enthält. Die erste Socket-Kommunikationseinheit 103 sendet als ein Client Daten, die von dem nicht-mobilen Knoten 33 über das erste Socket 200 übertragen wurden, indem eine Funktion send () oder sendto () einer Sendefunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Sendefunktion Informationen über das erste Socket und Informationen über die von dem nicht-mobilen Knoten 33 übertragenen Daten enthält.
  • Eine Quellen-Adressstruktur wird in ein fromaddr-Feld der Funktion recvfrom () zum Senden von Daten, die von dem nicht-mobilen Knoten 33 über das zweite Socket 300 übertragen wurden, geschrieben, wobei die Quellen-Adressstruktur eine nicht-mobile IP-Adresse und eine Anschlussnummer des nicht-mobilen Knotens 33 enthält.
  • Ein Socket-Deskriptor des ersten Socket 200 wird in ein sockfd-Feld der Funktion send () zum Senden der von dem nicht-mobilen Knoten 33 übertragenen Daten über das zweite Socket 300 geschrieben; ein Zeiger eines Zwischenspeichers, der zu sendende Daten speichert, wird in ein buf-Feld geschrieben, wobei der Zeiger mit dem Wert der Funktion recv () identisch ist; eine Größe des Zwischenspeichers wird in ein buflen-Feld geschrieben, wobei die Größe mit dem Wert der Funktion recv () identisch ist; der Wert, der eine Bandüberschreitung und dergleichen anzeigt, wird in ein Hags-Feld geschrieben, wobei der Wert mit dem Wert der Funktion recv () identisch ist. Dieser Prozess ist auf den Übergangsprozess von der nicht-mobilen IP zu der mobilen IP in der Anwendungsschicht 100 anwendbar. Andererseits wird eine Quellen-Adressstruktur in ein toaddr-Feld der Funktion sendto () zum Senden von Daten, die von dem nicht-mobilen Knoten 33 über das erste Socket 200 übertragen wurden, geschrieben, wobei die Quellen-Adressstruktur eine mobile IP-Adresse und eine Anschlussnummer des mobilen IP-Knotens 23 enthält.
  • 5 ist ein Konfigurationsdiagramm einer anderen Netzwerkumgebung gemäß noch einer anderen beispielhaften Ausführungsform der vorliegenden Erfindung.
  • In 5 umfasst die Netzwerkumgebung einen Knoten 14, der mit einer Vorrichtung zum Verbinden von Knoten heterogener Protokolle, einem nicht-mobilen Knoten 24, der als ein Client fungiert, sowie mit dem mobilen Knoten 34 ausgestattet ist, der als ein Server fungiert. Der Knoten 14 spielt in Bezug auf den nicht-mobilen Knoten 34 eine Rolle eines Servers und spielt gleichzeitig in Bezug auf den mobilen Knoten 34 auch eine Rolle eines Clients. Ausführungsformen der vorliegenden Erfindung werden nun spezieller beschrieben, wobei das Augenmerk auf die Unterschiede zwischen der Netzwerkumgebung aus 2 und der Netzwerkumgebung aus 5 gelegt wird, die Gemeinsamkeiten zwischen den beiden Netzwerkumgebungen werden nicht erneut beschrieben.
  • Die Doppel-Socket-Erzeugungseinheit 101 erzeugt das erste Socket 200, das für die nicht-mobile Kommunikation von jedwedem Anwendungsprogramm zu verwenden ist, sowie das zweite Socket 300, das für die mobile Kommunikation des Anwendungsprogramms zu verwenden ist. Die Doppel-Socket-Erzeugungseinheit 101 erzeugt als ein Server und ein Client das erste Socket 200, indem eine Funktion Socket () einer Socket-Funktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Funktion Socket () Informationen über die nicht-mobile IP enthält. Die nicht-mobile IP wird in ein protocol-Feld der Funktion Socket () zum Erzeugen des ersten Socket 200 geschrieben, um somit die Verwendung einer mobilen IP anzuzeigen. Die Doppel-Socket-Erzeugungseinheit 101 erzeugt das zweite Socket 300, indem eine Funktion Socket () in der Anwendungsschicht aufgerufen wird, wobei das Socket () Informationen über die mobile IP enthält. Die mobile IP wird in ein protocol-Feld der Funktion Socket () zum Erzeugen des zweiten Socket 300 geschrieben, um somit die Verwendung einer mobilen IP anzuzeigen. Darüber hinaus verbindet die Doppel-Socket-Erzeugungseinheit 101 als ein Server eine Adresse des Knotens 14 mit dem ersten Socket 200, indem eine Funktion bind () einer Verbindungsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Verbindungsfunktion Informationen über das erste Socket 200 und eine Adresse des Knotens 14 enthält, der als Bestimmungsort des nicht-mobilen Knotens 24 eingestellt ist. Eine Adressstruktur wird in ein myaddr-Feld der Funktion bind () zum Verbinden der Adresse mit dem ersten Socket 200 geschrieben, wobei die Adressstruktur eine nicht-mobile IP-Adresse sowie eine Anschlussnummer enthält, die von TCP/UDP 407 und der nicht-mobilen IP 408 bereitgestellt wurden.
  • Die Doppel-Socket-Verbindungseinheit 102 lässt als ein Server die empfangene Verbindungsanforderung zu, indem eine Funktion accept () einer Akzeptanzfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die accept-Funktion Informationen über das erste Socket 200 und eine Adresse des nicht-mobilen Knotens 24 enthält, der die Verbindungsanforderung gesendet hat. Eine Adressstruktur wird in ein clientaddr-Feld einer Funktion accept () zum Zulassen der Verbindungsanforderung von dem nicht-mobilen Knoten 24, der als ein Client agiert, geschrieben, wobei die Adressstruktur eine nicht-mobile IP-Adresse sowie eine Anschlussnummer des nicht-mobilen Knotens 24 enthält, und eine Größe der Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Darüber hinaus fordert die Doppel-Socket-Verbindungseinheit 102 als ein Client eine Verbindung zu dem mobilen Knoten 34 an, indem eine Funktion connect () einer Verbindungsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Funktion connect () Informationen über das zweite Socket 300 und eine Adresse des mobilen Knotens 34 enthält, der auf den Empfang einer Verbindungsanforderung wartet. Eine Adressstruktur wird in ein serveraddr-Feld einer Funktion connect () zum Anfordern einer Verbindung mit dem mobilen Knoten 34, der als ein Server agiert, geschrieben, wobei die Adressstruktur eine mobile IP-Adresse sowie eine Anschlussnummer des mobilen Knotens 34 enthält.
  • Die erste Socket-Kommunikationseinheit 103 empfängt Daten, die von dem nicht-mobilen Knoten 24 über das erste Socket 200, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 14 UDP verwendet, oder sie empfängt Daten, die von dem nicht-mobilen Knoten 24 über das erste Socket 200 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 14 TCP verwendet. Die zweite Socket-Kommunikationseinheit 104 sendet Daten, die von dem nicht-mobilen Knoten 24 über das zweite Socket 300, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 14 UDP verwendet, oder sie sendet Daten, die von dem nicht-mobilen Knoten 24 über das zweite Socket 300 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 14 TCP verwendet.
  • Die erste Socket-Kommunikationseinheit 103 empfängt als ein Server Daten, die von dem nicht-mobilen Knoten 24 über das erste Socket 200 übertragen wurden, indem eine Funktion recv () oder recvfrom () einer Empfangsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Empfangsfunktion Informationen über das erste Socket 200 und Informationen über die von dem nicht-mobilen Knoten 24 übertragenen Daten enthält. Die zweite Socket-Kommunikationseinheit 104 sendet als ein Client Daten, die von dem nicht-mobilen Knoten 24 über das zweite Socket 300 übertragen wurden, indem eine Funktion send () oder sendto () einer Sendefunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Sendefunktion Informationen über das zweite Socket 300 und Informationen über die von dem nicht-mobilen Knoten 24 übertragenen Daten enthält.
  • Eine Quellen-Adressstruktur wird in ein fromaddr-Feld der Funktion recvfrom () zum Empfangen von Daten über das erste Socket 200 geschrieben, die Quellen-Adressstruktur enthält eine nicht-mobile IP-Adresse und eine Anschlussnummer des nicht-mobilen Knotens 24; und eine Größe der Quellen-Adressstruktur wird in ein addrlen-Feld geschrieben.
  • Ein Socket-Deskriptor des zweiten Socket 300 wird in ein sockfd-Feld einer Funktion send () zum Senden von Daten, die von dem nicht-mobilen Knoten 24 über das zweite Socket 300 übertragen wurden, geschrieben; ein Zeiger eines Zwischenspeichers, der zu sendende Daten speichert, wird in ein buf-Feld geschrieben, wobei der Zeiger mit dem Wert einer Funktion recv () identisch ist; und eine Größe des Zwischenspeichers wird in ein buflen-Feld geschrieben, wobei die Größe mit dem Wert einer Funktion recv () identisch ist; und ein Wert, der eine Bandüberschreitung und dergleichen anzeigt, wird in ein flags-Feld geschrieben, wobei der Wert mit dem Wert einer Funktion recv () identisch ist. Dieser Prozess ist auf den Übergangsprozess von der nicht-mobilen IP zu der mobilen IP in der Anwendungsschicht 100 anwendbar. Andererseits wird eine Quellen-Adressstruktur in ein toaddr-Feld der Funktion sendto () zum Senden von Daten, die von dem nicht-mobilen Knoten 24 über das zweite Socket 300 übertragen wurden, geschrieben, wobei die Quellen-Adressstruktur eine mobile IP-Adresse und eine Anschlussnummer des mobilen IP-Knotens 34 enthält.
  • Des Weiteren empfängt die zweite Socket-Kommunikationseinheit 104 Daten, die von dem mobilen Knoten 34 über das zweite Socket 300, das in einer Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 14 UDP verwendet, oder sie empfängt Daten, die von dem mobilen Knoten 34 über das zweite Socket 300 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 14 TCP verwendet. Die erste Socket-Kommunikationseinheit 103 sendet Daten, die von dem mobilen Knoten 34 über das erste Socket 200, das in der Doppel-Socket-Erzeugungseinheit 101 erzeugt wurde, übertragen wurden, wenn der Knoten 14 UDP verwendet, oder sie sendet Daten, die von dem mobilen Knoten 34 über das erste Socket 200 übertragen wurden, das mit der Doppel-Socket-Verbindungseinheit 102 verbunden ist, wenn der Knoten 14 TCP verwendet.
  • Die zweite Socket-Kommunikationseinheit 104 empfängt als ein Server Daten, die von dem mobilen Knoten 34 über das zweite Socket 300 übertragen wurden, indem eine Funktion recv () oder recvfrom () einer Empfangsfunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Empfangsfunktion Informationen über das zweite Socket 300 und Informationen über die von dem mobilen Knoten 34 übertragenen Daten enthält. Die erste Socket-Kommunikationseinheit 103 sendet als ein Client Daten, die von dem mobilen Knoten 34 über das erste Socket 200 übertragen wurden, indem eine Funktion send () oder sendto () einer Sendefunktion in der Anwendungsschicht 100 aufgerufen wird, wobei die Sendefunktion Informationen über das erste Socket 200 und Informationen über die von dem mobilen Knoten 34 übertragenen Daten enthält.
  • Eine Quellen-Adressstruktur wird in ein fromaddr-Feld der Funktion recvfrom () zum Empfangen von Daten, die von dem mobilen Knoten 34 über das zweite Socket 300 übertragen wurden, geschrieben, wobei die Quellen-Adressstruktur eine mobile IP-Adresse und eine Anschlussnummer des mobilen Knotens 34 enthält.
  • Ein Socket-Deskriptor des ersten Socket 200 wird in ein Feld sockfd einer Funktion send () zum Senden von Daten, die von dem mobilen Knoten 34 über das erste Socket 200 übertragen wurden, geschrieben; ein Zeiger eines Zwischenspeichers, der zu sendende Daten speichert, wird in ein buf-Feld geschrieben, wobei der Zeiger mit dem Wert der Funktion recv () identisch ist; eine Größe des Zwischenspeichers wird in ein buflen-Feld geschrieben, wobei die Größe mit dem Wert der Funktion recv () identisch ist; und ein Wert, der eine Bandüberschreitung und dergleichen anzeigt, wird in ein flags-Feld geschrieben, wobei der Wert mit dem Wert der Funktion recv () identisch ist. Dieser Prozess ist auf den Übergangsprozess von der mobilen IP zu der nicht-mobilen IP in der Anwendungsschicht 100 anwendbar. Andererseits wird eine Quellen-Adressstruktur in ein toaddr-Feld einer Funktion sendto () zum Senden von Daten, die von dem mobilen Knoten 34 über das erste Socket 200 übertragen wurden, geschrieben, wobei die Quellen-Adressstruktur eine nicht-mobile IP-Adresse und eine Anschlussnummer des nicht-mobilen IP-Knotens 24 enthält.
  • 6 ist ein Ablaufdiagramm eines Verfahrens zum Verbinden von Knoten heterogener Protokolle gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
  • In 6 umfasst das Verfahren zum Verbinden von Knoten heterogener Protokolle Operationen wie nachstehend beschrieben. Das Verfahren zum Verbinden von Knoten heterogener Protokolle kann beispielsweise in einer Netzwerkumgebung implementiert werden, wie sie in 2 dargestellt wird.
  • Erstens erzeugt der Knoten 11 als ein Server und ein Client das erste Socket, indem eine Funktion Socket (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket (IPv6) Informationen über IPv6 enthält, und ein zweites Socket wird erzeugt, indem eine Funktion Socket (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket (IPv4) Informationen über IPv4 enthält (Operationen 601 und 602). Gleichzeitig erzeugt der IPv6-Knoten 21 das dritte Socket, indem die Funktion Socket (IPv6) aufgerufen wird, das Informationen über IPv6 enthält, und der IPv4-Knoten 31 erzeugt ein viertes Socket, indem eine Funktion Socket (IPv4) aufgerufen wird, das Informationen über IPv4 enthält (Operationen 603 und 604).
  • Anschließend verbindet der Knoten 11 als ein Server eine Adresse des Knotens 11 mit dem ersten Socket, indem eine Funktion bind (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion bind (IPv6) Informationen über das erste Socket und eine Adresse des Knotens 11 enthält, der durch den IPv6-Knoten 21 als ein Bestimmungsort eingestellt ist (Operation 605). Anschließend wartet der Knoten 11 als ein Server den Empfang einer Verbindungsanforderung ab, deren Bestimmungsort eine Adresse ist, die mit dem ersten Socket verbunden ist, indem eine Funktion listen (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion listen (IPv6) Informationen über das erste Socket enthält (Operation 606). Gleichzeitig verbindet der IPv4-Knoten 31 als ein Server eine Adresse des IPv4-Knotens mit dem vierten Socket, indem eine Funktion bind (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion bind (IPv4) Informationen über das vierte Socket enthält (Operation 607). Anschließend wartet der IPv4-Knoten 31 als ein Server den Empfang einer Verbindungsanforderung ab, deren Bestimmungsort eine Adresse ist, die mit dem vierten Socket verbunden ist, indem eine Funktion listen (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion listen (IPv4) Informationen über das vierte Socket enthält (Operation 608).
  • Anschließend fordert der IPv6-Knoten 21 als ein Client eine Verbindung mit dem Knoten 11 an, indem eine Funktion connect (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion connect (IPv6) Informationen über das dritte Socket und eine Adresse des Knotens 11 enthält, der den Empfang einer Verbindungsanforderung erwartet (Operation 609). Anschließend lasst der Knoten 11 als ein Server die Verbindungsanforderung zu, indem eine Funktion accept (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion accept (IPv6) Informationen über das erste Socket und eine Adresse des IPv6-Knotens 21 enthält, der die Verbindungsanforderung gesendet hat (Operation 610). Gleichzeitig fordert der Knoten 11 als ein Client eine Verbindung mit dem IPv4-Knoten 31 an, indem eine Funktion connect (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion connect (IPv4) Informationen über das zweite Socket und eine Adresse des IPv4-Knotens 31 enthält, der den Empfang einer Verbindungsanforderung erwartet (Operation 611). Anschließend lässt der IPv4-Knoten 31 die empfangene Verbindungsanforderung zu, indem eine Funktion accept (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion accept (IPv4) Informationen über das vierte Socket und eine Adresse des Knotens 11 enthält, der die Verbindungsanforderung gesendet hat (Operation 612). Bei einer nicht-mobilen Kommunikation wie beispielsweise UDP können die Operationen des Aufrufens einer Funktion listen (), connect () und accept () ausgelassen werden.
  • Anschließend sendet der IPv6-Knoten 21 als ein Client Daten (von dem IPv6-Knoten 21) über das dritte Socket, indem eine Funktion send (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (IPv6) Informationen über das dritte Socket und Informationen über von dem IPv6-Knoten 21 übertragene Daten enthält (Operation 613). Anschließend empfängt der Knoten 11 als ein Server von dem IPv6-Knoten 21 übertragene Daten über das erste Socket, indem eine Funktion recv (IPv6) in der An wendungsschicht aufgerufen wird, wobei die Funktion recv (IPv6) Informationen über das erste Socket und von dem IPv6-Knoten 21 übertragene Daten enthält (Operation 614). Danach sendet der Knoten 11 von dem IPv6-Knoten 21 übertragene Daten über das zweite Socket, indem eine Funktion send (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Daten Informationen über das zweite Socket und von dem IPv6-Knoten 21 übertragene Daten 21 enthalten (Operation 615). Dieser Prozess ist auf den IPv6-zu-IPv4-Übergangsprozess in der Anwendungsschicht anwendbar. Anschließend empfängt der IPv4-Knoten 31 als ein Server von dem IPv6-Knoten 21 übertragene Daten über das vierte Socket, indem eine Funktion recv (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (IPv4) Informationen über das vierte Socket und die von dem IPv6-Knoten 21 übertragenen Daten enthält (Operation 616). Der IPv4-Knoten 31 verarbeitet die von dem IPv6-Knoten 21 übertragenen Daten.
  • Anschließend sendet der IPv4-Knoten 31 als ein Server von dem IPv4-Knoten 31 übertragene Daten über das vierte Socket, indem eine Funktion send (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (IPv4) Informationen über das vierte Socket und die von dem IPv4-Knoten 31 übertragenen Daten enthält (Operation 617). Danach empfangt der Knoten 11 als ein Client von dem IPv4-Knoten 31 übertragene Daten über das zweite Socket, indem eine Funktion recv (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (IPv4) Informationen über das zweite Socket und von die dem IPv4-Knoten 31 übertragenen Daten enthält (Operation 618). Anschließend sendet der Knoten 11 als ein Server von dem IPv4-Knoten 31 über das erste Socket übertragene Daten, indem eine Funktion send (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (IPv6) Informationen über das erste Socket und die von dem IPv4-Knoten 31 übertragenen Daten enthält (Operation 619). Dieser Prozess ist auf den IPv4-zu-IPv6-Übergangsprozess in der Anwendungsschicht anwendbar. Danach empfängt der IPv6-Knoten 21 als ein Client von dem IPv4-Knoten 31 über das dritte Socket übertragene Daten, indem eine Funktion recv (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (IPv6) Informationen über das vierte Socket und die von dem IPv4-Knoten 31 übertragenen Daten enthält (Operation 620). Der IPv6-Knoten 21 verarbeitet die von dem IPv4-Knoten 31 übertragenen Daten. In dem Fall einer nicht-mobilen Kommunikation wie beispiels weise UDP werden anstatt der Funktion send () und recv () die Funktionen sendto () beispielsweise recvfrom () aufgerufen.
  • 7 ist ein Ablaufdiagramm eines anderen Verfahrens zum Verbinden von Knoten heterogener Protokolle gemäß einer anderen beispielhaften Ausführungsform der vorliegenden Erfindung.
  • In 7 umfasst das Verfahren zum Verbinden von Knoten heterogener Protokolle Operationen wie nachstehend beschrieben. Das Verfahren zum Verbinden von Knoten heterogener Protokolle kann beispielsweise in der Netzwerkumgebung implementiert werden, wie sie in 3 dargestellt wird.
  • Erstens erzeugt der Knoten 12 als ein Server und ein Client das erste Socket, indem eine Funktion Socket (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket (IPv4) Informationen über IPv4 enthält, und das zweite Socket wird erzeugt, indem eine Funktion Socket (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket (IPv6) Informationen über IPv6 enthält (Operationen 701 und 702). Gleichzeitig erzeugt der IPv4-Knoten 22 das dritte Socket, indem eine Funktion Socket (IPv4) aufgerufen wird, die Informationen über IPv4 enthält, und der IPv6-Knoten 32 erzeugt das vierte Socket, indem eine Funktion Socket (IPv6) aufgerufen wird, die Informationen über IPv6 enthält (Operationen 703 und 704).
  • Anschließend verbindet der Knoten 12 als ein Server eine Adresse des Knotens 12 mit dem ersten Socket, indem eine Funktion bind (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion bind (IPv4) Informationen über das erste Socket und eine Adresse des Knotens 12 enthält, der als Bestimmungsort des IPv4-Knotens 22 eingestellt ist (Operation 705). Danach wartet der Knoten 12 als ein Server den Empfang einer Verbindungsanforderung ab, deren Bestimmungsort eine Adresse ist, die mit dem ersten Socket verbunden ist, indem eine Funktion listen (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion listen (IPv4) Informationen über das erste Socket enthält (Operation 706). Gleichzeitig verbindet der IPv6-Knoten 32 als ein Server eine Adresse des IPv6-Knotens 32 mit dem vierten Socket, indem eine Funktion bind (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion bind (IPv6) Informationen über das vierte Socket und eine Adresse des Knotens 12 enthält, der durch den IPv6-Knoten 32 als ein Bestimmungsort eingestellt ist (Operation 707). Danach wartet der IPv6-Knoten 32 als ein Server den Empfang einer Verbindungsanforderung ab, deren Bestimmungsort eine Adresse ist, die mit dem vierten Socket verbunden ist, indem eine Funktion listen (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion listen (IPv6) Informationen über das vierte Socket enthält (Operation 708).
  • Danach fordert der IPv4-Knoten 22 als ein Client eine Verbindung mit dem Knoten 12 an, indem eine Funktion connect (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion connect (IPv4) Informationen über das dritte Socket und eine Adresse des Knotens 12 enthält, der den Empfang einer Verbindungsanforderung erwartet (Operation 709). Anschließend lässt der Knoten 12 als ein Server die Verbindungsanforderung zu, indem eine Funktion accept (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion accept (IPv4) Informationen über das erste Socket und eine Adresse des IPv4-Knotens 22 enthält, der die Verbindungsanforderung gesendet hat (Operation 710). Gleichzeitig fordert der Knoten 12 als ein Client eine Verbindung mit dem IPv6-Knoten 32 an, indem eine Funktion connect (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion connect (IPv6) Informationen über das zweite Socket und eine Adresse des IPv6-Knotens 32 enthält, der den Empfang einer Verbindungsanforderung erwartet (Operation 711). Anschließend lässt der IPv6-Knoten 32 die empfangene Verbindungsanforderung zu, indem eine Funktion accept (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion accept (IPv6) Informationen über das vierte Socket und eine Adresse des Knotens 12 enthält, der die Verbindungsanforderung gesendet hat (Operation 712). Bei einer nicht-mobilen Kommunikation wie beispielsweise UDP werden die Operationen des Aufrufens einer Funktion listen (), connect () und accept () ausgelassen.
  • Anschließend sendet der IPv4-Knoten 22 als ein Client von dem IPv4-Knoten 22 übertragene Daten über das dritte Socket, indem eine Funktion send (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (IPv4) Informationen über das dritte Socket und die von dem IPv4-Knoten 22 übertragenen Daten enthält (Operation 713). Anschließend empfängt der Knoten 12 als ein Server von dem IPv4- Knoten 22 übertragene Daten über das erste Socket, indem eine Funktion recv (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (IPv4) Informationen über das erste Socket und von dem IPv4-Knoten 22 übertragene Daten enthält (Operation 714). Danach sendet der Knoten 12 von dem IPv4-Knoten 22 übertragene Daten über das zweite Socket, indem eine Funktion send (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Daten Informationen über das zweite Socket und von dem IPv4-Knoten 22 übertragene Daten enthalten (Operation 715). Dieser Prozess ist auf den IPv4-zu-IPv6-Übergangsprozess in der Anwendungsschicht anwendbar. Danach empfängt der IPv6-Knoten 32 als ein Server von dem IPv4-Knoten 22 übertragene Daten über das vierte Socket, indem eine Funktion recv (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (IPv6) Informationen über das vierte Socket und die von dem IPv4-Knoten 22 übertragenen Daten enthält (Operation 716). Der IPv6-Knoten 32 verarbeitet die von dem IPv4-Knoten 22 übertragenen Daten.
  • Anschließend sendet der IPv6-Knoten 32 als ein Server von dem IPv6-Knoten 32 über das vierte Socket übertragene Daten, indem eine Funktion send (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (IPv6) Informationen über das vierte Socket und die von dem IPv6-Knoten 32 übertragenen Daten enthält (Operation 717). Danach empfängt der Knoten 12 als ein Client von dem IPv6-Knoten 32 übertragene Daten über das zweite Socket, indem eine Funktion recv (IPv6) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (IPv6) Informationen über das zweite Socket und von dem IPv6-Knoten 32 übertragene Daten enthält (Operation 718). Anschließend sendet der Knoten 12 als ein Server von dem IPv6-Knoten 32 übertragene Daten über das erste Socket, indem eine Funktion send (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (IPv4) Informationen über das erste Socket und die von dem IPv6-Knoten 32 übertragenen Daten enthält (Operation 719). Dieser Prozess ist auf den IPv6-zu-IPv4-Übergangsprozess in der Anwendungsschicht anwendbar. Anschließend empfängt der IPv4-Knoten 22 als ein Client von dem IPv6-Knoten 32 übertragene Daten über das dritte Socket, indem eine Funktion recv (IPv4) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (IPv4) Informationen über das vierte Socket und die von dem IPv6-Knoten 32 übertragenen Daten enthält (Operation 720). Der IPv4-Knoten 22 verarbeitet die von dem IPv6-Knoten 32 übertragenen Daten. In dem Fall einer nicht-mobilen Kommunikation wie beispielsweise UDP werden anstatt der Funktion send () und recv () die Funktionen sendto () beispielsweise recvfrom () aufgerufen.
  • 8 ist ein Ablaufdiagramm eines anderen Verfahrens zum Verbinden von Knoten heterogener Protokolle gemäß noch einer anderen beispielhaften Ausführungsform der vorliegenden Erfindung.
  • In 8 umfasst das Verfahren zum Verbinden von Knoten heterogener Protokolle Operationen wie nachstehend beschrieben. Das Verfahren zum Verbinden von Knoten heterogener Protokolle kann beispielsweise in der Netzwerkumgebung implementiert werden, wie sie in 4 dargestellt wird.
  • Zuerst erzeugt der Knoten 13 als ein Server und ein Client das erste Socket, indem eine Funktion Socket (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket (mobile IP) Informationen über die mobile IP enthält, und das zweite Socket wird erzeugt, indem eine Funktion Socket (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket (nicht-mobile IP) Informationen über die nicht-mobile IP enthält (Operationen 801 und 802). Gleichzeitig erzeugt der mobile Knoten 23 das dritte Socket, indem eine Funktion Socket (mobile IP) aufgerufen wird, die Informationen über die mobile IP enthält, und der nicht-mobile Knoten 33 erzeugt das vierte Socket, indem eine Funktion Socket (nicht-mobile IP) aufgerufen wird, die Informationen über die nicht-mobile IP enthält (Operationen 803 und 804).
  • Anschließend verbindet der Knoten 13 als ein Server eine Adresse des Knotens 13 mit dem ersten Socket, indem eine Funktion bind (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion bind (mobile IP) Informationen über das erste Socket und eine Adresse des Knotens 13 enthält, der durch den mobilen Knoten 23 als Bestimmungsort eingestellt ist (Operation 805). Danach wartet der Knoten 13 als ein Server den Empfang einer Verbindungsanforderung ab, deren Bestimmungsort eine Adresse ist, die mit dem ersten Socket verbunden ist, indem eine Funktion listen (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion listen (mobile IP) Informationen über das erste Socket enthält (Operation 806). Gleichzeitig verbindet der nicht-mobile Knoten 33 als ein Server eine Adresse des nicht-mobilen Knotens 33 mit dem vierten Socket, indem eine Funktion bind (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion bind (nicht-mobile IP) Informationen über das vierte Socket und eine Adresse des nicht-mobilen Knotens 33 enthält, der durch den Knoten 13 als ein Bestimmungsort eingestellt ist (Operation 807). Danach wartet der nicht-mobile Knoten 33 als ein Server den Empfang einer Verbindungsanforderung ab, deren Bestimmungsort eine Adresse ist, die mit dem vierten Socket verbunden ist, indem eine Funktion listen (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion listen (nicht-mobile IP) Informationen über das vierte Socket enthält (Operation 808).
  • Danach fordert der mobile Knoten 23 als ein Client eine Verbindung mit dem Knoten 13 an, indem eine Funktion connect (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion connect (mobile IP) Informationen über das dritte Socket und eine Adresse des Knotens 13 enthält, der den Empfang einer Verbindungsanforderung erwartet (Operation 809). Anschließend lässt der Knoten 13 als ein Server die Verbindungsanforderung zu, indem eine Funktion accept (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion accept (mobile IP) Informationen über das erste Socket und eine Adresse des mobilen Knotens 23 enthält, der die Verbindungsanforderung gesendet hat (Operation 810). Gleichzeitig fordert der Knoten 13 als ein Client eine Verbindung zu dem nicht-mobilen Knoten 33 an, indem eine Funktion connect (nicht-mobile IP) einer Verbindungsfunktion in der Anwendungsschicht aufgerufen wird, wobei die Funktion connect (nicht-mobile IP) Informationen über das zweite Socket und eine Adresse des nicht-mobilen Knotens 33 enthält, der auf den Empfang einer Verbindungsanforderung wartet (Operation 811). Anschließend lässt der nicht-mobile Knoten 33 die empfangene Verbindungsanforderung zu, indem eine Funktion accept (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion accept (nicht-mobile IP) Informationen über das vierte Socket und eine Adresse des Knotens 13 enthält, der die Verbindungsanforderung gesendet hat (Operation 812). Bei einer nicht-mobilen Kommunikation wie beispielsweise UDP können die Operationen des Aufrufens einer Funktion listen (), connect () und accept () ausgelassen werden.
  • Danach sendet der mobile Knoten 23 als ein Client von dem mobilen Knoten 23 über das dritte Socket gesendete Daten, indem eine Funktion send (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (mobile IP) Informationen über das dritte Socket und Informationen über von dem mobilen Knoten 23 übertragene Daten enthält (Operation 813). Anschließend empfängt der Knoten 13 als ein Server von dem mobilen Knoten 23 übertragene Daten über das erste Socket, indem eine Funktion recv (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (mobile IP) Informationen über das erste Socket und von dem mobilen Knoten 23 übertragene Daten enthält (Operation 814). Danach sendet der Knoten 13 von dem mobilen Knoten 23 übertragene Daten über das zweite Socket, indem eine Funktion send (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Daten Informationen über das zweite Socket und von dem mobilen Knoten 23 übertragene Daten enthalten (Operation 815). Dieser Prozess ist auf den Übergangsprozess von der mobilen IP zu der nicht-mobilen IP in der Anwendungsschicht anwendbar. Anschließend empfängt der nicht-mobile Knoten 33 als ein Server von dem mobilen Knoten 23 übertragene Daten über das vierte Socket, indem eine Funktion recv (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (nicht-mobile IP) Informationen über das vierte Socket und von dem mobilen Knoten 23 übertragene Daten enthält (Operation 816). Der nicht-mobile Knoten 33 verarbeitet die von dem mobilen Knoten 23 übertragenen Daten.
  • Anschließend sendet der nicht-mobile Knoten 33 als ein Server von dem nicht-mobilen Knoten 33 übertragene Daten über das vierte Socket, indem eine Funktion send (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (nicht-mobile IP) Informationen über das vierte Socket und die von dem nicht-mobilen Knoten 33 übertragenen Daten enthält (Operation 817). Danach empfängt der Knoten 13 als ein Client die von dem nicht-mobilen Knoten 33 übertragenen Daten über das zweite Socket, indem eine Funktion recv (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (nicht-mobile IP) Informationen über das zweite Socket und die von dem nicht-mobilen Knoten 33 übertragenen Daten enthält (Operation 818). Anschließend sendet der Knoten 13 als ein Server die von dem nicht-mobilen Knoten 33 übertragenen Daten über das erste Socket, indem eine Funktion send (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (mobile IP) Informationen über das erste Socket sowie die von dem nicht-mobilen Knoten 33 übertragenen Daten enthält (Operation 819). Dieser Prozess ist auf den Übergangsprozess von der nicht-mobilen IP zu der mobilen IP in der Anwendungsschicht anwendbar. Danach empfängt der mobile Knoten 23 als ein Client von dem nicht-mobilen Knoten 33 übertragene Daten über das dritte Socket, indem eine Funktion recv (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (mobile IP) Informationen über das vierte Socket sowie die von der nicht-mobilen IP 31 übertragenen Daten enthält (Operation 820). Der mobile Knoten 23 verarbeitet die von dem nicht-mobilen Knoten 33 übertragenen Daten. In dem Fall einer nicht-mobilen Kommunikation wie beispielsweise UDP werden anstatt der Funktion send () und recv () die Funktionen sendto () beispielsweise recvfrom () aufgerufen.
  • 9 ist ein Ablaufdiagramm eines anderen Verfahrens zum Verbinden von Knoten heterogener Protokolle gemäß noch einer anderen beispielhaften Ausführungsform der vorliegenden Erfindung.
  • In 9 umfasst das Verfahren zum Verbinden von Knoten heterogener Protokolle Operationen wie nachstehend beschrieben. Das Verfahren zum Verbinden von Knoten heterogener Protokolle kann beispielsweise in der Netzwerkumgebung implementiert werden, wie sie in 5 dargestellt wird.
  • Zuerst erzeugt der Knoten 14 als ein Server und ein Client das erste Socket, indem eine Funktion Socket (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket (nicht-mobile IP) Informationen über die nicht-mobile IP enthält, und das zweite Socket wird erzeugt, indem eine Funktion Socket (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion Socket (mobile IP) Informationen über die mobile IP enthält (Operationen 901 und 902). Gleichzeitig erzeugt der nicht-mobile Knoten 24 das dritte Socket, indem eine Funktion Socket (nicht-mobile IP) aufgerufen wird, die Informationen über die nicht-mobile IP enthält, und der mobile Knoten 34 erzeugt das vierte Socket, indem eine Funktion Socket (mobile IP) aufgerufen wird, die Informationen über die mobile IP enthält (Operationen 903 und 904).
  • Anschließend verbindet der Knoten 14 als ein Server eine Adresse des Knotens 14 mit dem ersten Socket, indem eine Funktion bind (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion bind (nicht-mobile IP) Informationen über das erste Socket und eine Adresse des Knotens 14 enthält, der durch den nicht-mobilen Knoten 24 als Bestimmungsort eingestellt ist (Operation 905). Danach wartet der Knoten 14 als ein Server den Empfang einer Verbindungsanforderung ab, deren Bestimmungsort eine Adresse ist, die mit dem ersten Socket verbunden ist, indem eine Funktion listen (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion listen (nicht-mobile IP) Informationen über das erste Socket enthält (Operation 906). Gleichzeitig verbindet der mobile Knoten 34 als ein Server eine Adresse des mobilen Knotens 34 mit dem vierten Socket, indem eine Funktion bind (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion bind (mobile IP) Informationen über das vierte Socket enthält (Operation 907). Danach wartet der mobile Knoten 34 als ein Server den Empfang einer Verbindungsanforderung ab, deren Bestimmungsort eine Adresse ist, die mit dem vierten Socket verbunden ist, indem eine Funktion listen (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion listen (mobile IP) Informationen über das vierte Socket enthält (Operation 908).
  • Danach fordert der nicht-mobile Knoten 24 als ein Client eine Verbindung mit dem Knoten 14 an, indem eine Funktion connect (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion connect (nicht-mobile IP) Informationen über das dritte Socket und eine Adresse des Knotens 14 enthält, der den Empfang einer Verbindungsanforderung erwartet (Operation 909). Anschließend lässt der Knoten 14 als ein Server die Verbindungsanforderung zu, indem eine Funktion accept (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion accept (nicht-mobile IP) Informationen über das erste Socket und eine Adresse des nicht-mobilen Knotens 24 enthält, der die Verbindungsanforderung gesendet hat (Operation 910). Gleichzeitig fordert der Knoten 14 als ein Client eine Verbindung zu dem mobilen Knoten 34 an, indem eine Funktion connect (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion connect (mobile IP) Informationen über das zweite Socket und eine Adresse des mobilen Knotens 34 enthält, der auf den Empfang einer Verbindungsanforderung wartet (Operation 911). Anschließend lässt der mobile Knoten 34 die empfangene Verbindungsanforderung zu, indem eine Funktion accept (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion accept (mobile IP) Informationen über das vierte Socket und eine Adresse des Knotens 14 enthält, der die Verbindungsanforderung gesendet hat (Operation 912). Bei einer nicht-mobilen Kommunikation wie beispielsweise UDP werden die Operationen des Aufrufens einer Funktion listen (), connect () und accept () ausgelassen.
  • Danach sendet der nicht-mobile Knoten 24 als ein Client von dem nicht-mobilen Knoten 24 übertragene Daten über das dritte Socket, indem eine Funktion send (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (nicht-mobile IP) Informationen über das dritte Socket und Informationen über von dem nicht-mobilen Knoten 24 übertragene Daten enthält (Operation 913). Anschließend empfängt der Knoten 14 als ein Server von dem nicht-mobilen Knoten 24 übertragene Daten über das erste Socket, indem eine Funktion recv (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (nicht-mobile IP) Informationen über das erste Socket und von dem nicht-mobilen Knoten 24 übertragene Daten enthält (Operation 914). Danach sendet der Knoten 14 von dem nicht-mobilen Knoten 24 übertragene Daten über das zweite Socket, indem eine Funktion send (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Daten Informationen über das zweite Socket und von dem nicht-mobilen Knoten 24 übertragene Daten enthalten (Operation 915). Dieser Prozess ist auf den Übergangsprozess von der nicht-mobilen IP zu der mobilen IP in der Anwendungsschicht anwendbar. Danach empfängt der mobile Knoten 34 als ein Server von dem nicht-mobilen Knoten 24 übertragene Daten über das vierte Socket, indem eine Funktion recv (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (mobile IP) Informationen über das vierte Socket und die von dem nicht-mobilen Knoten 24 übertragenen Daten enthält (Operation 916). Der mobile Knoten 34 verarbeitet die von dem nicht-mobilen Knoten 24 übertragenen Daten.
  • Anschließend sendet der mobile Knoten 34 als ein Server von dem mobilen Knoten 34 übertragene Daten über das vierte Socket, indem eine Funktion send (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (mobile IP) Informationen über das vierte Socket und die von dem mobilen Knoten 34 übertragenen Daten enthält (Operation 917). Danach empfängt der Knoten 14 als ein Client die von dem mobilen Knoten 34 übertragenen Daten über das zweite Socket, indem eine Funktion recv (mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (mobile IP) Informationen über das zweite Socket und die von dem mobilen Knoten 34 übertragenen Daten enthält (Operation 918). Anschließend sendet der Knoten 14 als ein Server von dem mobilen Knoten 34 übertragene Daten über das erste Socket, indem eine Funktion send (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion send (nicht-mobile IP) Informationen über das erste Socket und von dem mobilen Knoten 34 übertragene Daten enthält (Operation 919). Dieser Prozess ist auf den Übergangsprozess von der mobilen IP zu der nicht-mobilen IP in der Anwendungsschicht anwendbar. Anschließend empfängt der nicht-mobile Knoten 24 als ein Client von dem mobilen Knoten 34 übertragene Daten über das dritte Socket, indem eine Funktion recv (nicht-mobile IP) in der Anwendungsschicht aufgerufen wird, wobei die Funktion recv (nicht-mobile IP) Informationen über das vierte Socket und die von der mobilen IP 31 übertragenen Daten enthält (Operation 920). Der nicht-mobile Knoten 24 verarbeitet die von dem mobilen Knoten 34 übertragenen Daten. In dem Fall einer nicht-mobilen Kommunikation wie beispielsweise UDP werden anstatt der Funktion send () und recv () die Funktionen sendto () beispielsweise recvfrom () aufgerufen.
  • Ausführungsformen der vorliegenden Erfindung können über computerlesbaren Code implementiert werden und sie können in digitalen Computern für allgemeine Zwecke implementiert werden, die den computerlesbaren Code mit einem Medium, beispielsweise mit computerlesbaren Aufzeichnungsmedien, ausführen. Beispiele der Medien enthalten beispielsweise magnetische Speichermedien (beispielsweise ROM, Disketten, Festplatten und dergleichen), optische Aufzeichnungsmedien (beispielsweise CD-ROMs oder DVDs) sowie Speichermedien wie beispielsweise Trägerwellen (beispielsweise Übermittlung über das Internet) ein.
  • Gemäß Ausführungsformen der vorliegenden Erfindung ist es möglich, Knoten miteinander zu verbinden, die heterogene Protokolle verwenden. Beispielsweise kann ein IPv4-Knoten mit einem IPv6-Knoten verbunden werden, und ein nicht-mobiler Knoten kann mit einem mobilen Knoten verbunden werden. Insbesondere können Benutzer oder Anbieter von Endgeräten die vorliegende Erfindung leicht durchführen, da die vorliegende Erfindung in der Anwendungsschicht durchgeführt werden kann, die von den Benutzern oder den Anbietern von Endgeräten verwaltet werden kann.
  • Obwohl einige bevorzugte Ausführungsformen gezeigt und beschrieben wurden, ist es für Personen mit gewöhnlicher Erfahrung auf dem Gebiet der Technik erkennbar, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, ohne von dem Umfang der Erfindung, wie in den beigefügten Ansprüchen definiert, abzuweichen.
  • Die beschriebenen Ausführungsformen dürfen nur im beschreibenden Sinn und nicht zum Zweck der Einschränkung berücksichtigt werden. Daher wird der Umfang der Erfindung nicht durch die ausführliche Beschreibung der Erfindung definiert, sondern durch die beigefügten Ansprüche, und alle Unterschiede innerhalb des Umfanges werden als in der vorliegenden Erfindung enthalten betrachtet.

Claims (9)

  1. Verfahren zum Verbinden von Knoten (1, 2, 3) heterogener Protokolle, wobei das Verfahren umfasst: Empfangen erster Daten an einem Knoten (1), die von einem ersten Knoten (2) übertragen werden, der ein erstes Protokoll (400) verwendet, über ein erstes Socket (200) in dem Knoten (1); und Senden der empfangenen ersten Daten zu einem zweiten Knoten (3), der ein zweites Protokoll (500) verwendet, über ein zweites Socket (300) in dem Knoten (1); wobei beim Empfangen der von dem ersten Knoten (2) übertragenen ersten Daten die ersten Daten über das erste Socket (200) empfangen werden, indem eine Empfangsfunktion in einer Anwendungsschicht (100) des Knotens (1) aufgerufen wird, und die Empfangsfunktion Informationen über das erste Socket (200) und die ersten Daten enthält, und beim Senden der empfangenen ersten Daten von dem Knoten (1) zu dem zweiten Knoten (3) die empfangenen ersten Daten über das zweite Socket (300) gesendet werden, indem eine Sendefunktion in der Anwendungsschicht (100) aufgerufen wird, und die Sendefunktion Informationen über das zweite Socket (300) und die Informationen über die ersten Daten enthält.
  2. Verfahren nach Anspruch 1, wobei das erste Protokoll (400) IPv6 ist und das zweite Protokoll (500) IPv4 ist oder das zweite Protokoll (500) IPv6 ist und das erste Protokoll (400) IPv4 ist.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, das des Weiteren Erzeugen des ersten Socket (200) und des zweiten Socket (300) umfasst, die bei Kommunikation auf Basis des ersten Protokolls (400) bzw. des zweiten Protokolls (500) zu verwenden sind; und Verbinden des erzeugten ersten Socket (200) mit dem ersten Knoten (2) und Verbinden des erzeugten zweiten Socket (300) mit dem zweiten Knoten (3), wobei beim Empfangen der von dem ersten Knoten (2) übertragenen ersten Daten die ersten Daten über das erste Socket (200) empfangen werden, das beim Erzeugen des ersten und des zweiten Socket (200, 300) verbunden wird, und beim Senden der empfangenen ersten Daten zu dem zweiten Knoten (3) die empfangenen ersten Daten über das zweite Socket (300) gesendet werden, das beim Erzeugen des ersten und des zweiten Socket (200, 300) verbunden wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei beim Erzeugen des ersten und des zweiten Socket (200, 300) das erste Socket (200) und das zweite Socket (300), die Anwendungsprogramm-Schnittstellen sind, erzeugt werden, indem vorgegebene Funktionen in einer Anwendungsschicht (100) aufgerufen werden.
  5. Verfahren nach einem der vorangehenden Ansprüche, wobei beim Kommunizieren Kommunikation über das erste Socket (200) und das zweite Socket (300) durchgeführt wird, die Anwendungsprogramm-Schnittstellen sind, indem vorgegebene Funktionen in einer Anwendungsschicht (100) aufgerufen werden.
  6. Vorrichtung zum Verbinden von Knoten (1, 2, 3) heterogener Protokolle, wobei die Vorrichtung umfasst: eine erste Socket-Kommunikationseinheit (103) in einem Knoten (1) zum Empfangen erster Daten über ein erstes Socket (200), wobei die ersten Daten von einem ersten Knoten (2) unter Verwendung eines ersten Protokolls (400) übertragen werden; und eine zweite Socket-Kommunikationseinheit (104) in dem Knoten (1) zum Senden der durch die erste Socket-Kommunikationseinheit (103) empfangenen ersten Daten zu einem zweiten Knoten (3) über ein zweites Socket (300), wobei die erste Socket-Kommunikationseinheit (103) so betrieben werden kann, dass sie Daten über das erste Socket (200) empfängt, indem eine Empfangsfunktion in der Anwendungsschicht (100) in dem Knoten (1) aufgerufen wird, und die Empfangsfunktion Informationen über das erste Socket (200) und die empfangenen Daten enthält, und die zweite Socket-Kommunikationseinheit (104) so betrieben werden kann, dass sie die empfangenen Daten über das zweite Socket (300) sendet, indem eine Sendefunktion in der Anwendungsschicht (100) aufgerufen wird, und die Sendefunktion Informa tionen über das zweite Socket (300) und die Informationen über die empfangenen Daten enthält.
  7. Vorrichtung nach Anspruch 6, wobei das erste Protokoll (400) IPv6 ist und das zweite Protokoll (500) IPv4 ist oder das zweite Protokoll (500) IPv6 ist und das erste Protokoll (400) IPv4 ist.
  8. Vorrichtung nach Anspruch 6 oder Anspruch 7, die des Weiteren eine Doppel-Socket-Erzeugungseinheit (100) zum Erzeugen des ersten Socket (200) und des zweiten Socket (300), die bei Kommunikation auf Basis des ersten Protokolls (400) bzw. der Kommunikation auf Basis des zweiten Protokolls (500) zu verwenden sind; und eine Doppel-Socket-Verbindungseinheit (102) zum Verbinden des ersten Socket (200) mit dem ersten Knoten (2) und des zweiten Socket (300) mit dem zweiten Knoten (3) umfasst, wobei das erste und das zweite Socket (200, 300) durch die Doppel-Socket-Erzeugungseinheit (101) erzeugt werden, wobei die erste Socket-Kommunikationseinheit (103) so betrieben werden kann, dass sie Daten über das erste Socket (200) empfängt, das durch die Doppel-Socket-Verbindungseinheit (102) verbunden ist, und die zweite Socket-Kommunikationseinheit (104) so betrieben werden kann, dass sie Daten über das zweite Socket (300) sendet, das durch die Doppel-Socket-Verbindungseinheit (102) verbunden ist.
  9. Medium, das computerlesbaren Code umfasst, der, wenn er ausgeführt wird, die Verbindung von Knoten (1, 2, 3) heterogener Protokolle implementiert, wobei es umfasst Empfangen erster Daten an einem Knoten (1), die von einem ersten Knoten (2) übertragen werden, der ein erstes Protokoll (400) verwendet, über ein erstes Socket (200) des Knotens (1); und Senden der empfangenen ersten Daten von dem Knoten (1) zu einem zweiten Knoten (3), der ein zweites Protokoll (500) verwendet, über ein zweites Socket (300) des Knotens (1), wobei beim Empfangen der von dem ersten Knoten (2) übertragenen ersten Daten die ersten Daten über das erste Socket (200) empfangen werden, indem eine Empfangsfunktion in einer Anwendungsschicht (100) aufgerufen wird, und die Empfangsfunktion Informationen über das erste Socket (200) und die ersten Daten enthält, und beim Senden der empfangenen ersten Daten zu dem zweiten Knoten (3) die empfangenen ersten Daten über das zweite Socket (300) gesendet werden, indem eine Sendefunktion in der Anwendungsschicht (100) aufgerufen wird, und die Sendefunktion Informationen über das zweite Socket (300) und die Informationen über die ersten Daten enthält.
DE602005005727T 2004-02-06 2005-02-04 Verfahren und Vorrichtung zur Verbindung von Knoten mit heterogenen Kommunikationsprotokollen Expired - Fee Related DE602005005727T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR2004007827 2004-02-06
KR1020040007827A KR20050079730A (ko) 2004-02-06 2004-02-06 이종 프로토콜 노드들을 연결하는 방법 및 장치

Publications (2)

Publication Number Publication Date
DE602005005727D1 DE602005005727D1 (de) 2008-05-15
DE602005005727T2 true DE602005005727T2 (de) 2009-04-16

Family

ID=34676011

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005005727T Expired - Fee Related DE602005005727T2 (de) 2004-02-06 2005-02-04 Verfahren und Vorrichtung zur Verbindung von Knoten mit heterogenen Kommunikationsprotokollen

Country Status (6)

Country Link
US (1) US20050175016A1 (de)
EP (1) EP1562348B1 (de)
KR (1) KR20050079730A (de)
CN (1) CN1652543A (de)
AT (1) ATE391384T1 (de)
DE (1) DE602005005727T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331273B2 (en) * 2009-08-28 2012-12-11 Mediatek Inc. Communication methods employed in communication system associated with programmable communication protocols, and related transmitting methods, receiving methods and communication device
US8923182B2 (en) * 2010-06-23 2014-12-30 Arm Finland Oy Method and apparatus for providing IPv6 link-layer adaptation over a wireless channel
US8484666B2 (en) * 2010-09-13 2013-07-09 Microsoft Corporation Optimizations for implementing multi-stack stack hosts
EP2434707B1 (de) 2010-09-23 2013-12-18 Alcatel Lucent Verfahren und System zur Optimierung des Routings zwischen zwei Netzwerkknoten, wovon mindestens einer mobil ist
US8856353B2 (en) * 2012-03-08 2014-10-07 Cisco Technology, Inc. Method and apparatus for providing an extended socket API for application services
US9229750B1 (en) * 2012-08-17 2016-01-05 Google Inc. Virtual machine networking
US9442778B2 (en) * 2012-10-01 2016-09-13 Salesforce.Com, Inc. Method and system for secured inter-application communication in mobile devices
US9680918B2 (en) * 2014-06-30 2017-06-13 Fortinet, Inc. Socket application program interface (API) for efficient data transactions
CN111586040B (zh) * 2020-05-06 2021-02-09 北京中科海讯数字科技股份有限公司 高性能网络数据接收方法及其系统
US20240163184A1 (en) * 2022-11-16 2024-05-16 Red Hat, Inc. Lightweight container networking solution for resource constrained devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475601A (en) * 1994-02-15 1995-12-12 Emhart Glass Machinery Investments Inc. Control for glassware forming system including bidirectional network gateway
US5721876A (en) * 1995-03-30 1998-02-24 Bull Hn Information Systems Inc. Sockets application program mechanism for proprietary based application programs running in an emulation environment
US6580717B1 (en) * 1996-07-04 2003-06-17 Hitachi, Ltd. Packet communication method and apparatus and a recording medium storing a packet communication program
JP3531367B2 (ja) * 1996-07-04 2004-05-31 株式会社日立製作所 トランスレータ
US7088726B1 (en) * 1996-07-04 2006-08-08 Hitachi, Ltd. Translator for IP networks, network system using the translator, and IP network coupling method therefor
US6757731B1 (en) * 1999-02-25 2004-06-29 Nortel Networks Limited Apparatus and method for interfacing multiple protocol stacks in a communication network
EP1087575A1 (de) * 1999-09-24 2001-03-28 BRITISH TELECOMMUNICATIONS public limited company Datennetzschnittstelle
US6335128B1 (en) * 1999-09-28 2002-01-01 Nicolas Bailey Cobb Method and apparatus for determining phase shifts and trim masks for an integrated circuit
JP2001155412A (ja) * 1999-11-29 2001-06-08 Pioneer Electronic Corp 再生装置
EP1109374A3 (de) * 1999-12-13 2001-06-27 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Verfahren und Vorrichtung zur Durchführung von Netzwerkoperationen
KR20020067106A (ko) * 2001-02-15 2002-08-22 주식회사 아이투소프트 IPv6 코드 자동 변환 시스템 및 방법
US7165112B2 (en) * 2001-06-22 2007-01-16 Motorola, Inc. Method and apparatus for transmitting data in a communication system
US7143555B2 (en) * 2001-10-02 2006-12-05 Philip Glen Miller Hybrid precast concrete and metal deck floor panel
ES2348867T3 (es) * 2002-05-13 2010-12-16 Markport Limited Control de servicios de mensajeria en dominios de ip.
US7286546B2 (en) * 2002-07-31 2007-10-23 Infosys Technologies Ltd. Method and system for providing reliable and fast communications with mobile entities
KR100560737B1 (ko) * 2003-02-18 2006-03-13 삼성전자주식회사 듀얼스택을 이용한 아이피브이4 - 아이피브이6 전환 장치및 그 방법
US8271620B2 (en) * 2003-11-13 2012-09-18 Lantronix, Inc. Communication protocol converter and method of protocol conversion

Also Published As

Publication number Publication date
ATE391384T1 (de) 2008-04-15
CN1652543A (zh) 2005-08-10
EP1562348B1 (de) 2008-04-02
US20050175016A1 (en) 2005-08-11
DE602005005727D1 (de) 2008-05-15
EP1562348A1 (de) 2005-08-10
KR20050079730A (ko) 2005-08-11

Similar Documents

Publication Publication Date Title
DE602005005727T2 (de) Verfahren und Vorrichtung zur Verbindung von Knoten mit heterogenen Kommunikationsprotokollen
DE69726701T2 (de) Verfahren zur Übertragung von Verbindungsverwaltungsinformationen in World Wide Web Anforderungen und Antworten
DE602004008099T2 (de) Verfahren, system und artikel zur dynamischen echtzeit-stream-aggregation in einem netzwerk
DE10022431B4 (de) Integriertes IP-Netzwerk
DE602004006308T2 (de) Verfahren zum umlenken von client-anforderungen zu web-diensten
DE60119589T2 (de) Vorrichtungen und Verfahren zur Datenübertragung
DE602005000779T2 (de) Kommunikationsvorrichtung and Verfahren um Musiksoundkontrolldaten über das Internet zu erhalten und zu übertragen.
DE102007062985B4 (de) Verfahren und Einrichtung zur Kommunikation gemäß dem Standardprotokoll OPC UA in einem Client-Server-System
DE69634916T2 (de) Verfahren und vorrichtung zur filterung von mehradresspaketen in einem lokalen netz durch ein transparentes zwischensystem
DE60302051T2 (de) Verfahren, netzwerk und gerät zur konfiguration und steuerung von netzressourcen beim zurverfügungstellen von inhalten mit verteilungsregeln
DE60132071T2 (de) Kabelmodemsystem und verfahren zur übertragung von speziellen daten
DE60210927T2 (de) Verfahren und Vorrichtung zur Zulassung der Datenübertragung über Firewalls
DE602005003668T2 (de) Verbesserungen in nachrichtenorientierten kommunikationen
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE102005020098A1 (de) Systeme und Verfahren zum Sammeln und Ausgeben von Teilnehmeridentifizierungsdaten
DE60302368T2 (de) System und Verfahren um den Transfer von Daten zwischen beliebigen Komponenten untereinander zu ermöglichen
DE60221538T2 (de) System und verfahren zum koordinieren von netzereignissen
DE602005004255T2 (de) Bidirektionale SOAP-Kommunikation mittels einer einzigen HTTP-Sitzung
DE60006821T2 (de) Zugangskontrolle in einem gateway-server
DE10231958B4 (de) Verfahren und System zum Übertragen von Datenpaketen über ein Netzwerk an ausgewählte mehrere Bestimmungsorte, sowie computerlesbares Medium
EP1317820B1 (de) Verfahren zum aufbau von verbindungen mit vorgegebener dienstgüte für ein paketorientiertes kommunikationsnetz mit einem resourcenmanager
DE60313026T2 (de) Verfahren und gerät zur verteilung von datenpaketen von einem computer zu einem clustersystem
EP1623559B1 (de) Verfahren zum datenaustausch zwischen netzelementen in netzwerken mit verschiedenen adressbereichen
DE60320567T2 (de) Adressenverwaltungsverfahren
DE60127342T2 (de) Systeme und Verfahren für gleichrangige Verbindungen über eine Netz-Schnittstellen-Karte

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee