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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1017—Server selection for load balancing based on a round robin mechanism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1019—Random or heuristic server selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1027—Persistence of sessions during load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/165—Combined use of TCP and UDP protocols; selection criteria therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation 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 und6 sind Flußdiagramme der Funktionsweise des Proxyumlenkers. - Ausführliche Beschreibung
- Mit Bezug auf
1 sind mehrere Klients101 -1 –101 -N mit einem lokalen Netzwerk (LAN)102 , wie zum Beispiel einem Ethernet, verbunden. Das LAN102 , das seinerseits durch einen Router103 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 Routers103 und des Proxyumlenkers104 in der Praxis in einer einzigen Einheit kombiniert werden. Alle Anforderungen von beliebigen der mit dem LAN102 verbundenen Klient von Objekten, die in Servern gespeichert sind, die mit dem Internet105 verbunden sind, durchqueren den Proxyumlenker104 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 Internet105 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 Klients101 -1 –101-N von einem beliebigen mit dem Internet105 verbundenen Server gerichteten Pakete werden durch den Proxyumlenker104 geleitet. - Wenn beliebige der mit den LAN
102 verbundenen Klients, wie zum Beispiel Klient101 -1 , durch einen Browser ein Objekt durch Spezifizieren einer logischen URL anfordert, wird auf einen lokal oder auf dem Internet105 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 Servern107 und109 , zugeordnet sein kann, kann die von dem DNS106 gewählte, an den Klient-Browser zurückgegebene bestimmte IP-Adresse im Reigenverfahren bestimmt werden. Wenn der DNS106 einen Ursprungsserver wählt, der der logischen URL entspricht, wird die IP-Adresse des gewählten Ursprungsservers, wie zum Beispiel die IP-Adresse des Ursprungsservers107 an den Browser in dem anfordernden Klient101 -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 Port80 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 Internet105 zu dem tatsächlichen Ursprungsserver107 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-Cache110 -1 beispielhaft mit einem LAN111 verbunden gezeigt, das durch einen Router112 mit dem LAN102 verbunden ist. Ein weiterer Proxy-Cache115 ist auf einem anderen LAN116 durch den Router103 verbunden gezeigt. Weitere Proxy-Caches können sich an einer beliebigen Stelle auf den LANs102 ,111 oder116 befinden, oder auf einem anderen LAN, der mit dem Internet105 verbunden ist, wie zum Beispiel dem Proxy-Cache117 . Der Proxyumlenker104 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 in2 gezeigt, enthält das programmierbare Netzwerkelement200 einen Dispatcher-Prozeß202 , mit dem mehrere verschiedene Gateway-Programme (204 ,205 und206 ) IP-Pakete, die auf spezifische Beschreibungen passen, registrieren und einen Zugriff auf diese anfordern. Solche Programme werden über einen lokalen Programminjektor211 oder einen abgesetzten Programminjektor212 durch einen Zulassungsdämon210 geladen. Ein Gateway-Programm kann zum Beispiel Zugriff auf ankommende Pakete zu der Netzwerkschnittstelle208 anfordern, die mit bestimmten Quellen- und Ziel-IP-Adressenbereichen und -Portnummern übereinstimmen. Der Dispatcher-Prozeß202 verwendet ein Paketfilter203 in dem Linux-Kern201 , um durch die Gateway-Programme angeforderte Pakete zu erhalten, und verwendet ein Raw-IP-Socket215 , um Pakete, die gemäß dem Gateway-Programm manipuliert wurden, zur Ausgabe zurück auf das Netzwerk durch das Filter203 durch die Netzwerkschnittstellen208 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 Proxyumlenkers104 . Damit der Proxyumlenker104 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 Proxyumlenkers104 an dieser falschen Portnummer auf, die eindeutig dem Klient zugeordnet ist. Das Gateway-Programm in dem Proxyumlenker104 ü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 Proxyumlenker104 zu einem Proxy-Cache gelenkt. Antwortpakete von dem Proxy-Cache werden zu dem Proxyumlenker104 gesendet und dort zu dem Klient101-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 Proxyumlenker104 abgefangen wird. Der Proxyumlenker104 wählt einen Proxy-Cache, wie zum Beispiel den Proxy110 -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 Proxy110 -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 Proxy110 -1 antwortet mit einem ACK-SYN-Paket, das über seine Zieladresse zu dem Proxyumlenker110 -1 umgelenkt wird. Der Proxyumlenker104 ü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 Proxyumlenker104 zu dem Proxy-Cache110 -1 umgelenkt wird, um den Handshaking-Prozeß abzuschließen. - Nachdem die TCP-Verbindung zwischen dem Klient
101 -1 und Proxy-Cache110 -1 hergestellt wurde, sendet der Klient101 -1 ein oder mehrere Pakete, die eine an den Ursprungsserver adressierte GET-Anforderung enthalten. Solche Pakete werden also von dem Proxyumlenker104 „erfaßt" und zu dem Proxy-Cache110 -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 Proxiumlenkers104 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 an einem GET-Paket durchgeführt werden, das von einem Klient
101 -1 an dem Proxyumlenker104 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-Cache110 -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-Cache110 -1 der GET-Anforderung durchgeführt werden. Tabelle 2 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 Klient101 -1 nicht bewußt ist, daß ein Proxyumlenker die Länge des GET-Pakets um 21 Byte vergrößert hat, verkleinert der Proxyumlenker104 das Feld ack_seq um die Anzahl der hinzugefügten Byte (21). Ferner übersetzt der Proxyumlenker104 diese Ziel-IP-Adresse und Portnummer in die des Klient101-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 Proxyumlenker104 von dem Proxy-Cache110 -1 zu dem Klient101 -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 Proxyumlenker104 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-Cache110 -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. - Alle nachfolgenden Pakete, die von dem Klient
101 -1 an den Ursprungsserver gerichtet werden, werden ähnlich modifiziert, bevor sie zu dem Proxy-Cache110 -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 Klient101 -1 an einen Ursprungsserver adressierten Paketen und an allen durch den Proxy-Cache110 -1 an den Proxyumlenker104 zur Rückgabe an den Klient adressierten Paketen eine NAT und PAT durch. Der Proxyumlenker104 führt also an diesen in beiden Richtungen fließenden Paketen eine NAT und eine PAT durch. Wenn der Proxyumlenker104 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 Klient101 -1 adressiert sind, aufgrund der Netzwerkkonfiguration durch den Proxyumlenker104 laufen müssen, dann muß der Proxyumlenker an den durch ihn fließenden Paketen nur eine Halb-NAT durchführen. Wenn der Proxyumlenker104 einen Proxy-Cache wie zum Beispiel den Proxy-Cache117 wählt, müssen genauer gesagt alle an den Klient101 -1 adressierten Pakete durch den Proxyumlenker104 laufen. Der Proxyumlenker104 muß also nur die Ziel-IP-Adresse und -Portnummer von Paketen von dem Klient101 -1 in die IP-Adresse und Portnummer des Proxy-Cache117 transformieren, während die Quellen-IP-Adresse und -Portnummer als die des Klient101 -1 erhalten werden. Die von dem Proxy-Cache117 zurückgegebenen Pakete werden also an die IP-Adresse und Portnummer des Klient adressiert. Wenn sie durch den Proxyumlenker104 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 und4 zeigen zusammen Flußdiagramme der Funktionen des Proxyumlenkers104 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 Schritt301 kommt ein SYN-Paket von dem Klient an dem Proxyumlenker an. Im Schritt302 wählt der Proxyumlenker einen Proxy-Cache auf der Basis eines Lastausgleichalgorithmus oder einer willkürlichen oder zufälligen Auswahl. Im Schritt303 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 Schritt304 wird eine PAT durchgeführt, wobei sport in das einer falschen Ghost-Portnummer und dport in die Portnummer des Proxy umgeändert wird. Im Schritt305 wird das SYN-Paket zu dem Proxy gesendet. Als Reaktion auf dieses SYN-Paket antwortet der Proxy im Schritt306 mit einem SYN-ACK-Paket, das einen MSS-Parameter in dem TCP-Kopfteil enthält. Im Schritt307 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 Schritt308 wird das MSS-Feld verändert, indem der Wert der aus dem Proxy empfangenen MSS um 22 reduziert wird. Im Schritt309 wird das ACK-SYN-Paket zum Klient gesendet. Im Schritt310 empfängt der Proxyumlenker ein Antwort-ACK-Paket von dem Klient. Im Schritt311 werden eine volle NAT und PAT an diesem Paket durchgeführt, und im Schritt312 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 Schritt314 wird eine volle NAT durchgeführt, und im Schritt315 wird eine PAT durchgeführt. Im Entscheidungsschritt316 wird bestimmt, ob dies ein erstes Paket in der GET-Anforderung ist. Wenn dies der Fall ist, wird im Schritt317 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 Schritt316 das Paket nicht ein erstes Paket in einer GET-Anforderung ist, dann werden im Schritt318 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 Schritten316 oder318 wird im Schritt319 bestimmt, ob das aktuelle Paket das letzte Paket einer GET-Anforderung ist. Wenn nicht, wird im Schritt320 das aktuelle Paket zu dem Proxy gesendet und der Fluß kehrt zum Schritt313 zurück, um das nächste Paket in der GET-Anforderung von dem Klient zu empfangen. Wenn im Schritt319 das aktuelle Paket das letzte Paket in einer GET-Nachricht ist, dann wird im Schritt321 der Parameter pkt_len dieses Pakets verändert, um die Längenänderung des Pakets wiederzugeben. Im Schritt322 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 Schritt501 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 Schritt502 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 Schritt503 wird ack_seq um den in der vorherigen GET-Anforderung hinzugefügten Betrag vermindert. Im Schritt504 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 Schritt601 wird ein der GET-Anforderung nachfolgendes Paket von dem Klient empfangen. Im Schritt602 werden eine volle NAT und PAT durchgeführt. Im Schritt603 wird seq_no um den Betrag der durch Modifizieren der vorherigen GET-Anforderung hinzugefügten Byte vergrößert. Im Schritt604 wird das Paket zu dem Proxy gesendet. - In der obigen Besprechung von
3 ,4 ,5 und6 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 in3 ,4 ,5 und6 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 Proxyumlenker104 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)
- 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. - 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 1, wobei die Anforderungsnachricht eine GET-Anforderung ist.
- Verfahren nach Anspruch 1, wobei die Anforderungsnachricht eine POST-Anforderung ist.
- Verfahren nach Anspruch 1, wobei die Anforderungsnachricht eine HEAD-Anforderung ist.
- 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. - Proxy-Umlenker nach Anspruch 18, wobei das Mittel zum Modifizieren der Anforderungsnachricht ein dynamisch auf ein programmierbares Netzwerkelement geladenes Gateway-Programm ist.
- 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.
- 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.
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)
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)
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 |
-
1998
- 1998-12-16 US US09/212,980 patent/US6389462B1/en not_active Expired - Lifetime
-
1999
- 1999-11-03 CA CA002288488A patent/CA2288488A1/en not_active Abandoned
- 1999-12-07 DE DE69919965T patent/DE69919965T2/de not_active Expired - Lifetime
- 1999-12-07 EP EP99309826A patent/EP1011244B1/de not_active Expired - Lifetime
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 |