DE10296660B4 - Über Netzwerkadressübersetzungs(NAT) -Einrichtungen hinweg betreibbare Kommunikationsprotokolle - Google Patents

Über Netzwerkadressübersetzungs(NAT) -Einrichtungen hinweg betreibbare Kommunikationsprotokolle Download PDF

Info

Publication number
DE10296660B4
DE10296660B4 DE10296660T DE10296660T DE10296660B4 DE 10296660 B4 DE10296660 B4 DE 10296660B4 DE 10296660 T DE10296660 T DE 10296660T DE 10296660 T DE10296660 T DE 10296660T DE 10296660 B4 DE10296660 B4 DE 10296660B4
Authority
DE
Germany
Prior art keywords
endpoint
network address
session
routable
registration
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
DE10296660T
Other languages
English (en)
Other versions
DE10296660T5 (de
Inventor
Bounthavivone Portland Phomsopha
Hani Beaverton Elgebaly
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE10296660T5 publication Critical patent/DE10296660T5/de
Application granted granted Critical
Publication of DE10296660B4 publication Critical patent/DE10296660B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2564NAT traversal for a higher-layer protocol, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2578NAT traversal without involvement of the NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2528Translation at a proxy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2535Multiple local networks, e.g. resolving potential IP address conflicts
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

Ein Kommunikationsprotokoll zum Initiieren einer Kommunikations-Session über eine Netzwerkadreßübersetzungseinrichtung (502), welche internen Netzwerkverkehr mit einer internen Netzwerkadresse und einem internen Port in externen Verkehr mit einer scheinbaren externen Ursprungsadresse und einem scheinbaren Port übersetzt, wobei das Protokoll umfaßt:
Vorbereiten (200) eines Session-Setup für eine Session von einer ersten Maschine (500) mit einer nicht routing-fähigen Netzwerkadresse zu einer zweiten Maschine (506), wobei das Session-Setup eine nicht routing-fähige Netzwerkadresse anzeigt, zu welcher eine Session-Bestätigung zu senden ist; und
Senden (202, 204) des Session-Setup an die zweite Maschine (504, 506) über die Netzwerkadreßübersetzungseinrichtung (502), wobei die Netzwerkadreßübersetzungseinrichtung das Session-Setup nicht übersetzt;
wobei die zweite Maschine (504, 506) so konfiguriert ist, daß sie das Session-Setup untersucht (208, 210) und feststellt, ob das Session-Setup die nicht routing-fähige Netzwerkadresse enthält.

Description

  • Die Erfindung bezieht sich allgemein auf eine netzwerkbasierte Telefonie und insbesondere auf die Verwendung von Kommunikationsprotokollen durch einen übersetzenden Zugriffspunkt, wie beispielsweise ein NAT-Gerät, hindurch, ohne daß der übersetzende Zugriffspunkt derart geändert werden muß, daß er das Kommunikationsprotokoll unterstützt.
  • In den vergangenen Jahren ergaben sich signifikante Fortschritte bei der Netzwerktechnik sowie verringerte Preise, was zu einem signifikanten Aufbau einer Netzwerkinfrastruktur führte. Wie es in 1 veranschaulicht ist, sind viele Haushalte 100 und Unternehmen 106 über private und öffentliche Netzwerke 104 miteinander verbunden, wobei das meistbekannte Netzwerk das Internet ist. Die meisten Netzwerke benutzen gegenwärtig die Kommunikationsprotokolle Transmission Control Protocol/Internet Protocol (TCP/IP), bei welchen Netzwerkorten global einmalige numerische 32-Bit-Adressen zugewiesen werden, die üblicherweise in der Dotted-Quad-Notation (4 Zahlen, die jeweils einen Wert von Null bis 255 haben) dargestellt werden. Der TCP/IP-Netzwerkverkehr wird auf der Grundlage einer Ziel-IP-Adresse für den Verkehr gelenkt (gerouted).
  • Unglücklicherweise führte das explosionsartige Wachsen des Internets zu einem Mangel verfügbarer Netzwerkadressen. Um dem entgegenzuwirken, wurden Versuche unternommen, eine einzige Netzwerkadresse unter mehreren Computern aufzuteilen. Ein gut bekanntes Beispiel ist die Netzwerkadreßübersetzung (NAT; Network Address Translation), welche bei der Kommunikation mit einem externen Netzwerk 104 ein internes Netzwerk hinter einem Zugriffspunkt 102, 108 versteckt, indem der Netzwerkverkehr über diesen Zugriffspunkt gerouted wird. Interne Netzwerke verwenden im allgemeinen private Netzwerkadressen, die ohne Übersetzung auf dem öffentlichen Netzwerk nicht routing-fähig sind. Während des Betriebs übersetzen die Zugriffspunkte 102, 108 die Quell-IP-Adresse und -Ports des hinausgehenden Netzwerkverkehrs, um den Verkehr auf eine externe oder öffentliche Adresse des Zugriffspunkts und einen speziellen Port abzubilden. Umgekehrt übersetzt der Zugriffspunkt die Ziel-IP-Adresse und den speziellen Port des eingehenden Netzwerkverkehrs zurück in eine ursprüngliche interne Adresse und einen ursprünglichen internen Port. Jedoch ignorieren Zugriffspunkte grundsätzlich eingehenden Netzwerkverkehr, der nicht in Beantwortung eines hinausgehenden Netzwerkverkehrs, der übersetzt worden ist, empfangen wird, sowie eingehenden Verkehr, der auf nicht abgebildete Ports gerichtet ist.
  • Die Netzwerkverkehrsübersetzung, die von einem übersetzenden Zugriffspunkt, wie beispielsweise einem NAT-Gateway/Router 102, einem Firewall 108 oder dergleichen, ausgeführt wird, ist für viele Anwendungen transparent. Jedoch durchbrechen derartige Übersetzungen unter bestimmten Umständen einige Protokolle, wie beispielsweise audiovisuelle Konferenzprotokolle, Sicherheitsprotokolle, Spielprotokolle oder andere Protokolle, die eine Netzwerkadresse einer Maschine in den Netzwerkverkehr einbetten. Beispielsweise sind der International Telecommunication Union(ITU)-Standard H.323, das Internet Engineering Task Force (IETF) Media Gateway Control Protocol (MGCP/Megaco), das IETF Session Initiation Protocol (SIP), das IP Security (IPSec), End-to-End-Sicherheitsmodelle, die keine Änderungen des Paket-Headers gestatten, und das File Transfer Protocol (FTP) Beispiele von Protokollen, die durchbrochen werden, wenn sie hinter übersetzenden Zugriffspunkten, wie beispielsweise NAT-Einrichtungen, verwendet werden.
  • Aus Thernelius, F.: SIP, NAT, and Firewalls, Master's Thesis, ist ein Verfahren bekannt, welches sich den Problemen von SIPs, NATs und Firewalls wirdmet. Insbesondere ist ein Kommunikationsprotokoll zum Initiieren einer Kommunikations-Session über ein NAT beschrieben, wobei interner Netzwerkverkehr mit interner Adresse und Port in externen Verkehr mit externer Adresse und Port übersetzt wird.
  • Die WO 00/33537 beschreibt ein System und Verfahren, um eine Mehrzahl von Endpunkten in einem paketgeschalteten Netzwerk bereitzustellen.
  • In 1 beispielsweise untersucht ein H.323-Client 116 seine Netzwerkkonfiguration und registriert sie bei einem H.323-Gateway 118 als Protokolldaten. In ähnlicher Weise registriert sich der H.323-Client 110 selbst bei dem Gateway. Da jedoch der H.323-Client 110 Netzwerkdienste von einem Internet-Diensteanbieter 112 empfängt, der sich in einem privaten Netzwerk hinter einem NAT-Gateway/Router 114 befindet, kann die in den Protokolldaten gekennzeichnete Konfiguration für den Client 110 nicht von dem H.323-Gateway 118 oder dem Client 116 verwendet werden, um auf den Client 110 zuzugreifen.
  • Eine vorgeschlagene Lösung für dieses Problem besteht darin, Zugriffspunkte derart zu modifizieren, daß sie von dem Protokoll Kenntnis erhalten. Unglücklicherweise ist dies aufgrund der großen Anzahl installierter Zugriffspunkte eine teure Lösung. Damit sie richtig arbeitet, müssen sämtliche übersetzenden Zugriffspunkte überarbeitet werden, so daß sie das Protokoll unterstützen; wenn irgendein stromauf gelegener nicht-unterstützender übersetzender Zugriffspunkt erreicht wird, schlägt das Protokoll fehl.
  • Aufgabe der Erfindung ist es, die genannten Probleme zu lösen und eine Kommunikation zwischen Endpunkten, von denen wenigstens einer hinter einem Zugriffspunkt (NAT) liegt, zu verbessern.
  • Die Aufgabe wird erfindungsgemäß gelöst durch ein Kommunikationsprotokoll gemäß Anspruch 1, ein Verfahren gemäß Anspruch 8 oder 14 sowie eine Einrichtung gemäß Anspruch 11, 18 oder 21.
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden aus der nachfolgenden detaillierten Beschreibung der vorliegenden Erfindung ersichtlich, in welcher:
  • 1 eine bekannte Netzwerkkonfiguration von über ein Netzwerk miteinander verbundenen Rechnereinrichtungen veranschaulicht.
  • 2 ist ein Ablaufdiagramm gemäß einem Ausführungsbeispiel, das einen allgemeinen Überblick gibt, wie ein Endpunkt innerhalb einer NAT-Einrichtung eine Media-Session mit einem anderen Endpunkt außerhalb der NAT-Einrichtung einrichtet.
  • 3 ist ein Ablaufdiagramm gemäß einem Ausführungsbeispiel, das einen allgemeinen Überblick veranschaulicht, wie ein Endpunkt innerhalb einer NAT-Einrichtung eine Session mit einem anderen Endpunkt außerhalb der NAT-Einrichtung initiiert.
  • 4 ist ein Ablaufdiagramm gemäß einem Ausführungsbeispiel, das einen allgemeinen Überblick für zwei Endpunkte innerhalb von NAT-Einrichtungen veranschaulicht, wobei ein Endpunkt den anderen anruft.
  • 5 veranschaulicht, in Übereinstimmung mit einem Ausführungsbeispiel, eine Top-Down-Zeitleiste von Protokolltransaktionen, bei welchen ein erster Endpunkt hinter einer NAT-Einrichtung einen Ruf von einem zweiten Endpunkt empfängt.
  • 6 veranschaulicht, in Übereinstimmung mit einem Ausführungsbeispiel, eine Top-Down-Zeitleiste von Protokolltransaktionen, bei welchen der erste Endpunkt eine Kommunikations-Session über die NAT-Einrichtung zu dem zweiten Endpunkt initiiert.
  • 7 veranschaulicht, in Übereinstimmung mit einem Ausführungsbeispiel, eine Top-Down-Zeitleiste von Protokolltransaktionen, bei welchen der erste Endpunkt eine Kommuni kations-Session zu einem zweiten Endpunkt initiiert, wobei beide Endpunkte sich hinter NAT-Einrichtungen befinden.
  • 8 veranschaulicht eine geeignete Rechnerumgebung, in welcher bestimmte Aspekte der Erfindung implementiert werden können.
  • Bei einer Ausführungsform können die Einschränkungen der NAT und anderer übersetzender Zugriffspunkte durch Modifikation von Kommunikationsprotokollen derart überwunden werden, daß die Protokolle in der Lage sind, die Übersetzung zu erkennen und zu kompensieren. So wie er hier verwendet wird, bezieht sich der Begriff "NAT" auf irgendeinen Zugriffspunkt, welcher Ursprungs- und/oder Port-Werte des durchgeleiteten Netzwerkverkehrs ändert. Grundsätzlich kann ein Kommunikationsprotokoll, das Benachrichtigungsinformationen innerhalb von Protokolldaten weiterleitet, wie beispielsweise ITU H.323 oder ein anderes Protokoll, so modifiziert werden, daß ein Endpunkt hinter einer NAT Daten über die NAT-Einrichtung unter Verwendung eines gewünschten Kommunikationsports zum Empfangen von Antwortdaten senden muß. Dies bereitet eine NAT-Einrichtung des Endpunkts darauf vor, Antwortdaten aus einer bestimmten Netzwerkadresse auf dem gewünschten Kommunikationsport zu empfangen.
  • Insbesondere wird das Verhalten des Kommunikationsendpunkts derart modifiziert, daß er denselben Port zum Lauschen auf und Hervorbringen von Kommunikations-Sessions (z. B. sowohl für das Signalisieren als auch für das Streaming von Inhalten) verwendet (in der nachfolgenden Beschreibung und in den Ansprüchen bezieht sich der Begriff "Inhalte" auf Nur-Audio-Daten, Nur-Video-Daten, kombinierte Audio- und Video-Daten oder andere Daten, die zwischen Endpunkten übermittelt werden können).
  • Empfänger von Protokolldaten, beispielsweise der Registrierungsserver oder andere Kommunikationsendpunkte, werden so konfiguriert, daß sie eingebettete Endpunkt-Netzwerkort-Werte, z. B. Netzwerkadresse, Kommunikationsport (im folgen den einfach Port), etc., untersuchen, um zu sichern, daß sie einer routing-fähigen Netzwerkadresse entsprechen. Wenn eine eingebettete Adresse nicht routing-fähig ist, wurde eine NAT erfaßt, und in den Protokolldaten enthaltene Ursprungsadreß- und Port-Werte der Netzverkehrspakete werden anstelle der eingebetteten Werte verwendet.
  • Diese Änderungen eines Kommunikationsprotokolls gestatten die Unterstützung von NAT-Einrichtungen und anderen derartigen übersetzenden Zugriffspunkten unabhängig von speziellen Servern, Proxys oder Überarbeitungen der NAT-Hardware. Obgleich es sein kann, daß die Figuren aus Gründen der Klarheit der Darstellung nicht sämtliche Operationen von sämtlichen Endpunkten als symmetrisch veranschaulichen, können diese Änderungen symmetrisch gemacht werden, so daß es keine Unterscheidung zwischen dem Endpunktverhalten innerhalb oder außerhalb einer NAT gibt.
  • 2 ist ein Ablaufdiagramm gemäß einem Ausführungsbeispiel, das eine allgemeine Übersicht veranschaulicht, wie ein Endpunkt innerhalb einer NAT-Einrichtung eine Media-Session mit einem anderen Endpunkt außerhalb der NAT-Einrichtung gemäß einem Protokoll, wie beispielsweise RTP und RTCP, einrichtet. Man beachte, daß RTP/RTCP als Beispiele verwendet werden, da sie gut bekannte Kommunikationsprotokolle sind, die Ruf-Setup und Signalisieroperationen benutzen. Für einen Fachmann ist es jedoch klar, daß die vorliegende Erfindung grundsätzlich auch auf andere Kommunikationsprotokolle anwendbar ist.
  • Bei dem veranschaulichten Ausführungsbeispiel sendet 200 ein interner Host hinter einer NAT-Einrichtung RTP- und RTCP-Ströme aus dem Port, auf welchem er einen zugehörigen Strom zu empfangen erwartet. Wenn beispielsweise ein Endpunkt erwartet, daß Audio auf Port 2244 empfangen wird, dann initiiert er eine Audioübertragung auf Port 2244. Sofern eine NAT-Einrichtung vorhanden ist, erzeugt 204 die NAT, wenn sie einen Datenstrom zur Übersetzung empfängt 202, geeignete Übersetzungstabelleneinträge und ist somit auf den Empfang zugehöriger Antwortdaten vorbereitet.
  • Externe Hosts, wie beispielsweise der Registrierungsserver oder andere Endpunkte, sind so konfiguriert, daß dann, wenn sie den Datenstrom empfangen 206, sie in Protokolldaten eingebettete IP-Adressen, beispielsweise eine eingebettete Referenz auf Port 2244, überprüfen, da derartige eingebettete Referenzen von NAT-Einrichtungen nicht gesehen werden. Wenn 210 eine eingebettete Adresse routing-fähig ist, dann sendet 212 der externe Host Antwortdaten an die eingebettete Adresse.
  • Wenn jedoch 210 eine eingebettete Adresse nicht routing-fähig ist, sie beispielsweise nicht über das Internet gerouted werden kann, dann identifiziert 214 der externe Host die den Netzwerkverkehrspaketen, die die Protokolldaten codieren, zugeordnete Adresse und den Port, da diese dem Ergebnis der NAT entsprechen. Der externe Host sendet 216 dann Antwortdaten an die identifizierte Ursprungsadresse und den Port, beispielsweise verbindet der externe Host mit den empfangenen Ports zum Senden des Inhalts zurück an die interne Einrichtung. Dies ist erforderlich, da die NAT-Einrichtung die in den eingebetteten Daten identifizierten Adreß- und/oder Port-Werte ungültig gemacht hat. Um Medien zwischen einem internen Host und einem externen Host strömen zu lassen, sendet der interne Host anfänglich einen Medienstrom, so daß seine NAT-Einrichtung Antwortdaten akzeptieren wird.
  • 3 ist ein Ablaufdiagramm gemäß einem Ausführungsbeispiel, das eine allgemeine Übersicht veranschaulicht, wie ein Endpunkt innerhalb einer NAT-Einrichtung eine Session mit einem anderen Endpunkt außerhalb der NAT-Einrichtung unter Verwendung von SIP, H.323 oder einem anderen Protokoll initiiert. Bei diesem Ausführungsbeispiel sendet 300 der interne Host eine Registrierungsanforderung auf demselben Port, auf welchem er den Empfang von Rufen erwartet, und stellt einen Identitäts-Alias zur Verfügung. Der interne Host lauscht 302 dann an einer internen Adresse und einem internen Port.
  • Der Registrierungsserver, beispielsweise ein Gatekeeper, SIP-Registrator, etc., überprüft 304 die in der Registrierung eingebettete interne Adresse, um zu bestimmen, ob 306 sie eine routing-fähige Adresse ist. Sofern sie routing-fähig ist, registriert 308 dann der Registrierungsserver die Adresse, den Port und den Identitäts-Alias wie üblich. Sofern sie nicht routing-fähig ist, identifiziert 310 dann der Registrierungsserver die Ursprungsadresse und den Port, die den die Protokolldaten codierenden Netzwerkverkehrspaketen zugeordnet sind, da dies dem Ergebnis der NAT entspricht, und registriert 312 den internen Host bei der identifizierten Ursprungsadresse mit dem Identitäts-Alias.
  • Ein externer Endpunkt, der den internen Endpunkt zu rufen versucht, löst den Identitäts-Alias des internen Endpunkts als identifizierte 310 Ursprungsadresse und Port der NAT-Einrichtung auf. Der interne Host lauscht 302 an den Ports, die auf die von dem Registrierungsserver registrierten 312 externen Ports abgebildet sind. Wenn die NAT-Einrichtung einen eingehenden Ruf empfängt 316, welcher über den Registrierungsserver gerouted ist, bildet die NAT-Einrichtung den Ruf aus dem externen Endpunkt auf den internen Endpunkt ab 318.
  • Das Inhalte-Streaming kann so eingerichtet werden, wie es oben bei 2 erörtert worden ist.
  • 4 ist ein Ablaufdiagramm gemäß einem Ausführungsbeispiel, das eine allgemeine Übersicht für zwei Endpunkte innerhalb 400 von NAT-Einrichtungen veranschaulicht, wobei ein Endpunkt den anderen unter Verwendung von H.323, SIP oder anderen Protokollen ruft.
  • Bei diesem Ausführungsbeispiel lauschen 402 beide Endpunkte an internen Adressen, die während einer Registrierung einem Registrierungsserver zur Verfügung gestellt worden sind. Ein erster der Endpunkte versucht, den Identitäts- Alias des anderen Endpunkts aufzulösen 404. Wie oben erörtert wurde, stellt der Registrierungsserver eine routing-fähige Adresse zurück dem Endpunkt zur Verfügung 406, der auf die interne Adresse, an welcher der andere Endpunkt lauscht 402, abbildet. Der erste Endpunkt sendet 408 ein Ruf-Setup an den anderen Endpunkt über den Registrierungsserver, und der gerufene Endpunkt antwortet 410 auf die Ursprungsadresse und den Ursprungsport des Ruf-Setup. Da sich beide Endpunkte hinter einer NAT befinden, fängt der Registrierungsserver die Kommunikation zum Routen von sowohl Steuer- als auch Medieninformationen ab und agiert als Proxy.
  • Dann kann ein Inhalte-Streaming eingerichtet 412 werden, wobei es zwei Optionen gibt dies auszuführen. Eine erste Option besteht darin, daß die vorhandene Kommunikationsadresse und der Port aus dem Ruf-Setup verwendet werden können, um Inhalte-Streaming zu übertragen. Eine zweite Option besteht darin, sich über eine Verwendung einer abweichenden Adresse und es einen abweichenden Ports zu benachrichtigen. Da jedoch beide Endpunkte sich hinter NAT-Einrichtungen befinden, dient dann, wenn 414 der Port nicht erneut verwenden werden soll, der Registrierungsserver als Proxy oder Vermittler für Inhalte-Ströme 416. Dies ist erforderlich, da nur der Registrierungsserver für beide NAT-Einrichtungen als gültige Quelle für eingehende Daten bekannt ist. Bei einem Ausführungsbeispiel ändert 418 der Registrierungsserver-Proxy eingebettete Adressen innerhalb der Protokolldaten, um auf den Registrierungsserver zu verweisen, und tunnelt 420 dann den Inhalte-Verkehr zwischen den Endpunkten. Bei einem Ausführungsbeispiel dient der Registrierungsserver selbst dann als Proxy, wenn Signal-Ports erneut verwendet werden 416.
  • 5 veranschaulicht, gemäß einem Ausführungsbeispiel, eine Top-Down-Zeitleiste von Protokolltransaktionen, bei welchen ein erster Endpunkt EP1 500 hinter einer NAT-Einrichtung einen Ruf aus einem zweiten Endpunkt EP2 506 empfängt. Man beachte, daß einige Operationen in den veran schaulichten Zeitleisten gleichzeitig oder in einer abweichenden Reihenfolge auftreten können.
  • Ein Registrierungsserver 504 dient als Vermittler oder Vermittlung, um die Kommunikation zwischen Endpunkten zu erleichtern. Der Registrierungsserver verfolgt die Endpunkt-Identitäten oder -Aliases und Netzwerkorte, beispielsweise Adressen, etc., für die Endpunkte. Da die Kommunikation durch eine NAT-Einrichtung hindurch geleitet wird, wie es unten erörtert werden wird, erfordert das von den Endpunkten benutzte Kommunikationsprotokoll, daß der erste Endpunkt seine NAT-Einrichtung für den Empfang von Daten aus dem zweiten Endpunkt auf einem gewünschten Port vorbereitet.
  • Wie oben erörtert, gilt das veranschaulichte Kommunikationsprotokoll für ein beliebiges Protokoll, das Protokolldaten benutzt, die eine Netzwerkadresse eines Endpunkts, beispielsweise eine Netzwerkadresse und ggf. einen gewünschten Kommunikationsport, enthält. Angenommen, ein H.323-basiertes Telefonieprotokoll wird verwendet und jeder der EP1 500, NAT 502 und EP2 506 hat seine zugehörige IP-Netzwerkadresse und seinen Kommunikationsports 508, 510, 512, und angenommen, die IP-Adresse bleibt für die Dauer des Beispiels statisch, aber es werden verschiedene Port-Werte W, X, Y verwendet. Für Fachleute ist es jedoch klar, daß statische IP-Adressen oder selbst das IP-Protokoll nicht erforderlich sind. Beispielsweise können Protokolle, wie AppleTalk, NetBios Enhanced User Interface (Netbeui), etc., verwendet werden.
  • EP1 500 sendet 518 eine Registrierungsnachricht an den Ruf-Registrierungsserver 504, was dem Registrierungsserver mittels eingebetteter Protokolldaten mitteilt, daß EP1 an Adresse A1 Port P1 kontaktiert werden soll und den Identifizierer (z. B. Alias) ID1 aufweist. (Es ist zu beachten, daß sämtliche Port-Bezeichnungen hier Beispiele sind und keine spezielle Bedeutung haben und die Figuren die Bezeichnung A1/P1 verwenden, um Adresse A1 Port P1 darzustellen).
  • Die Registrierungsnachricht durchläuft die NAT 502, und die NAT übersetzt 520 den die Registrierungsnachricht enthaltenden Netzwerkverkehr so, daß er als aus Adresse A2 Port P2 herrührend erscheint. Der Registrierungsserver stellt fest (nicht dargestellt), daß die eingebettete Adresse A1 Port P1 in den Protokolldaten nicht routing-fähig ist, beispielsweise eine private Adresse innerhalb einer NAT ist, und folglich, daß eine Übersetzung auftrat. Demzufolge registriert 522 der Registrierungsserver, daß EP1 sich an der Adresse A2 Port P2 mit dem Identifizierer ID1 befindet, auf der Grundlage der Paket-Kopfteile (Header) des die Registrierungsnachricht enthaltenden Netzwerkverkehrs.
  • EP2 versucht dann, EP1 zu kontaktieren. Um dies auszuführen, versucht EP2, die gegenwärtige Netzwerkadresse von EP1 aufzulösen 524, indem er eine Auflösungsanforderung 524 für den ID1 des EP1 an den Registrierungsserver 504 sendet. Der Registrierungsserver schlägt nach dem Eintrag für ID1 nach und sendet eine Antwort 526, die kennzeichnet, daß EP1 die Netzwerkadresse A2 Port P2 hat. EP2 lauscht 528 dann an der Adresse A3 Port P10 (ein beliebiger von EP2 ausgewählter Port) nach zu empfangenden Inhalten und initiiert eine Ruf-Anforderung 530 an EP1 an der Adresse A2 Port P2 über den Registrierungsserver. Die Ruf-Anforderung von EP2 wird über den Registrierungsserver 504 gerouted, welcher wiederum die Ruf-Anforderung an die NAT-Einrichtung 502 weiterleitet.
  • Angenommen, die NAT-Einrichtung weist eingehenden Netzwerkverkehr, der nicht von einer bekannten Netzwerkadresse und einem Port, beispielsweise einer Adresse, an welche die NAT-Einrichtung zuvor Netzwerkverkehr gesendet hatte, herrührt, zurück, so ist ein Routing der Ruf-Anforderung über den Registrierungsserver erforderlich, um zu bewirken, daß die NAT-Einrichtung die von EP2 herrührende Ruf-Anforderung akzeptiert, da dann die geroutete Anforderung als Antwort auf die Registrierung 518 von EP1 erscheint. Die NAT-Einrichtung übersetzt 534 den die Ruf-Anforderung, die an die Adresse A2 Port P2 gerichtet ist, enthaltenen Netzwerkverkehr zur Lieferung an EP1 an die Adresse A1 Port P1.
  • Sobald EP1 die Ruf-Anforderung empfängt, lauscht 536 er dann an Adresse A1 Port P20 (einen beliebigen von EP1 ausgewählten Port) und bestätigt 538 die Ruf-Anforderung an EP2 auf der Adresse A3 Port P20, den beliebigen von EP2 ausgewählten Port). Innerhalb der an EP2 gesendeten Protokolldaten zeigt EP1 an, daß er auf Adresse A1 Port P20 lauscht. Gewöhnlich wäre dann, wenn sich EP1 nicht hinter einer NAT-Einrichtung befinden würde, die Bildung einer Kommunikations-Session abgeschlossen, da EP2 einfach mit dem Senden von Inhalten an die Adresse A1 Port P20 beginnen könnte. Da jedoch EP1 sich hinter einer NAT-Einrichtung befindet, wird der Netzwerkverkehr von EP1, der die Bestätigung enthält, in Adresse A2 Port P30 übersetzt 540.
  • Da die Ruf-Anforderung 530 ursprünglich an EP1 von dem Registrierungsserver 504 weitergeleitet 532 wurde, sendet EP1 seine Bestätigung 538 an den Registrierungsserver, welcher wiederum diese an EP2 bei A2/P10, der Adresse, an welcher EP2 zu lauschen 528 wählte, weiterleitet 542. An diesem Punkt wird der Registrierungsserver nicht mehr als Vermittler benötigt, da EP1 nunmehr weiß, daß er Inhalte an EP2 an der Adresse A3 Port P10 senden soll. Jedoch nimmt bei einem Ausführungsbeispiel EP2 nicht an, daß sich ein weiterer Endpunkt hinter einer NAT-Einrichtung befindet, und testet somit die Bestätigung, um zu identifizieren 544, daß eine Übersetzung stattgefunden hat, beispielsweise, daß die in den Protokolldaten eingebettete Adresse A1 Port P20 nicht routing-fähig ist.
  • Sobald die Übersetzung identifiziert ist 544, wartet 546 EP2 auf Inhalte, die aus EP1 an EP2 gesendet 548 werden sollen, statt sofort Inhalte zu senden, wie es bei einer herkömmlichen Kommunikations-Session erfolgen würde. Man beachte, daß beim Senden 548 von Inhalten an EP2 an der Adresse A3 Port P10 einige NAT-Einrichtungen Port P30 erneut verwenden könnten, der vom Senden 540 der Bestätigung an EP2 gesetzt wurde, da EP1 fortfährt, an dieselbe Ziel-Adresse und -Port zu senden. Wenn die NAT-Einrichtung den zu sendende Inhalte übersetzt 550, bereitet dies die NAT-Einrichtung des EP1 darauf vor, erwiderte Inhalte aus EP2 zu empfangen. EP2, der von der Übersetzung Kenntnis erlangt, sendet 552 seine Inhalte an die NAT-Einrichtung, welche wiederum den die Inhalte enthaltenden Netzwerkverkehr übersetzt 554 und ihn an EP1 liefert.
  • So wurde eine Kommunikations-Session von EP2 an EP1 eingerichtet.
  • 6 veranschaulicht, gemäß einem Ausführungsbeispiel, eine Top-Down-Zeitleiste von Protokolltransaktionen, bei welchen der erste Endpunkt EP1 500 eine Kommunikations-Session über die NAT-Einrichtung 502 an den zweiten Endpunkt EP2 506 initiiert. Der erste Endpunkt EP1 registriert sich selbst 518, 520, 522 bei dem Registrierungsserver 504 so, wie es anhand von 5 erörtert wurde.
  • Dann lauscht 600 der EP1 auf der Adresse A1 Port P1, und EP2 lauscht 602 auf Adresse A3 Port P3. EP2 sendet 604 eine Registrierungsnachricht an den Registrierungsserver, die anzeigt, das er die Netzwerkadresse A3 Port P3 und die Identität ID2 hat. Wie oben anhand von 5 bezüglich der Registrierung 518 von EP1 erörtert wurde, führt der Registrierungsserver eine (nicht veranschaulichte) Überprüfung durch, um zu bestimmen, ob sich EP2 hinter einem Firewall befindet. Dies ist bei EP2 nicht der Fall, so daß der Registrierungsserver den EP2 mit den zur Verfügung gestellten Adreßwerten registriert.
  • Um einen Aufruf von EP1 an EP2 zu initiieren, sendet EP1, welcher sich hinter der NAT-Einrichtung 502 befindet, eine Auflösungsanforderung 608 an den Registrierungsserver, um ID2 aufzulösen. Die Anforderung wird übersetzt 610 und an den Registrierungsserver weitergeleitet, welcher die Registrierung der Adresse A3 Port P3 für EP2 nachschlägt. Der Registrierungsserver führt eine Überprüfung aus und stellt fest 612, daß sich EP1 hinter einer NAT-Einrichtung befindet, beispielsweise die eingebetteten Protokolldaten eine nicht routing-fähige Adresse enthalten, so daß der Registrierungsserver eine Auflösungs-Antwort zurück an EP1 an der Adresse A2 Port P10 sendet, derjenigen Adresse, die von der NAT-Einrichtung zugewiesen 610 wurde, wenn diese die Auflösungsanforderung 608 übersetzt hat. Bei einem Ausführungsbeispiel sendet der Registrierungsserver einfach Antworten auf Auflösungsanforderungen zurück an die Netzwerkadresse und den Port, die von dem Netzwerkverkehr mit der Auflösungsanforderung identifiziert wird, ohne eingebettete Adressen innerhalb der Protokolldaten zu untersuchen.
  • Der EP1 wartet 616 dann auf Inhalte, beispielsweise Ruf-Abschluß, auf Adresse A1 Port P20 (einem beliebigen Port) und sendet 618 für die von dem Registrierungsserver gesendeten 614 Auflösungsdaten eine Ruf-Anforderung an Adresse A3 Port P3. Die Netzwerkadresse A1 Port P20, bei welcher EP1 zu kommunizieren wünscht, wird in die Ruf-Anforderung als Protokolldaten eingebettet. Die Ruf-Anforderung wird von der NAT-Einrichtung übersetzt 620, so daß sie so erscheint, als würde sie aus Adresse A2 (eine routing-fähige Adresse) Port P30 (ein beliebiger Port) herrühren, und dann von der NAT-Einrichtung an EP2 weitergeleitet. EP2 untersucht, wie zuvor erörtert wurde, die Protokolldaten und stellt fest 622, daß Adresse A1 Port P20 keine routing-fähige Netzwerkadresse ist.
  • Folglich sendet 624 EP2 einen Ruf-Bestätigung an die NAT-Einrichtung bei Adresse A2 Port P30, und die NAT wiederum leitet 626 die Bestätigung an EP1 an der Adresse A1 Port P20 weiter. Die Ruf-Bestätigung aus EP1 umfaßt Protokolldaten, die anzeigen, daß EP2 Inhalte aus EP1 an der Adresse A3 Port P40 (ein beliebiger Port) zu empfangen wünscht. Da EP2 erfaßte, daß sich EP1 hinter einer NAT-Einrichtung befindet, sendet EP2 keine Inhalte an EP1, da er statt dessen wartet 628, das EP1 seine NAT-Einrichtung vorbereitet, indem er Inhalte an EP2 sendet.
  • EP1 sendet 630 Inhalte an EP2 an der Adresse A3 Port P40, wie es bei der Bestätigung 624 von EP2 angezeigt ist. Die NAT-Einrichtung übersetzt 632 die Medien so, daß sie als von der Adresse A2 Port P50 (ein beliebiger Port) herrührend erscheinen. Für Fachleute ist klar, daß andere NAT-Einrichtungen es vorziehen können, Port-Zuweisungen erneut zu benutzen. Jetzt, nachdem Inhalte aus EP1 empfangen worden sind, kann EP2 erwidernde Inhalte an die NAT-Einrichtung an Adresse A2 Port P50 senden 634, welche wiederum veranlaßt, daß der Inhalt von EP2 so übersetzt 636 wird, daß er an die Adresse A1 Port P20 zur Lieferung an EP1 adressiert wird.
  • Somit wird eine Kommunikations-Session von EP1 an EP2 eingerichtet.
  • Bei einem Ausführungsbeispiel schließt die Registrierung eines Endpunkts die vorherige Registrierung eines Mitlausch-Ports (listening port) ein, an welchem der Endpunkt auf Inhalte wartet. Wenn beispielsweise EP1 ID2 auflöst 608, gibt der Server Adresse A3 Port P3, wie oben erörtert wurde, zusammen mit Port P40 zum Empfangen von Inhalten zurück. Die Kenntnis dieses Ports im Voraus ermöglicht es EP1, seine NAT vorab vorzubereiten, indem er ein Dummy-Paket an EP2 sendet, was es EP2 ermöglicht, sofort Daten, wie beispielsweise Audiodaten, an EP1 zu senden, noch bevor EP1 und EP2 die Aushandlung sämtlicher Session-Parameter, beispielsweise der zu benutzende CODEC, Videobitrate oder Qualität, Merkmale, etc., abgeschlossen haben.
  • 7 veranschaulicht, in Übereinstimmung mit einer Ausführungsform, eine Top-Down-Zeitleiste von Protokolltransaktionen, bei welchen der erste Endpunkt EP1 700 einen Kommunikations-Session an einen zweiten Endpunkt 708 initiiert, wobei beide Endpunkte sich hinter NAT-Einrichtungen 702, 706 befinden.
  • Wie oben bei 4 erörtert worden ist, gibt es verschiedene Techniken, um eine richtige Signalisierung zu erreichen derart, daß die NAT-Einrichtungen 702, 706 in geeigneter weise auf das Empfangen von Antwortdaten vorbereitet werden. Die Registrierung der Endpunkte, das Signalisieren der gewünschten Kommunikationsports und die Feststellung der NAT-Übersetzung erfolgen gemäß den zuvor erörterten Prinzipien. Bei dem veranschaulichten Ausführungsbeispiel gibt EP1 eine Ruf-Setup-Anforderung 710 an Adresse A4 Port P4 aus der internen Adresse A1 Port P1 aus, und dieser Ruf wird von der NAT 702 des EP1 übersetzt 712, so daß er anscheinend aus Adresse A2 Port P20 herrührt. Bei einem alternativen Ausführungsbeispiel werden Ruf-Setup-Anforderungen an Aliases, beispielsweise ID2, statt an Adresse-Port-Paarungen, wie veranschaulicht, gerichtet. Dieses Ruf-Setup wird an den Registrierungsserver 704 weitergeleitet, und der Registrierungsserver ändert 714 die Ruf-Setup-Protokolldaten derart, daß die interne Adresse A1 Port P1 statt dessen auf den Registrierungsserver verweist. Im Endeffekt erscheint es so, als ob der Registrierungsserver einen Ruf an EP2 initiierte. Die geänderten Ruf-Setup-Protokolldaten werden von der NAT des EP2 empfangen, welche sie übersetzt 716 und an EP2 liefert.
  • Folglich sendet 718 EP2 eine Bestätigung an den Server, welche anzeigt, daß er auf Adresse A3 Port P30 lauscht. Die NAT 720 des EP2 übersetzt die Bestätigung so, daß sie scheinbar aus Adresse A4 Port P40 herrührt. Wenn der Registrierungsserver die Bestätigung empfängt, ändert 722 er die Bestätigung so, daß die interne Adresse A3 Port P30 des EP2 statt dessen auf den Registrierungsserver verweist. Die geänderte Bestätigung wird von der NAT 702 des EP1 empfangen, welche sie zur Lieferung an EP1 übersetzt 724. So werden beide Endpunkte dazu verleitet, ihre Inhalte an den Registrierungsserver zu senden 726, 728, welcher wiederum sie an die richtigen Endpunkte 700, 708 weiterleitet.
  • 8 und die nachfolgende Diskussion sollen eine kurze allgemeine Beschreibung einer geeigneten Rechnerumgebung zur Verfügung stellen, in welcher bestimmte Aspekte der veranschaulichten Erfindung implementiert werden können. Ein beispielhaftes System zum Verkörpern des ersten Endpunkts EP1 500 oder des Registrierungsservers 504 gemäß 5 enthält beispielsweise eine Maschine 800 mit einem Systembus 802 zum Koppeln verschiedener Maschinenkomponenten.
  • Typischerweise sind mit dem Bus Prozessoren 804, ein Speicher 806 (z. B. RAM, ROM), Speichereinrichtungen 808, eine Videoschnittstelle 810 und Eingabe/Ausgabe-Schnittstellen-Ports 812 verbunden. Die Maschine kann darüber hinaus eingebettete Controller enthalten, wie beispielsweise programmierbare Logikbauelemente oder -arrays (PLD, PLA), generische oder programmierbare Array-Logik (GAL, PAL), anwenderprogrammierbare Gate-Arrays (FPGA), anwendungsspezifische integrierte Schaltungen (ASIC), Ein-Chip-Computer, SmartCards, etc.
  • Die Erfindung kann unter Bezugnahme auf Programmodule beschrieben werden, die im Speicher 806 und/oder in den Speichereinrichtungen 808 gespeichert sein können. Die Programmodule umfassen Prozeduren, Funktionen, Programme, Komponenten, Datenstrukturen und dergleichen zum Ausführen bestimmter Aufgaben oder Implementieren bestimmter abstrakter Datentypen. Ein Fachmann erkennt, daß Programmodule Gebilde in einer höheren Programmiersprache oder maschinennahe Hardware-Befehle und/oder Kontexte sein können, und daß sie in einem komprimierten oder verschlüsselten Format benutzt werden können. Daten können im Speicher 806, in den Speichereinrichtungen 808 und zugehörigen Medien gespeichert sein.
  • Die Maschine soll in einer vernetzten Umgebung unter Verwendung logischer Verbindungen zu einer oder zu mehreren fernen Maschinen 814, 816 über eine Netzwerkschnittstelle 818, ein Modem 820 oder einen anderen Kommunikationspfad be trieben werden. Maschinen können miteinander mit Hilfe eines verdrahteten oder drahtlosen Netzwerks 822 verbunden werden, wie beispielsweise das Netzwerk 104 der 1, einschließlich eines Intranet, des Internet, eines lokalen Netzwerks, eines Weitbereichsnetzwerks, eines zellularen Netzwerks, Kabel, Laser, Satellitenverbindungen, Mikrowellenverbindungen, Bluetooth, optischer, infraroter oder anderer Trägertechnologien.
  • Die Programmodule können in einer einzigen Maschine implementiert oder in einer verteilten Netzwerkumgebung verarbeitet werden und sowohl im lokalen als auch fernen Speichern gespeichert sein. Der Speicher und die Speichereinrichtungen schließen Festplattenlaufwerke, Disketten, optische Speicher, Magnetkassetten, Bänder, Flash-Speicherkarten, Speicherstifte, digitale Videoplatten, biologische Speicher und dergleichen sowie verdrahtete und drahtlose Übertragungsumgebungen, wie beispielsweise das Netzwerk 822, über welches Programmodule in Form von Paketen, seriellen Daten, parallelen Daten oder eines anderen geeigneten Übertragungsformats geliefert werden können.
  • So sei beispielsweise bezüglich der veranschaulichten Ausführungsbeispiele angenommen, daß die Maschine 800 einen Endpunkt betreibt und daß die fernen Einrichtungen 814, 816 dann einen zweiten Endpunkt und einen Registrierungsserver darstellen können. Es ist klar, daß die fernen Maschinen 814, 816 ähnlich der Maschine 800 konfiguriert sein können und folglich viele oder sämtliche Elemente, wie sie für die Maschine erörtert wurden, enthalten können. Es ist auch klar, daß die Maschinen 800, 814, 816 in einem einzigen Bauelement verkörpert sein können oder separate miteinander kommunizierende Komponenten sein können.
  • Die veranschaulichten Verfahren und deren zugehörige Beschreibung sollen maschinen-zugreifbare Medien veranschaulichen, die Anweisungen oder dergleichen speichern und welche in Einzel- und Multi-Prozessor-Maschinen, transportablen Computern, wie beispielsweise Handheld-Geräten einschließlich persönlichen digitalen Assistenten (PDAs), Mobiltelefonen und dergleichen, enthalten sein können. Nachdem die Prinzipien der Erfindung unter Bezugnahme auf die veranschaulichten Ausführungsformen beschrieben und veranschaulicht worden sind, ist zu erkennen, daß die veranschaulichten Ausführungsbeispiele hinsichtlich der Anordnung und in den Details modifiziert werden können, ohne von diesen Prinzipien abzuweichen.
  • Obwohl sich die vorstehende Diskussion auf spezielle Ausführungsformen konzentrierte, ist es klar, daß andere Konfigurationen erwogen werden. Obwohl Ausdrücke, wie beispielsweise "bei einem Ausführungsbeispiel", "bei einem anderen Ausführungsbeispiel" oder dergleichen, hier verwendet worden sind, sollen sich diese Ausdrücke auf mögliche Ausführungsformen beziehen und sind nicht vorgesehen, die Erfindung auf die speziellen Konfigurationen der Ausführungsbeispiele zu beschränken. So wie sie hier verwendet werden, beziehen sich diese Begriffe auf dieselben oder verschiedene Ausführungsbeispiele, und solange nicht implizit oder ausdrücklich etwas anderes ausgesagt ist, sind die Ausführungsbeispiele zu weiteren Ausführungsbeispielen kombinierbar. Demzufolge, angesichts der großen Vielzahl möglicher Kombinationen der oben beschriebenen Ausführungsbeispiele, ist die detaillierte Beschreibung nur veranschaulichend auszulegen und nicht in einem den Schutzumfang der Erfindung einschränkenden Sinne.

