DE102020100211B4 - End-To-End Multipath TCP durch Netzwerk Gateways - Google Patents

End-To-End Multipath TCP durch Netzwerk Gateways Download PDF

Info

Publication number
DE102020100211B4
DE102020100211B4 DE102020100211.4A DE102020100211A DE102020100211B4 DE 102020100211 B4 DE102020100211 B4 DE 102020100211B4 DE 102020100211 A DE102020100211 A DE 102020100211A DE 102020100211 B4 DE102020100211 B4 DE 102020100211B4
Authority
DE
Germany
Prior art keywords
address
mptcp
network
subflow
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102020100211.4A
Other languages
English (en)
Other versions
DE102020100211A1 (de
Inventor
Jean Tourrilhes
Puneet Sharma
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102020100211A1 publication Critical patent/DE102020100211A1/de
Application granted granted Critical
Publication of DE102020100211B4 publication Critical patent/DE102020100211B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/14Multichannel or multilink protocols
    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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/2521Translation architectures other than single NAT servers
    • 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/2557Translation policies or rules
    • 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
    • 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/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Ein oder mehrere Netzwerkgateways, wobei jedes der Netzwerkgateways mit einem ersten Netzwerk und einem zweiten Netzwerk kommuniziert; wobei das eine oder die mehreren Netzwerkgateways umfassen:eine Erfassungs-Subflow-Schaltung, die konfiguriert ist, um einen MPTCP-Subflow mit einer ersten IP-Adresse als Quelladresse und einer zweiten IP-Adresse als Zieladresse zu erfassen, wobei keines der Netzwerkgateways eine Quelle oder ein Ziel des MPTCP-Subflows ist, wobei das Erfassen des MPTCP-Subflows anhand eines SYN-ACK-Paketes erfolgt; undeine Spoof-ADD_ADDR-Schaltung, die konfiguriert ist zum:Zuordnen einer dritten IP-Adresse zu dem MPTCP-Subflow undBekanntgeben der dritten IP-Adresse an mindestens einen Endpunkt des MPTCP-Subflows; wobei das Bekanntgeben umfasst:Duplizieren des SYN-ACK-Paketes undErsetzen eines MPTCP-Optionsheaders durch einen MPTCP-ADD-ADDR-Optionsheader, der die dritte IP-Adresse enthält, wobei das eine oder die mehreren Netzwerkgateways das SYN-ACK-Paket mit dem MPTCP-ADD-ADDR-Optionsheader an die zweite IP-Adresse senden.

Description

  • Die vorliegende Offenbarung bezieht sich allgemein auf Netzwerkkommunikation und insbesondere auf Mehrwegekommunikation über solche Netzwerke.
  • Die US 2013/0194963 A1 bezieht sich allgemein auf Kommunikationsnetzwerke und auf Anker für eine End-Host-basierte Mobilität, Multi-Homing und Multipath-Protokolle.
  • Die WO 2017/157457 A1 bezieht sich allgemein auf ein Verfahren und System, das eine Multipath-Verbindung zwischen zwei Verbindungsendpunkten in einem Netzwerk unterstützt.
  • Figurenliste
  • Die vorliegende Offenbarung wird gemäß einer oder mehreren verschiedenen Ausführungsformen detailliert unter Bezugnahme auf die folgenden Figuren beschrieben. Die Figuren dienen nur zur Veranschaulichung und zeigen lediglich typische oder beispielhafte Ausführungsformen.
    • 1 zeigt ein Beispiel einer Netzwerkkonfiguration, die für eine Organisation implementiert werden kann, wie beispielsweise ein Unternehmen, eine Bildungseinrichtung, eine Regierungsbehörde, eine Gesundheitseinrichtung oder eine andere Organisation.
    • 2 zeigt ein System, in dem ein einzelnes Netzwerkgateway eine End-to-End-Multipath-Transportsteuerungsprotokoll (MPTCP) -Kommunikation bereitstellt.
    • 3 zeigt ein System, in dem mehrere Netzwerkgateways zusammenarbeiten, um eine End-to-End-Multipath-Transportsteuerungsprotokoll (MPTCP) -Kommunikation bereitzustellen.
    • 4 zeigt ein Blockdiagramm einer beispielhaften Rechenkomponente oder - vorrichtung zum Implementieren von Multipath-TCP über ein Netzwerkgateway gemäß einer Ausführungsform.
    • 5 zeigt ein Blockdiagramm eines beispielhaften Computersystems, in dem verschiedene der hier beschriebenen Ausführungsformen implementiert werden können.
  • Die Figuren erheben keinen Anspruch auf Vollständigkeit und beschränken die vorliegende Offenbarung nicht auf die genaue offenbarte Form.
  • Detaillierte Beschreibung
  • Ausführungsformen der offenbarten Technologie stellen eine End-to-End-Multipath-Transportsteuerungsprotokoll (MPTCP) -Kommunikation über ein Netzwerkgateway bereit. Die Erfindung wird durch die unabhängigen Ansprüche definiert; bevorzugte Ausführungsformen der Erfindung sind Gegenstand der abhängigen Ansprüche. Gemäß den offenbarten Ausführungsformen erfasst das Gateway einen anfänglichen MPTCP-Subflow, der von einem Client mit einem Server über das Netzwerkgateway eingerichtet wurde. Als Reaktion auf die Erkennung des anfänglichen MPTCP-Subflows gibt das Netzwerkgateway dem Client eine oder mehrere IP-Adressen bekannt. Der Client betrachtet jede bekanntgegebene IP-Adresse als IP-Adresse des Servers und initiiert einen neuen MPTCP-Subflow für jede bekanntgegebene Adresse, wobei die bekanntgegebene Adresse als Zieladresse verwendet wird. Das Netzwerkgateway ordnet jeder bekanntgegebenen Adresse eine Gateway-IP-Adresse zu. Beim Empfang eines MPTCP-Pakets mit einer der bekanntgegebenen Adressen als Zieladresse ersetzt das Netzwerkgateway die Ziel-IP-Adresse durch die IP-Adresse des Servers, ersetzt die Quelladresse durch die der bekanntgegebenen Adresse zugeordnete Gateway-IP-Adresse und sendet das Paket an den Server.
  • Ein ähnlicher Prozess wird für Pakete verwendet, die vom Server empfangen werden und eine der Gateway-IP-Adressen als Ziel-IP-Adresse haben. Bei solchen Paketen ersetzt das Gateway die Ziel-IP-Adresse durch die IP-Adresse des Clients, ersetzt die Quelladresse durch die bekanntgegebene Adresse, die der Gateway-IP-Adresse zugeordnet ist, und sendet das Paket an den Client.
  • Verschiedene Ausführungsformen können in einem softwaredefinierten Weitverkehrsnetz (SD WAN) implementiert werden. In solchen Ausführungsformen kann sich der Client in einem lokalen Netzwerk (LAN) befinden, und der Server kann sich in einem WAN (Wide Area Network) befinden. In diesen Ausführungsformen kann jeder Subflow über einen Tunnel über das WAN geführt werden.
  • Zusätzlich zur Bekanntgabe und Verwendung von Gateway-IP-Adressen können einige Ausführungsformen zusätzliche Ports bekanntgeben und verwenden, Zuordnungen erstellen und die IP-Adressen und Ports auf ähnliche Weise wie oben beschrieben übersetzen.
  • Ausführungsformen der offenbarten Technologie bieten zahlreiche Vorteile. Verschiedene Ausführungsformen ermöglichen es einem MPTCP-Client, die an einem SD-WAN-Gateway verfügbare Pfadvielfalt vollständig zu nutzen, ohne Änderungen an den Clients oder am Server vorzunehmen und ohne den IP-Adressierungsplan des Netzwerks zu ändern. Verschiedene Ausführungsformen bieten eine bessere Leistung als die SD-WAN-Tunnelübergabe. Eine einzelne TCP-Verbindung kann alle verfügbaren Links verwenden. MPTCP ermöglicht eine viel schnellere Wiederherstellung nach Verbindungsfehlern. MPTCP-Verbindungen können direkt zu jedem Internetziel geführt werden, ohne dass Tunnel und Dreiecks-Routing durchlaufen werden müssen.
  • Die offenbarte Technologie bietet in den meisten Fällen eine bessere Leistung als MPTCP-Proxys. Die meisten MPTCP-Proxys teilen die TCP-Verbindung auf, wodurch die angenommene End-to-End-Semantik von TCP unterbrochen wird. Die Bestätigung von Paketen erfolgt nicht mehr durchgehend, sodass der Absender nicht wissen kann, ob die von ihm gesendeten Daten tatsächlich beim Empfänger festgeschrieben werden, und Datenverlust am Proxy auftreten kann. Das Aufteilen der Verbindung verhindert normalerweise auch die Verwendung von Sicherheitsprotokollen, die die IP-Adressen verwenden, wie z. B. IPsec. Durch die Verwendung des Proxys wird verhindert, dass die Verbindung vom Proxy weggeleitet wird. Darüber hinaus ist die Skalierbarkeit eines solchen Proxys normalerweise problematisch, da der Proxy jede TCP- und MPTCP-Verbindung verfolgen muss, wodurch zusätzliche Ressourcen auf dem Gateway verbraucht werden. Darüber hinaus gibt es bei den meisten Implementierungen Leistungseinbußen für Hochgeschwindigkeits-WAN-Verbindungen.
  • Bevor Ausführungsformen der offenbarten Systeme und Verfahren im Detail beschrieben werden, ist es nützlich, eine beispielhafte Netzwerkinstallation zu beschreiben, mit der diese Systeme und Verfahren in verschiedenen Anwendungen implementiert werden können. 1 zeigt ein Beispiel einer Netzwerkkonfiguration 100, die für eine Organisation implementiert werden kann, wie beispielsweise ein Unternehmen, eine Bildungseinrichtung, eine Regierungsstelle, eine Gesundheitseinrichtung oder eine andere Organisation. Dieses Diagramm zeigt ein Beispiel einer Konfiguration, die mit einer Organisation implementiert wurde, die mehrere Benutzer (oder mindestens mehrere Client-Geräte 110) und möglicherweise mehrere physische oder geografische Standorte 102, 132, 142 hat. Die Netzwerkkonfiguration 100 kann einen primären Standort 102 in Kommunikation mit einem Netzwerk 120 enthalten. Die Netzwerkkonfiguration 100 kann auch einen oder mehrere entfernte Standorte 132, 142 enthalten, die mit dem Netzwerk 120 in Kommunikation stehen.
  • Der primäre Standort 102 kann ein primäres Netzwerk enthalten, das beispielsweise ein Büronetzwerk, ein Heimnetzwerk oder eine andere Netzwerkinstallation sein kann. Das Netzwerk des primären Standorts 102 kann ein privates Netzwerk sein, beispielsweise ein Netzwerk, das Sicherheits- und Zugriffskontrollen enthalten kann, um den Zugriff auf autorisierte Benutzer des privaten Netzwerks zu beschränken. Zu den autorisierten Benutzern können beispielsweise Mitarbeiter eines Unternehmens am Hauptstandort 102, Bewohner eines Hauses, Kunden eines Unternehmens usw. gehören.
  • In dem dargestellten Beispiel enthält der primäre Standort 102 ein Netzwerkgateway 104 in Kommunikation mit dem Netzwerk 120. Das Netzwerkgateway 104 kann eine Kommunikation mit dem Netzwerk 120 für den primären Standort 102 bereitstellen, obwohl es möglicherweise nicht der einzige Kommunikationspunkt mit dem Netzwerk 120 für den primären Standort 102 ist. Ein einzelnes Netzwerkgateway 104 ist dargestellt, obwohl der primäre Standort mehrere Netzwerkgateways und / oder mehrere Kommunikationspunkte mit dem Netzwerk 120 enthalten kann. In einigen Ausführungsformen kommuniziert das Netzwerkgateway 104 mit dem Netzwerk 120 über einen Router (nicht dargestellt). In anderen Ausführungsformen stellt das Netzwerkgateway 104 den Geräten am primären Standort 102 Router-Funktionalität zur Verfügung.
  • Ein Netzwerkgateway 104 kann eine Verbindung zu einem einzelnen Netzwerk 120 oder zu mehreren Netzwerken herstellen. Das Netzwerkgateway 104 kann selbst ein Zugangspunkt, ein Switch und / oder ein Router sein oder die Funktionalität eines solchen bereitstellen.
  • Das Netzwerkgateway 104 kann mit einem oder mehreren Switches 108 und / oder drahtlosen Zugangspunkten (APs) 106a-c in Verbindung stehen. Die Switches 108 und die drahtlosen APs 106a-c stellen Netzwerk-Konnektivität zu verschiedenen Client-Geräten 110a-j bereit. Unter Verwendung einer Verbindung zu einem Switch 108 oder AP 106a-c kann ein Client-Gerät 110a-j auf Netzwerkressourcen zugreifen, einschließlich anderer Geräte im Netzwerk (des primären Standorts 102) und im Netzwerk 120. Wenn das Netzwerkgateway 104 die Funktionalität eines Zugangspunkts oder eines Switches bereitstellt, können die verschiedenen Client-Geräte 110a-j eine direkte Verbindung zu ihm herstellen, ohne den Switch 108 oder den AP 106a-c zu durchlaufen.
  • Beispiele für Client-Geräte können sein: Desktop-Computer, Laptops, Server, Webserver, Authentifizierungsserver, AAA-Server (Authentication-Authorization-Accounting), DNS-Server (Domain Name System), DHCP-Server (Dynamic Host Configuration Protocol), Internetprotokoll- (IP-) Server, VPN-Server (Virtual Private Network), Netzwerkrichtlinienserver, Mainframes, Tablet-Computer, E-Reader, Netbook-Computer, Fernseher und ähnliche Monitore (z. B. Smart-TVs), Inhaltsempfänger, Set-Top-Boxen, Personal Digital Assistants (PDAs), Mobiltelefone, Smartphones, intelligente Terminals, dumme Terminals, virtuelle Terminals, Videospielkonsolen, virtuelle Assistenten, IOT-Geräte (Internet of Things) und dergleichen.
  • Innerhalb des primären Standorts 102 ist ein Switch 108 als ein Beispiel für einen Zugriffspunkt auf das am primären Standort 102 eingerichtete Netzwerk für verdrahtete Client-Geräte 110i-j enthalten. Die Client-Geräte 110i-j können möglicherweise eine Verbindung mit dem Switch 108 herstellen und über den Switch 108 auf andere Geräte innerhalb der Netzwerkkonfiguration 100 zugreifen. Die Client-Geräte 110i-j können möglicherweise auch über den Switch 108 auf das Netzwerk 120 zugreifen. Die Client-Geräte 110i-j können über eine verdrahtete 112-Verbindung mit dem Switch 108 kommunizieren. In dem dargestellten Beispiel kommuniziert der Switch 108 mit der Steuerung 104 über eine verdrahtete 112-Verbindung, obwohl diese Verbindung auch drahtlos sein kann.
  • Die drahtlosen APs 106a-c sind als ein weiteres Beispiel für einen Zugriffspunkt auf das Netzwerk enthalten, das am primären Standort 102 für Client-Geräte 110a-h eingerichtet wurde. Jeder der APs 106a-c kann eine Kombination aus Hardware, Software und / oder Firmware sein, die konfiguriert ist, um eine Drahtlos-Netzwerk-Konnektivität zu drahtlosen Client-Geräten 110a-h bereitzustellen. In dem dargestellten Beispiel können die APs 106a-c von der Steuerung 104 verwaltet und konfiguriert werden. Die APs 106a-c kommunizieren mit der Steuerung 104 und dem Netzwerk über Verbindungen 112, die entweder drahtgebundene oder drahtlose Schnittstellen sein können.
  • Die Netzwerkkonfiguration 100 kann einen oder mehrere entfernte Standorte 132 enthalten. Ein entfernter Standort 132 kann sich an einem anderen physischen oder geografischen Ort als der primäre Standort 102 befinden. In einigen Fällen kann sich der entfernte Standort 132 an demselben geografischen Ort oder möglicherweise in demselben Gebäude wie der primäre Standort 102 befinden, es fehlt jedoch eine direkte Verbindung zu dem Netzwerk, das sich innerhalb des primären Standorts 102 befindet. Stattdessen kann der entfernte Standort 132 eine Verbindung über ein anderes Netzwerk verwenden, z. B. das Netzwerk 120. Ein entfernter Standort 132 wie der in 1 dargestellte kann beispielsweise ein Satellitenbüro, eine andere Etage oder Suite in einem Gebäude usw. sein. Der entfernte Standort 132 kann eine Gateway-Vorrichtung 134 zum Kommunizieren mit dem Netzwerk 120 enthalten. Eine Gateway-Vorrichtung 134 kann ein Router, ein Digital-Analog-Modem, ein Kabelmodem, ein DSL-Modem (Digital Subscriber Line) oder ein anderes Netzwerkgerät sein, das zur Kommunikation mit dem Netzwerk 120 konfiguriert ist. Der entfernte Standort 132 kann auch einen Switch 138 und / oder AP 136 enthalten, der über drahtgebundene oder drahtlose Verbindungen mit der Gateway-Vorrichtung 134 in Kommunikation steht. Der Switch 138 und der AP 136 stellen Konnektivität zum Netzwerk für verschiedene Client-Geräte 140a-d bereit.
  • In verschiedenen Ausführungsformen kann der entfernte Standort 132 in direkter Kommunikation mit dem primären Standort 102 stehen, so dass die Client-Geräte 140a-d am entfernten Standort 132 auf die Netzwerkressourcen am primären Standort 102 zugreifen, als ob sich diese Client-Geräte 140a-d am primären Standort 102 befänden. In solchen Ausführungsformen wird der entfernte Standort 132 von der Steuerung 104 am primären Standort 102 verwaltet, und die Steuerung 104 stellt die erforderliche Konnektivität, Sicherheit und Zugänglichkeit bereit, die die Kommunikation des entfernten Standorts 132 mit dem primären Standort 102 ermöglichen. Sobald die Verbindung mit dem primären Standort 102 hergestellt ist, kann der entfernte Standort 132 als Teil eines privaten Netzwerks fungieren, das vom primären Standort 102 bereitgestellt wird.
  • In verschiedenen Ausführungsformen kann die Netzwerkkonfiguration 100 einen oder mehrere kleinere entfernte Standorte 142 enthalten, die nur eine Gateway-Vorrichtung 144 zur Kommunikation mit dem Netzwerk 120 und einen drahtlosen AP 146 umfassen, über den verschiedene Client-Geräte 150a-b auf das Netzwerk 120 zugreifen. Ein solcher entfernter Standort 142 kann beispielsweise das Haus eines einzelnen Mitarbeiters oder ein temporäres entferntes Büro darstellen. Der entfernte Standort 142 kann auch mit dem primären Standort 102 in Kommunikation stehen, so dass die Client-Geräte 150a-b am entfernten Standort 142 auf Netzwerkressourcen am primären Standort 102 zugreifen, als ob sich diese Client-Geräte 150a-b am primären Standort 102 befinden würden. Der entfernte Standort 142 kann von der Steuerung 104 am primären Standort 102 verwaltet werden, um diese Transparenz zu ermöglichen. Sobald die Verbindung mit dem primären Standort 102 hergestellt ist, kann der entfernte Standort 142 als Teil eines privaten Netzwerks fungieren, das vom primären Standort 102 bereitgestellt wird.
  • Das Netzwerk 120 kann ein öffentliches oder privates Netzwerk wie das Internet oder ein anderes Kommunikationsnetz sein, um die Konnektivität zwischen den verschiedenen Standorten 102, 130 bis 142 sowie den Zugriff auf die Server 160a-b zu ermöglichen. Das Netzwerk 120 kann Telekommunikationsleitungen von Drittanbietern umfassen, wie Telefonleitungen, Rundfunkkoaxialkabel, Glasfaserkabel, Satellitenkommunikation, Mobilfunkkommunikation und dergleichen. Das Netzwerk 120 kann eine beliebige Anzahl von Zwischennetzwerkgeräten wie Switches, Routern, Gateways, Servern und / oder Controllern enthalten, die nicht direkt Teil der Netzwerkkonfiguration 100 sind, aber die Kommunikation zwischen den verschiedenen Teilen der Netzwerkkonfiguration 100 erleichtern und zwischen der Netzwerkkonfiguration 100 und anderen mit dem Netzwerk verbundenen Entitäten. Das Netzwerk 120 kann verschiedene Inhaltsserver 160a-b enthalten. Die Inhaltsserver 160a-b können verschiedene Anbieter von herunterladbaren Multimedia-Inhalten und / oder Streaming-Inhalten umfassen, einschließlich Audio-, Video-, Grafik- und / oder Textinhalten oder einer beliebigen Kombination davon. Beispiele für Inhaltsserver 160a-b umfassen beispielsweise Webserver, Streaming-Radio- und Videoanbieter sowie Kabel- und Satellitenfernsehanbieter. Die Client-Geräte 110a-j, 140a-d, 150a-b können den von den Inhaltsservern 160a-b bereitgestellten Multimedia-Inhalt anfordern und darauf zugreifen.
  • Nachdem eine beispielhafte Netzwerkinstallation beschrieben wurde, werden nun Ausführungsformen der offenbarten Technologie detailliert beschrieben. 2 zeigt ein System, in dem ein einzelnes Netzwerkgateway eine End-to-End-Multipath-Transportsteuerungsprotokoll (MPTCP) -Kommunikation bereitstellt. Bezugnehmend auf 2 umfasst das System 200 einen Client 202 und einen Server 204. Ausführungsformen der offenbarten Technologie werden unter Bezugnahme auf die Kommunikation zwischen einem Client und einem Server beschrieben. Es versteht sich jedoch, dass die offenbarte Technologie auf die Kommunikation zwischen zwei beliebigen Netzwerkgeräten angewendet werden kann.
  • Der Client 202 kann eine Anwendung 206 ausführen und kann eine Internetprotokoll (IP) -Adresse IP-C haben. Die vom Client 202 ausgeführte Anwendung 206 kann beispielsweise ein Netzwerkbrowser, eine E-Mail-Anwendung oder dergleichen sein. Die vom Client 202 ausgeführten Anwendungen 206 sind jedoch nicht auf diese Beispiele beschränkt und können jede Anwendung enthalten, die Netzwerkkommunikation verwendet.
  • Der Server 204 kann eine Anwendung 208 ausführen und kann eine IP-Adresse IP-S haben. Die vom Server 204 ausgeführte Anwendung 208 kann beispielsweise ein Streaming-Videodienst oder dergleichen sein. Die vom Server 204 ausgeführten Anwendungen 208 sind jedoch nicht auf dieses Beispiel beschränkt und können jede Anwendung enthalten, die Netzwerkkommunikation verwendet.
  • Das System 200 kann ein Netzwerkgateway 214 enthalten. Das Netzwerk-Gateway 214 kann beispielsweise als SD-WAN Gateway oder dergleichen realisiert sein. In dem System 200 verbindet das Gateway 214 ein lokales Netzwerk (LAN) 210 mit einem Weitverkehrsnetz (WAN) 212. In diesem Beispiel stellt das Gateway 214 über drei verschiedene WAN-Verbindungen 225, 226 und 227 eine Verbindung zum WAN (Wide Area Network) 212 her. In anderen Ausführungsformen kann das Gateway 214 jedoch andere Netzwerke verbinden. Der Client 202 ist über das LAN 210 mit dem Gateway 214 verbunden. Der Server 204 ist durch das WAN 212 mit dem Gateway 214 verbunden. Zu beiden Verbindungen kann das Internet 216 gehören.
  • Das Gateway 214 kann eine Erfassungs-Subflow-Schaltung 218 enthalten. Die Erfassungs-Subflow-Schaltung 218 erfasst einen anfänglichen MPTCP-Subflow durch Netzwerkgeräte im LAN 210. Beispielsweise kann die Erfassungs-Subflow-Schaltung 218 einen anfänglichen Subflow 230a erfassen, der vom Client 202 zwischen dem Client 202 und dem Server 204 über eine WAN-Verbindung 225 eingerichtet wurde.
  • Das Gateway 214 kann Gateway-IP-Adressen bereitstellen. In dem Beispiel von 2 stellt das Gateway 214 vier Gateway-IP-Adressen bereit: IP-K, IP-L, IP-Y und IP-Z. Das Gateway 214 kann jedoch viel mehr Gateway-IP-Adressen bereitstellen.
  • Das Gateway 214 kann eine Spoof-ADD_ADDR-Schaltung 220 enthalten. Die Spoof-ADD_ADDR-Schaltung 220 kann dem Client 202 einige dieser Gateway-IP-Adressen als Gateway-IP-Adressen des Servers 204 bekanntgeben, beispielsweise wie nachstehend ausführlich beschrieben. In dem Beispiel von 2 kann die Spoof-ADD_ADDR-Schaltung 220 die Gateway-IP-Adressen IP-K und IP-L als Gateway-IP-Adressen des Servers 204 bekanntgeben.
  • Das Gateway 214 kann eine Subflow-NAT-Schaltung (Subflow Network Address Translation) 222 enthalten. Die Subflow-NAT-Schaltung 222 kann eine Netzwerkadressübersetzung für die vom Gateway 214 bereitgestellten Gateway-IP-Adressen durchführen. Insbesondere übersetzt die Subflow-NAT-Schaltung 222 zwischen einer Gateway-IP-Adresse, die dem Client 202 als Gateway-IP-Adresse des Servers 204 bekanntgegeben wird, und einer Gateway-IP-Adresse, die mit dem Server 204 als Gateway-IP-Adresse des Clients 202 verwendet wird. Auf diese Weise ermöglicht das Gateway 214 dem Client 202, zusätzliche MPTCP-Subflows mit dem Server 204 einzurichten. In dem Beispiel von 2 ermöglicht die Subflow-NAT-Schaltung 222 durch Übersetzen zwischen den Gateway-IP-Adressen IP-K und IP-Y dem Client 202, einen zusätzlichen Subflow 230b über eine WAN-Verbindung 226 einzurichten. Und durch Übersetzen zwischen den Gateway-IP-Adressen IP-L und IP-Z ermöglicht die Subflow-NAT-Schaltung 222 dem Client 202, einen zusätzlichen Subflow 230c über eine WAN-Verbindung 227 einzurichten.
  • 3 zeigt ein System, in dem mehrere Netzwerkgateways zusammenarbeiten, um eine End-to-End-Multipath-Transportsteuerungsprotokoll (MPTCP) -Kommunikation bereitzustellen. Bezugnehmend auf 3 ist das Netzwerkgateway 214 von 2 durch drei Netzwerkgateways 214a, b, c ersetzt. In der Ausführungsform von 3 unterstützt jedes Netzwerkgateway 214 einen Subflow 230. Insbesondere enthält ein Netzwerkgateway 214a die Erfassungs-Subflow-Schaltung 218 und die Spoof-ADD_ADDR-Schaltung 220, während jedes der anderen Netzwerkgateways 214b, c eine jeweilige Subflow-NAT-Schaltung 222a, b enthält. Das Netzwerkgateway 214 erfasst einen anfänglichen Subflow 230a, während die Netzwerkgateways 214b, c die Einrichtung zusätzlicher Subflows 230b, c ermöglichen. Es versteht sich jedoch, dass die Erfassungs-Subflow-Schaltung 218, die Spoof-ADD_ADDR-Schaltung 220 und die Subflow-NAT-Schaltungen 222a, b auf irgendeine Weise auf eine beliebige Anzahl von mehreren Netzwerkgateways 214 verteilt sein können, um eine beliebige Anzahl zusätzlicher Subflows 230 zu unterstützen, vorausgesetzt, die Schaltungen 218, 220, 222 können miteinander kommunizieren.
  • Darüber hinaus müssen die Netzwerkgateways 214 nicht auf der Client-Seite des LAN 210 implementiert sein. In dem Beispiel von 3 ist das Netzwerkgateway 214c in der Nähe des Servers 204 implementiert, während die Netzwerkgateways 214a, b in der Nähe des Clients 202 implementiert sind. Ausführungsformen der offenbarten Technologie unterstützen jede Platzierung von Netzwerkgateways 214.
  • 4 zeigt ein Blockdiagramm einer beispielhaften Rechenkomponente oder Vorrichtung 400 zum Implementieren von Multipath-TCP über ein oder mehrere Netzwerkgateways gemäß einer Ausführungsform. Die Rechenkomponente 400 kann beispielsweise ein Servercomputer, eine Steuerung oder eine andere ähnliche Rechenkomponente sein, die Daten verarbeiten kann. In der beispielhaften Implementierung von 4A, B umfasst die Computerkomponente 400 einen Hardwareprozessor 402 und ein maschinenlesbares Speichermedium 404.
  • Der Hardwareprozessor 402 können eine oder mehrere Zentraleinheiten (CPUs), halbleiterbasierte Mikroprozessoren und / oder andere Hardwarevorrichtungen sein, die zum Abrufen und Ausführen von Anweisungen geeignet sind, die in einem maschinenlesbaren Speichermedium 404 gespeichert sind. Der Hardwareprozessor 402 kann Anweisungen wie die Anweisungen 406 bis 414 abrufen, decodieren und ausführen, um Prozesse oder Operationen zu steuern, um die Einrichtung zusätzlicher MPTCP-Subflows als Reaktion auf das Erfassen eines anfänglichen MPTCP-Subflows zu ermöglichen. Alternativ oder zusätzlich zum Abrufen und Ausführen von Anweisungen kann der Hardwareprozessor 402 eine oder mehrere elektronische Schaltungen enthalten, die elektronische Komponenten zum Ausführen der Funktionalität einer oder mehrerer Anweisungen enthalten, wie beispielsweise ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) oder andere elektronische Schaltungen.
  • Ein maschinenlesbares Speichermedium, wie beispielsweise ein maschinenlesbares Speichermedium 404, kann eine beliebige elektronische, magnetische, optische oder andere physische Speichervorrichtung sein, die ausführbare Anweisungen enthält oder speichert. So kann ein maschinenlesbares Speichermedium 404 beispielsweise ein Arbeitsspeicher (RAM), ein nichtflüchtiges RAM (NVRAM), ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM - Electrically Erasable Programmable Read-Only Memory), ein Speichergerät, eine optische Speicherplatte und ähnliches sein. In einigen Ausführungsformen kann das maschinenlesbare Speichermedium 404 ein nichttransitorisches Speichermedium sein, wobei der Begriff „nichttransitorisch“ keine transitorischen Ausbreitungssignale umfasst. Wie nachstehend ausführlich beschrieben, kann das maschinenlesbare Speichermedium 404 mit ausführbaren Anweisungen codiert werden, beispielsweise mit den Anweisungen 406 bis 414.
  • Der Hardwareprozessor 402 kann die Anweisung 406 ausführen, um das Erkennen eines MPTCP-Subflows mit einer ersten IP-Adresse als Quelladresse und einer zweiten IP-Adresse als Zieladresse durchzuführen, wobei keines der Gateways die Quelle oder das Ziel des MPTCP-Subflows ist. Beispielsweise kann die Anweisung 406 das Erfassen eines anfänglichen MPTCP-Subflows 230a durchführen, der durch das Netzwerkgateway 214 zwischen einem ersten Netzwerkgerät im LAN 210 und einem zweiten Netzwerkgerät im WAN 212 läuft. Zum Beispiel erkennt unter Bezugnahme auf 2 die Erfassungs-Subflow-Schaltung 218 des Netzwerkgateways 214 den anfänglichen Subflow 230a zwischen dem Client 202 und dem Server 204. In dem Beispiel von 3 erkennt die Erfassungs-Subflow-Schaltung 218 des Gateways 214a einen anfänglichen Subflow 230a zwischen dem Client 202 und dem Server 204. Insbesondere prüft die Erfassungs-Subflow-Schaltung 218 jedes SYN-ACK-Paket, das einen MPTCP-Optionsheader enthält. Solche Pakete bezeichnen den erfolgreichen Aufbau eines MPTCP-Subflows. Das Vorhandensein dieser TCP-Option zeigt an, dass sowohl der Client als auch der Server dieses Subflows MPTCP unterstützen.
  • In Reaktion auf das Erfassen des anfänglichen MPTCP-Subflows 230a aktiviert das Netzwerkgateway 214 einen oder mehrere zusätzliche Subflows zwischen dem Client 202 und dem Server 204, wie unter Bezugnahme auf die nachstehenden Anweisungen 408-418 beschrieben.
  • Der Hardwareprozessor 402 kann die Anweisung 408 ausführen, um das Zuordnen einer dritten IP-Adresse zum MPTCP-Subflow durchzuführen. Unter Bezugnahme auf 2 kann beispielsweise die Spoof-ADD_ADDR-Schaltung 220 des Gateways 214 eine oder beide der IP-Adressen IP-K und IP-L dem MPTCP-Subflow zuordnen. In den Beispielen der 2 und 3 kann die Spoof-ADD_ADDR-Schaltung 220 die Adressen IP-K und IP-Y und die Adressen IP-L und IP-Z zuordnen.
  • Der Hardwareprozessor 402 kann die Anweisung 410 ausführen, um die dritte IP-Adresse an mindestens einen Endpunkt des MPTCP-Subflows bekanntzugeben. Zum Beispiel kann unter Bezugnahme auf 2 die Spoof-ADD_ADDR-Schaltung 220 des Gateways 214 dem Client 202 eine oder beide der IP-Adressen IP-K und IP-L bekanntgeben. In dem Beispiel von 3 gibt die Spoof-ADD_ADDR-Schaltung 220 des Gateways 214a dem Client 202 Adressen IP-K und IP-L bekannt. Jede Technik kann zur Bekanntgabe von IP-Adressen und zur Bekanntgabe von Transportports verwendet werden. Beispielsweise kann eine IP-Adresse bekanntgegeben werden, indem in ein MPTCP-Paket ein MPTCP-ADD-ADDR-Optionsheader aufgenommen wird, der die IP-Adresse enthält. In einem anderen Beispiel wird das SYN-ACK-Paket, das die Erkennung des MPTCP-Subflows ausgelöst hat, geklont (dupliziert), und sein MPTCP-Optionsheader wird durch einen MPTCP-ADD-ADDR-Optionsheader ersetzt, der die IP-Adresse enthält. Als andere Beispiele können IP-Adressen und Transportports durch Posten auf einer Webseite, Aufnahme in den Optionsheader einer DHCP-Nachricht (Dynamic Host Configuration Protocol), Aufnahme in eine ICMP-Nachricht (Internet Control Message Protocol) und dergleichen bekanntgegeben werden.
  • Ein oder mehrere Gateways 214 können ein MPTCP-Paket mit der dritten IP-Adresse als Zieladresse empfangen. Beispielsweise kann das Gateway 214 für jeden zusätzlichen Subflow ein MPTCP-Paket vom Client 202 empfangen, das die IP-Adresse des Clients als Quelladresse und eine der bekanntgegebenen IP-Adressen als Zieladresse hat. In jedem der Beispiele der 2 und 3 können zwei solche Pakete empfangen werden. Beide Pakete haben die IP-Adresse IP-C des Clients 202. Und eines der Pakete kann die Adresse IP-K als Zieladresse haben, während das andere Paket die Adresse IP-L als Zieladresse haben kann.
  • Der Hardwareprozessor 402 kann die Anweisung 412 ausführen, um zu bewirken, dass in Reaktion auf das MPTCP-Paket mit der dritten IP-Adresse als Zieladresse die Quelladresse des MPTCP-Pakets und die Zieladresse des MPTCP-Pakets ersetzt werden. Das heißt, die Anweisung 412 kann eine Paketverarbeitungseinheit (einen Hardware- oder Softwareblock, der Pakete verarbeitet) anweisen, die Quell- und Zieladresse eines Pakets zu ändern, dessen Zieladresse mit der dritten IP-Adresse übereinstimmt. Beispielsweise wird die Zieladresse des vom Client 202 in einem Subflow empfangenen Pakets verwendet, um eine Quelladresse für die Kommunikation mit dem Server 204 in diesem Subflow auszuwählen. In den Beispielen der 2 und 3 wird die Adresse IP-Y für Pakete ausgewählt, die vom Client 202 mit IP-K als Zieladresse empfangen werden, und die Adresse IP-Z wird für Pakete ausgewählt, die vom Client 202 mit IP-L als Zieladresse empfangen werden. Auf diese Weise werden die Zieladressen von vom Client 202 empfangenen Paketen verwendet, um die Zuordnungen für die Adressumsetzung durch die Subflow-NAT-Schaltung 222 auszuwählen.
  • Ein oder mehrere Gateways 214 können das Ersetzen der ersten IP-Adresse im zweiten MPTCP-Paket durch die vierte IP-Adresse und das Ersetzen der dritten IP-Adresse im zweiten MPTCP-Paket durch die zweite IP-Adresse durchführen. Das heißt, für jedes vom Client 202 in einem Subflow empfangene Paket wird die Quelladresse durch die Adresse ersetzt, die der Zieladresse des Pakets zugeordnet ist, und die Zieladresse wird durch die Adresse des Servers 204 ersetzt. In dem Beispiel der 2 und 3 ersetzt die Subflow-NAT-Schaltung 222 für den zusätzlichen Subflow 230b die Quelladresse IP-C durch die ausgewählte Adresse IP-Y und ersetzt die Zieladresse IP-K durch die Adresse IP-S des Servers. Und für den zusätzlichen Subflow 230c ersetzt die Subflow-NAT-Schaltung 222 die Quelladresse IP-C durch die ausgewählte Adresse IP-Z, und die Zieladresse IP-L wird durch die Adresse IP-S des Servers 204 ersetzt.
  • Um den Verbrauch von IP-Adressen auf dem Gateway 214 zu verringern, können einige Ausführungsformen eine Portüberlastung verwenden. In solchen Ausführungsformen kann das Gateway 214 dem Client 202 einen Satz von Tupeln übermitteln, die jeweils eine IP-Adresse und einen Zielport enthalten. Der Client 202 erstellt einen Subflow 230 für jede Ziel-IP-Adresse und jeden Zielport. Alle Subflows 230 des Clients 202 verwenden dieselbe Quell-IP-Adresse und im Allgemeinen denselben Quellport (jedoch nicht immer), so dass die von der Subflow-NAT-Schaltung 222 verwendete Zuordnung sowohl durch die Ziel-IP-Adresse als auch durch den Zielport identifiziert werden muss.
  • Wenn ein ausgehendes Paket das Netzwerkgateway 214 erreicht, sind sowohl die Ziel-IP-Adresse als auch der Zielport diejenigen, die vom Netzwerkgateway 214 an den Client 202 gesendet wurden und zum Identifizieren einer Adress- und Port-Zuordnung verwendet werden. Sowohl die Ziel-IP-Adresse als auch der Zielport werden auf ähnliche Weise wie oben beschrieben in das geändert, was der Server 204 erwartet. Sowohl die Quell-IP-Adresse als auch die Quellports werden in ein eindeutiges Paar geändert, das die umgekehrte Adress- und Portzuordnung für den Rückgabeteil des Subflows 230 identifiziert (d.h. für Pakete, die vom Server 204 an den Client 202 gesendet werden). Die umgekehrte Übersetzung wird dann für eingehende Pakete vom Server 204 durchgeführt.
  • Der anfängliche MPTCP-Subflow 230a wird unter Verwendung von direktem Routing, Tunneling oder Standard Network Address Translation (NAT) verarbeitet. In den meisten Fällen verwendet das Gateway 214 eine dieser Techniken für Nicht-MPTCP-Flows; In diesen Fällen wird der anfängliche MPTCP-Subflow genauso behandelt wie ein Nicht-MPTCP-Flow. Nicht-MPTCP-Flows können in einigen Fällen von einem MPTCP-Proxy verarbeitet werden. Der anfängliche MPTCP-Subflow wird jedoch nicht von einem MPTCP-Proxy verarbeitet.
  • Verschiedene Ausführungsformen sind mit dem anfänglichen MPTCP-Subflow kompatibel, der unter Verwendung von direktem Routing, Tunneling oder Standard-NAT verarbeitet wird. Im Fall desTunneling werden die zusätzlichen Subflows 230b, c wie oben beschrieben verarbeitet und dann in den richtigen Tunnel eingekapselt.
  • Im SD-WAN besteht der Hauptgrund für das Herstellen mehrerer Verbindungen zum Netzwerk darin, dass einige dieser Verbindungen möglicherweise nicht zuverlässig sind und daher die Ausfallsicherheit durch mehrere Verbindungen verbessert wird. Im SD-WAN überwacht das Gateway in den meisten Fällen diese Links und die zugehörigen Pfade zum Internet. Wenn das SD-WAN-Gateway die Tunnelübergabe implementiert, muss es die WAN-Verbindungen überwachen, um Ausfälle zu erkennen, und TCP-Flows von der ausgefallenen Verbindung zu einer fehlerfreien Verbindung umleiten. In einigen Ausführungsformen kann das SD-WAN-Gateway die Informationen über den Zustand der WAN-Verbindungen verwenden.
  • Zuerst gibt das SD-WAN-Gateway dem Client möglicherweise nur alternative IP-Adress- und Transportport-Tupel bekannt, die fehlerfreien Verbindungen entsprechen. Wenn dann eine Verbindung als ausgefallen erkannt wird, kann das SD-WAN-Gateway einen REMOVE-ADDR in einer Spoof-Nachricht senden, um den Client anzuweisen, den mit der ausgefallenen Verbindung verknüpften Subflow zu schließen. Wenn eine zuvor ausgefallene Verbindung als fehlerfrei erkannt wird, kann das Gateway einen ADD-ADDR in einer Spoof-Nachricht senden, um den Client anzuweisen, einen Subflow zu öffnen, der der neu fehlerfreien Verbindung zugeordnet ist.
  • 5 zeigt ein Blockdiagramm eines beispielhaften Computersystems 500, in dem verschiedene der hier beschriebenen Ausführungsformen implementiert werden können. Das Computersystem 500 enthält einen Bus 502 oder eine anderen Kommunikationsmechanismus zum Kommunizieren von Informationen und einen oder mehrere Hardware-Prozessoren 504, gekoppelt mit dem Bus 502 zum Verarbeiten von Informationen. Hardwareprozessor(en) 504 können beispielsweise ein oder mehrere Allzweck-Mikroprozessoren sein.
  • Das Computersystem 500 enthält auch einen Hauptspeicher 506, wie einen Direktzugriffsspeicher (RAM), einen Cache und / oder andere dynamische Speichervorrichtungen, die mit dem Bus 502 gekoppelt sind, um Informationen und Anweisungen zu speichern, die vom Prozessor 504 ausgeführt werden sollen. Der Hauptspeicher 506 kann auch zum Speichern temporärer Variablen oder anderer Zwischeninformationen während der Ausführung von Anweisungen verwendet werden, die vom Prozessor 504 ausgeführt werden sollen. Wenn solche Anweisungen auf Speichermedien gespeichert sind, auf die der Prozessor 504 zugreifen kann, machen sie das Computersystem 500 zu einer Spezialmaschine, die angepasst ist, um die in den Anweisungen angegebenen Operationen auszuführen.
  • Das Computersystem 500 enthält ferner einen Nur-Lese-Speicher (ROM) 508 oder eine andere statische Speichervorrichtung, die mit dem Bus 502 gekoppelt ist, um statische Informationen und Anweisungen für den Prozessor 504 zu speichern. Eine Speichervorrichtung 510, wie eine Magnetplatte, eine optische Platte oder ein USB-Stick (Flash-Laufwerk) usw., ist vorgesehen und mit dem Bus 502 zum Speichern von Informationen und Anweisungen verbunden.
  • Das Computersystem 500 kann über den Bus 502 mit einer Anzeige 512, wie einer Flüssigkristallanzeige (LCD) (oder einem Touchscreen), verbunden sein, um einem Computerbenutzer Informationen anzuzeigen. Eine Eingabevorrichtung 514, die alphanumerische und andere Tasten enthält, ist mit dem Bus 502 verbunden, um Informationen und Anweisungsauswahlen an den Prozessor 504 zu übermitteln. Ein anderer Typ einer Benutzereingabevorrichtung ist die Cursorsteuerung 516, wie beispielsweise eine Maus, ein Trackball oder Cursorrichtungs-Tasten zum Übermitteln von Richtungsinformationen und Befehlsauswahlen an den Prozessor 504 und zum Steuern der Cursorbewegung auf der Anzeige 512. In einigen Ausführungsformen können die gleichen Richtungsinformationen und Befehlsauswahlen wie bei der Cursorsteuerung durch Empfangen von Berührungen auf einem Touchscreen ohne Cursor implementiert werden.
  • Das Computersystem 500 kann ein Benutzerschnittstellenmodul zum Implementieren einer GUI enthalten, die in einer Massenspeichervorrichtung als ausführbare Softwarecodes gespeichert sein kann, die von der bzw. den Rechenvorrichtung(en) ausgeführt werden. Dieses und andere Module können beispielsweise Komponenten wie Softwarekomponenten, objektorientierte Softwarekomponenten, Klassenkomponenten und Aufgabenkomponenten, Prozesse, Funktionen, Attribute, Prozeduren, Unterprogramme, Segmente des Programmcodes, Treiber, Firmware, Mikrocode, Schaltkreise, Daten, Datenbanken, Datenstrukturen, Tabellen, Arrays und Variablen umfassen.
  • Im Allgemeinen kann sich das Wort „Komponente“, „Engine“, „System“, „Datenbank“, „Datenspeicher“ und dergleichen, wie hierin verwendet, auf Logik beziehen, die in Hardware oder Firmware enthalten ist, oder auf eine Sammlung von Softwareanweisungen, möglicherweise mit Ein- und Ausstiegspunkten, die in einer Programmiersprache wie z. B. Java, C oder C++ geschrieben sind. Eine Softwarekomponente kann kompiliert und zu einem ausführbaren Programm verknüpft, in einer dynamischen Linkbibliothek installiert oder in einer interpretierten Programmiersprache wie beispielsweise BASIC, Perl oder Python geschrieben werden. Es versteht sich, dass Softwarekomponenten von anderen Komponenten oder von sich selbst aus aufgerufen werden können und / oder als Reaktion auf erkannte Ereignisse oder Interrupts aufgerufen werden können. Softwarekomponenten, die für die Ausführung auf Rechenvorrichtungen konfiguriert sind, können auf einem computerlesbaren Medium wie einer CD, einer digitalen Videodisk, einem Flash-Laufwerk, einer Magnetplatte oder einem anderen materiellen Medium oder als digitaler Download bereitgestellt werden (und können ursprünglich in einem komprimierten oder installierbaren Format gespeichert sein, das vor der Ausführung installiert, dekomprimiert oder entschlüsselt werden muss). Ein solcher Softwarecode kann teilweise oder vollständig auf einer Speichervorrichtung der ausführenden Rechenvorrichtung zur Ausführung durch die Rechenvorrichtung gespeichert werden. Softwareanweisungen können in Firmware wie ein EPROM eingebettet sein. Es versteht sich ferner, dass Hardwarekomponenten aus verbundenen Logikeinheiten wie Gates und Flip-Flops bestehen können und / oder aus programmierbaren Einheiten wie programmierbaren Gate-Arrays oder Prozessoren bestehen können.
  • Das Computersystem 500 kann die hierin beschriebenen Techniken unter Verwendung einer angepassten fest verdrahteten Logik, eines oder mehrerer ASICs oder FPGAs, einer Firmware und / oder einer Programmlogik implementieren, die in Kombination mit dem Computersystem bewirkt oder programmiert, dass das Computersystem 500 eine Spezialmaschine ist. Gemäß einer Ausführungsform werden die hierin enthaltenen Techniken von dem Computersystem 500 als Reaktion darauf ausgeführt, dass der oder die Prozessoren 504 eine oder mehrere Sequenzen einer oder mehrerer im Hauptspeicher 506 enthaltener Anweisungen ausführen. Solche Anweisungen können von einem anderen Speichermedium, wie beispielsweise der Speichervorrichtung 510, in den Hauptspeicher 506 eingelesen werden. Die Ausführung der im Hauptspeicher 506 enthaltenen Anweisungssequenzen bewirkt, dass der bzw. die Prozessor(en) 504 die hier beschriebenen Prozessschritte ausführen. In alternativen Ausführungsformen können fest verdrahtete Schaltungen anstelle von oder in Kombination mit Softwareanweisungen verwendet werden.
  • Der Begriff „nichttransitorische Medien“ und ähnliche Begriffe, wie sie hier verwendet werden, beziehen sich auf alle Medien, die Daten und / oder Anweisungen speichern, die bewirken, dass eine Maschine auf eine bestimmte Weise arbeitet. Solche nichtflüchtigen Medien können nichtflüchtige Medien und / oder flüchtige Medien umfassen. Nichtflüchtige Medien umfassen beispielsweise optische oder magnetische Platten, wie beispielsweise die Speichervorrichtung 510. Flüchtige Medien umfassen einen dynamischen Speicher, wie beispielsweise den Hauptspeicher 506. Übliche Formen von nichttransitorischen Medien umfassen beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Solid-State-Laufwerk, ein Magnetband oder ein anderes magnetisches Datenspeichermedium, eine CD-ROM oder ein anderes optisches Datenspeichermedium, jedes physische Medium mit Lochmustern, ein RAM, ein PROM und ein EPROM, ein FLASH-EPROM, ein NVRAM, einen beliebigen anderen Speicherchip oder eine beliebige andere Kassette sowie vernetzte Versionen derselben.
  • Nichttransitorische Medien unterscheiden sich von Übertragungsmedien, können jedoch in Verbindung mit diesen verwendet werden. Übertragungsmedien sind an der Übertragung von Informationen zwischen nichttransitorischen Medien beteiligt. Zum Beispiel umfassen Übertragungsmedien Koaxialkabel, Kupferdraht und Glasfaser, einschließlich der Drähte, die den Bus 502 umfassen. Übertragungsmedien können auch die Form von akustischen oder Lichtwellen annehmen, wie sie beispielsweise während der Funkwellen- und Infrarot-Datenkommunikation erzeugt werden.
  • Das Computersystem 500 enthält auch eine Kommunikationsschnittstelle 518, die mit dem Bus 502 verbunden ist. Die Netzwerkschnittstelle 518 stellt eine bidirektionale Datenkommunikationskopplung mit einer oder mehreren Netzwerkverbindungen bereit, die mit einem oder mehreren lokalen Netzwerken verbunden sind. Beispielsweise kann die Kommunikationsschnittstelle 518 eine ISDN-Karte (Integrated Services Digital Network), ein Kabelmodem, ein Satellitenmodem oder ein Modem sein, um eine Datenkommunikationsverbindung zu einem entsprechenden Typ einer Telefonleitung bereitzustellen. Als ein anderes Beispiel kann die Netzwerkschnittstelle 518 eine LAN-Karte (Local Area Network) sein, um eine Datenkommunikationsverbindung zu einem kompatiblen LAN (oder eine WAN-Komponente zur Kommunikation mit einem WAN) bereitzustellen. Drahtlose Verbindungen können ebenfalls implementiert werden. In einer solchen Implementierung sendet und empfängt die Netzwerkschnittstelle 518 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen, die verschiedene Arten von Informationen darstellen.
  • Eine Netzwerkverbindung stellt normalerweise eine Datenkommunikation über ein oder mehrere Netzwerke zu anderen Datengeräten bereit. Beispielsweise kann eine Netzwerkverbindung eine Verbindung über ein lokales Netzwerk zu einem Host-Computer oder zu Datengeräten bereitstellen, die von einem Internetdienstanbieter (ISP) betrieben werden. Der ISP wiederum stellt Datenkommunikationsdienste über das weltweite Paketdatenkommunikationsnetz bereit, das heute allgemein als „Internet“ bezeichnet wird. Das lokale Netzwerk und das Internet verwenden beide elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale durch die verschiedenen Netzwerke und die Signale auf der Netzwerkverbindung und über die Kommunikationsschnittstelle 518, die die digitalen Daten zum und vom Computersystem 500 übertragen, sind beispielhafte Formen von Übertragungsmedien.
  • Das Computersystem 500 kann Nachrichten senden und Daten, einschließlich Programmcode, über das bzw. die Netzwerk(e), die Netzwerkverbindung und die Kommunikationsschnittstelle 518 empfangen. In dem Internet-Beispiel könnte ein Server einen angeforderten Code für ein Anwendungsprogramm über das Internet, den ISP, das lokale Netzwerk und die Kommunikationsschnittstelle 518 übertragen.
  • Der empfangene Code kann vom Prozessor 504 ausgeführt werden, wenn er empfangen und / oder in der Speichervorrichtung 510 oder einem anderen nichtflüchtigen Speicher zur späteren Ausführung gespeichert wird.
  • Jeder der in den vorhergehenden Abschnitten beschriebenen Prozesse, Verfahren und Algorithmen kann in Codekomponenten enthalten sein, die von einem oder mehreren Computersystemen oder Computerprozessoren, die Computerhardware umfassen, ausgeführt werden, und diese vollständig oder teilweise automatisieren. Das eine oder die mehreren Computersysteme oder Computerprozessoren können auch dazu funktionsfähig sein, die Leistung der relevanten Vorgänge in einer „Cloud-Computing“-Umgebung oder als „Software as a Service“ (SaaS) zu unterstützen. Die Prozesse und Algorithmen können teilweise oder vollständig in anwendungsspezifischen Schaltungen implementiert sein. Die verschiedenen oben beschriebenen Merkmale und Verfahren können unabhängig voneinander verwendet oder auf verschiedene Weise kombiniert werden. Verschiedene Kombinationen und Unterkombinationen sollen in den Geltungsbereich dieser Offenbarung fallen, und bestimmte Verfahren oder Prozessblöcke können in einigen Implementierungen weggelassen werden. Die hier beschriebenen Verfahren und Prozesse sind auch nicht auf eine bestimmte Sequenz beschränkt, und die dazugehörigen Blöcke oder Zustände können in anderen Sequenzen ausgeführt werden, die geeignet sind, oder können parallel oder auf eine andere Weise durchgeführt werden. Blöcke oder Zustände können zu den offenbarten beispielhaften Ausführungsformen hinzugefügt oder daraus entfernt werden. Die Leistung bestimmter Vorgänge oder Prozesse kann auf Computersysteme oder Computerprozessoren verteilt werden, die sich nicht nur auf einem einzelnen Computer befinden, sondern auf mehreren Computern bereitgestellt werden.
  • Wie hierin verwendet, kann eine Schaltung unter Verwendung irgendeiner Form von Hardware, Software oder einer Kombination davon implementiert werden. Beispielsweise können ein oder mehrere Prozessoren, Controller, ASICs, PLAs, PALs, CPLDs, FPGAs, logische Komponenten, Softwareroutinen oder andere Mechanismen implementiert werden, um eine Schaltung zu bilden. Bei der Implementierung können die verschiedenen hier beschriebenen Schaltungen als diskrete Schaltungen implementiert werden, oder die beschriebenen Funktionen und Merkmale können teilweise oder insgesamt auf eine oder mehrere Schaltungen aufgeteilt werden. Obwohl verschiedene Merkmale oder Elemente der Funktionalität einzeln als separate Schaltkreise beschrieben oder beansprucht werden können, können diese Merkmale und Funktionen von einem oder mehreren gemeinsamen Schaltkreisen gemeinsam genutzt werden, und eine solche Beschreibung erfordert oder impliziert nicht, dass separate Schaltkreise erforderlich sind, um solche Merkmale oder Funktionen zu implementieren. Wenn eine Schaltung ganz oder teilweise unter Verwendung von Software implementiert wird, kann eine solche Software implementiert werden, um mit einem Computer- oder Verarbeitungssystem zu arbeiten, das in der Lage ist, die in Bezug darauf beschriebenen Funktionen auszuführen, wie beispielsweise das Computersystem 500.
  • Wie hierin verwendet, kann der Begriff „oder“ entweder in einem inklusiven oder einem exklusiven Sinne ausgelegt werden. Darüber hinaus darf die Beschreibung von Ressourcen, Operationen oder Strukturen im Singular nicht so gelesen werden, dass der Plural ausgeschlossen ist. Bedingte Sprache wie unter anderem „kann“, „könnte“, „könnten“ oder „können“, sofern nicht ausdrücklich anders angegeben oder im verwendeten Kontext anderweitig verstanden, soll im Allgemeinen vermitteln, dass bestimmte Ausführungsformen Folgendes bestimmte Merkmale, Elemente und / oder Schritte umfassen, während andere Ausführungsformen diese nicht enthalten.
  • In diesem Dokument verwendete Begriffe und Ausdrücke sowie Variationen davon sollten, sofern nicht ausdrücklich anders angegeben, als offen und nicht als einschränkend ausgelegt werden. Adjektive wie „konventionell“, „traditionell“, „normal“, „Standard“, „bekannt“ und Begriffe mit ähnlicher Bedeutung sollten nicht so ausgelegt werden, dass sie den beschriebenen Artikel auf einen bestimmten Zeitraum oder auf einen ab einer bestimmten Zeit verfügbaren Artikel beschränken, sondern sollten so gelesen werden, dass sie konventionelle, traditionelle, normale oder Standardtechnologien umfassen, die jetzt oder zu einem späteren Zeitpunkt in der Zukunft verfügbar oder bekannt sein können. Das Vorhandensein von erweiternden Wörtern und Ausdrücken wie „einem oder mehreren“, „zumindest“, „aber nicht beschränkt auf“ oder ähnlichen Ausdrücken in einigen Fällen bedeutet nicht, dass beim Fehlen solcher erweiternder Ausdrücke der engere Fall beabsichtigt oder erforderlich ist.

