|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 3834804576 ISBN: 3834804576 ISBN: 3834804576 ISBN: 3834804576 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Wir empfehlen: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() Kapitel 2: Technologien im Überblick![]()
Bei ATM handelt es sich um eine Übermittlungstechnik, das ATM-Verfahren kann daher als Basis für die verschiedensten Netzwerke dienen. Hier muß nochmals betont werden, daß ATM nicht die Bezeichnung für ein bestimmtes Netz darstellt, kein Protokoll ist und erst recht keine Definition für ein neues LAN-Zugriffsverfahren oder ein bestimmtes Übertragungsmedium. Die ATM-Übermittlungstechnik basiert auf einer vereinfachten, verbindungsbezogenen Paketvermittlung, bei der die Nutz- und Signalisierungsinformationen in Form von Paketen fester Länge, den sogenannten Zellen, übermittelt werden. Diese Zellen werden asynchron von den Quellen erzeugt und übertragen. Einer Anwendung stehen keine fest zugeordneten Bandbreiten zur Verfügung, sondern die Quellen belegen eine gewisse Anzahl von Zellen innerhalb eines Zeitabschnitts. Beim Verbindungsaufbau muß die resultierende Bandbreite reserviert werden. Die Zellenvermittlung arbeitet nach dem Speichervermittlungsverfahren. Der prinzipielle Ablauf ist mit der Paketvermittlung vergleichbar. Die Hauptunterschiede zwischen der Zellenvermittlung und der Paketvermittlung bestehen in den festgelegten Paketlängen sowie dem Verzicht auf Flußkontrolle und Fehlerbehebung. Die Flußkontrolle ist wegen den sehr hohen Übertragungsgeschwindigkeiten nicht möglich, Echtzeitanwendungen lassen zudem keine Fehlersicherung zu.
Das ATM-Prinzip stellt die Basistechnologie zukünftiger Kommunikationssysteme
dar. Basierend auf dieser Technik werden Kommunikationsnetze der
Zukunft Kommunikations-Ressourcen anbieten wie Strom aus der Steckdose
- bedarfsgerecht und anwendungsunabhängig
[17],
[19],
[20],
[21].
2.6.1.1. Grundlagen verschiedener Übermittlungsverfahren
Ein Übermittlungsverfahren befaßt sich im wesentlichen mit der Übertragung und der Vermittlung von Nachrichten bzw. Signalen. Im Zusammenhang mit den Übertragungs- und Vermittlungstechniken wurde von der ITU-T der Begriff des Transfermodus geprägt. Hier wird grundsätzlich zwischen dem synchronen Transfermodus und dem asynchronen Transfermodus unterschieden. Die Übermittlungsverfahren unterscheiden sich dabei im wesentlichen durch das verwendete Multiplexverfahren, durch die jeweilige Vermittlungs-technik sowie durch den Verbindungsdienst.
Im folgenden soll versucht werden, diese Unterschiede genauer
herauszustellen.
2.6.1.1.1. Multiplexverfahren
Neben dem Frequenz-Multiplexverfahren spielen Zeit-Multiplexverfahren
die größte Rolle. Man unterscheidet hier zwischen synchronen
und asynchronen Zeit-Multiplexverfahren.
Synchrones Zeit-Multiplexing
Bei diesem Multiplexverfahren werden Übertragungsrahmen,
die aus einer bestimmten Anzahl von Zeitschlitzen fester Größe
bestehen, definiert. Jedem zu übertragenden Datenstrom wird
nun ein ganz bestimmter Zeitschlitz innerhalb dieses Übertragungsrahmens
zugeordnet. Ein Kanal läßt sich hier eindeutig anhand
der Position des Zeitschlitzes innerhalb des Übertragungsrahmens
identifizieren.
Asynchrones Zeit-Multiplexing
Bei diesem Verfahren werden die zu übertragenden Datenströme
in Informationseinheiten umgewandelt und asynchron übertragen.
Jedes Datenpaket wird hier mit einer eindeutigen Kanalkennung
versehen, so daß eine eindeutige Zuordnung der Informationseinheiten
zu den verschiedenen Sendekanälen erfolgen kann. Werden zur
Übertragung Datenpakete fester Länge verwendet, so spricht
man von Paket-Vermittlung, bei Datenpaketen variabler Länge
spricht man hingegen von Zellen-Vermittlung.
2.6.1.1.2. Vermittlungstechniken
Leitungsvermittlung Bei der Leitungsvermittlung wird zwischen Sender und Empfänger eine physikalische Verbindung aufgebaut. Vor der eigentlichen Datenübertragung muß der Übertragungspfad zwischen den Kommunikationsteilnehmern etabliert sein. Für viele Anwendungen sind hier insbesondere die langen Verbindungsaufbauzeiten störend.
Ist eine Verbindung jedoch erst einmal geschaltet, so kommunizieren
die Endteilnehmer exklusiv über den zur Verfügung gestellten
Kanal, d.h. einer Verbindung steht die maximale Bitrate zur Verfügung.
Ist die gewünschte Datenrate allerdings niedriger als diese Bitrate, so geht die nicht benötigte Bandbreite verloren, da sie von keinem anderen Benutzer verwendet werden kann. Dies hat zur Folge, daß die Netzressourcen u.U. nicht besonders gut ausgelastet werden, dies ist insbesonere für burstartigen Datenverkehr der Fall, bei dem ein Kanal für die Spitzenlast dimensioniert werden muß.
Durch die feste Zuteilung der Verbindungen zu den jeweiligen Übertragungskanälen
ist der Vermittlungsvorgang relativ einfach.
Paketvermittlung
Bei der paketorientierten Vermittlung werden die zu übertragenden
Datenströme in Datenpakete variabler Länge gepackt.
Zusätzlich werden im Paket-Header weitere Informationen,
insbesondere Routinginformationen, untergebracht. Anschließend
werden die Pakete über das Netz gesendet, ohne vorab eine
physikalische Verbindung zwischen den Kommunikationsteilnehmern
herzustellen. Bei der Paketvermittlung besteht also im Unterschied
zur Leitungsvermittlung keine physikalische Verbindung, sondern
lediglich eine logische Verbindung. Während bei der Leitungsvermittlung
einer Verbindung eine feste Bandbreite zugeordnet wird, wird bei
der Paketvermittlung Bandbreite bedarfsorientiert angefordert
bzw. genutzt, d.h. hier können ungenutzte Übertragungskapazitäten
von anderen Anwendern mitverwendet werden. Da den Verbindungen
keine dezidierte Bandbreite zugeordnet ist, kann es im Falle der
Paketvermittlung zu Paketverlusten durch Überlastung kommen,
falls momentan keine ausreichende Bandbreite vorhanden ist. Da
Pakete in den Vermittlungsknoten zwischengespeichert werden können,
können solche Verluste bedingt aufgefangen werden.
2.6.1.1.3. Verbindungsdienste
Verbindungsorientierte Kommunikation
Bei verbindungsorientierten Übertragungsverfahren lassen
sich Mechanismen zur Fehlerkontrolle und zur Empfangs- bzw. Sendebestätigung
anwenden. Diese Mechanismen setzen voraus, daß eine (virtuelle)
Verbindung zwischen den Endteilnehmern besteht bevor Daten übertragen
werden. Treten während der Datenübertragung Probleme
auf, so können diese aufgrund verschiedener Konzepte, wie
z.B. Sequenznummern, erkannt und der Gegenstelle mitgeteilt werden.
Verbindungsorientierte Kommunikation ermöglicht die Realisierung
von fehlertoleranten Diensten.
Verbindungslose Kommunikation Bei verbindungsloser Kommunikation werden einzelne Pakete übertragen, ohne daß eine Empfangsbestätigung erfolgt, man spricht hier auch von Datagrammdienst. Da keine Verbindung zwischen den Kommunikationspartnern besteht, muß jedes Datenpaket die komplette Zieladresse beinhalten.
Jedes Datenpaket wird hier unabhängig von den anderen Datenpaketen
der selben "Verbindung" übertragen. Bei verbindungsloser
Kommunikation wird insbesondere auch keine Reihenfolgetreue der
Pakete vorausgesetzt.
2.6.1.2. Vergleich der Transfertechniken
Anschließend sollen die wesentlichen Merkmale der einzelnen
Übermittlungsverfahren in einem vergleichenden Überblick
dargestellt werden.
Tabelle 2.6.1.2.1. Vergleich der Transfertechniken [21]
Bild 2.6.1.2.1 Vergleich der verschiedenen Übemittlungsverfahren
[19]
2.6.2. ATM-Prinzipien
Das ATM-Übermittlungsverfahren basiert auf einem vereinfachten,
verbindungsorientierten Paketvermittlungsverfahren und schließt
die Übertragung und Vermittlung von Nutzinformationen ein.
Die Unterschiede zwischen dem ATM-Übermittlungsprinzip und
einem traditionellen Paketvermittlungsverfahren lassen sich wie
folgt zusammenfassen:
Bei der heute eingesetzten Glasfaserübertragung wird eine
derart große Übertragungsgüte und -geschwindigkeit
erreicht, daß auf eine abschnittsweise Fehlersicherung verzichtet
werden kann. Dienste, die eine vollständig fehlerfreie Übermittlung
erfodern, können eine Fehlersicherung zwischen den Endnutzern
vereinbaren.
Die hohen Übertragungs- und Paketverarbeitungsgeschwindigkeiten
machen eine solche Flußsteuerung unmöglich.
Während des Verbindungsaufbaues wird eine virtuelle Verbindung
zwischen den Endteilnehmern vereinbart. Zu diesem Zeitpunkt werden
auch die benötigten Betriebsmittel für eine Verbindung
reserviert. Alle Zellen werden über denselben Verbindungsweg
transportiert. Bei Beendigung der Verbindung werden die belegten
Resourcen wieder freigegeben. Nutzdaten werden in Form von Paketen fester Länge - den sogenannten Zellen - übertragen. Jede ATM-Zelle besteht aus einem Zellenkopf, der 5 Oktetts umfaßt, und einem Informationsfeld von 48 Oktetts. Im Informationsfeld werden die eigentlichen Nutz- oder Signalisierungsinformationen übertragen, während das Kopffeld zur Zellenkennzeichnung dient. Diese Kennzeichnung dient dazu, Zellen verschiedener, gleichzeitiger Verbindungen an einem ATM-Anschluß auseinanderzuhalten. ATM-Zellen einer Verbindung tragen also immer die gleiche Kennzeichnung.
ATM arbeitet mit "virtuellen Verbindungen", d.h. es
werden keine festen Kanäle oder Pfade zwischen den Endteilnehmern
geschaltet, sondern es werden die Zellen einer bestimmten Verbindung
dann, wenn sie erzeugt werden, auf einem vorher festgelegten Weg
durch das Netz transportiert. Dazu unterscheidet man im Zellenkopf
zwischen virtueller Kanal- und virtueller Pfad-Kennzeichnung.
Unter einem virtuellen Pfad verstehen wir hier die Zusammenfassung
mehrerer virtueller Kanäle. Diese Unterscheidung wird von
einigen Netzelementen eingesetzt, um eine schnelle Lenkung der
Zellen durch das Netz zu gewährleisten.
Abb. 2.6.2.1. Zellenmultiplex an einem ATM-Anschluß
[19] Nach dem Verbindungsaufbau werden die Zellen gemäß ihren Kennzeichnungen durch das Netz transportiert. Da die einzelnen Verbindungen unterschiedliche Kennzeichnungen verwenden, können mehrere Kommunikationsquellen und -senken einen ATM-Anschluß gemeinsam benutzen. An einem ATM-Anschluß ankommende Zellen werden entsprechend ihrer Kennzeichnung an das entsprechende Ziel weitergeleitet, d.h. es wird im Multiplexverfahren übertragen. Dabei wird allerdings die Gesamtdatenrate nicht in mehrere Kanäle kleiner Übertragungsraten aufgeteilt, wie das bei traditionellen Übermittlungsverfahren oft der Fall ist. Auch wird einer bestimmten Verbindung keine feste Anzahl von Zellen je Zeiteinheit zugeordnet. Die Zuordnung einer Nutzdatenrate erfolgt dynamisch, d.h. die Anzahl der produzierten Zellen entspricht dem tatsächlichen, momentanen Bedarf einer Verbindung. Um einen kontinuierlichen Zellenstrom zu gewährleisten, werden nicht benötigte ATM-Kapazitäten durch Leerzellen aufgefüllt.
Man sieht, daß sich die Endnutzer hier kein gemeinsames
Übertragungsmedium teilen, sondern lediglich ihre ATM-Zellen
bei der ATM-Schalteinheit abliefern, ohne sich weiter um Zugriffsalgorithmen
kümmern zu müssen. Die ATM-Schalteinheit verteilt die
gesamte zur Verfügung stehende Bandbreite nach Bedarf. Diese
flexible Datenratenzuordnung eigenet sich hervorragend für
nicht kontinuierliche Datendienste, wie z.B. interaktive Datenkommunikation.
Zusätzlich lassen sich jedoch auch Dienste mit kontinuierlichen
Datenraten unterstützen. Diese Dienste belegen in gleichen
zeitlichen Abständen die Zellen.
Abb. 2.6.2.2. Übertragung kontinuierlicher
Nutzdaten [19]
Eine ATM-Zelle stellt die kleinste Elementareinheit in einem ATM-Netz dar. Die Festlegung der Zellengröße auf 53 Oktetts ist das Ergebnis eines Kompromisses zwischen den Anforderungen von analoger Sprach- und digitaler Datenübertragung.
Sämtliche anfallenden Nutz- und Signalisierungsinformationen
werden auf ATM-Zellen verteilt und übertragen. Dabei können
auch Zellen entstehen, deren Informationsfeld nicht vollständig
ausgenutzt wird, hier werden Füllinformationen eingefügt,
um eine einheitliche Zellenlänge zu garantieren.
Abb. 2.6.2.3. Aufteilung der Nutzdaten in Zellen
[19]
In den Endeinrichtungen befinden sich sogenannte Wandler, die
eine Anpassung der Nutzdaten an die Zellenübermittlung vornehmen.
Das Übermittlungsnetz braucht sich daher nur noch auf den
Transport von ATM-Zellen zu beschränken und kann aus diesem
Grund sehr einfach gestaltet werden. Alle Netzelemente sind unabhängig
von der Übertragungsbandbreite und den speziellen Anforderungen
verschiedenster Dienste.
Abb. 2.6.2.4. Anpassung der Nutznachricht in
Zellen [19]
Damit die Nutzdaten beim Empfänger rekonstruiert werden können,
werden weitere Informationen benötigt. Diese Informationen
werden ebenfalls über einen virtuellen Kanal in Form von
ATM-Zellen ausgetauscht. Der durch den Austausch von Nutzinformationen
entstehende Overhead ist aufgrund der hohen Übertragungsraten,
der geringen Zellen-Verzögerungszeiten im Netz sowie der
Anpassungsleistungen der Wandler für die Endteilnehmer nicht
bemerkbar.
Abb. 2.6.2.5. Übermittlung von ATM-Zellen
[19 ]
2.6.3. Aufbau von ATM-Zellen
Bild 2.6.3.1. Aufbau einer ATM-Zelle [17],
[19]
Das Zellenkopffeld dient der Steuerung der Zellen durch das Netz
und unterstützt u.a. die folgenden Funktionen:
Dieses 16-bit-lange Feld dient der Unterscheidung verschiedener
gleichzeitiger Verbindungen. Zellen, die zur gleichen virtuellen
Verbindung gehören, tragen die gleiche Kanalnummer. Diese
virtuelle Kanalnummer ist in beiden Richtungen gleich und wird
jeweils für einen Übertragungsabschnitt vergeben.
Sie dient zur Unterscheidung mehrerer Wege der unterschiedlichen
Richtungen. Kanal-Bündel stellen hier eine Zusammenfassung
von virtuellen Kanälen dar. Kanäle des gleichen Kanal-Bündels
werden durch das Übermittlungsnetz erkannt und können
so schnell in die entsprechenden Wege geschaltet werden.
Diese uterscheidet zwischen Nutz- oder Steuerinformationen. Steuerinformationen
müssen von den Netzelementen interpretiert werden, Nutzinformationen
lediglich weitergeleitet werden.
Die Prüfsumme dient zur Fehlererkennung im Kopffeld und Behebung
eines Fehlers.
Das Informationsfeld überträgt Nutz- bzw. Signalisierungsinformationen.
Kontinuierliche Bitströme werden auf mehrere ATM-Informationsfelder
verteilt und mittels eines kontinuierlichen Zellenstromes übertragen.
2.6.4. Das ATM-Referenzmodell
Abb. 2.6.4. Das ATM-Referenzmodell [17],
[19],
[20]
Wie aus Abb. 2.6.4. ersichtlich, haben wir eine dreidimensionale
Darstellung des ATM-Referenzmodells. Man unterscheidet neben den
Schichten zwischen drei sogenannten Kommunikations-Ebenen:
2.6.4.1. Die Nutzerebene (User Plane)
Der Informationsfluß innerhalb der Benutzerebene erfolgt
also über alle Schichten hinweg. Zusätzlich werden Funktionen
wie die Korrektur von Übertragungsfehlern oder die Überwachung
des Datenflusses erfüllt.
2.6.4.2. Die Steuerebene
2.6.4.3. Die Managementebene
Management sowie der Ebene für das Ebenen-Management. Das Schichten-Management dient der Überwachung und Koordination der einzelnen Schichtaufgaben. Typische Aufgaben des Schichten-Managements sind Meta-Signalisierung und Bearbeitung bzw. Steuerung des OAM (Operation And Maintenance)-Informationsflusses. Unter Meta-Signalisierung verstehen wir einen eigenen Informationskanal zur Steuerung der verschiedenen Signalisierungsabläufe. OAM-Informationen dienen zur Überwachung der Netzwerkleistungsfähigkeit und zum Fehlermanagement auf ATM-Ebene.
Das Ebenen-Management übernimmt überwachende und koordinierende
Aufgaben im Netz. Dabei werden auch die Funktionen und Abläufe
der Managementebene mit den beiden anderen Ebenen koordiniert.
Im folgenden werden die einzelen Schichten des ATM-Referenzmodells
näher beschrieben.
2.6.4.4. Die ATM-Bitübertragungsschicht
Bei unserem ATM-Referenzmodell besteht die Bitübertragungsschicht
aus zwei Teilschichten: der PMD-Schicht (PMD = Physical Medium
Dependent) und der TC-Teilschicht (TC = Transmission Convergence).
2.6.4.4.1. Die TC-Teilschicht
Innerhalb des Rahmens werden zusätzliche Synchronisations-, Takt- und OAM-Informationen übertragen.
Zwei der wichtigsten Funktionen der Übertragungsanpassung
sind die Zellenkodierung sowie die HEC-Generierung: Zellenkodierung
Die Zellenkodierung stellt sicher, daß der Zelleninhalt
eindeutig vom Zellenheader unterschieden werden kann. HEC-Generierung
Die TC-Teilschicht ist für die Erstellung einer Headerprüfsumme
verantwortlich. Diese Prüfsumme wird HEC (Header Error Control)
genannt und als fünftes Zellenbyte übertragen.
2.6.4.4.2. PMD-Teilschicht
Bei der Verwendung von Kupferkabeln liegen die maximal erreichbaren Übertragungs-bandbreiten für kurze Entfernungen bei etwa 300 bis 400 MHz, bei Glasfasern werden Teraherz-Größenordnungen erreicht. Die PMD-Teilschicht enthält alle Funktionen, die notwendig sind, um die Bitsequenzen auf die Physik des übertragungstechnischen Mediums zu adaptieren.
Sie ist für die Übertragung von Bits auf dem Medium
verantwortlich und umfaßt alle damit verbundenen Funktionen.
2.6.4.5. Die ATM-Schicht
Sie ist auch für die virtuellen Kanäle und Pfade verantwortlich,
die für eine Kommunikation etabliert werden. Zellen verschiedener
virtueller Kanäle und Pfade werden in einem einzigen Zellenstrom
gemultiplext. Auf der Empfangsseite übernimmt die ATM-Schicht
das demultiplexen, d.h. der Zellenstrom wird wieder aufgeteilt
und die einzelnen Zellen dem entsprechenden virtuellen Pfad oder
Kanal zugeordnet. Dabei wird die Reihenfolgetreue der Zellen garantiert.
Weiterhin ist die ATM-Schicht für das korrekte Vermitteln
von Zellen basierend auf ihren VCI- bzw. VPI-Kennungen zuständig.
Die zentrale Aufgabe der ATM-Schicht in den ATM-Vermittlungsknoten
besteht in der Vermittlung der ATM-Zellen. In den Endsystemen
hat die ATM-Schicht zusätzlich die Aufgabe, Header beim Senden
zu generieren bzw. beim Empfangen zu extrahieren und zu analysieren.
Die Funktionen der ATM-Schicht finden sich im Zellenkopf wieder:
Die ATM-Schicht überwacht die max. Übertragungsrate, die von höheren Schichten für eine bestimmte Verbindung gefordert wurde.
2.6.4.6. Die Adaptionsschicht (ATM Adaption Layer
AAL)
Bild 2.6.4.6.1. Aufbau der ATM-Adaptionsschicht
Intern kann sie weiter untergliedert sein in zwei Teilschichten: die Konvergenzteilschicht (CS Convergence Sublayer) und der Segmentierungs- und Reassemblierungsteilschicht (SAR Segmentation and Reassembly Sublayer). Die SAR-Schicht folgt unmittelbar über der ATM-Schicht. Ihre Hauptaufgabe besteht im Segmentieren zu sendender Pakete und im Reassemblieren empfangener ATM-Zellen.
Die Konvergenzschicht befindet sich oberhalb der SAR-Schicht.
Ihr Aufbau ist stark von der Art des zu erbringenden Dienstes
abhängig. Im einfachsten Fall kann sie leer sein, ansonsten
sind ihre Aufgaben und Funktionen mit denen klassischer Transportprotokolle
vergleichbar. Die Konvergenzschicht läßt sich wiederum
in zwei Teilschichten einteilen, nämlich in:
Um die Anzahl der verschiedenen AAL-Implementierungen zu begrenzen,
wurden vier Diensttypen zur Nutzinformationsübermittlung
festgelegt. Der Definition der verschiedenen Diensttypen liegen
dabei folgende Parameter zu Grunde:
Die Diensttypen lauten im einzelnen: AAL-Typ 1 Dieser Diensttyp ist zuständig für die Anpassung von verbindungsorientierten Daten konstanter Bitrate, bei deren Übertragung es eine feste Zeitbeziehung zwischen Sender und Empfänger gibt. Beispiele für die Anwendung von AAL-Typ 1 sind: Sprachübertragung
Videoübertragung mit einer konstanten Datenrate von N x 64
kbit/s AAL-Typ 2
Dieser Diensttyp dient der Übertragung von Nutzdaten mit
variabler Bitrate. Zusätzlich können auch Synchronisationsinformationen
mit diesem Diensttyp ausgetauscht werden. AAL-Typ 3 / 4
Dieser Diensttyp ist zuständig für die Anpassung von
verbindungsorientierten oder verbindungslosen Daten variabler
Bitrate, bei deren Übertragung keine feste Zeitbeziehung
zwischen Sender und Empfänger besteht. Dieser Diensttyp beinhaltet
die komplexeste Festlegung für die Nutzdatenübertragung.
AAL-Typ 5
Der Diensttyp 5 entspricht einer vereinfachten Implementierung
des AAL-Typ 3 / 4. Er ist ebenso wie dieser für die Übertragung
verbindungsorientierter Daten variabler Bitrate, ohne feste Zeitbeziehung
zwischen Sender und Empfänger, zuständig. Er wird vorwiegend
für die Übertragung von B-ISDN-Signalisierungskanälen
und für Frame-Relay verwendet.
Tabelle 2.6.4.6.1. Dienstanforderungen im Überblick
[19], [21]
Tabelle 2.6.5.1. Das ATM-Referenzmodell im Überblick [17], [19],
Abb. 2.6.5.2. ATM-Prinzipien im Überblick [19],
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Back to the topic site: StudyPaper.com/Startseite/Wissenschaft/Naturwissenschaften/Technologie External Links to this site are permitted without prior consent. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home | deutsch | Set bookmark | Send a friend a link | Copyright © | Impressum | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||