-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft im Allgemeinen Client/Server-Datenkommunikationssysteme und
insbesondere ist die vorliegende Erfindung auf ein Verfahren und
Gerät gerichtet,
das einen Verbindungsanfragestrom beschränkt, der mit einem Burst-Client
(Explosions-Client) mit einem hohen Volumen in einem verteilten
Netzwerk verknüpft
ist.
-
Hintergrund der Erfindung
-
Computersysteme
sind im Stand der Technik wohlbekannt und sind ein Geschäftshauptartikel
geworden und werden ebenso in vielen Wohnungen gefunden. Ein Merkmal,
das für
die Geschäftswelt
verfügbar
ist, ist das eines Verwendens eines elektronischen Versendens (E-Mail),
um Nachrichten und andere Information zu- und voneinander in einer
Geschäftseinrichtung
zu senden und zu empfangen. Ähnlich
erlauben Heimcomputer, wie zum Beispiel Schreibtischrechner oder
Laptops oder andere Informationsgeräte, wie zum Beispiel persönliche digitale Assistenten
(PDAs) ein Telekommunizieren, so dass sich ein Benutzer mit dem
Arbeits-Server des Benutzers verbinden kann und Nachrichten herab-
und heraufladen kann.
-
Das
E-Mail-System erlaubt es Clients eines Netzwerksystems, das von
einem Server-System aufrechterhalten wird, Nachrichten oder Daten
von einem Benutzer zu einem anderen zu senden. Um den Diskettenplatz
und Anforderungen zu minimieren, sowie um eine Funktionalität und Konsistenz
der elektronischen Versendemaschine (Mailing Engine) zu maximieren,
die in dem Netzwerk verwendet wird, ist die Maschine typischerweise
bei dem Server lokalisiert und wird lediglich von einem Client zugegriffen, um
Nachrichten zu senden oder Nachrichten zu erhalten, zu oder von
einem anderen Benutzer oder Client in dem Server-System. In dieser Weise
erlaubt es das Client-System typischerweise, dass der Benutzer derartige
Operationen wie Zusammenstellen, Aktualisieren und Senden von Nachrichten
durchführt, während der
Server in einem derartigen System zum Teil einen Serverbasierten
Nachrichtenspeicher bereitstellt sowie ein Bereitstellen von Nachrichtenübertragungs-
und Empfangsfunktionen für
den Nutzer bei dem Client-Level.
-
Ein
derartiges Email-System ist unter Bezug auf 1 beschrieben,
die ein Nachrichtensystem 100 zeigt, das für große, verteilte
Netzwerke geeignet ist, wie zum Beispiel das Internet oder Intranet-Systeme
großer
Abmessungen. Das System 100 umfasst typischerweise einen
Zentralserver 102, der in einem Computersystem 104 innewohnt,
das die Form eines Mainframe-Systems (Hauptrahmen-System) sowie
eines Berechnungssystems vom verteilten Typ annehmen kann. Wenn
das System 100 ein Nachrichtensystem ist, wie zum Beispiel
ein E-Mail-System,
wird der Zentralserver 102 als der zentrale E-Mail-Server mit einer
Schnittstelle gekoppelt, wie zum Beispiel einer Firewall 106,
die den Fluss von Information zwischen dem Mailserver 102 und
seinen n Clients vermittelt, die als Client 108, Client 110 und
Client 112 dargestellt sind. Wenn es zum Beispiel typischerweise
Client 108 wünscht,
einen Kanal zu dem Server 102 aufzubauen, erzeugt der Client 108 eine
Anfrage, eine Verbindung mit dem Mailserver 102 durch irgendeinen
einer Vielzahl von Transporten und Protokollen zu öffnen, die
direkt von dem anfragenden Client 108 über zum Beispiel TCP/IP als
eine SMTP-Nachricht von einem Internetsystem eingereicht werden.
Eine derartige Verbindungsanfrage kann durch Verwenden eines Anwahl-Modems
unter Verwendung des PhoneNet-Protokolls, DECnet als eine MAIL-11-Nachricht,
DECnet als eine SMTP-Nachricht, UUCP, einem X.400-Transport, SNA
usw. eingereicht werden. Zum Beispiel bei Seiten mit einer Internet-Verbindung
werden Internet-Adressen normalerweise über ein SMTP über einen
TCP/IP-Kanal weitergeleitet, bei Seiten jedoch mit lediglich einer
UUCP-Verbindung würden
stattdessen Internet-Adressen durch einen UUCP-Kanal weitergeleitet.
-
Wurde
die Verbindungsanfrage einmal akzeptiert, wird ein Kanal zwischen
dem anfragenden Client 108 und dem Server-Computer 102 geöffnet, der
die Übertragung
von Daten erlaubt. In einigen Fällen
jedoch kann der anfragende Client 108 versehentlich die
Operationen des Servers 102 durch Erzeugen einer großen Anzahl
von Verbindungsanfragen innerhalb einer relativ kurzen Zeitdauer
(d. h. einen Verbindungsanfragestrom) unterbrechen, der als ein
Verbindungsanfrage-Burst (Burst-Explosion)
bezeichnet wird. Ein Verbindungsanfrage-Burst wird als jene Situationen
bezeichnet, in denen ein legitimierter Client (bezeichnet als ein
Burst-Client) als Teil seiner normalen Operationen zufällig einen
kurzfristigen, Verbindungsanfragestrom mit hohem Volumen erzeugt.
Eines der Probleme mit dem kurzfristigen Anfrage-Burst ist, dass
dieser das Potential aufweist, den Server 102 zu stören, dadurch,
dass dieser gezwungen wird, eine übermäßige Menge von Verbindungsressourcen
an den Burst-Client 108 zu richten, was dadurch den Effekt
eines Verschüttens
von Anfragen von anderen Clients aufweist, wie zum Beispiel Client 110 und 112.
-
Ein
herkömmlicher
Ansatz, mit dem kurzfristigen Burst-Client 108 zurechtzukommen
ist es, zunächst
jene Clients als Burst-Clients durch Vergleichen der gegenwärtigen Verbindungsanfragerate des
Clients eine vorbestimmte Schwelle zu identifizieren. Einmal als
ein Burst-Client identifiziert, wird der Burst-Client temporär geblockt,
irgendwelche zusätzliche
Verbindungsanfragen des Servers durchzuführen, um es so anderen Clients
zu erlauben, Zugriff auf den Server 102 zu haben.
-
Leider
kann jedoch ein Blockieren des Verbindungsanfragestroms des Burst-Clients 108,
selbst für
einen kurzen Zeitraum, wesentliche, nachteilige Effekte auf den
Burst-Client 108 aufweisen.
-
Daher
wäre es
wünschenswert,
ein verbessertes Verfahren und Gerät in einem verteilten Netzwerk
zu haben, um einem Burst-Client
einen Zugang zu einem Server-Computer bereitzustellen, ohne andere
Clients nachteilig zu beeinflussen, die mit dem Server gekoppelt
sind.
-
Die
Europäische Patentanmeldung Veröffentlichungsnummer
0932282 offenbart ein Verfahren zum Vermeiden der negativen
Effekte, zu viele TCP-Verbindungen an einem Netzwerkknoten zu haben.
Die Anzahl von Verbindungen ist durch eine Zulassungssteuerung begrenzt,
die Verbindungsaufbaupakete verzögert
oder verwirft. TCP-Verkehrsflüsse werden überwacht,
um die Paketverlust-Charakteristik
zu erzeugen und wenn eine bestimmte Bedingung erfüllt ist,
wird eine Verbindungsanfrageschlange gesperrt.
-
Zusammenfassung der Erfindung
-
Um
das Vorangehende zu erreichen und gemäß dem Zweck der vorliegenden
Erfindung sind ein Verfahren, ein Gerät und ein Computer-lesbares
Medium zum Bereitstellen von Verbindungsanfragen an einen Burst-Client
mit hohem Volumen in einem verteilten Netzwerk offenbart. In einer
Ausführungsform in
einer Client/Server/Computerumgebung ist ein Verfahren zum Beschränken eines
Verbindungsanfragestroms offenbart, der mit einem Verbindungsanfrage-Burst-Client
mit hohem Volumen verknüpft
ist. Eine Verbindungsanfrage wird bei einem Beginn eines Drosselintervalls
m + 1 empfangen, wobei das Drosselintervall m + 1 einem Drosselintervall
m nachfolgt. Eine Wartezeit für
das Drosselintervall m + 1 wird basierend auf einer Verlangsamungsgrenze,
die mit dem anfragenden Client verknüpft ist, einem Verbindungsanfragezählwert für das Intervall
m für den anfragenden
Client, wobei der Verbindungsanfragezählwert für das Intervall m die Gesamtzahl
von Verbindungsanfragen ist, die während dem Intervall m für den anfragenden
Client empfangen werden und einer Wartezeit für das Intervall m berechnet.
Ein Verbindungsanfragezählwert
für das
Drosselintervall m + 1 wird auf Null gesetzt und der Server-Computer
wartet die Wartezeit für
das Drosselintervall m + 1, bevor die Anfrage akzeptiert wird.
-
In
einer bevorzugten Ausführungsform
bezieht sich die Wartezeit für
das Drosselintervall m + 1 auf einen Unterschied zwischen dem Verbindungsanfragezählwert für das Intervall
m und der Verlangsamungsschwelle für jenen anfragenden Client.
-
In
einer anderen Ausführungsform
ist in einer Client/Server-Computerumgebung
ein Gerät
zum Beschränken
eines Verbindungsanfragestroms offenbart, der mit einem Verbindungsanfrage-Burst-Client
mit hohem Volumen verknüpft
ist. Das Gerät
umfasst eine Verbindungsanfrage-empfangende Einheit zum Empfangen
einer Verbindungsanfrage bei einem Beginn eines Drosselintervalls
m + 1, wobei das Drosselintervall m + 1 einem Drosselintervall m
nachfolgt. Eine Speichereinheit, die mit der Verbindungsanfrage-empfangenden
Einheit gekoppelt ist, ist angeordnet, die mit einer Verlangsamungsgrenze
verknüpften
Daten zu speichern, einen Verbindungsanfragezählwert für das Intervall m für den anfragenden Client
und eine Wartezeit für
ein Intervall m. Das Gerät
umfasst weiter einen Prozessor, der mit dem Speicher gekoppelt ist,
der angeordnet ist, eine Wartezeit für das Drosselintervall m +
1 basierend auf der Verlangsamungsgrenze zu berechnen, die mit dem
anfragenden Client verknüpft
ist, den Verbindungsanfragezählwert
für das
Intervall m für
den anfragenden Client und weiter angeordnet ist, einen Verbindungsanfragezählwert für das Intervall
m + 1 auf Null zu setzen. Ein Anfragedrossler, der mit dem Prozessor gekoppelt
ist, ist ebenso eingeschlossen, der angeordnet ist, um den Server-Computer
anzuweisen, die Wartezeit für
das Drosselintervall m + 1 zu warten, bevor die Anfrage akzeptiert
wird.
-
In
noch einer anderen Ausführungsform
ist ein Computerlesbares Medium einschließlich eines Computer-Programmcodes
zum Beschränken
eines Verbindungsanfragestroms offenbart, der mit einem Verbindungsanfrage-Burst-Client
mit hohem Volumen verknüpft
ist.
-
Kurze Beschreibung der Zeichnungen
-
Die
vorliegende Erfindung wird mittels eines Beispiels und nicht zum
Zwecke der Begrenzung in den Figuren der begleitenden Zeichnungen
dargestellt und in denen gleiche Bezugszeichen ähnliche Elemente bezeichnen
und in denen:
-
1 einen
Burst-Client in einem Nachrichtensystem zeigt.
-
2 ein
Nachrichtensystem gemäß einer Ausführungsform
der Erfindung zeigt.
-
3A und 33 ein Drosseln eines Verbindungsanfragestroms
basierend auf einer Verlangsamungsgrenze gemäß einer Ausführungsform
der Erfindung zeigen.
-
4 ein
Flussdiagramm darstellt, das ausführlich einen Prozess zum Ableiten
einer Wartezeit gemäß einer
Ausführungsform
der Erfindung beschreibt.
-
5 ein
typisches, Allzweck-Computer-System darstellt, das zum Implementieren
der vorliegenden Erfindung geeignet ist.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsformen
-
Es
wird sich nun im Detail auf eine bevorzugte Ausführungsform der Erfindung bezogen.
Ein Beispiel der bevorzugten Ausführungsform ist in den begleitenden
Zeichnungen dargestellt. Während
die Erfindung in Verbindung mit einer bevorzugten Ausführungsform
beschrieben wird, ist es selbstverständlich, dass es nicht beabsichtigt
ist, die Erfindung auf eine bevorzugte Ausführungsform zu beschränken. Im
Gegensatz ist es beabsichtigt, Alternativen, Modifikationen und Äquivalente
abzudecken, wie diese innerhalb des Geistes und Umfang der Erfindung
eingeschlossen sein können,
wie dieser durch die angehängten
Ansprüche
definiert ist.
-
Allgemein
gesprochen beschreibt die Erfindung einen IP-Drossler, das heißt ein Internet-Standard-basiertes
Protokoll und System zum Beschränken,
jedoch nicht Anhalten, von Verbindungsanfragen von einem Burst-Client,
um so einen Burst-Client-Zugang zu dem Server-Computer aufrechtzuerhalten,
ohne übermäßig Zugang
von anderen Clients zu beeinflussen. Der IP-Drossler ist gestaltet,
Verbindungsanfragen von einem Burst-Client durch Verlangsamen, jedoch
nicht Blockieren, des Verarbeitens von Verbindungen von der IP-Adresse
des Burst-Clients
zu dem Server auf eine Verbindungsrate zu beschränken, die der Server handhaben
kann, ohne nachteilig andere mit diesem gekoppelte Clients zu beeinflussen.
Um zu bestimmen, ob ein bestimmter Client ein Burst-Client ist,
zeichnet der IP-Drossler alle verbindenden IP-Adressen auf, wodurch
es dem Server erlaubt wird, eine Verbindungsanfragerate für jeden
Client sicherzustellen. Eine Verbindungsanfragerate wird dann für jeden
Client tabelliert (zum Beispiel basierend auf deren bestimmter IP-Adresse)
und mit einer Verlangsamungsgrenze verglichen, die mit jener bestimmten
IP-Adresse verknüpft
ist. Die Verlangsamungsgrenze stellt die Maximalanzahl von Verbindungen
pro Zeitintervall (wie zum Beispiel einem Drosselintervall) von
einer bestimmten IP-Adresse bereit, die der Server akzeptieren will,
ohne neue eingehende Verbindungen für jene IP-Adresse zu verlangsamen.
-
Falls
die eingehende Verbindungsrate von der bestimmten IP-Adresse immer unter
der Verlangsamungsgrenze bleibt, wird kein Drosseln für diese IP-Adresse
angewendet. Falls es jedoch während dem
vorangehenden Drosselintervall Verbindungen über der Verlangsamungsgrenze
gibt, wird das, was als eine Wartezeit bezeichnet wird, verwendet,
um den eingehenden Verbindungsanfragestrom von lediglich dem Burst-Client während einem
nächsten Drosselintervall
zu verzögern.
Insbesondere bezieht sich die Wartezeit auf die Anzahl von Verbindungsanfragen
(Treffern) oberhalb der Verlangsamungsgrenze (bezeichnet als eine
Verlangsamungsrate). Zum Beispiel stellt in einer Implementierung
die Verlangsamungsrate dar, wie viele stündliche Verbindungen oberhalb
der Verlangsamungsgrenze eine Sekunde an Wartezeit verursacht.
-
In
der folgenden Beschreibung werden Rahmenbedingungen und Verfahren
eines Bereitstellens eines Gerätes
und Systems zum Beschränken
des Verbindungsanfragestroms von einem Burst-Client zu einem Server-Computer in einer
verteilten Umgebung beschrieben. Derartige verteilte Umgebungen werden
beispielhaft durch jene Netzwerke dargestellt, die SMTP-Anfragen und -Antworten
verwenden. Obwohl die Erfindung anfänglich in Form eines mehrfädigen, Objekt-orientierten
Computersystems beschrieben wird, das unter Verwendung von SMTP-Anfragen
und Antworten implementiert ist, sollte es erwähnt werden, dass die vorliegende
Erfindung in jedem System verwendet werden kann, das in der Lage
ist, wohl definierte Anfragen und Antworten über ein verteiltes Netzwerk
zu handhaben.
-
Es
sollte ebenso erwähnt
werden, dass, obwohl die Erfindung in Form des Internets beschrieben ist,
jedes verteilte Netzwerk geeignet verwendet werden könnte, um
jede gewünschte
Ausführungsform der
Erfindung zu implementieren.
-
Die
Erfindung wird nun in Form eines elektronischen Nachrichtensystems
beschrieben, wie zum Beispiel einem E-Mail-System, mit einem Server-Computer,
der Teil eines großen
Netzwerkes von Computern ist, das zum Beispiel typisch für das Internet
ist, das mit einem Client-Computer gekoppelt ist, der in der Lage
ist, irgendeine Anzahl von Verbindungsanfragen innerhalb eines bestimmten
Zeitintervalls zu erzeugen.
-
Unter
Bezugnahme nun auf 2 wird ein Nachrichtensystem 200 gemäß einer
Ausführungsform
der Erfindung beschrieben. Das Nachrichtensystem 200 umfasst
einen Server-Computer 202, der mit Client-Computern 204-1 bis 204-n mittels
eines verbundenen Netzwerkes von Computern 206 gekoppelt
ist, was in diesem Beispiel das Internet ist. Wenn der Client-Computer 204-1 zum
Beispiel wünscht,
mit dem Server-Computer 202 zu kommunizieren, um zum Beispiel
eine E-Mail zu senden,
erzeugt der Client-Computer eine Verbindungsanfrage, die typischerweise
auf dem wohlbekannten TCP/IP-Protokoll basiert. Wie im Stand der
Technik wohlbekannt ist, ist TCP (Übertragungssteuerprotokoll – Transmission
Control Protocol) ein Verfahren, das zusammen mit dem Internetprotokoll
(IP) verwendet wird, um Daten in der Form von Nachrichteneinheiten
zwischen Computern über
das Internet zu senden. Während
IP sich um ein Handhaben der tatsächlichen Lieferung der Daten
kümmert,
kümmert sich
TCP um ein Beobachten der einzelnen Dateneinheiten (bezeichnet als
Pakete), in die eine Nachricht unterteilt ist, zum effizienten Weiterleiten
(Routing) durch das Internet.
-
In
dem am weitest verbreiteten installierten Level des Internetprotokolls
ist eine IP-Adresse eine Anzahl (gegenwärtig eine 32-Bitzahl), die
jeden Sender oder Empfänger
von Information identifiziert, die in Paketen über das Internet gesendet wird.
Zum Beispiel umfasst das Internetprotokoll, das Teil von TCP/IP
ist, eine IP-Adresse, die mit dem Empfänger in der Nachricht verknüpft ist
und sendet diese an die IP-Adresse, die durch Nachschlagen des Domain-Namens
bei dem universalen Ressourcenlokalisierer (Universal Resource Locator)
in einer HTTP-(d. h. WEB-Seite)Typanfrage oder bei der E-Mail-Adresse
in einer E-Mail- Typanfrage.
Der Empfänger
kann die IP-Adresse des WEB-Seitenanfragers
oder des E-Mail-Senders erkennen und durch Senden einer anderen
Nachricht unter Verwendung der IP-Adresse antworten, die dieser empfangen
hat. Eine IP-Adresse weist zwei Teile auf: einen Identifikator eines
bestimmten Netzwerkes in dem Internet und einen Identifikator des
bestimmten Gerätes
(das ein Server oder eine Arbeitsstation sein kann) innerhalb jenes
Netzwerkes.
-
Daher
hat der in 2 gezeigten Anordnung der Client-Computer 204-1 mit
sich eine eindeutige IP-Adresse (IPclient)
verknüpft,
genauso wie es der Server-Computer 202 (IPserver)
hat. Um eine Verbindung zu dem Server-Computer 202 anzufragen,
erzeugt der Client-Computer 204-1 eine TCP/IP-basierte
Verbindungsanfrage, die sowohl die Client-IP-Adresse IPclient und
die Server-IP-Adresse IPserver einschließt. Ist
die Verbindungsanfrage einmal erfolgreich zu dem Server-Computer 202 weitergeleitet
worden, überwacht
eine Firewall 207 (Brandmauer), der in dem Server-Computer 202 eingeschlossen ist
oder mit diesem gekoppelt ist, alle eingehenden Verbindungsanfragen
von allen Client-Computern 204-1 bis 204-n. In
der beschriebenen Ausführungsform
umfasst der Firewall 207 eine IP-Drosslereinheit 208,
die verwendet wird, den Verbindungsanfragestrom von einem identifizierten
Burst-Client zu
beschränken.
Die IP-Drosslereinheit 208 umfasst einen Verbindungsanfrageüberwacher 210,
der angeordnet ist, die Anzahl von Verbindungsanfragen, die von
einem bestimmten anfragenden Client empfangen werden, basierend
auf der eindeutigen IP-Adresse des anfragenden Clients zu überwachen.
Eine Prozessoreinheit 212, die mit dem Verbindungsanfrageüberwacher 210 gekoppelt
ist, ist konfiguriert, die Anzahl von Verbindungsanfragen für einen
bestimmten Anfrager basierend auf seiner verknüpften IP-Adresse je Zeiteinheit zu zählen, die
ebenso als ein Drosselintervall bezeichnet wird. Ein Speicher 214,
der mit der Prozessoreinheit 212 gekoppelt ist, wird verwendet,
unterschiedliche Schwellwerte zu speichern, die verwendet werden,
um zu bestimmen, ob oder ob nicht ein bestimmter Client als ein
Burst-Client charakterisiert werden kann und falls dem so ist, wie
verhindert werden kann, dass die Explosion/Burst von Verbindungsanfragen
den Betrieb des Server-Computers 202 oder das Verdrängen der
anderen Clients 204-2 bis 204-n nachteilig beeinflusst.
-
Zum
Beispiel wird unter Bezug auf 2, 3A und 3B die
Zeit in Intervalle unterteilt (ein derartiges Intervall wird ein
Drosselintervall genannt), in der die Anzahl von Verbindungen je
Client-IP-Adresse in dem Speicher 214 aufgezeichnet wird,
eine Verlangsamungsgrenze SLD stellt die Maximalanzahl von Verbindungen
je Zeiteinheit (wie zum Beispiel eine Stunde) von einer IP-Adresse
bereit, die der Server-Computer 202 akzeptieren will, ohne
neue eingehende Verbindungen von dem Burst-Client zu verlangsamen.
Falls die eingehende Verbindungsrate von einer IP-Adresse immer
unter der Verlangsamungsgrenze SLDt bleibt,
wird kein Drosseln auf den Strom von Verbindungsanfragen angewendet,
der von einer bestimmten IP-Adresse kommt. Falls jedoch während des
vorangehenden Drosselintervalls die Verbindungsanfragerate über der
Verlangsamungsgrenze SLDt liegt, verlangsamt eine
Beschränkungseinheit 216,
die mit dem Prozessor 212 gekoppelt ist, den Verbindungsanfrageratenstrom
um das, was als eine Wartezeit bezeichnet wird. In der bevorzugten
Ausführungsform
basiert die Wartezeit auf der Verlangsamungsrate, die darstellt, wie
viele Verbindungen je Zeiteinheit (wie zum Beispiel eine Stunde)
oberhalb der Verlangsamungsgrenze eine Sekunde an Wartezeit verursachen.
-
In
einer Ausführungsform
wird, nachdem ein Drosselintervall beendet ist, die Wartezeit, die
mit einer IP-Adresse verknüpft
ist, gemäß der Anzahl
von Verbindungen berechnet/aktualisiert, die von dieser IP-Adresse
während
dieses Drosselintervalls kommt. Es sollte erwähnt werden, dass in der beschriebenen Ausführungsform
jeder der Clients 204-1 bis 204-n seine eigene Verlangsamungsgrenze
SLDt aufweist, die gemäß den Anforderungen eines bestimmten Systems
gesetzt werden kann. Falls zum Beispiel der Client 204-1 ein
Client vom Niedervolumentyp ist, kann dieser eine Verlangsamungsgrenze
SLDt1 aufweisen, die eine niedrige Anzahl
von Verbindungsanfragen darstellt. Falls jedoch zum Beispiel der
Client 204-2 ein Client ist, der eine große Variation
von Verbindungsanfragen je Zeiteinheit in Abhängigkeit von unterschiedlichen
Faktoren, wie zum Beispiel der Tageszeit, usw., aufweist, kann dieser
eine Verlangsamungsgrenze SLDt2 aufweisen,
die für
jene Intervalle von Hochvolumen-Verbindungsanfragen sorgt, ohne einen
Serverzugang der Clients mit niedrigerem Volumen zu opfern, wie
zum Beispiel 204-1.
-
Immer
noch unter Bezugnahme auf 2, 3A und 3B wird
in einer spezifischen Implementierung die Zeit in Drosselintervalle
m unterteilt, in denen die Anzahl von Verbindungen je Client-IP-Adresse
durch die überwachende
Einheit 210 überwacht
wird und in dem Speicher 214 aufgezeichnet wird. Falls
eine bestimmte Verbindungsanfragerate eines Clients für ein Drosselintervall
m größer als die
Verlangsamungsgrenze SLDt für jenen
Client ist, wie von der Prozessoreinheit 212 bestimmt,
weist die Prozessoreinheit 212 die Beschränkungseinheit 216 an,
den eingehenden Verbindungsanfragestrom um eine Wartezeit Wt für
das nächste
Drosselintervall m + 1 zu verlangsamen. In dieser Weise behält der Burst-Client
einen Serverzugang, jedoch bei einer niedrigeren Rate, ohne nachteilig
einen Serverzugang zu anderen Clients zu beeinflussen. Zum Beispiel
wird in 3B das Intervall zwischen der TCP-Annahme
und der Verbindung, die von der Anwendung akzeptiert wird, um die
Wartezeit Wt in dem Intervall m + 1 erhöht.
-
4 zeigt
ein Flussdiagramm, das genau einen Prozess 400 zum Drosseln
eines Verbindungsanfragestroms für
einen Burst- Client
gemäß einer Ausführungsform
der Erfindung erläutert.
Der Prozess 400 beginnt bei 402, bestimmend ist
eine Neuverbindungsanfrage empfangen worden. Wenn eine neue Verbindungsanfrage
empfangen worden ist, wird bei 404 eine Bestimmung durchgeführt, ob
oder ob nicht dies der Beginn eines neuen Intervalls ist. Falls
es bestimmt wird, dass dies nicht ein Beginn eines neuen Intervalls
ist, wird die Anzahl von Verbindungen nconn bei 406 aktualisiert,
ansonsten wird eine neue Wartezeit Wt bei 408 berechnet.
Bei 410 wird die Anzahl von Verbindungen nconn zurückgesetzt
und die Verbindungsanfrage wird basierend auf der Wartezeit Wt bei 412 verzögert. Bei 414 wird
die Verbindung von der Anwendung akzeptiert und ein 416 wird eine
Bestimmung durchgeführt,
ob oder ob nicht eine neue Verbindungsanfrage empfangen worden ist. Falls
eine neue Verbindungsanfrage empfangen worden ist, wird die Steuerung
zurück
zu 404 geleitet, ansonsten stoppt ein Verarbeiten.
-
5 stellt
ein typisches Allzweck-Computer-System dar, das geeignet zum Implementieren der
vorliegenden Erfindung ist. Wie im Stand der Technik wohlbekannt
ist, agiert ein ROM, um Daten und Anweisungen unidirektional zu
den CPUs 502 zu übertragen,
während
ein RAM typischerweise verwendet wird, Daten und Anweisungen in
einer bidirektionalen Weise zu übertragen.
Die CPUs 502 können
allgemein jede Anzahl von Prozessoren umfassen. Beide primäre Speichergeräte 504, 506 können jede
geeigneten Computer-lesbaren Medien einschließen. Ein sekundäres Speichermedium 508, das
typischerweise ein Massenspeichergerät ist, ist ebenso bidirektional
mit CPUs 502 gekoppelt und stellt eine zusätzliche
Datenspeicherungskapazität bereit.
Das Massenspeichergerät 508 ist
ein Computer-lesbares Medium, das verwendet werden kann, Programme
einschließlich
von Computer-Code,
Daten und Ähnlichem
zu speichern. Typischerweise ist ein Massenspeichergerät 508 ein
Speichermedium, wie zum Beispiel eine Festplatte oder ein Band,
die im Allgemeinen langsamer als die primären Speichergeräte 504, 506 sind.
Ein Massenspeicherspeichergerät 508 kann
die Form eines Magnet- oder
Papier-Bandlesers oder einem anderen wohlbekannten Gerät annehmen.
Es wird erkannt, dass die Information, die innerhalb des Massenspeichergerätes 508 enthalten
ist, in geeigneten Fällen
in einer Standardweise als Teil eines RAM 504 als virtueller
Speicher eingeschlossen sein kann. Ein spezifisches, primäres Speichergerät 504,
wie zum Beispiel eine CD-ROM, kann ebenso Daten uni-direktional
zu den CPUs 502 weiterleiten.
-
CPUs 502 sind
ebenso mit einem oder mehreren Eingabe-/Ausgabe-Geräten 510 gekoppelt,
die Geräte
umfassen, wie zum Beispiel Videomonitore, Kugelführungen, Mäuse, Tastaturen, Mikrofone,
berührungsempfindliche
Anzeigen, Überträger-Kartenleser, Magnet-
oder Papier-Bandleser, Tabletts, Aufnahmestifte, Sprach- oder Handschrift-Erkenner
oder andere wohlbekannte Eingabegeräte, wie zum Beispiel natürlich Computer,
jedoch nicht darauf begrenzt. Schließlich können die CPUs 502 optional
mit einem Computer- oder Telekommunikationsnetzwerk z. B. einem
Internet-Netzwerk oder einem Intranet-Netzwerk, unter Verwendung
einer Netzwerkverbindung gekoppelt sein, wie allgemein bei 512 gezeigt.
Mit einer derartigen Netzwerkverbindung wird in Erwägung gezogen,
dass die CPUs 502 Information von dem Netzwerk empfangen
könnten
oder Ausgabeinformation zu dem Netzwerk im Laufe eines Durchführens der
oben beschriebenen Verfahrensschritte ausgeben könnten. Eine derartige Information,
die oft als eine Abfolge von Befehlen dargestellt wird, die von
den CPUs 502 ausgeführt
werden sollen, kann von dem Netzwerk empfangen werden und zu diesem
ausgegeben werden, zum Beispiel in der Form eines Computer-Datensignals, das
in einer Trägerwelle
verkörpert
ist. Die oben beschriebenen Geräte
und Materialien sind jenen auf dem Computer-Hardware- und Software-Gebiet
tätigen
Fachleuten bekannt.
-
Obwohl
lediglich wenige Ausführungsformen der
vorliegenden Erfindung beschrieben worden sind, sollte es selbstverständlich sein,
dass die vorliegende Erfindung in vielen anderen spezifischen Formen
ausgeführt
sein kann, ohne von dem Geist oder dem Umfang der vorliegenden Erfindung
abzuweichen. Operationen können
ebenso entfernt oder hinzugefügt
werden, ohne von dem Geist oder Umfang der vorliegenden Erfindung
abzuweichen.
-
Obwohl
die Verfahren zum Beschränken
eines Verbindungsanfragestroms für
einen Burst-Client mit hohem Volumen in einem verteilten Netzwerk
gemäß der vorliegenden
Erfindung besonders zur Implementierung in Bezug auf eine JavaTM-basierte Umgebung geeignet sind, können die
Verfahren im Allgemeinen in jeder geeigneten Objekt-basierten Umgebung
angewendet werden. Insbesondere sind die Verfahren zur Verwendung
in Plattform-unabhängigen,
Objekt-basierten Umgebungen geeignet. Es sollte erkannt werden,
dass die Verfahren ebenso in einigen verteilten Objekt-orientierten
Systemen implementiert sein können.
-
Es
sollte ebenso erkannt werden, dass die vorliegende Erfindung im
Allgemeinen auf jedem geeigneten Objektorientierten Computer-System
implementiert sein kann. Daher sollen die vorliegenden Beispiele
als darstellend betrachtet werden und nicht als beschränkend und
die Erfindung soll nicht auf die hierin gegebenen Details beschränkt sein,
sondern kann innerhalb des Umfangs der angehängten Ansprüche zusammen mit ihren Vollumfangsäquivalenten
modifiziert werden.