DE69919965T2 - Methode und Proxy Umleiteinrichtung zum transparenten Verweisen von Anfragen nach Web-Objekten auf Proxycaches - Google Patents

Methode und Proxy Umleiteinrichtung zum transparenten Verweisen von Anfragen nach Web-Objekten auf Proxycaches Download PDF

Info

Publication number
DE69919965T2
DE69919965T2 DE69919965T DE69919965T DE69919965T2 DE 69919965 T2 DE69919965 T2 DE 69919965T2 DE 69919965 T DE69919965 T DE 69919965T DE 69919965 T DE69919965 T DE 69919965T DE 69919965 T2 DE69919965 T2 DE 69919965T2
Authority
DE
Germany
Prior art keywords
address
proxy
client
packet
request message
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 - Lifetime
Application number
DE69919965T
Other languages
English (en)
Other versions
DE69919965D1 (de
Inventor
Ariel Berkeley Heights Cohen
Sampath Bridgewater Rangarajan
Navjot Morristown Singh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of DE69919965D1 publication Critical patent/DE69919965D1/de
Application granted granted Critical
Publication of DE69919965T2 publication Critical patent/DE69919965T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • 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
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • 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/166IP fragmentation; TCP segmentation
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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]

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft paketvermittelte Computernetzwerke und insbesondere ein Verfahren und eine Vorrichtung in einem solchen Netzwerk zum transparenten Abfangen von Klient-Web-Anforderungen und zum Umleiten dieser zu Proxy-Caches.
  • Proxy-Cache-Speicherung dient zur Zeit zum Verringern sowohl der Latenz des Objektabrufens als auch des Verkehrs auf dem Internet-Backbone. Wenn ein Proxy-Cache eine Kopie eines Objekts von einem Ursprungsserver gespeichert hat, die von einem Klient angefordert wurde, wird das angeforderte Objekt bekanntlich nicht von dem Ursprungsserver, sondern von dem Proxy-Cache aus geliefert. Dadurch wird es deshalb unnötig, die Anforderung über ein großflächiges Netzwerk, wie zum Beispiel das Internet, zu dem Ursprungsserver zu senden, in dem das Orginalobjekt gespeichert ist, und die antwortende Übertragung einer Kopie des angeforderten Objekts zurück über das Netzwerk zu dem anfordernden Klient durchzuführen.
  • Das Lenken einer Anforderung von einem Klient zu einem Proxy-Cache zur Bestimmung, ob eine angeforderte Kopie eines Objekts in dem Cache gespeichert ist, kann entweder transparent oder nichttransparent für den Klient erreicht werden. Die nichttransparente Umlenkung wird durch das Browser-Programm des Klient erreicht, das so konfiguriert ist, daß es alle Objektanforderungen zu einem gekennzeichneten Proxy-Cache an einer spezifizierten Adresse sendet. Im allgemeinen kann ein Browser so konfiguriert werden, daß er alle seine Klient-Anforderungen zu einem gekennzeichneten Proxy-Cache sendet, wenn der Klient mit einem lokalen Netzwerk (LAN) verbunden ist oder sich auf einem Intranet hinter einer Firewall befindet, wo sich ein diesem LAN oder Intranet zugeordneter Proxy-Cache befindet. Wenn Klients von einem großen Internet-Dienstanbieter (ISP) versorgt werden, ist es jedoch vom Standpunkt des ISPs aus gesehen nicht vorteilhaft, es seinen Teilnehmern zu erlauben, ihre Browser auf einen dem ISP zugeordneten spezifischen Proxy-Cache einzustellen. Ein großer ISP hat wahrscheinlich viele Proxy-Caches an mehreren Orten und wird somit wünschen, die Kontrolle darüber zu behalten, an welchen seiner mehreren bestimmten Proxy-Caches eine Klient-Anforderung gerichtet wird. Wenn ein Proxy-Cache, dessen Adresse statisch in dem Browser eines Klient gesetzt ist, funktionsunfähig wird, bleiben außerdem alle Klient-Anforderungen erfolglos.
  • Vom Standpunkt eines ISPs aus gesehen ist es deshalb in bezug auf Latenz und Minimierung von Verkehr auf und aus dem Netzwerk mehr wünschenswert, transparent eine Web-Anforderung eines Klient abzufangen und diese zu einem seiner funktionsfähigen Proxy-Caches zu senden, um zu bestimmen, ob dort eine Kopie des angeforderten Objekts gespeichert ist. Wenn es sich dann zeigt, daß eine Kopie des angeforderten Objekts in diesem Proxy-Cache gespeichert ist, wird eine Kopie des Objekts zu dem Klient gesendet, der sich nicht darüber bewußt ist, daß er ein Objekt von dem Proxy-Cache zugestellt bekommen hat, statt von dem Ursprungsserver, an den die Anforderung gerichtet war. Wenn der Proxy-Cache keine Kopie des angeforderten Objekts hält, dann wird eine separate Verbindung zwischen dem Proxy-Cache und dem Ursprungsserver hergestellt, um eine Kopie des Objekts zu erhalten, die, wenn sie an den Proxy zurückgegeben wird, über die zwischen dem Klient und dem Proxy hergestellte Verbindung zu dem Klient gesendet wird.
  • Wenn ein Klient eine URL des Objekts, von dem er eine Kopie anfordert, spezifiziert, wird ein DNS-Nachschlagen (Domain Name Server) durchgeführt, um aus der URL eine IP-Adresse des Ursprungsservers, der das angeforderte Objekt besitzt, zu bestimmen. Als Ergebnis dieses Nachschlagens wird dem Klient eine IP-Adresse von einem von möglicherweise mehreren im wesentlichen äquivalenten Servern zurückgegeben, die dieses Objekt enthalten.
  • Der Klient stellt dann unter Verwendung eines dreiseitigen Handshake-Mechanismus eine TCP-Verbindung mit diesem Server her. An jedem Ende wird eine solche Verbindung durch eine Portnummer und eine IP-Adresse bestimmt. Zuerst wird ein SYN-Paket von dem Klient zu diesem Ursprungsserver gesendet, wobei die Ziel-IP-Adresse, die in dem Paket spezifiziert ist, die durch DNS bestimmte IP-Adresse des Ursprungsservers ist, und die Zielportnummer für eine HTTP-Anforderung ist gewöhnlich Port 80. Die Quellen-IP-Adresse und die Portnummer des Pakets sind die IP-Adresse und die Portnummer, die dem Klient zugeordnet sind. Die Klient-IP-Adresse wird im allgemeinen durch einen ISP dem Klient zugewiesen und die Klient-Portnummer wird durch den Protokollstapel in dem Klient dynamisch zugewiesen. Der Ursprungsserver antwortet dem Klient dann mit einem ACK-SYN-Paket, in dem die Ziel-IP-Adresse und der Zielport die IP-Adresse und Portnummer des Klient sind und die Quellen-IP-Adresse und Portnummer des Pakets die IP-Adresse des Servers und die Portnummer des Servers sind, wobei letztere im allgemeinen Port 80 ist. Nach dem Empfang des ACK-SYN-Pakets sendet der Klient ein oder mehrere Pakete zu dem Ursprungsserver, wobei die Pakete eine GET-Anforderung enthalten. Die GET-Anforderung enthält eine vollständige URL, die diesem Server das spezifische Objekt in dem Ursprungsserverort identifiziert von dem der Klient eine Kopie möchte. Im Gegensatz zu einer absoluten URL, die sowohl Ortsinformationen (z.B. www.yahoo.com) als auch Objektinformationen (z.B. index.html) enthält, identifiziert eine vollständige URL nur das konkrete Objekt (z.B. index.html), das angefordert wird, da das Paket bzw. die Pakete, das bzw. die die GET-Anforderung enthalten, mittels der Zieladresse des Pakets bzw. der Pakete zu dem richtigen Ursprungsserverort gesendet wird bzw. werden.
  • Wenn ein Browser so konfiguriert ist, daß er nicht transparent alle Anforderungen zu einem Proxy sendet, wird durch den Browser eine GET-Anforderung formuliert, die die absolute URL des angeforderten Objekts enthält. Diese absolute URL wird dann von dem Proxy zur Herstellung einer separaten TCP-Verbindung mit dem Ursprungsserver verwendet, wenn der Proxy keine Kopie des angeforderten Objekts in seinem Cache aufweist. Der Proxy benötigt die absolute URL, da die Zieladresse der Pakete zu dem Proxy durch den Browser auf die IP-Adresse des Proxys gesetzt wird, anstelle der IP-Adresse des Ursprungsservers. Um zu bestimmen, ob er das Objekt in seinem Cache besitzt, und um eine Verbindung mit dem Ursprungsserver herzustellen, wenn dies nicht der Fall ist, benötigt der Proxy also die absolute URL des Ursprungsservers in der GET-Anforderung.
  • Wenn Anforderungen transparent zu einem Proxy-Cache gelenkt werden, ist dem Klient-Browser jedoch nicht bewußt, daß die Anforderung zu dem Proxy gelenkt wird und möglicherweise aus dem Cache erfüllt wird. Statt dessen muß der Browser des Klient „denken", daß er mit dem Ursprungsserver verbunden ist, an den sein SYN und das Paket bzw. die Pakete mit der GET-Anforderung adressiert sind. Eine solche Ursprungsserver-IP-Adresse wird durch den Browser durch ein DNS-Nachschlagen bestimmt. Außerdem müssen die Quellenadresse des ACK-SYN-Pakets und der Pakete mit dem angeforderten Objekt diese selbe Ursprungsserver-IP-Adresse sein, oder sie werden von dem Browser nicht als die Antwortpakete auf das SYN-Paket und die Anforderung des Objekts erkannt. Um Objektanforderungen transparent zu einem Proxy-Cache zu senden, muß ein Mechanismus entlang dem Paketübertragungsweg zum Abfangen eines anfänglichen von einem Browser gesendeten SYN-Pakets und zum Umlenken dieses zu dem Proxy-Cache, um eine TCP-Verbindung herzustellen, eingerichtet sein. Der Proxy-Cache muß sich dann beim Senden des ACK-SYN-Pakets zurück zu dem Klient als der Ursprungsserver ausgeben, indem er die IP-Adresse des Ursprungsservers und die Portnummer als die Quellenadresse dieses Pakets benutzt. Außerdem muß das nachfolgende Paket bzw. müssen die nachfolgenden Pakete mit einer GET-Anforderung zu dem Proxy-Cache umgelenkt und die Anforderung entweder von dem Cache oder über eine separate TCP-Verbindung von dem Proxy zu dem Ursprungsserver erfüllt werden. In jedem Fall muß die zu dem Klient zurückgesendete Quellenadresse von Paketen die IP-Adresse und Portnummer des Ursprungsservers sein, an den die von dem Klient gesendeten Pakete adressiert waren.
  • Damit einer Anforderung eines Objekts zugeordnete Pakete zu einem irgendwo in dem Netzwerk verbundenen Proxy-Cache umgelenkt werden können, „schaut" eine Vermittlung der Schicht 4 (L4) auf dem Paketweg auf die Portnummer einer Zieladresse eines SYN-Anforderungspakets. Da HTTP-Verbindungsanforderungen im allgemeinen an den Port 80 eines Ursprungssservers gerichtet sind, lenkt die L4-Vermittlung transparent alle Pakete mit einer Portnummer von 80 in der Zieladresse um. Das SYN-Paket wird somit zu einem gewählten Proxy-Cache gesendet. Damit der Proxy-Cache ordnungsgemäß dem Klient antworten kann, muß er, wie bereits erwähnt, die absolute URL des angeforderten Objekts kennen, und zu dem Klient zurückgegebene Pakete müssen sich als von dem Ursprungsserver kommend ausgeben. Im Gegensatz zu dem zuvor beschriebenen nichttransparenten Cache-Verfahren, bei dem der Browser eine GET-Anforderung mit der absoluten URL formuliert, muß für eine transparente Cache-Speicherung die absolute URL auf irgendeine Weise dem Proxy-Cache zugeführt werden, damit der Proxy bestimmen kann, ob er tatsächlich das angeforderte Objekt in seinem Cache besitzt, oder ob er eine separate TCP-Verbindung mit dem Ursprungsserver herstellen muß, um das Objekt anzufordern. Wenn ein oder mehrere Caches direkt mit der L4-Vermittlung verbunden sind, wählt die Vermittlung im Stand der Technik einen der Caches und leitet die Pakete transparent zu diesem Proxy weiter, ohne die Quellen- oder Zieladresse der Pakete zu modifizieren. Der in einem bereitwilligen TDP-Modus arbeitende Proxy nimmt alle ankommenden Pakete ungeachtet ihrer Zieladresse an. Der Proxy, der dann das SYN-Paket mit der Zieladresse des Ursprungsservers und der Quellenadresse des Klient empfängt, kann auf das SYN-Paket mit einem ACK-SYN-Paket antworten. Dieses ACK-SYN-Paket enthält die Adresse des Klient als Zieladresse und eine Quellenadresse, die sich für die Ursprungsserveradresse ausgibt. Dieses Paket wird durch die L4-Vermittlung über die TCP-Verbindung auf das Netzwerk zurück zum Klient transportiert. Das nachfolgende Paket bzw. die nachfolgenden Pakete mit der GET-Anforderung von dem Klient wird bzw. werden durch die L4-Vermittlung zu dem direkt verbundenen Proxy umgelenkt. Da das GET-Paket bzw. die GET-Pakete nur die vollständige URL enthalten, muß der Proxy die absolute URL formulieren, um zu bestimmen ob er das angeforderte Objekt in seinem Cache besitzt oder ob er eine separate TCP-Verbindung zu dem Ursprungsserver herstellen muß. Der Proxy bildet die absolute URL durch Voranstellen der vollständigen URL in der GET-Anforderung an die IP-Adresse des Ursprungsservers in der Zieladresse des Pakets. Der Proxy kann dann bestimmen, ob er das Objekt besitzt, und, wenn dies nicht der Fall ist, eine TCP-Verbindung zu dieser absoluten Adresse herstellen. Wenn dieser bestimmte Ursprungsserver an dieser IP-Adresse nicht funktionsfähig sein sollte, kann der Proxy der vollständigen URL in der GET-Anforderung als Alternative den logischen Namen des in dem HOST-Feld des Pakets bzw. der Pakete mit der GET-Anforderung angegebenen Orts voranstellen.
  • Wenn im Stand der Technik der Proxy-Cache nicht direkt mit der L4-Vermittlung verbunden ist, dann muß die L4-Vermittlung eine Netzwerkadressenübersetzung (NAT) und eine Portadressenübersetzung (PAT) an diesen an den Port 80 eines Ursprungsservers gerichteten Paketen durchführen. Wenn die L4-Vermittlung ein SYN-Paket zum Einleiten einer TCP-Verbindung von einem Klient zu einem Ursprungsserver empfängt, übersetzt sie genauer gesagt die Zieladresse des Pakets aus der IP-Adresse und Portnummer des Ursprungsservers in die IP-Adresse und Portnummer eines gewählten Proxy-Cache. Ferner übersetzt die Vermittlung die Quellenadresse des Pakets aus der IP-Adresse und Portnummer des Klient in ihre eigene IP-Adresse und eine Portnummer. Wenn der Proxy mit einem ACK-SYN-Paket antwortet, antwortet er deshalb der L4-Vermittlung, wo eine NAT die Ziel-IP-Adresse aus der IP-Adresse der L4-Vermittlung in die IP-Adresse des Klient übersetzt, und übersetzt die Quellen-IP-Adresse aus der IP-Adresse des Proxy in die IP-Adresse des Ursprungsservers. Außerdem übersetzt eine PAT die Portnummer in der Zieladresse aus der der L4-Vermittlung in die des Klient und übersetzt die Portnummer in der Quellenadresse aus der des Proxy in die des Ursprungsservers (gewöhnlich 80). Wenn der Klient ein ACK-Paket und dann das Paket bzw. die Pakete mit der GET-Anforderung zu dem Ursprungsserver sendet, führt die L4-Vermittlung wieder eine NAT durch, wobei die Ziel-IP-Adresse in die IP-Adresse des Proxy übersetzt wird. Wenn das Paket bzw. die Pakete mit der GET-Anforderung durch den Proxy empfangen wird bzw. werden, kennt er also nicht die IP-Adresse des Ursprungsservers wie bei der oben beschriebenen direkt verbundenen Proxyanordnung. Der Proxy muß deshalb den logischen Namen in dem HOST-Feld betrachten und ein DNS-Nachschlagen durchführen, um die IP-Adresse dieses Orts zu bestimmen. Der Proxy verwendet diese IP-Adresse in Kombination mit der vollständigen URL in der GET-Anforderung dann zur Bildung einer absoluten URL, aus der er bestimmt, ob er das angeforderte Objekt in seinem Cache besitzt. Wenn nicht, wird eine separate TCP-Verbindung von dem Proxy zu dieser absoluten URL hergestellt, um dieses Objekt abzurufen, das an den Proxy zurückgegeben wird. Gleichgültig, ob das Objekt in dem Proxy-Cache gefunden oder über die separate Verbindung von dem Ursprungsserver abgerufen wird, wird es zu der L4-Vermittlung zurück weitergeleitet, in der eine NAT und eine PAT durchgeführt werden, um die Zieladresse in die des Klient und um die Quellenadresse in den bestimmten Ursprungsserver, an den die Anforderung des Klient gerichtet war, zu übersetzen. Es ist zu beachten, daß die Quellenadresse des Ursprungsservers, die erhalten wird, wenn der Browser des Klient ein DNS-Nachschlagen unter Verwendung der absoluten URL des Ursprungsservers einleitet, möglicherweise nicht dieselbe IP-Adresse ist, die erhalten wird, wenn der Proxy ein DNS-Nachschlagen unter Verwendung der Kombination der Orts-URL in dem HOST-Feld und der vollständigen URL in der GET-Anforderung durchführt.
  • Die oben beschriebenen Techniken zur Durchführung einer transparenten Proxi-Cache-Speicherung haben mehrere Nachteile. Erstens ist die Verwendung eines HOST-Feldes zum Spezifizieren eines logischen Namens eines Ursprungsservers zur Zeit nicht in den derzeit verwendeten HTTP1.0-Standards enthalten. Folglich ist möglicherweise in dem Paket bzw. den Paketen, das bzw. die eine GET-Anforderung enthalten, kein HOST-Feld vorhanden. Wenn, wie oben beschrieben, die Informationen in dem HOST-Feld notwendig für die Bildung einer absoluten URL sind, um zu bestimmten, ob der Proxy-Cache das angeforderte Objekt besitzt, und um, wenn dies nicht der Fall ist, eine Verbindung zu einem Ursprungsserver von dem Proxy herzustellen, führt das Fehlen des HOST-Feldes zu einer unerfüllten Anforderung. Zweitens ist es bei den vorbekannten Techniken erforderlich, daß der Proxy-Cache die Funktion des Bildens einer absoluten URL aus den Informationen in dem HOST-Feld und in dem Paket bzw. den Paketen mit der GET-Anforderung durchführt. Standard-Proxy-Caches, die erwarten, daß der Browser des Klient die absolute URL produziert, können also nicht verwendet werden. Es ist eine Methologie für transparentes Proxy-Cache-Speichern erwünscht, die sowohl dem Klient als auch dem Proxy transparent ist, um eine Modifikation des Programms, das Proxy-Cache-Operationen steuert, zu vermeiden. An jeder beliebigen Stelle in dem Netzwerk könnten somit Standard-Proxy-Caches verwendet werden, ohne daß eine spezielle Implementierung notwendig ist.
  • Die oben beschriebenen vorbekannten Techniken haben sogar weitere Nachteile in bezug auf durch die HTTP1.1 Standards definierten persistenten Verbindungen. Gemäß diesen Standards ermöglicht es eine persistente Verbindung, einem Klient, mehrere GET-Anforderungen über dieselbe TCP-Verbindung zu senden, nachdem diese Verbindung zwischen zwei Endpunkten hergestellt wurde. Wenn ein vorbekannter transparenter Proxy-Cache auf der Verbindung zwischengeschaltet ist, kann ein Klient „denken", daß er eine persistente Verbindung mit dem durch das DNS-Nachschlagen bestimmten spezifischen Ursprungsserver hergestellt hat. In der Realität wird die Verbindung jedoch transparent durch die L4-Vermittlung zu einem Proxi-Cache umgelenkt. Als Reaktion auf ein DNS-Nachschlagen unter Verwendung des logischen Namens in dem ROST-Feld kann der Proxi-Cache zu einem äquivalenten Ursprungsserver an einer anderen IP-Adresse gelenkt werden. Während jede nachfolgende GET-Anforderung durch den Proxy von dem Klient in der dafür gehaltenen persistenten Verbindung des Klient empfangen wird, kann weiterhin jedes antwortende DNS-Nachschlagen auf den logischen Namen eine Verbindung zu sogar noch einer anderen IP-Adresse eines äquivalenten Ursprungsservers lenken. Folglich gehen die Vorteile einer transaktionsorientierten persistenten Verbindung, bei der ein Server über die gesamte Verbindung hinweg Zustandsinformationen aufrechterhalten kann, verloren. Es ist eine Methodologie wünschenswert, die Persistenz zu demselben Ursprungsserver, zu dem der Browser von Klients gelenkt wird, oder zu einem selben äquivalenten Ursprungsserver während der gesamten Dauer der persistenten Verbindung aufrechterhält.
  • Aus ARROWPOINT COMMUNICATIONS: „Content Smart Cache Switching" WHITE PAPER, [online], 16.11.1998 (1998-11-16), Seiten 1-12, XP002194928, abgerufen aus dem Internet: http://www.knowware.co.uk/ArrowPoint/pdf/Content_Smart_ Cache_Switching.pdf, ist eine Vermittlung bekannt, die Vermittlung auf höherer Ebene verwendet, um eine Anforderung auf der Basis der URL des angeforderten Inhalts zu einem Proxy-Cache to transferieren.
  • Kurze Darstellung der Erfindung
  • Ein Verfahren, ein Proxy-Umlenker, ein computerlesbares Medium und ein Computerprogrammprodukt gemäß der Erfindung werden in den unabhängigen Ansprüchen definiert. Bestimmte Formen werden in den abhängigen Ansprüchen definiert.
  • Die vorbekannten Techniken für transparentes Proxy-Cache-Speichern zugeordneten Probleme werden durch die vorliegende Erfindung beseitigt. Gemäß der vorliegenden Erfindung wird eine Vermittlungsentität, wie zum Beispiel die L4-Vermittlung (die im folgenden als Proxy-Umlenker bezeichnet wird), durch die die Pakete fließen, mit den Funktionalitäten auf der IP-Ebene ausgestattet, die notwendig sind, um die vollständige URL in jeder durch einen Klient gesendeten GET-Anforderung in eine entsprechende absolute URL zu transformieren. Genauer gesagt werden die IP-Adresse, die in dem Zielfeld in dem IP-Kopfteil des Pakets bzw. der Pakete von dem Klient mit der GET-Anforderung gefunden wird, als Präfix durch den Proxy-Umlenker zu der vollständigen URL in der GET-Anforderung hinzugefügt. Folglich wird die vollständige URL in der GET-Anforderung modifiziert, um eine absolute URL zu bilden, die, wenn sie von dem Proxy-Cache empfangen wird, direkt dazu verwendet wird, zu bestimmen, ob das angeforderte Objekt in den Cache gespeichert ist, und, wenn dies nicht der Fall ist, um eine separate TCP-Verbindung zu dem Ursprungsserver herzustellen. Die von dem Proxy empfangene GET-Anforderung ist also dem äquivalent, das er zu empfangen erwarten würde, wenn er im nichttransparenten Modus arbeiten würde. Wenn eine persistente Verbindung hergestellt wird, weist vorteilhafterweise jede nachfolgende GET-Anforderung denselben IP-Adressenpräfix auf, der durch das anfängliche DNS-Nachschlagen durch den Klient bestimmt wird.
  • Durch Modifizieren der GET-Anforderung in dem Proxyumlenker, sodaß sie die Zieladresse des Ursprungsservers enthält, wird die Anzahl von Byte auf der IP-Ebene in dem Paket, das die resultierende absolute Adresse enthält, um die Anzahl von Byte in dem Präfix vergrößert. In dem Kopfteil in jedem Paket befindet sich eine Sequenznummer (seq), die eine Angabe der Position der ersten Bytezahl in dem Nutzsignal liefert. Wenn die IP-Adresse einem Paket hinzugefügt wird, muß also die Sequenznummer jedes der nachfolgenden Pakete um den Zählwert der zusätzlichen Byte erhöht werden. Ferner muß eine Bestätigungssequenznummer (ack_seq) in dem Kopfteil an den von dem Proxy oder dem Ursprungsserver zurückgegebenen Paketen, die logisch dem Empfang des GET-Pakets bzw. der GET-Pakete in dem Ursprungsserver folgen, durch den Proxyumlenker erniedrigt werden, bevor sie zu dem Klient weitergeleitet werden, um zu vermeiden, den Klient in Bezug darauf, wie die Sequenzennummer des nächsten Byte, das er sendet, lauten soll, zu verwirren. Wenn die von dem Klient gesendete GET-Anforderung mehr als ein TCP-Segment umfaßt, dann werden weiterhin die zusätzlichen Byte in dem ersten der Segmente, die durch die zusätzlichen Byte, die der URL hinzugefügt werden, verursacht werden, in das zweite Segment verschoben, und die nun resultierenden zusätzlichen Byte in dem zweiten Segment werden in das dritte Segment verschoben usw., bis zum letzten der Segmente. Um die Notwendigkeit des Anforderns des Hinzufügens eines zusätzlichen Segments zu der GET-Anforderung, um die zusätzlichen Byte unterzubringen, zu verhindern, wird der die GET-Anforderung sendende Klient dazu getäuscht, Segmente zu senden, deren maximale Größe kleiner ist, als das, was tatsächlich von dem Proxy empfangen werden kann, wie durch ein Feld mit der maximalen Segmentgröße (MSS) in Paketen aus dem Proxy angegeben wird. Nach dem Empfang des ACK-SYN-Pakets von dem Proxy verringert der Proxyumlenker den aus dem Proxy empfangenen MSS-Parameter um den Betrag der Anzahl von Byte, die zu der GET-Anforderung hinzugefügt werden, bevor dieser Parameter zum Klient weitergeleitet wird. Wenn der Klient das nächste Mal eine GET-Anforderung sendet, wird also jedes Segment auf die reduzierte MSS begrenzt, wodurch sichergestellt wird, daß die Segmentgröße eines letzten Segments in einer GET-Anforderung, nachdem der IP-Adresse durch den Proxy-Umlenker ein Präfix vorangestellt wurde, um die absolute URL zu bilden (gleichgültig, ob die GET-Anforderung ein oder mehrere Segmente lang ist) kleiner oder gleich der tatsächlichen MSS ist, die der Proxy empfangen kann.
  • Kurze Beschreibung der Zeichnung
  • 1 ist ein Blockschaltbild eines Netzwerks, das einen Proxyumlenker enthält, der Anforderungen transparent von einem Klient zu einem Proxy-Cache sendet, indem die Zieladresse von Paketen in einer Klientanforderung von der des Ursprungsservers in die eines Proxy und die Quellenadresse von der des Klient in die der Vermittlungsentität umgeändert wird, und der gemäß der vorliegenden Erfindung eine GET-Anforderung so modifiziert, daß sie die Zieladresse des Ursprungsservers enthält;
  • 2 ist ein Blockschaltbild des Proxyumlenkers, der auf einem programmierbaren Netzwerkelement implementiert ist, das Pakete gemäß durch ein geladenes Programm bereitgestellten Anweisungen manipuliert; und
  • 3, 4, 5 und 6 sind Flußdiagramme der Funktionsweise des Proxyumlenkers.
  • Ausführliche Beschreibung
  • Mit Bezug auf 1 sind mehrere Klients 101-1101-N mit einem lokalen Netzwerk (LAN) 102, wie zum Beispiel einem Ethernet, verbunden. Das LAN 102, das seinerseits durch einen Router 103 mit einer Vermittlung der Ebene 4 (L4) 104 (Proxyumlenker) verbunden ist, das als Schnittstelle des LAN mit dem großflächigen Netzwerk (WAN) 105, wie zum Beispiel mit dem Internet, dient. Obwohl sie als zwei getrennte Elemente gezeigt sind, können die Funktionalitäten des Routers 103 und des Proxyumlenkers 104 in der Praxis in einer einzigen Einheit kombiniert werden. Alle Anforderungen von beliebigen der mit dem LAN 102 verbundenen Klient von Objekten, die in Servern gespeichert sind, die mit dem Internet 105 verbunden sind, durchqueren den Proxyumlenker 104 auf das Internet. Die Pakete, die solche Anforderungen umfassen, die die standardisierten Pakete enthalten, die eine TCP-Verbindung herstellen, werden zu einer IP-Zieladresse und Portnummer gelenkt, die in dem IP-Kopfteil jedes Pakets angegeben werden, das von einer Klient-Quellenadresse stammt, die eine Klient-IP-Adresse und -Portnummer enthält. Ähnlich werden Antworten auf solche Anforderungen von einem mit dem Internet 105 verbundenen Ursprungsserver über eine IP-Zieladresse gelenkt, die gleich der IP-Adresse und Portnummer des Klient ist, von dem die Anforderung stammte, und weisen als Quellenadresse die IP-Adresse und Portnummer des Servers auf. Alle solchen an beliebige der Klients 101-1101-N von einem beliebigen mit dem Internet 105 verbundenen Server gerichteten Pakete werden durch den Proxyumlenker 104 geleitet.
  • Wenn beliebige der mit den LAN 102 verbundenen Klients, wie zum Beispiel Klient 101-1, durch einen Browser ein Objekt durch Spezifizieren einer logischen URL anfordert, wird auf einen lokal oder auf dem Internet 105 wie gezeigt verbundenen Domain-Namenserver (DNS) 106 zugegriffen, um auf der Basis dieses logischen Namens ein Datenbanknachschlagen durchzuführen. Eine zugeordnete IP-Adresse wird dann an den Browser zurückgegeben. Die an den Browser zurückgegebene IP-Adresse ist die IP-Adresse eines bestimmten Ursprungsservers, der das Objekt enthält, das durch die logische URL angefordert wurde. Da ein logischer Name tatsächlich mehreren im wesentlichen äquivalenten Ursprungsservern, wie zum Beispiel den Servern 107 und 109, zugeordnet sein kann, kann die von dem DNS 106 gewählte, an den Klient-Browser zurückgegebene bestimmte IP-Adresse im Reigenverfahren bestimmt werden. Wenn der DNS 106 einen Ursprungsserver wählt, der der logischen URL entspricht, wird die IP-Adresse des gewählten Ursprungsservers, wie zum Beispiel die IP-Adresse des Ursprungsservers 107 an den Browser in dem anfordernden Klient 101-1 zurückgegeben. Diese IP-Adresse dient dann als die IP-Adresse, an die an den Ursprungsserver von dem Klient gerichtete Pakete gerichtet werden. Http-Anforderungen werden gewöhnlich an Port 80 eines Ursprungsservers gerichtet.
  • Wenn die IP-Adresse des Ursprungsservers bestimmt und an den Klient zurückgegeben worden ist, stellt der Browser eine TCP-Verbindung zwischen dem Klient und dem Ursprungsserver durch einen dreiseitigen Handshaking-Prozeß her. Genauer gesagt sendet der Klient ein an die IP-Adresse des gewählten Ursprungsservers adressiertes SYN-Paket. Das Handshaking ist abgeschlossen, wenn der Klient eine Bestätigung des Empfangs dieses SYN-Pakets durch ein durch diesen Ursprungsserver gesendetes ATK-SYN-Paket empfängt und dem Ursprungsserver mit einem ACK-Paket antwortet. Der Browser sendet dann eine GET-Anforderung, die das bestimmte angeforderte Objekt spezifiziert.
  • Nachdem die IP-Adresse des dem logischen URL-Namen entsprechenden Ursprungsservers durch DNS-Nachschlagen bestimmt wurde, stellt gemäß der vorliegenden Erfindung der Proxyumlenker 104, statt eine TCP-Verbindung zu dem Ursprungsserver an der bestimmten IP-Adresse herzustellen, transparent eine TCP-Verbindung zwischen dem Klient und einem Proxy her. Wenn das angeforderte Objekt in dem Cache gespeichert ist, wird eine Kopie dieses Objekts transparent an den anfordernden Klient zurückgegeben. Deshalb wird keine TCP-Verbindung über das Internet 105 zu dem tatsächlichen Ursprungsserver 107 hergestellt, um dem anfordernden Klient das angeforderte Objekt zuzuführen. Die Kosten des Übertragens der Anforderung zu dem Ursprungsserver über das Internet und des Übertragens der Kopie des angeforderten Objekts zurück über das Internet werden dadurch gespart, und auch die erforderliche Zeit zum Übertragen einer solchen Anforderung über das Internet und das Warten auf eine Antwort von dem Ursprungsserver. Wenn der Proxy-Cache, an den die Anforderung gerichtet ist, das angeforderte Objekt nicht enthält, wird eine separate TCP-Verbindung zwischen dem Proxy-Cache und dem Ursprungsserver hergestellt, um eine Kopie des angeforderten Objekts zu erhalten. Wenn der Proxy-Cache dann die Kopie des angeforderten Objekts von einem Ursprungsserver über diese separate TCP-Verbindung empfängt, wird die Kopie über die ursprüngliche TCP-Verbindung, die zwischen dem Klient und dem Proxy-Cache hergestellt wurde, zu dem Klient weitergeleitet.
  • Bei der in 1 gezeigten Ausführungsform ist ein Proxy-Cache 110-1 beispielhaft mit einem LAN 111 verbunden gezeigt, das durch einen Router 112 mit dem LAN 102 verbunden ist. Ein weiterer Proxy-Cache 115 ist auf einem anderen LAN 116 durch den Router 103 verbunden gezeigt. Weitere Proxy-Caches können sich an einer beliebigen Stelle auf den LANs 102, 111 oder 116 befinden, oder auf einem anderen LAN, der mit dem Internet 105 verbunden ist, wie zum Beispiel dem Proxy-Cache 117. Der Proxyumlenker 104 wählt einen der verfügbaren Proxy-Caches, an den Klient-Anforderungen weiterzuleiten sind, auf der Basis einer Metrik, wie zum Beispiel geringste Belastung oder Zyklus auf der Basis von IP-Kopfteilinformationen, wie zum Beispiel der Ursprungsserver-IP-Adresse. In bezug auf letzteres werden alle Objekte von einem spezifischen Ursprungsserver durch einen spezifischen Proxy versorgt.
  • Bei der hier beschriebenen bevorzugten Ausführungsform enthält der Proxyumlenker 104 ein programmierbares Netzwerkelement des Typs, der in der gleichzeitig anhängigen US-Patentanmeldung, Laufnummer 09/190, 355, registriert am 12.11.1998, nunmehr US-B-6 434 618 beschrieben wird. Wie in dieser Anwendung beschrieben wird, läuft dieses programmierbare Netzwerkelement bei der bevorzugten Ausführungsform auf einer Linux-Maschine. Wie in 2 gezeigt, enthält das programmierbare Netzwerkelement 200 einen Dispatcher-Prozeß 202, mit dem mehrere verschiedene Gateway-Programme (204, 205 und 206) IP-Pakete, die auf spezifische Beschreibungen passen, registrieren und einen Zugriff auf diese anfordern. Solche Programme werden über einen lokalen Programminjektor 211 oder einen abgesetzten Programminjektor 212 durch einen Zulassungsdämon 210 geladen. Ein Gateway-Programm kann zum Beispiel Zugriff auf ankommende Pakete zu der Netzwerkschnittstelle 208 anfordern, die mit bestimmten Quellen- und Ziel-IP-Adressenbereichen und -Portnummern übereinstimmen. Der Dispatcher-Prozeß 202 verwendet ein Paketfilter 203 in dem Linux-Kern 201, um durch die Gateway-Programme angeforderte Pakete zu erhalten, und verwendet ein Raw-IP-Socket 215, um Pakete, die gemäß dem Gateway-Programm manipuliert wurden, zur Ausgabe zurück auf das Netzwerk durch das Filter 203 durch die Netzwerkschnittstellen 208 zu dem Kern zurückzusenden. In dem programmierbaren Netzwerkelement sind Bibliothekfunktionen vorgesehen, die es einem Gateway-Programm ermöglichen, mit dem Dispatcher-Prozeß 202 zu kommunizieren, um Regeln zu registrieren, die die Art von IP-Paketen spezifizieren, die ein Gateway-Programm zu ihm umgelenkt haben möchte. Ein Gateway-Programm kann entweder ein vollständiges IP-Paket anfordern, oder nur den IP- und TCP-Kopfteil eines Pakets, und kann sowohl den Kopfteil als auch das Nutzsignal eines Pakets verändern.
  • Bei der vorliegenden Erfindung ist dieses programmierbare Netzwerkelement in Kombination mit einem Gateway-Programm betreibbar, das die Ziel- und Quellenadressen von dorthindurch fließenden Paketen auf noch zu beschreibende Weise manipuliert, sowie zum Modifizieren auf noch zu beschreibende Weise von Informationen in dem Paket bzw. in den Paketen mit der GET-Anforderung, die die URL des angeforderten Objekts spezifizieren. Genauer gesagt operiert das programmierbare Netzwerkelement in Kombination mit dem Gateway-Programm an Paketen, die HTTP-Anforderungen zugeordnet sind, die aus der Zielportnummer bestimmt werden. Wie bereits erwähnt, sind HTTP-Anforderungen gewöhnlich an Port 80 eines Ursprungsservers adressiert. Das programmierbare Netzwerkelement bzw. das Gateway-Programm, die bei dieser Ausführungsform zusammen den Proxyumlenker 104 umfassen, erfassen also durch den Dispatcher-Prozeß des programmierbaren Netzwerkelements an Port 80 gerichtete Pakete und führen dann Adressenübersetzungen an diesen erfaßten Paketen durch, um diese Pakete zu einem gewählten Proxy umzuadressieren. Mit Bezug auf Adressenübersetzungen übersetzt das Gateway-Programm die Ziel-IP-Adresse von an den Ursprungsserver adressierten Paketen in die IP-Adresse eines gewählten Proxy-Cache und übersetzt die Quellen-IP-Adresse solcher Pakete aus der des Klient in die IP-Adresse des Proxyumlenkers 104. Damit der Proxyumlenker 104 Anforderungen von mehreren Klient-Endgeräten identifiziert, die an denselben Proxy gerichtet sind, wird ferner die Quellenportnummer in dem Proxyumlenker in eine falsche Ghost-Portnummer übersetzt. Wenn der Proxy-Cache antwortet, weisen die durch den Cache übertragenen Pakete also eine Ziel-IP-Adresse des Proxyumlenkers 104 an dieser falschen Portnummer auf, die eindeutig dem Klient zugeordnet ist. Das Gateway-Programm in dem Proxyumlenker 104 übersetzt die IP-Zieladresse dieser Antwortpakete aus dem Proxy in die IP-Adresse des Klient und übersetzt die falsche Zielportnummer in die Portnummer, von der aus der Klient seine Anforderung tätigte. Weiterhin übersetzt das Gateway-Programm die Quellen-IP-Adresse solcher Antwortpakete aus der des Proxy in die IP-Adresse des Ursprungsservers und die Portnummer in den Port (80), an den die Anforderungen des Klient ursprünglich gerichtet waren. Die Pakete, die von dem Proxy an den Klient zurückgegeben werden, täuschen also vor, sie stammten aus dem Ursprungsserver, von dem der Klient „glaubte", daß seine Anforderung zu ihm gesendet wurde.
  • Durch Durchführen der oben beschriebenen Netzwerkadressenübersetzungen (NATs) und Portadressenübersetzungen (PATs) werden Pakete von einem Klient 101-1 transparent durch den Proxyumlenker 104 zu einem Proxy-Cache gelenkt. Antwortpakete von dem Proxy-Cache werden zu dem Proxyumlenker 104 gesendet und dort zu dem Klient 101-1 umgelenkt.
  • Bei der Herstellung einer TCP-Verbindung, die an einen Ursprungsserver gerichtet ist, sendet der Klient 101-1 zuerst ein SYN-Paket, das durch den Proxyumlenker 104 abgefangen wird. Der Proxyumlenker 104 wählt einen Proxy-Cache, wie zum Beispiel den Proxy 110-1 um diese Anforderung umzulenken, und erzeugt einen Verbindungssteuerblock (CCB), um Informationen über die Verbindung zu führen. Die Auswahl des bestimmten Proxy wird wie oben beschrieben durch einen von mehreren möglichen Algorithmen bestimmt. Der CCB dient zum Speichern der Klient-IP-Adresse und der TCP-Portnummer und der Ursprungsserver-IP-Adresse und TCP-Portnummer, die beide in dem IP-Kopfteil des SYN-Pakets enthalten sind, und der IP-Adresse des gewählten Proxy. Die Zieladresse wird dann in die des gewählten Proxy umgeändert, und das Paket wird zur Umlenkung zu seiner neuen Zieladresse des Proxy 110-1 zu dem Netzwerk zurückgesendet. Alle nachfolgenden Pakete, die von demselben Klient mit derselben TCP-Portnummer stammen, werden dann zu demselben Proxy weitergeleitet. Der Proxy 110-1 antwortet mit einem ACK-SYN-Paket, das über seine Zieladresse zu dem Proxyumlenker 110-1 umgelenkt wird. Der Proxyumlenker 104 übersetzt dann die Quellen-IP-Adresse und Portnummer dieser des Ursprungsservers und die Ziel-IP-Adresse und Portnummer dieser des Klient. Wenn das Paket am Klient ankommt, glaubt der Klient, daß er mit dem Ursprungsserver verbunden ist. Der Klient antwortet dann mit einem ACK-Paket zu dem Ursprungsserver, das durch den Proxyumlenker 104 zu dem Proxy-Cache 110-1 umgelenkt wird, um den Handshaking-Prozeß abzuschließen.
  • Nachdem die TCP-Verbindung zwischen dem Klient 101-1 und Proxy-Cache 110-1 hergestellt wurde, sendet der Klient 101-1 ein oder mehrere Pakete, die eine an den Ursprungsserver adressierte GET-Anforderung enthalten. Solche Pakete werden also von dem Proxyumlenker 104 „erfaßt" und zu dem Proxy-Cache 110-1 umgelenkt. Wie bereits besprochen, enthält die von dem Klient gesendete GET-Anforderung nur die durch den Klient-Browser gesendete vollständige URL, die für sich nicht genug Informationen für den Proxy-Cache liefert, um zu bestimmen, ob er das angeforderte Objekt besitzt und, wenn dies nicht der Fall ist, sie zu dem Ursprungsserver weiterzuleiten, der es besitzt. Gemäß der vorliegenden Erfindung erfaßt das Gateway-Programm, das mit dem programmierbaren Netzwerkelement des Proxiumlenkers 104 wirkt, dieses Paket oder Pakete und transformiert zusätzlich zu den bereits beschriebenen Adressenübersetzungen die vollständige URL in eine absolute URL, indem er ihr die IP-Adresse des Ursprungsservers voranstellt, die aus der Ziel-IP-Adresse des Pakets bzw. der Pakete mit der GET-Anforderung erhalten wird. Somit werden Informationen der Ebene 7 (Anwendung) modifiziert, um bei dem Routing der Ebene 4 zu helfen.
  • Um die URL-Transformation sowohl für den Klient- als auch den Proxy-Cache-Endpunkt transparent zu machen, sind auch Änderungen an IP- und TCP-Kopfteilen erforderlich. Da die GET-Anforderungsmodifikation die Länge des IP-Pakets, das die GET-Anforderung führt, vergrößert, wird das Gesamtlängenfeld des IP-Kopfteils dieses Pakets um ein Offset vergrößert. Der Offsetbetrag wird in dem CCB verzeichnet. Zusätzlich enthält der TCP-Kopfteil Sequenznummern (seq) und Bestätigungssequenznummern (ack_seq), die übersetzt werden müssen. Die seq in dem TCP-Kopfteil gibt die Bytezahl des ersten Byte auf diesem Paket an, das über die TCP-Sitzung von dem Sender zu dem Empfänger geht, und ack_seq gibt die Bytezahl des nächsten Byte an, dessen Empfang von dem Empfänger der Absender erwartet. Für alle Pakete nach dem GET-Paket bzw. den GET-Paketen, die von dem Klient zu dem Proxy-Cache gehen, wird seq um ein Offset vergrößert, das gleich lengthof (absolute URL)-lengthof (vollständige URL) ist, sodaß seq mit der Bytezahl des Byte übereinstimmt, dessen Empfang von dem Klient der Proxy-Cache erwartet. An allen Paketen, die mit der Bestätigung für das GET-Paket beginnen, die durch den Proxyumlenker von dem Proxy-Cache zu dem Klient gehen, wird ähnlich ack_seq um dasselbe Offset verkleinert, sodaß ack_seq mit der Bytezahl des Byte übereinstimmt, von dem der Proxy-Cache erwarten würde, daß es der Klient in dem nächsten Paket nach dem GET-Paket sendet. Durch Durchführen dieser Änderungen an dem Kopfteil bleiben der Klient- und der Proxy-Cache-Endpunkt unbewußt über die Modifikation in den GET-Paketen von der vollständigen URL zu der absoluten URL.
  • Tabelle 1 zeigt die URL- und andere Kopfteiltransformationen, die durchgeführt werden. Tabelle 1
    Figure 00210001
    Figure 00220001
    an einem GET-Paket durchgeführt werden, das von einem Klient 101-1 an dem Proxyumlenker 104 ankommt. Das Paket ist für einen Ursprungsserver an einer Ziel-IP-Adresse (daddr) 204.71.200.244 (www.yahoo.com) an einem Zielport (dport)80, anforderndes Objekt /a/ya/yahoomail/promol.gif, bestimmt. Wie in dem modifizierten Paket zu sehen ist, wird das Paket zu einem Proxy-Cache 110-1 an der IP-Adresse 135.104.25.31 Port 7000, umgelenkt, indem die Kopfteilinformationen daddr und dport verändert werden. Auferdem wird die vollständige URL des Objekts in der GET-Anforderung in dem übersetzten Paket modifiziert, indem ihr http://204.71.200.244 vorangestellt wird, um die absolute URL zu bilden, wobei dieser Präfix aus dem daddr-Kopfteil in dem ankommenden Paket erhalten wird. Diese Transformation vergrößert die Länge des Pakets um 21 Byte, sodaß das Feld pkt_len in den Kopfteil von 346 in 367 Byte umgeändert wird. Außerdem wird der Quellenport in eine falsche Portnummer umgeändert, indem sport in 5000 umgeändert wird.
  • Tabelle 2 zeigt die Übersetzungen, die durch den Proxyumlenker 104 an einer Bestätigung von dem Proxy-Cache 110-1 der GET-Anforderung durchgeführt werden. Tabelle 2
    Figure 00230001
    Figure 00240001
    das Paket wird an die IP-Adresse des Proxy-Umlenkers an dem falschen Port (dport) 5000, der von dem Proxyumlenker für diese TCP-Verbindung verwendet wird, adressiert (daddy). Die Quellen-IP-Adresse (saddr) und der Quellenport (sport) sind die des Proxy-Cache, an den die GET-Anforderung gerichtet war. Das Feld ack_seq gibt die Bytezahl des ersten Byte an, von dem erwartet wird, daß es in dem Paket nach dem GET-Paket gesendet wird. In diesem Beispiel ist ack_seq gleich der Sequenznummer (seq) 218908427 des GET-Pakets, plus der Länge des GET-Pakets, die in diesem Fall per Tabelle 1 367 beträgt. Somit beträgt ack_seq des ankommenden Pakets 218908754. Da dem Klient 101-1 nicht bewußt ist, daß ein Proxyumlenker die Länge des GET-Pakets um 21 Byte vergrößert hat, verkleinert der Proxyumlenker 104 das Feld ack_seq um die Anzahl der hinzugefügten Byte (21). Ferner übersetzt der Proxyumlenker 104 diese Ziel-IP-Adresse und Portnummer in die des Klient 101-1 und die Quellen-IP-Adresse und -Portnummer in die des Ursprungsservers. Das modifizierte Paket erscheint, wenn es durch den Klient empfangen wird, also dem Klient als aus dem Ursprungsserver stammend, und das Feld ack_seq gibt eine Bytezahl an, deren Sendung der Klient als nächstes erwarten würde, wenn er zuvor ein Paket der Länge von 367 Byte gesendet hat. Alle Pakete, die danach durch den Proxyumlenker 104 von dem Proxy-Cache 110-1 zu dem Klient 101-1 gesendet werden, werden ähnlich modifiziert, um das Feld ack_seq um die Anzahl der zu dem GET-Paket hinzugefügten Byte (21) zu erniedrigen.
  • Tabelle 3 zeigt ein nächstes Paket, das durch den Klient 101-1 nach dem GET-Paket zu dem Ursprungsserver gesendet wird. In diesem Paket ist die Sequenznummer (seq) gleich dem modifizierten ack_seq, das zu dem Klient gesendet wird, per Tabelle 2. Die Ziel-IP-Adresse und -Portnummer sind die des Ursprungsservers und die Quellen-IP-Adresse und -Portnummer die des Klient. Wenn es durch den Proxyumlenker 104 empfangen wird, wird das Paket modifiziert, um die Quellen-IP-Adresse und -Portnummer in die IP-Adresse und falsche Portnummer des Proxyumlenkers umzuändern. Die Zieladressen-IP- und -Portnummer werden in die des Proxy-Cache 110-1 übersetzt. Die Sequenznummer (seq) wird um denselben Wert von 21 erhöht, um Übereinstimmung mit der Bytezahl zu erreichen, deren Empfang der Proxy-Cache auf der Basis der zuvor in dem GET-Paket empfangenen Sequenznummer und der Länge 367 des empfangenen GET-Pakets zu emfpangen erwartet.
  • Tabelle 3
    Figure 00250001
  • Figure 00260001
  • Alle nachfolgenden Pakete, die von dem Klient 101-1 an den Ursprungsserver gerichtet werden, werden ähnlich modifiziert, bevor sie zu dem Proxy-Cache 110-1 gelenkt werden.
  • In der obigen Beschreibung wurde angenommen, daß die Länge der GET-Anforderung sowohl vor der Modifikation als auch nach der URL-Erweiterung kleiner als die maximale TCP-Segmentgröße ist. Tatsächlich kann die Länge der GET-Anforderung größer als ein TCP-Segment sein. Wenn die Länge der die vollständige URL führenden GET-Anforderung x-Nummer des TCP-Segments einnnimmt und nachdem es modifiziert wird, um die absolute URL zu führen, immer noch in diese selbe x-Anzahl von TCP-Segmenten paßt, dann wird das die URL-führende Segment modifiziert und überlaufende Zeichen werden im Pipeline-Verfahren von einem Segment in das nächste überführt. Die überlaufenden Zeichen von einem vorherigen Paket werden also dem Anfang des nächsten Pakets vorangestellt usw., bis zum letzten Paket, dessen Länge aufgrund der URL-Modifikation um die vergrößerte Anzahl von Byte vergrößert wird. Deshalb wird die Paketlänge nur des letzten Segments modifiziert, sodaß sie die Zeichen enthält, die in dieses Segment hineingeschoben wurden. Der Parameter ack_seq in Paketen von der Proxy-Cache zu dem Klient wird beginnend mit der Bestätigung für das letzte GET-Paket modifiziert.
  • Wenn das Umändern der URL in die absolute URL bewirken könnte, daß das letzte TCP-Segment der GET-Anforderung in ein anderes Segment überläuft, müßte ein neues TCP-Segment durch den Proxyumlenker konstruiert und injiziert werden. Der Proxyumlenker müßte dann die Fähigkeit aufweisen, dieses Segment neu zu senden, wenn es verloren ging. Somit müßte der Proxyumlenker bestimmte Funktionalitäten der TCP-Schicht aufweisen. Um das Hinzufügen höherer Funktionalität zu dem Proxyumlenker zu vermeiden, werden Segmentgrößen auf Größen begrenzt, die kleiner sind, als die Größen, die der Proxy-Cache tatsächlich empfangen kann. Wenn die vollständige URL in eine erweiterte URL transformiert wird, beträgt die maximale Zunahme der Größe 22 Byte, gleich der maximalen Länge einer IP-Adresse von 15 Byte plus 7 Byte aus dem Präfix: http://. Dem Klient wird vorgetäuscht, Segmente zu senden, deren maximale Größe 22 Byte kleiner als das von dem Protokoll zum Senden zulässig ist. Die von dem Klient gesendete TCP-Segmentgröße wird durch das bestimmt, wodurch der Proxy-Cache bei seinem Handshake mit dem Klient die maximale Segmentgröße, die er empfangen kann, angibt. Dies wird durch den Proxy-Cache durch das Feld der maximalen Segmentgröße (MSS) in dem ACK-SYN-Paket angegeben. Folglich fängt der Proxyumlenker 104 die ACK-SYN-Pakete ab und vermindert den spezifizierten MSS-Betrag um 22. Wenn zum Beispiel die durch den Proxy-Cache spezifizierte MSS 1460 beträgt, wird sie vor dem Senden zu dem Klient durch den Proxyumlenker in 1438 umgeändert. Wenn der Klient das nächste Mal eine GET-Anforderung sendet, werden die TCP-Segmente auf 1438 Byte begrenzt. Im ungünstigsten Fall werden, wenn der Klient eine GET-Anforderung sendet, dem x-ten TCP- Segment, das diese Anforderung führt, 22 Byte hinzugefügt. Die Länge diese x-ten TCP-Segments liegt dann immer noch innerhalb der durch den Proxy-Cache spezifizierten maximalen Länge. Für den Fall, daß der Proxy-Cache keine maximale MSS in dem ACK-SYN-Pakete vorgibt, ist der vom Klient verwendete Vorgabewert 536 Byte. Der Proxyumlenker fügt dann eine MSS-Option hinzu, um den Klient zu informieren, daß die Maximale von dem anderen Ende der TCP-Verbindung erwartete MSS 514 Byte beträgt.
  • Wie bereits beschrieben, führt der Proxyumlenker 104 an allen durch den Klient 101-1 an einen Ursprungsserver adressierten Paketen und an allen durch den Proxy-Cache 110-1 an den Proxyumlenker 104 zur Rückgabe an den Klient adressierten Paketen eine NAT und PAT durch. Der Proxyumlenker 104 führt also an diesen in beiden Richtungen fließenden Paketen eine NAT und eine PAT durch. Wenn der Proxyumlenker 104 einen Proxy-Cache wählt, der sich an einem solchen Punkt in dem Netzwerk befindet, das Pakete von dem Proxy-Cache, die direkt an den Klient 101-1 adressiert sind, aufgrund der Netzwerkkonfiguration durch den Proxyumlenker 104 laufen müssen, dann muß der Proxyumlenker an den durch ihn fließenden Paketen nur eine Halb-NAT durchführen. Wenn der Proxyumlenker 104 einen Proxy-Cache wie zum Beispiel den Proxy-Cache 117 wählt, müssen genauer gesagt alle an den Klient 101-1 adressierten Pakete durch den Proxyumlenker 104 laufen. Der Proxyumlenker 104 muß also nur die Ziel-IP-Adresse und -Portnummer von Paketen von dem Klient 101-1 in die IP-Adresse und Portnummer des Proxy-Cache 117 transformieren, während die Quellen-IP-Adresse und -Portnummer als die des Klient 101-1 erhalten werden. Die von dem Proxy-Cache 117 zurückgegebenen Pakete werden also an die IP-Adresse und Portnummer des Klient adressiert. Wenn sie durch den Proxyumlenker 104 laufen, werden sie erfaßt und die Transformation von Quellen-IP-Adresse und-Port in die des Ursprungsservers sind die einzigen Adressenänderungen, die bewirkt werden müssen.
  • Die Probleme des Stands der Technik in bezug auf persistente Verbindungen werden gemäß der vorliegenden Erfindung beseitigt. Wie bereits erwähnt, kann ein Klient während persistenter Verbindungen mehrere GET-Anforderungen durchführen. Wie beschrieben kann im Stand der Technik jede GET-Anforderung zu einer Verbindung von einem Proxy-Cache zu einem verschiedenen Ursprungsserver führen, wenn der Proxy-Cache die angeforderten Objekte nicht besitzt. Die Möglichkeit eines Servers, den Zustand der Verbindung eines Klient während der gesamten Dauer der Verbindung zu führen, wird kompromitiert, wenn jede GET-Anforderung zu Verbindungen zu mehreren Servern führt. Nachdem die IP-Adresse des Ursprungsservers bei dem anfänglichen DNS-Nachschlagen bestimmt wurde, wird gemäß der vorliegenden Erfindung dieselbe IP-Adresse von dem Proxyumlenker als Präfix für jede vollständige URL in jeder GET-Anforderung verwendet, die von dem Klient während der gesamten Dauer der persistenten Verbindung ausgegeben wird. Unter der Annahme, daß der Proxy-Cache keine der angeforderten Objekte enthält, stellt der Proxy-Cache also als Reaktion auf jede durch den Klient erzeugte GET-Anforderung eine TCP-Verbindung zu demselben Ursprungsserver her. Es ist zu beachten, daß, wenn mehrere Klient-GET-Anforderungen durch den Proxyumlenker zu einem Proxy-Cache mit einer persistenten TCP-Verbindung weitergeleitet werden, der Parameter ack_seq in Paketen, die nach jeder GET-Anforderung von dem Proxy durch den Proxyumlenker fließen, die kumulativen Änderungen wiedergeben muß, die durch Übersetzen der vollständigen URL in die absolute URL jeder der vorherigen GET-Anforderungen innerhalb derselben TCP-Verbindung bewirkt werden. Ähnlich muß in allen Paketen, die von dem Proxyumlenker aus dem Klient empfangen werden, die an den Ursprungsserver in einer persistenten TCP-Verbindung gerichtet sind, der seq-Parameter kumulative Änderungen wiedergeben.
  • 3 und 4 zeigen zusammen Flußdiagramme der Funktionen des Proxyumlenkers 104 bei der Herstellung einer TCP-Verbindung zu einem Proxy-Cache und beim Modifizieren der GET-Anforderung dergestalt, daß solche Anforderungen transparent zu dem Proxy weitergeleitet werden können. Im Schritt 301 kommt ein SYN-Paket von dem Klient an dem Proxyumlenker an. Im Schritt 302 wählt der Proxyumlenker einen Proxy-Cache auf der Basis eines Lastausgleichalgorithmus oder einer willkürlichen oder zufälligen Auswahl. Im Schritt 303 führt der Proxyumlenker eine volle NAT durch, wobei das daddr von dem des Ursprungsserver in das des gewählten Proxy und das saddr von dem des Klient in das des Proxyumlenkers umgeändert wird. Im Schritt 304 wird eine PAT durchgeführt, wobei sport in das einer falschen Ghost-Portnummer und dport in die Portnummer des Proxy umgeändert wird. Im Schritt 305 wird das SYN-Paket zu dem Proxy gesendet. Als Reaktion auf dieses SYN-Paket antwortet der Proxy im Schritt 306 mit einem SYN-ACK-Paket, das einen MSS-Parameter in dem TCP-Kopfteil enthält. Im Schritt 307 wird sowohl an den IP-Adressen als auch den Portnummern eine Rückübersetzung durchgeführt, wobei saddr und Sport in die des Ursprungsservers und daddr und dport in die des Klient umgeändert werden. Im Schritt 308 wird das MSS-Feld verändert, indem der Wert der aus dem Proxy empfangenen MSS um 22 reduziert wird. Im Schritt 309 wird das ACK-SYN-Paket zum Klient gesendet. Im Schritt 310 empfängt der Proxyumlenker ein Antwort-ACK-Paket von dem Klient. Im Schritt 311 werden eine volle NAT und PAT an diesem Paket durchgeführt, und im Schritt 312 wird das modifizierte Paket zu dem Proxy gesendet, wodurch die Handshake-Sequenz abgeschlossen wird.
  • Im Schritt 313 wird ein eine GET-Anforderung enthaltendes Paket von dem Klient empfangen. Im Schritt 314 wird eine volle NAT durchgeführt, und im Schritt 315 wird eine PAT durchgeführt. Im Entscheidungsschritt 316 wird bestimmt, ob dies ein erstes Paket in der GET-Anforderung ist. Wenn dies der Fall ist, wird im Schritt 317 die IP-Adresse des Ursprungsservers, die aus dem daddy des ankommenden Pakets erhalten wird, der vollständigen URL in der GET-Anforderung vorangestellt. Wenn im Schritt 316 das Paket nicht ein erstes Paket in einer GET-Anforderung ist, dann werden im Schritt 318 die Überlaufbyte von dem vorherigen GET-Paket den Byte in dem aktuellen Paket vorangestellt, und wenn die Gesamtzahl von Byte in dem resultierenden Paket als die tatsächliche MSS ist, die durch den Proxy gesendet wird, werden die Überlaufbyte zur Voranstellung an das nächste Paket gepuffert. Nach den alternativen Schritten 316 oder 318 wird im Schritt 319 bestimmt, ob das aktuelle Paket das letzte Paket einer GET-Anforderung ist. Wenn nicht, wird im Schritt 320 das aktuelle Paket zu dem Proxy gesendet und der Fluß kehrt zum Schritt 313 zurück, um das nächste Paket in der GET-Anforderung von dem Klient zu empfangen. Wenn im Schritt 319 das aktuelle Paket das letzte Paket in einer GET-Nachricht ist, dann wird im Schritt 321 der Parameter pkt_len dieses Pakets verändert, um die Längenänderung des Pakets wiederzugeben. Im Schritt 322 wird das modifizierte Paket zu dem Proxy gesendet.
  • 5 zeigt die Schritte, die von dem Proxyumlenker für jedes von dem Proxy empfangene Paket durchgeführt werden, beginnend von dem ACK für die GET-Anforderung bis zum Ende der Verbindung. Im Schritt 501 empfängt der Proxyumlenker das ACK auf die GET-Anforderung oder jedes andere Paket, das logisch dem ACK für die GET-Anforderung folgt. Im Schritt 502 werden Rück-NAT und -PAT durchgeführt, wobei daddr und dport in die des Klient und saddr und Sport in die des Ursprungsservers übersetzt werden. Im Schritt 503 wird ack_seq um den in der vorherigen GET-Anforderung hinzugefügten Betrag vermindert. Im Schritt 504 wird das modifizierte Paket zu dem Klient gesendet.
  • 6 zeigt die Schritte, die von dem Proxyumlenker für jedes Paket durchgeführt werden, das für den Ursprungsserver von dem Klient im Anschluß an die GET-Anforderung bestimmt ist. Im Schritt 601 wird ein der GET-Anforderung nachfolgendes Paket von dem Klient empfangen. Im Schritt 602 werden eine volle NAT und PAT durchgeführt. Im Schritt 603 wird seq_no um den Betrag der durch Modifizieren der vorherigen GET-Anforderung hinzugefügten Byte vergrößert. Im Schritt 604 wird das Paket zu dem Proxy gesendet.
  • In der obigen Besprechung von 3, 4, 5 und 6 wurde angenommen, daß sich der Proxy-Cache an einer dergestaltigen Position befindet, daß an den Klient gerichtete Pakete nicht automatisch durch den Proxyumlenker fließen. Somit werden alle Pakete aus dem Proxy an den Proxyumlenker adressiert. Für von dem Klient fließende Pakete und von dem Proxy fließende Pakete führt der Proxyumlenker deshalb eine volle NAT und PAT durch. Wenn sich wie zuvor beschrieben jedoch der von dem Proxyumlenker gewählte Proxy-Cache so in dem Netzwerk befindet, daß alle Pakete von dem Proxy zu dem Klient automatisch durch den Proxyumlenker fließen, dann muß in den in 3, 4, 5 und 6 gezeigten Schritten nur eine Halb-NAT durchgeführt werden.
  • Obwohl er in Verbindung dem in 2 gezeigten programmierbaren Netzwerkelement beschrieben wurde, könnte der Proxyumlenker der vorliegenden Erfindung durch andere Mittel implementiert werden, wobei Hardware, Software oder eine Kombination von beiden verwendet wird. Zum Beispiel könnte eine Vermittlung der Ebene 4 mit dem Festprogramm zur Durchführung der von der vorliegenden Erfindung benötigten erforderlichen Paketmanipulationen verwendet werden.
  • Wie beschrieben, gibt der Proxy-Cache angeforderte Objekte an die Adresse zurück, von der eine Anforderung stammte, wie durch die Parameter saddr und sport in den IP-Kopfteilinformationen angegeben wird, wobei es sich um die Adresse des Proxyumlenkers 104 handelt, wenn der Proxy-Cache nicht in dem Netzwerk verbunden ist, sodaß alle Antworten nicht automatisch durch den Proxyumlenker laufen. Die Wechselwirkungen zwischen dem anfordernden Klient und dem Proxy-Cache sind sowohl für den Klient als auch den Proxy-Cache transparent, da der Klient nicht „weiß", daß seine Anforderung durch den Proxyumlenker zu dem Proxy umgelenkt wird und der Proxy-Cache beim Empfang einer GET-Anforderung mit einer absoluten URL nicht weiß, was der Browser des Klient, der in einem nichttransparenten Modus arbeitet, keine absolute URL formuliert. Vorteilhafterweise erfordert der Proxy-Cache keine Softwaremodifikationen, und es können Standard-Proxy-Caches, die an einer beliebigen Stelle in dem Netzwerk verbunden sind, in Verbindung mit dem Proxyumlenker verwendet werden. Wenn der Proxy jedoch modifiziert wird, wobei wie zuvor beschrieben zum Beispiel ein programmierbares Netzwerkelement verwendet wird, kann das durch den Proxy aus seinem eigenen Cache abgerufene oder von einem Ursprungsserver empfangene angeforderte Objekt direkt zum Klient zurückgesendet werden, wodurch es unnötig wird, solche Pakete für Adressenübersetzungen und zum Umlenken zu dem Klient zu dem Proxyumlenker zurückzusenden. Indem in dem Proxyumlenker nur eine Halb-NAT durchgeführt und das saddr und sport des Klient als die Quellen-IP-Adresse und -Portnummer in dem Kopfteil des SYN-Pakets, GET-Anforderungspaket (e) und andere durch den Proxyumlenker 104 von dem Klient umgelenkte Pakete gelassen werden, kann der Proxy-Cache als Reaktion auf die Anforderung Pakete direkt zu dem Klient senden, indem er seine eigene Adresse durch die IP-Adresse und Portnummer des Ursprungsservers als Quellenadresse ersetzt. Wenn der Proxyumlenker eine volle NAT und PAT durchführt, dann muß ein weiterer Mechanismus vorgesehen werden, um die Klient-Adresse dem Proxy-Cache zuzuführen, wie zum Beispiel Aufnehmen der Klient-Adresseninformationen als Teil eines Anhangs für die absolute Adresse in der modifizierten GET-Anforderung und Entfernen der angefügten Klient-Adresseninformationen im Proxy vor der Bestimmung, ob das angeforderte Objekt in dem fache gespeichert ist und ob eine Verbindung zu dem Ursprungsserver hergestellt werden muß. Indem die Pakete direkt von dem Proxy-Cache zu dem Klient zurückgesendet werden, entfällt vorteilhafterweise die Verzögerung, die bei dem Zurücksenden solcher Pakete zu dem Proxyumlenker für die Adressenübersetzung und -Umlenkung auftritt. Nachteiligerweise muß der Proxy-Cache modifiziert werden, um diese Funktionen durchzuführen, sodaß die Verwendung von standardmäßigen verfügbaren Proxy-Caches ausgeschlossen ist.
  • Obwohl sie oben in Verbindung mit GET-Anforderungen beschrieben wurde, kann die vorliegende Erfindung genauso auf die Umlenkung einer beliebigen Art von Anforderungsnachricht angewandt werden, bei der das Token zum Beispiel GET, POST oder HEAD ist oder jede beliebige andere Art von Token, die noch implementiert und/oder standardisiert werden könnte.
  • Das obige veranschaulicht lediglich die Prinzipien der Erfindung. Es ist ersichtlich, daß Fachleute in der Lage sein werden, verschiedene Anordnungen zu konzipieren, die zwar hier nicht explizit beschrieben oder gezeigt wurden, aber die Erfindung, die in den Ansprüchen definiert wird, realisieren. Somit ist zum Beispiel für Fachleute erkennbar, daß die hier beschriebenen Blockschaltbilder und Flußdiagramme Konzeptansichten von beispielhaften Schaltkreisen und Prozessen repräsentieren, die die Prinzipien der Erfindung realisieren. Ähnlich versteht sich, daß alle Ablaufdiagramme, Flußdiagramme, Zustandsübergangsdiagramme, jeder Pseudocode und dergleichen verschiedene Prozesse repräsentieren, die im wesentlichen in einem computerlesbaren Medium repräsentiert und somit durch einen Computer oder Prozessor ausgeführt werden können, gleichgültig, ob ein solcher Computer oder Prozessor explizit gezeigt ist oder nicht.
  • Die Funktionen der verschiedenen in den Figuren gezeigten Elemente, einschließlich als „Prozessor" bezeichnete Funktionsblöcke, können durch Verwendung eigener Hardware und auch durch Verwendung von Hardware, die Software ausführen kann, in Verbindung mit entsprechender Software bereitgestellt werden. Bei Bereitstellung durch einen Prozessor können die Funktionen durch einen einzigen eigenen Prozessor, durch einen einzigen gemeinsam benutzten Prozessor oder durch mehrere einzelne Prozessoren, von denen einige gemeinsam benutzt sein können, bereitgestellt werden. Die explizite Benutzung des Begriffs „Prozessor" oder „Steuerung" sollte darüberhinaus nicht als sich ausschließlich auf Hardware, die Software ausführen kann beziehend aufgefaßt werden und kann implizit ohne Einschränkung Hardware für digitale Signalverarbeitung (DSP), Nurlesespeicher (ROM) zum Speichern von Software, Direktzugriffsspeicher (RAM) und nichtflüchtige Speicherung umfassen. Außerdem kann jede Hardware, herkömmlich und/oder angepaßt, eingeschlossen sein. Ähnlich sind etwaige in den Figuren gezeigte Schalter nur Konzepte. Ihre Funktion kann durch den Betrieb von Programmlogik, durch eigene Logik, durch die Wechselwirkung von Programmsteuerung und eigener Logik oder sogar manuell ausgeführt werden, wobei die konkrete Technik vom Implementierer so wählbar ist, wie es spezifischer aus dem Kontext hervorgeht.
  • In den vorliegenden Ansprüchen soll jedes als Mittel zur Durchführung einer spezifizierten Funktion ausgedrückte Element jede beliebige Art der Durchführung dieser Funktion umfassen, darunter zum Beispiel a) eine Kombination von Schaltungselementen, die diese Funktion durchführen, oder b) Software in beliebiger Form, darunter deshalb Firmware, Mikrococe oder dergleichen kombiniert mit entsprechenden Schaltkreisen zur Ausführung dieser Software, um die Funktion durchzuführen.

Claims (21)

  1. Verfahren zum transparenten Umlenken einer HTTP-Verbindungsanforderung, die an einen Ursprungsserver (107, 109) gerichtet ist, zu einem Proxy-Cache (110-1, 110-2, 115, 117) über ein paketgestütztes Computernetzwerk (105), mit den folgenden Schritten: Empfangen (313) mindestens eines Pakets, das eine Anforderungsnachricht enthält, in der HTTP-Verbindung, wobei das mindestens eine Paket einen IP-Kopfteil aufweist, der eine Zieladresse eines Ursprungsservers umfaßt, wobei die Anforderungsnachricht eine vollständige Adresse eines spezifizierten Objekts in dem Ursprungsserver enthält, wobei die vollständige Adresse nicht die Zieladresse des Ursprungsservers enthält; Modifizieren (317) der Anforderungsnachricht; und Weiterleiten (320) des mindestens einen Pakets, das die modifizierte Anforderungsnachricht enthält, zu dem Proxy-Cache über das paketgestützte Netzwerk; dadurch gekennzeichnet, daß das Verfahren in einer Vermittlung der Schicht 4 durchgeführt wird und der Schritt des Modifizierens (317) der Anforderungsnachricht die Anforderungsnachricht durch Voranstellen der Zieladresse des Ursprungsservers vor die vollständige Adresse in der Anforderungsnachricht modifiziert.
  2. Verfahren nach Anspruch 1, weiterhin mit dem folgenden Schritt: Übersetzen der Zieladresse in einem IP-Kopfteil des mindestens einen Pakets, das die modifizierte Anforderungsnachricht enthält, in die Adresse des Proxy-Cache.
  3. Verfahren nach Anspruch 2, weiterhin mit dem folgenden Schritt: Übersetzen einer Quellenadresse in einem IP-Kopfteil des mindestens einen Pakets, das die modifizierte Anforderungsnachricht enthält, von einer Adresse des Client in eine Adresse der Vermittlung der Schicht 4.
  4. Verfahren nach Anspruch 2, weiterhin mit dem folgenden Schritt: in einem TCP-Kampfteil in aus dem Proxy-Cache empfangenen Paketen, die mit einer Bestätigung für die modifizierte Anforderungsnachricht beginnen, Modifizieren eines Werts in einem Bestätigtes-Byte-Sequenznummernfeld, um die vergrößerte Anzahl von Byte in der modifizierten Anforderungsnachricht zu berücksichtigen, die sich aus dem Schritt des Voranstellens der Zieladresse des Ursprungsservers vor die vollständige Adresse ergibt.
  5. Verfahren nach Anspruch 4, wobei der Schritt des Modifizierens des Werts in dem Bestätigtes-Byte-Sequenznummernfeld den Schritt des Verkleinerns des Werts in dem Bestätigtes-Byte-Sequenznummernfeld um die Anzahl von durch Voranstellen der Zieladresse des Ursprungsservers vor die vollständige Adresse in der Anforderungsnachricht hinzugefügten Byte umfaßt.
  6. Verfahren nach Anspruch 5, weiterhin mit dem folgenden Schritt: Übersetzen der Zieladresse in die Adresse des Client und der Quellenadresse in die des Ursprungsservers in dem IP-Kopfteil in den aus dem aus dem Proxy-Cache empfangenen Paketen, die mit der Bestätigung für die Anforderungsnachricht beginnen.
  7. Verfahren nach Anspruch 2, weiterhin. mit dem folgenden Schritt: Modifizieren eines Werts in einem Gesendetes-Byte-Sequenznummernfeld, um die vergrößerte Anzahl von Byte in der modifizierten Anforderungsnachricht wiederzugeben, die sich aus dem Voranstellen der Zieladresse des Ursprungsservers vor die vollständige Adresse in einem TCP-Kopfteil in nach dem Empfang der Anforderungsnachricht aus dem Client empfangenen Paketen ergibt.
  8. Verfahren nach Anspruch 7, wobei der Schritt des Modifizierens des Werts in dem Gesendetes-Byte-Sequenznummernfeld den Schritt des Vergrößerns des Werts in dem Gesendetes-Byte-Sequenznummernfeld um die Anzahl von Byte, die sich durch Voranstellen der Zieladresse des Ursprungsservers vor die vollständige Adresse in der Anforderungsnachricht ergibt, umfaßt.
  9. Verfahren nach Anspruch 8, weiterhin mit dem folgenden Schritt: Übersetzen der Zieladresse in die Adresse des Proxy-Cache in dem IP-Kopfteil in jedem nach dem Empfang der Anforderungsnachricht aus dem Client empfangenen Paket.
  10. Verfahren nach Anspruch 1 weiterhin mit dem Schritt des Auswählens des Proxy-Cache aus einer Vielzahl von verschiedenen Proxy-Caches vor dem Empfang des mindestens einen die Anforderungsnachricht enthaltenden Pakets.
  11. Verfahren nach Anspruch 1, weiterhin mit den folgenden Schritten vor dem Schritt des Empfangens des mindestens eines Pakets: Empfangen eines Pakets aus dem Proxy-Cache, das eine maximale Segmentgröße angibt, die danach zu ihm gesendete Pakete aufweisen sollten; Verringern der maximalen Segmentgröße von danach zu dem Proxy-Cache zu sendenden Paketen um eine vorbestimmte Zahl; und Senden eines Pakets zu dem Client, das die verringerte maximale Segmentgröße angibt, die danach durch den Client zu dem Ursprungsserver gesendete Pakete aufweisen sollten.
  12. Verfahren nach Anspruch 11, wobei die vorbestimmte Zahl mindestens gleich der maximalen Anzahl von Byte ist, die durch den Schritt des Voranstellens der Zieladresse vor die vollständige Adresse hinzugefügt werden.
  13. Verfahren nach Anspruch 12, weiterhin mit den folgenden Schritten: sukzessives Schieben von durch den Schritt des Voranstellens der Zieladresse vor die vollständige Adresse in der Anforderungsnachricht verursachten Überlaufbyte zu einem nächsten Paket in der Anforderungsnachricht, wenn die Anforderungsnachricht in mehr als einem Paket enthalten ist; und Ändern eines Länge-des-Pakets-Parameters in dem IP-Kopfteil in einem letzten Paket einer Mehrpaket-Anforderungsnachricht, um die aus einem vorherigen Paket in das letzte Paket geschobenen Byte zu berücksichtigen.
  14. Verfahren nach Anspruch 12, weiterhin mit dem Schritt des Änderns eines Länge-des-Pakets-Parameters in dem IP-Kopfteil, um die durch den Schritt des Voranstellens der Zieladresse vor die vollständige Adresse in der Anforderungsnachricht verursachte Längenänderung dieses Pakets zu berücksichtigen, wenn die Anforderungsnachricht in einem Paket enthalten ist.
  15. Verfahren nach Anspruch 1, wobei die Anforderungsnachricht eine GET-Anforderung ist.
  16. Verfahren nach Anspruch 1, wobei die Anforderungsnachricht eine POST-Anforderung ist.
  17. Verfahren nach Anspruch 1, wobei die Anforderungsnachricht eine HEAD-Anforderung ist.
  18. Proxy-Umlenker (104) zum transparenten Umlenken einer HTTP-Verbindungsanforderung, die an einen Ursprungsserver (107, 109) gerichtet ist, zu einem Proxy-Cache (110-1, 110-2, 115, 117) über ein paketgestütztes Computernetzwerk (105), mit Mitteln, die dafür ausgelegt sind, jeden Schritt eines in einem beliebigen der vorhergehenden Ansprüche beanspruchten Verfahrens auszuführen.
  19. Proxy-Umlenker nach Anspruch 18, wobei das Mittel zum Modifizieren der Anforderungsnachricht ein dynamisch auf ein programmierbares Netzwerkelement geladenes Gateway-Programm ist.
  20. Computerlesbares Medium, das Computerprogrammanweisungen speichert, die auf einem Computersystem ausführbar sind, das eine Vermittlung der Schicht 4 implementiert, zum transparenten Umlenken einer HTTP-Verbindungsanforderung von einem Client zu einem Proxy-Cache über ein paketgestütztes Computernetzwerk, wobei die Computerprogrammanweisungen Anweisungen umfassen, die die Schritte eines Verfahrens nach einem der Ansprüche 1 bis 17 definieren.
  21. Direkt in den internen Speicher eines Computersystems, das eine Vermittlung der Schicht 4 implementiert, ladbares Computerprogrammprodukt mit Softwarecodeteilen zum Durchführen der Schritte eines Verfahrens nach einem der Ansprüche 1 bis 17, wenn das Produkt auf einem solchen Computersystem ausgeführt wird.
DE69919965T 1998-12-16 1999-12-07 Methode und Proxy Umleiteinrichtung zum transparenten Verweisen von Anfragen nach Web-Objekten auf Proxycaches Expired - Lifetime DE69919965T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US212980 1998-12-16
US09/212,980 US6389462B1 (en) 1998-12-16 1998-12-16 Method and apparatus for transparently directing requests for web objects to proxy caches

Publications (2)

Publication Number Publication Date
DE69919965D1 DE69919965D1 (de) 2004-10-14
DE69919965T2 true DE69919965T2 (de) 2005-09-15

Family

ID=22793236

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69919965T Expired - Lifetime DE69919965T2 (de) 1998-12-16 1999-12-07 Methode und Proxy Umleiteinrichtung zum transparenten Verweisen von Anfragen nach Web-Objekten auf Proxycaches

Country Status (4)

Country Link
US (1) US6389462B1 (de)
EP (1) EP1011244B1 (de)
CA (1) CA2288488A1 (de)
DE (1) DE69919965T2 (de)

Families Citing this family (510)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189030B1 (en) * 1996-02-21 2001-02-13 Infoseek Corporation Method and apparatus for redirection of server external hyper-link references
IL131831A (en) 1997-03-12 2002-12-01 Nomadix Inc Translator or roaming router
US6760746B1 (en) 1999-09-01 2004-07-06 Eric Schneider Method, product, and apparatus for processing a data request
US6298356B1 (en) * 1998-01-16 2001-10-02 Aspect Communications Corp. Methods and apparatus for enabling dynamic resource collaboration
US6256620B1 (en) * 1998-01-16 2001-07-03 Aspect Communications Method and apparatus for monitoring information access
US20070078978A1 (en) * 1998-06-01 2007-04-05 Sri International Method and apparatus for updating information in a low-bandwidth client/server object-oriented system
US6665702B1 (en) 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6763370B1 (en) * 1998-11-16 2004-07-13 Softricity, Inc. Method and apparatus for content protection in a secure content delivery system
US7017188B1 (en) * 1998-11-16 2006-03-21 Softricity, Inc. Method and apparatus for secure content delivery over broadband access networks
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US7194554B1 (en) 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
JP3563990B2 (ja) * 1999-02-24 2004-09-08 キヤノン株式会社 ネットワーク装置、ネットワークデバイス制御方法及び記録媒体
US6338082B1 (en) * 1999-03-22 2002-01-08 Eric Schneider Method, product, and apparatus for requesting a network resource
USRE43690E1 (en) 1999-03-22 2012-09-25 Esdr Network Solutions Llc Search engine request method, product, and apparatus
US7188138B1 (en) 1999-03-22 2007-03-06 Eric Schneider Method, product, and apparatus for resource identifier registration and aftermarket services
US8037168B2 (en) 1999-07-15 2011-10-11 Esdr Network Solutions Llc Method, product, and apparatus for enhancing resolution services, registration services, and search services
US9141717B2 (en) 1999-03-22 2015-09-22 Esdr Network Solutions Llc Methods, systems, products, and devices for processing DNS friendly identifiers
US6665681B1 (en) * 1999-04-09 2003-12-16 Entrieva, Inc. System and method for generating a taxonomy from a plurality of documents
US7370071B2 (en) 2000-03-17 2008-05-06 Microsoft Corporation Method for serving third party software applications from servers to client computers
US7730169B1 (en) 1999-04-12 2010-06-01 Softricity, Inc. Business method and system for serving third party software applications
US6938096B1 (en) * 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port
US20030229809A1 (en) * 1999-04-15 2003-12-11 Asaf Wexler Transparent proxy server
US6804778B1 (en) * 1999-04-15 2004-10-12 Gilian Technologies, Ltd. Data quality assurance
US8200837B1 (en) * 1999-04-26 2012-06-12 Hewlett-Packard Development Company, L.P. Method and system for maintaining a content server at safe load conditions
EP1049307A1 (de) * 1999-04-29 2000-11-02 International Business Machines Corporation System und Verfahren zur Zuweisung von Klientsitzungen in einem Verband von mit dem World Wide Web verbundenen Servern
US8099758B2 (en) 1999-05-12 2012-01-17 Microsoft Corporation Policy based composite file system and method
US7305473B2 (en) * 1999-05-28 2007-12-04 The Coca-Cola Company Provision of transparent proxy services to a user of a client device
US7146505B1 (en) 1999-06-01 2006-12-05 America Online, Inc. Secure data exchange between date processing systems
US6751191B1 (en) 1999-06-29 2004-06-15 Cisco Technology, Inc. Load sharing and redundancy scheme
US6650641B1 (en) * 1999-07-02 2003-11-18 Cisco Technology, Inc. Network address translation using a forwarding agent
US7287084B1 (en) 1999-07-15 2007-10-23 F5 Networks, Inc. Enabling encryption of application level persistence between a server and a client
US7346695B1 (en) 2002-10-28 2008-03-18 F5 Networks, Inc. System and method for performing application level persistence
US6970933B1 (en) * 1999-07-15 2005-11-29 F5 Networks, Inc. Enabling application level persistence between a server and another resource over a network
US6567857B1 (en) * 1999-07-29 2003-05-20 Sun Microsystems, Inc. Method and apparatus for dynamic proxy insertion in network traffic flow
US6735741B1 (en) * 1999-07-30 2004-05-11 International Business Machines Corporation Method system, and program for dynamic resource linking when copies are maintained at different storage locations
US6606650B2 (en) * 1999-08-30 2003-08-12 Nortel Networks Limited Bump in the wire transparent internet protocol
USRE44207E1 (en) 1999-09-01 2013-05-07 Esdr Network Solutions Llc Network resource access method, product, and apparatus
US6594260B1 (en) * 1999-09-03 2003-07-15 Cisco Technology, Inc. Content routing
US9451310B2 (en) 1999-09-21 2016-09-20 Quantum Stream Inc. Content distribution system and method
US7831512B2 (en) * 1999-09-21 2010-11-09 Quantumstream Systems, Inc. Content distribution system and method
US6877036B1 (en) * 1999-09-24 2005-04-05 Akamba Corporation System and method for managing connections between a client and a server
US6792463B1 (en) * 1999-10-21 2004-09-14 International Business Machines Corporation System, method and program product for providing invisibility to a proxy-server
FR2800224B1 (fr) * 1999-10-21 2002-12-27 Ibm Procede et systeme de mise en antememoire de donnees http transportees avec des donnees de socks dans des datagrammes ip
US6760771B1 (en) * 1999-10-21 2004-07-06 International Business Machines Corporation Method and system for optimally dispatching internetwork traffic
US7401115B1 (en) 2000-10-23 2008-07-15 Aol Llc Processing selected browser requests
AU1224101A (en) 1999-10-22 2001-05-08 Nomadix, Inc. Gateway device having an xml interface and associated method
DE60041352D1 (de) 1999-10-22 2009-02-26 Nomadix Inc System und verfahren zur dynamischen teilnehmer-basierten bandbreitenverwaltung in einem kommunikationsnetz
US7136930B1 (en) * 1999-11-05 2006-11-14 Nokia Corporation System and method for effective use of air link between mobile stations and gateway servers
JP3463803B2 (ja) * 1999-11-09 2003-11-05 松下電器産業株式会社 クラスタサーバ装置
US6697856B1 (en) * 1999-11-19 2004-02-24 Cisco Technology, Inc. Healing of incomplete circuits in networks
US6694358B1 (en) * 1999-11-22 2004-02-17 Speedera Networks, Inc. Performance computer network method
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US7051103B1 (en) * 1999-11-25 2006-05-23 International Business Machines Corporation Method and system for providing SNA access to telnet 3270 and telnet 3270 enhanced services over wide area networks
EP1104133A1 (de) * 1999-11-29 2001-05-30 BRITISH TELECOMMUNICATIONS public limited company Netzzugangsanordnung
US6683873B1 (en) * 1999-12-27 2004-01-27 Cisco Technology, Inc. Methods and apparatus for redirecting network traffic
US6983330B1 (en) * 1999-12-29 2006-01-03 Emc Corporation Method and apparatus for using multiple paths for processing out of band commands
US20010030977A1 (en) * 1999-12-30 2001-10-18 May Lauren T. Proxy methods for IP address assignment and universal access mechanism
US7006494B1 (en) 2000-01-04 2006-02-28 Cisco Technology, Inc. System and method for a virtual telephony intermediary
US7079495B1 (en) 2000-01-04 2006-07-18 Cisco Technology, Inc. System and method for enabling multicast telecommunications
US6804254B1 (en) 2000-01-04 2004-10-12 Cisco Technology, Inc. System and method for maintaining a communication link
US7069432B1 (en) * 2000-01-04 2006-06-27 Cisco Technology, Inc. System and method for providing security in a telecommunication network
US6839829B1 (en) 2000-01-18 2005-01-04 Cisco Technology, Inc. Routing protocol based redundancy design for shared-access networks
US7954144B1 (en) * 2000-01-18 2011-05-31 Novell, Inc. Brokering state information and identity among user agents, origin servers, and proxies
US7058007B1 (en) 2000-01-18 2006-06-06 Cisco Technology, Inc. Method for a cable modem to rapidly switch to a backup CMTS
JP2001202345A (ja) * 2000-01-21 2001-07-27 Hitachi Ltd 並列プロセッサ
US7925693B2 (en) * 2000-01-24 2011-04-12 Microsoft Corporation NAT access control with IPSec
US7072933B1 (en) * 2000-01-24 2006-07-04 Microsoft Corporation Network access control using network address translation
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US8620286B2 (en) 2004-02-27 2013-12-31 Synchronoss Technologies, Inc. Method and system for promoting and transferring licensed content and applications
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US8156074B1 (en) 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
US7505762B2 (en) * 2004-02-27 2009-03-17 Fusionone, Inc. Wireless telephone data backup system
US6934761B1 (en) 2000-02-25 2005-08-23 Sun Microsystems, Inc. User level web server cache control of in-kernel http cache
US7281168B1 (en) 2000-03-03 2007-10-09 Intel Corporation Failover architecture for local devices that access remote storage
US7428540B1 (en) 2000-03-03 2008-09-23 Intel Corporation Network storage system
US7506034B2 (en) * 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US7203731B1 (en) * 2000-03-03 2007-04-10 Intel Corporation Dynamic replication of files in a network storage system
US6952737B1 (en) * 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US7266555B1 (en) 2000-03-03 2007-09-04 Intel Corporation Methods and apparatus for accessing remote storage through use of a local device
US7930285B2 (en) 2000-03-22 2011-04-19 Comscore, Inc. Systems for and methods of user demographic reporting usable for identifying users and collecting usage data
US7493655B2 (en) * 2000-03-22 2009-02-17 Comscore Networks, Inc. Systems for and methods of placing user identification in the header of data packets usable in user demographic reporting and collecting usage data
US7650376B1 (en) * 2000-03-27 2010-01-19 Blumenau Trevor I Content distribution system for distributing content over a network, with particular applicability to distributing high-bandwidth content
US7177901B1 (en) * 2000-03-27 2007-02-13 International Business Machines Corporation Method, system, and computer program product to redirect requests from content servers to load distribution servers and to correct bookmarks
US7266604B1 (en) * 2000-03-31 2007-09-04 Microsoft Corporation Proxy network address translation
US7123613B1 (en) * 2000-04-07 2006-10-17 Sun Microsystems, Inc. Apparatus and method for providing a transparent proxy server
US6996616B1 (en) * 2000-04-17 2006-02-07 Akamai Technologies, Inc. HTML delivery from edge-of-network servers in a content delivery network (CDN)
US8510468B2 (en) * 2000-04-17 2013-08-13 Ciradence Corporation Route aware network link acceleration
US8996705B2 (en) 2000-04-17 2015-03-31 Circadence Corporation Optimization of enhanced network links
US20110128972A1 (en) 2000-04-17 2011-06-02 Randy Thornton Peer to peer dynamic network link acceleration
WO2001080515A2 (en) * 2000-04-17 2001-10-25 Circadence Corporation System and method for data prioritization
US6965924B1 (en) * 2000-04-26 2005-11-15 Hewlett-Packard Development Company, L.P. Method and system for transparent file proxying
US6742044B1 (en) * 2000-05-10 2004-05-25 Cisco Technology, Inc. Distributed network traffic load balancing technique implemented without gateway router
US6662270B1 (en) * 2000-05-16 2003-12-09 Xerox Corporation System and method for caching of reusable objects
US7673329B2 (en) * 2000-05-26 2010-03-02 Symantec Corporation Method and apparatus for encrypted communications to a secure server
US7509490B1 (en) 2000-05-26 2009-03-24 Symantec Corporation Method and apparatus for encrypted communications to a secure server
US6879998B1 (en) 2000-06-01 2005-04-12 Aerocast.Com, Inc. Viewer object proxy
US6850980B1 (en) * 2000-06-16 2005-02-01 Cisco Technology, Inc. Content routing service protocol
US6829654B1 (en) * 2000-06-23 2004-12-07 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US7003555B1 (en) * 2000-06-23 2006-02-21 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
US9444785B2 (en) 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US7032031B2 (en) * 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US7114008B2 (en) * 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US6704781B1 (en) * 2000-06-27 2004-03-09 Intel Corporation System and method for content caching implementing compensation for providing caching services
US6910063B1 (en) * 2000-06-28 2005-06-21 Microsoft Corporation System and method of enhancing web server throughput in single and multiple processor systems
US20020013831A1 (en) * 2000-06-30 2002-01-31 Arto Astala System having mobile terminals with wireless access to the internet and method for doing same
US7062571B1 (en) * 2000-06-30 2006-06-13 Cisco Technology, Inc. Efficient IP load-balancing traffic distribution using ternary CAMs
US7318107B1 (en) 2000-06-30 2008-01-08 Intel Corporation System and method for automatic stream fail-over
US7020709B1 (en) 2000-06-30 2006-03-28 Intel Corporation System and method for fault tolerant stream splitting
CA2313802A1 (en) * 2000-07-11 2002-01-11 Michael Corcoran Dynamic web page caching system and method
US7895334B1 (en) 2000-07-19 2011-02-22 Fusionone, Inc. Remote access communication architecture apparatus and method
US8073954B1 (en) 2000-07-19 2011-12-06 Synchronoss Technologies, Inc. Method and apparatus for a secure remote access system
US6829638B1 (en) * 2000-08-03 2004-12-07 International Business Machines Corporation System and method for managing multiple proxy servers
FR2812991B1 (fr) * 2000-08-08 2003-01-24 France Telecom Traduction d'identificateurs de terminaux d'installation d'usager dans un reseau de paquets
US7571217B1 (en) 2000-08-16 2009-08-04 Parallel Networks, Llc Method and system for uniform resource locator transformation
US20020026507A1 (en) * 2000-08-30 2002-02-28 Sears Brent C. Browser proxy client application service provider (ASP) interface
US6807572B1 (en) * 2000-08-31 2004-10-19 Intel Corporation Accessing network databases
US7028091B1 (en) * 2000-08-31 2006-04-11 Sun Microsystems, Inc. Web server in-kernel interface to data transport system and cache manager
US7720903B1 (en) * 2000-08-31 2010-05-18 Intel Corporation Client messaging in multicast networks
US7657629B1 (en) * 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US9130954B2 (en) * 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US7454500B1 (en) * 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US7562147B1 (en) * 2000-10-02 2009-07-14 Microsoft Corporation Bi-directional HTTP-based reliable messaging protocol and system utilizing same
US6865605B1 (en) * 2000-10-04 2005-03-08 Microsoft Corporation System and method for transparently redirecting client requests for content using a front-end indicator to preserve the validity of local caching at the client system
US6823391B1 (en) * 2000-10-04 2004-11-23 Microsoft Corporation Routing client requests to back-end servers
US7203741B2 (en) * 2000-10-12 2007-04-10 Peerapp Ltd. Method and system for accelerating receipt of data in a client-to-client network
US7801978B1 (en) * 2000-10-18 2010-09-21 Citrix Systems, Inc. Apparatus, method and computer program product for efficiently pooling connections between clients and servers
US7788407B1 (en) 2000-10-21 2010-08-31 Cisco Technology, Inc. Apparatus and methods for providing an application level gateway for use in networks
US7792676B2 (en) * 2000-10-25 2010-09-07 Robert Glenn Klinefelter System, method, and apparatus for providing interpretive communication on a network
JP2002140309A (ja) * 2000-11-02 2002-05-17 Hitachi Ltd サービスシステム
US7620719B2 (en) * 2002-06-06 2009-11-17 Juniper Networks, Inc. Method and system for providing secure access to private networks
US7587446B1 (en) 2000-11-10 2009-09-08 Fusionone, Inc. Acquisition and synchronization of digital media to a personal information space
US7739398B1 (en) * 2000-11-21 2010-06-15 Avaya Inc. Dynamic load balancer
US20020129162A1 (en) * 2000-11-22 2002-09-12 Mcgregor Gregory M. Method, architecture, and apparatus for dynamic content translation and switching
US6665642B2 (en) * 2000-11-29 2003-12-16 Ibm Corporation Transcoding system and method for improved access by users with special needs
US7313600B1 (en) * 2000-11-30 2007-12-25 Cisco Technology, Inc. Arrangement for emulating an unlimited number of IP devices without assignment of IP addresses
US20020069241A1 (en) * 2000-12-06 2002-06-06 Girija Narlikar Method and apparatus for client-side proxy selection
US8452850B2 (en) * 2000-12-14 2013-05-28 International Business Machines Corporation Method, apparatus and computer program product to crawl a web site
US7818435B1 (en) * 2000-12-14 2010-10-19 Fusionone, Inc. Reverse proxy mechanism for retrieving electronic content associated with a local network
US6697206B2 (en) * 2000-12-19 2004-02-24 Imation Corp. Tape edge monitoring
US6850982B1 (en) * 2000-12-19 2005-02-01 Cisco Technology, Inc. Methods and apparatus for directing a flow of data between a client and multiple servers
US7287090B1 (en) * 2000-12-21 2007-10-23 Noatak Software, Llc Method and system for identifying a computing device in response to a request packet
US20020116397A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US20020116605A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for initiating execution of software in response to a state
US7421505B2 (en) * 2000-12-21 2008-09-02 Noatak Software Llc Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation
JP3760767B2 (ja) * 2000-12-21 2006-03-29 株式会社日立製作所 ネットワーク管理装置及びネットワーク管理方法
US7418522B2 (en) * 2000-12-21 2008-08-26 Noatak Software Llc Method and system for communicating an information packet through multiple networks
US7546369B2 (en) * 2000-12-21 2009-06-09 Berg Mitchell T Method and system for communicating a request packet in response to a state
US7512686B2 (en) * 2000-12-21 2009-03-31 Berg Mitchell T Method and system for establishing a data structure of a connection with a client
US20020116532A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet and identifying a data structure
US7266556B1 (en) 2000-12-29 2007-09-04 Intel Corporation Failover architecture for a distributed storage system
US20020087722A1 (en) * 2000-12-29 2002-07-04 Ragula Systems D/B/A/ Fatpipe Networks Domain name resolution making IP address selections in response to connection status when multiple connections are present
US6651141B2 (en) 2000-12-29 2003-11-18 Intel Corporation System and method for populating cache servers with popular media contents
US20020138437A1 (en) * 2001-01-08 2002-09-26 Lewin Daniel M. Extending an internet content delivery network into an enterprise environment by locating ICDN content servers topologically near an enterprise firewall
US7254237B1 (en) * 2001-01-12 2007-08-07 Slt Logic, Llc System and method for establishing a secure connection
US20020107910A1 (en) * 2001-02-02 2002-08-08 Yan Zhao Client/server two-way communication system framework under HTTP protocol
US20030235206A1 (en) * 2001-02-15 2003-12-25 Tantivy Communications, Inc. Dual proxy approach to TCP performance improvements over a wireless interface
US20020120782A1 (en) * 2001-02-26 2002-08-29 Douglas Dillon Transparent proxying enhancement
US20020138596A1 (en) * 2001-03-09 2002-09-26 Matthew Darwin Method to proxy IP services
US7509435B2 (en) * 2001-03-12 2009-03-24 International Business Machines Corporation Network Address Translation and Port Mapping
JP2002278903A (ja) * 2001-03-15 2002-09-27 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
US7499888B1 (en) 2001-03-16 2009-03-03 Fusionone, Inc. Transaction authentication system and method
EP1244262B1 (de) * 2001-03-23 2005-05-11 Sun Microsystems, Inc. Client- Abfragenumlenkung
US8615566B1 (en) 2001-03-23 2013-12-24 Synchronoss Technologies, Inc. Apparatus and method for operational support of remote network systems
US7149797B1 (en) * 2001-04-02 2006-12-12 Akamai Technologies, Inc. Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP)
US20020156841A1 (en) * 2001-04-13 2002-10-24 Bjorn Landfeldt Accessing distributed proxy configurations
US7200679B2 (en) * 2001-04-13 2007-04-03 Telefonaktiebolaget Lm Ericsson (Publ) Creating distributed proxy configurations
JP4352630B2 (ja) * 2001-04-27 2009-10-28 沖電気工業株式会社 接続代行装置
WO2003105006A1 (en) * 2001-04-30 2003-12-18 America Online, Inc. Load balancing with direct terminal response
US7124173B2 (en) * 2001-04-30 2006-10-17 Moriarty Kathleen M Method and apparatus for intercepting performance metric packets for improved security and intrusion detection
US7124166B2 (en) 2001-04-30 2006-10-17 Aol Llc Duplicating digital streams for digital conferencing using switching technologies
US8572278B2 (en) * 2001-04-30 2013-10-29 Facebook, Inc. Generating multiple data streams from a single data source
US7237033B2 (en) 2001-04-30 2007-06-26 Aol Llc Duplicating switch for streaming data units to a terminal
JP3493660B2 (ja) * 2001-05-16 2004-02-03 日本電気株式会社 プロトコル変換装置とそのプロトコル変換方法、及びプロトコル変換プログラム
US8019807B2 (en) * 2001-05-23 2011-09-13 Wireless Enterprise Solutions Technology Limited Method and system for communication between computer systems
WO2002098100A1 (en) * 2001-05-31 2002-12-05 Preventon Technologies Limited Access control systems
US7730528B2 (en) * 2001-06-01 2010-06-01 Symantec Corporation Intelligent secure data manipulation apparatus and method
US7624184B1 (en) * 2001-06-06 2009-11-24 Cisco Technology, Inc. Methods and apparatus for managing access to data through a network device
US20020188730A1 (en) * 2001-06-12 2002-12-12 Wenting Tang Method and system for a modular transmission control protocol (TCP) frequent-handoff design in a streams based transmission control protocol internet protocol (TCP/IP) implementation
US7068655B2 (en) * 2001-06-14 2006-06-27 Nortel Networks Limited Network address and/or port translation
US20030009561A1 (en) * 2001-06-14 2003-01-09 Sollee Patrick N. Providing telephony services to terminals behind a firewall and /or network address translator
US7881208B1 (en) 2001-06-18 2011-02-01 Cisco Technology, Inc. Gateway load balancing protocol
KR100405113B1 (ko) * 2001-06-22 2003-11-10 주식회사 엑스큐어넷 네트워크상에서의 투명한 게이트웨이 또는 투명한 프록시구현 방법
US8041814B2 (en) * 2001-06-28 2011-10-18 International Business Machines Corporation Method, system and computer program product for hierarchical load balancing
US7908472B2 (en) * 2001-07-06 2011-03-15 Juniper Networks, Inc. Secure sockets layer cut through architecture
US7149892B2 (en) 2001-07-06 2006-12-12 Juniper Networks, Inc. Secure sockets layer proxy architecture
US7853781B2 (en) * 2001-07-06 2010-12-14 Juniper Networks, Inc. Load balancing secure sockets layer accelerator
US7228412B2 (en) * 2001-07-06 2007-06-05 Juniper Networks, Inc. Bufferless secure sockets layer architecture
US7409420B2 (en) * 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US7702791B2 (en) * 2001-07-16 2010-04-20 Bea Systems, Inc. Hardware load-balancing apparatus for session replication
US20030023898A1 (en) * 2001-07-16 2003-01-30 Jacobs Dean Bernard Layered architecture for data replication
US7571215B2 (en) * 2001-07-16 2009-08-04 Bea Systems, Inc. Data replication protocol
US6918013B2 (en) * 2001-07-16 2005-07-12 Bea Systems, Inc. System and method for flushing bean cache
US6981029B1 (en) * 2001-07-17 2005-12-27 Cisco Technology, Inc. System and method for processing a request for information in a network
US7774492B2 (en) * 2001-07-26 2010-08-10 Citrix Systems, Inc. System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side net work connections
US7543067B2 (en) * 2001-08-01 2009-06-02 Canon Kabushiki Kaisha Flexible secure network data transfer and messaging
EP1415232B1 (de) 2001-08-08 2015-01-14 Flash Networks Ltd. SYSTEM UND VERFAHREN ZUr BESCHLEUNIGUNG DER ÜBERMITTLUNG VON INHALT AUF TCP/IP-BASIS
US20030046230A1 (en) * 2001-08-30 2003-03-06 Jacobs Dean Bernard Method for maintaining account consistency
US7028030B2 (en) * 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
US20030046419A1 (en) * 2001-08-31 2003-03-06 King Peter F. Stateful load balancing
US6826601B2 (en) * 2001-09-06 2004-11-30 Bea Systems, Inc. Exactly one cache framework
WO2003023633A1 (en) * 2001-09-06 2003-03-20 Bea Systems, Inc. Exactly once cache framework
US7113980B2 (en) * 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
CN1158615C (zh) 2001-09-06 2004-07-21 华为技术有限公司 对流媒体服务器实现负载均衡的方法和设备
US7475157B1 (en) * 2001-09-14 2009-01-06 Swsoft Holding, Ltd. Server load balancing system
US7089312B2 (en) * 2001-09-20 2006-08-08 Intel Corporation System and method for reducing retransmissions due to tunneled TCP-in-TCP communication in a network
JP4053269B2 (ja) * 2001-09-27 2008-02-27 株式会社東芝 データ転送装置およびデータ転送方法
US6839758B2 (en) * 2001-09-28 2005-01-04 Intel Corporation Network processor for cache array routing
US7155478B2 (en) * 2001-10-03 2006-12-26 International Business Machines Corporation Selectively handling data processing requests in a computer communications network
JP2003122658A (ja) * 2001-10-11 2003-04-25 Hitachi Ltd データ配送方法
US20030093566A1 (en) * 2001-11-09 2003-05-15 Jardin Cary A. System and method for network and application transparent database acceleration
US7149809B2 (en) * 2001-11-13 2006-12-12 One Touch Systems System for reducing server loading during content delivery
US7650420B2 (en) * 2001-12-28 2010-01-19 The Directv Group, Inc. System and method for content filtering
US8090866B1 (en) * 2002-01-18 2012-01-03 Cisco Technology, Inc. TCP proxy connection management in a gigabit environment
US7930704B2 (en) * 2002-02-06 2011-04-19 Oracle International Corporation J2EE component extension architecture
US20030149755A1 (en) * 2002-02-06 2003-08-07 Emek Sadot Client-controlled load balancer
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
WO2003073311A1 (en) * 2002-02-21 2003-09-04 Bea Systems, Inc. System and method for message driven bean service migration
US7403996B2 (en) * 2002-02-21 2008-07-22 Bea Systems, Inc. Systems and methods for migratable services
US7152181B2 (en) * 2002-02-22 2006-12-19 Bea Systems, Inc. Method for highly available transaction recovery for transaction processing systems
US7178050B2 (en) * 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
WO2003073206A2 (en) * 2002-02-22 2003-09-04 Bea Systems, Inc. System and method for using a data replication service to manage a configuration repository
US8224986B1 (en) * 2002-03-07 2012-07-17 Cisco Technology, Inc. Methods and apparatus for redirecting requests for content
US7313635B1 (en) * 2002-03-21 2007-12-25 Cisco Technology Method and apparatus for simulating a load on an application server in a network
WO2003083692A1 (en) * 2002-03-27 2003-10-09 First Virtual Communications System and method for traversing firewalls with protocol communications
DE60229796D1 (de) 2002-04-05 2008-12-18 Ericsson Telefon Ab L M Objekttransferpriorität in einem Kommunikationsnetzwerk
US7133905B2 (en) * 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US7640347B1 (en) * 2002-05-02 2009-12-29 F5 Networks, Inc. Method and system for inserting POST data into the GET request to apply normal caching rules
US7676579B2 (en) * 2002-05-13 2010-03-09 Sony Computer Entertainment America Inc. Peer to peer network communication
US7437451B2 (en) * 2002-05-16 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for collecting desired information for network transactions at the kernel level
US8392499B2 (en) * 2002-05-16 2013-03-05 Hewlett-Packard Development Company, L.P. System and method for relating aborted client accesses of data to quality of service provided by a server in a client-server network
US7487508B2 (en) * 2002-05-16 2009-02-03 Hewlett-Packard Development Company, L.P. System and method for reconstructing client web page accesses from captured network packets
US20030229846A1 (en) * 2002-06-07 2003-12-11 Anil Sethi System and method for capturing digital data directly from an electronic device and processing the data into XML form on a computer chip
US7173933B1 (en) * 2002-06-10 2007-02-06 Cisco Technology, Inc. System and method for providing source awareness in a network environment
US20030233470A1 (en) * 2002-06-12 2003-12-18 International Business Machines Corporation Network storage data redirection
US8028092B2 (en) 2002-06-28 2011-09-27 Aol Inc. Inserting advertising content
US20040143670A1 (en) * 2002-07-02 2004-07-22 Pratik Roychowdhury System, method and computer program product to avoid server overload by controlling HTTP denial of service (DOS) attacks
US8370420B1 (en) * 2002-07-11 2013-02-05 Citrix Systems, Inc. Web-integrated display of locally stored content objects
US7506342B2 (en) * 2002-07-23 2009-03-17 Bea Systems, Inc. System and method for implementing J2EE connector architecture
US8224985B2 (en) * 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8060626B2 (en) 2008-09-22 2011-11-15 Sony Computer Entertainment America Llc. Method for host selection based on discovered NAT type
US7086061B1 (en) 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US7676576B1 (en) 2002-08-01 2010-03-09 Foundry Networks, Inc. Method and system to clear counters used for statistical tracking for global server load balancing
US7574508B1 (en) * 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US7571206B2 (en) * 2002-08-12 2009-08-04 Equallogic, Inc. Transparent request routing for a partitioned application service
US7698434B2 (en) * 2002-08-29 2010-04-13 Bea Systems, Inc. J2EE connector architecture
US7430755B1 (en) 2002-09-03 2008-09-30 Fs Networks, Inc. Method and system for providing persistence in a secure network access
US7058633B1 (en) * 2002-09-09 2006-06-06 Cisco Technology, Inc. System and method for generalized URL-rewriting
JP3445986B1 (ja) * 2002-09-27 2003-09-16 松下電器産業株式会社 インターネットに接続するサーバ、機器および通信システム
US7774325B2 (en) * 2002-10-17 2010-08-10 Intel Corporation Distributed network attached storage system
US7302674B1 (en) * 2002-11-26 2007-11-27 Unisys Corporation Automating document reviews in a project management system
US7114006B2 (en) 2003-01-06 2006-09-26 International Business Machines Corporation Apparatus and method to remotely change IP address of server
US7386619B1 (en) * 2003-01-06 2008-06-10 Slt Logic, Llc System and method for allocating communications to processors in a multiprocessor system
US7082526B2 (en) 2003-03-14 2006-07-25 Elegent Technologies, Inc. Mechanism for intuitively invoking one or more auxiliary programs during a computer booting process
US7305479B1 (en) 2003-05-13 2007-12-04 Cisco Technology, Inc. Methods and apparatus for delivery of content requests within a content delivery network
US7760729B2 (en) * 2003-05-28 2010-07-20 Citrix Systems, Inc. Policy based network address translation
US6889160B2 (en) * 2003-05-30 2005-05-03 Hewlett-Packard Development Company, L.P. Simulation of network service test environments
US8352588B2 (en) * 2003-07-09 2013-01-08 Hewlett-Packard Development Company, L.P. Systems and methods for collecting data regarding network service operation
WO2005010715A2 (en) 2003-07-21 2005-02-03 Fusionone, Inc. Device message management system
US7516443B2 (en) * 2003-09-19 2009-04-07 International Business Machines Corporation Performing tests with ghost agents
US7493387B2 (en) * 2003-09-19 2009-02-17 International Business Machines Corporation Validating software in a grid environment using ghost agents
US9584360B2 (en) * 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US7447797B2 (en) * 2003-10-29 2008-11-04 International Business Machines Corporation Method and system for processing a service request associated with a particular priority level of service in a network data processing system using parallel proxies
US7058058B2 (en) * 2003-11-05 2006-06-06 Juniper Networks, Inc. Transparent optimization for transmission control protocol initial session establishment
US7564792B2 (en) * 2003-11-05 2009-07-21 Juniper Networks, Inc. Transparent optimization for transmission control protocol flow control
US7634509B2 (en) * 2003-11-07 2009-12-15 Fusionone, Inc. Personal information space management system and method
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
TWI241102B (en) * 2003-12-30 2005-10-01 Icp Electronics Inc System for actively updating encryption/decryption module in security gateway and method
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US7496651B1 (en) 2004-05-06 2009-02-24 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US9542076B1 (en) 2004-05-12 2017-01-10 Synchronoss Technologies, Inc. System for and method of updating a personal profile
JP2008500750A (ja) 2004-05-12 2008-01-10 フュージョンワン インコーポレイテッド 高度な連絡先識別システム
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8495305B2 (en) * 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US7827558B2 (en) * 2004-06-30 2010-11-02 Devicevm, Inc. Mechanism for enabling a program to be executed while the execution of an operating system is suspended
US7921226B2 (en) * 2004-07-20 2011-04-05 Alcatel-Lucent Usa Inc. User specific request redirection in a content delivery network
US7509422B2 (en) * 2004-07-21 2009-03-24 Microsoft Corporation System and method for locating web services
US8914522B2 (en) 2004-07-23 2014-12-16 Citrix Systems, Inc. Systems and methods for facilitating a peer to peer route via a gateway
KR20070037650A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 종단에서 게이트웨이로 패킷을 라우팅하기 위한 방법 및시스템
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US8224966B2 (en) * 2004-08-24 2012-07-17 Cisco Technology, Inc. Reproxying an unproxied connection
US7962569B2 (en) * 2004-09-08 2011-06-14 Cradlepoint, Inc. Embedded DNS
US8249052B2 (en) * 2004-09-08 2012-08-21 Cradlepoint, Inc. Automated access of an enhanced command set
US9294353B2 (en) * 2004-09-08 2016-03-22 Cradlepoint, Inc. Configuring a wireless router
US7764784B2 (en) * 2004-09-08 2010-07-27 Cradlepoint, Inc. Handset cradle
US20070254727A1 (en) * 2004-09-08 2007-11-01 Pat Sewall Hotspot Power Regulation
US20090172658A1 (en) * 2004-09-08 2009-07-02 Steven Wood Application installation
US8732808B2 (en) * 2004-09-08 2014-05-20 Cradlepoint, Inc. Data plan activation and modification
US9232461B2 (en) * 2004-09-08 2016-01-05 Cradlepoint, Inc. Hotspot communication limiter
US8477639B2 (en) 2004-09-08 2013-07-02 Cradlepoint, Inc. Communicating network status
US9237102B2 (en) * 2004-09-08 2016-01-12 Cradlepoint, Inc. Selecting a data path
US9584406B2 (en) * 2004-09-08 2017-02-28 Cradlepoint, Inc. Data path switching
US7490197B2 (en) * 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7774789B1 (en) 2004-10-28 2010-08-10 Wheeler Thomas T Creating a proxy object and providing information related to a proxy object
US8266631B1 (en) * 2004-10-28 2012-09-11 Curen Software Enterprises, L.L.C. Calling a second functionality by a first functionality
US7823169B1 (en) 2004-10-28 2010-10-26 Wheeler Thomas T Performing operations by a first functionality within a second functionality in a same or in a different programming language
WO2006050753A1 (en) * 2004-11-15 2006-05-18 Telefonaktiebolaget Lm Ericsson (Publ) Method for modifying mss
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7664879B2 (en) * 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
JP2006155188A (ja) * 2004-11-29 2006-06-15 Sony Corp 情報処理システム、情報提供装置および方法、電子機器および方法、情報処理装置および方法、記録媒体、並びにプログラム
US7987272B2 (en) * 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7398382B2 (en) * 2004-12-29 2008-07-08 Intel Corporation Method and apparatus to enhance platform boot efficiency
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US9118717B2 (en) * 2005-02-18 2015-08-25 Cisco Technology, Inc. Delayed network protocol proxy for packet inspection in a network
US7685289B2 (en) * 2005-03-15 2010-03-23 International Business Machines Corporation Method and apparatus for proxying initial client requests to support asynchronous resource initialization
US20060248194A1 (en) * 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
US7797688B1 (en) 2005-03-22 2010-09-14 Dubagunta Saikumar V Integrating applications in multiple languages
US7861212B1 (en) 2005-03-22 2010-12-28 Dubagunta Saikumar V System, method, and computer readable medium for integrating an original application with a remote application
US8589561B2 (en) * 2005-03-22 2013-11-19 Alcatel Lucent Session level technique for improving web browsing performance on low speed links
US8578349B1 (en) 2005-03-23 2013-11-05 Curen Software Enterprises, L.L.C. System, method, and computer readable medium for integrating an original language application with a target language application
WO2006125183A2 (en) * 2005-05-19 2006-11-23 Fusionone, Inc. Mobile device address book builder
US8667184B2 (en) 2005-06-03 2014-03-04 Qnx Software Systems Limited Distributed kernel operating system
US7840682B2 (en) 2005-06-03 2010-11-23 QNX Software Systems, GmbH & Co. KG Distributed kernel operating system
US7719995B2 (en) * 2005-09-09 2010-05-18 Zeugma Systems Inc. Application driven fast unicast flow replication
US7818454B2 (en) * 2005-09-15 2010-10-19 Hostway Corporation Host migration system
US20070061465A1 (en) * 2005-09-15 2007-03-15 Hostway Corporation Host migration system
US7886068B1 (en) * 2005-10-27 2011-02-08 Network Appliance, Inc. Management of streaming media playlists
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
CN1997006B (zh) * 2006-01-06 2011-06-22 鸿富锦精密工业(深圳)有限公司 网络通信中转控制系统及方法
JP2009524355A (ja) * 2006-01-20 2009-06-25 パックスファイアー インコーポレイテッド 通信トラフィックを判別し、制御するためのシステムおよび方法
US8966113B2 (en) * 2006-03-03 2015-02-24 Cisco Technology, Inc. Technique for dynamically restoring original TE-LSP attributes for interdomain TE-LSPs
US8447802B2 (en) 2006-03-08 2013-05-21 Riverbed Technology, Inc. Address manipulation to provide for the use of network tools even when transaction acceleration is in use over a network
US8819181B2 (en) * 2006-03-17 2014-08-26 Apple Inc. Adaptable network service access through dynamic request routing
JP4702151B2 (ja) * 2006-04-10 2011-06-15 パナソニック株式会社 ネットワーク中継装置およびネットワーク通信システム
JP4632450B2 (ja) * 2006-04-17 2011-02-16 キヤノン株式会社 通信装置及びその制御方法
US7810140B1 (en) 2006-05-23 2010-10-05 Lipari Paul A System, method, and computer readable medium for processing a message in a transport
US7941560B1 (en) 2006-07-14 2011-05-10 Intuit Inc. Client caching of target addresses for network requests
US7844759B1 (en) 2006-07-28 2010-11-30 Cowin Gregory L System, method, and computer readable medium for processing a message queue
US8566452B1 (en) 2006-08-03 2013-10-22 F5 Networks, Inc. Intelligent HTTP based load-balancing, persistence, and application traffic management of SSL VPN tunnels
US8079077B2 (en) 2006-08-08 2011-12-13 A10 Networks, Inc. System and method for distributed multi-processing security gateway
US8332925B2 (en) * 2006-08-08 2012-12-11 A10 Networks, Inc. System and method for distributed multi-processing security gateway
EP2067337B1 (de) 2006-09-29 2018-04-25 Nomadix, Inc. Systeme und verfahren zur inhaltseinspeisung
US20080091868A1 (en) * 2006-10-17 2008-04-17 Shay Mizrachi Method and System for Delayed Completion Coalescing
US20080115202A1 (en) * 2006-11-09 2008-05-15 Mckay Michael S Method for bidirectional communication in a firewalled environment
US7702602B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Moving and agent with a canonical rule from one device to a second device
US8423496B1 (en) 2006-12-22 2013-04-16 Curen Software Enterprises, L.L.C. Dynamic determination of needed agent rules
US7698243B1 (en) 2006-12-22 2010-04-13 Hauser Robert R Constructing an agent in a first execution environment using canonical rules
US7860517B1 (en) 2006-12-22 2010-12-28 Patoskie John P Mobile device tracking using mobile agent location breadcrumbs
US7660780B1 (en) 2006-12-22 2010-02-09 Patoskie John P Moving an agent from a first execution environment to a second execution environment
US7702604B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Constructing an agent that utilizes supplied rules and rules resident in an execution environment
US8132179B1 (en) 2006-12-22 2012-03-06 Curen Software Enterprises, L.L.C. Web service interface for mobile agents
US20080155016A1 (en) * 2006-12-22 2008-06-26 Tsai Wei K Content procurement architecture
US7664721B1 (en) 2006-12-22 2010-02-16 Hauser Robert R Moving an agent from a first execution environment to a second execution environment using supplied and resident rules
US7660777B1 (en) 2006-12-22 2010-02-09 Hauser Robert R Using data narrowing rule for data packaging requirement of an agent
US7949626B1 (en) * 2006-12-22 2011-05-24 Curen Software Enterprises, L.L.C. Movement of an agent that utilizes a compiled set of canonical rules
US7702603B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Constructing an agent that utilizes a compiled set of canonical rules
US9311141B2 (en) 2006-12-22 2016-04-12 Callahan Cellular L.L.C. Survival rule usage by software agents
US7970724B1 (en) 2006-12-22 2011-06-28 Curen Software Enterprises, L.L.C. Execution of a canonical rules based agent
US8200603B1 (en) 2006-12-22 2012-06-12 Curen Software Enterprises, L.L.C. Construction of an agent that utilizes as-needed canonical rules
US9021081B2 (en) * 2007-02-12 2015-04-28 Cradlepoint, Inc. System and method for collecting individualized network usage data in a personal hotspot wireless network
US8644272B2 (en) * 2007-02-12 2014-02-04 Cradlepoint, Inc. Initiating router functions
US20080205388A1 (en) * 2007-02-22 2008-08-28 Microsoft Corporation Discovery of network devices logically located between a client and a service
US9021140B2 (en) * 2007-03-12 2015-04-28 Citrix Systems, Inc. Systems and methods for error detection
US8572160B2 (en) * 2007-03-12 2013-10-29 Citrix Systems, Inc. Systems and methods for script injection
US20080235326A1 (en) * 2007-03-21 2008-09-25 Certeon, Inc. Methods and Apparatus for Accelerating Web Browser Caching
US7743160B2 (en) * 2007-03-29 2010-06-22 Blue Coat Systems, Inc. System and method of delaying connection acceptance to support connection request processing at layer-7
KR20080090053A (ko) * 2007-04-03 2008-10-08 삼성전자주식회사 네트워크 브리지장치 및 그의 통신방법
US7995478B2 (en) * 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
TW200847711A (en) * 2007-05-31 2008-12-01 Wistron Corp Method and related system for building up a network connection between clients and servers through a stream fork by utilizing http protocol
US20080298366A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation Agnostic Network Architecture
FR2917257B1 (fr) 2007-06-08 2009-07-17 Alcatel Lucent Sas Routage mms utilisant un serveur de mandataire transparent
US8615008B2 (en) 2007-07-11 2013-12-24 Foundry Networks Llc Duplicating network traffic through transparent VLAN flooding
US7933273B2 (en) * 2007-07-27 2011-04-26 Sony Computer Entertainment Inc. Cooperative NAT behavior discovery
US8121117B1 (en) 2007-10-01 2012-02-21 F5 Networks, Inc. Application layer network traffic prioritization
US8248928B1 (en) 2007-10-09 2012-08-21 Foundry Networks, Llc Monitoring server load balancing
TW200929974A (en) * 2007-11-19 2009-07-01 Ibm System and method for performing electronic transactions
US8171123B2 (en) 2007-12-04 2012-05-01 Sony Computer Entertainment Inc. Network bandwidth detection and distribution
US8181111B1 (en) 2007-12-31 2012-05-15 Synchronoss Technologies, Inc. System and method for providing social context to digital activity
US7856506B2 (en) 2008-03-05 2010-12-21 Sony Computer Entertainment Inc. Traversal of symmetric network address translator for multiple simultaneous connections
US8667175B2 (en) * 2008-03-13 2014-03-04 Cisco Technology, Inc. Server selection for routing content to a client using application layer redirection
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
EP2274684A4 (de) 2008-04-04 2012-12-05 Level 3 Communications Llc Umgang mit long-tail-inhalt in einem inhaltsablieferungsnetzwerk (cdn)
US7861001B2 (en) 2008-04-29 2010-12-28 Microsoft Corporation Transport independent redirection
EP2299365A4 (de) * 2008-05-12 2014-12-03 Creative Link Corp Verfahren zur erzeugung einer webseite, webseitenerzeugungssystem, verknüpfungsdienstgeräte und computerprogramm
US7788351B2 (en) * 2008-05-27 2010-08-31 Microsoft Corporation Scalable transfer feedback
US7783731B2 (en) * 2008-05-27 2010-08-24 Microsoft Corporation Firmware cache coherence
CN101662464A (zh) 2008-08-26 2010-03-03 阿里巴巴集团控股有限公司 一种用于实现http请求服务的系统及其方法
EP2173077A1 (de) * 2008-10-06 2010-04-07 Alcatel, Lucent Gemeinsames Inhaltsadressierprotokoll
US8131822B2 (en) * 2009-07-01 2012-03-06 Suresh Srinivasan Access of elements for a secure web page through a non-secure channel
US20110030037A1 (en) 2009-07-07 2011-02-03 Vadim Olshansky Zone migration in network access
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8255006B1 (en) 2009-11-10 2012-08-28 Fusionone, Inc. Event dependent notification system and method
US8806056B1 (en) 2009-11-20 2014-08-12 F5 Networks, Inc. Method for optimizing remote file saves in a failsafe way
US20110154469A1 (en) * 2009-12-17 2011-06-23 At&T Intellectual Property Llp Methods, systems, and computer program products for access control services using source port filtering
US8769156B2 (en) * 2009-12-23 2014-07-01 Citrix Systems, Inc. Systems and methods for maintaining transparent end to end cache redirection
CN101841573B (zh) * 2010-01-20 2013-08-07 中国科学院计算机网络信息中心 互联网地址信息处理方法、装置以及互联网系统
US9923995B1 (en) * 2010-02-27 2018-03-20 Sitting Man, Llc Methods, systems, and computer program products for sharing information for detecting an idle TCP connection
US9009330B2 (en) 2010-04-01 2015-04-14 Cloudflare, Inc. Internet-based proxy service to limit internet visitor connection speed
US9049247B2 (en) 2010-04-01 2015-06-02 Cloudfare, Inc. Internet-based proxy service for responding to server offline errors
US9420049B1 (en) 2010-06-30 2016-08-16 F5 Networks, Inc. Client side human user indicator
US9503375B1 (en) 2010-06-30 2016-11-22 F5 Networks, Inc. Methods for managing traffic in a multi-service environment and devices thereof
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
AU2010358711B2 (en) * 2010-08-03 2016-05-26 Ht S.R.L. Method and device for network traffic manipulation
US8887012B2 (en) * 2010-08-24 2014-11-11 Advanced Micro Devices, Inc. Method and apparatus for saving and restoring soft repair data
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US8943428B2 (en) 2010-11-01 2015-01-27 Synchronoss Technologies, Inc. System for and method of field mapping
CN103597471B (zh) 2010-12-30 2017-05-17 皮尔爱普有限公司 用于对计算机网络上的数据通信进行缓存的方法和系统
WO2012092586A2 (en) 2010-12-30 2012-07-05 Peerapp Ltd. Methods and systems for transmission of data over computer networks
US20120209990A1 (en) * 2011-02-13 2012-08-16 Openwave Systems Inc. Method and system for providing a zero rating service to an end-user device
US8688817B2 (en) 2011-03-14 2014-04-01 Edgecast Networks, Inc. Network connection hand-off using state transformations
US9654601B2 (en) 2011-03-14 2017-05-16 Verizon Digital Media Services Inc. Network connection hand-off and hand-back
US9130899B1 (en) 2011-04-27 2015-09-08 Cisco Technology, Inc. Integrated user interface for unified communications applications
WO2012158854A1 (en) 2011-05-16 2012-11-22 F5 Networks, Inc. A method for load balancing of requests' processing of diameter servers
US8285808B1 (en) 2011-05-20 2012-10-09 Cloudflare, Inc. Loading of web resources
US9225763B2 (en) * 2011-06-07 2015-12-29 Cisco Technology, Inc. Distributed overlay browser for transparent streaming media support in virtualized desktop environment
US8769011B2 (en) * 2011-06-21 2014-07-01 Cisco Technology, Inc. Survivable browsing in virtualized desktop environment when host connectivity is lost
US8745266B2 (en) * 2011-06-30 2014-06-03 Citrix Systems, Inc. Transparent layer 2 redirection of request to single sign in service based on applying policy to content of request
US8396836B1 (en) 2011-06-30 2013-03-12 F5 Networks, Inc. System for mitigating file virtualization storage import latency
US9747592B2 (en) * 2011-08-16 2017-08-29 Verizon Digital Media Services Inc. End-to-end content delivery network incorporating independently operated transparent caches and proxy caches
US9026670B2 (en) * 2011-08-22 2015-05-05 Allot Communications Ltd. System and method for efficient caching and delivery of adaptive bitrate streaming
US8463850B1 (en) 2011-10-26 2013-06-11 F5 Networks, Inc. System and method of algorithmically generating a server side transaction identifier
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9244843B1 (en) 2012-02-20 2016-01-26 F5 Networks, Inc. Methods for improving flow cache bandwidth utilization and devices thereof
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US9462071B2 (en) * 2012-03-06 2016-10-04 Cisco Technology, Inc. Spoofing technique for transparent proxy caching
US9215127B2 (en) * 2012-03-12 2015-12-15 Network Coding, Inc. Non-intrusive proxy system and method for applications without proxy support
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
US8572720B1 (en) 2013-05-20 2013-10-29 Wayne Odom System, method, and device for communicating and storing and delivering data
US8844054B2 (en) 2012-04-06 2014-09-23 Wayne Odom System, method, and device for communicating and storing and delivering data
US9378339B2 (en) 2012-04-06 2016-06-28 Wayne Odom System, method, and device for delivering communications and storing and delivering data
US8677510B2 (en) 2012-04-06 2014-03-18 Wayne Odom System, method, and device for communicating and storing and delivering data
US8448236B1 (en) 2012-12-07 2013-05-21 Wayne Odom System, method, and device for storing and delivering data
US9043934B2 (en) 2012-04-06 2015-05-26 Wayne Odom System, method, and device for delivering communications and storing and delivering data
WO2013163648A2 (en) 2012-04-27 2013-10-31 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US9596286B2 (en) 2012-05-25 2017-03-14 A10 Networks, Inc. Method to process HTTP header with hardware assistance
US8925059B2 (en) * 2012-06-08 2014-12-30 Lockheed Martin Corporation Dynamic trust connection
US9442618B2 (en) * 2012-09-17 2016-09-13 Sap Se Mobile device interface generator
WO2014052099A2 (en) 2012-09-25 2014-04-03 A10 Networks, Inc. Load distribution in data networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
CN103699367B (zh) * 2012-09-27 2017-07-07 中国电信股份有限公司 Http应用程序接口调用方法与装置
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
CN103731447B (zh) * 2012-10-11 2019-03-26 腾讯科技(深圳)有限公司 一种数据查询方法及系统
US9578090B1 (en) 2012-11-07 2017-02-21 F5 Networks, Inc. Methods for provisioning application delivery service and devices thereof
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9497614B1 (en) 2013-02-28 2016-11-15 F5 Networks, Inc. National traffic steering device for a better control of a specific wireless/LTE network
US9634935B2 (en) 2013-04-24 2017-04-25 Secured Connectivity, Llc Method, name server, and system for directing network traffic utilizing profile records
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
US9654473B2 (en) 2013-06-28 2017-05-16 Bmc Software, Inc. Authentication proxy agent
US10951726B2 (en) 2013-07-31 2021-03-16 Citrix Systems, Inc. Systems and methods for performing response based cache redirection
US9009461B2 (en) * 2013-08-14 2015-04-14 Iboss, Inc. Selectively performing man in the middle decryption
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
WO2015074171A1 (en) * 2013-11-19 2015-05-28 Telefonaktiebolaget L M Ericsson (Publ) Testing the performance of a layer 3 proxy device using traffic amplification
US9565138B2 (en) 2013-12-20 2017-02-07 Brocade Communications Systems, Inc. Rule-based network traffic interception and distribution scheme
US20150188999A1 (en) * 2013-12-28 2015-07-02 Johnson Manuel-Devadoss System and method to extend the capabilities of a web browser to improve the web application performance
US9686343B2 (en) 2013-12-31 2017-06-20 Amadeus S.A.S. Metasearch redirection system and method
US9648542B2 (en) 2014-01-28 2017-05-09 Brocade Communications Systems, Inc. Session-based packet routing for facilitating analytics
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
WO2015164079A1 (en) * 2014-04-25 2015-10-29 Cisco Technology, Inc. Managing sequence values with added headers in computing devices
US9848067B2 (en) * 2014-04-25 2017-12-19 Cisco Technology, Inc. Managing sequence values with added headers in computing devices
CA2950453C (en) * 2014-06-13 2022-12-06 Teclo Networks Ag Proxy node for transferring packets between a server and a client using port sharding
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US20180270300A1 (en) * 2014-10-07 2018-09-20 Interdigital Patent Holdings, Inc. Supporting internet protocol (ip) clients in an information centric network (icn)
AU2014101252B4 (en) * 2014-10-15 2015-04-23 Parametric Systems Pty Ltd Net2Core - An Innovative Computer Systems Design to Protect Computer Systems where System Access through the Internet is Desired or Required.
WO2016075762A1 (ja) * 2014-11-11 2016-05-19 株式会社シンメトリック Webページの編集のためのデータ処理システム、データ処理装置、およびプログラム
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
EP3070911A1 (de) * 2015-03-20 2016-09-21 Ucopia Communications Zugangskontrollverfahren für ein privates netz
US9866478B2 (en) 2015-03-23 2018-01-09 Extreme Networks, Inc. Techniques for user-defined tagging of traffic in a network visibility system
US10911353B2 (en) 2015-06-17 2021-02-02 Extreme Networks, Inc. Architecture for a network visibility system
US10771475B2 (en) 2015-03-23 2020-09-08 Extreme Networks, Inc. Techniques for exchanging control and configuration information in a network visibility system
US10129088B2 (en) 2015-06-17 2018-11-13 Extreme Networks, Inc. Configuration of rules in a network visibility system
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
WO2016183559A1 (en) 2015-05-14 2016-11-17 Walleye Software, LLC Persistent query dispatch and execution architecture
US10057126B2 (en) 2015-06-17 2018-08-21 Extreme Networks, Inc. Configuration of a network visibility system
US10530688B2 (en) 2015-06-17 2020-01-07 Extreme Networks, Inc. Configuration of load-sharing components of a network visibility router in a network visibility system
US10771391B2 (en) * 2015-11-05 2020-09-08 Hewlett Packard Enterprise Development Lp Policy enforcement based on host value classification
EP3384660B1 (de) * 2015-12-04 2021-11-24 ViaSat, Inc. Beschleunigung der verbindungen zu einem hostserver
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10187475B2 (en) * 2015-12-31 2019-01-22 Hughes Network Systems, Llc Method and system for automatically bypassing network proxies in the presence of interdependent traffic flows
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
EP3200429B1 (de) 2016-02-01 2019-04-17 Volkswagen Aktiengesellschaft Verfahren zum abrufen eines datenstroms von einem server sowie fahrzeug mit einem netzwerkzugriffspunkt
US10243813B2 (en) 2016-02-12 2019-03-26 Extreme Networks, Inc. Software-based packet broker
US10999200B2 (en) 2016-03-24 2021-05-04 Extreme Networks, Inc. Offline, intelligent load balancing of SCTP traffic
US9680801B1 (en) 2016-05-03 2017-06-13 Iboss, Inc. Selectively altering references within encrypted pages using man in the middle
CN105959228B (zh) * 2016-06-23 2020-06-16 华为技术有限公司 一种流量处理方法及透明缓存系统
US10567259B2 (en) 2016-10-19 2020-02-18 Extreme Networks, Inc. Smart filter generator
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US10866943B1 (en) 2017-08-24 2020-12-15 Deephaven Data Labs Llc Keyed row selection
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
LT3767493T (lt) 2017-08-28 2023-03-10 Bright Data Ltd. Būdas pagerinti turinio parsisiuntimą, naudojant tunelinius įrenginius
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
CN109547291A (zh) * 2018-12-06 2019-03-29 珠海西山居移动游戏科技有限公司 一种快速定位高频带宽消耗的方法及装置
CN109361784B (zh) * 2018-12-07 2021-09-21 成都知道创宇信息技术有限公司 一种在四层代理网络环境下获取客户端真实ip的方法
EP3750079A4 (de) 2019-02-25 2022-01-12 Bright Data Ltd System und verfahren für url-abrufneuversuchsmechanismus
WO2020202135A2 (en) 2019-04-02 2020-10-08 Luminati Networks Ltd. System and method for managing non-direct url fetching service
CN115428415A (zh) * 2020-04-16 2022-12-02 华为技术有限公司 使用可变长度地址在分层网络架构中转发报文的系统和方法
CN114329437B (zh) * 2022-03-14 2022-06-14 北京指掌易科技有限公司 一种数据处理方法、装置、设备以及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081829A (en) * 1996-01-31 2000-06-27 Silicon Graphics, Inc. General purpose web annotations without modifying browser
US6189030B1 (en) * 1996-02-21 2001-02-13 Infoseek Corporation Method and apparatus for redirection of server external hyper-link references
US5838910A (en) * 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
US5864852A (en) * 1996-04-26 1999-01-26 Netscape Communications Corporation Proxy server caching mechanism that provides a file directory structure and a mapping mechanism within the file directory structure
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US5905872A (en) * 1996-11-05 1999-05-18 At&T Corp. Method of transferring connection management information in world wideweb requests and responses
US6138162A (en) * 1997-02-11 2000-10-24 Pointcast, Inc. Method and apparatus for configuring a client to redirect requests to a caching proxy server based on a category ID with the request
US6065058A (en) * 1997-05-09 2000-05-16 International Business Machines Corp. Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy
US5987523A (en) * 1997-06-04 1999-11-16 International Business Machines Corporation Applet redirection for controlled access to non-orginating hosts
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6112212A (en) * 1997-09-15 2000-08-29 The Pangea Project Llc Systems and methods for organizing and analyzing information stored on a computer network
US5941954A (en) * 1997-10-01 1999-08-24 Sun Microsystems, Inc. Network message redirection
US6081900A (en) * 1999-03-16 2000-06-27 Novell, Inc. Secure intranet access

Also Published As

Publication number Publication date
US6389462B1 (en) 2002-05-14
DE69919965D1 (de) 2004-10-14
EP1011244B1 (de) 2004-09-08
EP1011244A2 (de) 2000-06-21
EP1011244A3 (de) 2002-06-05
CA2288488A1 (en) 2000-06-16

Similar Documents

Publication Publication Date Title
DE69919965T2 (de) Methode und Proxy Umleiteinrichtung zum transparenten Verweisen von Anfragen nach Web-Objekten auf Proxycaches
DE69837691T2 (de) Lastverteilung zwischen Servern in einem TCP/IP-Netz
DE60002396T2 (de) Verbindungsauswahlverfahren
DE69727447T2 (de) Übertragungstrennung und Ebene-3-Netzwerk-Vermittlung
DE60204528T2 (de) Auflösen von virtuellen Netzwerknamen
DE69927457T2 (de) Verfahren und Vorrichtung zur Cache-Speicherung von Informationen im Netzwerk
DE69726701T2 (de) Verfahren zur Übertragung von Verbindungsverwaltungsinformationen in World Wide Web Anforderungen und Antworten
DE69628724T2 (de) Netzknotenvorrichtung und Verbindungsaufbauverfahren zum Aufbauen von Durchgangsverbindungen
DE69433126T2 (de) Verfahren zum Einrichten von virtuellen Mehrfachsendeverbindungen
DE60310645T2 (de) Verhinderung von Paketzerteilung
DE60130011T2 (de) Http-multiplexer/demultiplexer
DE60121176T2 (de) Verfahren und System zur anforderungsorientierten Wiedererkennung von verbindungsorientierten Transaktionen
DE10392494B4 (de) Mechanismen zum Bereitstellen von Verbindbarkeit zwischen Netzen unterschiedlicher Adressbereiche
DE60302994T2 (de) Multicast Router mit Übersetzungsfunktion von Protokollen gemäß Any-Source-Multicast und Source-Specific-Multicast
DE60028018T2 (de) Verfahren und Anordnungen in einem Telekommunikationssystem
EP1887484B1 (de) Verfahren zum vorabübertragen strukturierter datenmengen zwischen einer clienteinrichtung und einer servereinrichtung
DE69730056T2 (de) Routen von duplikaten
DE69836673T2 (de) Verfahren und Vorrichtung zur Konfigurierung eines Netzknotens um sich selbst Netzübergang zu sein
DE60035969T2 (de) Verfahren und Anordnung zur Behandlung der Informationpakete durch vom Nutzer auswählbare Relaisknoten
DE60224356T2 (de) Adressenübersetzer, Verfahren und Vorrichtung zur Nachrichtenverarbeitung
DE60316745T2 (de) Erleichterung der beschleunigten Verarbeitung von Nachrichten des Internet Group Management Protokolls
DE60107392T2 (de) Verfahren und vorrichtung zur netzverkherskontrolle
DE112015006397B4 (de) DNS Optimierung für Multi-Source Download bei Hybridzugriff
DE60019206T2 (de) Verfahren und Vorrichtung zur vom Empfänger inizierten Wiederherstellung für das L2TP Protokoll
DE60300035T2 (de) Kommunikationssystem zum Aufbauen einer PPPoE ähnlichen Verbindung zwischen IEEE1394 basierten Peeren und IP basierten Peeren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition