DE69937831T2 - System und Verfahren zum Verwalten von Client-Anforderungen in Client-Server-Netzen - Google Patents

System und Verfahren zum Verwalten von Client-Anforderungen in Client-Server-Netzen Download PDF

Info

Publication number
DE69937831T2
DE69937831T2 DE69937831T DE69937831T DE69937831T2 DE 69937831 T2 DE69937831 T2 DE 69937831T2 DE 69937831 T DE69937831 T DE 69937831T DE 69937831 T DE69937831 T DE 69937831T DE 69937831 T2 DE69937831 T2 DE 69937831T2
Authority
DE
Germany
Prior art keywords
server
client
client request
network
request
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
DE69937831T
Other languages
English (en)
Other versions
DE69937831D1 (de
Inventor
Cary A. San Diego JARDIN
Steven Valley Center SCHNETZLER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE69937831D1 publication Critical patent/DE69937831D1/de
Application granted granted Critical
Publication of DE69937831T2 publication Critical patent/DE69937831T2/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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

Landscapes

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

Description

  • TECHNISCHER HINTERGRUND DER ERFINDUNG
  • 1. Technisches Gebiet der Erfindung
  • Die Erfindung betrifft allgemein die Technologie von Computernetzen. Insbesondere betrifft die vorliegende Erfindung die Verwaltung von Client-Anforderungen in Netzwerken auf Client-Server-Basis.
  • 2. Beschreibung der verwandten Technik
  • Das Internetprotokoll (IP) ist ein Netzwerkschichtprotokoll, das durch viele Firmennetze, Regierungsnetze und das öffentliche Internet weltweit genutzt wird. Die IP-Netzwerkschicht unterstützt viele persönliche, technische und Geschäftsanwendungen, wie z. B. elektronische Post bzw. Email, elektronische Geldüberweisungen, Verarbeitung medizinischer Aufzeichnungen und ähnliche Datenübertragungen. IP ist ein verbindungsloses Netzwerkschichtprotokoll, das Adressier-, Leitweglenkungs- und Steuerungsfunktionen für das Senden und Empfangen von Datagrammen über ein Netzwerk durchführt. Die Netzwerkschicht lenkt Pakete von der Quelle zum Ziel. Ein IP-Datagramm ist ein Datenpaket, das einen Kopfteil und einen Datenteil aufweist. Der Kopfteil enthält ein Kopfteilsegment fester Länge und ein optionales Segment variabler Länge. Der Datenteil enthält die über das Netzwerk zu übertragenden Informationen. Als verbindungsloses Protokoll erfordert IP keinen vordefinierten Weg, der mit einer logischen Netzverbindung assoziiert ist. Daher steuert das IP nicht die Datenwegnutzung. Wenn eine Netzvorrichtung oder Leitung nicht verfügbar wird, bietet das IP den Mechanismus, der benötigt wird, um Datagramme um den betroffenen Bereich herum zu lenken.
  • Das Übertragungssteuerungsprotokoll (TCP) ist ein Transportschichtprotokoll, das verwendet wird, um eine zuver lässige, verbindungsorientierte Transportschichtverbindung zwischen Computersystemen bereitzustellen. Die Netzwerkschicht stellt Dienste für die Transportschicht bereit. Unter Anwendung eines Zweiwege-Quittungsaustauschschemas stellt TCP den Mechanismus für die Einrichtung, Unterhaltung und Beendigung logischer Verbindungen zwischen Computersystemen bereit. Die TCP-Transportschicht nutzt IP als ihr Netzwerkschichtprotokoll. Zusätzlich stellt TCP Protokollkanäle bereit, um Mehrfachprogramme, die auf einer einzigen Vorrichtung laufen, durch Einbeziehen der Ziel- und Ursprungsanschlußnummer bei jeder Nachricht zu unterscheiden. TCP führt Funktionen aus wie z. B. die Übertragung von Byte-Strömen, Datenflußdefinitionen, Datenempfangsbestätigungen, Neuübertragungen verlorener oder verstümmelter Daten und Multiplexen von mehreren Verbindungen über eine einzelne Netzverbindung. Schließlich ist TCP verantwortlich für die Einkapselung von Informationen in eine Datagrammstruktur.
  • Interprozeßkommunikations-(IPC-)Transaktionen können über verschiedene Computernetze auftreten, die verschiedene Kommunikationsmodelle nutzen. Das dominierende Modell für die Kommunikation zwischen zwei Computern basiert auf einer Client-Server-Beziehung. Unter Nutzung dieser Beziehung gibt ein Client-Computer (der "Client") eine oder mehrere Befehlsanforderungen an einen Server-Computer (den "Server") aus. Der Server erfüllt die Befehlsanforderungen des Client, indem er gemäß der Anforderung auf notwendige Ressourcen zugreift und anwendbare Befehle entsprechend ausführt. Der TCP/IP-Standard veranlaßt IPC-Transaktionen in Erfüllung dieser Client-Server-Beziehung, die zu einem Problem führt. Mit steigender Client-Zahl vermindert sich die Fähigkeit des Servers, die Anforderungen der Clients (bzw. der dienstanfordernden Geräte) zu erfüllen. Daher erfordern zum Beispiel Befehlsanforderungen von mehreren Clients für die Übertragung von Dateien von der gleichen Quelle (z. B. dem Server) mehr Zeit zur Ausführung durch den Wirts-Server. Wichtiger ist, daß mehrere Befehlsanforderungen, die an den gleichen Server gerichtet sind, eine Überfüllung von Datenwegen erzeugen und das Netzwerk verlangsamen.
  • Es wurden verschiedene Methoden angewandt, um diese Überfüllung in der Technologie zu bewältigen. Die erste Methode erfordert die vorherige Zuweisung von Puffern für Pakete durch Reservieren von Speicherplatz in Zwischenservern (d. h. Servern auf der Strecke), um die Pakete vorübergehend zu halten. Diese Methode ist kostspielig für Netzbetreiber. Eine zweite Methode erfordert das Verwerfen von Paketen, wenn kein Platz für den Empfang des Pakets beim Zielverarbeitungsrechner (Host) ist, oder wenn ein Paket nicht vor Ablauf einer vorgegebenen Zeitdauer (z. B. 255 Sekunden) erfaßt wird. Diese Methode verursacht eine Verzögerung im Netzwerk, da sie eine nochmalige Übertragung von Paketen infolge Datenverlusts erfordert. Eine dritte Methode erfordert eine Begrenzung der Anzahl von Paketen in dem Kommunikationsmedium eines Netzwerks (d. h. eines Teilnetzes). Diese Methode vermindert den Nutzen des Netzwerks und erhöht die Ausgabe von 'Netzwerk besetzt'-Signalen. Eine vierte Methode erfordert das Senden von "Drossel"-Paketen zum Ursprungs-Server, um die Eingabegeschwindigkeit zu verlangsamen, wenn der Server überlastet wird. Diese Methode verursacht Datenverlust und erfordert das erneute Senden von Paketen.
  • Wenn ein Server überlastet ist, weist der Server außerdem eine Clientanforderung zurück, indem er dem Client rät, sich an einen anderen Server zu wenden. Dieser Ansatz erfordert, daß eine bereits bestehende Client-Server-Sitzung beendet und die Client-Anwendung modifiziert wird, um diese Funktionalität zu unterstützen. Zum Beispiel offenbart das Dokument "Distributed Packet Rewriting" von Bestavros A., Crovella M., Liu J., Martin D., Boston University, 1. Dezember 1997, ein Verfahren zur Weiterleitung von Client-Anforderungen durch verteiltes Umschreiben von Paketen. Daher besteht in der Technologie ein Bedarf für ein Verfahren zur effizienteren Verwaltung der Servernutzung in Netzwerken auf Client-Server-Basis. Das Verfahren sollte existierenden Kommunikationsprotokollen entsprechen, ohne eingerichtete Nachrichten- und Signalgabestrukturen zu stören.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Um die Beschränkungen der verwandten Technologie zu überwinden, bietet die Erfindung ein System und ein Verfahren zur Verwaltung von Client-Server-Anforderungen in Computernetzwerken bzw. Rechnerverbänden gemäß den beigefügten Ansprüchen 1, 2 und 8, 9. Die Erfindung steht im Einklang mit bestehenden Kommunikationsprotokollen und unterstützt diese, wie z. B. TCP/IP, um eine Datenwegüberfüllung aufgrund vielfacher Client-Anforderungen zu vermindern. Zudem ist die Anwendung der Erfindung für Clients transparent, wodurch die Störung von bereits eingerichteten Client-Server-Verknüpfungen vermieden wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und weitere Aspekte, Merkmale und Vorteile der Erfindung werden durch Bezugnahme auf die nachstehende ausführliche Beschreibung, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist, besser verständlich. Dabei zeigen:
  • 1 ein Blockschaltbild, das die Struktur eines TCP-Transportpakets einer Transportschicht beschreibt;
  • 2 ein Blockschaltbild, das die Struktur eines IP-Kopfteils einer Netzwerkschicht beschreibt;
  • 3 ein Blockschaltbild eines beispielhaften Netzwerks;
  • 4 ein Blockschaltbild eines durch die Erfindung genutzten Client-Server-Netzwerks;
  • 5 ein Ablaufdiagramm, das die Entscheidungsschritte darstellt, die durch den in 4 dargestellten Vermittler ausgeführt werden;
  • 6 ein Ablaufdiagramm, das die Entscheidungsschritte darstellt, die durch den in 4 dargestellten Server ausgeführt werden.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Die Erfindung stellt einen Vermittler (Broker) für die Verwaltung von Client-Anforderungen in Client-Server-Computernetzwerken bereit. Die Erfindung unterstützt existierende Kom munikationsprotokolle, wie z. B. TCP/IP, um die Überfüllung von Datenwegen aufgrund vielfacher Client-Anforderungen zu vermindern. Außerdem ist die Anwendung der Erfindung für Clients (Dienstanforderer) transparent, wodurch eine Störung bereits bestehender Client-Server-Verknüpfungen vermieden wird. Der "transparente" Aspekt der vorliegenden Erfindung bezieht sich auf die Fähigkeit des Vermittlers, Client-Anforderungen unter Verwendung eines Fremdservers auszuführen, ohne daß sich der Client bewußt ist, daß ein Fremdserver eingesetzt wird.
  • Um die Funktionsweise und die Vorteile der Erfindung verständlicher zu machen, wird eine Beschreibung einer typischen Paketstruktur gegeben. 1 zeigt ein Blockschaltbild, das die Struktur eines TCP-Pakets 100 in einer Transportschicht beschreibt. Der Begriff "Paket" bezieht sich gewöhnlich auf eine Nachrichteneinheit, einschließlich Daten- und Steuersignalen, die in einer Netzwerkschicht übertragen wird. Der Begriff "Nachricht" bezieht sich gewöhnlich auf die zu übertragenden Nutzerinformationen oder Daten. Eine Nachricht kann von beliebiger Länge sein, daher ist es Sache der Transportschicht (d. h. des TCP bzw. Übertragungssteuerungsprotokolls), die Nachricht in mehrere Pakete zur Übertragung zu zerlegen oder zu unterteilen.
  • Wie in 1 dargestellt, weist der TCP-Kopf 102 ein Ursprungsanschlußfeld 104 auf, gefolgt von einem Zielanschlußfeld 108 mit jeweils 16 Bit, um die Endpunkte einer Netzwerkverbindung zu kennzeichnen. Die Erfindung findet Anwendung bei der Unterstützung aller Systemanschlüsse, die durch das Ursprungsanschlußfeld 104 gekennzeichnet werden. Jeder "Host"-Computer bzw. Verarbeitungsrechner kann für sich selbst festlegen, wie seine Anschlüsse zuzuweisen sind. In einem Netzwerk bezieht sich der Begriff "Host" bzw. Wirt auf einen von einer Gruppe von Computern, die für die Ausführung von Nutzeranwendungen (d. h. Programmen) vorgesehen sind. Der TCP-Kopf 102 umfasst ferner ein Folgenummernfeld 112, gefolgt von einem Huckepack-Quittierfeld 116. TCP nimmt beliebig lange Messungen von Anwenderprozessen an, zerlegt sie in TCP-Datagramme von nicht mehr als 65536 Bytes, und sendet jedes Datagramm als ge trenntes Paket. Daher ist die Folgenummer 112 ein 32-Bit-Wort, das die Reihenfolge des Datagramms in der ursprünglichen Nachricht anzeigt. Das Huckepack-Quittierfeld 116 wird von einem empfangenden Computer benutzt, um den Empfang eines bestimmten Pakets zu zeigen. Ein TCP-Kopflängenfeld 120 von 4 Bits folgt auf das Huckepack-Quittierfeld 116, um anzuzeigen, wie viele 32-Bit-Wörter in dem TCP-Kopf 102 enthalten sind. Diese Information wird benötigt, da der Kopf 102 ein Optionsfeld 160 von variabler Länge enthält, das Daten übermittelt, über die eine Vereinbarung durch den Ursprungsverarbeitungsrechner und den Zielverarbeitungsrechner getroffen werden kann.
  • Nach mehreren ungenutzten Bits 122 folgen auf das TCP-Kopflängenfeld 120 sechs 1-Bit-Marken. Die erste 1-Bit-Marke ist URG 124, die auf 1 gesetzt wird, wenn ein Dringend-Zeiger 156 benutzt wird, und die sonst auf 0 gesetzt wird. Der Dringend-Zeiger 156 wird verwendet, um eine Byte-Versetzung gegenüber der gegenwärtigen Folgenummer 112 anzuzeigen, bei der dringende Daten zu finden sind. Die zweite 1-Bit-Marke ist ACK 128, die auf 1 gesetzt wird, wenn ein Paket eine Quittung trägt, und sonst auf 0 gesetzt wird. Eine Verbindungsantwort trägt zum Beispiel eine Quittung, daher wird ihr ACK-Bit 128 auf 1 gesetzt, und sonst wird es auf 0 gesetzt. Die dritte 1-Bit-Marke ist EOM 132, die das Ende einer Nachricht anzeigt, wenn sie auf 1 gesetzt ist. Im letzten Paket einer Nachricht ist das EOM-Bit 132 auf 1 gesetzt. In allen anderen Paketen ist das EOM-Bit 132 auf 0 gesetzt. Die vierte 1-Bit-Marke ist RST 136, die verwendet wird, um eine Verbindung zurückzusetzen, die wegen einer Verzögerung oder eines Ausfalls des Verarbeitungsrechners durcheinandergeraten ist. Eine Verzögerung des Verarbeitungsrechners kann wegen einer Überfüllung des Netzwerks mit Paketen auftreten. Ein Ausfall des Verarbeitungsrechners (gewöhnlich als "Absturz" bezeichnet) kann durch verschiedene Ereignisse verursacht werden, wie z. B. Stromausfall, ein Rücksetzen des Verarbeitungsrechners oder einen Fehler in der Anwendungssoftware des Verarbeitungsrechners. Die fünfte 1-Bit-Marke ist SYN 140, die verwendet wird, um Synchronisierung für eine Verbindungsanforderung herzustellen. Eine Verbindungsanforderung weist ein auf 1 gesetztes SYN-Bit 140 und ein auf 0 gesetztes ACK-Bit 128 auf, um anzuzeigen, daß die Huckepack-Quittung 116 nicht in Gebrauch ist. Wie oben festgestellt, trägt die Verbindungsantwort eine Quittung, wobei ihr SYN-Bit 140 und ihr ACK-Bit 128 auf 1 gesetzt sind. Die sechste 1-Bit-Marke ist FIN 144, welche die Freigabe einer Verbindung anzeigt. Das FIN-Bit 144 wird auf 1 gesetzt, um anzuzeigen, daß der Sender keine Daten mehr aufweist, und wird sonst auf 0 gesetzt.
  • Die Ablaufsteuerung im TCP wird unter Verwendung eines Gleitfensters von variabler Größe gehandhabt. Ein 16-Bit-Fensterfeld 148 wird benutzt, um anzuzeigen, wie viele Bytes ein Ursprungsverarbeitungsrechner über die durch einen Zielverarbeitungsrechner quittierte Anzahl von Bytes hinaus senden kann. Auf das Fensterfeld 148 folgt ein Kontrollsummenfeld 152, um zuverlässige Verbindungen bereitzustellen. Ein Übertragungsfehler kann durch den Zielverarbeitungsrechner erfaßt werden, indem er die Kontrollsumme auf die gleiche Weise wie der Ursprungsverarbeitungsrechner berechnet und sie mit dem Wert im Kontrollsummenfeld 152 vergleicht. Der Wert im Kontrollsummenfeld 152 wird durch den Ursprungsverarbeitungsrechner durch Aufsummieren aller Daten, die als 16-Bit-Wörter betrachtet werden, und anschließendes Umwandeln der resultierenden Summe in ihr Einerkomplement berechnet, eine normale Computeroperation. Auf das Kontrollsummenfeld 152 folgt das oben beschriebene Dringend-Zeigerfeld 156. Auf das Dringend-Zeigerfeld 156 folgt ein Optionsfeld 160 zur Übertragung optionaler Daten, wie z. B. Puffergrößen, während des Einrichtungsvorgangs der Verbindung. Auf das Optionsfeld 160 folgt ein Datenfeld 170. Das Datenfeld 170 weist die Nachricht auf, die über das Computernetz zu übertragen ist. Zum Beispiel könnte die Nachricht ein Textverarbeitungsdokument, ein Computerprogramm, ein Digitalbild, digitalisierte Sprachinformation für einen Telefonanruf, eine Email-Nachricht usw. sein.
  • 2 zeigt ein Blockschaltbild, das die Struktur eines IP-Kopfes in der Netzwerkschicht beschreibt. Wie oben festgestellt, weist ein IP-Datagramm einen IP-Kopf 200 auf, an den sich ein Datenfeld 260 anschließt. Der IP-Kopf 200 enthält einen festen Abschnitt von 20 Byte und einen optionalen Ab schnitt von variabler Länge. Der feste Abschnitt von 20 Byte des IP-Kopfes 200 enthält ein Versionsfeld 204, das verfolgt, zu welcher Version das Internetprotokoll des Datagramms gehört. Durch Einbeziehen der Version 204 in jedes Datagramm ist es möglich, Protokolle zu ändern, während das Netzwerk arbeitet. Da der IP-Kopf 200 nicht von konstanter Länge ist, wird ein IP-Kopflängenfeld (IHL-Feld) 208 in dem IP-Kopf 200 bereitgestellt, um die Länge des IP-Kopfes 200 in 32-Bit-Wörtern anzuzeigen. Nach Definition des IP ist der Minimalwert der IHL 208 gleich 5. Auf das IHL-Feld 208 folgt ein "Dienstart"-Feld 212, das dem Verarbeitungscomputer ermöglicht, das Teilnetz über die erforderliche Dienstart zu informieren. Durch vordefinierte Dienstarten sind verschiedene Kombinationen von Zuverlässigkeit und Geschwindigkeit möglich. Auf das "Dienstart"-Feld 212 folgt ein "Gesamtlängen"-Feld 216, das die Gesamtzahl aller Bits in dem Datagramm enthält, d. h. sowohl Kopf- als auch Datenbits. Die maximale Größe des "Gesamtlängen"-Felds 216 ist 65536 Bytes.
  • Die IP-Netzwerkschicht kann jedes TCP-Datagramm in kleinere Fragmente quer über das Netzwerk zerlegen. Das Elementarfragment besteht aus 8 Bytes. Da die Größe eines Datagramms maximal 65536 Bytes beträgt, gibt es maximal 8192 Fragmente pro Datagramm. Daher wird hinter dem "Gesamtlängen"-Feld 216 ein Kennzeichnungsfeld 220 verwendet, um einem Zielverarbeitungsrechner zu ermöglichen, festzustellen, zu welchem Datagramm ein neu ankommendes Fragment gehört. Alle Fragmente, die zu dem gleichen Datagramm gehören, enthalten im Kennzeichnungsfeld 220 den gleichen Wert. Nach einem ungenutzten Bit folgen zwei 1-Bit-Felder dem Kennzeichnungsfeld 220. Das erste 1-Bit-Feld ist ein "Nicht fragmentieren"-Bit ("DF"-Bit) 224. Wenn das DE-Bit 224 auf 1 gesetzt ist, dann werden Netzwerk-Gateways (Verbindungsrechner) angewiesen, das Datagramm nicht zu fragmentieren, da das Ziel nicht in der Lage ist, die Fragmente zu ihrem ursprünglichen Datagramm zu rekonstruieren. Das zweite 1-Bit-Feld ist ein "Mehr Fragmente"-Bit ("MF"-Bit) 228. Das MF-Bit 228 wird als Gegenprüfung gegen das Gesamtlängenfeld 216 verwendet, um sicherzustellen, daß im rekonstruierten Datagramm keine Fragmente fehlen. Ausgenommen im letzten Frag ment ist in allen Nachrichtenfragmenten das MF-Bit 228 auf 1 gesetzt. An die zwei 1-Bit-Felder schließt sich ein "Fragmentversetzungs"-Feld 232 an, das den Ort oder die Reihenfolge des aktuellen Fragments in dem Datagramm anzeigt. Wie in 2 dargestellt, besteht das "Fragmentversetzungs"-Feld 232 aus 13 Bits, und daher gibt es maximal 8192 mögliche Nachrichtenfragmente für jedes Datagramm. Auf das "Fragmentversetzungs"-Feld 232 folgt ein "Lebensdauer"-Feld 236, das ein Zähler ist, der zur Begrenzung der Lebensdauern von Paketen verwendet wird. Typischerweise zerstört ein Netzwerk-Gateway Pakete mit einer Lebensdauer von mehr als 255 Sekunden.
  • Nachdem die IP-Netzwerkschicht am Zielverarbeitungsrechner ein vollständiges Datagramm aufgebaut hat, nutzt die IP-Netzwerkschicht ein Protokollfeld 240, um das Transportprotokoll anzuzeigen. TCP ist ein Transportprotokoll, aber es können auch andere Protokolle benutzt werden, wie z. B. Transportprotokolle, die durch den Kommunikationsstandard für Offene Systeme (OSI-Standard) (z. B. ISO 8073) spezifiziert werden. Ein Kopfteil-Kontrollsummenfeld 244 folgt auf das Protokollfeld 240, um die Gültigkeit des IP-Kopfes 200 zu überprüfen. Die Kopfteil-Kontrollsumme 244 ist nützlich, da sich der IP-Kopf 200 an einem Gateway (Verbindungsrechner) ändern kann, z. B. infolge Fragmentierung zu einer Vielzahl von Fragmenten. Auf die Kopfteil-Kontrollsumme 244 folgt ein "Ursprungsadressen"-Feld 248, um die Ursprungsnetzwerknummer und die Verarbeitungsrechnernummer des Datenabschnitts des Datagramms anzuzeigen. Schließlich folgt auf das Ursprungsadressenfeld 244 ein Zieladressenfeld 252, um die Nummer des Zielnetzwerks und die Nummer des Verarbeitungsrechners des Datenabschnitts anzuzeigen.
  • 3 zeigt ein Blockschaltbild eines Netzwerks mit einer beispielhaften peripheren Ausrüstung. Wie in 3 dargestellt, kann ein Computeranwender 302 unter Verwendung einer von verschiedenen Recheneinrichtungen einen Anschluß zu einem Netzwerkmedium 350 herstellen. Eine mögliche Schnittstelleneinrichtung kann ein Computer 304 sein, der über eine Netzwerkverbindung mit dem Netzwerkmedium 350 verbunden ist. Typischerweise wird die Netzwerkverbindung 305 durch einen Netz werk-Diensteanbieter für den Nutzer 302 bereitgestellt. Im Fall des öffentlichen Internets kann der Diensteanbieter zum Beispiel ein nationaler Diensteanbieter sein, wie z. B. America On-Line (AOL), Microsoft Network (MSN), eine Bildungs- oder Regierungsinstitution oder ein lokaler Diensteanbieter. Der Computer 304 kann beispielsweise irgendeine Maschine nach Industriestandard sein, wie z. B. ein IBM-PC (oder ein kompatibler PC) oder ein Apple Macintosh. Der Computer 304 kann auch eine patentrechtlich geschützte Maschine sein. Der Computer 304 kann eine Tastatur 306, eine Maus 308, einen Monitor 310 und eine Videokamera 312 umfassen. Außerdem kann der Nutzer 302 eine Netzwerk-Schnittstellensoftware 314 (z. B. Microsoft Internet Explorer oder Netscape Navigator/Communicator) zur Kommunikation über das Netzwerkmedium 350 nutzen. Alternativ kann der Nutzer 302 einen tragbaren Personalcomputer (PC) 316 oder ein Telefongerät 318 nutzen, das mit geeigneter Netzwerk-Schnittstellensoftware für den Anschluß an das Netzwerkmedium 350 ausgestattet ist. Der Nutzer 302 kann alternativ einen Monitor 320 verwenden, der an einen Kabelkasten 322 angeschlossen wird, der mit einer geeigneten Netzwerk-Schnittstellensoftware ausgestattet ist, um den Anschluß zum Netzwerkmedium 350 herzustellen. Ferner kann der Nutzer unter Verwendung eines Satelliten (nicht dargestellt) ein normales Fernsehgerät 324 verwenden, das an einen Satellitenempfänger 326 angeschlossen ist, um über eine Satellitenantenne 328 mit dem Netzwerkmedium zu kommunizieren. Schließlich kann der Nutzer 302 eine Netzwerk-Schnittstellensoftware in einem dedizierten (ausschließlich zum Netzbetrieb vorgesehenen) Server 332 verwenden, um über das Netzwerkmedium 350 zu kommunizieren. Dementsprechend können bei der Anwendung der vorliegenden Erfindung zahlreiche Varianten des Schnittstelleneinrichtungstyps angepaßt werden.
  • Unter Anwendung der obigen Schnittstelleneinrichtung gibt der Nutzer 302 Client-Befehlsanforderungen aus, um eine Kommunikationssitzung mit einem Zielserver durchzuführen. Ein Zielserver kann einer der Server 334, 336, 338, 340 oder 342 sein. Diese Server sind Recheneinrichtungen mit großen nichtflüchtigen bzw. Dauerspeichern, wie z. B. Festplattenlaufwer ken mit mehreren Gigabytes. Die Laufwerke enthalten Dateiressourcen, die für Clients zugänglich sind. Wie in 3 dargestellt, können die Server Teil eines lokalen Netzes (LAN) oder eines Weitverkehrsnetzes (WAN) sein, das über geeignete Schnittstellenverbindungen (z. B. Ethernet) angeschlossen ist. Beispielsweise stellt der Nutzer 302 unter Anwendung der TCP/IP-Protokolle einen Anschluß zu dem Netzwerkmedium 350 her, um eine elektronische Mail-(E-mail-)Nachricht an einen entfernten Nutzer (nicht dargestellt) zu senden, dessen Email-Konto sich im Zielserver 342 befindet. Der Typ der Befehlsanforderungen ist von der Netzwerk-Schnittstellensoftware abhängig, die von dem Nutzer 302 verwendet wird. Wenn beispielsweise Eudora genutzt wird, kann der Nutzer 302 eine Befehlsanforderung zum Senden einer Email-Nachricht übertragen, indem er das Icon bzw. Symbol "Senden" anklickt, das innerhalb eines graphischen Fensters auf einem Bildschirm erscheint. Als Reaktion auf den Befehl "Senden" wird die Email-Nachricht entsprechend den TCP/IP-Protokollen über das Netzwerk 350 zu ihrem Zielserver 342 übertragen.
  • 4 zeigt ein Blockschaltbild eines Client-Server-Netzwerks, das die Erfindung anwendet. Wie in 4 dargestellt, kommunizieren ein oder mehrere Clients 410 (zwei Clients 410a und 410b sind dargestellt, aber die Erfindung arbeitet mit Clients im Bereich von 1 bis n, wobei n eine positive ganze Zahl ist) mit einem Vermittlerserver 420 (dem "Vermittler") über verschiedene Netzwerke, die ein oder mehrere Kommunikationsprotokolle nutzen, wie z. B. die TCP/IC-Protokolle. Außerdem können in dem Netzwerk viele Vermittler 420 und Server 430 vorhanden sein, um aber die Erläuterung zu erleichtern, wird jeweils nur einer in 4 dargestellt. Die Clients 410, der Vermittler 420 und der Server 430 können irgendeine Art von Recheneinrichtung sein, wie in 3 dargestellt.
  • In einer typischen TCP/IP-Sitzung initiiert der Client 410 eine Kommunikationsanforderung bei dem Vermittler 420, indem er das Betriebssystem (O. S.) der Netzwerkeinrichtungen (in dieser Figur nicht dargestellt) über seine Absicht informiert, eine Verbindung zu einem bestimmten Server (d. h. dem Vermitt ler 420) herzustellen. Das Betriebssystem (O. S.) kann irgendein System nach Industriestandard sein, wie z. B. das O. S. von Berkeley Software Development, Inc., (BSDI) (auf UNIX-Basis), das Microsoft Disk Operating System (DOS), das Apple Macintosh O. S., Novell Netware, AT & T UNIX, DEC VMS oder Microsoft Windows 3.1/95/98/NT. Gemäß dieser Anforderung kann das Betriebssystem (O. S.) direkt oder indirekt die TCP/IP-Protokolle unterstützen, um durch Durchführen eines Quittungsaustauschs ("Handshake") eine Verbindung mit dem jeweiligen Server herzustellen. Die Transportschicht-Software führt den Quittungsaustausch durch, indem sie ein Paket, das unter Umständen keine Daten enthält, in dem ein SYN-Bit 140 auf 1 gesetzt ist (1), vom Client 410 zum Vermittler 420 überträgt. Bei Empfang des Pakets wird der Vermittler 420 darüber verständigt, daß eine Verbindung vom Client 410 angefordert wird. Der Vermittler 420 reagiert, indem er ein Paket, in dem das ACK-Bit 128 auf 1 gesetzt ist (1) zum Client 410 überträgt. Typischerweise quittiert der Client 410 seinerseits die Quittung des Vermittlers 420, indem er ein Paket mit einem auf 1 gesetzten ACK-Bit 128 an die Anwendungssoftware im Vermittler 420 sendet. Wie oben festgestellt, lenken die TCP/IP-Schichten übertragene Pakete auf der Basis von Informationen, die im Zieladressenfeld 252 enthalten sind (2), zum richtigen Zielserver. Sobald der Quittungsaustausch abgeschlossen ist, stellen der Client 410 und der Vermittler 420 eine virtuelle Verbindung ("Verknüpfung") her, um eine Kommunikationssitzung zu unterstützen. Die Verknüpfung ist notwendig, damit ein Client über das Netzwerk kommunizieren kann.
  • In Abhängigkeit von der Verfügbarkeit von Ressourcen des Vermittlers 420 legt der Vermittler 420 fest, ob ankommende Client-Befehlsanforderungen auszuführen sind oder Client-Befehlsanforderungen für die Ausführung zu einem Fremdserver umzuschalten sind, z. B. zum Server 430. "Verfügbarkeit von Ressourcen" bezieht sich auf die Fähigkeit des Vermittlers 420, mit der durch den Client 410 verwendeten Anwendungssoftware zu kommunizieren. Der Vermittler 420 ist in der Lage, mit der Anwendungssoftware des Clients zu kommunizieren, wenn der Vermittler 420 mit einer Anwendungssoftware ausgestattet ist, die mit der vom Client 410 benutzten kompatibel ist. Der Client 410 kann ein Anwender sein, der über einen Internetanschluß, der von einem örtlichen Diensteanbieter bereitgestellt wird, auf das World Wide Web zugreift. Der Anwender kann z. B. den Netscape Navigator als Client-Anwendungssoftware benutzen, um eine Befehlsanforderung zu senden. Die Befehlsanforderung kann eine Anforderung zum Herunterladen einer bestimmten Datei sein (z. B. einer Textdatei, einer Bilddatei oder einer Anwendungssoftware). Die Methode zur Ausgabe einer solchen Befehlsanforderung ist von dem Web-Browser abhängig, der von dem Client 410 betrieben wird. Bei Verwendung des Netscape Navigators kann ein Anwender eine Befehlsanforderung "Herunterladen" senden, indem er einen markierten Abschnitt eines Text anklickt, der in dem interessierenden Fenster auf dem Bildschirm erscheint. Der Befehl "Herunterladen" kann ein Markierungsetikett sein, das auf einer Hypertextmarkierungssprache (HTML) basiert. Die Anwendungssoftware kann irgendeine IP-basierte Anwendungssoftware sein, die dem Fachmann bekannt ist, einschließlich Anwendungen, die das Dateiübertragungsprotokoll (FTP), das einfache Mailübertragungsprotokoll (SMTP), das Domänen-Namensystem (DNS) und das Hypertextübertragungsprotokoll (HTTP) unterstützen. Wenn der Vermittler 420 feststellt, daß er mit der Anwendungssoftware ausgestattet ist, die mit Netscape Navigator betriebsfähig ist, dann sendet der Vermittler 420 Antwortpakete an den Client 410 mit den gewünschten Daten. Wenn der Vermittler 420 andererseits nicht mit der erforderlichen Anwendungssoftware ausgestattet ist, dann schaltet der Vermittler 420 Client-Befehle zum Server 430 um.
  • Wie oben festgestellt, gibt es mehrere Fremdserver, die in einem Netz eingesetzt werden können, aber in 4 ist nur der Server 430 dargestellt. Bevor Client-Anforderungen zu einem Server umgeschaltet werden, stellt der Vermittler 420 fest, welcher Server für die Weiterschaltung genutzt werden kann. Um diese Feststellung zu treffen, programmiert ein Systembetreiber den Vermittler 420 mit einer Liste von Servern, aus welcher der Vermittler 420 einen Fremdserver auswählt. Um einen Server mit der angeforderten Ressource auszuwählen, kann der Vermittler 420 irgendein gewünschtes Auswahlverfahren anwenden, wie z. B. die Wahl eines Servers nach Reihenfolge, zufällig, oder unter Anwendung anderer gewünschter Kriterien. Das Ziel des Weiterschaltens ist der Belastungsausgleich der Anforderungsantworten durch die Server. Sobald der Vermittler 420 den Server 430 auswählt, stellt der Server 430 eine Verbindung mit dem Client 410 unter Verwaltung des Vermittlers 420 her, um die angeforderten Daten für den Client 410 bereitzustellen.
  • 5 zeigt ein Ablaufdiagramm, das den Steuerungsablauf beschreibt, der durch den Vermittler 420 ausgeführt wird (4). In einer Ausführungsform kann die Erfindung mit dem BSDI-Betriebssystem implementiert werden. Das BSDI-Betriebssystem umfasst eine TCP/IP-Netzwerkfähigkeit, indem es die Netscape FastTrack- und Apache Web-Server, Post.Office- und BSD sendmail-Email-Server, FTP, Netnews- und BSDI MaxIM Internet-Graphikmanager einbezieht. Als Alternative unterstützt der BSDI-Server, der als sein eigener Router wirkt, das Punkt-zu-Punkt-Protokoll (PPP) und das Serial Line Internet Protocol (SLIP) über ein Modem für Einwahlverbindungen. In einer Ausführungsform verwendet die Erfindung die Berkeley Socket-Anwendungsprogrammierschnittstelle (API), um mit entfernten Verarbeitungsrechnern auf einem Netz zu kommunizieren. Die Berkeley Socket-API wird auf C-Funktionsaufrufe gesetzt, um die Netzwerkkommunikation zu unterstützen. Die Sockets-API ist nicht auf die Anwendung mit dem TCP/IP-Protokoll beschränkt und kann auch mit anderen Netzwerkprotokollen eingesetzt werden. In Client-Computern (z. B. dem Client 410), die ein TCP/IP-Protokoll nutzen, schließen die Funktionsaufrufe ein:
    socket( ), bind( ), connect( ), send( ), recv( ) und close( ). In Servercomputern (z. B. dem Vermittler 420) schließen die Funktionsaufrufe ein: socket( ), bind( ), listen( ), accept( ), send( ), recv( ) und close( ). Diese Funktionsaufrufe sind dem Fachmann bekannt.
  • Beginnend bei Block 502, führt der Vermittler 420 die Verwaltung der Client-Befehlsanforderungsfunktion durch. In Block 504 führen der Client 410 und der Vermittler 420 unter Anwendung eines Transport- und Netzwerkschicht-Kommunikations protokolls, wie z. B. TCP/IP, den oben beschriebenen Quittungsaustausch durch und stellen dadurch eine Verbindung zwischen sich her. In einer Implementierung führt die Anwendungssoftware einen accept( )-Funktionsaufruf durch, um den Vermittler 420 in einen Ruhezustand zu versetzen. Der Ruhezustand bleibt wirksam, bis eine weitere Verbindung mit dem Vermittler 420 hergestellt wird. Im Block 508 stellt der Vermittler 420 fest, ob ankommende Client-Befehlsanforderungen auszuführen sind oder Client-Befehlsanforderungen an einen Fremdserver zur Ausführung weiterzuschalten sind, z. B. an den Server 430. Wie oben beschrieben, trifft der Vermittler 420 diese Entscheidung auf der Basis der Verfügbarkeit geeigneter Ressourcen. Wenn der Vermittler 420 entscheidet, Client-Befehlsanforderungen zu erfüllen, dann nimmt im Block 512 der Vermittler 420 ankommende Client-Befehlsanforderungen zur Ausführung an und antwortet dem Client 410 entsprechend. In einer Implementierung reagiert der Vermittler 420 auf den Client 410 unter Verwendung von Berkeley Socket-Anwendungsprogrammierschnittstellen (API), z. B. read( )- und write( )-Funktionsaufrufen zum Lesen bzw. Schreiben von Daten. Wenn die Übertragung von Daten abgeschlossen ist (d. h. wenn die Sitzung beendet ist), führt die Anwendungssoftware einen close( )-Funktionsaufruf durch, um die Verbindung zwischen dem Vermittler 420 und dem Client 410 zu beenden. Dementsprechend überträgt im Block 514 der Vermittler 420 ein Paket, in dem ein FIN-Bit 144 (1) auf 1 gesetzt ist, an den Client 410. Die Funktion der Verwaltung von Client-Befehlsanforderungen endet am Block 550.
  • Wenn andererseits der Vermittler 420 entscheidet, die Anforderung an den Server 430 weiterzuleiten (4), dann führt die Anwendungssoftware einen Umschaltungs-Systemaufruf durch, um das Betriebssystem anzuweisen, die aktuelle Client-Vermittler-Sitzung zum Server 430 umzuschalten. Dementsprechend modifiziert der Vermittler 420 im Block 516 seine Zieladresse 252 des IP-Kopfes 200 (2), indem er die Zieladresse des Servers 430 in das Zieladressenfeld 252 einschreibt. Zum Beispiel kann die Zieladresse des Vermittlers 420 im Zieladressenfeld 252 durch 11001100110011001100110011001100 dargestellt werden. Wenn die Zieladresse des Servers 430 als 10101010101010101010101010101010 dargestellt wird, dann ersetzt der Vermittler 420 seine Zieladresse durch 10101010101010101010101010101010 im Zieladressenfeld 252. Wie oben beschrieben, kann der Vermittler 420 für diesen Zweck über mehrere Fremdserver verfügen. Im Block 520 initiiert der Vermittler 420 einen Quittungstausch mit dem Server 430, um eine TCP/IP-Sitzung zwischen dem Vermittler 420 und dem Server 430 auszuhandeln und einzurichten. Tatsächlich stellt die Vermittler-Server-Verbindung eine indirekte Client-Server-Verbindung her.
  • Im Block 524 überträgt der Vermittler 420 zum Server 430 ein Paket, das in dieser Ausführungsform, mit Ausnahme des Zieladressenfelds 252, im wesentlichem mit dem vom Client 410 empfangenen Paket identisch ist, in dem das SYN-Bit 140 auf 1 gesetzt ist. Das Paket kann unter Umständen mit dem Client-Paket nicht genau identisch sein, da andere Felder (z. B. das Folgenummernfeld 112, das Huckepack-Quittierfeld 116) durch den Vermittler 420 modifiziert werden können. Zum Beispiel kann die Modifikation des Folgenummernfelds 112 notwenig sein, da der Vermittler 420 eine Folgenummer für die Pakete generieren kann, die sich von der durch den Client 410 generierten Folgenummer unterscheidet. Ein Paket mit einer Zieladresse des Servers 430 aktiviert den Server 430, auf den Vermittler 420 mit einem Bestätigungs-Antwortpaket zu antworten, in dem ein ACK-Bit 128 auf 1 gesetzt ist. Wenn der Server 430 bereit ist, die Quittungsaustauschanforderung vom Vermittler 420 anzunehmen, überträgt der Server 430 ein Paket, in dem das ACK-Bit 128 auf 1 gesetzt ist, zum Vermittler 420. Typischerweise reagiert der Vermittler 420 bei Empfang des Pakets mit dem auf 1 gesetzten ACK-Bit 128 auf den Server 430, indem er ein Paket mit auf 1 gesetztem ACK-Bit 128 zum Server 430 sendet, um die Quittung zu quittieren. Daher können der Vermittler 420 und der Server 430 mehrere Pakete austauschen, bis der Server 430 und der Vermittler 420 im Block 528 im gleichen Anwendungszustand sind. Der Anwendungszustand des Vermittlers 420 ist der gleiche wie der des Servers 430, wenn der Vermittler 420 sendebereit ist und der Server 430 bereit ist, Nachrichteninformationen zu empfangen. Da der Client 410 bereits eine Verbin dung mit dem Vermittler 420 hergestellt hat, braucht zwischen dem Client 410 und dem Server 430 keine Verbindung hergestellt zu werden. Der Client 410 überträgt Pakete zum Server 430 über den Vermittler 420. Im Block 532 generiert der Vermittler 420 ein Pseudo-Quittungspaket an den Client 410. Die Pseudo-Quittung wird generiert, nachdem der Vermittler 420 das Quittungspaket vom Server 430 empfangen hat. Außerdem ist das Pseudo-Quittungspaket transparent für den Client 410 und trennt daher nicht die bereits zwischen dem Client 410 und dem Vermittler 420 hergestellte Verbindung.
  • Im Block 534 modifiziert der Vermittler 420 für alle vom Client 410 empfangenen Datenpakete seine Zieladresse (2), indem er die Zieladresse des Servers 430 in das Zieladressenfeld 252 einschreibt. Für den Zweck dieses Abschnitts bezeichnet ein Datenpaket ein Paket, das die durch den Client ausgegebenen Anwendungsbefehle enthält (z. B. Befehle zum Herunterladen einer Datei, zum Senden einer Email-Nachricht usw.). In Block 536 überträgt der Vermittler 420 an den Server 430 alle vom Client 410 empfangenen Datenpakete. Typischerweise sind alle Server in dem Netzwerk, einschließlich des Vermittlers 420, mit einem oder mehreren entsprechenden Paketvermittlungsknoten (PSN) verbunden. Der gesamte Paketverkehr nach oder von dem Server fließt durch seine PSN. Pakete werden sowohl am Sende-PSN als auch am Empfangs-PSN gepuffert. Die verfügbare Puffergröße an jedem PSN ist von der durch die Server verwendeten Datenverbindungsschicht abhängig. Dementsprechend wirkt der PSN des Vermittlers 420 mit dem Vermittler 420 zusammen, um alle Datenpakete zum Server 430 weiterzuleiten. Außerdem modifiziert der Vermittler 420, wenn nötig, Informationen, die im Folgenummernfeld 112 und im Huckepack-Quittierfeld 116 enthalten sind. Wie oben festgestellt, kann die Modifikation des Folgenummernfelds 112 notwendig sein, da der Vermittler 420 unter Umständen eine Folgenummer für die Pakete generiert, die sich von der durch den Client 410 generierten Folgenummer unterscheidet. Der Vermittler 420 fährt damit fort, Pakete vom Client 410 zum Server 430 weiterzuleiten, bis alle Datenpakete den Server 430 erreicht haben. Der Prozeß endet nach Übergabe aller Datenpakete an den Server 430 im Block 550.
  • 6 zeigt ein Ablaufdiagramm, das die Entscheidungsschritte beschreibt, die durch den in 4 dargestellten Server ausgeführt werden. Beginnend im Block 602, wirkt der Server 430 mit dem Vermittler 420 zusammen, um auf Client-Befehlsanforderungen zu reagieren. Im Block 624 empfängt der Server 430 vom Vermittler 420 das Paket mit dem auf 1 gesetzten SYN-Bit 140, in dem der Abschluß eines Quittungsaustauschs zwischen ihnen angefordert wird. Der Vermittler 420 initiiert den Quittungsaustausch als Reaktion auf einen Verbindungsumschaltungs-Systemaufruf, der das Betriebssystem anweist, die Client-Vermittler-Sitzung zum Server 430 weiterzuschalten. Wenn der Server 430 bereit ist, die Quittungsaustauschanforderung vom Vermittler 420 anzunehmen, überträgt der Server 430 ein Paket mit dem auf 1 gesetzten ACK-Bit 128 zum Vermittler 420. Bei Empfang des Pakets mit dem auf 1 gesetzten ACK-Bit 128 reagiert der Vermittler 420 typischerweise auf den Server 430, indem er ein Paket mit dem auf 1 gesetzten ACK-Bit 128 überträgt, um die Quittung zu quittieren. Daher können der Vermittler 420 und der Server 430 mehrere Pakete austauschen, bis sich der Server 430 und der Vermittler 420 im Block 628 im gleichen Anwendungszustand befinden. Wie oben festgestellt, ist der Anwendungszustand des Vermittlers 420 der gleiche wie der des Servers 430, wenn der Vermittler 420 sendebereit und der Server 430 bereit ist, Nachrichteninformationen zu empfangen.
  • Im Block 640 empfängt der Server 430 Datenpakete vom Vermittler 420, um Befehlsanforderungen des Clients 410 auszuführen. Der Server 430 kann einen peripheren Treiber verwenden, um unter Anwendung des Nutzerdatagramm-Protokolls (UDP) Datenpakete zu empfangen. UDP ermöglicht Nutzern, Nachrichten zu senden, ohne eine bestimmte Verbindung herzustellen. UDP wird oft als eine Anwenderschnittstelle zum IP (Internet-Protokoll) bezeichnet. Wie dem Fachmann bekannt, weist ein UDP-Paket ein Ursprungsanschlußfeld, ein Zielanschlußfeld, ein Längenfeld, ein Kontrollsummenfeld und ein Datenfeld auf. Der Ursprungsanschluß zeigt die Adresse des Ursprungsservers an (z. B. des Vermittlers 420). Der Zielanschluß zeigt die Adresse des Zielservers an (z. B. des Servers 430). Das Längenfeld stellt die Größe des UDP-Pakets dar. Ebenso wie in TCP/IP enthält das Kontrollsummenfeld die Ergebnisse eines Kontrollsummenalgorithmus, um für eine zuverlässige Datenübertragung zu sorgen. Das Datenfeld ist ein Feld von variabler Länge, welches die in dem UDP-Paket übertragenen Daten enthält. Die Befehlsanforderungen sind typischerweise in das Datenfeld 260 (2) von Datenpaketen eingebettet. Im Block 644 generiert und erzeugt der Server 430 abgehende Pakete für die Übertragung zum Client 410 als Reaktion auf die Befehlsanforderungen. Das Betriebssystem (O. S.) weist die Anwendungssoftware im Server 430 an, Informationen, die in dem Ursprungsadressenfeld 248 (2) enthalten sind, durch Einschreiben der Ursprungsadresse des Vermittlers 420 in das Ursprungsadressenfeld 248 für alle abgehenden Pakete zu modifizieren. Durch Einschreiben der Ursprungsadresse des Vermittlers 420 anstelle seiner Ursprungsadresse bewirkt der Server 430, daß der Client 410 glaubt, daß die Information gerade durch den Vermittler 420 gesendet wird. Außerdem modifiziert der Server 430 nötigenfalls Informationen, die im Folgenummernfeld 112 enthalten sind, um die durch den Client 410 verwendete Folgenummer anzuzeigen. Wie oben festgestellt, kann eine Modifikation von Informationen im Folgenummernfeld 112 notwendig sein, da der Vermittler 420 unter Umständen eine Folgenummer für die Pakete generiert, die sich von der durch den Client 410 generierten Folgenummer unterscheidet. Schließlich überträgt im Block 648 der Server 420 Pakete mit der Zieladresse des Clients 410 zum Netzwerk für die Übergabe an den Client 410. Der Prozeß endet nach Übergabe aller erforderlichen Pakete im Block 650.
  • Angesichts des Vorstehenden wird man erkennen, daß die Erfindung den seit langem bestehenden Bedarf für ein System und ein Verfahren zur Verwaltung von Client-Befehlsanforderungen in Client-Server-basierten Netzwerken erfüllt, indem sie Server-Ressourcen wirksam nutzt. Die Erfindung kann in anderen konkreten Formen ausgeführt werden, ohne von ihrem Grundgedanken oder von wesentlichen Eigenschaften abzuweichen. Die beschriebene Ausführungsform ist in jeder Hinsicht nur als erläuternd und nicht als einschränkend anzusehen. Der Umfang der Erfindung wird daher durch die beigefügten Patentansprüche und nicht durch die vorstehende Beschreibung angegeben. Alle Änderungen, die innerhalb der Bedeutung und des Äquivalenzbereichs der Ansprüche liegen, sind in ihren Umfang einzuschließen.

Claims (14)

  1. Verfahren zum Verwalten einer Client-Anforderung in einem Client-Server-Netzwerk mit einem Arbeitsplatzrechner bzw. Client (410), einem ersten Server (420) und einem zweiten Server (430), wobei das Verfahren aufweist: (a) Durchführung eines Quittungsaustauschs zwischen dem Client (410) und dem ersten Server (420, 504); (b) Durchführung eines Quittungsaustauschs zwischen dem ersten Server (420) und dem zweiten Server (430, 520); und (c) Weiterleiten der Client-Anforderung zum zweiten Server (430) zur Ausführung; gekennzeichnet durch: (d) Feststellen im ersten Server (420) anhand der Verfügbarkeit geeigneter Betriebsmittel im ersten Server (420, 508), ob die Client-Anforderung durch den ersten Server (420) erfüllt werden kann; (e) Auswahl des zweiten Servers (430) durch den ersten Server (420), wenn die Client-Anforderung nicht durch den ersten Server (420, 516) erfüllt werden kann; (f) Reaktion auf den Client (410) durch Modifikation von Paketen (200), um die Pakete (200) direkt vom zweiten Server (430) zum Client zu übertragen (644, 648), und (g) Senden einer Bestätigungsmeldung durch den ersten Server (420) zum Client nach Empfang eines Bestätigungspakets vom zweiten Server (430).
  2. Verfahren zum Verwalten einer Client-Anforderung in einem Client-Server-Netzwerk mit einem Client (410), einem ersten Server (420) und einem zweiten Server (430), wobei das Verfahren aufweist: (a) Durchführung eines Quittungsaustauschs zwischen dem Client (410) und dem ersten Server (420, 504); (b) Durchführung eines Quittungsaustauschs zwischen dem ersten Server (420) und dem zweiten Server (430, 520); und (c) Weiterleiten der Client-Anforderung zum zweiten Server (430) zur Ausführung; gekennzeichnet durch: (d) Feststellen im ersten Server (420), ob die Client-Anforderung durch den ersten Server (420) erfüllt werden kann, in Abhängigkeit davon, ob der erste Server mit Anwendungssoftware ausgestattet ist, um auf die Client-Anforderung zu reagieren (420, 508); (e) Auswahl des zweiten Servers (430) durch den ersten Server (420), wenn der erste Server nicht mit der Anwendungssoftware ausgestattet ist, um auf die Client-Anforderung zu reagieren (420, 516); und (f) Reaktion auf den Client (410) durch Modifikation von Paketen (200), um die Pakete (200) direkt vom zweiten Server zum Client zu übertragen (644, 648).
  3. Verfahren nach Anspruch 1 oder 2, wobei das Weiterleiten der Client-Anforderung zum zweiten Server das Einschreiben einer Zieladresse des zweiten Servers in ein von dem Client empfangenes Paket einschließt.
  4. Verfahren nach Anspruch 3, wobei das Weiterleiten der Client-Anforderung zum zweiten Server die Übertragung des Pakets zum zweiten Server einschließt.
  5. Verfahren nach Anspruch 1, 2, 3 oder 4, wobei die Reaktion auf den Client das Weiterleiten von Client-Daten zum zweiten Server einschließt.
  6. Verfahren nach Anspruch 1, 2, 3, 4 oder 5, wobei die Reaktion auf den Client das Einschreiben einer Ursprungsadresse des ersten Servers in ein durch den zweiten Server übertragenes Antwortpaket einschließt.
  7. Verfahren nach Anspruch 6, wobei die Reaktion auf den Client die Übertragung des Antwortpakets zum Client einschließt.
  8. System zum Verwalten einer Client-Anforderung in einem Client-Server-Netzwerk, wobei das System aufweist: (a) einen ersten Server (420), der so konfiguriert ist, daß er einen Quittungsaustausch mit einem Client (410) ausführt, und der für die Ausführung eines Quittungsaustauschs mit einem zweiten Server (430) und die Weiterleitung der Client-Anforderung zu dem zweiten Server (430) konfiguriert ist; dadurch gekennzeichnet, daß (b) der erste Server (420) anhand der Verfügbarkeit geeigneter Betriebsmittel im ersten Server (420, 508) feststellen soll, ob die Client-Anforderung, die von dem Client (410) über das Netzwerk empfangen wird, durch den ersten Server (420) erfüllt werden kann, (c) der erste Server (420) ferner so konfiguriert ist, daß er den zweiten Server (430) auswählt, wenn die Client-Anforderung nicht durch den ersten Server (420) erfüllt werden kann; (d) der zweite Server (430) für die Erfüllung der Client-Anforderung konfiguriert wird, indem ein Antwortpaket (200) so modifiziert wird, daß es direkt vom zweiten Server (430) zum Client (410) übertragen werden kann, wenn die Client-Anforderung nicht durch den ersten Server (420) erfüllt werden kann; und (e) wobei der erste Server ferner so konfiguriert ist, daß er nach Empfang eines Bestätigungspakets vom zweiten Server eine Bestätigungsmeldung an den Client sendet.
  9. System zum Verwalten einer Client-Anforderung in einem Client-Server-Netzwerk, wobei das System aufweist: (a) einen ersten Server (420), der so konfiguriert ist, daß er einen Quittungsaustausch mit einem Client (410) ausführt, und der für die Ausführung eines Quittungsaustauschs mit einem zweiten Server (430) und die Weiterleitung der Client-Anforderung zu dem zweiten Server (430) konfiguriert ist; dadurch gekennzeichnet, daß (b) der erste Server (420) in Abhängigkeit davon, ob der erste Server (420, 508) mit Anwendungssoftware ausgestattet ist, um auf die Client-Anforderung zu reagieren (420, 508), feststellen soll, ob die Client-Anforderung, die von dem Client (410) über das Netzwerk empfangen wird, durch den ersten Server (420) erfüllt werden kann, (c) der erste Server (420) ferner so konfiguriert ist, daß er den zweiten Server (430) auswählt, wenn die Client- Anforderung nicht durch den ersten Server (420) erfüllt werden kann; und (d) der zweite Server (430) für die Erfüllung der Client-Anforderung konfiguriert wird, indem ein Antwortpaket (200) so modifiziert wird, daß es direkt vom zweiten Server (430) zum Client (410) übertragen werden kann, wenn die Client-Anforderung nicht durch den ersten Server (420) erfüllt werden kann.
  10. System nach Anspruch 8 oder 9, wobei der erste Server zwischen den Client und den zweiten Server geschaltet ist.
  11. System nach Anspruch 8, 9 oder 10, wobei der erste Server ferner so konfiguriert ist, daß er eine Zieladresse des zweiten Servers in ein Paket einschreibt, das die Client-Anforderung repräsentiert.
  12. System nach Anspruch 11, wobei der erste Server ferner so konfiguriert ist, daß er das Paket zum zweiten Server weiterleitet.
  13. System nach einem der Ansprüche 8 bis 12, wobei der erste Server ferner so konfiguriert ist, daß er die Client-Anforderung zum zweiten Server weiterleitet.
  14. System nach einem der Ansprüche 8 bis 13, wobei der erste Server ferner so konfiguriert ist, daß er eine Ursprungsadresse des ersten Servers in das Antwortpaket einschreibt.
DE69937831T 1998-04-02 1999-03-30 System und Verfahren zum Verwalten von Client-Anforderungen in Client-Server-Netzen Expired - Lifetime DE69937831T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/054,304 US6912588B1 (en) 1998-04-02 1998-04-02 System and method for managing client requests in client-server networks
US54304 1998-04-02
PCT/US1999/006911 WO1999052254A1 (en) 1998-04-02 1999-03-30 System and method for managing client requests in client-server networks

Publications (2)

Publication Number Publication Date
DE69937831D1 DE69937831D1 (de) 2008-02-07
DE69937831T2 true DE69937831T2 (de) 2008-12-24

Family

ID=21990133

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69937831T Expired - Lifetime DE69937831T2 (de) 1998-04-02 1999-03-30 System und Verfahren zum Verwalten von Client-Anforderungen in Client-Server-Netzen

Country Status (5)

Country Link
US (1) US6912588B1 (de)
EP (1) EP1099329B1 (de)
DE (1) DE69937831T2 (de)
TW (1) TW412685B (de)
WO (1) WO1999052254A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112013002191B4 (de) 2012-04-26 2024-02-22 International Business Machines Corporation Nachrichtenverarbeitung in einem Datenverarbeitungssystem

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0964558A1 (de) 1998-06-08 1999-12-15 THOMSON multimedia Zugriffsverfahren auf Internet-Anwedungen von Hausnetzwerkgeräten
US7003463B1 (en) * 1998-10-02 2006-02-21 International Business Machines Corporation System and method for providing network coordinated conversational services
US7272217B1 (en) * 1998-12-16 2007-09-18 At&T Corp. Telecommunications call time slicing system and method
US7185114B1 (en) * 1999-08-07 2007-02-27 Shrikumar Hariharasubrahmanian Virtual memory systems and methods
US8019991B1 (en) * 1999-12-30 2011-09-13 Samsung Electronics Co., Ltd. System and method for secure provisioning of a mobile station from a provisioning server using IP address translation at the BTS/BSC
US8335994B2 (en) * 2000-02-25 2012-12-18 Salmon Alagnak Llc Method and apparatus for providing content to a computing device
US7500243B2 (en) * 2000-08-17 2009-03-03 Sun Microsystems, Inc. Load balancing method and system using multiple load balancing servers
JP2002259259A (ja) * 2001-02-27 2002-09-13 Canon Inc 画像データ通信システム、画像データ通信方法および記憶媒体
US7506047B2 (en) * 2001-03-30 2009-03-17 Bmc Software, Inc. Synthetic transaction monitor with replay capability
US7792948B2 (en) * 2001-03-30 2010-09-07 Bmc Software, Inc. Method and system for collecting, aggregating and viewing performance data on a site-wide basis
US7461369B2 (en) * 2001-03-30 2008-12-02 Bmc Software, Inc. Java application response time analyzer
US7366673B2 (en) * 2001-06-15 2008-04-29 International Business Machines Corporation Selective enablement of speech recognition grammars
US7856660B2 (en) * 2001-08-21 2010-12-21 Telecommunication Systems, Inc. System for efficiently handling cryptographic messages containing nonce values
US20030126196A1 (en) * 2001-12-27 2003-07-03 Todd Lagimonier System for optimizing the invocation of computer-based services deployed in a distributed computing environment
JP4080765B2 (ja) * 2002-03-01 2008-04-23 株式会社日立製作所 ネットワークシステム
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
DE10244459A1 (de) * 2002-09-24 2004-04-01 Siemens Ag Rechner- und/oder Software-Architektur unter Verwendung von Micro-Kernel- und Multi-Tier-Konzept mit Komponententechnik
US7130877B2 (en) * 2002-09-30 2006-10-31 Alcatel Canada Inc. Request processing switch
US7937493B2 (en) * 2003-08-14 2011-05-03 Oracle International Corporation Connection pool use of runtime load balancing service performance advisories
US7953860B2 (en) * 2003-08-14 2011-05-31 Oracle International Corporation Fast reorganization of connections in response to an event in a clustered computing system
US7685603B2 (en) * 2003-09-08 2010-03-23 Sap Ag Selecting client adapters
JP4386694B2 (ja) * 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
IES20050376A2 (en) 2005-06-03 2006-08-09 Asavie R & D Ltd Secure network communication system and method
US7647335B1 (en) 2005-08-30 2010-01-12 ATA SpA - Advanced Technology Assessment Computing system and methods for distributed generation and storage of complex relational data
US8875135B2 (en) * 2006-04-17 2014-10-28 Cisco Systems, Inc. Assigning component operations of a task to multiple servers using orchestrated web service proxy
US8713186B2 (en) * 2007-03-13 2014-04-29 Oracle International Corporation Server-side connection resource pooling
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
DE102007046086A1 (de) * 2007-09-26 2009-04-09 Heinz Prof. Dr. Letzel Pflanzenextrakt aus THC-armen Cannabis zur Behandlung von Erkrankungen
US9323473B2 (en) 2009-01-09 2016-04-26 Hewlett Packard Enterprise Development Lp Virtual tape library
US20110075164A1 (en) * 2009-09-30 2011-03-31 Kurt Nathan Nordback Systems and methods for enhanced printing of online content
KR101594811B1 (ko) * 2009-10-21 2016-02-18 삼성전자주식회사 모바일 p2p 기반의 네트워크 장치 및 시스템
US8898065B2 (en) 2011-01-07 2014-11-25 Nuance Communications, Inc. Configurable speech recognition system using multiple recognizers
US9317344B2 (en) 2012-02-16 2016-04-19 Microsoft Technology Licensing, Llc Power efficient brokered communication supporting notification blocking
US10210559B2 (en) 2012-05-17 2019-02-19 Walmart Apollo, Llc Systems and methods for recommendation scraping
US10181147B2 (en) 2012-05-17 2019-01-15 Walmart Apollo, Llc Methods and systems for arranging a webpage and purchasing products via a subscription mechanism
US10346895B2 (en) 2012-05-17 2019-07-09 Walmart Apollo, Llc Initiation of purchase transaction in response to a reply to a recommendation
US10580056B2 (en) 2012-05-17 2020-03-03 Walmart Apollo, Llc System and method for providing a gift exchange
US10740779B2 (en) 2012-05-17 2020-08-11 Walmart Apollo, Llc Pre-establishing purchasing intent for computer based commerce systems
CN104769668B (zh) 2012-10-04 2018-10-30 纽昂斯通讯公司 改进的用于asr的混合控制器
CA2867585A1 (en) * 2013-10-15 2015-04-15 Coho Data Inc. Methods, devices and systems for coordinating network-based communication in distributed server systems with sdn switching
WO2015100283A1 (en) * 2013-12-23 2015-07-02 Akamai Technologies, Inc. Systems and methods for delivering content to clients that are suboptimally mapped
US10140121B2 (en) * 2015-07-21 2018-11-27 Oracle International Corporation Sending a command with client information to allow any remote server to communicate directly with client
CN106302661B (zh) * 2016-08-02 2019-08-13 网宿科技股份有限公司 P2p数据加速方法、装置和系统
US10971157B2 (en) 2017-01-11 2021-04-06 Nuance Communications, Inc. Methods and apparatus for hybrid speech recognition processing
US10466899B2 (en) 2017-07-28 2019-11-05 Hewlett Packard Enterprise Development Lp Selecting controllers based on affinity between access devices and storage segments
US10732903B2 (en) 2018-04-27 2020-08-04 Hewlett Packard Enterprise Development Lp Storage controller sub-LUN ownership mapping and alignment

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823122A (en) * 1984-06-01 1989-04-18 Digital Equipment Corporation Local area network for digital data processing system
JPH01502861A (ja) * 1987-09-04 1989-09-28 ディジタル イクイプメント コーポレーション 多重転送プロトコルを支援するデジタル処理システム用回路網内のセッション制御
US5341477A (en) 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5210824A (en) * 1989-03-03 1993-05-11 Xerox Corporation Encoding-format-desensitized methods and means for interchanging electronic document as appearances
US5430876A (en) * 1989-06-27 1995-07-04 Digital Equipment Corporation Remote procedure callback system and method
US5249293A (en) * 1989-06-27 1993-09-28 Digital Equipment Corporation Computer network providing transparent operation on a compute server and associated method
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5218697A (en) * 1990-04-18 1993-06-08 Microsoft Corporation Method and system for networking computers having varying file architectures
CA2048306A1 (en) * 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5446896A (en) * 1990-12-17 1995-08-29 Next, Inc. Method and apparatus for inter-program communication
JPH0778776B2 (ja) 1991-09-24 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション 分散資源部分のアクセス方法及びネットワーク
US5371852A (en) 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
US5329619A (en) 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US5544320A (en) * 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
CA2124379C (en) * 1993-06-25 1998-10-27 Thomas F. La Porta Distributed processing architecture for control of broadband and narrowband communications networks
US5506984A (en) * 1993-06-30 1996-04-09 Digital Equipment Corporation Method and system for data retrieval in a distributed system using linked location references on a plurality of nodes
GB9314460D0 (en) * 1993-07-13 1993-08-25 Int Computers Ltd Computer systems integration
GB2281793A (en) * 1993-09-11 1995-03-15 Ibm A data processing system for providing user load levelling in a network
US5548726A (en) * 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
FR2714746B1 (fr) * 1993-12-31 1996-02-02 Bull Sa Procédé de simulation d'une architecture "serveur" à partir d'une architecture "client".
US5978577A (en) * 1995-03-17 1999-11-02 Csg Systems, Inc. Method and apparatus for transaction processing in a distributed database system
US6097882A (en) * 1995-06-30 2000-08-01 Digital Equipment Corporation Method and apparatus of improving network performance and network availability in a client-server network by transparently replicating a network service
US5644720A (en) * 1995-07-31 1997-07-01 West Publishing Company Interprocess communications interface for managing transaction requests
US5826270A (en) * 1995-12-28 1998-10-20 Csg Systems, Inc. Methods and systems for client or customer-site transaction processing in a distributed database system
US5828847A (en) * 1996-04-19 1998-10-27 Storage Technology Corporation Dynamic server switching for maximum server availability and load balancing
US5796934A (en) * 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US5819271A (en) * 1996-06-04 1998-10-06 Multex Systems, Inc. Corporate information communication and delivery system and method including entitlable hypertext links
US5881230A (en) * 1996-06-24 1999-03-09 Microsoft Corporation Method and system for remote automation of object oriented applications
US5748897A (en) * 1996-07-02 1998-05-05 Sun Microsystems, Inc. Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
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
US5778174A (en) * 1996-12-10 1998-07-07 U S West, Inc. Method and system for providing secured access to a server connected to a private computer network
US6470389B1 (en) 1997-03-14 2002-10-22 Lucent Technologies Inc. Hosting a network service on a cluster of servers using a single-address image
US5991808A (en) * 1997-06-02 1999-11-23 Digital Equipment Corporation Task processing optimization in a multiprocessor system
US6058425A (en) * 1997-07-21 2000-05-02 International Business Machines Corporation Single server access in a multiple TCP/IP instance environment
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6018805A (en) * 1997-12-15 2000-01-25 Recipio Transparent recovery of distributed-objects using intelligent proxies

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112013002191B4 (de) 2012-04-26 2024-02-22 International Business Machines Corporation Nachrichtenverarbeitung in einem Datenverarbeitungssystem

Also Published As

Publication number Publication date
TW412685B (en) 2000-11-21
DE69937831D1 (de) 2008-02-07
WO1999052254A1 (en) 1999-10-14
US6912588B1 (en) 2005-06-28
EP1099329B1 (de) 2007-12-26
EP1099329A1 (de) 2001-05-16

Similar Documents

Publication Publication Date Title
DE69937831T2 (de) System und Verfahren zum Verwalten von Client-Anforderungen in Client-Server-Netzen
DE69533740T2 (de) TCP/IP-Kopfendekompression in X.25-Netzwerken
DE60110974T2 (de) Abfangverfahren und -vorrichtung zur Kompensation nachteiliger Eigenschaften eines Kommunikationsprotokolls
DE69733498T2 (de) Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
US9436542B2 (en) Automated network infrastructure test and diagnostic system and method therefor
EP1826956B1 (de) Anpassung von virtuellen und physikalischen Netzwerkschnittstellen
DE60028897T2 (de) Verfahren und Vorrichtung zur Umschaltung zwischen zwei Netzwerkzugangstechnologien ohne Unterbrechung der aktiven Netzwerkanwendungen
DE69928860T2 (de) System und Verfahren zur Auswahl von Servern für gespiegelte Sites
DE69634916T2 (de) Verfahren und vorrichtung zur filterung von mehradresspaketen in einem lokalen netz durch ein transparentes zwischensystem
DE10393628B4 (de) System und Verfahren zum Integrieren mobiler Vernetzung mit sicherheitsbasierten virtuellen privaten Netzwerksystemen (VPNS)
DE60310645T2 (de) Verhinderung von Paketzerteilung
DE602005005724T2 (de) Endpunktadressenänderung in einem Paketnetzwerk
DE69913176T2 (de) Verfahren und system zum eingeben von äusserem inhalt in interaktiven netzsitzungen
US7562146B2 (en) Encapsulating protocol for session persistence and reliability
DE602004007301T2 (de) Adressierungs-verfahren und -vorrichtung zum aufbau von hip-verbindungen zwischen gewöhnlichen und hip-fähigen netzknoten
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE69926477T2 (de) Verfahren und Vorrichtung zur dynamischen Steuerung der Bereitstellung von differenzierter Diensten
DE202021103381U1 (de) Computerlesbares Medium und Systeme zur Implementierung eines regional zusammenhängenden Proxy-Dienstes
DE112019005826T5 (de) Lastverteilter Zugang zu verteilten Endpunkten unter Verwendung globaler Netzwerkadressen
DE60210630T2 (de) Ferndatenerfassungsvorrichtung mit elektronischer post über öffentliche und private netzwerken und verfahren und rechnerprogramm dafür
DE60208990T2 (de) Verfahren zur Unterscheidung von Teilnehmer eines Kommunikationssystems, Kommunikationssystem und Kommunikationsgerät
US7543072B1 (en) Method and system capable of performing a data stream over multiple TCP connections or concurrent interleave of multiple data streams over multiple TCP connections
DE60006821T2 (de) Zugangskontrolle in einem gateway-server
EP2385682B1 (de) Verfahren zum Optimieren einer paketorientierten Datenübertragung und Computerprogramm-Produkt

Legal Events

Date Code Title Description
8364 No opposition during term of opposition