Claims (23)

  1. Ein Kommunikationsprotokoll zum Initiieren einer Kommunikations-Session über eine Netzwerkadreßübersetzungseinrichtung (502), welche internen Netzwerkverkehr mit einer internen Netzwerkadresse und einem internen Port in externen Verkehr mit einer scheinbaren externen Ursprungsadresse und einem scheinbaren Port übersetzt, wobei das Protokoll umfaßt: Vorbereiten (200) eines Session-Setup für eine Session von einer ersten Maschine (500) mit einer nicht routing-fähigen Netzwerkadresse zu einer zweiten Maschine (506), wobei das Session-Setup eine nicht routing-fähige Netzwerkadresse anzeigt, zu welcher eine Session-Bestätigung zu senden ist; und Senden (202, 204) des Session-Setup an die zweite Maschine (504, 506) über die Netzwerkadreßübersetzungseinrichtung (502), wobei die Netzwerkadreßübersetzungseinrichtung das Session-Setup nicht übersetzt; wobei die zweite Maschine (504, 506) so konfiguriert ist, daß sie das Session-Setup untersucht (208, 210) und feststellt, ob das Session-Setup die nicht routing-fähige Netzwerkadresse enthält.
  2. Das Kommunikationsprotokoll nach Anspruch 1, ferner umfassend: Einschließen eines ersten Ports in das Session-Setup zur Kommunikation mit einem Kommunikationsendpunkt; wobei die Übersetzung durch die Netzwerkadreßübersetzungseinrichtung (502) dazu führt, daß das Session-Setup einen scheinbaren Ursprung und einen zweiten Port aufweist, die sich von der nicht routing-fähigen Netzwerkadresse und dem ersten Port in dem Session- Setup unterscheiden, und wobei die zweite Maschine (504, 506) so konfiguriert ist, daß sie die Protokolldaten untersucht (214) und die nicht routing-fähige Netzwerkadresse identifiziert.
  3. Das Kommunikationsprotokoll nach Anspruch 2, wobei als Endpunkt entweder die zweite Maschine (506) oder ein Registrierungsserver (504) zum Registrieren von Kommunikationsendpunkten ausgewählt ist.
  4. Das Kommunikationsprotokoll nach Anspruch 1, ferner umfassend, daß die Netzwerkadreßübersetzungseinrichtung (502): das Session-Setup für die Session mit der zweiten Maschine (506) empfängt; das Session-Setup an eine zweite Netzwerkadresse sendet; das Senden in einer Zugriffsautorisierungstabelle aufzeichnet; Daten aus einem Netzwerk empfängt; und die empfangenen Daten mit wenigstens einem Teil des Eintrags der Zugriffsautorisierungstabelle vergleicht, um zu bestimmen, ob die empfangenen Daten eine Antwort auf das Senden darstellen.
  5. Das Kommunikationsprotokoll nach Anspruch 1, wobei die zweite Maschine (504) ein Registrierungsserver zum Registrieren von Maschinen-Aliases mit Netzwerkadressen ist, wobei das Protokoll ferner umfaßt, daß der Registrierungsserver: das Session-Setup empfängt, wobei das Session-Setup Protokolldaten einschließlich eines Alias für die erste Maschine (500) enthält; die Protokolldaten überprüft, um festzustellen, ob sie die nicht routing-fähige Netzwerkadresse enthalten; und dann, wenn dies der Fall ist, die erste Maschine (500) unter Bezugnahme auf den Alias und eine routing-fähige Netzwerkadresse registriert.
  6. Das Kommunikationsprotokoll nach Anspruch 1, wobei die zweite Maschine (504, 506) ein Endpunkt für die Session ist, wobei das Protokoll ferner umfaßt, daß die zweite Maschine: das Session-Setup empfängt; bestimmt, ob das Session-Setup anzeigt, daß die Session-Bestätigung an die nicht routing-fähige Netzwerkadresse gesendet wird; und die Session-Bestätigung an die erste Maschine an eine routing-fähigen Netzwerkadresse sendet.
  7. Das Kommunikationsprotokoll nach Anspruch 6, ferner umfassend, daß die Netzwerkadreßübersetzungseinrichtung (502): die Session-Bestätigung für die erste Maschine (500) empfängt; und die Session-Bestätigung zur Lieferung an die nicht routing-fähige Netzwerkadresse übersetzt.
  8. Eine Verfahren zum Kommunizieren zwischen einem ersten Endpunkt (500) hinter einem Netzwerkadreßübersetzer (NAT) und einem zweiten Endpunkt (504, 506), umfassend: Empfangen einer ersten Registrierung für den ersten Endpunkt (500), wobei die Registrierung eine eingebettete Netzwerkadresse, einen eingebetteten Port und einen eingebetteten Alias für den ersten Endpunkt aufweist, wobei die Registrierung eine scheinbare Ursprungsadresse des NAT aufweist; Feststellen, daß die eingebettete Netzwerkadresse eine nicht routing-fähige Netzwerkadresse ist; und Registrieren des ersten Endpunkts (500) mit der scheinbaren Ursprungsadresse des NAT, dem eingebetteten Port und dem eingebetteten Alias.
  9. Das Verfahren nach Anspruch 8, ferner umfassend: Empfangen einer Auflösungsanforderung für den Alias aus dem zweiten Endpunkt (504, 506); Erwidern auf die Anforderung mit zumindest der scheinbaren Ursprungsadresse des NAT (502); Empfangen eines Session-Setup aus dem zweiten Endpunkt (504, 506); und Weiterleiten des Session-Setup an den ersten Endpunkt (500) an der scheinbaren Ursprungsadresse des NAT.
  10. Das Verfahren nach Anspruch 9, ferner umfassend: Senden einer Bestätigung über den NAT (502) an den zweiten Endpunkt (504, 506), wobei die Bestätigung die nicht routing-fähige Netzwerkadresse und einen dynamisch zugewiesenen Port des ersten Endpunkts (500) aufweist; Bestimmen durch den zweiten Endpunkt (504, 506), ob eine zweite Netzwerkadresse routing-fähig ist; und dann, wenn dies der Fall ist, Warten durch den zweiten Endpunkt auf audiovisuelle Daten, die aus dem ersten Endpunkt (500) an dem zweiten Endpunkt (504, 506) gesendet werden sollen.
  11. Eine Einrichtung zur Kommunikation zwischen einem ersten Endpunkt (500) hinter einer Netzwerkadreßübersetzungseinrichtung (NAT) (502) und einem zweiten Endpunkt (504, 506), wobei die Einrichtung ein lesbares Medium aufweist, auf dem Befehle zur Ausführung durch eine Prozessor codiert sind, wobei die Befehle in der Lage sind, den Prozessor anzuweisen, folgendes auszuführen: Empfangen einer ersten Registrierung für den ersten Endpunkt (500), wobei die Registrierung eine eingebettete Netzwerkadresse, einen eingebetteten Port und einen eingebetteten Alias für den ersten Endpunkt umfaßt, wobei die Registrierung eine scheinbare Ursprungsadresse des NAT aufweist; Bestimmen, daß die eingebettete Netzwerkadresse eine nicht routing-fähige Netzwerkadresse ist; und Registrieren des ersten Endpunkts (500) mit der scheinbaren Ursprungsadresse des NAT, dem eingebetteten Port und dem eingebetteten Alias.
  12. Die Einrichtung nach Anspruch 11, wobei die Befehle ferner Befehle enthalten, die in der Lage sind, den Prozessor anzuweisen, folgendes auszuführen: Empfangen einer Auflösungsanforderung für den Alias aus dem zweiten Endpunkt (504, 506); Erwidern auf die Anforderung mit zumindest der scheinbaren Ursprungsadresse des NAT (502); Empfangen eines Session-Setup aus dem zweiten Endpunkt; und Weiterleiten des Session-Setup an den ersten Endpunkt (500) an der scheinbaren Ursprungsadresse des NAT.
  13. Die Einrichtung nach Anspruch 12, wobei die Befehle ferner Befehle enthalten, die in der Lage sind, den Prozessor anzuweisen, folgendes auszuführen: Senden einer Bestätigung über den NAT (502) an den zweiten Endpunkt (504, 506), wobei die Bestätigung die nicht routing-fähige Netzwerkadresse und einen dynamisch zugewiesenen Port des ersten Endpunkts umfaßt; Bestimmen, ob die zweite Netzwerkadresse routing-fähig ist, durch den zweiten Endpunkt; und dann, wenn dies der Fall ist, Warten des zweiten Endpunkts (504, 506) auf audiovisuelle Daten, die aus dem ersten Endpunkt an den zweiten Endpunkt gesendet werden sollen.
  14. Ein Verfahren, mit dem ein erster Endpunkt (500) innerhalb einer Netzwerkadreßübersetzungseinrichtung (502) eine Kommunikations-Session mit einem zweiten Endpunkt (504) außerhalb der Netzwerkadreßübersetzungseinrichtung einrichtet, wobei das Verfahren umfaßt: Kontaktieren eines Registrierungsservers (504) zum Auflösen eines Alias für den zweiten Endpunkt; Empfangen einer ersten Session-Registrierung aus dem Registrierungsserver (504), wobei die erste Session-Registrierung eine Netzwerkadresse für den zweiten Endpunkt (506), die routing-fähig ist, und einen Inhalte-Port, an welchen Inhalte für den zweiten Endpunkt gesendet werden sollen, aufweist; und Vorbereiten der Netzwerkadreßübersetzungseinrichtung (502), indem wenigstens ein Netzwerkpaket an den zweiten Endpunkt (506) an der routing-fähigen Netzwerkadresse an dem Inhalte-Port gesendet wird, bevor das Einrichten der Kommunikations-Session mit dem zweiten Endpunkt abgeschlossen ist.
  15. Das Verfahren nach Anspruch 14, ferner umfassend: Senden einer zweiten Session-Registrierung für den ersten Endpunkt (500) an den Registrierungsserver (504), wobei die zweite Session-Registrierung eine Netzwerkadresse für den ersten Endpunkt, die nicht routing-fähig ist, aufweist.
  16. Das Verfahren nach Anspruch 15, ferner umfassend, daß der Registrierungsserver (504): die zweite Session-Registrierung für den ersten Endpunkt (500) aus einer der Netzwerkadreßübersetzungseinrichtung zugeordneten routing-fähigen Netzwerkadresse empfängt; identifiziert, daß die zweite Session-Registrierung eine Netzwerkadresse aufweist, die nicht routing-fähig ist, und in Antwort darauf den ersten Endpunkt (500) bezüglich der routing-fähigen Netzwerkadresse, die der Netzwerkadreßübersetzungseinrichtung zugeordnet ist, registriert; die erste Session-Registrierung für den zweiten Endpunkt (506) empfängt; und identifiziert, daß die erste Session-Registrierung eine Netzwerkadresse aufweist, die routing-fähig ist, und in Antwort darauf den zweiten Endpunkt (506) gemäß der ersten Session-Registrierung registriert.
  17. Das Verfahren nach Anspruch 15, ferner umfassend: wobei der Registrierungsserver (504) so konfiguriert ist, daß er die nicht routing-fähige Netzwerkadresse innerhalb der zweiten Session-Registrierung identifiziert und in Erwiderung dieses Identifizierens den ersten Endpunkt (500) bezüglich einer routing-fähigen Netzwerkadresse, die der Netzwerkadreßübersetzungseinrichtung (502) zugeordnet ist, registriert.
  18. Eine Einrichtung, mit der ein erster Endpunkt (500) innerhalb einer Netzwerkadreßübersetzungseinrichtung (502) eine Kommunikations-Session mit einem zweiten Endpunkt außerhalb der Netzwerkadreßübersetzungseinrichtung einrichtet, wobei die Einrichtung ein lesbares Medium aufweist, auf dem Befehle zur Ausführung durch einen Prozessor codiert sind, wobei die Befehle in der Lage sind, den Prozessor anzuweisen, folgendes auszuführen: Kontaktieren eines Registrierungsservers (504), um einen Alias für den zweiten Endpunkt (506) aufzulösen; Empfangen einer ersten Session-Registrierung aus dem Registrierungsserver (504), wobei die erste Session-Registrierung eine Netzwerkadresse für den zweiten Endpunkt (506), die routing-fähig ist, und einen Inhalte-Port für den zweiten Endpunkt, an welchen Inhalte gesendet werden sollen, aufweist; und Vorbereiten der Netzwerkadreßübersetzungseinrichtung (502), indem wenigstens ein Netzwerkpaket an den zweiten Endpunkt (506) an der routing-fähigen Netzwerkadresse an dem Inhalte-Port gesendet wird, bevor das Einrichten der Kommunikations-Session mit dem zweiten Endpunkt abgeschlossen ist.
  19. Die Einrichtung nach Anspruch 18, wobei die Befehle ferner Befehle einschließen, die in der Lage sind, den Prozessor anzuweisen, folgendes auszuführen: Senden einer zweiten Session-Registrierung für den ersten Endpunkt (500) an den Registrierungsserver, wobei die zweite Session-Registrierung eine Netzwerkadresse für den ersten Endpunkt, die nicht routing-fähig ist, aufweist.
  20. Die Einrichtung nach Anspruch 19, wobei die Befehle ferner Befehle einschließen, die in der Lage sind, den Prozessor anzuweisen, folgendes auszuführen: Empfangen der zweiten Session-Registrierung für den ersten Endpunkt (500) von einer routing-fähigen Netzwerkadresse, die der Netzwerkadreßübersetzungseinrichtung (502) zugeordnet ist; Identifizieren, daß die zweite Session-Registrierung eine Netzwerkadresse aufweist, die nicht routing-fähig ist, und, in Beantwortung dessen, Registrieren des ersten Endpunkts (500) bezüglich der routing-fähigen Netzwerkadresse, die der Netzwerkadreßübersetzungseinrichtung zugeordnet ist; Empfangen der ersten Session-Registrierung für den zweiten Endpunkt (506); und Identifizieren, daß die erste Session-Registrierung eine Netzwerkadresse aufweist, die routing-fähig ist, und, in Beantwortung dessen, Registrieren des zweiten Endpunkts (506) in Übereinstimmung mit der ersten Session-Registrierung.
  21. Eine Einrichtung, mit der ein erster Endpunkt (500) innerhalb einer Netzwerkadreßübersetzungseinrichtung (502) eine Kommunikations-Session mit einem zweiten Endpunkt (506) außerhalb der Netzwerkadreßübersetzungseinrichtung einrichtet, wobei die Einrichtung aufweist: Auflösungsmittel zum Kontaktieren eines Registrierungsservers (504), um einen Alias für den zweiten Endpunkt (506) aufzulösen; Empfangsmittel zum Empfangen einer ersten Session-Registrierung aus dem Registrierungsserver (504), wobei die erste Session-Registrierung eine Netzwerkadresse für den zweiten Endpunkt (506), die routing-fähig ist, und einen Inhalte-Port, an welchen Inhalte gesendet werden sollten, für den zweiten Endpunkt (506) aufweist; und Vorbereitungsmittel zum Vorbereiten der Netzwerkadreßübersetzungseinrichtung (502), indem wenigstens ein Netzwerkpaket an den zweiten Endpunkt (506) an der routing-fähigen Netzwerkadresse auf dem Inhalte-Port gesendet wird, bevor das Einrichten der Kommunikations-Session mit dem zweiten Endpunkt abgeschlossen ist.
  22. Die Einrichtung nach Anspruch 21, ferner aufweisend: Sendemittel zum Senden einer zweiten Session-Registrierung für den ersten Endpunkt an den Registrierungsserver (504), wobei die zweite Session-Registrierung eine Netzwerkadresse für den ersten Endpunkt (500), die nicht routing-fähig ist, aufweist.
  23. Die Einrichtung nach Anspruch 22, ferner aufweisend: Empfangsmittel zum Empfangen der zweiten Session-Registrierung für den ersten Endpunkt von einer routing-fähigen Netzwerkadresse, die der Netzwerkadreßübersetzungseinrichtung (502) zugeordnet ist; Feststellungsmittel zum Feststellen, daß die zweite Session-Registrierung eine Netzwerkadresse aufweist, die nicht routing-fähig ist, und um in Antwort darauf den ersten Endpunkt (500) bezüglich der routing-fähigen Netzwerkadresse, die der Netzwerkadreßübersetzungseinrichtung (502) zugeordnet ist, zu registrieren; Empfangsmittel zum Empfangen der ersten Session-Registrierung für den zweiten Endpunkt (506); und Feststellmittel zum Feststellen, daß die erste Session-Registrierung eine Netzwerkadresse aufweist, die routing-fähig ist, und um in Antwort darauf den ersten Endpunkt (500) in Übereinstimmung mit der zweiten Session-Registrierung zu registrieren.
