Larry L. Peterson ist Professor für Informatik (Computer Science) an der Princeton-Universität,davor lehrte er an der Universität von Arizona. Er war maßgeblich am Design und an der Bewertungvon verschiedenen Netzwerk-protokollen beteiligt und leitet gegenwärtig das .Planet Lab Projectr Er ist Herausgeber von ACM Transaaions on Computer Systems und hat in Programmausschüssenfür SOSP, SIGCOMM, OSDl und ASPLOS mitgear-beitet. Er ist ACM-Fellow und Mitglied der InternetForschungsgruppe end-to-Ende.
Bruce D d e ist seit 1995 bei Cisco Systems tätig. Er ist Cisco Fellow und arbeitet an der Entwicklung von MPLS und an Techniken zur Verbesserung der Dienstgüte. Er ist Autor zahlreicher Zeitschriftenartikel, Konferenzbeiträge und RFCs, außerdem Koautor tweier Bücher von MKP. Daneben ist er aktiv in der l€iT (Intemet EngineeringTask Force) und der »End-to-End«-Forschungsgruppetätig und ist Senior Member der IEEE.
Vorwort
David Clark Massachusetts Institute of Technology Die vorliegende dritte Auflage ist eine weitere große Verbesserung dieses klassischen Netzwerkbuchs. Das Feld verändert sich weiterhin sehr schnell und neue Konzepte tauchen mit erstaunlicher Geschwindigkeit auf. Diese Version des Buchs diskutiert deswegen viele der neuen Themen wie zum Beispiel Peer-to-Peer-Netzwerke, Ipv6, Overlay- und Inhaltsverteilungs-Netzwerke, MPLS sowie Switching-, Wireless- und mobile Technolgien und vieles mehr. Es enthält einen stärkeren Fokus auf Anwendungen, was die wachsende Vertrautheit sowohl der Studenten als auch der Profis mit einer großen Anzahl an vernetzten Applikationen widerspiegelt. Das Buch führt seine Tradition weiter, alle Fakten zu liefern, die man braucht, um die heutige Welt zu verstehen. Dennoch wurde das höhere Ziel, nicht nur die Fakten, sondern auch das Warum hinter den Fakten aufzuzeigen, nicht aus den Augen verloren. Die Philosophie des Buchs bleibt die Gleiche: zeitgemäß und dennoch zeitlos zu sein. Was dieses Buch über die heutige vernetze Welt vermittelt, wird jedem den nötigen Durchblick geben, um in der morgigen Situation zu arbeiten. Und das ist wichtig, vor allem weil es keinen Grund gibt anzunehmen, dass sich die Entwicklung der Netzwerke in absehbarer Zeit verlangsamen wird. Es ist heute schon schwer sich vorzustellen, wie die Welt vor nur zehn Jahren aussah. Damals wurde das Internet noch nicht kommerziell genutzt. Zehn Megabit pro Sekunde war wirklich schnell. Niemand machte sich über Spam oder Virusattacken Gedanken - wir ließen unsere Computer unbewacht und machten uns kaum Sorgen. Jene Zeiten waren einfacher, dafür kann es heute aufregender sein. Und sicherlich wird es morgen wieder anders sein: mindestens genau so aufregend, mit Glück nicht weniger zuverlässig und sicherlich größer, schneller und angefüllt mit frischen Innovationen. Ich hoffe doch, dass sich Larry und Bruce ein wenig entspannen können, bevor sie mit der nächsten Überarbeitung anfangen müssen. Benutzen Sie in der Zwischenzeit dieses Buch, um etwas über die Gegenwart zu lernen, und bereiten Sie sich damit auf die Zukunft vor. Viel Spaß.
Vorwort zur ersten Auflage
David Clark Massachusetts Institute of Technology Der Begriff Spaghetti-Code wird generell als Beleidigung verstanden. Alle guten Computerwissenschaftler huldigen dem Gott der Modularität, weil Modularität viele Vorteile bingt, darunter den unschlagbaren Vorteil, dass man nicht alle Teile eines Problems gleichzeitig verstehen muss, um es zu lösen. Modularität spielt daher eine Rolle bei der Darstellung von Ideen in einem Buch und im Schreiben von Code. Ist der Inhalt eines Buchs effektiv - also modular - aufgebaut, kann der Leser arn Anfang beginnen und es bis zum Ende durchlesen. Der Bereich der Netzwerkprotokolle ist vielleicht einzigartig darin, dass die ' *eigentliche«Modularität uns in der Form eines internationalen Standards weitergegeben wurde: dem aus sieben Schichten bestehenden Referenzmodell für Netzwerkprotokolle von der ISO. Dieses Modell, das Modularität in einem schichtweiSen Ansatz angeht, wird fast universell als Ausgangspunkt für Diskussionen über Protokollorganisation benutzt, gleichgültig, ob das fragliche Design mit dem Modell übereinstimmt oder davon abweicht. Es scheint auf der &md zu liegen, ein Buch über Netzwerke rund um dieses Schichtenmodell aufzubauen. Andererseits birgt dies eine gewisse Gefahr, weil das OSI-Modell eigentlich bei der Organisation der Kernkonzepte von Netzwerken nicht erfolgreich ist. Grundlegende Anforderungen wie Zuverlässigkeit, Flusskontrolle oder Sicherheit können auf den meisten, wenn nicht allen OSI-Schichten aufgegriffen werden. Diese Tatsache führte zu grof3er Verwirrung bei dem Versuch, das Referenzmodell zu verstehen. Tatsächlich hat ein Buch, das strikt nach einem Schichtenmadell strukturiert ist, einige Attribute von Spaghetti-Code. Das führt uns zu diesem Buch. Peterson und Davie folgten dem traditionellen Schichtenmodell, erheben aber nicht den Anspruch, dass dieses Modell tatsächlich bei dem Verständnis der komplexen Problematik von Netzwerken hilft. Vielmehr diskutieren die Autoren die grundlegenden Konzepte völlig unabhängig von den Schichten. Nach der Lektüre dieses Buchs werden die Leser folglich Flusskontrolle, Oberlastkontrolle, Zuverlässigkeit, Datendarstellung und Synchronisation sowie die
r 1
Vonaorrzur«rt*nAuCkgr
Auswirkungen der U m d i q r P*@tf k einesi d e r -aadcrpflw0%. dbneiien ShicIite~ ~ e p s k . Dieses ist ein zeitgerechtes Buch. Es betrachtet die wichtigen, heute ira Einatz beb- Protobiie, insbesondere die Iatcfnet-Protokdh. Paerson und Davie W e n auf eine laage &schichte und viel Fdkbmng mit dem Enternet ninück. Folg: lic3i spiegelt ihr Buch nicht nur die theoretischen Fragen des Protokoilddgns, sondern die wahren Faktoren wider) die in der P r d s .eine R& spielen. Das Buch krachtet einige der Protokolle, die erst jetzt irn Entstehen sind, sodass der Leser &her sein h, eine aktueiie Perspektive zu erhdten. Nach wi&d&x'ist aber, dass die Diskussion von Grundsatzfragen auf eine W e h daqpstelit wird, die aus dw fundamentaien Natur des Problems stammt und nicht bei den Eischrankungen des dtichtwekn R e f e r e m o a oder Deoails von heutigen Psotokollen innehält. In dieser Minsicht ist dieses Buch mitgerecht und z e i h . Die Kombination aus praktid e r Relevanz, aktueilen Beispielen und so@Eiggr Er&&mg der G d b e macht dieses Buch einmalig. 1
9
.
I
Id
1n.halt
.
2
...................................................... 3 .....................................................6 NO1.2.1 KoWvitat . . . .................................................. 7 hdqni
.................. 10 ............................... 15 ................................................19 ........................................ 19 ..........................................'.....26 ............................................ 28 ..................................... 30 1.4.1 Al% md k&&s ..............................................31 1.4.2 Anwenduqdwispiel ...........................................33 1.4.3 &gehe da Pm&&1ementiq .......................... ... 36 L* ......................................................... 40 1.5.1 Wteundbm .......................................... 40 1.5.2 Y ~ - & d m i t e P r o d r l E t.................................. 44
1.23-K ,gemeinsameNutwig von Ressourcen 1.2.3 Untgrs@mpnebamerDims& ~w&%arciri1.3.3, SeaidituidprObkollc 1.3.2 aSr.&&i+ 1.3.3 ~ t & i W - A r d & & ~ ~ Is+mm~ o Nem+ofhsare n
'
......................................46 .......................... 48 z d w .................................................. 50 weiLitemtw ............................................. 52 tYhaqea ........................................................ 54 25.3 Hahg&windi&eitanetze 1.5.4 L e i ~ r d ~ g von o Anwendunp n
V
64
...................................................
Hardweb;lwwhe 66 2.1.1 Knoten 66 2.1.2 VwhM67 W n u y k GNRZ, NRZI, Manchister. 4WB) 75 E~~-VOEIFSWYAGS 79 as.i PM* C B ~ CPPP. . DDCMP) m 83 Z3.2 Bbr&&mg . % d d e ( H D L C ) E 3 3 Taktbdmw bmgtmgvon Frames (SONET) ........................ W F c h k x ~ 87 2.4.1 2-CM& 89 2A.2 I a t ~ ~ ~ . - & t h m ~ .................................. 89
...................................................... .......................................... ............................. d.............................................
.................. .................................. ....................................................
....................................... 2.4.3 ~ ( ~ ............................... W ~ 92 Zum&* ............................................ 97 ...................................... 97 25.1 Soop-ad-Wait-Aigoti* 25.2 -Windm .............................................. 100 2SW3GlekhitigeEQgieche-
.....................................109
2.6
2.7
2.8
2.9
2.10 2.1 1 2.12
..................................................
Ethernet(802.3) 110 2.6.1 Physikalische Eigenschaften ..................................... 111 2.6.2 Medienzugriffssteuerung(MAC)................................. 113 2.6.3 Erfahrung mit Ethernet 118 Token-Ring (802.5.FDDI) 119 120 2.7.1 P h p i k a l i e Eigenschaften 2.7.2 M A C beim Token-Ring ........................................ 121 124 2.7.3 Token-Ring-Wartung 2.7.4 Frame-Format 125 2.7.5 FDDI 125 Drahtlose Neae (802.11) 130 2.8.1 Physikalische Eigenschaften 130 2.8.2 Koliisionsvermeidung 131 2.8.3 Verteilsystem 133 2.8.4 Frame-Format 135 Netzwerkkarten 136 2.9.1 Komponenten .................... 136 137 2.9.2 Sicht des Hosts 2.9.3 Speicher-Flaschenhals 142 Zusammenfassung 145 Weiterführende Literatur 147 Obungen 148
........................................ .......................................... ..................................... .......................................... ...............................................
...................................................... ........................................... ..................................... .......................................... ................................................ ............................................... ................................................... ,.......................... ............................................... ......................................... .................................................
............................................ ........................................................
Paketvermittiung 164 3.1 Vermittlung und Weiterleitung 166 3.1.1 Datagramme 168 3.1.2 Virtuelle Leitungsvermittlung 170 3.1.3 Source-Routing 177 3.2 Bridges und LAN-Switche 181 3.2.1 Lernende Bridges 181 3.2.2 Spanning-Tree-Algorithmus..................................... 184 3.2.3 Broadcast und Multicast ....................................... 189 3.2.4 Beschränkungen von Bridges .................................... 190 192 3.3 Zellenvermittlung (ATM) 3.3.1 Z e h n .....................................................193 3.3.2 Segmentierung und Reassemblierung .............................. 197 203 3.3.3 Virtuelle Pfade 3.3.4 Bitübertragungsschichten für ATM 204 3.3.5 ATMimLAN 205 210 3.4 Implementierung und Leistung 3.4.1 Ports 212 3.4.2 Schaltnetzwerke 216 3.5 Zusammenfassung ................................................. 219 3.6 Weiterführende Literatur ............................................ 221 3.7 Obungen 222
3
....................................... .................................... .............................................. ........................................... .............................................
................................................
...........................................
............................................... ............................... ............................................... ....................................... ...................................................... ..............................................
........................................................
:
.
L
.
9 4.3 . Ebf&hes lmMaworkbg (P) 4.1.1 Was iss ein Intenietwork? 4.1.2 DiensmnodeU 4.1.3 Globale Adressen 4.1.4 Weiterleitung von Datagrammen ha IP 4.1.5 Abiibetwztutg (W) 4.1.6 Host-Konfipafion [DWCP) . . 4.1.7 Fehlermeldung ( I W j 4.1.8 Vhmelie Netzwerke und Tunnel 4'2 Rouring 4.2.1NetzwerkabGra ph 4.2.2 Distanzvektor4€outing(W) 4.2.3 Link-State-Routbg f OSPF) 4.2.4 MeQikui 4.2.5 Routing für mobile Hosts 1).3 Das globaie Internet 4.3.1 Subwttiq 4.3.2 Klassedoses Rauting (CiDR) 4.3.3 Iamdomain Routing (BGP) 4.3.4 Rouw-Bereiche 4.3.5 P-Version 6 (IPv6) 4.4 Multicast . 4.4.1 Link-State-Mdticast 4.4.2 Distanzvektor-Multicast . 4.4.3 ~rotokoliunabhängi~es ~ d t i c a (PIM) k 4 5 Multiprotocol Label Switc&ng (MPLS) 336 4.5.1 ZielbasierteWeiterleitung 4.5.2 Explizites Routing 4.5.3 Virtueiie private Netzwerke und Tunnel 4.6 Zusammenfassung 4.7 Weiterfihende Literatur ir 4 ~ 8 ObI
.
.
U 2
..:..........................*.........234 ......................................234 .................................................236 ............................................. 247 ............................. 249 .......................................256 .................................... 261 ........................................ 264
................................. 265 ......................................................... 268 ........................................... 270 ....................................271 .....................................279 ................................................... 288 ......................................292 .............................................. 297 ..................................................299 ...........................:........ 303 .....................................306 .............................................314 ........................................... 316 ........................................................ 328 .......................................... 329 ........................................ 331 ........................... 332 ...................................... 337 ............................................343 ........................... 345 .................................................349 ............................................ 351
........................................................ 352
I
Lnd.-w-IEnd.-kotdrdle 371 5.1 Einfacher Demuhiplexer (UDP) 374 5.2 Zuveriiissigcr BytoStrom (TCP) 376 5.2.1 Ende-zu-Ende-Fragen 377 5.2.2 Segmentformat 380 382 5.2.3 Auf- und Abba? m n Verbindungen 5.2.4 Nochnds: Slidmg-Window 387 5.2.5 b r t r a.ansrogen ~ 392 39553.6 Adaptive Neuübertragung 5.2.7 Datensatxgrenzeti 399 5.2.8 T C P - E i w r e i v 400 5.2.9 Alternative Designopionen 401 5.3 R~moteProeedureCail(RPC) 403 5.3.1 Buk-Transfer (BLAST) 406 5.3.2 AnfragdAntwort (CHAN) ...................................... 412 5.3.3 Dbpatcher(SELECT) 421 422 5.3.4 Von den Teilen zurn Ganzen ISunRPC. DCE) 5
.
....................................... ...................................... .......................................... .. ............................................ ............................... ..................................... .......................................... ...................................... .............................................. ........................................... ..................................... ........................................ ........................................ .......................................... .......................
wiv I Inhalt
......................................
Netzwerkleistung (Performance) 429 Zusammenfassung ................................................. 431 Weiterführende Literatur 434 Obungen 435
............................................ ........................................................
Uberlastkontrolleund Ressourcenzuteilung
448
............................................... ..............................................
Ressourcenzuteilung 450 6.1 1 Netzwerkmodeii 451 6.1.2 Taxonomie ................................................. 454 6.1.3 Bewertungskriterien ............................................457 Queuing-Disziplinen ............................................... 460 6.2.1 FIFO ...................................................... 460 6.2.2 Faires Queuing 462 fSberlastkontrolle in TCP ............................................ 467 6.3.1 Additive increase / Multiplicative Decrease 467 6.3.2 Slow-Start 470 6.3.3 Fast-Retransmit und Fast-Recovery c .............................. 474 477 Mechanismen zur &erlastvermeidung 6.4.1 DECbit ..................................................... 477 6.4.2 Random Early Detection (RED) .................................. 478 6.4.3 Quellenbasierte Überla~tvermeidun~ 485 Dienstgüte(QoS) .................................................. 491 6.5.1 Anforderungen von Anwendungen 492 497 6.5.2 htegrated-Semices (RSVP) 6.5.3 Differentiated-Services 507 6.5.4 ATM-Dienstgüte .............................(................ 511 6.5.5 Gleichungsbasierte Überlastkontrolle : 515 Zusanunenfassung ................................................. 517 Weiterführende Literatur 518 Übungen ........................................................ 520
.
.............................................. ......................... .................................................. .................................
.............................. ............................... ...................................... ......................................... .............. ............... ............................................
Ende-zu-Ende-Daten
534
Darstellungsformatierung ........................................... 536 7.1.1 Taxonomie ................................................. 537 7.1.2 Beispiele (XDR. ASN.l. NDR) .................................. 541 7.1.3 Markup-Sprachen (XML) 545 Datenkompression 548 7.2.1 Verlustlose Kompressionsalgorithmen ............................. 550 7.2.2 Bildkompression WEG) 552 7.2.3 Videokompression (MPEG) 557 7.2.4 Ubertragung von MPEG über das Netzwerk 562 7.2.5 Audiokompression (MP3) ...................................... 566 568 Zusammenfassq Weiterführende Literatur ............................................ 569 Übungen ........................................................ 570
................................................. ....................................... ..................................... ........................ .................................................
lnhak 8
Sicherheit in Netzwerken
I m 578
8.5 8.6 8.7
Kryptographische Algorithmen .......................................580 8.1.1 Anforderungen 582 8.1.2 DES 584 8.1.3 Public Key Encription (RSA) 588 8.1.4 Message-Digest 5 (MD5) 591 8.1.5 Implementierung und Leistung ................................... 594 Sicherheitsmechanismen ............................................594 8.2.1 AuthentifikationsprotokoIle .....................................595 8.2.2 Nachrichtenintegritätsprotokolle 599 8.2.3 Verteilung öffentlicher Schlüssel (X.509)........................... 602 Beispielsysteme 605 8.3.1 Pretty Good Privacy (PGP) 605 8.3.2 Secure Shell (SSH) 608 8.3.3 Sicherheit auf der Transportschicht (TLS, SSL, HTTPS) 611 8.3.4 IP Security (IPSEC) 615 Firewalls 618 8.4.1 Filterbasierte FiewaIls 619 8.4.2 Proxy-basierte Firewalls 620 8.4.3 Einschränkungen 622 Zusammenfassung 623 Weiterführende Literatur ............................................ 625 Ubungen ........................................................ 626
9
Anwendungen
8.1
8.2
8.3
8.4
............................................... ....................................................... .................................... .......................................
................................. ................................................... ...................................... ............................................ ............... ........................................... ........................................................ ......................................... ........................................ ............................................. .................................................
634
.........................L............ . .636 ...........................................637 ........................ ..............:......... 638 .......,. .. 643
9.1 Domain Name System (DNS) , 9.1.1 Domain-Hierarchie , 9.1.2 Name-Server , 3 Namensauflösung ',.'...s. + Y 2 Traditionelle Anwendungen ..'. .. , , . 9.2.1ElectronicMail(SMTP,~) , 9.2.2 Das World Wide Web ( H l T P ) 9.2.3 Netzwerlunanagement (SNMPI Multimedia-Anwendungen , 9.3.1 Real-time Transport Protocol (RTP) 9.3.2 Session Control und CaIl Control (SDP, SIP, H.323) 9.4 Overlay-Netzwerke ,.r, 9.4.1 Routing.Overlap~ : 9.43 Peer-to-Peer-Netzwerke 5 , 9.4.3 Inhaltsverteilungsnetzwerke„ , ..rr...+..tr+.ri.. 9.5 Z-enfass 9.5 WeiterführendeLiteraat.. P$ f i w p , , L , ,
.
+.
............ ...... .............. 645 .. .........,.. ......,.... .. 646 .*.................... .. *. ,.C..r... 653 i.l..i
+
.................................. 659 .......................... .... 662 ..................... 673 .. ....... .. .............. ......... ...... 682 .'. :......................................... 685 . ...P....,..... . ... ....... ..... 692 ............... .................„ ..... 700 .*........wia9..i.*r.706 ..............- ..................., ............ Y08 910 .............. .- .. ....... ................. ....,.....W ................. ...............*............661
.,
'
8
Lösungenzu ausgewahlten Obungen
?...
C.s
no 749 763 775
P a& ip der weiten den Edcpkilm
I- , i. 1
I
-.B&& -& ftir kmdmm b Viordipfom und der &en &esxa d & h @ :-- ~ ~ % i u tim-. tw U+ &$-ein- mach,ist dieses Bsrch dmk saipes %lsanrp o auf& ~ ~&qk&tbgqun aba auch B L ~ach~eute ~ ifl dCt RIXI(demab die 98 : nqit damn ric t@da ubam, pud an einem ~ W m a d& &0M4, r
.
a , - a e f Y r n @,hs ~ ~ ~ e i o i e r m i @s *L d viwerm
&ls
an&B k l%tmmh
erUm mS.Snidemen als aucb P r a h k q eiie das Netzpmkjsik ehe
h a i , ? L C
+
Wie bereitS erwähnt, werden die meisten der in diesem Kapitel behandelten Funktionen von einer Netzwerkkarte bzw. einem Netzadapter ausgeführt. Dabei handelt es sich um ein Hardwareeleinent, das einen Knoten mit einer Leitung verbindet. Der Netzadapter enthält eine Signalisierungskomponente,die die eigendiche Kodierung von Bits in Signale am sendenden und die Dekodierung von Signalenin Bits am empfangenden Knoten durchführt. Wie aus Abb. 2.5 ersichtlich wird, fließen die Signale also über eine zwischen den beiden Signalisierungskomporienten befindliche Verbindungsleitung und die Bits zwischen Netzwerkadaptern,
Knoten
Knoten
Abb. 25: Signale fließen zwischen Signalislerungskomponenten und Bits mischen Netzwerkkarten.
Wir wenden uns nun der Kodierung von Bits in Signale zu. Nahe liegend ist hier, den Datenwert 1 auf das high-Signal und den Datenwert 0 auf das low-Signal abzubilden. Dies ist genau die von einem Kodierschema mit der rätselhaften Bezeichnung Non-Return to Zero ( W ) angewandte Zuordnung. Abb. 2.6 zeigt ein Schematisches-Beispiel des =-kodierten Signals (unten), das des übertragung einer bestimmten Bitfolge (oben)entspricht.
Problematisch ist bei NRZ, dass eine Folge mehrerer aufeinander folgender Einsen bedeutet, dass das S i a l über eine längere Zcit8auer auf der Verbindt~ngsteituqg high bleibt, und andererseits mehrere aufeinander foigende NuUen bedeuten, dass das Signal längere Zeit low bleibt. Durch lange 1-und 0-Sequenzen entstehen zwei grundiegende Probleme: Erstens führt dies zu einer S b h , die man als B~sei++ Wandtw bezeichnet. Das bedeutet, dass der Empfänger den Durohschnitt einer b e s k h n Am& d e t z t empfangener Sipale dazu pctwendet, z w i h low- uad high-Signalen m ~l~ttertxheidm. SoMd ein Si& weit unta diesern Durchscbnia liegt, schlmsfolgert der Empbger, dass er eine 0 gesehen hat, während er ein &W lich über dein DW-EC iiegendes Signal als 1interp~etien.Das Problem entsteht nun dadurch, dass zu viele a u f e a e r folgende Einsen odeg Nullen dazu führen, dass sich der Durchschnitt. vekhiebt* sodass es schwieriger wird, eine s i g d h m Änderung im Signal l;rt erkennen.
&s K6dierat und vom deib f & r s t T ~ m ü ~ & ~ &
Daten und des 'Tocltrs,
lohden T& als inter-
B#s 0 I) 1 0 1 1 1 I O 1 0 O 0 0 1 0
AMkl7:Vetschledene
ersten Hälfte des Signals, das ungleich ist wie die zweite Hälfte des Signals des vorangehenden Bits, kodiert wird.) Bei der Manchester-Kodierung entsteht das Problem, dass sie die Rate verdoppelt, in der Signalübergängeauf der VerbindungsleiNng erfolgen. Das bedeutet, dass der Empfänger nur noch über die Hälfte des Zeit verfügt, um jeden Impuls des Signals zu erkennen. Die Rate, in der die Signale sich ändern, nennt man die Baudrate der Verbindungsleitung. Bei der Manchester-Kodierung beträgt die Bitrate die Hälfte der Baudrate, sodass der Kodierung eine Effizienz von nur 50% zugeschrieben wird. Wäre der Empfänger ia der Lage, mit der schnelleren Baudrate, die von der Manchester-Kodierung gefordert wird (sieheAbb. 2.7), Schritt zu halten, könnte sowohl NRZ als auch NRZI in der gleichen Zeit zweirnd so viele Bits iibemagen. Die letzte hier behandelte Kodierung nennt man 4B/SB. Diese Methode versucht, die Ineffizienz der Manchester-Kodierung zu beseitigen, ohne längere Zeitspannen mit high- oder 1owSignalen zu erleiden. Dem Konzept von 4Bt5B zufolge werden in den Bitstrom zusätzliche Bits eingefügt, um lange Folgen von 0 oder 1w unterbrechen. Konkret werden jeweils 4 Bits der eigentlichen Daten in einen 5-Bit-Code kodiert, der dann an den Empfänger übertragen wird. Daher auch die Bezeichnung 4Bl5B. Die 5-Bit-Codes werden so gewählt, dass jedes nicht mehr als eine führende und höchstens zwei nachgestellte Nullen hat. Bei der Übertragung im Wechsel fühn also kein Paar von 5-Bit-Codes zur Obertragung von mehr als drei aufeinander folgenden Nullen. Die daraus resultierenden 5-Bit-Codes werden dann mit Hilfe der NRZI-Kodierung übertragen. Dies erklärt, warum sich der Code nur mit aGfehander folgenden Nullen befasst: NRZI löst ja bereits das Problem aufeinander folgender Einsen. Die 4WSRKodierung erreicht eine Effizienz von 80%. In Tabelle 2.4 werden die 5-Bit-Codes aufgefiihrt, die jeweils den 16 möglichen 4-Bit-Datensymbolen entsprechen. Da 5 Bit ausreichen, um 32 verschiedene Codes zu kodieren, und wir nur 16 davon für Daten benutzen, bkiben 16 Codes für andere Zwecke übrig. Davon wird Code 11111 benutzt, wenn die Leitung untätig ist. Code OOOOO entspricht dem Zustand, in dem die Leitung tat ist, und 00100 wird als Halt interpretiert. Von den restlichen 13 Codes sind 7 nicht guitig, weil sie die Regel .eine führende und zwei nachgestellte Nullea* verletzen, während die übrigen 6 verschiedene Steuersymbole darstellen. Später in diesem Kapitel wird im Zusammenhang mit Sicheningsschichtprotokollen(2.B. FDDI) beschrieben, wie &se Steuersymbole benutzt werden können.
dawn jetzt, wie ehe Esige von Bits über eine Punkt-zu-Punkt-Leitung- von mdmte m Nemerkkarte tiBemagm wird und wenden uns dem in Abb. Sz&aio zn.Aus Kapitel 1bt bekmnt, d a s wh um auf paketvwk h&kotlzetiai- wtis Meute, dass Datenbltkk (die auf dimer »?hmese g d a m t vkden) und keine Bitmiime zwikk Knoten ausgedic Knoten F r ~ m e ~ hm d a ~ IEet Netzwqhhpter wclu es rnögkb, k6aaea. M&he .&toten A e b Frame an Knoten B ü b $ e s w e b id@B&mver Wa ~ , ' e h mFranc srirs seinem Spekhr EU iibmmgm. Dies an einer Bhfolge, die übt diO Vetbindungsldtung geseadet wird. Die Netzkarte an bot& baimmt die Bitfolp in %npfang und legt den entsprechenden
-
B .
Bits fließen Iviiischm HaEwe*rtm
und Fmmes zwisithenwm
Frame im Speicher von B ab. Die zentrale Aufgabe, mit der sich die Netzwerkkarte dabei befassen muss, ist die Feststellung, wo der Frame beginnt und endet, aus welchen Bits er sich also zusammensetzt. Für die Lösung dieses Problems gibt es mehrere Möglichkeiten. In diesem Abschnitt werden verschiedene Protokolle betrachtet, um die jeweiligen Designaspekte zu verdeutlichen. Wir besprechen hier zwar die Frame-Erzeugung in Zusammenhang mit Punkt-zu-Punkt-Leitungen, jedoch handelt es sich um ein grundlegendes Problem, das auch in Mehrfachzugriffsnetzen wie Ethernet und Token-Ring behandelt werden muss. 2.3.1 Byte-orientierte Protokolle (BISYNC, PPP, DDCMP)
Eine der ältesten Methoden für die Erzeugung von Frames, die auf die Verbindung von Bildschirmarbeitsplätzen mit GroBrechnern zurückgeht, ist die Betrachtung jedes Frames als eine Sammlung von Bytes (Zeichen), und nicht als eine Sammlung von Bits. Diese byte-orientierte Methode wird beispielsweise vom BISYNC-Protokoll (Binary Synchronous Communication) umgesetzt, das von IBM Ende der sechziger Jahre entwickelt wurde. Eine weitere Methode dieser Art ist DDCMP (Digital Data Communication Message Protocol), das im DECNET der Digital Equipment Corporation benutzt wird. Teilweise gehen diese Protokolle von einem bestimmten Zeichensatz aus (BISYNC kann 2.B. ASCII, EBCDIC und den IBM-eigenen 6-BitTranscode verwenden), dies muss aber nicht unbedingt der Fall sein. Diese beiden Protokolle ähneln sich zwar in vielerlei Hinsicht, sind aber Beispiele von zwei unterschiedlichen Frame-Techniken: der Sentinel- und der Byte-Zählmethode.
Die Sentinel-Methode Das BISYNC-Protokoll illustriert die Sentinel-Methode; das Frame-Format ist in Abb. 2.9 dargestellt. Diese Abbildung ist die erste einer Reihe, mit denen in diesem Buch Frame- oder Paketformate dargestellt werden. Deshalb sind hier ein paar Worte der Erklärung angebracht. Wir zeigen ein Paket als Gruppe beschrifteter Felder. Ober jedem Feld steht eine Zahl, mit der die Länge des betreffenden Felds in Bits angegeben wird. Pakete werden immer begiruiend mit dem linken Feld übertragen. 8
8
8
8
8
16
Abb. 2.9:
Der Anfang eines Frames wird durch Senden eines speziellen SYN-Zeichens (Synchronisation)markiert. Der Datenteil des Frames befindet sich zwischen speziellen Sentinel-Zeichen: STX (Start of Text) und ETX (End of Text). Das Feld SOH (Startof Header) dient mehr oder weniger dem gleichen Zweck wie das STX-Feld. Die Sentinel-Methode wirft das Problem auf, dass das ETX-Zeichen M Datenteil des Fra-
E r h a n g m tllkhm-hura,
die F
B & ~ ~ P ~
h Wwmwdtse L ~ A9.$pkb
$iww Mgo&!hm sind in Absdm.itt 2 5 enthdten.
dem B m dahgeknrd, das6 ies o m w ehs W P ~ F r hD.oza s p d ..
w@+t410. Die Fdder dddi.esls uad CcmW enhlten normalerareiseVorgarhorte und fiir das Demultiplexen knutzr. Bs mit IP v d d k b s P,ro-
.SO0 Byte, Das'Feid Chnsdksum
P-Frame-Format ist insofern ungewöhnlich, als mehrere Feldgrößen nicht en, s o n d m ausgehandelt werden. Diese Verhandlung wird von einem ProtobU.namens LCP (Link Control Protocol). durchgeführt. PPP und LCP arbeiten Ebd-in Hand:LCP sendet in PPP-Frames gekapselte Steuernachrichten. Sie werden $hr& einen LCP-Bezeichner im PPP-Feld Protocol gekennzeichnet. Dann wird das W-Frame-Format auf der Grundlage der in diesen Steuernachrichten enthaltenen kibirriationen geändert. LCP ist auch am Aufbau einer Verbindung zwischen zwei h e r n beteiligt, wenn beide Seiten das Trägersignal erkennen. i'
W Byte-Zählmethode &r&s im Informatik-Grundstudium erfährt man, dass als Alternative z u Kenn&ung des Dateiwdes mit einem Sentinel-Wert die Anzahl der in der Datei entk h n e n Elemente am Dateianfang angeben werden kann. Das gleiche trifft auch
auf die Frame-Eneugung zu. Man kann dieAnzahl dw in.e:inem Frame enthaltenem Bytes als Feld in den Frame-Header einfügtri. Das DlXMP-Protohll in DECMST nutzt diese Methode, wie aus Abb. 2.11 ersichtlich wird. Bei diesem Beispiel spezifiziert das Feld COUNT, wie viele Bytes im Nuadatentcf des Frmms enthalten sind. .:
Ein Risiko ist bei dieser Methode, dass ein Obertragungsfebler das COUNT-Feld vmändern kann. In diesem Fali kann das Ende des Frames.nicht korrekt erkamt werden, (Ein ähnliches Problem kann auch bei der Seatinel-Methode auftreten, faus das ETX-Feld verfälscht wird.) Soiite dies passieren, kumuliert der Empfänger so viele Bytes wie das fehlerhafte COUNT-Feld angibt. Dann benutzt er das Fehlererkerrnungsfeld, um festzustellen, dass der Frame fehlerhaft ist. Dies nennt man auch Frame-Febler. Der Empfänger wartet dann auf das nächste SYN-Zeichen Ynnt b t wieder mit dem Empfang der Bytes, aus denen sich der n ä h t e Frame zusammensetzt. Daher ist es möglich, dass ein Frame-Fehler zu mehreren fehlerhdt empfangenen Frames führt.
-'
'Einer der wichtigsten Beiträge des in Kapitel 1 eingeführten OSbkefermznodells war die Bereitstellung eines Vokabulars für die Definitionvon Protokol- ,' k n und Prozakollschichten. Dieses Vokabular hat zahlreiche Disku~ussioneni' angefacht, etwa im Sinne von S e i n Protokoll führt Funktion X auf Schicht aus, während das OSI-Referenzmodellbesagt, dass sie auf Schicht Z ausgeführt werden sollte, sodass es sich um eine Schichtverletzung hande1t.e Tatsächlich ist es schwierig, die jeweils richtige Schicht für die Ausführung einer bestimmten Funktion festzulegen. Der Grund hierfür ist normalerweise tiefgehender als *Was steht im OSI-Modell?~Auch deshalb wird in diesem Buch ein strikter Ansatz nach dem Schichtenmodell vermieden. Stattdessen werden zahlreiche Funktionen beschrieben, die von Protokollen ausgeführt werden müssen, und es werden Wege dargestellt, wie sie erfolgreich implementiertworden sind. Trotz unseres nicht auf Schichten ausgerichteten Ansatzes brauchen wi nianchmal geeignete Verfahren, um über Protokollklassen zu diskutieren; die Bezeichnung der Schicht, auf der sie laufen, ist oft das beste. So konzentrieren wir uns in diesem Kapitel tB. vorwiegend auf Protokolle der Sicherungsschichr (Die in Abschnitt 2.2 beschriebene Bitkodierung bildet eine Ausnahme; sie gehört zur Bitübertragungsschidit.) Protokolle der Sicherungsschicht lassen sich dadurch identifizieren, dass sie über einzelne Verbindungsleitungen laufen, also über den in diesem Kapitel behandelten Netzwerktyp. Protokolle de Netzwerkschicht laufen demgegenüber in vermittelten Netzwerken, die zahlreiche über Vermittler verbundene Leitungen umfassen. Diese Protokolle sind Thema von Kapitel 3 und 4. "
2.3.2 BitorientierteProtokolle (HDLC) Im Gegensatz zu diesen byte-orientierten Protokollen muss sich ein bitorientiertes ~rotokollnicht um Byte-Grenzen kümmern. Es betrachtet den Frame einfach als Sammlung von Bits. Diese Bits können aus einem Zeichensatz, 2.B. ASCII, stammen, sie können Pixelwerte eines Bilds oder Instruktionen und Operanden einer ausführbaren Datei sein. Das von IBM entwickelte SDLC-Protokoll (Synchronous Data Link Control) ist ein Beispiel eines bitorientierten Protokolls. SDLC wurde später von der OS1 unter der Bezeichnung HDLC (High-level Data Link Control) als Protokoll standardisiert. In der folgenden Darstellung benutzen wir HDLC als Beispiel; sein Frame-Format ist in Abb. 2.12 dargestellt. 8
16
16
8
Abb. 2.1 2:
W3LC kennzeichnet Anfang und Ende eines Frames durch die spezielle Bitfolge gri$IlilO. Diese Folge wird auch ständig übertragen, wenn die Verbindungsleitung &tig ist, sodass Sender und Empfänger ihren Takt synchronisieren können. Auf &XE Weise nutzen beide Protakolle eigentlich die Sentinel-Methode. Da diese Folge &er such irgendwo im Nutzdatenteii des Frames erscheinen kann, sich die Bits W111110 also über Byte-Grenzen hinaus erstrecken können, nutzen bitorientierte Pma~JEQlle ein Analogon zum DLE-Zeichen, eine Technii, die man als Bitstopfen - &&, st$cfi~g) bezeichnet. ;-E3itstopfen funktioniert im HDLC-Protokoll wie folgt: Auf der sendenden Seite -+der Sender jedes Mal, wenn fünf aufeinander folgende Einsen aus dem Rumpf ' Ioiex Nachricht (d.h. außer wenn der Sender versucht, die spezielle Folge 01111110 zu ! @k*agen) übertragen wurden, eine 0 ein, bevor er das nächste Bit überträgt. Komm an der empfangenden Seite fünf aufeinander folgende Einsen an, trifft der Empauf der Gmdiage des nächsten Bits (also das den fiid Einsen folgende Bit) ;&wEntscheidung. Ist dieses Bit eine 0, muss es gestopft worden sein. Folglich ent-
fernt es der Empfänge= Ist das nächste Bit eine 1,trifft einer von zwei möglichen Fällen zu: entweder es handclt sich um eine Frame-Endemarkiemng oder der Bitstrom enthält einen F e h Durch Ansehen des nächsten Bits lrann der Empfänger zwischen den beiden Fällen unterscheiden: Erkennt es eine 0 (die letzten Bits waren also 01111110), handelt es sich um die Frame-EndemarkKnuig. Wenn er eine 1 erkennt (dieletzten acht Bits also 01111111 waren), muss ein F d e r vorliegen und der gesamte Frame wird verworfen. In diesem Fall muss der Empfängef auf die nächsten 01111110 warten, bis er wieder empfangen kann. Folgiich besteht auch hier die Möglichkeit, dass zwei aufeinander folgende Franies den Empfänger nicht erreichen. Selbstverständlich gibt es noch FUe, in denen Frame-Fehier unerkannt bleiben, wenn beispielsweise ein voilständig falsches Frame-Endemuster durch Fehler erzeugt wird. Diese Fehler sind aber eher unwahrscheinlich. Robuste Methoden für die Erkennung von Fehlern werden in Abschnitt 2.4 behandelt. Interessant ist beim Bitstopfen, aber auch beim Zeichenstopfen, dass die Grö& eines Frames von den im Nutzdatenteil des Frames gesendeten Daten abhängt, Anders ausgedrüdrt: Es können nicht alle Frames genau die gleiche Größe habeh, weil ein Frame eine beliebige Datenmenge enthalten kann. (Wenn Sie sich selbst, davon überzeugen wollen, überlegen Sie, was passiert, wenn das letzte Byte ein@ Frame-Rumpfes das ETX-Zeichen ist.) Im nächsten Abschnitt wird eine Frame-, Form beschrieben, bei der alle Frames garantiert die gleiche Größe haben.
2.3.3 Taktbasisrte Erzeugungvon Frames (SONET)
4
Ein gutes ~ e & ~ i der e l dritten Methode für die Erzeugung von Frames ist der SONET-Standard (Synchronous Optical Network). Mangels eines weithin akzep tierten allgemeinen Begriffs nennen wir diese Methode einfach takthiierte Erz*, gung von Pmmes. SONETwurde erstmals von Bell Commisnications Research (Wcore) vorgeschlagen und dann vom American National StanQtds Institute (ANSI! für die digitale Obertragung über Glasfaser entwickelt. Der Standard wurde mitdaweile von der ITU-T übernommen. Uns interessiert jedoch nicht m sehr, wer w a wann standardiiiert hat, sondern vicimehr, dass es sich um den vorherrschendem Standard für die FernÜbertragung von Daten iiber optische Netzwerke handelt. . Bevor wir uns näher mit SONET befassen, ist ein Hiaweis wichtig: Die SpezIfiL' kation des Standards ist weit umfangreicher als dieses Buch. Zwangsläufig werdem im Foeaden nur die wichtigsten Punkte des ,Standards angesprochen. Auf3erdd beinhaltet SONET sowohl Frame- als auch Kodierungsaspekte. Der Standdi befasst sich auch mit einem Problem, das für Telefongesellsdwften wichtig ise W Multiplexen mehrwer Vetbindungsleitungen mit niedriger auf eine ehige mit b Geschwindigkeit. WKbeginnen mit der Eneu&ringvv"onFrmes und gehen an* Bend auf die weiteren Aspekte ein. Wie ba den zuvor bcbnnd<m ~ e t h o d e nzur Erzeugmg von Frames enthält eh SOUET-Frame spezielle Informationen, durch die der Ernpfilnget Anfang und h&t einzelner Frames erkennt. Da enden aber auch schon die Mchkeiten. Mmi beachte, dass kein Bitstopfen angewandt wird, sodass die L&ge eines Frames niclirbt
23 braugungvonFnniao
'
I
S5
vm den übertragenen Daxen abhängt. Es steilt sich also die Frage, wie der Empfäng a wissen kann, wo jeder Frame beginnt und endet? Wir b h e a m u ~ i adiese Frage d a n d der SONET-Verbindung mit der niedrigsten Geschwindigkeit, die als &TS-1 U besei~hnetwird und S1,$4 Mbids untmtützttzt hbb. 2.13 zeigt einen STS-13 Bytes jeder Zeile Iraane. Er ist in neun Zeilm mit je 90 Byte angeordnet. Die ersind Overhead; der Rest ist für Nudaten verfügbar. Die ersten 2 Bytes eines Frames enthalten em spezielbs Bianuster. Cenan diese beiden Bytes emtighchen es dem Empfänger, den Frame-Anfang zia erkennen. Da kein Bitstopftn verwendet wird, kam dieses Muster gelegentlich auch im Nuizdatenteil des Frames vorkommen. Um &es zu vethindern, s d t der Empfänger stiindig das spezielle Bitonuster in der Hoffjeder Frame 9 X 90 = $10 Byte lang ist. Konunt das betreffende Muster oft genug an der richtigen Stelle vor, schlussfolgert der Empfänger, dass er spchron ist und den Frame richtig interpretiert. b -
+-.
Abb, 2.19: STS-1-Frame des SONFT-Standards
Nutzdaten
C
-
der Komple-xitäc des SOMET-Standards unter anderem nicht aller übrigen Overhead-Bytes, Ein Teil iben, dass SONET auf dem optischen rs lädt, und nicht nur Eber eine einzelne Vezbindungsleiübergehen hier die Ta-&, dassdie Betreiber ein Netzwerk implemenkonzentrieren uns stattdessen darauf, dass wir eine SONET-Verbindungsvon ihnen mieten w d sie dann benutzen können, um unser eigenes rmimltes Netzwerk zu bauen.) Weitere Komplexität ist dem Umstand zumnste als den reinen Datentransfer bie64 Kbit/s der Kapazität einer SONET-Verbindungsreserviert, der für Wartungsaufgaben benutzt wird. Die Overhead-Bytes eines SONET-Frames werden mittels NRZ kodiert, also mit einfachen oben beschriebenen Kodiermethode, bei der Einsen high und Nullen sind. Um geniigend Obergärige sicherzustellen, damit der Empfänger den Takt werden die Nutzd9ten-Bytes gemischt (scrambled). -ODER (XOR) der zu Übertragenden bekannten Bimusters. Dieses Bitrnuster ist 127 bit Ton 1auf 0, sodass XOR mit den übertrageit ein Signal mit ausreichend fllbergängen ,am die Taittwkderhersdung zu ermbglichen.
SONET unterstützt das Muitiplexen mehrerer Verbindungsieitungen mit nie ger Geschwindigkeit. Eine bestimmte SONET-Verbdungsleituq läuft beisp weise mit eilrer Reihe von mäglichen Raten, die .von 51,84 Mbit/s (STS-1) M 2488,32 Mbitls (STS-48) und mehr reichen, (Tabelle 2.2 in Abschirt 2.1 en&m aile SONET-Datenraten.) Diese Raten sind immer ganzzahlige Vielfache von STS-ZE Die Raten sind für die Erame-Erzeum8 wichtig, weil ein einzelner SONET-Frame auch Teil-Frames für mehrere Kanäle mit niedrigeren Raten enthalten kann. Bq zweites damit zusammenhängendes Merkmal ist, dass jeder Frame 125 ps lang ist. j Das bedeutet, dass ein SONET-Frame in STS-1-Raten 810 Byte und in STS-3-Ra- 1 2.430 Byte lang ist. Man beachte, &ESdas Zusammu~apielzwischen diesen beida Merkmalen ergibt, dass drei STS-1-Frames genau in einen STS-3-Frame passen j (3 X 810 = 2.430). Als logische Folgerung stelle man sich den STS-N-Frame so vor, als bestünde er aus N STS-1-Frames, wobei die Bytes dieser Frames verzahnt sind. Das heißt, es wird ein Byte des ersten Frames, dann eines des zweiten übertragen, usw. Die Verzahnung (Interleaving) der Bytes eines jeden STS-N-Frames soll sicherstellen, dass die Bytes jedes STS-1-Frames den gleichen Abstand haben. Sie kommen beim Empfänger also gleichmäßig mit 51 Mbit/s an, und nicht aile auf einem H a h n intielihalb eines bestimmten N-ten Teils des 125-ps-Intervalls. Obwohl ein STS-N-Signal benutzt werden kann, um N STS-1-Frames zu multiplexen, können die Nutzdaten aus diesen STS-1-Frames auch verkettet werden, um einen größeren STS-N-Nutzdatenteilzu bilden. Diese Verkettung nennt man STS-Nc (C für concatenated, verkettet). Eines der Felder im Overhead wird eigens für diesen Zweck benutzt. Abb. 2.14 zeigt eine schematische Verkettung dreier STS-1-Frames, die zu einem STS-Sc-Frame verkettet werden. Wnun diese SONET-Verbindung als STS-3c und nicht als STS-3 bezeichnet wird, hat einen Grund: im ersten Fd kann der Benutzer die Verbindung als einzelne 155,25-MbitEs-Pipeline btrachtm, während er es bei STS-3 im Grunde mit drei 51,84-Mbitls-Verbhdungsleitungenzu tun hat, die einen Lichtwelledeiter gemeinsam nutzen. Abb. 2.14 Drei auf einen STS-3c-Frame gernuitipiexte STS-1-Frames
Schiießlich bleibt zu erwghnen, dass die obige Beschreibung von SONET sehr vereinfacht ist, weil wir damm ausgegangen sind, dass sich die Nutzdaten jedes Frames vollständig innerhalb des Frames befinden. (Wanun wird es nicht so sein?)Tatsache ist, dass wir uns den soeben beschriebenen SE-1-Frame ledigkh als Platzhalter (fiir den eigentlichen Frame) vorstellen sollten, während die eigentlichen Nutzdaten möglicherweise quer über Rahmagezlzen Binweg gleittwa. Diese Simatiotl wird aus
&.2.15 ersichtlich. Hier sehen wir die über zwei STS-l-Framesgleitenden STS-1n und deren Verschiebung um einige Bytes nach rechts, sodass sie umlaus der Felder im Frame-Overhead kennzeichnet den Anfang der Nutzdaten. nschaft vereinfacht die Taktsynchronisation im gesamten Netzwerk des s - eine Aufgabe, die letzteren generell viei Kopfzerbrechen bereitet. Abb. 2.1 52 Phasenwtschobe Frames
Zeilen
l ~ * ~ F r ~ ~ h m a l ~ c n t b e l r e n k sind bei-& elctkmrnawde S t i b m g a da t h a m k h s Antknfalls wundert sich vielleicht ein ERdhm G&nuli plot$isb einm6pkvr-
k-&W&
a r L M bauf
mia Bidebleait ia C o ~ u t angmmidn ~ p ~ T&eine lanee (je,hichm zurück. Sie datieren aus der Zeit der
-1 atd den e e n K a d e r n entwicllele d
n Ea diesem
em ist die ehe Seitedes Problems. Die mc&e ist die Korgmdkgtnde &&Oden, die angewandt werNaeWt Fehler demt Bei k kommen bestimm*
und DDCMP, aber auchi iri
88
1
2 Dhbmbindungsnam~
den später in diesem Kapitel beschriebenen CSMA- und Token-Ring-ProtoMb benutzt. In Abschnitt 2.4.3 wird der gnindlegende CRC-&~rithnius beschrieb& . Zuvor betrachten wir aber zwei einfachere Methoden, die ebenso weit verbreit& sind: zweidmtmionale Parität und PrZifslLmmek. Die erste dieser beiden Mwird im BISYNC-Protokoll bei der Obemagung von ASCII-Zeichen (CRC wird & Fehiercode benutzt, wenn BISYNC zur Ubertragung des EBCDIC-Zeichensatzm herangezogen wird) und die zweite wird in mehreren hternet-Protokollen benut~. Jeder Fehlererkennungsmethodeliegt das Konzept zugrunde, redundanteInformtionen in einen Frame einzufügen, mit denen dann etmitteltwird, ob Fehler entstanden sind. In Extremfali kann man sieh vorstellen, dass zwei volis&&e ICop~ender ~ a m übertragen werden. Kommen die beiden Kopien khEmlPfänget identisch an, sind beide mit hoher Wahrscheinlichkeitrichtig. unterscheiden sie sich, enthält eine (odw . beide) einen Fehler und werden verworfen. Das ist aus zwei Grürrden eine & schlechte ~ehlererkennun~methode: Erstens werden n redundante Bits fiir eine n-BitNachricht übertragen. Zweitens bleiben viele Fehler iuierkam*, nämiich dann, wenn zufällig die gleichen Bitpositionen in beiden Kopien der Nachricht verfälscht werden. ' Zum Glück stehen bessere Methoden zur Verfügung. Im allgemeinen können wir . bereits recht starke Fehlererkennungsfähigkeitenbereitstellen, wem W& &urk r d m dante Bits fiir eine n-Bit-Nachricht senden, wobei k *. n. In einem Ethernet kommt ein Frame, der bis zu 12.000 Dambits (1.500 Byte) enthält, beispielsweise mit ein32 Bit langen CRC-Codeaus (CRC-32, um den gebräuchlichen Begriffzu verwendSn). Ein solcher Code f.dngt den GroSteil der fehler ab, wie wir später noch sehen werda; Die zusätzlich gemdeten Bits nennen wir redundant, weil sie keine neuen Inihrmationen zur Nachricht beitragen. Vielmehr werden sie mitHilfe eines wohldefiniew tm Aigorithmw d t t e l b a r von der ursprünglichen Nachricht abgeleitet. Se& und Empfänger wissen genau, um welchen Algorithmus es sich handelt. Der h d ~ wendet den Algorithmus auf die Nachricht an, um die redundanten Bits zu erzeugen. Dann übertrgg er sowohldie Nachricht als auch die wenigen zmiltziichen Bits. Wen- , det der Ern$-= den gleichen Algorithmus auf die empfangene Naci.ichs.an, sollte er (sufern kein Fehler enthalten ist) auf das gleiche Ergebnis wie der Sender komriiera Er vergleicht das Ergebnis mit demjenigen, das der Sender überzragen hat. Stimmka sie t ' t b i n , ka& er (mit hohe Wahrscheinlichkeit) annehmen, dass während der fhertragwig keine Fehler in die Nachricht eingeführt wurden. Stimmen sie nicht überein;kh er mit Sicherheit davon ausgehen, dass entweder die Nachricht~derdie I redundanten Bits verfälscht wurden. Er musi dann ehe entsprechende Maßnahme einleiten, d.h. er verwirft die Nachrick oder korrigiert sie, faUs möglich. Hier ein Hinweh auf die für diese zusätzlichen Bits verwendete Terminologie. Im allgemeinen werden sie als Fehlererkennungscode bezeichnet. h besonderen Fällen, wenn &r zum Erzeugen -des Codes verwendete Algorithmus auf Addition b&rtS werden sie P&fsumme genannt. Wir werden spirter n d sehui, dass1 die Interna- , Prükumme zurecht so bezei.chnet wird: Es h&delt sich um eine Fehierpriifmg bask- , rend auf einem S d e ~ a ~ g ~ r i d m Leider u s wird ~ mit dem1 Begriff »Prüf- ' , stamme* oft ungeaau jegliche Form .von Pehlererke~unggcodes, eimMief(licb CRCs, bezeichnet. Da dies Verwirrung suftet, legen wir Ihnen dringend nahe, d a . 1
,
.
'
P s r M e b achw Bit bei M a r f auf 1
ruiw-s* &
um eiimmm& k i d d m.l3iasmi
giaarntni Fmrne, #!xlfd&&
iEll 'htm
Pa-
~ i e 4 ~ Edw~ BeDg~cafByies , entkilt. Z.B. ist das ckim Bit des weil Bslrtr dic'dartenBits d e r 6 Bytes des Frames ~ a n u r r e neine v o n ~ e n r h a r k P w ~ & h z e i g m , & ~ d i e ~ 1-, 2 4 3-Wsowie die meisten 4-Bit-FeMer erkernt, W4 hobwt wir 14 Bit aia r4uMtmm h&mationw an eine 42-BioMaeha qp&@t. T r d e m e n r e k h wir im V ' * zum oben beschriebenen %Wie~ ~ w o d besseren ~ u S e h e vof haufiaw Fahieril.
gieiche Funktionalirjdtwie CRC und Parität. Deshalb wird sie hier behandelt. Die 4.1,5.1 und 5.2 enthalten Beispiele dieser Methode.
Die Internet-Prüfsummegründet auf einem sehr einfachen Konzept. Man addiert alle w'übertragenden Wörter und überträgt dann das Ergebnis dieser Summe, also die Prüfsumme. Der Empfänger führt die gleiche Berechnung mit den empfangenen Daten durch und vergleicht das Ergebnis mit der empfangenen Prüfsumme. Sind übertragene Daten oder die Prüfsumme selbst verfälscht, stimmen die Ergebnisse nicht überein, sodass der Empfänger weiß, dass ein Fehler vorliegt. Man kam sich das Gnmdko~lzepteiner Prüfsumme in vielen verschiedenen Varianten vorstellen. Das in den Internet-Protokollen angewandte Schema funktioniert wie folgt: Man betrachte die einer Prüfsummenermittlung zu unterziehenden Daten als Folge von 16-Bit-Zahlen. Man addiere sie mit Hiife der (unten erklärten) Einerkomplement-Arithmetik und verwende das Einerkompkinent des Ergebnisses. Qiese 16-Bit-Zahl ist die Prüfsumme. Bei der Einerkomplement-Arithmetik wird eine negative Ganzzabl -X als Komplement von X dargestellt, indem jedes Bit von x invertiert wird. Addiert man die Zahlen in der Einerkomplement-Arithmetik,muss ein Obertrag aus dem werthöclrsten Bit zum Ergebnis addiert werden. Man betrachte beispielsweise die Addiu~n von -5 und -3 in der Einerkomplement-Arithmetik mit 4-Bit-Ganzzahlen. +5 ist 0101, -5 ist also 1010; +3 ist 0011, also ist -3 1100. Wenn wir 1010 und 1100 addieren und dabei den Obertrag ignorieren, erhalten wir 0110, in der Einerkompleeient-Arithmetik müssen wir auf Grund der Tatsache, dass diese Operation einem Obertrag aus dem werthöchsten Bit ergibt, das Ergebnis inkrementieren, sodass wir 0111 erhalten. Wie erwartet, erhalten wir (durch Inversion der Bits in 1000) die Einerkomplement-Darsrellungvon -8. Die folgende Routine stellt eine unkomplizierte Implementierung des Algorithmus der Internet-Prüfsumme dar. Das Argument count gibt die Länge von buf an, gemessen in 16-Bit-Einheiten, Die Routine nimmt an, dass buf bereits mit N d e n auf eine 16-Bit-Grenze aufgefüllt wurde. \
U-short cksum(u-short *buf, i n t count)
f register U-long sum = 0; whi 1e (count--) { sum += *buf+t; If (sum & OxFFFF0000)
I
/*
Umbrechen. weil sich ein Übertrag ergeben hat sum &= OxFFFF; sum++ ;
1
1 return
1
- (sum & OxFFFF);
*/
EinfacheWahrscheinlichkeitsrechnungen Wenn wir uns mit Netzwerkfehlern und anderen (hoffentlich) unwahrscheinllehen Ereignissen beschäftigen, rnrissen wir uns oft einfacher Wahrscheinlichkitsschij,tzwngen bedienen?Ein ~UtzlicherAnsatz 'dazu ist folgender: Wenn m e i unabh~ing'i~e, ~reigjni~ch &it9e'Waht~zkinlichkeitenp und q haben, dann intt die Wahrscheinlichkeit, dass eines der beiden Ereignisse eintritt, p + q. Die
eines Fehlers, der sich durch die I-Paritätsbit-Prüfsummedurchschleicht. Wenn E. das Ereignis ist, dass die Bits iundj fehlerhaft sind (0 5 i <j lo4), beträgt die Wahrscheinlichkeit dieses Ereignisses ungefähr p = 1 0 - ~X 1 0 - ~= 10-j4. Bei einem bestimmten Wert von j ist die Anzahl möglicher Ereignisse Eii, für die gilt i < j, gerade gleichj. Addieren wir die Anzahl dieser Ereignisse für alle j C lo4, erhalten wir 1+ 2 + + (104 1) = l/z 108.Die endgültigeWahrscheinlichkeit ist
...
-
I
.
2.4.3 CRC (Zyklische Redundanzprüfung) Inzwischen dürfte ein wichtiges Ziel bei der Entwicklung von Fehlererkennungsalgorithmen klar geworden sein: die Maximierung der Wahrscheinlichkeit, Fehler unter Verwendung einer kleinen Anzahl redundanter Bits zu erkennen. CRC (Cyclic Redundancy Check, zyklische Redundanzprüfung) erreicht dieses Ziel mit relativ mächtigen mathematischen Methoden. Eine 32-Bit-CRC bietet 2.B. guten Schutz vor üblichen Bitfehlern in Nachrichten, die Tausende Byte lang sind. Die theoretische Basis der zyklischen Redundanzprüfung ist das, was Mathematiker »endliche Felder* nennen. Das hört sich komplizierter an, d s es ist. stellen uns zunächst vor, dass eine Nachricht von (n+l) Bit durch ein Polyrdm vom Grad n repräsentiert wird, d.h. ein Polynom, dessen Term höchster Ordnung xn ist. Die Nachricht wird durch ein Polynom dargestellt, indem man den Wert jedes Bits der Nachricht als K&ffizient für jeden Term des Polynoms verwendet, beginnend mit dem werthöchsten Bit für den Term der höchsten Ordnung. Eine 8-Bit-Nachricht, die sich aus den Bits 10011010zusammensetzt, entspricht beispielsweise dem Polynom
Wir können uns folglich Senden und Empfangen als Austausch von Polynomen vorstellen. Zum Zweck der Berechnung einer CRC müssen Sender und Empfänger ein Divisor-Polynom, C(x), vereinbaren. C(x) ist ein Polynom mit Grad k. Sei 2.B. C(x) = x3 + 2 + 1, ist k = 3. Die Antwort auf die Frage, wo C(x)herko~mt,ist in den meisten praktischen Fällen: wSchlag es in einem Buch nach.« Wie wir später zeigen werden, hat die Wahl von C(x) tatsächlich eine gro& Wirkung darauf, welche Fehlerarten zuverlässig erkannt werden können. Es gibt eine Reihe von DivisorPolynomen, die sich für verschiedene Umgebungen sehr gut eignen. Die genaue Auswahl wird normalerweise im Rahmen des Protokolldesigns getroffen. Der EthernetStandard nutzt beispielsweise ein wohlbekanntes Polynom mit Grad 32.
' ( x )UOA ~ Sax uap anqwiqns g
'-=%I mP W F a P
'as;
q m P (X)& a3aPF!CI Z
.~a!dsfagT a pua%10~'13t?q %!puawouuaiq3yq~qquara%ql!aq qp 'nawsna uo!spua aS,%ualaya
2raqEaqns (X)$
BOA
1 % ) uem ~
mapq % ~ a u .p+ ~ a a s a auaipqsa ~ ( x ) 3 q3mp ( x ) gUOA aa!@pqaafprp~nprag @
\
: ( u a p q 3~2 ~ üaqneli¿)q-fnla sni %IS u q q p n ) apkz msun r n q~
.
94
1
1 Dlroittverbindu-arkr
Waa an diesem Punkt übrigbleibt, ist natiirlich eine Nachricht, die genau durch C(=) teilbar ist. Wir können auch feststellen, dass die resultierende Ndwkht aus M(* gefolgt von dem in Schritt 2 erhaltenen Rest besteht. Als wir n h U & den Rest (d& ni~hclänger als k Bi$ sein kann) subtrahierten, fiihrten voir nur XOR mit den in Schritt 1ang-en k Nulkn durch, Dieser Teil d d an einem l&eispiel Mare& Man betrachte die Nachricht x7+ X' + x3 + x1 bm. lQOi1100. Wit begirrneg mit der Multiplikation mit x3, da umer Divisor-Poiynom\Grad 3 hat, Das e~&b 10011010000. Ws dividieren dies durch C(x), was in dieseh FaU 1101 efltspri& Abb. 2.17 zeigt die lange p o l y n d a l e Division. Mit den oben beschriebenen Pdjnom-Arithmetik-Regeln verlluft die lange Division mehr oder weniger geaawo ab würden wir Ganzzahlen dividieren. Im ersten Schritt: unseres Beispiels sehen wiie also, dass deli Divisor 1101 einmal in die ersten vier Bit der Nachricht (1001)passt, weil sie den gleichen Grad haben; es ergibt sich ein Rest von 100 (1101 XOR 1601). Im nächsten S c h r i ~bringen wir ein Bit vom Nachrichten-Polynom herunter, bis W& ein weiteres Polynom mit dem gleichen Grad wie C(x) erhalten - in diesem F& ' 1001. Wir berechnen wieder den Rest (100)und fahren fort, bis die Bermhnung vollständig ist. Man beachte, dass das ~Ergebnisader langen Division, &s oben in der Berechnung erscheint, eigentiich nicht von Interesse i s von ~ Belang ist der Best am Ende. Generator
-
11111001 110111W1 1010000
-
Nachricht
Ai& 217: CRC-Berechnung mit Hilfe der Langen polynomialari Division
1101 1011 1101, 1100 110lll, 1000 1101 101 r- Rest
-
7
Ganz unten in Abb. 2.17 sehen wir, dass der Rest der Beispielberechnung 101 beträgt. Folglich wissen wiq dass 10011010000minus 101 genau durch C(x)teilbar ist, und genau das senden wir. Die Minusoperation in der Polynom-Arithmetik ist die logische XOR-Operation, sodass wir 10011010101 senden. Wie oben erwähnt, , ist das lediglich die Originalnachricht mit dem angehängten Rest aus der langen C(%) Divisionsberechnung. Der Empfänger dividiert das empfangene Polynom-ch und schlussfolgert, dass keine Fehler entstanden sind, falls das Ergebnis 0 kt. Ist das Ergebnis ungleich Null, muss die fehlerhafte Nachricht möglicherweise verworfen werden. Mit manchen Codes ist es möglich, kleinere Fehler (2.B. einen, der sich aur auf ein Bit auswirkt) zu korrigieren. Ein solcher Code wird als Fehlmkmekihdrcode (Error-Correcting Code, ECC) bezeichnet. :'
/
Wir befassen uns nun mit der Frage, woher das Polynom C ( x )kommt. Vom Prinzip her wird dieses Polynom so gewählt, dass es sehr unwahrscheinlich ist, dass es ohne Rest eine mit Fehlern behaftete Nachricht teilt. Ist die übertragene Nachricht P(x), stellen wir uns die Einführung von Fehlern als Addition eines weiteren Polynoms E(x)vor, sodass der Empfänger P(x) + E(x) erhält. Dieser Fehler könnte einzig und d e i n dann unerkannt bleiben, wenn die empfangene Nachricht durch C ( x ) glatt teilbar wäre. Da wir wissen, dass P(x) ohne Rest durch C ( x )teilbar ist, könnte dies passieren, wenn auch E(x)glatt durch C ( x )dividiert werden kann. Wir wählen also C(x)so, dass dies bei üblichen Fehlerarten sehr unwahrscheinlich ist. Häufig sind etwa Einzelbitfehler, die als E ( x ) = xi ausgedrückt werden können, wenn sie sich auf Bitposition i auswirken. Wählen wir C ( x ) so, dass der erste und letzte Term ungleich Null sind, verfügen wir bereits über ein zweigliedriges Polynom, durch das sich das nur aus einem Term bestehende E(x) nicht glatt dividieren lässt. Mit diesem C ( x ) werden daher alle Einzelbitfehler erkannt. Im allgemeinen lässt sich nachweisen, dass die folgenden Fehlerarten bei einem C ( x )mit den jeweils angegebenen Merkmalen erkannt werden können:
i Aile Einzelbitfehler, solange die Terme xk und xo Koeffizienten ungleich
Nd
haben. i Aile Doppelbidehler, solange C(%)einen Faktor mit mindestens drei Termen hat. iJede ungerade Fehleranzahl, solange C(%)den Faktor (X + 1)enthält. iJeden Burstfehler (dh. mehrere aufeinander folgende fehlerhafte Bits), bei denen die Burstliinge weniger als k Bit beträgt. (Die.meisten Burstfehler mit mehr als k
Bit können ebenfalls erkannt werden.)
In Protokollen auf der Sicherungsschicht werden häufig sechs bestimmte Versionen von C(%)benutzt (sieheTabelle 2.5). Die später in dieserriKapitel beschriebenen Ethernet- und 802.5-Netzwerke verwenden beispielsweise CRC-32, während CRC-CCi'iT in HDLC benutzt wird. ATM (sieheKapitel 3) benutzt CRC-8, CRC-10 und CRC-32.
Schließlich bleibt festzustellen, dass der CRC-Algorithmus zwar komplex erscheint, sich aber leicht mit Hilfe eines k-Bit-Schieberegisters und XOR-Gattern in Hardware implementieren lässt. Die Bitanzahl im Schieberegister entspricht dem Grad des Generator-Polynoms (k). Abb. 2.18 zeigt die Hardware, die man für den Generator x3 + 2 + 1aus unserem vorherigen Beispiel verwenden würde. Die Nachricht wird ab dem wekhtkhsten Bit von links eingeschoben und endet mit der Kette von k angehängt wird, wie in dem Beispiel mit der langen Nullen, die an die Na-ht Division. Wurden alle Bitb eingeschoben und entsprechend einer XOR-Operation unterzogen, enthält das Register den Rest, d.h. die CRC (das werthöchste Bit rechts). Die Position der XOR-Gatter wird wie folgt bestimmt: Fails die Bits im Nachricht
I
Jt"
X'
XOR-Gatter J&
Abb. 2.1Q CRC-Berechnung mit Hilfe eines Schieberegisten
ter mit 0 bis k - 1 von links nach rechts beschriftet sind, so füge ein tter vor Bit n ein, wenn sich im Generator-Polynom ein Term xn befindet. erhalten wir ein XOR-Gatrer vor den Positionen 0 und 2 für den Generator
aben im vorherigen Abschnitt geschk, dass Frbei der Obertragung verfälscht werden. Einige .Fehlercodes sind zwar ausreichend leistungsFehler auch zu korrigieren. In der Praxis erweisen sich aber auch die erkorrekturcodes als ungenügend, um die verschiedenen Bit- und in einer Netzverbindung auftreten können, ohne übermäßigen Overa h n . Als Ergebnis müssen verfälschte Frames verworfen werden. Ein oll auf der Sicherungsschicht, das Frames zuveriässig zustellen mischte, muss W d w i e versuchen, diese verworfenen (verlorenen)Frames wiederherzustellen. F Dies geschieht normalerweise durch Verwendung einer Kombination aus zwei dlegenden Mechanismen: Bestätigungen (Acknowledgrnents) und Timeouts. Bestätigung (kurz ACK) ist ein kleiner Kontroil-Frame, den ein Protokoll seihP a a r zurücksendet und der ihm mitteilt, dass es einen früheren Frame erhalhhat. Ein Kontroll-Frame ist ein Header ohne weitere Daten, obwohl ein Protov v . a u c h im Huckcpackverfahm (Piggyback) ein ACK an einen Daten-Frame W n g e n kann, den es möglicherweise in entgegengesetzter Richtung sendet. Der ~ P f a n geines ACK gibt dem Sender des Original-Frames zu verstehen, dass sein berfolgreich zugesteilt wurde. Erhält der Sender innerhalb eines angemessenen 'traums kein ACK, überträgt er den Original-Frame erneut. Diese angemessene ezeit oder Zeitsperre nennt man Timeout. Die allgemeine, der Verwendung von Bestätigungen und Tmeouts zu Grunde liestrateg&, um zuvetlässige Datenübertragung sichenusteIlen, nennt man auch Repeat Request (mit der üblichen Abkürzung ARQ). In diesem Abschnitt verschiedene ARQ-Algorithmen mit Hilfe einer generischen Sprache Das heißt, wir beschreiben die Hader-Felder eines bestimmten Protonicht im Oetail.
E
L
bie einfachste ARQ-Methode ist der Stop-ad-Wait-Algorithmus. Er basiert auf einem einfachen Konzept: Nach der Übertragung eines Frames wartet der Sender auf ,+I ACK, bevor er den nächsten Frame überträgt. Falls das ACK nicht innerhalb $iner bestimmten Zeit eintrifft, läuft der Tirneout des Senders ab und er überträgt ,$en Original-Frame erneut. Abb. 2.19 zeigt vier verschiedene Szenarien, die sich aus diesem grundlegenden dgorithmus ergeben. Diese Abbildung verwendet einen Zeitstrahl - die übliche Art, B
Sender
Empfänger
Sender
Sender
Emp#lnger
Sender
Empfänger
"-,[
i
F
I[> (b)
Abb. 2.19: Zeitlicher Ablauf bei vier Szenarien des Stop-and-Wait-Algorithmus (a) ACK wird vur Ablauf des Timeout empfangen; (b)der Original-Frame geht verlore (C)ACK geht verloren; (d) der Timer lauft zu früh ab.
um das Verhalten eines Protokolls darzustellen. Die sendende Seite ist links und die empfangende rechts dargestellt; die Leii verlauft von oben nach unten. Abb. 2.19(a) zeigt den Fall, bei dem das ACK vor Ablauf des Timeout empfangen wird; (b) und (C) stellen den Fall dar, bei dem der Original-Frame bzw. das ACK verlorengeht, und mek bei dem in (d) dargestellten Fall läuft der Timeout zu früh ab. Mit ~.~edoren* nen wir, dass der Frame bei der Übertragung verfälscht wurde, dass dies durch einen Fehlercode im E r n ~ f"b eerkannt r wurde und dass der Rahmen demzufolae verworfen wurde. weist eine wichtige Feinheit auf. Bns enom Der Stop-and-Wait-Algorithmus der Sender überträgt einen Frame und der Ernpfhger bestätigt ihn, das ACK aber entweder verloren oder kommt verspätet an. Diese Situation ist durch die Situationen (C) und (d)in Abb. 2.19 dargestellt. In beiden Falien läuft der T i e r des Senders ab, sodass er den Original-~rameerneut übertragt. Der Empfänger nimmt aber &
,-
W e k sich um den nächsten Frame, weil der erste korrekt empfangen und
wurde. Dadurch besteht die Mögiichkei~,dass mehrere Kopien eines werden. Um dieses Problem zu lösen, b e u t e t der Hader beim o h l i normalerwtise eine 1 Bit liÜige Scquaummmei; die den amehmen kann. W= aus AM. 220 ersichdich wird, iindet ssich die er abwechsehd für jeden aufeinander foigymden Frame. Das h d t , der Sender Frame 0 erneut überträgt, kann der EmDfänp;er feststellen. dass es eine erneute Kopie von Frame 0 oder nicht um eine von Fr1handelt. Er daher ignorieren (bestätigtes aber dennoch für den Fall, dass das erste ACK ging). Abb. 2 a Zeitlicher Abiauf des Stop-and-Wait-Protokolls
mit einer 1-Bit-5equenmummer
6gte Nachteil des Stop-and-Wait-Algoipthmusk, d a s er dem a Q h n& e h mtwehuicte~Fauf .der Vwbinduqpleimng gestattet, nies liegt der bpai&& det Verbiadunpleituag. Eaae Verbindungseher asUndabZcit fRl37 von 45 ais hat b i s h h ~ & - & d b & ~ r o d t & t -=67 J kb b&. w 8 g& D.da Se& T , j d i s mit einen Frame ilbem:agen kann, k & g t die maximale Ubersrate einer b W O 1 3 e vw 1 Kü.
etwa ein Achtel der Leitmgshpitat. Um die Verbindirngsleitungroll auszulamüsste dw Se~idet!die M ~ ~habeh, ~ bisi zu ache t Frame i ~ uü h a g a , er auf. eme Bestätigung warten muss,
b Das Verzibgening-Bandbreite-Produktstellt die maximale in der Übertragung b findliche Datenmenge dar. Das ist die Datenmenge, die wir senden können, ohne auf die erste Bestätigung watten zu müssen. Das hier zu Grunde Liegende M p wird o#t mit Keeping tk Pipe fill werSmehe, die Verbindungsleitung optitniisl auszulasten umschrieben. Genau auf dieser Grundlage basken die beiden in den folgenden Unterabschnitten beschriebenen Algorithmen.
-
-
2.5.2 Sliding-Window
Wir betrachten erneut das Szenario, bei dem die Verbindungsleitung ein Verzögerung-Bandbreite-Produkt von 8 KB hat und die Frames 1KB graB sind. Wi,gehen jetzt von der Bereitschaft des Senders aus, den neunten Frame etwa zur gleichen Zeit zu senden, zu der das ACK für den ersten Frame ankommt. Der Algorithmus, mit dem wir dies erreichen, heif3t Sliding-Wmdow;er ist in Abb. 2.21 dargestellt. Sender
I
Empfänger I
Abb. 231: Zeitlicher Ablauf beim Sliding-WindowAlgorithmus
Der SMding-Wndow-Algorithmus Der Sliding-Window-Algonhus funktioniert wie folgt: Zuerst weist der Sendet jedem Frame eine Sequenzttlammer (Sequenee Number) mit der Beschriftung SeqNum zu. Vorläufig ignorieren wir die Tatkache, dass SeqNum durch ein HeadePFeld mit endlicher Gröi3e implementiert wird. Wir gehen stattdessen davon aus, dass es unendlich wachsen kann. Der Sender verwaltet drei Variablen: Die Gröfk des Sendefmters (Send Window Size, SWS), welche die obere Grenze der Nummer von ausstehenden (nicht bestätigten) Frames bestimmt, die der Sender übertragen kam. Die letzte empfangene Bestätigrcng (Last Acknowledgrnent Received, LAR) und der zuletzt gesendete Frame (Last Frame Sent, LFS). Der Sender hält aderdem folgende Beduigung aufrecht: LFS
'r
-LAR- -Ta-wv-. S SWS
L ' , ,
/ -
- i in AM. 2.22
datgesrellt -232: Sliding-Window des Senders
t i m an, schiebt der Sender LAR nach rechts und ermogücht es
em Eingang eines ACK ablädt. Man beachte, dass der Sender bereit sein zu müssen, bis sie aiie bestätigt wurden. dow Size, RWS) fcit die obere Grenze der auDer der Reihe vom
cceptable Frame, LAF) und die Sequenznummer des zuletzt empLast Frame Received, LFR). Darüber hinaus hält der Empfänger Bedingung aufrecht: LAF -LFR $ RWS
*
on wird aus Abb. 2.23 deutlich. Abb.2.a
.
mit Scquenznimunrr SeqNum an, umnimmt da Empfänger folW N u m S LFR oder &qWum > LAF, liegt: der Frame aderhalb neters und wird verworfen. W- LFR < SeqNum S LAF, ist der des Empfiedensters und wird akzeptiert. Nun muss der Emp-
wenn Pakete mit höheren Nummern eingegan-
.
-
lQ2
,
'
I
2
üi~ndu~nrbweclu
des Empfängerfensters liegen. F,s muss aber kein ACK gesendet werden, weil Frame 6 noch aussteht. Frames 7 und 8 sind also außer der Reihe angekommen. (Austechnischer Sicht könnte der Empfänger ein ACK für Frame 5 erneut senden, wenn Frames 7 und 8 ankommen.) Sollte da^ Frame 6 verspätet ankommen, weil er beim ersten Mal verlorenging und erneut übertragen werden musste oder weil er sich einfach verzögert hat, bestätigt der Empfänger Frame 8, und setzt LFR auf 8 und LAF auf 12. Ging Frame 6 tatsächlich verloren, ist beim Sender der Tirner abgelaufen, was ihn veranlasst hat, den Frame erneut zu übertragen. Wu stellen also fest, dass sich die in Ubemagung befindliche Datenrnenge vermindert, wenn ein Timeout erfolgt, weil der Sender sein Fenster erst weiterschieben kann, wenn Frame 6 bestätigt wurde. Das he8t also, dass diese Methode im Fall' eines Paketverlustes die Verbindungsleitung nicht voll ausschöpft. Je länger es dauert, um den Verlust eines Pakets festzustellen, um so mehr verschärft sich dieses Problem. Man beachte, dass der Empfänger bei diesem Beispiel eine negative Bestätigung (Negative Acknowledgment, NAK) fik Frame 6 senden könnte, sobald Frame 7 ankommt. Das ist aber unnötig, weil der Timer des Senders ausreicht, um diesen Ausnahmefall aufzufangen. Auhrdern erhöht sich durch Obertragen von NAKs die Komplexität für den Empfänger. Wie erwähnt, ist 'es absolut legitim, zusätzliche Bestätigungen für Frame 5 zu senden, wenn Frames 7 und 8 ankommen. In manchen Fällen kann der Sender ACK-Duplikate als Hinweis auf einen möglichen Rahmenverlust verwenden. Bei beiden Methoden verbessert sich die Leistung, da Paketveriuste früh erkann; werden. Bei einer weiteren Variante dieser Methode werden selektive Bestätigungen (SelectiveAcknowledgments) verwendet. Das heißt, der Empfänger kann genau nur die empfangenen Frames statt der in der richtigen Reihenfolge empfangenen Frames mit der höchsten Sequenznummer bestätigen. Im obigen Beispiel könnte der Empfänger d& Erhalt der Frames 7 und 8 bestätigen. Erhält der Sender solche zusätzlichen Informationen, hat er eventuell die Möglichkeit, die Verbiidungsleitung besser auszulasten. Allerdings wird die Implementierung dadurch komplexer. Die Sendefenstergröße wird passend dazu gewählt, wie viele Frames zu einem Zeitpunkt auf der Verbindungsleining ausstehen diirfen. SWS lässt sich also für ein bestimmtes ~erzö~enin~-~afidbreite-~rodukt~ leicht berechnen. Andererseits kann der Emp-er RWS auf einen beliebigen Wert setzen. Häufige Einstellungen sind RWS = 1 (der Empfänger führt keine Zwischenspeichenq von außer der R e h angekommenen Framm durch) und RWS = SWS (der Empfanger kann beiiebige vom Sender übertragene Frames zwisc:henspeichem]. Die Einstellung RWS > SWS ist x-inbweil es unmöglich ist, dass mehr als SWWrarnes außcr der Reihe ankom-
men
1. *Einfach* natürlich ntq sofern wir Verzögerung und Bandbreite kennen. Manchmal ist das nicht der Fd, und sie zu schätzen, ist keine einfache Aufgabe für Protokoildesgnet Dieses Thema wird in Kapitel S audiihriich behandelt.
-
-
SeqwnrnusnnaamundSiMing-WinAow ietzt zu einer von uns in den Al~torithmusein-rfiihrten Vereinfachum :pnsere Annahme, dass Sequenznlfmmern unendiich wachsen können. In der hat das Header-Feld, in dem die Sqwmmummer eines Frames spezhert natürlich eme bestimmte Gr*. Ein 3-Bit-Feld bedeutet beispielsweise, dass es ÖglidK Werte, 0...7, gibt. Deshalb müssen S a q u e n a i ~ m wiederverwenf Dadurch werden, was man auch als zyklischen N u ~ m l a r c bezeichnet. teht das Problem, dass man zwischen verschiBdenen Instanzen der gleichen er unterscheiden können muss. Das heat, die Anzahl der niögli&en ern muss grö&r als die der höchstzuiässigen ausstehenden Frame8 Das Stogand-Wait-Protokoll ermbglicht beispielsweise nur je einen ausstehenFrame und zwei unterschiedliche Sequenzntmmem. Würde es ausreichen, wenn wir in unserem Nummernraurn eine Nummer mehr ds potenziell ausstehende Frame hätten, d.h. SWS r MaxSeqNum 1, wobei MaxSedie Anzahl der verfügbaren ~e~ienznummern ist? Eie A.n&ort hängt von E ~ ab.SWenn RWS = 1, dann reicht-~axSeqNumr SWS o 1 aus. Ist ~ - g l e i c h @, reicht eine um nur Eins grokre WGeqNurn als die Sendefenstergrße nicht chtm wir als Nachweis die Situation, in der wir die acht Sequenznummern d SWS = RWS = 7 haben. Nehmen wir an, der Sender überträgt die Frames is 6, sie werden erfolgreich empfangen, die ACKs gehen aber verloren. Der Emperwartet jetzt auf Frames 7, und wieder 0 bis 5. Beim Sender läuft inzwischen er ab, sodass er Frame 0 bis 6 erneut sendet. Der Empfänger erwartet allerzweite Instanz von Frame 0 bis 5, erhält stattdessen aber die erste. Genau all möchten wir vermeiden. s Sendefenster darf also nicht mehr als halb so groß wie die Anzahl der verfügSequenznummern sein,wenn RWS = SWS, bzw. genauer
.
-
SWS c (MaxSeqNum + 1)/ 2 . ~ h s d a u l i c gesprochen h heißt das, dass das Sliding-Wmdow-Protokoll ständig zwi&en den beiden Hälften des Nummernraums wechselt, ebenso wie das Stop-and8a%it-~rotokollzwischen den Seqummummern 0 und 1 permanent wechselt. Der Unterschied ist, dass es sich kontinuierlich zwischen den beiden Hälften hin:& herbewegt, anstatt zwischen ihnen hin- und herzuspringen. 7 Diese Regel trifft spezifisch auf den Fall mit RWS = SWS m.Wu überlassen den hdie Herleitung der alfgemeiaeren Regel, die auf beliebige Werte von RWS und Lrifft. Man beachte auch, dass die Beziehung zwischen der Fenstergröße und ummernraum von einer so selbstverständlichen Annahme abhängt, dass sie ubersehen wird: namiich dass Frames während der übertragung nicht umgewerden. Dies kann bei einer direkten Punkt-zu-Punkt-Leitung nicht passieil ein Frame dabei keine Möglichkeit hat, einen anderen zu überholen. Wir en jedoch in Kapitel 5 den Sliding-Window-Algorithmus noch einmal in einer en Umgebung betrachten, für die wir uns eine andere Regel ausdenken müs-
t&-
Implementierungdes Sliding-Window-Algorithmus Die folgenden Routinen zeigen, wie die Sende- und Empfangsseite des Sliding-Wmdow-Algorithmus implementiert werden kann. Die Routinen stammen aus einem echten Protokoll mit dem bezeichnenden Namen ~SlidingWindow Protocol* (SWP). Damit wir uns im Protokollgraphen nicht mit benachbarten Protokollen befassen müssen, nennen wir das oberhalb von SWP angesiedelte Protokoll schlicht HLP (High-Level Protocol) und das unter SWP befindliche LINK (Link-Level Protocol). Wir beginnen mit der Definition zweier Datenstrukturen. Der Frame-Header ist sehr einfach. Er enthält eine Sequenznummer (SeqNum) und eine Bestätigungsnummer (AckNum) sowie ein Feld Flags, das Auskunft darüber gibt, ob der Frame eine Bestätigung ist oder Daten enthält. typedef U-char SwpSeqno; typedef struct ( SwpSeqno SeqNum; SwpSeqno AckNum; U-char Flags; } SwpHdr;
/* /* /*
Sequenznumner dieses Frames */ ACK-Numr des empfangenen Frames */ Flags im ümfang von b i s zu t o 8 B i t */
Der Zustand des Sliding-Window-Algorithmushat folgende Struknir: Für die Sendeseite des Protokolls beinhaltet dieser Zustand die weiter oben in diesem Abschnirt beschriebenen Variablen LAR und LFS sowie eine Warteschlange (sendCl), in der übertragene, aber hoch nicht bestätigte Frames aufgereiht werden. Der Sendezustand umfasst auch eine zählende Semaphore namens sendWindowNotFull. Wie sie benutzt wird, folgt später. Allgemein ist eine Semaphore eine Synchronisationsprimitive, welche die Operationen semWaR und semsignal unterstützt. Jeder Aufruf von semsignal inkrementiert die Semaphore um 1, und jeder Aufruf von sernwait dekrementiert sie um 1. Dabei blockiert der Aufrufprozess, falls die Semaphore durch das Dekrement einen Wert kleiner als 0 annimmt. Ein während seines Aufrufs von sernWait blockierter Prozess kann wiederaufgenommen werden, nachdem ausreichend sernsignai-Operationenausgeführt wurden, um den Wert der Semaphore über 0 anzuheben. Für die Empfangsseite des Protokolls beinhaltet der Zustand die Variable NFE. NFE steht-fürnext fiame expected - der Frame mit der Sequenznummet, die eins über der von last fiame received (LFR)liegt, die weiter oben in diesem Abschnitt beschrieben wurde. Es gibt auSerdem eine Warteschlange (recvQ), die außer der Reihe empfangene Frames aufnimmt. Die Grö%edes Sende- und Empfangsfensters wird durch die Konstante SWS bzw. RWS (hier nicht dargestellt) definiert. typedef struct /* Zustand SwpSeqno SwpSeqno
( der Sendeseite: */ LAR; /* Sequenznumner (seqno) des letzten empfangenen ACK LFS; /* zuletzt gesendeter Frame */
*/
struct sendQ-slot { Event timeout;
/*
Ereignis i n Verbindung m i t dem Ablauf des Sende-Tiniers
/* Zustand der Eiapfangsseite: */ /* Sequenznunner (seqno) des als nächstes enraHtten Frames SwpSeqno NFE; struct VecvQ-sl ot { reeeived; /* I s t die Nachriehf (msg) giiltig? */ int
.
*/
*/
Vor15t&$3 genügt es eu wisserl, dass diese Routine das wettti-te Bit rnehieren Speichezwör&embeattkndea C;anzzahl in das Byte mit der
static i n t sendSWP(SwpState *state. Msg *frame)
I s t r u c t sendQ-sl o t *slot; hbuf [HLEN] ; Warte. b i s Sendefenster o f f e n i s t */ s d a i t (&state-~sendHindowNotFul1); state->hdr.SeqNum = ++state->LFS; s l o t = btate->sendQ[state->hdr.SeqNum % SWS]; store-swp-hdr(state-~hdr. hbuf) ; msgAddHdr(frame. hbuf, HLEN) ; msgSaveCopy(&sl ot-msg, frame) ; s l ot->timeout = evSchedule(swpTimeout. s l o t . SWP-SEND-TIMEOUT) ; return send(LINK, frame) ;
/*
1 Nun zu SWP's protokollspezifischer Implementierung der Operation delive:, die in der Prozedur deliverSWP angegeben wird. DKse Routine handhabt zwei unterschiedliche Arten ankommender Nachrichten: ACKs füt bereits von diesem Knoten gesendete Frames und bei diesem Knoten ankommende Daten-Frames. In gewissem Sinn ist die ACK-Hälfte dieser Routine das Gegenstück zur Sendeseite des in sendSWP angegebenen Algorithmus. Die Entscheidung, ob es sich bei der ankommenden Nachricht um ein ACK oder einen Daten-Frame handelt, wird durch des FlapFelds im Header getroffen, Man beachte, dass diese spezifische Implementierung nicht du Obertragung von ACKs für Daten-Frames im H a c k ~ ~ k v e r f a h unterstützt. Ist der ankommende Frame ein ACK, sucht sich deliverSWP in der Sen&warteschlange (sendQ) den Zeitschlitz, der diesem ACK emspridrt, annulliert d a gesetzten Timeout und gibt den in diesem 2kitschlitz gespeicherten Frame frei Diese Arbeit erfolgt in einer Schleife, weil ACK kumulativ sein kann. Der einzige weitem an diesem P d beachtenswerte Aspekt isr der A u f d der Subroutine ewplnWindow. Diese unten aufgeführte Subroutine gewährleistet, dass die Sequenznummer des zu bestätigenden Frames innerhalb des ACK-Bereichs liegt, dessen Empfang der momentan erwartet. Enthält der ankommende Frame Nutzdaten, ruft deliverSWP zuerst msgCuipHdr und bad-snrp-hdr auf, um den Header aus dem Frame zu nehmen. Die R o u h M-syt-hdr ist das G&mstiick zu storereswprehdf(siehe oben). Sie übersetzt eine Byte-Kette in die C-Datensdtur, die den 6WP-Header enddt. deliverSWP ruEt dann swplnWindow auf, um &herzustellen, dass die Sequemummer des Frinnerhalb des erwarteten Nummernbereichs liegt. Trifft dies zu, iteriert die Routine über die aufeinander folgend empfangenen F~amesund ruft die Routine deliverHLP auf, um sie an das Protokoll der höheren Ebene weiterzuleiten. Außerdem sendet sie ein kumulatives ACK an den Sender zurück, iteriert dabei aber über die Empfangs-
~~
1
107
nicht die weiter oben im Text beschriebene Variabk
pState state. Msg *frame)
if (hdr-*F1 ags LL FLkACK-VALID)
-
/*
k s t ä t i g u n g empfangen bearbeite Sendesei t e if (swpInWf ndow(hdr.AckNum, state-*UR + 1, state->LFS) )
*/
s t r u c t s e n d t s l o t * s l ot; s l o t = &state->sendQ[+tstate->LAR % SWS] ; evCancel ( s l ot-*timeout) ; msgDestroy (&slot-msg) ; semSi gnal (Bstate->sendWS ndowNotFu11) ; } while (state->LAR != hdr.AckNum);
s t r u c t recvQ-slot *slot; Datenpaket empfangen - bearbeite Empfangsseite s l o t = &state->recvQ[hdr.SeqNum % RWS] ; i f (!swpInWindow(hdr.SeqNum. state->LFR, state->LFR + RWS I ) )
/*
-
/*
'
Verwerfe d i e Nachricht r e t u r n SUCCESS;
*/
msgSaveCopy (&sl ot-msg. frame) ; slot->received = TRUE; if (hdr.SeqNum == state->LFR)
whi 1e ( s l ot->recei ved)
*/
del iver(HLP, &slot-msg) ; msgDestroy (&slot-msg) ; s l o t - ~ r e c e i v e d = FALSE; s l o t = &state->recvQ[++state->LFR % RWS] :
1
/*
Sende ACK: */ prepare-ack(&m, state->LFR send(LINK, &m) ; msgDestroy (h) ;
- 1);
1
1 return SUCCESS;
1 Abschliegend ist swplnwindow eine einfache Subroutine, die prüft, ob eine bestimmte Sequenznummer zwischen einer minimalen und einer maximalen Sequenznummer liegt. s t a t i C bool swpInWi ndow (SwpSeqno seqno, SwpSeqno mi n, SwpSeqno max) ( SwpSeqno pos , maxpos ;
-
pos = seqno min; maxpos = max min + 1; return pos < maxpos;
-
/* /*
pos *so1 1 t e * im Bereich [O. .MAX) 1 iegen maxpos i s t im Bereich [O. .MAXI */ ,
*/
1 Frame-Reihenfolge und Fiusskontrolle Das Sliding-Wmdow ist einer der am besten bekannten Aigorithmen im Bereich der Rechnervernetzung. An diesem Algorithmus ist allerdings etwas wrwirrend, dass er für drei verschiedene Aufgaben benutzt werden kann. Die erste Aufgabe ist die, auf die wir uns in diesem Abschnitt konzentriert haben: die zuverlässige Zustellung von Frames über eine unzuverlässige Verbindungsleitung. (Allgemeiner kann der Algorithmus für die zuverlässige~shllungvon Nachrichten über ein. unzuverlässiges Netzwerk benutzt werden.) Das ist die Kernfunktion des Algorithmus. Die zweite Aufgabe des ~Lidin~-~indow-~~orithmus dient der Einhaltung der Reihenfolge, in der die Frames übertragen werden. Dies ist beim Empfänger einfach. Da jeder Frame eine Sequenznummer hat, braucht er nur sicherzustellen, dass er keinen Frame an das Protokoll der nächsthöheren Ebene weitergibt, bis er alle Frames mit einer kleineren Sequenznummer abgegeben hat. Das bedeutet, dass der Empfänger a d e r der Reihe ankommende Frames zwischenspeichert (statt weiterleitet). Die in diesem Abschnitt beschriebene Version des Sliding-Window-Algorithmuswahrt die Frame-Re+nfolge. Man könnte sich aber eine Variante vorstellen, bei der die Frames vom Empfänger an das nächste Protokoll abgegeben werden, ohne dass er auf die Ankunft aller früheren Frames wartet. Hier soiite man sicli die Frage stellen, ob das Sliding-Window-Protokollwirklich nötig ist, um die Reihenfolge der Frames
W w müsm h Folge ber V d u uo~buadenwmdeti, iun einen
R.aoitnn-ag, dwah dea der Dabei wird der Sonder datau epbindert, mehr
tokuii so e m e k t , dass der sondern den *der auch der Frame&,die der h p seines Suffeas ab. Wie im
L b,nrih&dgiqpmhten:
2hstclIaag mibsen wir ZUtkmtdien, ob Fiusekonauf der Sichemggochicht &r&li& ist, bevor wir sie im S k h g - W m h hplernentiuen.
khs d i asigns a Diskussion k6-a ein wichtines Konrma dsl &&in des ableiten, das maa als Asrwentmzlpirng (Separation of Cmwir
Og
) bezeichnen könote. Das h&td dass wir sorj@tig zwischai v e r d d e n e n !&onen u n t d e i d m miissen, die manchmal in einem eh&m MeJiamsbfkrdem muss man fesuteiien, ob eine Punktion wirkist und auf effektivste W eise uaterstützt wird. in wwmn speziellenFd zuveriiiwip Zusduqg, redhdblgegeechte Zustellung und Rvsskonmanchmal in einem &migen Igidiag-Wmdow-Protokoll komäma. Wu. ,cd~ten mis in diesem Zus~nnenhangdie Frage stellen*ob diese Vorgehensweise [*E, 5 , ,iauf der S l c h ~ s c h i c hrichtig t ist. Vor diesem Hintergrund betrachten wir den ki.: '~d;ng~W;ndow-Algofithm~~ M Kapitel 3 (wo seine Verwendq iri XZS-Netz_ wird, run eine .hop-by-hop# Flvsskoasroile zu implemen@:$ ,
hd geren) W = ia Kapfe15 (in dem sehe Verwendung in TCP beschrieben , wird, um einen wverlifssigen Byte-Suomkai3at zu implementieren).
*. C .
E
:.
2.5.3 Gleichzeitige logische Kanäle Das im ARPANET auf der Sicherungsschicht benutzte Protokoll bietet eine intereswte Alternative zum Slidmg-Whdow-Protokoil, indem es die Verbindungsleirung mtz Verwendung des einfachen Stop-and-Wait-Algorithmus vollständig auslastet. &eser Ansatz hat die wichtige Folge, dass die über eine gegebene Verbindungsleit m g gesendeten Frames nicht in einer bestimmten Reihenfolge erhalten werden. Das P5:otokoll gibt auch nichts über Flusskontroile voc Das dem ARPANET-Protokoii zu Grunde liegende Konzept gleichzeitiger logi&her Kanäle (Concurent Logical Channels) multiplext mehrere logische Kanäle auf ehe Punkt-zu-Punkt-Leitung und fidm den Stop-and-Wait-Algorithmusauf jedem dieser logischen Kanäle aus. Zwischen den auf verschiedenen logischen Kanälen
gesendeten Frames wird keine Beziehung gewährleistet. Da aber auf jedem der verschiedenen logischen Kanäle ein anderer Frame ausstehen kann, kann der Sender die Verbindungsleitung voll auslasten. Genauer gesagt, verwaltet der Sender 3 Zustandsbits pro Kanal: eines, das zu erkennen gibt, ob der Kanal momentan belegt ist, eine 1-Bit-Sequenznummer für den nächsten über diesen logischen Kanal zu sendenden Frame und die nächste erwartete Sequenznummer eines auf diesem Kanal ankommenden Frames. Hat der Knoten einen Frame zu senden, benutzt er den niedrigsten ungenutzten Kanal; andernfalls verhält er sich wie beim Stop-and-Wait üblich. In der Praxis unterstützte das ARPANET ursprünglich 8 logische Kanäle über eine terrestrische Leitung und 16 über eine Satellitenleitung. Für die erdgebundene Leitung beinhaltete der Header jedes Frames eine 3-Bit-Kanalnummer und eine 1-Bit-Sequenznumrner, insgesamt also 4 Bit. Das ist genau die Bitanzahl, die das Sliding-Window-Protokoll benötigt, um bis zu acht in der Verbindungsleitung anstehende Frames zu unterstützen, wenn RWS = SWS.
2.6 Ethernet (802.3) Ethernet ist die bei weitem erfolgreichste LAN-Technologie (Local Area Network) ' der letzten 20 Jahre. Das Mitte der siebziger Jahre am Xerox Pa10 Alto Research Center (PARC) entwickelte Ethernet ist ein konkretes Beispiel der allgemeineren ' LAN-Technologie CSMAICD (Carrier Sense Multiple Access with Coiiision Detm). Ethernet ist ein Mehrfachzugriffsnetz, was bedeutet, dass mehrere Knoten über eine gemeinsamen Verbindungsleitung Frames senden und empfangen können. Man ' kann ein .&rnet deshalb als Bus verstehen, an den mehrere Stationen angeschlosSen sind. Der Begriff »Carrier Senseu in CSMA/CD bedeutet, dass alle Knoten zwi- : schen einer untätigen und besetzten Verbindungsleitung unterscheiden können, . während ~CoiiisionDetectu bedeutet, dass ein Knoten gleichzeitig iibertragen und . erkennen kann, ob der von ihm gesendete Frame mit einem anderen, von einem ! anderen Knoten übertragenen Frame kollidiert. Die Ursprünge des Ethernet gehen auf das erste paketvermittelte Funknetz '. zurück. Es hieß Aloha und wurde an der Univeksität Hawaii zur Lhter&zung eines , ' computerbasierten Netzwerks zwischen den Hawaii-Inseln entwickelt. Wie damals das Aloha-Netzwerk hat das Etheznet das grundsätzliche Problem zu>l6sen,wie der . Zug& auf ein gerneinsam genutztes Medium fair und effizient geregelt werden soIL (In Moha war das Medium die Atmosphäre und in Ethernet beim es den i Koaxialh- 1 bel.) Das entscheidende Komept ist daher bei beiden ein AIgori&mus, der steuert, , wann ein Knoten übertragen kann. ' Digital Equipment Corporation und lntel Corporation stießen 1978 zu Xerox hinzu, um gemeinsam einen Standard für ein 10-Mbit&-Ethernetzu -eser Standard bildete dann die Grundlage für den IEEE-Standard 802.3. Mit einer h ' Abschnitt 2.6.2 beschriebenen Ausnahme kann man den Ethernet-Standard van 1978 getrost als Untermenge des 802a3-Standards betrachten. 802.3 definiert .
-
er um eine 1W-MWs-Vemb das *Fast-E&ernetc
- und eine
i A b w W kozwamkm &bieuf 10-Mbidsweil dieise V h a t e norise im MeMachzugriffsbetrieb benutzt wird und wir daran interessiert sind, mehrere Hosts eine Verbindungsleitung teiien. Die beiden neuerea Ethernetn, Fast-Ethernet (mit 100 Mbids) und Gigabit-Wemet, d e n eigens fiir r-Konfigurationen mit VoUduplexbetieb ausgefegt, was bedeute gend in vermittelten Netzwerken eingesetzt werden, wie sie im näch,Abschnitt beschrieben werden.
1 Physikalische Eigenschaften Ethemet-Segment besteht aus einem Koaxialkabel mit einer Länge von bis zu Dieses Kabel ähnelt dem Fernsehkabei, hat aber normalerweise eine Impeon 50 Ohm gemnüber 75 Ohm beim Fernsehkabol. Das Ethemet-Semnent arizuschlieSen. Diese so genannte'~aps der liegen, Ein Meines, direkt an den Tap h w o s s e n e s Gerat, das man als Trattsceiver bezeichnet, erkennt, wenn die Leiwenn der Host überträgt. Der Transceiver r wird seinerseits+aneine Ethernet-Netzangeschlossen, die in den Host eingesteckt wird. Die gesamte Logik des ratokolls das Thema dieses Abschnitts wird in der Netzwerkkarte ht im Transceiver) implementiert. Diese Konfiguration wird aus Abb. 224
-
-
Abb. 234: Ethernet-Transceiverund -Netzwerkkarte
Mit einem Repeater können mehrere Ethernet-Segmente zusammengeschlossen werle Signale weiterleitet, ähnlich wie ein VerZwischen je zwei Hostslcönnen maximal vier Repeater positioniert werden, was bedeutet, dass ein Ethernet eine Gesamt-
reichweite von nur 2.500 m hat. Benutzt man beispielsweise nur zwei Repeater zwi-
' schen je zwei Hosts, ähnelt diese Konfiguration derjenigen von Abb. 2.25, also mit einem Rückgrat, das sich über die Höhe eines Gebäudes erstreckt, und je einem Segment pro Stockwerk. Insgesamt kann ein Ethernet maximal 1.024 Hosts unterstützen. I -235: Ethernet-Repeater
'
Jedes von einem Host auf das Ethernet gelegte Signal wird über das gesamte Netz* werk ausgesendet (Broadcasting).Das heißt, das Signal breitet sich in beide Richtungen aus, und Repeater leiten es auf alle angeschlossenen Segmente weiter. Ein am Ende jedes Segments befestigter Terminator absorbiert das S i a l und verbinden, dass es reflektiertwird und dadurch nachfolgende Sipale stört. Ethemet benutzt die in Abschnitt 2.2 beschriebene Mancheste&Kodiening. Abgesehen von Ethemet-Systemen mit den eben beschriebenen Segmenten und Repeatern wurden im Lauf der Jahre weitere Tcdinologien eingeführt. Statt eineg 50-ohmigen Koaxialkabels kann für Ethemet ein dünneres Kabel benutzt werden, das man als 1OBase2 bezeichnet. Die ursprüngliche KabeLart hieß B 10BaseS (die beiden Kabel werden auch Thinnet bzw, Tbicknet genannt). Die *10* in der Bezeichnung bedeutet, dass das Netzwerk mit 10 MbitJs läuft, aBaseu bezieht sich u *SE( darauf, dass das Kabel in einem BrrJisbudymm benutzt wird, und ~ 2 bzw. hei%t,dass ein Segment nicht länger als 200 m bzw. SO0 m sein kann. Inzwischen wird vorwiegend eine neuere Version namens 10BaseT benutzt, wobei das »T« für T M - P a i r (Kupkrdoppeiader) steht. in der Rapp1 wird Twisted-Pair dei: Kategorie 5 verwendet. Ein 1QBaseT--E ist norm&misie auf eine Länge rcm weniger ab 100 rn kgenzt. (100- und 10W-Mbitls-Ethemet u n ~ t ü t z ebenfalls e~ T ' d - P a k Kategorie 5 für E n t f e r p v bls 100 m}. E(
Die 10Bat3e2-oderY88kTTKPbel *rd bade .ehr dünn, sodas mnn sie Iudit 4 d . k gleiche V B c h anzapfen kam wie ein TOBaseS-Kabel. B & i lOBaseZ w i ~ dein in das Kabel gesp1eSg. lQBowe2 PJlwl m der Regel benum mehrere mit e h r zu verbinden. Bei .lOBaseT dagegen besteht die übliche mehreren Punkt-zu-*-Verbindungen, die van einem mehrweHub. genannt; siehe Abb. 2-.26),direkt zu den angeschbsseaen Bkms valaufen. Ein Hub kann auch mehrere E b a - S e g m e n t e mir I00 Mbids -binden; dies funktioniert bei 1000 Mbit/s aber nicht mehr.
~~
W~iditigist hier, dass die von einem Host über ein Ethemet übertragenen Daten @er alle übrigen Hosts erreichen, gleichgültig, ob sich das Ethemet über ein ein&es Segment, eine lineare Sequenz voa Segmenten, die über Repeater verbunden &d, oder mehrere in einer Stemkonfiguration über einen Hub verbundene Seg&bte erstreckt. Das ist die gute Nachricht. Die schlechte Nachricht ist, dass alle &Bise Husts um die gleiche Verbindmgsleitung rnkämpfene. Deshalb sagt man, sie kidinden sich in der gleichen Kollisiolcsdomäne.
:L62Mdienzugriffssteuerung(MAC)
'hwenden uns jetzt 'dem Algorithmus zu, der den Zugriff auf das gemeinsame :&krnet-~etzwerksteuert. Diesen Algorithmus nennt man Medien~u~ffssteuekwg (Media Access Control, MAC). Er wird normalerweise als Hardware h der i f m r k k a r t e implementiert. W u beschreiben hier nicht die Hardware an sich, - d e m den damit implementierten Algorithmus. Zuerst werden Frame-Format und *essen des Ethemet beschrieben. ;, -
*.:C
kma-Fomrcit
-,werEthemet-Fm wird durch das in Abb. 2.27 dargestellte Format definiert. Die +Bit-Präambel ermögiicht es dem Empfängq sich mit dem Signal zu synchronisie, es ist eine Folge von abwechselnden Nullen und Einsen. Queli- und Ziel-Host J
:. 64
40
48 Quell-
16
32
CRC
Abh2.27:
.
Ethernet-Frame-Format
werden mit einer 48-Bit-Adresse identifiziert. Das Pakettypfeld dient als Demwr- schlüssel. Das hegt, es identifiziert das darüberliegende Protokoll, dem dieser F~ame zugestellt werden soll. Jeder Frame enthält maximal 1.500 Daten-Bytes. Er m w . aber mindestens 46 Daten-Bytes enthalten, auch wenn das bedeutet, &ss der I-Im. den Frame vor der Obertragung aufwen muss. Diese minimale Frame-GrMa wurde festgesetzt, weil der Frame ausreichend lang sein muss, um eine Kollision erkennen zu können. Dieser Punkt wird weiter unten beschrieben. Fenier beinhaltet jeder Frame eine 32-Bit-CRC. Wie das in Abschnitt 2.3.2 beschriebene HDLC-Pr* tokoii basiert das Ethernet auf einer bitorientierten Frame-Erzeugung. Aus Sicht des Hosts hat ein Ethernet-Frame einen 14-Byte-Header: zwei 6 Byte gro& Adressen und ein 2 Byte gro&s Typfeld. Die sendende Netzwerkkarte hängt vor der Obertrigung die Präambel, die CRC und die Postambel an, die der empfangende Netzadapter am anderen Ende wieder entfernt. Das soeben beschriebene Frame-Format stammt aus dem von Digitd, Intel und Xerox gemeinsam definierten Ethernet-Standard. Das Frame-Format gemäß 802.3 3 ist genau gleich, außer dass es das 16-Bit-Typfeld durch ein 16-Bit-Längedeld ersetzt. 802.3 wird normalerweise mit einem Kapselungsstandard kombiniert, der ein Typfeld definiert, das zum Demultiplexen ankommender Frames benutzt wird. Dieses Typfeld ist das erste Element im Datenteil von 802.3-Frames. Es folgt also unmittelbar dem 802.3-Header. Da der Ethernet-Standard keine Typwerte benutzt, die kleiner als 1.500 sind (die maximale Länge, die in einem 802.3-Header vorkommen kann) und sich die Typ- und Längenfelder an der gleichen Stelle im Header befinden, kann eine Netzwerkkarte beide Formate akzeptieren, und der auf dem Host laufende Kartentreiber kann die letzten 16 Bit des Headers als Typ oder Länge interpretieren, In der Praxis folgen die meisten Hosts dem DigitaVInteVXerox-Format und interpretieren dieses Feld als Frame-Typ.
I
-1
1 ; I
1
Adressen Jeder Host in einem Ethernet oder, besser gesagt, jeder Ethernet-Host der Welt hat eine eindeutige Ethemet-Adresse. Aus technischer Sicht gehört die Adresse zur Netzwerkkarte und nicht zum Host. Sie wird normalerweise in das ROM eingebrannt. Ethernet-Adressen werden in der Regel in einer von Menschen lesbaren Form als . Zahlen geschrieben. Jede Zahl Fofge von sechs durch einen Doppelpunkt .getrennten entspricht einem Byte der 6-Byte-Adresse und wird durch zwei hexadezimale Ziffern angegeben, d.h. eine pro 4-Bit-Nibble im Byte. Führende Nullen werden weggelassen. Beispielsweise ist 8:0:2b:&:bl:2 die Darstellung der Ethernet-Adresse Um sicherzustellen, dass jede Netzwerkkarte eine eindeutige Adresse erhält, wird jedem Hersteller von Ethernet-Netzwerkkarten ein anderes Präfix zugewiesen, das der Adresse seiner Netzwerkkarten vorangesteilt wird. Advanced Micro Devices hat beispielsweise das 24-Bit-Präfix ~080020(bzw. 8:0:20). Der Hersteller muss dann darauf achten, dass sein Adresssuffix eindeutig ist,
[email protected]]
'
I
115
em E k e t ükmagcns Frame wird von jedem aa dieses Ethernet Jeder Adapter erkennt die an ihn adresh & ~ empfangen. r &tten Frames d gibt nur diege Frames arr den H a t weitr=r.(Ein Nmadapter kann & den Betrieb im Prontisekorrs M& prqpmmiert W&. in c k e m Fall stellt er dem Host alle empfangenen Frames zu.) Z ~ ~ zucdiesen h Unicast-Adressetrwird Eine nur aus Einsen bestehende Ethemef-Adresse als Broodutst-Adresse b d e I t , Alle Netzwer&leitenfeinenan die Broadeasr-Adresse gerichteten Frame an i h d b s t s weit&. Ist dS58 etste Bit einer Adresse auf 1 gesetzt, obwohl es sich nicht ont eine Broadcast-Adresse handelt, nennt man sie Multiwt-Adresse. Ein bestimmter Host kam sehe Netzwerkkarte so' programmieren; dass sie nur bestimmte Mui--Adressen annimmt. Muiticast-Adressen werden benutzt, um Nachrichten an e d h c h e Hosts in einem Ethemct (2.B. nur Datei-Server) zu senden. Zusammenb d kann man dso sagen, dass eine Ethemet-Netzwerkkarte alle Frames emp. fängt und danach nur folgende an den Host weitergibt:
I alle an seine Adresse gerichteten Frames 1 i
[
;
B alle an die Brodcast-Adresse gerichteten Frames B alle an eine Mdticast-Adresse gerichteten Frames, falls er entsprechend
programmiert wurde
i
f Idie Frames, wenn er im Promiscuous Mode arbeitet
..
: Smdealgorithrnus : Wir haben gerade gehen, dass die Empfangsseite des Ethernet-Protokolls recht einfach ist. Die Intelligenz wird auf der Sendeseite implementiert. Der Sendealgorithmus ist wie folgt definiert: Hat die Netzwejtkkarte einen Frame zu senden und ist die Verbindungsleitung untätig, überträgt sie den Frame sofo* es erfolgt keine Verhandlung mit den übrigen Netzadaprn. Die obere Grenze von 1.500 Byte in der Nachiricht bedeutet, dass die Netzwerkkarte die Vekbindmgsleitung nur über eine bestimmte Zeitdauer belegen kann.
Hat eine Netzwerkkarte eben Frame zu senden und ist die Verbindungsleitung Besetzt, wartet sie, bis die Lehng £rei wird, dann überträgt sie sofort.' Das Ethemet
gilt als 1-Persistmt-Protokoll,weil ein Netzadapter mit einem zu sendenden Frame mit Wahrscheinlichkeit 1überträgt, sobald eine besetzte Leitung frei wird. Im allgemeinen überträgt ein p-Persistent-Algorithmus mit Wahrscheinlichkeit 0 S p 5 1, wenn die Leitung frei wird, und wartet mit Wahrscheinlichkeit q = 1- p ab. Der Grund für die Auswahl ei& p < 1 ist, dass möglicherweise mehrere Netzwerkkarten darauf warten, bis die Leitung frei wird, und verhindert werden soll, dass sie 1. Genauer gesagt, warten die Adapter 9,6 ps nach dem Ende eines Frames, bevor sie mit der Ubemagung des nächsten beginnen. Dies gilt sowohl ftir den Smder des ersten Frames als auch fiir die Knoten,die darauf warten, bis die Leitung frei wird.
I
116
1
2 Direktvbindungsnetzwerke
gleichzeitig mit der Übertragung beginnen. Wenn jeder Netzadapter sofort mit einer Wahrscheinlichkeit von beispielsweise 33% überträgt, können bis zu drei auf ihre Gelegenheit warten und die Chancen stehen gut, dass nur einer damit beginnt, wenn die Leitung frei wird. Dennoch überträgt eine Ethernet-Netzwerkkarte immer sofort nach der Feststellung, dass das Netzwerk frei geworden ist, was sich als sehr effektiv erwiesen hat. Mit p < 1 bei p-Persistent-Protokollen mag man sich vielleicht fragen, wie lange ein in Wartestellung ausharrender Sender tatsächlich warten muss, bis er übertragen kann. Beim Aloha-Netzwerk, bei dem diese Protokollart erstmals eingesetzt wurde, wird die Zeit in diskrete Zeitschlitze aufgeteilt, und jeder Zeitschlitz entspricht der Dauer für die Obertragung eines vollen Frames. Sobald ein Knoten einen Frame zu übertragen hat und einen leeren (unbelegten) Zeitschlitz erkennt, iiberträgt er mit Wahrscheinlichkeit p bzw. wartet auf den nächsten Zeitschlitz mit Wahrscheinlichkeit q = 1- p. Ist dieser nächste Schlitz ebenfalls leer, entscheidet der Knoten erneut mit Wahrscheinlichkeit p bzw. q, ob er übertragen bzw. warten soll. Ist der nächste Zeitschlitz nicht leer, d.h. wenn sich eine andere Station zur Obertragung entschlossen hat, wartet der Knoten einfach auf den nächsten freien Zeitschlitz, und der Algorithmus beginnt von vorn. Zurück zum Ethernet: Da es keine zentrale Steuerung gibt, kann es passieren, dass zwei (oder mehr) Netzwerkkarten gleichzeitig mit der Obertragung beginnen, weil sie entweder beide festgestellt haben, dass die Leitung frei ist, oder weil beide gewartet haben, bis die Leitung frei wurde. Wenn dies passiert, kollidieren die beiden (oder mehr) Frames im Netzwerk. Ethernet unterstützt Koilisionserkennung, sodass jeder Sender feststellen kann, dass eine Kollision stattfiidet. Sobald ein Netzadapter erkennt, dass sein Frame mit einem anderen kollidiert, iiberträgt er ein 32-Bit-Stausignal und stoppt die Ubertragung. Ein Sender überträgt im Fall einer Kollision also minimal 96 Bit: die 64-Bit-Präambel und das 32-Bit-Stausignal. Bei diesen 96 Bit - im Englischen auch als Runt-Frame bezeichnet - bleibt es zum Beispiel dann, wenn die beiden Hosts nahe beieinander liegen. Wären die beiden Hosts weiter voneinander entfernt, müssten sie länger übertragen und somit mehr Bits senden, bis eine Kollision erkannt wird. Das Worst-Case-Szenario tritt ein, wenn sich die beiden Hosts an entgegengesetzten Enden im Ethernet befinden. Um mit Sicherheit festzustellen, dass der gerade gesendete Frame nicht mit einem anderen kollidiert, muss der Sender unter Umständen bis zu 512 Bit senden. Nicht zufällig besitzt jeder Ethernet-Frame einesLängevon 512 Bit (64 Byte): 14 Byte für den Header, 46 Byte für Daten und 4 Byte für CRC. Warum gerade 512 Bit? Die Antwort hat mit einer weiteren Frage über Ethernet zu tun: Warum ist seine Länge auf nur 2.500 m begrenzt? Warum nicht 10 oder 1.000 km? Die Beantwortung beider Fragen gründet auf der Tatsache, dass es um so länger dauert, bis ein Frame von einem zum anderen Host gelangt, je weiter die beiden Knoten voneinander entfernt sind, und dass das Netzwerk während dieser Zeit kollisionsanfällig ist. Abb. 2.28 zeigt das Szenario des ungünstigsten Falls, bei dem Hosts A und B an entgegengesetzten Enden im Netzwerk liegen. Angenommen, Host A beginnt mit
.
-
-
Worst-Case-Szenario: (a) A sendet einen Frame zum Zeitpunkt t; (b)A's Frame kommt bei B zum
+ -~..,#".......""..,
E-
7nitniinh r A an.
B beginnt bei t + d mit der Obemagung eines Frames, der mit dem von A kdlidiert; (d) B l Frame (32Bit) kommt nacht + Zd (C)
Q
F,' dm w
bi A an
g u n g eines Frmes nurr Zeitpunkt t, wie in (a) dargestellt. Der Frame hat medienbedhgte Vaziigerung oder Eiawegi.tenz (sei sie d), bis er Hast B i erreicht. Das ersre Bit v ~ An's F~ta- kommt bei B a b in r + d an, wie in (b) &imtellt. Nehmen wir weiter an. dass Host B mit der Obertramntz - - eines Fra&t, k m bevor der Fiarne V& H m A ankommt (B sieht ako immer nodi eine d x k g t e Leitung). B's Frame koGdim sofoa mit dem von A, und diese Kollision '. wkd von Hast B (C) erkannt. Host B sendet das 32-Bit-Staus$pd, wie oben Irreschrieben. Leider steilt H6gt A die KoUision erst fest, wenn B's Frame lrei ibm ankommt, was eine Einwegiatenz sgäteq also in t + 2 X d (d)geschieht. Host A muss bis zw diesem Zeitpmk weitet übertragen, bevor er die Koliision erkennen kann. Anders &&ekiickc Hast A muss 2 x d lang übertragen, bis er mit Sicherheit aiie ' m8glichen. ~oslisionenerkennen kann. Bedenkt man, dass ein maximal konfigurierW Ethmet 2.500 m lang ist und z w i h zwei Hosts bis zu vier Repeatu liegan körnen, erhält man eine RoundtripVuzögenmg von 51,2 ps, was bei einem ! 10-MCbi2/s-Ethernet512 Bit entspricht, Betrachtet man diese Sitnation aus anderer Sicht, muss man die xmxhah Latenz des Ethemet auf einen relativ Meinen Wtrt 4e.B. 512 P)begrenzen, damit der Z u ~ d g o r i t h m u funktioniert. s Die maximale k g e eines Echernet muss dso bei etwa 2.500 m begen. Hat eine N e t z w e r k e eine KoUisbn erkann5 und demzufolge ihre Obertrap g abgebrochen, wartet sie eine gewisse Zeit und versucht es dann erneut. Nach jedem fehigmchiagenen übemagmgsvmuch verdoppelt der Netzadapter die Wartezeit fur den erneuten Versuch. Diese Strategie der Verdopplung des Verzögerungsinternaus zwischen den einzelnen NeuÜbertragungen ist eine allgemeine, als Expo. mtial Bsckaff bezeichnete Technik. Genauer betrachtet, versucht der Adapter zuerst3 entweder 0 oder 51J ps durch Zufaiisauswahi zu verzögernrnSchlägt dieser
,-
:
,
:
Versuch fehl, wartet er 0, 51,2, 102,4 oder 153,6 ps (zufällig ausgewählt), bis er es wieder versucht; also k X 51,2 ps für k = 0..3. Nach der dritten Kollision wartet er wieder per Zufallsentscheidung k x 51,2 ps für k = 0..2~- 1. Im allgemeinen wählt der Algorithmus zufällig ein k zwischen 0 und 2n - 1und wartet k X 51,2 ps, wobei n die Anzahl der bisher vorgekommenen Kollisionen ist. Nach einer bestimmten Anzahl von Versuchen gibt die Netzwerkkarte auf und meldet dem Host einen Ubertragungsfehler. Netzwerkkarten versuchen es normalerweise bis zu 16 mal, obwohl der Backoff-Algorithmus in der obigen Formel n nie grüi3er als 10 werden lässt.
2.6.3 Erfahrung mit Ethernet Da Ethernet-Netzwerke seit Jahrzehnten im Einsatz und sehr beliebt sind, wurden umfangreiche Erfahrungen im Umgang mit ihnen gesammelt. Zu den wichtigsten gewonnenen Beobachtungen zählt, dass sie unter geringer Last am besten arbeiten. Das liegt daran, dass unter hohen Belastungen (normalerweise gilt eine Auslastung von über 30% bei einem Ethernet als hoch) viel Netzkapazität durch Kollisionen vergeudet wird. Bei den meisten Ethernet-Installationen liegt die Auslastung recht niedrig. An Ethernet-Netzwerke sind in der Regel weniger als 200 Hosts angeschlossen, was weit unter dem Maximum von 1.024 liegt. (Versuchen Sie, ob Sie in Kapitel 4 den Grund für die übliche Obergrenze von etwa 200 Hosts herausfinden.) Außerdem liegt die Gesamtlänge bei den meisten Ethernet-Netzwerken unter 2.500 m, mit einer Roundtrip-Verzögerung von eher 5 ps als 512 ps. Ein weiterer Faktor, der Ethernet-Netzwerke handhabbar macht, obwohl Ethemet-Netzwerkkarten keine Flusskontrolle auf der Sicherungsschicht implementieren, ist deq dass Hosts normalerweise einen derartigen Mechanismus auf Ende-zu-Ende-Basis bereitstellen. Deshalb findet man selten Fälle vor, in denen ein Host kontinuierlich Frames in das Netzwerk pumpt. Schließlich lohnen sich an dieser Stelle ein paar Worte darüber, warum EthernetNetzwerke so erfolgreich sind, um die Merkmale zu verstehen, die wir mit jeder LAN-Technologie nachahmen sollten, die irgendwann Ethernet ersetzen könnte. Erstens lässt sich ein Ethernet extrem einfach verwalten und warten. Es gibt keine Switche, die ausfallen können, kein Routing und keine Konfigurationstabellen, die laufend aktualisiert werden müssen, und ein neuer Host lässt sich mühelos an das Netz anschließen. Es dürfte eine größere Herausforderung sein, die im nächsten Kapitel beschriebenen vermittelten Netzwerke mit einer derart einfachen Betriebsweise auszustatten. Zweitens ist es kostengünstig: Verbindungskabel sind billig, und die einzigen weiteren Kosten entstehen durch den Netzadapter in jedem Host. In jedem Fall erfordert ein vermitteites Netzwerk beträchtliche Investitionen in eine teure Infrastruktur (Switche), zusätzlich zu den jeweiligen Kosten pro Netzwerkkarte. Wie wir im nächsten Abschnit sehen werden, basiert die heute erfolgreichste LAN-Switchulg-Technologie selbst auf Ethernet.
I
2.7 Token-Ring (802.5, FDDI) ;
: -
Neben Ethemet sind Token-Ring-Netze die andere wichtige Klasse von Netzwerken mit: gemeinsam genutztem Medium. Dabei gibt es von Token-Ring-Netzen mehr unterschiedliche Trpen als von Ethemet-Netzen. In diesem Abschnitt wird der vorherrschende Typ behandelt, der IBM-Token-Ring. Wie das Xerox-Ethernet gründet B M s Token-Ring auf einem fast identischen IEEE-Standard - 802.5. Soweit erforderlich, weisen wir auf die Unterschiede zwischen IBM- und 802.5-Token-Ring-Netzeri hin. Die allgemeinen Prinzipien von Token---Netzen werden leicht verständlich, wenn man sich die IBM- und 802.5-Standards näher ansieht. Der FDDI-Standard. (Fiber Distributed Data Interface) - ein aeuerer, schnellerer Token-Ring verdient allerdings ebenfalls Beachtung. Deshalb whd er arn Ende dieses Abschnitts kurz beschrieben. Während der Entstehung dieses Buches steht ein anderer Token-RingStandard kurz vor seiner Fertigstellung: der so genannte Resilient Packet Ring (802.17). Ein Token-Ring-Netz besteht aus einer Reihe von Knoten, die in einem Ring verbunden sind (siehe Abb. 2.29). Daten fließen immer in einer bestimmten Richtung um den Ring. Jeder Knoten empfängt Frames von seinem in Upstream-Richtung befindlichen Nachbarn und leitet sie an seinen in Downstream-Richtung folgenden Nachbarn weiter. Diese Ringtopologie unterscheidet sich grundlegend von der Bustopologie beim Ethernet. Wie beim Ethernet wird der Ring aber als einziges gemeinsames Medium betrachtet. Er verhält sich also nicht wie eine Sammlung unabhängiger Punkt-m-Punkt-Verbindungen, die zufällig in einer Schleife konfiguriert wurden. Folgiich weisem Token-Ring- und Ethemet-Netze zwei wichtige gemeinsame Merkmale auf: Erstens die Notwendigkeit eines verteilten Algorithmus, der steuert, wann jeder Knoten übertragen darf, und zweitens die Tatsache, dass alle Frames alle Knoten passieren, wobei der im Frame-Header als Ziel identifizierte Knoten eine Kopie des Frames speichert.
-
Das Wort »Token« in Token-Ring ist auf die Art zurückzuführen, wie der gemeinsame Ring verwaltet wird. Dem Konzept zufolge kreist ein Token, bei dem es sich lediglich um eine spezielle Bitfolge handelt, um den Ring. Jeder Knoten empfängt das
Token und gibt es wieder an den nächsten weitei: Erhält ein Knoten, der einen Frame zu übertragen hat, das Token, nimmt er es aus dem Ring (d.h. er gibt das spezielle Bitmuster nicht weiter) und fügt stattdessen seinen Frame in den Ring ein. Jeder Knoten entlang der Strecke leitet den Frame einfach weita Der Zielknoten speichert eine Kopie und gibt die Nachricht an den nächsten Knoten im Ring weiter. Hat der Frame seine Strecke rundum zum Sender zurückgelegt, nimmt dieser Knoten seinen Frame vom Ring (statt ihn weiterzugeben) und fügt das Token erneut ein. Auf diese Weise haben nun andere Knoten in Downstream-Richtung die Moglichkeit, einen Frame zu übertragen. Der Medienzugriffsalgorithmus ist also insofern fair, als jeder Knoten Gelegenheit zum Übertragen erhält, während das Token den Ring umkreist.
2.7.1 PhysikalischeEigenschaften
Als erstes muss man bei einer Ringopologie bedenken, dass ein Leitungs- oder Knotenausfall das gesamte Netzwerk lahmlegt. Dieses Problem wird dadurch geliSst, dass jede Station mit Hilfe eines elektromechanischen Relais an den Ring angeschlossen wird. Solange die Station aktiv ist, bleibt das Relais offen und die Station wird in den Ring einbezogen. Liefert die Station keine Leistung mehr, schließt das Relais und die Station wird im Ring automatisch übergangen. Dies ist in Abb. 2.30 dargestelk.
Vom vorherigen
Zum nHchsten
Vom vorherigen
Zum nachsten
U
Relais
Relais
(b) Abb. 230: Token-Ring mit Relais: (a) Relais offen - Host aktii; (b)Relais geschlossen- Host wird Obergangen
Normalerweise befinden sich mehrere solche Relais in einer Box, die man BMSAU~ (Multi-Station Access Unit) nennt. Das hat die interessante Auswirkung, dass ein Token-Ring eher die in Abb. 2.31 dargestellte Sterntopologie aufweist. Auf3erdem wird es dadurch sehr einfach, Hosts an das Netzwerk anzuschlief3en oder zu entfernen. Man steckt sie einfach in die nächste MSAU ein oder aus, während die Gesamtverkabelung des Netzwerks unverändert bleibt. Ein kleiner Unterschied zwischen der Spezifikation des IBM- und des 802.5-Stan ds ist, dass nur beim IBM-Standard die Verwendung von MSAUs erforderlich i t. In der Praxis werden MSAUs aber fast immer benutzt, weil sie dem Netzwerk m hr Robustheit verleihen und sich Stationen leicht anschließen und abkoppeln lassen. 802.5- und IBM-Token-Rings weisen natürlich noch weitere Charakteristika auf. Die Datenrate kann 4 oder 16 Mbids betragen. Die Kodierung von Bits erfolgt nach der differentiellen Manchester-Kodierung (siehe Abschnitt 2.2). In einem IBM-
"i
-'-F?
MSAU I
Abh 231: Token-Ring mit MSAU
HQst
MSAU
zu-*er MSAU
1 =I[
Token-Ring können bis zu 260 Stationen an einen Ring angeschlossen werden, wähEend diese Zahl beim 802.5-Netz auf 250 begrenzt ist. Als Mqiium wird beim IBM ein Twisted-Pair verwendet, während beim 802.5 keines spezifiziert ist.
2'7.2 MAC beimToken-Ring
.
@ir befassen uns nun damit, wie das MAC-Protokoll bei einem Token-Ring arbeitet. Beim Token-Ring enthält die Netzwerkkarte einen Empfänger, einen Sender und einen dazwischenliegenden Datenspeicher in der Größe eines oder mehrerer Bits. Hat keine der an den Ring angeschiossenen Stationen etwas zu übertragen, umkreist das Token den Ring. Der Ring muss natürlich ausreichend s~~eicherka~azitäte haben, um ein gesamtes Token aufnehmen zu können Beim 802.5 ist das Token z,B. 24 Bit lang. Wenn jede Station nur 1Bit aufnehmen kann (was bei 802.5-Netzen die Norm ist) und die Stationen nahe genug beieinander liegen, sodass für die Verbreitung eines Bits von einer Station zur anderen kaum Zeit verstreicht, wären mindestens 24 Stationen im Ring nötig, damit er korrekt funktionieren kann. Diese Situation wird dadurch umgangen, dass man eine so genannte Monitorstation konfiguriert, die bei Bedarf zusätzliche Verzögerungsbits zur Verfugung stellen. Der Betrieb der Monitorstation wird unten ausführlicher beschrieben. Während das Token den Ring umkreist, kann jede sendewillige Station das Token nergreifen* und mit der Ubertragung beginnen. Bei 802.5-Netzen bedeutet die Ergreifung des Tokens lediglich, dass 1Bit im zweiten Byte des Tokens modifiziert wird, Die ersten 2 Byte des modifizierten Tokens dienen dann als Präambel für das nächste Datenpaket. Die Station, die gerade das Token besitzt, kann eines oder mehrere Pakete senden. Die genaue Anzahl hängt von verschiedenen Faktoren ab, die unten beschrieben werden. Jedes übertragene Paket enthält die Zieladresse des Empfängers. Es kann auch eine Multi- oder Broadcast-Adresse enthalten, fails die Absicht besteht, mehr als einen (oder alle) Empfänger zu erreichen. Während das Paket an jedem im Ring befindlichen Knoten vorbei fliegt, prüft der jeweilige Knoten das Paket, um fest-
zustellen, ob er der Empfänger ist. Trifft dies zu, kopiert er das Paket in einen Puffer, . wenn es die Netzwerkkarte passiert, nimmt es aber nicht aiis dem Ring.Für die Entnahme des Pakets aus dem Ring ist die sendende Station zuständig. Bei jedem Paket, das langer als die im Ring speicherbare Bitanzahl ist, zieht die sendende Station den ersten Teil des Pakets bereits aus dem Ring, während sie den restlichen Teil noch sendet. Wir müssen uns nun damit beschäftigen, wie viele Daten ein bestimmter Knoten jedes Mal, wenn er im Besitz des Tokens ist, ubertragen darf. Anders ausgedNckt: Wie lange darf ein Knoten das Token behalten?Wir nennen dies die Token-Haltead (Token Holding T i THT). Wem wir annehmen, dass die meisten Knoten im Netzwerk die meiste Zeit keine Daten zu senden haben (eine vernünftige Annahme, die zumindest auch für das Ethernet richtig ist), wäre es sicherlich sinnvoll, den Kno-U ten, in dessen Besitz sich das Token befindet, all seine Daten übertragen zu lassen, bevar er das Token an den nächsten Knoten abgeben muss. Das würde bedeuten, dass man eine unendliche THT setzt. In diesem Fall wäre es unsinnig, einen Knoten . nur eine einzelne Nachricht senden und dann warten zu lassen, bis das Token den ganzen Ring umkreist hat, bevor er erneut Gelegenheit zum a r t r a g e n einer weiteren Nachricht erhält. .All seine Daten* ist natürlich riskant, weil es bedeutet, dass eine b e s b t e Station das Token endlos lange in Anspruch nehmen könnte. Wu könnten die THT auf jeden Fall aber auf eine Dauer setzen, die deutlich länger als die übertragutig eines einzigen Pakets ist. Je mehk Bytes ein Knoten während der Zeit, in der er M Besitz des Tokens ist, senden kann, um so besser wird der Ring ausgelastet, solange nur ein Knoten überDiese Strategie fUnkti0nkrt natürlich nicht mehr gut, wenn mehrere tragen d. Knoten übertragen wollen. Sie begimstigt Knoten mit vielen zu sendenden Daten gegenüber denen, die nur eine kleine Nachricht senden wollen, die jedoch vielleicht wichtig ist und so schnell wie möglich zugesteilt werden soll. Vergleichen Sie das z.B, damit, dass Sie in der Bank einen Scheck einreichen möchten, vor Ihnen ein Kunde aber einen Finanzierungskrcdit für ein Auto beantragt. In 802-5-Netzwerken beträgt die Standard-THT 10 ms. Die Verwendung der THT birgt eine kleine Feinheit. Bevor ein Paket in den Ring eingespeist wird, muss die Station pnifen, ob die für die übertragung ikes Pakets erforderliche ZRit mögiicherweise die Token-Haltezeit überschmkr. Sie muss also darüber Buch führen, wie lange sie das Token bereits hält und wie lang das nächste von ihr zu sendende Paket ist. Aus der Token-Halte& können wir eine weitere nützliche Messgröße ableiten: die Token-Umhufzeit (Token Rotdon T i TRT). Das ist die Zeit, die es dauen, bis ein Token aus Sicht eines bestinunten Knotens den Ring umrundet. Hier lässt sich leicht erkennen, ciass '
TRT 5 AktiveKnoten x THT + RingLatenz
ist, wobei RingLatenz der Zeit entspricht, in der das Token den Ring umkreist, wenn keiner Daten sendet, und AktiveKnoten die Anzahi der Knoten ist, die Daten zu übertragen haben.
Das 802.5-PratohU bietet eine F m der zuverhsigen ZusteItnng mit Hilfe von 2 . h Paka-Trailer befindiichcn Bits den A- und CiSics. Bcide stehen anfangs auf 0. &kennt eine Station einen an sie adrembrtm Frame, setzt sie das A-Bit im Frame. Wnn sie den Eran#: in ihre l%md&me kopim hah setzt sie das C-M- Erkennt dh sendende Station, dass der Frame erneut im Ring auftau* wdwend das A-Bit noch auf 0 steht, weiß sie, dass der Empfänger ausgefakn d e r anderweitig beschäf-
-
dgc ist. Est das A-Bit, nicht aber das C-Bit gesetzt, bedeutet das, dass das Ziel den Frame aus irgwdeinem Grund (2.B. mangels Speicherplatz)nicht annehmen konnte. Der Frame wird also später erneut übertragen in der Hoffnung, dass inzwischen Speicherplatz veriügbar geworden ist. Eia weiteres D d des 8025-Protokolis betrifft die Unterstützung verschiedener Priocitätsstufen. Das T ~ k e nenthält ein 3 Bit groi3es Pxioritiitsfeld, hat also zu einem bmhtnten Zeitpunkt eine g& Priktät n inne. Jedes sendewükge Gerät weist seinen P & e n eine PrkitPit zu. Das Gerät kann da9 Token nur dann egreifen, um ein Paket zu übertragen, wenn dessen Priorirät mindestens der des Tokens entDie Prhritiit des Tokens än&rt sich mit der Zeit auf Gniad der Verwendung +ht. von drei Reserviencngsb&s im Frame-Header. Eine Station X wartet beispielsweise, W ein Paket mit Priorität n zu senden. Sie kann nun diese Bits auf n setzen,wenn sie erkennt, d a s ein Daren-Frame vorbei fiießt und die Bits noch nicht auf einen Uherm Wert gesetzt wurden. Dies veranlasst die Station, in deren Besitz sich das Token momentan befindet, dessen Priorität auf n zu erhöhen, wenn sie es freigibt, Station X ist dafiir veramvortiich, die Token-Priorität auf den alten Wert herabzusetzen, mkld sie fertig ist. Main beachte, dass dies in dem Sinn ein hktes Prioritätsschema ist, dass keine Pakae mit niedrigerer Priorität gesendet werden, solange Pakete mit höherer Priorirät warten. Das kann dazu führen, dass Pakete mit niedriger Priorität über iängere Zeit vom Zugriff auf den Ring ausgesperrt werden, wenn vieie Pakete mit hoher Priorität anstehen. Ein b t e r Punkt zuxn MAGProtokoU betdft die Frage, wann genau der sendende Knoten das Token freigibt. Wie aus Abb. 2.32 ersichtlich wird, k a m der Sender das Token in den Ring zurückgeben, sobald sein Frame übertragen wurde (in Abb. 2.32:
Token-Freigabe: (a) früh und @)verzögert
diesem Fall spricht man von @her Freigabe) oder erst nachdem der von ihm übertragene Frame den gesamten Ring durchlaufen hat und wieder entfernt wurde (in diesem Fall spricht man von verzögerter Freigabe). Bei der frühen Freigabe wird selbstverständlich die Bandbreite besser ausgenutzt, insbesondere bei großen Ringen. 802.5 verwendete ursprünglich die verzögerte Token-Freigabe, unterstützt inzwischen aber auch die frühe Freigabe. 1
2.7.3 Token-Ring-Wartung Wie oben festgestellt, verfügen Token-Ring-Netze über eine spezielle Monitorstation. Ihre Aufgabe ist es, sich um das einwandfreie Funktionieren des Rings zu kümmern. Jede Station des Rings kann als Monitorstation konfiguriert werden, und es gibt definierte Prozeduren, mit denen sie ausgewählt wird, wenn der Ring erstmals in Betrieb genommen wird oder die momentane Monitorstation ausfällt. Eine intakte Monitorstation zeigt periodisch ihre Anwesenheit durch eine spezielle Steuernachricht an. Falls eine Station eine solche Nachricht über eine gewisse Zeit hinweg nicht zu sehen bekommt, geht sie davon aus, dass die Monitorstation ausgefallen ist und versucht ihrerseits, Monitorstation zu werden. Die Prozeduren für die Festlegung einer Monitorstation sind die gleichen, egal, ob der Ring eben hochgefahren wurde oder die aktive Monitorstation ausgefallen ist. Beschließt eine Station, dass eine neue Monitorstation nötig ist, überträgt sie einen »Claim«-Frame,mit dem sie ihre Absicht ankündigt, als neue Monitorstation fungieren zu wollen. Kreist dieses Token zum Sender zurück, kann dieser davon ausgehen, dass er als Monitorstation akzeptiert wurde. Versucht es eine andere Station ebenfalls zum gleichen Zeitpunkt, sieht der Sender möglicherweise eine ClaimToken-Nachricht von dieser Station zuerst. In diesem Fall muss anhand einer gut definierten Regel, 2.B. ndie höchste Adresse gewinnt*, ein eindeutige Entscheidung erfolgen. Ist eine Monitorstation erst einmal festgelegt, übernimmt sie mehrere Rollen. Wir haben bereits gesehen, dass sie möglicherweise eine zusätzliche Verzögerung in den Ring einfügen muss. Außerdem muss sie sicherstellen, dass im Ring immer ein Token vorhanden ist, das entweder kreist oder momentan im Besitz einer Station ist. Es sollte klar sein, dass ein Token aus mehreren Gründen verschwinden kann, z.B. durch einen Bitfehler oder weil die Station, die es gerade besai3, abgestürzt ist. Um ein fehlendes Token zu bemerken, wacht die Monitorstation über vorbeilaufende Token und startet jeweils einen Timer, der mit der maximal möglichen TokenUmlaufzeit übereinstimmt. Dieses Intervall entspricht AnzahlStationen X THT + RingLatenz
wobei AnzahlStationen die Zahl der am Ring angeschlossenen Stationen und RingLatenz die gesamte Ausbreitungsverzögerung des Rings sind. Läuft der Timer ab, ohne dass die Monitorstation wieder ein Token empfangen hat, erzeugt sie ein neues. Die Monitorstation prüft auch auf Vorhandensein verfälschter oder »verwaister« Frames. Verfälschte Frames haben Prüfsummenfehler oder ungultige Formate und
könnten ohae Monitoreingriff ewig im Ring kreisen. Die Moaitorstation zieht sie aus dem Ring, bevor sie das Token erneut ein&&. Verwaiste Frames sind solche, die zwar korrekt im Ring übertragen wurden, deren *Eltern* aber gestorben sind. Das beigt, die sendende Station ist abgestürzt, bevor sie den Frame aus dem Eng nehmen konnte. Diese Frames werden mit Hilfe des ebenfalls im Header b c M c h e n Monitorbits erkannt. I% ist bei der übertragung 0 und wird aut 1gesetzt, wenn das Paket erstmals an der. Monitdrstation vorbeikommt. Bei einem mit diesem Bit geseaten Paket weiß die Monitorstation, dass es bereits zum zweiten Mal vorbeikam und zieht es aus dem Ring. Als weitere Ringwar~ungsfunktion werden tote Stationen erkannt. Die im MSAU befindlichen Relais ksmen eine abgekoppelte oder ausgescha1tet.e Station automatisch umgehen, erkennen aber keine sonstigen Ausfaiiursachen. Hat eine Station den Verdacht, dass im Ring eine Störung vorliegt, kann sie einen Beacon-Frame an die vermutlich verursachende Zielstation senden. Je nachdem, wie weit dieser Frame kommt, wird der Zustand des Rings ermittelt, und fehlerhafte Stationen werden anschließend von den Relais in der MSAU umgangen.
2-74 Frame-Format
Wir sind jetzt soweit, das Format eines 802.5-Frames zu definieren, das in Abb. 2.33 dargestellt ist. Wie oben erwähnt, wird im 802.5 die Manchester-Kodierung angewandt. Diese Tatsache wird im Frsme-Format genutzt, d.h. es werden im Anfangsund Endbegrenzer nungidtigeu Manchester-Codes verwendet. Nach dem Anfangsbegrenzer folgt das Zugrifksteuer-Byte, das die Frame- und Reservierungspriorität beinhaltet. Beim Frame-Steuer-Byte handelt es sich um einen Demwschlüssel, der das Protokoll der höhere0 Ebene identifiziert. 8 8 8 48 Anfangs- Zugfiffs- Frame- Zielbegrenzer Steuerung Kontroile adresse
48
Variabei
32
8
8
Abb 2.33: Format eines 802.5-Koken-Ring-Frames ,
,
Wie beim Ethernet sind 802.5-Adressen 48 Bit lang. Der Standard lässt eigentlich kleinere 16-Bit-Adressen zu, meist werden aber 48-Bit-Adressen verwendet und genauso wie beim Ethernet interpretiert. Der Frame beinhaltet auch eine 32-BitCRC und ein Frame-Zustands-Byte, das die A- und C-Bits für zuverlässige Zustellung beinhaltet.
2.7.5 FDDI In vielerlei Hinsicht ähnelt FDDI einem 802.5- und IBM-Token-Ring. Auf der anderen Seite bestehen aber beträchtliche Unterschiede, von denen sich einige dadurch ergeben, dass Glasfaser statt der Kupferdoppelader verwendet wird. Andere entstan-
1..
den durch Neuerungen seit der Erfindung des IBM-Token-Rings. Im folgenden werden einige der wichtigen Unterschiede beschrieben.
P3iysi~ischeEigenschaften Im Gegensatz zu 802.5-~&n besteht ein FDDI-Netz aus einem Doppelring, d.h. aus zwei unabhängigen Ringen, in denen Daten in entgegengesetzter Richtung übertragen werden, wie aus Abb. 2.34(a) ersichtlich wird. Der zweite Ring wird im Norb malbetrieb nicht genutzt, sondern kommt erst beim Ausfall des primären Rings zum Einsatz; dies ist in Abb. 2.34(b) dargestellt. In diesem Fall wird auf den zweiten Ring z~riickgegtiffen~ um wieder einen voilständigen Ring zu erhalten. Daher ist ein FDDI-Netz in der Lage, einen einzelnen K a b e l b d oder den Ausfali einer Station zu tolerieren.
4\
\ \
Abb 2.342 FDDI-Netz:(a) Normalbetrieb; (b) Ausfall des primären Rings
Aufgrund der aufwändigen Konfiguration ais Doppelring ist es beim FDDI mögiich, Knoten mit einem Einz.eIkabe1 an das Netz anzuscbiief3en. Solche Knoten nennt mpa Eiwlanschl1cssstationetl (SingleAnachment Station, SAS) und ihre doppelt verbmden- Gegenstücke iogkherweise D ~ # @ e h n s c h l ~ ~ o(Dud n e nA e m t Station, DAS).Um mehrere SASs an den Doppehing anzuscU& wird ein K w trator benutzt (siehe Abb. 2.35). Er bildet mit &m einzelnen fdopplfasrigen)
Abb. 235: Mit einem Konzentrator verbundene Unzelanschlussstationen
eine S M ein Vcsbindmgsaikk des Rings. Der K o n z ~ m t o r ~rkennen,wann diese SAS adäUt, und isoliert sie mit Hilfe eines optibdm S&aIm (QpticalBypass), sodass der Ring betriebsfwg bleibt. Das ist vagleiehbar mit den in MSAUs bei in 802.5-Ringen benutzten Relais. Beachten Sie, dass in der AbbAdmg der zweite Ring (der als Backup dient) durch eine gepunktete Linie darge~telItist. Wh Hn 802.5 speichert jede Netzwereine gewisse Bitaadd zwiwhen k m Ein- und Ausga~gs-I@erf~ce. Im Gegensatz zu 802-5 kam der Puffer jeder 3thm aber eine m m h i e h e 0öGe haben, allerdings nie weniger als 9 und nie - mGhr als 80 Bit. Au&erdemkann e h Station mit der 6bemagmg von Bits aus diesem nrffw beginnen, bevor er voll ist. S e I b s m M i c h ist die Zeit, die ein Tokcn hwgeseunt brauchf um das ganze Netzwerk zu d d a u f e n y eine Funktiun der G M e dieser Puffer, Da FDDI eiai 100-Mbids-Netzwerkist, hat es eine ~Bitzettavon 10 M a n d u n d e n (ns),d.h. jedes Bit ist 10 ns breit. Verfügt jede Station 2.B. über einen 10-Bit-Puffer und wartet*bis der Puffer halb voli ist, bevor sie mit der Weiter. leirung beginn4 &B5 sie die I&qpda&ie um 5 X 10ns = SO ns. FDDE hat weitere physikralische Metkmale. Der Standard begrenzt z.B. ein einzelnes Nerzwerk auf mamn;lal500Stationen (Hmts),wobei die Höchstentfemung l;wi&en je m i Stationen2 km beträgt. Insgesamt ist das Netzwerk auf eine Glasfaser; &von 200 km begrenzt. Das heilst, dass die Gesamtlänge des Kabels, mit dem e1EE Stationen verbunden sind, auf Grund der dualen Auslegung des Rings auf 100 lun begrenzt ist. Obwohl das *Fa In m>DI andeutet, dass Glasfaser (Fiber) als Oberrragmgsdum dient, wurde der Standard fiir den Betrieb mit einer Reihe unter: schiedlicher Media definierty d m t u r Koaxialkabel und Twisted-Pair. Natürlich ; muss man auch bei Vemendung dieser Mcdien die vorn Ring abgedeckte Gesamtreichweite beachten. Spiitex wird noch beschrieb, dass die Zeit, die ein Tsken für die Dmchquemg des Netzwerks braucht, beim Zugriffssteueralgorirhmus eine wichtige Rolk spielt. FDDI nutzt die in Abschnitt 2.2 beschriebene 4MB-Kodierung. Da FDDI die . erste populäre Nercteehinologiewar, bei der Glasfaser verwendet wurde, und 4B/SBBausteine mit FDDI-Gezxhwindiieiten innerhalb kürzester Zeit zur Verfügung -den, hat 4WSB als Kodiemethode für Glasfaser grotFe Verbreitung erlangt. XabeWlwss
'
B
'
I
Ti&'idm-Algorithmus Die den Token-Hsikitcn %U Grunde liegenden Regeln sind in FDDI etwas komp h r & ui 802.5. Die THT jedes Knotens wird wie zuvor definiert und auf einen geeigneten Wert konfiguriert. Um sicherzustel~r~, dasa ein Knoten innerhalb einer b e s h m e n Zeit Gelegenheit :zum, O b a g e n erhäit, .definieren wir zusPtzlich eine Tokm-Soil-tmhfzeit (TargetT o b Rotation Time, 'ITIET), die eine obere Grenze fiir die TRTs der beteiligten Mnoten darstellt. Alle Knoten müssen innerhalb der Grenzen dieser IZTRT mechtkommen. (Wie sich die Knoten auf ein* bestimmte TTRT einigen, wird im nächsten Unterabschnitt beschrieben.) Genauer gesagt, misst jeder Knaten die Zeit mischen zwei aufeinander folgenden ankünften des Token. Das ist die gemessene TRT bzw. Token-Istumlaufzeit (measured TRT)des Knotens.
128
1
2 DirektvcHbiMkingsnatmerke
Ist diese gemessene TRT größer als die vereinbarte TTRT, ist das Token zu spät und der Knoten überträgt keine Daten. Liegt die gemessene TRT unter der TTRT, ist das Token zu früh, und der Knoten darf es über die Differenzzeit zwischen der 'ITRT und der gemessenen TRT behalten. Obwohl es den Anschein haben mag, dass wir das Thema nun abschließen können, fehlt noch etwas: Der soeben entwickelte Algorithmus stellt nicht sicher, dass ein sendewilliger Knoten nach einer endlichen Verzögerung tatsgchlich dazu in der Lage ist zu senden. Das Problem ist, dass ein Knoten mit einer großen zu sendenden Datenmenge, der ein zu frühes Toketi erkennt, dieses möglicherweise sehr lange behält, sodass die gemessene TRT eines in Downstream-Richtung liegenden Knotens die TTRT erreicht oder überschreitet, bevor das Token bei ihm ankommt. Das bedeutet, dass dieser Knoten seinen Frame nicht übertragen kann. Um dies zu berücksichtigen, definiert FDDI zwei Verkehrsklassen: synchron und asynckron.l Erhält ein Knoten das Token, darf er synchrone Daten immer senden, ungeachtet dessen, ob es sich um ein frühes oder spätes Token handelt. Demgegenüber kann ein Knoten asynchrone Daten nur dann senden, wenn das Token zu früh eintrifft. Die Begriffe synchron und asynchron sind hier etwas irreführend. Mit synchron ist in Zusammenhang mit FDDI gemeint, dass der Verkehr verzögerungsempfindlich ist. Sprache und Video würde man beispielsweise in einem FDDI-Netz als synchronen Verkehr senden. Demgegenüber bedeutet asynchron h i q dass die Anwendung mehr am Durchsatz als an der Verzögerung interessiert ist. Eine Dateitransferanwendung ist ein %spiel für asynchronen FDDI-Verkehr. Sind wir jetzt fertig?Noch nicht ganz. Da synchroner Verkehr ungeachtet dessen, ob das Token zu früh oder zu spät ist, übertragen werden kann, mag es den Anschein haben, dass die Token-Istumlaufzeit (TTRT) bedeutungslos wird, wenn jeder Knoten eine beträchtliche Menge an synchronen Datm senden möchte. Um dies zu buücksichtigen, wird die Gesamtmenge der synchronen Daten, die innerhalb eines Token-Umlaufs gesendet werden können, ebenfalls durch die TTRT begrenzt. Das bedeutet im schlechtesten Fall, dass zuerst die Knoten mit asynchronen und dann die mit synchronen Daten eine TTRT verbrauchen, was bedeutet, dass die gemessene TRT an jedem beliebigen Knoten bis zu 2 X TTRT betragen kann. Falls der synchrone Verkehr bereits eine TTRT verbraucht hat, senden die Knoten mit asynchronem Verkehr keine Daten, weil das ~ o k e nzu spät ankommt. Während es also möglich ist, dass ein einziger Token-Umlauf bis zu 2 X TTRT dauern kann, sind keine direkt aufeinander folgenden Umläufe möglich, die 2 X TTRT dauern. E i letzte Frage besteht darin, wie ein Knoten feststellt, ob er asynchronen Verkehr senden kann. Wie bereits erwähnt, sendet ein Knoten, wenn die gemessene TRT kleiner als die TTRT ist. Die Frage lautet dann: »Was passiert, wenn die gemessene TRT um eine derart geringf@ige Zeit Meiner als die TTRT ist, dass keine ganze 1. Ursprünglich definierte FDDI zwei Unterklassen für asynchronen Verkehr: eingeschränkt und wwingeschränkt ( r e s t r i d bzw. unrestncted).In der Praxis wird der eingeschränkte asynchrone Fall aber nicht unterstützt, sodass wir mit *asynchron« nut den meingeschränkten Fall beschreiben.
.
Nachricht gesendet werden kann, ohne die TTRT zu überschreiten4 In diesem Fall wird dem Knoten das Senden einfach gestattet. Folghch wird die gemessene TRT efeektiv durch die ?TRT zuzüglich der für die fibertragung eines vollen FDDI-Frames erforderlichen Zeit begrenzt.
i
Token-Wartung Die für die Gewährleistung, dass immer ein gdtiges Token im Umlauf ist, verwendeten FDDI-Mechanismen unterscheiden sich ebenfalls von denen in 802.5, weil sie mit der Einstellung der TTRT verfiochten sind. Erstens überwachen alle Knoren in einem FDDI-Ring den Ring, um sichefzustelien, dass das Token nicht vml~rengegangen ist. In einem korrekt funktionierenden Ring sollte jeder Knoten eine gültige Übertragung - entweder eines Daten-Frames oder des Tokens - in gewissem Abstand zu sehen bekommen. Die längste Periode zwischen gidtigen fibertragungen, die ein bestimmter Knoten erleben sollte, entspricht der Ringumlaufzeit, zuzüglich der Zeitdauer, bis ein voller Frame übertragen ist. Das entspricht bei einemgröknmäßig bis zum Maximum ausgelegten Ring etwas weniger als 2,s ms. Deshalb setzt jeder Kn~teneinen Timer auf 2,s ms. Läuft er ab, vermutet der Knoten, dass etwas schief gelaufen ist, und überträgt einen »Claim*-Frame. Bei jedem Empfang einer gdtigen fjbertragung setzt der Knoten seinen Timer aber auf 2,s ms zurück. Die in FDDl benutzten Claim-Frarnes unterscheiden sich von denen in 802.5, weil sie das *Gebote eines Knotens für die lTRT enthalten, d.h. die Token-Umlaufzeit, die der Knoten benötigt, damit seine Anwendungen ihre Zeitbeschränkungen einhalten können. Ein Knoten kann einen Claim-Frame auch senden, wenn er das Token nicht hält. Dies ist normalerweise der Fall, wenn er eine Störung vermutet oder neu angeschlossen wird. Schafft dieser Claim-Frame eine komplette Umrundung des Rings, wird er vom Sender entnommen, weil dieser nun weif3, dass sein TTRT-Gebot das niedrigste waL Dieser Knoten hält nun das Token, d.h. er ist für das Einfügen eines gültigen Tokens in den Ring verantwortlich und kann dann mit dem normalen Token-Algorithmus fortfahren. Empfängt ein Knoten einen Claim-Frame, prüft er, ob das darin enthaltene TTRT-Gebot geringer als sein eigenes ist. Trifft dies zu, setzt der Knoten seine lokale Einstellung der TTRT auf die im Claim-Frame angegebene und leitet den Frame an den nächsten Knoten weiter. Ist die angebotene TI'RT grö&r als die von diesem Knoten geforderte Mindest-TTRT, wird der Claim-Frame aus dem Ring genommen. Der Knoten speist daraufhin seinen eigenen Ciaim-Frame mit seinem .Gebot« in den Ring. Sollte die angebotene lTRT der von anderen Knoten benötigten TTRT entsprechen, vergleicht er die Adresse des Senders des Claim-Frames mit seiner eigenen, und die höhere Adresse gewinnt. Schafft es also ein Claim-Frame rundum bis zum ursprünglichen Sender, w e s dieser, dass er der einzige aktiv Bietende ist und das Token risikolos nehmen kann. Gleichzeitig haben sich damit jetzt alle Knoten auf eine lTRT geeinigt, die kurz genug für alie Knoten ist.
'
Das in Abb. 2.36 dargestellte FDDI-Frame-Format unterscheidet sich nur geringiligig von dem im 802.5 benutzten. Da PDDI statt der Manchester- die 4BISB-Kodiemng benutzt, werden hier im Anfangs- und Endbegrenzer 4BISB-Steuersymbole an Stelle ungültiger Manchester-Symbole verwendet. Ein weiterer wichtiger Unterschied ist ein Bit im Header, mit dem synchroner von asynchronem Verkehr unterschieden wird. Dagegen fehlen die in 892.5 benutzten Zugriffssteuerbits.
2.8
Drahtlose Netze (802.1 1)
Die drahtlose Vernetzung entwickelt sich in rasantem Tempo zu einer Technologie für die Verbindung von Computern. Wie wir an früherer Stelle dieses Kapitels gesehen haben, sind die Möglichkeiten für den Aufbau drahtloser Netzwerke nahezu endlos. Sie reichen von der Verwendung von Infrarotsignalen in einem einzelnen Gebäude bis zum Aufbau eines globalen Netzwerks mit Satelliten im niedrigen Orbit. In diesem Abschnitt wird eine spezifische Technologie näher betrachtet, die auf dem an Bedeutung zunehmenden IEEE-Standard 802.1 1 gründet. Wie die Ethernet- und Token-Ring-Standards wurde auch 802.11 für die Nutzung in einem begrenzten geografischen Bereich (Haushalte, Bürogebäude, Firmen- oder Universitätsgelände) ausgelegt. Die vorrangige Herausforderung liegt in der Bereitstellung des Zugangs zu einem gemeinsamen Kommunikationsmedium - in diesem Fall Signale, die sich durch den Raum ausbreiten. 802.11 unterstützt zusätzliche Leistungsmerkmale (2.B. fristenbasierte Dienste, Power-Management und Sicherheitsmechanismen), wir konzentrieren uns aber auf die Grundfunktionalität.
2.8.1 PhysikalischeEigenschaften 802.11 wurde für den Betrieb mit drei verschiedenen physikalischen Medien ausgelegt: Zwei basieren auf (Spreizspektrum-)Funk- und eines auf InfrarotÜbertragung. Die funkbasierten Arten verwenden zur Zeit Obertragungsraten von 11 oder 54 Mbitts. Das Konzept des nSpreizspektrurnsu (Spread Spectrum) basiert darauf, dass das Signal über ein breiteres Frequenzband als üblich ausgedehnt wird, um die Auswirkung von Störungen durch andere Geräte zu minimieren. (Das Spreizspektrum wurde ursprünglich für Militäranwendungen entwickelt, was bedeutet, dass diese »anderen Geräte* oft vorsätzlich Störungen versuchten.) Das Frequenzsprungverfahren (Frequency Hopping) ist z.B. eine Spreizspektrumtechnik, bei der das
Signal auf ein ständig die Ftequerlzi wechdmk Tia13e-rsignalmod&~t wird. Der Fr%quemwe&el ist dabei nicht wirklich zafälli& sondern wird algorithmkch durch einen Pseudozufailszahien-Genaatorb&et. Sender und Empfiinger benuwn den deichen A l g o r i ~ u sund initidkken ihn mit dem gleichen Aqgmgswem. Ealglich kann der Empfänger mit dan Sender synchron zwischen Frequenzen wechwh,um d a Fr- korrekt zu empfangen. .Die so gemimte Difed-Sequarcr!ist eine weitere Sprehpeksrumbei der die gleiche Wikung dadurch erreicht wird, dass jedes Bit im F-e durch k e h r e W im überuagenea Signal dargestellt wird. Für jedes Bit, das der Sender &ertragen Daöchte, wird tatsächlich das exclnsive+ODERdes W e n d e n Bits mit n Zufdsbib gesendet. Wie beim Fqnenzs-erfh wird die Zdaikbidolge durch einen Pseudonifailszahlen-Geneerzeugt, den Sender und Empliinger kernen. Die übertragenen Werte, also der aus n Bit bestehende Chipping-Code, spreizt das Signal über ein Frequenzband, das n mal breiter ist als für den Frame normalerweise nötig wäre. Abb. 2.37 zeigt ein Beispiel einer 4 Bit langen Chipping-Folge.
Abb 2.37: Beispiel einer 4-Bit-Chipping-Folge
802.11 umfasst eine Definition für die Bitübertragungsscbicht auf der Grundlage und eine zweite unter Verwendung der Direct-Sequence (mit einer 11 Bit langen ChippingFolge). In beiden FäUen weist das Spreizspektrum das interessante Merkmai auf, dass das Signai jedem Empfängq der die Pseudozufaiisfolge nicht kennt, wie Rauschen vorkommt. Der dritte physikaiische Standard füt 802.11 basiert auf Infrarotsignalen. Die Obertraguag erfolgt diffus, was bedeutet, dass Sender und Empfänger nicht aufeind e r ausgerichtet sein rnussen und keine klare Sichtverbindung benötigen. Diese Tmhnalogie hat eine Reichweite von etwa 10 m und ist ausschiießlich auf den Irinenbereich von Gebäuden begrenzt. #es h q ~ e n Z ~ p m e ~ f a h r e(über n S - 79 1-MH;IFrequenzbandbreiten)
:
Auf den ersten Blick scheint es, dass ein drahtloses Protokoll genau dem gleichen -
Algorihus wie das Ethernet folgt: warten, bis die Verbindungsleitung frei wird, dann übertragen und sich im Faü ehes Koliision zurückziehen. In erster Näherung
132
1
2 Dktvar~ndungsmtzwerke
ist das bei 802.11 auch genau der Fail. Ein drahdoses Neawerk ist allerdings etwas kompiizierter, weil sich nicht jeder Knoten immer innerhalb der Reichweite der anderen befindet. &lan betrachte die Situation in Abb. 2.38. Hier k a m jeder der vier Knoten Signale senden und empfangen, die gerade noch die Knoten unmittelbar links und rechts daneben erreichen. B kann 2.B. Frames mir A und C, nicht aber mit D austaud e n , während C zwar B und D, aber nicht A erreicht. (Die Reichweite von A und D ist in der Abbildung nicht dargestellt.) Angenommen, A und C möchten mit B kommunizieren und senden je einen Frame. A und C wissen nicht voneinander, weii ihre Signale nicht so weit reichen. Die beiden Frames kollidieren bei B. Im Gegensatz zu einem Ethernet merkt aber weder A noch C etwas von k Kollision, A und C sind füreinander so genannte verborgene Knoten (Hid&n Nodes).
,
,
Abb. 238: Beispieleines drahtlasen Netzwerks
Ein verwandtes Problem, das der ewponiet.ten Knoten (Exposed Nodes), tritt mer folgenden Umständen auf: Angenommen, B sendet in dem Beispiel von Abb. 2.38 aa A. Knoten C weiß von dieser Kommunikation, wil er die Obcrtragung von B hört. I;u,C wäre es falsch zu glauben, dass er '&n niema-nden libemagm kann, nur weii e~ die &rtragmg von B mitbekam~t.Nehmen wir z.B, an, C möchte an Knoten D iibemqp. Das ist kein hohlem, weii die h a g u n g von C an D die FhhigkeJs von A nicht beeitriichtigt, von B au empfangen. (Sie vdirde die Ubertragug von A . nach B a6ren, aber in unserem B t ' i i ifbcttriigt B.) 802.1'1 1% bei& R6bfane mit einem Algoathmus, den man als Multiple Acu*th CollSsion &&we (MACA) bezieichnet. Diesem Kozafolge tauschen Sm& wid Fmrpfiin~erSteaer-Fmes aus, OE der %der mir der b a g u g von Daten h g h t . DadbmB wtrdeti aiie baiachbaröen Knoten iabrmkrt, dass rtehmä:chsteine Obemagtmg )beginnt.Det Ablauf ist wie fdett:Der Sradcr übeituägt einen RTS-Frame (Repest To Send) an den Empf-e Der RTSR- W a l t e t ein Feld, das angib, wie h g e der'sender das Medium benutzen will (d.h. es spezifiziert die Länge des zu übertragenden Daten-Framcs], RerrrdsEQIp&gez anqqwtet mbt einem CTS-Frame ( C kTo Send). Dieser Frame reicht das Län@1d an den Sender zusiidc. Sieht eia andem Knoten den CTS-Frame, weiiS dass er nahe b e b Elgpfhger liegt wnd ctaher =lange nicht iibertragen kann, his ein Frame mit der speLänge i i h x t q e n wurde, Ein fitxeq .der zarar Ceea RTS-,@&t &er dien
-
,
2.8 &'ahtk6Nat#(80R11)
I
laU
CTS-Frame sieht, befindet sich nicht nahe genug beim Empfänger; um diesen zu stören, sodass er nach Belieben übertragen kann. Um das Bild abzurunden, fehien uns noch zwei Einzeiheiten. Erstens sendet der Empfänger nach ehigreichem Erhalt eines Frein ACK an den Sender, Alle Knoten müssen auf dieses ACK warten, bis sie übertragen können.' Zweitens koliidieren die RTS-Frames von zwei oder mehr Knoten, wenn sie einen freien Kanal erkannt haben und gleichzeitig versuchen, einen RTS-Frame zu übertragen. 802.1 1 unterstützt keine Kollisionserkennung. Stattdessen wissen die Sender, dass eine Kollision eingetreten ist, wenn sie nach einer bestimmten Zeitdauer keinen CTS-Frame erhalten. In diesem Fall warten sie eine zufallsgesteuerte Zeitspanne, bis sie es wieder versuchen. Diese Wartezeit wird durch den gleichen Algorithmus des ~Exponential Backoff~wie beim Ethernet (siehe Abschnitt 2.6.2) definiert.
2.8.3 Verteilsystem Der bisherigen Beschreibung zufoige würde sich 802.11 für eine beliebige Konfiguration von Knoten eignen, die mogiicherweise mit allen übrigen Knoten kommunizieren können, je nachdem, wie weit sie auseinander liegen. Da ein drahtloses Netzwerk unter anderem den Vorteil bietet, dass sich Knoten frei bewegen können, also nicht durch Kabel fixiert sind, kann sich die Menge der direkt erreichbaren Knoten im Lauf der Zeit ändern. Um diese Mobilität und die nur zeitweise Konnektivität zu ermöghchen, definiert 802.11 zusätzliche Strukturen für eine Knotengruppe. Knoten können zwar direkt - wie eben beschrieben - frei miteinander kommunizieren, arbeiten in der Praxis aber innerhalb dieser Struknrt Statt alle Knoten gleich auszulegen, dürfen einige vagabundieren (z.B. Ihr Laptop), während andere an eine festverdrahteteNetzStruktur angeschlossen sind. Letztere nennt man Anschlusspunkte (Access Points, AP); sie sind über ein so genanntes Verteihystem(DistributionSystem) miteinander verbunden. Abb. 2.39 zeigt ein Verteilsystem mit drei verbundenen Anschlusspunkten, die jeweils die Knoten eines bestimmten Gebiets versorgen. Diese Regionen sind analog zu Zellen in einem Mobiltelefonsystem, wobei die APs die gleiche Rolle wie eine Basisstation spiele^. Die Einzelheiten des Verteilsystems sind in diesem Zusammenhang nicht wichtig. Es körne 2.B. ein Ethernet oder Token-Ring sein. Der einzig wichtige Punkt hierbei ist, dass das Verteilnetz auf Schicht 2 der ISO-Architektur läuft. Es hängt also nicht von irgendwelchen Protokollen der höheren Schichten ab. Obwohl zwei Knoten direkt miteinander kommunizieren können, sofern sie innerhalb ihrer jeweiligen Reichweite liegen, sieht das Konzept dieser Konfiguration vor, dass sich jeder Knoten als zu einem Anschlusspunkt zugehörig betrachtet. Will 2.B. Knoten A mit Knoten E kommunizieren, sendet A zuerst einen Frame an seinen Anschlusspunkt (AP-I), der ihn über das ~erteils~sdm an AP-3 weiterleitet, von wo er schliegiich an E übertragen wird. Auf welche Weise AP-1 erfährt, dass er die 1. Dieses ACK war M urspriinghchen MACA-Algorithmus nicht enthalten, sondern wurde in der erweiterten Version MACAW (MACA for Wireless LANs) vorgeschlagen.
Nachricht an AP-3 weiterleiten muss, liegt auf3erhdb der Spezifikationen von 802.11. Er könnte 2.B. das in Abschnitt 3.2 beschriebene Bridging-Protokoll benutzen. 802.11 definiert, wie Knoten ihren Anschlusspunkt wählen und wie dieser Algorithmus angesichts sich von einer Zelie zur anderen bewegenden Knoten funktioniert. Die für die Auswahl eines AP angewandte Technik nennt man Scanning; sie umfasst die folgenden vier Schritte:
1. Der Knoten sendet einen Probe-Frame. 2. Alle APs innerhalb der Reichweite antworten mit einem Probe-Response-Frame. 3. Der Knoten wählt einen Anschlusspunkt aus und sendet ihm einen AssociationRequeJt-Frame.
4. Der AP antwortet mit einem Association-Response-Frame.
Wann immer ein Knoten in das Netzwerk eintritt oder mit seinem gegenwärtigen AP nicht zufrieden ist, bemüht er dieses Protokoll. Letzteres kann beispielsweise passieren, weil sich das Signal vom momentanen AP'abschwächt, wenn sich der Knoten von ihm enrfernt. Erwirbt ein Knoten einen neuen AP, benachrichtigt der neue den alten AP (in Schritt 4) über das Verteilsystem. Wir betrachten als Beispiel die Situation in Abb. 2.40. Knoten C bewegt sich von der vm AP-1hin w der von AP-2 versorgten Zelle. Wiihrend er sich entfernt, sendet er Pmbe-Frames, die letztendlich zu Probe-Response-Frames von M fuhren. An einem bestimmten hinkt gibt C AP-2 den Vorzug vor AP-1, assoziiert sich also mit diesem AnSchlusspunkt. Bei dem eben beschriebenen Mechanismus handelt es sich um *aktives &anningu, weil der Knoten aktiv nach einem Anschlusspunkt sucht. Davon abgesehen senden APs periodisch einen Beacon-Frame aus, mit dem sie ihre Fähigkeiten, unter anderem die von ihnen unterstützten übertragungsraten, anpreisen. In diesem Faii
s$d& mrn von .passivem Scan&&. i%kpn-Ebik ni di& AP W ~ ' 9J hwn g e h t m zlwiich&.
Ern aI0an lurm auf der dsrundiagc des indem er einen Assodatlori.ReqW-Frme
Grofstd des B ( I L . ~ ~ - F [sieht ~ ~ ~ Abb. - T 2.41) ; ~sieht genauso wie erward d i k die Adressen des Qud- und Zidhotens, die jtweils 45 Bit Z;a4g sind, einen DaaEateil mit bis zu 2.312 Byte und eine 32-M-=C. Das &M Contror umfasst d d inpcrewmte (nicht darpeeflte) Tdfelder: Ein 6 Bit langes T@&eld, das bezeichnet, ob der Frame Daten tiihct, ein RTSa odcr CTSI-Prame.ist qdezr wmi Scann~mg-&*us wmender wird, s d c twoi 1-Bit-Felder &r l%exichnungT i und R w b S , die nadifeigend besc&icbn werdien. &T
& aus. Der Fr-
16
16
48
48
48
16
48
Control
Dauer
Acidrl
Addr2
Acid13
SeqCM
Addr4
0-18.498
32
Nutzdaten
Auffällig am 802.11-Frame-Format ist, dass es nicht zwei, sondern vier Adressen enthält. Wie diese Adressen interpretiert werden, hängt von der Einstellung der TODS-und FromDS-Bits im Control-Feld des Frames ab. Dabei wird die Möglichkeit berücksichtigt, dass der Frame über das Verteilsystem weitergeleitet werden musste, was bedeutet, dass der ursprüngliche Sender nicht unbedingt mit dem zuletzt übertragenden Knoten identisch ist. Dies gilt auch für die Zieladresse. Im einfachsten Fall, bei dem ein Knoten direkt an einen anderen sendet, haben beide DS-Bits den Wert 0, Addrl identifiziert den Ziel- und Addii! den Quellknoten. Im komplexesten Fall werden beide DS-Bits auf 1gesetzt. Das bedeutet, dass die Nachricht von einem
drahtlosen Knoten zum Verteilsystem und von dort zu einem anderen drahtlosen Knoten übertragen wurde. Sind beide Bits gesetzt, identifiziert Addrl das endgültige Ziel und AddR den Zwischensender (derjenige, der den Frame vom Verteilsystem zum endgültigen Ziel befördert hat). Addr3 identifiziert das Zwischenziel (dasjenige, das den Frame von einem drahtlosen Knoten angenommen und über das VerteilSystem weitergereicht hat) und Addr4 identifiziert die ursprüngliche Quelle. Angewandt auf das Beispiel in Abb. 2.39, entspricht Addrl E, AddR identifiziert AP-3, Addt3 entspricht AP-1 und Addr4 identifiziert A.
2.9 Netzwerkkarten Fast alle der in diesem Kapitel beschriebenen Funktionen eines vernetzten Knotens werden in der ~etzwerkkarte' implementiert: Frame-Erzeugung, Fehlererkennung und Medienzugriffsprotokoll. Die einzigen Ausnahmen bilden die in Abschnitt 2.5 beschriebenen ARQ-Methoden zwischen zwei Punkten, die normalerweise im Protokoll der niedrigsten Schicht, das auf dem Host läuft, implementiert wird. Wir schließen dieses Kapitel mit einer Beschreibung des Designs einer generischen Netzwerkkarte und der zu deren Steuerung verwendeten Treibersoftware ab. Beachten Sie bei der Lektüre dieses Abschnitts, dass keine Netzwerkkarte wie die andere ist. Sie unterscheiden sich in unzähligen kleinen Details. Wir konzentrieren uns daher auf allgemeine Merkmale, führen aber zusätzlich einige Beispiele einer realen Netzwerkkarte hinzu, um das Thema anschaulicher darzustellen.
2.9.1 Komponenten Eine Netzwerkkarte fungiert als Schnittstelle zwischen Host und Netzwerk und besteht folglich aus zwei Komponenten: einem Bus-Interface, um mit dem Host zu kommunizieren, und einem Leitungs-Interface, welches das Protokoll des Netzwerks korrekt beherrscht. Zwischen diesen beiden Komponenten ist ein Kommunikationsweg erforderlich, über den ankommende und abgehende Daten fliegen. Ein einfaches Blockdiagramm einer Netzwerkkarte ist in Abb. 2.42 dargestellt. Netzwerkkarten werden immer fiir einen speziellen VO-Bus entwickelt, sodass sie häufig nur in den Rechnern bestimmter Hersteller verwendet werden können? Jeder Bus definiert ein Protokoll, das von der Host-CPU verwendet wird, um die Netzwerkkarte zu programmieren, und das von der Netzwerkkarte verwendet wird, um Interrupts an die Host-CPU zu schicken und den Speicher des Hosts lesen und schreiben zu können. Eines der wichtigsten Merkmale eines YO-Busses ist die von ihm unterstützre Datentransferrate. Ein typischer Bus hat 2.B. einen 32 Bit breiten 1. Eine andere Bezeichnung für ~NetworkAdapter* ist wNICa (Network Interface Controller). 2. Zum Glück gibt es wie für die Vernetzung auch für das Busdesign Standards, sodas einige Adapter in den Rechnern verschiedener Hersteller benutzt werden können.
Abb. 2.4a Blockdiagramm einer typischen Netzwerkkarte
-gien m
w da&P r d u i l
2.9.2 Sicht des Hosts Wir haben im Großteil dieses Kapitels verschiedene Protokolle behandelt, die auf Netzanschlussseite der Netzwerkkarte implementiert werden. Nun betrachten die Netzwerkkarten au$ Sicht des Hosts.
sContt01-~tatus-kegister Eine Netzwerkkarte wird letztlich wie jedes andere Gerät mit Software programmiert, die auf der CPU läuft. Aus Sicht der CPU bietet die Netzwerkkarte ein Control-Status-Register (CSR) an, das von der CPU lesbar und schreibbar ist. Das CSR befindet sich normalerweise an einer bestimmten Adresse im Speicher, sodass die CPU es wie jede andere Speicherstelle lesen und schreiben kann. Die CPU schreibt in
138
1
2 M~erbindungsnetmerke
das CSR, um es anzuweisen, einen Frame zu senden undloder zu empfangen, und liest aus dem CSR den aktuellen Zustand der Netzwerkkarte. Das folgende Beispiel ist das CSR von Lance Ethernet, eine von Advanced MicroSystem Devices (AMD) hergestellte Netzwerkkarte. Lance hat eigentlich vier verschiedene Control-Status-Register: Im folgenden werden die Bitmasken für die Interpretation des 16-Bit-CSRO aufgeführt. Um in der Netzwerkkarten ein Bit zu setzen, führt die CPU auf CSRO und die Maske, die dem zu setzenden Bit entspricht, ein inclusive-ODER aus. Um festzustellen, ob ein bestimmtes Bit gesetzt ist, vergleicht die CPU das AND des Inhalts von CSRO und der Maske mit 0.
I* * Steuer* *
*
* * * * */
und Zustandsbits f ü r CSRO.
Legende: RO Read Only (nur lesen) RC Read/Clear (1 18scht. 0 hat keine Wirkung) RW Read/Write W1 Write-1-only (1 setzt, 0 hat keine Wirkung) RW1 ReadlWrite-1-only (1 setzt. 0 hat keine Wirkung)
-
-
ldefine LE-ERR idefine LE-BABL #define LE-CERR idefine LE-MISS ldefine LE-HERR Idefine LE-RINT ldefine LE-TINT ldeflne LE-IüON #derine LE-INTR Wefine LE-INEA #define LE-MON ldefine LE-TXON ldefine LE-TDMD idefine LE-STOP ldefine LE-STRT ldefine LE-INIT
.
0x8000 0x4000 0x2000 0x1000 0x0800 0x0400 0x0200 0x0100 0x0080 0x0040 0x0020 0x0010 0x0008 0x0004 0x0002 0x0001
/* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /*
RO BABL 1 CERR I MISS I MERR */ RC Ubertragung zu vieler Bits */ RC Kein Herzschlag */ RC A n k e n d e s Paket verloren */ RC Spei cherfehl er; keine Bestati gung (ACK] RC Interrupt fiir empfangenes Paket */ RC Interrupt f U r gesendetes Paket */ RC InitSalisierung f e r t i g */ RO BABL)MISSIMERRIRINT TINT J IDON */ RW Interrupt ermöglichen */ RO Empfiinger an */ RO Sender an */ W 1 Sendenachfrage (sende es j e t z t ) */ RW1 Stop */ RWZ Start */ W1 i n i t i a l i s i e r e */
*/
I
Diese Definitionen bedeuten beispielsweise, dass der Hosr in das &ertniedtigste Bit von CSRO eine 1 (0x0001) schreibt, um den Lance-Chip zu initialisieren: Sieht der Host eine 1 im sechsten (0x0020) und im fünften Bit @xO010), weg eq dass der Lance-Chip eingeschaltet und bereit ist, Frames zu empfangen bzw. zu senden.
1m Die Host-CPU könnte das Control-Status-Register der Nemerkkarte in kurzen Abständen immer wieda lesen, bis etwas Inreresantes passiert, und dann die ent-
'
qre&en.de Jth&&rne einleiten.,Jki dem Lmm-Chip k a n t e sie beispielsweise fortlawfmd auf eine 1 im 11. Bi* {Qm) l>nifen,da es bedeutet, dass gerade ein Frame asgekmmea ist. Dia aiennt man Polfing. Obwohl dies in bestimmten Situationen (&B, bei einem R0wb:q der,niehtsbeswes zu tun hat, als auf den nädsren Frame zu w e n ) nicht u n v e m isc, ~ wird dieses Design noderweise nicht bei Hosrs v ~ d e tdie , ihre Zeit bmwx mit: der Ausführung von Anwendmgsprogr~en v w b m muten. Statt Poiling ,n*& achten die meisren Hostg ledig&& daramf, ob die Wmerkkai.te einen htarupt beim Htwt anfordert. Dies g d h wenn cin Er*nis ehgeetwi ist, das den Ein@ des Horn erforderiich macht, z.B. wenn ein Pranne erfolgreich übertragen oder empfangen wurde oder ein Fehler aufgetreten ist, .als die Netzwerkkarte versuchte, einen Frame zu senden oder zu empfangen. Die Hmt-Architektur beinhaltet einen lvkh~srnus,der eine bestimmte Proaedur im Betriebssystem aufruft, wenn ein solcher Interrupt erfolgt. Diese Prozedur nennt man Impt-HlrndIcvr. Sie prüft das CSR, um die Ursache für den Interrupt festnistellen und entsprechend zu reagieren. Während der Host einen hternipt bedient, unterbindet er normalerweise jeden weiteren bterrupt (disable).Dadurch wird verhindert, dass der Netzwerkkartentreiber m e h r e Intermpts gleichzeitig bedienen muss. Aus diesem Grund muss er seine Arbeit aber ras& erledigen (er hat keim Zeit, den gesamten Protokoii-Stack auszuf@mm)uad kann es sirb unter keinen Umständen leisten, zu blockieren (d.h. die AwMmmg unterbrechen und auf ein mdeles Ereignis warten). Dies Iasst sich beierpielsweise dadurch erreichen, dass man den Interrupt-Handler einen Prozess akioieren lgsst, der sich um den Frame kümmert und dann zurückkehrt. Der Handler gmiit damit sicher, dass der Frame verarbeitet wird, ohne wemoiie Zeit mit der ebntlichen Verarbeitung des Frames zu verbrauchen.
'
e
'
,
E i e r der wichtigsten Aspekte bei jedem Netzkartendesign ist, wie die Bytes eines Frames zwischen det Karte und dem Host-Speicher übertragen werden. Dafür gibt es zwei grundlegende Mechanismen: Direct Mmory Amss (DMA) und Programmed I/€) (PiO). Bei DMA liest und schreibt die Netmverkkarte direkt in den HostSgeicheq ohne die CPW einzuschalten. Der Host gibt einfach eine Speicheradresse, und die Netzwerkkarte liest von dort aus (bzw. schreibt dorthin). Bei P I 0 ist die CPU direkt für die Bewegung von Daten zwischen Netzwerkkarte und Host-Speicher zustandig. Um einen Frame zu senden, geht die C W in eine nicht unterbrechbare Schleife, in der sie zuerst ein Speicherwort vom Host-Speicher liest und dann in die Netzwerkkarte schreibt. Um einen Frame zu empfangen, liest die CPU Speicherworter aus der Netzwerkkarte und schreibt sie in den Speicher. Wir betrachten jetzt DMA und BIO genauer. Wvd DivlA angewendet, besteht keine Notwendigkeit, Frames in der NetzwerkIcsute zwiscienzus@chern. Sie liest und schreibt vomlzum Host-Speicher. (Einige wenige Puffer-Bytes sind n ~ m n d i g ,um Daten zwischen dem Bus- und LeitungsEhterface, wie oben beschrieben, vorübergehend zwischenzuspeichern. Es werden
aber keine vollständigen Frames in der Netzwerkkarte zwischengespeichert.) Daher ist die CPU dafür verantwortlich, dem Adapter zwei Puffwlkten (Buffer Descriptor Lists) zu übergeben: Von einer wird gesendet und in die andere wird empfangen. Bei diesen Listen handelt es sich um Amys aus Adressennängen-Paaren (siehe Abb. 2.43). Abb. 2.43: Pufferliste
-
Wenn die Netzwerkkarte Frames empfängt, benutzt sie so viele Puffer wie nötig, um die ankommenden Frames aufzunehmen. Die Liste in Abb. 2.43 würde z.B. eine Ethernet-Netzwerkkarte, die versucht hat, einen 1.450-Byte-Frame zu empfangen, dazu veranlassen, die ersten 100 Byte in den ersten und die nächsten 1.350 Byte in den zweiten Puffer zu schreiben. Fails unmittelbar nach dem ersten ein zweiter 1.500-Byte-Frame ankommt, würde er ihn vollständig in den dritten Puffer speichern. Das heißt, separate Frames werden in getrennte Puffer geschrieben. Ein einzelner Frame kann aber auch über mehrere Puffer verteilt werden. Dieses Merkmal nennt man auch Satter-Read. In der Praxis wird Scatter-Read angewandt, wenn die maximale Frame-Größe des Netzwerks so groß ist, dass es Verschwendung wäre, aile Puffer ausreichend gr08 zu dimensionieren, um den größtmöglichen ankommenden Frame aufzunehmen. Man würde dann eine betriebssystemspezifische Datenstruktur ahnlich der in Abschnitt 1.4.3 beschriebenen verwenden, um aiie Puffer zu verknüpfen, die einen Teil eines groi3en Frames enthalten. Scatter-Read wird normalerweise für Ethernet nicht benutzt, weil die Zuteilung von 1.500-Byte-Puffern im Voraus nicht übermäßig viel Speicher vergeudet. Die Ausgabe funktioniert auf ähnliche Weise. Hat der Host einen Frame zu übertragen, setzt er einen Zeiger auf den Puffer; in dessen Sendeiiste der zu übertragende Frame steht. Netzwerkkarten, die das so genannte Gatbw-Wrr'te unterstützen, ermöglichen die Fragmentiemng des Frames, also dessen Aufteilung auf mehrere physische Pder. In der Praxis wird Gather-Write häufiger als Scatter-Read benutzt, weil abgehende Frames oft stiickchenweise gebildet werden, und dabei mehr als ein Prutokoll zu einem Puffer beiträgt. Wenn 2.B. eine Nachricht ihren Weg abwärts durch den Protokoii-Stack zurückgelegt hat und für die Ubertragung bereit ist, setzt sie sich aus einem Puffer, der den Aggregat-Header (die Sammlung aller Header, die
die diwx N&cht x e m k haben, aqpMtkrctn P & b z w e n , i~ $tm gieh die
Ik Fall von P I 0 muss die Netzwerkkarte eine gewisse Zwischenspeicheruq zur Vejefugung stellen. bie CPU kopiert Prnmes mischen dem Host-Speicher und dem Speicher dieses Adapters*wie aus Abb. 2.44 ersichtlich wird, Zwischenspeicherung isf notwendig weil man bei den meisten Betriebssystemen nie ganz sicher sein kann, wann die CPU etwas 'bestimmtes ausführen wird. Folghch muss man auf Wartezeigefasst sein. Hier muss die wichtige Frage geklärt werden, wie viel Speicher die N&zwerkkarre ben~tigt.Mit Sicherheit besteht Bedarf an Speicherplatz für minde+ns je einen Frame in Sende- und Ernpfangsrichtung. Darüber hinaus verfügen getzwerkkarten bei PI0 normalerweise über zusätzlichen Speicher, um eine kleine -2-
P10-Mechanismusfiir
eine Netzwerkkarte
Zahl ankommender Frames solange zwischeazuspeichern, bis die CPU sie in den Host-Speicher kopiert. Der Computergrundsaaz, dass *Speicher billig ist*,und man die Netzwerkkarten daher mit einem riesigen Speicher ausstatten kom~e,ist: hier nicht so einfach anwendbai; weil die teurere Dual-Port+Varianteerforderlich ist, da die CPU und die Netzwerkkarte auf diesen Speicher zugreifen können müssen. Auf P I 0 basierte Netzwerkkarten haben meist einen Speichez in der Cird&mrBaq von 64 bis 256 KB, es gibt aber auch Karten mit 1MB Speicherkapazität.
Ein Netzwerkkmentreiber ist eine Sammlung von Betriebssystemropthen, die den Protokollgraphen letztendlich an die Nerzhardwate *aadockea~Er umfasst normalerweise Routinen fiir die Initi&der IWmv*, die b g u n g von Fraauf der Verbindungskitung und die Behandlungwa fatumpts. Der Code ist voller gerätespdkher h I h e i t e n und daher meist schwer lesßar, die eigentliche Logik ist aber recht einfach. Dielkagungsrsutiae wird 2.B. adgerufea um skherzustden, dass es freien Sendepuffer auf dem Gerät gib&das die Nachricht weittrhiten d Falls das nicht der Fall ist, muss sie den Psozess so lange b l h bis ausreichend Puffer zur Verfügung steht. Ist cin Se~depuffer *&V s&itzt sich dere-a Prozess vor Stö~nglendurch andere Obertragungspromse. Die Routine übersetzt da- die Nachricht vom internen Format in das von der Nerzwerbme erwartete, yetzt das CSR,sodass die Karte zum Ubemagen veradasst wud, und aktiviert die Interrupts. Die Logik für den Interrupt-Handler ist ebenso einfach. Zuerst schaltet er aiie weiteren Interrupts aus, die auf die Verarbeitung dieses Interrupts störend einwirken könnten. Dann prüft er das CSR, um festzustellen, was den Interrupt verursacht hat. Hierfür gibt es drei Möglichkeiten: (1)Ein Fehler ist aufgetreten, (2) eine Sendeanfrage wurde ausgeführt oder (3)ein Frame wurde empfangen. im ersten Fall gibt der Handier eine Nachricht aus und löscht die Fehlerbits. Im zweiten Fall wurde eine zuvor in die Warteschlange gestellte Sendeanfrageausgefühft,sodass jetzt freier Pufferplatz wieder verwendet werden kann. Im dritten Fall ruft der 'Handler die Empfangsroutine auf, um den ankommenden Frame aus der Empfmgspufferliste zu nehmen, in die interne Datem'truktur des Betriebssystems fiir Nachrichten zu stellen und dann einen Prozess zu stark, der die Nachricht im Protokollgraphen nach oben geleitet.
Aus Abschnitt 2.1.1 wissen W& dass die Speicherleistung oft die Netzleismg einschränkt. Nirgendwo ist diese potenzielle Einschränkung kritischer als am ]Hbert;/ Adapter-Interface. Bei näherer B e d t u q von Abb. 2.45 wird dieser Punkt da@lich. Dieses Diagramm zeigt die zwischen ve*denen Komponenten eines m&nen PCs verfügbare Bandbreite. Obwohl der YQ-Bus schnell genug ist, um Fraines
I
VO-Bus
Abb. 2.45: Speicherbandbreite einer eines nnxtemn
zwischen Netzwerkkarte und Host-Speicher in, sagen wir; Gigabit-Raten zu übertragesi, können potenziell zwei Probleme auftreten. Das erste hat damit zu tun, dass die angegebene Geschwindigkeit des YO-Busses &er Spitzenbandbreite entspricht; diese ist das Produkt aus seiner Busbreite und Thktfrequenz (2.B. hat ein 32-Bit-breiter Bus bei einer Taktrate von 33 MHz eine Spitzenbandbreite von 1056 Mbitls). Die eigentliche Einschränkung ist die Größe des Datenblocks, der über den YO-Bus übertragen werden soll, weil bei jedem Bustransfer ein gewisser Overhead einberechnet werden muss. Bei einigen Architekturen dauert es z. B. 8 Taktzyklen, um Zugriff auf den Bus für die Obertragung von Daten vom Adapter zum Host-Speicher zu erhalten. Dieser Overhead ist von den übertragenen Daten-Bytes unabhängig. Möchte man also Nutzdaten im Umfang von 6-4Byte - was der Mindestgröße eines Ethemet-Pakets entspricht -über den YO-Bus abertragen, dauert der gesamte Transfer 24 Zyklen: 8 für die Ergreifung des Busses und 16 für die Obertragung der Daten. (Der Bus ist 32 Bit breit, was bedeutet, dass ar in jedem Taktzyklus ein 4-Byte-Wort übertragen kann; 64 Byte geteilt durch 4 Byte pro Zyklus ergibt 16 Zyklen.) Man kann also eine maximale Bandbreite von und nicht die Spitze von 1056 Mbitls erreichen. Das zweite Problem ist, dass die Speicher-ICPU-Bandbreite von 235 MB/s (1880 Mbids) in der gleichen GröSenordnung wie die des YO-Busses liege. Allerdings ist das ein Messwert und keine angegebene Spitzenrate. Während es also möglich ist, Frames durch den YO-Bus und in den Speicher und dann die Daten aus dem Speicher in die CPU-Register in Netzbandbreiten zu befördern, ist es für Kartentreib ~ l Betriebssystem j und Anwendung unpraktisch, für jedes in einem Netzpaket enthaltene Wort mehrmals auf den Speicher zuzugreifen, weil es möglicherweise die Daten von einem Puffer in einen anderen kopieren muss. Wenn also der Speicher/ CPU-Weg in Lese- oder Schreibrichtung n mal überquert wird, kann man bestenfalls einen Durchsatz von 235ln W s erwarten. (Der Wert könnte höher liegen, wenn die Daten gecacht werden, aber häufig helfen Caches wenig bei Daten, die über ein Netzwerk ankommen.) Müssen mehrere Softwareschichten die Nachricht viermal von einem Puffer in einen anderen kopieren, was bei heutigen Systemen nicht selten der Fall ist, kann die Anwendung bestenfalls auf einen Durchsatz von 58,75 MB/s I
144
I
2 Dinktwrbindungsnetzwarke
(470Mbids) hoffen. Damit liegen wir natürlich extrem weit unter den 1056 Mbids, die wir von dieser Maschine erwartet hätten.
b Als Einschub sei hier auf die Analogie hingewiesen, die es zwischen der Bewegung einer Nachricht von und nim Speicher und andererseits durch ein Weosr werk gibt. Insbesondere wird der effektive Durchsatz durch das Speichoxsysteria mit den $eichen beiden, in Abschnitt 1.1.4 beschriebenen Formeln definiert. Durchsatz = TransferGröß&T~am$erZeit TransferZeit = R T i + liE3andbreite X TransferGroBe
-
Beim Speichersystem entspricht die Transfeneit hierbei der Größe einer Dateneinheit, die wir in einem Buszyhs befördern können (d-h. Cache-Zeile versus kleine Zellen versus g r d e Nachricht), und die RTf entspricht der Speicherlatenz, welche davon abhängt, ob es sich bei dem Speicher um Cache-Speicher auf dem Chip (On-Chip-Cache) oder vom Chip entfernten Speicher (Off-Chip Cache) oder aber um Arbeitspeicher handelt. Wie beim Netzwerk gilt hier: Je grö&r die Transfergröße und je kleiner die Latenz, um so besser ist der effektive Durchsatz. Weiterhin gilt ähniich wie beim Netzwerk: Der effektive Speicherdurchsatz entspricht nicht unbedingt der Spitzenbandbreite des Speichers (d.h. der Bandbreite, die sich mit einer unendlichen Transfergröfze erreichen Iiefk).
Der wichtigste Punkt dieser Diskussion ist, dass wir uns mit den Grenzen, die der Netzleistuog durch die Speicherbandbreite auferlegt werden, befassen müssen. Bei sorgfältigem Design kann das System diese Grenzen durchaus überwinden. So ist es beispiehise möglich, die Datenpuffer, die von Netzwerkkartentreiber, Betriebssystem und Anwendung benutzt werden, so zu integrieren, dass das Kopieren von Daten minimiert wird. Dem System muss auch mitgeteilt werden, wann Daten in den Cache zu überführen sind, damit es alle erforderlichen Operationen auf die Daten ausführen kam, bevor diese aus dem Cache wieder entfernt werden. Die Einzelheiten darüber, wie dies erreicht werden kann, geben über den Umfang dieses Buchs hinaus. Sie werden teilweise in der arn Schluss dieses Kapitels angegeben Literatur beschrieben. . Schließlich gibt es eine zweite wichtige Tatsache aus dieser Diskussion'zu entnehmen: Wenn die Performance des Netzwerks nicht so hoch ist, wie man es erwarten würde, liegt das nicht in jedem Falle am Netzwerk selbst. Häufig ist der wirkliche Flaschenhals eine der Maschinen, die mit dem Netz verbunden sind. Wenn es etwa bei einer Webseite sehr lange dauert, bis sie auf dem Bildschirm erscheint, so kann dies eine V e r s t o des ~ Netzwerks sein - genausogut kann es aber daran l i m dass der Server am anderen Ende des Netzwerkes überlastet ist. '
.
. -
2.1 0 Zusammenfassung
-
In diesem Kapitel wurden die Hardwarebausteine eines Redinernetzes Knoten und Verbindungsleitungen eingeführt und die fünf wichtigsten Probleme beschrieben, die gelöst werden müssen, damit zwei oder mehr direkt über eine Leitung verbundene Knoten Nachrichten austauschen können. Physikalische Verbindungsleitungenübertragen Signale. Deshalb müssen die Bits, aus denen sich eine binäre Nachricht zusammensetzt, am Queliknoten in das Signal kodiert werden. Am empfangenden Knoten m&s das Signal wieder in Bits urngewandelt werden. Das ist die Aufgabe der Kodierung, die durch die Notwendigkeit erschwert wird, dass der Sender- und Empfängertakt synchronisiert werden müssen. Wt haben vier Kdrmethoden - W ,MRZI, Manchester und 4W5B - beschrieben. Sie unterscheiden sich grö%tenteilsdarin, wie sie Taktinformationen und die zu tlbertrqenden Daten kodierea. Ehes der wichtigsten Attribute einer Kodiermethode ist ihre Effizienz, d.h. das Verhältnis zwischen Signalimpulsen und kodierten
-
Bits. Um Bits zwischen Knoten zu übertrageh, müssen diese Bits im nächsten Schritt in Frames verpackt werden. Das ist das Problem der Frame-Erzeugung, das im Wesentlichen darin besteht, dass Frame-Anfang und -ende erkannt werden müssen. Wiederum haben wir verschiedene Techniken - byte-orientierte, bitorientierte und taktbasierte Protokolle beschrieben. Unter der Annahme, dass jeder Knoten die in einem Frame enthaltenen Bits erkennen kann, muss im dritten Schritt ermittelt werden, ob diese Bits korrekt sind oder möglicherweise bei der Obertragung verfälscht wurden. Das ist die Aufgabe der Fehlerkorrektur, für die wir drei Methoden behandelt haben: zyklische Redundanzprüfung (CRC), zweidimensionale Parität und Prüfsummen. Von diesen Methoden bietet die CRC die höchste Gewähr und wird auch auf der Sicherungsschicht am häufigsten angewandt. Da einige beim Zielknoten ankommende Frames Fehler enthalten können und daher verworfen werden, lautet die nächste Aufgabe, wie man solche Fehler beheben kann. Das Ziel ist dabei, die Verbindungsleitung zuverlässig erscheinen zu lassen. Die allgemeine Lösung ist ARQ. Sie umfasst die kombinierte Verwendung von Bestätigungen (ACK) und Timeouts. Wir haben drei spezifische ARQ-Algorithmen beschrieben: Stop-and-Wait, Sliding-Window und gleichzeitige logische Kanäle. Interessant an diesen Algorithmen ist, wie effizient sie die Verbindungsleitung nutzen. Die letzte Aufgabe ist fiir Punkt-zu-Punkt-Verbindungen nicht relevant, bei Mehrfachzugriffsverbindungen aber ein zentraler Punkt: Wie soll der Zugriff auf eine gemeinsame Verbindungsleitunggehandhabt werden, damit alle Knoten irgendwann Gelegenheit erhalten, ihre Daten zu übertfagen. Hier haben wir drei Medienzugriffsprotokolle - Ethernet, Token-Ring und drahtlose Ubertragung beschrieben, die in lokalen Netzwerken (LANs)verwendet werden. Diese Technologien haben gemeinsam, dass die Kontrolle über das Netzwerk auf alle daran ange-
-
146
1
2 ~ r b h i d u n g s n ~
schlossenen Knoten verteilt wird. Es besteht keine Abhangigkeit von einer zentralen Zugriffsregelung. Abschließend wurde in diesem Kapitel festgestellt, dass die meisten Algorithmen, mit denen sich diese fünf Aufgaben lösen lassen, in der Praxis in einer Netzwerkkarte implementiert werden, über die der Host an die Verbindungsleitung angeschlossen wird. Wir haben festgestellt, dass das Design dieses Netzadapters. für die Leistung des Netzwerks insgesamt von entscheidender Bedeutung ist.
Eine der wichtigsten Fragen beim Design eines Computersystems lautet: was gehört zur Hardware und was zur Software?« Bei Netzwerken bildet die Netzwerkkarte den Mittelpunkt dieser Frage. Warum wird beispielsweise der in Abschnitt 2.6 beschriebene Ethernet-Algorithmusvorwiegend in der Netzwerkkarte implernentien, nicht aber die in späteren Abschnitten behandelten Protokolle der höheren Ebenen? Es ist sicherlich möglich, die Netzwerkkarte mit einem universellen Mikroprozessor auszustatten, um die höheren Protokolle, 2.B. TCPAP, dorthin zu verlagern. Der Grund dafüt; dass dies normalerweise nicht gemacht wird, ist kompliziert, hat insgesamt aber mit gutem Haushalten der Ressourcen eines Computersystems zu tun: Der Host-Prozessor ist normalerweise der schnellste Prozessor in einem Computer. Es wäre eine Schande, ihn auf einen langsameren Adapter-Prozessor warten zu lassen, um 2.B. TCPLiP auszuführen, wenn er das selbst viel schneller erledigen könnte. Andererseits gehören bestimmte Protokollverarbeitungen zum Netzadapter. Die allgemeine Faustregel lautet, dass jeder Verarbeitungsschritt, für den ein gegebener Prozessor mit der Geschwindigkeit der Verbindungsleitung Schritt halten kann (ein schnellerer Prozessor würde also die Lage nicht verbessern) ein guter Kandidat für die Auslagerung auf die Netzwerkkarte ist. Anders ausgedrückt: Eine Funktian, die im Gegensatz zum Host-Prozessor bereits durch die Geschwindigkeit der Verbin: dungsleitung beschränkt ist, könnte effektiv im Netzadapter implementiert werden. Historisch gesehen war die Frage, welche Funktionalität zur Netzwerkkarte und was zum Host gehört, schwierig zu beantworten, und sie löste einiges an Forschung aus. In modernen Systemen ist in der Regel die MAC-Schicht und alle Schichten darunter in der Netzwerkkarte enthalten, während die IP-Schicht und alles darüber vom Host übernommen wird. Interessanterweise erhebt sich nun aber die gleiche Debatte in Bezug auf den Aufbau von Switches und Routern. Die Frage, wie viel Hardware-Unterstützung oberhalb der MAC-Schicht erforderlich ist, wird uns in den nächsten beiden Kapiteln beschäftigen.
U n a W q i g davon, welche Protokolle genau im Netzadapter implementiert wer-
den, finden die Daten im Allgemeinen ihren Weg zum Host-Prozessot Die Effizienz, Daten dabei zwischen dem Netzadapter und dem Speicher des Compuwerden, ist äußerst wichtig. W i r wissen aus Abschnitt 2.9.4, dass Speireite die Rate, in der Daten von einer Speicherstelle zu einer anderen werden können - generell die Leistung eines Rechners der Workstationbegrenzt. Ein ineffizienter Datentransferrnechanismus zwischen Host und adapter kann folglich die von den auf dem Host laufenden AnwenE ~ p r o g r a m m e nerwartete Durchsatzrate stark einschränken. Erstens muss die [~ntscheid- getroffen werden, ob sich DMA oder PI0 besser e i m t . Te nach
-
!Durchsatz zwischen Anwendungen zu verbessern.
;W&
Jahre später berichteten Bogigs, M~ und KGnt (1988)über ihre praktischen ~~ mit Ethemet und entlarMen viele Mythen,die im Lauf der Jorhre ihren 'weg in die Literanu gefunden hatten. Beide Arbeiten gelten als Pflichtiktüte. Die isritte und vierte Arbeit behandeln Fragen zur Integration von Hochgeschwindig'kits-Ncawerkkart~nin S p d r e .
F,
-I m s , D., Mogul, J. und Kent, C.: Measwed Capacity of an Ethemet, Procee&ugs of tbe SlGCQMM '88 Symposium, S. 222-234, A m s t 1988. j
I Drudel, P., Abbat, M., Pagels, M. und Peterson, L. L.: Necwork subsystern design, IEEE N d w w k (Special I s w on End-System Support for High Speed Nelituorks), 7(4), 8-17, Juli 1993.' Es gibt zahlreiche Fachbiicher mit Schwerpunkt auf den niedrigeren Ebenen der Nedierarchie, insbesondere im Bereich der Telekommunikation, also Vernetzung aus Sicht von Telefongesellsehaften. Die Bücher von Spragins u.a. [SHP91] sowie . Minoli [Mim933 sind zwei gute Beispiele. Viele weitere Bkher konzentrieren sich auf vewhiederye LAN-Technologien, von denen das umfassendste von Stallings [Staoob] ist, während Jain Uai941 eine ausführliche Beschreibung von FDDI liefert.
* - .
14ä
1
2 üirektverbindungsnutmerke
Jains Buch enthält auch eine Einfihmg in die unteren Ebenen der optischen Datenübertragung. Aderdem wird FDDI zusammenfassend in einem Artikel von Ross [Rost361 beschrieben. Einen guten Einstieg in die Informationstheorie bietet Blahut [ bahnbrechende Arbeit über die Kapazität von Verbindungsleitungen von Shanaon (Sha481. Für eine allgemeine Einfiibrung in die Mathematik von Fehlercodes empfiehlt sich Ra0 und Fujiwara [RF89]. Die Mathematik hinter CRCs sowie weitere Informationen über die für deren Berechnung benutzte Hardware wird von Peterson und Brown behandelt [PB61]. Ober das Design von Netzwerkkarten wurden Anfang der neunziger Jahre viele, Arbeiten von Forschern über Versuche veröffentlicht, Hosts an immer schneilere Netzwerke anzuschließen. Abgesehen von den beiden Beispielen in der obigen Liste sind folgende Autoren zu nennen: Traw und Smith m93], Ramakrishnan fRam931, Edwards u.a. [EWL+94], Drusche1 u.a. WPD941, Kanakia und Cheriton [KC881, Cohen u.a. [CFFD93], und Steenkiste [Ste94a]. In letzter Zeit kommt vermehrt eine neue Generation von Netzwerkkarten mit so genaqnten Netzwerk-Prozessoren auf den Markt. Spalink et al. erklären, wie diese Prozessoren p r o g r d e werden ~ können, um unterschiedlicheNetzwerkfunktionen übernehmen zu können [SKPGOl]. Das hervorragende Buch von Hennessy und Patterson W 2 1 enthält allgemeine Grundlagen der k~m~uterarchitektur. Schlief3lich empfehlen wir die Durchsicht laufend aktualisierte unter: httpd/standards.ieee.orgl über den Status verschiedener IEEE-Netzwerk-Standards.
1. Geben Sie die NRZ-, Manchester- und NRZI-Kodierung für das in ~ b b 2.46 : dargestellte Bitmuster an. Gehen Sie davon aus, dass das NRZI-Signal auf low beginnt,
'
' .
C k b Sie die 4BBB-Kodiedie fuigende Bitfolge an:
imd das sich daraus q b e n d e NRZI-Signal "r
1110 0901 0000 W11
.Geben Sie die 4FV53-~dierungund das sich daraus ergebende NRZI-Signal für die folgende bitfolge an: 1101 1110 1010 1101 1011 1110 1110 1111
110101111101011111101011111110
Markieren Sie die gestopften Bits.
110101111101011111w10111110110
,:,.gestopfte Bits entfernt wurden. Weisen Sie auf möglicherweise in den Erames ejAg;efühpeFehler hin,
011010111110101001111111011001111110 Y 1
Geben Sie den sich daraus ergebenda Frame an, nachdem eventueil vorhandene gest~pftcBits entfernt wurden, Weisen Sie auf möglicherweise in den Frames clligeführteFehler hin.
i!&Sie m6ehten mit Hiife des Frame-Protokolis BISWC Daten senden. Die lernten 2 Byte Ihrer Daten sind DLE und ETX. Welche Byte-Folge müsste unmittelbar vor der CRC übertragen werden?
. 9. Nennen Sie für jedes der fol6enden Frame-Protokolle ein Beispiel einer Byte-Bitfolge, die nie in einer übertragung erscheinen sollte.
*
10. Ein bestimmter SONET-Empfänger synchronisiert seinen Takt jedes Mal neu, wenn ein 1-Bit ankommt. Andernfalls tastet er das Signal in der Mitte dessen ab, was er für den Zeitschlitz des Bits hält. a. Welche relative Genauigkeit des Takts von Sender und Empfänger ist erforderlich, um 48 Null-Bytes (den Gegenwert einer ATM-AALS-Zelle) hintereinander korrekt zu empfangen? b. Eine über eine SONET-STS-1-Leitungweiterleitende Station A empfängt Frames von B am Downstream-Ende und überträgt dann erneut in UpstreszmRichtung. Welche relative Genauigkeit des Takts von A und B ist erforderlich, um A daran zu hindern, mehr als einen zusätzlichen Frame pro Minute anzuhäufen?
11. Zeigen Sie, dass die zweidimensionale Parität alle 3-Bit-Fehler erkennt. 12. Geben Sie ein Beispiel eines 4-Bit-Fehlers, den die zweidimensionale Parität (siehe Abb. 2.16) nicht erkennen würde. Unter welchen aligemeinen Umständen würden 4-Bit-Fehler unerkannt bleiben? 13. Erklären Sie, dass die zweidimensionale Parität dem Empfänger ausreichend Informationen liefert, um einen 1-Bit-Fehler (unter der Annahme, dass der Empfänger weif3, dass nur 1Bit fehlerhaft ist), jedoch keinen 2-Bit-Fehler zu korrigieren. 14. Erklären Sie, dass die Internet-Prüfsumme nur OxFFFF sein kann (d.h. der endgültige Wert der Summe ist nicht OxOOOO), wenn jedes Byte im Puffer 0 ist. (Interna-Spezifikationen setzen tatsächlich voraus, dass eine Prüfsumme von 0x0000 als OxFFFF übertragen wird. Der Wert 0x0000 wird damit für eine unterlassene Prüfsumme reserviert. Beachten Sie, dass bei der EinerkomplementArithmetik sowohl 0x0000 als auch OxFFFF die Zahl 0 darstellen.) 15. Zeigen Sie, dass die Berechnung der Internet-Prüfsumme, die im Kapitel beschrieben wurde, unabhängig von der Byte-Reihenfolge ist (beim Host oder beim Netz), mit Ausnahme des Falles, dass die Bytes in der letztlichen Prüfsumme erst später in die richtigen Reihenfolge gebracht werden. Zeigen Sie insbesondere, dass die Summe von 16-bit I n t e g e d e n in jedweder Byte-Reihenfolge Berechnet werden kann. Wenn z.B. die Summe der 1-er Komplemente (als + dargestellt) von 16-bit Worten als [A,B] +' [C,D] +' +'[Y,Z]
...
dargestellt ist, so ergibt die folgende invertierte Summe den gleichen Wen:
Aagen.omrncrn, e h Byte in dem durch den I n ~ e t - P & ~ & & h u s fal,qedsIrsmMfa mues &kreinea8ert werden (zbein Hcader-Fe14 das die Hops zahlt). Nennen Sie einen Algorithmus ZLU B e d u n g der revidierten Prüfsumme, jedoch ohne erneutes ScaMing des gesamten Puffers: Ihr Atgorithmus solite beachten, ob sich das fragiiche Byte in low oder high order befindet.
Zeigen Sie, dass die Inmet-Prüfsumme wie folgt bawbet werden kam: Man b c c b e t zunächst die 32-Bit-EUler~ornplementsumme deg in 32-Bit-Einheiten 'Mgeteilten tenerv, bildet daab die 1 6 - B i t - ~ k o m p l e m e n t s aus ~ e den beiden Hdlwvoiten des Ergebnisses und fühtc dann noch eine Kompiementierung dieser 16-Bit-Summe durch. (Umeine 32i~it-Summedes Einerkomplements mit einer auf 32-Bit-Zweierkomplement basierten Hardware zu verwenden, bentitigen Sie Zugriff auf das ~überlaufbitu .) Sie wallen die Nachricht 11001001 übertragen cmd sie mit H i e des CRC-Polynoms x3 + 1vor Fehlern scbiaen. a. Verwenden Sie die lange Polynom-Division, um die zu übertragende Nachricht zu ermitteln.
b. Nehmen Sie an, dass das höchstwemge Bit der Nachricht durch Rauschen in der Verbindungsleihing umgedreht wurde. Wie lautet das Ergebnis für die CRC-Berachnung des Empfangers?Woher weiS der Empfängeq dass ein Fehler vorgekommen ist? Sie wollen die Nacbncht 1011001001001011 übertragen und sie mit Hilfe des CRC-8-Polynoms x8 + x3 + 2+1vor Fehlern schützen. a. Verwenden Sie die lange Polynom-Division, um die zu übertragende Nachtiekt zu ermitteln.
b. N e b e n Sie an, dass das höchstwertige Bit der Nachricht durch Rauschen in der Verbindmgsleinuig umgedreht wurde. Wie lautet das Ergebnis für die CRC-BerechniUi8 des Empfängers? Woher weiß der Empfänget, dass ein Feh, ler aufgetreten ist? , Der in
diesem Kapitel dargesdte CRC-Algorithmus benötigt umfaqpiche Bit1 mriipulationea Es ist aiiadrngS möglich, eirte polynomische l a n e Division mit jeweils mehreren Bits &ichzeitig dwc-n, und zwar ü k eine tabellengesteuerte Methode, die effiziente Softwareimplementiemgen von CRC erlaubt. Die lange Division umfasse hier 3 Bits auf einmal (siehe Tabelle 2.6). In der M s wiriden wir je 8 Bits dividieren, und die Tabe& hatte 2.56 Eitriige. Sei das DivisoycPolymm C = Cfx) = 2 + 2 + 1 oder 1101.Um die Tabelle für C msammenzuste~hängen vPir' drei Nullen an das Ende jeder 3-Bit-Folge p an.
Dann ermitteln wir den Quotienten q = p 000 + C, wobei wir den Rest igno* ren. Die dritte Spalte ist das Produkt C X q, dessen eme 3 Bit gleich p sein soHta$, a. Verifizieren Sie für p = 110, dass die Quotienten p " 000 + C und p " 11 1 + C gleich sind. Die nachgezogenen Bits spielen also keine Rolle. b. Tragen Sie die fehlenden Einträge in die Tabelle ein. C.
Teilen Sie mit Hilfe dieser Tabelle 101 001 011 001 100 durch C. Hinweist Die ersten 3 Bit des Dividenden sind p = 101. Folglich sind die entsprwhenden ersten 3 Bit des Quotienten aus der TabeUe q = 110. Schreiben Sie llg.' oberhalb der zweiten 3 Bit des Dividenden und subtrahieren Sie C x q = 101 110, wiederum aus der Tabelle, von den ersten 6 Bit des Dividenden. Fahren. Sie so in Gruppen von je 3 Bit fort. Es sollte kein Rest übrigbleiben.
Mit einer 1-Bit-Parität können wir alle 1-Bit-Fehler erkennen. Beweisen Sie f& die folgenden Fälle, dass eine Generalisierung fehlschlägt: code e = e(m) mit einer Grö%evon 2 Bit, der alle 2-Bit-Fehler erkennt. Hinweis: Berücksichtigen Sie die Menge M aller 8-Bit-Nachrichtenmit einem ein. zigen 1-Bit-Fehler. Beachten Sie, dass eine Nachricht aus M mit einem 2-Bit- ' Fehler h jede andere umgewandelt werden kann und zeigen Sie, dass ein bcliebiges Nachrichtenpaar ml und mz in M den gleichen kehlercode e haben muss. b. Ermitteln Sie ein (nicht unbedingt minimales) N, sodass kein auf N-BitBliicke angewandrer 32-Bit-Feblererkennungscodealle Fehler, die bis 2u 8 Bit ändern, erkennen kann. Gegeben sei ein ARQ-Protokoll, das nur negative Bestätigungen (NAKs), aber keine positiven Bestätigungen (ACKs) benutzt. Beschreiben Sie, welche TirneoutWerte gesetzt werden müssten. Erklären Sie, warum ein ACK-basiertes Protokoll einem NAK-basierten Protokoll normalerweise vorzuziehen ist.
a. Berechnen Sie für diese Verbindungsleitung die Ausbreitungsverzögerun unter der Annahme, dass die L i c h ~ h w i n d iin~ dcr t Glasfaser 2 X 10f d s
'
'I' . C. W -
könäte der Timer des ARQ-Aigor'ithmus mit diesem Tmeour-Wen
&%Ne entwuifen ein Stiding-Window-Protokd für eine hmkt~zu-huikt-Leimg : an& 1 Mbitts zu ni stationiben Satelliten, der die Erde in 30.000 km Höhe ~.1'4mdcrci.st.Angen~mmen,jeder Brame f6h-t D e n M Umfang von 1KB; Wie dele Bit brauchen Sie in den folgenden Wien mindestens für die Sequenznummem? (Die Lichtgeschwindigkeit beträgt 3 x 108d s . )
24. h Textteil wurde gesagt, dass das Sli6Üng-WnAnw-Protokoll für die Implemtntierung der Flusskontroile benutzt werden kann. Wir könnten dies dirdurch realisieren, dass wir den Empfänger ACKs verzögern lassen. Das heißt, er sendet : das ACK erst, wem Pufferplatz fiir den nächsten Frame frei ist. Dadurch wiirde tr jedes ACK gleichzeitig den Empfang des letzten Frames bestatigen unsl der Quelle mitteilen, das jetzt F'ufferplatz für den nächsten Frame wdügbar ist.
Erklären Sie, warum diese Art-der Implementierung der Flusskontrolle keine 27. Die Stop-and-Wait-Szenarienin Abb. 219 implizkren, dass der Empfänger sein „ ACK unmittelbar nach &halt des doppelten Daten-Frames erneut überträgt. Nehmen Sie stattdessen an, dPse det Empfänger seinen eigenen T i r führt und sein Am,erst erneut wenn der nächste erwartete Frame nicht h e r M des Tiout~EMomaiisankommt. Zeichnen Sie Zeitstrahlen für die Szena, r h von Abb. 2.19 (b) (6).Geben Sie davon aus, dass der Twneout-Wert des , Empfängers doppelt so hoch wie der des Senders ist. Zeichnen Sie a&rdem (C) neu unter der Annahme,.#ass der 'i'iieout-Wert des Empfängers halb so hoch wie der des Senders ist.
-
28. i Sender als auch der Empfänger erneut ' Beim Ctop-and-Wair iiberuägt s o ~ o hder jeweils seinen letzten Frame unmittelbar nach Erhalt eines Duplikats (ACK oder
1
154
2 Di~erbindungsnetzwerke
Daten-Frame). Diese Strategie ist auf den ersten Blick angemessen, weil der Empfang eines solchen Duplikats höchstwahrscheinlich bedeutet, dass bei der anderen Seite der T i e r abgelaufen ist. a. Zeichnen Sie einen Zeitstrahl der Ereignisse, wenn der erste Daten-Frame irgendwie dupliziert wird, aber kein Frame verlorengeht. Wie lange dauert das Duplizieren an? Diese Situation nennt man W Sorcerer's Apprentice B U l.~ ~ b. Angenommen, ACKs werden wie Daten erneut übertragen, wenn innerhalb des Timeout-Intervalls keine Antwort ankommt. Beide Seiten verwenden das gleiche Timeout-Intervall. Arbeiten Sie ein entsprechendes Szenario aus, um den Smcerer's Apprentice Bug auszulosen.
29. Beschreiben Sie, wie man Flusskontroile in das Siiding-Window-Protokolleinbinden kann, wenn ACKs zusätzliche Informationen enthalten, durch die sich die SWS reduziert, sobald dem Empfänger der Pufferpiab ausgeht. Belegen Sie - fhr Protokoll mit einem Zeitstrahl für eine Obertragung. Der anfängiiehe SWS; und RWS-Wert sei 4, die Leitungqpchwindigkeit unendlich, und der Empfänger könne Puffer in einer Rate von lhekunde freigeben (d.h. der Empfänger ist der Flaschenhals).Erläutern Sie, was in T = 0, T E 1, T = 4 Sekunden passiert.
...,
30. Beschreiben Sie ein Protokoll, das den Siiding-Window-Aigorithmusmit selektiven ACKs kombiniert. Ihr Protokoll solte prompt neu übernagen, jedoch nicht, wenn ein Frame lediglich um eine oder zwei Positionen auf3er der Reihe ankommt. Es sollte aaußerdem eine MaBnahme für den Fa11 fesrlegen, dass mehrere aufeinander folgende Frames verlorengehen.
31. Zeichnen Sie ein Zeitstrahldiagramm für den Siiding-Window-Aigonthmusmit SWS = RWS = 3 Frames für die beiden folgenden Situauonen. Verwenden Sie ein T i t - I n t e r v a l l von etwa 2 X R n .
7
a. Frame 4 gebt verloren.
b. Frames 4 bis 6 gehen verloren. J 32,Zeichnen Sie ein Zeitstrahldiagramm für den Slidhg-Wiidm-Algorithmus mit SWS = RWS = 4 Frgmes für die beiden folgenden Situationen. Nehmen Sie an,
dass der Empfänger Duplikate der ~ m ~ f a n ~ s b e s d t i gverschickt, un~ wenn er nicht ;den emkteten Frame erhält. Z. B. wird er DUPACK[23 senden, werin er FRAME[2] erwartet, jedoch FRAME[3] erMt. Aderdem sendet der Empfänger eine Sammdbostätigung, wenn er alle Frames erhalten hat: Z. B. sendet er 1. Anm. d. Obers.: Ein Protokoiifehleq bei dem der Empfang einer Nachricht unter gewissen Umständen diini fdhrt, dass mehrere Nachrichren gesendet werda? die bei Empfang jeweils den gieichen Fchiei auslösen. Die ~ c k n u n ist g eine Aolehnung an u i t h e s ~Zauberlehriingu
.
1 .
F
M 1 u I W S
I.~haQSJ,wenntrden
FRAMEP]erhäit nachdem OE die Fra-
il
m e [3], ~ [4] und [e] bereits e d d t m hat. Verwenden Sie ein Tiut-Intervall von etwa2xRTT.
,
;T
.
3L
.f
2, I'
,
#
,
-
.
. '
.
der Switch keinen Durchsatz erzielen, der höher als die Leitungsgeschwindigkeit dieses Ausgangs ist. Ein Switch könnte aber den in voller Leitungsgeschwindigkeit an allen Eingängen ankommendenVerkehr bewältigen, wenn er sich über alle Ausgänge gleichmäßig verteilt. Das wäre die optimale Situation. Als weiterer Faktor wirkt sich die Größe der an den Eingängen ankommenden Pakete auf die Leistung von Switchen aus. Bei einem ATM-Switch -ist das normalerweise kelne fraggt, weil alle ~Paketeu(Zellen) gleich lang sind. Bei Ethemetdwitchen oder IP-Routern sind demgegentlber Pakete in verschiedenen Größen möglich. Manche der von eihem Switch durchzufUhrendenOperationen verursachen einen konstanten Overhead pro Paket, sodass ein Switch höchstwahrscheinlich eine unterschiedliche Leistung erbrins je nachdem, ob alle ankommenden Pakete sehr kurz, sehr lang oder gemischt sind. Aus diesem Grund werden Router oder Switche, die Pakete mit variabler Länge weiterleiten, oft nach der pps-Rate (pocket per second) sowie einem Durchsatz in Bit pro Sekunde charakterisiert. Die pps-Rate wird normalerweise in Paketen minimaler Größe gemessen. Als erstes fällt einem bei dieser Beschreibung auf, dass der Durchsatz des
,
'
"
Y
,
, sind %i&~~ahri%" lrhd ditl im* gleich? Kommunikationstechriik durch eine rapide Wuüm gekennwicbnetFast über NadrYWYieine mue Anwendung wie das W@WWideW b die Verkehrs wränger 1st.&eQC@ss die effektive Modeft3eieing von ~ e c h n e h n 6jigiM gibt e s ' e i ~ ~ ' & ~ @ kBUehtor d e und Ektikel zu Q m , n e r n a ~s'N?"he:~iteraturhin~e am €n&"&ses ~apitek). Abgesehen von der Schwiertgkeit, gute Verkehmhodelle a l u m i n , ist ~onkurrenzbetriebeines der gvoßten ProMeme bei der E t f f w i m g eines Switghes. Das obige Bejspiel (den gesamten Verkehr an den gleichen Ausgang zb;wd~) verdeutiiht d~eKonkurientum einen Ausgang. mese &@derKonkwmr lhst SjCh kaum vermeid= Man kann einfach nicht mehr Verkehr in eine Ausgangsleitung ssropfenu als diese fassen kann. Die meisten WtchDesigns sind aber auch in gewissem Umfang einer internen Konkurrenz ausgeseta. Der Mnkurrennimfang unter verschiedenen Verkehnlasten bestimmt $O~'histungdes Swltch. W eine Umstdung von dem Bereich des Durchsattesni geben, über den sicK Designer Gedanken machen müssen, betrachte man einen Router im oberen leistungsbereich, wie er derzeit im Internet eingesetzt wird Er unterstützt beispielsweise 10 OIC-1 92-Leitungen mit einem Durchsatz von ca. 100 CbiVs. Manbeachte, dass ein iOO-Gbit/s-SWh, der einen konstanten Srrom von 64~ ~ w h k e t bearbeiten en Al, eine ppsaatte von @&W
I
L
T
=
.
100~1~bi~s+(blx8bii/~aket)=195~10~~~s
wfiyeisen müsste.
r C b & p ~ & f n szum Zum-ribetntt-Atisdhfussso m .:I.
~ nicht mehr ~ trefft%. &
-
,*:&;&$&&*~E
'
-
' s o ~ i w - 8 o i e & r i a 3~.28.. Sie R e u boiiZE2Ewgm@-Pwts sowie einem 3 ~ a ~ dk es 'mfnd&ms einen Stetretprbzwo< der für hi h i& und dcr7dikd+toder via S c h a l m k d t den Ports Werum k a m mit d u AuSenweit. Sie k O m Wffm @P' &I 2 W v h Paketen 'iktdi-o Me&e adeset &&dmfqen b e U 1 t m ~Das dbb e i k t f a & t , . @ ' i + k & k . & ~ ~ , ~d ihm ein Palnt ear'
MDie Putrs h a b dabei unter amkem & Aufgabe, .die Kmp1exidt &-reden eiac relativ einfache Aufgabe .Welt d e m zu bewäkigm, dass dds :&W$- Ciwitdh t d h u n t ~ d ein & ~ ~ ~kapri.t N : w nW b&s@&sat& Kmnmdarionsmodell mit vimieUeti Leitungen. h Mgemeinen enthalten die i.
t
Ports &ch die Ta* mit den Verb* {VC& d* in A W a 3.12 beschhlimstr=-
'"
der vimdlen Leiverwalten T~~beaen &
mws, Er kvb 7 ! K ? u d dami EntPPeadejr cwq?Rdmd,indang. i B m ~ S t e u ~ o r m a a O n e n ~ b e t & das Pale;et a d b g t (49.die Nummm ehes A--Pm), &mit das m&BCiqlt Arbeit o u m verzichten kann. Die so arbeitendenSchg geito3i als *&gaw m s i d w i a (selfim&&, weil sie für dsrs Weitetleiten von Psrlreran keine externe Steuerung benötigen. Ein Beispiel für ein eigenvermitteindea Schab netzwerk wird im Folgden besprocha i h r Eiags-Port ist die erste Stelle, an der man Leisttupq@sw vorfindet. &4 muss e h &Sem YQR P b n empfangen, Xnfamatiaon im ciaas je& amlygicpea, um den bm. die richtigen-IgwgaqpPorts& b .Pdcq&q mnittein,.und das Paka an das d a s k weitmgebn. Welche Heia& baiyse im l b d a l i d&&&t wird; ,reichvon einer einfachen Taimfl
demameliF**
maWw-& ' e P ~ O & ~ ~ ~ Z l u n B e i s ~ 64-BpPaktte, & X - 4 8 - Z c m .n&m Por& w e n , mit Rate von
i
immrbcitet werden, AGt a n b WoYksm klebe Palme mit maximaier Rate &eser Leimg eintreffen (das ist Bgr W ~ - C a = ,ä d den die meisren Ports aus,so hat der FiuiganpPmt etwa 200 Nanosdcuncten zur Verarbeitung 9mr r
-. i
ve-
weitere d t i g e Rdctiom von Ports ist die Zwisehaqxichemuig (btrffk#$& Diese . kam mobc h alsmch irn Ausgangs-Pmerfoken. Sie kann r
U
'&'innerhalb S c h a t l m e ~ k sstattfinden. Im letzten Fail n-t man sie &&meZ w b c h e - g . l b h c h e ~ g s p u ~ c n i umefliegt ng einigen b e b . @&denEinschränkungen, StelIen Sie sich einen Eingangspuffer vor, der als FIFObaut ist. Pakete kommen beim Switch an und werden in den r gestdt. Der Switch versucht dann, die Pakete vom Kopfende jeder l@OSfhlange an den entspechden Ausgangs-Port weiterzuleiten. Sind die &!WO am Kopfende mehrerer Eingangs-Ports aber gieichzeitig für'den gieicben &wgmgs-Port bestimmt, kann nur eines davon übermittelt werden;4 der Rest muss +a &&gen Ehgmgspuffer bleiben, : Dies hat vor allem dem Nacht& dass die am Kopfende des Ziqpngspuffers verw b d e n Pakete andere P a k a weiter hinten im W e r daran hindem, ihre Ausmögiichst schell zu erreichen, a d wenn um diese Ausgänge m o m m picht konkurriert wird. Dieses Phihomen nennt nian Hwd-af-L&-BlocRlng. Ein / a a c h e s Beispiel dieser Blockierung wird aus Abb. 3.29 emichtlich. Dabei wird e h & Port 1 bestimmtes Paket d d ein für Port 2 wtehendes P& blockiert. Folauf die Ausgänge de Aussage kann man beweisen: Wenn Verkehr giei-g E " t ist, reduziert das ~ e a d - o f - ~ i n e ~ ~ 1 oden c k i~urchsatz n~ Gnes Switch mit Einauf 59% des theoretischen Maximums (welches die Summe der Banddes Switch ist). Folglich nutzen die meisten Switche entweder &e reine Ausg~~zwischenspeichenuig oder eine Mischung aus i n t q e r und Ausgmgszwisctaenspsicherung. Diejenigen, die Eingangspufferung verwenden, benötiausgefeilte Speichenrerwaltungsroutinen,um das Head-of-Line-Blocking zu ver-
m&i«i.
Grunde geht der Aufgabenbereieh von Pu#fern über das Zwisehempeicheni von Paketen* die aid ihre Obemagumg warten, hinaus. Puffer stdm die Hauptmde fiir Verzögerungen in einem Switch daL Hier ist auch die Wahrschebdkhkeit am 4. Bei einem ehfachen Switch mir E i i u f f e rkam jeweils ein Paket an einen bestimmten Ausgangs-Portgesendet W & . Man Itiaaa &er Swkbe entwickeln, die niehr als ein Paket giicbzeitig an dcn glelJlGa Ausgang leiten k ~ m e nDadurch . erhobt sich natiirIich die Komplexität des Switch. hu&rdem besteht hhsichtiich der Anzahl von Paketen mit gieiehem Ausgangs-Portimmer eine Obergrenze. '
3:
87)
;
-
216
1
3 PqWwcmnltthurg
größten, dass Pakete verloren gehen, weil kein Platz zum Zwischenspeichern vorh d e n ist. Die Puffer sind daher die entscheidende Stelle, an d a die von einan Switch gebotene Dienstgiite bestimmt wird. W& ein bestimmtes Paket beispielsweise Eber einen VC gesendet, für den eine garantierte Verztigenmg bcs, die er an seine Nachbarn sendet, um C& Gruppen erweitert, an deren Empfang von Multicast-Paketen das Blattnerzww&, interessiert ist. Diese Information kann dann von Router zu Router weiter propagiert -den, sodass ein Router für jede seiner Verbindungsleitungen wes, fiir d che Gruppen er Multicasr-Pakete weiterleiten soll. Man beachte, dass die Einbeziehmg all dieser Informationen in die RoutiqJ . Aktualiiierung ein relativ aufwändiges Unterfangen ist. Deshalb werden diese Inf* mationen in der Praxis nur ausgetauscht, wenn eine Quelle damit beginnt, Pakete B f ) > diese Gruppe zu senden. Anders ausgedrückt: RPB wird benutzt, weil dadurch dn?l grundiegende Distanzvektor+Aigorlthmusnur um einen geringen Overhead e r h w . wird, bis eine bestimmte Multicast-Adresse aktiv wird. An diesem Punkt meldessich die Router, die nicht am Empfang von Paketen für diese Gruppe interdsiert sind, und diese Information wird an die übrigen Router propagiert.
-
4.4.3 ProtokollunabhangigesMuEtieast (PIM) PLM wurde als Reaktion auf die Skaiierungsprobleme existierender Multicast-Rap ting-Protokoiie entwickelt. Vor allem erkannte man, dass die existierenden Prkolle nicht gut in Umgehungen skalieren, in denen ein relativ kleiner Anteil der R& ter Verkehr für eine bestimmte Gruppe empfangen möchte. Das Broadcasring W: Verkehr an alk Router, bis diese ausdrückiich dazu auffordern, vom Verteiler ent+ femt zu werden, ist 2.B. kein geeignetes Design, wenn die meisren Router
derr Verkehr nicht cmphgen wollen. Diese Situation tritt häufig genug PIM d a Problemratta~in nSpamse-* uud *Dolase-Mo&* aufwdt. Da sicb Protokolle schlecht b die Sparse-Umgebung eignen, 'wurde dem . P Mviel A + r W & gewidmetZund unsere Beschreibung in parse-Moder (PM-SM) benutzen die Ra- sa genannteJoin- uad des ~~Protolcolils, um einer Multiast&ppe ausdrücklDc'b bzw. sie ZU ver1asgen. Di interessante Fragt ist nun, wohin sie diese senden. Als Lösung weist PIM jeder Gruppe einen Rendemolrspuffkt hrere Router in einer Domain als Kandidaten für eine Reihe .von Prozeduren, mit denen alle RouDomain sich auf den Routtr einigen kSnnen, der als RP far ehe bestimmte benutzt werden soii. Diese Prozeduren sind eher komvlex, - - weil $ie viele verAusfall eines -eilen RP und 'Tetzwerke auf Grund einer Reihe iamgsroder Knotenausfdlen. der restlichen PIM-Beschreibuag gehen wir dass aiie Rourer in einer Domain die Unicast-IP-Adresse des RP einer icast-Weiterleitungsbaum wird dadurch aufgebaut, dass Router Joinan den RP senden. PM-SM unterstützt die Bildung zwei= Baum-: nsamer Baum, der von allen Sendern benutzt werden darf, itnd ein quellenBaum, bei dem dies nur von einem spsziden sendendm Hosr aus der n o r d e u E e t r k M u s wird zuerst ein gemeinsamer Baum erzeugti $end wwden eher oder mehrere quellenspedkhe aufgebaut, falls a d c h c f i d V&& angebracht mckint. Da durch den Aufbau voiz n in den Routeni entlang des Baums ein Zustand wird, ist es wichtig, die Default-Lösung nur einen Baum & eine Gruppe und nicht einen für jeden mg d a RP e h r Gruppe G sendet, & mittels no& 1P-Eknicwt übmcagen. Dies wird aus ~ b b&.38(a) , deutb b e i der Rwrer R4 eine J d n - M e t an den hndapouspunkt einet bestimmL$&iGmppe &, hder aafämgkhem & i n + N ed e n *WrMfatdsa verwenb 4 h . sie tsiEEr a d d e h & e t zn,E h e Jai~-Nadui&muss w&irli& ciae Reihe Ruwern ciurdh* bevm de den RIL (%.B.R2j erreicht. jeder R a t e auf dem h&sich den J& an d erza~tfür den mmeksamen km den Eintraa Sender* bedeutet. Um diesen Ei& eht n sich das Interface an, über der Jdn aqpkonunen ist, und kennzeichnet es als dasjenige, über das er Dann bestimm er dYairE htdace, muss. Das ist dann spiiter das ein-abg&W M c e für & m d e P&& an diese Gruppe gesendet
Anwc~sichickterdenJolnzamRP.~&N~tkianRP ist die Iktu~n6 e ~I kW ~ ~i&iZdete ~ gemeinsame . Baum ist Bb. 4.38(a) ds durchgezogeneLinie vom RP zu R4 dargeaelit.
RP = Rendezvwspunki Gemeinsamer Baum Quellenspezifischer Baum für Quelle R1
----
Abb. 4.38: PIM-Operation: (a) R4 sendet Join an den RP und tritt dem gemeinsamen Baum bei; (b)R5 t& dem gemeinsamen Baum bei; (C) RP sendet M n an R1 und baut damit einen quellenspezifischenBaum zu Rl; (d) Mund RS d e n jeeinen Join an R1 und bauen damit einen quellenspezifischenBaum zu R1.
Jeder Mn, der von einem Router an den RP $es& wird, fügr elne 4meiguag eum Baum hinzu, wie aus Ab& 4.3qb) ewkhdkh wird dm der Join in diesan Fall nur m R2 f h d h rmsars,da dcn
dEn filP diese Gnr@pemteugbtn Ehtrag in der I7Wdei-aM k h w ntm e h W eine N a t a n die Gruppe scndog, mit der Adresse der emp&nden
M&---
*&2ida
Rorowtr (DR)lxM&ut, Aqijen-, der DR i i Abb. ~ 4.38 sei keinen -Zustand f& d h e Muhicasr-Grtigpe m e a ~ u i i nRa. Dgg Wt,Rl h w d a sM&-P&th
€~I&ss$-IF
an die Unieast-iP&hesse des W ssdn. Wte bei dem inAbdm& 4;l. nen Tirnnel-hdpwkt empd e RP ~ das aa ihn admdme Paket,
'
IF-P&et. DmRP W&? naturiich, was er mit einem solchen hat. Er es ü b dm.em-~Baum, dessen W-1 Ptsn*&rdemBeispielirrAbb.4.38b.deumdw, b dtrRPdasP&etan~
O:~~h3n~LPgeist,eapaR44W~t~,Diek~ Iliaakgdnes hlws von R3 bis R4 und Ri wird aus A b 4.39 ersichtlich. W n ~h.I%dt& oaf d e m Weg von E1 zum IPE? Dotx wird8- nttt einem ms~tzli-
-439: Übertragungeines Pakets über einen gemeinsamen Baum; R1 tunnelt das 1
gemeinsamen Baum an R4 und IR5 weiterleitet.
. . Punkt könnte man versucht sein, von einem Erfoig zu sprechen, da aiie auf diese Weise an alle Empfänger senden können. Die Kapselung und Entvon Paketen auf dem Weg zum RP führt aber zu einiger Ineffizienz hinc und Vertubeituag, s o d a der RP die Wahl hat, den dazwischenmehr Kenntnis über diese Gruppe zu geben, um das Tunnehg zu &n. Seine Entscheidung über das Wahrnehmen dieser Option basiert auf der in der Pakete von einer bednmten Q d e ank-. Nur wenn diese och ist, dass sich der Aufwandlohnt, tritt der RP in A k h . .In diesem Faii er eine Joh-Nachricht zum sendenden Host (Abb. 4,38(c)). Auf seinem Weg st dieser Join die Router auf dem Weg (M), von der Gruppe b u i i s zu nehmen, sodass der DR das Paket als »natives. (d.h. nicht getunneltes) Mdcast-Paket an die Gruppe senden kann. r Ein wichtiges Detaii soiize an diesem Pwnkt erwähnt werden: Die vom RP an den -den Host geschickte Join-Nachricht ist für diesen Sender spezifisch, während *-vorher von R4 und R5 gesendeten auf alle Sender zutreffen. Der neue Jdn hat Wxkung, in den Routern zwischen der identifizierten Queiie und dem RP senderspezifischen Zustand zu erzeugen. Das ist ein Zustand (S, G), der, weil &einen Sender an eine Gruppe beMfft, im Gegenzum Zustand (*, G) Aschen ;b Zhpfängern und dem RP installiert wurde und auf aiie Sender zutrifft. In Abb. %i%&(c) sehen wir folgiieh eine quellenspezifische Route von R1 zum RP (durch die .
T
S M 1 -4
gestrichelte Linie gekennzeichnet) und einen Baum, der für aiie Sender vom RP zu den Empfängern gültig ist (durch die durchgezogeneLinie gekennzeichnet). Als nächste mögliche Optimierung wird der gesamte gemeinsame Baum durch einen quellenspezifischen ersetzt. Das ist wünschenswert, weil der Weg vom send^ zum Empfänger über den RP wesentlich langer als der kürzestmögliche Pfad sein kann. Dies wird wiederum üblicherweise durch eine hohe Datenrate ausgelöst, die für einen Sender beobachtet wird. In diesem Fall sendet ein Router an dem von d a , Quelle abgewandten Ende des Baumes in unserem Beispiel R4 - einen quellenspch zifischen Join zur Quelle. Da die Nachricht auf dem kürzesten Pfad zum Ziel fli& erzeugen die Router auf dem Weg den Zustand (S, G) für diesen Baum. Das Ergebnis. ist ein Baum mit seiner Wuntl an dfQuelle und nicht beim RP. Wenn R4 und 89 auf den quellenspezifischen Baum wechseln, erhalten wir den in Abb. 4.38Id) dargestellten Baum. Man beachte, dass RP in diesem Baum überhaupt nicht mehr einbezogen ist. Wir haben den gemeinsamen Baum der Einfachheit halber aus grarnm entfernt. In Wirklichkeit müssen aber alle Router mit Gruppe für den Fall im gemeinsamen Baum bleiben, dass neue Sender a Daraus wird deutlich, warum PIM »protokollunabhängiga ist. nismen für den Aufbau und die Erhaltung von Bäumen hängen von Domain benutzten Unicast-Routing-Protokoll ab. Die Bildung von Bäumen ganzlich durch die Wege von Join-Nachrichten bestimmt. Welche Wege sie einsc gen, wird wiederum von der Wahl der kürzesten Pfade des Unicastbestimmt. Genauer gesagt, ist PIM also im Vergleich zu den übri Abschnitt beschriebenen Multicast-Routing-Protokollen, die entweder vom State- oder vom Distanmektor-Routing abgeleitet sind, *vom Unicast-Routin tokoli unabhängige. Man beachte, dass PIM eng mit dem Internet-Protoko bunden ist, d.h. es ist bezüglich der Protokolle der Vermittlungsschicht nicht p kollunabhängig. Das PIM-Design verdeutlicht erneut die Herausforderungen skalierbarer Netzwerke, und wie Skalierbarkeit manchmal gegen andere Ast von Optimierung abgewogen werden muss. Der gemeinsame sicherlich besser s k a k b a r als ein quellenspewfischer, da er die in Routern Zustände auf die Zahl der Gruppen gegenüber der Zahl der Sender mal der Gruppen reduziert. Andererseits ist der quellenspezifische Baum oftmals no um effizientes Routing zu erzielen.
-
4.5 Multiprotocol Label Switching (MPLS) Wir schliegen unsere IP-Diskussion mit der Beschreibung e lich als Möglichkeit zur Leistungsverbesserung des Intemet betra dieser als Multiprotocol Label Switching (MPLS) bezeichneten Idee wird ver einige Eigenschaften virtueller Leitungen mit der Flexibilität und Robusthei Datagrammen zu kombinieren. Einerseits ist MPLS sehr eng mit der datagra basierten Architektur des Internet-Protokolls verbunden - es verlässt sich M
tutg seiner Aufgaben auf P-Adressen und IP-Routhg-Protokolle. Anderer$&&a WLS-fähige Wautsr Pakete.auch durch &qriifmg von Labeln mit @P harze& fester Ukge und diese Label h a b lokale Reichweite (Iocal
k ! w buns die
v o n ~ ~ ~ ~ ~ i s t e s ~ - , s i c h f o l *Wbm iaes gut?. F& MPLS gibt es viele Argumente, jedoch dere drei Dinge, fb &e es heute benutzt wird:
#$tage zu stell-
-
erleimg von P-Paketen entlang me~plizisctkmmma vsrberechae Rou-
SE& rpolltcr beachtet werden, dass eine8 der arsprüngüchert Ziele - Leing nicht auf der Giste steht. D b hat e h Menge mit den F m ,die in d a l e a m Jahren bei WdterleitliagdgoRdmen fiDt IP-Rou-
-
und mit den kompiexen Faktoren in Bezug auf Hellder-
Leiaimgbestimmen. llmrt leichtesten lasst sich die Fnnktionmeist von MPLS verstehen, wem man
3kelbshrk W e i t d h n g der ersten Veröffentlidi-
zur EidÜhrun~der Idee. Label an E-Pakete
MPLS-fähigen Routern implemeqfi&rt. Das folgende Beispiel zeigt, wie sie hte das Netzwerk in Abbildung 4.40. Jeder der ,beiden Router ganz R4) ist mit einem Netzwerk mit den Präfixen 10.1.1E4 bzw. 10.3.3/24 n. Die übrigen Router (Ri und R2)haben Routing-Tabelien, die angeben, de Schnittsmlle jeder Roiiter benutzen würde, um Pakete an eines rke w e i t e n u l ~ . einem Router aktiviert ist, weist der Router jedem Präfix in seiein Label zu und gibt seinen Nachbar-Routern sowohl das auch den Prafix, dem es darsteilt, bekannt. Dieses ~Adverrisementawird im istrihtion Prorocola mmspurtiert (Abb. 4.41). R m r R2 hat den Label5 für das Präfix 10.1.1 und den Label-Wert 16 & das Präfix 10.3.3 mgewie-
33B
1
4 1 u -m*
Abb. 4.40: RoutEng-Tabellen im Beispielnetzwerk
sich als In&$
aar Ro
LakI h einer Tabelle zasiaaunen m i b dem Priifii, 4- es & * a k ~ sd *e r hdes(c Label fiiz P&ciqrstdit, dk W an Pr8k eeftdat. tn Abbildung4.41(C) sehn wir & W&
aa &B&&&l&l,1, U$
~
L
C
-
F
~
An fiiesGm Puakt kPinnen wir sehen, was passiert, wenn ein Paket in Rsycd* WB) bedchwt. S n LER Meise kcmpleire W=SiPche antEoqttwnde DP4?abe W -uad wendet & Erg,&& &I+ Suche dannL
fernte Label 15 an das Paket an, k q r er es lrer8chip:kt:.
er$&ht> hrlaa beachte falgisxh O(;r;enn W &Pak& izi &$CM Wpid we nium er aarshic4iich nie die @-Adresse pnifm. %adessm sah W R3
Länge haben und der IP-Zieladresssuchalgorithmus die größte fiberein~timmun~ tenden Pakets übereinstimmt - finden muss. Demgegeniiber ist der eben beschriebene Label-Weiterleitungsmechanismus ein exakter Ob(irei~~stimmungsal~orithmus. implemenrieren, z. B. durch Verwendung des Labeis als Index auf ein Array, wobei jedes Element im Array einer Zeile in der Weiterleitqngmbelle entspricht. Man beachte auch, dass der Weiterleitungsalgorithmus zwar von der längsten
dieses Ergebnisses fand in Am-Switchen statt, die MPLS unterstützen können, . Weiterleitungshardware ändern zu müssen. ATM-Switche unterstützen .gerade beschriebenen Label-Swapphg-Weiterieimngsalgoriths,und durcfi
. -qhm ihre
auf optische Switches von der Art, die in Abschnitt 3.1.2 beschrieben wurden, ange-
'
Bevor wir die angeführten Vorteile der Umwandlung eines ATM-Switch in einen LSR betrachten, soliten wir einige Dinge klären. Wir haben gesagt, dass Label an
ATM-Zdea-Header genau dort sein muss, wo man normaleweise die VCiVPI-Felder findet, wie in Abbildang 4.42(a) dargestellt.
4,
Nachdem wir uns nun ein Schema ausgedacht haben, mit dem ein ATM-Switch als LSR funktionieren kann, stellt sich die Frage, was wir gewonnen haben. Eine Sache, die es festzustellen gilt, ist, dass wir jetzt ein Netzwerk bauen könnten, das eine Mischung aus konventionellen IP-Routern, Label-Edge-Routern und als LSR funktionierenden ATM-Switchen verwendet, wobei alle diese Router und Switche die gleichen Routing-Protokolle benutzen würden. Um die Vorteile der Verwendung der gleichen Protokolle zu verstehen, betrachten wir eine Alternative. In Abbildung 4.43(a) sehen wir eine Reihe von Routern, die durch virtuelle Leitungen über ein ATM-Netzwerk miteinander verbunden sind, eine Konfiguration also, die man als mOverlay«-Netzwerk bezeichnet. Zu einem bestimmten Zeitpunkt wurden Netzwerke dieses Typs häufig gebaut, weil die kommerziell erhältlichen ATM-Switche insgesamt einen höheren Durchsatz als Router boten. Heute sind Netzwerke wie dieses weniger üblich, weil Router die ATM-Switche eingeholt haben und teilweise sogar übertreffen. Diese Netzwerke sind allerdings auf Grund des beträchtlichen Installationsbestands an ATM-Switches in Netzwerk-Backbones immer noch vorhanden. Dies ist teilweise darauf zurückzufiihren, dass ATM eine Reihe von Fähigkeiten, wie z. B. Leitungsemulation und virtuelle Leitungsdienste, unterstützt. In einem Overlay-Netzwerk würde man jeden Router potenziell mit jedem der übrigen Router über eine virtuelle Leitung verbinden, der besseren Verständlichkeit halber haben wir in diesem Fall aber nur die Leitungen von R1 zu allen seinen Partner-Routern dargestellt. R1 hat fünf Routing-Nachbarn und muss mit allen von ihnen Routing-Protokoll-Nachrichten austauschen. Wir sagen, dass R1 fünf Routing-Anrainer (Adjacencies)hat. Demgegenüber wurden die ATM-Switche in Abbildung 4.43(b) durch LSR abgelöst. Zum Zusammenschluss der Router gibt es keine virtuellen Leitungen mehr. Somit hat R1 nur einen Anrainer, nämlich LSR1. In gröBeren Netzwerken führt die Benutzung von MPLS in den Switches zu einer beträcht-
PTI
@)
ICLPIHEc I
DATA
nShtmu header (for PP?, Ettiernet,
a.1 Abb. 4.42 (al Labelauf einem ATM-gtkapselten Paket (b)Labelaufeinem Rahmen-gekapseitenR
_-
Uchen Reduaiemg der Wh:tvon Arir-; & j& RmFumr "(rmaItCnb.d A b && W&W@& R-t h a k eims ai& Üb& ' l ' ! ~ ~ W ~i n f dm d ~~ 1 &~ Ih% 4 "(r&i&em. ' . .
k&ek
'
emeicht h d , w ä h n d & t u ist. Das
im ATM~pall.!%gar noch wichtiger war & Tatsache, da= es fiir die von sptischen Gerffmkeiae StandardpramkoIIe &t, sodass M P S ein r Kandidat f-tir diesen Job schien,
m m q der Betreiber des Netzwefks in Abbildung 4.44 hat enwhieden, on Ri zu R7 &Bende Ovkerir den Ffgd Ri-R3-R6d7 und der von R2 zu ende Verkehr den Pfad 82-83-R4-R7 verfolgen sollten, Ein G d für eine
Abb. 4.m Ein Netzwerk, das exptizites Routing erfordert
nicht leicht erreichen, weil es R3 nicht kümmert, woher der Verkehr kam, wenn q' seine Weiterleitungseatscheidungen trifft.
vqn R1 und R2 a d untemchdkha Pfaden weiterleiten. Die dann zu be -
9
Label-Einträgein die Weiterleituqstaklie zu schreiben. Dies ähnelt sehr dem zess tjer Einrichtung einer virtuelien Zeihmg (siehe Abschnitt 3.1.2). sichesden soll, dass in einem Netzwerk ausreichend Ressourcen verfügbar
Ausfallpunkt herumzuleiten, erhebkh reduzieren.
beachtmswerter Punkt über explizites Routing ist, dass exp,&zitsRouim obigen Beispiel von einem Netzwerkbetreiber b r e c h e werden ehe Reihe von Algorithmen, die Router verwenden können, um a a ~ a t i s &V
2);
1
Unix-Implementierung kann die Auflösung der Zeitmessung bis zu 500 ms was wesentlich mehr ist ab der Durchschnitt bei einer Oberland-RTI'von
Segmmb
Auch &er heinhatren
ini Gegshterabz za'einen n a c h r i o n e n k r ~ e nPmBa&?
niidich,) hide Ibiekmrde ca enhken. Sie w & n fih
Tatwache, dass der senden
des &ende
wrn I Z a ~ s z a n d e t . M a - 1h: ~ein us wurde iusp-b e&drele, TCP ansdem b, die von ihm aagesammeItien B y m
an seinen Partner zu senden. Er wurde und wird auch heute hoch von in Anwendungen wie Telnet benutzt, weil jedes Byte unmittelbar nach gesendet werden muss. Push kann aber auch benutzt werden, um Da zu implementieren, weil die SpezSikation besagt, dass TCP die sichengespeichertenDaten senden muss, wenn die Anwendung P weise benachrichtigt TCP die Anwendung am Ziel, wenn in einem Segment das PUSH-Flag gesetzt ist. Unterstützt die Emphgsseibe diese O Socket-Interface tut das nicht), kann die Push-Operation dazu TCP-Strom in Datensätze aufzuteilen. Selbstverständlich steht es dem Anwendungsprogramrn immer frei, Da grenzen ohne Hilfe von TCP einzufügen. Es kann beispielsweise ein Fe1 die Länge des ab Nächstes folgenden Datensatzes angibt, oder seine ei satzendemarkierungen in den Datenstrom einfügen.
5.2.8 TCP-Erweiterungen Wir haben an drei verschiedenen Steilen in diesem Abschnitt erwähnt. dass die TCP vorgeschlagenen Erweiterungen einige Probleme mildern könnenI, mit TCP zu kämpfen hat, wenn das darunter liegende Netzwerk schneller wird. Erweiterungen sollen möglichst geringe A U S - ~ U ~ auf ~ TCP haben. Sie wer Optionen realisiert, die im TCP-Header hinz@gt werden können. ( vorher einen Punkt übergangen: Der Grund für das Feld HdrLen im TCPdass der Header eine variable Länae haben kann. Der variable Teil des TCP enthält die hinzugefiegten oPtio&n.) Diese Erweiterungen w d e n ablSi&tl Optionen definiert, statt den Kern des TCP-tHeaders zu ändern, damit auch mit TCP kommunizieren können, die diese Optionen nicht implementieren. die die opcionalen Erweiterungen implementieren, können einen Nutzen daraal " hen. Die beiden Seiten einigen sich während der Phase des Verbindungsadbaus die zu benuwnden Optionen. 44 Die erste Erweiterung hilft, den Timeout-Mechanismus von TCP zu verStatt die RTT mit Hilfe eines grobgranularen Ereignisses zu messen, kann TCEit tatsächliche Systcrnuhr lesen, wenn es ein Segment sendet, und diese denke dabei an einen 32-Bit-Zeitstempel- in den Header des Segmen Der Empfänger gibt diesen Zeitstempcl in seiner Bestätigung an den Sende Der Sender ziehr ihn von der h e i l e n Zeit ab, um die RTT zu messen. chen bietet die Zeitsaunpeloption eine bequeme Stelle für TCP, die wann ein Segment iibertragen wurde, zu *speichern.: Es speichert die ment selbst. Man beachte, dass die Endpunkte der Verbindung ihre chronisieren müssen, weil der Zeitstempel nur am selben E d e der Ver geschrieben und gelesen wird. Die zweite Erweiterung greift ein Problem auf, das dadurch entsteht, da 32 Bit groi3e Feld SeguenceNum von TCP in einem Hochgeschwindigkebn schnell überläuft. Statt ein neues 64 Bit groees Feld für die Sequenznummer zu nieren, benutzt TCP den 32-Bit-Zeitstempel, wie oben beschrieben, um
f
anm effektiv zu m i t e ~ l l TCP . entscheidet also anhand eines
,der das Feld SequenceNum in den niederwe~gen32 Bit und den 1 in den h ö h m *
32 Bit hat, & es ein W n t annimmt oder
karnati~nendeg gleichen Se¶-nr ~etltemheidm.Der Zeitin dieser Einstellriag aber nur benutzt, um Überlauf zu verhindern. Er
Mit anderen Worten: Die Eemerskalieroptionspezifiziert, um wie viele Bit die beiSeiten das Feld A d v e t t ~ ~ n d ejeweils w nach h k s verschieben sollen, bevor &in Inhalt zur Berechnung eines effektiven Fensters herangezogen wird.
3.2.9 Alternative Designoptianen
TCP hat sich zwar als robustes Protokoll bewährt, das die Anforderungen viher
'
hwendungen erfüllt, der Designraum für Transportprotokolle ist aber recht groi3. TCP ist keinesfalls der einzige gültige Punkt in diesem Designraum. Wit schlie13en unsere Diskussion von TCP mit einer Betrachtung alternativer Designs. Wir erklären zwar, w a r n die TCP-Entwickler ihre Wahl getroffen haben, überlassen aber den Lesern die Entscheidung, ob mögbcherweise Raum für alternative Transportprotokolle vorhanden ist. Erstens weisen wir seit dem ersten Kapitel dieses Buchs immer wieder darauf hin, dass es mindestens zwei interessante Klassen 'von Transportprotokollen gibt; smrnorientierte Protokolle wie TCP und Anfrage/Antwort-Protokolle wie RPC. Mit a n k e n Worten: Wir haben ausdrücklich den Designraum in zwei Hälften geteilt und TC2 deutlich in die seomorientierte Hälfte gestellt. Wir kännten die stromorientierten Protokolle ia zwei weitere Gruppen unterteilen - zuverlässige und unzuverlässige. TCP würde in die erste fallen, während die zweite für interakrive Videoanwendungeh geeignet wäre, die eher einen Frame verwerfen, als die durch eine Nwsibertragung entstehende Verzögerung hinzunehmen. Dieser Versuch des Aufbaus einer Taxonomie für Transportprotokolle ist Unternsant und könnte zunehmend irn Detail fortgesetzt werden. Die Welt lässt sich aber nicht so leicht in Schwarz und Weif3unterteilen. Man betrachte z.B. die Eignung von TCP ak Trasportpotokoll iiir Ihnfrage/htwort-Anwendungenen TCP ist ein Volldupiexprotolroll, d a s s es einfach wäre, eine TCP-Verbindung zwischen Client und Server zu öffnen und dann die Anfragenachricht in eine Richtung und die Antwort-
,
. Erstens ist TCP ein byte- und kein na&dwisntWs
den Aufbau der Verbindung, zwei für den Nachrichtenaustausch wmd v i q . Verbindung abzubaum. Selbsrver9tan& gilt: Wenn, die Anfragewortnachkht so groS ist, dass sie mehrere Netzpakete eddm (zB. 1 uin eine btwormachricht mit NQ.000 Byte zu s e n k ) , wkd der Uvak Auf- d Abbau der Verbiiduiag v~chlf'ggigbi~u: Es ist also nicht immer unterstützen kann. Manchmal ist jedoch ein Design unter gewhxa U m s E ä n b ahmyr ein anderes.
obander a u s t a t i h rnöchtea,. Man kann in einon Byti3-Strorn a D a t t n s a t z m einfügen, um diese MtionaIi& zu irnplemeatic~~e~, Abschnitt 5.2.7 bewhricben wurde. Diiaen%hplementLe~t:TCP mplizite Auf-IAbbauphasen; dies
hhen Verbinduqpparamettn zusammen mit der eisten Da TCB basiert auf ehern konsemtiveren Ansatz, der deni wir s t i l l d ~ e n dbiae Verb'mdung & e k , die über längere Zeiit Das würde aber* hwetrdmgen wie TeInetndici WtBtidcii eine
und Rate besteht eine irneress-
Dualität, weil die Anzahl v m Paketen Raa?ergibt. b e Fmtergi.ö&! nns irapWert, dass der M e t
m g m Lh&Eilhöhen oder der Empfängtr M der A C ~ . C - W ~ O W - G Eerhd & rht b m & Rate, in &r der Sender übesraw kam. Bei T@ s k d diese Mbmtion U ~ d e s A G K f ü p . j & ~ t ~ ~ x ~ ~ h i c && wichtigsten Fragen bei einem ratenbashtm hdd ist, wie ofi die ,die sich im L a d der Z t ändern kann, nrr Qualle zuriickgedickt ,&mal pro RTT oder nus bei.oiner &q der Rate? Während kqle Fenster v e m Rate im Zuaammenhq mit Ftwkontroiie betrachtet die gieicbe Frage im Zusamm-g mit OberlastkontroUc, die in Kapi-
$l behandelt W&&noch ausführlicher diskutiert.
Remote Procedure Call (RPC) Kapitel 1 beschrieben, ist das AnfragetAnmort-Paradigma ein übliches, von ndungsprograrnrnen häufig benutztes Kornmunikationsmuster; das auch richtentransaktion genannt wird: Ein Client sendet eine Anfragenachricht an rver; der Server reagiert mit einer Antwortnachricht, und der Client blockiert icht die Ausführung), während er auf diese Antwort wartet. Abb. 5.1 1zeigt dlegende Interaktion zwischen Client und Server in einer solchen Nachansaktion. ,I r
Abb.5.11: Zeitstrahl fUr RPC
~ ~ p o r r p r ~ das k ddas , AhageEAntwort-Pamdigau unterstützt, ist viel ab eine UDP-Nadwkht, die in eine Richtung fiieSt? gefolgt von einer W P die in die andere Ricbming &&t. Es Uimfasst auch die Oberwhdung '& zu gcunde iiegmdefl. Netzwerks, wie eingangs in diesem KI manitde. W h d TCQdiese Grenzen d a d d Überwindet, dass es eiaeti ~ C S t r o m k ~ D d ~t , fügt es sich in das AdragielAmwortl&mnicht gut ein, weii der Aufwand des Adbaw einer TCP-Vetbindung, nur b p m r Nachrichten a u ~ u s c h e nü5k m * k n erscheint. In diesem Machnitt
,
austausch arbeitet, eher entspricht.
-1
eines lokalen Prozeduradmfs basiert: Das Anwe~duagspzograeimruft eine dut ungeachtet dessen auf, ob sie lokal & e n t h m ist, und blodcim der Aufruf z u r ü c k k ~Dies , Mrt sich einfach an, es entstehen aber zwei ehe Probleme, durch die RPC komplizierter ais lokale Produraufrufe ist: .
3
r Das Netzwerk zwischen dem aufrufenden und dem a*e&ndn Prozess bf komplexere Eigenschaften als die Backplane eines Computers. Beispieb kann es Nachriehtengröikn begrenzen und neigt hlufX dazu, Ni%hi~ihki verlierea oder deren Reihenfolge zu verrauschen.
.
steliungsformate auf. Folglich umfasst ein voUs%ciiger RPC-Mechanismus zwei wichtine ~omlrenehtk
. zu grunde liegenden Netzwerks befasst,
,;
a
richt dann auf der Server-Maschine in die Argumente z&.ickzu~bersetzen:
Abb, 5.12 stellt schematisch den Ablauf dar, wenn ein Client eine entfernte Pro aufruft. Zuerst ruft der Ciient einen lokalen Stub fiir &C Prozedur auf, wobei ier und dann e k wC-~rotdroli aktivie; wird, um die ~ ~ e n a c h r i cnn ht Server-Naschine zu senden. Beim Server iibergibt das RPC-Protokoil die genachricbt dem Sem-Stub, der sie in die fur die Prozedur nöti übersetzt und die fokale hozedur aufruft. Wenn die Server-Prozed sie die Antwort an den Server-Stub zulück, der diesen Rüclqphwert w o ~ i c b verpackt o und Jlem. RPG-Protokoll f6r die ~bemqung übetgibt, Das WEFrotokoEl heim C i i e ~kitet diese Nackicht zum weite4 der sie in einen Ruckgabewert übersetzt und an das C k n t zurkkgibt. In diesem Abschnitt werden nur die potokoilbezogenen As Mechanismus beschrieben. Das hest, wir ipmiereu die Smbs un uns stattdessen auf das RPC-Praukoll, das Nachrichten nnrischa a e 8Ct2t
ustellen, dass ein RPGProtokoU sführc. Statt RPC als ehwehes, Protokd zu b e b & , entwi&ein wir es als * S t a b dreier HeiaeBLAST, C W und SELECX Jedes dimr kleinso gmmten Algaridimuq dar eeiaes der eingangs in dieft, Als kurze OberSicht:
Um es noch einmal klar zu sagen: BLAST, CHAN und SELECT sind Standardprotokolie in dem Sinn wie TCP, UDP und IP. Sie sind einfach V erfundene Protokolle, mit denen sich die für die Implementiening eines RPC tigten Algorithmen gut demonstrieren lassen. Da dieser Abschnitt nicht auf die struktionen dessen, was in der Ve-enheit entwickelt wurde, beschränkt id, tet er eine besonders gute Gelegenheit, die Prinzipien des Psotokddesigpi untersuchen.
i i
:
3 J!
5.3.1 Bulk-Transfer (BLAST)
j
Als erstes gehen wir das Problem an, wie ein zu grunde liegendes Netzwerk, das tiv kleine Nachrichten (sagen wir 1KB) überträgt, in einen Dienst umge wird, der wesentlich größere Nachrichten (z.B. 32 KB)übertragen kann. 32 zwar nicht nbeliebig groß., reichen aber für viele praktische Anwendungen aus unter die meisten verteilten Dateisysteme. Letztlich wird ein strombasiertes koll wie TCP (siehe Abschnitt 5.2) benötigt, um eine beliebig grof3e Nachri unterstützen, weil jedes nachrichtenorientierte Protokoll notwendigerweise obere Grenze für die Größe der von ihm handhabbaren ~achricht-haben Somit ist es immer denkbar, dass eine Nachricht übertragen werden muss, die Grenze überschreitet. Wir haben die grundlegende Technik, die benutzt wird, um eine große N über ein Netzwerk, das nur kleinere Nachrichten unterstützt, bereits besc Fragmentierung und Reassemblierung. Ww beschreiben jetzt das BLAS das diese Tkhnik benutzt. Eines der besonderen Merkmale von BLAST ist, es versucht, alle Fragmente einer Nachricht auszuliefern. Irn Gegensatz mentierungs-/Rea~~emblierungsmechaaismus in ATMJAAL (siehe.A oder in IP (sieheAbschnitt 4.1) versucht BLAST, verworfene Fragmente d Übertragung wieder herzustellen. BLAST geht aber nicht soweit, dass es die gung von Hachrichten garantiert. Die Bedeutung dieser Designoption wird diesem Abschnitt deutlich.
1
r I'
4
ih
elles RPC-Protokoll fiPr das Interner m n RPC in der3n&rm-&tr5tektur PC als Trmspo~rokdees~l-%@tra&%et
- -
*
3
>
1
der Ansicht, dass RPCd a ~ ~ ~ m n t e~~&&kdl ste e gut sei. D k ist d'i wherrschende einde, die unzählige Betriews%em-Kemds t, die immer genau ein Protokoll bdnhalten. auf einen Nebwerkgetiitetreibraufsetzt. nn man RPC als Kornbinatioriaus drei verntiert, was wir in diesemAbschnitt getan man sich, weiches der drei das ~Transiese Frage lautet, dass sich jedes Proto-zu-Knoten- der Hast-zu-Host;Diensr gnen Protess-zu-Prozess-Dienst bietet, als Transportprotokoilqualif@wC~ e m t WeIge 1st WC ein Tramponpmfokoll, das sich effektiv mit &er KornMnatlaq NI ~ikro~rotokollen, die selbst gUkige Transportprotokolte sind, implementie ren lasst. *
s
k h ? 7
"
~
md-p
ab-# M.b. P ~ V ditda m m d c i r aber w~Ez~~wI~.; die b i h m e BLAST *logdontrem*).Das Prmko1IIwwm &eh; bis
isdie L:ra&saentemgekontmm '&4 gib
u M i ~ d m ~ D O N E . U u f c
§mcier
I
EmpWl~r t
M&. 5.10:
-4
Ra@m~aWgeiMmhLa~ Bt)clST
zwisch&speichern, und setzt einen Timer LAST-FMG. Dieser Timer Zeit, die seit Ankunft des letzten Fragments vergangen i$$, Jedes Mal, wem ein R menr fih 'diese Nachricht adommt, fügt sie der Fmpfänget in diese D a t e n s d ein, Sind alle Fragmente vorhanden, setzt er sie zu einer k o m p b n Na& znsanimen und gibt diese Nachricht an das höbese+ProtokoUw i t e ~Dabei &I wacht der Empfänger vier Ausnahriaebedapzgungen; Wenn das letzte Fragment ankommt (das letzte ist besonilers gekennwich die Ngchri* aber nach nicht vollständig ist, ermittelt der Empfänger die febl den Fkalpnente und sendet dem Sender ein SRR. Außerdem setzt er einen
RETRY. P Läufr Et T h e r LAST-FRAG ab, stellt der Empfänger die fdendenr Ernfwr und mdet d m Sender ein SIUR. A&rdem setzt er den T h IUXITtX ' J iLädt der T h m RE.TRY das erste d e r zweite Mal ab, erminelt &t lbp&@
die noch 6eMmika f r a h t e und iibertsiigt erneut eim S I l R - N a M t . , Lädt der T m RFTRY da kitte M ab, gik der Empiiiage &E aqpkam' aen Fr~gmentebei wid aa8diea den T h r LA=-F&kiG, gibt d@0 auf, Drei Aspekte w n BLAST sind interewant. Erstens lösen %Geiurs.tewhal]icheEi nissc di d n g l i c h e h g u n g eines SRR aus: Die Anleunft des letzte& und das Ablaufe@des Tuner$LAST-FRAG. Da llas Netzwerk Pakete um kamJ kdetitet die A&unft des'lemenFmgments h ersten ~ d ~i&cz' l . u~~
.Icn zweiten Fall schlussdolgert es, dass das letzte Fragment entweder ver-
.
s ist BLAST in der Anfrage
L&
f.
Neuübertragung fehlender Fragmente
n besteht und diese Fragmente verlorengehen. Der Empfänger wird nie den, und der Timer DONE des Senders läuft irgendwann ab: was den veranlasst, die Nachricht freizugeben. Um die mertragung zu gewähr-
clann die zuletzt von ihm übertragenen Fragmente erneut iibertragm.
er eine verbesserte Effizienz durch die Neuübertragung von Fragrnen-
en, wohin die einzeinen Fragmente in der Originauiaehricht passen, muss darauf hinweisen können, welche Fragmente angekommen sind k&he "fehlen.Drittens muss es eine Möglichkeit der Unterscheidung des letzten
Fragments geben, damit der Empfibger wes,wann es Zeit ist zy prüfan, o $ d Fragmente angekommen sind. Schließlich mrtss es mügW ein, tinb Datermd von eher SRR-Nachricht zu unterscheiden. Pdnige dieser Elemente werden in a Hollder-Feld kodiert, während es fb andere vemchdeae Möglichh-_ Abb. 5.14 zeigt das in BLAST benutzte Hader-Format- In der e n d e n bwg w d m die verschiederien Felder erkiärt und alternative Designs ciidtdd.3 0
A b . 5.l& Weader-iorinat für BLAST-Nachrichten
1
,+ .C P
Das Feld MID identifiziert eine Na* eindeutig. Bei d e n zur deichen ~ a & d gehörenden Fragmenten hat das MID-Peld den gieichen Wur. werden, wie viele Bit für dieses Feld erforderlich sind. Das ist Frage, wi$ Gele Bit Im Fdd SquwmNurn in TCP nötig shd. Der zentrale Pud@$ der Enescheidung, wie viele Bit &das Feld MID zu verwmdcn ski, ist & DPu#5j dicsa Md Überiäuftr und das Protokoll beghnt, Na&richtenbezeichner W-4 verwenden?1st das zu früh der F& d.h. wenn das MID-Feld nur wenige Big.l@ h n das ~rotoko11bei einer im Kkawerk verzögerten Nachricht d & h & raten, sod& eine alte Iaka~nationdes gkichm NacBriCtitenbcze-r~ iPrsiir als neue des gleich Jkzeilchners betrachtet d. Wie viele Bit reichen also a-# s i c h m l i m dsws.die Zeit bis nim überlauf des MID-Fddes Iängex.als die die ciae &&&t peenzie4 im Netzwerk verzögert werden kann? Im schlechmtgn F& e n W t jede BLAST-Nachricht ,eh eindaes, Frqgment. Das W t, das BLAST für-jedesgesendete Byte eine ncue muss. Bei einem 10-MbitlrP-Ethernet wkde das Meuten, da sekunde eine neue MID enwgt wird, während bei einer 1,2 GbiVs alle 7 Nanosekunden eine neue MID erzeugt werden müsste. M ~ w s t ä n d k h ist das eine viel ni pessimistische Ber&un&: f)M Eiir die Wrbgie-. Nachricht entstehede Overhead wäre malpt als eint Mikrosthadc~Nimmt daher an, dass in jeda M i k r h d e ein neuer MID erforderlich ist und sich Nachricht im Neawerk um bis m 60 Sekunden veiaogem kann (unsere g&x@ An;naime dCir den schlechtesten Fali im intemet), rniissm wlr sicherstek, nebr als 60 Mi&onen MlD-Werte gibt, Obw~hlein zCi-Bi~-Peki(Z2' = 67,1 ausreichen würde, lasich Header-Feideq die gerade Mehrfqche ehes leichter handhaben. W w verwenden deshaib ein 32 Bit w % e sMID-Feld.
3
~ytzs.4..
&& & Aufgabe za v~emfadien~ weit dcat a b Netzwerke an &n
eihn a m die weiteren Felder des
BLAST-Haders.Das Fekl
Type
e Protokali. Ankommende Nachrichten werden für
Das Feld Length bezeichnq wie viele ~ a t e n - h ~sich es
zu e k a Bitvektoi; wie wid weide nicht. Wird
sind zwar zulässig, ihre Verarbci~ngist aber erwas schwierigc1: deutet eine Beschränkung des obiien BLAST-Headers, dass die Bitvektors jede Nachricht auf hochstens 32 Fragmente bqpm~. Hat das h n d e Netmerk &e MTU von 1 WB, reicht dies aus, um Nachrichten 32-KB Lange zu senden.
5.33 AnfragdAntwort (CHAN) Das nächste Mikroprotokoli, CHAN, implementiert den AnfragdAn rithmus, der den Kern des RPC bildet. Hinsichtlich der üblichen Mer Transportprotokollen, die eingangs in diesem Kapitel stet CHAN die Nachrichtenübertragung, garantiert Kopie jeder Nachricht und ermöglicht es den kommunizierenden Prozessen, synchronisieren. Die Synchronisation, die wir dabei anstreben, simuliert das ten eines ProzedurauGufs - der Aufnifer (Client)blockiert und wartet auf eiqq wort vom Aufgerufenen (Server). At-Most-Once-Semantik Die Bezeichnung CHAN stammt daher, dass das Protokoll einen logischen Antwort-Kam1 (Channel) zwischen zwei Teilnehmern bestimmten Kanal kann jeweils nur eine Nachrichtentra dem Protokoll gleichzeitiger logischer Kanäie (Concwent Logic Abschnitt 2.5.3 beschrieben wurde, rniissen die Anwenduhgsprogramme Kanäle .is&en, wenn sie gleichzeitig mehrere Anfrage/ARtwort-TransaMonen. einander führen wollen. Das wichtigste Merkmal jedes Kanals ist, dass er eine als at-most-ortce stens einmal) bezeichnete Semantik wahrt. Das bedeutet, dass für j richt, die der Client sendet, höchstens eine Kopie dieser Nachricht stellt wird, Hinsichtlich des RPC-Mechanismus, fur dessen Unterstützung ausgelqg ist, wird jede entfernte, vom Client aufgerufene Prozedur höchstens auf der Server-Maschine aktiviert. Wir sagen *höchstens einmal. statt * mal., weil immer die Möglichkeit besteht, dass entweder das Netzwer Server ausfällt, sodass nicht einmal eine Kopie der Anhgenachricht werden kapn. So selbstverständlich sich .höchstens einmal. anhört, unterstützen dueh alle RPC-Protokolle dieses Verhairen. Einige unterstützen eine Semanuk, zero-ormore genannt wird, was bedeutet, dass jeder Aufruf durch den einer endernten Prozedur führt, die nuii Mal odu häufiger aktiviert wk nicht schwer zu verstehen, dass dies bei einer entfernten Prozedur m führt, die eine lokale Zustandsvariable @.B. inkrementieren eines Zählers oder bei jedem Aufruf extern sichtbare Aus7Nirkmngen @.B. A Rakete) aufweist. Ist die endernte Prozedur jedoch rdempotent haben die gleiche Wirkung wie einer - aktiviert, btaucht der RP keine at-most-onoe-Semantik zu unterstützen. Eine einfachere schnellere) hplementiening würde dann genügen. CHAN-Algoriti~~s Der Anfrage/Aatwort-Algorithmus weist mehrere subtile Aspekte auf; & wickeln wir ihn in Stufen. Der grundlegeride Algorithmus ist einfach, wie Zeitlinie in Abb. 5.15 ersichtlich wird. Der Ciient sendet eine Anfragenachrkht
Server
Abb. 5.W Zeberlauf für CHAN bei Verwendung impliziter BestItigu!gen
besrätigt die vorherige Antwort. ann durch zwei Faktoren erdwert werden: Erstms kann es diese Mbglichkeir in Beu~chrzu ziehen, speichernClient und Server gesendeten Naohicht, bis ein ACK &fik ankommt. Aui3erdexnm-
abläuft. Ekide Wten setzen diesen Tber zurück und versuchen ee m der
eTwarneten MID tibereinstimrnt, wird verworfen und nieht zum iruketztnded Protokoll weitergegeben. er S e m beliebig lange Zeit in Anspmch nehmen, um das aß, bevor die Antwwt eneugt wird. Man beachte,
dass wir hier
dct hat. Damit der C h t zwischen einem langsamen und einem toten
Server unterscheiden kann, sendet die Client-Seitevon CHAN periodisch eine richt .Lebst du noch?. an den Server, und die Server-Seite von CHAN einem ACK. Aiternativ kann der Server Nachrichten *Ich lebe noch* senden, dass der Clietit solche Nachrichten anfordern muss. Wir bevorzugen aber den Client eingeleiteten Ansatz, weil der Server dadurch so einfach w~möghchgehd werden kann (d.h. er hat einen Tlsner weniger zu verwalten). '
' 1 *I
CHAhbNechrkhtenformat 3 Abb. 5.17 zeigt das CHAN-Nachrichtenformat. Wie bei BLAST s p e z i f i z i a i d Type-Feld den Nachrichtentyp. In diesem Fall sind die möglichen Typen REQ, ACK und PROBE (PROBE ist die oben erwähnte Nachricht lebst du noch?.). Feld ProtNum identifiziert auch hier das höhere Protokoll, das von CHAN abhäqp, g V >
9
0
I
31
16
'OP
I
CID
I
Abb. 1.17: Header-Format für CHAN-Nachrichten
-4 hdr-template; hdr->Length = msgLength(msg); i f (state-wid == MAX-MID) state-wnid * 0; hdr->MID E ttstate-wid;
*/
/*
.
Hänge den Header an d i e Nachricht an, und versende s i e store-chanhdr(hdr, hbuf); msgAddHdr(msg. hdr. HLEN) ; ~ ~ ~ ~ ( B L Amsg) s T ;,
*/
/*
Setze Zeit fiir das erste Timeout-Ereignis */ state-wetries = 1; state-*event = evSchedule(retransmi t. state. state->timeout) ;
/*
Blockiere und warte auf d i e Antwortnachricht s a a i t (btate->repl y-sein) ;
/*
Bereinige den Zustand und kehre zuruck f l ush-msg(state-srequest) ; state->status = IDLE; return state-*ret-val ;
*/
*/
1
Ab erstes fällt auf, dass das an calK;HAN als Argument weitergegeben Feld Status beinhaltet, das darauf hinweist, ob der betreffende Kanal ben oder nicht. Falls er momentan benutzt wird, gibt callCHAN einen Fehler alternatives Design könnte man den aufrufenden Prozess solange blockieren, bk Kanal untätig wird. Wir haben uns dafür entschieden, die Zustän Blockierung von Prozessen, die besetzte Kanäle benutzen wollen, einem höh Protokoll zu überlassen; in unserem Fall ist das SELECT.
d
:.7
fällt 9aioaWiiAN auf, dass der aufrufende Prozess nach dem Ausfülund der der Anfragenachticht iiber einer Sunagbore ( m p i y m ) blockiett; emWBit ist die m Abschnitt 1.3 c h - W a g
wird, setzt sie sich selbst erneut. Nachdem die Anfragemchricht viermal wurde, gibt CHAN auf: Es setzt den Rüekgdmwrt auf FAlLURE und
blockierten Client-Prozess auf. Schließlich muss.es jedes Mal, wenn von ausgehen, dass jedes Mal, wenn e h Ptotakoll eine Nachricht an ein Protokoll übergibt; es seinen Bezug zur Nachricht verliert. transmi t (Event ev, i n t *arg) ChanState
*state = (ChanState *)arg;
I* Hebe nach dem 4. i f (ustate-wetries
,
Versuch die Blockierung des Cl ient-Prozesses auf * 4)
/* obertrage die Anfragcnachricht erneut ,msgSaveCopy(&tinp, btate-rreguest) ;
/*
*/
Setze Zei t f ü r das Ereignis erneut mit exponentiellem Backoff
*/
*/
auf einem Server (sie erwartet REQ-Nachrichten) oder auf einem Clicnt (sie REP-Nachrichten)läuft. Dann ruft sie die entspwhnde Client- d e r Serversche Routine auf. Hier stellen wir die Client-spezifische Routine delhrerClient statio i n t del i v e r t l ient(ChanState *state, Msg *msg) {
ChanHdr hdr; char *hbuf;
/*
Entnehme den Header und prüfe auf R i c h t i g k e i t hbuf = msgStri pHdr(msg, HLEN) ; 1oadchan-hdr(&hdr, hbuf) ; i f (Iclnt-msgok(state, &hdr)) r e t u r n FAILURE;
*/
/* Annulliere das Timeout-Ereignis fUr d i e Neuübertragung evCancel (state-aevent) :
*/
/* .
F a l l s es s i c h um e i n ACK handelt, setze den PROBE-Timer und beende i f (hdr.Type == ACK) { state->event = evschedul e(pr0be. s, PROBE) ; r e t u r n SUCCESS;
1
/*
Die Nachricht i s t e i n REP; speichere s i e und s i g n a l i s i e r e blockierten C l i e n t */ msgSpveCopy(state->repl y, msg) ; state->ret-val = SUCCESS; semSi gnal (Wate->repl y-sem) ; r e t u r n SUCCESS;
1
*
ent aufrufen möchte, diese Nummer in seinen Hades einfiigt urrd -dann die
SELECT die im Header vorgefundene ~ r o z e d u r n b e und r wählt die
andeln. Schließlich verfügt CHAN bereits über sein eigenes Demultias benutzt werden könnte, um ankommende Anfragenachrichten an die tens erhalten wir dadurch die Möglichkeit, den Adressraum, mit dem Prozeidentifiziert werden, einfach dadurch zu ändern, dass im Protokollgraphen
rozedur 2, seek Prozedur 3 usw. sein, während innerhalb des Name-Serverfiir die Behandlung von NebenLäufigkeit ist. Wir erinnern uns, dass
.
Jedes Mal, wenn ein aufrufender Prozess SELECT aufruft, verweist dieses ozess auf einen ungenutzten Kanal. Sind zu einem Zeitpunkt alie Kanäle aktiv, iert SELECT den aufrufenden Prozess, bis ein Kanal frei wird.
5.3.4 Von den Teilen zum Ganzen (SunRPC, DCE)
Wir sind jetzt bereit, aus den in den drei vorherigen Abschnitten beschriebenen Mikroprotokollen einen RPC-Stack zu bilden. Ebenfalls in diesem Abschnitt werden zwei häufig benutzte RPC-Protokolle - SunRPC und DCE-RPC - auf der Basis uns* rer drei Mikroprotokolle erklärt.
Ein einfacher RPC-Stack Abb. 5.18 zeigt einen einfachen Protokoll-Stack, der RPC implementiert. Unten sind die Protokolle, die das zu grunde liegende Netzwerk implementieren. Obwohl dieser Stack Protokolle enthalten könnte, die jeder beliebigen der in den drei vorherigen Kapiteln behandelten Netztechnologien entsprechen, benutzen wir der Einfachheit halber IP auf einem Ethernet. Abh 5.18: Einfacher RPC-Stack
Auf IP setzt.BLAST auf, das aus der kleinen Nachrichtengröge des darunter liegen: den Netzwerks einen Kommunikationsdienst macht, der Nachrichten in einer Länge von bis zu 32 KB unterstützt. Genau genommen stimmt es nicht, dass das zu grund~ liegende Netzwerk nur kleine Nachrichten bereitstellt. IP kann Nachrichten mit bi zu 64 KB handhaben. Da IP solche grogen Nachrichten aber fragmentieren muss, bevor es sie im Ethernet versendet, und der Fragmentierungs-/Reassemblierungsalgorithmus von BLAST demjenigen von IP überlegen ist (weil er in der Lage ist, f&! lende Fragmente selektiv neu zu übertragen), behandeln wir IP vorzugsweise so, ak unterstütze es genau die gleiche MTU wie das zu g m d e liegende physikalisdij Netzwerk. Dies überlässt BLAST die Aufgabe der Fragmentierung/Reassemblieruh& es sei denn, IP muss eine Fragmentierung irgendwo mitten M Netzwerk durch&&. ren. Als Nächstes implementiert CHAN den AnfragetAntwort-Algorithmus.Wir hatten uns ja dafür entschieden, keine zuverlässige Übertragung in BLAST zil implementieren, sondern diese Aufgabe auf ein höheres Protokoll zu verlagern. In diesem Fall stellt der Timeout- und Bestätigungsmechanismus von CHAN sicher; dass Nachrichten zuverlässig übertragen werden. Andere Protokolle verwenden viel-
*'hiebtwterschidliche T-en,
um die übettragung nt garantieren, oder bieren u ~ ~ i Ubcrtragung. g e D h ist ein Ekispid des Farde-zu-Endeaus praktkher Sicht: tue nicht awf niedrigeren Ebenen des Spsiems (z.B. was auf h~heren Ebenem (z.3. CKAN) ohnehul gccln werden muss. CT einen Abrasraum fb d L . I d e n W v entfernter tt 5.3.3 atgdeutet, k&me m n r e e & e V&= CELECT, die $e eine andere Methodc für die I d e e v w Pmmcduim '#dimeren, kodqpierea d awf CHjAN aufsetzen, Tat&&& wäre es sogar mögvan SELECT zu sdmibmi, die ftir Prozedruen den Adtes~raum n W - W (zB. SunRPC) simuliert, d dann CHAN uad dieses neimen SELECT h u t z e n , um den Rest des RPc.Sta& W ~i~na~lementimien. Diau, netze Srn& würde DYlnmit dem Ori&pratokoll intempees ~ 1 aber 3 ~ ermtiglihen, ein nares RFGSystem unter ehe vorhanctene g entferntet Prozeduren zu schieben, ohne die Schnittstelle ändern zu müs~ELECXunterstätzt zadwn Nebenlädigkeit. 1
. h h a u p t keine z
d BLBST sind zwar-vollständige9korrekt funktionierende P
m
weder standa~disiertnoch in groBem Umfang ein-, Wir uns jetzt einem häufig benutzten RPC-Protokoll zu: SunRPC,IioaischerSunRPC ebenfalls von keinem Standardisietungsgremittm genehmigt, einer go&n Verbreitung auf Sm-Woheions unQ seiner iwnile in Suns M e b Network File System ( W S ) als De-facto-&&d Bei DrucHegung em3gte die IETF die offizielle übernahme von SunRPC kterriet-Sdardprotokoll, hGrunde genommen muss sich jedes RBC-Protokoll um drei Faktoren i c h tiegrob Nachrkken, Sp&onisa* von Anfrage- und Amund Veme!ndung von Anfragmachrichten an die entsprechende C bildet dabei keine Ausnahme. h Gegensatz zum SELECTI AST-Stack greift SunRPC diese drei Funktionen aber in einer anderen d und vimndet germgfügig a.bweichendeA i p r i t hnen. Der gni :-Profokoiigraph ist in Abb. 5.19 dargestellt.
.
Abaare: ProtokoRgmph Mr SunRPC
-
Zunächst implementiert S@C den zentralen AnfragelAntwort-Algorithmus das! CHAN-wnstück. SwiRPC unterscheidet sich von CHAN aber dahingehend, drcsdli es tachnkh k&e at-most-once-Se& garantiert. Es gibt obskure unter denen dem Server ein Duplikat einer Aafragenachricht zugestellt wird (sidd unten). Zweitens ist die Ralle von SJ3ZCT zwischen UDP und SunRPC aufgeteihi UDP steuert das richtige Programm und SiuiRPC die richtige Prozedur innerhalb dt@ P C O ~an.S(Wir beschreiben weiter unten genauer, wie die Prazeduren idmti& ziert werden.) WeBlich wird die Fähigkeit, Anfrage- und Antwortnackichten m& den können, die größer als die Neizwerk-M' mei rea Funkdonaiität entspricht), von IP be IP hinsichtlich der Implementierung dep Fragmentiertuig nich so behaniih BLAST ist. BLAST benutzt im Gegeiisatl, zu IP die selektive NeuÜbertragung. I$ Wie oben erwähnt, benutzt SunRPC zweiSchicht& Adressen, um entfernte P m zeduren zu identifizieren: eine 32-Bit-Programm- und eine 3 (Es gibt auch eine 32-Bit-Versionsnumme~die wir in der aber ignorieren.) Dem WS-Server wurde beispielsweise die Programmn xW1W 3 zugewiesen, und innerhalb dieses Programms ist getattr Prozedur I, Prozedur 2, r e d Prozedur 5, write Prozedur 8, usw. Jedes Pragramm ist da erreichbar, dass man eine Nachricht an einen UDP-Port sendet. Kommt eine An&& genachricht an diesem Port an, nimmt SunRPC sie entgegen und ruft die entW cheiide Prozedur auf. Um festzusteilen, welcher Port einer bestimmten SunRPC-Programentspricht, 'steht das als »Port-Mapperu bezeichnete separate SunRPC-Pro zur Verfügung, das Programm- auf Port-Nummeni abbildet. Der Port-Map hat ebenfalls eine Programmnummer (~00100000)~ die in einen W - P o r t Ü b e m W i werden muss. Zwn Gldck ist der Port-Mapper immer an einem w o h l b e b e n ' UDPSort (111)präsent. Ras Port-Mapper-Programm unterstützt mehrere Pro& m, VOR dehn eine (Prozedumummer 3) die Abbildung von Programm- auf P m Nllmmern dluaührt. 4 WJ1 ein Cüent also eine Anfragenachricht an die read-Prozedut des NFS senth%@ richtet. er zuerst ehe Anfrage an den Port+Mappe~am woblbehnnten UDP-PM 111, um Prozedur 3 aufzurufen, um Prograrnmnummer x 0 0 t 0 0 3 auf den U D P ~ ~ abzubilden, an dem das WS-Programm momentan residiert. (In der Praxis ist ein der-art wichtiges Programm, dass es seinen erb.ält, sodass der Port-Mapper ihn nic:ht suchen SunRPC-Anfragehicht mit Prozedumummer 6 an diesen UDP-Port, und dk SunRPC-Modul, das diesen Port abhört, ruft die read-Prozedur des NFS su£ Client speichert die Pr=--Fort-Nummern-Abbildung in seinem Cache, s er sich nicht jedes Mal, wenn er das NFS-Programm kontaktieren möchte, an Port-Mapper wenden muss. Der eigentliche SunRPC-Header wird durch eine komplexe Verschachtelung W Datenstrukturen definiert. Abb. 5.20 zeigt die wesentlichen Details für den Fa& dem der Aufruf problemlos durchgeführt werden kann: Xi0 ist ein einde Transaktionsbezeichner, der dem MID-Feld in CHAN ähnelt. Dass SunRFC keine ab
3
'"1
maceknantik gwaatkxrn kann, liegt k , dass SwiRPC aid der !krverP %kmll&&mmm~W
bat,.Dies ist aber mu2" eh l&a%,h,
r,der
Bnrkletnas T m w er?-tlt4&aWg~!d die gleich Zeit wie die AgSWaq a&& wxp&glichq
wdder Server
~%,dieT-&d-JCa)bea PpGnn die m;beiaiCri.mtvw d e m T " w w c a a k ~ . d~ dk ~ ~ I i e @$ih~m Kommt die neawu~ iibmgeae Anfrqp aßdtsmc&s hmer die Aatwm -mk, odwgni der !&m.cer,*der TX -D I ts verarbeitet wird und weist die doppele Anfragenachricitt ab, Dktw kkrW h h i- slso u n m A Uao kchtoB b 7 m t g e &s t4ewe.m $eaii&A XOs a d bdewet, dass er ,&h F* $ c I h tvor W&tm schtttwta k m dielange Zeit imN ~ r k , v c ~wuxdm.Dk r r ~ war $mWGabed bisbtr kein Problem, weil er ursprhglich für die Vehea&ag ia W a w e l e s t wurde. Abb. 530: Heaqer-Formate in SunRPC: (a) Anfrage (b)Antwort .
Daten
1
:I.a&n dulchschni#liche?nWmeschlangenlängg inner4alb einer R n sein. Die C@&ite1lung von klaxTh&old auf dn.Doppelte von MinThreshki scheint angesichts F* Verkehrsmix im heutigen Liternet eine gültige Faustregel zu sein. dußerdem @ ~ diee durchschnittliche Warteschlangenlänge in Phasen hoher Last zwischen
484
1
6 liberiwtknntrolkund R.rsouKeiwitrilung
den beiden Grenzwerten schwanken. Deshalb sollte ausreichend freier Pufferplab oberhalb von MaxThreshold vorhanden sein, um die Bursts aufzunehmen, die i.m Internet-Verkehr üblicherweise statrfinden, ohne den Router in den Tail-Drop Modus zu zwingen. Wir haben oben festgestellt, dass Weight (Gewichtung) die Zeitkomtante für den gleitenden durchschnittlichen Tiefpassfiiter darstellt. Dies liefert einen Hinweis darauf, wie wir einen geeigneten Wert dafür auswählen können. Wie wir wissen, versucht RED, Signale an TCP-Flüsse dadurch zu senden, dass Pakete in Zeiten der , drohenden Oberlast verworfen werden. Nehmen wir an, dass ein Router ein P&& einer TCP-Verbindung verwirft und dann sofort einige weitere Pakete der gleichem Verbindung weiterleitet. Kommen diese Pakete b e i m Empfänger an, beginnt er mit dem Senden von Duplikat-ACKs an den Sender. Wenn der Sender ausreichend Duplikat-ACKs erhalten hat, reduziert er seine Fenstergröße. Ab dem Zeitpunkt, an dem der Router ein Paket verwitfc, bis zu dem Zeitpunkt, an dem der gleiche Roum eine Erleichterung von der betroffenen Verbiidmg hinsichrlich einer redwiema ' Fenstergröße erkennt, muss mindestens eine Roundtrip-Zeit für diese Verbind-. vergehen, Es ist wahrscheinlich nicht sinnvoll, den Router in Zeiträumen auf überlast reagieren zu lassen, die viel kürzer als die Roundtrip-Zeit der durchlaufenden Verbindungen sind. Wie zuvor erwähnt, ist 100 ms keine schlechte Schltzung d& durchschnittlichen Roundmp-Zeiten M Internet. Folglich sollte Welght so gewaliit. werden, dass zeitliche Äaderungen der Warteschlangenlänge innerhalb von Peiiodeer von weniger als 100 ms ausgefiltert werden. Da RED funktioniert, indem es Signale an TCP-Flüsse schickt, um diese zu verlangsamen; könnte man sich fragen, was geschieht, wenn solche Signale ignoriert werden. Man bezeichnet dies auch als ,nicht-antwortender-Fluss-Problem", dem sich die Forschung mehrere Jahre beschäftigt hat.,Nicht-antwortende-Flüssebeanspruchen mehr als ihren ,fairenu Anteil an Netzwerkressourcen und sie können . zu einer v~lligenNetzverstopfung führen, f d s sie häufig genug auftreten, wie in Zeiten vor einer TCP-Flusskontrolle. Einige der Techniken, die in Abschnitt 6.5 b& schrieben werden, können bei der Bewältigung dieses Problems helfen, indem bestimmte Arten von Datenverkehr von anderen isoliert werden. Wir schließen unsere Beschreibung von RED mit hrlegungen zu der dgemeineren Frage, wann es empfehlenswert ist, Pakete zu verwerfen, bevor man durch eine ' volle Pufferwarteschlange ohnehin dazu gezwungen wird. Betrachten wir 2.B. ein , ATM-Netzwerk. Sendet man W - P a k e t e durch einen überlasteten ATM-Sdtch und ist der Switch gezwungen, eine der Zellen dieses Pakets zu verwerfen, sind die : übrigen Zellen für den End-Host nutzlos. Er muss die NeuÜbertragung des gesamten : AALS-Pakets anfordern. Das Verwetfen dieser anderen Z e k n ist also sehr sinnvofa auch wenn der Switch ausreichend Pufferplatz dafür hat. Diese T e c w wwde mtef . der Bezeichnung Pu*tiol Packet Discard (PPD) tatsächlich vorgeschlagen. Ein S M kann noch aggressiver ausgelegt werden, wenn man das RED-mit dem PPD-KW zept kombiniert. Das heißt, wenn sich ein ATM-Switch einer Oberlast nähert und die erste Zeiie eines neuen AALS-Pakets ankommt, m&ft der Switch diese d ., alle übrigen Zellen, die zu diesem AALS-Paket gehören. Dadurch kann das gesam* '
'
,
'
664 ~ i a i r O b e r l r 5 t w ~ n 1.485 g
j
P&%
nnd nicht nur der letzte Td davon verworb werden. Dies wird als Earb Pack& Dismd (EPD) bezeichnet. EPD wird oft mit RED verwechselt, ist aber -m+&h, Auikrdem trifft EPD die Entseheidmg, ob Pakete vierworkn wer-
&& n~maletw& mit Hilfe eines weniger ausgefelltm Algorithmus als RED, der arii momentane Pdferbelegungund nicht auf langebige fherlast reagiert.
um die frühen Phasen det
Überlast zu erkennen, und beschreiben dann einen spezifischen Mechanismus a fütlicher. Diese Techniken gründen auf dem allgemeinen Konzept, auf bestimmte chen vom Netzwerk Ausschau zu halten, dass sich die Warteschlange eines füllt und eine Überlast droht, fatls nichts dagegen unternommen wird. Di könnte 2.B. feststellen, dass sich mit zunehmendem Einreihen von Paketen in Warteschlangen der Router eine messbare Erhöhung der R'IT für ein nac von ihr gesendetes Paket ergibt. Ein bestimmter Algorithmus nutzt dies tung wie folgt: Das Überladenster erhöht sich normalerweise wie in TCP, j prüft der Algorithmus alle zwei Roundtrip-Verzögerungen, ob die aktuelle %erals der bisher beobachtete Durchschnitt der minimalen und maximalen Fenstergröge geändert werden soll, basiert auf der Änderung von und Fc gröf3e. Das Fenster wird jedes Mal nach zwei Roundtrip-Verzögerungen auf Grundlage des Produkts
L,_
(W- - Olldwl*) X
-
.
( G L U T B orcnrn) ~
',
brichtig Ist das Ergebnis positiv* die Quak & Eeasker@& um %flrai Iat es negativ oder 0, erhoht die Qdbda9 P a s t e g um &G xwdmak BaM M& U e ,daw eicb &s Fester bei jader B9riChä-* dh., ze sb
Dwch8azz mit dem, der v d c ~ r = & ' J s das Pemtm W ein Paket Meinet 9 der erreibt 4mrtks die IXffemp p ; s c r d~s dio Hilb des ~&ct;tlkd&wwde-wasb& ~ d e r ~ Y r i g d c t ~kt-, a l l der A l g o h u s das M e r M e h Paket. D b s Schema bmdmet den durch Qivi&aen &C A d VOXI Byte, die im lY&wetk a e durch a46 ein vierter M 9 den . wii w -li iiiuwlt d s ~
G
n b a die da% verwc$ttaq$c is< g q g e n w w Gie+&md . nni . (siehe dazu a d h Abdu& über weip&ibwa&+Lit~tur).
Abb, 6.18 deutlich. (Siehe ncr-~bendw bam »TCPVegasu.) Der obere Graph in Abh' 6.18.W d m g bw. & gleichen informationora, die f&her
IBIid&_
che Metapikr & das in Abb. 6.18 dargesteiirc Phänomen ist eine Eis. Der TacItö @herk&nster) zeigt vielieicht SO kmlh an, während
as bedeutkt, dass man tröchns 8 ktnh fährt. Die zusätzliche Enetgie die Reifen des Autos (Puffer des Routers] absorbiert.
TCP Vegas benutzt dieses Konzept z w Messen und Steuern der Menge asi zusätzlichen Daten, die gerade in einer Verbindung übertragen werden, wobei wir mit nzusätzlichen Daten. die Daten meinen, die die Quelle nicht übertragen rnwenn sie versucht hätte, sich exakt an die verfügbare Bandbreite des N e t z w d anzupassen. TCP Vegas verfolgt das Ziel, die wichtige* Menge an zusätziickgpr Daten im Netzwerk zu wahren. F d s eine Quelle zu viele zusätzliche Daten Sen* verursacht sie natürlich lange Verzögerungen und möglicherweise überlast. selbstverständlich ist, dass eine Verbindung nicht schnell genug auf voriibe Erhöhungen in der verfügbaren Netzbandbreite reagieren kann, wenn sie zu zusätzliche Daten sendet. Die Aktionen von TCP Vegas bezüglich lastvermeidung basieren auf Andelungen der geschätzren Menge an z u s ä d i ~ Daten im Netzwerk und nicht nur auf verworfenen Paketen. Wir beschreiben J Folgenden den Algorithmus im Detail. Erstens definieren wir die Ba eines bestimmten Flusses als die RTT ei&. Pakets, wenn der Dateduss nic t überlastet ist. In der Praxis setzt TCP Vegas & BaseRTT auf das Minimum a er gemessenen Roundtrip-Zeiten. Das ist üblichesweise die RTT des ersten in der Verbindung gesendeten Pakets, bevor sich die W q teschlangen des Routers auf Grund des von diesem Datenfluss erzeugten Verkehqi erhöhen. Wenn wir davon ausgehen, dass keine Oberlast in der Verbindung entsti.tt%, wird der erwartete Durchsatz durch
9
1
J
angegeben, wobei CongestionWindow das TCP-fllberlastfenster ist, von dem wir (zu& Zweck dieser Diskussion) annehmen, dass es gleich der Anzahl der momentan üby;r tragenen Bytes ist. . Zweitens berechnet TCP Vegas die h e l l e Senderate ActuaJRate. Dies durch Aufzeichnung der Sendezeit für ein bestirnmtes.Paket bewerkstelligt. Es aufgezeichnet, wie viele Bytes zwischen der. Zeit, in der das Paket gesendet wird, 4 der Zeit, wenn seine Bestätigung empfangen wird, übertragen werden. Dabei wird) die Sample-RTI' für das betreffende Paket bei Ankunft seiner Bestätigung b e r m und die Anzahl der innerhalb der Sample-RTT übertragenen Bytes durch diese diert. Dkse Berechnung erfolgt einmal pro Roundcrip-Zeit. Drittens vergleicht TCP Vegas die tatsächliche (ActuaiRate) mit der erwarteG (ExpectedRate) Rate und berichtigt das Fenster entsprechend. Sei Diff = - ActuaiRate. Man beachte, dass Diff per Definition positiv oder 0 ist, da ActuaiRgE$,,.; ExpectedRate, sodass wir BassRTT auf die d e t z t entnommene Sample-RTT a b k dern müssen. Wir definieren außeidem zwei Grenzwerte, a < P, die ganz a @ a m $ $ einer zu geringen Menge bzw. zu pogen Menge an nisätzlichen Da- im Netzwer& entsprechen. Wenn Difi a e r h ~ hTCP t Vegas das Oberlastfenster linear in der n#ht sten Rn,und wenn D i> ß, senkt TCP Vegas das Oberlastfenster lineai in der sten RTT. TCP Vegas lässt das Oberlastfaster unverändert, wenn a *: Diff < B, I, Daraus lässt sich intuitiv erkennen, dass um so mehr Oberlast im Netztae* besteh% je weiter -sich der tatsächliche vQm erwarteten Durchsatz entfernt, Wbedeutet, dass die Senderate reduziert werden soiite. Der ß-Grenzwert löst diese Senr
.md
die-
aus. Lies die tatsächkfu: Durchsatzrate andererseits zu >naheam erwartetem be&bt Gefahr, dasD die Verbindung nicht die v&bate Bandbreite rusa-Grenzwert & dann eine Erhöhung aus. Insgesamt wird- damir ckt, daes sich ständig zwischea a m d ß ~ u s ä Bytes ~ eim Netzwerk b&&
aai
+l.31s~dbb. 6.19
zeigt den in
TGP Vegas Benutzten Alm-
nir
Obcrlastvetmei-
h.Der obere Graph a i i t das Oberfaakmter mit den gleichen Uiformationen das
: '+bei den übn
,
,
:
Zkishnungen in diesem .Kapitel. Der untere Gmph migt die awwtete und tats3chiici.e Durchwate, die beide imbmen, wie das überlasdenstis gesetzt wird. Am unteren Graph hssr sich am besten erkennen, wie der Algorithijnls fwiktionierl. Die blaue L W smUt die ExpecbdRatg. dar, wabrend die schwarze biie die ActualRate angibt. Der blau schattierte Streifen steiit den &reich mischen ad &Grenzwert dar. Die Oberseite des sfhattierten Streifens ist a KBIs 4ctie Wntmua ß KBh von der emarretea Raa (ExpactedRate) e d a n t . DU h e l ist hier, die tatsächliche Rate (ActualRate) zwischen diesen beiden Grenzwerten, d.h. innerWb da SChatti~~eo Beeei&,.ni halten. Wem die tatdiehliche Rate mter den &t#W= Bereich Mit+fd.hsich m weit von der Rate +xa&mt),sucnlEz TCP &W& Oberhhasmr aus Furcht, dass zu viele Pakete im Nezwerk mischen,pichest werden. Steigt die tatsächlich Rate gnkmits.über den khattiemn d& an (tendiert also w nahe a& die erwartete Wate),. erhöht TCP Vqqs das @&rlswdemterrj 1 es eine ziu geringe Awbdes Netzwerks vermutet. Da der iUgoritb1is, wie s o e h &gestellt, den Unterschied zwischen der en und erwarteten Durchsatzrate mit den a- und ß-Grenzwerten ver-
:P:_
0,s
1,O
1.5
2,O
2,5
3,O
95
4,O
4,5
Zeit (Sekunden)
5.0
5,5
6,O
6,5
7.0
7.5
8,O
4 ausiitdicb M e x iH1Netzwe~kh+wllttl In der Pm& SiGh~~tieU~tgmnaaufcuienund.ßad~~rer:htgus. SddidUich Lloibs htzustellen, dass TCP Ydas was scheinbar einen K o d k t mit h r Regel darstellt, nicht mehr als
Bewertung eines neuen Überlastkontrollmechanismus Nehmen wir als Beispiel an, Sie entwickeln einen neuen Überlastkontrollmechanismus und möchten seine Leistung bewerten. Möglicherweise möchten Sie ihn mit dem derzeit im lnternet laufenden Mechanismus vergleichen. Wie messen und bewerten Sie lhren Mechanismus? Obwohl einer der vorrangigen Existenzgründe des lnternet früher einmal die Unterstützung von Netzwerkforschungen war, ist es heute ein riesiges Produktionsnetzwerk und daher für die Durchführung eines kontrollierten Experiments völlig ungeeignet. Wenn Sie einen Ende-zu-Ende-Ansatzverfolgen, also davon ausgehen, dass sich im lnternet nur FIFO-Router befinden, können Sie lhren Überlastkontrollmechanismus mit einer kleinen Anzahl von Hosts durchführen und den Durchsatz Ihrer Verbindungen messen. Hier ist allerdings Vorsicht geboten. Es ist überraschend einfach, einen Überlastkontrollmechanismus zu erfinden, der das Fünffache des Durchsatzes von TCP über das lnternet erreicht. Man speist einfach Pakete in einer hohen Rate in das Internet ein und verursacht dadurch Überlast. Alle übrigen Hosts, auf denen TCP läuft, erkennen diese Überlast und reduzieren die Rate, in der sie Pakete senden. Ihr Mechanismus verbraucht dann fröhlich die gesamte Bandbreite. Diese Strategie ist schnell, aber gewiß nicht fair. Auch bei sorgfältigem Experiment im lnternet werden keine realistischen Ergebnisse erzielt, wenn der Überlastkontrollmechanismus Änderungen in den Routern voraussetzt. Es i s t praktisch einfach nicht machbar, die auf Tausenden von Routern laufende Software zu ändern, nur um einen neuen Überlastkontrollalgorithmus auszuprobieren. In diesem Fall sind Netzwerkentwickler gezwungen, ihre Systeme auf simulierten Netzwerken oder privaten Versuchsnetzwerken zu testen. Die i n diesem Kapitel enthaltenen TCP-Zeichnungen wurden beispielsweise mit e i n e f \ ~ - ~ r n ~ l e m e n t i eerzeugt, r u n ~ die artf einem auf eiqem Nf?P1Simulatot M.Die Hemsforderun~ hi einer ~ l r n k t i o nodq Versuchsanlage liegt darin, eine dem echteh MsKnat . . mQg#chst,dkekaoftmende -, Topolq* und Verkebr$ast zu b ~ l d e ~ .,, , ". . . , , . . > .* , - - . . I
I
"
.
.
3
I,
1
'
vielen J a b versprahen p a k d Netzwerke die WntersWung von +MJtimdia-Anwendungen,d,h. solche, die Audia, Video und Daben kombinieren. @diei&ch wird aus Au& und Videoinfom~iionennach d a Digitaiisiemng wie j .ikijeder anderen Datenform ein zu übertragender Bitstrom. Die Erfüilung dieses i. Versprechens wurde dutch die Notwendigkeit von Leitungen mit höherer Band; breite verhindert. Kürzlich haben Kodierungsverbessemngetl aber d e Bandbreiten~ : von Audio- und VideoanWendungen .reduziert, bei gleihitiger Erhöhung der Leitungsgeschwifi&gkeiten. ' . Die Oberttaguug von Audio und Video über ein Netzwerk bedeutet allerdings b h als die Bereitstellung ausreichender Bandbreite. Die Teilnehmer eines Telefon) pprächs 2.B. mochten so sprechen können, dass eine Person auf das antworten ' b, was die andere gesagt hats und möghchst auch sofort geh& werden kam. .Die zeitgerechte hrtragung ist also sehr wichtig. Anwendungen, dieLemPfindlich :. ddie mitgerechte Datenübertragung reagieren, nennt man E ~ h t z i e i t a w d n g m , r . Sprach- und Videoanwendungen $in$ Paradebeispiele, es gibt abtx weitere, z.B. im . M c h der industriellen Steuerung. Befehle an einen R o b o t e r n sollen &sen errei: chen, bevor er etwas zerbricht. Sogar Dateitransfer-AnwendungenUrnen zeitliche '&schr'+en haben, 2.B. die Anforderung, dass eine Datenbanki't~a1isieru.n~ sb&schlossen sein muss, bevor das Geschäft am nächstenMorgen öffnet. Echtzeitanwendungb unterscheiden sich vor aiiem dadurch, dass sie eine Zusi-' '. & m g vom Netzwerk fordern, dass die Daten höchstwahrscheinlich rechrzeitig &ommen. Während andere Anwendungen mit einer Strategie der Ende-zu-Ende: h&iikrtragung s&hmteilen können, dass Daten kowekt ankommen, kann eine .~01cheStrategie keine Rwhtxeingktit bieten: Die Neuübertragung erhöht nur die ~tverzö~erung sodass , Daten zu spät ihr Ziel erreichen. Für zeitgerechte &ur& muss vom Netzwerk (denRowrn) und nicht nur von den Netzwerkrän(denHosts) gesorgt werden. Wir schließen daraus, dass das Best-Effort-Modell, , bei dem das Netzwerk versucht, Daten auszuliefern, jedoch nichts verspricht und die ' Bereinigung von Probleaen dem Rand des Netzwerks überbsst, für Echtzeitanwendmgen nicht ausreicht. Wu: brauchen also ein neues DienstmodeU, bei dem Anwendungen, die höhere Zusicherung benötigen, diese vom Netzwerk anfordern können. Das Netzwerk kann dann dadurch reagieren, dass es einen besseren Dienst zusichert :, oder zumindest sagt, es kann momentan nichts versprechen. Ein solches DienstmoW ist ehe Obermenge des aktuelien ModeUs: Anwendungen, die mit dem BestEffort-Dienst zufrieden sind, sollten in der Lage sein, das neue Dienstmodell zu nut. zen. Ihre Anforderungen sind ledigiich weniger strikt. Dies impliziert, dass das Netz:' werk einige Pakete anders behandelt als andere, was beim Best-Effort-Modeil nicht zutrifft. Ein Netzwerk, das diese unterschiedlichen Dienstebenen bereitstellen kann, , unterstützt Dienstgüte (QoS).
7
&it
:
:
I
~~
L
'
492
1
6 ~ ~ t r o l k u CksoouK«uut.llung n d
6.5.1 Anforderungen von Anwendungen Bevor wir die verschiedenen Protokolle und Mechanismen betrachten, die benutzt werden können, um Anwendungen Dienstgiite bieten zu können, sollten wir die Anforderungen dieser Anwendungen kennen. Als erstes können wir Anwendungen in zwei Arten unterteilen: Echtzeit- und nicht Echtzeitanwendungen. Letztere nennt man auch »traditionelle Datenanwendungen*, da sie traditionell den Großteil der Anwendungen in Datennetzwerken ausmachen. Zu ihnen zählen bekannte Anwendungen wie Telnet, FiP, E-Mail, Web-Browsing usw. Diese Anwendungen können ohne Zusicherung der zeitgerechten Obertragung von Daten arbeiten. Ein anderer Begriff für diese Anwendungskiasse ist elastisch, weil sie in der Lage sind, auch angesichts erhöhter Verzögerungen noch sinnvoll zu funktionieren. Man beachte, dass diese Anwendungen aus kürzeren Verzögerungen einen Vorteil ziehen können, dass sie aber bei höheren Verzögerungen nicht unbrauchbar werden. Außerdem schwanken ihre Anforderungen hinsichtlich Verzögerung stark, angefangen von interaktiven Anwendungen wie Telnet bis zum asynchronen Ende der Skala, wie 2.B. E-Mail, wobei FT'P etwa in der Mitte liegt.
Beispiel Echtzeitaudio Als konkretes Beispiel einer Echtzeitanwendung betrachte man eine Audioanwendung, die derjenigen in Abb. 6.20 ähnelt. Daten werden durch Abtasten des Signds durch das Mikrophon und Digitalisieren mit Hilfe eines ND-Wandlers (A D) erfasst. Die digitalen Abtastwerte werden in Pakete verpackt, die über das Netzwerk übertragen und am anderen Ende empfangen werden. Am empfangenden Host müssen die Daien in einer angemessenen Rate wiedergegeben werden. Wurden die Sprachrnuster beispielsweise in einer Rate von einem pro 125 ps abgetastet, sollten sie in der gleichen Rate wiedergegeben werden. Wu können uns also vorstellen, dass jeder Abtastwert eine bestimmte Wiedergabezeit hat: der Zeitpunkt, an dem er im empfangenden Host benötigt wird. Beim Sprachbeispiel hat jeder Abtastwert eine Wiedergabeieit, die 125 ps nach dem vorhergehenden Abtastwert liegt. Wenn Daten nach ihrer Wiedergabezeit ankommen, weil sie im Netzwerk verzögert oder verworfen und anschEieSend erneut übertragen wurden, sind sie im Wesentlichen nutzlos. Die vollständige Wertlosigkeit von zu späten Daten charakterisiert Echtzeitanwendungen. Bei elastischen Anwendungen wäre es gut, wenn die Daten rechtzeitig auftauchen, man kann sie aber auch benutzen, wenn dies nicht der Fall ist. Bei einer Möglichkeit, die sicherstellt, dass unsere Sprachanwendung funktioniert, wird darauf geachtet, dass aiie Abtastwerte für die tfbertragung im Netzwerk
00 0 Abb. 6-
BeEspiel einer Audioanwendung
WAWandr
'
gkch lang bnuthen. Da die Abtastwee d m in einer Rate von einem pra
befördert werden. Pakete so&n d W d m g e n M Switehen oder RouP ~ S Ssich
im zeitlichen Verlauf m&&he Vtmügemgen ergeben. potenzieii sogar bei jedem Paket eines Audiostroms unte&dlleb sein.
Linie zeigt, dass die Pakete unterschiedlich lange brauchen, bis sie ankomedergabe der Pakete inkonstanter Rate an, nachdem sie M Wiedergabepuffer Zeit gewartet haben. Solange die W~edergabeliniezeitlich weit genug rechts
unsere Audioanwendung gibt es Grenzen ,wie weit wir die Wiedergabe der
#4
1
6 I ) ~ ~ l k u Rne sd o u ~ i l u n g
Person erst 300 ms spiiter hurt, was man gesagt hat. Ww m6cht.min diesem FaU ahq vom Netzwerk eine Garantie, dass alle unsere Daten innerhalb von 300 ms ardr men, Kommen Daten früher an, d i e n wir sie bis zur richtigen Wkedwgabezei Puffer ab. Kommen sie spät an, haben wir keine ~erwendung uad verwerten+ Um besser einschätzen zu können, wie variabel Netzvenögerungen sein betrachte man Abb. 6.22. Sie zeigr die Einwegverzijgermg, gemessen über e m bestimmten Pfad durch das Internet im Verlauf eines bestimmten Tags genauen Zahlen je nach Pfad und Zeitpunkt schwanken können, ist Faktor hier die Variabilität der Verzögerung, die iibereinstimmend jederzeit auf jedem Pfad vorgefunden wird. Wie durch die kwuiativven Prozea~verteo b - @ Graphen angedeutet, hatten 97% der Pakete in diesem Fall uine Latenz von 1 0,al#! oder weniger. Wenn unsere Audioanwendung also einen Wiedergabepd'W 100 ms hätte, daan würden im Durchschnia 3 von 100 Paketen zu spät und wären damit unbrauchbar. Wichtig ist an diesem Graphen, dass d der Kurve d.h. wie weit sie sich nach rechts e m w t sehr lsng ist. Wir m den Wiedergabepunkt auf über 200 ms setzen, um sichenusrelien, dass alle
dafür
-
-
50
100
150
Verzögerung (Millisekunden)
..
Abb. 632: Beispielder Verteilung von Verzögerungen in einer Intemet-Verbindung &
Taxonomie von EdNmitanwendungen 5 Da wir nun eine ko-e Vorstellung davon haben, wie funktionieren, können wir einige verschiedene Anwendungsldassen betrachten, uns PIS Motivation fiir unser D i e n s d e l l dienen. Die grögtenteils auf der Arbeit von Clark, Braden, Shenker und Zhang (siehe Literm& hinweise am Ende dieses Kapitels). Die Taxonomie von ~ n k e n d u n ~ eist n i-d Abb. 6.23 zusammengefasst. Das erste M e r w durch das wir Anwendungen kategorisieren können, i~ Toleranz gegenüber Datenverlust, wobei %Verlust*entstehen kann, weil ein P d
Abb. 6.23: Taxonomievon Anwendungen
pb:1
p- , h&e RCrie&qpbe m spat ~ & o n x m mist sowie d d die üblichen Ursachen in a-etzwerk. An&mUts IraUn ein verlorene6 Audhomuster afr durch bic* &Fhcmxhbatten Muster mit relativ g e m r W~rkitagauf die wdwgenommene
b Adeixmeits ist ein Promamh f& die buepiinp: eines*R~botesein wsviel
m
wir E c h t a z j ~ w d ~ eals n tolwunt rind i n r t k u ~kategorisiekn, je ab sie eben ~ ~ Vmlust ruieheren ~ können. c (Nebenbei n bemerkt, IR&& Editgeitanwendungm $eigenüber einem ge1-n Verlust t ~ l e r a n t ~ h&&t U & t a a . d u n g m , Men veqgieiche beispieisweise unsere Audio& a g mit FIP,wo der nicht korrigierte Verlust eines Bits eine Datei völlig
mxhbar machen kann.) k&~gdei.V e r z o g von ~ Paketen auf ihrem Weg durch das Netzwerk anpassen. @wie f d m , dass P a k fast immt ianerhalbvon 500 ms nach ihrem VerBan snkommen, können wir den Wiedexgabepdct entspdend setzen und
spiiter ankommen, müssen wir sie verwerfen. WU:müssten sie demgeg nicht verwerfen, wenn wir den Wiedergabepunkt auf 300 ms belassen sollten den Wiedergabepunkt also nur vorverlegen, wenn er einen wahrn Vorteil bietet und wir einen gewissen Nachweis haben, dass die Anzahl der ten Pakete gering ist, beispielsweise auf Grund der beobachteten jüngeren oder einer gewissen Zusicherung seitens des Netzwerks. Anwendungen, die ihren Wiedergabepunkt berichtigen
Whßden zur Unterstützungvon Dienstgib Wem diese enorme Breite an Anforderungen van Anwendungen betra
W u sind jetzt soweit, uns einige Methoden anzusehen, die entwickelt v d e d e n e Formen von Dienstgüte (QaS) bereitnsstelien. Sie isrssen grobe Kategorien unterteilen:
flüsse bereimtellen.
Grobgramrlore Ansätze, die Dienstgiite für g r o b Verkehrsldassen oder gierten Vetkeht berei~teiien.
aus, um Echtzeitanwendungen zu unterstützen. Wir schließen daher unsere zu verarbeiten, unabhängig davon wie verbreitet QoS-Mechanismen wie ted oder Differentiated Services sein werden. !
C
. Die Int%w-Arbe
Pak%awgewm i s c , h spdfwimedl W ~ ~ $ ~ ~ d i a & s d k a t ü h e ~ v ~ n B a k ~ h r t~denkatul.Di~Wns€~mcrn
die ETE m c h webt= Dieme in
Selbstverständiich sind diese beiden D i e n d c h s a lediglich eine U aller Klassen, die bereitgestellt werden können. Es bleibt M Zuge des p Einsatzes der Integrated-Services a b z u w e n , ob sich & Anforderungen beschriebenen Anwendungsarten mit diesen beiden Didtklassen erfiiilea.
Obrnicht der Mlch.~ismen dungen diese Dienste bereitstellt. Dieser Abschnirt erläutert grob die werden. Das W~ckigste,was man aus dieser Diskussion gewinnt, ist ein V m c f n i s der Teile, die bei der Untdes oben undsennenDi nötig sind.
2 Mbids bd%&, and d e die gleiche Leitung mit einer Kapazität gemeinsam nutzen, muss das Netzwerk einige davon abweisen. Die wer abgewiesen werden soll, nenat man Zngawgskontmlle. Weiterhin bcn6tigen wir einem M a m u s , mit dem die Benutzer und Komponenten des Netzwarks selbst Infonnauonen austauschen k6nneq z ! ~ ' DienFlmSpeca 4 Entscheidungen im Rahmen & ~ u g a n g s k o ~ o l k b In der ATM-Welt nennt man dies ~Signalisierungu.Da d k 3egciff aber d m d 1cPIca
wird mit Wilfo eines R e s s o u r c ~ ~ g s p ~ o t oukmgdese stzt.
I
;aow*siiseu#*m
I
-
i Wurden Datenflüsse und ihre Anforderungen beschrieben und Zugangskontrolleritscheidungen getroffen, müssen die Switche und Router des Netzwerks die Anforderungen der Fiüsse erfüilen. Eine wichtige Rolle bei der Erfiiiiung dieser Anfoldem g m spielt die Art und Weise, wie Pakete in den Switchen und Routern in Wirteschiangen eingereiht und für die Ubertragung eingeplant werden. Diesen letznin Mechanismus nennt man Paket-Scbeduling.
Die FlowSpec besteht aus zwei separaten Teilen: Ein Teil beschreibt die Verkehrsmerkmale des Datenflusses (TSpec) und einer den vom Netzwerk angeforderten Dienst (RSpec). RSpec ist sehr dienstspezifisch und relativ leicht zu beschreiben. Bei einem Controlled-Load-Service ( C U ) ist die RSpec 2.B. trivial: Die Anforderung verlangt ledigiich den C U ohne weitere Parameter. Bei einem Guaranteed-Service (GS) könnte man eine Verzögerungsgrenze spezifizieren. (in der GS-Spezifikation der IETF wird keine Verzisgerung, sondern eine andere Größe spezifiziert, aus der die Verzögerung berechnet wird.) Die TSpec ist etwas komplizierter. Wie unser obiges Beispiel gezeigt hat, müssen wir dem Netzwerk ausreichend Informationen über die vom Datenfiuss benutzte Bandbreite bereitstellen, damit intelligente Entscheidungen hinsichtlich der Zugangskontrolle getroffen werden können. Bei den meisten Anwenduugen ist die Bandbreite keine einheitliche Zahl, sondern variiert ständig. Eine Videuanwendung erzeugt z.B. im Allgemeinen mehr Bit pro Sekunde, wenn die Szene rasch wechselt, als bei einem Standbild. Die Kenntnis der langfristigen durchschnittlichen Bandbreite reicht nicht aus, wie das folgende Beispiel zeigt. Angenommen, wir haben 10 Flüsse, die bei einem Switch an getrennten Eingangs-Ports ankommen und ihn alle über die gleiche 10-Mbids-Leitung verlassen. über ein angemessen langes Intervall sendet jeder Datenfluss erwartungsgemäi( nicht mehr als 1Mbids. Man möchte meinen, dass dies kein Problem darstellt. Handelt es sich aber um Anwendungen mit variabler Bitrate, z.B. komprimiertes Video, senden sie gelegendich mehr als die jeweilige Durchschnittsrate. Senden entsprechend viele Quellen mit mehr als ihrer DurchSchnittsrate, ist die Gesamtrate, in der die Daten beim Switch ankommen, größer als 10 Mbitls. Diese überschüssigen Daten werden in eine Wartedange iestellt, bis sie auf der Leitung übertragen-werdenkönnen. Je länger diese Bedingung vorherrscht, um so länger wird die Warteschlange. Pakete müssen eventuell sogar verworfen werden, aber aiich, wenn es nicht dazu kommt, verzögert sich natüriich ihre Ankunft am Ziel mit zunehmendem Aufenthalt der Daten in einer Warteschlange. Bei einer entsprechend langen Verzögerung der Pakete kann der ursprünglich angeforderte Dienst nicht bereitgestellt werden. Die Einzelheiten, wie wir unsere Warteschlangen verwalten, um die Verzögerung zu kontrollieren, und das Verwerfen von Paketen vermeiden können, wird weiter unten beschrieben. Man beachte hier aber; dass wir etwas über die zeitlichen Schwankungen der ~ a i i d r e i t eunserer Quellen wissen müssen. Eine Methode, die Bandbreitenmerkmale von Quellen zu beschreiben, wird als Tokm-Backet-Filter bezeichnet. Ein solcher Filter wird durch zwei Parameter beschrieben: eine Token-
Abb. 6.24 Zwei FlüssemitgleichenD aber unterschiedlichenTo
2 3 Zeit (-M)
4
Rate 7 und eine Budet-Tiefe B. Er funktioniert wie folgt: Um ein Bfle können, brauche ich ein Token. Möchte ich ein Paket mit L ä a g ~n senden ich n Token. Ich beginne ohne Token und akkumaere sie mit einer Rate
wiee Burst von maximal B Byte mit maximaier Geschwindigkeit in das fiir den Z ~ n t r o l l a l g o r i t h m u sist, wenn er herauszufinden versuch$ einp neue Dienstadrage zulassen kann.
k m , die er dann in des dritten Sekunde (zusammen mit den neuen TatCe
Ende der dritten Sekunde, nachdem er die überschÜss@n Token er wieder mit begiiuit er erneut mit dem Anhäufen von Token, WIoterawnt ist hier die Feststellung, dass eh Dateduss schiedene Toka-Buckets beschrieben werden kam. Ais trides
~~
Mitarbeiter abweisen möchte, Selbstfrerständikh kann auch die Reservie
.
.
A b r U i t geschenkt wurde.
-%-
R(~~rvisnimgrptokdl
werke unterscheidet. .
gen verbindwgthwn N e m k e nicht beeinträchtigen s u b . . Da verbind IUammrke von wenig oder gar keinem im Netzwerk selbst gespeichqten a&Sn$sn, könnm,Routef absttirzeh und neu starten und Leitungen aufh
t werden, wahrend
die Ende-zu-Ende-Komn&tivit:Gt bestehen bleibt.
'sucht, diese Robustheit dadurch zu wahren, dass es das Korizept des S
R ~ b 9 t h e i?xiträgt, t wird später beschrieb. Als weiteres wichti$e~~ Merkmal ,nielt RSVP auf eine ebenso effektive Un zung von Mdticast-Datenflüssen wie die von Uaicast-Datedluwn ab. Die nicht iiberraschen, weii die in i n a e votgefundenen Anwendungen, z.B+ V& natütlkh frühe Kandidaten fär die Nuaung von khtzeitdiensten sind. Widder v ~ RSVP n erkanawn unter anderem, dtiss die misten Mulaea
63 MSn+it?gflt.EQaSD [ 103
J&
bumauf dem Pfad eich s b h die ae8e-n-
ren werden auch etwa aiie 30 %km-
&& ein Router eine Änderung in seierste PATH-Nachricht nach da Stabidem aewa P f d eh.hrn;visEhen eshalten die Route4 die cgen, keine weiteren RESV-Nachrichten; diese Resewie-
504
1
6 ~khakmmlkiumlikuou~itung
rungen laufen ab und werden freigegeben. RSVP bewerksteliigt Topologie& &n also recht gut, solange sich Routen nicht zu häufig indem.
Sender in einer Gruppe und mehrere Empfänger M.6.25 dargesteut. Zuerst befassen wir uns miz mehren Empfängern einzigen sende^ Während eine RESV-Nachrichtdurch den Multbst-Baum flieh, trifft sie wahrscheidich auf eine Stelle irn Vierung eines anderenEmpfängers aufwärts reservierten Ressourcen z.B. bereits über eine Reserv 100 ms verfügt und 200 ms anfordert, ist gegenüber eine Verzögerung von weniger als 50 ms senden. Wenn Empfhger A das nächste Mal eine Mindesmdgeuag vota anfragt, müsste der Router diese Anfrage nicht \weiterl&en. Im allgemeinen Reservierungen auf dieseW e i s o r w m n g e M werden, um die Adordemqpi Empfänger downstream hinter dem Zusammeniühningspunkt zu d e n .
h6ren. RSVP hat unterschiedliche Reservierungsarten, um Optionen wie Ressoikilcer! für alle Sprccherx, .Reservier& Ressourcen für n Sprecher* viere ~esssbrcennur für Sprecher A und B* zu unterstützen, Durchfllhrung von
M
Assoziierung jedes Pakets mit der enfsprechen&en
P h ' Verwaltung der ~aketein den P ' B-s, D i k cfthhgn. Diesen Prozess ntmtt man
-
Sodas9 sie desi .cb&ng von
D e r ~ s t c r T d ~ i g t ~ ~ ~ g v o a b b z w ~ F ~ i o i m
~
l
p
t
j
t
d
e
m
F
~
~
i
r
n
~
~
benutzen.) Auf etor Grundlage dieser CS-Dadiusses sein, der getrennt de3nmarat.Kruz:&&~h
t i m im Paket-He& auf einen'ekzign-Q, der die des Plaketai in & W - a n g t hesim~t.'&iGS-Da'tedIiis~~~ kam & eist$$!
ruugk g e n vorn ~
a
r
t
d
~
-
~ sib. ~
.,
;
&
t
~ ~ f l ~ ~ s e i n , ~ c t 0 ~ ~ 9 i ~ e b e s ~ e i f i e ~ 1 ]
spezibiq, Viehehr ist dies ejn &reIch, indan
Fraganzur SWierbarkdt Während die Architektur der Intemated-Services und RSVP eine bedeutmde W g des Best-Eflort-D~ode11s von TP ist, faaderi viele 1 n t ~ - M - W da, dlg es sich nicht fsh.sie e $ b h Der Gnmd für d*ac Zunidrbalmag ber*hrq auf ein& der grundlegenden Designziele vm P:Werbarkeit. Beim &SrDiensanodeli speichern die Rautez M Interna w d g oder gar keinen zustand'&@
6.s
I
f-etpww)
I
W
Dahenfliisse, die durch sie hindurchfli&, Mit zunehmeder Grö& des 3tniternet müssen die Router also nur mehr Bit pro Sekunde weiterleiten und gröhre Wouaing-Tabellenhandhaben, um mit diesemWachstum Schritt zu halten. RSVP bie&*lnm
aber die weitere Möglichkeit, dass jeder d d einen Router fiießende Datenstrom b e entsprechende Reservierung haben kann. Um die Bedeutung dieses Problems zu &stehen, nehmen wir an, dass jeder D a t d u s s in einer OG4BLeirung (2,s Gbids) &BPI 64-Kbids-Audiostrom darstellt. Die Anzahl solcher Rüsse betragt , L
2,5 X lu9/ 64 x 103= 39.000 I
Jade diesei Rcsemi-gen
beniitigt cine gewhie Menge an Zusmdsinhrmatimm, & iai Speicher abgelegt und p e r b h c h adgefrbcht werden muss. Die Router müsb ~ 8 3& jeden dieser Datedüsse iKlassifizitrung, Policulg und Warteschlangen verwaktt. jedes M, wem ein solcher Dateduss eine R d e n t x r g anfordwt, müssen ' Zqyngskontralilentscheidungcng e t r u h werden. Darüber Binaus sind MccbisSWI aötig, un Benutzer wWc-geng, damit nicht bdiebig s o ß t IReservie' baui'$en flir iange Perioden dnn:hg&ihrt w e r d d . Dh Fragen in Bezug auf die Skalierbarkeit haben bisher die Anwendung von - begmtedSeruies in der Breite verhindert. Aufgrmd dieser Bedenken w u d m @&re Verfahren entwickelt, die weniger Zuaandsinfom.tknen pro Datmflws &ordern. Ehige dieser Ansätze werden im n3chsten Abschnitt vor&steift. V
-#I
&Sir Differentiated-krvtar - .
'
Wiikend die Architektur der. nitqpted-Services eimehen Datenfiüssen Rmsoucen &teilt, weist das Modell der Differentiaed-Servites,(oftmals knrz als Diftoem h i c h n e t ) Ressourcen einer kleinen Zahl von Verkehrsklassen zu. Einige vorgecdagene Methoden fiir Diff&m teilen einfach den Verkehr in zwei Klassen auf. Das ist ein sehr pragmatischer Ansatz: Wem man sich die Schwierigkeit seitens der Hetzbetreiber überkgt, allein nur e h Internetwork mit dem Best-Effort-Dienst reiWnplos zu betreiben, mag es sinnvoll s&, das Dienstrnodell nur in kleinen Schrit, ten zu erweitern. ' Angenommen, wir w o b das Best-Effort-Dienstmoddl um eine neue Klasse &weitem, die wir ~Premnimunwnen. Natürlich benötigen wir eke MOglichkeit hnisteilen, welche Pakete zu Premium und welche zum regulären Best-EffortDienst ~ehören.Statt ein Protokoll wie RSVP zu benutzen, um allen Routw mitzumh,dass ein bestimmtet D a d u s s Premium-Pakete&ndet, wäre es viel ehda&er, wenn sich die Pakete einfach selbst bei Ankunft iiem Router zu erkennen geben k h t e n . Dies könnte man selbstverständlich mit Hilfe eines Bits im Paket-Header bewerkstekgen. Ist dieses Bit eine 1, handelt es sich um ein Premium-Pakeq ist es S. Die E&ebnhg einer Gebühr pto Reservierung wäre eine M6glichkeit des Zunickdtiinmit dem TelefonmodelJ der Berechnung pro Telefongespräch ver$&hbar : WS, ist. Dies ist nicht die e W g e l$4Q&chkeit des Zurüdednhgew, die Berechnung pro Gespräch gilt aderdem als einer der grö%tenKostenposten hBetrieb des Telefonnetzes.
eine 0, wird das Paket nach dem Best-Effort-Dienst abgewickelt. Vor diesem gmnd müssen zwei Fragen gcklaa werden:
r Wer setzt das Premium-Bit und unter welchen Umständen? Was macht ein Router anders als sonst, wenn das Bit bei einem ank Pak? gesetzt ist?
A d die erste Frage gibt es viele mögliche Antworten, jedoch wird einer administrativen Grenze gesetzt. Der Router am Rand des Internet-Service-Providers(ISP) kann z. Interface ankommen, das den ISP mit dem Netzwerk eines b d t e n mens verbindet. Der laternet-Service-Providerkann dies W, weil das Un füs eben höheren als den nicht alle Pakete als P d u m gekennze figuriert werden,-dass Pakete bis zu e Pakete gekennzeichnet und aiie übrigen Falls Pakete auf irgendeine Weise was die Router mit diesen viele Antworten. Die IETF-Arbeitsgruppe wDiffw:eabate&Wcaa mit der Sa;mdar&mg eher Reihe von Router-Verhaltensweisen für dung auf g e k e h n e t e Pakete. Man m t diese Verhaitenswekn » &+viors* (PHBs). Dieser Beg& deutet darauf hin, dass das Verhaitäi Router und nicht das von E n d e - z u - E n d e - D definiert wird, Da es neue Verhaltensweisen gibt, paket-~eade~ um den Ro hat sich entschlossen, des alte, ohnehin nvhr hpufig bwutate TOS-Byte aus hq Header zu verwenden und es neu zu definieren. Secss Bit diaes.Bytes w#rdtm& ~DiffServCode Pointsa (DSCP) zugeteilt, wobei jeder DSCP ein 6-BittWert
(EF)bezeichnet. Die Router mit minimder werden. Ein Router Ank&ate von
ha.4
muss %B. sicher sein*d.88 die Ankwftwate von =-Paketen fiir diese 100 Mbids iik&eilet. Er möcbte mij&dww& sogar sicher gebe& *,.&J@ Rate unter 1 0 Mbids iiegt, S er gekgedich Zeit h andere P z.B, Rout.iug-Akttd&~en,zu senden. Die R i t e n b e g m a q von W-Paketenwird dadurch erreicht, dass man die ter am Rand einer administrativen Domaiu sa kodigwiert, dass bestimmte Höchstrate für die in der Domain aukonmendsn EF-Pakete wird. Ein einfacher; wenn auch konservativer Assan. wke die Sicherste die Summe der Raten d e r in die DcmdmeinEF-Bake~e Bandbfeie des langsamsren Leiriing der Domain irrt. Dies würde mh im
Fall, wem alle EF-Pakete tibes d e l a s ~ s t Leitung e transferiert werden mii;ssen, die Gewähr bietan, dass die Leitung nicht überlastet wird und sich komeh m~haltealwm stm
Fiir da$ EF-Verhalten dbt es m e h r e mcighche hglementierungsstrategien. Bei einer der Stra-ien ~ h d b e nEF-Pakete strikte Priorität vor dkn anderen P h n . I3ei einer weiteren wird &a WFQ zwischen EF-Paketen ruid anderen Paketen angemdtl wobei die EF-Gewichnmg ausreichend hoch gmtizt wird, sodass alle EFP&de whneli ausgeliefert werden k6nnen. Dies hat gegeniiber der sdcten Priorität eErtea Vorteil: Andete als EF-Paka a.halten immer noch Zugang zur Leitung3auch lnen h h e m U-Viskeht Dies kann bedeuten, dass EF-Pakete nicht genau das speaifisierce Verhalten bekommen, wiirde aber auch verhindern, dass der eminent wichtige huting-Verkehr aus dem Netzwerk im FaU eines sehr hohen EF-Verkehrs »ausgesperrtu wird. Ein weiterer PHB wird ;ils ~AssuredForwardingc (AF) bezeichnet. Diese Verhalttmmtise hat ihre Wurz& im RIO-Ansatz (*RED with In.and Out*) bm. ~Weight a i RED«,die beide Erweiterungen des grundlegenden, in Abschnitt 6.4.2 beschriehnen RED-&orithmus sind. Abb, 6.26 zeigt, wie RIO funktioniert, Wie in W ,6.17 ~ h e wir.@& n Dcop-Wahrscheinlichkeit auf der y-Achse, die sich erhöht, wem die d u f & ~ t P l i c h e~armchlan~enlänge enrlang der x-Achse wkhst. Hier bben wir für unsere biden Verkehrsklassen aber zwei getrennte Drop-Wahrscheinki&ei&urven. In RIO werden die beiden Klassen »In« .und BOW-a genannt; die W d e dafiir werden im nächsten Absatz erläutert. Da die Out-Kurve &ea niedrigeren MinThreshdd als die ln-Kurve hat, werden bei geringem Uberlasndang nur PS- mit d a Ke~zeichnung*Out« vom RED-AAgoaithmus verworfen. Verstärkt 54eh die Oberlast, wird ein hoherer Prozentsatz von Out-Paketen verworfen. Wem Baan die durchschnittliche Warteschlangenlange Mnh überschreitet, beginnt RED damit, auch In-Pakete zu verwerfen. Abb. 6.26: RED mit In- und Out-Drop Wahrscheinlichkeiten
; Der G m d dafür, warum die beiden Paketkiassen »In& und nOut« genannt werden, i
ist auf die Kennzeichnungsart der Pakete zurücErzuführen. Wu haben bereits festge-
V
srellt, dass die Paketkennzeichnung von einem Router am Rand einer administrativen
davon, wie das Profil geartet ist, kann der Kanten-Routerdie Pakte3
Kunden dominen, entweder als In (innerhalbdes Profils) oder Out seoda, werden alle sehe Pakete mit +Iaa gekennzeichnet. Sobald er aber &se i i b e d e i t e t , werden die ührschhigen Pakete mit *Owu markiert.
keine Garantie) bictea, dass Pakete innerhalb seines Prafil Kunden gesendet werden, die keine zusnlichen Profils h h l t haben, um *Outs-Pakete, 8 o i b und die Oberlast so niedrig halten, dass wIna-P Narütlieh muss im Nctzwetk ausreichend Ba&r*
vorwen
noch in der Diskussion. Ei interessantes Merkmal von RIO ist, dass es die Reihenfolge von *I von denen einige als *Ins- und andere als *Out* ProfiWer und erhalten diese Pakete unterschie in den Router-Warteschlangen, werden sie dem Empfänpr dennoch Rthnfolge zugestellt, in der sie gesendet wurden. Dies ia bei den
Pakete auftritt.
W w (siehe Abschnitt 6.22) ~~t können W& eben C h k p d beautza, asn & h-Eflon-WP* azu bezeichn011wnd einni mn die Dienst on dear t a a Last durch Pmnim-P&e ab wenn ;hlange beispielstweiae eine Gewidmag von 1und dcer BestC w)n 4 geben, stel~en'wirfür Premium-Pakete eine verhgQ
~~
.
f?i%mbm=W-/(W-+
~~as~ew)
= 1/(1+4
gtEdfk
um-Verkehr vehaltea, als liefe er in einem stark sich ein hervorras& Dienst ergibt. Die von der sehr niedag halten, weil WFQ verunmittelbar nachihrer A n k d zu 30%, würde sie sich wie belasteten Namerk verhalten2und es kann sich fwr die Premium-
.Fd&h
sind h b dertatsikhhchenLaa und mrgfiütageWahl der um-wamwhkqe sehr konservativ vorzugehen. Ist &W rt-Verkehr niebt an der Nutzung von
, *erlei Hinsicht ähneln die in ATM-Netzwerken bereitgestellten QoSw e i t e n denen in einem IP-Netzwerk unter Verwendung von Integrared-Services.
Die ATM-Standardisierungs~mienhaben aber im Vergleich zu den drei ~~6 der IETF insgesamt Dhdefiniere Is Constant Bit Rate (CBR) B Variable Bit Rate - real-time (VBR-rtj r Vamiabfe Bit Rate - non-rd4me (WR-nrtf W Avaiiable Bit Rate ( M R f B Unspecified Bit Rate (UP~R) Die meisten ATM-und IP-DienstkIassen äbneia sich, ABR hat aber kein
VBR-rt ähnelt sratk der GS-Klasse der Integrated-Services von P.
pin@&g von denen in einer h s c r v i e ~ n gfiir iuien G§, das rakerisiert, und die maximak durch das Netmmk edordd&e
M e i W aJra~&teri. -8
-r. ,
-.
-
7
.-
J
..
.
r-..
..P"
-7-
.*.
.. I d
7 . .
L
,.
6. WVbetrachten Best-Edfortwie Controlled-Load- und Guamkteed-Miceals
ein Token-Bucket spezifiziert, es gibt aber nicht die gleiche antie wie bei VBR-rt oder beim Guaranteed-Service in IP. ist der Best-Effort-Dienst von ATM. Es besteht zwischen UBR und dem in IP ~est-~ffort~~tandardmdeli nur ein kleiner Unterschied. Da ATM vor dem en von Daten immer eine Signalisierungsphase fordert, können Informationen Quelle zum ZRjiunkt des VC-Aufbaus übermittelt werden. UBR ermöglicht lie, eine gewünschte Mawnalrate zu spezifizieren, die geringer als die Leisein kann. Switche können diese Informationen bei ihrer Entscheidung her,ob sich die Zulassung des neuen VC nachteilig auf die bereits eingerichteten auswirken könnte. Sie können folglich den VC-Aufbau ablehnen oder versuchen, niedrigere Spitzenrate mit dieser Quelle auszuhandeln.
b
n
t u m ~wtenauitmu
kann sich dynamisch findem
h r - H e t e r o g e n Wt
I Gieiieitig mit Routenaufbau
II
W bWbt Mr die Lebensdauer b Verbindung statisch (Win ABR sba etwas flexibler) Eiitliches QoS Kir alle Empfänger
6.1: RNP und ATM-Signalisierung irn Vergleich
ABR ist mehr als nur eine Dient&-.
'
Sie definiert
iqa die EndpwLkae des VC sind, muss dics nicht unbedmgt
und eines virtueilen Ziels,/W) cio. Sie &CI in dem S h *virtuell«, dass echten Endpunkte des VC sind Dadurch kann eine Kontrollsdeife, in der Zellen kreisen, küner & det VC s e l k sein. Durch Verkibwg d a fcn rdwiert sich die M o n s a e i t des Spstemg. Dcs weiters kann einer überlast und der Vor-ung
der (virtuellen) Quelle
setzt in diese Zellen die Rate ein, in der er Verkehr von diiesem VC möchte. In seiner Rolle als VS ist er auch der Urheber von RM-Zeilen
L
d -
&s wirklichen Ziels, das seinerseits an die VS zurückschickt, mit welcher Rate die
VS Verkehr auf diesem VC senden kann. RM-Zellen 1
1 s l l 1-'
Frage,die wir um d e n können. I% halb ist es korrekt,XML als Gemraü9knmg von HTML zu betrachten.) Um diese A-be zu lijsen, erlaub$ cai XML den Benutzam, ein Mesns zu c;fei nieren. Dabei handelt es sich um einen Datenbdbepgiffiiir .ehe dafüi; wie eine Sammlung von Daten zu intetpmtieion ist. Naehbigcnd *.a ein Schema fijv das abige k p i e l . Bdan beachte, dass da& S&mm selbst ein XA4L-Dokument ist, das h h e x Datei namens cmpbyee.xsd gespickt kann. version=' l.On?> *xs:schema xml ns:xs='http://wnn.cs c?xml
.princeton.edu/XMLSchema" targctWwspace-"http://mm.cs. pri nceton.edum xml ns~'http://uw. CS .prtnceton .edun elementFormüefau1t="qual ifieda+
,
-q +% 79:
14
cxs :el m n t niune~"eayo1 omn> <xs: comple x T y w cxs:seguence> <xs:elemnt nm=*nameY type="xs:stringUP <xs:element name="titleU type="xs:stringn/> <xs:element name="idU type="xs:stringn/> *xs:elment name="hi redateU> <xs :compl exType <xs:sequence> <xs:element name="dayY type='xs:integerl'/> <xs:el ement name=hnthU type="xs:stringY/> <xs:element name=*yearn type=*xs:integerH/> '/xs :sequence, O
wobei pixel(x, y) der Grauwert des Pixels in Position (X,y) in dem zu komprimierenden 8x8-Block ist; und es gilt in diesem Fall N = 8. Der erste Frequenzkoeffizient an Position (0,O) in der Ausgabematrix wird DCKoeffizient genannt. W ir können erkennen, dass der DC-Koeffizient ein Mag des Durchschnittswerts dei 64 Eingabepixel ist. Die übrigen 63 Elemente der Ausgabematrix sind die so genannten AC-Koefizimten. Sie addieren die Informationen der höheren räumlichen Frequenzen zu diesem Durchschnimwert. Geht man also vom ersten Frequenzkoeffizienten in Richtung des 64., dann bewegt man sich von Niedrigfrequenz- zu Hochfrequenz-Informationen bzw. von den groben Zügen des Bildes zu immer feineren Details. Diese Koeffizienten der höheren Frequenzen verlieren für die .wahrnehmbare Qualität des Bildes zunehmend an Bedeutung. In der zweiten Phase von JPEG wird bestimmt, welcher Teil der Koeffizienten weggeworfen wird.
~witbie;wigs~hw In der zweiten JPEG-Phase ist die Kompression verlustbehaftet. DCT selbst verliert keine Informationen, sondern wandelt lediglich das Bild in eine Form um, durch die sich leichter entscheiden lässt, welche Informationen entfernt werden können. (Rh DCT-Phase an sich ist zwar nicht verlustbehaftet, auf Grund der Verwendung der Festpunktarithmetik geht aber eine gewisse Präzision verloren.) Die Quantisiemig selbst ist einfach; es handelt sich lediglich darum, die unbedeutenden Bits der Frei quenzkoeffizienten wegzuwerfen. Zur Veranschaulichung der Quantisierungsphase stelle man sich voq man möchte einige Ganzzahlen unter 100 komprimieren, z.B. 45, 98,23, 66 und 7. I& man damit zufrieden, dass diese Zahlen auf das nächste Mehrfache von 10 abgeschnitten werden, könnte man jede Zahl mit Hilfe der Ganzzahiarithmetik dur& das Quantum 10 dividieren, was 4, 9, 2, 6 und 0 ergibt. Diese Zahlen k&& jeweils in 4 Bit, statt der für die Kodierung der Originalzahlen erforderlichen 7 kodiert werden. Statt das gleiche Quantum für alle 64 Koeffizienten zu benutzen, verwenchg JPEG eine Quantisierungstabelle, die das für jeden Koeffizienten zu benutze& Quantum gemäß der unten folgenden Formel enthält. Man kann sich diese Tahdlb (Quantum) als Parameter vorstellen, der gesetzt werden kann, um zu b e s t h m a +
6
< f
!
ivie viele I
f o v d~ ~ und &meatspr&d, w e h e Kwps~siort In der Piraxisspezif&@ d&r JFH3-be h e RoiBe von Qumrisie-
n
, d l c ~ f g T & ~ w d t g r r a l e i r W ~ ~ blhi.EinWpieli% Tabek wie ;i m h h n die niedrige den niedrigen Frtqu-ebl wenig i I[.mffiventen haben g6Bete Werte (d.h., dass mehr Info~niah- in den hohen Frequenzen verlorengehen). Ab Eqpbais solcher Quands-bellen werden viele der Koeffbhtain Bober Freqwcnaa nach der Q u m m auf 0 ,gesetzt, L - d u r c h sie für die weites&K o r n p ~ b n In der dritten Phase m k e i t e t werden. . Die grundlegende Quantisierungsgteichung laut* &M
!
wobei
Die Dekompression wird dann einfach wie folgt definiert:
i, '.
War da D G K o e f i i a t (bh.DCi(0,O)O))fiir e h 6 bestimmten Block z.B. &ich 25, orrölrde die Quantisierungdieses Werts mimls Tabelle 7.l folgendes ergeben: .
1
[2513 + O,S] = 8
r
;
Durch die Dekompression würde di-
Koeffizient dann als 8x3=24
I
wiederhergestellt werden.
Quantum =
3
5
7
9
11
5
7
9
11
13
7
9
11
13
15
9
11
13
15
17
11
15
15
17
19
13
15
17
19
21
15
17
19
21
23
17
t9
21
23
25
hbrHe 7.1: Beispieleiner JPEGQuantisierungstabelle
Kodierungsphase In der letzten JPEGPhase werden die quantisierten Frequenzkoeffizienten in eine kompakte Form kodiert. Dies führt zu einer zusätzlichen, aber verlustlosen Kompression. Beginnend mit dem DC-Koeffizienten in Position (0,O) werden die Koeffi-
s
5e
1
7
zienten in dem in Abb. 7.12 dargestellten Zckzackmaster verarbeitet. Entlang &W ses Z b k m u s i t e r s wird &e Form der Lauaiingenkodierung benutzt, dh., W. q&dnw auf die 0-Kdfizienten angewandt. Dim ist von Bedeutung, weil vieh h tm Koeffizienten Q sind. Die einzelnen Koeffbbtenwerte werden daran mit H$& eines Hiiffman--Codes kodiert. (Der JPEG-Standard erlaubt die Implementbuqg einer arithmetischen Koan SteUe des Huffman-Codes.) Abb. 7.12 ~ckzackdu~hquening der quantisierten
- F
Da der DGKoeffizient einen großen prozentualen Anteil von Informationen übgp den 8x8-Block des Quellbilds enthält und ein Bild sich von einem Block zum M&sten nortnalerweise nur wenig ändert, wird jeder DC-Koeffizient als Unterschied, . zum vohrigen kodiert. Das ist die in Abschnitt 7.2.1 beschriebene Delta-Kodlo rung.
c.ibblldU Bei der obigen Diskussion wurde davon ausgegangen, dass jedes Pixel durch eines . einzigen Graustufenwert angegeben wird. Bei einem Farbbikl stehen demgegenübe füt jedes Pixpl viele verschiedene Darstellungen zur Wahl. Bei einer als RGB bezeicb neten Darsteliung wird jedes Pixel aus drei Farbkomponenten mmnmeng-. Rot, Grün und Blau. RGB ist die Darstellung der normalerweise von grafischen Einund Ausgabegeräten unterstützten Farben, Bei einer weiteren Darstellu11gsforn namens YUV werden ebenfalls drei Komponenten zugrundegelegt: ein Lumiaaaa(Y) und zwei Chrominanzwerte (U und V). Wie RGB ist auch YUV ein dreidirnew sionales Koordinatensystem. Im vergleich zu RGB werden seine Koordinaten abw gedreht, um sie besser an das menschliche Sehvermögen anzupassen. Das ist vm , Vorteil, weil das m d c h e Sehvermögen nicht auf alie Farben einheitlich reagiert, Wir können 2.B. die Luminanz (Leuchtdichte) eines Pixels viel besser als s e b ~ Farbton erkennen. Warum die drei Komponenten in jeder der beiden Darstellungen kombiniert wgm den können, um akzeptable Farben zu produzieren, ist eine interessante Frage. Di6 einfacheAntwort darauf hutet, d a s sich die mit zwei Koo?dinaten definierten FarbSysteme für die getreue Reproduktion von Farben, wie sie von Menschen wahrge
7.2-1m
ben. E& unsere Diskassion is wichdrci gebtcnmi Wkrre-$ebien wird. jede dieser idaei K o m p m a m u n a b h weise k e c i r , wie eln t!!&z&m G m us* lradn man sich Cnn Farbb-ild als der Anzeige übereinan& gelegt werden. In onenten-BMet begrenzt; man kann .auch vori Variationen, mit denen sfch steuern k t swie viel K o m p r d a man gegeniibrr dw Bildaeue emleht.
Dies Imt BiGh beisFie~owekdurch Verwendung verschiadener Q u a n t i s k ~ ~ bewerbtellie n W. Diese Variationen und die Ta&, dass verschiedene Bilder m t e r s c h i e W M b r h l e aufweisen, machen die gefiaue W e m g e der mit JlbW eaeickbam Kompmbnm* mm6giich. h e i l kann man sagen, dass JPEG 24-Elro-Parbbilder in einem Verhältnis von ungefähr 3Q:i komprimiert. Das M d k a m zi~crstum einen Faktor von 3 komprimiert werden, indem man die 24-Bit- zuerst in 8-Bit-Farben (wie bei GIF)ynd dann mit Hilfe des in diesem Abschnitt beschriebenen AIgorithmus um einen weiteren E h r von 10 reduziert. I
7.2.3 Videokompmsion (MPEG) .
Das WEG-Format wurde nach der Mmhg Picnue Experts Group benannt, die es definiert hat. Bei dieser Technik Mein Video einfach als Folge von Standbildern, die man auch Frames n&t, in einer bestimmten Videorate angezeigt. Jeder dieser Frames kann mit Hiife der giei'ihen DCT-basierten Technik wie in JPEGkomprimiert werden. Es wäre jedoch ein Fehler, aiuSSchlieSlich diese Komprimierung durchzufiihrea, weil auch die in einer Mdeosequenz vorhandene Redundanz mvisfben einzelnen Frames etitfernt werden kann. Zwei aufeinander folgende Video-Frames enthalten 2.B. bei einer ruhigen Szene fast identische Informationen, sodass es unnötig wäre, die gleichen Informationen zweimal zu senden. Aber auch wenn eine Szene viel Bewegung beinhaltet, kann noch viel Redundanz bestehen, weil sich ein bewtObjekt nicht unbedingtvon einem Frame zum nächsten ändert. in manchen Fäihhdert sich nur seine Position. W E G berücksichtigt diese Redundanz zwischen PEllmes. Der Standard definiert auch einen Mechanismus für die Kodierung eines hier aber nur den Videoaspekt von
MPEG nimmt als Eingabe eine Sequenz von Video-Frame5 und komprimiert sie in dpi Frame-Tmn: I-Fraw (bsrapicture), P-Frmes (Predicted Picture) und &Jbnes ((BidirectionalPredicted Pieture). Jeder Eingabe-Frame wird in einen dieser
& ~ Frame-Twen i ko~iiprimiert.I-Framw kann man sich als Referenz-Frames vors&n. Sie sind ia sich geschlossen und hängen weder von vwhergehenden nach
sm17-
aaeh,f+nden F m a m ab. Ein I-Frist lediglich die JPEEkmaprvxlierte dm mtsprtxbsden Fra- b der F r i b g d . P+md BP~rne% SM &h$ ia&&i
&*
qxaifixiert ein P-Frame die W U e zum ikkrt eine b t d a & n nvidaqdem varharigm wld dem g a r t & Er P-Frame. Abb 7.13 W& eine aus sieben V t d ~ F m e besehende s SeqtlazOdi der Kompression mittels MPEG aus I-, P-und &FrW I-Rmms s t e h dein; sie k-n bEmp&qger ondmdw d von &ea Ficrtmes dekomprimkrt werden. Der Pvom rZge 1-Frame se-
a a k ~ m tJdex . B-Frame hangt 9 0 w d vom, vorherigen
m b vom wcMt4geinden.I-ader P-Frame ab, Riese beiden Referong-Eramm m heim Z m ~ i - a n k ~ edamit n , W E G d m %Frame d&xi~@miamb, U@ den Qrigbdvidm-Frm zu reprodeereg.
2
Abb. 7.13: Mit MPEG erzeugte Sequenz aus I-,P und B-Frames
Da jeder B-Frame von einem späteren Frame der Sequenz abhängt, werden & komprimierten Frames nicht in der sequenziellen Reihenfolge übertragen. Vieimefu wird die Sequenz I B B P B B I in Abb. 7.13 als I P B B I B B übertragen. Aderdeq definiert MPEG nicht das Verhältnis von I- zu P- und B-Frames. Dieses Verhält& kann je nach Kompression und Bildqualität variieren. So ist es beispiehwek zu&& sig, nur I-Frames zu übertragen. Dies wäre mit der Verwendung von JPEG für & Kompression des Videos vergleichbar. Im Gegensatz zur vorbeigehenden Diskussion von JPEG konzentriert sich die fol gende auf die Dekodimng eines WEGCtroms. Sie iässt sich ein wenig l e i c h ~ beschreiben und ist die Operation, die heute in Netmrksystemen häufiger im$& mentiert wird, weil die MPEG-Kodiening derart aufwändig ist, dass sie normaler^
d.. Wir betrachten jetzt die drei FmwTypen gemuec Wie o h crwihnt, entspre-
ehen I - F r m e unaefähr der mit WEG komwsimierten VetsMn deg Quelf-Fmes. Jhr E&pprnmer&-ist, dLs M%3 mit Einheitenvon 16x16 ~ a ~ f o b l ö prbeitet. ~km Fiir ein in Y W dargestelltesFarßvideo werden die U- und V-Komponenten in jedem ldakroblock *untsxahgetastet* und zu einem 8x8-Muster .zusammengefasst. Das h&t, jeder 2x2-Toilbkk des Makrobfocks wird durch einen U- und einen %Wen angegeben; das ist der Diarchschitt der 4-PiRel-Werte. Der Teiibkk bat immet rwleh vier Y-Werte. Da die U*und V-Komponemen w e a e r genau ülxytpen werh können, ist dies snöglich, ohne das Bild sichtbar zu becintrachagen,HPeil Men&n wenjger empfindlich auf E& als out Farbdichte reagieren. Die 'Beziehung mkhen einem Frame und den entsprechenden Makroblöcken wird aus Abb. 7.14 ersichtlich.
16x16-Mekroblodc mit Y-Komponente
Abb. 7.14: Frame ak Sammlung von Makroblöcken'
8X8-M-w mit U-Komponenb
L'
I
I
\
.
mR YCnQlTlplW3rmB
Die P- und B-Frames werden ebenfalls in Einheiten von Makroblöcken verarbeitet. Man kann erahnen, dass die in jedem Makroblock enthaltenen Informationen die Bewegung im Video wiedergeben. Sie geben also Auskunft darübei; in welche Rchund wie weit der Makroblock sich in Bezug zu dem bzw. den Referenz-Frames verschoben hat. Im folgenden wird besciirieben, wie ein B-Frame benutzt wird, um einen Frame bei der Dekompression wieder herzustellen. P-Frames werden auf ähniiche Weise behandelt, außer dass sie nur von einem und nicht von zwei Referenz, Frames abhängen. Bevor wir uns mit den Details der Dekompression eines B-Frames befassen, ist festzustellen, dass jeder h4akroblock in einem B-Frame nicht notwendigerweise in Abhängigkeit zu einem früheren und einem späteren Frame definiert wird, wie oben eqedeutet wurde, sondern auch entweder in Bezug zum einen oder zum anderen spezifiziert werden kann. Ein bestimmter Makroblock in einem B-Frame kann die
360
1
7 E&-zaaddhm
gleiche Intrakodierung wie in einem I-Frame beku1mn. Diese Flexibilität ist gegekw$ weil es manchmal sinnvoll ist, die Bilder einer Intrakodiening an Stek einer v w b gesagtes Vorwästs- oder Rückw6rt&&mq na unterziehen, wenn sich das X i .W.zu schnell ändert. Folgkh hinhakt jeder Makroblodr eines B-Frein Typt&& das die für diesen Makroblock benutzte Kodierung angibt. In der folgenden Bi-. sbn betrachten wir aber nur den allgemeinen Fall, bei dem der Makroblwk die bidirektionale vorhergesagte Kadi- benutzt. 9%In einem solchen Fall wird jeder Makroblock eines B-Frames durch ein 4-%Psi dargestellt: 1. Eine Koordinate für den Makrobiock im Frame
2. Ein Bewegungsyektor relativ zum vorherigen Referenz-Frame 3. Ein Bewegungsvektor relativ zum nachfolgenden Referenz-Frame
4. Ein Delta (6) für jedes Pixel im Makroblock (d.h. wie stark sich jedes Pixd iir, Bezug zu den beiden Referempixein geiindert hat)
Y ) = ( F P h + Xp, Y + yp) + F h x + XfY Y + Y f ) ) / 2 + 8 ( X , Y )
berechnetywobei 6 das Delta des im B-Frame spezifizierten Pixels ist. Diese De4m werden genauso wie Pixel in I-Frames kodiert. Das h a t , sie werden einer DC$ unterzogen.pd,quantisiert. Da die Deltas nonm DCT-Koeffizienten nach der Quantisienmg 0 und lassen sich somit effektiv kompri- . mieren. Aus der obigen Diskussion dürfte relativ klar sein, wie die Kodierung geführt wird, mit einer Ausnahme. Beim Erzeugen eines B- oder P-Frames während der Kompression muss MPEG entscheiden, wo Jeder Makroblack eines P-Frames Wird 2.B. I-Frames definiert. Der Makroblock im P-Frame muss aber nicht an Position wie der entSpt0CherX.k W o b l o c k Position wird durch den '
muss,wo sich Obje Problem ist die so
.
,
über diese Teainiken und Lösungen vorgestellt.) Die Schwierigkeit dieses Prsblems ist einer der Griinde, warum bei W E G die Kodierung auf g l e i e h w ~ eHardwape r langer als die Dekodimg dauert. MPEG spcdhiert keine besthmte Technik, son-
dern lediglich das Format für die Kodierung dieser Infomatimm in B- und &Frames sowie &a oben beschnebenon Algorithmus für die Rekofisuuktion der Pixel währond der Dekompression.
Eftektivktit und Leistung MPEG erreicht normalerweise eine Kompressionsrate von 90:1, obwohl Faktoren von bis zu 150:l nicht unüblich sind. Hinsichtlich der einzelnen Frame-Typen können wir eine Kompressionsrate von ungefähr 30:l für die I - F r m s erwaten (clies entspricht den mit JPEG erreichbaren Kompressionsraten, wenn vorab 24bBit- auf 8-Bit-Farbe reduziert wird), während die Kompressionsraten von P- und EFrama meist drei bis fünf Mal geringer als die von I-Frame8 sind. Wenn diel~arbezuvor nicht von 24 auf 8 Bit reduziert wird, liegt die mit W E G erreichbare Kompressionsrate bci 30:l bis 5O:l. W E G erfordert eine aufwändige Berechnung. Auf der Kompressiodite geschieht dies normalerweise afaie, was für die Vorbereitung von Filmtn HSE einen Video-on-Demand-Dienst kein Problem darstellt. Video kann d d t n k mit HardWare in Echtzeit komprimiert werden, wobei Wtwareimplementierungenailerdinjp dabei sind, die Lücken zu &dieBen. Auf der Dekompressionsseite sind preisgünlrtige MPEG-Video-Boards verfiigbaq die allerdings kaum mehr als eine W - F i r b s u s h durchführen, was glücklicherweise aber auch der aufwändigste Schritt ist. Der Großteil der MPEGDekodiermg erfolgt heute in Software. In den letzten JIrfued sind Prozessoren schell genug geworden, um mit Videoraten von 30 Frames pro Sekunde Schritt zu halten, wenn die Dekodierung von MPEG-Strömen rein in MtWare durchgebühn wird. So ist es selbst mit einem bescheidenen 600-MHt-Pmsor möglich, MPEG ausreichend schnell zu dekomprimieren, un beispielsweise mit einem 640x480-Videostrom, der in 30 Frames pro Sekunde läuft, mitzuhalten. Wir schliefkm mit der Bemerknng, dass MPEG nicht der einzige für die Kodicrq von Video verfügbare Standard ist. Die lTü-T hat =.B. die .H-!kriea für die Kot&rung von multimedialen Echtzeirdaten definiert. Im allgemeinen belnh9ltet cthP H-Serie Standards fiir Video, Au&, Steuerung i~ndMultiplexen (2.B. Mixen vcm Audio, Video uMi Daten zu einem einzigen Bitstrom). Innerhalb der Serie s i d H.261 und H.263 die Standards der ersten bzw. zweiten Generation zur Vid8c)kodierung. im Gegensatz zum MPEG-Standard, der auf Bitraten in der G&hordnung von 1,s MWs abzielt, wurden H.261 und H.263 auf ISDN-&SCkeim ausgelegt. Das heint, sie unterstiben Video über Leitungen mit' eher Bandbreite, die in 64-Kbit/s-Wenten verfiigbar ist. Im Prinzip h e l n Mde Standards WEG, weil sie ebeddls DCT, Quantisierung und Interfmme-Kotupsion benutzen. Die Unterschiede zwischen H.261M.263 und MPEG lieaen in den Details.
.
,
rr
,
n;
arti aber daran h i n d a rnochm Zugang zur gesamten Infrastruktur w erhalten. Als weiteres Beispiel machen es mobile Computer den Benutzern' recht einfach, ihre Maschinen anonym an einen beliebigen Punkt cines Netzwerks ammcldieh. Eine weitere Schwachmlie von Firewalls er@ vermehrt Aufmerksamkeit mit '
n den S t d o t t zu senden, weil et ab dass der Mitarbeiter ein &&tiaseg
was einen Nachbarn d e r &en auf der gcgenüberlicgenden S t r m t e pmk w h Mtbember des Unternehmens daran hindern kiinntq sich in dieses B&khmmerkc aasfmsldten d damit trotz Fllewall Zugang zum Unternehensnetz zu erhalten. h allgemeinen ist es mmqglich, dass existimdc F d s w k m , wer auf das N m e r k zugreift, U.,wer die Kennhat, sich auf andere Mmchiirten .iomNetzwerk a n f i u ~ e Edderlrch a ist hier die Verlagerung des Z u g M d t a t w voa $et Peripherie des Ne-nwerks nach innen näher zu den Hosts, die den Zugrii;E initiiem. Leatlich sind wtih&Wi& Sichuheitsmechanismen wie IPSEC esrfotderlicb, m einen solchen Sicherheitsdang zu unrersrürzen.
&W,
1
&S
Zusammenfassung
~ ü s s e l u n g s bilden a ~ das ~ Rückgrat von Notmerk~iohe~heit. Algorithmen mit öffentlichen %hiüsseln wie RSA werden oft in AutkdikadomproroM e n benutzt, um &e I d d d t m i e r kommunizierender Prozesse festzustellen. Mach der Authmtifhtion kamen die bei& Teilnehmer einen gemeinsamem Schliissel vereinbaren, der Eiti A l g o ~ i b e mit n $ebeImem ? k ~wie~DESl hone kid, um die zwischen dea Teihehmcrn ausgetauschtes Nachrichten zu wrsehb und d a d d Vemadi&eit wiihend i h m Komnmmikation sicheaust~Elea. :' At&eddan kann e h Metmg~-D@s-Algodthm~$ wie MD5 bennmwerben, um die , b~egritätvon Nachrichten zu schiitzen. Das gesamte System wird durch einm : Sddiz.aW-dm ~ w g e h r l t e nder , benutzt wird, äm zuem aten qon RSA benötigten ~fbentlichen Schiiissel einzuholen. '
Mehrere neuere Systeme benutzen diese Algorithmen und Protokolle, Sicherheitsdiensteim Internet aneubieten. Auf der Anwenduagsebene kann PGP.& gesetzt werden, um E-Mail-Nachrichten zu schützen, und SSH, um sich sichu d einem entfernten Rechner anzumelden. Auf der Trans~ortebenekann TLS ve Kommunikation zwischen Hosts oder Gatewavs im internet zu gewährleisreni W& zu schützen.
7 Ii
Systeme wie PSEC und TL5 könm dem Internet potenziell das Offene Fragen M& an Sicherheit verleihen, das Denial-of-Service-Attacken von atidcn newn geschäftlichen . ,117 Transsktknen und Anwendungen der öffentlichen Verwaltung benötigt wird. Der EHfolg dimer Systeme telba mit dem Esfolg des SdilÜBSChrerteilunjppro~zuO b enswi&digen Zugasig zu öffentlichen Sdüsseln b a t das gesamte Spsteim men. Die Shlüsdverteilurur ist aber nur eine der Herausf~~demmen in hang mit Sihrheit in &mputemetzwerkcn. Hin d i r w Bob MOgiichkebn zu finden, wn die an WeiwerkchmnangescUasmen ,I[
Vemuiichsteit k o m p r o m i & d Attacke, bei der ein Ein&* unberechtigten Zugang zu Infomatbnun zu k h f f e n , versucht ein der DTl-of-Service-Attacke, den rechtmd3igen Benutzer am Zugriff auf tioaen OdCi~Ressourcenzu hindern. Eine bekannte Denial-of-Service-Attackenennt man ~ S Y P l - A d e .nach Setup-Paket einer TCP-Verbindung. Bei einer SYN-Attacke flutet eia entfern@( Angfeifer einem Computer mit Sm-Paketen und renvsacha &durch, dass all0.W arbeitungsresdafür benutzt werden, fingerte TCP-Verbindungen bauen, Im Gegensatz zitm einfachen Fluten einer Mgschme mit g e f ä k h m pakaten erfordert bei dieser Attacke jedes SYN-Paket einen u m a fq p w VwatSia-hd, um festzustellen, ab das <Paktawh wirklich tirmvorfmM
p"ogrdr~ W &
l@nmm, um alle Pakete von einem bekannt
.
idresse in jedem SyN-.P&et &ugeben. Eine andere hedcaw DOS-Attackebesteht darin,eham Strom von baum-Paketen" an einen Router zu senden - Pakte, bei denen alle ,Lichteru ?aq& schaltet sind (d.h. bei denen alie bekannten .P-Optionen aktiviert sind). Der Rb-
1-
d r i n g t 'so vicl zeii damit, die divOptionen auszuführen, dass s es nicht ,WP-Up&tes dwc-n, weniger bekanntes Beispiel zeigt a& wie subtil eine Wal-06-Service-Attacke i & k m . Eie &igreiber flutete den Router eines 15Pmit IP-Paket&, d* &e sqiellc Sequenz von P-Adressen enthiektn. Die Sequenz lief3 den Routen-Cachedes Routers I i i k i a h n , was letztlich dazu führte, dass der Prozessor des Routers seine g a m Zeit dai3 aufbrachte, neue WeiterleihusgtaMe~ zu erstellen. DsrbGi vsrsäumte det Rou1 i 0d ~ die Routing-Anfragen s e h r Nachbarn zu antworten, was wiederum dam klrbtze, dass die Nachbam glaubten, der Router sei ausgefailq, Der Schutz vor D&-of-Service~Attacken erfolgt in drei Schritten, Ixn mten '' &hict werden alie von jedem Benutzer (oder Datenfluss) verbrauchten Ressourcen ' hfssst. tm zweiten schritt wird erkann%wann die von Wiem bestimmta Benutzer vwbraucbten Ressourcen den im Rajamen der Systemvorgaben erlaubten Umfang , dbrschreiten. W ird eine Attacke erkannt, werden die verbrauchten Ressourcen im %ittm kLir;ftzurückgefordea, wobei mögilchst wenig zusätzliche Ressourcen auf$rvmdcr werdm. Andernfalls entstünde eine neue Denial-af-Service-Attackedurch : @C überm* aufwändige Erkennung und Abwehr eines angreifenden Benutzers. ; Mdsr sind nur wenige Systeme- Hosts und Router - heute in der Lage, ijiber alle im Swem benutzten Ressowcen genau Buch zu führen, ganz zu schweigen von der . Ikdhidon, was eine Denial-of-Sennce-Attackedarstellt. ini Mgemeinen ist es jedoch schwierig zu erkennen, ob eine Resource missbaäu: lich verwendet wird, weil det Angreifer nicht unbedingt eine groBe Menge an hgriffspaketen aus der gleichen Quellen senden muss. Stattdessen könnte er Sie mit einer Vieizahi von unschuldig aussehenden Paketströmen von unterschiedlichen Quellen bombardieren. Dies bezeichnet man ds vemilte (distributed)Denid-of-Ser*-Attacke. (DPlaS). Diese setzt voraus, dass der Hacker zui4chst eine grökre Anzahl von Rechnern komprimitiert (Wgenannte Zombies), und d i a dann gleichzeitig dazu bringt, Sie anzugreikn. So wurden 2.8. sehr exponierte Websites wie CNN, Yahoo, eBay und Amawn durch DDoS-Angriffe im Februar 2000 I a b legt. letzdich sind DIZoS-Angriffe immer problematisch, weil es fast unnögiich ist, zwischen ihnen und einer legitimen, aber intensiven Nutzung durch viele Quelien zu uqterscheiden.
.
;
"
'
8.6 Weiterfahrende Literatur Die ernten beiden sicherheitsbeqenen Arbeiten bieten zusammengenommen einen guten Oberblick über das Thema, Der Artikel von Lampson La. e n W t eine formelle Behandlung von Sicherheit, während die Arbeit von Satyanarayanan eine gute Beschreiban8 dariiber liefert, wie ein sicheres System in der Praxis ausgelegt wird. W1 &irre Arbeit biete einen Ot>erbliUk über die IPSEC-Sicherkitsarchitekm und ist e h guter Aus&mgsp&, um den heutigen Zustand von Sichmheit ian Intemt zu
-.
5
P .' ,
,
,q
,$ -?
L
,
r Kent, S. und Atkitrson, R.:
kawitpi' a r c h i t m
Ratpest fot. Ckmmepx;Cs 2405, N
m
for tim
Inteniet
h 1998.
SSH.
Savixge et itl. [ m d O ] und Sfidren et al. ISBS+O~] faden. Die wachse
Giskiritiefi. Ein fruer Ansatz, um sich gegen dterartige'bgriffezu mrtekd ' ,der . Arbeit von Park und Lee P'LOl]datgesteiit. r ftp$haqdarg/pwb:Eine Sammivng sich~rheitsbe;eogenerh f ~ r m t i Gampqpr Emezg2:ncy Lespme Teans (CERT) b r o ~ i t g werden. d~
db .
8.7 oburigen
2. in Abschnitt 8.1.2 wird die DES-Vers~hlUssel~trdomation vo
auf 4 Bit red~ziert,indem die ersten und letgten Bits weggehen m&.
.
C
r
atOBungraIm
P
i
7
P*
sie aundt i * I
~~~-~-~tisseliuig-ciumh, in& Sie das ~rgshiis 4 4 Ri zn bßtimmgn; sei = ! . . W f0 Zaimt. Geben Sie Rh% mt;er der A n e h an, dosg wir eine vereinfachte S-Box verwenden, die jeden 6-Bit-Teil auf 4 Bi% ieduzieit, ia$ern & ersten und , lmten Bits weggeben werden. 4.
.i ,,der vo&erigen
v h m , um
5. N b e n wir erneut an, dass DES mit der v d a c 6 t t e n S-Box ~ 3 aw 1 3 , , benutzt wird und wir nur eine einzige Ver:achliis8elun~deausfihen. a. Ein Angreifer verfügt sowohl über den Klartext (Lo,Ro) ah auch den Chiffretext (L1,R1).Wieviel erfährt der Angreifer daraus über W-1 Klund wie vid übes K? (Damit soil keine Schwäche des echten DES angedeutet werden, ,
sondern viehehr eine Rechrferri~ungfür die von DES tatsächlich benutzte
,
S-Box.)
b. Die Wiedergewinnung des Sdilüsseis aus einem Klar- und chifketext wäre für jeden Verdüsselungsmechanismus schlimm genug. Erklären Sie, warum es für Kryptosysteme mit öffenrlichen Schlüsseln besonders fatal wäre. '?
6. W w sfellen uns voq dass Sie eine RSA-Verschlüsselungmit p = 101, Q = 113 und ' e = 3 ausführen.
a. Ermitteln Sie den Verschliisselungsexponenten d. (Hinweis: Obwohl es methodische Vorgehensweiseti gibt, ist die Try-and-Error-Methode & a = 3 efiient.) b. Verschlüsseln Sie die Nachricht rn = 9876. Beachten Sie, dass die Auswertung von m! mit 32-Bit-Arithmetik zu einem Oberlauf M rt.
"7, Wir stellen uns uar, dass Sie eine RSA-Verschlüsselung mit p = 13,q = 7 und e = 5 ausführen. a. Ermitteln Sie den Verschlüsselungsexponenten d. (Hinweis: Verwenden Sie den Euklidischen Teiiungsaigorithmus.)
b. V e ~ i s s e l Sie n die Nachricht m = 7. C.
Entschlüsseln Sie die verschlüsselte Nachricht C = 2,
8. Beweisen Sie, dass der RSA-En~hlussel~lgosithmus die Originalnachricht wieder8ewiant, dh. med 3 »r mod pq. Hinweis: Sie können davon ausguhe* dass es ausreicht, die Kongruenz mod p und mod q zu beweisen, weil p und q prim zueinander sind. 9. Wenn n eine Primzahl und b < n i% dann ist b** = 1 mod H. Es gibt ein paar zusammengesetzte Zahlen n (z.B 561),bei denen diese Kongruenz auch für alle b c n &. Mit einem gehgen zusätzlichen Berechnungsaufwand erwit den MiUer-Test, der folgendes besage Wenn n prim ist, ist es fur alle b < n erfolg-
reich, und wenn n zuman-
ist,
wir den Test mit einer zufällig gewiihltien große4 Zahl voa b < n biner davon felddann ist rr ~wahrs&eidi&u pritn.
a. Weisen Sie nach, dass die Berechnung von bW1mod n mit O(1og nj pbtionen durchgefiilm werden kann. Hin& b13 = b8b4b.
b. Weiseri Sie anhmd &eser Methode mch, dass n a 50.6211 zu ist. Vuwenden Sie b = 2. Sie benötigen keine *zusätzliche weisen Sie nur b"l F .I mod n nach.
Abb. 8.9 unsicher über die Identität des Ciients, bis er die dritte erhalt? Welcher Attacke könnte ein Server ausgesetzt sein, wenn er de des Clients vertraut, bevor er die dritte Nachricht empfängt? Angenommen, die im Drei-Wege-HandsEiake von Abb. 8.9 benutzten
den x und y einmal pro Sekunde oder pro Verbindung inkrementiert wer t
Sie nach, dass die in der P-Spoofing-Azkde von Übung 17 in tel'5 a n g ~ a n d t Technik e fehiddägt.
a. w&n
m r k Time Weisen Sie nach, wie ein Angreifer sich nun dem Server fizieren khnte, ohne CHK zu kennen (obwohl er SK rücksetzen kann, vielleicht unter Verwendung des N
U). Abb. 8.7 zeigt die CK-Vdüsselung. Erstellen Sie das entsprechende gtamm für die Entschiiisselmg.
15. Bei einem Mechanismus für die Abwehr von W Repiay U-Attackeninder PasswortAutheniifikation wtrden Einmal-Passwörter benu~ct:Eine Liste mit Pi3sg~Ö~ern wird vorbereitet, und nachdem P w o r t [ N ] akzeptiert wurde, dekrementiert der Server N und verlangt das Puswort[N-1] beim nächsten Mal. Bei N = 0 ist eine neue Liste edorderlich. Arbeiten Sie einen Mechanismus aus, mit dem der Benutzer und der Server sich nur ein Master-Passwort mp merken müssen und lokal eine Maglichkeit zur Verfügung haben, um Pmwort[N] = f (mp,M) zu b e d nen. Hinweis: Nehmen Sie an, dass g eine geeigneteEinweg-F&on (z.B; MDS) ist und Passwort[Ail = $I(mp) s g N Mal auf m p angewandt ist. Erklären Sie, warum die Kenntnis von P u s s w o r t [ ~nicht hilft, um PasswdN-I] aufzudecken.
16. Nehmen wir an, ein Benutzer verwendet Einmal-Passwörter wie oben (bzw. wiederverwendbare Passwörter), das Passwort wird aber *ausreichend langsam« übertragen. a. Zeigen Sie auf, dass ein heimiicher Lauscher mit relativ wenig Gteversuchen Zugang zu dem entfernten Server erhält. Hinweis: Der Lauscher beginnt mit dem Erraten, nachdem der echte Benutzer das ganze Passwort bis auf ein Zeichen eingegeben hat. b. Welchen weiteren Attacken könnte ein Benutzer von Einmal-Passwörtern ausgesetzt sein? 17. Das Diffie-Hellman-Schiüsselaustauschprotokoilist verletzlich gegen ,Man-inthe-Middleu-Angriffe.Erklären Sie, auf welche Weise es einem feindlichen Mithörer gelingt, die beiden Parteien dazu zu bringen zu glauben, sie hätten ein gemeinsames Geheimnis, während sie tatsächlich jeweils ein Geheimnis mit dem Mithörer haben. Skizzieren Sie, wie man Diffie-Hellman erweitern müsste, um diese Angriffsmöglichkeit auszuschlief3en. 18. Nehmen wir an, dass RSA benutzt wird, um eine Nachricht m an drei Empfänger zu senden, die über zueinander prime Verschiüsselungsmoduli nl, n2 bzw. n3 verfügen. Aile drei Empfänger benutzen den gleichen Verschlüsselungsexponenten c = 3, eine früher beliebte Wahl, weil sie eine sehr schnelie Verxhlblung ermöglicht. Weisen Sie nach, dass jede4 der alle drei verschlüsselten Nachrichten C I =m3rnod nl, cz = m3rnod n2 und c3 = m3rnod n~ abfängt, m effizient dechiffrieren kann. Hinweis: Das Chinese Remainder Theorem besagt, dass man effizient ein C finden kann, sodass C = c1 rnod nl, C = c2 rnod n2 und C = c3 rnod n ~ . Weisen Sie unter dieser Annahme nach, dass dies C = m3 rnod nln2n3 impliziert. Dann beachten Sie m3 < nln2n3. 19. Nehnen wir an, wir haben ein sehr kurzes geheimes r (eB.ein einzelnes Bit oder auch eine Sozialversicherungsnurnrner)und möchten jemandem eine Nachricht m senden, die s nicht enthüiit, die aber später benutzt werden kann, um zu über-
?
i
fi
prüfen, dass wir s kannten. Erklären Sie, warum m = MDS(s) oder m = Ef4 d der RSA-Verschlüsselung nicht sicher wären und schlagen Sie eine bessert W& vor. d 20. Zwei Leute möchten Poker über ein Netzwerk spielen. Um die Karten a ngebenu, benötigen sie einen ~ k h a n i s m u fur s die faire Amwah1 eine zahl x untereinander. Eine Partei wird verlieren, wenn die andere die von x auf d i r e Weise beeinflussen kann. Beschreiben Sie einen a Mechanismus. Hinweis Sie k6nnen davon ausgehen, dass EXCLUSN&QI x = x l Q x2 zufällig ist, wenn eine der zwei Bitketten xl und x2 zufaillig ist:
21. Schätzen Sie die Wahrscheinlichkeit des Herausfindens zweier Nachrichten nd der gleichen MDS-Prüfsumme, wenn die Gesamtzahlen von N 264und sind. Hinweis: Hier handelt es sich wieder um das t blern von Ubung 41 in Kapitel 2 und wieder ist die Wahrscheinlichkeit, d;;$ (k + 1).Nachricht eine unterschiedliche Prüfsumme als die vorhergehen& J besitzt, 1 ~ 2Die Annäherung ~ ~ im ~ dortigen ; Hinweis zur Vereinfachung $ Produkts versagt hier aber kläglich. Verwenden Sie also stattdessen den log je$ Seite und benutzen Sie die Näherung log (1 ~ 2 ' =~ ~ ) -4
-
-
22. Angenommen, wir möchten eine Telnet-Sitzung mit DES verschlüsseln. T e h ' sendet zahlreiche 1-Byte-Nachrichten, während DES in Blöcken von j e 8 Bygi verschlüsselt. Erklären Sie, wie DES bei dieser K o n d a t i o n sicher benutzt den k m . P*
23. Betrachten Sie das folgende einfache UDP-Protokoll (das lose auf TFl"F, R e q d forComments 1350, basiert) zum Download von Dateien:
-
Der.plient sendet eine Dateianfrage. Der Server antwortet mit dem ersten Datenpaket. ?
Der Climt sendet ein ACK, und die beiden fahren mittels Stop-and-Wait fa
Der Ciient und der S e m r besitzen jeweils Schlüssel Kc bzw. Ks;diese Sehliid sind beiden bekannt. 1
a. Erweitern Sie das Datei-Download-Protokoll mit Hilfe dieser Schlüss$l MDS, um Authentifikation des Senders und Integrität d u ~ a c h r i d e bereitzustellen. Ihr Protokoil sollte auch vor Replay-Attacken sicher se*, b. Wie schützt diese zusätzliche Information in Ihrem überarbeiteten Pm~lbkd vor der Ankunft verspäteter Pakete aus früheren Verbindungen und dem U;in! lauf der Sequenuiummem? Y
24, Benutzen Sie einen Bmvrrsler Ihrer Wahl und finden Sie heraus, wetcheti Ze&zierungsstellen fiir H'ITPS Ihr Browser in der Default-Konfiguration vmraut.
Vertrauen Sie diesen Autoritäten? Stellen Sie fest, was passiert, wenn Sie das Vertrauen einiger oder aller dieser Zertifizientngsstellenausschalten. 25. AngmoSk möchm Ihre filerbasierte Firewall so.konfi&wieren, dass sie alle ankommenden Telaee*Verbindungen blockiert, aPle abgehenden aber eriaubt. Ein möglicher Ansatz wäre die Blockierung aller ankommenden Pakete am designierten Telnet-Port (23).
a. Möglicherweise möchten wir ankommende Pakete auch an anderen Ports blockieren. Welche ankommenden TCB-Verbindungen müssen aber zugelassen werden, damit der abgehende Telnet-Verkehr nicht gestört wird?
b. Gehen Sie jetzt davon aus, dass Ihrer Firewall die Verwendung der Fiags-Bits aus dem TCP-Header Risänlich zu den Port-Nummern gestattet ist. Erklären Sie, wie Sie hier die gewünschte Teinet-Wirkung erreichen können, während gleichzeitig keine ankommenden TCP-Verbindungen zugelassen werden. 26. Angenommen, eine Firewall wird so konfiguriert, dass sie abgehende TCPVerbindungen generell, ankommende aber nur an spezifizierten P* zulässt. Das FTP-Protokoll stellt nun ein Problem dar: Wenn ein interner Client einen externen Server kontaktiert, kann die abgehende TCP-Kontsollverbindung normal geöffnet werden, die TCP-Datenverbindung ist traditionell aber ankommend. a. Informieren Sie sich über das FI'P-Protokoll, z.B. in Request for Comments 959. Finden Sie heraus, wie der POnT-Befehl funktioniert. Erläutern Sie, wie der Cüent geschrieben werden konnte, sodass die Anzahl von Ports, an denen die Firewd Eingangszugriff gewähren muss, begrenzt werden kann. Kann die Anzahl solcher Ports auf einen beschränkt werden?
b. Finden Sie heraus, wie der Fi'P-Befehl PASV benutzt werden kann, um dieses FirewaU-Problem zu lösen. 27. Filternde Router seien beispielsweise wie in Abb. 8.24 angeordnet. Die primäre Firewall ist R1. Erklären Sie, wie R1 und R2 konfiguriert werden sollen, damit Adenstehende über Teinet auf net 2, nicht aber auf die Hosts von net 1zugreifen können. Um ~Leapfroggingu-Einbrüche in net 1 zu vermeiden, verhindern Sie auch Telnet-Verbindungen von net 2 zu net 1.
net 1
net 2
Abb. 8.21 Diagramm für Übung 27
28. Wamm möchte ein Intemet-Service-Provider möglicherweise bestimmten abge henden Verkehr blockieren? 29. Vergleichen Sie eine filternde Firewall mit einer Proxy-Firewall hinsichtlich des Schutzes vor Spoofing-Attacken wie in Obung 17von Kapitel 5. Gehen Sie von einer Konfiguration wie in Abb. 8.21 aus, wobei der angegriffene intern Hdem Benutzer des entfernten Unternehmens vertraut.
30. Es wird behauptet, dass IPSEC unter Umständen nicht mit Network A h Translation (NAT - RFC 1631) funktioniert. Dies hängt jedoch davon ab, in welchem Modus von IPSEC und NAT wir arbeiten. Angeaommg wir verwenden echtes NAT, bei dem nur IP-Adressen, aber keine Ports übersetzt w e r k Wird IPSEC und NAT in den folgenden Fällen arbeiten? Erklären Sie, Wbzw. warum nicht.
(a)lPSECverwendet den AIf-Transportrnadus. (b)IPSECverwendet den AH-Tunnelmodus. (C) IPSEC v e ~ e n d eden t ESP-Transportmodus.
(d)IPSECverwendet den ESP-Tunnelmdus. (e)Was geschieht, wenn wir PAT (Port Adress Translation)bei NAT ve& das ebemio unter dem Namen Neowork A M o r t T d a t i o n ( N M )bek w t ist? Dabei werden zusätzlich zu den IP-Adressen Port-N-mn abersetzt, sodass man eine IP-Adresse von auBerhalb des privaten Neawerkes erreichen kann.
9 Anwendungen
Anwendungen brauchen ihre eigenen Protokolle Wir haben dieses Buch mit einer Diskussion über AnwendungsProgramme begonnen, die Benutzer über Computernetzwerke ausführen wollen, angefangen von Web-Browsern bis Videokonferenz-Tools. In den weiteren Kapiteln haben wir Schicht für Schicht die Netzwerkinfrasuuktur entwickelt, die für solche Anwendungen erforderlich ist. In diesem Kapitel befassen wir uns mit Netzwerkanwendungen und schliegen damit den Kreis. Diese Anwendungen sind Teil des Netzwerkprotokolls (in Now this is not the dem Sinn, als sie Nachrichten mit ihren Partnern auf anderen Rechnern austauschen) und end. It is not even Teil des traditionellen Anwendungsprogramms the beginnihg of (in dem Sinn, als sie mit dem Benutzer intera, the end. But it is, gieren). In diesem Kapitel werden einige der zur Zeit weitverbreitetsten Netzwerkanwenpdaps, the end of dungen und ihre Protokolle betrachtet. Dabei the beginning. wird rasch deutlich, dass ein Protokoll eben ein Protokoll ist, ungeachtet dessen, auf welcher - Winston Churchiii Schicht es läuft. Mit andereh Worten: Sie können sich am besten darauf vorbereiten, selbst Netzwerkanwendungen zu schreiben, wenn Sie zuerst verstehen, wie gute Netzwerkprotokolle entworfen werden. Als erstes Beispiel betrachten wir einen verteilten Namensauflösungsdienst, der auch als erste Anwendung in einem Netzwerk implementiert wird. Er qualifiziert sich aus technischer Sicht zwar als Netzwerkanwendung, ist in Wirklichkeit aber eine verteilte Datenbank, die auf die zu Grunde liegenden Transportprotokolle aufsetzt. Es handelt sich nicht um eine Anwendung, die Benutzer ausdrücklich aufrufen. Dennoch ist es eine Anwendung, von der alle anderen Anwendungen abhängen. Das ist darauf zurückzuführen, dass der Name-Server benutzt wird, um Host-Namen in
Host-Adressen zu übersetzen. Die Existenz einer solchen Anwendung erlaubt es den Benutzern anderer Anwendungen, auf entfernte Hosts mit Namen statt Adressen zuzugreifen. Ein NameServer wird also nicht von Menschen, sondern von anderen Anwendungen benutzt. Wir beschreiben eine Vieizahi bekannter und weniger bekannter Anwendungen. Sie reichen von E-Mail und Web-Browsen zur Verwatung von Netzelementen und modernen Audio- und Videoanwendungen wie vic und vat bis hin zu aufkommenden Peer-toPeer- und Inhalteverteilungs-Netzwerken.Diese Liste ist natürlich nicht erschöpfend, genügt aber, um einige Knilfe bei der Entwicklung von Pmokoiien der Anwendungsebene hervorzuheben, d.h. die Erweiterung der zu Grunde liegenden Traulsportdienste von TCP und UDP, um den von der jeweiligen Anwendung benötigten Kommunikationsdienst bereitstellen zu können.
9.1 Domain Name System (DNS)
I:
Bis zu diesem Punkt haben wir Adressen benutzt, um Hosts zu identiiizieren. Sen sind für die Verarbeitung in Routern gut geeignet, aber nicht gerade benutze& freundlich. Aus diesem Grund wird noimaerweise jedem Hast in einem Ne auch ein eindeutiger Name zugewiesen. In diesem Abschnitt wird beschrie ein Namensauflösungsdienst entwickelt w e r k kann, nm benutzerfre Namen auf routerfreundliche Adressen abnibüden. Ein solcher Diem ist oik & erste in einem Netzwerk implementierte Anwendungsprogramm, weil es an Anwendungen emi2igli&t, Hosts nach Name starc nach Adresse zu i d e n W o M Namensauflbsungsdienste werden auch Middlww gtnannt, weil sie zwi:sthen Anwendungen und dem zu Grunde iiegenden Netzwdk angesiedelt sind. Host-Namen unterscheiden sich von Hat-Adteam ui zwei wichtigen Pu&&,: Erstens h a b e sie normalerweise eine variable Länge und sind mnemonisch, da& Menschen sie sich besser merken können. (Im Gegens1tz dgal sind numerisrbrd Adressen mit fester Länge für Router leichter zu verarbeiten.) Zweitens e n M ~ Namen normaierweise keine Informationen. die dem Netzwerk helfen. einen Ha& zu finden (und Pakete dorthii zu leiten). Adressen können demgegenüber Rou* Informationen enthalten. Phche Adressen (d.h. Adressen, die nicht in Komponenm aufteilbiii sind) sind die Ausnahme. Bevor wir uns mit den Details befassen, wie Hosts in einem Netzwerk benam@ werden, führen wir zuerst einige grundlegenden Fachbegriffe ein. E i N w m w definiert die Menge moglicher Namen. Er kann entweder f i c h (die Namen sich nicht ip Komponenten aufteilen) oder hierarchisch (Unix+Dateinamensind dsrrv beste Beispiel) sein. Das N a m e n s a d ä s u n ~ t e mverwaltet eine Sammlung von Bind-s, die Namen mit Werten binden. Der W m kann etwas Beliebipes sein, dais vom $&ensa~ösungss ein Z U : ~ ~eben wenn e g wei:den unk vorgiesetzt wird. In vielen ist eine AdreW*Ein sungsr eine Prodiu; die bei Aufruf mit einem Namen deri entsprechenden Wert zur&&& gibt. Ein ~ a m e - s m eist r eine spezifische Implementierung eines Auflösungsmecha+ nismus, der in einem Netzwerk verfügbar ist und durch Senden einer Nachriah abgefragt werden kann. Aufgrund seines riesigen AusmaSes hat das Internet ein besonders gut entwickeites Namensauflösungssystem das Domain Name System (DNS). W u verwenden das DNS deshalb als Rahmenwerk für die Diskussion der Benennung von Ho-. Man beachte, dass das DNS nicht immer im Interne benutzt wurde. Früh in dor Geschichte des Inteniet, als nur ein paar hundert Hosts angeschlossen waren, V=waltete eine zentrale Behörde mit der Bezeichnung ~Networkinfonn~donCenter@ (NiC) eine %die Tabelle. mit NamenfAdre~sen-Bindings.Diese Tabelle ww& hosts.txi genannt. Wollte ein Standort einen neuen Host am internet ansdieschickte der Administrator eine E-Mai mit dem NamdAdresse-Paar an das NlC Diese Information wurde manuel in die Tabelle eirigepeben. Dann wurde die 4 fizierte Tabelle alie paar Tage an verschiedene Standorte gesendet und der Systemadministrator an jedem Standort installierte'dieTabelle auf jedem Host seines S d
-
I : I L ,
,
'
orts. Die Namensauflösilsig wurde heinfach durch eine Prozedur hpkmmtiert, die den Namen eines Hosts in d& lokalen Kopie d e Tabelle ~ heraussuchte und die egrsgrechende Adresse zurückgab. Man kann sich naturlich v~raellen,dass der Ansaa mit hosts-txt fiir die Benennung im Zuge der rasch steigenden Anzahl van Hmts im Iatemet ksiwm mehr funktionierte, Deshalb wurde Mitte der achtziger Jahre das Dom& Name System eingerichtet. DNS bwiert auf einem h i o i d d e n statt flachen Nanzensraum. Die ,Tabelle* mit Bindings, die diesen Namensraum implementiert, ist in separate Teile gegliedert und im gesamten Intemet verteilt. Diese Teiltabellen stehen auf Name-Servern zur Verfügung, die über das Netzwerk abgefragt werden können. In rier Praxis läuft dies so ab, dass ein Benutzer einen Host-Namen in einem Anwendungsprogramm (mcjgiicherweise in einem zusamrnengeserzten Namen wie eher E-Mail-Adresse oder einer URL eingebettet) eingibt, und dieses Programm den Namen vom Namensaufiösungssystem in eine Host-Adresse Üt>ersetzen,lässt. Dann &et die Anwendung eine Verbindung zu diesem Host, wobei sie einem Transportprotokoll (z.B. TCP) die IP-Adresse des Hosts übugibt. Dieser Ablauf ist in Abb. 9.1 (mit dem Versenden von E-Mail als Beispiel) dargestellt. Benutzer
cs.princeton.edu Server
; .
:
1
Abb. 9.1 : Namen werden in Adressen Ubersetzt, wobei die Zahlen 1-5 die Schritte des Prozesses bedeuten.
DNS implementiert einen hierarchischen Namenstaum für Intmet-Objekte. Im Gegensatz zu Unix-Datehamen, die von links nach rechts verarbeitet und deren Nalaensteile durch Schrägstriche getrennt sind, werden DNS-Namen von rechts nach links verarbeitet d mit Funkten getrennt. (Domain-Namen werden zwar von rechts nach links rvetarbeitet~,Menschen ~lesenusie aber von links nach rechts.) Beispid eines DQmiiig-Nameas für einen Host ist cicada.w.p&weton,edu, We ha$len gesagt, dass Domain-Namen für die Benennung VQZI hternet-~Objektenu begyat werden. Wir'rminen dass DNS nicht im s&kren Sinn daw benutzt wird, Host-Namen auf Host-Adressen abzubilden. Genau genommen, bildet DNS
P
We bei der thu#-D~teihiers~xlchii& kam
Wrs entsprhn. Abb* 92 r;;eigt ein M t e * d a s wir dem bjpiff d h n a b a
b E I l d l ~ ~ ~ , ~ e s ~ ~ & u m ~ K o N m n d e h i m werda kÖ94geg,
Abb. 9 2 Beispieleiner Domain-Hierarchie
~
~
t subventioniert. ~ s
9.1 R NameSewer
,
der Universitätszone), während andere, z.B. die Informatikfakuität, ihre eigene Zone auf Fakuitäwebene verwalten. Eine Zone entspricht der grundlegenden Implementierungseinheitin DNS - dem Name-Serve~Das hegt, die in jeder Zone enthaltenen Informationen werden in zwei oder mehr Nme-Servern hp1emenBert. Jeder Name-Suver ist seqmits ein Programm, auf das über das intemet zugegriffen werden kam.Cli$nts senden Anfragen an Name-Server, und Name-Server antworten mit den angefordertem Informationen. IMandimd enthält die Antwort die vobtändigc vom Client gewbschte Angabe und m a d d einen Zeiger auf einen weiteren Server, bei dem der Cüent als Nächstes anfragensoll. Aus Sicht der Implementierung ist es also korrektei; sich DNS als eine Hierarchie mit Name-Servern statt als Hierarchie mit Dmains vomsteUen, wie Abb. 9.4 zeigt. Abb. 9 A Hierarchie mit Name-Servern
Man beachte, dass jede Zone auf Grund von Redundanz in zwei oder mehr NameServern implementiert wird. Das heißt, dass die Informationen auf dem zweiten Name-Server verfügbar sind, wenn der erste ausfällt. Andererseits steht es einem bestimmten Name-Server frei, mehr als eine Zone zu implementieren.
640 I e M m m d l q p
Jeder Name-Server implemenrien die Zoneninformationen als eiae Sammlm von R a s s o r s t w x ~ d s MIm~ wesentlichen ist ein bsourcendatensatz ein N d Wm-Bin&& o d q genauer @qt,ein 5-Tupel,das folgende Fel&r enthält: <jupi ter.physics.princeton.edu, 128.196.4.1, A. IN* <saturn.physics.princeton.edu. 128.196.4.2. A. IN> <mars.physics.princeton.edu. 128.196.4.3. A. IN> ie erste Seile einer mAnfragenacbri&t
spedfhiert drei Dinge: die durchzufübzende Operation7die W&Bage, auf w e b die Operation a d e n ist, und die benutzte I-FITF-Version, Obwahl H2TP viele m ö g W Anfmgeopeitationen definiert, darunter »writea-Operationen, mit denen Web-Page auf einem Server beteitgesteflt werden können,sind die beiden häufigsten Operationen GET (hole die spezifizierte Web-Page) und HEAD (hole Statusinfonnationen uber die spezifizierte Web-Page). GET wird benutzt, wenn der Browser eine Web-Page abrufen und m i gen möchte. HEAD wird verwendet, um die Gültigkeit eines Hyprtext-Link ni prüfen odw nach.zuseh ab eine bestimmte Seite seit dem letztea Wesen in den Btowser geändert wurde. In Tabelle 9.1 sind alle verfügbaren Operationen aufgeführt.
-
Operation
I
-
OPTIQNS
I I
,l:n
Beschreibung Anfrage von Informationenü
Abnd des in der URL bazeichneten DokumEs
AbNf von Wtainformatbnen Liber das in d a URL bezeichnete Dokument POST
Ausgabe von Informationen(zB. Annotation) an einen Server
Pur
Speichern des Dokuments unter der spezifizierten URL
DELETE
Löschen der spezifizierten URL
TRACE
Schleife zur Anfragenachridit
CONNECT
Für die Verwendung durch Proxies
Beispielsweise besagt die START-LINE GET http://www.cs .princeton.edu/index.html
HTTP/l. 1
dass der Client vom Server auf Host www.cs.pr2nceto(dedu die Ausgabe der Sei%
namens index.htm1 anfordert. In diesem Beispiel wird eine ubsslarte Um b e n u ~ . Daneben ist auch eine relative mit der Spezifikation des Host-Namens in einer der MESSAGE-HEADER-Zeilen möglich, z.B.: GET index.htm1 HTTP/1.1 Host : wwh. CS. p r i nceton. edu
--,
Hier ist Host eines der möglichen MESSAGE-HEADER-Felder. Interessant ist vm allem If-Modilied-Since, weil es dem Client eine Möglichkeit bietet, eine bedingte Anfrage fiir eine Webseite zu stellen, Der Server gibt die Seite nur aus, wenn sie seit dem in diese Header-Zeile spezifhierten Datum geändert wurde. Antwortnachrichten Wie Anfrage- beginnen Antwortnachrichten mit einer einzigen START-LINE. In ifib sem F& spezifiziert die Zeile die benutzte H'ITF'-Version, einen aus drei Ziffm bestehenden Code, der anzeigt, ob die Anfrage erfolgreich war, und eine Texdwm, die den Grund für die Antwort angibt. Beispielsweise besagt folgende START-LlNE HTTP/l. 1 202 Accepted
dass der Server die Anfrage erfolgreich bedienen konnte, während HTTP/l. 1 404 Not Found
bedeutet, dass er die Seite nicht gefunden hat und folglich die Anfrage nicht beantworten konnte. Es gibt fünf allgemeine Typen von Antwortcodes; die erste Ziffef des Codes bezeichnet den Typ. Die fünf Codetypen sind in Tabelle 9.2 aufgeführt.
lxx
Informativ
Anfrage erhaken, Prozess wird foiZgeMhrt
a.
Ehig
Aküon &$greich srnpfqpn, wmbndm Lind akzeptiert
3>0(
RA-
Wehre Mion erforderlich, um die Anfrage voiiständkg zu beantworten
4xx
CUent-Fahier
Anfmge rrWd4tt fehierhaite Syntax d e r kann nicht etiül%
werden 5xx
SemY-Fehler
,
Server hat beim Ausführen einer scheinbar gllltigen Anfmge einen Fehlerve~rsaaht
WmIk 9.2: fünf Typen von HTTP-Ergebniscodes
Wie Anfrage- können auch Antwortnachrichten eine o d q mehrere MESSAGE-HEADER-Seilen enthalten. Diese Zeilen geben zusätzliche Informationen an den Client zurück. Die Header-Zeile Location spezifiziert beispielsweise, dass die angeforderte URL an einem anderen Standort verfügbar ist. Wurde z.B. die WebPage der Informatikfakultät an der Princeton-Universität von http:llwww.cs.prinoeton.eduAndex.htrnl nach http~/www.princeton.edu/cdindex.htmlverschoben, antwortet der Server an der ursprünglichen Adresse vielleicht wie folgt: Moved Permanent1y Lacati on: http://www.pri nceton .edu/cs/i ndex. html
HTTP/l. 1 301
Im Normalfall enthält die Antwortnachricht auch die angeforderte Seite. Dabei handelt es sich um ein HTML-Dokument, das aiierdings in MIME (siehe Abschnitt 9.2.1) kodiert ist, weil es außer Text andere Datentypen (2.B. ein GIF-Bild)enthalten kann. Bestimmte MESSAGEJEADER-Zeilen zeigen Attribute für den Seiteninhalt an, darunter Content-Length (Anzahl von Bytes im Malt), Expires (Datum, an dem der Inhalt als überholt gilt) und Last-Modified (Datum, an dem der Inhalt auf dem Server zuletzt geändert wurde). TCP-Verbindungen Bei der ersten Version von HTTP (1.0) wurde für jedes vom Server abgerufene Datenelement eine getrennte TCP-Verbindung aufgebaut. Man kann sich leicht vorstellen, dass es sich dabei um einen sehr ineffizienten Mechanismus handelte: Zwischen Client und Server mussten Nachrichten für den Verbindungsauf- und -abbau ausgetauscht werden, auch wenn der Client vielleicht nicht mehr wollte, als die Aktualität einer bestimmten Seite zu prüfen. Für den Abruf einer Seite, die Text und ein Dutzend Icons oder andere kleine Grafiken enthielt, mussten 13 getrennte TCPVerbindungen auf- und abgebaut werden. Die wichtigste Verbesserung in der letzten HTi'P-Version (1.1)ist die Unterstützung persistenter Vwbindungen.Das heißt, dass Client und Server mehrere Anfrageund Anrwortnachrichten über ein und dieselbe TCP-Verbindung austauschen können. Persistente Verbindungen weisen zwei entscheidende Vorteile auf. Erstens wird
633)PdMwduqm - .
b:@mhead beim Verbindungsmfbau red* WS, einersei&zu k m %mst uad l i i b m w k d d w r 'ftZ@*b dmelkrer A u q p b e ~ b ' B e n u t & raha.~ Z l w e ' 1 t ~ ' ~ o n i e r t
'
f%matlm*hw a i . -weil &il C h t 1R(Eh$iLlf'd An TcP-Vwhdq b, Das lief@d m d m ES Seite die Slow-Sart-Pha8e zu durchlaufen. PersistenteiKerbaab&ctnfades a b der Client noch der kmer nstwendigmeise we&, Verbindung d b g&alten werden muss. Daa,is@für tisch, weil er mögikherweise VwIwidmgcn ftir g&&et hat. Als Uisung muss beim k e r ein bin$m schließt, wem ü SM C h n t und Smgir müssen au sich da& enrsehieden hat, die Signal verwehden, dass sie a wissen aus einem früheren KaPi'lel,dass beide miisseii, damit sa vollstbdig b a d e t werden kann.)
Cadiing
V
Eina der aktivsten entinauiemQ&e teile. Aus Sicht des Clients rufen werden kiann, vieI schneller angezeigt, al . ab&h arerdm mtrss. Atis Sicht d a Semrs reduzle-ru si& die ,$elaahmg,wbt$ eine aus einan Cache bedient werdea kann. ' ' Cdin&kmn an viden am&Ecdaen Sklien hpiernenthxt wmden. Der km: sct 6ine Benutzers k ~beispie1weise . die Metzt'abgektifmen Seiten Ern Ca&$ abIe'gen und von dort wiedqr -igen, wenn dcr Benutzw die gleiche Sitie Oain~& & r d ~ 1Ws ~ weiteres BeiipieI hhn ein Sjtantkt e i h tinxi&n simükrgden& Ca& t h e s e i u a , Dadmch erhalten Benutzer einen %&, ~ msieiSeim fen, die zuvor von anderen Benu~ernherunterst1aden wurden. Näher aa dex ,M$* des btenid kann ein ISP Seiten in einem Lache aballen. Man bmehte, da@&Bi&=E der dite im zweit&-Falt höchsi-BckInoh when, a u F d e r A k j e b e & Si'ten!CI& Site in dt&m Cwhe awbgt d a i und k e n IBromr &tspmA-$ i t ~ n f i g w h mk h m , um $ich dr& mit dem Cahing-Hast n t t v m K i . Dieiei Km- W auch BQ* gerisnnt. hn Gegensatz &U .aris:n Ci Si- die sich B& &R fWwbhidm, wahpgc:h&ach nicht, dass & @P gitm h ehern Cache v ~ h & . B ga&deWfl~ekdi#l& &&a3 WlTPd&hgen, caie vm vddtiedefita 5 3 eh&~ hen, d& 'eiaieri -ten I S P - R O ~0ieBPtz. ~ ~ ~ IXWH R~22lBrkann &ie &genachdcht und die UlRL der angefo~dwtmM e antwliea. Bohdet sich &E Mte'irii Ca&$ gibt er sie von dort aus. An&dBleimt er' & m ' m k mwehr d h k h t e t die mn der arid- a;Ichtmg U f d - hmam. Kamm & Amwoii vbrki, &ehm der Rrßntereine K@ie in der H&nibn&, Baw er 6 m&$eherweise &r d e Aus&htuhg eh& kuinhigen Arnfsage'&radwh kam.
~nnag
.
,
.
Ungeachtet dessen, ob Webseiten iti einem Cache abgelegt werden, ist das Caching von Wheiten so wichtig, dass im H"iTP-Design bie Vereinfachung dieser Aufgabe berücksichtigt wu~de.Der Tfick ist, dass der Cache s i c h e l l e n muss, dass er aicht mit einer veralteten Version der Seite antworeet. Der Server weist jeder Seite, die er an den Client (oder einen mischen S e m uad Client liegenden Cache) zurücksendet, (im Header-Feld Expires) ein A b l a u f h zu. Der Cache merkt sich rhes h t u m und weg, dass er die Seite nicht d e s Mal, wenn sie angefordert wird, nachpriifen mws, bis dieses Ablaufdatum überschritten ist. Nach b m Datum (oda wenn dieses Header-Feld nicht gesetzt ist) kann der Cache die HEAD- oder die bedingte GET-Operation (Gm mit der Header-Zede If-hllodmed-Since) benutzen und prüfen, ob es sich um die neuKopie der Seite handelt. Aiigeneiner ausgedrückt, gibt es eine Reihe von *Cache-Richtlinien*, die von allen Caching-Mechanismen entlang der AnfragdAntwort-Kette beachtet werden müssen. Diese Richtlinien geben vor, ab und wie lange ein Dokument in einem Cache abgesteilt werden kann, wie neu das Dokument sein muss usw.
9.2.3 Netmerkmanagement(SNMP) Ein Netzwerk ist ein komplexes System, sowohl hinsichtlich du Anzahl a n g e d h -er Knoten ais auch der Protokoile, die auf jedem Knoten ausgeführt &rden können. Auch wenn man seine Besorgnis auf die Knoten einer einzelnen administrativen Domain, z.B. einen Campus, bedränkt, müssen mwcherweise Dutzende von Routern und Hunderte oder gar Tausende von Hosts verwaltet werde& Werui man an alle Zustände denkt, die auf diesen Knoten gepflegt und manipuliert werden, 2.B. Adressübersetzungstabellen, Routing-Tabellen, TCP-Verbindungszustand usw., kann man sich den dabei anfallenden riesigen Verwaltungsaufwand Ieicht vorstellen. Jk i ist natürlich wünschenswert, den Zustand der verschiedenen Protokolle auf umerschiedlichen Knoten zu kennen. So möchte man beispieisweise die Anzahi abgebrochener Reassemblimen von P-Datagrammen überwachen, um festzustellen, ob der Timeout, der teilweise assemblierte Datagramme beseitigt, berichtigt werden muss. Als weiteres Beispiel möchte man die Last auf verschiedenen Knoten verfolgen (2.B. die Anzahl der gesendeten oder empfangenen Pakete), um zu ermitteln, ob weitere Router oder Verbindungsleitungen an das Netzwerk angeschiossen werden müssen. Selbstverstaadlich muss man auch auf ausgefallene Hardware und fehlerhaftes Verhalten der Software achten. Was wir soeben beschrieben haben, ist das Problem des Netzwerkmanagements, eine Angelegenheit, die sich durch die gesamte Netzwerkarchiteknu zieht. Da die zu verwaltenden Knoten verteilt sind, können wir als einzige praktische Möglichkeit nur das Netzwerk verwenden, um das Netzwerk zu verwalten. Das bedeutet, dass wir ein Protokoll brauchen, um unterschiedliche Zustandsinformatianen mit den verschiedenen Netzwerkknoten auszutauschen. Das am häufigsten benutzte Protokoll 2Ür diesen Zweck ist das Simple Netsvork Management Protocol (SNMP). SNMP ist im Wesentlichen ein speiielles Anfragelhtwort-Protokoll, das zwei Arten von Anf-genacluichten unterstützt: GET und SET. Mit GET wird der Status
s
e
o
1
9
h
~
eines Knotens abgerufen und mit SET der Status eines k e n s gesp unterstützt noch eine dritte Operation GET-NM, die weiter mten der folgenden Diskussion konzentrieren wir uns auf die Gm-Operation, weil sie @ -, häufigsten verwendet wird. SNMP wird auf nahe liegende Weise benutzt. Ein System giert mit einem Ciient-Pragi.amm, das Informationen über das Netzwerk Dimes Client-Programm weist normalerweise mchr oder weniger die gleiche Rolle wie ein Webbestimmte Informationen aus, die er oder sie ansehen' Programm SNMP für die Anfrage dieser Informationen (SNMPwird oberhalb von UDP ausgeführt.) Ein S ten läuft, nimmt die Anfrage entgegen, sucht die angeforderten hbrmationen 4 gibt sie dem Client-Programm zurück, das sie für den Benutzer anzeigt. Bei diesem eigentlich einfachen Szenario gibt es nur eine Komplikation: Wie gib . der Ciient genau an, welche Informationen er abrufen möchte, und wie weii3 der Smvei; weiche Variable er irn Speicher lesen muss, um die Anfrage zu bedienen? Die * Antwort lautet, dass SNMP von einer Begleitspezifikatbn abhängt, die ais iihmzgfi ment Information Base (MIB)bezeichnet wird. MIB definiert die spezifischen Informationen die MIB-Variablen die man von eine Die derzeitige MIB-Version MIB-I1 organisiect Variablen in 10 u n t e r s c h i e a , Gmppen. Sie werden erkennen, dass fast alle Gruppen einem der in diesem Buch besthriebenen Protokolle entsprechen, sodass Ihnen fast aile pro Gruppe definierten Variablen bekannt vorkommen. Nachfolgend einige Beispiele:
.
-
-
Systemt '~ll~emeine Parameter des Systems (Knotens) als Ganzes und Angabe, wo sich der Knoten befindet, wie lange er schon läuft und Name des Systems. Interfaces: Informationen über aile Netzwerk-Interfaces (Adapter), die an diesen Knoten angeschlossen sind, 2.B. Hardwareadresse jedes Interface und wie viele Pakete über jedes Interface gesendet und empfangen wurden.
über ARP (Address Resolution Protocol), insbesondere über den Inhalt der Adressübersetzungstabelle.
iAdressübersetzung: Informationen
I IP: Variablen bezüglich IP, darunter Routing-Tabelle, Anzahl der erfolgreich weitergeleiteten D a m m e und Statistiken über die Datagramm-Ressemblierung; des Weiteren wird gezählt; wie oft IP ein Datagramm aus dem einen oder anderen Grund verwirft. iTCP:
Informationen über TCP-Verbindungen, z.B. Anzahl passiver und aktiver open-Oerationen, Reset-Anzahl. Tieout-Anzahl, Einstellungen des DefaultT i e o u t usw. Infarmationen über den Zustand vor einer Verbindung bleiben nur über die Dauer der aktiven Verbindung erhalten.
B
UDP: Informationen über UDP-Verk* und empfangenen UDP-Datagramme.
darunter Gesamtzahl der gesendeten
Darüber hinaus @bt es Gruppen für I W , EGP und SNMP selbst. Die 10. Gruppe wird von v d h Medien benutzt. Wir kehren zu der Frage nttndr, wie der Client angibt, welche Mormatisnen er vw einem Knoten abrufen möchte. Mit ciiier Liste der MIB-Variablen haben wir die M b e Sc3Jacbt schon gear~menEs . bleiben noch zwei ProMeme. Erstens bientirigen wir eine gefEaue Syntax, mit deren Hilfe dcr a e n t die a b d & n h9IB-Vdrtbien beschreibt. Zweitem brauchen wir eine genaue D d u n g fiir die vom Server zuräckgqebearen Werte; W e Probleme lösen wir durch Verwendung von ASN.1. W u beginnen mit dem zweiten Problem. Wie wir aus Kapitel 7 wissen, definiert MN,l/BEB eine bwsteliung fiir verschiedene D a t e w n , 2.B. Chmahlen. MI8 &m d a Typ j&r Wanabfen und benuat dann ASN.l/BER, um den in der Variabien enWert zu kodieren, wäluend sie im Netzwerk übertragen wird. Wg, das erste Problem anklangt, definiert ASN.l ebenfalls ein Objektidentifiziemqpdicma. Dieses y -Iestm wurde in Kapid 7 nicht bescfyneben. MD3 verwendet es, ma jeder MB-Variablen eben global eindeutigeni-Bezeichner ~w~ Vergleichbar mit ~omain-~'amen werden diese Bezeichner in .P&mtationw geschrieben. Beipielsweise ist 1.3.6.1.2.1.4.3 die eindeutige ASN.1BQeichng fiir die P - s p e z M e MIBVariabk IplnReceives. Diese Variable erfasst die anzail der W-Datagmmme, die vom betreffenden Knoten empfangen wurden. Bei diesem Beispiel identifiziert das Präfix 1.3.6.12.1 die MIB-Dateribank (maq erinnere sich, dass Objekt-IDa in ASN.1 für alle möglichen Objekte der Welt gelten), die Zahl 4 entspricht der IP-Cnippe und die letzte Zahl 3 bezeichnet die dritte Variable in dieser Gruppe. Netzwerkmanagemeat funktioniert also wie folgt: Der SNMP-Ciient stellt die ASN.l-Bezeichnung für die MIB-Variable in die Anfragenachricht und sendet die Nachricht an den Serve~Der Server bil&t diesen Bezeichnet auf eine lokale Variable ab (2.B. auf eine Speicherstelle, wo der wert dieser Variablen gespeichert ist), liest den in der Variablen enthaltenen aheUen Wert und benutzt anschlief3end ASN.1/ BE& iun den Wert zu kodieren, den er an den Client zurücksendet. Damit bleibt noch die Kläning eines letzten Details. Vi& MIB-Variablen sind entweder Tabellen d e r Stsdcturen. Solche zusammengesetzten Variablen erklären den Grund für die SNMP-Operation Gff-NEXT. Bei Anwendung auf eine bestimmte Variablen-ID gibt dKse Operation den Wert dieser Variablen sowie die ID der nfichsten Variablen zurück, beispielsweise das nächste Element in der Tabelle oder das nächste Feld in der Struktur. Dies unterstützt den Client beim ~Durchhufenuder Elemente einer Tabelle oder Struknit
9.3
Multimedia-Anwendungen
Genauso wie die traditionellen, im vorherigen Abschnitt beschriebenen Anwendungen benötigen Multimedia-Anwendungen wie Audio- und Videokonferenzen Protokolle auf der Anwendungsschicht. Ein Großteil der ersten Erfahrungen mit der Entwicklung von Protokollen für Multimedia-Anwendungen wurde aus den ~MBone-
ffwls~gewonnen. Anwendungen wie vat nnd vic, Q# fiir den h t z mit entwickelt wurden, nutzen IP-Multicast, um M e w W & e = n . ea esn@& c h . Anfangs hatte jede Anwcnd~gihr eigen- Prot~ksli(od*r ihre Pm&-. Bald wurde aber e r b t , dass viele Mdtimedig-Anwendungen gemeinsameAnkm deningen haben, Dies führte letztendiich zur ~ k l y n g ~ n ~n iev es ~ ~ t l i m - W k&
fijr
die Verwendung durch UiniW-Aaavendwn8en.
.
(4
Wir haben mit RSVP (sieheAbscbitt 6.52) bereits ein Ptotdw Waches nützlich für Multimedia-AnWtMtuagm irw. RSWP kam werden, bes-te Resoirrcen im Netzwerk anztzisodstss tine gewbdkihrd D
~
~
t (QoS) ä teiner Applikation zur VedQuug @t
werden
+
W
r
Zusätzlich zu &wem Q o S - S i p a k i e ~ n g s p d o I f ~ f ~v~i ge ehnM Anwendungen auch spezielle TtansgortprotakoUe, dii andem E i g e m w h b n d besitzen und mehr Fwhionalität bieten 4 s UDP. Das Protokdl, m l c k & Anfor-rn entwickelt wurde, nennt sich & h t m i t - T ~ ~ & 1 1r( time Zfgnsport Protoeol - RTP) und wud im Folgenden gcnnuer b c s c m
Eine dritte Klasse von Prordrolien, die von vielen MdtimEdia-ApptiLaa Wrigt wird, ist ein so genanntes Sitzrcngskwtroli-Protokoll [Seauon:C o n d B~CSCYI), N W I I Sie z.& an, Sie m ö & m IP-basi mt führen. Wir brauchen dann einen Mcch eingehenden Anruf Mformiert, etwa indem m e Geriit geschickt wird, die dieses dazu veranlasst zu khgela W w m6eken. & Eigenschaften wie Rufweiterhining, Dr&r-KonberePtz mC ert&&&cn,'Sk [W sion initiation Protocol)und Ii.323 sind Beispiele für Protokolie, die sich um die !3b nuigskontrolle kümmern. Sie werden in Abschnitt 9.32 besprochen.
9.3.1 Real-time Transport Pmtocol (RTP)
Man wundert sich vielieicht, warum ein Protokoli mit ~Transport*in der nung in einem Kapitel über Themen der An-&-hicht auftaucht, Det Gaqd &&r ist, dass RTP umfangreiche Funktionaiirät spenfigchfür Md--An* dun= &L. Aulkrdem lädt es normalerweise oberhalb eines &r in ~ a p i a i i h b d w k h ~ i e nPrototdie der Transporz&hicht, UDP, das einige a ~ w c n d ~ ~ t k hängige Funklionen bereitsteilt, die man normalerweise mit einem T m q e k d in Verbindung bringt. RTP wird dennoch als Tramsportprotdroll lmzeidwsr, weil e~ gemeinsame Ende-zu-EndeFdeiom fiir eine Reihe von hweaduqpa bereitsteh. (Die meisten Protokolle der Anwendmgsshi&t wie HTCP und SM%# werden spezifisch für eine bestimmte Anwendung benutzt.) Dies erklärt die Schwierigkeit, praktische Protokolle in einem srraffen Schichtenmodeli unterzubriagen, Bevor wir RTP im Detail bcscbteiheii, kr&htm wir ehige An7iiteildungenyW die es sich eignet. Multimedia-Anwendungen werdeiirmeist in zwei Klassen aufgeteilt: Kmfmcrnz- und S t m m i f i g - M u n g e n . .Ein be-~ Beispiel der e ~ s t m Klzme isk vat, das häufig in Netme&en mit IP-Mukicast hutztie AudiobT d . Das Coaml-Pancl e h r typhchm vat-Konfetenz ist in Abb. 9.9 dargcstdk.
9.3 Multimedia-Anwendungen
I
663
Eine weitere Konferenzanwendung ist vic, das in Kapitel 1 beschriebene Videokonferenz-Tool (siehe Abb. 1.1).
Ciirist~pherd Desktop Wife Ellery D. Coleinari Enefesdi Bho Geoge Ptiillil Gil Travish C] Hiroaki IKEDi Jay Dombmu Mich
1
Abb. 9.9: User-Interface einer vat-Audiokonferenz
I 1
Streaming-Anwendungen geben normalerweise Audio- oder Videoströme von einem Server auf einem Client aus; ein bekanntes kommerzielles Produkt dieser Art ist Real Audio. Aufgrund der fehlenden menschlichen Interaktion stellen solche Anwendungen schwierige Anforderungen an die zu Grunde liegenden Protokolle. Inzwischen dürfte klar sein, dass Entwickler eines Transportprotokolls für Multimedia-Anwendungen bei der Definition der Anforderungen eine große Herausforderung zu bewältigen haben, um das Protokoll ausreichend breitgefächert auszulegen, damit es die Bedürfnisse vieler verschiedener Anwendungen erfüllt. Sie müssen auch auf die Interaktionen zwischen verschiedenen Anwendungen achten, beispielsweise auf die Synchronisation von Audio- und Videoströmen. Welche Auswirkungen diese Überlegungen auf das RTP-Design hatten, wird später beschrieben. Ein Großteil von RTP stammt eigentlich aus dem Anwendungsprotokoll, das ursprünglich in vat integriert war. Neuere Versionen von vat (und viele andere Anwendungen) laufen über RTP. RTP kann auf viele Protokolle der unteren Schichten aufsetzen, läuft normalerweise aber über UDP. Dies führt zu dem in Abb. 9.10 dargestellten Protokoll-Stack.
Anwendung
kLsa9.18: R&okoii-SB&
AIr MultimedEacAnvmdung$mmit WTR
I I Z ~
Subneiz
Anfwderungen Gdditzlieh wird von einem wniverseiien Md-
nicht gut, sich auf eine einzige Protokd eine M6giichkeit ber kann, welche Kdienaethode Details verhandeln, bis sich die Motbode g W @ haben. Wie fiir Audio gibt es auch fur Video viele verschiedene Kodiedoden. W n
;
;
viel zu spät ankommt, um noch brauchbar zu sein. Folglich muss die Anwendung in der Lage sein, mit fehlenden Paketen fertigzuwerden, wobei der erste Schritt dazu die Feststellung ist, dass sie tatsächlich fehlen. Eine Videoanwendung, die MPEGKodierung verwendet, muss beispielsweise verschiedene Aktionen einleiten, wenn ein Paket verlorengeht, je nachdem, ob das Paket einen I-, B- oder P-Frame enthielt. Da Multimedia-Anwendungen im Allgemeinen nicht über TCP laufen, fehlen ihnen auch die ~ e r h n a l evon TCP zur Überlastvermeidung (die in Abschnitt 6.3 beschrieben wurden). Dennoch sind viele Multimedia-Anwendungen in der Lage, auf Oberlast zu reagieren, z.B. durch Änderung der Parameter des Kodieralgorithmus, um die verbrauchte Bandbreite zu reduzieren. Damit dies funktioniert, muss der Empfänger natürlich den Sender benachrichtigen, dass Verluste vorkommen, sodass der Sender seine Kodierparameter entsprechend berichtigen kann. Eine weitere übliche Funktion von Multimedia-Anwendungen ist das Konzept der Kennzeichnung von Frame-Grenzen. Ein Frame ist in diesem Zusammenhang anwendungsspezifisch. Beispielsweise kann es nützlich sein, eine Videwnwendung darauf hinzuweisen, dass eine bestimmte Reihe von Paketen einem einzelnen Frame .entsprechen. In einer Audioanwendung ist es hilfreich, den Anfang einer mSprechflute - eine Phase intensiver Töne oder gesprochener Wörteq gefolgt von einer stillen Phase - zu kennzeichnen. Der Empfänger kann dann die stillen Phasep zwischen den Sprechfluten identifizieren und sie dazu nutzen, sich an den Wiedqqpbepunkt zurückzubewegen. Dies gnindet auf der Beobachtung, dass eine geringe Verkürzung; oder Verlängerung der Räume zwischen Wörtern für Benutzer nicht wahrnehmbar sind, wahrend eine Verkürzung oder Verlängerung der Wörter selbst nicht nur wahrgenommen, sondern auch als sehr unangenehm empfunden werden. Eine letzte Funktion, mit der wir das Protokoll ausstatten könnten, ist eine gewisse Art der Identifizierung des Senders, die benutzerfreundlicher als eine IPAdresse ist. Tools wie vat und vic können Zeichenketten, 2.B. Joe User (user9domain.com). in ihrem Control-Pa1 anzeigen, sodass das Anwendungsprotokoll die Assoziation einer solchen Zeichenkette mit einem Datenstrom unterstützen sollte. Abgesehen von der Funktionalität, die von unserem Protokoll gefordert wird, stellen wir eine zusätzliche Anforderung fest: Es sollte möglichst effizienten Gebrauch von der Bandbreite machen. Anders ausgedriickt, wollen wir keine Menge zusätzlicher Bits einfühen,,die mit jedem Paket in Form eines langen Headers gesendet werden müssen. Der Grund dafur liegt darin, dass Audiopakete, die häufigste Art multimedialer Daten, eher klein sind, um die für das Ausfüllen mit Samples erforderliche Zeit zu reduzieren. Lange Audiopakete würden auf Grund der Paketerstellung zu einer hohen Latenz führen, was die wahrgenommene Qualität von Konversationen beeinträchtigt. (Wir erinnern uns, dass dies einer der Faktoren bei der Auswabl der Lange von ATM-Zellen war.) Da die Datenpakete selbst kurz sind, würde ein größerer Header bedeuten, dass ein relativ großer Anteil der Leitungsbandbreite von Headern benutzt werden würde, sodass sich die für Nutzdaten verfügbare Kapazität reduziert. In Zusammenhang mit dem RTP-Design werden mehrere Aspekte beschrieben, die durch die Notwendigkeit kurzer Header beeinflusst wurden.
666
1
9 Anwendungen
RTP im Detail Nachdem wir die eher lange Liste der Anforderungen für unser Protokoll für Multimedia auf der Anwendungsschicht betrachtet haben, befassen wir uns mit den Details des Protokolls, das für die Erfüllung dieser Anforderungen spezifiziert wurde. Dieses Protokoll - RTP - wurde von der IETF entwickelt und wird häufig benutzt. Der RTP-Standard definiert eigentlich zwei Protokolle: RTP und RTCP (Real-time Transport Control Protocol). RTP wird für den Austausch von Multimedia-Daten und RTCP für die periodische Übertragung von Steuerinformationen in Zusammenhang mit einem bestimmten Datenfluss benutzt. Bei der Ausführung oberhalb von UDP verwenden der RTP-Datenstrom und der damit zusammenhängende RTCP-Steuerstrom aufeinander folgende Ports der Transportschicht. Die RTP-Daten benutzen eine gerade und die RTCP-Steuerinformationen die nächst hohere (ungerade) Port-Nummer. Da RTP für die Unterstützung einer groRen Palette von Anwendungen aus! wurde, bietet es einen flexiblen Mechanismus, mit dem neue Anwendungen e ckelt werden können, ohne wiederholt das RTP-Protokoll selbst revidieren zu rnusSen. Für jede Anwendungsklasse (z.B. Audio) definiert RTP ein Profil und eines oder mehrere Formate. Das Profil bietet einen Inforrnationsbereich, der ein gemeinsames Verständnis der Felder im RTP-Header für die betreffende Anwendungsklasse sicherstellt (der Header wird weiter unten ausführlich beschrieben). Die Formatspezifikation erklärt, wie die nach dem RTP-Header folgenden Daten zu interpretieren sind. Beispielsweise kann dem RTP-Header einfach eine Sequenz von Bytes folgen, die jeweils ein einzelnes Audio-Sample darstellen, das nach einem definierten Intervall zum vorherigen erfasst wurde. Alternativ kann das Datenformat viel komplexer sein. Ein mit MPEG kodierter Videostrorn würde z.B. eine umfangreichere Struktur voraussetzen, um die verschiedenen Informationstypen darzustellen.
" Das RTP-Design beinhaltet ein Architckturprinzip, das als Application Lette1 Fraiizing (ALT;)hezeiclinet wird. Dieses Prinzip wurde 1990 von Clark und Tenneiihouse als neue Methode zum Entwurf von Protokollen für neu sich abzeichnende Multimedia-Anwendungen entwickelt. Sie erkannten, dass diese ncuen Anwendungen höchstwahrscheinlich mit den bestehende11 Protokollen wie TCI' niclit gut bedient werden können, dass sich andererseits aber auch kein *Allzweckprotokoll~fiir alle Anwendungen dieser Art eignen würde. Tm Kern dieses Prinirips findet sich die Überzeugung, dass eine Anwendung ihre Bedürfnisse am besten versteht. Beispielsweise weiR eine MPEG-Videoanwendung, was \ic bei Frame-Verlust an1 heitcn unternehmen kann, je nachdem, o b der Verluit einen I- oder B-Frame betrifft. Die gleiche Anwendung kann auch am besten beurteilen, wie die Daten für die Übertragung segmentiert werden müssen. Beispielsweise ist es besser, die Daten von verschiedenen Framcs in unterschiedlichen Datagrammen zu senden, damit ein verlorenes Paket nur einen einzelnen, nicht aber zwei Frarnes beeinträchtigt. Aus diesen1 Grund überlässt RTP derart viele Protokolldetails den anwendungsspezifischen Profil- und Formatdokumenten.
v = ~ ) P I X I C C I M IPT
I
Sequenmwnmer
=M
AbR 9.1 1:
Das nTP-Header-Format
S S R C - i * m r (Synohroniseitionsq~le~ C S R G l H z i e r e r (beitragendeQuellen)
Ewetterungs-Heer RTP-NuWaten (Payioad)
Wsader-Format Abb. 9.11 zeigt das in RTP benutzte Header-Format. Die ersten 12 Byte sind immer vorhanden, während die beitragenden Quellen-IDs nur unter bestimmten Ums&den benutzt werden. Nach diesem Header können opti~naleHeader-Erwejterungen folgen, von denen einige unten beschrieben werden. Schliei31ich f~lgendem Header die RTP-Nutzdaten (Payioad) mit dem von der Anwendung festgelegten Format. Dieser Header soll nur die Felder enthalten, die von mögiichst vielen verschiedenen Anwendungen benutzt werden, weil alles, was sich nur für eine spezifische Anwen-. dung eignet, in den ~uuran diese Anwendung gerichteten RTP-Nutzdaten effizienter befördert werden kann. Die ersten beiden Bia bilden die Versions-ID, die in der bei Drucklegung benutzten RTP-Version den Wert 2 enthält. Man mag sich vielleicht wundem, warum die Entwickler des Protokolls 2 Bit für ausreichend hielten, um alle künftigen Versionen von RTP zu berücksichtigen. Dabei ist zu bedenken, dass Bits im RTP-Header ein wertvolles Gut sind. Außerdem dürfte es auf Grund der Verwendung von Profilen i3ir verschiedene Asiwendungen weniger wahrscheinlich sein, dass viele Revisionen des grundlegenden RTP-Protokolls nötig sind. Sollte es sich erweisen, dass eine weitere Version von RTP nach Version 2 notwendig ist, körnte das Header-Format so geändert werden, da@mehr als eine künftige Version möglich wären. Beispielsweise k(innte einem neuen RTP-Meader mit dem Wert 3 im Versionsfeid ein *Subversionc F m : Bruce <sip:brur&&isco.c~;tag-55123 Ca11-1D: xy745j
[email protected] sco. c m CSeq: 271828 IWVITE Contact: csi p:
[email protected] .CContent-Type: appl icationlsdp Content-Length: 142
Die erste Zeile i d e n e e r t die durchzuführendeFunktion (invite);die Ressource, auf der sie durchzuführen ist, d, h, (iea gerufenen TeenJfKhmer(sip:
[email protected]), und die Protokollversion (2.0). Die anschliefkend fobdea Header-Zeilen sehen wahrscheinlich irgend& verttaut aus, weil sie den Header-Zeilen von E-MailNachrichten ähneln. SiP definiert zahlreiche Header-Felder, von denen hier nur einige bosdkaeben werden, Man beachte, dass der Headet Vi: in diesem Beispiel das Gerät i d d r i i e ~von , dem diese Nachricht stammt. Die Header Ctant-t-Type: m d Confen(-Length: beschreiben den Inhalt der nach dem Header fblgenden hechrichtJ genau wie in einer h4MEkodierten E-Md-Nachricht. In diesem F d handelt es sich bei dem Inbalt um eine W-Nachricht (Sessi~nbcription Protocol). Diese Nachricht würde Dinge wie Medientypen (Au* Video usw.) beschreiben, die BIuce mit Larry austauschen möchre, und weitere Eigenschaften der Sitzung, wie
z. B. die von ihm u n t e e n COBEC-Typen. Man beachre, dass das Fdd OonM-
MogWkeis W, für diesen Zweck jedes beliebige Protokoll zu benutzen, obwohl SDP das häufigste ist. Wir kehren zu unmern Beispiel zurück: Wcnn die imrite-Nachricht beim Proxy cisco.com ankomnt, leitet didie Nachricht nur in IWmng princetwi.edu
Type: in SJP die
weiter; s a n h antwortet auch dem h d e r der invbN~chncht.Gewu wie in HiTP verfügen alle Antworten über einen h t w o m d e , und die Oqanisation desCodes k l t derjenigen in HlTP, wie in Tabelle 9.2 ereichdich iss. In Abbilhtuig 9.15 können wir eine Folge v m SIP-Nachrichten und -Antworten sehen.
Abb. 9.1 5: Nachrichtenflussin einer einfachen SIP-Sitrung
Die erste Antwortnachricht in dieser Abbildung ist die varlaufige Antwort 100 tiying, was bedeutet, dass die Nachricht vom Proxy des Anrufers fehlerfrei empfangen wurde. Nachdem in* Larrys Td&n zugesteilt wurde, mobilisiert es Larry und antwortet mit einer Nachricht 180 ringing. Die Ankunft dieser Nachricht auf dem Computer von Bruce ist ein Zeichen, dass er einen roKlinge1tonu erzeugen kann, Unter der Annahme, dass Lmy dkns und in der Lage ist, mit Bruce zu kommunizieren, kann er seinen Telefonhiirer abnehmen, wsdiirch das Versenden der Nachricht 200 OK veranlasst wird. Der Computer von Bruco antwortet mit einem ALK, pnd ae diesenr Punkt können die Medb (z. B. ein in RTP verkapselter Audiostrom] beginnen, zwischen den beiden Teihdmern zu flie&n. Man beachte, daes die Teilnehmer an diesem Punlct gegenseitig ihre Adressen kennen, sodass das ACK direkt unter Umgehung der Proxies gesendet werden kann. Ab diesem Pankt sind die
Proxies nicht mehr an dem Gespräch beteiligt. Aus diesem Grund fließen die Medien normaierweise auf anderen Pfaden als die ursprünglichen SignalisienuigsnachricEi~ ten durch das Netzwerk. Aderdem gilt es zu beachten, dass das Gespräch ganz normal fortgesetzt werden könnte, auch wenn einer der beiden Proxies oder gar beide an diesem Punkt abstürzen würden. Und letztlich gilt, wenn ein Teilnehmer die Sitzung bmnden möchte, sender er eine BYE-Nachricht, die unter normalen Umstädm eine Antwort vom Typ 200 OK auslöst. Wir haben im obigen Beispiel ein paar Details a&r Acht gelassen. Ein Detail h die Aushandlung von Sitzungsmerkmaien. Vielleicht möchte Bruce in der Kornmdkation sowohl Audio als auch Video benutzen, während Larrys Telefon nur Audio unterstützt. In diesem Fall würde Larrys Telefon in seinem 200 OK eine SDP-Nachricht senden, die unter Berücksichtigung der im invite von Bruce vorgeschiagena Optionen die für Larry und das Gerät akzeptablen Eigenschaften beschreibt. Auf diese Weise werden akzeptable Sitzungsparameter ausgehandelt, bevor der Medienfluss beginnt. Ein weiteres wichtiges Detail, das oben übergangen wurde, ist das Auffinden des korrekten Geräts für Larq. Erstens musste der Computer von Bruce sein invite an den Proxy cisco.com senden. Dies könnte durch eine im Computer hinterlegte Information oder auf der Basis von DHCP geschehen. Dann musste der Proxy cisco.com den Proxy princeton.edu suchen. Dies könnte durch Verwendung einer speziellen DNS-Suche (Lookup) erfolgen, die die P-Adresse des SIP-Proxy für die Domain princeton.edu zurückgibt. Schließlich musste der Proxy princeton.edu ein Gerät finden, an dem Larry kontaktiert werden kann. Normalerweise hat ein Proxy-Server Zugang zu einer Standortdatenbank, die auf unterschiedliche Weise bestückt sein kann. Die manuelle Konfiguration ist eine Option; eine flexiblere Option ist jedach die Verwendung der Registrierungsmöglichkeitenvon SIP. Ein Benutzer kann sich bei einem Standortdienst registrieren, indem er eine SIPNachricht vom Typ register an den Registrar seiner Domain schickt. Diese Nachricht erzeugt ein Binding zwischen einer so genannten Address of Record und einer Contact Address. Eine Address of Record ist höchstwahrscheinlich ein SIP-URI, bei dem es sich um die »wohlbekannte« Adresse des Benutzers (2. B. sip:larryOprinceton.edu) handelt, und die Contact Address wird die Adresse sein,an der sich der Benutzer momentan befindet (z. B. sip:lanyOIlpph.cs.pru.iceton.edu). Dies ist genau das Bhding, das der Proxy princeton.edu in unserem Beispiel benötigte. Man beachte, dass sich ein Benutzer an mehreren Standorten und mehrere Benutzer an einem einzigen Gerät registrieren können. Beispielsweise kann man sich eine Gnippc von Leuten vorstellen, die einen Konferemraum betreten, der mit einem IPTelefon ausgestamt ist, und dass sich aile an diesem Telefon registrieren, d d t sie Anrufe darauf empfangen k~nnen. SIP ist ein sehr iimfmveiches und flexibles Protokoll, dass zahireiche komplexe Anrufszenarios sowie Anwendungen, die wenig oder nichts mit Telefonie zu tun haben, unterstützen kann. SIP unterstützt z. B. Operationen, mit denen ein Gespräch auf einen »Music-on-Holda- oder VohMail-Server vrngeschaltet werden kann. A&rdem kann man leicht erkennen, dass es fiir Anwendungen wie Instant
Messaging benutzt werda könnte. Bei Drucklegung definierte die Arbeitsgmppe SIMPLE bei der IETF Standards in diesem Bereich. H323 Die ITüwar auch auf dem Gebiet der Anrufkontrolle ( C d Cantrol) sehr aktiv, was angesichts der Bedeutung dieser Organisation Un Bereich der Telefonie als ihrem traditionellen Hoheitsgebiet nicht überrascht. Zum Glück gab es eine umfang&h Koordination zwischen IETF und ITü in diesem Bereich, sodass die verschiedenen Protokolle in gewissem Umfang zusammenarbeiten. Die wichtigste ITU-Empfehlung fiir Multimedia-Kommunikation über Paketnetzwerke ist H.323; sie umfasst viele weitere Empfehlungen, darunter den Call-Control-Standard H.245. Die H.323Emptehlunp umfassen msgesamt mehrere hundert Seiten, und das Protokoll ist für seine Komplexität bekannt, sodass wir uns hier auf eine kurze Obersicht k h r i i n ken. H.323 ist als Protokoll für Interne-Telefonie weit verbreitet, und wir wollen hiw diese Anwendung kurz betrachten. Ein Gerät, das Gespräche einleitet der beendq wird als H.323-Terminal bezeichnet. Es kann eine Workstation sein, auf &r eine Intemet-Telefonie-Anwendungläuft, oder ein speziell entwickeltes Gerät, z. B. ein mit dem Telefon vergleichbarer ,Apparats mit Netzwerksoftware und einem Ethefi net-Port. H.323-Terminals können direkt miteinander sprechen, die Gespräche werden aber häufig durch ein als Gatekeeper bezeichnetes Gerät vermittelt. Gatekeeper führen eine Reihe von Funktionen aus, z. B. die Übersetzung un~erschiedli&r Adressformate der Telefongespräche und die Steuerung, wie viele Gespräche zu einem bestimmten Zeitpunkt geführt werden können, um die von H.323-Ancvendungen benutzte Bandbreite zu begrenzen. H.323 beinhaltet auch das Konzept e i w Gateways, das das H.323-Netzwerk mit anderen Netzwerktypen verbindet. Ain häufigsten wird ein G m a y für die Verbindung eines H.323-Netzwerks mit dem öffentlichen vermittelten Telefonnetz benutzt (siehe Abbildung 9.16). Dies erm&licht es einem Benutzeq eine H.323-Anwendung auf einem Computer ausztifih-e~, um mit einer Person zu sprechen, die ein konventionelles Telefon am öffentlichen auch ein Terminal bei der S Telefonnetz benutzt. Der Gatekeeper - .unterstützt .,,.: ...,:. ?GW::. wc.>..: :-:.-,:t 1 4. . : . #I,-. . ;*:. -82-5 !(\..J.-,..
. .
Abbiidung 9.W Gerate in einem HS23-Netzwerk
J,?
. .
:.;
F.
I.
-P
* getmdec. PPic WNs h m z t MBoae sowohl P-Twui-1 als auch P-Adressen. Im Gegensatz ZU WNs implementiert M b n e aber einen anderc-n W d ~ ~ ~ ~ o r i t b Es m u s : leitet Pakete an alle Downstream-Nachbarn im S h ~ ~ - P ~ ~ ~ M u i W&~ s t - B a ter. Ak Overlay müssen sich Multicast-kundige Router Eibcr leinen h e i durch Legacy-Router hindurch. arbeiten in der Hoffnung, cl-ass es eines Tages keine LegacyRouter mehr geben wird. 6-bne ist ein ähniiches Overlay, das für die inkrementelle Instailatioa von IPVG benutzt wird. Wie MBone nutzt auch 6-Ebne Tunnel zur Weitetleitung von Paket~a dwch IE"v4-Ranter. Im Gegensatz zu MBone bieten 6-be-Xhoten aber nicht Bur eine neue uiterpretation der 32-Bit-Adressen W)II f i 4 , sondern leiten Pakete auf .der Unmdlaggc des 138-Bit-Adressrainns von IPv6 weiter. Aderdem unterstützt 6-Bone genau wie I h 6 IWths.
> .-
E?dsysmwrnWt ObmM W o a e nach wie vor ein beliebtes Overlay ist, konnte IP-Mukicatst die Weit nicht im Sturm erobern. Ais Reaktion darauf wenden sich viele auf Multicaa bivsiem&h n d m g m , $vie Videokwkienzen, esher alternativen Strategie zu, die als E-ewt-Multi-t bezeichnet wird, Der zu G d e iiegendea Idee zufolge akzeptiert EndSystem-Multicast, dass IP-Multicast nie allgegenwärtig sein wird und Pberliim es g2attSaeSsen den Endh&, die an einer bestimmten Muldcast-Anwendung teiln~hmen~ i h eigenen ~ticast-Biiurnezu implemea-. (Als Eizjschub whe anzumerken, dass ts ehe geistige 'Richtung gik Bie behauptet; P-Muiticast habe keine Akzeptanz gefunden, weil es olnfach nidnr aaf die Netzwerkdicht geh&%& es F w h i o d t i i a der fKiheren Schichten, wie z. B, Fehler-, Fluss- und -la&troIle M-nianagement, mterstützen muss.} W e r wir bischreiben, wie Eadsystcm-Mulbst funktioniert, muss man uteii9t: vemehen, dass hisystem-MuIticas~im Cegewtz zu WNs und MBone davon 9ur. g& das nur I n ~ - H o s t (im s Ggensatz zu fntem&-W81xtern) am Owrlay b4I@ sW. M d m taw&en dfegc Hosts a o ~ e d s Nachtkhten e durch UM"Tunnel und aicht durch @-Tqe1 mit+& aus, was i*e fmplemenritmg als regubm Anwendwqyprogtamme vereinfacht. Dadurch kann man das zu Gnmde liegende Netzwerk & voU8tnndig verbundenen G r a p h b & t e n , weil jeder a6kt
imJ[ZiteFDa~d~~ist,ciaieN~~atijdm~crenH~tms & b s d t e rSicht 1- E n d i p t m n - W d m fdgeia&Problem: Ausgehend von eiEem vol4&bdig ve&mbm Gtaphen, d a das immer dareilt, ii* das darin, den ehgebetteten M u l t t c i z s t h zu finden, der sich ü k afle Gmppamhgiieder erstreckt.
Da wir von der vcrktäbidlgen Verbindun8 des m Grunde liegrriYPk=nintmet a w gehen, wkde eine naive L6sung darin bestehen, jede Quelle direh mit jadem Gpnmitgüed zu vdhden. W a n k e n Wuaen: Endsp~tem-M&st kIhinte dadurch impkmmiert . d n ,dass man jeden Knoten Ihiicasr-lkhcich~nan jedes Gmpp-cd atnden lisat, Um das dabei e~i58-& Problem ai Mhen, insbesondere im Vergieicb z - q lranpJemendcm V= Br-M* in R a m q betrachten wir die Beispielt~poiqgie inAbbildung 9.19. ABbiMmg 9*19{a)aklgr&e physikalische B&@ielropoiagk, i~ der R1 uIK1 R2 zwei u b e ehe aandcontinentab Leitung mit niedriger Bandbreite mrBwndene Router sind A, B, G und D s i d Encb; hcwq ~ L g i t u n g s v e m ö g z ~werden n a b Kanreagmkhte angqphn. Unter der Annahme, dass A eine Multicast-N&cht an die andemein &ei Hosts enden möchte, zeigt Abbilduag 9.19(b),wie naiv die ~nias~übem~gung ~d0~1ieten d e . Das ist natürlich w h w h t , weil eh und W b e Nochriebt die Leitung A-F1 dreimal übequeren muss und zwei Kopien der Nachricht R1-6L2durchqueren. Abbildmg 9.19(c) zeigt den von DVMRP gebildet- W-Multicast-Baum. Met ist ganz klar ersichtlich, dass dieser &atz redwhnte Nachrichten vameidet. Ohne Unterstützung durch die Roumr ist allerdings das Beste, was wir uns mit EnhystemMulticast erhoffen können, ein mit demjenigen in Abbildung 9,19(d) vergleichbarer
[email protected]: AbbiIdunga 3, SO
*
P.. (a)
b
WWcatt-
(alphysika'1isdmT.opo'iog$e, nalvae UaicestObert~aguig,(c) auf der i+kzwe(durch Routtr),g&iideter MuIticm-Eaurh, td) auf der Anwendungsebene {durch Endhosts)gebildeter Multicast-Baum.
688
1
9 Anwendungen
Baum. Endsystem-Multicast definiert eine Architektur für die Konstruktion dieses Baum~.
Der allgemeine Ansatz ist die Unterstützung mehrerer Ebenen von Overlay-Netzwerken, von denen jedes einen Subgraphen aus dem darunter liegenden Overlay extrahiert, bis wir den Subgraphen gevrrählt haben, den die Anwendung erwartet. Insbesondere für Endsystem-Mjticaat geschieht dies in zwei Stufen: Zuerst bilha wir ein einfaches Mosch-Overlay, das auf das voMndig verbundene Intemet aufsetzt, dann wählen wir einen Multicast-Baum innerhalb dieses Maschennetzes. Die! Idee ist in Abbildung 9.20 dargestellt, wobei wieder v m den vier Endhasts A, B, C und D ausgegangen wird. Der erste Schritt ist der kritische: Nachdem wir ein geeignetes Maschen-Overhy gewählt haben, führen wir einfach einen standardisiertem Multicast-RQuting-Algorithmus (z. B. DVMRP) darauf aus, um den MulticrrstBaum zu bilden Wir können uns auch den Luxus leisten, die im Internet-wei@n Multieast inhärente Skalierbarkeitsfrirgezu ignorieren, weil das dazwische~egende Masthennetz so gewählt werden kam, dass es nur die Knoten beinhaltet, die wir in einex bestimmten Multicast-Gruppe teilnehmen lassen wollen.
Der Schlüssel für die Konstruktion des zwischenliegenden Maschen-Overlays liegt in der Auswahl einer Topologie, die grob der phydealischen Topologie des w G d e liegenden Internet entspricht. Wir müssen das aber erreichen, ohne dass uns irgendeiner sagt, wie das zu Grunde hegende Intmet tatsächfich aussieht, weil wir nur mit Endhosrs und nicht mit Routern arbeiten. Die aIlgemeine Strategie besagt, dass Eüe Endhosts die RoundtripLatenz zu anderen Knoten messen und ~u dann enmcbiden, das Maschennerz mit weiteren Leitungen auszuwelm, wenn ihnen das gefbillt, was sie sehen. Das funktioniertwie folgt: Unter der Annahme eines bereits bestehenden Maschennetzes tauscht jeder KMten zuer@die Liste aller anderen Knoten, die seiner Meinung nach am Maschennetz
F:'
beteiligt sind, mit seinen direkt angeschlossenenNachbarn aus. Empfängt ein Knoten eine solche Mitgliedschaftsk von einem Nachbarn, integriert er diese Mormationen in seine Mitglicdschaftsliste und leitet die resultierende Liste an seine Nachbarn weitet. Diese Informationen breiten sich l m & h durch das Maschennetz aus, ähnlich wie in einem Distanzvektor-Routing-Protokoil. Möchte ein Host dem Multicast-Overlay beitreten, muss er die IP-Adresse von mindestens einem anderen, bereits im Overlay befindlichen Knoten wissen. Dann sendet er eine Nachricht vom Typ *Join hieshu an diesen Knoten. Letzterer verbindet den neuen Knoten durch eine Kante zu dem bekannten Knoten mit dem Maschennetz. Im Allgemeinen kann der neue Knoten eine Join-Nachricht an mehrere aktuelle Knoten senden, wodurch er dem Maschenneiz über mehrere Verbindungen beitritt. Hat sich ein Knoten durch eine Reihe von Verbindungen auf das Maschemetz aufgeschaltet, sendet er periodisch »Keep alivee-Nachrichtenan seine Nachbarn, um diese wissen zu lassen, dass er noch in der Gruppe-bleiben will. Möchte ein Knoten die Gmppe verlassen, sendet er eine Nachricht vom Typ »Leave Meshu an seine direkt angeschlossenen Nachbarn. Diese Information wird über die oben beschriebene Mitgliedschaftsliste an die anderen Knoten irn Maschennetz verteilt. Alternativ kann ein Knoten ausfallen oder einfach stillschweigend die Gruppe verlassen, was seine Nachbarn dadurch erkennen, dass er keine »Keep &veu-Nachrichten mehr sendet. Der Abgang einiger Knoten hat kaum eine Auswirkung auf das Maschennetz. Sollte ein Knoten aber erkennen, dass sich das Maschennetz auf Grund eines verlassenden Knotens zersplittert, sendet er eine nJoin-MeshuNachricht an einen Knoten im abgetrennten Bereich des Maschennetzes und erzeugt so eine neue Kante zu diesem Knoten. Man beachte, dass mögiicherweise mehrere Nachbarn gleichzeitig eine Abtrennung im Maschennetz feststelen, was zur Hinzufügung mehrerer Kanten über die abgetrennten Bereiche des Maschennetzes führt. Der bisherigen Beschreibung zufolge erhalten wir schlieSiich ein Maschennetz, bei dem es sich um einen Subgraphen des ursprüngiichen, volistandig verbundenen Internet handelt, dessen Leistung aus folgenden Gründen aber ~ c h oprimal t sein kann: (1)Die anfängliche Nachbarnauswahl erweitert die Topologie wahilos tun zusätzliche Verbindungen; (2)durch die Behebung einer Abtrennung könnten Kanten hinzugefügt werden, die lediglich im Moment, nicht aber langfristig nützlich sind; (3)die Gruppcmnitgliedschaft kann sich auf Grund dynamischer Beitritte und Abgänge ändern; und (4) die zu Grunde liegenden Netzwerkbedingungen können sich ändern. Deshalb müssen wir darauf achten, dass das System die Nitzlichkeit jeder Kante auswertet, was dazu führt, dass im Lauf der Zeit neue Kanten zum hfaschennetz hinzugefügt und vorhandene entfernt werden. Um neue Kanten hinzuzufügen, sondiert jeder Knoten i periodisch ein zufälliges Mitglied j, das momentan nicht am Maschmetz angescbiossen ist, misst die RoundtripLatenz der Kante (i, j) und bewertet dann die Nützlichkeit der Hinzu&gung dieser Kante. Liegt die Nützlichkeit oberhalb eines bestimmten SchweilenWerts, wird Verbindung (i,j) zum Maschennetz hinzugefügt. Diese Bewertung kann
gWI
1
9 AAmmltiAgM
Evaluatdlti 1it y (j) utility = 0 for each neniber m not equal t o i CL current latency t o node m along route through mesh if (NL < CL) thenNl = new latency t o node m along mesh if edge (i ,j ) is added utSli t y += (CL NL)/CL return u t i l i t y E
-
Die Entscheidung für oder gegen die Entfernung einer Kante ist ähnlich, auSer dass jeder Knoten i die Kosten jeder Verbindung zum aktuellen Nachbarn j wie foigt berechnet:
,
,
Eva1uateCost U) Costlt = n w e r o f nienibers f o r which i uses j as next hap Costjc = numbcr af Rlenibers f o r which j uses i as next hop r e t u r n nax(Costu. Costjt)
Danach sucht er sich den Nachbarn mit den geringsten Kosten aus und entfernt ihn, wenn die Kosten unter einen bestimmten Schwellenwert fallen. Zum Schluss noch ein Purikt: Da das Maschennea unter Verwendung von etwas gepwird, das im Wesentfidten ein Distanzveictor-Protokollist, ist es ein Leichtes, DVLYLRP awmführen, um einen eatsprechenden Multicast-Baum im Madennetz zu finden. Obwohl war wuniigiich nachgewiesen werden kann, dass clas eben b e s c w k Protokoll zu einem optimaien Maschennetmerk führt, sodass DvMpp den bestomöglichen Mdticast-Baum auswählen kann, weisen Simulati~flen und uaifangreiche praktische Edakmgen darauf bin, dass es gute Arbeit leistet.
Res-e O w ~ ~ e ~ b webmxisait B e M & @ttwhuwmdesRouting-Oveday findet alternative Rauten füt.t t a W 1 1 e Urhst-bnwendu~igmSolche Overlay-Netzwerke machen sich die Tatwehe zunutze, dass die Dreiedsunglewit (Tzbgle h q d t y ) im Innernet nichr-$ydt.AbbMufig 921zeigt, wi@ wir damit meinem. Es ist nicht unüblich, dass im Intern drei l b n b n e nenrla wir sie A, B und C - SO liegen, dass die Latenz zwischen.A und B gröt3er als dieSumme der Latenzen von A zu C und von C zu B ist. Qaa h d t , manchmal wäre es besser, seine Pakete indirekt über einen m v k b bqpdem Knoten ab .direkt an das Ziel zu senden. Ws kam das s e93 Nun, BGP hat nie versprochen, dass es die kiirzeste Rmtq zwisehei1 zwei Standortenfindenwürde; es versucht kdighch*irgedeine Route finden. Um die Lage noch zu ve-m, gibt es d o s e Gelegenheiten, mit auf Menschen amg&&tetea Regeln (Pdicies), den N o d b e t n ~ bvon W P unmmoBen. Das passiejrc z. B. dtan PeeMg-Punkten zwischen g r o b Backboaa. I S k Kurz,dass die D p e i h d e i c h h e i t im lnternet nicht greift, soll* nicht über-
-
:
. ;
-
raschen. Wie nutzen wir diese Tatsache? Im ersten Schritt muss man erkennen, dass es grundsatzlich einen Kompromiss zwischen der Skalierbarkeit m d dem Optimum
.
Abb. 9.21: Die Dreiecksungleichheit greift nicht unbedingt in Netmerken.
eines Routing-Algorithmus gibt. Einerseits skaliert BGP auf sehr s o & Nettmerke, wählt aber oft nicht die bestmögliche Route und passt sich nur langsam an Netzwerkausfälle an. Andererseits - falls man nur am Finden der besten Route unter einer Handvoll von Standooten interessiert ist - könnte man durch Oberwachung der Qualität jedes potenziell benutzten Pfads viel mehr erreichen, indem man jederzeit die bestmögiiche Route auswählen kann. Ein experimentelles Overlay namens RON (für Resilient Overlay Network) bewirkt genau das. RON skaliert nur auf einige Dutzend Knoten, weil es eine N d Strategie anwendet und dabei drei Aspekte der Pfadqualität (über aktive Sonden) zwischen jedem Standoirpaar streng überwacht: Latenz, verfügbare Bandbreite und AusfallwahrscheinlicMreit. Dadurch kann es sowohl die optimale Route zwischen einem beliebigen Knotenpaar auswählen als auch Routen schnell wechseln, falb sich die Netzwerkbedingungen ändern. Bisherige Erfahrungen haben gezeigt, dass RON in der Lage ist, Anwendungen bescheidene Leistungsverbesseningen zu bieten. Noch wichtiger ist abeq dags es sich viel schneller von Netzwerkausfällen erholen kann. Zum Beispiel lief 2001 eine Version von BON über eine 64-Stunden-Periode auf 12 Knoten, erkannte dabei 32 Störungen, die mehr als 30 Minuten andauerten, und war in der Lage, im Durchschnitt in weniger als 20 Sekunden das Netz wieder herzustellen. Dieses Experiment deutete auch darauf hin, dass die Weiterleitung von Daten durch nur einen zwischenliegenden Knoten normalerweise ausreicht, um Störungen des Internet zu kompensieren. Da RON nicht skaiiert, kann es nicht benutzt werden, um irgendeinem Host A zu helfen, mit irgendeinem Host B zu kommunizieren. A und B müssen im Voraus wissen, dass sie demnächst kommunizieren wollen und dann dem gleichen RON
Alle oben dargestellten Overlay-Netzwerke weisen ein Konzept auf, das im ARgemeinen im Mittelpunkt von Rechnernetzen steht: Vi-tlg. Das heißt, dass es möglich ist, aus abstrakten (logischen) Ressourcen ein Wtuelles Netzwerk zu konstruieren, das auf ein physikalisches, aus physikalischen Ressomcea bestehendes Netzwerk aufsetzt, Außerdem ist es möglich, diese Mi.uueUen N e t ~
Netzwerke wertvoll sind. 9.4.2 Peer-Wee~Netnirerke
Qenkr man dariiber nach, köarpm I?Scgriff,cwie 4ese $e$ut:zr werden, uni das h
m ~.
zufoIge kwr echtes Peer-to-Peer-System ist, weii es von einem muaien DateienRegister abhängt, und Benutzer dieses Verzeichnis dwchsuchennii)ssen, um herausgdiiden, w e h Maschine eine bestimmte Datei vorhält. Lcdigteh de.r 1eSchritt dsia eigentliche H a t e r l a d e n der Datei - erfolgt zwischetl Computern, die zwei Benutzern geböten; das ist a k r kaum mehr als ehe herkömmliche CliendServer-
-
.
Transaktion. Der einzige Unterschied besteht darin, dass der Server einem anderen Benutzer und nicht &an Großunternehmen gehört. Das führt uns zur mspringhchen Frage zurück: Was ist so interessant an Peer-toPeer-Netzwerken? Eine Antwort ist, dass sowohl der Pmzess des Auffmdens eines interessierenden Objekts als auch der Prozess des Henuiterladens diew Objekts auf einen lokalen Computer s t a t c a n b ohne dass der Benutzer eine zentrale Autorität kontaktieren muss, urid dass das System gleichzeitig in der Lage ist, auf Millionen von Knoten zu skalieren. Ein Peer-to-Peer-System, das diese beiden Aufgaben dezentral bewältigen kann, erweist sich als Overlay-Netzwerk, wobei die Knoten die Hosts sind, die interessierende Objekte (z. B. Musik-oder andere Dateien) gemeinsam nutzen wollen, und die Leitungen (Tunnel), die diese Knoten verbinden, die Rechnersequenz darstellen, die man besuchen muss, um das gewünschte Objekt ausfindig zu machen. Diese Beschreibung wird später, nachdem wir uns zwei Beispiele angesehen haben, klarer. Gnutella Gnutella ist eines der ersten Peer-to-Peer-Netzwerke, mit dem versucht wurde, zwischen dem Austausch von Musik (was meist das Copyright eines Dritten verletzt) und der gemeinsamen Nutzung von Dateien (was gut sein muss, da man uns Teilen ab dem Alter von Zwei beigebracht hat) zu unterscheiden. interessant ist an Gnuteiia, dass es eines der ersten Systeme dieser Art war; die nicht von einem zentralen Objektregister abhängen. Stattdessen arrangieren sich Gnutella-Teilnehmer selbst in einem Overlay-Netzwerk, vergleichbar mit demjenigen in Abbildung 9.22. Das bedeutet, dass jeder Knoten, auf dem die Gnutella-Software läuft (d. h., der das Gnutella-Protokoll implementiert), eine Reihe von anderen Computern kennt, die ebenfalls die Gnurella-Software ausführen. Die Beziehung BA und B kennen einand e r ~entspricht den Kanten in diesem Graph. (Wir wenden uns gleich der Frage zu, wie dieser Graph gebildet wird.) Abk 931: Beispieltopologieeines Gnutella-Peer-to Netzwerks
'
:
Machte der Benutzet an einem bestimmten Knoten ein Objekt h d e a , sendet Gnuteiia eine QUERY-&&cht & & Objekt, z. B.,durch Angabe des Dateinamens, an seine Nachbarn irn Graph. V&@ einer der Nachbarn über das Objekt, antwor-
QM 10-
tet er dem Knoten; der die Anfrage gesendet brat, mit einer Q U E R Y - m m WacbrkBt~in der er angibt, von wo das Objekt h t e r p i a d m werden hna (z, Bi . e hE * Mxi TCP-km-Nu~L~~E). nierei:Kmtcn Ituiadeam GET- oder mJTr ~ ~ b e n u ~ 1 2 m a u f ~ O ~ ~ I E a m hftage sieht adösen, leim er die Q U E B Y - N M t an j& s e hN d k .
Mit d e r e n Wortes: Onatella &W das Chwlay* zu bh.Gnutelia setzt ehe TTZ auf jede Aufzage, nicht tlaendlicb lbmeaakann. -Z zur TTL und Anhgekeue enthält jede QUERYNaelmkht eine ein. deutige Agfrageib-g (QmryI c b d i q m), die jedoctr Qieht die iden&iit der unpriingiichen Nacbkhtanq~lffheathdt. S m a h hibtf jedar Kwm ein s-V d t Q U E R Y - N a * die M& MWuiea,in h & QlD und der Nachbar, der die QUERY gesendet hat, adgezeichn* w e h Diese Aufzeichnung wird auf zweierlei Art verwendet: Erstens leitet der boten eine QUERYNachricht nicht weite&falis er k r h eine QUEl[IY mit einer QJI) erhalten'hat, & mit einer kürz&& v&omgdenen iikrdnshm,Ds dient dem Zweck, Weite&~Weo~Uer~~eiiduialsdies~Bie'fl[Zbewit;kt.~d tens W& da &zoten, wmn er eint QUER.Y-RE5PONSE vdn einem D o m - Nachbarn erhalt, dasJ er die Antwort an den UpstreamNach~w e i t ~ muss, ~ n des die Q W K Y - M d & ump~ n d eh t Aufdiese.W@isebahnt sich d h Anmors ihem W% zaPücEr nun u r s p w B c t I l #irw 0 b n e . b dic4lamaWn~ l&izndea Knoten whm, wer das.b&de €&+da~kwi&aw gesdt hat. . W i r kehren an dm Frage mrW, wie der Graph m& Ein Knoten mmd er einem Gnu&grm-ch mindestens einm d e n #aoten kenne% h l a beitritt, ~ Da neue Knoteg ist:zuniaäkJr über diese Verbindmigan da Ovalay Pmach 1-t e h t.x%kmk~ Kasten aber d e r @Klmen , &* QtllrR'-mpaSE-Nachri&ten & Objekte, die ez oder £iju Anlwmten, die 5bn passieren. Einem Knoten steht die Entscheidung kei, welche Kamen, die ez auf d h e Weise ende&, er ajs N~chbarbehalrend i . Das CiiutefPahotokoll umfasst PING und Pd~EhJachri&ten,mit denea ein Knoten sondieren k m , ob ein bestimmterNachbar noch existiert bzw. mit dmm dieset Nachbar mthalt @&.
Ob*
.-
**
Worte%.
Es sollte klar seins dass Gnutella kein besonders cleveres Protokoll iss, und nah spätam Systeme wwde wcmucht, es zu aerhsern. Eine bimendm, tldder Veebessemaga mogüch skl, ist die Art der Veaiiuag voa Ruten weist das angenehm Merkmal auf, dass das gemimchte Objekt in so wenig Hops wie m6glieh ~ t i e rgehden t wird, es skaliea aber nicht gat. Anf7aen k ( S m plifallsges t a e s d e r $em& der q - e M c h k e i t auf der G&@e &%heresEgebn hweftergeieh werden. Eint zweite Ditnension ist &E proaktive Riplllrarion von d e m je mehr Kopien von einem hdmnsen Objtfn rwhanden sind, rua ss l e k h ~ mllte r eiiiiie Eol,ie bawm zu .£iadgn.win.Altamth köhmm i x t dlig
~
~
*
~
~
e
a
a
,
d
i
e
~
m
n
e
m
-
a
9.40~-
1
6SS
6
StrukturierteBverlays Während Systeme zur gemeinsamen Nutzung von Dateien darum kämpften, das von Napster hinterlassene Vakuum zu füllen, untersuchte die Forschergemeinschaft ein alternatives Design für Peer-to-Peer-Netzwerke. Wir bezeichnen diese Netzwerke als strukturiert, um sie von der im Wesentlichen zufälligen (unstrukturierten) Weise abzuheben, in der sich ein Gnutella-Netzwerk weiterentwickelt. Unstrukturierte Overlays wie Gnutella verwenden triviale Overlay-Konstruktions- und -Wartungsalgorithmen, aber das Beste, was sie zu bieten haben, ist eine unzuverlässige, nifallsgesteuerte Suche. Im Gegensatz dazu sind strukturierte Overlay-Netzwerke auf die Obereinstimmung mit einer bestimmten Graphenstruktur ausgelegt, die zuverlässige und effiziente Objektauffindung (mit auf Wahrscheinlichkeiten basierender Verzögerung) im Gegenzug zur zusätzlichen Komplexität während der Konstruktion und Aufrechterhaltung des Overlay-Netzwerks bietet. überlegt man sich auf abstrakter Ebene, was wir hier zu tun versuchen, gilt es, zwei Fragen zu beantworten: (1)Wie bilden wir Objekte auf Knoten ab, und (2)wie dirigieren wir Anfragen an den Knoten, der für ein bestimmtes Objekt zuständig ist? Wir beginnen mit der ersten Frage, für die es eine einfache Aussage gibt: Wie bilden wir ein Objekt mit dem Namen x auf die Adresse eines Knotens n ab, der diesem Objekt dienen kann? Während traditionelle Peer-to-Peer-Netzwerke keine Kontrolle darüber haben, welcher Knoten das Objekt x beherbergt, köiulten wir Objekte leichter wiederfinden, wenn wir kontrollieren könnten, wie diese Objekte über das Netzwerk verteilt werden. Eine bekannte Technik für die Abbildung von Namen auf Adressen verwendet eine Hash-Tabelle, so dass hash (X) + n bedeutet, dass Objekt x zuerst auf Knoten lz platziert wird und ein Client, der später versucht, x zu finden, lediglich den Hash-Wert von x ermitteln müsste, um festzustellen, dass es sich auf Knoten n befindet. Ein Hash-basierter Ansatz hat die angenehme Eigenschaft, dass er dazu neigt, die Objekte gleichmaig über eine bestimmte Anzahl von Knoten zu verteilen, jedoch leiden einfache Hash-Algorithmen an einer fatalen Schwäche: Wie viele mögliche Werte von n sollen wir zulassen? (In der HashTerminologie heißt das, wie viele Buckets (Eimer)sollte es geben?) Auf naive Weise könnten wir uns auf - sagen wir - 101 mögliche Hash-Werte einigen und eine Modulus-Hash-Funktionbenutzen; d. h. return xOh 101
Gibt es aber mehr als 101 Knoten, die willens sind, Objekte zu beherbergen, können wir sie leider nicht alle nutzen. Wählen wir andererseits eine gröf3ere Zahl als die größtmögliche Anzahl von Knoten, entstehen einige Werte von X , deren HashErgebnis auf die Adresse eines nicht existierenden Knotens fällt. Aderdem besteht der nicht ganz so triviale Aspekt der Obersetzung des Werts, den die Hash-Funktion zurückgibt, in eine tatsächliche IP-Adresse.
Um diese Frage zu lösen, verwenden Peer-to-Peer-Netzwerke einen als konsistm tes Hashing bezeichneten Algorithmus, der eine Menge von Objekten x gleichmägb
über einen groi3en ID-Raum hasht. Abbildung 9.23 zeigt einen 128 Bit grof3en IDRaum als Kreis, wobei wir den gleichen Algorithmus benutzen, um sowohl Objekt% also hash (object-nume) + objid, als auch Knoten, also hash (IP-addr) i, nodeid, auf diesem Kreis anzuordnen. Ein ID-Raum von 128 Bit ist enorm; deshalb ist es eher unwahrscheinlich, dass ein Objekt genau auf die gleiche ID wie die IP-Adresse eines Computers hasht. Um diese geringe Wahrscheinlichkeit zu berücksichtigen, wird jedes Objekt auf dem Knoten eingesteiit, dessen ID der Objekt-I' in diesem 128-Bit-Raum am nächsten liegt. Mit anderen Worten: Die Idee ist es, eine qualitativ hochwertige Hash-Funktion zu verwenden, um sowohl Knoten als auch Objekte auf den gleichen, großen und dünn besäten ID-Raum abzubilden. Dann werden Objekte durch die numerische Nähe ihrer jeweiligen Identifizierungenauf Knoten abgebildet. Wie beim gewöhnlichen Hashing werden Objekte dadurch relativ gleichmägig auf Knoten verteilt. Irn Gegensatz zum gewöhnlichen Hashing muss ab& nur eine kleine Objektmenge verschoben werden, wenn ein Knoten (Hash-Bucket) dazustöf3t oder ausscheidet. 2'28-1
0
Abb. 9.23: Sowohl Knoten als auch Objekte werden auf den IPRaum abgebildet (gehasht), wobel sich Objekte auf dem nkhsten Knoten In diesem Raum befinden.
BBir wenden uns jetzt der zweiten Etage zu: Wie W& ein Benutze4 der auf Objekt x zugreifen möchte, welcher Knoten am n9cbsty:n zu ID von X in &em Raum liegt? Eine mögiiche Antwort ist, dass jeder Knotui eine voiiständjge Tabeiit?mit Knoten-
IDs und den damit verbundenen IP-Adressen verwaltet; das wäre aber bei einem großen Netzwerk nicht praktikabel. Die Alternative - der in strukturierten Peer-toPeer-Netzwerken verwendete Ansatz, ist die Weiterleitung einer Nachricht sn diesen Knoten! Mit anderen Worten: Wenn wir das Overlay auf clevere Weise konstruieren, was gleichbedeutend mit der Aussage ist, dass wir Einträge für die Routing-Tabelle eines Knotens auf clevere Weise wählen müssen, dann finden wir einen Knoten einfach dadurch, dass wir in seine Richtung weiterleiten. Dieser Ansatz wird manchmal auch als Distributed Hash Tables (DHT) bezeichnet, weil die Hash-Tabelle konzeptionell über alle Knoten im Netzwerk verteilt ist. In Abbildung 9.24 sehen wir, was mit einem einfachen 128 Bit grof3en ID-Raum passiert. Um die Diskussion so konkret wie möglich zu halten, betrachten wir den von einem bestimmten Peer-to-Peer-Netzwerk namens Pastry benutzten Ansatz. Andere Systeme funktionieren auf ähniiche Weise. (Siehe Quellenhinweise unter .Weiterführende Literaturu zu Arbeiten mit zusätzlichen Beispielen.) Abb. 9.24: Durch Weiterleitung über das Peer-to-Peer-OverlayNetzwerk lassen sich Objekte finden.
Angenommen, Sie bdiqkn sich aa dem b a t e n mit der (hexadezimsilen) Wlfc. und vasuch.en, das Objeb,mitder D d46al o ni h d e ~,Sie . steilen fest, dass Ihm .a) nichts mir:derjenigen &Objekts gemeinsam hw, wLsm aber, dass ein Knom mindestens a d das 1~riifiz.dhat. ~ e a e r ' ~ n o t leieagt näher a h Se im 128 Bit p&a D-Raum; deshalb leiten Sie die Nachricht an diesen woim (Wir g0bm das F m t der m e i t e r p h e n E S w t nicht an, es entspricht abes in eawa falgemier Aussagp: .Finde Objekt d46alc«.),Un&rder b n n a k , dass h t m d13W einen wier a Knoten kenn4 bar eio s o noch ~ längeres PtäfUt mit &q Objekt ~ r n d a s a m hst, leiw er die Na&@ weiw Q k r Prozess der dlmä~&HEbenAmiihulwlg iqa D-Rauiq 4 so*' fkgemtzq bis man ehan 1010tee mdt, der k e h nabsrs~,I€~&tet3 kennt. Der P & ~ ~ +zIdI~ i g eist: dieser Knoten derjenige, der das- Objekt:
.0311
1
9 Amnmndungan
beherbergt. Man beachte, dass die Nachricht tsirsächlidi Knoten für Knoten dueh das ni Gnmde kegende lmmm weitergeleitet wird, w h d wir uns logisch da& den *D-Raume bewegen. Jeder Knoten verwaltet sowohl eine Routing-Tabeile (Näheres weite^ unm)iw3 die IP-Adressen einer kleinen Menge numerisch grü&rer und hinerer Knoten-ID9, Das wird als Blamenge (Leaf Set) des KnoEens bezeichnet. Die Relevanz der Bh* menge ist folgende: Nach der W e k e r l e i ~ gein@ Nachticht an einen.Knoten in d& gleichen Blattmenge wie der Knoten, auf dem sich das Objekt befllidct, kann diem Knoten die Nachricht direkt an das endgültige Ziel weiterleiten. Anders ausge-. dnickt, vereinfacht die Blattmenge die koaekte und effizierire Zustellung einer Nachricht an den numerisch nächstliegenden Knoten, auch wenn es m e h r e b o t e n mit der $eichen maximalen Präfixlänge wie die Objekt-ID gibt. A&rdem ma& die Nattmenge das Routing robusreq weil jeder in einer Blatmmge befindliche Knoten eine Nachricht ebenso gut an einen anderen Knoten in der g l e i c h Menge weiterleiten kann. Ist also ein Knoten nicht in der tage, durch Weiterleitung einer Nachrichr vorwärts zu kommen, könnte das einem seiner Nachbarn in der Blattmenge geiingen. Zusammenfassend wird die Routing-Prozedur wie folg definiea
'.
.
i f D i s within range of my leaf set fomard to nuinerically closest iseniber in Teaf set el se let Z = length of shared prefjx let d = value of lth digit in D's address i f RouteTabCZ ,di exists fomard to RouteTab[l ,dJ el se fomard to known node with at least as long a prefix and i s numerically closer than this node
E -
Die als RouteTab bezeichnete Routing-Tabeile ist ein zweidimensionales Array. Es hat eine Zeile für jede hexadezimale Ziffer in einer D (in einer 128-Bit-ID gibt es 32 solche Ziffem) und eine Spalte für jeden hexadezimaen Wert (wovon es 16 gibt). Jeder E i a g in Zeile i hat das gleiche Präfix mit Länge i wie dieser Knoten, und in dieser Zeile hat der Eintrag in Spalte j den hexadezimalen Wert j in Position i + 1. Abbildung 925 zeigt die eraen drei ZeiIen einer Routing-BeispielwbelEe für Knotw 6&lfenc, wobei x ein nicht spezifiziertes SuffUE bedeutet. Diese Abbildung zeigt das p a m d e D-Präfix zu jedem Tabelleneintrag. Sie zeigt nicht den tatsächlichen, im Ehtrag enthaltenen Wert - die IP-Adresse des nächsten Knotens, an den weitedeiten ist. Die Fmveitcrung des Overisry-Neäwerks um einen Knoten ist vergleichbar mit der Weiterleitung einer Nachricht von der Art *Objekt findenu an e h Objekt. Der neue Knoten muss mhdestens ein aktuelles Mitglied kennen. Er fordert dieses Mitglied auf, eine Nachricht vom Tjrp *Knoten~ ~ e an schreiben Sie, wie die Quelle diese Informationen dazu verwenden könnte, um ihre Senderate in einer TCP-kompatiblen Art anzupassen. 37. Nehmen Sie an, dass einige Empfänger im Rahmen einer großen Konferenz Daten in einer wesentlich höheren Baridbreite als andere empfangen können. Welche Dinge können implementiert werden, um dies aufzugreifen2 Hinweis: Betrachten Sie sowohl das Session Aanouncement PraacoL (SAP) ais auch die Möglichkeit, *Mixer* von Dritten zu verwenden.
38. Schlagen Sie einen Mechanismus für die Fmtscheidung V% wann ein RW-Paket als verloren gemeldet werden soll. Wie sch~eidetIhr Mechanismus im Vqkich zu dea in Abschnitt 52.6 beschriebenen adaptiven TCP-Neuübertrapungsmechanismen ab? 39. WE kthnen Sie Audio- oder Videodaten so in Pakete kodieren, d a s bei Verlust eines Pakets die Auflösung einfach auf das reduziert wird, was man mit der Hälfte der Bandbreite erwartet? l%lc&en Sie, w m dies viel schwieriger ist, wenn eine JPEG-Kodierung benutzt wird. 40. EtIäutern Sie den Zusammenhang zwischen URLs (unifarm resource locators) und URIs (uniform resource identifiers). Gebt$ Sie ein Beispiel für einen URI, der keine URL ist.
41. WeIche Probleme würde ein DNS-basierter Umleitungsmechanismus mit sich bringen, wenn er einen geeigneten Server auf der Basis von aktuellen Laminformatiotlm a~~afahkn mkkhte?
Glossar
4B/5B Eine in FDDI benutzte Bitkodierungsmethode, bei der jeweils 4 Datenbits als 5-Bit-Sequenz übertragen werden. 802.1 1 IEEE-Standard für drahtlose Netzwerke 802.3 IEEE-Standard für Ethernet 802.5 IEEE-Standard für Token-Ring 822 Bezieht sich auf RFC 822, der das Format von E-Mail-Nachrichten im Internet definiert; siehe SMTP.
AAL (ATM Adaptation Layer; ATM-Adaptionsschicht) Eine über ATM konfigurierte Protokollschicht. Für die Datenkommunikation sind die beiden AALS AAL314 und AALS definiert. Jede Protokollschicht stellt einen Mechanismus für die Segmentierung gro& Pakete in Zellen beim' Sender und die Reassemblierung der Zellen beim Empfänger bereit.
ABR (1)(Available Bit Rate; verfügbare ~ i k a t e Eine ) für den Einsatz in ATMNetzwerken entwickelte ratenbasierte Oberlastkontrollmethode. ABR soll es einer Quelle ermöglichen, die ihr zugeteilte Rate auf Grund von Feedback von Switchen im Netzwerk zu erhöhen oder zu senken. Steht im Gegensatz zu CBR, UBR und VBR. (2) (Area Border Router) Ein Router am Rande eines Bereichs in einem LinkState-Protokoll. ACK Abkürzung für Acknowledgement (Bestätigung). Ein ACK wird von einem Empfänger gesendet, um dem Sender mitzuteilen, dass die Datenübertragung erfolgreich wat. Additive Increase / Moltiplicative Decreaw (-)'~ine von TCP benutzte Oberlastfenster-Strategie. TCP öffnet das Oberlastfenster in einer linearen Rate, halbiert es aber, wenn Pakete auf G m d von Oberlast verlorengehen. Es hat sich erwiesen, dass diese Strategie für einen stabilen Oberlastkontrollmechanismus notwendig ist. AF (Assured Forwarding; zugesicherte Weiterleitung) Ein in Diflerentiated-Ser-
vices definiertes Per-Hop-Verhalten.
ALE (Application Level Fraxning; Frame-Erzeugung auf AnMwgsebene) Protokoll-Desi~ppNnzip,das besagt, dass Anwendungspr~grBmni~ iPrZz Karn~~&tionsbedÜrfnisse besser verstehen als allgemeine Transporrprotokolle. AlkfP?j (Advanced Mobile Phone System) Analoges mobiis Telefonsystem, das
derzeit durch das digitale PCS abgelöst wird. ANSI (American National Standards Institute) Privates US-Standardisierungsgremium, das am ISO-Standardisimverfahren teilnimmt; zustäsidig für SONET.
AP (Access Point; Anschlusspunkt) Heimathafen vagabundierender Knoten in drahdosen Netzen.
API (Application Programming Interface) Ein noderweise betriebssysternspezifisches Interface, das Anwendungen bei der Interaktion mit Protokollsoftware auf der Transpodicht benutzen. Ein Lxkamtes Beispiei ist das Socket-AR von Berkeley-Unix.
ARP (AddressResolution Protocol; ~dressaufiösun~~rotokofl der internet-Architektur) Definiert das Nachrichtenformat und die RegeIn für die Behandlung von ARP-Nachrichten. Zur AuQosung einer Adresse muss der anfragedde Rechner eine Anfrage an aile angdossenen Rechner senden, wahrend die Antwort nur vom angesprochenen Rechner an deq M a g a zurückgewnder wird Das ARPNacbrichteaformat ist allgemein gehalten, sodass es für beliebige ProtokoU- und Hardwareadressen benutzt werden kann. Es wird aber vorwiegend zur Aufiösung von E'-in Ethernet-Adressen verwendet. ARPA ( A d v d Research Projeas Agency) Eine Forschungs- und Entwicklungsorganhtion des US-Vertei ' . * teriums, welche die Entwicklung des GRBANET und späte; des=rdme. Auch unter der k i c h u n g DARPA (D für Defense) bekannt. ARPAN1Ecl: Von der Advanced Research Pmjects Agency (ARPA) für das US-Vertcidigungsministerium (Department of Defense) ERde des sechziger Jahre entwickeltes paketver<~ WAN; gilt als Vorläufer des globalen intemet. ARQ (Aummatic Repeat Request; automatische Wicderholungsanfrage) All*meine Strategie f&rdie zurwlässige Obertragung von Paketen über eine unzuverlässige Leitung. Erhält der Sender kein ACi< für ein Paket nach Ablauf einer bestimmten Zeit, geht er &von aus, dass das Paket nicht angekommen ist (oder mit BideBkrn t i h a g m aiplrde) und ü h i i g t es erneut. Stop-and-Wait und Sii&g~-Window sind Beispiele voa ARQ-Pmmko~en.Ehe gqgensiitzkhe Strategie ist YEC.
AS (Autonomes System) in der TCP/fP-Terminologie ist ein autsnames System ein Verband von Routern und Netzwerken, die einer e U l z i admhbtrativen htmt mterstehm.
ASN.1 (Abstract Syntax Notation One) Abstrakte Syntax der D a r s e e l l w a in Verbindung mit BER ist ASN.1 ein von der ISO als Teil der OSI-Architeam entwickelter Standard für die Darstellungsformauermg. ATM (Asynckonous Transfer Mode)Ein von der ITU & Weitverkehrsnetee mit hohen Bitraten entwickelter Standard, der auf dem khzip des qmhronen Zeimultiplexverfahrens basiert. D i e Tedinologie befördera kleine Dateneiaheiten mit fester Länge (53B*), die mitn Zellen nennt. Zwischen EnQQJrsmnen können virtuelle Verbjndungen permanent vorhanden sein oder bei Bedarf aufgebaut werden. ATMARP Für ATM-Netzwerke erweitertes Adressauflösungsprotokoll (Address Resolution Protocol). ATM-Fonim Inarnationak gemeinnützige Organisation, die mit dem Ziel gegründet wurde, den Einsatz von ATM-Produkten und -Diensten zu fördern. Ausbreitungsvenögerung (Propagation Delay) Die Zeit, die ein Signal benaigt, um von einem Punkt eines übertraguqskads zu einem anderen zu gelangen. Je nach &xtragungsmedium geschieht dies mit Lichtgeschwindiglreit (bei Satellitenübertragung) oder geringerer Geschwindigkeit (bei der Ubertragung in Kabeln). Sie ist im Wesentlichen von der dielektrischen Konstanten des Mediums bzw. (bei Lichtwellenleitem)von der Brechung abhängig. Authentifikation Sidierheitsprotokoll, durch das zwei sich misstrauende Parteien ihre Identität nachweisen. Autonomes System Siehe AS Bandbreite (Bandwidth)In der übemagungstechnik ist das der Frequenzbereich, in dem ein System ohne ÜbermäLZ'i Dämpfung übertragen kann. Im Zusammenhang mit Datennetzen bezieht sich Bandbreite meist auf die Gesamtkapazität des Netzwerks, die in Bit pro Sekunde (bids) ausgedrückt wird. Bandbreite-LängeProdukt (Bandwidth Length Product) Der entscheidende Parameter von Überuagungsmedien zur Bestimmung von Frequenz- und LängenreStriktionen. Generell kann dieser Wert für metallische und optische Ifbertragungsmedien ermittelt werden. Bellman-Ford Andere Bezeichnung für den Distanzvektor-Routing-Algorithmus nach dessen Erfindern.
BER (Basic Encoding R u h ) Regeln für die Kodierung von Datentypen, die im ASN. 1-Standard definiert sind. Bereich (Area) In Zusammenhang mit dem Link-State-Routhg eine Sammlung benachbarter Routeq die vollständige Routing-Informationen untereinander austauschen. Eine Routing-Domain wird in Bereiche aufgeteilt, um die Skalier-
F20
I Clarur
~ e s t - ~ f f ~ f c - h x m q p nDas g Diensmiodell dw heutigen Inte~-Architektur, W dem besmägkhc Übertragung angescr* a k nkht zugesichert wird, BGP (Border Gateway Protocol) Das BGP beschreibt, wie Rauter untereinander die V&barhit v m Verbindwgmegea mvische~ den M m t r k e n p m pagieren. Es ist wie das EGP ein Protokoll für das Routing mischen autonomen Systemen (AS). BGP unterstützt eine Metrik und kann intelligente Rouibg-EntScheidungen tdfea. Die W e s t e Version ist BGB-4.
.
-
Bink Binär oder zweiwertig bedeutet, dass ein System jeweils einen von zwei möglichen Zuständen annehmen kann, 2.B. jaInein, Stromlkein Strom, NulVEins, highilow. BISYNC (Binary Synchronous Communication) Byte-orientiertes Protokoll der Sichemgsschicht, das Ende der sechziger Jahre von IBM entwickelt W&. Bitstopfen (Bit Stuffing) Eine für die Unterscheidung von Steuer- und Datenquenzcn auf Bitebene im HDLG-Protokoll angewandte Technik. BLAST Ein Protokoll, das Fragmentierung und Reassembliemg gr&r Nachrichten durchführt und für die Entwicklung eines WC-Protokolls benutzt wird,
.
Block Ei Begriff in Zusammenhang mit Betriebssystemen, mit dem der Fali beschrieben wird, bei dem ein Prozess die Ausführung unterbricht und auf ein Ereignis wartet, 2.B. die Zustandsänderung einer Sempbore. Bridge (Brücke)Eine Bridge ist ein Hardwaregerät der Sicherungsschichtzur Weiterleitung von Frames von einem physikalischen Netzwerk zu einem anderen. Sie wird auch als LAN-Switch bezeichnet und unterscheidet sich von Repeiter und Rorrter, Bmdcast Eine Methode zur k a g u n g eines Pakets an alie Hosts eines bestimmten Netzwerks oder Intenietworkq die in Hardware (2.B. Ethernet) oder !hftwarc (2.15. IP) implementiert werden Irann. Burst Umcg&äßig auftretende Anhäufung von Daten (oder nicht gleichmäsig 15ber die Zeit verteilter Schwingungsst013). BUS (Broadcast and Unknown Server) Ein in der LAN-Emulation (LANE) benutztes Gerät.
CA (CertificationAuthority; Zertifizierungsstelle) Eine Institution, die Sicherheitsz d f i h t c signiert und dadurch zusichert, dass der im Zwtifikat enthaltene 6 & Wiksel-derim ZaMkat benannten Person bzw. IfmsItimtion geh&. CBR (Consmt Bit Rite) Eine ATM-Enstklasse, welche die 'Obaaagung von Daten in e h e konstanten Bittrite gewahilebta und'damit eine dedizierte lhxtragmgskinmg mdiert;steht im '.Gegensatz zu ABR, UBR und VBR. CCrrr (Corni& Consuitatif Iqternational de T616phonie et T e w p h i e ) Standardisierungsgrernium der Fernmeldebehörden, Betreiber von öffentlichen Netzen
.
,
.
aosrar
I nl
und anderer interessimer Körpersl:haften, das inzwischen in die International Telecommunication Unioa (ITU) integriert winrde und Nofmen fiir Telefonie und Datenkommuaikatiomsysteme(ITU-T) ausarbeitet. k CDN (Content Distribution Nwork) Unter einem W m d w n ~ e r versteht man eine Ansammlung von über das Inema ve~~eitpbn, stellvertretenden Webservern, die hq-Anfragen an Stelle des eigentliCh.Serven bearbeiten können. Das Ziel dabei ist es, die Anfragen mbgbchst durch einen Semr in der Nähe des Clients bedienen zu lönnen, sodass die Antwortzeiten reduziert werden.
CHAN Eh von den Aumren entwickeltes Protokoll, das AnfragelAntwoct-Kanäle (Request/Reply Channels) implementiert. Chipping-Code Zufällige Bitsequenz, die mittels XOR mit dem Datenstrom verknüpft wird, um die direkte Sequenztechnik von Spread-Specuwn zu implementieren. ClDR (ClasslessP Domain Routing) CIDR beschreibt ein Verfahren zur effektiveren Nutzung von PP-Adressen. Dabei werden IP-Adressen zusammengefasst, wobei ein Block von aufeinander folgenden P-Adressen der Klasse C als ein einzelnes Netzwerk behandelt wird. Cfient Die Seite in einem verteilten System, die Dienste anfragt. CLNP (ConnectionlessNetwork Protocol) Das ESO-Gegenstück zum P im Internet. Concment Logical Channels Multiplexen mehrerer logischer Stop-and-Wait-Kanäle auf einer einzigen Punkt-zu-Punkt-Leitung. Es wird keiae Reihenfolge der k a g u n g aufgezwungen. Dieser Mechanismus wurde im W-IMP-Protokoll des ARF'ANET benutzt. Context-S&t& Eine Operation, bei der ein Betriebssystem die Ausführung eines Prozesses unterbricht und mit einem anderen beginnt. Der Zustand des vorherigen Prozesses (2.B. die Inhalte aller Register) wird gespeichert, und der Zustand des nächsten Prozesses wird geladen. Controlled Load Eine in der Integrated-Semcm-Architekturdes hternet verfiigbare Dienstklasse. CRC (Cyciic Redundancy Check; zykiische Redundanzprüfimg) Eine durch Netzmrkhardware (2.E Ethemet-Adapter)u m g e s m Fehlererke~ungstt?chn&,bei der eine Sequenz von Steuerbits am sendenden Ende berechnet, dem zu übertragenden Block hinzugefügt und erneut am empfangenden Ende berechnet witd. Stimmen die empfangenen und berechneten Steuerfelder überein, ist der empfangene Block höcbstwahrscheiniich mit dem gesendeten identisch. Andernfails ist die Wahrscheinlichkeit groß, dass der Block während der Obertragung geändert wurde. Im allgemeinen werden die mit CRC-Fehlern empfangenen
Bl&ke verworfen. Der Wert des CRC-Felds ergibt sich aus einer mathematischen Teilung des übertragenen Blocks duch ein geeignetes Polynom. Crossbar-Switch Einfaches Swirch-Design, bei dem jeder Eingang direkt mit jedem Ausgang verbunden ist und die einzelnen Ausgangs-Ports für die Lösung möglicher ffberlastprobleme zuständig sind. C S W C D (Carrier Sense Multiple Access widi Collision Detection) Zugangs-
verfahren mit Leitungsabfrage und Koiiisionserkennung (Listen While Talking), das bei LANs in Bustopologie den Zugriff mehrerer Nemerkstationen auf das ffbertragungsmedium regelt. Unter den möglichen CSMA-Varianten legt der Standard das 1-persistent-Protokoll fest. Dieses regelt die Kanalzuteiiung wie folgt: Die sendewillige Station überwacht den Kanal (Catrier Sensing, Listen Before Taiking). Ist der Kanal frei, wird die Obertragung begonnen, jedoch frühestens 9,6 ps (Inter Frame Gap, IFG) nach Freiwerden des Mediums. Ist der Kanal belegt, wird der Kanal weiter überwacht, bis er nicht m& als belegt erkannt wird. Die Zustände (belegr / nicht belegt) werden anhand der Pegelwerte nach 0,7S bzw. 1,25 Bitzeiten ermittelt. Tritt nach diesen Zeitpunkten ein Pegeiwechsel auf, ist ein Trägersignd auf dem Kabel; in allen anderen Fällen gilt das Ubertragungsmedium als nicht belegr. Die bekannteste Technologie, in der C S W CD angewandt wird, ist Ethernet. Cut-through Eine Form der Vermittlung oder Weiterleitung, bei der ein Paket an einen Ausgang übertragen wird, bevor es im Vermittlungsknoten vollständig angekommen ist, sodass sich die Latenz durch den Knoten reduziert. Datqpamm In Zusammenhang mit Rechnemetzen wird damit eine Dateneinheit bezeichnet, die ohne vorherigen Verbindungsaufbau libertragen werden kann. Datagtamme beruhen auf dem verbindungslosen Prinzip, im Gegensatz zum verbmdungsorientierten Ansatz. Jedes Datagramm muss die voUe Adresse des Empfängersystems enthalten. IP und CLNP sind aB. Protokolle, die Datagramme aastauschen.
DCE (Dissributed Computing Environment) Eine von der OSF (Open Systwns Foundation) definierte RPC-basierte Protokollfamilie für die Unterstiit~ungverteilter Rechnenungebungen. DDCMP (Digital Data Communication Message Pratocol) Ein im DECNET der Digital Equipment Corporation angewandtes Byte-orientiertes Protokoll der Sicherungsschicht. DDoS (Distributed Dental af Service) Ein erweiterter DOS-Angriff, bei dem die Oberflutung von verschiendenen Knoten ausgeht, wobei j& einzelne Knoten nur einen geringen Eeiaag zur Belastung cles Zielmasdme betragen braucht, die Summe aiier Aktivitäten diese aber in die Knie zwingen kann (siehe auch Dd). DECbit Ifberlastkontrollschema, bei dem Routec die Endpunkte über eine bevorstehende Uberlast benachrichtigen, indem sie im Header der weitergeleiteten Pakere ein Bit setzen. Die Endpunkte senken daraufhin ihre Senderaten.
!
Demtiltiplexen Verwendung von informationen, die in einem Paket-Header enthalten sind, um das Paka M ProtoM-Stack nach obm weiterzuleiten. IP benutzt z.B. das Feld ProtNum M IP-Hader, um htzustekn, zu welchem höheren Protokoll (TCP, UDP) ein Paket gehört, wahrend TGP die Port-Nummer heranzieht, um ein TCP-Paket zum richtigen Anwendungsprozess zu demultiplexen; Gegenteil von Multiplexen.
1
a
D e m u d ü s s e l Feld in einem Paket-Header, welches das Demultiplexen ermoglicht (z.B. das PratNum-Feld in IP). Dense-Mode-Multicasting PM-Modus, der benutzt wird, wenn die meisten Router oder Hosts Mdticast-Pakete empfangen müssen.
a
'
DES (Data Encryption Standard) Algorithmus für die DatenverschlWlung auf der Grundlage eines geheimen 64-Bit-S~hlüssels. DHCP (Dynamic Host Configuration Protocol)Von Microsoft entwickeltes Piotokoll für die dynamische Vergabe von IP-Adressen. DHCP ist ein Protokoll für LA.-Anwendungen, bei dem der Bereich für die IP-Adressen vom Systemadministrator festgelegt wird und die angeschlossenen Cliats beim DHCP-Server eine IP-Adresse anfordern. DHT (DistributedHash Table) Eine verteilte Hash-Tabelle wird dazu benutzt, eine Nachricht an eine Maschine zu schicken, die ein bestimmtes Objekt unterstützt, basierend auf dem Namen dieses Objekts. Differentiated-Services (DiffServ)Eine neue hchitektur für die Bereitstellung von rnet, die ü k Best-Effort hinausgehen. Sie wurde als Alternative ?Esvorgeschlagen. Direct Sequence Eine Spread-Spectrum-Technik, bei weicher der Datenstrom mittels XOR mit einer als Chipping-Code bezeichneten Bitsequenz verknüpft wird. Distanzvektor-Routing Ein im Routing angewandter Algorithmus, der auf dem Pfad mit den geringsten Kosten basiert. Jeder Knoten gibt Erreichbarkeitsinformationen und die damit verbundenen Kosten seinen unmittdbaren Nachbarn bekannt. Er verwendet dann die eingegangenen Rückmeldungen, um seine Weiterleitungstabeile zu akniallisieren. RIP ist ein Routing-Protokoll, das diese Technik anwendet. Das Gegenteil ist das LinkStak-Routing.
;
DMA (Direct Memory Access; Direktspeicherzugriff)Technik zur Verbindung von . ' Hosts mit 110-Geriiten, bei der das Gerät Daten direkt vom Host-Speicher liest und in diesen schreib; siehe auch PIO. DNMDECNET (Digital Network Architecture) OSI-basierte Architektur, die ein .! verbindungsloses Netzwerkmodell und ein verbindungsorientiertes Transportprotokoll unterstützt. )
L '
-DNS (Domain Name System) Ein im Internet verfügbarer Mechanismus für die i Obersetzung des Namens eines Hosts in seine numerische IP-Adresse. Das DNS, -'
.
724
1
G ~ s #
Protokoll ersetzt durch eine sinnvolle DNS-Servern unte ten, um Firmen die Möglichkeit zu g e h , Maschinennamen und Adressen selbst . zu bestimmen. Domain Teil der baumstrukturierten Namenshierarchie im internet. Von der Syntax her besteht eine Domain-Adresse aus einer Sequenz von Namen, die durch Punkte voneinander getrennt sind. Ublicherweise wird der letzte Teil einer internet-Adresse nach dem letzten Punkt, 2.B. wm, als Domain bezeichnet. DOS (Denial of Service) Eine Situation, bei der ein angreifender Knoten eirien Zielknoten mit so viel Anfragen (bzw. Paketen) bombardiert, sodass legitime Nutzer faktisch nicht mehr zugreifen können, ihnen also der Service verweigert wird. Drei-Wege-Handshake (Three-way Handshake) TCP-Mechanismus, bei dem drei Nachrichten ausgetauscht werden, um sicherzustellen, dass Verbindungen zuverlässig aufgebaut und beendet werden.
t
1 I
'
DS3 Von Telefongesellschaftenangebotener Dienst auf 44,7-Mbitls-übertragungsleitungen; wird auch als T3 bezeichnet. DSL (Digital Subscriber Line) Eine Reihe von Standards für die Obertragung von Daten über ~elefonleitungen'(Twisted-Pair-Leitungen) in Geschwindigkeiten von mehreren Megabit pro Sekunde. Duplikat-ACK Wiederholt übertragene TCP-Bestätigung (ACK), in der keine neuen Daten bestätigt werden. Der Empfang mehrerer Duplikat-ACKs löst den Fast-Retransmit-Mechanismusin TCP aus. Durchsatz (Tbroughput) Die beobachtete Rate, in der Daten durch einen Kanal gesendet werden. Der Begriff wird oft gleichbedeutend mit Bandbreite verwendet. DVMRP (Distance Vector Multicast Routing Protocol) Das auf den meisten Routern in MBone benutzte Multicast-Routing-Protokoll. DWDM (Dense wavelength division multiplexing) Licht unterschiedlicher Wellenlängen (Farben)werden in eine einzige optische Faser multiplext. Die Technik ist dicht in dem Sinne, dass damit eine große Anzahl unterschiedlicher Wellenlängen unterstützt werden können.
ECN (Explicit Coagestion Notification) Bei dieser Methode werden End-Hosts über einen Datenstau informiert, indem in den Paketen, die weitergeleitet werden, bestimmte Flags gesetzt werden, Wird in Verbindung mit aktiven Staukontrollverfahren wie RED verwendet. EF (Expedited Forwarding) Eines der in Differentiated-Services definierte PerHop-Verhalten.
I
I
EGP (Exterios: Gateway Protocol) Eines der ersten Interdomain-IkouMg-Protakolle im Internet, das in Grcteways (Routern) autonomer Systeme (AS) benutzt wurde, um Routing-Infoamoztionen auszutauschen. löst.
wurde durch BGP abge-
Entdiisseluag (Decryption) Der umgekehrte Pmzem der Verdl&selung, bei dem die Daten einer verschlüsselten Nachricht wiedergewonnen werden&
4
Erweitertes LAN (Extended L W ) Bezeichnung für mehrere über Bridges verbimdene LANs. Ethernet Eine LAN-Technologie gemäi3 IEEE-Standard 802.2 bzw. 802.3 mit gemeinsamer Nutzung des Übertragungsmediums, die admgs in 10 Mbit/s mit Koaxialkabeln oder verdrillten Kabelpaaren (Twisted-Pair)mgewandt wurde. Die an Ethernet-Netze angeschlossenen Stationen verwenden die CSMA/CDMethode für die gemeinsame Nutzung eines physikalischen Obertragungsmedium. Eine schnelle Version läuft mit 100 Mbitk (Fast-Ethemet). Exponentielles Badzaff Eine Strategie für die NeuÜbertragung von Paketen, bei welcher sich der Timeout-Wert jedes Mal, wenn ein Paket erneut übertragen wird, verdoppelt. Fair-Queuing (FQ) Eine auf Round-Robin basierende Zuteilungstechnik, um Datenstaus in Gateways zu begegnen. Sie wird deshalb fair genannt, weil sie jedem Host einen gleichen Teil der Gateway-Bandbreite zuteilt. Fast-Rearansmit Ehe in TCP angewandte Strategie, bei der versucht d, Timeouts bei Vorhandensein von verlorenen Paketen zu vermeiden. TCP wiederholt die Obertragung eines Segments nach Empfang dreier aufeinander folgender Duplikat-ACKs. mlDI (Fiber Distributed Data Interface) Euie nach dem ANSI-Standard X3T9.J entwickelte LAN-Technologie. Sie basiert auf der gemeinsamen Nutzung eines übertragungsmediums, läuft mit 100 Mbids auf Lichtwelledeitern oder verdriilten Kabelpaaren und verwendet eine Token-Zupffsmethode.
FDM (Frequency Division Multiplexing; Frequenzmdtiplemdhn) E& in der Telekommunikation angewandte Technik zum Kombinieren mehrerer .Y&bindungen auf dem gleichen Medium. Grundlage bildet eine BreitBa*, wobei das zu übertragende Signal ein anderes Signal (Träger)d u & , das in einer viel höheren Frequenz gesendet wird. Der Mdtipiemargq wird dwch Zuweisen einer bestimmten Trägerfrequenz für jede Verbindung y m i & ~ FEC (Forward Error Correaion) Eine in der Datenübertraguhg angeh#& Te&d k zur Erkennung und Korrektur von Obertrag~n~sfehlern. M dieser Technik werden]zum Dateduss zusätzliche Steuerbits himugefigt, d e t a beim I Versenden und Empfangen aus dem Inhalt des Datenflusses beivkbet wird. Steht im Gegensatz zu ARQ.
-
F i k - C h e l Ein bidu:ekdonak-s Protokoll der S i c h e i u n g d t , das ha* benutzt wird, nm Computer (meist Supercemp1er) mit MphePieger3twt zu verbinden. Fiber-Chawel hat Wie Bandb~eitcvon 100 MB/a eh&Rieiohweite von 30 m. Wird ähnlich wie HiPPI benutzt.
W O (First In, First Out) Speicheramrdaun& bei der die zuerst
ebgegch
Datmeinheit auch als ersre wieder ausgelesen wird. Firma11 Ein Routeq der für die Filterung (nicht die Weiterleitung;) von Paketen von bestimmten Quellen konfiguriert wurde. Firewalls werden benutzt, run die Sicherheit unternehmenseigener Nerzwerke zu erhöhen.
PRTT (Fixed R o d ,Tiip Time) Summz aller fipsten und variablen Verzögemqyzeiten v m der Datenqude bh zur weite&^ .Datense&e und ow4ick.
Fiowspec Spezifikation der Anforderungen eines Datenflusses fW:Bandbreite und Ve&gerung, die an das N e b e r k gestellt werden, um eine Reservierung einzurichten; wird mit RSVP benutzt' J?iusskontrdle (Flow Control) Ein Mechanismus, bei dem der Empfänger von Daten die Obertragungsrate des Senders drosselt, sodass die Daten nicht !zu schnkll für die Verarbeitung ankommen. Steht irn Gegensatz zur i"fber11pstkontrolle. FragmmtieiringlReasseml,iieiyng ' (Fragmenmtion/Rea~sembly) Methode für die Ubertragung von Nachrichten, die größer als die Ml'U des Netzwerks sind. Die Nauhr'dten werden dabei vom Sm& in kleinere F h h e ifFa$mcntiett und vorn Empfänger wieder in die usptüngliche Nachricht a w a m m e n g e t .
Frame Eine andere Bezeichnung für Paket, die meist in Z u s w e n h a n g mit solchen Paketen verwendet wird, die nicht im gesamten Netzwerk, sondern über eine einzelne Lhmg libertlrgen werden. Hauptproblem beim Franring (M: menetzeugulrg) ist, dass der Empfiinger den M a g und das Ende eines Prames erkemen kannkann Frame-Relay Verbhdungsoriderte paketvermim1te Technologie, die Mitte der achtziger Jahre fiir WeitverkRhrmetze (WN.g) esitwickelt wurde ynd von Tele. fongeeellschaftdn angeboten wird. Fran#-I&faY basiert auf dem a s ~ o n e n %eitniuitipIcwerfahren. Obertragungsfehler ywden =kamt, aber nicht korrigiert. Z w i d e n den. kow+erenden Dateuendeinrkhtyngen werckn virtuelle Verbindwaaufgebaut. Frequeney-bpping Frequenzsptungverfahren, das in der Mobilkommuuikation t$qasetzt wird. Bei &scr Technik e d das Nutzsj-1 auf ein peqmanent die , Frequenz wechselndes Tritgemigd aufmoduiiert. Die Frequenzwechsel finden dabei in eins pseudo-ZuEigen oder vorbajnmten Reibfolge satt. Damit das Signal vom Empfänger erkamt werda kapn, mwj d m Empfänger .die Reihenfolge des Frequenzwechsels im Voraus bekamt sein. Diese Technik gilt als sehr sicher, jedoch miissen Sender und Empfänger genau aufeinander synchroni-
siert sein. Dies bedingt eine relativ komplexe elektronische Schaltung und folglich auch hohe Herstellungskosten. Frequency-Hopping wird in Funk-LANs eingesetzt und ist irn GSM-Netz konzeptionell vorgesehen. (File Transfer Protocol) Das auf TCP aufsetzende Standardprotokoll der Internet-Architekturfür die Übertragung von Dareien zwischen Hosts.
T;TP
GMPLS Verallgemeinertes MPLS, erlaubt IP direkt über optische vermittelte Netze. Gatekeeper Ein Gatekeeper ist ein zentrales Steuerelement für das Routen der Rufsignalisierung, die Auflösung der Telefonnummern und der IP-AdresSe bzw. deren Umwandlung. Er ist somit für Zugangsberechtigung und Sicherheit verantwortlich. Darüber hinaus erfasst der Gatekeeper die Gebühren, weist sie den Partnern in den Netzen und Diensten zu und sorgt für ein Bandbreitenmanagement im Rahmen der Dienstgüte (QoS). GSM (Global System for Mobile Communications) Arbeitsgruppe der CEPT (Confhrence Europeeme des Administrations des Postes et Telkommunications) und Standard für ein Funktelefonsystem zur Bereitstellung eines kompatiblen Mobilfunkdienstes. Die GSM-Technik basiert auf einer digitalen Ubertragung im Zeitmultiplexverfahren mit acht Kanälen je Funkträgersignal. In den USA und Kanada wurde statt GSM der PCS-Standard übernommen. Gopher Informationsdienst im Internet. H.323 H.323 ist ein internationaler ITU-Standard für die Sprach-, Daten- und Videokommunikation über paketorientierte Neue, der die spezifischen Fähigkeiten von Endgeräten im IP-Umfeld festlegt. Der Standard ist abgeleitet aus dem Multimedia-Standard H.320 für ISDN. Er hat definierte NetzÜbergänge zwischen ISDN und ATM und garantiert die Interoperabilität der Herstellerprodukte untereinandei; wobei vier Hauptgmppen definiert sind: Terminals, Gateways, Gatekeeper und Multi Control Units (MCU). Der H.323-Standard definiert die Multimedia-Kommunikation über LANs, die keine zugesicherte Dienstgüte zur Verfügung stellen. Handle In der Programmierung ein Bezeichner oder Zeige4 der für den Zugriff auf ein Objekt benutzt wird. Hardwareadresse Adresse auf der Sicherungsschicht, mit der ein Host-Adapter in einem lokalen Netzwerk identifiziert wird.
HDLC (High-Level Data Link Control Protocol) Ein von der ISO standardisiertes Protokoll fix die Sicherungsschicht, das Bitstopfen anwendet, um RahrnengrenZen zu definieren (Framing). Header Kopfteil eines zu Übertragenden Datenpakets. Er enthält keine Nuwlaten, sondern verschiedene Verwaltungs- und Steuerinformationen wie Adress- und Kennungsangaben, Pakemuinmer und Paketstatus.
P I
I'
L
,
.
Hidden Node Problem Eine Situation, die in einem drahtlosen Netzwerk eintritt, wenn zwei Knoten gleichzeitig an dasselbe Ziel senden, von ihrer gegenseitigen Existenz aber nichts wissen.
Hierarchisches Routing Schichtübergreifende Routing-Methode, bei der die hierarchische Struktur des Adressraums als Grundlage für Weiterleitungsentscheidungen herangezogen wird. HiPPI (High Performance Parallel Interface) Eine vom ANS1 standardisierte Netztechnologie, die Gbids-Ubertragungsraten unterstützt und meist für die Verbindung von Supercomputern mit Peripheriegeräten benutzt wird; vergleichbar mit Fiber-Channel.
-
Host Ein Computer, der an ein oder mehrere Netzwerke angeschlossen ist und auf Y . dem Anwendungsprogramme ausgeführt werden.
HTML (HyperText Markup Language) Eine für das Erstellen von Webseiten benutzte Sprache.
I4'ITP (HyperText Transfer Protocol) Ein im World Wide Web benutzter Standardmechanismus zum Austausch von Dokumenten zwischen Servern und Clients. H I P überträgt Daten über TCP-Verbindungen.
IIAB (Internet Activities Board) Gremium, das die Entwicklung und Standardisierung von Protokollen für die Internet-Architektur überwacht. Zu den Arbeitsgruppen des LAB zählen z.B. IRTF und IETE IBGP (Interior BGP) Das für den Austausch von Routing-Informationen zwischen Routern der gleichen Domain benutzte Protokoll. ICMP (Internet Control Message Protocol) Protokoll der IP-Familie zur Übertragung von Informations- und Fehlermeldungen zwischen IP-Netzknoten. ICMPMekfungen werden in Datagramme gekapseit und ak reguläre IP-Frarnes übertragen.
IEEE (Institute of Electrical and Electronic Engineers) Ein Institut, das Datenkommunikationsnormen ausarbeitet, 2.B. die 802-Serie der LAN-Standards.
IETF (Internet Engineering Task Force) Eine zur IAB gehörende technische Arbeitsgruppe, die sich mit der Standardisierung von Entwicklungsstrukturen für das Internet befasst. IGP (Interior Gateway Protocol) Eine Gattungsbezeichnung, die man auf jedes Protokoll anwenden kann, das Informationen über Wegwahl und Erreichbarkeit in einem autonomen System verbreitet. IGP ist ein IP-Protokoll nun Austausch von Routing-Informationen in autonomen Systemen (AS). Obwohl es keinen einzigen Standard für das IGP-Protokoll gibt, ist das RIP (Routir~gInformation Protocol) das populärste. Das IGP ist topologieunabhäagg..Da unterschiedliche Topologien und Netzwerke vorhanden sind, gibt es mehrere IGPs. Gateways können gleichzeitig verschiedene Routing-Protokolle benutzen, wenn sie die Verbindung zwischen autonomen Systemen und einem übergeordneten Backbone-Netzwerk bilden. Hierfür stehen neben dem erwähnten RIP- das Hello-, das IGRP- und das OSPF-ProtokoU (Open Shortest Path First) zur Verfugung.
Ih/LAP (Internet Message Access Protocol) Ein Protokoll auf der Anwendungsschicht, das es h w m d e m e d g l i c b t , auf ihre E-Mail auf dem Mail-Server zuzu~ifen.
IIMP-MP Ein Byte-orientiertes Protokoll der Sicherungsschicht, das im ARPANET benutzt wurde.
I 2
C:
0.
Integrated-Services (Wem) Begriff zur Bezeichnung eines paketvermittaten Netzwerks, das mwohl konventionelle Computerdaten als auch khtzeitaudio und -video unterstiitzen kann. AuLerdem wird damit ein für da9 hternet vorgeschlagenes Dienstmodell bezeichnet, das sich der& in Entwicklung befindet und das heutige Best-Effort-Dienstmodel1~ablö~n soll. InteMtät In Zusammenhang mit Netzwerksicherheit ein Dienst, der gewährleistet, dass eine empfangene Nachricht mit der gesendeten identisch ist. Interdöm&-Rouihg BGP.
Roiiring zwischen verschiedenen Routmg-Domains, wie z.B.
internet Der weltweit g r a t e Netzverbund auf Grundlage der TCP/IP-Architektur, der jedem Teilnehmer eine nahezu grenzenlose Informations- und Kommunikationsinfrastruktur zur Verfügung stellt. Internerwork Eine S d u n g von (möglicherweise heterogenen) paketvermittelten Netzwerken, die über Router miteinander verbunden sind. hterorperab'rtit5it Die Fähigkeit heterogener Hardware und Software unterschiedlicher Hersteller, durch den korrekten Austausch von Nachrichten zu kommunizieren. Interrupt Ein (mrmakrweise von der Hardware erzeugtes) Ereignis, welches das Betriebssystem auffordert, sehe momentane Aktivität einzustellen und eine bestimmte Aktion auszuführen, z.B. wenn ein Paket vom Netzwerk angekommen ist. Itltradumain-Roudng Austausch von Routing-Informationen innerhalb einer einzelnen Domain oder eines autonomen Systems (AS),2.B. in Protokollen wie RIP und OSPE
IP (Internet Protocol) Ein Protokoll, das einen verbindungslosen Best-EffortDienst fur die Obertra-g von Datagrammen im Interner bereitstellt. Die derzeitige Version wird als IPv4 bezeichnet.
IPG (Inter-Packet Gap) Der &male Abstand zwischen zwei aufeinander folgenden Datenpakeren. Diese Zeit beriicksichtigt das Abklingverhaltenvon passiven Obertragu"gskomponenten und stellt sicher, dass kein erkennbarer Pegel mehr auf dem Obertragungsmedium vorhanden ist.
- next generation) Die neue, als IPv6 bezeichnete Version, die gegenüber der heutigen Version einen gröi3eren hierarchischen Adressraum und verschiedene neue Merkmale bietet.
Png (Internet Protmol
IPSEC (PSecurity Protocol) IETF-Standardisim dir V~rMweaund PTot&& fiit einen kstderübe&enQen sicheren und g s c h u ~ e nDatrinausawseh mittels IP festlegt, Der Normenrahmen von IPSEC definiert die Vorgeheff~w& für Datenintegritiit, Vertraulichkeit der Inhalte und Verwaltung der Brr).PSo' graphischen Schlüssel. IPSEC schützt die Datenpakete des IP-Pr0tuko1Is vw m@chen Modifikationen u d Ausspähugea Es bee*dusst weder die Korn; m@katio~protokollenoch die A n w e n d ~ p r osodas& ~ ~ das ~ . .&mp~' w ~ r k i n g . ü b e r ~ o u t e r ~ n i c b t b e w i b ~ ~ ~ & -:-:-,i--,t.-\4.
1
IRTF (Interna Research Task Force) F h IAB-Arbeidqppp, die füt. besForschungs~und Entwicklungsprojekte für das Internet zuständig ist. ISDN (Integrated Services"~i~ita1 Netwprk) Diens@int@erendes digitale meldenetz, das die Jjereitspeiiung von'integdemm N d e n s t e n unterstützt. Die & T kombipiert Sprach- und digitale Dattn&nsted IISDM wurde WB der I'iVT stankdieiert und wird von Telefosqpekd&m angeboten. '
1s-B Ein mit OSPF vwgieichbares L i n k - S ~ R o u ~ P r ~ t 8 k a l l .
IJO (InternationalOrganizationfor S-bdon)
in &Genf ansässige internationaie Organisation, die i n d u s & axaf ~ zahlreichen Gebieten, n.a. Cxtmpuw- und .Netzte&&en, &b1t, dawnter das QQ-Raferwodell. ITU-T (Internationai Tel~mxnunicauionsUnion) Gremium der inter&tioizalen Orgasimtiun, die &andar& für analoge und e t d e Tdekommdaem entwickelt und überwacht, Qnuiw Statafüi Nateckiiok&m (zS. ATM).
JamSigd (Stömigd) Wenn beim CSWCD-Zuwverfahren 'ehe K
den Kaiaal pscU. Mch dessen A&en zeit, bew die U b a g m g neu versucht wird. auf
h
hlgt,eiae
Jittea Mt Jitter lpan Aba-w&w von bes-m Fa&m eines Digi&&s (2.B. der Zeiqniakl &W von Sgdmqditude auf eine andere) bei der Obertragung dwech ein Netz, also Schwankder Netzlauhit. Gro* Jimkann insbesondere Audio- und Viieoübe~&g beeinträchtigen.
JPEG (JointPhot~gtaphkExpem Group) kmkhmmgde-rA r h i e ~ p p g eund rtaP von ihr ausgearbeiteten S m fü die K o m p d a n vm Wtrjldern, . , b a l AUgmehez, in d @ s a B& vesymdete &griff & eine w eP r . zu-PrmewUerbinbung. !
(
Kapstlq (kapsdation) T&m& zum 'Kapkh Um Framz$-in ein. HI-Datajgmq.Das gesamte D a t a q m wiid in dai Nu-btM Fr-% ehgew.Die N ~ b&an&it cbun d F m~y& jeden tih4kkn Rqme. S e prüft wedu den uihatt dm hlu&mW& wxh hdm sk ih
Kerberos Ein TCPmJlbasiertee, a i ~ aMIT entwickeltes ~ e n t i f i z i e ~ s y s t e m , bei dem zwei Hosts sich über eine vertrauenswürdige dritte Partei gegenseitig authentifizieren. Knoten (Node) w e i n e r Begiff fiir einzelne Computer, aus denen sich e+ Netzwerk zusammensetzt, d.h. universelle Computg Switche uad Routsr, Koaxiaikabd (kurz Kaaxkabel) Eui Kupferkabel ,das mehr Schutz vor S t ö ~ g e n als das verdrillte Kabelpaar bietet. Es besteht aus 'einem einzigen Kabel, das mit einem stärkeren Meeallmantel umhüllt ist. Dieses Medium wird im konventioneiien Fernsehen und in Datennetzen eingesetzt. Kryptographie (Cryptography) Wissenschaft zur Erforschung und Realisierung von Verfahren zur Vep bzw. Entschliisselung von Daten, bei denen entweder das Verschlüsselungsverfahren oder (bei Anwendung einheitlicher Schlüsselverfahren) die verwendeten Schlüsselbegriffe geheimgehalten werden. Durch Ändern, Vertauschen oder Hinzufügen von Zeichen nach bestimmten Regeln wird ein Klartext h einen Chiffretext verwandelt und umgekehrt; anwendbar bei der Speicherung von Daten und der Datenübertragung. Wirksames Mittel des Datenschutzes, um Informationen, die in falsche Hände gelangt sind, wertlos zu machen. Neben der Vertraulichkeit durch die Verschlüsselung von Klartext kann mit den Methoden der Kryptographie auch die Authentizität einer Nachricht sowie die Integrität einer Datei sichergestellt werden, wobei unter letzterem die Gewißheit zu verstehen ist, eine Datei in unveränderter Form zu empfangen. Man unterscheidet bei den Verschlüsselungsverfahren ganz allgemein zwischen dem Public-Key- und dem Private-Key-Verfahren. Bekannte Verschlüsselungsalgorithmen sind: RSA, DES, IDEA, PGP und Kerberos.
LAN (Local Area Network) Lokales Netzwerk, das innerhalb eines Gebäudes oder eines Firmengelindes installiert wird und in dem private Obertragungsmedien und Vermirtlungsanlagen benutzt werden. Zu den MN-Technologien zählen ~the&et,Token-Ring und FDDI. Größere Entfernungen werden von MANs und WANs abgedeckt, LANE (Local Area Network Emulation) Technik für die Erweiterung von ATM, sodass es sich wie ein LAN mit gemeinsamer Mediennutzung (2.B. Ethernet) verhält. LAN-Switch Bezeichnung für eine Bridge mit vielen Ports. In einem Ethernet verwendet man auch den Begriff ~Ethernet-Switch*. Last Mile (Anschlussbereich, AsB) Der Bereich zwischen der Vermittlungsstelle arn Netz und der hausinternen Vermittlungsstelle. Im Falle des öffentlichen Fernsprechnetzes ist es der geographische Bereich zwischen der Ortsvermittlungsstelle und dem Vetmittlurigspunkt im Haus; das kann der Zugangspunkt oder auch die %lekommunikations-Anschiussdose sein. Bei anderen Netzkonf~gurationen kann der Netzvermittlungspunkt der Access-Knoten oder der Verteiler-
732
1
Glossar
kasten auf dem Bürgersteig sein. Im Anschlussbereich dominiert heute die Kupferverkabelung. Latenz (Latency) Irn allgemeinen handelt es sich um das Zeitintervall vom Ende eines Ereignisses bis zum Beginn der Reaktion auf dieses Ereignis. In Ringsystemen meint man mit der Latenzzeit die Zeit, die ein Datenpaket für die Umrundung eines Token-Rings benötigt, wenn dieser verkehrsfrei ist. Die Latenzzeit steigt dabei mit der Anzahl der angeschlossenen Stationen. Im Ethemet-Bereich handelt es sich um ein wichtiges Unterscheidungsmerkmal von Switchen. Die Latenzzeit beschreibt dabei den Zeitraum, der vergeht, bis ein an einem SwitchPort empfangenes Bit den Ziel-Port des Switch wieder verlässt. Dieser Zeitraum wird in Mikrosekunden angegeben und ist abhängig von dem benutzten Schaltverfahren: Cut-Through oder Store-and-Forward. Layering Das Schichtenmodell bildet eine funktionale Unterteilung der Kommunikationsaufgaben. Aufgabe einer Schicht ist es, Dienstleistungen für die nächsthöhere Schicht bereitzustellen, wobei sie sich der Dienste der darunter liegenden Schicht bedient. Die Dienste einer Schicht sind in Instanzen angeordnet. Allgemein gilt, dass ein6 Schicht N auf einem Rechner A nur mit der entsprechenden Schicht N auf einem Rechner B kommuniziert. Aus diesem Grund spricht man von Peer-to-peer-Protokollen (Peer = Partner). Die Komrnunikationsregeln sind in den Protokollen für Schicht N festgelegt. LDAP (LightweightDirectory Access Protocol) Teil des VerzeichnisdienstesX.500, ein in letzter Zeit beliebter Verzeichnisdienst für Informationen über Benutzer. LER (Label Edge Router) Eine Router am Rand einer MPLS-Wolke. Er prüft ankommenden IP-Pakete vollständig und heftet ihnen dann entsprechende Label an. ,
Leitungsvermittlung (Circuit Switching) Telek~mmunikationstechnik, bei der Punkt-zu-Punkt-Verbindungenzwischen kommunizierenden Parteien aufgebaut und Ressourcen für die Dauer der Verbindung bereitgestellt werden. Das öffentliche Telefonnetz und ISDN sind Beispiele von leitungsvermittelten Netzen. Das Gegenteil ist die Paketvermittlung. LES LAN-Emulationsserver; siehe LANE. Link-Layer-Protokoll Ein für die ifbertragung von Frames über ein direkt verbundenes Netzwerk (2.B. Ethernet, Token-Ring oder Punkt-zu-punkt-Leitung) verwendetes Protokoll. Link-State-Algorithmus (LSA) Dynamisches Routing-Verfahren, bei dem der Tabellenberechnung eine vollständige Topologiebasis zugrundegelegt wird: Die LSA-Datenbasis enthält sowohl Informationen über Entfernungen zu anderen Routern als auch Zusatzinformationen über die hierarchische Stniktui; in der Router untereinander verbunden sind. Typischerweise wird nach Area-Router (Hierarchieebene 1) und Backbone-Router (Hierarchieebene 2) unterschieden;
es sind also mindestens zwei Hierarchieebenen vorhanden. Bei Tabellenänderungen werden nur die Änderungen weitergegeben, und diese auch nur an die Nachbarn innerhalb der eigenen Hierarchieebene, nicht an alle Systeme. Zur Berechnung sind verschiedene Metriken möglich, nicht nur die Anzahl der Hops zwischen zwei Endsystemen. Der LSA, auch Shortest-Path-First-Algorithmus (SPF) genannt, neigt weniger dazu, Zyklen bei Topologieänderungen zu produzieren, und konvergiert schneller, findet also nach Veränderungen im Netzbetrieb die konstante optimale Route schneller. Zudem generiert er weniger Overhead: Router senden nicht ihre komplette Tabelle, sondern nur über ihre direkten aktiven Nachbarn. Aus dieser verteilten sich jeder Router die neuen Routen.
Local-Loop Leitungsstrecke zwischen Teilnehmer und ZentralvermittlungssteIle. LOS (Line of Sight) Sichtverbindung zwischen Sender und Empfänger in drahtlosen Netzen nach 802.11. LSR (Label-switchingRouter) Ein Router, der IP-Kontrollprotokoile verwendet, der aber den MPLS-Weiterleitungsalgorithmusverwendet.
MAC (Medium Access Control) Medienspezifisches Zugangsverfahren innerhalb der IEEE-802-Spezifikationen.Es beinhaltet Varianten für Token-Ring, TokenBus und CSMAICD. MAC ist die untere Teilschicht der Sicherungsschicht im LAN-Schichtenrnodeii. Das Medienzugangsverfahrenumfasst die Frame-Aufbereitung beim Senden (Kapselung) und Empfangen (Entkapselung),die FrameObergabe an das Zugangsmanagement (Senderseite), das Zugangsmanagement und die Fehlerkorrektu~Die Arbeitsweise der MAC-Schicht basiert auf der Kooperation unterschiedlicher Prozesse.
-
MACA (Multiple Access with Coiiision Avoidance) Verteilter Algorithmus für die Regelung des Zugriffs auf ein gemeinsam genutztes Medium.
MACAW (Multiple Access with Collision Avoidance for Wieless) Erweiterte Version des allgemeinen MACA-Algorithmus für die bessere Unterstützung von drahtlosen Netzwerken; IEEE-Spezifikation 802.11.
MAN (Metropolitan Area Network) Ein Netzwerk, das auf einer der neuen Netzwerktechnologien basiert, die in hohen Geschwindigkeiten (bis zu mehreren Gbitls) laufen, und von der Reichweite her ein Stadtgebiet abdeckt. Manchester-Kodierung E i e in Ethemet angewandte Bit-Kodierungsmethode, bei der das XOR (exclusive-OR)des Takts und die mit NRZ kodierten Daten übertragen werden. MBone (Multicast-Backbone) Ein logisches, auf das Internet aufsetzende Netzwerk, in dem multicastfähige Router Multicast-Datagramme mittels Tunneling im Internet weiterleiten.
734 ] aossar
MD5 (Message-Digest Version 5) Ein .effizktet k r y p t ~ ~ P eirü rfsmrnenalgorithmus, mit dem überprüft werden kann, ob der uihak einer Nachricht unverändert gebiieben iq.
MIB (Management Information Base) I k i n i e r t eine ~ & evon aetpmkbezogenen Variablen, die in einem Netzwerkknoten gelesen oder geschrieben werden können. MIB wird in Verbindung mit S N M P benutzt.
NIWiE (Muitipurpose Intemet Maii lhsemi-)
Ein Ieternct-Standard zur Unterstützung von Binärdaten, rB. Muithedia-Mail. i k r Standard definiert auch externe Referenzen zur impliziten Einbhdung von Medien.
Moslic Kostenlos erhältücher gr&ähiger Web-Browser, der am National Center for Supercomputing Applications (NCSA) an d a Uni~cmitäa:of Iliinois entwickdt wurde.
.
1
MP3 (MPEG Layer 3) Ein Audio-Kompressionsstmdard,der W E G verwendet.
WEG (Moving Picture Experts Group).]&ezeicluiungder Arbei~gruppeund des von ihr ausgearbeiteten Srandards für die Kompression von Video.
MPU (Mdtiprowol Label Switching) Eine Reihe von Techniken, die fur die effektive ImpIementierung von P-Routcrn o M b van Switchen da Ebene 2 (2.3.ATM)benutzt werden. MSAU (Multistation Access Unit) Eia Gerät, das in Token-Ring-Netzen benutzt wird, um mehrere Stationen ati dea Ring anzuschii&n und sie im Störungsfd vom Netz abzukoppeln.
MTü (Maximum Transmission Unit) Maximale Gra& von Paketen, die übet ein
.
physikalisches Netzwerk gesendet werden könaen. Mdticast Ubertragungsast von einem Sunkt zu eher Gruppe. Man spricht bCi Multicast auch von Mehrpunktverbindung. Der Vorteil von Mdticast liegt darin, dass gleichzeitig Naehrkhten aa mehrere Teilnehmer odet g ~ Tehehergruppen (Clased U m Groups).iilxmagen w d m . Multiplexen Ein allgemeines Konzept der Kombination unabhängiger Datenquellen @.B. Setrennte TCP- und UDPKanäle) in eine F O ~ die , in einem Kommunikatioqskand gesendet weiden kann. Das Umkehrverfidwen, das auf dem empfangenden Host ausgeführt wird, wird-als Dmultipkm bezeichaet. Nachricht Date~inheit~ die zwischen Anwendungen ausgetauscht wird.
Naffximsaufl~suag (Name Resoluti~n)Auflösschen leichter &bar sind) in ihre &?Q~SP~-B leichter lesbar sind); siehe auch DNS,
von I3cw-Namen (die für MenAdressen (die.fiir M a d e n
'
NAT (Network Address Tcansiation) Eine Technik für die Erweiterung d&s IPAdressraums, bei der zwischen global verstandenen IP-Adressen und lakden Adressen am Rande eines Netzwerks übersetzt wird, NDR (Nerwark Data Representation) Der in DCE (Distributed Cumputing Environment) benutzte Datenkodierungwtandard, der von der Open Software Foundation (OSF) definiert wurde. Im NDR wird die so genannte Receiver-MakesRight-Strategie angewandt, bei der an den Anfang jeder Nachricht ein Architektur-Tag eingefügt wUd. Netscape Weitverbreiteter gr&ähiger
Webbrowsec
Network-Layer-Protokoil Ein Protokoll, das in vermittelten Netzwerken direkt oberhalb der Sicherungsschichtläuft. Netzadapter (Netzkarte) Anpassungse1erneht zur Verbindung von Geräten mit nicht aufeinander abgestimmter Arbeitsweise. Adapter werden auch die Einsteckkarten (BoardJNIC) genannt, die in PCs oder anderen Rechnern für die ~ornmunikadonvom und zum Rechner sorgen, beispielsweise in Form von Ethernet-Adapterkarten, ISDN-Adaptern usw. NFS (Network File System) Ein weitverbreitetes verteiltes Dateisystem, das von Sun Micmsysrems entwickelt wurde und auf SunRPC, einem ebenfalls von Sun entwickelten RPC-Protokoll, basiert. NIST (National Institute for Standards and Technology) Das offizielle Standardisierungsgremium der USA. NRZ (Non-Return to Zero) Eine Bit-Kodierungsmethode, bei der eine 1als HighSignal und eine 0 als Low-Signal kodiert wird.
NRZI (Non-Return to Zero Inverted) Eine Bit-Kodierungsmethode, bei der ein Obergang vom aktuellen Signal erfolgt, um eine 1 zu kodieren, und auf dem aktuellen Level verharrt wird, um eine 0 zu kodieren. NSF (National Science Foundation)Eine US-Regierungsbehörde, die wissenschaftliche Forschungen in den USA fördert, 2.B. Forschungsarbeiten an Netzwerken und an der Internet-Infrastruktut
NV (Network Video) Eine Videokonferenzanwendung,die in MBone läuft. OC (Optical Carrier) Das Präfix für verschiedene Raten der optischen SONETübertragung, z,B. OC-1 gemäß SONET-Standard für übertragungen mit 51,84 Mbit/s über Glasfase~Ein OC-n-Signal unterscheidet sich von einem STS-n-Si'd nur darin, dass auf das OC-n-Signal für die optische Obertragung das Scrambling angewandt wird. Öffentlicher Schlüssel (Public Key) Einer der beiden Schlüssel, die in einem Verschiüsselungssystem (z.B, RSA) verwendet werden. Der öffentliche Schlüssel
PWI$koar
wird bthtgcgeben, um in VerbinWibm1~remmdetzu w d e i a .
mit einem cntqmxkdm pri-
ONC (OpenNe~vorkComputing) Eine Version von SwiRPC, die fiir das Intern& staadgt&* *d. . . . .
Optid Switch ,EinSwitch, der ankomcn&.Lichm&en vom Ihgangs- an dm Ausgangs-Port weiterleitet, ohne sie .zmkk&h in elekwcfie Impulss wrrzuwandeh.
CBF (Open Software Faundation) Ein Konsortium von Computwbelfern, die . Standafds für verteilte Rechenumgebungen, b t e i das ~ ~ ~ - ~ a r s t e l l w n g s f ~ mat, stadmdisiertkben. .
-
OS1 (Open Systems Interconnection) Das von der ISO entwickelte, aus sieben Schichten bestehende Netzwerk-M--, dss dan hs&n van W w d ITU-T-P1:5tok~h& zugmnde
.
koY1kurz-bis mitcelfnstig ablijlsen rithmus ist der ~~~-AIgori&us (Shortest P
wkcklung einer frishen Version dsa IS-IS-botdr9Us. Es 4asia-kauf einw Li&Sm&-AlgoritOUgus, bei dem jeder Knotm ehe To-pUe dm Interna auf~s& und ftir Weite~leitungsentscheiduagenverwendet.
.
Orerlay Ein vim& &gkhes) Netzwtfk, 401 auf einem barehadm physkaii* sehen NetL 1&&. Overhy-Iboten ko-uniziaen mi&der nicht über phgsi- . U s c h e V&-en, sondern dureh T d . Cheriays werden häufig daai vmvenldot, um neae Netzwerkdienste zu entwiekeh, weii b d diese Afk M&t in die b t e r liegende Nazi&-
P&*-
(Packet Switching) Eine T e i e k - w t i q e w auf dw: Gmdlage dw & i a n d t i p k e r f h s , bei der ~ i d k inekfeine DareneWwn au&a& aad n a & h & r - 4 s Pak:me, Rwaa dcln? Psrkem-lte Netze k-en verbindulfgd~wie XdS, Frame-Rdqy oda ATW seip [hr,G-$eateit_i*die L s i t z g - g s m w ~ ~ t t g ~ . (Protdca A B g h t Wrappd Se~itenoen w d m ) g m g von Tram-okn mit einem a & h d g d h