Claims (8)

  1. Ein oder mehrere Netzwerkgateways, wobei jedes der Netzwerkgateways mit einem ersten Netzwerk und einem zweiten Netzwerk kommuniziert; wobei das eine oder die mehreren Netzwerkgateways umfassen: eine Erfassungs-Subflow-Schaltung, die konfiguriert ist, um einen MPTCP-Subflow mit einer ersten IP-Adresse als Quelladresse und einer zweiten IP-Adresse als Zieladresse zu erfassen, wobei keines der Netzwerkgateways eine Quelle oder ein Ziel des MPTCP-Subflows ist, wobei das Erfassen des MPTCP-Subflows anhand eines SYN-ACK-Paketes erfolgt; und eine Spoof-ADD_ADDR-Schaltung, die konfiguriert ist zum: Zuordnen einer dritten IP-Adresse zu dem MPTCP-Subflow und Bekanntgeben der dritten IP-Adresse an mindestens einen Endpunkt des MPTCP-Subflows; wobei das Bekanntgeben umfasst: Duplizieren des SYN-ACK-Paketes und Ersetzen eines MPTCP-Optionsheaders durch einen MPTCP-ADD-ADDR-Optionsheader, der die dritte IP-Adresse enthält, wobei das eine oder die mehreren Netzwerkgateways das SYN-ACK-Paket mit dem MPTCP-ADD-ADDR-Optionsheader an die zweite IP-Adresse senden.
  2. Das eine oder die mehreren Netzwerkgateways nach Anspruch 1, wobei das eine oder die mehreren Netzwerkgateways ein MPTCP-Paket mit der dritten IP-Adresse als Zieladresse empfangen, wobei das eine oder die mehreren Netzwerkgateways umfassen: eine NAT-Schaltung (Subflow Network Address Translation), die, als Reaktion auf das MPTCP-Paket mit der dritten IP-Adresse als Zieladresse, konfiguriert ist zum: Ersetzen der Quelladresse des MPTCP-Pakets und Ersetzen der Zieladresse des MPTCP-Pakets.
  3. Das eine oder die mehreren Netzwerkgateways nach Anspruch 2, wobei zum Ersetzen der Zieladresse des MPTCP-Pakets die Subflow-NAT-Schaltung weiter dazu konfiguriert ist, das Ziel des MPTCP-Pakets durch eine von der ersten IP-Adresse und der zweiten IP-Adresse zu ersetzen; und zum Ersetzen der Quelladresse des MPTCP-Pakets die Subflow-NAT-Schaltung weiter konfiguriert ist, um eine vierte IP-Adresse auszuwählen, die der dritten Adresse zugeordnet ist, und um die Quelladresse des MPTCP-Pakets durch die vierte IP-Adresse zu ersetzen.
  4. Das eine oder die mehreren Netzwerkgateways nach Anspruch 2, wobei die Subflow-NAT-Schaltung ferner konfiguriert ist zum: Auswählen einer vierten IP-Adresse, die der dritten Adresse zugeordnet ist; und als Antwort darauf, dass das eine oder die mehreren Netzwerk-Gateways ein weiteres MPTCP-Paket mit der vierten Adresse als Zieladresse empfangen: Ersetzen der Zieladresse des weiteren MPTCP-Pakets durch eine von der ersten IP-Adresse und der zweiten IP-Adresse, Ersetzen der Quelladresse des weiteren MPTCP-Pakets durch die dritte IP-Adresse.
  5. Das eine oder die mehreren Netzwerkgateways nach Anspruch 1, wobei der MPTCP-Subflow einen ersten Transportport als Quelltransportport hat und einen zweiten Transportport als Zieltransportport hat und wobei die Subflow-NAT-Schaltung weiter konfiguriert ist zum: Zuordnen eines dritten Transportports zu dem MPTCP-Subflow und Bekanntgeben des dritten Transportports an mindestens einen Endpunkt des MPTCP-Subflows.
  6. Das eine oder die mehreren Netzwerkgateways nach Anspruch 5, wobei, in Reaktion auf das Empfangen eines MPTCP-Pakets, das die dritte Adresse als eine Zieladresse aufweist, den dritten Port als Zieltransportport aufweist, und einen fünften Transportport als Quelltransportport aufweist, die Subflow-NAT-Schaltung ferner konfiguriert ist zum: Auswählen einer vierten IP-Adresse, die der dritten Adresse und dem dritten Transportport zugeordnet ist; Auswählen eines vierten Transportports, der dem dritten Transportport zugeordnet ist; Ersetzen der Zieladresse des MPTCP-Pakets durch die erste IP-Adresse oder die zweite IP-Adresse; Ersetzen des Zieltransportports des MPTCP-Pakets durch den ersten Transportport oder den zweiten Transportport. Ersetzen der Quelladresse des MPTCP-Pakets durch die vierte IP-Adresse; und Ersetzen des Quelltransportports des MPTCP-Pakets durch den vierten Transportport.
  7. Verfahren zum Betrieb eines oder mehrerer Netzwerkgateways, wobei jedes der Netzwerkgateways in Kommunikation mit einem ersten Netzwerk und einem zweiten Netzwerk steht, wobei das Verfahren umfasst: Erfassen eines MPTCP-Subflows mit einer ersten IP-Adresse als Quelladresse und einer zweiten IP-Adresse als Zieladresse, wobei keines der Netzwerkgateways die Quelle oder das Ziel des MPTCP-Subflows ist, wobei das Erfassen des MPTCP-Subflows anhand eines SYN-ACK-Paketes erfolgt; Zuordnen einer dritten IP-Adresse zum MPTCP-Subflow und Bekanntgeben der dritten IP-Adresse an mindestens einen Endpunkt des MPTCP-Subflows; wobei das Bekanntgeben umfasst: Duplizieren des SYN-ACK-Paketes und Ersetzen eines MPTCP-Optionsheaders durch einen MPTCP-ADD-ADDR-Optionsheader, der die dritte IP-Adresse enthält, wobei das eine oder die mehreren Netzwerkgateways das SYN-ACK-Paket mit dem MPTCP-ADD-ADDR-Optionsheader an die zweite IP-Adresse senden.
  8. System, das Folgendes umfasst: einen Hardwareprozessor; ein oder mehrere Netzwerkgateways, die mit einem ersten Netzwerk und einem zweiten Netzwerk kommunizieren; ein nichttransitorisches maschinenlesbares Speichermedium, das mit Anweisungen codiert ist, die vom Hardwareprozessor ausgeführt werden können, um ein Verfahren nach Anspruch 7 zum Betrieb des einen oder der mehreren Netzwerkgateways durchzuführen.