DE10296660T 2001-04-17 2002-04-12 Über Netzwerkadressübersetzungs(NAT) -Einrichtungen hinweg betreibbare Kommunikationsprotokolle Expired - Fee Related DE10296660B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/837,449 US7272650B2 (en) 2001-04-17 2001-04-17 Communication protocols operable through network address translation (NAT) type devices
US09/837,449 2001-04-17
PCT/US2002/011756 WO2002084974A2 (en) 2001-04-17 2002-04-12 Communications protocols operable through network address translation (nat) type devices

Publications (2)

Publication Number Publication Date
DE10296660T5 DE10296660T5 (de) 2004-04-22
DE10296660B4 true DE10296660B4 (de) 2007-09-06

Family

ID=25274472

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10296660T Expired - Fee Related DE10296660B4 (de) 2001-04-17 2002-04-12 Über Netzwerkadressübersetzungs(NAT) -Einrichtungen hinweg betreibbare Kommunikationsprotokolle

Country Status (8)

Country Link
US (1) US7272650B2 (de)
CN (1) CN100527750C (de)
AU (1) AU2002307311A1 (de)
DE (1) DE10296660B4 (de)
GB (1) GB2392343B (de)
HK (1) HK1061763A1 (de)
TW (1) TW567699B (de)
WO (1) WO2002084974A2 (de)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2362482A (en) * 2000-05-15 2001-11-21 Ridgeway Systems & Software Lt Direct slave addressing to indirect slave addressing
GB2365256A (en) 2000-07-28 2002-02-13 Ridgeway Systems & Software Lt Audio-video telephony with port address translation
GB2369746A (en) * 2000-11-30 2002-06-05 Ridgeway Systems & Software Lt Communications system with network address translation
US7477629B2 (en) * 2001-06-14 2009-01-13 Qualcomm Incorporated Methods and apparatus for supporting session registration messaging
US6970445B2 (en) * 2001-06-14 2005-11-29 Flarion Technologies, Inc. Methods and apparatus for supporting session signaling and mobility management in a communications system
US20030009561A1 (en) * 2001-06-14 2003-01-09 Sollee Patrick N. Providing telephony services to terminals behind a firewall and /or network address translator
US6954442B2 (en) * 2001-06-14 2005-10-11 Flarion Technologies, Inc. Methods and apparatus for using a paging and location server to support session signaling
KR100405113B1 (ko) * 2001-06-22 2003-11-10 주식회사 엑스큐어넷 네트워크상에서의 투명한 게이트웨이 또는 투명한 프록시구현 방법
JP4075340B2 (ja) * 2001-08-27 2008-04-16 ブラザー工業株式会社 ネットワークシステム、管理装置、記憶媒体、及びプログラム
WO2003028340A1 (de) * 2001-08-30 2003-04-03 Siemens Aktiengesellschaft Vorabaushandlung von nat-adressen
US8095668B2 (en) * 2001-11-09 2012-01-10 Rockstar Bidco Lp Middlebox control
US7408928B2 (en) * 2001-12-21 2008-08-05 Nortel Networks Limited Methods and apparatus for setting up telephony connections between two address domains having overlapping address ranges
US7181612B1 (en) * 2002-01-17 2007-02-20 Cisco Technology, Inc. Facilitating IPsec communications through devices that employ address translation in a telecommunications network
US7327721B2 (en) * 2002-02-11 2008-02-05 Avaya Technology Corp. Determination of endpoint virtual address assignment in an internet telephony system
US6985479B2 (en) * 2002-03-04 2006-01-10 Qualcomm Incorporated Method and apparatus for processing internet protocol transmissions
US7260649B1 (en) * 2002-04-16 2007-08-21 Cisco Technology, Inc. Apparatus and methods for forwarding data between public networks via a private network
AU2003234506A1 (en) * 2002-05-06 2003-11-17 Qualcomm Incorporated System and method for registering ip address of wireless communication device
US8108554B1 (en) 2002-05-16 2012-01-31 F5 Networks, Inc. Method and system for automatically mapping secure network address translations
US20030233471A1 (en) * 2002-06-17 2003-12-18 Julian Mitchell Establishing a call in a packet-based communications network
US7447901B1 (en) 2002-06-25 2008-11-04 Cisco Technology, Inc. Method and apparatus for establishing a dynamic multipoint encrypted virtual private network
US7366894B1 (en) 2002-06-25 2008-04-29 Cisco Technology, Inc. Method and apparatus for dynamically securing voice and other delay-sensitive network traffic
US7302496B1 (en) * 2002-11-12 2007-11-27 Cisco Technology, Inc. Arrangement for discovering a localized IP address realm between two endpoints
US20040121789A1 (en) * 2002-12-23 2004-06-24 Teddy Lindsey Method and apparatus for communicating information in a global distributed network
TW200412101A (en) * 2002-12-23 2004-07-01 Shaw-Hwa Hwang Directly peer-to peer transmission protocol between two virtual network
US7411917B1 (en) * 2003-03-26 2008-08-12 Network Equipment Technologies, Inc. Method and system for providing registration-based SIP NAT traversal
US7263071B2 (en) 2003-10-08 2007-08-28 Seiko Epson Corporation Connectionless TCP/IP data exchange
US7406533B2 (en) 2003-10-08 2008-07-29 Seiko Epson Corporation Method and apparatus for tunneling data through a single port
US7886057B2 (en) * 2003-10-20 2011-02-08 Logitech Europe S.A. Method and apparatus for communicating data between two hosts
TWI255113B (en) * 2003-11-10 2006-05-11 Inst Information Industry Method of media relay passing through Network Address Translation equipments to be decreased
US7694127B2 (en) * 2003-12-11 2010-04-06 Tandberg Telecom As Communication systems for traversing firewalls and network address translation (NAT) installations
US7810137B1 (en) * 2003-12-22 2010-10-05 Cisco Technology, Inc. Method of controlling network access that induces consumption of merchant goods or services
AU2003292281A1 (en) * 2003-12-22 2005-07-14 Nokia Corporation Method and system for maintaining a secure tunnel in a packet-based communication system
WO2005081499A1 (en) * 2004-02-23 2005-09-01 Telefonaktiebolaget L.M. Ericsson (Publ) Voice-over-internet telecommunication networks
US8085741B2 (en) * 2004-03-10 2011-12-27 Core Wireless Licensing S.A.R.L. System and method for pushing content to a terminal utilizing a network-initiated data service technique
US7680065B2 (en) * 2005-01-18 2010-03-16 Cisco Technology, Inc. System and method for routing information packets
US7924771B2 (en) * 2004-04-13 2011-04-12 Qualcomm, Incorporated Multimedia communication using co-located care of address for bearer traffic
US7933260B2 (en) 2004-06-29 2011-04-26 Damaka, Inc. System and method for routing and communicating in a heterogeneous network environment
US8050272B2 (en) 2004-06-29 2011-11-01 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US8009586B2 (en) 2004-06-29 2011-08-30 Damaka, Inc. System and method for data transfer in a peer-to peer hybrid communication network
US8437307B2 (en) 2007-09-03 2013-05-07 Damaka, Inc. Device and method for maintaining a communication session during a network transition
US7570636B2 (en) * 2004-06-29 2009-08-04 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
DE602004013301T2 (de) * 2004-07-15 2009-06-25 Telefonaktiebolaget Lm Ericsson (Publ) 'Denial-of-Service' Schutz
US7543064B2 (en) * 2004-09-30 2009-06-02 Logitech Europe S.A. Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
JP4473695B2 (ja) * 2004-10-01 2010-06-02 パナソニック株式会社 通信端末装置、電化機器及び通信方法
WO2006049251A1 (ja) * 2004-11-08 2006-05-11 Matsushita Electric Industrial Co., Ltd. 通信端末及び通信方法
US7392323B2 (en) * 2004-11-16 2008-06-24 Seiko Epson Corporation Method and apparatus for tunneling data using a single simulated stateful TCP connection
US20060187912A1 (en) * 2005-02-01 2006-08-24 Kayote Networks Inc. Method and apparatus for server-side NAT detection
FI118316B (fi) * 2005-02-14 2007-09-28 Teliasonera Ab Tiedonsiirtokanava ainakin kahden yksityisen verkon välillä
US20060200517A1 (en) * 2005-03-03 2006-09-07 Steve Nelson Method and apparatus for real time multi-party conference document copier
US8095982B1 (en) 2005-03-15 2012-01-10 Mu Dynamics, Inc. Analyzing the security of communication protocols and channels for a pass-through device
US8095983B2 (en) * 2005-03-15 2012-01-10 Mu Dynamics, Inc. Platform for analyzing the security of communication protocols and channels
US7738468B2 (en) * 2005-03-22 2010-06-15 Logitech Europe S.A. Method and apparatus for packet traversal of a network address translation device
US20070043876A1 (en) * 2005-08-19 2007-02-22 Nokia Corporation Stimulation traffic for binding refreshment
US8413248B2 (en) * 2006-03-22 2013-04-02 Michael B. Rash Method for secure single-packet remote authorization
US20070285501A1 (en) * 2006-06-09 2007-12-13 Wai Yim Videoconference System Clustering
US7788394B2 (en) * 2006-08-31 2010-08-31 General Instrument Corporation Streaming content over an internet protocol network
US9172611B2 (en) 2006-09-01 2015-10-27 Spirent Communications, Inc. System and method for discovering assets and functional relationships in a network
US7958230B2 (en) 2008-09-19 2011-06-07 Mu Dynamics, Inc. Test driven deployment and monitoring of heterogeneous network systems
US8316447B2 (en) * 2006-09-01 2012-11-20 Mu Dynamics, Inc. Reconfigurable message-delivery preconditions for delivering attacks to analyze the security of networked systems
CN101491021A (zh) * 2006-09-22 2009-07-22 松下电器产业株式会社 通信装置、通信方法及通信系统
WO2008058906A2 (en) * 2006-11-13 2008-05-22 Nokia Corporation Address translation
US7774637B1 (en) 2007-09-05 2010-08-10 Mu Dynamics, Inc. Meta-instrumentation for security analysis
US8871096B2 (en) * 2007-09-10 2014-10-28 Res Usa, Llc Magnetic separation combined with dynamic settling for fischer-tropsch processes
WO2009043016A2 (en) 2007-09-28 2009-04-02 Damaka, Inc. System and method for transitioning a communication session between networks that are not commonly controlled
WO2009063555A1 (ja) * 2007-11-13 2009-05-22 Fujitsu Limited 制御代理装置、制御代理方法および制御代理プログラム
US8380859B2 (en) 2007-11-28 2013-02-19 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
FR2925247B1 (fr) * 2007-12-18 2011-11-04 Alcatel Lucent Controle de l'interface d'emission d'un message de reponse sip
US9455924B2 (en) * 2008-01-02 2016-09-27 Media Network Services As Device and system for selective forwarding
US8924486B2 (en) * 2009-02-12 2014-12-30 Sierra Wireless, Inc. Method and system for aggregating communications
US8228848B2 (en) * 2008-11-17 2012-07-24 Sierra Wireless, Inc. Method and apparatus for facilitating push communication across a network boundary
WO2010054471A1 (en) 2008-11-17 2010-05-20 Sierra Wireless, Inc. Method and apparatus for network port and network address translation
JP5218357B2 (ja) * 2009-09-25 2013-06-26 ブラザー工業株式会社 通信方法、通信システム、端末装置
US8874785B2 (en) 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8892646B2 (en) 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US8725895B2 (en) 2010-02-15 2014-05-13 Damaka, Inc. NAT traversal by concurrently probing multiple candidates
US9043488B2 (en) 2010-03-29 2015-05-26 Damaka, Inc. System and method for session sweeping between devices
US9191416B2 (en) 2010-04-16 2015-11-17 Damaka, Inc. System and method for providing enterprise voice call continuity
US8352563B2 (en) 2010-04-29 2013-01-08 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
US8547974B1 (en) 2010-05-05 2013-10-01 Mu Dynamics Generating communication protocol test cases based on network traffic
US8463860B1 (en) 2010-05-05 2013-06-11 Spirent Communications, Inc. Scenario based scale testing
US8611540B2 (en) 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US8468010B2 (en) 2010-09-24 2013-06-18 Damaka, Inc. System and method for language translation in a hybrid peer-to-peer environment
US8743781B2 (en) 2010-10-11 2014-06-03 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US9106514B1 (en) 2010-12-30 2015-08-11 Spirent Communications, Inc. Hybrid network software provision
WO2012106820A1 (en) 2011-02-08 2012-08-16 Sierra Wireless, Inc. Method and system for forwarding data between network devices
US8407314B2 (en) 2011-04-04 2013-03-26 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US8464219B1 (en) 2011-04-27 2013-06-11 Spirent Communications, Inc. Scalable control system for test execution and monitoring utilizing multiple processors
US8694587B2 (en) 2011-05-17 2014-04-08 Damaka, Inc. System and method for transferring a call bridge between communication devices
US8972543B1 (en) 2012-04-11 2015-03-03 Spirent Communications, Inc. Managing clients utilizing reverse transactions
KR101399292B1 (ko) * 2012-12-07 2014-05-27 전남대학교산학협력단 Sns를 이용한 사물통신 시스템, 방법 및 그 사물통신 서버
US9027032B2 (en) 2013-07-16 2015-05-05 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US9781075B1 (en) 2013-07-23 2017-10-03 Avi Networks Increased port address space
US9357016B2 (en) 2013-10-18 2016-05-31 Damaka, Inc. System and method for virtual parallel resource management
CN104092687B (zh) * 2014-07-14 2018-02-09 新华三技术有限公司 一种bgp会话建立方法和装置
WO2016022574A1 (en) 2014-08-05 2016-02-11 Damaka, Inc. System and method for providing unified communications and collaboration (ucc) connectivity between incompatible systems
US20160132161A1 (en) * 2014-11-10 2016-05-12 StoryCloud, Inc. Location or crowd source based gaming method and apparatus
US10237236B2 (en) 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
US10412122B1 (en) * 2016-01-22 2019-09-10 Cisco Technology, Inc. Dynamic per-session NAT-behavior selection
US10091025B2 (en) 2016-03-31 2018-10-02 Damaka, Inc. System and method for enabling use of a single user identifier across incompatible networks for UCC functionality
CN107348937A (zh) * 2017-07-04 2017-11-17 厦门大学 一种基于混合云的无线医疗喉镜系统
CN110392127B (zh) * 2019-08-15 2022-01-11 中盈优创资讯科技有限公司 网络地址空间识别方法及装置
TWI825923B (zh) * 2022-08-16 2023-12-11 皓德盛科技有限公司 用於金融交易的現場可程式化邏輯閘陣列
CN115865944B (zh) * 2023-02-23 2023-05-30 苏州浪潮智能科技有限公司 设备间点对点通信方法、系统、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000033537A1 (en) * 1998-12-03 2000-06-08 Telefonaktiebolaget Lm Ericsson (Publ) System and method for providing multiple endpoints in a device disposed in a packet-switched network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360265B1 (en) * 1998-07-08 2002-03-19 Lucent Technologies Inc. Arrangement of delivering internet protocol datagrams for multimedia services to the same server
US20020120760A1 (en) * 2000-05-26 2002-08-29 Gur Kimchi Communications protocol
AU2001271263A1 (en) 2000-06-30 2002-01-14 Net2Phone System, method, and computer program product for resolving addressing in a network including a network address translator
WO2002007330A2 (en) * 2000-07-18 2002-01-24 Motorola, Inc. Wireless bidirectional interface
US20020042832A1 (en) * 2000-08-14 2002-04-11 Fallentine Mark D. System and method for interoperability of H.323 video conferences with network address translation
US6661799B1 (en) * 2000-09-13 2003-12-09 Alcatel Usa Sourcing, L.P. Method and apparatus for facilitating peer-to-peer application communication
AU2002258113A1 (en) * 2001-02-20 2002-09-24 Innomedia Pte Ltd. Device and system for sending datagrams in a real time streaming media communication system
US7050422B2 (en) 2001-02-20 2006-05-23 Innomedia Pte, Ltd. System and method for providing real time connectionless communication of media data through a firewall
US7293108B2 (en) * 2001-03-15 2007-11-06 Intel Corporation Generic external proxy
US20030009561A1 (en) * 2001-06-14 2003-01-09 Sollee Patrick N. Providing telephony services to terminals behind a firewall and /or network address translator
AU2003234506A1 (en) * 2002-05-06 2003-11-17 Qualcomm Incorporated System and method for registering ip address of wireless communication device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000033537A1 (en) * 1998-12-03 2000-06-08 Telefonaktiebolaget Lm Ericsson (Publ) System and method for providing multiple endpoints in a device disposed in a packet-switched network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Thernelius, F.: SIP, NAT, and Firewalls, Master's Thesis [online], May 2000 [recherchiert am 23.11.05] <URL:http://www.cs.columbia.edu/sip/ drafts/Ther0005_SIP.pdf> *

Also Published As

Publication number Publication date
DE10296660T5 (de) 2004-04-22
AU2002307311A1 (en) 2002-10-28
GB0326644D0 (en) 2003-12-17
WO2002084974A2 (en) 2002-10-24
HK1061763A1 (en) 2004-09-30
US20020152325A1 (en) 2002-10-17
GB2392343B (en) 2004-12-01
US7272650B2 (en) 2007-09-18
CN100527750C (zh) 2009-08-12
WO2002084974A3 (en) 2003-05-22
GB2392343A (en) 2004-02-25
CN1623310A (zh) 2005-06-01
TW567699B (en) 2003-12-21

Similar Documents

Publication Publication Date Title
DE10296660B4 (de) Über Netzwerkadressübersetzungs(NAT) -Einrichtungen hinweg betreibbare Kommunikationsprotokolle
DE60224356T2 (de) Adressenübersetzer, Verfahren und Vorrichtung zur Nachrichtenverarbeitung
DE60215117T2 (de) Mehrbenutzeranwendungen in multimedia-netzwerken
DE60127276T2 (de) Verfahren und vorrichtung zur erleichterung der peer-zu-peer anwendungskommunikation
DE602004007301T2 (de) Adressierungs-verfahren und -vorrichtung zum aufbau von hip-verbindungen zwischen gewöhnlichen und hip-fähigen netzknoten
DE60113435T2 (de) Audio-video-telefonie mit firewalls und netzwerkadressübersetzung
DE60131990T2 (de) Vorrichtung und verfahren zur selektiven verschlüsselung von über ein netzwerk zu übertragenden multimediadaten
DE102007046627B4 (de) Verfahren und Vorrichtung zum Organisieren von Internet-Kommunikationsvorgängen unter Nutzung einer dynamischen STUN-Infrastrukturkonfiguration
US7328280B2 (en) Peer-to-peer (P2P) connection despite network address translators (NATs) at both ends
DE60201827T2 (de) Legales Abfangen für VOIP Anrufe in einem IP-Fernmeldenetz
DE602004010920T2 (de) Verfahren zur Implementierung eines Multimediaprotokolls mit Durchlauf durch eine Netzwerkadressentransformations-Einrichtung
DE60210927T2 (de) Verfahren und Vorrichtung zur Zulassung der Datenübertragung über Firewalls
DE102005062771A1 (de) Multimedia-Konferenzsystem und -verfahren
US20080126528A1 (en) PEER-TO-PEER (P2P) CONNECTION DESPITE NETWORK ADDRESS TRANSLATORS (NATs) AT BOTH ENDS
EP2193649B1 (de) Verfahren und Vorrichtung zur Verbindung paketorientierter Kommunikationsendgeräte
DE10022431A1 (de) Integriertes IP-Netzwerk
DE60316649T2 (de) Konferenzanwendung die keinen bestimmten Verbindungsport verwendet
EP2245832A1 (de) Verfahren zum authentisieren einer schlüsselinformation zwischen endpunkten einer kommunikationsbeziehung
DE102015004668A1 (de) Aufgeteilte netzwerkadressenübersetzung
EP1643712A1 (de) Vorrichtungen und Verfahren zum Führen von bidirektionellen Verbindungen über eine zwischengeschaltete Firewall mit Adresstransformationsgerät
DE60217752T2 (de) Verfahren und Vorrichtung zur Netzwerkverbindung
DE102018208840A1 (de) Ip-toleranz und signalzusammenarbeit
CN115001846A (zh) 一种跨网数据传输的方法、隔离设备、装置及介质
DE102005043239B4 (de) Verfahren zum Aufbau und Verwalten einer Verbindung
EP1421766B1 (de) Vorabaushandlung von nat-adressen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10296660

Country of ref document: DE

Date of ref document: 20040422

Kind code of ref document: P

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee