DE60130011T2 - Http-multiplexer/demultiplexer - Google Patents

Http-multiplexer/demultiplexer Download PDF

Info

Publication number
DE60130011T2
DE60130011T2 DE60130011T DE60130011T DE60130011T2 DE 60130011 T2 DE60130011 T2 DE 60130011T2 DE 60130011 T DE60130011 T DE 60130011T DE 60130011 T DE60130011 T DE 60130011T DE 60130011 T2 DE60130011 T2 DE 60130011T2
Authority
DE
Germany
Prior art keywords
server
http
socket
network device
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60130011T
Other languages
English (en)
Other versions
DE60130011D1 (en
Inventor
Christopher Campbell PEIFFER
Israel Redline Networks Inc. Campbell L'Heureux
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of DE60130011D1 publication Critical patent/DE60130011D1/de
Application granted granted Critical
Publication of DE60130011T2 publication Critical patent/DE60130011T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S370/00Multiplex communications
    • Y10S370/916Multiplexer/demultiplexer

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft im Allgemeinen die Datenübertragung in Computernetzwerken, und insbesondere ein Netzwerkgerät einschließlich eines Multiplexers/Demultiplexers für das Hypertext Transfer Protocol (HTTP).
  • Hintergrund der Erfindung
  • Das Internet hat in den letzten Jahren ein explosives Wachstum erfahren. Das Aufkommen des World Wide Web hat es Millionen von Nutzern auf der Welt ermöglicht, Quellen aus dem Web (Web-Ressourcen), die Text, Grafiken, Video und Klangdaten enthalten, leicht herunter zu laden, während sie sich zu Hause, bei der Arbeit oder an entfernten (remote) Stellen über drahtlose Geräte befinden. Diese Web-Ressourcen haben oft eine erhebliche Größe und benötigen daher eine lange Zeit, um herunter geladen zu werden, was beim Nutzer zu Verzögerungen und Frustration führt. Verzögerungen führen oft dazu, dass die Nutzer die angefragte Seite im Web (Web-Seite) aufgeben und sich einer anderen Web-Seite zuwenden, was bei kommerziellen Angeboten im Web (Websites) zu verlorenen Einnahmen führt und sie in ein schlechtes Licht rückt.
  • Ein Grund für die Verzögerung liegt in der Ansammlung von Hypertext Transfer Protocol (HTTP)-Anfragen innerhalb eines Puffers für das Transfer Control Protocol (TCP) eines Server-Sockets (logischer Anschluss im Server). Wenn ein Nutzer eine Webseite anfordert, sendet ein Webbrowser HTTP-Anfragen an ein Server-Socket über eine bestehende TCP-Verbindung. Wenn der Server die Anfragen an ein Socket nicht schnell genug bearbeitet, sammeln sich HTTP-Anfragen in dem TCP-Puffer für dieses Socket, was zu einer verzögerten Bearbeitung in diesem Socket führt.
  • Ein zusätzlicher Grund für die Verzögerung ist der Overhead (administrativer Aufwand) bei der Verarbeitung, der auf das Socket bezogen ist. Herkömmliche Netzwerksysteme öffnen ein Server-Socket für jeden Client, der sich mit dem Server verbindet, so dass der Server-Overhead dazu neigt, sich in Proportion mit der Anzahl der verbundenen Clients zu erhöhen. Ein gegebener Server kann nur einen begrenzten Overhead gleichzeitig effizient bewältigen. Daher begrenzt der Ansatz, ein Socket je Client (one-socket-per-client) zu verwenden, die Anzahl der Clients, die gleichzeitig auf einen Server zugreifen können, grundlegend. Diese Beschränkung ist in sicheren Umgebungen noch schwerwiegender, da aufgrund des Austausch von Schlüsseln und anderen sicherheitsbezogenen Aspekten noch mehr Overhead je Socket auftritt.
  • Es ist aus der WO 98/26559 bekannt, ein verteiltes Computersystem (distributed computing system) bereitzustellen und ein Verfahren zum Verteilen von Nutzeranfragen auf nachgebildete Netzwerk-Server (replicated network servers) zu verteilen).
  • Außerdem ist aus Goldszmidt, G.S. „Load Management for Scaling Up Internet Services"; NOMS 98; IEEE New Orleans, USA 15-20th Feb 1998; IEEE, US, vol. 3, 15th February 1998, pp 828-835, bekannt, ein Hilfsmittel bzw. Tool für die Lastverwaltung bei TCP/IP bereitzustellen.
  • Keines dieser Systeme gemäß dem Stand der Technik betrifft jedoch das Auswählen von einer aus einer Vielzahl von TCP-Verbindungen mit einem einzelnen Server, sondern lehren statt dessen das Auswählen aus einer Vielzahl von Servern.
  • Zusammenfassende Darstellung der Erfindung
  • Es werden ein System, ein Verfahren und ein Gerät zum Verbessern der Datenübertragung über ein Computernetzwerk bereitgestellt, wie in den angehängten Ansprüchen dargelegt wird.
  • Es können Mittel zum Multiplexen und Demultiplexen von HTTP-Anfragen und -Antworten bereitgestellt werden. Das Verfahren kann das Empfangen von HTTP-Anfragen von einer Vielzahl von Clients und das Weiterleiten dieser Anfragen an ein einzelnes Socket des Server-Systems beinhalten. Die HTTP-Anfragen können an ein spezielles Server-Socket weitergeleitet werden, und zwar basierend auf der Antwortzeit (response time) des Sockets, der Art oder der Größe der angefragten Daten und/oder auf anderen Parametern, die im Zusammenhang mit den HTTP-Anfragen stehen. Das Verfahren kann auch das Empfangen von HTTP-Antworten von dem Server-System und das selektive Weiterleiten dieser Anfragen an die entsprechenden Clients beinhalten.
  • Das Verfahren kann bei einem zwischengelagerten Netzwerkgerät beinhalten, HTTP-Anfragen von mehreren Ursprungs-Clients (originating clients) zu empfangen, die HTTP-Anfragen zu multiplexen und die multiplexten HTTP-Anfragen an ein optimales Server-Socket zu senden. Das Verfahren kann des Weiteren beinhalten, die HTTP-Antworten von dem Server-System zu empfangen, die HTTP-Antworten zu demultiplexen und die demultiplexten HTTP-Antworten an die entsprechenden Ursprungs-Clients zu senden.
  • Das System weist typischerweise ein Server-System auf, eine Vielzahl von Clients, die in der Lage sind, sich mit dem Server-System über ein Computernetzwerk zu verbinden, und ein Computernetzwerkgerät, das zwischen dem Server-System und den Clients im Computernetzwerk angeordnet ist. Das Computernetzwerkgerät hat typischerweise einen Multiplexer/Demultiplexer für HTTP, der in der Lage ist, HTTP-Anfragen von mehr als einem der Clients zu empfangen und diese Anfragen als eine multiplexte Übertragung an ein Socket in dem Server-System über eine TCP-Verbindung zu verteilen.
  • Das Gerät weist typischerweise einen Multiplexer/Demultiplexer für HTTP auf, der in der Lage ist, HTTP-Anfragen von einer Vielzahl von Clients zu empfangen und diese Anfragen in multiplexter Form an ein Server-System über eine TCP-Verbindung zu verteilen. Das Gerät ist typischerweise des Weiteren in der Lage, HTTP-Antworten von dem Server-System zu empfangen, die Antworten zu demultiplexen und die demultiplexten Antworten an die entsprechenden Clients zu leiten.
  • Kurze Beschreibung der Zeichnung
  • 1 ist eine schematische Ansicht einer Netzwerkkonfiguration gemäß dem Stand der Technik.
  • 2 ist eine schematische Darstellung eines Netzwerkgeräts und eines Systems gemäß der vorliegenden Erfindung, einschließlich eines Multiplexers/Demultiplexers für HTTP.
  • 3 ist eine schematische Ansicht des Netzwerkgeräts und des Systems gemäß der 2, in der die Merkmale bezüglich des Weiterleitens, des Multiplexens und des Demultiplexens gezeigt sind, für deren Ausführung das Gerät und das System ausgebildet sein kann.
  • 4 ist eine schematische Ansicht eines Client-Computergeräts, das mit dem Gerät und mit dem System gemäß der 2 verwendet werden kann.
  • 5 ist eine schematische Ansicht einer Ausführungsform des Netzwerkgeräts gemäß der 2.
  • 6 ist eine schematische Ansicht einer weiteren Ausführungsform des Netzwerkgeräts gemäß der 2.
  • 7 ist ein Flussdiagramm eines Verfahrens zum Demultiplexen und Multiplexen von HTTP-Anfragen und -Antworten gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Detaillierte Beschreibung der Erfindung
  • Zunächst sei auf 1 Bezug genommen, wo ein Netzwerksystem gemäß dem Stand der Technik allgemein mit 10 bezeichnet ist. Das System 10 weist eine Vielzahl von Remote-Clients (entfernte Clients) 12 und einen Server 14 auf. In dem System 10 ist eine einzelne Transmission Control Protocol (TCP)-Verbindung 16 zwischen jedem Remote-Client 12 und dem Server 14 aufgebaut. Jede TCP-Verbindung 16 wird zwischen einem einzelnen Socket 16a in jedem Remote-Client und einem entsprechenden Socket 16b in dem Server 14 hergestellt, so dass ein 1:1-Verhältnis bezüglich der Sockets besteht. Mit anderen Worten, wird ein Server-Socket für jeden verbundenen Client geöffnet. Die Remote-Clients 12 senden Hypertext Transfer Protocol (HTTP)-Anfragen über bestehende TCP-Verbindungen an einen TCP-Puffer, der dem Server-Socket 16b zugeordnet ist. Die im TCP-Puffer empfangenen Anfragen werden nur so schnell verarbeitet, wie der Server auf sie antworten kann. Oft sammeln sich Anfragen in dem Puffer an, weil der Server nicht schnell genug antworten kann, so dass eine Verzögerung auf der Serverseite (auch als Latenzzeit bezeichnet) häufig entsteht. Dies ist ineffizient und frustrierend und kann dazu führen, dass der Nutzer das Herunterladen der Seite abbricht.
  • Zudem erfordert jedes geöffnete Server-Socket 16b ein bestimmtes Maß an Overhead-Verarbeitung durch den Server. Diese Overhead-Verarbeitung neigt dazu, sich in Proportion mit der Anzahl der geöffneten Sockets zu erhöhen, und damit in Proportion zu der Anzahl von Clients, die sich mit dem System verbinden. Um akzeptable Antwortzeiten aufrecht zu erhalten, muss das Serversystem die Anzahl von Client-Computern limitieren, die sich zu einer beliebigen Zeit verbinden dürfen, wobei hin und wieder eine Zeitüberschreitung (timing out) bei den bestehenden Client-Verbindungen entsteht.
  • In der 2 ist ein System zum Verarbeiten von HTTP-Anfragen gemäß einer Ausführungsform der vorliegenden Erfindung allgemein mit 20 bezeichnet. Das System 20 weist typischerweise eine Vielzahl von Remote-Clients 12 auf, die in der Lage sind, sich mit dem Server-System 22 über ein Computer-Netzwerk 24 und ein Netzwerkgerät 26 zu verbinden. Wie man in der 3 erkennen kann, kann das Server-System 22 einen oder mehrere Server 14 aufweisen, einschließlich von Web-Servern, Applikations-Servern und ähnlichen. Bei einer typischerweise verwendeten Konfiguration, weist das Server-System eine Website 25 auf und stellt den Zugang zu ihr bereit. Wie noch genauer unter Bezug auf 3 erläutert wird, werden Verbindungen zwischen Clients 12 und dem Server-System 22 über Client-TCP-Verbindungen 120 auf der „Client-Seite" („client side") des Netzwerkgeräts 26 und über Server-TCP-Verbindungen 124 auf der „Server-Seite" („server side") des Netzwerkgeräts hergestellt. Das Netzwerkgerät 26 kann einen Multiplexer/Demultiplexer für HTTP aufweisen, wie weiter unten noch genauer erklärt wird, der in der Lage ist, die HTTP-Anfragen/Antworten und anderen Netzwerkverkehr zwischen den Clients 12 und dem Server-System 22 weiterzuleiten. Die Funktion des Weiterleitens (routing function) kann dafür ausgelegt sein, das Kombinieren oder Multiplexen von Verkehr, der von mehreren Client-Verbindungen empfangen wird, auf eine einzelne Verbindung in das Server-System bereitzustellen. Bei diesen Ausführungen ist das System typischerweise auch in der Lage, den auf der einzelnen Server-Verbindung empfangenen Verkehr zu trennen oder zu demultiplexen, um ein selektives Weiterleiten und Ausliefern an die entsprechenden verbundenen Clients durchzuführen.
  • Das Multiplexen und Demultiplexen reduziert die Anzahl der Server-Sockets, die notwendig sind, um eine gegebene Anzahl von verbundenen Clients zu bedienen. Die resultierende Verringerung der Overhead-Verarbeitung, die auf ein Socket bezogen ist, verbessert die Leistungsfähigkeit des Systems und/oder stellt Ressourcen frei, um es mehr Clients zu ermöglichen, sich mit dem System zu verbinden. Zudem ist es so, dass, wenn mehrere Server-Sockets zur Verfügung stehen, das System ausgestaltet werden kann, um die Leistungsfähigkeit weiter zu optimieren, und zwar durch eine Auswahl der Server-Sockets, die auf der Leistungsfähigkeit basiert. So können z.B. HTTP-Anfragen selektiv an ein bestimmtes Server-Socket geleitet werden, und zwar basierend auf einer optimalen Antwortzeit, um eine effiziente Verarbeitung der Anfragen sicherzustellen. Es sollte klar sein, dass der Begriff „Socket", wie er im Zusammenhang mit der vorliegenden Erfindung verwendet wird, sich auf einen Port, Puffer, logischen Knoten oder ein Objekt bezieht, das in der Lage ist, Daten in HTTP und anderen Formaten von einem Remote-Device (entferntes Gerät) über eine Netzwerkverbindung zu empfangen, und nicht auf ein „Socket" beschränkt ist, wie es in der Umgebung des Betriebssystems Unix definiert ist.
  • Bezugnehmend auf die 4, handelt es sich bei dem Remote-Client 12 typischerweise um einen Personal Computer mit einem Prozessor 30, der mit einem Kommunikationsbus 32 verbunden ist. Mit dem Kommunikationsbus 32 sind des Weiteren ein Massenspeicher 34, wie z.B. eine Festplatte, ein CD-ROM-Laufwerk, ein Bandlaufwerk, etc., und ein Speicher 36 verbunden. Der Speicher 36 weist typischerweise ein Random Access Memory (RAM) 38 und ein Read-Only Memory (ROM) 40 auf. Das ROM 40 weist üblicherweise ein Basic Input/Output System (BIOS) 42 auf, das in der Lage ist, den Remote-Client zu starten und seine grundlegenden Funktionen zu bedienen. Der Remote-Client 12 ist typischerweise dafür ausgelegt, auf ein Computernetzwerk 24 über eine Netzwerkschnittstelle 46 zuzugreifen. Alternativ kann es sich bei dem Remote-Client 12 um einen tragbaren Datenassistenten handeln, ein kabelloses Gerät, das für das Web ausgelegt ist, einen Hauptcomputer oder ein anderes geeignetes Computergerät handeln.
  • Der Remote-Client 12 ist typischerweise in der Lage, ein Betriebssystem (operating system, OS) 48 auszuführen, um Programme und Applikationen zu verwalten. Das Betriebssystem 48 ist im Massenspeicher 34 gespeichert. Zu den Beispielen von geeigneten Betriebssystemen gehören UNIX, Windows, MacOS, VMS und OS/2, obwohl im Prinzip jedes geeignete Betriebssystem verwendet werden kann. Der Remote-Client 12 weist ein Browserprogramm 50 auf, das in dem Massenspeicher 34 gespeichert ist und in der Lage ist, die angefragten Web-Ressourcen einem Nutzer des Remote-Clients 12 anzuzeigen. Zu den Browserprogrammen 50 zählen beispielsweise der Netscape-Browser, der kommerziell von Netscape Communications Corporation in Santa Clara, Kalifornien erhältlich ist und der Internet Explorer Browser, der kommerziell von der Microsoft Corporation in Redmond, Washington erhältlich ist.
  • Der Server 14 ist typischerweise auch ein Computer, der dem in der 4 dargestellten ähnelt. Der Server 14 weist typischerweise ein Serverprogramm auf, das in der Lage ist, mit den Remote-Clients unter Verwendung des HTTP-Protokolls zu kommunizieren. Das Server-Programm ist typischerweise in der Lage, HTTP-Anfragen zu empfangen, und als Antwort HTTP-Antworten an den Browser 50 auf einem Remote-Client 24 über das Computernetzwerk 24 zu senden.
  • Das Netzwerkgerät 26 kann mit dem Server-System 22 und den Remote-Clients 12 auf verschiedene Weisen angeschlossen sein. Auf der Client-Seite ist das Gerät 26 typischerweise mit den Remote-Clients 12 über ein öffentliches Netzwerk verbunden, wie z.B. einem Wide Area Network (WAN) 24, wie man es in den 5 und 6 sehen kann, das ein Teil des Internets bilden kann. Die Verbindung auf der Server-Seite zwischen dem Gerät 26 und dem Serversystem 22 ist üblicherweise ein privates bzw. nicht-öffentliches Netzwerk, wie z.B. ein Intranet oder ein „Local Area Network (LAN) 84".
  • Die Website 25 weist typischerweise eine Sammlung von Web-Ressourcen auf, die sich typischerweise an einer Adresse im Web (Web-Adresse) befinden, die als URL (Uniform Ressource Locator) bezeichnet wird oder an einer anderen Form eines URI (Uniform Ressource Identifier). Der Begriff „Web-Ressource" bezieht sich im Allgemeinen auf eine Datenquelle, die herunter geladen werden kann oder auf die durch einen Web-Browser zugegriffen werden kann. Web-Ressourcen können Webseiten, ausführbaren Code, Skripte, Grafiken, Video, Klänge, Text und/oder andere Daten enthalten. Web-Ressourcen können statisch sein (z.B. eine gespeicherte Datei) oder dynamisch (z.B. ein dynamisch erzeugter Output). Web-Ressourcen können auf einem einzelnen Server 14 oder auf einer Anzahl von Servern 14 gespeichert sein und von ihm bzw. ihnen bedient werden. Zum Beispiel können Bilder auf einem Server gespeichert sein, wohingegen Code auf einem anderen Server gespeichert ist, und alternativ dazu können Kopien von Bildern und Code auf mehreren redundanten Servern gespeichert sein.
  • Wie es in der 5 gezeigt ist, weist das Netzwerkgerät 26 typischerweise eine Steuereinheit 70 auf, die einen Speicher 72 und einen Prozessor 74 hat, die mit einem Bus 76 verbunden sind. Mit dem Bus 76 ist auch ein Massenspeicher 78 verbunden, der einen Multiplexer/Demultiplexer 80 aufweist, der auch als „Mux/Demux" bezeichnet wird. Das Netzwerkgerät 26 weist typischerweise auch eine Netzwerkschnittstelle 82 auf, die mit dem Bus 76 verbunden ist. Die Netzwerkschnittstelle 82 ist in der Lage, es dem Netzwerkgerät 26 zu ermöglichen, mit dem Client 12 über das WAN 24 und mit dem Server 22 über das LAN 84 zu kommunizieren. Ein Beispiel einer geeigneten Netzwerkschnittstelle ist die Netzwerkkarte Intel Ethernet Pro 100, die kommerziell von der Intel Corporation in Santa Clara, Kalifornien erhältlich ist.
  • In der 6 ist eine weitere Ausführungsform eines Netzwerkgeräts gemäß der vorliegenden Erfindung im Allgemeinen mit 26' bezeichnet. Das Netzwerkgerät 26' weist typischerweise eine integrierte Schaltplatine 90 auf. Die integrierte Schaltplatine weist einen Bus 92 auf, der eine Netzwerkschnittstelle 94, einen Speicher 96, einen Prozessor 98, einen Application Specific Integrated Circuit (ASIC) 100 und ein Massenspeichergerät 102 verbindet. Die Netzwerkschnittstelle 94 ist in der Lage, es dem Netzwerkgerät 26' zu ermöglichen, mit dem Remote Client 12 über das WAN 24 und mit dem Serversystem 22 über das LAN 84 zu kommunizieren. ASIC 100 weist typischerweise einen Multiplexer/Demultiplexer 104 auf. ASIC 100, der Prozessor 98 und der Speicher 96 bilden eine Steuereinheit 106, die in der Lage ist, Anfragen bezüglich Web-Ressourcen gemäß den unten beschriebenen Verfahren zu verarbeiten. Es ist klar, dass die Ausgestaltungen des Netzwerkgeräts 26, 26' ein eigenständiges Netzwerkgerät sein oder in einem Web-Server integriert sein können. Außerdem handelt es sich bei dem Massenspeichergerät des Netzwerkgeräts 26, 26' typischerweise um einen Flash-Speicher, ein ROM oder eine andere Form eines nicht flüchtigen Speichers, auch wenn klar ist, dass eine Festplatte oder ein anderes Laufwerk verwendet werden kann.
  • Wie oben erwähnt wurde, ist das Netzwerkgerät 26 typischerweise mit dem Server-System 22 über das LAN 84 verbunden. Weil die Verbindung auf der Server-Seite eine nicht-öffentliche Verbindung ist, wohingegen die Client-Verbindungen öffentlich sind (z.B., das WAN 24), kann man das Netzwerkgerät 26 als einen Proxy-Server auf der Server-Seite verstehen. Ein Proxy-Server ist ein Programm oder Gerät, das als ein Zwischenelement zwischen einem Browser und einem Server fungiert. Das Netzwerkgerät 26 repräsentiert diese Zwischenstelle, indem es HTTP-Anfragen von den Remote-Clients 12 empfängt und diese Anfragen an ein Socket in dem Server-System 22 sendet und indem es vom Server erzeugte HTTP-Antworten empfängt und diese Antworten an den Remote-Client sendet, von dem die Anfragen kamen.
  • Die Netzwerkgeräte gemäß der vorliegenden Erfindung werden typischerweise mittels eines durch Software oder Firmware realisierten Multiplexers/Demultiplexers bereitgestellt, der in der Lage ist, den Netzwerkverkehr zwischen Remote-Clients und einem Server-System weiterzuleiten. Typischerweise wird dies erzielt, indem HTTP-Anfragen, die vom Netzwerkgerät 26 über mehrere Client-HTTP-Verbindungen 120 empfangen werden, multiplext werden, so dass diese Anfragen von dem Gerät 26 als eine multiplexte Übertragung an das Server-System 22 weitergeleitet werden. Diese multiplexte Übertragung findet normalerweise über eine einzelne Server-TCP-Verbindung 124 statt, so dass nur ein Socket auf der Server-Seite geöffnet ist. Das Server-System 22 erzeugt dann wiederum HTTP-Antworten, die den verschiedenen Anfragen der Remote-Clients 12 zugeordnet sind. Diese Antworten werden entlang einer einzelnen Server-TCP-Verbindung 124 an das Gerät 26 geliefert, wo sie demultiplext werden, so dass sie selektiv an den entsprechenden Ursprungs-Client 12 weitergeleitet und dort abgeliefert werden können.
  • Die oben genannte Beschreibung schließt das Weiterleiten des gesamten Verkehrs von mehreren Client-TCP-Verbindungen an eine einzelne TCP-Verbindung auf der Server-Seite ein. Alternativ hierzu, wie man es im Hinblick auf 3 erkennt, können Anfragen und Antworten an und von mehr als ein bzw. einem Server-Socket geleitet werden. Es ist jedoch bevorzugt, dass die Anzahl der verwendeten Server-Sockets kleiner ist als die Anzahl der Client-Verbindungen, um den Overhead, der an der Server-Seite des Systems je Socket auftritt, zu reduzieren. Wie oben bereits erwähnt, kann die Overhead-Verarbeitung die Gesamtleistungsfähigkeit erheblich beeinflussen. Einer der Vorteile des vorliegenden Systems ist eine Reduzierung des Server-Overheads, der auf das Socket bezogen ist, wodurch es den einzelnen Servern ermöglicht wird, mehr Client-Verbindungen zu bewältigen.
  • In der 3 ist gezeigt, dass jeder Remote-Client 12 eine zugeordnete Client-TCP-Verbindung 120 hat, die mit dem Netzwerkgerät 26 besteht, typischerweise über ein Telekommunikationsnetzwerk, wie z.B. ein WAN 24 (2). Zu jeder Client-Verbindung 120 gehört ein Client-Socket 120a, das einem der Client-Computer 12 zugeordnet ist, und ein Geräte-Socket 120b auf der Client-Seite (oder, einfach Client-Seite-Socket 120b), das dem Netzwerkgerät 26 zugeordnet ist. Die Remote-Clients 12 sind üblicherweise in der Lage, HTTP-Anfragen/Antworten 122 über die Verbindungen 120 zu senden.
  • Das Server-System 22 ist über mehrere Server-TCP-Verbindungen 124 mit dem Netzwerkgerät 26 verbunden. In ähnlicher Weise wie bei der Client-Seite, weist jede Server-Verbindung 124 ein Geräte-Socket 124b auf der Server-Seite (oder, einfach Server-Seite-Socket 124b), das dem Netzwerkgerät 26 zugeordnet ist, und ein Server-Socket 124a, das dem Server-System 22 zugeordnet ist. Wie bereits erwähnt, kann das Server-System 22 eine Vielzahl von Servern 14 aufweisen, die in der Lage sind, eine Vielzahl von Funktionen durchzuführen. Die Server-Verbindung 124 und die Ihnen zugeordnete Sockets können eine 1:1-Beziehung mit den Servern 14 aufweisen, oder es können mehrere Verbindungen 124 einem bestimmten individuellen Server zugeordnet sein.
  • Die zuvor beschriebenen Fähigkeiten des Multiplexens, des Demultiplexens und des Weiterleitens ersieht man besser mit Bezugnahme auf die 3. Betrachtet man z.B. die oberen drei Client-Computer auf der rechten Seite der Figur, zeigt die Figur das Kombinieren, (z.B. durch Multiplexen) des Verkehrs, der diesen Client-Computern zugeordnet ist (z.B. die Anfrage/Antwort-Ströme R1, R2 und R3) in eine einzige Server-TCP-Verbindung 124. Dies ermöglicht es mehreren Clients 12, sich mit dem Server-System 22 unter Verwendung lediglich eines Server-Sockets 124a zu verbinden. Dies stellt einen erheblichen Vorteil über herkömmliche Arten der Client-Server-Verbindung dar, die drei getrennte Server-Sockets benötigen würde, um Verbindungen für alle drei Clients bereitzustellen. Indem nur ein Server-Socket verwendet wird, anstelle von dreien, wird die Overhead-Verarbeitung, die auf das Socket bezogen ist, auf der Server-Seite reduziert, wodurch es ermöglicht wird, dass eine größere Anzahl von verbundenen Clients zu jeder Zeit bedient werden kann.
  • Wie bereits erwähnt, ist das Netzwerkgerät 26 in der Lage, HTTP-Anfragen und -Antworten selektiv zwischen den Client- und Server-Sockets weiterzuleiten. Z.B. ist es so, wie mittels der HTTP-Anfrage/Antwort-Ströme R1, R2 und R3 angezeigt, dass das Netzwerkgerät 26 in der Lage ist, HTTP-Anfragen von einem oder mehreren Client-Computern 12 zu empfangen und diese Anfragen selektiv über eine der Server-Verbindungen 124 an ein bestimmtes Server-Socket 124a weiterzuleiten. Das Netzwerkgerät ist auch in der Lage, HTTP-Antworten von dem Serversystem 22 zu empfangen und diese Antworten an den entsprechenden Ursprungs-Client 12 zurückzuleiten.
  • Das Netzwerkgerät 26 kann in der Lage sein, Anfragen von mehreren Clients zu multiplexen, z.B. indem die HTTP-Anfragen von mehreren Clients aufgegriffen werden und diese Anfragen über eine einzelne Server-Verbindung 124 an das Server-System 22 weitergeleitet werden. So ist z.B. in der 3 dargestellt, dass HTTP-Anfragen von den oberen drei Clients auf eine einzelne Server-Verbindung 124 multiplext werden. Dieser Prozess wird üblicherweise als Multiplexen bezeichnet, weil der Verkehr von einer Anzahl von Verbindungen 120 der Client-Seite auf eine kleinere Anzahl von Verbindung 124 der Server-Seite geleitet wird, und auch weil eine Vielzahl von Verbindungen 120 der Client-Seite auf eine einzelne Verbindung 124 der Server-Seite geleitet werden kann.
  • Verschiedene Verfahren können verwendet werden, um die Anfragen zur Übertragung über eine einzelne Verbindung 124 der Server-Seite zu kombinieren. Typischerweise wird ein Multiplex-Statusmittler (multiplexing state agent), wie bei M1-M6 gezeigt, jedem Socket 120b der Client-Seite bei einem Netzwerkgerät zugeordnet. Jeder Multiplex-Statusmittler ist in der Lage, für jede Anfrage, die vom Client empfangen wird, die Anfrage an ein optimales Socket 124b der Server-Seite bei dem Netzwerkgerät weiterzuleiten, und zwar für die Übertragung an einen Server 14 des Server-Systems 22. Wenn eine Antwort auf die Anfrage von dem Server an dem Socket 124b der Server-Seite empfangen wird, ist der Multiplex-Statusmittler in der Lage, die Anfrage zurück an das Socket 124b der Client-Seite an den anfragenden Client zurückzuleiten. Der Multiplex-Statusmittler kann dabei frei entscheiden, nachfolgende Anfragen von demselben Client an ein optimales Socket 124b der Server-Seite zu leiten, egal ob es sich dabei um ein anderes Server-Socket oder das gleiche Server-Socket handelt, wie es bei den vorherigen Anfragen verwendet wurde. Auch wenn jeder Multiplex-Statusmittler üblicherweise dafür ausgelegt ist, Anfragen nur von einem Socket 120b der Client-Seite an ein optimales einer Vielzahl von Sockets 124b der Server-Seite weiterzuleiten, ist es klar, dass alternativ dazu ein einzelner Multiplex-Statusmittler so ausgelegt sein kann, dass Anfragen von mehr als einem Socket 120b der Client-Seite (1) an ein optimales aus einer Vielzahl von Sockets 124b der Server-Seite und/oder (2) an ein einzelnes Socket 124b der Server-Seite zu leiten.
  • Das Netzwerkgerät 26 kann des Weiteren in der Lage sein, den Antwort-Strom zu demultiplexen, der von Sockets 124b der Server-Seite als Antwort auf die Client-Anfragen empfangen wird. Insbesondere wird eine Reihe von Antworten, die von einem bestimmten Server-Socket empfangen wurden, von dem Multiplex-Statusmittler verarbeitet, der die Transaktionen für das Socket verwaltet, um den Antwortstrom in diskrete Antworten oder in Ströme zu entbündeln, die einem bestimmten der Clients 12 entsprechen. Jeder Multiplex-Mittler ist in der Lage, die Antworten am Socket 124b der Server-Seite zu erkennen, die Anfragen von dem Client entsprechen, dem der Mittler zugeordnet ist, und die Antworten über das Socket 120b der Client-Seite für den Ursprungs-Client zurück an den Ursprungs-Client zu leiten. Dieses Verfahren wird als Demultiplexen bezeichnet, weil eine Reihe von Antworten aus einer einzelnen Verbindung 124 der Server-Seite aufgeteilt wird und über eine Vielzahl von Client-Verbindungen 120 an eine Vielzahl von Clients 12 geleitet wird.
  • Wie bereits erwähnt, können die Verbindungen 120 der Client-Seite in vielfältiger Weise den Verbindungen 124 der Server-Seite zugeordnet werden. Z.B. kann das System so betrieben werden, dass alle Verbindungen auf eine bestimmte Server- Verbindung multiplext werden. Dort wo Multiplexen verwendet wird, ist das Netzwerkgerät 26 in der Lage, HTTP-Antworten, die von zwei oder mehr Client-Verbindungen (z.B. die Verbindungen, die R1, R2 und R3 zugeordnet sind) in eine einzelne Server-Verbindung zu multiplexen, so dass nur ein Server-Socket geöffnet werden muss. Alternativ hierzu können mehrere Server-Verbindungen verwendet werden, wobei jede Server-Verbindung entweder einer bestimmten Client-Verbindung zugeordnet oder multiplext ist, um so einer Vielzahl von Client-Verbindungen zu entsprechen. In jedem Fall wird es normalerweise wünschenswert sein, dass die Anzahl der Server-Verbindungen geringer ist, als die der Client-Verbindungen, um eine optimale Reduzierung der Overhead-Verarbeitung, die auf ein Socket bezogen ist, auf der Server-Seite des Systems zu erzielen. Unabhängig von der bestimmten Ausgestaltung des Multiplexens, ist das Netzwerk 26 ferner in der Lage, die vom Server-System 22 erzeugten Antworten zu demultiplexen und dafür zu sorgen, dass diese Antworten selektiv an den entsprechenden Ursprungs-Client 12 geleitet werden.
  • Dort, wo eine Vielzahl von Server-Verbindungen zur Verfügung steht, können verschiedene Ansätze der Optimierung angewendet werden, um die Verzögerung zu reduzieren oder auf andere Weise die Leistungsfähigkeit zu verbessern. Insbesondere kann das Netzwerkgerät 26 in der Lage sein, HTTP-Anfragen an ein optimales Server-Socket weiterzuleiten, wobei es sich typischerweise um das am wenigstens beschäftigte Server-Socket handelt. Um das optimale Server-Socket zu bestimmen, kann der Multiplexer/Demultiplexer 80 (5) in der Lage sein, die Antwortzeit von jedem Server-Socket 124a zu bestimmen, indem die entsprechenden Sockets 124b der Serverseite bei dem Netzwerkgerät überwacht werden. Das Server-Socket mit der schnellsten Antwortzeit kann im Sinne des am wenigsten beschäftigten Server-Sockets verstanden werden. Alternativ dazu, oder zusätzlich, können verschiedene Sockets überwacht werden, um zu bestimmen, welches Server-Socket die am wenigsten nicht-bearbeiteten Anfragen (unfulfilled requests) hat. Außerdem kann das Weiterleiten davon abhängig gemacht werden, auf welches der Server-Sockets zuletzt zugegriffen wurde.
  • Zusätzlich zu oder anstelle von den oben beschriebenen Techniken zur Optimierung, kann das Netzwerkgerät 26 in der Lage sein, die Art der Anfrage, die gemacht wurde zu bestimmen und/oder die Art der Daten, die angefragt werden, und diese Information zu verwenden, um ein optimales Weiterleiten (routing) zu erzielen. Z.B. können alle Bildanfragen von einer vorbestimmten Gruppe von Sockets des Server-Systems 22 bedient werden, wohingegen alle HTML-Anfragen von einer anderen vorbestimmten Gruppe von Sockets bedient werden. Zusätzlich können bestimmte Sockets dafür vorgesehen sein, bestimmte Protokolle oder Protokollversionen zu bedienen. Z.B. könnte eine Gruppe von Sockets dafür vorgesehen sein, alle Anfragen mit HTTP 1.0 zu bedienen, wobei eine weitere Gruppe dafür vorgesehen ist, Anfragen mit HTTP 1.1 zu bedienen.
  • Unabhängig von der bestimmten Implementierung, erhöhen diese Techniken der Optimierung die Gesamteffizienz und die Antwortzeit des Server-Systems 22, indem der Fluss von Anfragen weg von langsamen, verstopften Server-Sockets in Richtung von schnellen, verstopfungsfreien Server-Sockets angepasst wird. Diese Technikenoptimierung kann bei den beschriebenen Netzwerkgeräten gemäß der vorliegenden Erfindung zusätzlich oder anstelle der Merkmale bezüglich des Weiterleitens, des Multiplexens und des Demultiplexens verwendet werden, wie sie oben beschrieben wurden.
  • Typischerweise handelt es sich bei den Verbindungen zwischen dem Netzwerkgerät 26, dem Server-System 22 und den Clients 12 (z.B. den Verbindungen 120 und 124) um dauerhafte TCP-Verbindungen (persistent TCP connections). Dauerhafte TCP-Verbindungen sind Verbindungen, die solange offen bleiben, bis sie explizit geschlossen werden oder bis der Server die Verbindung mit einer Zeitüberschreitung belegt. Alternativ dazu kann eine Verbindung, die eine andere ist als eine dauerhafte TCP-Verbindung, auch verwendet werden. Die effektive Nutzung der dauerhaften Verbindungen ist ein erheblicher Vorteil der vorliegenden Erfindung gegenüber den Systemen gemäß dem Stand der Technik. Üblicherweise wird das Merkmal der Dauerhaftigkeit nicht bei herkömmlichen Netzwerksystemen verwendet, oder wird nur teilweise verwendet, weil das Maß des Overheads, mit dem das System je Verbin dung belastet wird, erheblich ist. Wie es oben erläutert wurde, beschränkt dieser Overhead die Anzahl der Clients, die sich zu jeder Zeit verbinden können, grundlegend. Um Zugang zu einer großen Anzahl von möglichen zu verbindenden Clients bereitzustellen, beenden viele existierende Systeme periodisch die Client-Verbindungen, um es anderen zu ermöglichen, auf das System zuzugreifen. Dies unterbindet im Ergebnis das Merkmal der Dauerhaftigkeit, das bei neueren Netzwerkprotokollen zur Verfügung steht. Das Fehlen der Dauerhaftigkeit ist insbesondere ein Nachteil in sicheren Umgebungen, wie z.B. bei SSL, wo das Aufbauen und Abbauen von TCP-Verbindungen einen Schlüsseltausch sowie andere sicherheitsbezogene Aufgaben einschließt, die einen intensiven Overhead haben. Indem der exzessive Overhead reduziert wird, der es notwendig macht, die Client-Verbindungen periodisch zu beenden, ist das Netzwerkgerät in der Lage, dauerhafte Verbindungen mit den Clients und den Servern aufzubauen und zu unterhalten.
  • Es ist klar, dass die beschriebenen Netzwerkgeräte und Systeme sehr flexibel sind und in einer nahezu unbegrenzten Anzahl von Möglichkeiten ausgestaltet werden können, um die Leistungsfähigkeit von Client-Server-Netzwerksystemen zu verbessern. Andere Implementierungen des Netzwerkgeräts sind in den ebenfalls anhängigen US-Patentanmeldungen mit den Serien-Nrn. 09/680,675 , 09/680,997 und 09/680,998 , die am 6. Oktober 2000 eingereicht wurden, Nrn. 60/239,552 und 60/239,071 , die am 10. Oktober 2000 eingereicht wurden, Nr. 60/287,188 , die am 27. April 2001 eingereicht wurde, Nr. 60/308,234 , die am 26. Juli 2001 eingereicht wurde und Nr. 60/313,006 , die am 16. August 2001 eingereicht wurde, wobei die dort enthaltenen Offenbarungen hiermit für alle Zwecke in ihrer Gesamtheit durch Bezugnahme in diese Anmeldung aufgenommen werden. Die Merkmale diese Vorrichtungen können auf verschiedene Weise in Verbindung mit den Netzwerkgeräten und den Systemen gemäß der vorliegenden Verbindung implementiert werden.
  • In der 7 ist gezeigt, wie ein Verfahren 140 gemäß der vorliegenden Erfindung durchgeführt werden kann. Die Schritte des Verfahrens 140 erzielt man üblicherweise mittels eines Netzwerkgeräts 26 in Verbindung mit Remote-Clients 12 und einem Server-System 22, die über die beschriebenen Netzwerkverbindungen kommu nizieren. Alternativ dazu kann man das Verfahren auch mittels einer speziellen Software auf dem Server-System 14 oder durch eine andere Art der Software oder eines Hardware-Geräts realisieren. Wie bei 142 gezeigt, weist das Verfahren typischerweise das Aufbauen bzw. das Herstellen von dauerhaften TCP-Verbindungen zwischen einem Netzwerkgerät 26 und einem oder mehreren Sockets bei einem Server-System 14 auf. Wie bei 144 gezeigt, weist das Verfahren typischerweise das Herstellen von dauerhaften TCP-Verbindungen zwischen dem Netzwerkgerät 26 und einem oder mehreren Remote-Clients 12 auf. Wie bei 146 gezeigt, weist das Verfahren außerdem das Horchen bzw. Warten (Listening) auf HTTP-Anfragen von den ursprünglichen Remote-Clients 12 und/oder auf HTTP-Antworten von den verschiedenen Server-Sockets auf.
  • Wenn HTTP-Anfragen beim Netzwerkgerät 26 detektiert werden, wird das Verfahren 140 bei 148 fortgesetzt, und zwar mit dem Empfangen von HTTP-Anfragen bei einem oder mehreren Sockets 120b der Client-Seiten. Das Verfahren 140 weist des Weiteren wie bei 150 gezeigt, das Multiplexen von HTTP-Anfragen auf, so dass die multiplexten Anfragen an das Server-System über eine einzelne TCP-Verbindung übertragen werden können. Wie bei 152 gezeigt, weist das Verfahren des Weiteren das Weiterleiten der Anfragen an das Server-System auf, typischerweise, indem die multiplexten Anfragen an ein optimales Server-Socket gesendet werden.
  • Vor dem Schritt 152 kann das Verfahren 140 auch die Überwachung der Server-Sockets aufweisen, um ein optimales Server-Socket zu bestimmen. Das optimale Server-Socket kann bestimmt werden, indem man ein Server-Socket mit einer am wenigsten langen Antwortzeit identifiziert. Alternativ dazu kann das optimale Server-Socket bestimmt werden, indem man das Server-Socket bestimmt, auf das zuletzt zugegriffen wurde, indem man ein Server-Socket mit den am wenigsten nicht-ausgeführten Anfragen bestimmt, indem man die Art oder die Größe der angefragten Daten oder Parameter bestimmt, die sich auf die HTTP-Anfragen beziehen, oder indem man alle oder einige dieser Bedingungen gewichtet. Indem man ein optimales Server-Socket bestimmt, ist der Multiplexer/Demultiplexer in der Lage, die Leistungs fähigkeit zu verbessern, indem eine effizientere Verwendung der Server-Resourcen erleichtert wird.
  • Wenn bei dem Multiplexer/Demultiplexer HTTP-Antworten im Schritt 146 erkannt werden, wird das Verfahren 140 bei 154 fortgesetzt und weist das Empfangen von HTTP-Antworten von dem Server-System auf. Der Multiplexer/Demultiplexer ist typischerweise in der Lage, das Ziel aus den HTTP-Antworten zu bestimmen. Wie in 156 gezeigt, weist das Verfahren das Demultiplexen der HTTP-Antworten auf, die von dem Server-System empfangen wurden, um ein selektives Weiterleiten und Ausliefern von einigen dieser Antworten bei dem entsprechenden Ursprungs-Client zu ermöglichen. Wie bei 158 gezeigt, weist das Verfahren 140 das Senden der demultiplexten Antworten an den ursprünglichen Remote-Client auf.
  • Wenn ein neuer Remote-Client oder Server bei 160 erkannt wird, weist das Verfahren das Rückkehren zum Schritt 144 auf, um eine dauerhafte TCP-Verbindung mit dem neuen Remote-Client aufzubauen, oder kehrt zum Schritt 142 zurück, um eine dauerhafte TCP-Verbindung mit dem neuen Server aufzubauen, jeweils entsprechend. Es ist auch klar, dass das Netzwerkgerät 26 in der Lage sein kann, eine Vielzahl von TCP-Verbindungen mit einer Vielzahl von Servern und einer Vielzahl von Remote-Clients aufzubauen, so dass es in der Lage ist, TCP-Anfragen und HTTP-Antworten von mehreren Servern und Remote-Clients gleichzeitig zu bewältigen.
  • Ähnlich wie die oben beschriebenen Geräte und Systeme, verbessert das beschriebene Verfahren die Leistungsfähigkeit von Client-Server-Netzwerksystemen. Dies wird durch das Multiplexen und Demultiplexen von HTTP-Anfragen/Antworten erzielt, um die Overhead-Verarbeitung zu reduzieren, die sich bei herkömmlichen Systemen aus dem Öffnen eines Server-Sockets für jeden Client-Computer ergeben, der sich mit dem Server verbindet. Dies ermöglicht auch eine bessere Nutzung der Merkmale für eine dauerhafte Verbindung, die nun im Zusammenhang mit HTTP und anderen Protokollen zur Verfügung stehen. Zusätzlich oder alternativ dazu kann das Verfahren die Auswahl von optimalen Server-Sockets aufweisen, um die Server-Effizienz weiter zu verbessern.
  • Auch wenn die vorliegende Erfindung hier insbesondere im Hinblick auf die vorgenannten bevorzugten Ausgestaltungen gezeigt und beschrieben wurden, ist es dem Fachmann auf diesem Gebiet klar, dass viele Abwandlungen gemacht werden können, ohne dabei den Bereich der Erfindung zu verlassen, wie er sich aus den nachfolgenden Ansprüchen ergibt. Die Beschreibung der Erfindung sollte dahingehend verstanden werden, dass alle neuen und nicht-offensichtlichen Kombinationen der hier beschriebenen Elemente umfasst sein sollen, und dass Ansprüche in dieser oder späteren Anwendungen bezüglich jeder neuen und nicht-offensichtlichen Kombination dieser Elemente aufgestellt werden können. Dort wo die Ansprüche von „ein" oder „ein erstes" Element oder den entsprechenden Äquivalenten davon sprechen, sollten die Ansprüche dahingehend verstanden werden, dass ein solches Element oder mehrerer solcher Elemente davon umfasst sind, und dass das Vorhandensein von zwei oder mehr Elementen weder erforderlich noch ausgeschlossen ist.

Claims (18)

  1. Computernetzwerkgerät (26) zum Verbessern der Datenübertragung mittels eines Computernetzwerks (20), wobei das Computernetzwerkgerät (26) dafür ausgebildet ist, HTTP (Hypertext Transfer Protocol)-Anfragen von einer Vielzahl von Clients (12) über eine Vielzahl von Client-TCP (Transmission Control Protocol)-Verbindungen (120) zu empfangen, und wobei das Computernetzwerkgerät (26) dadurch gekennzeichnet ist, dass es des Weiteren dafür ausgebildet ist: für jede aus einer Vielzahl von Server-TCP-Verbindungen (124) von dem Computernetzwerkgerät (26) mit einem einzelnen Server (14) zumindest einen Antwortparameter zu überwachen; basierend auf dem überwachten Antwortparameter eine der Vielzahl von Server-TCP-Verbindungen (124) auszuwählen; und die HTTP-Anfragen über die ausgewählte Server-TCP-Verbindung (124) an ein entsprechendes Socket (124a) auf dem Server (14) als eine multiplexte HTTP-Anfrage zu leiten.
  2. Computernetzwerkgerät (26) nach Anspruch 1, ferner mit einem HTTP-Multiplexer/Demultiplexer (104), der dafür ausgebildet ist: für jede aus einer Vielzahl von Server-TCP-Verbindungen (124) von dem Computernetzwerkgerät (26) zu dem Server (14) zumindest einen Antwortparameter zu überwachen; eine der Vielzahl von Server-TCP-Verbindungen (124) basierend auf dem überwachten Antwortparameter auszuwählen; und die HTTP-Anfragen über die ausgewählte Server-TCP-Verbindung (124) an ein entsprechendes Socket (124a) auf dem Server (14) als eine multiplexte HTTP-Anfrage zu leiten.
  3. Computernetzwerkgerät (26) nach Anspruch 2, wobei der HTTP-Multiplexer/Demultiplexer (104) des Weiteren dafür ausgebildet ist, HTTP-Antworten von dem Server (14) über die ausgewählte Server-TCP-Verbindung (124) zu empfangen und diese Antworten an die Clients (12) über die Vielzahl von Client-TCP-Verbindungen (120) zu leiten.
  4. Computernetzwerkgerät (26) nach Anspruch 2 oder 3, wobei der HTTP-Multiplexer/Demultiplexer (104) eine Vielzahl von Vermittlern aufweist, von denen jeder Vermittler einer anderen der Client-TCP-Verbindungen (120) zugeordnet ist; und wobei beim Empfang einer der HTTP-Anfragen von einem der Clients (12), der entsprechende Vermittler eine aus der Vielzahl der Server-TCP-Verbindungen (124) basierend auf dem Antwortparameter auswählt und die HTTP-Anfrage an die ausgewählte Server-TCP-Verbindung (124) leitet.
  5. Computernetzwerkgerät (26) nach einem der Ansprüche 2 bis 4, wobei der HTTP-Multiplexer/Demultiplexer (104) dafür ausgebildet ist, die Server-TCP-Verbindung (124) zum Empfangen der multiplexten HTTP-Anfragen auszuwählen, indem die Server-TCP-Verbindung (124) bestimmt wird, die die am wenigsten lange Antwortzeit basierend auf der Überwachung hat.
  6. Computernetzwerkgerät (26) nach einem der vorhergehenden Ansprüche, wobei die Server-TCP-Verbindungen (124) dauerhaft sind.
  7. Computernetzwerksystem zur Verwendung mit einem Computernetzwerk (20), das System aufweisend: einen Server (14); eine Vielzahl von Clients (12); und ein Computernetzwerkgerät (26) nach einem der vorhergehenden Ansprüche, das zwischen dem Server (14) und der Vielzahl von Clients (12) angeordnet ist.
  8. Computernetzwerkverfahren zum Verarbeiten von HTTP (Hypertext Transfer Protocol)-Anfragen von einer Vielzahl von Clients (12) über eine Vielzahl von Client-TCP (Transmission Control Protocol)-Verbindungen (120), das Verfahren gekennzeichnet durch: Überwachen einer Vielzahl von Server-TCP-Verbindungen (124) von einem Computernetzwerkgerät (26) mit einem einzelnen Server (14), um zumindest einen Antwortparameter für jede der Server-TCP-Verbindung (124) zu ermitteln; Auswählen einer der Server-TCP-Verbindungen (124) basierend auf dem ermittelten Antwortparameter; und Leiten der HTTP-Anfragen an ein einzelnes Netzwerk-Socket (124a) auf dem Server (14) über eine Server-TCP-Verbindung (124) als eine multiplexte HTTP-Anfrage.
  9. Verfahren nach Anspruch 8, wobei der Antwortparameter ausgewählt ist aus einer Gruppe bestehend aus der am wenigsten langen Antwortzeit, dem Socket, auf das zuletzt zugegriffen wurde, der geringsten Anzahl von nicht-erfüllten Anfragen, der Art der angefragten Daten und der Größe der angefragten Daten.
  10. Verfahren nach Anspruch 8 oder 9, ferner aufweisend: Empfangen von HTTP-Antworten von dem Server (14) über die ausgewählte Server-TCP-Verbindung (124); und selektives Leiten der HTTP-Antworten an die Vielzahl von Ursprungs-Clients (12) über die Client-TCP-Verbindungen (120).
  11. Verfahren nach einem der Ansprüche 8 bis 10, wobei die Client-(120) und Server-(124)TCP-Verbindungen dauerhaft sind.
  12. Verfahren nach einem der Ansprüche 8 bis 11, wobei das Auswählen einer der Server-TCP-Verbindungen (124) basierend auf dem ermittelten Antwortparameter, ein Bestimmen eines Server-Sockets (124a) mit einer am wenigsten langen Antwortzeit aufweist.
  13. Verfahren nach einem der Ansprüche 8 bis 12, wobei das Auswählen einer der Server-TCP-Verbindungen (124) basierend auf dem ermittelten Antwortparameter, ein Bestimmen eines Server-Sockets (124a), auf das zuletzt zugegriffen wurde, aufweist.
  14. Verfahren nach einem der Ansprüche 8 bis 13, wobei das Auswählen einer der Server-TCP-Verbindungen (124) basierend auf dem ermittelten Antwortparameter, das Bestimmen eines Server-Sockets (124a) mit der geringsten Anzahl an nicht-erfüllten Anfragen aufweist.
  15. Verfahren nach einem der Ansprüche 8 bis 14, des Weiteren aufweisend ein Horchen nach HTTP-Antworten von dem einzelnen Server-Socket (124a).
  16. Verfahren nach Anspruch 15, des Weiteren aufweisend ein Empfangen von HTTP-Antworten von dem einzelnen Server-Socket (124a) über die ausgewählte Server-TCP-Verbindung (124).
  17. Verfahren nach Anspruch 16, ferner aufweisend ein Demultiplexen der empfangenen HTTP-Antworten um ein selektives Leiten und Übertragen der empfangenen Antworten an die entsprechenden Ursprungs-Clients (12) zu ermöglichen.
  18. Verfahren nach Anspruch 17, ferner aufweisend ein Senden der demultiplexten HTTP-Antworten an die entsprechenden Ursprungs-Clients (12) über die entsprechenden Client-TCP-Verbindungen (120).