DE102020100211.4A 2019-01-18 2020-01-08 End-To-End Multipath TCP durch Netzwerk Gateways Active DE102020100211B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/251,950 2019-01-18
US16/251,950 US10659569B1 (en) 2019-01-18 2019-01-18 End-to-end multipath TCP through network gateways

Publications (2)

Publication Number Publication Date
DE102020100211A1 DE102020100211A1 (de) 2020-07-23
DE102020100211B4 true DE102020100211B4 (de) 2023-08-31

Family

ID=70736453

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020100211.4A Active DE102020100211B4 (de) 2019-01-18 2020-01-08 End-To-End Multipath TCP durch Netzwerk Gateways

Country Status (3)

Country Link
US (1) US10659569B1 (de)
CN (1) CN111464665B (de)
DE (1) DE102020100211B4 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210297341A1 (en) * 2016-08-24 2021-09-23 McLaren Applied Limited Vehicle data communication
CN111988440B (zh) * 2019-05-22 2022-09-02 富联精密电子(天津)有限公司 网络地址转换方法及系统
CN113923696A (zh) * 2020-07-09 2022-01-11 华为技术有限公司 通知故障的方法和电子设备
CN114095474B (zh) * 2020-07-31 2023-02-03 华为技术有限公司 确定mptcp服务器公网地址的方法和通信装置
US11818104B2 (en) * 2022-03-01 2023-11-14 Netnut, Ltd. Anonymous proxying
US11765238B1 (en) 2022-06-21 2023-09-19 Juniper Networks, Inc. Non-translated port oversubscribing for a proxy device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130194963A1 (en) 2012-01-31 2013-08-01 Karl Georg Hampel Method and apparatus for end-host based mobility, multi-homing and multipath protocols
WO2017157457A1 (en) 2016-03-18 2017-09-21 Nec Europe Ltd. Sdn support for disjoint multipath configuration

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331375B2 (en) * 2004-08-06 2012-12-11 Qualcomm Incorporated Technology agnostic QoS support in a multi-mode environment
JP2008158632A (ja) * 2006-12-21 2008-07-10 Canon Inc 画像形成装置、ワークフロー制御方法、該方法を実行する制御プログラム
US20120144062A1 (en) * 2010-06-04 2012-06-07 Interdigital Patent Holdings, Inc. MPTCP And Mobile IP Interworking
US8400923B2 (en) * 2010-10-15 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) Multipath transmission control protocol proxy
US8547835B2 (en) * 2010-10-21 2013-10-01 Telefonaktiebolaget L M Ericsson (Publ) Controlling IP flows to bypass a packet data network gateway using multi-path transmission control protocol connections
US20120331160A1 (en) * 2011-06-22 2012-12-27 Telefonaktiebolaget L M Ericsson (Publ) Multi-path transmission control protocol proxy service
WO2014044333A1 (en) * 2012-09-24 2014-03-27 Telefonaktiebolaget L M Ericsson (Publ) Traffic shaping and steering for a multipath transmission control protocol connection
US9456464B2 (en) 2013-06-06 2016-09-27 Apple Inc. Multipath TCP subflow establishment and control
CN103441996B (zh) * 2013-08-16 2016-09-28 上海理工大学 并发传输文件的方法及系统
EP2882148A1 (de) * 2013-12-09 2015-06-10 Université Catholique De Louvain Herstellen einer Datenübertragungsverbindung
CN105264845B (zh) * 2014-05-08 2019-04-12 华为技术有限公司 数据传输控制节点、通信系统及数据传输管理方法
WO2016112948A1 (en) * 2015-01-12 2016-07-21 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for relocating packet processing functions
US10097465B2 (en) 2015-12-08 2018-10-09 Nicira Inc. Data transfer between endpoints using a multipath connection
WO2017200342A1 (en) * 2016-05-19 2017-11-23 Samsung Electronics Co., Ltd. Method and apparatus for managing multipath transmission control protocol
US20170346724A1 (en) * 2016-05-25 2017-11-30 Doru Calin Dynamic multi-path control and adaptive end-to-end content delivery over wireless media
US20190253274A1 (en) * 2018-02-14 2019-08-15 Megaport (Services) Pty Ltd. Network interconnection service
US11153122B2 (en) * 2018-02-19 2021-10-19 Nicira, Inc. Providing stateful services deployed in redundant gateways connected to asymmetric network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130194963A1 (en) 2012-01-31 2013-08-01 Karl Georg Hampel Method and apparatus for end-host based mobility, multi-homing and multipath protocols
WO2017157457A1 (en) 2016-03-18 2017-09-21 Nec Europe Ltd. Sdn support for disjoint multipath configuration

