<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Phils Hardware-Blog &#187; Wissen</title>
	<atom:link href="http://www.hwboard.de/hwblog/tag/wissen/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hwboard.de/hwblog</link>
	<description>Die neuesten Neuigkeiten zum Thema Hardware.</description>
	<lastBuildDate>Thu, 28 Jan 2010 20:29:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Wissen: Router</title>
		<link>http://www.hwboard.de/hwblog/2008/08/wissen-router/</link>
		<comments>http://www.hwboard.de/hwblog/2008/08/wissen-router/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 19:13:42 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Internet & Netzwerk]]></category>
		<category><![CDATA[Wissen]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Router]]></category>
		<category><![CDATA[Telekommunikation]]></category>

		<guid isPermaLink="false">http://www.hwboard.de/hwblog/?p=1120</guid>
		<description><![CDATA[Router (britisch: ˈruːtə(r), amerikanisch: ˈraʊtə(r)) sind Geräte aus dem Bereich Computernetzwerke, Telekommunikation oder auch Internet (siehe auch Netzwerkkomponenten), die mehrere Rechnernetze – je nach Sichtweise – koppeln oder trennen. Dabei analysiert der Router die ankommenden Datenpakete nach ihrer Zieladresse, das sind Informationen die dem OSI-Modell Schicht-3 zugeordnet werden, und blockt diese oder leitet sie entsprechend [...]]]></description>
			<content:encoded><![CDATA[<p class="flowtext"><strong>Router</strong> (britisch: <span class="IPA"><a title="Liste der IPA-Zeichen" href="http://de.wikipedia.org/wiki/Liste_der_IPA-Zeichen"><span title="Aussprache, IPA">ˈruːtə(r)</span></a></span>, amerikanisch: <span class="IPA"><a title="Liste der IPA-Zeichen" href="http://de.wikipedia.org/wiki/Liste_der_IPA-Zeichen"><span title="Aussprache, IPA">ˈraʊtə(r)</span></a></span>) sind Geräte aus dem Bereich Computernetzwerke, Telekommunikation oder auch Internet (siehe auch <a title="Kategorie:Netzwerkgerät" href="http://de.wikipedia.org/wiki/Kategorie:Netzwerkger%C3%A4t">Netzwerkkomponenten</a>), die mehrere <a title="Rechnernetz" href="http://de.wikipedia.org/wiki/Rechnernetz">Rechnernetze</a> – je nach Sichtweise – koppeln oder trennen. Dabei analysiert der Router die ankommenden <a title="Datenpaket" href="http://de.wikipedia.org/wiki/Datenpaket">Datenpakete</a> nach ihrer Zieladresse, das sind Informationen die dem <a title="OSI-Modell" href="http://de.wikipedia.org/wiki/OSI-Modell">OSI-Modell Schicht-3</a> zugeordnet werden, und blockt diese oder leitet sie entsprechend weiter (die Pakete werden <a title="Routing" href="http://de.wikipedia.org/wiki/Routing">geroutet</a>). Weitergeleitete Pakete gelangen entweder in ein dem Router selbst bekanntes, direkt angeschlossenes Zielnetz (auch Ziel-<a title="Subnetz" href="http://de.wikipedia.org/wiki/Subnetz">Subnetze</a>) oder werden zu einem ebenfalls in einem direkt angeschlossenen Netz liegenden Router weitergereicht.</p>
<h2>Arbeitsweise</h2>
<p class="flowtext">Router arbeiten auf Schicht 3 (der Netzwerkebene / Network-Layer) des <a title="OSI-Modell" href="http://de.wikipedia.org/wiki/OSI-Modell">OSI-Referenzmodells</a>. Ein Router besitzt mehrere <em>Schnittstellen</em> (engl. Interfaces), über die <a title="Rechnernetz" href="http://de.wikipedia.org/wiki/Rechnernetz">Netze</a> erreichbar sind. Diese Schnittstellen können auch virtuell sein. Beim Eintreffen von <a title="Datenpaket" href="http://de.wikipedia.org/wiki/Datenpaket">Datenpaketen</a> muss ein Router den besten Weg zum Ziel und damit die passende Schnittstelle bestimmen, über welche die Daten weiterzuleiten sind. Dazu bedient er sich einer lokal vorhandenen <a title="Routingtabelle" href="http://de.wikipedia.org/wiki/Routingtabelle">Routingtabelle</a>, die angibt, über welchen Anschluss des Routers (bzw. welche Zwischenstation) welches Netz erreichbar ist. Es kann auch eine <em>Default-Route</em> in der Routingtabelle vorhanden sein. Diese Route zeigt üblicherweise auf einen Router höherer Ordnung welcher oftmals als Standard- oder Default-Gateway bezeichnet wird. Hierbei ist aber kein Gateway im Sinne des <a title="OSI-Referenzmodell" href="http://de.wikipedia.org/wiki/OSI-Referenzmodell">OSI-Referenzmodells</a> gemeint sondern lediglich ein weiterer Router mit eventuell mehr Informationen. Da <a title="Routingtabelle" href="http://de.wikipedia.org/wiki/Routingtabelle">Routingtabellen</a> bei den meisten Systemen nach der Genauigkeit sortiert werden, also zuerst spezifische Einträge und später weniger spezifische, kommt die Default-Route, als unspezifische, am Ende und wird für alle Ziele benutzt, die über keinen besser passenden, spezifischeren, Eintrag in der Routingtabelle verfügen.</p>
<p class="flowtext">Professionelle Router beherrschen auch ein sogenanntes <em>Policy Based Routing</em>; dabei wird die Routingentscheidung nicht nur auf Basis Ziel-Adresse (Layer-3) getroffen, sondern auch andere Angaben berücksichtigt. Hierbei können Protokoll-Parameter genauso berücksichtigt werden wie Qualitätsanforderungen oder gebuchte Leistungen. So können dann zum Beispiel TCP-Pakete im HTTP-Protokoll (Web) einen anderen Weg nehmen als TCP-Pakete im SMTP-Protokoll (Mail).</p>
<p class="flowtext">Router können nur für Routing geeignete <a title="Datenpaket" href="http://de.wikipedia.org/wiki/Datenpaket">Datenpakete</a>, von routingfähigen Protokollen, wie z. B. <a title="TCP/IP" href="http://de.wikipedia.org/wiki/TCP/IP">TCP/IP</a> oder <a title="IPX/SPX" href="http://de.wikipedia.org/wiki/IPX/SPX">IPX/SPX</a> verarbeiten. Andere Protokolle, wie z. B. das ursprünglich von <a title="MS-DOS" href="http://de.wikipedia.org/wiki/MS-DOS">MS-DOS</a> und <a title="MS-Windows" href="http://de.wikipedia.org/wiki/MS-Windows">MS-Windows</a> benutzte <a title="NetBIOS" href="http://de.wikipedia.org/wiki/NetBIOS">NetBIOS</a> bzw. <a title="NetBEUI" href="http://de.wikipedia.org/wiki/NetBEUI">NetBEUI</a>, die nur für kleine Netze gedacht waren und von ihrem Design her nicht routingfähig sind, werden von einem Router nicht weitergeleitet. Pakete aus diesen Protokoll-Familien werden in aller Regel durch Systeme die auf <a title="OSI-Referenzmodell" href="http://de.wikipedia.org/wiki/OSI-Referenzmodell#Schicht_2_.E2.80.93_Sicherungsschicht">Schicht 2</a> arbeiten, also <a title="Bridge (Netzwerk)" href="http://de.wikipedia.org/wiki/Bridge_%28Netzwerk%29">Bridges</a> oder <a title="Switch (Computertechnik)" href="http://de.wikipedia.org/wiki/Switch_%28Computertechnik%29">Switches</a>, verarbeitet. Viele professionelle Router können bei Bedarf auch diese Bridge-Funktionen wahrnehmen und werden dann manchmal <a title="BRouter" href="http://de.wikipedia.org/wiki/BRouter">BRouter</a> genannt. Als <a title="OSI-Referenzmodell" href="http://de.wikipedia.org/wiki/OSI-Referenzmodell#Schicht_3_.E2.80.93_Vermittlungsschicht">Schicht 3</a>-System enden am Router alle Schicht 2 Funktionen, darunter auch die <a title="Broadcastdomäne" href="http://de.wikipedia.org/wiki/Broadcastdom%C3%A4ne">Broadcastdomäne</a>. Dies ist insbesondere in großen <a title="LAN" href="http://de.wikipedia.org/wiki/LAN">lokalen Netzen</a> wichtig, um das Broadcast-Aufkommen für die einzelnen Stationen gering zu halten. Sollen allerdings Broadcast-basierte Dienste über den Router hinweg funktionieren, dann werden spezielle Router benötigt, die diese Broadcasts empfangen, auswerten und gezielt einem anderen System zur Verarbeitung zuführen können.</p>
<p class="flowtext">Außerdem sind Ein- und Mehrprotokoll-Router (auch Multiprotokoll-Router) zu unterscheiden. Einprotokoll-Router sind nur für ein Netzwerkprotokoll z. B. <a title="TCP/IP" href="http://de.wikipedia.org/wiki/TCP/IP">TCP/IP</a> geeignet und können daher nur in <a title="Homogen" href="http://de.wikipedia.org/wiki/Homogen">homogenen</a> Umgebungen eingesetzt werden. Multiprotokoll Router beherrschen den gleichzeitigen Umgang mit mehreren Protokoll-Familien wie DECnet, IPX/SPX, SNA, TCP/IP, und Andere. Heute dominieren TCP/IP-Router das Feld, da praktisch alle anderen Netzwerk-Protokolle nur noch eine untergeordnete Bedeutung haben und, falls sie doch zum Einsatz kommen, oft auch gekapselt werden können (<a title="NetBIOS over TCP/IP" href="http://de.wikipedia.org/wiki/NetBIOS_over_TCP/IP">NetBIOS over TCP/IP</a>, IP-encapsulated IPX). Früher hatten Mehrprotokoll-Router in größeren Umgebungen eine wesentliche Bedeutung, damals verwendeten viele Hersteller unterschiedliche Protokoll-Familien, daher kam es unbedingt darauf an, dass vom Router mehrere Protokoll-Stacks unterstützt wurden. Multiprotokoll-Router findet man heute fast ausschließlich in Weitverkehrs- oder ATM-Netzen.</p>
<p class="flowtext">Wichtig ist hierbei auch die Unterscheidung zwischen den <em>gerouteten Protokollen</em> (z. B. <a title="Internet Protocol" href="http://de.wikipedia.org/wiki/Internet_Protocol">IP</a> oder <a title="Internetwork Packet Exchange" href="http://de.wikipedia.org/wiki/Internetwork_Packet_Exchange">IPX</a>) und <em>Routing-Protokollen</em>. Routing-Protokolle dienen der Verwaltung des Routing-Vorgangs und der Kommunikation zwischen den Routern, die z. B. so ihre Routing-Tabellen austauschen (z. B. <a title="Routing Information Protocol" href="http://de.wikipedia.org/wiki/Routing_Information_Protocol">RIP</a> oder <a title="OSPF" href="http://de.wikipedia.org/wiki/OSPF">OSPF</a>). Geroutete Protokolle hingegen sind die Protokolle die den Datenpaketen, die der Router transportiert, zugrunde liegen (z. B. TCP/IP oder IPX).</p>
<h2>Bauformen</h2>
<h3>Backbone-Router, Hardware-Router</h3>
<p class="flowtext">Die Hochgeschwindigkeitsrouter (auch Carrier-Class-Router) im Internet (oder bei großen Unternehmen) sind heute hochgradig auf das Weiterleiten von Paketen optimierte Geräte, die viele Gigabit Datendurchsatz pro Sekunde in Hardware routen können, d. h. die benötigte Rechenleistung wird zu einem beträchtlichen Teil durch spezielle Netzwerkinterfaces dezentral erbracht, ein zentraler Prozessor (falls überhaupt vorhanden) wird hierdurch nicht oder nur sehr wenig belastet. Die einzelnen <a title="Port (Schnittstelle)" href="http://de.wikipedia.org/wiki/Port_%28Schnittstelle%29">Ports</a> oder Interfaces können unabhängig voneinander Daten empfangen und senden. Sie sind entweder über einen internen Hochgeschwindigkeitsbus (<a title="Backplane" href="http://de.wikipedia.org/wiki/Backplane">Backplane</a>) oder kreuzweise miteinander verbunden (<a title="Matrix" href="http://de.wikipedia.org/wiki/Matrix">Matrix</a>). In der Regel sind solche Geräte für den Dauerbetrieb ausgelegt (Verfügbarkeit von 99,999 % oder höher) und besitzen redundante Hardware (Netzteile usw.), um Ausfälle zu vermeiden. Auch ist es üblich, alle Teilkomponenten im laufenden Betrieb austauschen oder erweitern zu können (hot plug). In den frühen Tagen der Rechnervernetzung war es dagegen üblich, handelsübliche <a title="Workstation" href="http://de.wikipedia.org/wiki/Workstation">Workstations</a> als Router zu benutzen, bei denen das Routing per Software implementiert war.</p>
<h3>Software-Router</h3>
<p class="flowtext">Neben Hardwaregeräten kann man beispielsweise auch <a title="UNIX" href="http://de.wikipedia.org/wiki/UNIX">UNIX</a>-<a title="Workstation" href="http://de.wikipedia.org/wiki/Workstation">Workstations</a>, -<a title="Server" href="http://de.wikipedia.org/wiki/Server">Server</a> oder auch PCs als Router einsetzen. Alle unixbasierten Systeme beherrschen Routing von Haus aus, PCs kann man mit entsprechenden Programmen zum Router machen (z. B. <a title="Fli4l" href="http://de.wikipedia.org/wiki/Fli4l">Fli4l</a>, das ein Ein-Disketten-ISDN/DSL-Router ist; Smoothwall und <a title="IPCop" href="http://de.wikipedia.org/wiki/IPCop">IPCop</a>, die auf <a title="Linux" href="http://de.wikipedia.org/wiki/Linux">Linux</a> basieren oder auch m0n0wall auf BSD-Basis). Das freie Betriebssystem <a title="OpenBSD" href="http://de.wikipedia.org/wiki/OpenBSD">OpenBSD</a> (eine UNIX-Variante) bietet neben den eingebauten, grundlegenden Routingfunktionen auch mehrere erweiterte Routingdienste, wie unter anderem <a title="OpenBGPD" href="http://de.wikipedia.org/wiki/OpenBGPD">OpenBGPD</a> und <a title="OpenOSPFD" href="http://de.wikipedia.org/wiki/OpenOSPFD">OpenOSPFD</a>, die auch in kommerziellen Produkten zu finden sind. Ähnliche Erweiterungen sind aber auch für die kommerziellen UNIX sowie für Linux verfügbar. <a title="Microsoft Windows" href="http://de.wikipedia.org/wiki/Microsoft_Windows">Microsoft Windows</a> bietet in allen NT-basierten Workstation- und Server-Varianten (NT, 2000, XP, 2003) ebenfalls Routing-Dienste.</p>
<p class="flowtext">Software-Router auf PC- oder Workstationbases haben oft den entscheidenden Nachteil, einen zur gebotenen Leistung vergleichsweise hohen Stromverbrauch. Gerade im <a title="Small Office, Home Office" href="http://de.wikipedia.org/wiki/Small_Office,_Home_Office">SoHo</a>-Bereich können die zusätzlichen Stromkosten schon innerhalb eines Jahres höher sein, als der Preis für ein kleines Kompaktgerät.</p>
<h3>DSL-Router, WLAN-Router</h3>
<p class="flowtext">Diese Geräte sind Kombinationen aus verschiedenen Komponenten.</p>
<p class="flowtext">So wird die Kombination aus <a title="DSL-Modem" href="http://de.wikipedia.org/wiki/DSL-Modem">DSL-Modem</a> (xDSL jeglicher Bauart), <a title="Switch (Computertechnik)" href="http://de.wikipedia.org/wiki/Switch_%28Computertechnik%29">Switch</a> und Router als <strong>DSL-Router</strong> bezeichnet. Je nach eingebautem Modem unter anderem als ADSL- oder SDSL-Router. Oft sind das aber keine vollständigen Router, da diese Geräte ausschließlich als Internetzugangs-Systeme dienen und nur mit aktiviertem <a title="PPPoE" href="http://de.wikipedia.org/wiki/PPPoE">PPPoE</a> (oder <a title="PPPoA" href="http://de.wikipedia.org/wiki/PPPoA">PPPoA</a>) sowie <a title="Network Address Translation" href="http://de.wikipedia.org/wiki/Network_Address_Translation">NAT</a>-Routing (oder IP-<a title="Masquerading" href="http://de.wikipedia.org/wiki/Masquerading">Masquerading</a>) eingesetzt werden können. Manche Hersteller nennen Router mit implementierten PPPoE/PPPoA und NAT/Masquerading auch dann DSL-Router, wenn diese nur über ein externes Modem per DSL mit dem Internet verbinden können.</p>
<p class="flowtext">Die Kombination aus <a title="Access Point" href="http://de.wikipedia.org/wiki/Access_Point">Access Point</a> und Router wird häufig als <strong>WLAN-Router</strong> bezeichnet. Das ist solange korrekt, soweit es einen <a title="Wide Area Network" href="http://de.wikipedia.org/wiki/Wide_Area_Network">WAN</a>-Port gibt. Das Routing findet dann zwischen <a title="Wireless Local Area Network" href="http://de.wikipedia.org/wiki/Wireless_Local_Area_Network">WLAN</a> und <a title="Wide Area Network" href="http://de.wikipedia.org/wiki/Wide_Area_Network">WAN</a> (und falls vorhanden auch zwischen <a title="Local Area Network" href="http://de.wikipedia.org/wiki/Local_Area_Network">LAN</a> und <a title="Wide Area Network" href="http://de.wikipedia.org/wiki/Wide_Area_Network">WAN</a>) statt. Fehlt dieser WAN-Port, handelt es sich hier lediglich um Marketing-Begriffe, da reine <a title="Access Point" href="http://de.wikipedia.org/wiki/Access_Point">Access Points</a> auf OSI-Ebene 2 arbeiten und somit <a title="Bridge (Netzwerk)" href="http://de.wikipedia.org/wiki/Bridge_%28Netzwerk%29">Bridges</a> und keine Router sind. Häufig sind auch WLAN-Router keine vollwertigen Router, sie haben oft die gleichen Einschränkungen wie DSL-Router (PPPoE, NAT – siehe oben).</p>
<h4>Firewall-Funktionalität in DSL-Routern</h4>
<p class="flowtext">Fast alle <a title="Digital Subscriber Line" href="http://de.wikipedia.org/wiki/Digital_Subscriber_Line">DSL</a>-Router sind heute NAT-fähig. Weil ein Verbindungsaufbau aus dem Internet auf das Netz hinter dem NAT-Router nicht ohne weiteres möglich ist, wird diese Funktionalität von manchen Herstellern bereits als NAT-<a title="Firewall" href="http://de.wikipedia.org/wiki/Firewall">Firewall</a> bezeichnet, obwohl nicht das Schutzniveau eines <a title="Paketfilter" href="http://de.wikipedia.org/wiki/Paketfilter">Paketfilters</a> erreicht wird.<sup id="cite_ref-0" class="reference"><a href="http://de.wikipedia.org/wiki/Router#cite_note-0">[1]</a></sup> Die Sperre lässt sich durch die Konfiguration eines <a title="Port Forwarding" href="http://de.wikipedia.org/wiki/Port_Forwarding">Port Forwarding</a> umgehen, was z. B. für manche <a title="Virtual Private Network" href="http://de.wikipedia.org/wiki/Virtual_Private_Network">VPN</a>- oder <a title="Peer-to-Peer" href="http://de.wikipedia.org/wiki/Peer-to-Peer">Peer-to-Peer</a>-Verbindungen notwendig ist. Zusätzlich verfügen die meisten DSL-Router für die Privatnutzung auch über einen rudimentären <a title="Paketfilter" href="http://de.wikipedia.org/wiki/Paketfilter">Paketfilter</a>, teilweise auch <a title="Stateful Packet Inspection" href="http://de.wikipedia.org/wiki/Stateful_Packet_Inspection">stateful</a>. Als Betriebssystem kommt auf vielen Routern dieser Klasse <a title="Linux" href="http://de.wikipedia.org/wiki/Linux">Linux</a> zum Einsatz, als Firewall kommt dann meist <a title="Iptables" href="http://de.wikipedia.org/wiki/Iptables">iptables</a> zum Einsatz. Einen Content-Filter enthalten solche Produkte zumeist nicht.</p>
<h3>Router in der Automatisierung</h3>
<p class="flowtext">Mit der Durchdringung von Netzwerktechnik in der industriellen <a title="Automatisierung" href="http://de.wikipedia.org/wiki/Automatisierung">Automatisierung</a> werden verstärkt Modem-Router mit externem Zugang über Telefon- und Mobilfunkverbindungen eingesetzt. Industriegeräte sind in der Regel Software-Router auf Basis von <a title="Embedded Linux" href="http://de.wikipedia.org/wiki/Embedded_Linux">embedded Linux</a>, die nicht auf hohen Durchsatz sondern auf mechanische Robustheit, Befestigung im Schaltschrank (DIN-<a title="Hutschiene" href="http://de.wikipedia.org/wiki/Hutschiene">Hutschiene</a>) und Langlebigkeit optimiert sind.</p>
<h3>Software- oder Hardware-Router</h3>
<p class="flowtext">Generell leisten heute Software-Router wertvolle und umfangreiche Dienste – allerdings überwiegend im nicht professionellen Umfeld.</p>
<p class="flowtext">Das liegt daran, dass diese Systeme in der Regel auf einem <a title="Peripheral Component Interconnect" href="http://de.wikipedia.org/wiki/Peripheral_Component_Interconnect">PCI</a>-Bus mit <a title="32-Bit" href="http://de.wikipedia.org/wiki/32-Bit">32-Bit</a> Busbreite und 33-MHz-Taktung (PCI/32/33) beruhen. Über einen solchen <a title="Bus (Datenverarbeitung)" href="http://de.wikipedia.org/wiki/Bus_%28Datenverarbeitung%29">Bus</a> lassen sich theoretisch etwa 1000 MBit/s leiten; da die Netzwerkpakete den PCI-Bus allerdings zweimal passieren, (Karte-PCI-Arbeitsspeicher-CPU-Arbeitsspeicher-PCI-Karte) reduziert sich der Datendurchsatz auf etwa 500 MBit/s. Hieraus folgt, dass ein System auf PCI/32/33-Basis schon durch drei Fast-Ethernet-Karten im Voll-Duplex-Modus (~600 MBit/s) an seine Leistungsgrenzen stößt. Modernere Systeme mit einem PCI/64/66-Bus können maximal 2000 MBit/s leisten, was busseitig gerade noch für zwei <a title="Gigabit Ethernet" href="http://de.wikipedia.org/wiki/Gigabit_Ethernet">Gigabit-Netzwerkkarten</a> ausreicht. Noch höherwertige Systeme verfügen über mehrere unabhängige Busse und können daher auch höhere Durchsatzraten erzielen – wobei man sich ganz besonders hier die Kosten-Nutzen-Frage stellen muss. Erst moderne <a title="PCI-Express" href="http://de.wikipedia.org/wiki/PCI-Express">PCI-Express</a> Chipsätze mit 2000 MBit/s <a title="Duplex (Nachrichtentechnik)" href="http://de.wikipedia.org/wiki/Duplex_%28Nachrichtentechnik%29">vollduplex</a> pro Lane stellen ausreichende Peripherie Transferleistung für mehrere Gigabit-Ethernet Verbindungen zur Verfügung. Da bislang alle Werte theoretischer Art sind und in der Praxis nicht nur Daten durch den Bus geleitet werden, sondern auch Routing-Entscheidungen getroffen werden müssen, wird ein Software-Router weiter an Leistung einbüßen. Vorsichtigerweise sollte man in der Praxis nur von der Hälfte des theoretisch möglichen Datendurchsatzes ausgehen. Wer mit solchen Datenraten leben kann, ist mit einem Software-Router, zumindest was die Leistung angeht, gut bedient.</p>
<p class="flowtext">Hardware-Router sind, da sie über spezielle Hochleistungsbusse oder „cross bars“ verfügen können, in der Leistung deutlich überlegen – was sich allerdings auch im Preis widerspiegelt. Zusätzlich sind diese Systeme für den ausfallsicheren Dauerbetrieb ausgelegt (<a title="Verfügbarkeit" href="http://de.wikipedia.org/wiki/Verf%C3%BCgbarkeit">Verfügbarkeit</a> von 99,999 % und höher). Einfache PCs können da nicht mithalten, hochwertige Server und Workstations verfügen aber ebenfalls über redundante Komponenten und eine für viele Anwendungsfälle ausreichend hohe Ausfallsicherheit.</p>
<p class="flowtext">Übrigens bestehen manche sogenannte Hardware-Router tatsächlich aus PC-Komponenten. Lediglich das Gehäuse oder die zum Teil mechanisch veränderten PCI-Steckplätze und das „kryptische“ Betriebssystem erwecken den Anschein, es seien Spezialsysteme. Zwar arbeiten auch diese Systeme meist sehr robust und zuverlässig, dennoch wird auch hier das Routing per Software durchgeführt.</p>
<h4>Routing-Cluster</h4>
<p class="flowtext">Um z. B. ein halbes <a title="Dutzend" href="http://de.wikipedia.org/wiki/Dutzend">Dutzend</a> (oder auch mehr) Fast-Ethernet-Netze performant routen zu können, benötigt man aber dennoch nicht unbedingt einen hochpreisigen Hardware-Router. Wer geringe Einbußen bei der Übertragungs-Geschwindigkeit in Kauf nimmt, kann hierfür auch einen <em>Routing-Cluster</em> einsetzen. Dieser besteht aus je einem Software-Router (z. B. Workstation mit zwei Fast-Ethernet-LAN-Karten PCI/32/33) pro Fast-Ethernet-Strang. Die Software-Router werden über einen professionellen <a title="Switch (Computertechnik)" href="http://de.wikipedia.org/wiki/Switch_%28Computertechnik%29">Switch</a> mit genügend vielen Ports und entsprechend hoher Durchsatzrate (einige Tausend MBit/s) miteinander verbunden. Im Unterschied zu Netzen mit zentralem Backbone entspricht die maximale Datendurchsatzrate des gesamten <em>Routing-Clusters</em> der maximalen Durchsatzrate des zentralen Switches (einige Tausend MBit/s). Diese Verfahrensweise ist nicht auf Fast-Ethernet beschränkt; beispielsweise lassen sich aus schnelleren Einzelkomponenten (z. B. Workstation mit zwei Gigabit-Ethernet-LAN-Karten PCI/64/66) auch leistungsstarke Gigabit-Ethernet-Routing-Cluster bauen. Optional können die Cluster auch <a title="Redundant" href="http://de.wikipedia.org/wiki/Redundant">redundant</a> (z. B. per High-Availability-Unix oder HA-Linux) ausgelegt sein. Solche Cluster-Systeme benötigen zwar relativ viel Platz und erreichen nicht die Leistung und Zuverlässigkeit von Hochgeschwindigkeitsroutern, dafür sind sie aber höchst modular, gut skalierbar, vergleichsweise performant und dennoch kostengünstig; daher findet man sie dort, wo Kosten höher als Performance bewertet werden, beispielsweise in Schulen und Universitäten.</p>
<h2>Aussprache</h2>
<p class="flowtext">Uneinigkeit gibt es bei der Aussprache des Wortes <em>Router</em>. Im britischen Englisch findet man in der Regel <span class="IPA"><a title="Liste der IPA-Zeichen" href="http://de.wikipedia.org/wiki/Liste_der_IPA-Zeichen"><span title="Aussprache, IPA">&#8216;ruːtə(r)</span></a></span> <a class="external text" title="http://www.m-w.com/cgi-bin/audio.pl?router02.wav=router" rel="nofollow" href="http://www.m-w.com/cgi-bin/audio.pl?router02.wav=router">(Aussprache)</a>, während man im amerikanischen Englisch eher von <span class="IPA"><a title="Liste der IPA-Zeichen" href="http://de.wikipedia.org/wiki/Liste_der_IPA-Zeichen"><span title="Aussprache, IPA">&#8216;raʊ̯tə(r)</span></a></span> <a class="external text" title="http://www.m-w.com/cgi-bin/audio.pl?router01.wav=router" rel="nofollow" href="http://www.m-w.com/cgi-bin/audio.pl?router01.wav=router">(Aussprache)</a> spricht.</p>
<p class="flowtext">Der Ursprung des Wortes stammt aus dem militärischen Bereich, da das TCP/IP Protokoll eine ursprüngliche Erfindung der DARPA (Defense Advanced Research Projects Agency, die zentrale Forschungs- und Entwicklungseinrichtung des amerikanischen Verteidigungsministeriums) ist.</p>
<p class="flowtext">Der Begriff Router resultiert aus dem amerikanischen Wort route (<span class="IPA"><a title="Liste der IPA-Zeichen" href="http://de.wikipedia.org/wiki/Liste_der_IPA-Zeichen"><span title="Aussprache, IPA">&#8216;raʊ̯t</span></a></span>) für Marschroute. Die korrekte Aussprache wäre also <span class="IPA"><a title="Liste der IPA-Zeichen" href="http://de.wikipedia.org/wiki/Liste_der_IPA-Zeichen"><span title="Aussprache, IPA">&#8216;raʊ̯tə(r)</span></a></span>, für das Gerät das die Marschroute für die Datenpakete im Netz festlegt und verschiedene Netze miteinander verbindet.</p>
<p class="flowtext">Im britischen Englisch wird jedoch auch Marschroute (route) als <span class="IPA"><a title="Liste der IPA-Zeichen" href="http://de.wikipedia.org/wiki/Liste_der_IPA-Zeichen"><span title="Aussprache, IPA">&#8216;ruːt</span></a></span> ausgesprochen, wodurch die Konfusion über die unterschiedliche Aussprache entstanden ist. Korrekt ist jedoch die amerikanische Variante der Aussprache für Router: <span class="IPA"><a title="Liste der IPA-Zeichen" href="http://de.wikipedia.org/wiki/Liste_der_IPA-Zeichen"><span title="Aussprache, IPA">&#8216;raʊ̯tə(r)</span></a></span>.</p>
<p class="flowtext">Quelle: <a title="Wikipedia" href="http://de.wikipedia.org/wiki/Router" target="_blank">Wikipedia</a>, für alle Wissens-Artikel gilt die GNU FDL (GNU Freie Dokumentationslizenz). Die Wikipedia ist eine Enzyklopädie, deren Inhalte frei nutzbar sind.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hwboard.de/hwblog/2008/08/wissen-router/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wissen: Front Side Bus (FSB)</title>
		<link>http://www.hwboard.de/hwblog/2008/08/wissen-front-side-bus-fsb/</link>
		<comments>http://www.hwboard.de/hwblog/2008/08/wissen-front-side-bus-fsb/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 18:56:52 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Mainboards & BIOS]]></category>
		<category><![CDATA[Prozessoren]]></category>
		<category><![CDATA[Wissen]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Front Side Bus]]></category>
		<category><![CDATA[FSB]]></category>
		<category><![CDATA[Mainboards]]></category>
		<category><![CDATA[Prozessor]]></category>

		<guid isPermaLink="false">http://www.hwboard.de/hwblog/?p=1011</guid>
		<description><![CDATA[Front Side Bus (FSB) ist ein Begriff aus der Computertechnik.
Der FSB ist eine Schnittstelle zwischen dem Hauptprozessor (CPU) und der Northbridge. Die Northbridge verbindet über andere Busse weitere Komponenten, zum Beispiel Controller für Laufwerke, PCI-Bus, AGP-Bus, Southbridge und den Arbeitsspeicher (→RAM). Der FSB gibt den Takt aller angesprochenen Komponenten vor, der mithilfe von Teilern und [...]]]></description>
			<content:encoded><![CDATA[<p class="flowtext"><strong>Front Side Bus</strong> (<strong>FSB</strong>) ist ein Begriff aus der <a title="Computertechnik" href="http://de.wikipedia.org/wiki/Computertechnik">Computertechnik</a>.</p>
<p class="flowtext">Der FSB ist eine <a title="Schnittstelle" href="http://de.wikipedia.org/wiki/Schnittstelle">Schnittstelle</a> zwischen dem <a title="Hauptprozessor" href="http://de.wikipedia.org/wiki/Hauptprozessor">Hauptprozessor</a> (CPU) und der <a title="Northbridge" href="http://de.wikipedia.org/wiki/Northbridge">Northbridge</a>. Die Northbridge verbindet über andere <a title="Bus (Datenverarbeitung)" href="http://de.wikipedia.org/wiki/Bus_%28Datenverarbeitung%29">Busse</a> weitere Komponenten, zum Beispiel <a title="Controller (Hardware)" href="http://de.wikipedia.org/wiki/Controller_%28Hardware%29">Controller</a> für Laufwerke, <a title="Peripheral Component Interconnect" href="http://de.wikipedia.org/wiki/Peripheral_Component_Interconnect">PCI</a>-Bus, <a title="Accelerated Graphics Port" href="http://de.wikipedia.org/wiki/Accelerated_Graphics_Port">AGP</a>-Bus, <a title="Southbridge" href="http://de.wikipedia.org/wiki/Southbridge">Southbridge</a> und den <a title="Arbeitsspeicher" href="http://de.wikipedia.org/wiki/Arbeitsspeicher">Arbeitsspeicher</a> (→<a title="Random Access Memory" href="http://de.wikipedia.org/wiki/Random_Access_Memory">RAM</a>). Der FSB gibt den Takt aller angesprochenen Komponenten vor, der mithilfe von Teilern und Multiplikatoren verändert werden kann (Beispiel: Prozessortakt = FSB × CPU-Multiplikator). Neuere <a title="AMD" href="http://de.wikipedia.org/wiki/AMD">AMD</a>-CPUs mit integriertem Speichercontroller (z. B. <a title="AMD Athlon 64" href="http://de.wikipedia.org/wiki/AMD_Athlon_64">Athlon 64</a> und <a title="AMD Opteron" href="http://de.wikipedia.org/wiki/AMD_Opteron">Opteron</a>) sind nicht mehr über einen klassischen FSB an die <a title="Northbridge" href="http://de.wikipedia.org/wiki/Northbridge">Northbridge</a> angebunden, sondern über eine <a title="HyperTransport" href="http://de.wikipedia.org/wiki/HyperTransport">HyperTransport</a>-Verbindung, deren Takt über einen Multiplikator und den sogenannten Referenztakt von 200 MHz festgelegt wird. Die HyperTransport-Verbindung und der Prozessortakt (Prozessortakt = Referenztakt × CPU-Multiplikator) sind die einzigen Takte, die direkt vom Referenztakt abhängen. Häufig wird der Referenztakt fälschlicherweise als „FSB“ bezeichnet (siehe →<a title="HyperTransport" href="http://de.wikipedia.org/wiki/HyperTransport">HyperTransport</a>). Probleme wie <a title="Asynchron" href="http://de.wikipedia.org/wiki/Asynchron">asynchroner</a> Takt zwischen Hauptspeicher und FSB gehören durch die Integration des Speichercontrollers in den Hauptprozessor der Vergangenheit an.</p>
<p class="flowtext">An der <a title="Southbridge" href="http://de.wikipedia.org/wiki/Southbridge">Southbridge</a> sind Komponenten mit geringerem Datenaufkommen angebunden, zum Beispiel <a title="Maus (EDV)" href="http://de.wikipedia.org/wiki/Maus_%28EDV%29">Maus</a>, <a title="Tastatur" href="http://de.wikipedia.org/wiki/Tastatur">Tastatur</a>, <a title="Universal Serial Bus" href="http://de.wikipedia.org/wiki/Universal_Serial_Bus">USB</a>, <a title="Soundchip" href="http://de.wikipedia.org/wiki/Soundchip">Soundchip</a>, <a title="Serielle Datenübertragung" href="http://de.wikipedia.org/wiki/Serielle_Daten%C3%BCbertragung">serielle</a>, <a title="Parallele Schnittstelle" href="http://de.wikipedia.org/wiki/Parallele_Schnittstelle">parallele</a> sowie die <a title="Integrated Drive Electronics" href="http://de.wikipedia.org/wiki/Integrated_Drive_Electronics">IDE</a>/<a title="Serial ATA" href="http://de.wikipedia.org/wiki/Serial_ATA">SATA</a>-Schnittstellen.</p>
<p class="flowtext">Die Leistung des <em>Front Side Bus</em> wird in der Regel mit der Taktfrequenz des Busses angegeben, oder bei <a title="Double Data Rate" href="http://de.wikipedia.org/wiki/Double_Data_Rate">DDR</a>- beziehungsweise <a title="Double Data Rate" href="http://de.wikipedia.org/wiki/Double_Data_Rate">QDR</a>-Bussen mit dem entsprechenden Vielfachen. Die Datenbreite oder maximale Übertragungsrate wird dagegen meist nicht als charakteristisches Merkmal angegeben.</p>
<h2>FSB-Verfahren</h2>
<p class="flowtext">Bei auf <a title="Pentium 4" href="http://de.wikipedia.org/wiki/Pentium_4">Pentium 4</a>-, <a title="Pentium M" href="http://de.wikipedia.org/wiki/Pentium_M">Pentium M</a>- oder <a title="Intel Core" href="http://de.wikipedia.org/wiki/Intel_Core">Intel Core</a>-basierenden Systemen arbeitet der <em>Front Side Bus</em> im QDR-Verfahren (<a title="Double Data Rate" href="http://de.wikipedia.org/wiki/Double_Data_Rate"><em>Q</em>uadruple <em>D</em>ata <em>R</em>ate</a> = vierfache Datenrate) und überträgt vier Datenpakete pro Taktsignal. Dieses Verfahren wurde von <a title="Intel" href="http://de.wikipedia.org/wiki/Intel">Intels</a> Marketing-Abteilung <em>quadpumped</em> genannt, um diese technische Eigenschaft besser und klangvoller vermitteln zu können. Allerdings entstanden dadurch auch immer wieder falsche Angaben zur Taktfrequenz des FSB: der FSB dieser Prozessoren läuft auf einer Taktfrequenz von 100 bis 400 MHz („FSB 400“ bis „FSB 1600“), jedoch wird er immer wieder gerne, wenn auch falsch, als 400- bis 1600-„MHz“-FSB bezeichnet, was die Wortkreation „Marketing-MHz“ hervorgebracht hat.</p>
<p class="flowtext">Ein ähnliches Verfahren beim FSB setzt <a title="Advanced Micro Devices" href="http://de.wikipedia.org/wiki/Advanced_Micro_Devices">AMD</a> beim <a title="Sockel A" href="http://de.wikipedia.org/wiki/Sockel_A">Sockel A</a> oder IBM beim <a title="PowerPC G5" href="http://de.wikipedia.org/wiki/PowerPC_G5">PowerPC G5</a> ein: Dort läuft der FSB im DDR-Verfahren (<a title="Double Data Rate" href="http://de.wikipedia.org/wiki/Double_Data_Rate"><em>D</em>ouble <em>D</em>ata <em>R</em>ate</a> = zweifache Datenrate) und überträgt zwei Datenpakete pro Taktsignal. Auch hier ist oft fälschlicherweise von 200- bis 400-„MHz“-FSB die Rede, obwohl es sich tatsächlich um 100- bis 200-MHz-FSB („FSB 200“ bis „FSB 400“) handelt.</p>
<p class="flowtext">Bei älteren Computersystemen wie <a title="Sockel 7" href="http://de.wikipedia.org/wiki/Sockel_7">Sockel 7</a>, <a title="Sockel 370" href="http://de.wikipedia.org/wiki/Sockel_370">Sockel 370</a> oder älter läuft der FSB im SDR-Verfahren (<em>S</em>ingle <em>D</em>ata <em>R</em>ate = einfache Datenrate) und überträgt ein Datenpaket pro Taktsignal. Eine Angabe wie „FSB 100“ bezeichnet dort auch immer die Taktfrequenz vom FSB in MHz (hier 100 MHz).</p>
<h2>DDR „Doublepumped“ FSB</h2>
<p class="flowtext">Benutzt z. B. von AMD beim <a title="Sockel A" href="http://de.wikipedia.org/wiki/Sockel_A">Sockel A</a>.</p>
<ul>
<li>100 MHz = FSB 200</li>
<li>133 MHz = FSB 266</li>
<li>166 MHz = FSB 333</li>
<li>200 MHz = FSB 400</li>
</ul>
<h2>QDR „Quadpumped“ FSB</h2>
<p class="flowtext">Benutzt zum Beispiel von <a title="Intel" href="http://de.wikipedia.org/wiki/Intel">Intel</a> bei <a title="Sockel 478" href="http://de.wikipedia.org/wiki/Sockel_478">Sockel 478</a>, <a title="Sockel 479" href="http://de.wikipedia.org/wiki/Sockel_479">Sockel 479</a>, <a title="Sockel 775" href="http://de.wikipedia.org/wiki/Sockel_775">Sockel 775</a> und andere.</p>
<ul>
<li>100 MHz = FSB 400</li>
<li>133 MHz = FSB 533</li>
<li>166 MHz = FSB 667</li>
<li>200 MHz = FSB 800</li>
<li>266 MHz = FSB 1066</li>
<li>333 MHz = FSB 1333</li>
<li>400 MHz = FSB 1600</li>
</ul>
<p class="flowtext">Quelle: <a title="Wikipedia" href="http://de.wikipedia.org/wiki/Front_Side_Bus" target="_blank">Wikipedia</a>, für alle Wissens-Artikel gilt die GNU FDL (GNU Freie Dokumentationslizenz). Die Wikipedia ist eine Enzyklopädie, deren Inhalte frei nutzbar sind.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hwboard.de/hwblog/2008/08/wissen-front-side-bus-fsb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wissen: Shader</title>
		<link>http://www.hwboard.de/hwblog/2008/08/wissen-shader/</link>
		<comments>http://www.hwboard.de/hwblog/2008/08/wissen-shader/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 13:17:32 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Grafikkarten]]></category>
		<category><![CDATA[Wissen]]></category>
		<category><![CDATA[Grafikkarte]]></category>
		<category><![CDATA[Shader]]></category>

		<guid isPermaLink="false">http://www.hwboard.de/hwblog/?p=984</guid>
		<description><![CDATA[Shader, auch als Schattierer bezeichnet, sind Hardware- oder Softwaremodule, die bestimmte Renderingeffekte bei der 3D-Computergrafik implementieren. Aus technischer Sicht bezeichnet „Shader“ denjenigen Teil eines Renderers, der für die Ermittlung der Farbe eines Objektes zuständig ist – im Gegensatz zu dem Teil, der die Sichtbarkeit des Objektes ermittelt. Shader wurden ursprünglich für das Shading, also die [...]]]></description>
			<content:encoded><![CDATA[<p class="flowtext"><strong>Shader</strong>, auch als <strong>Schattierer</strong> bezeichnet, sind <a title="Hardware" href="http://de.wikipedia.org/wiki/Hardware">Hardware</a>- oder <a title="Software" href="http://de.wikipedia.org/wiki/Software">Softwaremodule</a>, die bestimmte <a title="Rendering" href="http://de.wikipedia.org/wiki/Rendering">Renderingeffekte</a> bei der <a title="3D-Computergrafik" href="http://de.wikipedia.org/wiki/3D-Computergrafik">3D-Computergrafik</a> implementieren. Aus technischer Sicht bezeichnet „Shader“ denjenigen Teil eines Renderers, der für die Ermittlung der Farbe eines Objektes zuständig ist – im Gegensatz zu dem Teil, der die <a title="Sichtbarkeitsproblem" href="http://de.wikipedia.org/wiki/Sichtbarkeitsproblem">Sichtbarkeit des Objektes ermittelt</a>. Shader wurden ursprünglich für das <a title="Shading" href="http://de.wikipedia.org/wiki/Shading">Shading</a>, also die Beleuchtungs-Berechnung, entwickelt, werden aber mittlerweile auch für andere Dinge verwendet.</p>
<p class="flowtext">Der Begriff „Shader“ wird sowohl für die Hardware-Shader als auch für die darauf laufenden Programme selbst verwendet.</p>
<h2>Hardware-Shader</h2>
<p class="flowtext">Hardware-Shader (auch: Shadereinheiten, Shader Units) sind kleine Recheneinheiten in aktuellen Grafikchips (unter Windows seit <a title="DirectX" href="http://de.wikipedia.org/wiki/DirectX">DirectX</a>-Version 8, plattformunabhängig seit <a title="OpenGL" href="http://de.wikipedia.org/wiki/OpenGL">OpenGL</a> 2.0 ansprechbar). Traditionell wird zwischen zwei Typen unterschieden, den Pixel- und den Vertex-Shadern. Shader können zur Erzeugung von 3D-Effekten programmiert werden. Während <a title="Pixel-Shader" href="http://de.wikipedia.org/wiki/Pixel-Shader">Pixel-Shader</a> die Bildpunkte verändern und auch die Pixelfarbe berechnen können, dienen <a title="Vertex-Shader" href="http://de.wikipedia.org/wiki/Vertex-Shader">Vertex-Shader</a> geometrischen Berechnungen und dynamischen Veränderungen von Objekten. So erzeugen z.B. beide Shader kombiniert den Wassereffekt im <a title="Computerspiel" href="http://de.wikipedia.org/wiki/Computerspiel">Computerspiel</a> <a title="Far Cry" href="http://de.wikipedia.org/wiki/Far_Cry">Far Cry</a>. Sie können auch zur Berechnung von <a title="Lava" href="http://de.wikipedia.org/wiki/Lava">Lava</a>, <a title="Lack" href="http://de.wikipedia.org/wiki/Lack">Lack</a>, <a title="Fell" href="http://de.wikipedia.org/wiki/Fell">Fell</a> usw. eingesetzt werden. Seit DirectX 10 ist als dritter Shader-Typ der <a title="Geometry-Shader" href="http://de.wikipedia.org/wiki/Geometry-Shader">Geometry-Shader</a> hinzugekommen, der die vom Vertex-Shader ausgegebenen Polygondaten erhält und diese noch weit flexibler bearbeiten kann, sogar weitere Geometrie zur Szene hinzufügen kann (der Vertex-Shader kann nur bestehende Geometrie manipulieren).</p>
<p class="flowtext">Pixel-, Vertex- und Geometry-Shadereinheiten dürfen nicht als vom Rest getrennte Recheneinheiten (wie bspw. <a title="Koprozessor" href="http://de.wikipedia.org/wiki/Koprozessor">Koprozessoren</a>) verstanden werden, sondern als fester Teil des Grafikchips innerhalb seiner Rendering-<a title="Pipeline (Prozessor)" href="http://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29">Pipelines</a>. So ist der Vertex-Shader lediglich eine programmierbare <a title="Transform and Lighting" href="http://de.wikipedia.org/wiki/Transform_and_Lighting">T&amp;L-Einheit</a>, der Pixel-Shader entstand historisch aus dem Combiner – der genaue Aufbau der Shader-Hardware ist geheim. Konformität dieser Shader-Einheiten zu den Standards DirectX und OpenGL wird über den Grafiktreiber hergestellt.</p>
<p class="flowtext">Da sich der Funktionsumfang von Vertex- und Pixel-Shadern mit der Zeit immer weiter erhöhte, wurde letztlich das Konzept der <em>Unified Shader</em> entwickelt, bei dem der hardwareseitige Unterschied zwischen Vertex-, Pixel- und Geometry-Shader verschwindet. Hierbei können alle Shader-Einheiten des Grafikchips nun dieselben Operationen ausführen, womit eine feste Trennung zwischen den drei Shader-Typen nicht mehr sinnvoll ist. In Folge dessen kann nun der Grafiktreiber selbst entscheiden, welche Shader-Einheit zu welchem Zeitpunkt als Vertex-, als Pixel- oder als Geometry-Shader eingesetzt wird, was potenziell eine bessere Leistungsausbeute als bei Grafikkarten mit fest eingeteilten Shader-Typen bedeutet. Aktuelle Versionen von OpenGL und DirectX unterstützen das Unified Shader-Konzept bereits und ab der <a title="Nvidia-GeForce-8-Serie" href="http://de.wikipedia.org/wiki/Nvidia-GeForce-8-Serie">Nvidia-GeForce-8-Serie</a> und <a title="ATI-Radeon-HD-2000-Serie" href="http://de.wikipedia.org/wiki/ATI-Radeon-HD-2000-Serie">ATI-Radeon-HD-2000-Serie</a> gibt es auch schon Grafikkarten, die es unterstützen.</p>
<h3>Verarbeitungskette</h3>
<ul>
<li>CPU sendet Steuerbefehle und Geometrie-Daten an die Grafikkarte.</li>
<li>Im <a title="Vertex-Shader" href="http://de.wikipedia.org/wiki/Vertex-Shader">Vertex-Shader</a> wird die Geometrie transformiert, außerdem werden bestimmte Licht-Berechnungen ausgeführt.</li>
<li>Ist ein <a title="Geometry-Shader" href="http://de.wikipedia.org/wiki/Geometry-Shader">Geometry-Shader</a> auf dem Grafikchip vorhanden, durchlaufen die Geometriedaten nun diesen, hierbei werden weitere Veränderungen an der Szene vorgenommen.</li>
<li>Die fertigtransformierte Geometrie gelangt in das <a class="new" title="Triangle Setup (Seite nicht vorhanden)" href="http://de.wikipedia.org/w/index.php?title=Triangle_Setup&amp;action=edit&amp;redlink=1">Triangle Setup</a>. Dreiecke werden in <a class="new" title="Quad (Computergrafik) (Seite nicht vorhanden)" href="http://de.wikipedia.org/w/index.php?title=Quad_%28Computergrafik%29&amp;action=edit&amp;redlink=1">Quads</a> zerlegt (ein Quad besteht aus 2 × 2 Pixeln.)</li>
<li>Die erste Stufe des <a title="Pixel-Shader" href="http://de.wikipedia.org/wiki/Pixel-Shader">Pixel-Shaders</a> ist der <a class="new" title="Interpolator (Seite nicht vorhanden)" href="http://de.wikipedia.org/w/index.php?title=Interpolator&amp;action=edit&amp;redlink=1">Interpolator</a>. Hier werden bestimmte, nur pro Eckpunkt (<a title="Vertex" href="http://de.wikipedia.org/wiki/Vertex">Vertex</a>) vorliegende Informationen über die Dreiecksfläche interpoliert.</li>
<li>Im Pixel-Shader gibt es arithmetische Rechenwerke (Shader Units) und Textur-Einheiten (Texture Mapping Units, TMUs).</li>
<li>Nachdem die Pixelberechnung abgeschlossen ist, wird der Test auf Sichtbarkeit (Z-Test) ausgeführt. Bei Sichtbarkeit findet ein Schreibvorgang in den Framebuffer statt.</li>
</ul>
<h2>Programmierung</h2>
<p class="flowtext">In <a title="OpenGL" href="http://de.wikipedia.org/wiki/OpenGL">OpenGL</a> ist seit Version 2.0 eine eigene <a title="C (Programmiersprache)" href="http://de.wikipedia.org/wiki/C_%28Programmiersprache%29">C</a>-ähnliche Shader-Sprache integriert (<a title="OpenGL Shading Language" href="http://de.wikipedia.org/wiki/OpenGL_Shading_Language">OpenGL Shading Language</a>, kurz GLSL); davor war Shaderprogrammierung nur durch herstellerabhängige <a title="Schnittstelle" href="http://de.wikipedia.org/wiki/Schnittstelle">Schnittstellen</a> möglich. Durch den Einsatz von GLSL ist man nicht mehr auf die Verwendung <a title="Proprietär" href="http://de.wikipedia.org/wiki/Propriet%C3%A4r">proprietärer</a> Technologie sowie den Einsatz auf der Windows-Plattform beschränkt und kann Shader nun auf unterschiedlichsten Plattformen, wie <a title="Mac OS X" href="http://de.wikipedia.org/wiki/Mac_OS_X">Mac OS X</a> oder <a title="Linux" href="http://de.wikipedia.org/wiki/Linux">Linux</a>, benutzen.</p>
<p class="flowtext">Unter DirectX werden Shader in der Sprache <a title="High Level Shading Language" href="http://de.wikipedia.org/wiki/High_Level_Shading_Language">HLSL</a> programmiert, wobei je nach DirectX-Version verschiedene Shader-Versionen angeboten werden, die sich in ihrer Programmierbarkeit unterscheiden. Da nicht jede Grafikkarte jede Shaderversion unterstützt, muss bei der Programmierung von 3D-Grafikanwendungen darauf geachtet werden, dass eine Ausweichlösung für ältere Grafikkarten existiert. Die einzelnen Shader-Lösungen in einer Anwendung für verschiedene Shaderversionen bzw. verschiedene Grafikkarten nennt man <em>Renderpfade</em>. Die folgende Tabelle zeigt den Zusammenhang zwischen den einzelnen DirectX- und Shader-Versionen:</p>
<table class="prettytable" border="0">
<tbody>
<tr bgcolor="#efefef">
<td style="border-style: solid; border-width: 1px;">DirectX-Version</td>
<td style="border-style: solid; border-width: 1px;">Pixel-Shader</td>
<td style="border-style: solid; border-width: 1px;">Vertex-Shader</td>
</tr>
<tr bgcolor="#ffffff">
<td style="border-style: solid; border-width: 1px;">8.0</td>
<td style="border-style: solid; border-width: 1px;">1.0, 1.1</td>
<td style="border-style: solid; border-width: 1px;">1.0</td>
</tr>
<tr bgcolor="#ffffff">
<td style="border-style: solid; border-width: 1px;">8.1</td>
<td style="border-style: solid; border-width: 1px;">1.2, 1.3, 1.4</td>
<td style="border-style: solid; border-width: 1px;"></td>
</tr>
<tr bgcolor="#ffffff">
<td style="border-style: solid; border-width: 1px;">9.0</td>
<td style="border-style: solid; border-width: 1px;">2.0</td>
<td style="border-style: solid; border-width: 1px;">2.0</td>
</tr>
<tr bgcolor="#ffffff">
<td style="border-style: solid; border-width: 1px;">9.0a</td>
<td style="border-style: solid; border-width: 1px;">2_A, 2_B</td>
<td style="border-style: solid; border-width: 1px;">2.x</td>
</tr>
<tr bgcolor="#ffffff">
<td style="border-style: solid; border-width: 1px;">9.0c</td>
<td style="border-style: solid; border-width: 1px;">3.0</td>
<td style="border-style: solid; border-width: 1px;">3.0</td>
</tr>
<tr bgcolor="#ffffff">
<td style="border-style: solid; border-width: 1px;">10.0</td>
<td style="border-style: solid; border-width: 1px;">4.0</td>
<td style="border-style: solid; border-width: 1px;">4.0</td>
</tr>
<tr bgcolor="#ffffff">
<td style="border-style: solid; border-width: 1px;">10.1</td>
<td style="border-style: solid; border-width: 1px;">4.1</td>
<td style="border-style: solid; border-width: 1px;">4.1</td>
</tr>
</tbody>
</table>
<p class="flowtext">Pixel- und Vertex-Shader 1.0 waren für den <a title="3dfx" href="http://de.wikipedia.org/wiki/3dfx">3dfx</a> Rampage vorgesehen, der jedoch nie auf den Markt kam. Pixel-Shader 1.2 wird von bestimmten 3D-Karten von <a title="3DLabs" href="http://de.wikipedia.org/wiki/3DLabs">3DLabs</a> genutzt, Pixel-Shader 1.3 von der <a title="Nvidia" href="http://de.wikipedia.org/wiki/Nvidia">Nvidia</a> GeForce 4 Ti und Matrox Parhelia unterstützt.</p>
<p class="flowtext">Quelle: <a title="Wikipedia" href="http://de.wikipedia.org/wiki/Shader" target="_blank">Wikipedia</a>, für alle Wissens-Artikel gilt die GNU FDL (GNU Freie Dokumentationslizenz). Die Wikipedia ist eine Enzyklopädie, deren Inhalte frei nutzbar sind.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hwboard.de/hwblog/2008/08/wissen-shader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
