Hochschule Bremen – RST Labor WS 1998/99 Router und Switches Autoren: Christa Eekhoff & Christine Reckziegel Datum: 06.01.99 Router und Switches OSI-Referenz Modell Zur Erklärung der Funktionalität von Routern ist das Open System Interconnection (OSI) Referenz Modell, das von der International Organization or Standardization (ISO) entwickelt wurde, nützlich. Das OSI Referenz Modell dient der Entwicklung von Software für Kommunikation zwischen Computersystemen. Es ist in 7 Schichten aufgebaut, um die Komplexität von Softwaresystemen zu reduzieren. Jede Schicht ist verantwortlich für einen bestimmten Teil der Kommunikation. 7 Anwendungsschicht (Application Layer) 6 Darstellungsschicht (Presentation Layer) 5 Sitzungsschicht (Session Layer) 4 Transportschicht (Transport Layer) 3 Vermittlungsschicht (Network Layer) 2 Verbindungsschicht (Data Link Layer) 1 Bitübertragungsschicht (Physical Layer) Das OSI Referenz Modell wurde allerdings zu spät entwickelt, da es bereits andere herstellerspezifische Lösungen gab. Wie z.B. das TCP/IP Referenz Modell, das jedoch recht ähnlich ist. Es wurde im ARPANET (Forschungsnetz des US-Verteidigungsministeriums 1969) und seinem Nachfolger dem Internet angewendet. Im Folgenden werden die beiden Modelle gegenübergestellt. 7 6 5 4 3 2 1 OSI Verarbeitung Darstellung Sitzung Transport Vermittlung Verbindung Bitübertragung TCP/IP Verarbeitung Transport Internet Host-an-Netz Bild 1: OSI vs. TCP/IP aus (Tannenbaum,1997) Gemeinsam ist beiden Modellen das Konzept der Stapels unabhängiger Protokolle. Auch die Funktionalität der Schichten ist ähnlich. Die unteren Schichten bis zur Transportschicht dienen der Bereitstellung von Ende-zu-Ende Transportdiensten, während die Schichten oberhalb der Transportschicht anwendungsorientiert sind. Die Host-an-Netz Schicht des TCP/IP Modells ist nicht genauer definiert und weicht von Host zu Host und Netz zu Netz ab. Die Internet-Schicht sorgt im verbindungslosen, paketvermittelnden Netz dafür, daß Hosts von jedem Netz Pakete senden können und diese zum möglicherweise in einem anderen Netz befindlichen Ziel befördert werden. Die Pakete können dabei sogar in einer anderen Reihenfolge ankommen, als sie abgeschickt wurden und es gibt keine garantierte Übertragung der Pakete. Die Transportschicht ermöglicht die Kommunikation zweier Hosts über das Netz oder mehrere Netze. Hierfür sind zwei Ende-zu-Ende Protokolle definiert. Das TCP (Transmission Control Protocol) ist ein zuverlässiges verbindungsorientiertes Protokoll und sorgt u.a. für die Flußsteuerung. Außerdem gibt es noch des UDP (User Data Protokoll), das ein unzuverlässiges verbindungsloses Protokoll ist. Die entsprechenden Anwendungen müssen Abfolge und 1 Router und Switches Flußkontrolle selber bereitstellen, dafür ist die Datenübertragung dank eines wesentlich kleineren Headers sehr viel schneller. Die Verarbeitungsschicht umfaßt alle höherschichtigen Protokolle wie Telnet, ftp, SMTP und HTTP. Router, Bridges, Gateways, Switches Um die Funktionsweise von Routern zu erklären, soll hier ein zunächst eine Abgrenzung der Begriffe Bridge, Router, Gateway und Switch folgen. Das Internet besteht aus vielen unterschiedlichen Teilnetzen, die verbunden werden müssen. Auch kann es notwendig sein, mehrere lokale Netze (LANs) innerhalb eines Unternehmens zu verbinden. Hierfür stehen Bridges und Router zur Verfügung, die unterschiedliche Funktionalität besitzen. Bridges basieren auf der zweiten Schicht des OSI Referenz Modells. Open System A Open System B Verarbeitung Darstellung Sitzung Transport Vermittlung Verbindung Bitübertragung Verarbeitung Darstellung Sitzung Transport Vermittlung Verbindung Bitübertragung Bridge Verbindung Bitübertragung Bitübertragung Bild 2: Übertragung mit Bridges aus (Peng, 1998, S.2) übersetzt Das bedeutet, sie überprüfen die Header der Vermittlungsschicht nicht und vermitteln daher IP, IPX oder OSI-Pakete gleichermaßen, dies nennt man auch Protokolltransparenz nach oben. Daher können sie auch keine IP-Adressen lesen, sondern vermitteln die Pakete nur aufgrund der Adressierungsart des Protokolls der Verbindungsschicht, z.B. MAC (Medium Access Control), das die Hardwareadresse benutzt. Bridges verbinden gleiche oder ähnliche LAN Protokolle, z.B. Ethernet mit Ethernet/Token Ring Die Notwendigkeit hierfür kann unterschiedliche Gründe haben. Historische Gründe durch gewachsene Strukturen. In vielen Unternehmen entstanden zunächst abteilungseigene LANs, die früher oder später verbunden werden müssen. Geographische Gründe. LANs können sich in verschiedenen weit voneinander entfernten Gebäuden befinden. Dann ist es günstiger einzelne LANs zu benutzen, anstatt ein riesiges über das ganze Gelände verteiltes. Außerdem bestehen Beschränkungen in der Länge von LAN Segmenten und der Anzahl der angeschlossenen Knoten. Logische Aufteilung in einzelne LANs, um die Belastung zu verteilen. Was noch bei der Funktionsweise von Bridges näher erläutert wird. Steigerung der Zuverlässigkeit. Bridges können defekte Knoten davon abhalten das gesamte Netz lahmzulegen. Auch hierzu folgt eine kurze Erläuterung. Bridges überwinden die Restriktionen des LANs für die maximale Segmentlänge und die Anzahl der Knoten, da jedes einzelne Subnetz die volle Längenausdehnung und volle Knotenzahl erhalten kann. Dies kann auch durch einfache Repeater übernommen werden, allerdings arbeiten sie nur auf Schicht 1 des OSI Referenz Modells. Sie dienen nur der Signalverstärkung. Bridges hingegen dienen der Lastentrennung und erreichen eine verbesserte Netzkapazität, da sie lokalen vom 2 Router und Switches netzübergreifenden Verkehr trennen. Diese Entscheidung wird durch das Nachschlagen in einer großen Hash-Tabelle innerhalb der Bridge gefällt, selbstlernende Bridges füllen diese Tabelle während des Betriebes, daher ist keine Grundkonfiguration nötig. Fehlerhafte Pakete der Sicherungsschicht werden erkannt und nicht weitergeleitet, somit wird die Ausbreitung von Fehlern verhindert. Allerdings werden alle Broadcast-Meldungen übertragen, was zu einer relativ hohen Grundlast führt. Router basieren auf Schicht 3 des OSI Referenz Modells und verbinden unterschiedliche Subnetze miteinander. Open System A Open System B Verarbeitung Darstellung Sitzung Transport Vermittlung Verbindung Bitübertragung Verarbeitung Darstellung Sitzung Transport Vermittlung Verbindung Bitübertragung Router Vermittlung Verbindung Verbindung Bitübertragung Bitübertragung Bild 3: Übertragung mit Routern aus (Peng, 1998, S.2) übersetzt Die Vermittlungsschicht hat die Aufgabe eine Wegwahl (Routing) für den Datenstrom vorzunehmen. Dies ist erst möglich, wenn mehrere Subnetze zu einem Gesamtnetz verbunden werden, hierfür benötigt man Router. Da Subnetze mit unterschiedlichen Vermittlungsprotokollen, z.B. TCP/IP, DECnet, AppleTalk usw., verbunden werden, dienen Router zusätzlich als Protokollkonverter. „Den Nachrichtentransport kann man sich generell folgendermaßen vorstellen: Ein Endgerät erzeugt eine Nachricht und versieht sie auf Schicht 3 mit ihrer eigenen Netzwerkadresse und der Netzwerkadresse des Ziels. Auf Schicht 2, im LAN-Bereich auf MAC-Schicht, erhält die Nachricht die eigene MAC-Adresse des LAN-Adapters sowie die MAC-Adresse des Routers. Der Router empfängt die Nachricht, die ja auf Ebene 2 an ihn gerichtet ist, und interpretiert auf Schicht 3 die Netzwerkadressen. Durch die hierarchische Adressierung erkennt der Router das Zielnetz und leitet die Nachricht an den nächsten Router auf dem Weg zu diesem Zielnetz weiter. Hierzu versieht er die Nachricht auf Schicht 2 mit seiner MAC-Adresse und der MAC-Adresse des nächsten Routers auf dem Weg zum Zielnetz. Auf diese Weise wird die Nachricht sukzessive bis zum Router an dem Zielnetz weitergeleitet und gelangt von dort zur Zielstation.“(Tannenberg, 1997, S.557) Für die Wegwahl gibt es verschiedene Algorithmen, die hierfür nötigen Informationen tauschen Router im Rahmen eigener Managementprotokolle aus. Bei redundanten Netzstrukturen bieten sich Möglichkeiten der dynamischen Wegwahl und alternativen Routen. Das bedeutet, daß Router die Verfügbarkeit von Transportwegen erhöhen. Außerdem werden fehlerhafte Pakete der Verbindungs- und Vermittlungsschicht erkannt und nicht weiterbefördert. Sie unterstützen im Gegensatz zu Brücken das Segmentieren, Numerieren und Wiederzusammensetzen von Paketen, dies ist notwendig, da die zulässigen Paketgrößen verschiedener Protokolle meist differieren. Der Nachteil von Routern ist, daß sie protokollabhängig sind und eine Mindestkonfiguration benötigen. (Detken, 1998, S.88). „Schließlich können die umfangreichen Aufgaben von Routern dazu führen, daß sie ziemlich langsam arbeiten, zu langsam für Anwendungen mit synchronen Anforderungen wie Multimedia.“ (Kauffels, 1996, S.557) 3 Router und Switches Koppelelemente, die sowohl Bridging als auch Routing erlauben, heißen Bridge-Router, Brouter oder Hybridrouter. Diese sind in der Lage Pakete zu bridgen, wenn sie nicht geroutet werden können, z.B. wenn das Protokoll nicht bekannt ist. Gateways sind notwendig bei der Verbindung unterschiedlichen Netzwerkarchitekturen, diese decken alle sieben Schichten des OSI-Referenzmodells ab. Dies beinhaltet Adressumsetzung, Formatumsetzung, Codekonvertierung, Paketzwischenspeicherung, Paketbestätigung, Flußkontrolle sowie Geschwindigkeitsanpassung (Detken, 1998, S.89). Open System A Verarbeitung Darstellung Sitzung Transport Vermittlung Verbindung Bitübertragung Gateway Verarbeitung Darstellung Darstellung Sitzung Sitzung Transport Transport Vermittlung Vermittlung Verbindung Verbindung Bitübertragung Bitübertragung Open System B Verarbeitung Darstellung Sitzung Transport Vermittlung Verbindung Bitübertragung Bild 4: Übertragung mit Gateways Switches kamen auf, “als es eine Ablösung der klassischen Bridges anzupreisen galt. Die grundlegene Funktionalität eines Switches entspricht zwar exakt der einer Bridge, aber clevere Marketingfachleute fanden das neue Schlagwort wohl verkaufsfördernder als eine langweilige Bezeichnung wie High-Performance-Bridge”(N&C, 9/98, S.83). Sie wurden entwickelt um der Forderung nach schnellen Netzwerkkomponenten nachkommen. Sie basieren wie Bridges normalerweise auf Schicht 2 des OSI-Referenzmodells; es gibt aber inzwischen auch sogenannte Layer-3 Switches und Layer-4 Switches, hierzu später mehr. Bridges trennen zwei Netze, rein theoretisch verdoppelt sich dadurch die mögliche Leistung, aber nur wenn nicht z.B. alle Clients auf einer Seite und alle Server auf der anderen Seite der Bridge sind, denn kann die Leistung sogar unter die eines einzelnen Netzes sinken, da hier die Bridge der limitierende Faktor ist. Die Entwicklung hat schnell zu Backbones geführt, das sind Netze mit im allgemeinen höherer Leistung, die die autonomen Teile miteinander verbindet. Da aber Backbones in vielen Fällen zu teuer und überdimensioniert sind, wird eine.Funktion, die zwischen Bridge und Backbone liegt gesucht, dies ist der LAN-Switch. LAN-Switching ist eine Form des Bridgens auf OSI Schicht 2 und bringt die volle Bandbreite an jeden Port. Wie alle Verfahren auf der Schicht 2 ist auch das LAN-Switching nicht in der Lage, Broadcast- und Sicherheitswälle bzw. Schutzzonen aufzubauen. (Kauffels, 1996, S.139) Beispiel: Fast Packet Switching (FPS) Schnelle Paketvermittlung FPS soll mittelfristig das wirklich betagte X.25 ablösen. FPS ist ein grundlegendes Verfahrensprinzip für die Hochgeschwindigkeits-Hochleistungskommunikation. Der haupsächliche Unterschied zur traditionellen Paketvermittliung besteht in der Tiefe der Implemntierung einer Verbindung im Hinblick auf das OSI-Referenzmodell. Im traditionellen Netz muß eine Verbindung in jedem zwischenliegendem System jede Schicht bis zur dritten des OSI-Referenzmodells abarbeiten. “Dies ist umständlich und entspricht dem Entwicklungsstand der frühen sechziger Jahre” (Kauffels, 1996, S.142). Mögliche Datenraten hängen also zumeist an dieser umständlichen Abarbeitung als an den Übertragungsmedien. Bei FPS-Netzen ist die Verbindungsschicht (Data Link Layer) aufgeteilt in Fast Packet Relay FPR Sublayer, die Fast Packet Adaption FPA Sublayer und die Data Link Control DLC Sublayer (s. Abb. u.) 4 Router und Switches Bild 5:Virtuelle Verbindungen mit FPS (Kauffels, 1996, S.143) Noch ein Beispiel: Dedicated Ethernet Die FPR ist in der Lage, eine Ende-zu-Ende Verbindung in den Zwischensystemen ohne großartige Routing-Berechnung in der Vermittlungsschicht zu unterstützen. Die in traditionellen Netzen übliche Fluß- und Fehlerkontrolle werden ebenso weggelassen, da die heutigen Übertragungssystem immer verläßlicher werden. FPS kann unterteilt werden in die beiden Betriebsverfahren Frame Relay und Cell Relay. (Kauffels, 1996, S.141ff) Dedicated Ethernet ist eine Ethernet-Switching-Technologie. Technisch gesehen ist ein Dedicated Ethernet Switch Port ein Bridge Port: Pakete werden nach ihrer Zieladresse an den entsprechenden Empfänger Port geschickt. Wie bei eine Bridge gibt es alternierende Lern- und Arbeitsphasen. In der Lernphase nimmt der Switch Adressen auf und speichert sie in einer Tabelle. Bei einer Lösung, bei der jedes Endgerät an einen eigenen Port angeschlossen ist, wird kein Router Port benötigt. Dies wird angestrebt um vom Shared Medium wegzukommen, um jeder einzelnen Station dauerhaft volle Bandbreite zur Verfügung zu stellen. Wenn nur eine Station pro Port angeschlossen ist, wird der zur Adressverwaltung benötigte Speicher deutlich reduziert. Der Zwischenspeicherung für die Pakete während der Adressuche kann ebenfalls geringer ausgelegt werden und die Rechenleistung beim Suchen sinkt. Um den Speicherplatz weiter zu Reduzieren und die Leistung zu erhöhen, insbesondere um die Latenzzeit zu verkürzen, wird das sogenannte Cut Through Switching benutzt. Normalerweise werden Switches mit einer Store- and Forward-Architektur aufgebaut, dabei wird ein Paket vor der Weiterleitung vollständig zwischengespeichert und auf Fehler untesucht. Bei Cut Through wird das Paket weitergeleitet sobald die Zieladresse ausgewertet wurde (innerhalb der ersten 20 bis 30 Bytes), hierbei ist natürlich keine Fehleruntersuchung mehr möglich. Allerdings ist die Zwischenspeicherung in vielen Fällen trotzdem notwendig, z.B. wenn verschiedene Netztypen verbunden werden und eine Konversion vorgenommen werden muß oder wenn der Ziel Port nicht frei ist. Zusätliches Problem ist der geringe Speicherplatz für Adresstafeln. Wenn die Adresstafel zu klein ist, kommen häufig Pakete mit unbekannter Zieladresse, die der Switch nicht richtig weiterleiten kann, er kann sie aber auch nicht lange speichern, da sein Store5 Router und Switches and Forward-Speicher sonst überläuft. Entweder der Switch wartet nun und wirft das Paket später weg oder er wirft das Paket gleich weg. Eine andere Methode ist Hot Potato, wobei der Switch das Paket wie ein heiße Kartoffel einfach auf alle Ports schickt, dem sogenannten Fluten (Flooding). Dies verschwendet natürlich Brandbreite. (Kauffels, 1996, S.687ff) Zur Leistungsfähigkeit von LAN-Switches „Was nutzt der schnellste Switch, der mit ATM-Line-Speed und einer Verzögerung im Mikrosekundenbereich arbeitet, wenn dazwischenliegende Router lange an seinem Päkchen herumrechnet und umständlicherweise für jedes einzelne Paket eine neue Wegwahl durchführen muß? Switches führen heute zu einer Latenz oder Paketverzögerung zwischen 10 und 50 Mikrosekunden, Multiprotokollrouter bringen es auf 100 bis 500 Mikrosekunden oder mehr.” (Kauffels, 1996, S.826) Layer-3 Switch Da man das Netz nicht immer auf Schicht 2 des OSI-Referenzmodells verflachen kann, wird Routing weiterhin von Nöten sein. Layer-3 Switches können grundsätzlich mit schnellen Routern verglichen werden, die in der Lage sind Wegewahl auf Schicht 3 des OSI-Referenzmodells vorzunehmen. Die hierfür benötigten Mechanismen werden allerdings durch spezielle Hardwarebausteine, sogenannte ASICs (application-specific integrated circuits) zur Verfügung gestellt. Herkömmliche Router benutzen stattdessen Multifunktionsprozessoren und implementieren die Routingfunktion in Software. Daher sind Layer-3 Switches schneller und meistens preisgünstiger. “Allerdings unterstützen sie meist nur die Protokolle IP und IPX. Router verarbeiten nahezu alle vorhandenen Protokolle, verfügen über zahlreiche Schnittstellen und stellen Zusatzfunktionen wie Filter, Accesslisten oder Firewalling bereit”(N&C, 9/98, S.85). Von der Firma 3Com gibt es ein sogenanntes Network Control Taxonomy Control Layer 3 Layer 3 Cut-through Layer 2/3 Layer 2 Route everywhere Route once switch afterwards Switch where you can, route where you must Switch everywhere Cost Bild 6: Network Control Taxonomy Die Methode des einmal routen und danach switchen funktioniert folgendermaßen: soll ein Paket von einem Netz in ein anderes verschickt werden, wird in einer Tabelle nicht nur die Routinginformation für die Zieladresse nachgeschaut, sondern auch die Einstellungen für die ASICs und die Ausgangs Portnummer. Mit diesen Informationen wird das Paket über das Netz geschickt und kann auf Schicht 2 des OSI-Referenzmodells geswitched werden. Normalerweise werden auch noch mehrere der ASICs parallel geschaltet, so daß die Ports simultan bedient werden können und nahezu die Übertragungsgeschwindigkeit des Mediums an jedem Port erreicht wird. Layer-4 Switches unterstützen meisten nur IP. Als zusätliche Information wird hier die Portnummer für IP-Dienste benutzt. Typischer Einsatz ist das Load-Balancing, damit Server nicht zum Flaschenhals im Netz werden. Weiter Informationen (N&C, 9/98) 6 Router und Switches Wofür Router, Routing Protokolle Mit Routern soll ein optimaler Weg durchs Gesamtnetz realisiert werden. Qualitätskriterien sind hierbei Auslastung Durchsatz Gebühren Wartezeit Verkehrstrennung usw. (Kauffels, 1996, S. 556) Es gibt dabei zwei verschiedene Konzepte: das statische und das dynamische Routing. Beim statischen Routing muß die Konfiguration des Netzes samt Routern und verfügbaren Leitungen bekannt sein. Beim dynamischen Routing werden dies Informationen ständig aktualisiert, somit kann auf bestimmte Ereignisse wie Ausfall von Netzwerkkomponenten, reagiert werden. Außerdem kann so ein Ausgleich stattfinden, der die aktuelle Last berücksichtigt. Routing Protokolle wurden meistens in Verbindung mit den Netzwerk-Protokollen entwickelt. Das Netzwerk-Protokoll wie IP (Internet Protocol) oder IPX (Internet Packet Exchange) ermöglicht durch den Einsatz geeigneter Adressen das Routing. Es wird dabei vom eigentlichen RoutingProtokoll unterstützt. Bei der TCP/IP Protokollfamilie ist IP das Netzwerk-Protokoll und zugehörige Routing-Protokolle sind z.B. RIP (Routing Information Protocol) oder OSPF (Open Shortest Path First). Weitere Routing-Protokolle sind APPN (Advanced Peer-to-Peer Networking) von IBM und herstellerspezifische wie IGRP (Iterior Gateway Routing Protocol) von Cisco. Wegen seiner großen Verbreitung wird hier als Beispiel die TCP/IP Protokollfamilie genommen. Die Hauptaufgabe des IP ist die Adressierung und das Routing. Dabei wird an jede Station eine eindeutige 32-Bit-Adresse vergeben, mit der Sender und Empfänger identifiziert werden. Die Daten werden in sogenannten Datagrammen verpackt und vollkommen unabhängig über das Netz geschickt. Dabei findet kein Verbindungsaufbau statt, die Datagramme können auf verschiedenen Wegen und sogar in verschiedener Reihenfolge ankommen, jede weiter Kontrolle muß von höheren Protokollschichten übernommen werden. Die Funktion des Routers ist hierbei Prüfsumme wird bei jedem Netzknoten (Router) überprüft und bei negativen Ergebnis wird das Paket verworfen. TTL-Zeit wird pro Routerdurchlauf herabgesetzt. Bei Erreichung der Zahl 0 wird das Paket zerstört. Router trifft weitere Wegewahl. Fragmentierung des Datagramms, falls es aufgrund von Begrenzung erforderlich sein sollte. IP-Header wird erneuert, der die TTL-Zeit, Fragmentierung und Prüfsummenfeld beinhaltet. Weitergabe an das Netzwerk. Für weitere Informationen über TCP/IP sei auf die entsprechende Literatur verwiesen z.B. (Detken, 1998) 7 Router und Switches Router-Architektur am Beispiel: Der Cisco 12000 Serie Gigabit Switched Router Switched Backplane Zunächst möchte ich auf die Entwicklung zum Switched Backplane eingehen. Bild 7: Allgemeine Architektur eines Routers Die allgemeine Architektur eines Routers kann man sich wie in Bild 7 dargestellt vorstellen. Einen Router kann man dabei in 4 Funktionsmodule aufteilen. Ein Kontrol- und Managementmodul, welches für das Forwarding Table Management, Network Management und das System Management zuständig ist. Diese Funktionen werden in Software ausgeführt. Die Forwarding Decision, Backplane und Output Link Scheduling Funktionen werden bei Hochleistungsroutern in Hardware implementiert. Die Architektur eines Routers hat sich im Laufe der Zeit geändert. So wurde es möglich durch neue Technologien immer mehr Funktionen in Hardware zu implementieren. Dies bringt einen Geschwindigkeitsvorteil und stellt sicher, daß gleiche Funktionen gleich schnell und kostengünstiger ausgeführt werden können. Da die einzelnen Komponenten immer kostengünstiger werden, gibt es einen Trend zu mehr Parallelverarbeitung. Der Engpaß eines Systems der gemeinsame Bus wird ersetzt durch einen Switch. Worauf ich später noch eingehen möchte. Bild 8: Router mit einer zentralen CPU Die Architektur eines Routers könnte wie in Bild 8 dargestellt aussehen, mit einem gemeinsamen Bus, einer zentralen CPU und Speicher und Leitungskarten. Diese Leitungskarten verbinden das System mit den externen Netzen. Ein ankommendes Paket wird vom Eingang über den gemeinsamen Bus zur CPU geleitet. Dort wird entschieden, auf welche Ausgangsleitung das Paket 8 Router und Switches zu schicken ist, und wird dann über den gemeinsamen Bus zum Ausgang übertragen. Ein Nachteil dieses System ist, daß die CPU die Forwarding Decision für jedes ankommende Paket fällen muß. Bild 9: Router mit parallel arbeitenden CPUs Man ist also dann dazu übergegangen, mehrere CPUs in das System zu integrieren, wie in Bild 9 dargestellt. Die Pakete werden jetzt zu der nächsten freien CPU geschickt. Dies erhöht den Durchsatz des Routers. Zudem können kostengünstigere CPUs verwendet werden. Bild 10: Router mit CPUs integriert auf den Leitungskarten Diese Idee kann man noch einen Schritt weiter führen, indem jeder Leitungskarte eine eigene CPU gibt (dargestellt in Bild 10). Dies hat den Vorteil, daß die Pakete nicht zweimal über den Bus geschickt werden müssen. Die Forwarding Decision wird bereits am Eingang getroffen und das Paket sofort zum richtigen Ausgang geschickt. Dadurch wird der Durchsatz des Routers erhöht. Die zentrale CPU übernimmt die Pflege der Forwarding Tabellen jeder CPU und das System Management. Es gibt zwei Faktoren, die Leistung dieses System begrenzen: 1. Die Forwarding Decisions Funktionen sind in Software implementiert und sind so durch die Geschwindigkeit der CPU begrenzt. Eine normale CPU ist nicht sonderlich gut geeignet für den Daten(Paket)fluß durch ein System. Daher werden spezielle Bausteine eingesetzt, sogenannte ASICs (Application Specific Integrated Circuits). Diese sind wesentlich schneller als eine normale CPU, wenn es um Forwarding Decisions, Queue Management und Entscheidungen für die Busbenutzung geht. Die Entwicklung dieser ASICs ist relativ teuer, da für jede neue Application ein neuer Baustein entwickelt werden muß und Fehler schwer zu korrigieren sind. Zudem sind ASIC-Debugger-Geräte sehr teuer. Die Produktion des fertig entwickelten ASIC ist jedoch sehr günstig. 9 Router und Switches 2. Das System wird außerdem durch den gemeinsamen Bus begrenzt. Da nur ein Paket zur Zeit den Bus überqueren kann, ist das System durch die Geschwindigkeit des Busses begrenzt. Eine Lösung für dieses Problem ist der Einsatz eines Switches. Bild 11: Router mit switched Backplane und ASICs Das System dargestellt in Bild 11 zeigt eine Lösung mit ASICs und einem Switch als Backplane. Hochgeschwindigkeitsrouter haben eine solche Architektur. Die Cisco 12000 Serie Gigabit Switched Router besitzt die Möglichkeit 16 Ports gleichzeitig zu switchen. Jede Leitung hat dabei eine Datenraten von 2,4Gb/s. Würden die Eingangs- und Ausgangsports über einen gemeinsamen Bus verbunden, wäre diese Performance nicht möglich, da der Bus eine Datenrate von 38,4 Gb/s zur Verfügung stellen müßte. Dies ist technisch nicht zu realisieren. Ein Bus kann heutzutage eine Datenrate von 20 Gb/s zur Verfügung stellen. Switched Backplane können leicht eine höhere Datenrate zur Verfügung stellen und sind einfach zu realisieren. Ein Crossbar Switch stellt aus zwei Gründen diese hohe Leistung zur Verfügung: zum einen sind die Verbindungen der Leitungskarten einfache Punkt-zu-Punkt Verbindungen, die mit sehr hohen Geschwindigkeiten arbeiten können. In den letzten Jahren wurden Verbindungen entwickelt, die mit einer Geschwindigkeit von 1 Gb/s arbeiten. Diese benutzen einen normalen CMOS Prozeß. In den nächsten paar Jahren werden wohl Verbindungen zur Verfügung stehen, die Geschwindigkeiten von 4-10 Gb/s zur Verfügung stellen. Kurze Punkt-zu-Punkt Verbindungen machen die Kontrolle des Taktes, der Signal Integrität leichter und reduzieren die elektromagnetische Interferenz. Zum anderen bietet der Crossbar Switch eine höher Leistung, da viele Pakete simultan übertragen werden können. Durch das Schließen mehrerer Kreuzungspunkte zur gleichen Zeit, können Pakete gleichzeitig zwischen verschiedenen Ports übertragen werden. Ein Crossbar Switch ist ein nonblocking Baustein. Jeder Eingang kann mit jedem Ausgang verbunden werden. Ein zentraler Scheduler stellt sicher, daß jeder Input mit einem Output verbunden wird und die Ressource Switch optimal genutzt wird. Die einfache Struktur eines Switches kann in Silicon implementiert werden. Um die Leistung innerhalb des Routers noch zu steigern, kann man mehrere Switches parallel betreiben. Dadurch läßt sich die Bandbreite erhöhen. Feste Paketlänge Im Cisco 12000 wird eine feste Paketlänge benutzt. Der Cisco 12000 zerteilt daher alle ankommenden Pakete in Packte gleicher Größe, bevor sie über den Backplane transportiert werden. Theoretisch könnte man sich auch vorstellen, daß Pakete variabler Größe über den Backplane 10 Router und Switches transportiert werden. Bevor die Pakete den Router verlassen werden sie wieder auf die original oder für das zuroutende Netz passende Größe zusammengebaut. Das Verwenden von Paketen fester Länge macht das Leben einfacher. Man kann die Zeiteinheiten zur Übertragung von Daten so groß wählen, daß genau ein Paket übertragen werden kann. Dann sind alle Ein- und Ausgänge am Ende jeder Zeiteinheit frei. Der Scheduler kann daher die Ressource Crossbar Switch sehr effizient verwalten und vergeben. Die Verwaltung ist wesentlich einfacher und schneller, als wenn Pakete variabler Länge verwendet würden, auch ist das Hardware Design einfacher. Bei der Verwendung von Paketen mit variabler Länge, hat der Scheduler wesentlich mehr Arbeit. Die Pakete können zu irgendeiner Zeit fertig übertragen worden sein und ständig muß geprüft werden, ob die Ein- und Ausgänge frei oder belegt sind. Außerdem kann es vorkommen, daß ein Eingang auf einen Ausgang warten muß, da er belegt ist, obwohl es günstiger wäre, diesen Eingang zuerst zu verbinden. Der Scheduler kann also den Crossbar Switch nicht optimal verwalten und viel Bandbreite wird fürs scheduling verschwendet. Daher wird im Cisco 12000 eine feste Paketlänge verwendet. Die Zeit, die benötigt wird um die Pakete zu zerteilen und wieder zusammenzubauen, fällt dabei kaum in Gewicht. Virtual Output Queueing Auch wenn der Crossbar Switch intern kein Blocking aufweist, können Blockingsituationen im Router auftreten. Eine Art des Blockings ist das Head-of-line (HOL) Blocking. Diese Art des Blockings tritt bei First-in First-out (FIFO) Queues auf. Dabei kann ein Paket, welches als erstes in der Queue steht, Pakete aufhalten, welche später an der Reihe sind und zu einem anderen (freien) Ausgang wollen. Analog dazu kann man sich eine Ampelkreuzung vorstellen, wo es Rechtsabbiegern trotz roter Ampel erlaubt ist weiterzufahren. Gibt es nur eine Spur für Geradeausfahrer und Rechtsabbieger, kann es vorkommen, daß vorne an der Ampel ein Auto steht, das geradeaus fahren möchte und warten muß, da die Ampel rot ist. Dieses Auto blockiert die Autos, die hinter ihm stehen und rechts abbiegen möchten. Dies Problem kann man lösen indem man für die Rechtsabbieger eine extra Spur einrichtet. Die Lösung für HOL-Blocking ist Virtual Output Queueing. Dabei wird an jedem Eingang für jeden Ausgang eine Virtuelle FIFO-Queue für jeden Ausgang geschaffen. Jedes Paket wird in die entsprechende Virtuelle Queue gesteckt. Dies ist im Bild 12 dargestellt. Bild 12: Virtual Output Queueing (VOQ) Theoretisch kann man den Durchsatz von 60% mit FIFO Queueing auf 100% mit VOQ erhöhen, da man das HOL-Blocking komplett eliminiert hat. 11 Router und Switches Prioritäts Klassen Bei Multimediaanwendungen muß man sicherstellen können, daß die Pakete nach einer bestimmten Zeit den Router wieder verlassen haben. Prioritätsklassen werden im Cisco 12000 verwendet um die Verzögerungszeit der einzelnen Pakete kontrollieren zu können. Dies verhindert nicht, daß es zu Verzögerungen durch Input- und Output-Blocking kommt, Pakete mit hoher Priorität werden jedoch nicht durch Pakete mit niedriger Priorität aufgehalten. Durch die wachsende Anzahl Multimedia Anwendungen wird auch die Zahl der Pakete mit hoher Priorität wachsen. Dies kann dann wieder zu Verzögerungen führen, da sich die Pakete mit hoher Priorität gegenseitig blockieren können. Zu große Verzögerungszeiten werden dadurch vermieden, daß man den Multimediatraffic begrenzt. Damit kann man sicherstellen, daß die Verzögerungszeit des Multimediatraffic sich im Rahmen des erforderlichen Quality of Service bewegt. Input-Blocking entsteht, wenn es mehrere nicht leere VOQs an einem Input gibt. Der Scheduler kann jedoch nur eine Queue per Zeiteinheit auswählen und bedienen. Die anderen Queues müssen daher warten. Man kann nicht genau sagen, wann diese anderen Queues bedient werden. Daher kann nicht genau vorhergesagt werden, wie lange ein Paket in der VOQ warten muß. Output-Blocking entsteht, weil jede Ausgangsleitung nur eine Paket zur Zeit übertragen kann. Angenommen Von zwei verschiedenen Eingängen möchten Pakete auf denselben Ausgang, dann muß ein Paket warten. Genau wie beim Input-Blocking, kann man auch beim Outputblocking nicht genau vorhersagen, wie lange ein Paket warten muß. Speedup Um Input- und Output-Blocking zu reduzieren, kann man ein Verfahren anwenden, welches sich Speedup nennt. Hierbei wird der Switch mit der doppelten Geschwindigkeit als die Ein-und Ausgangsleitungen betrieben. Man kann also pro Zeiteinheit zwei Pakete übertragen. Theoretisch müßte man den Switch mit der N-fachen Geschwindigkeit (für N-Ports) betreiben. Dies würde jedoch in unserem Fall dazu führen, daß die Speicher eine Lese oder Schreib Operation alle 5ns zu erledigen hätte. Dies ist nicht realisierbar und uneconomisch. Untersuchungen haben ergeben, daß ein Crossbar Switch mit einem Speedup von 2 sich fast identisch verhält wie ein Crossbar Switch mit einem Speedup von N; unabhängig von N. Voraussetzung ist, daß VOQ benutzt wird. Unicast und Multicast Traffic Der CISCO 12000 unterstützt auch multicast traffic. Der crossbar Switch erlaubt eine einfache Übertragung von Multicast Traffic. Hierbei wird die Natur des Crossbar Switches ausgenutzt und eine Paket durch das Schließen verschiedenen Kreuzungspunkte auf mehrere Ausgänge gleichzeitig gelegt. Hierdurch vermeidet man das kopieren des Paketes in verschiedene VOQ, was wesentlich länger dauern würde und zudem Speicherplatz verbrauchen würde. Im kombinierten Unicast/Multicast Switch werden zwei Arten von Queues unterstützt. VOQs für Unicast Pakete und Multicast Queues für dir Multicast Pakete. Dies ist in Bild 13 dargestellt. 12 Router und Switches Bild 13: Kombinierter Unicast/Multicast Switch Fanout – Splitting Die Cisco 12000 Serie GSR benutzt das sogenannte fanout-splitting. Als Fanout bezeichnet man den Satz Ausgangspakete, zu dem ein Eingangspaket kopiert werden möchte. Es gibt zwei Möglichkeiten dies zu realisieren. Zum einen kann ein Paket solange warten, bis alle gewünschten Ausgänge frei sind und alle Pakete werden zur selben Zeit übertragen (no fanout-splitting). Zum anderen kann man alle die Pakete, die schon übertragen werden können übertragen und die restlichen Pakete werden dann beim nächsten Mal übertragen (fanout-spitting). Dies Verfahren wird hier verwendet, da es einen großen Geschwindigkeitsvorteil bringt und nicht sehr schwer zu implementieren ist. ESLIP Algorithmus Der ESLIP Algorithmus ist ein Scheduling Algorithmus und eine Weiterentwicklung des iSLIP Crossbar Scheduling Algorithmuses und erlaubt sowohl Unicast als auch Multicast Traffic. Ein Crossbar Scheduling Algorithmus sollte folgende Eigenschaften haben: Hoher Durchsatz – idealerweise sollte aller Input direkt ohne Verzögerung an die Ausgänge weitergeleitet werden Kein Verhungern – der Algorithmus muß sicherstellen, daß alle VOQ abgearbeitet werden Schnell – Um die höchst mögliche Bandbreite des Switches zu bekommen, ist es wichtig, daß die Geschwindigkeit des Scheduling Algorithmuses nicht zum Bottleneck des Systems wird. Der Algorithmus muß daher so schnell wie möglich eine Konfiguration des Crossbars auswählen. Einfach zu implementieren – Wenn der Algorithmus in der Praxis schnell sein soll, muß er in einer speziellen Hardware implementiert werden; vorzugsweise in nur einem Chip. Bevor ich den ESLIP Algorithmus näher erläuter, werde ich den iSLIP Algorithmus vorstellen. ISLIP ist ein iterativer Algorithmus – in jeder Zeiteinheit werden viele Iterationen getätigt um eine Crossbar Konfiguration zu finden, um die Eingänge mit den jeweiligen Ausgängen zu verbinden. Der iSLIP Algorithmus verwendet hierbei rotierende Prioritäten (“round-robin”) Entscheidungen um jeden aktiven Eingang und Ausgang gerecht zu werden. Der iSLIP Algorithmus ist sehr einfach, dies ist sein Hauptcharakteristika. Es ist einfach in Hardware zu implementieren und sehr schnell. Der iSLIP Algorithmus konvergiert schnell zu einer konfliktfreien Konfiguration für den Crossbar Switch. Jede Iteration besteht aus drei Schritten. Zu begin sind alle Ein- und Ausgänge frei und nur die Ein- und Ausgänge, die am Ende einer Iteration nicht verbunden sind, sind beim nächsten Mal geeignet. Die Schritte einer Iteration sind: 1. Schritt: Request. Jeder Eingang sendet jedem Ausgang für den ein Paket da ist ein Request. 2. Schritt: Grant. Wenn der Ausgang irgendein Request erhält, wählt es den, der als erstes in einem festen, round-robin Schedule, beginnend mit dem Element mit der höhsten Priorität, 13 Router und Switches steht. Der Ausgang benachrichtigt dann alle Eingänge, ob der Request gewährt wurde oder nicht. 3. Schritt: Accept. Wenn ein Eingang die Nachricht erhält, daß der Request gewährt wurde, wählt es den Ausgang, der als erstes in einem festen, round-robin Schedule, beginnend mit dem Element mit der höhsten Priorität, steht. Der Zeiger ai, der auf dem Element mit der höchsten Priorität von dem round-robin Scheduler wird inkrementiert (modulo N) zu einem Element unter dem acceptierten Ausgang. Der Zeiger gi, der auf dem Element mit der höchsten Priorität in der korespondierenden Ausgangsqueue steht, wird inkremmentiert (modulo N) zu einem Element unter dem gewährten Eingang. Die Zeiger werden nur nach der ersten Iteration erneuert. Da bei jeder neuen Iteration nur die Ein- und Ausgänge berücksichtig werden, die noch nicht verbunden sind, werden bei jeder iteration neue Ein- und Ausgänge verbunden. Die Eigenschaften des iSLIP Algorithmuses in kürze: 1. Hoher Durchsatz – Für gleichmäßigen und unzusammenhängende Paketankünfte, kann der iSLIP Algorithmus eine 100% Nutzung der Switching Kapazität ermöglichen. 2. Kein verhungern – Keine Verbindung verhungert. Weil die Zeiger nach der ersten Iteration nicht erneuert werden, wird der Ausgang solange versuchen, dem Eingang mit der höchsten Priorität eine Verbindung zu geben, bis er erfolgreich ist. Desweiteren ist der iSLIP Algorithmus auch fair, wenn sehr viele Pakete ankommen, wird mit einer Iteration und unter starker Belastung alle Queues der gleiche Durchsatz gewährt. 3. Schnell – Der iSLIP Algorithmus ist nach höchstens N Iterationen garantiert fertig. In der Praxis ist dies jedoch meistens schon nach log2(N) Iterationen der Fall. Für einen Switch mit 16 Ports sind also nur vier Iterationen notwendig. 4. Leicht zu implementieren – Ein iSLIP Scheduler besteht aus 2N programmierbaren Prioritäts encoder. Ein Scheduler für einen 16-Port Switch kann einfach auf einem Chip implementiert werden. Um den Multicast Traffic zu unterstützen braucht man einen neuen Scheduling Algorithmus. Dieser Algorithmus muß die konkurierenden Unicast und Multicast Pakete fair durch den Switch leiten. Für diese Aufgabe wurde ESLIP entwickelt, ein erweiterter iSLIP Algorithmus. Er kann Pakete mit höherer Priorität bevorzugen und Unicast und Multicast Traffic gleichzeitig schedulen. Bild 13 zeigt die Queues, die bei einem 16-Port Switch mit vier Prioritätsklassen, berücksichtigt werden müssen. Am Anfang einer jeden Zeiteinheit untersucht der ESLIP Scheduler den Inhalt jeder Queue. Wie beim iSLIP Algorithmus ist ESLIP ein Iteratives Verfahren. Zu Anfang sind alle Ein- und Ausgänge frei und mit jeder Iteration werden mehr und mehr Ein- und Ausgänge verbunden. Um einen Überblick zu bahlten, welcher Eingang mit welchem Ausgang verbunden ist, hat der Ausgang einen Grantzeiger für jede Prioritätsklasse, z.B. hat der Ausgang j die Zeiger gaj bis gdj. Zusätzlich haben alle Ausgänge die gemeinsamen Zeiger gaM bis gaM für Multicast. Genauso hat jeder Eingang Zeiger für jede Prioritätsklasse und gemeinsame Zeiger für den Multicast Traffic. Jede iteration besteht wieder aus drei Schritten: 1. Schritt: Request. Jeder Input schickt einen priorisierten Request an jeden Output, für den es ein Unicast oder ein Multicast Paket hat. 2. Schritt: Grant. Die Gewährung funktioniert für die Unicast queues wie beim schon beschriebenen iSLIP Algorithmus. Auch beim Multicast wird dasselbe Prinzip verwendet. Der Ausgang informiert die Eingänge ob der Request gewährt wurde oder nicht. 3. Schritt: Accept. Auch das Akzeptieren funktioniert wie beim iSLIP Algorithmus. Nur muß auch noch bedacht werden, ob beim Multicast Paket ein fanout abgeschlossen wurde. Dann werden die Multicastzeiger erneuert. Auch wenn der ESLIP Algorithmus ein wenig komplizierter ist, ist er doch relativ einfach in Hardware zu implementieren. Eine schematische Darstellung kann man in Bild 14 sehen. Der Scheduler besteht aus zwei Sätzen von Arbiters – grant Arbiters, die Schritt 2 implementieren und 14 Router und Switches accept arbiter, die Schritt 3 implementieren. Eine Vergrößerung des Arbiters zeigt, wie zwischen Unicast und Multicast Traffic entschieden wird und wie die Priorität von dem selektierten Request bestimmt wird. Bild 14: Eine schematische Darstellung des ESLIP Algorithmus Die Eigenschaften von ESLIP: 5. Hoher Durchsatz – Für gleichmäßigen und unzusammenhängende Paketankünfte (unicast), kann der ESLIP Algorithmus eine 100% Nutzung der Switching Kapazität ermöglichen. Da beim Multicast Traffic fanout-splitting verwendet wird, ist ein hoher Durchsatz möglich. 6. Kein verhungern – Keine Verbindung verhungert. 7. Schnell – Der ESLIP Algorithmus ist nach höchstens N Iterationen garantiert fertig. In der Praxis ist dies jedoch meistens schon nach log2(N) Iterationen der Fall. Für einen Switch mit 16 Ports sind also nur vier Iterationen notwendig. 8. Leicht zu implementieren – Ein ESLIP Scheduler besteht aus 2N programmierbaren Prioritäts encoder. Ein Scheduler für einen 16-Port Switch kann einfach auf einem Chip implementiert werden. 15 Router und Switches Cisco 12000 Gigabit Switched Router – Eigenschaften In der Cisco 12000 Serie sind die oben beschriebenen Verfahren implementiert. Switched Backplane Feste Packetlänge Virtual Output Queueing Prioritätsklassen Speedup Unicast und Multicast ESLIP Die Cisco 12000-Serie ist daher für folgende Anwendungen besonders geeignet: Internet Backbones Hohe Kapazität für Internetzugang Unternehmens-WAN/MAN Skalierbare Performance Die modulare Multigigabit-Koordinaten-Switchkonstruktion erlauct es, die Bandbreite zu steigern, wenn die Anforderungen an den Backbone sich erhöhen (Cisco 12000 steigert von 5 auf 60Gbps). Das innovative Design der Switch-Konstruktion unterstützt virtuelle Output-Warteschlangen. Um Zeilenkopfblockierung zu verhindern Wenn Leitungskarten hinzugefügt werden, liefert die verteilte Architektur eine skalierbare Performance für Schicht 3-Switching. Das Senden von Leitungsraten lastet die SONET/SDH-Übertragungskommunikationskanäle voll aus und gewährleistet damit die beste Rendite für die Investition in teure WANSchaltkreise Massive Leitungskarten-Paketpuffer erhöhen durch Maximierung des TCP-Goodputs die Effizienz des Netzwerks Zu der Cisco 12000-Serie gehören der 12004 mit 5 Gbps Bandbreite und 4 konfigurierbaren Chassis Slots, der 12008 mit 10-40 Gbps Bandbreite und 8 konfigurierbaren Chassis Slots und der 12012 mit 15-60 Gbps Bandbreite und 12 konfigurierbaren Chassis Slots. Alle Modelle haben den R5000, 200MHz Processor als Route Processor mit einem Speicher von 64-256 MB EDO und 20 MB Flash. 16 Router und Switches Literatur Detken, K.-O. (1998) ATM in TCP/IP Netzen, Heidelber: Hüthig Verlag Gut strukturiert, Informationen einfacher zu finden als im Kauffels, alle Grundlagen für TCP/IP Kauffels, F.-J. (1996) Lokale Netze 8., akt. und erw. Auflage, Bergheim: DATACOM-Buchverlag Sehr ausführlich, mit Produktinformationen McKeown, Nick Fast Switched Backplane for a Gegabit Switched Router, Standford University CA 94305-9030 www.cisco.com/warp/public/733/12000/technical.shtml Sehr gute Beschreibung des Gigabit Switched Routers. Sämtliche Bilder aus dem Routerbeispiel sind aus diesem Dokument Tanenbaum, A. S. (1997) Computernetzwerke 3. Auflage, München: Prentice Hall Peng, X. (1998) Lecture Notes Telecommunication and Broadband Systems London: Peng Lange, M. (1998) Layer-4 Switching: Routing mit Mehrwert, N&C 9 September S. 82-85 Sehr ehrlich, sehr informativ Muccariello, M. (1998) Switches und deren Auswirkung aufs Ethernet, electronik Journal 6. Juni S.92-94 gibt eine weitere Einteilung für Switches 3Com (1997) Flexible Intelligent Routing Engine (FIRE), 3Com Hein, Mathias (1996) Switching Technologie in lokalen Netzen, Bonn: Internat. Thomson Publ. Cisco Homepage www.cisco.com 17