Also Published As

Publication number Publication date
US10659569B1 (en) 2020-05-19
CN111464665A (zh) 2020-07-28
CN111464665B (zh) 2021-10-26
DE102020100211A1 (de) 2020-07-23

Similar Documents

Publication Publication Date Title
DE102020100211B4 (de) End-To-End Multipath TCP durch Netzwerk Gateways
DE60114942T2 (de) Verfahren und System für das Verwenden eines Kernnetz-Protokolls zur Verbesserung der Netzleistung
US11409550B2 (en) Low latency connections to workspaces in a cloud computing environment
DE10393628B4 (de) System und Verfahren zum Integrieren mobiler Vernetzung mit sicherheitsbasierten virtuellen privaten Netzwerksystemen (VPNS)
DE112016006080B4 (de) Verwaltung von virtuellen desktopinstanzenpools
DE102012220834B4 (de) Verfahren und Vorrichtung zum Umsetzen eines flexiblen virtuellen lokalen Netzwerks
DE69434896T2 (de) Zugriffsverfahren auf ein drahtloses lokales ad-hoc Netzwerk über ein zellulares Weitbereichnetzwerk mit Koppelung des LAN-MAC-Paketkopfes.
DE60033615T2 (de) Verfahren und System, um das Verteilen von IP-Datagrammen auf mehrere Server gemäß einer definierten Strategie zu erzwingen
DE112020001459T5 (de) Konsistente Route-Ankündigungen zwischen redundanten Controllern im globalen Netzwerk-Access-Point
DE112016004286T5 (de) Systeme und Verfahren zur Lastverteilung in einem verteilten Paketkernsystem eines durch Software definierten Netzes
DE10052311B4 (de) Manuelles Verhindern des unerlaubten Mithörens in einem virtuellen privaten Netzwerk über das Internet
DE60028229T2 (de) Herstellung dynamischer Sitzungen zum Tunnelzugriff in einem Kommunikationsnetzwerk
DE112008003966T5 (de) Selektives Um-Abbilden einer Netzwerktopologie
DE112019005826T5 (de) Lastverteilter Zugang zu verteilten Endpunkten unter Verwendung globaler Netzwerkadressen
DE10052312A1 (de) Automatische Sperre gegen unberechtigten Zugriff im Internet (Snoop Avoider) für virtuelle private Netze
DE112011103289T5 (de) Zusammenführen von mobilen Breitband-Netzwerkschnittstellen
DE202014010925U1 (de) Dienstbrücken
DE102020203746A1 (de) Interworking-techniken informationszentrischer netzwerke
DE60125266T2 (de) Durchgehendes Tunneling für dynamische lokale Adressierung von mobilen Rechnern
DE60211287T2 (de) Handhabung von Verbindungen, die zwischen Firewalls umziehen
DE112020004639T5 (de) Verwaltung verteilter endpunkte
DE112022003743T5 (de) Sichere frame-verschlüsselung als dienst
DE102021127358A1 (de) Automatische Einrichtung von drahtlosen oder drahtgebundenen Netzen durch Bündelung von Gateways und Tunnelung des Datenverkehrs zu den Gateways
DE102021127762A1 (de) Systeme und verfahren für zero touch provisioning ( ztp) übertrunk/lacp-ports
DE112004000524B4 (de) Verfahren, Vorrichtung und System zum Sicherstellen eines zuverlässigen Zugangs zu einem Roaming-Mobilknoten

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB - PATENT- , DE

Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB PATENTANWA, DE

Representative=s name: HL KEMPNER PATENTANWALT, RECHTSANWALT, SOLICIT, DE

R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TEX., US

R082 Change of representative

Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB - PATENT- , DE

Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB PATENTANWA, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division