-
Gebiet der
Erfindung
-
Diese
Erfindung bezieht sich auf eine Verbindungszulassungssteuerung (CAC)
in Kommunikationsnetzwerken, speziell in ATM-basierten Breitbandnetzwerken.
-
Hintergrund
der Erfindung
-
ATM
(asynchrones Übertragungsverfahren; "Asynchronous Transfer
Mode") ist eine
bekannte verbindungsorientierte Paketvermittlungstechnologie, die
durch die Internationale Organisation für Telekommunikationsstandardisierung
ITU-T als die Zielübertragungsverfahrenslösung zum
Implementieren eines Breitband-Multimedianetzwerks (B-ISDN) ausgewählt wurde.
In diesen Netzwerken sind viele Verkehrsquellen diskontinuierlich,
wobei die zu manchen Momenten benötigte Übertragungskapazität hoch ist,
und die in einem anderen Moment benötigte Kapazität gering
ist. Diskontinuitäten
können
als ein Phänomen
beschrieben werden, wobei ein Satz von Zellen (eine Häufung) in
kurzen Intervallen ankommt, und der folgende Satz (Häufung) nach einer
relativ langen Zeit ankommt. Weil verschiedene Verbindungen verschiedene
Kapazitäten
benötigen, und
die Anforderungen schnell variieren, wird ein statisches Multiplexen
in einem ATM-basierten Netzwerk verwendet. Die statischen Charakteristiken
von diskontinuierlichen Verkehrsquellen werden bei einem statischen
Multiplexen verwendet: wenn ein großer Satz von Verkehrsquellen
kombiniert wird, wobei sich der kombinierte Verkehr stabiler verhält als die individuellen
Quellen, und obwohl die Übertragungsgeschwindigkeit
einer individuellen Verkehrsquelle variiert, ist die kombinierte Übertragungsgeschwindigkeit
von gegenseitig unabhängigen
individuellen Verkehrsquellen nahezu konstant. Durch Verwenden von
statistischen Multiplexen wird es ermöglicht, mehr Verbindungen mit
den gleichen Ressourcen zu versorgen, d.h. die Anwendungsgeschwindigkeit
des Netzwerkes kann erhöht
werden.
-
Trotz
statistischem Multiplexen treten immer noch Verstopfungen und Überlastungen
in dem Netzwerk auf Grund von sowohl unvorhersagbarer statistischer
Variationen des Verkehrs als auch Fehlersituationen, die in dem
Netzwerk auftreten, auf. Da es unmöglich ist, die bereitzustellenden
Dienste, das durch die Dienste überbrachte
Verkehrsvolumen und die exakten Charakteristiken der Verkehrsquellen
mit ausreichender Genauigkeit zu kennen, ist das Auftreten von Überlastungen
in einem Netzwerk unvermeidbar. Der Zweck einer Verkehrs- und Überlastungssteuerung
soll das Netzwerk und dem Nutzer schützen, so dass die gewünschte Qualität eines Dienstes
erreicht werden kann.
-
Eine
Verkehrssteuerung zielt darauf ab, das Auftreten von Überlastungssituationen
vorzubeugen, während
eine Überlastungssteuerung
auf in dem Netzwerk erfasste Überlastungssituationen
reagiert. Von dem Standpunkt der Dienstqualität (QoS) sind die Verkehrssteuerfunktionen,
die versuchen, Überlastungssituationen
im Vorfeld zu vermeiden am wichtigsten, wobei das wichtigste Vermeidungs-Verkehrsverfahren
davon die Verbindungszulassungssteuerung (CAC: "Connection Admission Control") ist. CAC wird als
der Satz von Maßnahmen
definiert, die durch das Netzwerk während der Anruf-(virtuelle Verbindung)-Aufbauphase,
oder während
der erneuten Anruf-Übertragungsphase
ergriffen werden, um zu bestimmen, ob eine Verbindungsanfrage akzeptiert
werden kann oder zurückgewiesen
wird. Eine CAC akzeptiert eine Verbindung nur, wenn ausreichende
Ressourcen in jeder nachfolgenden Verbindung in dem Kreis verfügbar sind,
und wenn die neue Verbindung die Qualität der Dienste von existierenden
Verbindungen nicht nachteilig beeinflusst.
-
Es
sind verschiedene unterschiedliche Verfahren zum Implementieren
von einer CAC bekannt. Diese Verfahren basieren entweder auf Verkehrsparameter,
die durch den Nutzer festgelegt werden, oder auf in dem Netzwerkelement
stattfindende Verkehrsmessungen. Es ist möglich, die Dienstqualität oder die
Kapazitätsanforderung,
die erwartet werden kann, gemäß Verkehrsparametern
abzuschätzen, entweder
mit der Hilfe von zuvor berechneten Tabellen, wie bei als "indirekt" bezeichnete Verfahren,
oder durch Berechnen in Echtzeit, basierend auf in der Verbindungsanfrage
bereitgestellten Verkehrsparametern, als "direkte" Verfahren bezeichnet.
-
Die
durch das ATM-Forum definierten Verkehrsparameter die die inhärenten Charakteristiken einer
Verkehrsquelle beschreiben, die eine Verbindung anfragt, sind: eine
Spitzenzellrate (PCR), eine aufrechtzuerhaltende Zellrate (SCR),
eine maximale Diskontinuitätsgröße (MBS)
und eine minimale Zellrate (MCR).
-
Verschiedene
Voraussetzungen, von denen zumindest die, sich voneinander unterscheiden, müssen für den CAC- Algorithmus, der
die Akzeptanz einer Verbindungsanfrage bestimmt, eingestellt werden.
Ein CAC-Algorithmus sollte z.B. so allgemein wie möglich im
Sinne seiner Anwendbarkeit zum Verwalten von Verkehrsquellen einer
breiten Anzahl von verschiedenen Typen sein. Der Algorithmus muss ebenso
einfach genug sein, um z.B. in Echtzeit angewendet werden zu können, so
dass er keinen Flaschenhals darstellt, der die Verarbeitungskapazität der Vermittlung
darstellt, der die Anrufverarbeitungskapazität einschränkt. Andererseits sollte der
Algorithmus sehr effizient sein, um die Netzwerkressourcen optimal
zu nutzen, und eine gleiche Behandlung von Verbindungen von verschiedenen
Typen zu garantieren.
-
Hochentwickelte
und effiziente CAC-Algorytmen tendieren dazu, sehr rechenintensiv
zu sein. Es ist wünschenswert,
dass der CAC-Algorithmus im Voraus das Ausmaß der von den Verbindungen
benötigten
Ressourcen berechnet. Die CAC würde
dann dazu fähig
sein, schneller zu entscheiden, ob eine neue Verbindung akzeptiert
werden kann oder nicht. Jedoch ist es unmöglich, im Vorfeld die Verkehrssituation
zu der Ankunftszeit einer neuen Verbindungsanfrage zu wissen. Mit
anderen Worten ist es unmöglich,
im Vorfeld die existierenden Verbindungen und deren Typen, Verkehrsparameter
und die Qualität von
Dienstvoraussetzungen zu wissen. Daher kann die CAC nicht im Vorfeld
oder offline die von den zu dem Zeitpunkt einer neuen Verbindungsanfrage
existierenden Verbindungen benötigen
Ressourcen berechnen.
-
Wie
vorstehend angedeutet, wird das Kapazitätserfordernis von einer zuvor
berechneten Tabelle auf Basis der in der Verbindungsanfrage enthaltenden
Verkehrsparameter ausgesucht, wenn indirekte Verfahren verwendet
werden.
-
Das
von der Tabelle erhaltene Ergebnis wird anschließend an das Kapazitätserfordernis
von existierenden Verbindungen hinzugefügt um zu bestimmten, ob die
Verbindungsanfrage akzeptiert werden kann. Daher ist die Idee, die
hinter diesem Verfahren steht, die Echtzeitberechnung, die bei der
Entscheidungsfindung benötigt
wird, zu minimieren.
-
Ein
Verfahren dieser Art ist in Dokument WO 9841052 A1 offenbart.
-
Der
Nachteil dieser Verfahren ist, dass die in dem Netzwerk verwendeten
Verkehrsparameter und die für
jeden Parameter möglichen
Werte im Vorfeld bekannt sein müssen,
wenn die Tabellen gebildet werden. Deshalb können diese Verfahren nicht
flexibel an die verschiedenartig konstant veränderlichen Netzwerkumgebungen
angepasst werden. Dieser Nachteil wird bei zukünftigen Netzwerken verschärft, wenn
neue Anwendungen und neue Endgeräte-Ausstattungen vermutlich
Verkehr mit unvorhersehbaren Charakteristiken erzeugen.
-
Zusammenfassung
der Erfindung
-
Der
Gegenstand der Erfindung ist, die vorstehend erwähnten Nachteile zu beseitigen
und ein Verfahren zu schaffen, das eine schnelle Verbindungserlaubnis
ohne der Notwendigkeit, Tabellen in den Netzwerkelementen zu aktualisieren,
wenn neue Anwendungen oder neue Endgeräte in dem Netzwerk eingeführt werden,
ermöglicht.
-
Dieses
Ziel kann durch Verwenden der in den unabhängigen Patentsprüchen definierten
Lösung
erreicht werden.
-
Die
grundlegende Idee dieser Erfindung ist, das vorstehend genannte
direkte Verfahren, d.h. Echtzeitberechnung mit Zwischenspeichern
einer bestimmten Anzahl von vorhergehenden Verbindungsanfragen und
deren Resultate, und Verwenden der zwischengespeicherten Informationen,
wenn eine erneute Verbindungsanfrage gleich einer der vorhergehenden
angekommenen Anfragen ist, zu kombinieren. Daher ist die Idee, die
Ergebnisse von diesen Berechnungen zwischenzuspeichern, die wahrscheinlich
erneut gemacht werden, und die ohne Kenntnis der gegenwärtig existierenden
Verbindungen berechnet werden können.
Auf diese Weise kann eine CAC-Entscheidungsfindung signifikant beschleunigt
werden. Jedes Mal, wenn eine CAC eine neue Verbindungsanfrage empfängt, prüft diese
in ihrem Zwischenspeicher, ob eine ähnliche Verbindungsanfrage
in jüngerer
Vergangenheit aufgetreten ist, wenn dies der Fall ist, verwendet
die CAC die zwischengespeicherten Ergebnisse, und wenn nicht, verwendet
die CAC die entsprechenden Algorithmen, die Ergebnisse zu berechnen.
-
Mit
Hilfe der Lösung
gemäß der Erfindung kann
eine CAC-Entscheidungsfindung
ohne der Notwendigkeit, die Verkehrsparameter im Vorfeld zu wissen,
oder extra Messungen durchzuführen,
wenn sich die Netzwerkumgebung ändert,
beschleunigt werden.
-
Innerhalb
eines einzelnen Netzwerkelements, das verschiedene Untereinheiten
beinhaltet, ist es oftmals vorzuziehen, die CAC so zu implementieren,
dass die Entscheidung, ob eine Verbindungsanfrage akzeptiert werden
kann, separat für
jede Untereinheit getroffen wird. Daher kann jede Untereinheit mit
einem eigenen CAC-Vorgang
ausgestattet sein, um über
die Akzeptanz für
den betroffenen Teil der Untereinheit zu entscheiden, wobei die
Verbindungsanfrage verschiedene CAC-Vorgänge (d.h. verschiedene Untereinheiten)
durchlaufen muss, bevor das gesamte Netzwerkelement diese akzeptieren kann.
Bei einem bevorzugten Ausführungsbeispiel der
Erfindung, das für
diese Art einer Implementierung gedacht ist, sendet eine CAC-Prozesseinheit gemeinsam
mit den Eingabedaten, ein Markierungszeichen das angibt, ob der
Vorgang zwischengespeicherte Resultate gefunden hat, und einen Bezeichner,
der die in dem Zwischenspeicher gespeicherten Resultate bezeichnet,
an die nächste
CAC-Prozesseinheit. Auf diese Weise muss nur die erste von den verschiedenen
CAC-Einheiten nach Resultaten in dem Zwischenspeicher suchen. Dies
beschleunigt eine CAC für
das gesamte Netzwerk, und die Rechenintensität weniger anspruchsvoll.
-
Kurze Beschreibung
der Zeichnungen
-
Im
Folgenden werden die Erfindung und ihre bevorzugten Ausführungsbeispiele
in näherem
Detail mit Bezug auf in den anhängenden
Zeichnungen gezeigten Beispielen beschrieben, worin gilt:
-
1 ist
ein Blockdiagramm einer Netzwerkumgebung, in dem das Verfahren angewendet
werden kann,
-
2 veranschaulicht
die Funktionsblöcke, die
das Verfahren gemäß der Erfindung
in einer Vermittlung ausführen,
-
3 veranschaulicht
das grundlegende Ausführungsbeispiel
der zum Zwischenspeichern verwendeten Datenstruktur,
-
4 veranschaulicht
ein weiteres Ausführungsbeispiel
der in 3 gezeigten Datenstruktur,
-
5 veranschaulicht
eine Vermittlung, bei der eine Verbindungserlaubnissteuerung über verschiedene
aufeinander folgende CAC-Prozesse durchgeführt wird, und
-
6 veranschaulicht
die Funktion von aufeinanderfolgenden CAC-Prozessen.
-
Detaillierte
Beschreibung der Erfindung
-
Das
ATM-Forum hat fünf
verschiedene Dienstklassen spezifiziert, die sich auf Verkehrscharakteristiken
und die Qualität
von Dienstanforderungen im Netzwerkverhalten beziehen.
-
Diese
Dienstklassen sind: eine konstante Bitrate (CBR), eine echtzeitvariable
Bitrate (rt-VBR), eine nichtechtzeitvariable Bitrate (nrt-VBR),
eine verfügbare
Bitrate (ABR) und nicht spezifizierte Bitraten (UBR). Jede Klasse
stellt Verbindungen da, die homogene Verkehrsmustercharakteristiken
und QoS-Anforderungen aufweisen. Die vorstehend angemerkten Verkehrsparameter
werden zusammen mit den sogenannten QoS-Parametern verwendet, die
Dienstklassen zu definieren. Die QoS-Parameter sind: Zellverzögerungsvariation
(CDV), maximale Zellübertragungsverzögerung (Max
CTD) und Zellenverlustverhältnis
(CLR).
-
1 veranschaulicht
ein Beispiel der Netzwerkumgebung, in der die gegenwärtige Erfindung implementiert
werden kann. Das Netzwerk weist eine Vielzahl von zwischengeschalteten
(ATM) Vermittlungen auf, die CAC-Einheiten
(1) besitzen, die die vorstehend beschriebene CAC-Prozedur
implementieren. Daher ermöglichen
die CAC-Einheiten,
dass von einem der Verkehrsquellen (TE1 bis TE5) empfangene Verbindungsanfragen
nur akzeptiert werden, wenn ausreichende Ressourcen verfügbar sind,
um die Verbindung mit ihrer erforderten QoS aufzubauen, ohne die
QoS von existierenden Verbindungen herabzusetzen. Wenn eine Verbindungsanfrage
in einem Zugangsknoten des Netzwerkes ankommt, bestimmt der Knoten
die Parameter, die die Verbindungen beschreiben, oder die Quelle,
und gibt diese als eine Eingabe an die CAC-Einheit weiter. Eine
von einer Verkehrsquelle empfangene Verbindungsanfrage umfasst üblicherweise
mindestens die benötigte Dienstklasse
und die Verkehrsparameter, die die Quelle beschreiben, die in Verbindung
mit dem Endgerät
TE3 in 1 gezeigt wird. Daher wird mindestens ein Teil
der von der CAC-Einheit benötigten
Eingabeinformationen in der Regel mit der Verbindungsanfrage empfangen.
Ein Teil der Informationen kann in dem Netzwerkelement vorgespeichert
oder berechnet werden, und ein Teil kann von außerhalb der Verkehrsquelle
empfangen werden, z.B. von der Netzwerkverwaltung.
-
2 ist
ein Blockdiagramm der CAC-Einheit gemäß der gegenwärtigen Erfindung,
das den Betrieb der Einheit veranschaulicht. Verschiedene Schritte
des Betriebes sind mit eingekreisten Zahlen 1 bis 8 markiert. Die
CAC-Einheit umfasst
einen Hauptprogrammblock MB, der die Eingabeinformationen (wie etwa
die benötigte
Dienstklasse und die die Quelle beschreibenden Verkehrsparameter) empfängt und
entscheidet, ob die Anfrage akzeptiert oder zurückgewiesen wird. Daher gibt
der Hauptprogrammblock eine "JA-" oder "NEIN-" Antwort als Reaktion
auf die ihm zugeführten
Eingabeinformationen zurück.
-
Die
CAC-Einheit umfasst weiterhin einen Zwischenspeicherblock CB zum
zwischenspeichern vorhergehender Anfragen und deren berechneter
Ergebnisse, sowie einen Rechenblock CAB zum Durchführen einer
Echtzeitberechnung, wenn zwischengespeicherte Ergebnisse nicht verfügbar sind. Wenn
eine Verbindungsanfrage ankommt (Schritt 1), empfängt der
Hauptprogrammblock seine Eingabeinformationen und gibt diese an
den Zwischenspeicherblock weiter (Schritt 2). Auf Basis
dieser Eingabeinformationen sucht der Zwischenspeicherblock die
Ergebnisse (wie etwa die virtuelle Bandbreite) aus seinem Speicher.
Wenn der Zwischenspeicherblock die Ergebnisse findet, gibt er (Schritt 3)
die Informationen an den Hauptprogrammblock, der auf Basis der Ergebnisse
und den existierenden Verbindungen die Entscheidung trifft. Wenn
z.B. das Ergebnis ist, dass die virtuelle Bandbreite durch die angefragte
Verbindung benötigt
wird, fügt
der Hauptprogrammblock diese an die virtuellen Bandbreiten von existierenden
Verbindungen hinzu, um eine Schätzung
der gesamten benötigten
Bandbreite zu bilden, wenn die neue Verbindung zugelassen wird.
Anschließend
lässt der
Hauptprogrammblock die Verbindungsanfrage zu, wenn die Gesamtbandbreite kleiner
als die Kapazität
der Übertragungsverbindung (oder
dem virtuellen Pfad) ist, andererseits wird die Anfrage zurückgewiesen
(Schritt 8).
-
Auf
diese Weise kann die Anfrage nur durch den Hauptprogrammblock und
dem Zwischenspeicherblock verarbeitet werden. Wenn jedoch der Zwischenspeicherblock
keine Ergebnisse in seinem Speicher findet, gibt er die Verkehrsparameter
an den Rechnungsblock weiter (Schritt 4), der die Ergebnisse
unter Verwenden der Parameter als die Eingabeinformationen berechnet,
und diese Ergebnisse dem Zwischenspeicherblock zuführt (Schritt 5).
Anschließend
speichert der Zwischenspeicherblock die Ergebnisse zusammen mit
den zugehörigen Eingabeinformationen
in seinem Speicher (Schritt 6), so dass, wenn eine ähnliche
Verbindungsanfrage in naher Zukunft ankommt, er das Ergebnis in
seinem Speicher finden kann. Nachdem die Informationen gespeichert sind,
gibt der Zwischenspeicherblock die Ergebnisse an den Hauptprogrammblock
weiter (Schritt 7), der anschließend die Entscheidung auf die
vorstehend beschriebene Weise trifft, und die Anfrage akzeptiert oder
zurückweist
(Schritt 8).
-
Wie
vorstehend erörtert,
empfängt
der Hauptprogrammblock, wenn eine neue Verbindungsanfrage von dem
Netzwerk ankommt, Parameter, die die Verbindung oder die Quelle,
wie etwa die Dienstklasse und die Werte der dieser Klasse zugehörigen Verkehrsparameter,
beschreiben. Der Zwischenspeicherblock CB umfasst eine in 3 dargestellte Datenstruktur.
In dieser Datenstruktur gibt es zum einen eine Dienstklassentabelle
oder Zeiger-SC, die ein Element für jede in dem Netzwerk verwendete Dienstklasse
umfasst. Jedes Element enthält
einen Zeiger, der auf ein klassenspezifisches Zwischenspeicher-Datenfeld zeigt.
In diesem Beispiel ist die Anzahl von Klassen Li (i = 1...n) n,
wonach ebenfalls n Zwischenspeicherdatenbereiche CAi existieren. Jeder
klassenspezifische Zwischenspeicherdatenbereich enthält eine
bestimmte Anzahl von Elementen, wobei jedes Element einen Zeiger
enthält,
der auf eine verbundene Liste LL zeigt. Typischerweise ist die Länge jedes
Zwischenspeicherdatenbereiches zwischen 10 und 20, d.h. 10 < Ci ≤ 20. Die Länge von zwei
oder mehr Zwischenspeicherdatenbereichen kann gleich sein, z.B.
können
alle Zwischenspeicherdatenbereiche 20 Elemente umfassen.
-
Jedes
Element eines individuellen Zwischenspeicherdatenbereiches zeigt
auf seine eigene verbundene Liste LL, d.h. es gibt eine zugeordnete
verbundene Liste für
jedes Zwischenspeicherdatenbereichelement. Jede verbundene Liste
enthält
eine bestimmte Anzahl von Dateneinheiten DU, wobei jede davon mit
Ausnahme der letzten einem der Verkehrsparameter in dieser Klasse
entspricht. In dem Beispiel von 3 entsprechen
die ersten Dateneinheiten in jeder verbundenen Liste einer Spitzenzellrate (PCR),
die zweiten Dateneinheiten einer aufrechtzuerhaltenden Zellrate
(SCR), etc. Die Anzahl von Dateneinheiten in einer individuellen
Liste hängt
von den fraglichen Verkehrsklassen ab. In dem Beispiel von 3 umfassen
die verbundenen Listen der ersten Dienstklasse m1 Parameter,
die verbundenen Listen der zweiten Dienstklasse m2 Parameter,
etc, und die verbundenen Listen der n-ten Dienstklasse mn Parameter. Jede Dateneinheit, mit Ausnahme
der letzten, enthält
zwei Elemente, so dass das erste Element einen Wert für den bestimmten
Verkehrsparameter enthält,
und das zweite Element einen Zeiger auf das nächste Element in der Liste
enthält.
-
Die
letzte Dateneinheit in jeder verbundenen Liste umfasst die Ergebnisse
für die
bestimmte Kombination von Parameterwerten in dieser verbundenen Liste.
Mit anderen Worten umfasst die letzte Dateneinheit die von dem Rechnungsblock
erhaltenen Ergebnisse, wenn die Verkehrsparameter in dieser Liste
als Eingabedaten für
die Berechnung verwendet werden. In dem Beispiel von 3 umfassen
die Ergebnisse eine bestimmte Anzahl von Werten Ri in
jeder Klasse. Die Ergebnisse können
einen Wert für eine
oder mehrere Quantitäten
umfassen, wie etwa eine Bandbreite, eine Verzögerung, Zwischenspeicher-Speichererforderniss,
etc.
-
Bei
der Aufbauphase des Netzwerkelements kann die Datenstruktur von 3 leer
sein. Wenn die erste Verbindungsanfrage ankommt, führt der
Hauptblock die Dienstklasseninformationen und die Verkehrsparameter
dem Zwischenspeicherblock zu. Da der Zwischenspeicherblock die Ergebnisse
aus seiner Datenstruktur (Speicher) nicht finden kann, ruft er eine
klassenspezifische Subroutine CALC_Li in dem Rechenblock auf, und
gibt die Verkehrsparameter der Anfrage der Subroutine ein. Die Subroutine
gibt die Ergebnisse an den Zwischenspeicherblock zurück, die
anschließend
die Parameterwerte und die Ergebnisse in eine der leeren Listen,
die zu dieser Dienstklasse gehören,
speichert. Der Zwischenspeicherblock sendet anschließend die
Ergebnisse an den Hauptprogrammblock, der die Resultate verwendet,
die Entscheidung zu berechnen. Auf diese Weise wird die Datenstruktur
nach einer bestimmten Anzahl von Anfragen, die für jede Dienstklasse angekommen
sind, aufgefüllt.
-
Alternativ
kann die Datenstruktur mit den am meisten verbreiteten Werten von
Verkehrsparametern und deren vorgerechneten Ergebnissen vor Inbetriebnahme
des Netzwerkelementes aufgefüllt werden.
-
Daher
ist die Datenstruktur von 3 in dem normalen
Betriebszustand der CAC-Einheit mit Parameterwerten und Ergebnissen
gefüllt.
Wenn eine Verbindungsanfrage ankommt, startet die Suche in dem Zwischenspeicherblock
durch Prüfen
der Dienstklasse der Verbindungsanfrage. Darauf basierend wird das
Element von Datenfeld SC, das dieser bestimmten Datenklasse entspricht,
gelesen. Der Zeiger in diesem Element zeigt auf eines der Zwischenspeicherdatenfelder,
das anschließend
für einen ähnlichen
Parametersatz durchsucht wird. Bei dem ersten Mal kann das Durchsuchen
des klassenspezifischen Zwischenspeicherdatenbereichs z.B. bei dem
ersten Element des Datenbereiches beginnen. Das nächste Mal
kann das Durchsuchen bei dem zweiten Element beginnen, etc. Dennoch
fährt die
Suche von dem Element des Zwischenspeicherdatenbereiches zu der
verbundenen Liste fort, die von diesem Element adressiert wird,
und anschließend
die Liste entlang, solange die Werte von den Verkehrsparametern
in der Liste mit den Werten der entsprechenden Verkehrsparameter
in der Verbindungsanfrage übereinstimmen.
Wenn der Parameterwert in der Liste sich von dem Wert des entsprechenden
Verkehrsparameters in der Anfrage unterscheidet, springt die Suche
zu dem nächsten
Element in dem Zwischenspeicherdatenbereich, und beginnt damit,
die Liste, die mit diesem Element verbunden ist, zu durchlaufen.
Letztlich werden entweder die Ergebnisse am Ende der Liste mit einem
ausreichend ähnlichen
Parametersatz gefunden, oder alle Listen wurden ohne einen Treffer
durchsucht. In dem letzen Fall berechnet der Rechenblock die Ergebnisse
für den
Hauptprogrammblock.
-
Die
Suche in der Datenstruktur kann wie vorstehend beschrieben horizontal
durchgeführt
werden, d.h. eine Liste wird geprüft, bis entweder ein Parameter
in der Liste und der entsprechende Parameter in der Anfrage sich
unterscheiden, oder das Ende der Liste erreicht wird. Eine weitere
Alternative ist, vertikal vorzugehen, so dass die ersten Dateneinheiten
der Listen in dieser bestimmten Klasse zuerst untersucht werden,
dann die zweiten Dateneinheiten in dieser Liste, in der der Wert des
ersten Parameters mit dem des Parameters in der Anfrage übereinstimmt,
etc.
-
Wenn
die Datenstruktur voll ist, wird sie auf FIFO-Basis aktualisiert,
d.h. wenn die gegenwärtigen Ergebnisse
und Parameter in der Liste gespeichert werden, die von dem Zwischenspeicherdatenelement
i adressiert wird, werden das nächste
Mal die Ergebnisse und Parameter in der Liste gespeichert, die von
Element i + 1 adressiert wird etc. Auf diese Weise wird der gesamte
Inhalt jeder Klasse innerhalb einer bestimmten Periode aktualisiert.
Eine weitere Alternative ist zu überwachen,
wie häufig
jeder listenspezifische Resultatsatz verwendet wird, und diese Sätze, die
am wenigsten häufig
verwendet werden, zu ersetzen.
-
4 veranschaulicht
ein weiteres Ausführungsbeispiel
der Datenstruktur in dem Zwischenspeicherblock. Dieses Ausführungsbeispiel
basiert auf der Beobachtung, dass ein bestimmter Verkehrsparameter
eine begrenzte Anzahl (N) von möglichen Werten
pro Klasse besitzen kann, wobei dieser Parameter aus der Liste entnommen
werden kann, und ein separates Parameterdatenfeld kann für diesen Parameter
gebildet werden. Die Zellenverlustrate (CLR) ist z.B. ein Parameter,
der höchstens
20 verschiedene Werte in einer einzigen Dienstklasse besitzt. Hierfür kann die
Struktur ein separates Datenfeld CLR Ai (i = 1...n) für jede der
Verkehrsklassen besitzen (zwei davon sind in der Figur gezeigt).
Die Anzahl Ni von Elementen in einem individuellen Datenfeld entspricht
der Anzahl von verschiedenen Werten einer Zellenverlustrate in dieser
Klasse.
-
In
diesem Fall wird die Zellverlustrate, die in der Verbindungsanfrage
enthalten ist, ohne jeden Vergleich gelesen, und die Suche springt
zu dem Element, das der fraglichen Dienstklasse und der Zellenverlustrate
in der Anfrage entspricht. Wenn z.B. die Dienstklasse L2 ist, und
die Zellenrate 10–6 ist, springt die Suche
direkt zu dem sechsten Element (das in diesem Beispiel angenommen
wird, dem Wert 10–6 zu entsprechen) in
dem Datenfeld der Klasse L2 (wie in der Figur gezeigt wird). Jedes
Element in dem Datenfeld umfasst einen Zeiger, der den Anfang der
verbundenen Listen bildet. Die Listen sind ähnlich denen in dem ersten
Ausführungsbeispiel,
außer
dass jede Liste eine Dateneinheit weniger umfasst, weil die Dateneinheiten,
die der Zellenverlustrate entsprechen, von diesen Listen entfernt
wurden.
-
In
dem Ausführungsbeispiel
von 4 wird ein Vergleich pro geprüfter Liste eingespart, als
im Vergleich mit dem Ausführungsbeispiel
von 3. Jedoch ist der Nachteil des Ausführungsbeispiels von 4,
dass die Anzahl von Listen N-Fach ist, da separate Listen für jede der
Zellenverlustraten-Werte existieren müssen. Folglich beträgt das Speicherplatzerfordernis
das N-Fache als im Vergleich mit dem Ausführungsbeispiel von 3 (die
Anzahl von verschiedenen Zellenverlustraten-Werte kann in verschiedenen
Klassen variieren, wobei das Speicherplatzerfordernis nicht exakt
das N-Fache beträgt).
-
In
der vorstehenden Beschreibung wurde angenommen, dass eine CAC-Einheit
oder ein CAC-Prozess die Verbindungserlaubnis innerhalb der Vermittlung
erledigt. Es ist jedoch ebenso möglich,
die Verbindungserlaubnissteuerung als eine/n "mehrstufige/n"-Einheit
oder -Prozess gemäß der Architektur
der Vermittlung zu implementieren, so dass es eine CAC-Einheit/-Prozess
für jede "Stufe" oder Untereinheit
der Vermittlung gibt. 5 veranschaulicht dies, indem
eine gewöhnliche
Vermittlungsarchitektur gezeigt wird. Teilnehmer werden mit dem
Vermittlungsnetzwerk SN oder mit einem Multiplexer MUX über eine
Teilnehmerleitungseinheit SLU verbunden. Multiplexer werden zum
lokalen Zusammenführen
von Teilnehmerverkehr innerhalb der Vermittlung verwendet. Die Vermittlung
mit anderen Vermittlungen werden über Fernmodule TM verbunden.
Innerhalb der Vermittlung kann die gesamte Verbindungserlaubnis
anstatt einem CAC-Prozess mit Hilfe von vorstehend beschriebenen
verschiedenen aufeinander folgenden CAC-Prozesseinheiten implementiert
werden, so dass jede Einheit die Verbindungserlaubnissteuerung in
einer bestimmten Stufe oder Untereinheit der Vermittlung erledigt.
Folglich kann in einer Vermittlung gemäß 5 die gesamte Verbindungserlaubnissteuerung
z.B. so implementiert werden, dass die erste CAC-Prozesseinheit
(1A) eine Verbindungserlaubnissteuerung in den Teilnehmerleitungseinheiten
SLU behandelt, die zweite CAC-Einheit (1B) eine Verbindungserlaubnis
in den/dem Multiplexer/n behandelt, und die dritte CAC-Einheit (1C)
eine Verbindungserlaubnissteuerung in den Fernmodulen behandelt.
Daher kann eine Verbindungsanfrage in Abhängigkeit auf die Implementierung
verschiedene CAC-Prozesse
innerhalb einer Vermittlung durchlaufen müssen. Die Anfrage wird akzeptiert,
wenn jeder CAC-Prozess diese akzeptiert hat, ansonsten wird sie
zurückgewiesen.
-
Wenn
die vorstehend beschriebene Verbindungserlaubnissteuerung auf eine
direkte Weise in einer "mehrstufigen" CAC-Implementierung
verwendet wird, muss jeder CAC-Prozess eine Zwischenspeichersuche
durchführen,
um zu überprüfen, ob
er zuvor ähnliche
Anfragen bedient hat. Dieser rechenintensiv aufwendige Prozess wird
in einem bevorzugten Ausführungsbeispiel
der Erfindung vermieden, das nachstehend erörtert wird.
-
Der
Einfachheit halber wird angenommen, dass das Netzwerkelement zwei
CRC-Einheiten umfasst, so dass eine Verbindungsanfrage zwei nachfolgende
CAC-Prozesse A und B, innerhalb des Netzwerkelementes durchlaufen
muss, bevor sie akzeptiert werden kann. 6 veranschaulicht
die Funktion dieser beiden Einheiten/Prozesse. Verschiedene Schritte
des Betriebes sind mit umkreisten Nummern versehen, so dass die
Nummern 1 bis 6 die Schritte veranschaulichen, die mit einer Verbindungsanfrage verbunden
sind, die zum ersten Mal ankommt, und die Nummern 10 bis 15 die
Schritte veranschaulichen, die zu einer späteren Verbindungsanfrage gehören, für die die
Ergebnisse bereits in dem Zwischenspeicher gefunden werden können. Wie
man in der Figur sehen kann, besitzt jeder Prozess einen eigenen
Zwischenspeicher, der gleich den vorstehend beschriebenen Zwischenspeichern
ist.
-
(In
der Figur wurden die verbundenen Listen gekürzt, damit zwei aufeinanderfolgende
Zwischenspeicher auf das Papier passen. Der Einfachheit halber wird
weiterhin in der Figur angenommen, dass jeder Prozess den vorstehend
beschriebenen Hauptprogrammblock MB und den Rechenblock CAB umfasst).
-
Wenn
eine Verbindungsanfrage bei Prozess A zum ersten Mal ankommt (Schritt 1),
berechnet Prozess A die Ergebnisse, und führt die Ergebnisse wie vorstehend
beschrieben seinem Zwischenspeicherblock zu (Schritt 2).
In diesem Ausführungsbeispiel
speichert jedoch Prozess A zusammen mit den Ergebnissen einen Index,
der die fraglichen verbundenen Listen angibt (d.h. die verbundenen
Listen, in denen die Ergebnisse gespeichert sind). In dem Beispiel
von 6 entspricht die erste verbundene Liste dem Indexwert
1, die zweite verbundene Liste den Indexwert 2, etc, und die letzte
verbundene Liste entspricht dem Indexwert Ii,
der gleich der Gesamtanzahl von Elementen in all den Zwischenspeicherdatenfeldern
ist. Daher speichert Prozess A ein Register (i, A1...Ak1) in der letzten Dateneinheit von einer der
verbundenen Listen, wobei i der Index ist, der die verbundene Liste
angibt, wo das Register gespeichert ist, und A1,...Ak1 die von dem Rechenblock erhaltenen Ergebnisse
sind. In diesem Fall entspricht i eins, da dies die erste von A
empfangene Verbindungsanfrage ist. Wenn Prozess A anschließend die Verbindungsanfrage
akzeptiert, gibt er die Anfrage an Prozess B weiter (d.h. an die
CAC-Einheit 1B), indem eine Nachricht RM1 an Prozess B
gesendet wird (Schritt 3). Diese Nachricht umfasst ein
Feld F1, das den Index enthält,
den Prozess A verwendet, wenn diese Anfrage verarbeitet wird, und
ein Feld F2 enthält,
das ein Markierungszeichen enthält,
das angibt, ob Prozess A die Ergebnisse in seinem Zwischenspeicher
gefunden hat. In diesem Fall enthält das Feld F2 einen Wert F
(unwahr), da Prozess A diese Ergebnisse berechnen musste. Die Nachricht
umfasst ebenso andere Daten, wie etwa die Dienstklasse und Verkehrsparameter
(d.h. die von einer CAC-Einheit benötigten Eingabeinformationen,
die in Verbindung mit 2 behandelt wurden).
-
Wenn
Prozess B (CRC-Einheit 1B) die Nachricht RM1 empfängt, aktualisiert
er seinen Zwischenspeicher auf die gleiche Weise wie Prozess A (Schritt 4).
Die berechneten Ergebnisse (B1,...Bk1) werden zusammen mit dem empfangenen Index
in der verbundenen Liste, die dem Index entspricht, gespeichert (d.h.
in diesem Fall in der ersten verbundenen List). Prozess B speichert
weiterhin einen Zeiger auf das gespeicherte Register von Ergebnissen (1,
B1,...Bk1) in Tabelle
T1. Diese Tabelle wurde zuvor gebildet, bevor das Netzwerkelement
in Betrieb genommen wurde, um in Verbindung mit Prozess B zu stehen,
und ist leer, bevor die erste Verbindungsanfrage ankommt. Die Tabelle
enthält
eine Zelle (CL) für
jede verbundene Liste, und wird durch die Indizes bezeichnet, die
Prozess B von Prozess A empfängt. Wenn
die Tabelle voll ist, enthält
jede Zelle einen Zeiger auf das Register von Ergebnissen in dem
Zwischenspeicher von Prozess B. Daher wird der Zeiger PO1 auf das
Register von Ergebnissen (1, B1,...Bk1) in der dem Indexwert 1 entsprechenden
Zelle gespeichert, da der von Prozess A empfangene Index in diesem
Fall eins war (Schritt 5). Anschließend akzeptiert oder weist
er die Verbindungsanfrage zurück (Schritt 6).
Da der Zeiger auf das Register von Ergebnissen zeigt, ist der Wert
des Zeigerwortes der gleiche wie der Wert des Zeigerwortes in der
vorletzten Dateneinheit der verbundenen Liste, wo das Register von
Ergebnissen gespeichert wurde.
-
Wenn
eine ähnliche
Anfrage nochmals ankommt (Schritt 10), findet Prozess A
die Ergebnisse in seinem Zwischenspeicher (Schritt 11).
Anschließend
sendet er eine Nachricht (RM2) an Prozess B (Schritt 12),
wobei die Nachricht in Feld F1 den Wert des in dem Zwischenspeicher
gefundenen Index und einen Wert T (wahr) im Feld F2 umfasst, wobei
Letzterer nun Prozess B angibt, dass Prozess A die Ergebnisse in
seinen Zwischenspeicher gefunden hat. Wenn Prozess B diesen Wert
in Feld F2 empfängt, weiß er, dass
er die Ergebnisse direkt mit Hilfe des Zeigers, der dem in Feld
F1 der Nachricht empfangenen Index entspricht, erhalten wird. Hierfür liest
er zuerst den dem Indexwert 1 entsprechenden Zeiger (Schritt 13),
und anschließend
die Ergebnisse aus dem Speicherbereich, der durch diesen Zeiger
angegeben wird (Schritt 14). Danach akzeptiert oder weist Prozess
B die Verbindungsanfrage zurück
(Schritt 15).
-
Wenn
die Zwischenspeicher voll sind, und Prozess A einen Eintrag in seinen
Zwischenspeicher überschreibt,
verwendet er den Index, der der fraglichen verbundenen Liste entspricht,
und gibt diesen Index zusammen mit dem Wert F in Feld F2 an Prozess
B weiter. Anschließend
weiß Prozess
B, dass er die Ergebnisse berechnen, das Register von Ergebnissen
an dem Ende der verbundenen Liste, die dem empfangenen Indexwert
entspricht, speichern, und einen Zeiger in diese Zelle von Tabelle
T1, die dem empfangenen Indexwert entspricht, muss.
-
Wie
aus dem Vorstehenden hervorgeht, sind zwei neue Felder in den Nachrichten
von A zu B (d.h. in den Eingabeinformationen) benötigt, als
im Vergleich zu dem einzelnen Prozesssystem: das den Index angebende
Feld und das Markierungszeichen, das angibt, ob Prozess B ein direktes
Zeigen verwenden kann (d.h. den dem empfangenen Indexwert entsprechenden
Zeiger lesen, und den durch diesen Zeiger adressierten Ergebnissatz
zu verwenden).
-
Wenn
mehr als zwei CAC-Prozesse innerhalb des Netzwerkelements vorhanden
sind, muss jeder Prozess eine separate Tabelle für jeden solchen Prozess bereitstellen,
von dem er Verbindungsanfragen empfängt. Zum Beispiel besitzt in
dem Ausführungsbeispiel
von 5 Prozess C eine separate Tabelle für Prozess
B. Die letzten CAC-Prozesse
in der Kette müssen
nicht notwendigerweise den empfangenen Index mit den Ergebnissen
speichern, da er den Index nicht an irgendeinen anderen CAC-Prozess
weitergeben muss.
-
Anstelle
eines Zeigers, der auf die Ergebnisse zeigt, kann die Tabelle (n)
T1 ebenso die berechneten Ergebnisse enthalten. Jedoch beträgt die Länge eines
Zeigers nur ein Wort, wohingegen die Ergebnisse viel mehr Speicherplatz
benötigen.
Was den Speicherplatz angeht ist es daher vorteilhaft, Zeiger in
der/den Tabelle (n) zu speichern.
-
Durch
Verwenden einer vorstehend beschriebenen "mehrstufigen" Implementierung muss nur der erste
von den verschiedenen CAC-Prozessen/Einheiten die Zwischenspeichersuche
durchführen.
Dies beschleunigt die Verbindungserlaubnissteuerung des Netzwerkselements,
und macht die Rechenintensität
weniger aufwendig.
-
Obwohl
die Erfindung hier in Verbindung mit den in den angefügten Figuren
gezeigten Beispielen beschrieben wurde, ist klar, dass die Erfindung
nicht auf diese Beispiele beschränkt
ist, da sie auf verschiedene Weisen innerhalb der durch die Beschränkungen
der angefügten
Patentansprüche
definierten verschiedenen Wege variiert werden kann. Im Folgenden
werden kurz einige mögliche
Variationen beschrieben.
-
Wie
vorstehend erwähnt
umfasst der Ergebnissatz, der in dem Rechenblock berechnet wurde und
in dem Zwischenspeicher gespeichert wurde, einen oder mehrere Werte,
die auf verschiedene Weisen das Kapazitätsbedürfnis der Verkehrsquelle angeben,
die die Verbindungsanfrage gesendet hat. Daher ist die Anzahl von
Werten, die sich aus der Berechnung ergeben, nicht entscheidend,
sondern vielmehr, dass die Parameter, die in den Rechenblock eingegeben
wurden, und die/der Wert (e), die aus der Berechnung resultieren,
in dem Zwischenspeicher gespeichert werden. Weder ist es entscheidend,
was diese Parameter sind. Vielmehr können die Parameter auf verschiedene
Wege bestimmt werden: alle Parameter können einfach von der Verbindungsanfrage
extrahiert werden, z.B. kann ein oder mehr der Parameter in dem
Netzwerkelement als Antwort auf das Empfangen der Anfrage berechnet
werden.
-
Wenn
ein Parameterwert in der verbundenen Liste mit dem Wert des entsprechenden
fraglichen Parameters verglichen wird, ist normalerweise eine exakte Übereinstimmung
erforderlich, um in dieser Liste fortzufahren. Jedoch ist ebenso
möglich,
dass es immer eine Übereinstimmung
gibt, wenn die Differenz zwischen den Werten kleiner als ein vorbestimmter
Grenzwert ist. Diese Interpretation eines "Übereinstimmens" kann ebenso von
dem Parametertyp abhängen.
-
Bei
einer "mehrstufigen" Implementierung
ist es ebenso möglich,
die Funktionen von aufeinanderfolgenden CAC-Prozessen zu kombinieren, so dass einige
Funktionen der CAC-Einheit über
einen Funktionsblock realisiert werden, der für mehrere CAC-Prozesse gemeinsam
bereitsteht. Wie vorstehend erläutert
besitzt jede Einheit einen eigenen Zwischenspeicher. Jedoch können andere
Teile der CAC-Einheiten
zentralisiert implementiert werden, speziell deswegen, weil die
CAC-Prozesse aufeinanderfolgend arbeiten. Daher können die
Funktionen des Hauptprogrammblocks und des Rechenblocks durch einen
einzelnen Hauptprogrammblock oder einen einzelnen Rechenblock implementiert
werden, die gemeinsam für
verschiedene oder alle CAC-Prozesse dienen. In diesen Fällen schätzt ein
zentralisierter Hauptprogrammblock ein Gesamtkapazitätserfordernis
ab, und trifft die Entscheidung für mehrere oder alle CAC-Prozesse,
und ein zentralisierter Rechenblock berechnet die Ergebnisse für mehrere oder
alle CAC-Prozesse.