DE60130011T 2000-10-10 2001-10-10 Http-multiplexer/demultiplexer Expired - Lifetime DE60130011T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US23955200P 2000-10-10 2000-10-10
US239552P 2000-10-10
US09/882,375 US20020042839A1 (en) 2000-10-10 2001-06-15 HTTP multiplexor/demultiplexor
US882375 2001-06-15
PCT/US2001/031854 WO2002031676A1 (en) 2000-10-10 2001-10-10 Http multiplexor/demultiplexor

Publications (2)

Publication Number Publication Date
DE60130011D1 DE60130011D1 (en) 2007-09-27
DE60130011T2 true DE60130011T2 (de) 2008-05-15

Family

ID=26932665

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60130011T Expired - Lifetime DE60130011T2 (de) 2000-10-10 2001-10-10 Http-multiplexer/demultiplexer

Country Status (6)

Country Link
US (2) US20020042839A1 (de)
EP (1) EP1332437B1 (de)
AT (1) ATE370455T1 (de)
AU (1) AU2002214574A1 (de)
DE (1) DE60130011T2 (de)
WO (1) WO2002031676A1 (de)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007092B2 (en) * 2000-10-05 2006-02-28 Juniper Networks, Inc. Connection management system and method
US7263550B1 (en) * 2000-10-10 2007-08-28 Juniper Networks, Inc. Agent-based event-driven web server architecture
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
US7363248B2 (en) * 2000-12-22 2008-04-22 Invenda Corporation Pre-filling order forms for transactions over a communications network
US7349867B2 (en) 2000-12-22 2008-03-25 Invenda Corporation Tracking transactions by using addresses in a communications network
US7415429B2 (en) * 2000-12-22 2008-08-19 Invenda Corporation Providing navigation objects for communications over a network
KR100451721B1 (ko) * 2000-12-30 2004-10-08 엘지전자 주식회사 이동통신 시스템에서의 프로세서간 정합 방법
EP1415232B1 (de) * 2001-08-08 2015-01-14 Flash Networks Ltd. SYSTEM UND VERFAHREN ZUr BESCHLEUNIGUNG DER ÜBERMITTLUNG VON INHALT AUF TCP/IP-BASIS
US20030041101A1 (en) * 2001-08-24 2003-02-27 Hansche Brian A. Presence watcher proxy
US7752331B2 (en) * 2001-10-30 2010-07-06 At&T Intellectual Property I, L.P. Information gateway manager for multiple devices
US7490162B1 (en) 2002-05-15 2009-02-10 F5 Networks, Inc. Method and system for forwarding messages received at a traffic manager
US20040034687A1 (en) * 2002-08-01 2004-02-19 Bellsouth Intellectual Property Corporation Extensible instant messaging service
US8233392B2 (en) * 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US8270423B2 (en) * 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US8244875B2 (en) * 2002-12-13 2012-08-14 ANXeBusiness Corporation Secure network computing
US8332464B2 (en) * 2002-12-13 2012-12-11 Anxebusiness Corp. System and method for remote network access
US7774484B1 (en) 2002-12-19 2010-08-10 F5 Networks, Inc. Method and system for managing network traffic
US20050193056A1 (en) * 2002-12-26 2005-09-01 Schaefer Diane E. Message transfer using multiplexed connections in an open system interconnection transaction processing environment
US7949712B2 (en) 2003-02-10 2011-05-24 At&T Intellectual Property I, L.P. High availability presence engine for instant messaging
US7493398B2 (en) * 2003-04-16 2009-02-17 Microsoft Corporation Shared socket connections for efficient data transmission
WO2004114581A2 (en) 2003-06-17 2004-12-29 Bytemobile, Inc. Method and system for dynamic interleaving
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US7286476B2 (en) * 2003-08-01 2007-10-23 F5 Networks, Inc. Accelerating network performance by striping and parallelization of TCP connections
US7486698B2 (en) * 2003-12-19 2009-02-03 Solace Systems, Inc. Multiplexing of control and data over an HTTP connection
US20050198302A1 (en) * 2003-12-29 2005-09-08 Microsoft Corporation Multi-client support
US20050149529A1 (en) * 2004-01-02 2005-07-07 Andi Gutmans Efficient handling of download requests
US20100211626A1 (en) * 2004-01-12 2010-08-19 Foundry Networks, Inc. Method and apparatus for maintaining longer persistent connections
US20060181026A1 (en) * 2005-02-14 2006-08-17 Wong Jacob Y Chinese poker deck
US8077632B2 (en) * 2005-01-20 2011-12-13 Citrix Systems, Inc. Automatic LAN/WAN port detection
US20060288109A1 (en) * 2005-06-17 2006-12-21 Utstarcom, Inc. Method and apparatus to facilitate Layer 3 internet protocol socket connections
US8832705B1 (en) * 2005-12-28 2014-09-09 Emc Corporation Ordered mutual exclusion
US20070214251A1 (en) * 2006-03-07 2007-09-13 Zhong Li Naming and accessing remote servers through security split reverse proxy
US7792153B2 (en) * 2006-05-08 2010-09-07 International Business Machines Corporation Sequencing multi-source messages for delivery as partial sets to multiple destinations
JP2007317028A (ja) * 2006-05-26 2007-12-06 Ns Solutions Corp 情報処理装置、データベース管理システム、情報処理装置の制御方法及びプログラム
US20080114882A1 (en) * 2006-11-13 2008-05-15 David Alan Christenson Multiplexing Multiple Client Connections in a Single Socket
US7865576B2 (en) * 2007-01-31 2011-01-04 Alcatel Lucent Change of subscriber information in a multi-chassis network access environment
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
US9083758B2 (en) * 2007-06-11 2015-07-14 Nokia Technologies Oy System and method for using presence information
US8260934B2 (en) * 2007-08-31 2012-09-04 Red Hat, Inc. Multiplex transport
US9558097B2 (en) 2007-11-13 2017-01-31 Red Hat, Inc. Automated recording and playback of application interactions
US8849944B2 (en) * 2007-11-27 2014-09-30 Red Hat, Inc. Multi-use application proxy
US20100077035A1 (en) * 2008-09-23 2010-03-25 Nokia Corporation Optimized Polling in Low Resource Devices
US8406133B2 (en) * 2009-02-24 2013-03-26 Silver Spring Networks, Inc. System and method of regulating a packet rate to optimize traffic in a network
US8193934B2 (en) * 2009-09-30 2012-06-05 Motorola Solutions, Inc. Method for using recording rules and previous value selection rules for presence information in a communications system
US8996657B2 (en) * 2010-09-01 2015-03-31 Canon Kabushiki Kaisha Systems and methods for multiplexing network channels
US20120054316A1 (en) * 2010-09-01 2012-03-01 Canon Kabushiki Kaisha Tcp multiplexing over a proxy
US20120151087A1 (en) * 2010-12-14 2012-06-14 Nuvel, Inc. System and method for providing a network proxy data tunnel
US10375203B2 (en) * 2011-02-28 2019-08-06 Red Hat, Inc. Generating a selection of cloud data distribution service from alternative providers for staging data to host clouds
US20140236768A1 (en) * 2012-10-05 2014-08-21 Redfin Corporation Physical references for providing supplemental real estate information
US9778963B2 (en) 2014-03-31 2017-10-03 Solarflare Communications, Inc. Ordered event notification
US20160037509A1 (en) * 2014-07-30 2016-02-04 Onavo Mobile Ltd. Techniques to reduce bandwidth usage through multiplexing and compression
US9923677B2 (en) * 2014-12-26 2018-03-20 Intel Corporation Multiplexing many client streams over a single connection
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
CN106487603B (zh) * 2015-08-26 2019-12-10 阿里巴巴集团控股有限公司 一种响应测试方法及装置
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
CN107231647B (zh) * 2017-08-03 2019-01-11 Oppo广东移动通信有限公司 网络检测方法、网络检测装置及智能终端
US10182009B1 (en) * 2018-07-24 2019-01-15 Capital One Services, Llc Creating endpoints
US11824777B1 (en) * 2021-05-27 2023-11-21 Aviatrix Systems, Inc. System and method for automatic appliance configuration and operability

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0632522B2 (ja) * 1983-12-29 1994-04-27 富士通株式会社 ディジタル信号伝送方法
SU1458295A1 (ru) * 1986-10-01 1989-02-15 Издательство "Известия" Советов Народных Депутатов Ссср Узел соединени обойм пространственного конвейера
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US6535880B1 (en) * 2000-05-09 2003-03-18 Cnet Networks, Inc. Automated on-line commerce method and apparatus utilizing a shopping server verifying product information on product selection
US6185619B1 (en) 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
US5644718A (en) * 1994-11-10 1997-07-01 At&T Corporation Apparatus using circuit manager to associate a single circuit with each host application where the circuit is shared by a plurality of client applications
US5678007A (en) * 1994-11-22 1997-10-14 Microsoft Corporation Method and apparatus for supporting multiple outstanding network requests on a single connection
US6128657A (en) * 1996-02-14 2000-10-03 Fujitsu Limited Load sharing system
US5754830A (en) * 1996-04-01 1998-05-19 Openconnect Systems, Incorporated Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US5826261A (en) * 1996-05-10 1998-10-20 Spencer; Graham System and method for querying multiple, distributed databases by selective sharing of local relative significance information for terms related to the query
US5812668A (en) * 1996-06-17 1998-09-22 Verifone, Inc. System, method and article of manufacture for verifying the operation of a remote transaction clearance system utilizing a multichannel, extensible, flexible architecture
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
US5918017A (en) * 1996-08-23 1999-06-29 Internatioinal Business Machines Corp. System and method for providing dynamically alterable computer clusters for message routing
US6012083A (en) * 1996-09-24 2000-01-04 Ricoh Company Ltd. Method and apparatus for document processing using agents to process transactions created based on document content
SE9603753L (sv) * 1996-10-14 1998-04-06 Mirror Image Internet Ab Förfarande och anordning för informationsöverföring på Internet
US5948061A (en) * 1996-10-29 1999-09-07 Double Click, Inc. Method of delivery, targeting, and measuring advertising over networks
US6108782A (en) * 1996-12-13 2000-08-22 3Com Corporation Distributed remote monitoring (dRMON) for networks
US6374237B1 (en) * 1996-12-24 2002-04-16 Intel Corporation Data set selection based upon user profile
US5941988A (en) * 1997-01-27 1999-08-24 International Business Machines Corporation Session and transport layer proxies via TCP glue
US6845505B1 (en) 1997-02-03 2005-01-18 Oracle International Corporation Web request broker controlling multiple processes
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
US6128663A (en) * 1997-02-11 2000-10-03 Invention Depot, Inc. Method and apparatus for customization of information content provided to a requestor over a network using demographic information yet the user remains anonymous to the server
US5996076A (en) * 1997-02-19 1999-11-30 Verifone, Inc. System, method and article of manufacture for secure digital certification of electronic commerce
US6104716A (en) * 1997-03-28 2000-08-15 International Business Machines Corporation Method and apparatus for lightweight secure communication tunneling over the internet
US6243379B1 (en) * 1997-04-04 2001-06-05 Ramp Networks, Inc. Connection and packet level multiplexing between network links
US6286029B1 (en) * 1997-04-28 2001-09-04 Sabre Inc. Kiosk controller that retrieves content from servers and then pushes the retrieved content to a kiosk in the order specified in a run list
US6173322B1 (en) * 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6263368B1 (en) * 1997-06-19 2001-07-17 Sun Microsystems, Inc. Network load balancing for multi-computer server by counting message packets to/from multi-computer server
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
US6115745A (en) * 1997-11-25 2000-09-05 International Business Machines Corporation Scheduling of distributed agents in a dialup network
US6078953A (en) * 1997-12-29 2000-06-20 Ukiah Software, Inc. System and method for monitoring quality of service over network
US6363077B1 (en) * 1998-02-13 2002-03-26 Broadcom Corporation Load balancing in link aggregation and trunking
US6003083A (en) * 1998-02-19 1999-12-14 International Business Machines Corporation Workload management amongst server objects in a client/server network with distributed objects
US6175869B1 (en) * 1998-04-08 2001-01-16 Lucent Technologies Inc. Client-side techniques for web server allocation
JP4064060B2 (ja) * 1998-05-15 2008-03-19 ユニキャスト・コミュニケーションズ・コーポレイション 参照ウェブページに埋め込まれた広告タグをもちいて、ブラウザにより開始される、ユーザには見えないネットワーク分散隙間ウェブ公告を実施するための技術
US6314463B1 (en) * 1998-05-29 2001-11-06 Webspective Software, Inc. Method and system for measuring queue length and delay
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
US6266707B1 (en) * 1998-08-17 2001-07-24 International Business Machines Corporation System and method for IP network address translation and IP filtering with dynamic address resolution
US6411986B1 (en) * 1998-11-10 2002-06-25 Netscaler, Inc. Internet client-server multiplexer
KR100317251B1 (ko) * 1998-12-14 2002-02-19 서평원 회선다중화장치
US6327578B1 (en) * 1998-12-29 2001-12-04 International Business Machines Corporation Four-party credit/debit payment protocol
US6473851B1 (en) * 1999-03-11 2002-10-29 Mark E Plutowski System for combining plurality of input control policies to provide a compositional output control policy
US6490632B1 (en) * 1999-03-18 2002-12-03 3Com Corporation High performance load balancing and fail over support of internet protocol exchange traffic over multiple network interface cards
US6252848B1 (en) * 1999-03-22 2001-06-26 Pluris, Inc. System performance in a data network through queue management based on ingress rate monitoring
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
US7051066B1 (en) * 1999-07-02 2006-05-23 Cisco Technology, Inc. Integrating service managers into a routing infrastructure using forwarding agents
US6675216B1 (en) * 1999-07-06 2004-01-06 Cisco Technolgy, Inc. Copy server for collaboration and electronic commerce
US20010036271A1 (en) * 1999-09-13 2001-11-01 Javed Shoeb M. System and method for securely distributing digital content for short term use
US6882623B1 (en) * 2000-02-08 2005-04-19 Native Networks Technologies Ltd. Multi-level scheduling method for multiplexing packets in a communications network
US6735586B2 (en) * 2000-02-08 2004-05-11 Sybase, Inc. System and method for dynamic content retrieval
US6377975B1 (en) * 2000-03-01 2002-04-23 Interactive Intelligence, Inc. Methods and systems to distribute client software tasks among a number of servers
US7162539B2 (en) * 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
US6779039B1 (en) * 2000-03-31 2004-08-17 Avaya Technology Corp. System and method for routing message traffic using a cluster of routers sharing a single logical IP address distinct from unique IP addresses of the routers
US6591298B1 (en) * 2000-04-24 2003-07-08 Keynote Systems, Inc. Method and system for scheduling measurement of site performance over the internet
US6754701B1 (en) * 2000-05-05 2004-06-22 Mercury Interactive Corporation Use of a single thread to support multiple network connections for server load testing
US7020698B2 (en) * 2000-05-31 2006-03-28 Lucent Technologies Inc. System and method for locating a closest server in response to a client domain name request
US6529903B2 (en) * 2000-07-06 2003-03-04 Google, Inc. Methods and apparatus for using a modified index to provide search results in response to an ambiguous search query
US6996631B1 (en) * 2000-08-17 2006-02-07 International Business Machines Corporation System having a single IP address associated with communication protocol stacks in a cluster of processing systems
US6738813B1 (en) * 2000-09-11 2004-05-18 Mercury Interactive Corporation System and method for monitoring performance of a server system using otherwise unused processing capacity of user computing devices
US6754621B1 (en) * 2000-10-06 2004-06-22 Andrew Cunningham Asynchronous hypertext messaging system and method

Also Published As

Publication number Publication date
DE60130011D1 (en) 2007-09-27
EP1332437A1 (de) 2003-08-06
EP1332437A4 (de) 2006-06-14
US7231446B2 (en) 2007-06-12
ATE370455T1 (de) 2007-09-15
AU2002214574A1 (en) 2002-04-22
EP1332437B1 (de) 2007-08-15
WO2002031676A1 (en) 2002-04-18
US20020052931A1 (en) 2002-05-02
US20020042839A1 (en) 2002-04-11

Similar Documents

Publication Publication Date Title
DE60130011T2 (de) Http-multiplexer/demultiplexer
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE602005003142T2 (de) Vorrichtung und verfahren zur unterstützung von verbindungsherstellung in einem offload der netzwerkprotokollverarbeitung
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE69836920T2 (de) SYSTEM UND VERFAHREN ZUM ABGEBEN VON WEB CONTENT üBER EIN RUNDFUNKMEDIUM
DE69727438T2 (de) Zwischenspeicher-Protokoll für verbesserte Webleistung
DE60019640T2 (de) Digitales Rechnersystem und Verfahren zur Beantwortung von über ein externes Netzwerk empfangenen Anfragen
DE69736045T2 (de) Verfahren zum Übertragen und Darstellen von Datenseiten in einem Datennetzwerk
DE69730056T2 (de) Routen von duplikaten
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE60216918T2 (de) Verfahren und computersystem zur auswahl eines randservercomputers
DE69729399T2 (de) Datenverwaltungssystem und Verfahren für replizierte Daten
DE69919965T2 (de) Methode und Proxy Umleiteinrichtung zum transparenten Verweisen von Anfragen nach Web-Objekten auf Proxycaches
EP1887484B1 (de) Verfahren zum vorabübertragen strukturierter datenmengen zwischen einer clienteinrichtung und einer servereinrichtung
DE69731616T2 (de) Kommunikationsaufbau in einem paketdatennetzwerk
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE69928860T2 (de) System und Verfahren zur Auswahl von Servern für gespiegelte Sites
DE60035882T2 (de) Protokoll einer zerteilten transaktion für ein bussystem
DE69733498T2 (de) Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver
DE602004008693T2 (de) Dynamischer Lastausgleich für geschäftlichen IP-Verkehr
DE69927285T2 (de) Netzverwaltungssystem
DE60108166T2 (de) Untergruppen-multicasting in einem kommunikationsnetz
DE60122691T2 (de) Verfahren und vorrichtung zum verteilten cachen
DE60131517T2 (de) Verfahren und vorrichtung zum rückhalten eines verbindungsanforderungstroms eines hochvolumigen burst-klients in einem verteilten netzwerk
DE60303026T2 (de) System, verfahren und produkt zur verwaltung des datenverkehrs in einem netzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition