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 ,
f
-' '
& heute hn 'Eigsatz ~ d l i e h m Rcmkofle zu'geben.WHer&&
vielmehr die
I
Grundlagen eines soliden Netzwerkdesigns. Wir glauben, dass das Verstandnis der zu Grunde liegenden Prinzipien die beste Voraussetzung ist, mit dem enormen Wandel im Vernetzungsbereich Schritt zu halten.
.
Anderungen in der dritten Auflage Obwohl unser Schwerpunkt auf den grundlegenden Prinzipien von Netzwerken liegt, erläutern wir diese Prinzipien anhand von realen Beispielen aus dem heutigen Internet. Daher haben wir eine nennenswerte Menge neuen Materials hinzugefügt, um viele der wichtigen Fortschritte im Netzwerkbereich deutlich zumachen. Außerdem haben wir beim bestehenden Text gekürzt, umgestellt und den Fokus verändert, um dadurch Entwickiungen der letzten Jahre Rechnung zu tragen. Vielleicht die wichtigste Änderung, die wir seit der ersten Auflage wahrgenommen haben, ist die, dass inzwischen praktisch jeder Leser eine gewisse Vertrautheit mit Netzwerkanwendungen wie dem World Wide Web oder E-Mail erlang hat. Aus diesem Grunde haben wir - beginnend mit dem ersten Kapitel - den Fokus auf die Anwendungen noch verstärkt. Wir verwenden Anwendungen als Motivation für ein Verständnis des Netzwerks und, um die Anforderungen abzuleiten, die ein nützliches Netzuierk erfüllen muss, sodass es gegenwärtige und zukiinftige Anwendungen im globalen Maßstab erfüllen kann. Wir haben aber den Lösungs-zentrierten Ansatz der Vorauflagen beibehalten, der mit der Aufgabe beginnt, zwei Rechner zu verbinden und dann seinen Weg durch die verdthiedenen Schichten bis hin zu einer genauen Darstellung der ~nwendun~sschicht nimmt. Wir glauben zwar; dass es wichtig ist, die Bedeutung der Themen, die in diesem Buch behandelt werden, anhand von Anwendungen und ihren Anforderungen klar zu machen. Auf der anderen Seite sind wir sicher, dass Fragen, die mit höheren Schichten - wie Anwendungsund Transportschicht - zusammenhän~en,erst wirklich verstiindlich werden, nachdem man die grundlegenden Prinzipien verstanden hat, nach denen Rechner verbunden und Pakete ausgetauscht werden. Eine andere wichtige hderungen in dieser Auflage betrifft die ü'bungen. Wir haben die Anzahl und Qualität der Obungen erhöht; wir haben versucht, diejenigen zu identifizieren, die besonders schwierig sind oder die besondere mathematische Kemmisse erfordern (mit gekennzeichnet); außerdem wurden in jedem Kapitel mehrere Aufgaben mit ausgearbeiteten Lösungen hinzugefügt, die hinten im Buch abgedruckt sind. Wie bereits zuvor steht das komplette Verzeichnis der Lösungen nur für Dozenten und Lehrer auf Anfrage zur Verfügung. Wie in der zweiten Auflage haben wir wichtige neue Themen hinzugefügt oder erweitert und andere Bereiche aktualisiert. Wichtige neue oder stark überarbeitete Themen in dieser Auflage sind:
*
Abschnitt zum.Multiprotocol Label Switching (MPLS), einscbliei3lich der Behandlung von Steuerung von Datedüssen und virtuellen privaten Netzwerken (VPNs),
iein neuer
i
ein neuer Abschnitt über Overlay-Netzw~keeinschlieSlich »Peer-to-Peer-« und Inhaltsverteilungs-Netzwerken,
-I* O k & Md--Aa-aun& ' x a u d ( W ) d h ~ ~ p r i € m
mm &
*.
die auch Sprehspk-
~4 dic a - b
~t%%%wT.
.,
802.1l*hdatQ umfastir.
,
ich wie Rechnernetze die Unterschei-
-
erspektive entwickelt, die wir Systema~sutznennen und die den Kern dieses Buchs iidet. Dieser Systemansatz hat mehrere Auswirkungen:
Ci
Statt bestehende Artefakte als Evangelium anzunehmen, beginnen wir mit den grundsätzlichen Prinzipien und führen den Leser durch den gedankiichen Prozess, der zu den heutigen Netzwerken geführt hat. Dadurch können wir erklären, w m m Netzwerke so und nicht anders aussehen. Unseren Erfahrungen zufolge
ständlich, wenn man einmal die zu Grunde liegenden Konzepte verstanden hat.
I Obwohl das Material lose k d um die traditionellen Netzwerkschichten - von unten nach oben im Protokoll-Stack - aufgebaut ist, übernehmen wir keinen straffen Schichtenansatz. Viele Themen wie ijberlastkontrolle und Sicherheit wirken sich auf die gesamte Hierarchie aus. Deshalb diskutieren wir sie von außerhalb des traditionellen Schichtenmodells. Kurz: wir halten das Schichtenmodell für einen guten biene& aber schlechten Meister. Es ist vorteilhafter, eine Ende-zu-Ende-Perspektive einzunehmen. wichtigsten der heute im Einsatz befindlichen Protokolle, davon zahlreiche aus dem TCP/IP-Internet, um aufzuzeigen, wie Netzwerke in der Praxis funktionieren. Dies ermöglicht es uns, praktische Erfahrungen in die Diskussion einzube.'
II Obwohl sich Netzwerke auf der niedrigsten Schicht aus handeisüblicher Hardware, die von Computerhersteilern erhältlich ist, und Kornmunikationsdiensten,
die von der Telefongesellschaft gemietet werden können, zusammensetzen, ist es erst durch Software möglich, in Netzwerken neue Dienste bereitzustellen und sie an schnell ändernde Anforderungen anzupassen. Aus diesem Grund hören wir nicht bei der Beschreibung der betroffenen abstrakten Algorithmen auf, sondern ~.'erWären,wie Netzwerksoftware implementiert wird. Wir stellen auf3erdem ." Code-Auszüge aus lauffähigen Protokoll-Stacks zur Verfügung, um zu zeigen, wie bestimmte Protokolle und Algorithmen tatsächiicb implementiert werden - können.
I Netzwerke werden aus vielen verschiedenen Bausteinen gebildet, und während . man in der Lage sein muss, uninteressante Elemente bei der Lösung eines
bestimmten Problems vorübergehend auszuklammern, muss man andererseits verstehen, wie alle Teile zusammenpassen, um ein funktionierendes Netzwerk zu bilden. Wir wenden deshalb viel Zeit für die Erklärung des generellen Ende-zuEnde-Verhaltens von Netzwerken und nicht nur der einzelnen Komponenten auf, sodass man verstehen kann, wie ein $qmglettqs Netzwerk- von der Anwend: . dung bis zur Hardware - funktioniert. J : Ili.Unser Systemansatz impliziert die Durchführung experimenteller Leistungs.. *;' Studien und die anschliegende Verwendung der Messdaten, um verschiedene; 3:Designoptionen quantitativ zu analysieren und einen Hinweis auf Optimierun* gen der Implementierung zu erhalten. Diese Betonung empirischer Analysen ., rbi ir ,&&&t sich durch das ganze Buch. _ 1. -. . C
,
8
.I.
r.,
1
'
-
%
.
'
% Netzwerke sind wie andere Computersysteme, z.B. Betriebssysteme, Prozessor->< architekturen, verteilte und parallele Systeme, ausnahmslos grog und komplex. '" Um diese Komplexität verwalten zu können, ziehen Systementwickler oft eine Reihe von Designprinzipien heran. Wir heben diese Designprinzipien an verschiedenen Stellen in diesem Buch mit entsprechenden Beispielen von Rechner, ! . ,-- !,,'Y - 'l-h,< netzen hervor. + "
1
L
.
'
.:
...
Didaktik und besondere Merkmale Die dritte Auflage enthält zahlreiche Merkmale, die sich der Leser zu nutze machen soilte: U Problemstellung: Am Anfang jedes Kapitels beschreiben wir ein Problem, das die
nächste Fragengnippe aufgreift, die im Design eines Netzwerks gelöst werden muss. In diesem Teil werden die Fragen vorgestellt und kurz begründet. T
Schattierte ~äs~etz~.In diesem Buch werden durchgängig bestimmte Themen in einem Randkasten kommentiert. In vielen Fällen beziehen sich diese Zusätze auf Anekdoten aus der Netzwerkpraxis. Hervorgehobene Absätze: Diese Absätze enthalten eine Zusammenfassung wichtiger Informationen aus der jeweils vorhershe~denL)iskussjoqa,,z.B,ein ,breit anwendbares Systemdesignprinzip. . - .,-;, X., .
.-j
L
Einleitung
-
1
:
ckte Protokolle: Obwohl wir uns in diesem Buch auf die Kernkonzepte und auf bestehende Protokollspezifikationenkonzentrieren, werden echte Proe verwendet, um die wichtigsten Ideen aufzuzeigen. Als Ergebnis k a m das Buch als Nachschlagewerk für viele Protokolle benutzt werden. Um die Beschreibungen der Protokolle leichter zu finden, enthält jeder entsprechende Abschnitt die Bezeichnung des betreffenden Protokolls, wie 2.B. Abschnitt 5.2, in dem die Prinzipien zuverlässiger Ende-zu-Ende-Protokolle beschrieben werden. In diesem Abschnitt wird TCP, das kanonische Beispiel eines solchen Protokolls, ausführlich erläutert. e Fragen: Jedes Kapitel enthält vor dem Obungsteil einen Abschnitt, in dem wichtige Fragen behandelt werden, die derzeit in der Forschungsgemeinde, im kommerziellen Umfeld oder allgemein in der Gesellschaft diskutiert werden. Wir haben festgestellt, dass die Diskussion dieser Fragen dazu beiträgt, dem Thema Vernetzung mehr Relevanz und Spannung zu verleihen.
Efne solche selektive Liste befindet sich am Ende jedes 1s. Jede Liste enthält die wichtigsten Arbeiten über die im Kapitel behandelten Themen. Wir empfehlen fortgeschrittenen Lesern die Lektüre dieser aufgeführten Arbeiten als ~ r ~ ä n der z dim ~ betreffenden Kapitel behandelten
i W e i t ~ f l h r dLitetdtut: e
4
8
;
.
.
I
8 - + -
. . L
.
.
9
'
1
meses Buch ist in folgende ~ a ~ i tgeglied&ti ei .[ .. U Kapitel 1: Einführung in verschiedene Kernideen, die in späteren Kapiteln ausblich behandelt werden. Ausgehend von bekannten Anwendungen wird diskutiert, woraus sich eine Netzwerkarchitektur zusammensetzt, und es werden Jie häufig einem Netzwerkdesign zu Grunde liegenden quantitativen Leistungsmetriken definiert. . I
'
I Kapitel
2: Untersuchung zahlreicher Netzwerktechnologien der unteren Ebene, ',„von Ethernet- über Token-Ring- zu drahtlosen Netzwerken. Aderdem werden a;wiela Funktionen beschrieben, die alle Protokolle der Sicherungssehicht unter-.:,$tützen müssen, darunter Kodierung, Rahmenerzeugung und Fehlererkennung. ie Basismodelle vermittelter Netzwerke (Datagramme ellen Leitungen). Insbesondere wird die vorherrschende ie (ATM) ausführlicher beschrieben. In diesem Kapitel wird auch das Design von Hardware-Switchen behandelt. . . '-r
.
,
1
.
*,Kapitel 4: Einführung in Internetworks rind Beschreibung der wichtigsten Elei„mente des Internet-Protokolls (P). Eine zentrale Frage in diesem Kapitel ist, wie e Grö& des Internet skalieren, Pakete weiterleiten können. E Kapitel 5: In diesem Kapitel gehen wir auf die Transportschicht über und beschreiben das TCP (Transmission Control Protocol) des Internet und RPC
(Remote Procedure Call), der für die Entwicklung von ClientlSemer-Anwendungen benutzt wird.
Kapitel 6: Erläuterung von Oberlastkontrolle und Ressourcenzuteilung. Die Themen dieses Kapitels ziehen sich durch die Vermittlungwhkht (Kapitel 3 und 4) und die Transportschicht (Kapitel 5). Insbesondere wird in diesem Kapitel beschrieben, wie Oberlastkontrolle in TCP funktioniert, und es werden die im Intemet und ATM benutzten Mechanismen für die Bereitstellung von Dienstgüte erläutert. D
Kapitel 7:In diesem Kapitel wird die Übertragung von Daten in einem Netzwerk beschrieben. Dies beinhaltet die Probleme der Darstebgsformatierung und der Datenkompression. Die Behandlung von Kompression enthält Et!äuterungen, wie MPEG-Videokompressionund MP3-Audiokompression funktionieren.
II
Kapitel 8: Das Schwerpunktthema dieses Kapitels bildet Sicherheit in Netzwerken. Es reicht von einer Obersicht über kryptographische Protokolle (DES, RSA, MDS) und Protokollen für Sicherheitsdienste (Authentifikation, digitale Signatur; Datenintegrität) bis zu kompletten Sicherheitssystemen (Vertraulichkeit-für E-Mail-Nachrichten, IPSec). AnschlieBend werden pragmatische Fragen über Firewalls behandelt.
II Kapitel 9: Beschreibung einer repräsentativen Anzahl von Netzwerkanwendun-
gen und der von ihnen verwendeten Protokolle, einschliesüch traditioneller Anwendungen wie E-Mail und Web, Multimedia-Anwendungen wie @-Telefonie und Video-Streaming, sowie Overlay-Netzwerken wie Peer-to-P&r-Anwendungen und Inhaltsverteilungsnetzen. Für Studenten im Vordiplom ist wahrscheiglich zusätzliche Vorlesungszeit erforderlich, um den Einführungsstoff des ersten Kapitels zu bewältigen, möglicherweise auf Kosten der fortgeschritteneren Themen von Kapitel 6 bis 8. Kapitel 9 kehrt dann zu dem beliebten Thema Netzwerkanwendungen zurück. Demgegenüber sollte der Dozent in den Hauptsemestern das erste Kapitel in nur einer oder höchstens zwei Vorlesungen abdecken, wobei davon ausgegangen wird, dass die Studenten den Unterrichtsstoff von sich aus s o ~ t i i g e snidieten, r d a s s zdtzlkhe Vorlesungszeit fiu eine ausführlichere Behandlung der letzten vier Kapitel bleibt. Die Kernthemen in den Kapiteln 2 bis S sollten in den Hauptsemestem und hVordip4om abgedeckt werden, obwohl die Abschnitte 2.2, 2.9, 3.4 und 4.4 mögiicherweise von Studenten im Vordiplom nur kurz vorgestellt werden soliten. Für alle, die dieses Buch M Selbststudium benutzen, decken die von uns gewählten Themen den Kem der Rechnervemetning ab. Deshalb empfehlen wir diesen Lesern, das Buch sequenziell (vonA&mg zum Ende)d w k b e i t e n . Darüber hinaus haben wir zahlreiche Referenzen eingebunden, damit sich zusätzliches Material zu einem bestimmten Bereich leider finden lässt. Zusätdich enthält das Buch Lösungen zu ausgewählten Aufgaben.
I
_
.
W, tiisedeaSmdentofi ~~uffordern, Rcrt:oLolle ftir gemiriedene Sima-
Zusatzmaterialund OnlineRessou~en Zur Unterstützung der Dozenten haben wir ein Unterrichtshandbuch vorbereitet, das Lösungen zu ausgewählten Ubungen enthält. Es kann vom Verlag angefordert werden. Weiteres Hilfsmaterial, darunter Dias für Vorlesungen, Abbildungen aus dem Buch, Socket-basierte Programm-Listings und Beispielprüfungen, sind über die Website vom dpunkt.verlag unter httphww.dpunkt.de erhältlich. Wir schlagen vor, diese Website regelmägig zu besuchen, weil wir laufend Informationen zu diesem Buch und interessante Links zu netzwerkspezifischen Sites veröffentlichen. Danksagung Unzählige Leute haben uns bei diesem Buch geholfen. Wir bedanken uns für ihren Einsatz bei der Verbesserung des Endergebnisses. Wir möchten zuvor aber erwähnen, dass wir uns bemüht haben, die Beschreibungen der Protokolle von unseren Kollegen fehlerfrei in diesem Buch wiederzugeben. Sollten sich dennoch Fehler eingeschlichen haben, ist dies einzig auf uns und nicht auf die Kollegen, die uns geholfen haben, zurückzuführen. Falls Sie bei der Lektüre dieses Buchs auf einen Fehler stogen, bitten wir um Mitteilung an den Verlag auf netbugsOdpunkt.de. Alle von Lesern gemeldeten Fehler werden beim nächsten Nachdruck korrigiert. Zunächst möchten wir allen danken, die Entwürfe des Manuskripts oder von Teilen davon reviewt haben. Zusätzlich zu denen, die frühere Auflagen begutachtet haben, möchten wir Carl Ernberger, Isaac Ghansah und Bobby Bhattacharjee für ihre gründliche Durchsicht danken. Dank ebenso an Peter Dnischel, Lirnin Wang, Aki Nakao, Dave Oran, George Swallow, Peter Lei und Michael Ramalho für ihre Durchsicht verschiedener Abschnitte. Wir möchten darüber hinaus allen Danken, die uns Anregungen und Hinweise für di& Auflage gegeben haben: Chedley Aouriri, Peter Steenkiste, Esther A. Hughes, Ping-Tsai Chung, Doug Szajda, Mark Andersland, Leo Tarn, C. P. Watkins, Brian L. Mark, Miguel A. Labrador, Gene Chase, Harry W. Tyrer, Robea Siegfried, Harlan B. Russell, John R. Black, Roben Y. Ling, Julia Johnson, Karen Collins, Clark Verbrugge, Monjy Rabemanantsoa, Kerry D. LaViolette,William Honig, Kevin Mills, Murat Demirer, J Rufinus, Manton Matthews, Errin W. Fulp, Wayne Daniel, Luiz DaSilva, Don Yates, Raouf Boules, Nick McKeown, Neil T. Spring, Kris Verma, Szuecs Laszlo, Ted Herman, Mark Sternhagen, Zongming Fei, Dulal C. Kar, Mingyan Liu, Ken Surendran, Rakesh Arya, Mario J. Gonzalez, Annie Stanton, TunBatten und Paul Francis. Zweitens leisteten mehrere Mitglieder der Network Systems Group in Princeton und an der University of Arizona Beiträge zu diesem Buch mit Ideen, Beispielen, Korrekturen, Daten und Code. Insbesondere möchten wir Andy Bavier, Tammo Spalink, Mike Wawrzoniak, Zuki Gottlieb, George Tzanetakis und Chad Mynhier danken. Wie zuvor bedanken wir uns bei der Defense Advanced Research Projects Agency (DARPA), der National Science Foundation (NSF), Intel Corporation G d Cisco Systems, Inc. für die Unterstützung unserer Netzwerkforschung in den letzten Jahren.
]
xirv
ulls unwrem Reisenherausgeber, David CIark, und bei Mmgan Kaufmann für die Weiche! Unter-uag WanProzess d a Schreibens geleitet haben. B«roadeier Dank der ehemaligen Lektorin j e d e r Maan, unseren Lcktorcn fiir die dritte ,Rirk Adam und htp Johnsun, sowie umwem Prodnkiomkiteq h o n Die Zusammenarbeit mit dem Morgan-Kahm-Team hat uns viel SpaB
wir
sprachigen Ausgabe Lektoren und Gutachter dieser deutschen Ausgabe haben versucht, fehlerfreie, fachlich korrekte und gut lesbare Übersetzung zu liefern. Wir hofweitestgehend gelungen ist. Hinweise auf verbliebene Fehler oder zu Form und Inhalt der deutschen Ausgabe sind ausdrücklich d sollten an
[email protected] werden.
1 Grundlagen
Ein Netzwerk aufbauen Nehmen wir an, wir wollen ein Rechnernetz entwickeln, das Potenzial für künftiges Wachstum auf globale Dimensionen hat und vielfältige Anwendungen unterstützt, 2.B. Telekonferenzen, Video-onDernand, elektronischen Handel, verteiltes Rechnen und digitale Bibliotheken. Welche verfügbaren Technologien können als zu Grunde liegende Bausteine dienen, und wekhe Art der Softwarearchitektur würden wir entwickeln, um diese Bausteine zu einem effektiven Komrnunikationsdienst zu integrieren? Die Beantwor-. tung dieser Frage ist das vorrangige Ziel dieses Buchs - also die Beschreibung der I must Create verfügbaren Elemente und wie sie dazu verwendet werden können, ein Netzwerk von a System, or be Grund auf zu konstruieren. enstav'd by anotber Bevor wir uns mit dem Design eines Rechnemetzes beschäftigen, müssen wir Man's; I will uns zuerst darauf einigen, was genau ein not Reason und Rechnernetz ist. Früher bedeutete der Begriff Nemuwk eine Reihe serieller LeiCompare: my tungen, mit denen dumme Terminals an busirzess is to Create. einen Gdrechner angeschlossen wurden. Für einige-impliziert der Begriff das Telefonnetz. Für andere ist das einzig interes- William Blake sante Netzwerk das für die Verbreitung von Videosignalen benutzte Kabelnetz. Diese Netzwerke haben das Haupanerkrnal gemeinsam, dass sie jeweils für eine bestimmte Datenart spezialisiert sind (Tastenanschläge, Sprache oder Video) und normalerweise ebenso spezialisierte Geräte (Terminals, Telefonapparate und Fernseher) verbinden.
'. _
,
,
...
' -
Die meisten Leute.kennen das Internet durch seine Anwendungen: Worid Wide Web, E-Mail, Streaming-Audio und -Video, ChatRooms oder die gemeinsame Nutzung von Musik (Dateien). Das Web stellt beispielhaft eine intuitiv einfache Nutzeroberfläche dar. Die Anwender sehen sich Seiten voller Text- und Grafikobjekte an, klicken auf Objekte, über die sie mehr erfahren wollen, und schon erscheint eine entsprechende neue Seite. Den meisten ist auch bekannt, dass jedes auf einer Webseite wählbare Objekt unmittelbar unter der Oberfläche über einen Identifizierer mit der nächsten Seite, die man sich ansehen will, verbunden ist. Dieser
'
4
I
1 Grundlagen
Identifizierer heif3t Uniform Resource Locator (URL)und benennt eindeutig jede mögliche Page, die man im Webbrowser ansehen kann. Die URL
führt beispielsweise zu einer Seite, die dieses Buch bei Morgan Kaufmann darstellt: Die Zeichenkette http bedeutet, dass zum Laden der Webseite das HyperText Transfer Protocol ( H T P )benutzt werden muss, www.mkp.com ist der Name des Rechners, der die Page ausgibt, und pd3e ist die eindeutige Bezeichnung der Seite auf der Homepage des Verlags. Was die meisten Web-Benutzer allerdings nicht wissen, ist, dass durch Anklicken einer einzigen solchen URL nicht weniger als 17 Nachrichten über das Intejnet aus' Page getauscht werden, wobei bei dieser Zahl davon ausgegangen wird, d ~ &die selbst so kiein ist, dass sie in eine einzige Nachricht passt. Darin sind bis zu sechs Nachrichten enthalten, um den Server-Namen (www.mkp.com) in seine InternetAdresse (213.38.165.1 80) zu übersetzen, drei ~achrichten,um eine TCP-Verbindung (Transmission Control Protocol) zwischen dem Browser und diesem Server aufzubauen, vier Nachrichten, damit der Benutzer-Browser seine HTTP-spezifische »get«-Anfragesenden und der Server ihm mit der angeforderten Page antworten kann (und beide Seiten den Empfang dieser Nachricht bestätigen ktinnen), und vier Nachrichten, um die TCP-Verbindung wieder abzubauen. Selbstverständlich beinhaltet das nicht die Millionen von Nachrichten, die Internet-Knoten im Lauf eines Tages untereinander austauschen, nur um sich gegenseitig darüber zu informieren, dass sie existieren und bereit sind, Webpages auszugeben, Namen in Adressen zu übersetzen und Nachrichten an ihr enhgultiges Ziel weiterdeiten. Eine noch nicht so bekannte Internet-Anwendung wie das Surfen im Web, die sich aber stetig ausbreitet, ist Streaming-Audio und -Video. Obwohl eine komplette Videodatei zuerst von einem entfernten Rechner über das Internet heruntergeladen und dann auf dem lokalen Rechner abgespielt werden könnte, ähnlich wie man eine Webpage lädt und darstellt, müsste man in diesem Falle warten, bis die letzte Sekunde der Videodatei angekommen ist, bevor man sie sich ansehen kann. Strearning-Video bedeutet, dass der Sender die Quelle und der Empfänger die Senke des Videostroms (Stream) ist. Das heil&, die Quelle erzeugt einen Videostrom (eventuell unter Verwendung einer Videoerfassungskarte), sendet ihn in Form von Nachrichten über das Internet, und die Senke beginnt schon mit dem Abspielen, während dieser ankommt. Um genau zu sein, ist Video keine Anwendung, sondern ein Datentyp. Ein gutes Beispiel einer Videoanwendung ist Video-on-Dernand. Dabei wird ein bereitstehender Spielfilm von Platte gelesen und über das Netzwerk übertragen. Eine weitere interessantere - Anwendung dieser Art ist die Videokonferenz, weil hierbei sehr straffe Zeiteinschränkungen gelten. Wie bei der Benutzung des Telefons muss die Interaktion zwischen den Teilnehmern hier zeitlich genau abgestimmt sein. Wenn der Teilnehmer an einem Ende gestikuliert, muss der entsprechende Video-Frame am anderen Ende so schnell wie möglich dargestellt werden. Durch zu große Verzöge-
'
6
I
1 Grundlagen
Obwohl dies nur zwei Beispiele sind, so zeigen das Betrachten von Webseiten und die M6gbchkeit einer Videokonferenz doch die Vieiseitigkeit von Anwendungen, die auf der Basis des Internet möglich sind. Anderseits weisen sie d q u f hin, wie komplex die Struktur des Internet ist. Dieses Buch fängt bei den Grundlagen an und beschäftigt sich dann jeweils mit einem Thema.Dabei wird der Leser erfahren, wie man ein Netzwerk konstruiert, das eine so gro& Breite von Anwendungen ennöglicht. Kapitel 9 schließt das Buch ab, indem diese beiden speziellen Anwendungen noch einmal genau betrachtet werden, ebenso wie mehrere weitere, die innirrischen im Internet häufig genutzt werden.
1.2 Anforderungen Wir haben uns ein ehrgeiziges Ziel gesetzt: Verstehen, wie ein Rechnernetz von Grund auf entwickelt wird. Um dieses Ziel zu erreichen, k e n wir mit den grundlegenden Prinzipien. Dann stellen wir die Fragen, die man sich ganz natürlich stellen würde, wenn man wirklich ein Netzwerk bauen wogte. In jedem Schritt verwenden wir die heute üblichen Protokolle, um die verschiedenen verfügbaren Designoptionen zu erläutern. Wir akzeptieren diese vorhandenen Konstruktionen aber nicht als Evangelium. Vieimehr werden wir die Frage stellen (und beantworten), w m m Netzwerke auf diese und keine andere Art entwickelt werden. Man darf sich aber nicht nur mit dem Verständnis der heute üblichen Methoden zufriedengeben. Vielmehr ist es wichtig, die zu Grunde liegenden Konzepte zu kennen, weil sich Netzwerke mit technologischen Weiterentwicklungen und neuen Anwendungen stiindig ändern. Unsere Erfahrungen haben gezeigt, dass man jedes neue Protokoll leicht verstehen kann, wenn man einmal das Grundkonzept ver~tandenhat. Im ersten Schritt werden die Einschränkungen und Anforderungen identifiziert, die das Netzdesign beeinflussen. Bevor wir beginnen, müssen wir allerdings bedenken, dass die Erwartungen, die man an ein Netzwerk stellt, vom jeweiiigen Biickwinkel abhängen: iAnwendungsprogrammierer würden die Dienste aufzähien, die ihre Anwendung benötigt, beispielsweise die Gewähq dass d e von der Anwendung gesendeten Nachrichten fehlerfrei innerhalb eines bestimmten Zeitraums zugestellt werden. i Netzwerkdesigner würden die Eigenschaften eines kostenglinstigen Designs aufzählen, beispielsweise, dass Netzressourcen effizient genutzt und gerecht unter mehreren Benutzern aufgeteilt werden. I Netzbetreiber würden die Merkmale eines Systems aufführen, das sich leicht verwalten lässt, beispielsweise, dass Fehler leicht abgegrenzt und Nutzungsgebühren leicht berechnet werden können. In diesem Abschnitt wird der Versuch unternommen, die verschiedenen Blickwinkel zu einer übergeordneten Einführung in die wichtigen fjberlepngen identifiziert, die beim Netzwerkdesign entscheidend sind, zusammenzustellen. Dabei werden die Herausforderungen, die im gesamten Buch immer wieder aufgegriffen werden. 6
,
,
dvdct n&&mder verbunden sind, unfcmiitzten R e c h n e r 4 begrma, Abb. 1E Direkte Verbindungen: (a) Punkt-=-Punkt- und (b)MehrfadPzugtWswWndung
oder die Kabelmenge zur Verbindung der Knoten wäre bald unhandlich und*sehr teuer. Zum Glück bedeutet Konnektivität zwischen zwei Knoten nicht unbedingt, dass sie physisch direkt miteinander verbunden sein müssen. Indirekte Konnektivität lässt sich zwischen einer Reihe zusammenarbeitender Knoten erzielen. Die beiden folgenden Beispiele zeigen, wie mehrere Rechner indirekt miteinander verbunden werden können. Abb. 1.3 zeigt eine Reihe von Knoten, die jeweils an eine oder mehrere Punkt-zuPdt-Verbindungen angeschlossen sind. Auf den Knoten, die an mindestens zwei Verbindungsleitungen angeschlossen sind, läuft Software, welche die über eine Verbindungsleitungempfangenen Daten auf einer anderen weiterleitet. In einer systematischen Anordnung bilden diese weiterleitenden Knoten ein vermitteltes Netzwerk. Es gibt mehrere ~ r t i nvermittelter Netzwerke, von denen die bekanntesten das leitungsvemzittelte und das p a k d ~ m i t t e l t esind. Ersteres wird im Telefonnetz benutzt, während letzteres in der überwältigenden Mehrheit von Rechnernetzen benutzt wird und Kernpunkt dieses Buchs bildet. Ein wichtiges Merkmal von paketvermittelten Netzwerken ist, dass die Knoten untereinander diskrete Datenblöcke austauschen. Man kann sich diese Datenblöcke als Anwendungsdaten, z.B. eine Datei, eine E-Mail oder eine'Grafik, vorstellen. Wir nennen jeden Datenblock entweder Paket oder Nachricht und unterscheiden vorläufig nicht zwischen den beiden &griffen. Warum sie aber nicht immer das gleiche bedeuten, wird in Abschnitt 1.2.2 erläutert. Paketvermittelte Netzwerke basieren normalerweise auf einer Strategie, die man Speicbertrmittlung nennt. Wie der Name andeutet, emp&ngt jeder Knoten in einem speichervermitteltenNetzwerk zuerst ein Paket über eine Verbindungsleitung vollsthdig. Dabei wird das Paket im internen Speicher des Knotens gespeichee anschlief3end wird das komplette Paket an den nächsten Knoten gesendet. Im Gegensatz dazu wird bei einem leitungsvermitteltenNetzwerk zuerst eine dedizierte Verbindung über eine Folge von Verbindungsleitungen aufgebaut. Dann kann der Quellknoten über Abb. 13: Vermitteltes Netzwerk
eines Bitsmm an einen Z i e b n senden. Die Paketvdttlung er Leiimgmadtdung m ehern Rachnemtz hauptsächlich aus p ~ u t a ;wie t ~ imnächsten A b s c W crEiiutert wird. Abb. i,a &pt.&r U ~ ~ r d c ? l . d ~ t l g . ddcn h aIQisbea n herWb die Vtas M hphedtvw (das sind &u SwltGb'g, deren e h i g e
(und die man hwiendun~pr-
anderen weit&
oder hdsyswme aw), W b -
Ei hternetavork kann man sich e
W als
Abh 1A: Zusammenschluss mehrerer Netzwerke
du iibrigcn Knoten im Netmverk er kommunizieren will. MIin erreicht dies &durch, dass jedem Knoten eine Adresse zugewiesen wird. Eine Adresse ist eine --Kette, die einen Knoten identifizim. Das heißt, das Nemmeirk k a m die Adresse eiges Knotms benutzen, um ihn von dem übrigen ~~~ppxhiossencn Knoten zu unters&eiaOia. Möchte ein Quellknoten das Netzwerk veranlassen, e h e Nacltricht an eirten bcsthmten Ziehoten zu senden, gibt er dessen Adresse an. Sind der senden& umd der empfangende Knoten nicht &kt verbunden, vtrwenden die Switche und Rauter des Netzwerks diese Adresse, um femtmden, wie die Nadwicht an das Ziel befördert werden kann. Die systematischeErmittiung, wie &k~chnchmanhand der Adresse in Riehtung Zieiknoten ni befördern sind, nennt man Rcmz'ng. Bti dieser h n E b f ü h q in Adrewkwg und Rodng wurde davon ausgegangen, dass der Quelhoten eine Nachricht an einen eini&ee ZEeIknoton (Um{senden möchte. Dies ist das übliche, aber nicht d s s eiazige Szexdo. Der Quellknoten kann eine Nachricht an alle im Netz a n g e s c h l m ~ Knoten ~ (BrAt) oder an eine bestimmte Gruppe von Knoren (~Wltiazst) senden. Zusiitzkh zu den knotenspezifischen Adressen b h t also eine weitere Mardcmg an ein Nttzwerk dain, dass es Multian- und Broadcast-Adressen mmaiitzen muss.
t Ais wichtigstes Konzept leiten wir daraus ab, dass wir ein Netzwerk rekursiv so definieren können, dass es sich aus zwei oder mehr Knotw zri~ammensetzt,die &er eine Verbindungsiei~ngverbunden sind, oder dass zwei oder mehr setzwerke über einen oder mehrere Knoten verbunden sind. Anders ausgedrrxclc~Ein Netzwerk kann sich aus mehreren Netzwerken zusammensetzen, wobei das Netzwerk auf der untersten Ebene mit einem physischen Medium implementiert wird. ELie der entscheidenden Hera~sforderungenbei der Beaeitstvon Konnektivität ist es, eine Adresse für jeden Knoten m definieren, d e i~q a Netzwerk erreichbar ist (einschliet3lichder Unterstützung von Broadcast- und Multicast-Konnektivität) und diese Adresse zu verwenden, um Nachrichsen zu dem , bzw. den entsprechenden Ziehoten zu übertragen.
1.2.2 Kostengünstigegemeinsame Nutzungvon Ressourcen Wie bereits erwähnt, bilden paketverrnittelte Netzwerke den Themenschwerpunkt dieses Buchs. In diesem Abschnitt wird die wichtigste Anforderung an Rechnernetze - Effizienz - beschrieben, die uns zur Paketvermittlung als der bevorzugten Strategie
führt. Angesichts einer Sammlung von Knoten, die indirekt durch Verschachtelung von Netzwerken miteinander verbunden sind, können zwei beliebige Hosts über eine Reihe von Verbindungsleitungen und Knoten Nachrichten miteinander austauschen. Selbstverständlich möchten wir mehr als die Unterstützung von nur zwei kommunizierenden Hosts erreichen. Wir möchten es allen Hosts paarweise gestatten, Nachrichten miteinander auszutauschen. Die Frage lautet dann, wie alle zur Kommunikation bereiten Hosts sich das Netzwerk teilen, insbesondere, wenn sie es gleichzeitig nutzen wollen. Darüber hinaus muss ein weiteres Problem gelöst werden: Wie kön-
:
1
11
1
1.2 AR6pioiy.1ii1ii9m
mehrere Hmts die
V6i-shg e&gQIIcrn,
1
11
füt)deng i e W i Z W
mihm w i r ein grmdlegen-
*v
&~wdaxif.* w h q t3mdm m*-
a w g q k&al
A b a 1.k Multiplexen mehrerer logixhw Datenmöme auf einer physischen Verbindung
12 1 1 Grundlagen - - . -
Die beiden Konzepte sind zwar leicht zu verstehen, jedoch ist sowohl STDM als auch FDM auf unterschiedliche Art begrenzt. Erstens: Wenn eines der Host-Paare keine Daten zu senden hat, bleibt sein Anteil an der Verbindungsleitung, d.h. sein Zeitanteii bzw. seine Frequenz, ungenutzt, während ein anderes Host-Paar Daten zu übertragen hat, aber warten muss, bis es an die Reihe kommt. Bei der rechnergestützten Kommunikation kann die Zeit, die eine Verbindungsleitung ungenutzt bleibt, sehr lang sein. Man betrachte beispielsweise die Zeit, die man verbringt, um eine Webseite zu lesen (während die Verbindung im Leerlauf ist), im Verg;leichzu der Zeit, die man aufwendet, um eine Seite abzurufen. Zweitens: STDM und FDM sind auf Fälle begrenzt, in denen die maximale Anzail der Datenströme im Voraus feststeht und bekannt ist. Bei STDM ist es nicht mö&ch, die Menge zu ändern oder zu erhöhen, und bei FDM können keine neuen Frequenzen hinzugefügt werden.
SAM& LANs, NANs und WANs
'
Grö13e ist eine Möglichkeit, Netzwerke zu charakterisieren. Zwei bekannte Beisp'iele sind LANs (Lwal Area Networks) und WAM (Wide Area Networks). LANci erstrecken sich normalerweise über weniger als 1 km, während WANs weltweit sein können. MANs (MetropolitanArea Newrks) decken normalerweise dnige tig Kilometer ab. Der Grund dafür, dass diese Klassifizierungeninteressant sind, ist dass die GröSe eines Netzwerks oft Auswirkungen auf die zu Grunde Iiegende Technologie hat, die verwendet werden kann. Ein zentraler Faktor ist dabei die Zeit, die es dauert, bis sich Daten von einem Ende des Netzwerk zum anderen ausbreiten. Dieser Faktor wird in Als historischer Hinweis ist zu workr für die ersten WANs nicht werkart gab, von der man sie und teuer waren, machte man sich nicht viel ~edankenüber die Verbindung aller Computer in einem lokalen Bereich. Es gab nur einen Computer in jedem Weich, Erst als sich Computer verbreiteten, wurden LANs erforderlich. Ferner wurde der Begriff DWANI eingeführt, um die größeren Netewerke zu beschreiben, die geographisch weit entfernte Computer miteinander verbanden. kine neue Netzwerkart ist SAN (System Area N m r k ) . Das Anwendungsge~ biet von SdNs liegt im Bereich des Cluster-Computing, d.h. der Kopplung von PCs oder Arbeitsplatzrechnern zu einem Funktions-, Raten- und LastVerbund mit sehr hoher Performanz. Beispielsweise sind HiPPl (High Performance Parallel Interface) und Fiber Channel zwei bekannte SAN-Technologien, mit denen verknüpft wermassiv parallele Prozessoren zu skalierbaren den. (Da SANs meist Computer mit Speicher-Servern verbinden, werden sie auch als Storage Area Networks bezeichnet). Diese Netzwerke werden in diesem Buch nicht ausführlich beschrieben, verdienen aber Beachtung, weil sie hinsichtlich Leistung den anderen Netzarten oft überlegen sind und vermehrt für die Verbindung solcher Netzwerke in LANs und WANs benutzt werden.
e eich er-~ervern
mehr-
Q d e n io &er
+eine$&i1&t~4Rk Verbinh.g@kt&
w e r k 'BG1
. Ein Switch kann beispielsweise so ausgelegt werden,
Abb. 1A: Ein Switch multiplext Paketevon mehreren Quellen auf eine gemeinsame Leitung.
dass er Pakete auf FIFO-Grundlage (First-In-First-Out oder »wer zuerst kommt, malt zuerst*) übertragt. Bei einer anderen Methode werden die ubemgungswilligen Hosts im Rundumverfahren - ähnlich wie b e b STDM - bedient. Dabei kann beispielsweise gewährleistet werden, dass bestimmte Hosts einen bestimmten Anteil an der Bandbreite der Verbindungsleitung erhalten. Oder es kann gewährleistet werden, dass die Pakete bestimmter Hosts im Switch nie um mehr als eine bestimmte Zeitdauer verzögert werden. Ein Netzwerk, das Hosts die Inan3pruchnahme einer solchen Sonderbehandlunggestattet, unterstützt Dievtstgüte (Quality of Service, QoS). Da der Switch in Abb. 1.6 drei ankommende Paketsaöme in eine abgehende Verbindungsleitung multiplexen muss, kann es bei dieser Konsteliatim auch sein, dass der Switch Pakete schneller empfängt als die gemeinsame Verbindungsleitung bewiiltigen kann. In dieszm Fall ist der Switch gezwungen, Pakete in seinem-Speicher zwischenzuspeichern, Wenn ein Switch Gber eine längere Zeitspanne Pakete schneller empfängt als er senden kann,geht ihm früher oder später der Speicherplatz aus, und einige P k müssen verworfen werden. Gerät ein Switch in diesen Betriebszustand, sagt man, er ist dberlastet.
b Fazit: S t a t i m Multiplexen ist eine kostengünstige Methode für mehrere Benutzer (z.B. Datenstrröme von Host zu Host), um Netzwerkressowcen (Vehiiduqpieiauigen und Knoten) gemeinsam zu nutzen. Die Methode definiert das Paket als kleinste Einheit, mit der die Verbindungsleitungen des Netzwerks für verschiedege Datenströme aufgeteilt werden, sodass jeder Switch über die Nutzung der Verbindungsleitungen auf P a k h i s entscheiden kann. Eine faire Zuweisung der Leitungskapdtat auf v e r s W e n e Datenströme rrnd die Handhabung einer mögtichen überlastung sind die grö&ten Herausforderungen beim statistischen Multipliexen.
denurg an ein Rechnern~tzlautet, dass die Anwendas' Netz angeschiossenen Z I laufen, ~ in der
Abb.1.7: m s s e
abstrakten Kanal.
z
€
M
m
m
~
~
c
r
&
~
~
%
r
i
D
1;a~~g*~rmkw--d59~ct,-m* dung.en, die in äer W e m bm&&ben skd 4tritkmai
~
18
I
1 Grundlagen
Zuverlässigkeit Aus den soeben betrachteten Beispielen wird deutlich, dass zuverlässige Nachrichtenzustellung eine der wichtigsten Funktionen eines Netzwerks sein kann. Ohne zu verstehen, wie und warum Netzwerke versagen können, lasst sich aber nur schwerlich ermitteln, wie diese Zuverlässigkeit bereitzustellen ist. Zuerst gilt es zu erkennen, dass Rechnemetze nicht in einer perfekten Welt existieren. Rechner stürZen ab und werden neu gestartet, Lichtwellenleiter brechen, elektrische Störungen verändern Bits in den übertragenen Daten, Switchen geht der Pufferspeicher aus, und als ob diese physikalischen Probleme noch nicht genug wären, verfrachtet die Software, die die Hardware steuert, Pakete manchmal ins virtuelle Niemandsland. Eine wichtige Anforderung an ein Netzwerk besteht deshalb darin, bestimmte Ausfallarten zu maskieren (verbergen), damit das Netzwerk den nutzenden Anwendungen zuverlässiger scheint, als es tatsächlich ist. Ausfälle, mit denen sich Netzwerkentwickier befassen müssen, werden allgemein in drei Klassen aufgeteilt. Die erste Klasse betrifft die Bitebene. Wenn ein Paket über eine Verbindungsleitung übertragen wird, können in den Daten Bitfehler auftreten. Das bedeutet, dass eine 1 zu einer 0, und umgekehrt, vertauscht wird. Manchmal werden nur einzelne Bits verändert. Noch häufiger treten aber Burstfehler auf. Das hegt, es sind mehrere aufeinander folgende Bits betroffen. Bitfehler werden normalerweise durch Einwirkungen von aui3en verursacht, 2.B. Blitzschlag, Stromstöße oder Mikrowellenherde, die störend auf die Datenübertragung einwirken. Andererseits kommen solche Bitfehler eher selten vor und beeinträchtigen irn Durchschnitt nur eines von 106 bis 10' Bits in einem herkömmlichen Kupferkabel und eines von 1012 bis 10'' Bits in einem typischen Glasfaserkabel. An späterer Stelle werden Techniken beschrieben, mit denen diese Bitfehler mit hoher Wahrscheinlichkeit erkannt werden können. Nach der Erkennung können solche Fehler teilweise korrigiert werden, sofern wir wissen, welche Bits verfälscht wurden. in manchen Fällen dreht man sie einfach wieder um. In anderen Fällen ist der Schaden so groß, dass man das ganze Paket verwerfen muss. Dann muss der Sender das Paket erneut übertragen. Die zweite Klasse betrifft die Paketebene. Konkret heißt das, dass das Netzwerk ein komplettes Paket verliert. Ein Grund dafür kann sein, dass die im Paket enthaltenen Bitfehler nicht korrigiert werden konnten, sodass das Paket verworfen werden musste. Eher wahrscheidich ist aber, dass einer der Knoten, der das Paket handhaben muss, 2.B. ein Switch, der es von einer Leitung auf eine andere befördert, derart überlastet ist, dass er das Paket nicht zwischenspeichern kann und es folglich wegwerfen muss. Dies betrifft das in Abschnitt 1.2.2 angesprochene Oberlastungsproblem. Weniger häufig, aber dennoch möglich ist, dass die Software, die auf einem der Knoten läuft, die das Paket handhaben, einen Fehler macht. Beispielsweise schickt sie ein Paket irrtümlich auf der falschen Verbindung los, sodass es seinen Weg zum Ziel nie findet. An späterer Steile wird die Handhabung von verlorenen Paketen beschrieben. Dabei ist eine der grö%ten Schwierigkeiten, dass zwischen einem Paket, das wirklich verlorengegangen ist, und einem, das lediglich zu spät am Ziel ankommt, unterschieden werden muss.
tmbddten Bedie-
*
k-en aber eine langer d u e m d e verheenmde Wirkung auf das Netzhh.DOSNetzwerk Mit dabei nicht unbedingt ganz ;aus.Bei einem paketverWeNetzw& n b e es beispielsweise mögiich, den Datenverkehr um e k auage&'diieser
;
FeMerkfasse ist es, zwischen einem ausgefallenen und e k m langsamen bzw. eher gebrochenen und einer qualitativ schlechten Verbindungsieitmg, Bitfehler verursacht, zu unterscheiden.
)i: Die wichtigste Erkenntnis dieses Abschnitts ist, dass man die Anfordenwgen der
den h-a
der zu G m d e l k g m h T&ol~gim und den ~ g s p wdtermrwihlt t ~ werden.Die,Emwkkmaks,das d i e A n f o r h g e n erWt, ist also kein leichtes Unter-
A
n
zu khnen, warden generelle Piänq cnmi&&, h k t w bezeichne, Dies ist eine Art Lejtfaden
andere Systemkomponenten bietet, und die Einzelheiten, wie das Objekt implementiert wird, vor den Nutzern des Objekts verbirgt. Die Herausforderung is6 hieq Abstraktionen zu identifizieren, die einen Dienst bereitstellen, der sich in zaiilreichen unterschiedlichen Fällen als nützlich erweist und im zu Grunde liegenden System e&ient implementiert werden kann. Genau das haben wir mit der Einfühnuig des Konzepts eines Kanals im vorherigen Abschnitt getan: Wir haben Anwendungen eine Abstraktion bereitgestellt, die die Komplexität des Netzwerks vor Anwendungsentwicklern verbirgt. Abstraktionen fühten oft zu Schichten, insbesondere in Netzwerksystemen. Die Grundidee ist dabei, dass man mit den Diensten beginnt, die von der zu Grunde liegenden Hardware geboten werden, und dann weitere Schichten hinzufiigt, die jeweils eine höhere (abstraktere) Dienstebene bereitstellen. Die Dienste der hohen Schichten werden durch Verwendung der von den niedrigeren Schichten bereitgestellten Dienste implementiert. Greifen wir zur Veranschaulichung auf die im vorherigen Abschnitt beschriebenen Anforderungen zurück, können wir uns beispielsweise vorstellen, dass ein Netzwerk zwei Abstraktionsschichten umfasst, die zwischen dem Anwendungsprograrnm und der zu Grunde fiegenden Hardware liegen, wie aus Abb. 1.8 ersichtlich wird. Die Schicht unmittelbar oberhalb der Hardware stellt Host-zu-Host-Konnektivität bereit. Sie abstrahiert (verbirgt) dabei die Tatsache, dass zwischen zwei beliebigen Hosts eine komplexe Netztopologie liegen kann. Die nachsthöhere Schicht baut auf dem verfügbaren Host-zu-Host-Kommunikationsdienst auf und unterstützt Prozess-zu-Prozess-Kanäle. Sie verbirgt 2.B. die Tatsache, dass das Netzwerk gelegentlich Nachrichten verliert. Abb. l.&
Anwendungspmgramme
Darstellung eines Netmerksystems in Schichten
Prozess-zu-Prozess-Kanale Host-zu-Host-Konnekthntat
Hardware
Die Auslegung eines Netzwerks in Schichten bietet zwei angenehme Makmale: Erstens lässt sich ein Netzwerk in leichter handhabbare Komponenten zerlegen. Statt eine monolithische allumfassende Software zu implementieren, kann man mehrere Schichten implementieren, die jeweils einen ganz bestimmten Teil des Ganzen lösen. Zweitens erhält man ein modulares Design. Entscheidet man sich beispielsweise an irgendeinem Punkt, einen neuen Dienst hinzuzufugen, braucht man nur die
13
1 31
d kann die auf den übriges Sdiicbtee vor-
jeds
Gnea w
der unmori E
b Samt b i W b awfbawa Zar Ver-
n Ebenen e k mehhich-
Anweindungsprograrnms
kbb, 1.92 Mehrsd\i&tiges System mit alternativen Abstraktionen auf einer bestimmten Schicht
den iibsigen Objekten auf dem gleichen Cmputeb die seine
hen Protokollparurern ausgetauscht werden, um den Kommunikaimplementieren, Dies würde die Art festlegen, in der ein Anfrage/ F:
.
A b h 1*1#
Dienst" und Pmner-Interface
..
Anononpmmkoll auf einem Rechner mit seinem paauf einem anderen kommyniziert. Mit anderen Worten: Ein Protokoll &finiee einen Koaui3unikatiomdienst, den es lokal anbiaet, zusammen mit einer R e i b roni Regeln &bdie Nachrichten, die das Ptotskoll mit seinem bzw. seinen Pwtner(ri) austauscht, twn &esen Diem zu implementieren. Diese Situation ist in Abb. 1,10 dargatttllt. Abgesehen von der Hardwareebene, auf der die Partner direkt über eine Leimng eiiwimnder komm&ieren, ist die Peer-zu-Pecr-Komui~tlmtiofii n M t . Das b@, jedes Protokoll k o d ~ e r mit t s & w m h m e r durch llki-be von Wachkhm an das Protokoll einer niedrigeren Ebene, das e h r e e h die Nachricht . seinem Partner nistellt. Drariiber hinaus gibt es penzitill mehrere Protokolle auf einer bestimrnten Ebene, die jeweils einen anderen Konundationsdhnst bieten. Wtr stellen deshalb die ProtokolifQlge, aus der sich ein Neawerksystem zusammensemb mit Hilfe eines Pro~okot5jpzphd a W E = n w da GraPben entsprechen den Protokolien und die VerbimtmgMnien stelien eine AMhgigkei~BeZrePnrt2gdar. Abb, 1.31 zeigt z,B. einen Pratoka1lgrapkn für das oben kwfuiebme d i e Wichcemystem. Die ProtoIrah W (Reque~tSRepyYP r o t d ; ARfragdAnt\ncurt-&&oli) und MSP (Message Streans hrocol; Nactitidim&o~uprwoko~l) . impkmenderen zwei untersebiedlick Arten mn Proam-zn-Prozew-Wen. &ide hkn$~avo& HI;XP mst-zu-Ha**Protokoll) ab, das eheh Verbindmgs&enst zwis c h zwei Hmrs bereiwellt. Bei diesem kispie1,wird davon awgegangen, dass das D a t e i W a n s f e r p r ~ ~ auf Host 1 mit Hilfe des vom RW-PtotaZEoli gebotenen Kom&ations&wzes eim N h k h t rn sehen Paruser auf H ~2Q d e n will. Die Anwcnbtg der Datei 1 for
1
-
ltBBmP'
lu&l.ll:
+
eines Protokollgraphen '
I
mit HWe eina K m h t r o n aus Text,
Udanm3nP--~nd
sich- viek-V
&-
lbmidie d a t a t o m h e r i vor-% In-sioasal
Stand&$
gung von Protokollen in der jeweiligen Architektur spezifiziert haben. Wir beschreiben die von ISO und IETF definierten Architekturen kurz. Zuerst müssen aber zwei weitere Aspekte über die Mechanismen eines Protokollgraphen erklärt werden.
Kapselung Was passiert bei dem Beispiel in Abb. 1.11,wenn eines der Anwendungsprogramme eine Nachricht an das RRP-Protokoll abgibt, um sie an seinen Partner zu senden? Aus Sicht des RRP ist die Nachricht, die es von der Anwendung erhalten hat, eine nicht zu interpretierende Byte-Kette. Das RRP kümmert sich nicht darum, ob diese Bytes ein ganzzahliges Array, eine E-Mail, ein digitales Bild oder etwas anderes darstellen. Es hat schlichtweg den Auftrag, sie an seinen Partner zu senden. Das RRP muss seinem Partner aber Steuerinformationen übergeben, um ihm mitzuteilen, wie die Nachricht bei Empfang zu behandeln ist. Das RRP fügt also einen Header (Kopfteil) ein. Im allgemeinen ist ein Header eine kleine Datenstruktur von einigen wenigen bis zu ein paar Dutzend Byte, die von den Partnern benutzt werden, um miteinander zu kommunizieren. Wie der Name andeutet, wird der Header immer der eigentlichen Nachricht vorangestellt. Manchmal werden diese Steuerinformationen aber auch an das Ende der Nachricht angehängt. In diesem Fall handelt es sich um einen Trailer (Endteil). Das genaue Format für den vom RRP angehängten Header ist in seiner Protokollspezifikation definiert. Die eigentliche Nachricht, also die im Auftrag der Anwendung zu übertragenden Daten, nennt man Nutzdaten. Die Daten der Anwendung werden in der vom RRP-Protokoll für die Obertragung vorbereiteten Nachricht gehpselt. Diese Kapselung von Daten wird dann auf jeder Ebene des Protokollgraphen wiederholt. Das HHP kapseh die vom RRP erhaltene Nachricht beispielsweise, indem es seinen eigenen Header anfügt. Wenn wir jetzt davon ausgehen, dass das HHP die Nachricht über ein Netzwerk an seinen Partner sendet, wird die Nahricht nach ihrer Ankunft beim Ziel-Host in der entgegengesetzten Reihenfolge verarbeitet: Das HHP endernt zuerst seinen Header von der Nachricht, interpretiert ihn (wternimmt also eine entsprechend dem Inhalt des Headers geeignete Aktion) und leitet die Nutzdaten der Nachricht zum RRP weiter, das den von seinem Partner angehängten Header liest, die darin angegebenen Aktionen ausführt und die Nutzdatezi der Nachricht an das Anwendungsprogramm weitergibt. Die vom RRP an die Anwendung auf Host 2 weitergegebene Nachricht ist absolut identisch mit derjenigen, die das Anwendungsprogramm nach unten zum RRP auf Host 1 abgegeben hat. Die Anwendung bekommt nie einen der Header zu sehen, die angehängt wurden, um die Kommunikationsdienste auf der niedrigeren Ebene zu realisieren. Dieser gesamte Prozess ist in Abb. 1.12 dargestellt. Man beachte, dass bei diesem Beispiel Knoten im Netzwerk (z.B. Switche und Router) den der Nachricht vorangestellten HHP-Header zur Erfüllung & e r Aufgaben einsehen können. Wenn das Protokoll einer niedrigeren Ebene die ihm vom Protokoll einet höheren Ebene abgegebene Nachricht nicht interpretiert, meinen wir damit, dass es nicht weiß, wie es aus den in der Nachricht enthaltenen Daten irgendeine Bedeutung
Abb. 1.lg Nachrichten höherer Ebenen *den in fCachrO&ten niedrigerer Ebenengdcapwit.
;dkahieren kann. Manchmal jedoch wendet das Protokoll der niedrigeren Ebene Operation auf die erhaltenen Daten an, um sie beispielsweise zu komoder zu verschlüsseln. In diesem Fall wandelt das Protokoll den gesamten der Nachricht um, einschließlich der Daten der Ursprungsanwendung aliner Header, die von Protokollen höherer Ebenen an diese Daten angehängt ;;
aen.
*s Abschnitt 1.2.2 ist bereits ein grundlegendes Konzept der Paketvermittlung ( L . 'Mannt: a
Das Multiplexen mehrerer Datenflüsse über eine einzige VerbindungsleiDas gleiche Konzept lässt sich nicht nur auf Vermittlungsknoten, sondern $&ohl * ,-6 , nach oben als auch nach unten im gesamten Protokollgraphen anwenden. dem Beispiel in Abb. 1.11 könnte das RRP einen logischen Kommunikationsimplementieren. Die Nachrichten würden von zwei unterschiedlichen Anwen,.'I ? * w e über n diesen Kanal am Quell-Host gemultiplext, um sie dann am Ziel-Host (.&Wer auf die entsprechende Anwendung zu demultiplexen. -I i .Aus praktischer Sicht bedeutet dies lediglich, dass der Headel; den RRP an seine ,:.~~chrichten anhängt, einen Bezeichner enthält, der die Anwendung, an die die ?R&r:hricht gerichtet ist, identifiziert. Wir nennen diesen Bezeichner den Demultiplex.$$fiüscl oder kun Demuxschlüssel des RRP. Auf dem Quell-Host fügt das RRP den 1 mitsprechenden Demuxschlüssel in seinen Header ein. Wird die Nachricht dem RRP .'Tmd dem Ziel-Host zugestellt, enmimmt es seinen Header, prüft den Demuxschlüssel &d dmultiplext die Nachricht zur richtigen Anwendung.
L&&.
.:W I
,
Das RRP ist nicht das einzige Protokoll, das Multiplexen unterstützt. Fast jedes Protokoll benutzt diesen Mechanismus. Das HHP hat z.B. einen eigenea Demuxschlüssel, um festzustellen, welche Nachrichten zum RRP und welche zum MSP befördert werden sollen. Zwischen den Protokollen auch nicht zwischen denen innerhalb einer einzelnen Netzarchitektur - besteht aber keine einheitliche Vereinbarung darüber; woraus genau ein Demuxschlüssel besteht. E i e Protokolle verwenden ein 8-Bit-Feld (was bedeutet, dass sie nur 256 Protokoiie höherer Ebenen unterstützen können), während andere 16- oder 32-Bit-Felder verwenden. Ferner haben einige Protokolle ein einziges Demultiplexfeld in ihrem Header, während andere über mehrere solcher Felder verfugen. Ist nur ein DemuitipWd vorhanden, wird der gleiche Demuxsehlüssel an beiden Enden der Kommunikation benutzt. Werden zwei Felder verwendet, benutzt jedes Ende einen anderen Schlüssel, um das Protokoll (bzw. Anwendungsprogramm) der höheren Ebene zu identifizieren, dem die Nachricht zuzustellen ist.
-
Die ISO war eine der ersten Organisationen, die einen allgemeinen Weg, Computer zu verbinden, formal definiert hat. Die von der ISO definierte OSI-Architektur (Open Systems Znterconnection)ist in Abb. 1.13 dargestellt. Sie spezifiziert die Aufteilung der Nertwerkfunktionalität in sieben Schichten, wobei eines oder mehrere Protokolle die Funktionalität einer bestimmten Schicht implementieren. In diesem Sinn ist die schematische Darstellung in Abb. 1.13 kein Protokollgraph an sich, sondern vielmehr ein Referenzmodell für einen Protokoligraphen. Die ISO hat, meist in Verbindung mit einer weiteren Ssandardisierungsorganisarion, der International TelecommunicationsUnion (ITU)', eine Reihe von Protokoilspezifikationen auf der Grundlage der OSI-Architektur veröffentlicht. Diese Reihe nennt man auch *X Punkts, weil Bezeichnungen wie X.25, X.400, X.500 usw. bür die Protokolle vergeben wurden. Auf diesen Standards basieren verschiedene Netzwerke, darunter das öffentliche X.25-Netz und private Netzwerke wie Tymnet. In der Betrachtung von unten nach oben handhabt die Bitiiberttagungsschicht (PhysicalLayer) die Obemagung eines Bitstroms über e i ~ Verbindungshitung. e Die Sichmngsschicht(Data Link Layer) fasst ~ k h n i t t dieses e Bitstroms zu einem gröBeren Verbund zusammen, den man als Prame b e z e i b . Neawerkadapter sowie Gerätetreiber, die Teil des Betriebssystem eines angeschlossenen KrrotenS e d, implementieren typischerweise die Sicherungsschicht. Dies bedeutet, dass den Hosts nicht der unsuukturierte Bibtrom, sondern Frames zuges$ellt werden. Die Vemrittlungsschicht (Network Laysr) handhabt das Routing zwischen den Knoten eines paketvermittclten Netzwerks. Auf dies& Schicht nennt man die zwischen Knoten ausgetauschte Dateneinheit nicht Frame, sondern Paket, obwohl kein fimhnentaler Unterschied besteht. Die drei unteren Schichten werden in allen Netzknoten 1. Durch eine Untergruppe der ITU für Telekommunikation (I'KJ-T) wurde das ehemalige Comite Consultatif International de Teltgraphique et Teliphonique (CCilT) abgelöst.
7 Anwendung
Darstetlung
+ I + d Sitzung
Transport
Vermittlung
Sicherung
Bitübertragung
.
&X
die Ikhiuon der oben drei Schichten besteht weniger Ekigkeit. Wir
-.~qlringenzur ahmten (siei#ea) Schicht, der A n w a r d ~ s s c k(ApplSuxtim ~~
b Dateitransfer-Ainwendm~interoprken kiimen. Darunter befindet sich die D d k p s t h i ~ h [Prmmtarr'on t LQlrw), die siA mit dem Fotmat der & A n - Pm$mm ausgpawhtecn Daqn b e d i i l i i s beispieInweise, ob eine Gaazdd 1 5, ,- 32 d e r 64 Bit lang ist, das werthöchste Bit -SC oder zulern ühmagen wird, sdier wie ein V i h m fo-rt werden muss. SehMlich bietet die S&umgs. d i t (&ssi~n Layw) einen Nanenwauq der für die Verknüphng pomazieii tamxscbiedlicher Trmportstrbme, die Ted e k einzelnen Anwendung sind, benutzt wird.Dies kam 2.B. die Handhabung eines Audio- und Videostroms sein, die in einer Telekonferenzanwdung kombiniert werden müssen.
TCP
Abb 1.14: Darstellung der lnternetArchitektur als Protokollgraph
UDP
Abb 1.lS: Alternative Betrachtung der Internet-Architektur
1.3.3 Internat-Architektur Die ht~met-kdnit* die man nach ihren beiden wichrigsten Pra~okollenauch TCP/IP-Wnennt, ist in Abb. 1.14 wiedeqegeben. Eine alternative D d laulg erscheint in Abb. 1.15. Die Imernet-Ilrchiteknir entstand aus Bt-a &E dem älteren pak-lten Netzwerk ARPANET. ARPANET und das Interna wurden von der Advanced Research Projects Agmq (ARPA), irn Rahmen von Forschungspmjehn des W V e r t e i d i ~ e ~ u m gefördert. s Sowohl das ARPANET als auch das intemet gab es schon vor der O S I - A r c h i h sodass sie einen mecbidende~M u s s auf das OSI-Refmemmodeli hatten. Die sieben Schichten des OSI-Modelis lassen sich mit einem gewissen M& an V o r s t h k r a P t auf die kernet-Arehikktut-ni sie umfasst aber nur vier S c W t m .Auf cler untersten E h e gibt es &khe Netaprutokdt?, die als NETi, M;ET2 W. b e z d m t d e n . In der P d s werden k Pmwkolie dadueh impkd e r t , dass tnan i-bdww (z.3. einen Netz8dapter) und Sahwate (z.B. einen G o r m i b e i für den Netltadapter) kombiniert. Man findet a d d h w W& ikic spielsweise Ethemet- oder FDDI-Protokolie (Fiber Dimibuteci Data Interface). (Diese Protokolie khhien ihreweits mehrere Unmhi.ehten ttdmm, die lmemetk h k " t u r gibt fiir sie aber nichts uor;) Auf des zwSchicht gibt es niit das Zt)km& Pmrocol (W). Dieses Prßtokoil u n m t t t den Z n s . ~ m m d w metrrettr lWaecb01m einem e b i i l o g i h Netmerbund (Inmerwork). Die driw Ehi&t d a s s t das HCP ( % d s f w C o n t d PI-& urd das W B (User Dt~grm Pro&). Diese b e a b wichtigen Pro~ekoUcsteilen akemadve logische Kangle zti b a w e n d u n g s p w e bereit: TCP bietet einen zatterideigen MdStsomWI 4 WW'&en wmiverlä&gen DatagranwnXand (Da3agrm ist ldkghh ein a n d a r f k *Nachrichtu). h fnternet-Slang nennt man T 0 tiad IJDP auch Ettde-m-Ende*FmtokoJle, man kann sie a k auch als *Trangpartprotukolleu bezeichnen. Oberhalb der Trarqmmckclit iaiden verschiedene Anwendungsprotokolle, z.B. Fi'P, T'FI'P (Trivial File Transport Pmt<~:ol), Telnet ( R e m Lolgia) und S M T P (Simple Mai1 Tmfer Protocol für E-Mail). Sie ermögEichen die Interoperation
C
~.-0hWghdcrWd~*~turtaHnsdaPW*!~ Ir CEesn~dePMasa~pbder A.t&it&tu~ wider. Sie hsq&k B -als eine geami~~aale &&& den
.&a die i?iw&alle &P
We reject kings, presidents, and voting. We believe in rough Dave Clark Consensus and running code.
b V m diesen drei Attributen der hrterne-A.rchibb ist die Philosophie des Sanduhr-Desiws wichtig genqg, un sie nochmal zu betonen. Die schlanke Taille der Sandt-4~stellt ehe miniimale, sorgfitig g d t e Menge glubder F&bi&eitai dar, die es sowohl höhezschichtigen Aawendullgenen als Puch n i e d d & * e n Kommuaikationstedinologienerlaubt, nebendader zu existieren, Fähigkeitq gemeinsam zu nutzen und sich raseh w ~ t ~ e l Das n Modell , mit der schlanken Taille ist von entscheidenderBedeutung rEär die F&highit des Intemet, sich schnell an neue Benutzerfordening~nund sich ändernde Technologien anzupassen.
1.4 Implementierungvon NetzsoftWare Neuatchitekturen und Protokollspezifikationen sind wichtig, aber auch ein guter Entwurf reicht nicht aus, um den phänomenalen Erfolg des kernet zu erklären: Die AnaaM der an das Internet angeschlossenen Compmr hat sich seit 1981 jedes Jahr verdoppelt und nähen sich heute etwa 200 Millionen. Schätzungsweise betlumn weit über 600 Millionen Menschen das Internet. Man nimmt an, dass die Anzahl der über das Intwet iibertragetien Bits die entsprechende Zahl beim konventionellen 'Icldometz etwa SOit dem Jahre 2001 übertrifft, Was erklärt den Erfolg b Iaternet? Sicherlich gibt es eick Faktoren, die &zu beitragen (eMschii&iich einer'guten Architektur). Was dem Integnet zu diesem nie dqhesenen Erfolg verholfen hat, ist aber die Tatsache, dass ein Grofdteil seiner Fmktionalität von Sokware bereitgestellt wird, die auf jedem Allzwecicesmputier lädt. Das bedeutet, dass jederzeir mit cineai »gerbgern Prograderaufwand* neue Funktioaialität hinzugefügt werden kann. Aus dieslern E m d haben sich neue Anwendungen und Dienste, wie elekrronischer Handel, Videokonferenz und Interne-TcMnie, um nur einige zu namen, in derart raschem Tempo entwickelt. Ein damit zusammenhängender Faktor ist die enorme Steigerung der R e c W i stug von P e r s o n a b m p b . ,Obwohl Rechnemetze im Piinzfp immer in der Lage waren, diese Datenart, 2.B. digitale Sprachmuster; digitaliderte Bilder usw., zu Wörderti, war dieses Potenzial nicht von besonderem Interesso, ab die Coinputeq die Daten sendeten und empfingen, m langsam W e n , um mit d a Idormauonen etwas anfangen m kQnnen. Praktisch alle heptigen Computer sind in der Lsy:e, digitslisierte Sprache in voiler Geschwindigkeit wiederzugebeh sRd in einer Geschwindigkeit uad Adtisung daizustellen, die fiir ein& (bei weitem aber nicht . alle) Anweildtlllgm nfttzlich sind. Die heutigen Netzwerke haben begonnen, Multimedia zu unterstützen, und diese Unterstützung vvkd sich ~lgtütlichV e r b a , wenn die Rechneihardware noch schneller wird. Wir schlussfolgern daraus, dass es unabdingbar ist zu wissen, wie NetzwerksoftWare richtig hplemetitiert: wird) eni Rechnerne lroU zu verstehen. Vor diesem Hintergrund werden in diesem Abschnitt zuerst einige hakte vorgestellt, die sich
Dienste des Pmtokoib l s r niedrigeren werden in diesem Abschnitt a k auch ein
wichtige Unmscbicde behandelt.
b #Pis und Sockets
dem Amdrwk
u
m Wetxw&rkanBe
Betrkkptem sein eigenes Netzwerk-API definieren kann {.W= er FaU ist), bat die Unterstutwng higts weniger dieser APIs im
müssen ihre Datdsystem-, Prruaess- uiid Grafik-Iasrfaoes nicht unbe-
und Obiekte auf die v o m Protokoll defin&rten abstrakten ein interface gut definiert, W ist es möglich, seine Syntax m
-
Solket-Interface ist wie konnte ea andecs sein
-
32
1
1 Grundlagen
Anwendungsprozess sich mit dem Netzwerk verbindet. Das Interface definiert Operationen zum Erstellen eines Sockets, Anbinden des Sockets an das Netzwerk, SendenlEmpfangen von Nachrichten über den Socket und Schlief3en des Sockets. Der Einfachheit halber beschränken wir uns hier auf die Nutzung von Sockets mit TCP. Im ersten Schritt wird mit folgender Operation ein Socket erzeugt: int socket(int domain, int type, int protocol)
Diese Operation nimmt drei Argumente an, weil das Socket-Interface für die allgemeine Nutzung ausgelegt wurde, um beliebige Protokoll-Stacks zu unterstützen. Das Argument domain spezifiziert die zu verwendende Protokollfamilie. PF-INET wird benutzt, um die Internet-Familie zu bezeichnen; PF-UNIX ist eine Alternative, mit der lokale Prozesskommunikation unter Unix bezeichnet wird. Das Argument type zeigt die Semantik der Kommunikation an. SOCKSTREAM wird benutzt, um einen Byte-Strom zu bezeichnen. SOCK-DGRAM ist eine Alternative, die einen nachrichtenorientierten Dienst, 2.B. den vom UDP bereitgestellten, bezeichnet. Das Argument protocol identifiziert das benutzte Protokoll. In unserem Fall lautet dieses Argument UNSPEC, weil die Kombination aus PF-INET und SOCKSTREAM bereits eindeutig identifiziert, dass wir TCP benutzen. Schließlich ist der Rückgabewert von socket ein »Handle«für den neu erstellten Socket, also ein Bezeichnet; mit dem wir künftig auf den Socket verweisen können. Er steht als Argument für nachfolgende Operationen auf diesem Socket zur Verfügung. Der nächste Schritt hängt davon ab, ob wir es mit einem Client oder Server zu tun haben. Bei einem Server führt der Anwendungsprozess ein passwes Offnen durch. Das heißt, der Server teilt mit, dass er für die Annahme von verbinJungen bereit ist, baut aber keine Verbindung auf. Hierfür ruft der Server die folgenden drei Operationen auf: int bind(int socket, stnict sockaddr *address, int addr-len) * int listen(int socket, int backlog) int accept(int socket, stnict sockaddr *address, int *addr-len)
Wie der Name andeutet, bindet die Operation bind den neu erstellten Socket (socket) an die angegebene Adresse (address). Dies ist die Netzwerkadresse des lokalen Teilnehmers, also des Servers. Man beachte, dass address bei Benutzung der IP-Schicht eine Datenstruktur ist, die sowohl die IP-Adresse des Servers als auch eine TCP-Portnummer beinhaltet. (Wie in Kapitel 5 beschrieben wird, werden Ports benutzt, um Prozesse indirekt zu identifizieren. Sie sind mit den in Abschnitt 1.3.1 beschriebenen Demuxschlüsseln vergleichba) Die Portnummer ist normalerweise eine spezifische, für den anzubietenden Dienst wohlbekannte Nummer. Webserver nehmen beispielsweise Verbindungen über Port 80 an. Die Operation listen definiert, wie viele Verbindungen am bezeichneten Socket (socket) anstehen können. Die Operation accept führt das passive Öffnen aus. Hierbei handelt es sich um eine blockierende Operation, die erst zurückkehrt, wenn ein
1
I
~ian dct ir,wduqirPr-
ein h
s
~
b
~
m eine Verbindung auf-baut wurde, rufen die hwendungsprozessedie beiden Operationen auf, um Daten zu senden und zu empfangea m~nt mimt,chgr *mamgts, int rnsg-ieti, iniflagar
und im angegebenen Puffer (buffer) ablegt. Beide Operationen
Anmandungsbelspld hce benutzt, um Nachrichten über eine TCP-Verbindung zu senden. benutzt nach weitem merkspezi6iAe Unk-UWes, die wir im eibusig erklären. Unsere Anwendq rnstattet es ekem Eknub;cer Text einzugeben und an ein& anderen Benutzer an einem ande%&,
welches wiederum als Voriilafer von Chat-Rooms im World Wide Web
.
Schritt wird die Datenstruktur (sin)der Adresse Iliirialisiert, die vom Socket-Interface erwartet wird. Diese Datenmuktur spezifiziert, dass wir den Socket für Verbindungen zum Interna (AF-INET) verwenden werden. In unserem Beispiel benutzen wir TCP-Port 5432 als Server-Port. Dieser Port wutde noch keinem anderen Interne-Dienst zugewiesen. Im letzten Schritt beim Einrichten der Verbindung werden socket und connect aufgerufen. Wenn die Operation connect zurückgekehrt, ist die Vezbindung aufgebaut und das Client-Pr-amm tritt in seine Hauptschleife ein, in der Text aus einer Standardeingabe gelesen und über den Socket gesendet wird. # i n c l ude estdio. h> #i ncl ude *sys/types h> i i n c l ude csys/socket h> # incl ude *netinet/i n. h> # incl ude gnetdb. h* i d e f ine SERVER-PORT 5432 idefine MX-LINE 256
.
.
int main(int argc, char
*
argvU)
I FILE *fp; struct hostent *hp; s t r u c t sockaddr-i n s i n; char *host; char buf [MAX_LINE] ; i n t s; i n t len;
i f (argc==2) { host = argv [l] ;
1 else ( f p r i n t f (stderr, "usage: simplex-tal k host\nn) ; exi t (1) ;
1
/*
Übersetze Host-Name i n IP-Adresse des Partners */ hp = gethostbynan#(host); if(IhP) ( f p r i n t f (stderr. 'simplex-tal k: unknown host: %s\nn, host) ; exi t (1) ;
1
/*
I n i t i a l i s i e r e die Datenstruktur fiir d i e Adresse */ bzero((char *)&sinn sizeof(sin)); sin.sin-fami 1y = AF-INh; bcopy(hp->h-addr, (char * ) b i n . s i n-addr, hp->hl ength) ; sin.singort = htons(SERVER-PORT) ;
sendls, buf, len, 0 ) ;
ist ebenso einfach. Er initialisitm zuerst die D a t e d w fnr die
blnclude cstdio.h>
bincl ude *neti net/in. hv Nncl ude cnetdb. h>
-
?&ifine SERVER-PORT 5432 M e f i ne MAX-PENDING 5
'
-
--.-. . - ,.:.---. .
. -., .
* P-
-..;r U, .
-
-.~
. . i ~ L . x . ti~i:. -
3J5
.
.-
1
1
Grundlagen
...
-
-
/*
I n i t i a l i s i e r e Datenstruktur f ü r die Adresse */ bzero((char *)&sin, sizeof(sin)); ,: - ' - . , ' ..,. sin.sin-family = AF-INET; , _ .. s i n. s i n-addr . s-addr = INADDR-ANY; sin. s i n-port = htons(SERVER-PORT) ;
.
Richte passives Öffnen e i n */ i f ((s = socket (PF-INET. SOCK-STREAM. perror("simp1ex-tal k: socket"); exi t (1) ;
2
. -' ,
-
i
. L
...
V /
/*
1 i f ((bind(s, ( s t r u c t sockaddr *)&sin, perror("simp1ex-tal k: bind") ; exi t (1) ;
0)) < 0) { ,_.
.
. , ., . sizeofisin))) :0) {
1 1isten (s, MAX-PENDING) ;
/* Warte auf Verbindung, dann empfange und drucke Text */ while(1) { i f ((new-s = accept(s, ( s t r u c t sockaddr *)&sin, &len)) < 0) ( -. I perror("simp1 ex-tal k: accept ") ; I exi t (1) ; 8
A
.
I
1 whi 1e (1 en = recv(new-s. fputs(buf. stdout) ; 1ose (new-s) ;
buf, s i zeof (buf)
.
I
0))
1.4.3 Aspekte der Protokollimplementierung
. ,;J' Y*' +:
L,
Wie eingangs in diesem Abschnitt erwähnt, kann man die Art, wie Anwendungsprogramme mit dem zu Grunde liegenden Netzwerk interagieren, mit der Interaktion der Protokolle auf höherer und niedrigerer Ebene vergleichen. TCP benötigt beispielsweise ein Interface, um abgehende Nachrichten an IP zu senden. IP muss wiederum in der Lage sein, TCP ankommende Nachrichten zuzusfellen. Das ist das in Abschnitt 1.3.1 beschriebene Dienst-Interface. Da wir bereits über ein Netzwerk-API (z.B. Sockets) verfügen, sind wir möglicherweise versucht, das gleiche Interface zwischen jedem Protokolipaar im Protokoll-Stack zu benutzen. Das wäre sicherlich eine Möglichkeit, wird aber in der Praxis nicht so gehandhabt. Das liegt daran, dass das Socket-Interface einige Ineffizienzen aufweist, die von den Protokoll-implementierenden Entwicklern nicht toleriert werden. Anwendungsprogrammierern sind sie ganz bequem, weil sie ihre Programmieraufgabe vereinfachen und die Ineffizienzen jeweils nur einmal toleriert werden müssen. Die Entwickler, die die entsprechenden Protokolle implementieren, sind demgegenüber stark an der Performance interessiert und müssen beriicksichti-
& sidr
*iai
Abb. 1.16: Mögliche Prozessmodelle; (a) Prozess-pro-Protokoll, (b) Prozess-pro-Nachricht
P&d-
-
; i :
r. r. r
zess/Protokoll-Paar abgibt, hängt davon ab, wie das Betriebssystem des Hosts die prozessiiberpeifende Kommunikation unterstützt. Meist ist ein einfacher Mechanismus vorhandea, mit dem sich eine Nachricht in die Warteschiange eines Prozesses einreihen lässt. Wichtig ist dabei, dass auf jeder Ebene des Protokollgraphen,ein Prozesswechsel - eine relativ zeita-dige Operatidn edorderkh ist. Die zweite Möglichkeit, die wir Prozess-pro-Nachricht-Modell nennen, behandelt jedes Protokoll als statischen Code und verknüpft die Prozesse mit den Nachrichten. Das hegt, wenn eine Nachricht vom Netzwerk ankommt, teilt das Betriebssystem einem Prozess die Zuständigkeit für die Nachricht auf dem Weg nach oben im Protokollgraphen zu. Auf jeder Ebene wird die Prozedur aufgerufen, die das betreffende Protpkoll implementiert, bis die letzte Ebene erreicht ist. Bei abgehenden Nachrichten ruft der Prozess der Anwendung die nötigen Prozeduren auf, bis die Nachricht zugestellt wurde. In beiden Richtungen wird der ProtokoUgraph in einer Folge von Prozeduraufrufen durchschritten. Das Prozess-pro-ProtokoU-Modellist vom Konzept her leichter verständlich: .Ich implementiere mein Protokoll in meinem Prozess und du implementierst dein Protokoll in deinem Prozess*. Demgegenüber ist das Prozess-pro-Nachricht-Modell aus einem einfachen G m d generell effizienter: Auf den meisten Computern ist ein Prozeduraufruf um eine Größenordnung effizienter als ein Prozesswechml. Beim ersten Modell ist auf jeder Ebene ein aufwändiger Prozesswechsel nötig, wahrend beim zweiten Made11 nur ein Prozeduraufruf pro Ebene erforderlich ist. Nun stelle man sich die Beziehung zwischen dem oben definierten Dienst-hterface und dem Prozesslmodell vor. Bei einer abgehenden Nachricht ruft das ~ r o t o k d der höheren Ebene eine send-Operation im Protokoll der niedrigeren Ebene auf. Da das höhere Protokoll beim Aufruf von send über die Nachricht verfügt, lässt sich diese Operation leicht als Prozeduraufruf implementieren. Ein Prozesswechsel ist nicht erforderlich. Bei ankommenden Nachrichten ruft das Protokoll der höheren Ebene die receive-Operation für das niedrigere Protokoll auf und muss dann warten, bis irgendwann eine Nachricht ankommt. Dadurch ist ein Prozesswechsel unabdingbar. Mit anderen Worten: Der laufende Prozess des höheren Protokolls empfängt eine Nachricht von dem Prozess, der irn Protokoll der tieferen Ebene läuft. Das ist kein Problem, wenn nur der Anwendungsprozess Nachrichten vom Kommynikationssubsystem empfängt. Es ist ja das richtige Interface für das NetzwerkAPI, weil Anwendungsprogramme ohnehin eine prozessorientierte Sicht der Dinge besitzen. Es hat aber g r d e Auswirkungen auf die wstung, wenn eine solche Prozessumschaltung auf jeder Ebene des Protokoll-Stackserfolgt. Aus diesem Grund wird in den meisten Protokollimplementkrungendie receivedurch eine ddiver-Operation ersetzt. Das heiSt, das Protokoll der tieferen Ebene führt einen Upcall aus, ruft also eine Prozedur weiter oben im Protokoll-Stack auf, um die Nachricht dem höheren Protokoll zwsteUen. Abb. 1.17 zeigt das daraus resultierende Interface zwischen zwei benachbarten Protokollen, in diesem Fall TGP und IP. Im allgemeinen bewegen sich Nachrichten im Protokoll-Stack nach unten durch eine Reihe von send-Operationen und nach oben durch eine Reihe von MiverOperationen.
-
7
sane htwhreiat wie bei PP-ren, die meistem Kominwnikatiomubdie für alie Protokolle inz Protokollgraphen
&eren
allgemeine, kopienfreie Nachrichtenabsrrakdon zu definieren.
.
1.18: Kapbmankotnmmdwfüachrichkn mischen den PuQlWn der Anmmdung und des mzwerks
Abb. 1.19:
A
&
-
Bei- Mer Nachrichtendatenmuktur
Bis zu diesem P& haben wir uns vorwiegend auf die ~ t i o n a l e nAspekte eines Netmerb koazentriert, Allerdings wird wie VOXI jedem Coinputersystem auch von R e c h n m e n mvartet9dass sie hohe Leistung erbringen, weil die Effektivität von ü b Qas Netz verteilten Berechmgen oft direkt vom det Effizienz abhängt, mit der das Netzwerk Datei~überträgt, Während das in Programmierkreisen althergebrachte Sprichwort, -Mach es zuerst richtig und da^ &U.r<, auf viele Uingebungen zu*%, ist es im Netzwerkhreich n o d k s e notwendig, von vornhepin *mit Blick auf Leistung zu entvmckehu. Man muss dakm unbedingt die verschiedenen Faktoren kennen, die sich auf die Netzleiamg auswirken.
1.5.1 Bandbreite und Latenz Die Leistuag eines Netzwerks wird auf zwei grundlegende Arten gemessen: Bmdbr& [auch Durchsatz genannt) und Latenz (auch als Verzögermg bezeichnet). Die Bandbreite eines Netzwerks wird durch die Anzahl von Bits angegeben, die innerhalb eines btimmten Zeitraums im Netzwerk übertragen werden können. Beispielsweise kann ein Netzwerk über ehe Bandbreite von 10 MiIhonen Ws (Mbids) verfügen, was bedeutet, d a s es 10 Millionen Bits pro hkunde übertragen kam. Manchmal ist es nützlich, sich Bandbreite in bezug darauf vonusteUen, wie lange es daucrt, ein Datenbit zu übertragen. in ein- 19-Mbitls-Netzwerk sbd das beispielsweise 41 IvUmekundie (P),
Bandbreite und Du Bandbreite und Durchsatz sind zwei der verwirrendsten Themen im Netzwerkbereich. Wir können versuchen, beide Begriffe genau zu definieren. Wichtig i s t zu wissen, wie andere sie verwenden, und dass sie oft als Synonyme gebraucht werden. Bandbreite ist praktisch ein Mall der Breite eines Frequenzbands. Eine lefonleituna in S~rachaualitätunterstützt z.B. einen Freauenzbandbereich ~ d 300 n bis 3300 Hz. Man sagt sie hat eine B 3.000 Hz. Wird das Wort DBandbreiteK in einer Situation benutzt, in der in Hertz gemessen wird, bezieht es sich wahrscheinlich auf den unterstützten Signalbereich.
-
W
Latenz entspricht als zweites L e ' i der Dauer, bis eme Nachricht von einem Ende eines Netzwerks zum anderen g e h F k c bei der Bandbreite können wir uns auf die Latenz e h r einzeinen Leitu4g oder eines Emde*m-*Kd beziehen.) Latenz wird strikt in Zeit gemessen. Ein transkcm-s N e kann beispielsweise eine Latenz von 24 IMi&&mden (ms) aufweisen. Das heißt, eine Nachricht braucht von einem Emde Nwdamerikas znm anderen 24 ms. in vielen Situationen geniigt es uns aber nicht, die Latenzzeit in einer Rickung za ennittein. Vielmehr möchten wir zu wisserr, wie lange es Quert, um eine Nachricht von einem Ende eines Netzwerks zum anderen und zurück zu senden. Man nennt dies die Rormd-pZeit (Round-TripT i , R7T) des Netzwerks. Die Latenz beinhaltet im Grunde drei Komponentea Erstens die endliche Ausbreitungsgeschwindigkeit desLichts. Die Verzögerung entsaeht, weil nichts, auch kein Bit in einer E i sich schneiler ab mit Lichtgeschwindigkeitbeweg& kann. Kennt man die Entfernung zwischen zwei Punkten, kann man die durch die Lichtgeschwdigkeit bedingte Venögenmg berechnen. Man soiite dabei allerdings vorsichtig bin, weil sieh Licht In d e d e n c n Medien mit unt-icher Geschwindigkeit ausbreitet, zB. 3,O x 108 m/s im Vakuum, 2 3 x 108 m/s in eMem Kabel und 2,O X 108 d s in einem Lichtwelldeiter. Zweitms dauert ee eine gewisse Zeit, um eine Dateaeinheit m übertragen. D b ist eine Funktion der Netzbandbreite und der G& des Pakets, in dem die Daten befordert werden. Dritans kann es im Netz zu Verzögerungen auf Grund von Wartezeiten kommen, weil Switche die Pakete irn Allgemeinen eine gewisse Zeit lang speichern müssen, bevor sie sie auf einer abgehenden Leitung weitersenden (siehe Abschnitt 1.2.2). Wir können die gesamte Latenz also wie folgt definieren: Latenz = Ausbreihtngsvetzöge~ng+ bftragungsveI2~nJng+ Wartezeit AkisbdiungsverrOgehing =EntfemmgUM-
üb~ftragu-ng
=
wobei Entfernung die Lainge der Leitung, über die Daten gesendet werden, Uchtgeschwindigkeit die effektive Geschwindigkeit des Lichts in dieser Leitung, und Bandbreite die Bandbreite ist, in der das Paket übertragen wird. Enthält die Nachricht nur ein Bit und sprechen wir uber eine einzeine Leitung (im Gegensatz zum gesamten Netzwerk), sind die Begriffe Übei.brigungsverz~ngund Wartezeit nicht relevant, und Latenz entspricht nur der Ausbreitmgsver-. Bandbreite und Latenz zusammen definieren die Leistungsmerkmale einer bestimmten Leiturig oder d e s Kanals. Ihre relative Bedeutung hängt aber von der Anwendung ab. Bei einigen Anwendungen wird die Latenz von der Bandbreite beherrscht. Ein Client, der ehe 1-Byte-Nachricht an einen Server senda und eine ebensolche Nachricht empfangt, ist Latenz-bestimmt. Wenn bei der Vorbereitung der Antwort keine umfangreiche Berechnung erforderlich ist, ergibt sich eine andere Leistung der Anwendung, je nachdem, ob auf einem transkontinentalen Kanal mit einer RTT von 100 ms d e r einem Kanal mit e h 1-ms-Rn, der sich nnr über einen Raum erstreckt, übertragen wird. Ob der Kanal über 1oder 100 Mbids ver-
relative L e r n chzwte.1-
man nicht mischen einem 1,s-Mbitis- wnrS ea kann, Bai ein&m 2-KB-Objekt (&, einer
Leitungs1 MB
1 MB
1,5 W s 10 Mbiis 1,5Mbiis 10Mbitls
Mbit,s
1,s 10 Mbit/~
Wungsgwhwindii
Linien-
-----
------
------
44
1
1 Grundlagen
Objekt (2.B. einem digitalen Bild) bewirkt die RTT keinen Unterschied; hier wird die Leistung bei allen RTT-Werten nur von der Leitungsgeschwindigkeitbeeinflusst. Man beachte, dass wir die Begriffe Latenz und Verzögerung M gesamten Buch allgemein verwenden, d.h. wir bezeichnen damit, wie lange es dauert, um eine bestimmte Funktion, 2.B. die Übersendung einer Nachricht oder eines Objekts, auszuführen. Wenn wir uns auf eine bestimmte Zeit beziehen, die es dauert, bissein Signal von einem Ende einer Leitung zum anderen gelangt, verwenden wir den Begriff Ausbreitungsverzögerung. Wir verdeutlichen im jeweiligen Zusammenhang auch, ob wir uns auf Einweglatenz oder Roundtrip-Zeit beziehen. Nebenbei bemerkt, werden Computer so schnell, d a ~ sman, wenn man sie an Netzwerke anschlief3t, zumindest bildhaft in Instruktionen pro Kilometer denken kann. Man stelle sich vor, was passiert, wenn ein Computer, der 200 Millionen Instruktionen pro Sekunde ausführt, eine Nachricht auf einen Kanal mit einer RTT von 100 ms abschickt. (Zur Vereinfachung der Rechenaufgabe gehe man davon aus, dass die Nachricht eine Entfernung von 5.000 Kilometer abdeckt.) Wartet dieser Computer 100 ms lang untätig auf eine Antwort, hat er die Gelegenheit verpasst, weitere 20 Millionen Instruktionen bzw. 4.000 Instruktionen pro Kilometer ausführen zu können. Angesichts einer solchen Verschwendung muss sich die Überquerung des Netzwerks auf jeden Fall lohnen.
1S.2 Verzögerung-Bandbreite-Produkt Es ist auch hilfreich, das so genannte Verzögerung-Bandbreite-Produktzu betrachten. Wenn wir uns einen Kanal zwischen zwei Prozessen als hohle Pipeline (siehe Abb. 1.22) vorstellen, bei der die Latenz der Länge und die Bandbreite dem Durchmesser entspricht, ergibt das Verzögerung-Bandbreite-Produkt das Volumen der Pipeline, d.h. die Anzahl der enthaltenen Bits. Anders ausgedrückt: Wenn die Latenz der Länge entspricht, kann man anhand der Breite jedes Bits (ebenfalls in Zeit gemessen) berechnen, wie viele Bits in die Pipeline passen. Ein transkontinentaler Kanal mit einer Einweglatenz von 50 ms und einer Bandbreite von 45 Mbids nimmt ein Datenvolumen von 5 0 x 1 0 - ~ s x 4 5 1x0 6 ~ i t l s = 2,25 X 1o6 Bit
bzw. Ca. 280 KB auf. Das bedeutet, das6 der Kanal (die Pipeline) in diesem Beispiel so viele Bytes aufnehmen kann wie in den Speicher eines Personalcomputers aus dem Anfang der achtziger Jahre passen. Es ist wichtig, das Verzögerung-Bandbreite-Produkt zu kennen, wenn man Hochleistungsnetze entwickelt, weil es angibt, wie viele Bits der Sender übertragen
-
Bandbreite
VerzOgening
C
Abh 1.22: Netzwerk als Pipeline
aufdas b T L ' - S d o be&iehwp wem Zirrir dukx a m , o b h u f IⅇrlPf ~ V e ~ e ~ B a n d b t d t e - P r o d u k tEinweglatenz :a d e r RTT j d s aus dem Zusammdanq h e w o ~
,&t
I
Das Gute daran ist, dass wir oft mit einer schnellen Überxhlagsrechnung zufrieden sind. In diesem Fall ist es absolut angemessen, dass ein Byte 10 Bits enthält (sodass die Konvertierung awixhen Bits und Bytes einfacher ist) und dass 106eigentlich 220 entspricht (sodass es einfacher ist, zwischen den beiden Definitionen von Mega zu unterschefden). Der erste Punkt führt einen Fehler von 20% und der zweite einen von nur 5% ein. Um Ihre Rechenarbeit zu erleichtern, sei festgestellt, dass 100 ms eine ange messene Zahl für eine Roundtrip-Zeit ist, zumindest wenn es sich bei dem fraglichen Land um die USA handelt. Demgegenüber @t1 ms eine gute Zahl für eine RTT i n einem LAN. Im ersten Fall erhöhen wir die durch Lichtgeschwindigkeit in Glasfaser implizierte RoundtripZeit von 48 ms auf 100 ms, weil es wie gesagt weitere Verzögerungsqueilen gibt, z.0. die Verarbeitungszeit in den Switchen des Netzwerks. Sie konnen auch sicher sein, dass der von der Glasfaser zwischen zwei Punkten eingeschlagene Pfad keine 1 . ". gerade Linie darstdlt: ' .
-
-
/
Dia in den 4eutien Netzwerken vdügbaren Bandbreiten steigen in atemberaubcader Geschwindigkeit, und es hascht u n g e b d a e r Qwitni~mu~ darfibeL;.h sich dic Ncrzbmdbrd laufend v e r k ~ R. h -V P J d ~ d q sich mit dem Gedsnfrrta m behsw was dun Ede &eser lSn#xwiw steh ~dei; anders ausgedNckc, welche Awwii.kamg eine umndfkh BmdBtEire auf das Netzdesigbhat,
I
HeebleiRungniaze nibrcli zmiikU09 zu eiou 'icamridrcn da & Anw~bigren 3hdbde. In S d s f ~ ~ hat ihre h h m dt c u n g auf unsere Vorstclluiyy von N m k a aber mit ~ ~ W Bzu B mwdm &i~ im.Zu$e steigender Bandbreiten hdm~ Um hi1~~ aus tStar k . 4 Mit anderen Trek zu zitieren: nDu kamst & Wo* »Hohe C2a&wia.di&eit* bednsttt nichr; da& slch die Ubm in $icÜFhern Umfang wie dk Etac;gdbr&e v e r b t w a Die.tmmh-. ElT &W IX2biu's-
~~
um die Ik%imtung&&$ mIged8r ~
~
t
2
m
a
u
~
~
~
k
n
i
a
m
I - M b 1 u d ~ ~h k. IETC,voa100 ms zu iiIxrmga.'aI - W d s - M k haLcrt bei j d 80 ~ d t r i . -end p ~ die gleich Dazci ai&t die l%emapq det einmal annähernd 1 RTT der 1-Cb.d~-bi-, & eh V m m % d r e i t e Produkt von 12,s MB bat, iWtt Aus Abb. 1.23 wh6 der Unterschkd moi~headen b e i i n Netzwerken deutkh. Die 1-M3-Datei sieht wie ein Datmmom aus, der &'csin I-hfl!iids-~etkwtipk
l-Ibm-ha ilk
&I
Abb, 133: Verhältnis zwischen Bandbreite und Latenz; bei einer 1MB-Datei (a) die l Mbitls-Leitung 80 mit Daten getüllten Pipelines
(b)die libitls-ieitung einer zu einem 1112 gemten
IICWs-N-J; den.Awc&ia zu vtrdm&;bea, m l i e man sich m e r k das ist, was ein 1-KB-Paketfär
&W
b d i e d e s 'LWjsEBetl1 a d 2 IRnrr klarreine
von iOB%. &4gib$1 behamzhvnrm &ht
*tz
de D w h 2 e , madern die
m ~ m d - m s f a r ~
M
l?me&Wt säifht avr die Eltxnenw der an frilhemt%eliecrkl&tm Latsnz, sonclern auch i+he z ~ Zeie fur~die Anfrage e d e r den Rm&s kmirdtez. M &enr~hen.stellen wir diege~Verhamis als .J'
\
TransferZeit = R l l + 11BandbreiteX Transfeffiroße
Man betrachte z.B. einen Fall, in dem ein Benutzer eine 1-MB-Datei über ein 1-Gbids-Netzwerk mit einer Roundtrip-Zeit von 100 ms abrufen möchte. TransferZeit beinhaltet die übertragungszeit für 1MB (111Gbids X 1MB = 8 ms) und die 100-ms-RTT, also eine Transferzeit von insgesamt 108 ms. Das bedeutet, dass der effektive Durchsatz 1 MW108 ms = 74,1 M b i i s
und nicht 1Gbids beträgt. Selbstverständlich verbessert sich der effektive Durchsatz bei Obertragung einer größeren Datenmenge. im Grenzfall führt dann eine unendlich große Transfergröße dazu, dass der effektive Durchsatz gegen die Netzbandbreite konvergiert. Muss man andererseits mehr als 1RTT aufwenden, um beispielsweise fehlende Pakete erneut zu übertragen, verschlechtert man den effektiven Durchsatz jeglichen Transfers mit endlicher Größe, was sich am deutlichsten bei kleinen Transfers bemerkbar macht.
1.JA Leistungsanforderungenvon Anwendungen In diesem Abschnitt wurde Leistung bisher nur aus Sicht des Netzwerks betrachtet, d.h. was eine bestimmte Verbindungsleitung oder ein Kanal unterstützen kann. Dabei wurde stillschweigend davon ausgegangen, dass die Anwendungsprogramme einfache Bedürfnisse haben - sie möchten soviel Bandbreite in Anspruch nehmen, wie das Netzwerk bereitstellen kann. Dies ist bei dem oben erwähnten digitalen Bibliotheksprogramm, das ein 25-MB-Bild abruft, sicherlich richtig. Je mehr Bandbreite verfügbar ist, um so schneller kann das Programm das Bild für den Benutzer ausgeben. Einige Anwendungen sind demgegenüber in der Lage, eine obere Grenze der von ihnen benötigten Bandbreite anzugeben. Videoanwendungen sind dafür ein gutes Beispiel. Angenommen, Sie möchten ein Bild übertragen, das ein Viertel der Größe eines üblichen Fernsehbilds misst, d.h. eine Aufiösung von 352 mal 240 Pixel besitzt. Wird jedes Pixel mit 24 Datenbits dargestellt, wie dies bei einer Farbtiefe von 24 Bit der Fall ist, hätte jeder Frame eine Gröf3e von (352 X 240 X 24 Bit) / 8 = 247,s Kilobyte (KB). Eine Videoanwendung, die 30 Frames pro Sekunde übertragen soll, erfordert also eine Durchsatzrate von 75 Mbids. Die Fähigkeit des Netzwerks, noch mehr Bandbreite bereitzustellen, ist für eine solche Anwendung nicht von Belang, weil sie innerhalb eines bestimniten Zeitraums eben nur eine gewisse Datenmenge übertragen muss. Leider ist die allgemeine Situation nicht ganz so einfach wie bei diesem Beispiel. Aufgrund des geringen Unterschieds zwischen zwei aufeinander folgenden Frames in ist es möglich, das Video zu komprimieren. Beispielsweise die Unterschiede zwischen aufeinander folgenden Frames übertragen werden. Dieses komprimierte =deo fließt nicht in einer konstanten Rate, sondern schwankt M Lauf der Zeit entsprechend verschiedener Faktoren, z.B. Akti-
einzelnen Verbindungsleitung, sondern nur dann vor, wenn Pakete in einem paketvermittelten Netzwerk mehrere Hops durchlaufen und dabei untersChidie Wartezeiten in Kauf nehmen müssen. Diese durch Wasmxiren entstandene Verzögerung entspricht der dritten zeitlich schwankenden - Komponente der weiter oben,definierren Latenz. Um die Relevanz von Jitter besser zu verstehen, gehen wir davon aus, dass die im Netz übertragenen Pakete Video-Frames enthalten, und dass der Empfänger alle 33 ms ehen neuen empfangen muss, damit er diese Frames am Bildschirm anzeigen kann. Kommt ein Frame zu früh an, kann der Empfanger ihn speichern, esbZeit ist, ihn darzustellen. Kommt ein Frame aber zu spiit an, fehlt dem Empfänger der entsprechende Frame, um den Bildschirm rechtzeitig aufzufrischen. Dadurch wird die Videoqualität beeinträchtia es entsteht ein Ruckeleffekt. Man beachte dabei, dass Jitter nicht unbedingt vermieden werden muss; es genügt zu wissen, wie stark es ist. Das hat einen bestimmten Grund: Wenn der Empf'aages die obere und untere Grenze der Latenz eines Pakets kennt, kann er den Zeitpunkt, an dem er mit der Wiedergabe des Videos beginnt (also den ersten Frame darstelit), solange hinauszögern, bis sichergesteilt ist, dass er zu jedem Zeitpunkt aktueile F m e s präsentieren kann. Er speichert den Frame in einem Puffe4 verzögert ihn also und giättet damit effektiv das Jittec Dieses Thema wird ausführlich in Kapitel 9 behandelt.
-
1.6 Zusammenfassung Rechnemetze wie das Internet haben im Laufe des letzten Jahrzehnts ein explosives Wachstum erfaiwen und sind heute in der Lage, Millionen von Benutzern eine breite Dienstpalette- fernen Dateizugriff, digitale Bibiiotheken, -zu bieten. Ein GroBteil dieses Wadistums ist auf den Alizweckcharakter von RecMemetzen zurüdcniführen, insbesondere aber auf die Fähigkeit, durch Entwicklung von Software, die auf preisgünstigen leistungsstarkenComputern läuft, die Funktionalitätdes Netzwerks zu erweitern. Vor diesem Hintergrund liegt das vorrangige Ziel dieses Buchs darin, Redinernetze in einer Art darzusteiien, dass sich Leser nach der Lektüre in der Lage M e n , mit einem schlagkrdiigeq Team von Programmierern an ihrer Seite von Grund auf ein voll funktionstüchtiges Rechnernetz entwickeln zu k ö m a In diesem Kapitel wurde der Grundstein für die Realisierung dieses Ziels gelegt. Der erste Schritt, den wir in Richtung dieses Ziels unternommen haben, ist die sorgfältige Identifizierung dessen, was wir von einem Netzwerk erwarten. Zuerst muss ein Netzwerk kostengünstigeKonnektivität zwischen Computern bereitstellen. Dies wird durch einen Zusammenschluss von Knoten und Verbindungsleitungen und durch gemeinsame Nutzung dieser Hardwarebasis mittels statistischem Multiplexen erreicht. Daraus ergibt sich ein paketvermitteltes Netmeik, für das wir dann eine Reihe von Diensten definieren, mit denen Prozesse miteinander kommunizieren können. Im zweiten Schritt definieren wir eine aus Schichten bestehende Architektur, die uns als Entwurf für unser Design dient. Die zentralen Objekte dieser Architekhir sind die Netzprotokolle. Protokolle bieten einen Komunikationsdienst für die Pro-
b a it r r aMhrs~iefi.khtchten \erid &WM mwohl Form &auch Btdeiaxsa die sie mit ilirm auf anken-RaGhaenih&& h m e r m austau-
der gmrihken Betspide vorratagi~auf dm In-Arektekw
&s am fiäufiasten benutzte Isitdace zwischen ~ w e n d ~ ~ ~ ~ ~ ' t ) r ~und ~~~amr
Rolle beim Entwurf eines Netzwerks.
rfh~ißestehtkaum Zweifel darüber, Rechnernetze für sehr viele n bald fester Bestandteil Lebens werden. Was
ka&@
-
5
Offene Fragen
Allgegenwärtige Vernetzung
m großen Geschäft gewandelt. Und wo viele Mitspieler ein. In diesem Fall sind das zum sich immer mehr mit der Unterstützung paketverigt, zum zweiten die Telefonbetreiber, die einen rten, nicht nur Sprache, entdeckt haben, und e derzeit das unterhaltungsorientierte Seg1 %allgegenwärtigeVernetzungu ist, also zuerst das Problem aufgreifen, wie die n Verbindungsleitungen bereitzustelien sind. Viele sehen die Lösung letztenditn Glasfaseranschluss jedes Haushalts. Bei einem geschätzten Kostenumfang rivathäusern ergibt dies jedoch allein in 00 Milliarden. Die derzeit meist diskuAlternativen nutzen entweder den vorhandenen Fernsehkabelanschluss oder
.
die Kupferkabel des Telefonnetzes. Beide Ansätze weisen spezifische Schwächen auf. So sind die heutigen Kabelanschlüsse 2.B. asymmetrisch. Das hegt, man kann jedem Haushalt zwar 150 Kanäle bereitstellen, die zunickgerichtete Bandbreite ist aber sehr begrenzt. Solch eine Asymmetrie bedeutet, dass es wenige Informationsanbieter und sehr viele Informationskonsumenten gibt: Viele Menschen würden jedoch fordern, dass in einer Demokratie jeder die gleichen Möghchkeiten zum Anbieten von Informationen erhalten sollte. Die DSL-Technologie (Digital Subscriber Line) muss nicht asymmetrisch sein, kann aber über die vorhandenen Telefonleitungen auch nur einer eingeschränkten Zahl von Verbrauchern Verbindungen mit hoher Bandbreite bieten. Wie der Kampf zwischen Computerherstellern, Telefgngesellschaften und Kabelbetreibern um Marktanteile letztendlich ausgeht, lässt sich kaum vorhersagen. (Wenn wir hier die Antwort geben könnten, würden wir für dieses Buch wesentlich mehr verlangen.) Wir wissen lediglich, dass es viele technische Hindernisse - Fragen über Konnektivität, Dienstebenen, Leistung, Zuverlässigkeit und Fairness - zu überwinden gilt, die zwischen dem heutigen Entwicklungsstand und dem globalen, ailgegenwärtigen heterogenen Netzwerk stehen, das wir für möglich und wünschenswert halten. Genau das sind die Herausforderungen, die den Schwerpunkt dieses Buchs bilden.
1.7 Weiterführende Literatur Rechnemetze sind nicht die erste komunikationsorientierte Technologie, die ihren Weg in den Alltag unserer Gesellschaft gefunden hat. In der ersten Hälfte des 20. Jahrhunderts wurde das Telefon eingefiihrt, und in den fünfziger Jahren hielt das Fernsehen Einzug in die Haushalte. Wenn wk die Zukunft von Netzwerken betrachten, d.h. in welchem Umfang sie sich ausbreiten und wie wir sie benutzen werden, ist ein Rückblick in seine Geschichte aufschlussreich. Unser erster Literaturhinweis ist ein guter Ausgangspunkt dafür (das ganze Buch ist den ersten 100 Jahren der Telekommunikation gewidmet). Bei der ,zweiten und dritten Quelle handelt es sich um fundamentale Beiträge über die OSI- bzw. Internet-Architektur. Die Arbeit von Zimmerman liefert eine Einführung in die OSI-Architektur; und bei der von Clark handelt es sich um eine Retrospektive. Die beiden letzten Quellen befassen sich nicht ausdrücklich mit Vernetzung, sollten aber zur Pflichtlektüre jedes Systementwicklers gehören. Die Arbeit von Saltzer et al. behandelt eine der arn häufigsten angewandten Regeln des Systemdesigns - das Ende-zu-Ende-Argument. Mashey beschreibt die den RISC-Architekturen zu Grunde liegenden Konzepte. Wir werden in den nächsten Kapiteln feststellen, dass woMüberlegte Strukturierung von Funktionalität in einem komplexen System den Kernpunkt eines Systemdesigns bildet. '
Pierce, J.: Telephony - A personal view, ZEEE Communications, 22(5), 116120, Mai 1984.
D.: The d ~ ~ i ~ ' p ~ l o sofo rbe p bDAkPd :~ fntemet protwols, ProceedirPgs SIGCOMM '88 Spzposr'~'m,S. ld6-114,Au& f $88,
MXPSI and'the motion of compb~@ty,U n i B k 1986 Cotafe-
,$. 116-124;19%.
(5acrbkk %baa & b r n e t - A d i handeln Vernemung aus Si& der Z m a n g b m a c h ~si~d.zwei , af Darr NWQ* 00n H d z m m
erhinden d e n . ae~szweite ist RUEthe I s f m m s h d 7 B + q w dvona G Q n ? m t3ci-e und T e 1 d c o m m ~ t i o ~
w p WaUr-SyaemV [RiM] h. dem =Kerne:Is [HPYl]. D & k &hSQ89] -wB [$W951&e papulk B&*-Unk-Impkmeneher allgemehrr Sicht werda Fragen über die Strukwierung und Oprimiema folgenden Autoren behandelb &k
~vba Pg-d-a
befasst sich ais einer der ersten Autoren mit der Beziehung zwischen modularem Design und Protokolleistung [Cla82] und in f(=la853 mit der Strukturie~ngvon Protokoiicode durch so genannte U @ . Der Protokoll-Overhead vun TCP wird in [CJRC89] betrachtet. m 8 7 ] befasst sich mit der Effienzsteigerung durch angemessene Design- und hplemenrierungsentscheiciungen. In verschiedenen Arbeiten werden spezifische Techniken und Mechanismen für die Verbesserung der Leistung von Protokollen vorgestellt. IHM]PTSS] beschreibt einige im X-Kerne1benutzte Mechanismen, [MD931 verschiedene hplementieningen von Demuxtabeiien, [VL87 den für die Verwaltung von Protokollereignissen benutzten Timing-Wheel-Mechanismusund PP931 eine effiziente Strategie zur Pufferverwaltung. Die Leistung von Protokollen auf parallelen ~roze~soren (hierbei ist das zentrale Problem die gegenseitige Blockade) ist Themens@fiwerpunktin [BGm] und [NYKT94]. Da viele Aspekte einer Protokollimplementiening von der Kenntnis der Grundlagen von Betriebssystemen abhängen, empfehlen wir die Lektüre von F G e l F.i88], Bic und Shaw [BS88] und Tanenbaum ri:anOl] als EinfüBning in Betriebssystemko~l~epte. Jedes Kapitel dieses Buchs endet mit einem Abschnitt über weiterführende Literatur und einer Reihe von ü l U s , die Informationen iiber das jeweilige Thema enthalten. Wir beschränken uns dabei auf Websites, die Software anbieten, einen D i m t bereitstellen oder über die Aktivitäten einer Arbeitsgruppe oder eines Standardisienmgsgremiums berichten. Da es gut m w c h ist, dass sie nicht über einen unbegrenzten Zeitraum hinweg zur Verfügung stehen, führen wir also nur Websites mit Material auf, das über andere Quellen nicht leicht zugängiich ist. Für dieses Kapitel haben wir folgende WWW-Quellen zusammengestellt:
r
M i p J h v ~ . c l p u n k t . ~ W n e t m e r k 6 Informationen : zu diesem Buch, einschiief3lich Beilagen, Erganzungen usw. (siehe auch M$J/www.mkpm) , httpJ/wmn..acm.org/~sos.htmI: Status vaschiedener NetzwerkStandards,
darunter die von IETF, ISO und IEEE MtpJ/wwu.ietf.orgl: Wonnationen über die IEITF und ihre Arbeitsgruppen
~ d / w w w . c s . ~ e d u / - h g s / nBibbographie w netzspezifidr Forschungs'
arbeiten
1.8 Ubungan 1. Steilen Sie über anonymes FIT eine Verbindung zu ftp.isi.edu (Verzeichnis in-nates) her und laden Sie den RFC-Index sowie die PrstokoJispedkationen für TCP, IP und UDP heruntei: 2. Sehen Sie sich auf der Wekite M $ J ~ c s . p ~ t o n . W n sum, g Sie können dort aktuelle Forschungsarbeiten im Vemetzungsbereich an der Princeton-
% # i M m u m & i i t ~ ~ ~ . D K mWkr&io % Bild des Aumrs bmy P m o n und
~Ilnk,.iiberbSiea;u~~WdssA~~s~DaPie&e~il,
Die
~-~~
nhO* Lnnn benuat werdar. um dat &mah-~amer~einer hrt, ari h&m. Sie die Dok-g* üba wiwb und damit,. V& Sie & Ebtieg whob pdmeton~~&~ und
a. Die Bandbreite beträgt 1 3 MbitEs iuid Datenpakete k8men fortfguknd ge-
!
mdetwden.
lhccbna SIc die Zeit, die insgesamt dorderfich ist, um eine 1,s--Datei in den folgen* Fall- zu übernagen.Gehen Si= von eher R'TT von 80 & &W ~ r o n 1 ~ m d n n i ~ 2 x ~ ~ f ö r & s u o ~ d c r ~ . . W aus. abhufcnde -* a. Die Bandbreite b n r i 10 Mbitts und Datenpakae können fortlaufend ged0tllmc.k.
b. o* band breite^ 10 MbWs, nsch da Okmng~ngjedes Pakets müssen . wir aber ehe R l T Wbis das rdiehste gegen& werden Irann.
d. Die fsbeztrajpqpek sei N d wie in (C), aber während der ersten R n köniien wir ein Pakete, während der zweiten zwei Pakete, während der dritten
r-;
56
I
1 Grundlagen
vier (ll3-') senden usw. (Der Grund für die exponentielle Zunahme wird in Kapitel 6 erklärt.) 7. Betrachten Sie ein LAN mit einer maximalen Entfernung von 2 km. Bei welcher Bandbreite wäre die Ausbreitungsverzögerung (mit einer Geschwindigkeit von 2 x 1 0 ~m/s) bei 100-Byte-Paketen identisch mit der Obertragungsvenögerung? Wie hoch wäre sie bei 512-Byte-Paketen? J 8. Betrachten Sie ein LAN mit einer maximalen Entfernung von 50 km. Bei welcher Bandbreite wäre die Ausbreitungsvenögerung (mit einer Geschwindigkeit von 2 x 1 0 ~m/s) bei 100-Byte-Paketen identisch mit der Obertragungsverzögerung? Wie hoch wäre sie bei 512-Byte-Paketen?
9. Welche Merkmale von Postadressen wkde man höchstwahrscheinlich in ein Adressierschema für ein Netzwerk aufnehmen? Welche Unterschiede würden Sie erwarten? Welche Eigenschaften des Telefonnummernsystems würde man in das Adressierschema eines Netzwerks aufnehmen? 10. Adressen zeichnen sich vor allem dadurch aus, dass sie eindeutig sind. Wenn zwei Knoten die gleiche Adresse hätten, könnte man sie nicht unterscheiden. Welche weiteren Merkmale wären für Netzwerkadressen nützlich? Können Sie sich Fälle vorstellen, in denen Adressen eines Netzwerks (bzw. des Post- oder Telefonsystems)nicht eindeutig sind? 11. Führen Sie einen Beispielfall an, bei dem Multicast-Adressen vorteilhaft wären.
12. Auf welche Unterschiede in Verkehrsmustem ist die Tatsache zurückzuführen, dass STDM kostengünstiges Multiplexen für ein Sprachtelefonnetz und FDM kostengünstiges Multiplexen für Fernseh- und Radionetze bieten, obwohl wir beides für ein allgemeines Rechnernetz als nicht kostengünstig verwerfen? 13. Wie .breit« ist ein Bit in einer 1-Gbitts-VerbindungsIeitung?Wie lang ist ein Bit in einem Kupferkabel, wenn die Ausbreitungsgeschwindigkeit 2,3x108 m/s beträgt? 14. Wie lange dauert es, um x KB über eine y-Mbitls-Verbindungsleitungzu übertragen? Geben Sie Ihre Lösung als Verhältnis von x und y an. 15. Angenommen, zwischen der Erde und einer neuen Mondkolonie wird eine Punkt-zu-Punkt-Leitung mit 100 Mbitts eingerichtet. Die Entfernung vom Mond zur Erde beträgt ungefähr 385.000 km, und Daten fließen in Lichtgeschwindigkeit - 3 x 1 0 ~m/s - über die Leitung. a. Berechnen Sie die minimale R l T für die Verbindungsleitung.
.
a Eine auf dem Fahrzeug i n ~ t a i l h m a nimmt Mder uon der Umgebung
, men L
C. .
BjSdes $iq man Ba& der Obma:t.mg an die kdenkontrolle? Gehen
Se von einer Bildgtöh von 5
MB aus.
AuflisteIy des Lahdta e i m Verzeichnisses.
d, Anze:@ep der Attribute einer Datei.
18. Berechnen Sie die Latenz (vom ersten gesendeten bis zum letzten empfangenen Bit) für folgende Fälle: a. 10-Mbitfs-Ethernet mit einem einzigen Speichervermittler (Store-and-Forward-Switch) auf der Strecke und einer Paketgröi3e von 5.000 Bit. Gehen Sie davon aus, dass jede Verbindungsleitung eine Ausbreitungsverzögerung von 10 ps einfuhrt, und dass der Switch sofort, nachdem er das Paket vollständig empfangen hat, mit der erneuten Übertragung beginnt. b. Wie in a., jedoch mit drei Switchen.
C.
Wie in a., jedoch mit einem Switzh, der *Cut-Throughr implementiert, also in der Lage ist, mit der erneuten Ubertragung des Pakets bereits zu beginnen, nachdem er beispielsweise die ersten 200 Bit empfangen hat.
J 19. Berechnen Sie die Latenz (vom ersten gesendeten bis zum letzten empfangenen Bit) für folgende Fälle: a. 1-Gbids-Ethernet mit einem einzigen Speichervermittler (Store-and-ForwardSwitch) auf der Strecke und einer Paketgröh von 5.000 Bit. Gehen Sie davon aus, dass jede Verbindungsieitung eine ~usbreitungsverzö~erun~ von 10 ps einführt und dass der Switch sofort, nachdem er das Paket voilständig empfangen hat, mit der erneuten Obertragung beguint. b. Wie in a., jedoch mit drei Switchen. C.
Wie in b., jedoch mit einem Switch, der »Cut-Through« implementiert, also in der Lage ist, mit der erneuten Obertragung des Pakets bereits zu beginnen, nachdem er beispielsweise die ersten 128 Bit empfangen hat.
20. Berechnen Sie die effektive Bandbreite für folgende Fäile: Gehen Sie für a. und b. davon aus, dass permanent Daten zum Senden bereitstehen, und berechnen Sie für C. einfach den Durchschnitt aus 12 Srunden. a. 10-Mbids-Ethemit und drei Speicher-Switche, wie in Obung 18b. Die Switche können über eine Verbindung senden, während sie iiber die andere empfangen. b. Wie in a., jedoch muss der Sender auf ein 50 Byte großes Bestätigungspaket warten, nachdem er jeweils ein 5000 Bit groSes Datenpaket gesendet hat. C. Zustellung von 100 Compact-Disks (mit je 650 MB) über Nacht (12 Stunden). 21. Berechnen Sie das Verzögerung-Bandbreite-Produkt für die folgenden Verbindungsleitungen. Benutzen Sie eine Einwegvenögerung, gemessen ab dem ersten gesendeten bis zum ersten empfangenen Bit. a. 10-Mbitls-Ethemet mit einer Venögerqng von 10 ps. b. 10-Mbitls-Ethemet mit einem einzigen Speicher-Switch wie in Obung 18a, einer Paketgröge von 5.000 Bit urid einer Ausbreitungsverzögerungvon 10 ps pro Verbindungsleitung. C.
Tl-Leitung mit von 50 ms,
1,s Mbids und einer transkontinentalen Einwegverzögerung
d. Tl-Leitung mit 1,s MbitJs über einen Satelliten im geoqnchronen Orbit in einer H& von 35.900 km. Die einzige Verzögemag ist Bier die Ausbreitungsvenögerung der Lichtgeschwindigkeit.
iAi und B sind je ebet l 0 - M W ~ - V e t b i n d ~ l e i ~anc einen n Switch S h b s m (sieheAbb. 125). Die A u e b r e i ~ v e n in ~ jeder g Verbin-
10.000 Bit von A nach B zu übertragen, wenn
.
b. zwei 5.000-Bit-Pakete direkt nacheinander gesendet werden. Abb. 135: Diagramm fltr Obung U
.Bin Host möchte einem anderen Host eine 1-MB-Dateizusenden. Die KompresGon der Datei beansprucht eine CPU-Zeitvon 1Sekunde bei 50% und 2 Sekun-
& bei 60%.
n.
Berechnen Sie die Bandbreite, Inder beide Kompressionsoptionen die gleiche Gesamtzeit fur Kompression und übermim beanspruchen, & Erläutern Sie, wanua Latenz keinen Einauss auf Ihre Lösung hat.
L
'
,Wbestimmtes Komm&tionsprotokoii
produziert einen Overkead von %WByte füt h k und IWmung p Paket. Wir senden mit diesem Protokoii .Y. f W o t l Daten-Bytes. Ein Daten-Byte m d e allerdings f c h k r w übertragen, C : hdas gesamte Paket,in dem essich e d e t , verlorengeht. Ermitteln Sie die Gesamtzahi an Overhead- + Verlust-Bytes jeweilsfür eine Paketgröh von 1.000, 5.000,lO.OOO und 20.000 Byte. Welche Größe ist optimal? +
gen, das aus der Q d e , dem Empbängeq 7 Punkt-zu-hinkt-Verbindungen und 5 Swi& besteht. Jede Verbindung habe eine Ausbreitun%fvenögerungvon 2'ms,eine Bandbreite von 4 MbitJs und unterstütze sowohl Leitungs- ah auch Paketvermirtlung. Daher können Sie entweder die Datei in 1-KB-Paketeaufteilen. . ' - oder eine VeNidung über die Swltche aufbauen und die Datei als G a m s senden. Gehen Sie davon aus, dass die Pakete je 24 Byte an zusätzlichen %der-Informai ziaoen und 1000 Bpe an N u m h e haben, ~~ dass die Store-and-Forward-Prozed q nachdem das Paket im Switch eingetxoffeu & eine Verzögemag von 1ms bedeutet und dass Pakete kontinuierlich geschickt werden können, ohne auf die btatiguag warten m müssen. Bei der L e ~ v e r m i t t l u gist zurrächst eine 1KBrNachricht erforderlich, die hin und her transportiert werden muss, wobei sie eine Verzögerung von 1ms an jedem Switch erfährr, nachdem sie dort vollaändig empfangen worden ist, +&end die zu übertragenden Daten keiner Ver<' 26gmsng an den Switches unterliegen. Sie können auch von einer Dateigröße von W-fachen von 1000 Byte ausgehen.
a. Bei welcher Dateigröfk (n Byte) ist die insgesamt übertragene Datenmenge für Leitungsvermittlung kleiner als für Pakettransport? b. Für welche Dateigröße (n Byte) ist die Gesarntverzögerung, die entsteht, bevor die Datei insgesamt empfangen wurde, für Leitungsvermittlung kleiner als für Paketvermittlung? C.
Wie wichtig ist für diese Ergebnisse die Anzahl der Switche, die Bandbreite der Übertragungswege bzw. das Verhältnis zwischen Paket- und HeaderGröße?
d. Was glauben Sie: Wie genau ist dieses Modell in Bezug auf die relativen Vorzüge der beiden Verrnittlungsarten?Werden wichtige Randbedingungen ignoriert, die gegen die eine oder andere Art sprechen? Falls ja: Welche könnten das sein? 26. Betrachten Sie ein in geschlossener Schleife ausgelegtes Netzwerk @.B. TokenRing) mit einer Bandbreite von 100 Mbitls und einer Ausbreitungsgeschwindigkeit von 2 x 1 0 ~d s . Welchen Umfang müsste die Schleife unter der Annahme haben, dass die Knoten keine Verzögerung einführen, um genau ein 250-BytePaket aufzunehmen?Welcher Umfang ist nötig, wenn sich alle 100 m ein Knoten befindet und jeder Knoten eine Verzögerung von 10 Bit einführt?
27. Vergleichen Sie die Kanalanforderungen für Sprachverkehrmit den Anforderungen für die Echtzeitübertragung von Musik hinsichtlich Bandbreite, Verzögerung und Jitter. Was musste man verbessern? Um ungefähr wie viel? Könnte man eine Kanalanforderung l o c h ? 28. Gehen Sie bei den folgenden Fällen davon aus, dass keine Datenkompression angewandt wird, was in der Praxis fast nie der Fall ist. Berechnen Sie für a. bis C. die für die Ubertragung in Editzeit erforderliche Bandbreite: a. Video mit einer Auflösung von 640 X 480 Pixel, 3 BytelPixel, 30 Frame&kunde. b. Video mit einer Aufiösung von 160 X 120 Pixel, 1 BytelPixel, 5 FramesJSekunde. C. Musik von einer CD-ROM; eine CD enthält M usik für eine Spieldauer von 75 Minuten und hat eine Kapazität von 650 MB. d. Ein Fax überträgt ein 8 X 10 Zoll g r o k Schwarzweißbild mit einer Auflösung von 72 Pixel pro Zoll (ppi).Wie lange dauert die Obemagung mit einem 14,4-Kbids-Modem?
-
J 29. Nehmen Sie - wie in der vorhergehenden Ubung im Folgenden an, dass dabei keine Datenkomprimierung stattfindet. Bestimmen Sie die Bandbreite, die erforderlich ist, um diese Daten in Echtzeit zu übertragen:
2
.
~ , ~ ~ - v E& j de m k AufiöiRm von 1920 x 1080 Pixel, 24 EWixd und I*.., rnPsm&. .
C.
Digitale Bibliothek
.
' V
.&gwomfllen ein gew;eit.Esasn@nutztes Medium M bietet Hwts Al, A2, ...,AN
4 ' 4th Radumw&hr«i (~Round-RiobinafGelegenheit, ein Paket zu Qbertragen. *Wb&, ble iiieht~L ~ Wu h a p n borbeii, geben M sofort frei. In welcher Wsicht & ~ ~ r s c b i dsich e t dies von STDMP Wie verhdt es sich mir der NeuausIästung
.
.
Bestdtigung. A wartet immer auf jede Bestätigung, bmbr das nichite ~ i t e n paltet sendet, Man niennt dies Stop-and-W&. Bei überf8iIigen Paketen wird 1 ' dav;&n. ausgegahgeaSdass sie frdotengegarrgen shd, und folglich erneut iibertra* - gen werden miissen.
nm?%&reeine l-Bit&?q~a%znummerausreichend?
C.
*
Die Verbindungsleitung stellt Pakete außer der Reihe zu, wobei ein Paket bis zu 1 Minute nach darauf folgenden Paketen eintreffen kann. Auf welche Weise ändern sich dadurch die Anforderungen an die Sequenznummer?
33. Hosts A und B sind über eine Verbindungsleitung miteinander verbunden. Host A überträgt fortwährend die aktuelle Zeit von einer Hochpräzisionsubr in einer gleichbleibenden Rate, die so hoch ist, dass die gesamte verfügbare Bandbreite verbraucht wird. Host B liest diese Zeitwerte und schreibt sie jeweils paarweise mit seiner eigenen Zeit, die er einer lokalen, auf die von A synchronisierten Uhr entnimmt. Führen Sie qualitative Beispiele von B's Ausgabe unter folgenden Bedingungen auf:
a. Hohe Bandbreite, hohe Latenz, niedriges Jitter b. Geringe Bandbreite, hohe Latenz, hohes Jitter C.
Hohe Bandbreite, niedrige Latenz, niedriges Jitteq gelegentlicher Datenverlust Beispielsweise kann eine Verbindungsleitung ohne Jitter, einer zum Schreiben jedes zweiten Zeittakts ausreichend hohen Bandbreite und einer Latenz von 1Zeittakt etwas wie (0000, OOOl), (0002,0003), (0004,0005) ergeben.
34. Verwenden Sie das als Beispiel im Buch angegebene Socket-Programm simpiextalk. Starten Sie einen Server und einen Client in getrennten Fenstern. Während dieser erste Client läuft, starten Sie 10 weitere Clients, die sich auf den gleichen Server aufschalten. Diese Clients sollten im Hintergrund gestartet und ihre Eingaben von einer Datei umgeleitet werden. Was passiert mit diesen 10 Clients? Schlägt ihre connect()-Operation fehl, läuft ein T i u t ab oder sind sie erfolgreich? Blockieren irgendwelche anderen Aufrufe? Beenden Sie nun den ersten Client. Was passiert? Versuchen Sie das auch mit einem auf 1gesetzten ServerWert WPENDING.
35. Ändern Sie das Socket-Programm simplex-tdk so ab, dass der Server jedes Mal, wenn der Client eine Zeile an ihn sendet, die Zeile an den Client zurückschickt. Client und Server müssen jetzt recvo und send() abwechselnd aufrufen. 36. Verändern Sie das Socket-Programm simplex-talk so, dass es statt TCP jetzt UDP als Transportprotokoll benutzt. Hierfür müssen Sie für den Client und für den S e m SOCK-STREAM auf SOCK-DGRAM abändern. Anschließend entfernen Sie im Server die Aufrt.de von Ikten() und aceepto und ersetzen Sie die beiden verschachtelten Schleifen am Ende durch eine einzige Schleife, die recv() mit Socket s aufruft. Beobachten Sie das Verhalten, wenn sich zwei solche UDP-Clients gleichzeitig mit den gleichen UDP-Server verbinden, und vergleichen Sie es mit dem TCP-Verhalten.
'Bk W * U & p
plhgi kam bus;m werCi.tn, um $E %Ti'zu ~ 1 1 h Internetn 5Ee die Uriiity, um Harn btzu8tena Lesen Sie die Seite über pkvg nnd bio IWi" zu w w w . u s . ~ ~ . e &inuWew Jemey d ~ . W @ . o a a n in Kalifor-
Die U&-Utility tmamw&i b. ihr W d m - * d tmmt hm benutzt werden, um &e Rcihenfoige von Rmtuti, die cinc Ngs:Wt pmkrea muss, htmstdia, W a & S e mit einw der M d a Mtie W* arm Ihran i%mhrtm einem &xea.
-
W ~ l h ~ I I cdie r tknzabl von Hops im Vkqgkich zu
Benutzen Sie.trwam@ ura ehige det Rouär Ihre Unr&n (h zu .zeigen*Qgss keine benutzt werden).
zu idenaie-
2 Direktverbindungsnetzwerke.
Hosts pb ysikaliscb miteinander verbinden Das einfachste mögliche Netzwerk ist eines, bei dem alle Hosts direkt über ein physikalisches Medium miteinander verbunden sind. Dies kann ein Kabel oder Lichtwellenleiter sein und es kann einen kleinen Bereich (2.B. ein Bürogebäude) oder einen großen (2.B. Übersee) abdecken. Die Verbindung zweier oder mehrerer Knoten mit einem geeigneten Medium ist aber nur der erste Schritt. . Bevor Knoten erfolgreich Pakete austauschen können, müssen fünf weitere Probleme gelöst werden. Das erste Problem ist die Kodierung - von Bits für die übertragung, sodass sie vom empfangenden Host verstanden werden können. Zum zweiten stellt sich die Frage, wie die Bitsequenzen, die übertragen werden, zu It is a mistake to vollständigen Nachrichten zusammengefasst look too far ahead. und dem Endknoten zugestellt werden können. Dies wird häufig als wFraming«Only one link in the Problem bezeichnet, die übertragenen Nachchain of destiny can richteneinheiten als >>Framesu.Das dritte Problem ist die Fehlererkennung, weil Frabe handled at a time. mes manchmal wahrend der Übertragung - Winston Churchiil beschädigt werden, sodass entsprechende Mai3nahmen nötig sind. Das vierte Problem ist die zuverlässige Zusteblung trotz der Tatsache, dass eine Leitung von Zeit zu Zeit Frames beschädigt. Das fünfte Problem tritt auf in den Fällen, wenn die Verbindungsleitung - irn Gegensatz zu einer einfachen Punkt-zu-Punkt-Verbindung - von mehreren Hosts gemeinsam genutzt wird. Die Regelun; des Zugangs zu der &d als ~edienzu~riffsSteuerung bezeichnet. Man könnte diese fünf Fragen - Kodierung, Frame-Erzeugung, Fehlererkennung, zuverlässige Zustellung und Zugriffssteuerung -
erbi in dun^
abstrakt &kutier&. Es handelt sieh abw &Q0.die aaf untcwhiedliche Weise mit v e d e d m g n N-olw $ien geht werden ktinrm. En diesem Kapitel wwdeai diese Prob e in Zyqmme&ang & vieq s+* N-otcagien h a c h t m p U s k o - z q r ~ ~ L e i ~ CSUA-Netzw* en, (CaSense Multi* ,kcms)anit degv B&als i x t h m e a t a W m t q Token-Ri~g(mir. lBBE-Standud &U25 w d FDDI 21% . m e p ~ @erSpiele@ n uad dmh* Nqwwwko mit dem Jromd e n &qdacd802.11. &l die- Kap- ist M,, einen Oberblick über die verfü&anm Nttztecltnollogien zu geben und dabei die genannten fünf grundlegenden Probleme zu untersuchen. Bevor wir uns mit den spekifischen Fragen der Verbindung von' ' Mosss befa-, beght cbm lliapntel mit e h a Iiestzkh da 'bcnurs~tenElsUistehe: #ncatm 4 Y & M d i w n . 13. w d e a die clrstea Qei Pza&BdeMer ~ ~ - F ~ ~ - & p e u ~d E & T @ ~ ia Z m g tgit M:kh= hinlttzm*Dn ,in &sta &U Ahwhitbn v ; h t g c d b i .Tdniha sind d l g e h 4 ddm pi.ichar& ed k4d&-ctet a n w e h llls Nkhsm WMdas Pmblem da.au:odii&gm Z a d h g hthndeh. Dia -ad der SWmgs.&ht in N e ~ k e nmit & Z &nicht ialpte-W wkd,
*
-
-
ik&lhaiebs wird das Prob-1cm der z ltae&mg mit: au-, T.~logn--Ringkhandtlt, Diese W F e && iQ.3 I *trr~Inrn k3 tiam Netzwerbdapwr k uw,einet Nesmerkkarte implenwndeze. Das ia eine dL m den UO-Bm eines Hosts ehqptssckt wicd und mit Qe05 hp ~agwgsmdum am aa&ren Ende m b d n ist. Mt anderen WO- Bits werden mischen N a werwqymdwi aber k o m k F r m s zwiwhm den Kmteds, Diu N m wird Y Q Sofrwaro ~ gawwtIdie auf ICnoten U w d hisk Das bt der Tr* der h e k m Pr* b4Lw*a aSa fpBmtes Pr&oW. &xg@s*lit wird. Dim,lCapi$ide d m &$@mn k&otca Bthplel einer Netmrqund dciirs misp.ih&~ Tleibers. . *.
<
2.1
Hardwarebausteine
In Kapitel 1wurde erklärt, dass sich Netzwerke aus zwei Typen von Hardwarebaustehen zusammensetzen: aus Knoten und Vmbind~mgsleitungen.Diese Aussage gilt ebenso für das einfachste Netzwerk, bei'dem nur zwei Knoten über eine Punkt-zuPunkt-Leitung miteinander verbuhden sind, wie bei einem weltweiten Netzverbund. Dieser A b ~ h n i tenthält t einen überblick über die Bedeutung von Knoten und Verbindungsleitungen. Dabei werden die zu Grunde liegenden Technologien definiert, die in den weiteren Kapiteln dieses Buchs immer wieder aufgegriffen werden.
2.1.1 Knoten Bei Knoten handelt es sich meist um ~ c k c o m p u t e r beispielsweise , eine Desktop-Workstation, einen Mehrprozessor-Rechner oder einen PC. Wir gehen für unsere Zwecke von einem Rechner der Workstation-Klasse aus. Diese Workstation kann als Host dienen, auf dem Benutzer Anwendungsprogramme ausführen. Er kann innerhalb eines Netzwerks als Switch,eingesetztwerden, um Nachrichten von einer Verbindungsleitung an eine andere weiterzuleiten. Er kann aber auch als Router konfiguriert werden, der Interent-Pakere von einem Naz an ein anderes weiterleitet. In manchen Fällen wird mit spezieller Hardware e h Netzwerkknoten - in der Regel ein Switch oder Router im Netzwerk - statt eines Hosts implementiert. Dies ist meist auf Leistungs- und Kostengründe zurückzufiihren. h allgemeinen kann Hardware so konstruiert werden, dass sie eine bestimmte Funktion scheuer und billiger als ein Allzweckp1:ozessor ausführt. Wir beschreiben zuerst die vom Knoten auszuführende Basisfunktion so, als w k e sie softwareseitig auf einer universellen Workstation implementiert. Danach erklären wir, warum und wie diese Funktionslität mit spezieller Hardware implementiert werden kann. Wir kannten es dabei belassen - andererseits ist es nützlich, ein wenig darüber zu wissen, wie eine Workstatiun innen aussieht. Diese Information ist insbesondere wichtig, wenn wir uns mit der Leistung eines Netzwerks beschäftigen. Abb. 2.1 zeigt ein einfaches Blockdiagramm eines Rechners der Workstation-Klasse, das wir im ganzen Buch heranziehen. Diese Abbildung zeigt drei wichtige Merkmale. Erstens ist der Arbeimpeicher jedes Rechners endlich. EE kann über 4 oder 128 MB verfugen, ist aber niemals unendlich. Wie in Abschnitt 3.13 erwähnt, ist dies wichtig, weil Speicher (neben der Bandbreite der Leitung) eine der knappen Ressourcen eines Netzwerks ist, die sorgfältig verwah-et werden muss, wenn wir jedem Benutzer einen fairen Anteil an der Neirzkapazität bieten wollen. Speicher ist eine knappe Ressource, weil Pakete im Speicher eines als Switch oder Router dienenden Knotens zwischengespeichert werden müssen, während sie darauf warten, über eine ausgehende Leitung übertragen zu werden. Zweitens wird jeder Knoten über eine Netzwerkkarte mit d e n Netzwerk verbunden. Dieser Netzadapter sitzt im Allgemeinen auf dem 110-Bus des Systems und befördert Daten zwischen dem Speicher der Workstation und der Netzverbindung. Ein auf der Workstation laufendes Softwaremodul - der Netzkartentreiber - steuert
Abb. 2.1: Beispiel einer Workstation-Architektur
Lw
U.,
.
sajlt ibm Befehle, lxiag6-h
- ,
von w&kr S p e k k d i e a
.-
B:.
3 Verbtndungsieitungen basieren auf einer Vteizahi unterschiedlicher physikalischer darunter Twisted-Pair (die verdrillten Kupferkabel des h ~ r k ö d i c h e n ), Koaxialkabel (das Fernsehkabcl), Lichtweilenleiter (das für Verbingro& Entfernungen mit h ~ h e rBandbreite meistens eingesetzte ) und der leere Raum (durch den sich Radioweilen, Mikroweilen und Infraen ausbreiten). jedes dieser physhiischen Medien dient dazu,Signale zu breiten. Bei diesen Sianalen handelt es sich um elektromapnetische Weilen. die
? Glasfaser mit
zwei Dritteln der Lkhtgeschwindipkeit in Vakuum.)
-
? h a e h b m e n Maxima oder M i . einer Weile, die normalerweise in Metern
gemessen wird, nennt man die Wellenlänge.Da sich aile elektromagnetischenWellen in Lichtgeschwindigkeit ausbreiten, entspricht diese Geschwindigkeit, geteilt durch die Frequenz der Welle, ihrer Wellenlänge. Am Beispiel einer Telefonleitung mit Sprachqualität, die kontinuierliche elektromagnetische Signale im Bereich zwischen 300 und 3.300 Hz befördert, sehen wiq dass eine sich durch Kupfer ausbreitende 300-Hz-Welle eine Wellenlänge von LichtgeschwindigkeitlnKupfer+ Frequenz =2/3x3x 108 rn/sa300 HZ
hat. Elektromagnetische Weilen im Allgemeinen erstrecken sich über einen sehr groGen Frequenzbereich, d.h. von Funkwellen über Infrarot- und sichtbares Licht bis hin zu Röntgen- und Gammastrahlen. Abb. 2.2 zeigt das elektromagnetische Spektrum und die Medien, die im Allgemeinen in den jeweiligen Frequenzbändern benutzt werden. Bis hierher betrachten wir eine Verbindungsleitung als physikalisches Medium, das Signale in Form elektromagnetischer Wellen überträgt. Solche Verbindungsleitungen bilden die Grundlage für die Ubertragung aller Informationsarten, darunter die Datenart, an deren Übertragung wir interessiert sind - binäre Daten (Einsen und Nullen). Man sagt, Binärdaten werden im Signal kodiert. Diese Kodierung von Binärdaten in elektromagnetische Signale ist ein komplexes Thema. Wir gehen es zunächst einfach an, indem wir es uns in zwei Schichten vorstellen. Die untere Schicht beschäftigt sich mit der Mod~lation- Variieren von Frequenz, Arnplin.de oder Phase des Signals, um die Übertragung von Informationen zu beeinfiussen. Ein einfaches Beispiel von Modulation ist die Variation der Leistung (Amplitude) einer bestimmten Wellenlänge. Dies ist etwa mit dem Ein- und Ausschalten von Licht vergleichbar. Da Modulation in unserem Zusammenhang mit Verbindungsleitungen als Baustein für Rechnernetze ein zweitrangiges Thema ist, nehmen wir einfach an, dass es möglich ist, zwei verschiedene Signale -rhighZydITlpw; - zu übertragen. -, WU: *
f(Hz)loO
102
/C-
.*--
10' 4 . 1
104
106
to8
Funk
--
to1°
Mikrowelle
1o12
1014
1o16
UV
,infrarot
10'~
ioZ0 ioa
ld4
Röntgenstrahlen Garn strahleh
------__- - ----__ - - ---
*
_C-
105
106
107
108
log
1
I
II
I
II
-
*-.
<
-
t )
I
I I
FM
Abb. 2.2: ElektromagnetischesSpektrum
I
toi3 I I
. .,
1o14
1o15
1 0
I
1 I
I
.
Lichiwellenleiter . ' 1
Terrestrische Mikrowelle
Ct
TV
tol*
Satellit
--
Koaxialkabel AM
o 0 ioll
I
'
"i "
i
4 (
,; -J
.:
$
4
m d d i e 6 b S e w d l e d a s vid eindac2iiercMLem der BiaHadwa iini dieswBtidm S i b d & . Dirn K6diemag wird in M t 4 2.2 t.whul&'
k
Kabel
I
Tvoische Bandbreiten
Reichweite
T0 bis 100 MbWs
Wckes Koaxiaikabei
1D bis 100 Mbitls
bdiesen Kabeln entwickeit sich das Twisted-Pair Kategorie 5 (Kat-S), das einen $kdceren Durchmesser als das normalerweise in Privathäusern verlegte Kupkkabei allmählich zum Standard innerhalb von Gebäuden. A u f w d der Schwierig-
keiten und Kosten für das Einziehen neuer Kabel durch ein Gebäude k a m man erwarten, dass neue Technologien, wie z.B. das Gigabit-Ethernet, ebenfalls übes Kategorie-5-Kabel laufen werden. Glasfaser wird meist für die Vsbitidung von verschiedenen Gebäuden eines Standorts v m d e t .
MietlaOtungen Befinden sich die beiden zu verbindenden Knoten in jeweils einem anderen Teil des Landes oder auch nur am anderen Ende der Stadt, körnen Sie die Verbindungsieitung nicht selbst installieren. Sie haben einzig die Waid, eine dedizierte Verbindungsieituug von einer Telefongesekhaft zu mieten, d&. Sie müssen in diesem F d lechglich die Verhandlungen mit dem Kundendienst der TdefongseMschaft selbst durchführen. Die üblichen, von einer Tekfongesekhafi anmietbaren Dienste sind in Tabelle 2.2 aufgefuhtt. Im weiteren Verlauf dieses Kapitels werden Einzelheiten hierzu behandelt.
'
TIWh2.Z iIbii&e, von Bewehm angebotene Bandbreiten
1
'1
I
Diese Jhdbreiten mögen als willitiirlich gewählt erscheinea Hinter dem Durcheinander steckt aber eine Methode. DS1 und DS3 (die auch als T1 bzw. T3 bezeichnet j werden), sind relativ alte Technologien, die für Kupfernedien definiert wurden. DSl j entspricht der Aggregation von 24 digitalen Sprachieittmgc+ mit je 64 KbitJs und I DS3 28 DS1-Leitungen. Bei allen STS-N-Leinungen wird Glasfaser verwendet (STS ist die Abkürzung von ~SynchronousTransport Signale). STS-1 ist die Basisleitung mit der niedrigsten Geschwindigkeit, und jede STS-N weist N mal die Bandbreite von STS-1 auf. Eine STS-N-Leitung wird auch OC-N-Leitung genannt (OC ist die Abkiirning von ~OpticalCarrieru). Der Unterschied zwischen STS und OC ist gering: STS bezieht sich auf die elektrische Obemagung vonlzu den an die Verbindungsleitung angeschlossenen Geräten und OC auf das eigentiiche optische Signal, I das sich über die Glasfaser verbreitet. Man beachte, dass die Telefongesellschaft die »Verbindungsleitungu, die wir gerade bestellt haben, nicht als einzelnes, durchgehendes Stück Kabel oder Glasfaser bereitstellt. Sie implementiert vielmehr die Verbiidungsleiitung in ihrem eigenen Netzwerk. Das Teieforneb sah früher völlig anders als die in diesem Buch beschriebenen Netzwerke aus. Es wurde vorrangig gebaut, um Sprachdienste bereitzustellen,
, ,
Mdcmt
*
O ~ ~ ~ u p r . h s a R 3 3 d w u . 28,8 bis 56 W
s
64 bis 128 Kbitls 16 Kbitls Ms 55,2 MWs
mative ist ein übliches Modem und ein herködcher Telefon-
fac Coder/Decoder.) Wird der Sprachkanal nicht benutzt, kann er mit dem Datenkmal kombiniert werden, um eine Datenbandbreite von 128 Kbids zu unterstützen.
ISDN galt jahrelang als die Zukunft für bescheidene Bandbreiten zum,Hausand u s s . Heute sieht es allerdings so aus, dass ISDN von zwei neueren TechnoIogien
überholt wird: xDSL (Digital Subscriber Line) und Kabelmodems. Bei xDSL handelt es sich um eine Reihe von Technologien, die Daten mit hohen Geschwindigkeiten über die in fast jedem Haushalt uorhandenen Kupferlehmgen (Twisted-Pair) übertragen können. Die inzwischen m meisten verbreiwe DSL-Technologieist ADSL (AsyaametricDigital Subscriber Line), Wie die Bezeichtiung andeutet, bietet ADSL eine andere Bandbreite vom Teilnehmer zur Vermitdungsstelle der Teldongesellschal5 (Upstream-Richtung) als in entgegengesetzter Richtung (Downstream). Die genaue Bandbreite hängt von der Länge der Leitung zwischen dem T e i h h e r und der Vermittlungsstelle ab. Diese Leitungsstrecke wird als Local Loop bezeichnet. Sie ist in Abb. 2.3 dargesteilt und führt über die vorhandenen Kupferhlkl. In Downstream-Richtung sind Bandbreiten von 1,544 bis 8,448 Mbids mbghch, und die in Upstream-Richtung reichen von 16 bis 640 Kbids. 1,554-8,448 Mbitls
ZentralvemMungs-
+
,
16-640Kbiis
Abb, 23: ADSL verbindet den Teilnehmer über Local Losp mitder Vermklungsstelle.
e
Teilnehmer
stelle
-1
LoOp
E i e weitere Technologie der DSL-Reihe befindet sich noch im Entwickiungsstadium: VDSL (Very-high Data rate Digital Subscriber Line) wird symmetrisch sein, und die Datenraten reichen von 12,96 bis 55,2 Mbids. VDSL kann über viel kürzere En$ernungen - zwischen 300 und 1.300 m - eingesetzt werden. Das bedeutet, dass VDSL nicht die Strecke vom ~ausanscMussdes T e h h m e ~zur s Vermirtlungsstelle der Telefongesellschaft abdecken wird. Die Telefongesellschaft muss also W L Hardware und a n d ~ Technologien e (2.B. STS-N über Glasfaser) in den Wohngebieten installieren, um Verbindungen herzustellen (siehe Abb. 2.4). Dies nennt man im Gegensatz zu ehrgeizigeren Methoden wie ,Fiber to the Homeu und ,Fiber to the Curbu auch ,Fiber to the Neighborhood~. Zenttrrl-
STS-N
w~?tiberQhher
Optisches Net-
VDSL mYt 12.9&.55,2 MbWs tiber~mitLBngen
Teilnehmer
-2.48
VML verbin*
den Teilnehmer mit dem optischen, in das Wohngebiet rekhendenNetzwerk
oram und das Modem In den miteinander eng verknüpften Bereichen der Signalverarbeitung und der Informationstheorie wurden enorme Anstrengungen unternommen, yn alles M l i c h e zu untersuchen, was mit der Art zusammenhänat, wie sich die sigkale mit zunehmender Entfernung verschlechtern und wiiviele Daten ein bstirnmtes Signal effektiv befördern kann. Die herausragende Arbeit in disfiem Bb?.reiiRist eine als Shannoh-Thebh bezeichwte Formek Einfach ausgedrückt, liefert das Shannon-Theorem eine obere Grenze für die Kapazität einer Leitung in Bits pro Sekunde (bit/s) als Funktion des Signal-Rausch-Abstandsdei Leitung, gemessen in Dezibel (dB). Mit dem Shanmn-Thmryn kafln d@Da enrate bestfmmr wieirden, in der efn Nadern BlnCirdaCn iibei ehe Teltofadleitung mit Sgrachquallt4t übertragen "ann, ohne eine zu hohe Fehlerrate zu erleiden. W . nehmen als Beispiel an, dass eine Telefonverbindung mit Sprachqualittit einen Frequenzbereich von 300 bis 3.300 Hz unterstatzt. Dar Shdnnon-~heoret6hrirdnormal&weisc mit folgender Formd angqlr ben:
I
1
pH
+
C= B f q 2-( 1 SI@
, wobei C d3e erreichbare Kanalkapalti$t,gemessen in Hertz, B die Bandbreite der Leitung (3.300 Hz 2 300 Hz = 3.000 Hz), S die durchschnitttiche Signalleistung und N die durchschnittliche Rauschleistung sind. Der Signal-Rausch. Abstand (S/@ wird in Dezibel wie folgt ausgedrückt:
einen Signal-Rausch-Abstand von S I N = 1.000. Folglicherhalten wir
~odems. Warum ist es angesichts dieser grundlegenden Grenze möglich, in jedem Ekektronikiaden S&Kbitds-h?adem~ur Kaufen? Ein Grund ist der,-dass mkhe daten durch' Gt$rberre&: ~ t u n g s ~ l kdh. Z ggnal-Rausch-Abstände wii hehr als 301d%,ermöglicht werden. Ein weiterer Gmnd ist, dass die auf eine Bandbreite von 3.300 Hz begrenzten Analogleitungen im Telefonnetz inmi-
;D&sMetztets dsim
-
-.wie rnSL as)%trm&w die Raten in bgvnstream- viel höher als in Upstream~
Richtung sind. Nach dem derzeitigen Stand der Technologie lassen sich mit einem einzigen CATV-Kanal 40 Mbit/s in Downstream-Richtung erreichen, bei einem theoretischen Wert von 100 MbitJs. Aufgrund einer tausendfachen Verringerung des Signal-Rausch-Abstands beträgt die Upstream- etwa die Hälfte der DownstreamRate (also 20 Mbit/s). Außerdem werden dem Upstream-Verkehr viel weniger CATV-Kanäle als dem Downstream-Verkehr zugeteilt. Anders als bei DSL wird die Bandbreite von allen Teilnehmern innerhalb eines Wohngebiets gemeinsam genutzt (was zu einigen amüsanten Werbemaßnahmen von DSL-Anbietern führte). Das bedeutet, dass eine Methode für die Regelung des Zugriffs auf das gemeinsame Medium - vergleichbar mit den später in diesem Kapitel beschriebenen 802-Standards - erforderlich ist. Schließlich ist es wie bei DSL eher unwahrscheinlich, dass mit Kabelmodems ein beliebiger Knoten A an einem Standort mit Knoten B an einem anderen Standort verbunden wird. Vielmehr gelten Kabelmodems als ein Mittel, um Knoten A in einem Haushalt mit der Kabelgesellschaft zu verbinden, und die Kabelgesellschaft definiert dann, wie der Rest des Netzwerks aussieht.
,
DrahtloseVerbindungen Der Bereich der drahtlosen Kommunikation erfährt sowohl in wirtschaftlicher als auch technologischer Hinsicht ein explosionsartiges Wachstum. Seit einigen Jahren ist AMPS (Advanced Mobile Phone System) der in den USA geltende Standard für Mobiltelefone. AMPS basiert auf analoger Technologie, weicht aber zusehends den digitalen Funksystemen, d.h. PCS (Personal Communication Services) in den USA/ Kanada und GSM (Global Mobile System) im Rest der Welt. Alle drei Systeme setzen derzeit ein Mastensystem ein, um Signale zu übertragen. Allerdings sind umfangreiche Bemühungen gemacht worden, um diese Infrastruktur durch ein Gitternetz aus Satefiten im mittleren bis niedrigen Orbit zu ergänzen. Diese Projekte, zu denen ICO, Globalstar, Iridium und Teledesic zählen, waren unterschiedlich erfolgreich. Diejenigen, die noch aktiv sind, konzentrieren sich vor allem auf die Telefon-Versorgung der wenigen Gegenden auf der Welt, in denen zellulare Mobiltelefone nicht funktionieren. Auf einer etwas weniger globalen Ebene können Frequenzbänder der Funk- und Infrarotbereiche des elektromagnetischen Spektrums benutzt werden, um drahtlose Verbindungen über kurze Entfernungen, 2.B. in Bürogebäuden, Einkaufszentren, Gebäudekomplexen und Universitätsgeländen, bereitzustellen. Im Infrarotbereich lassen sich Signale mit Wellenlängen von 850 bis 950 Nanometer für die mertragung von Daten mit Raten von 1 Mbitfs über Entfernungen von etwa 10 m benutzen. Diese Technologie setzt keine freie Sichtverbindung voraus, ist aber auf gebäudeinterne Umgehungen begrenzt. Irn Bereich von Radiofrequenzen werden derzeit mehrere verschiedene Bänder für die Datenkommunikation zur Verfugung gestellt. Unter anderem werden W d e r auf 5,2 und 17 GHz in Europa dem HIPERLAN (High Performance ~urbpeanRadio LAN) zugeteilt. Vergleichbar dazu wird in vielen Ländern Bandbreite auf 2,4 GHz für drahtlose LANs des IEEE-Standards 802.11 reserviert. (Weitere Bandbreite ist auf 5 GHz zwar verfügbaq aber leider starken Störungen durch Mikrowellenherde ausgesetzt.) Der sich derzeit abzeich-
.
I ,
aende IEEE-S802.11 uiterstiitzt Datenraten von 1 und 2 Mbit/s und wird ausilihrlich in Abschnitt 2.8 behandelt. Eine andere interessante Entwicklung im drahtlosen Bereich ist das BluetoothFd-Interface fW den Betrieb im 2,45-GHz-Frequenzband. Bluetooth ist für kurze Endernungen (in der Größenordnung von 10 m)mit einer Bandbreite von 1Mbids aysgelegt. Die entwickelnden Unternehmen planen die Implementierung dieses Interface in allen Geräten (2.B. Drucker, Workstations, Laptops, Projektoren, PDAs, Mobiltelefone), sodass keine Kabel rnehr in Büros benötigt werden (oder vielleicht zwischen den verschiedenen Geräten, die Sie an Ihrem Körper tragen). Für ein aus solchen Geräten bestehendes Netzwerk kursiert bereits der Begriff Piconet.
'
I
Kodierung (NRZ, NiUl Manchester, 48/58)
'
2.2
-
Im ersten Schritt unseres Vorhabens, aus Knoten und Verbindungsleitungen brauchbare Bausteine zu machen, müssen wir verstehen, wie wir sie so verbinden können, .da= Bits von einem Knoten zu einem anderen übertragen werden können. Wie irn vorherigen Abschnitt erwähnt, breiten sich Signale über Verbindungsleitungen aus. Die Aufgabe besteht daher darin, die Binadaten, die der Quelllcnoten in Form von w e n senden möchte, derart zu kodieren, dass sie von den Verbindungsleitungen iihamagtn werden können, und das Signa am empfangenden Knoten dann wieder in die entsprechenden Binärdaten zu dekodieren. Wir ignorieren dabei die Einzelheikm der Modulation slnd nehmen an, wir arbeiten mit zwei diskreten Signalen: high und bw. In der Praxis können diese Level zwei unterschiedlichen Spannungen in einei Kupferleitung d e r zwei unterschiedlichen Lichtpegeh in einer Glasfaserkitung entsprechen.
I
udrote werden oft gleichbedeutend verwendet der Manchester-Kodierung sehen, dass sie nicht das gleiche bedeuten. Wahrend die Manchester-Kodierung den Fall veranschaulicht, bei dem die Baudrate einer Leitung gröBer als ihre Bitrate ist, kann die Bitrate auch gr6ßer als die Baudrate sein. Das würde bedeuten, dass rnehr als ein Bit pro auf der Leitung übertragenemImpuls kodiert werden kann. Zur besseren Ver~1nxhaulichungnehmen wir an, wir können vier statt nur zwei mterschied1iche Signale über eine Leitung senden. Auf einet Anatog! Iej*i5~g3kZ,nnten d b vier Signale ~ e l s w e i s ~e ' ~ ~ ~ . 5 c hF$ecpmi e d ~ n1triTa11 r q P a1ntsprechen. N(& vier versMedmen Signalen illf es möglich, p"K1 Sima1 zwei baten& zu Mieren. Das heißt, das erste Signal bedeutet 00, dasszweite 01.um. Ein Sender {Empfänger), der irr der Lage ist, 1.000 tmpuise pro Sekunde J+-
&
t,
: J ~ > ? 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'
,
<
a, Errune 2 &t vdomn. Die Wiederiibmqung beginnt (wie üblich) nach dem Tiout-Intemail. Firames 4 bis 6 gehen verloren Die Wiedenibmgung beginnt nach dem Empfang des ersten DUPACK ode nach dem T i u z Reduziert dieses Schema die hrtragungszeit? Beachten Sie, dass die Ende-zu-Ende-Protokolle (2.B. Varianten von TCP) ein ähnliches Schema für die hrtragung ver, wenden.
3
33.,Wir möchten den Sliding-Window-Algorithmiismit SWS RWS r 3 und MaxSeqNum = 5 ausführen. Das N-te Paket DATAP(] enthält foqich N mod 5 in R seinem Nummernfeld. Führen Sie ein Beispiel an, bei dem der Aigorithmus durcheinander kommt. Das h a t , ein Szenario, bei dem der Empfänger D A T M erwartet, stattdessen aber DATNO] (das die gleiche übertragene Sequenznummer hat) entgegennimmt. Es dürfen keine Paket auf3er der Reihe ankommen. Bemerkung: Dies zeigt, ,dass MaxSeqNum 2 6 sowohl notwendig als auch hinreichend .?. ist. r,ii
i
M.Verwenden Sie den Siidmg-Window-Algorithmusmit
SWS = RWS = 3, keine
arißer der Reihe gnkommenden Pakete und Sequenzn-ern : Genauigkeit. Zeigen Sie:
mit endlicher
a. Wenn sich DATA[6] im Empfangsfenster befindet, kanxi DATA[O] (bzw. generell beliebige ältere Daten) nicht beim Empfänger ankommen (sodass MaxSeqNurn = 6 genügt hätte).
b. Wenn ACK[6] gesendet w e h kann (bzar. wenn sich DATA[SI im Sendefenmer befindet), kcuin ACK[2] (oder älter) nicht empfangen werden.
Dies beweist die Formel in Abschnitt 2.5.2'für den Fall mit SWS = 3. Teil (b) @&ziert, dass das Szenario der vorherigen Aufgabe nicht umgekehrt werden.kann, um einen Fehlschlag bei der Unterscheidung zwischen ACK[O] und ACK[S] einzubeziehen. 35. Der Sliding-Wmdow-Aigurib soll mit SWS = 5 und RWS = 3 ausgeführt
werden. Es dürfen keine Pakete auf3er der Reihe ankommen. a. Ermitteln Sie den kleinsten Wert für MaxSqNum. Sie können davon ausgehen, dass es ausreicht, die kleinste MaxSeqNum zu finden, sodass DATAW] nicht meht ankommen kann, falls sich DAT~aKSeqNum]im Empfangsfenster befindet. b. Belegen Sie anhand eines Beispiels, dass MaxSgqNum - 1 nicht ausreicht.
C.
Nennen Sie eine allgemeine Regel fiir die minimale MaxSeqMurn hinsichtlich S$ und RWS.
1 36. A und B sind über einen Router R wie in Abb. 2.47 miteinander verbunden. Die A-R- und R-&Verbindungen senden und empfaugen nur ein Paket pro Sekunde in jeder Richtung (sodass zwei Pakete 2 Sekunden benötigen); die beiden Richtungen übertragen unabhhgig voneMandei: A sendet an B mter Verwendung des Sliding-Window-Protokollsmir SWS = 4. a. Geben Sie für die Zeit = 0,1,2,3,4,5 Sekunden an, weiche Pakete an jedem Knoten ankommen und ihn verlassen bzw. beschriften Sie sie in einem Zeitstrahl. b. Was passiert, wenn die VerbindungsIeitungen eine Ausbreitungsverzögeruog von 1,O Sekunden haben, jedoch immer alie vorgesetzten Pakete annehmen (d.h. Latenz = 1Sekunde, aber die Bandbreite ist mendüch)?
@
Abb. 2Ak
üiagramm für die Obungen36 bis 38
37. A ist mit B wie in der obigen Obung iiber einen Router R verbunden. Die A-RVerbindung ist schnell, während die R-B-Verbindung nur je ein Paket pro Sekunde (sodass zwei Pakete 2 S e k n n b beniitigm), A sendet an B Verwendung des Sliding-Wind-Pmtokoiis mit SWS s 4. Nennen Sie für die Zeit = 0, 1 , 2 , 3 , 4 Sekunden, welche Pakete van A und B e i n g d q p und welche gesendiet werden, Auf welchen Umfang wächst die Warteschiange (Queue)in R an?
38. h a c h t e n Sie emeut die Situation der vorherigen Obung, gehen Sie d i e s 4 jdd &von aus, dass der h o e r eine \;KTm-b& von 1 hat. Das heißt, er 'kam jede Richtung) zusätzlich zu dem Paket, das er sendet., ein weiteres a d e b e n . Das Tuneout von A ist auf 5 Sekunden gesetzt; SWS ist wiederum 4. Erbutem Sie, was in jeder Sekunde von T = 0 passiert, bis alle vier Pakete der krsten vollen Fenstermenge erfolgreich zugestellt werden.
(L
39. Wanun ist bei Protokden, die auf das Ethernet aufsetzen, ein Längenfeld Un Hmder wich@ das die Lange der Nachricht angibt? 40. Welche Probleme können auftreten, wenn zwei Nosts im selben Ethemet die g i d e Hardware-Adresse besitzen? Beschreiben Sie, was geschitht und warum das ein Problem darstellt. 41. Die Ethernet-Spezifikation von 1982 erlaubt zwischen zwei Stationen #o&kahl mit ehw Länge.vm bis zu 1.500. m, ein weitem Pdct-zu.iPunktVerbindungskabel von 1.000 m, und zwei Repeata Jede Station und jeder
Welche RoundtripVenögerung, gemessen in Bit, ergibt sich im schlechtesten Fall auf Grund der in der Tabelle aufjjefühen Quden? (Diese Liste ist nicht vollständig; zu weiteren Venögerungsursachen zählen Leitungsabfrage- und Signaleinschwingzeit.)
,
42. Ethernet mit Koaxialkabel wurde auf maximal 500 m zwischen Repeatern begrenzt, die das Signal zu 100% seiner Originalamplitude regenerieren. Entlang eines 500-m-Segments kannte das Signal auf bis zu 14% seines ursprünglichen Werts (8,5 dB) abkiingen. Ober eine Srrecke von 1.500 m würde die Dämpfung dann (0,141~= 03% betragen. Auch über eine Strecke von 2.500 m ist ein solches Signal h e r noch stark genug, dass es gelesen werden kann. Warum ist also alle 500 m ein Repeater erforderlich? I
43. Angenommen, die Roundtrip-Verzögerung eines Ethernet beträgt 46,4 ps. Dies ergibt eine minimale Paketgröi3e von 512 Bit (464 Bit auf Grund der Ausbreitungsvenögening plus 48 Bit für das Jam-Signal). a. Was passiert mit der minimalen Paketgrö13e, wenn die Venögerungszeit konstant gekialten wird und die Signalrate auf 100 Mbit/s steigt? b. Welche Nachteile ergeben sich durch eine derartige minimale Paketgröße? C.
Wie könnte man die Spezifikationen schreiben, um eine kleinere minimale Paketgröik zu ermöglichen, wenn Kompatibilität kein zu berücksichtigender Faktor wäre?
44. Zwei Stationen A und B versuchen, über ein Ethernet zu übertragen, Beide haben ständig zu sendende Frames ausstehen. Die Frames von A werden mit Ai, A2 usw. durchnumeriert, und die von B auf analoge Weise. Die Basiseinheit des Exponential Backoff sei T = 51,2 ps. Angenommen, A und B versuchen gleichzeitig, Frame 1 zu senden. Die Frames kollidieren und wählen zufällig Ausweichzeiten von 0 X T bzw. 1 X T. Das
I
bedeutet, dass A das Rennen gewinnt und Al überträgt, während B wartet. B versucht am Ende dieser Übertragung, BI erneut zu übertragen, während A nun mit der Obertragung von A2 beguint. Diese Versuche kothdieren zwar ebenfalls, jetzt weicht A aber um entweder 0 X T oder 1X T aus, während B sich über eine Zeit zurückzieht, die einem Wert aus 0 x T, ..., 3 X T entspricht. a. Ermitteln Sie die Wahrscheinlichkeit, dass A dieses zweite Rennen sofort nach der ersten Kollision gewinnt. Das heißt, die erste Auswahl der Ausweichzeit k X 51,2 ps von A ist Meiner als die von B. b. Angenommen, Station A gewinnt dieses zweite Rennen. A überträgt also A3. Wenn sie fertig ist, kollidieren A und B wieder, weil A nun versucht, & zu senden, während B ein weiteres mal versucht, B1 zu übertragen.' Mit welcher Wahrscheinlichkeit kann A dieses dritte Rennen sofort nach der ersten Kollision gewinnen? C.
Nennen Sie eine sinnvolle untere Grenze für die W a e i n l i c h k e i t , dass A in allen verbleibenden Rennen gewinnt.
d. Was passiert dann mit Frame Bi? Dieses Szenario nennt man den Capture-Effectin einem Ethernet. 45. Der Ethernet-Obertragungsalgorithmussoll wie folgt modifiziert werden: Nach jedem erfolgreichen Obertragungmersuch wartet ein Host einen oder zwei Zeitschlitze, bevor er mit einer Neuübertragung beginnt; anc&mfails weicht er auf die übliche Weise aus. a. Erklären Sie, warum der Capture-Effect der vorherigen 0bung jetzt viel weniger wahrscheinlich ist. b. Erläutern Sie, auf welche Weise die obige Strategie jetzt dazu führen kann, dass zwei Hosts das Ethernet in Beschlag nehmen (Capturing), abwechselnd übertragen und einen dritten aussperren. C.
Schlagen Sie eine alternative Methode vor, 2.B. durch Modifizierung des Exponential Backoff. Welche Aspekte des vergangenen Verhaltens einer Station könnte man als Parameter für die modifizierte Methode verwenden?
' 46. Ethernets benutzen die Manchester-Kodierung. Angenommen, dass Hosts an
einem gemeinsamen Ethernet nicht perfekt synchronisiert sind:. Wieso erlaubt dieser Zustand, Kollisisonen bereits zu entdecken, kurz nachdem sie aufgetreten sind, ohne dass man auf die CRC am Ende eines Pakets warten muss? 47. Angenommen, A, B und C wollen übertragen und starten folglich gleichzeitig ihre erste Leitungsabfrage (Carrier Sense), während eine vierte Station D gerade überträgt. Zeichnen Sie einen Zeitstrahl, der eine Abfolge M c h e r Obertragungen, Obertragungsversuche, Kollisionen und Exponential Badroffs dar-
:
en e f i o a : S) Die wtgn C erfoig- die etfoigrei& A; und 2) es sokm minde-
-U
i,.,imzns viesICioIlisiaim edtsaehen.
-
Mi Wiederholen siebdie obige (hamg, d * d jedoch bei einem *-persistenten &hernotHiit p 0,33 ist (U.eine waremde !hdim EhemSgt 9ofw nach Prei.. werden der Leitung mit WahmdmW&tit pr sndedds w w a sie eiaen Zeit, schiitz von 51,2 p ab und wiederholt den Vorgang). Ihr Zeitstrahl sollte Ktiterium 1) aus der vorigen Obung erfüiien. Statt Kriterium 2) stellen Sie aber dat, dass mindestens eine Koiiision und mindestens eine Folge von vier Aufschüben trob einer ungenutzten Leitung vorkommen. Hinweis: Auch hier sind wieder ', a n e h r e r e ~ e n ~ d t
4.Adressen Läsen Sie folgende Aufgaben unter der Annahme, dass physikalische Ethernetavsgewablt werden: .
-I
zufq
'
'
,
a. Mt wekher Wabrs&idkhkeit sind zwei Adressen bei einem Netzwerk mit 1.024 Hosts gleich? b. Mit welcher Wahrscheinlichkeit tritt das obige Ereignis in einem oder mehreren von 220Netzwerken ein? . . 't Wt,dass zwei der Z3O Hosts in d e n Netze. Weiche -W werken von b. & gleiche Adresse haben?
Hinweis: Die Bergzbnung fiir e und c ist eine Veante dajeda& die des so m t m Gebyrtstags-Pzoblems benutzt wird: Welche Wahr, scheinlichkeit besteht bei einer Gruppe von N Personen, dass zwei Personen aus k Gruppe am gleichen Tag Geburtstag haben?Bei der zweiten Person ist die W-inlidkeit 1anderen .Geburtstag als die erste hat. Beiderdritt:eniedir: ,dass sie einen andem Geburtstqg als die m a n W e n hat, usw. Die Wa ichkeit, dass alle Geburtstage . mc-h Sand, iSt;.fei&&
,,
1
Lös3ing
was bei kleinen N angenahert folgendes ergibt:
SO. Anpjemmmen fünf Stationen in einem Ethernet warten darauf, dass ein anderes Paket fertig ist. Umnhe1ba.rdanach übertragen aiie gleichzeitig und koliidieren.
'I
%e den m e a r v r r *&F &es%%
L
,
'
Ein Token-Ring IEEE 8025 umfasst ~ ' ~ t a i i o n und e n eine KabUänge von iasgesslmt 230 m. WE viele Verzdgewngsbits müsste die Monitorstätion in den
Ring euifiigen? h n Sie diese Aukabe fiir 4 und 16 Mbids. Verwenden Sie eine dbreitungsrate von 2,3 X lagd s . Bei einem bestimmten Token-Ring-Netz wie m3DI darf eine Station das Tcrken &Ber eine gewisse Zeit (die Token-Hafiezeit bm. THT) behalten. Sci RingLatery die Zeit, die es dauert,bis das Token das Netzwerk vollständig &eist, wem keine der Stationen Daten zu wnden hat. sr. Drücken Sie die Effizienz dieses Netzwerks mit Hilfe von TWT und RingLatenz . aus, wenn nur eine einzige Station aktiv iss,
b. Welche Iihs~ellungvon M T wäre für ein Netzwerk optimal, bei dem nur jed s eine Station aktiv ist (Daten nun Senden hat)? C. Nennen Sie eine obere Grenze der Token-Umiaufzeit (Token Rotation Time, TRT) für das Netzwerk, wenn N Stationen aktiv sind. Ein ~ o k e n . ~ i & habe eine Ringlatenz von 200 PS. Zum Einatz kommt die StraW e der verzdgerten Tb-Freigabe. Welche effektive Durchsatzrate kann =eicht werda, wenn der Ring eine Bandbreite von 4 Mbit/$ hat? Weiche effektive Durchsatwate b s t sich erreichen, wenn der Ring eine Bandbreite von 100 Mbitls hat? Lösen Sie beide Aufgaben jeweiis fur einen aktiven Host und für *viele« Hosts. Gehen Sie beim zweiten Fa1 davon aus, dass ausreichend viele Hests 'übertragen, sodass man die für die Weitergabe des Tokens aufgewendete Zeit ignorieren kann. Die' GriSBe eines Pakets ist 1D.
,Bei einem Tokea-Ring-Netz mit 100 Mbids und einer Token-Udaufieit (TRT) van 200 ps darf jede Swtion jedes Mal,wenn sie im k&z dcs Tokens ist, ein I-WPaket übertragen. Berechnen Sie die maximale effektive Durchsatzrate, & jeder Host erreichen kamM Gehen Sie dabei von a) sofortiger Freigabe und b) vemisgester Freigabe aus.
Ein hesthmtes Token-Ring-Netzmit 100Mbids, das die verz6gerte Token-Freigabe verwende%umfasst 10 Smtionea. Es weist eine Ringlatenz von 30 ps und
<
.
T
a. Wie viele synchrone Frame-Bytes könnte jede Station unter der Annahme senden, dass allen die gleiche Menge zugeteilt wird? b. Angenommen, die Stationen A, B und C befinden sich in aufsteigender Reihenfolge im Ring. Aufgrund des einheitlichen synchronen Verkehrs beträgt die TRT ohne asynchrone Daten 300 ys. B sendet einen asynchronen Frame von 200 ps (2,s Kb). Welche TRT ergibt sich dann für A, B und C bei der nächsten Messung? Wer darf einen solchen Frame als Nächstes übertragen?
3 Paketvermittlung
Nicht alle Netzwerke sind direkt verbunden Die in Kapitel 2 beschriebenen direkt verbundenen Netzwerke leiden unter zwei Beschränkungen. Erstens ist die Anzahl der Hosts, die angeschlossen werden können, begrenzt. An eine Punkt-zuPunkt-Leitung können nur zwei und an ein Ethernet beispielsweise maximal 1.024 Hosts angeschlossen werden. Zweitens ist die geografische Reichweite eines einzelnen Netzwerks begrenzt. Ein Ethernet kann maximal 2.500 m abdecken, und Punkt-zu-Punkt-Leitungen könNature seems . . nen zwar recht lang sein, aber bedienen im Grunde den Bereich zwischen den beiden to reach many of Enden nicht. Da wir auf Netzwerke abzieher ends by long len, die sich auf globale Ausmage skalieren lassen, müssen wir uns als Nächstes mit circuitous rotes. dem Problem befassen, wie Hosts miteinander kommunizieren können, die nicht - Rudolph Lotze direkt verbunden sind. Dieses Problem ähnelt in gewisser Weise demjenigen irn Telefonnen: Ihr Telefon ist nicht direkt mit jedem Teilnehmer, den Sie möglicherweise anrufen möchten, verbunden, sondern wird über einen Switch vermittelt. Ein solcher Switch (oder Vermittler) erzeugt den Eindruck, dass Sie mit dem Gesprächsteilnehrner direkt verbunden sind. Ähnlich werden in Rechnernetzen Paket-Switche (im Unterschied zu den Leitungs-Switchen in der Telefonie) benutzt, damit Pakete zwischen Hosts ausgetauscht werden können, auch wenn zwis- . chen den Hosts keine direkte Verbindung besteht. In diesem Kapitel werden die wichtigsten Konzepte der Paketvermittlung eingeführt. Ein Paket-Switch ist ein Gerät mit mehreren Ein- und Ausgängen von und zu den Hosts, die der Switch verbindet. Als seine
.
Hauptaufgabe empfängt e;ianeinem.iaeruurUEU1 leitet sie an den richtigenAmgang weiter, sodass sie ihr jeweiliges Ziel erreichen. Fü die & wie der s'wik:h den ~richtigm*Busgang für ein Paket eraaitckit, giEK es mehrere MogikUa;en, die sich @ob in vexbindungs1ose und vurbindmgmrientierte Methoden giiedin kssen. Ein w i c w Problem, das SwitEh lösen musa, Ist die eadliche Bandbreite =iner Ausgänge. Kommt ein für euien bestimmten Ausgang vorgesehenes P& beim Switch an und übersteigt die Eingangsrate die Kapazität dieses Ausgangs, entsteht das PE* blem des ~onkuwennbetriebs.Solange dieser Zustand anhält, steilt der S w i d die Pakete in Warteschlangen (Puffern) ab. .. Dauert der Konkurrewbetrieb aber zu lange, geht dem Switch der Pufferplatz aus und er ist gezwungen, Pakete zu verwerfen. Wenn Pakete zu häufig.verworfen werden, sagt nuq der Switch ist überb t . Die Fähigkeit, ~onkurrdlizbetriebzu handhaben, gilt als einer seiner wichtigsten Leistungsaqekte. Viele HochleistungsSwitche nutzen exotische Hardware, um die Auswikkungen von Konkurrembetrieb zu reduzieren. In diesem Kapitel werden Fragen bezügtch Weiterleitung und KonkurrenzWeb in Paket-Switchen behandelt. Größtenteils wird dabei von verschiedenen paketvermittelten Tedinologien ausgegangen, von denen zwei h a d e r e Beachtung verdienen: Erstens die LM-Vermittlung, die aus dem Etbmmt-Bdgzng eiltstanden d heute eine der v~rherrschdenTechnologien in LAW-Umgehungen ist. .,Die wveite bemerkenswerte SwitchmgTechnologie ist das bei Telekommwiikatiasanbietern in Wide Area Netwoxks beliebte ATM (Asyncbronous Transfer Mode). SchlieSlich werden wir uns mit einigen Aspkten des SwitchDesigns -en, die beim Aufbau von gr&n Netzwerken berücksichtigt werden müssen.
+I
'
3.1 Vermittlung und Weiterleitung Auf einfachste Weise ausgedrückt, ist Vermittlung der Mechanismus, der die Zusammenschaltung von Verbindungsleitungen ermöglicht, um so ein größeres Netzwerk zu bilden. Ein Vermittler (Switch)ist ein Gerät, das über mehrere Ein- und Ausgänge verfügt. Es transferiert Pakete von einem Eingang zu einem oder mehreren Ausgängen. Zusätzlich zu den in Kapitel 2 behandelten Topologien, d.h. Punkt-zuPunkt-Leitung, Bus (Ethernet) und Ring (802.5 und FDDI), erhalten wir mit einem Switch die Sterntopologie (siehe Abb. 3.1). Eine Sterntopologie weist mehrere attraktive Eigenschaften auf: W
Obwohl ein Switch eine feste Anzahl von Ein- und Ausgängen hat, welche die Anzahl der an ihn anschließbaren Hosts beschränken, lassen sich durch Zusammenschluss mehrerer Switche große Netzwerke bauen.
W
Mittels Punkt-zu-Punkt-Leitungen können Switche untereinander sowie mit Hosts verbunden werden, was bedeutet, dass sich Netzwerke mit einer großen geografischen Reichweite bauen lassen.
W
Der Anschluss eines neuen Hosts an das Netzwerk durch Verbinden desselben mit einem Switch bedeutet nicht notwendigerweise, dass dadurch die bereits angeschlossenen Hosts eine schwächere Netzwerkleistung erhalten.
Die letzte Aussage trifft nicht auf die in Kapitel 2 behandelten Netzwerke mit gemeinsamer Nutzung von hrtragungsmedien zu. So können 2.B. zwei Hosts im gleichen Ethernet nicht dauernd mit 10 Mbids übertragen, weil sie das gleiche Obertragungsmedium nutzen. Jeder Host in einem vermittelten Netzwerk hat seine eigene Verbindung zum Switch, sodass es absolut möglich sein kann, viele Hosts mit der vollen Leitungsgesciiwindigkeit (Bandbreite) anzuschließen, sofern der betreffende Switch mit ausreichend Gesamtkapazität ausgelegt wurde. Die Bereitstellung eines hohen Gesamtdurchsatzes ist eines der Designziele für Switche; weiter unten kommen wir auf dieses Thema zurück. Im allgemeinen gelten vermittelte Netzwerke Abh 3.1: Ein Switch ermöglicht eine Sterntopologie.
S* ein t i m s p r & & . a k a & !5iCllv u r i a n $ e ~ E a i c l r & ~ ~ ~ ~ ~ A
W)agehirhlwsenSM. I h r &i&e Switch ist in A b . 3.3 dargestellt. in dieser i;ldrang haben wir die Eh-.und?Aw@@e jeder Leitung auf&tei&t,wrd jeder EinPort bezeichnet. (im allgemeinen gehm wir @vmausj dam ng bidimktional ist und folgiich Ein- und Auqang unterAnders ausgedrückt, verfügt dieser Beispiel-Switch über dcei Eingangs- und
Abb. 3.2 Beispiel des Protokollgraphen eines Switcha
Abb' 3.3: Beispiel-Switch mit drei Ein- und drei Ausgangs-Ports
;
Nun ist die Frage, wie der Switch entscheidet, welchem Ausgangs-Port er ein Paket m e i s t . Die aiigemeine Antwort lautet, dass er im Header des Pakets nach einem
diese Entscheidung zu treffen. Die Verwendung :-'diesesBezeichners unteosckeidet sich, .in den Details, es gibt aber zwei übliche - Methoden. Die erste ist die verbidnfigsEos.eMethode mit Da~agrmmenund die zweite die v e r b i n d u n g e & e mit uirdrreilen Leitungen. Eine dritte Methode,das Soures-Routing, ist waiger üblich, jedoch einfach zu erklären und besitzt einige ; lkeichner (Identifier) sucht, um
'. aYtzliche Anwendungen.
16%
I
3 PakrtvemWmg
Bei den Netzwerken brauchen wir eine MOgljchkeit, um die E ~ d k n ~ t zu e nidenWeren. Salche Bezeichner nennt man normalerweise AdrIn Kapitel 2 WUEden Adresseii bereits behandelt, z.B. die 48-Bit-Adresse im I3chemet. Die einzige A r d o m h g bei E&met-Adressen ist, dass kein Knoten die gleiche Adresse wie ein anderer haben darf. Um dies zu erreichen, wird sichergegtdh dass 41; Ethern&K ~ e eisen n gbbal emderrtigen üezeichner erhdten. h wehren Verlauf geben davon aus, dass jeder Host eine giobal eindeutige Adresse hat. Später wer& weitere niitz1idie Merkmale einer Adresse bewhriebm. Die Euideutgkeit ist aber unser dwgmgspunkt. Weirerhin muss man für jeden Switch die Ein-und Ausgangs-Ports identifizieren k6men. Hierfür gibt es mindestens zwei Möglichkeiten: Bei der ersten wird jeder Port numeriert und bei der zweiten wird der Port mit &m Namen des Kriotenß (Switeh d e r Host), zu dem er führt, bezeichnet. Vmbufig verwenden wir die Numetierung der Ports.
L
3.1.1 Datagramme Datagramme basieren auf einem unglaublich einfachen Konzept: Man stellt einfach Sichel; dass jedes Paket ausreichend Informationen enthält, damit jeder Switch entscheiden kann, wie er es an sein Ziel befördern muss. Das heißt, jedes Paket enthält die vollständige Zieladresse. Man betrachte das Beispielnetz in Abb. 3.4, bei dem die Hosts die Adressen A, B, C usw. haben. Um die Weiterleitung eines Pakets festzulegen, schaut der Switch in einer Weiwlei~ungstabelle(meist auch Routing-Tabelle genannt) nach. Das in Tabelle 3.1 aufgeführte Beispiel einer solchen Tabelle enthält die Weiterleitungsinformationen, wie Switch 2 die Datagramme im Beispielnetz weiHost D
F
Host H
Abh 3.4 Beispielnetz mit Weiterleitung von Datagrammen
.
schitt 4.1. Mit Routhg ise ein Ptaziw packt, der isn Hinter-
.
.
sehn, da^ dies im, Gepwag zu den meisten verbhd~ricntiemenNemwer-
--.*k~
bei dreneg ein bg;st@mm ~V8tbindungsmstand~ hsgesteflt: werden muss%h o r das eme Damp&gewndct werden kann. f Sendet ein Host e h Balret, hat er keine M6giichkeit fcsitzusteflen, ob das Netzwerk es zumUm kann, oder gar, ob der Ziel-Hastin &rieb &.
d&g V-4
auf &e ~ t s u t mmyitkm, r w i a ehe i&em&ve Rau% bei der sich der ~ u s f g l l ~ u n umgehp~ kt läpr, gefunden d die Weiterl e i ~ t a ~ fmtsprediend le aktualisiert werden kann.
Der letzte Punkt ist historisch betrachtet besonders wichtig für Datagrapnm-Netzwerke. Eines der vorrangigen Ziele beim ARPANET, dem Vorläufer des Xnternet, war die Entwicklung einer robusten Netztechnologie füx militärische Anwendunbei demn Verbindungsleiwen und Knoten bei kriegerischen Aweinandemmmgen j&mit ausfden können. Die Fähigkeit, Datenverkehr um Ausfalipunkte herd c i t e n , führte zum Design auf der Basis von Datagrammen.
nme für die Paketvermittlung häufig angewandte Technik, die sich stark vom Datagramm-Modell unterscheidet, ist das Konzept der virtsrellen Leitung (VirtualCircuit, VC). Diese als »verbindungsorientiertesModelle bewidinete Methode setzt voraus, dass man zuerst eine virtuelle Verbindung vom Quell- zum Ziel-Host aufbaut. Das Konzept wird in Abb. 3.5 verdeutlicht. Bei diesem Beispiel möchte wieder Host A Pakete an Host B senden. Wir können uns dies als zweistufigen Prozess vorstellen. In der ersten Stufe wird die ~Verbindunguaufgebaut, und in der zweiten ,erfolgt der Datentransfei:
Abb. 3 3 Beispiel eines virtwll vermittelten Netzwerks
In der Phase des Verbindurugsaufbaus muss in jedem Switch zwischen Quell- und Ziel-Host ein »Verbindzuigszustandu aufgebaut werden. Für den Zustand jeder Verbindung enthält der Switch, der an der Verbindung beteiligt ist, einen Eintrag in seiner VC-Tabelle. Jeder Eintrag enthält: i; einen virtuellen
Leik~ngsbezeichner(Virtual Circuit Identifier, VCI), der die Verbindung an diesem Switch eindeutig idenrifiziert und der im Header in den Paketen dieser Verbindung enthalten ist,
.-
)
das Interface, über das Pakete für diesen VC am ~witchankommen,-
:I
I
.?'
1
'
das Awgmgs-Interface, über 4sdie Pakte dieses VC den Switch v e i : h eben möglicherweise verdiedenen VClP fiir abgehende Pakete. ein Paket an dem jeweiliva-W= ins. k&+4&%W11dieses Paket an das anA u s g e ~ c mit e dem angqegaw-VCI, der zuerst in seinen Header geschrieben wurde, Kombination von Einuanm-VCI der Pakete, wie sie im Switch empfangen und dem Eingangs-Interface, an dem sie eintreffen, identifiziert die virtuelle ung eindeutig. Es können natürlich pawiiel viele virtuelle VerWindan
M Alig~lntiabnhi& gkichwid. Da VCI ist foigkk kcidg1aM einachner für die Verbindung; er hat nur Bedeutung für einen jeweiligen sitzt also nur lokale Reichweite (link locul scope). r, wenn eine neue Verbindung aufgebaut wird, müssen wir dieser Verbineinen neuen VCI zuweisen, utid zwar für jeden L '& der an dieser Verbindung igt ist. W ir müssen außerdem dafür Sorge tragen, dass der gewishlte VCI in Link nicht bereits von einer anderen bestehenden Verbindung au d*aa Zustands k i t t zwei gr& Klassen von Mnhoden Bci ersten wird der Zustand von einem Netzadministrator konfiguriert. In diesem ist die virtuelle Leitung ~permanentu.Selbstversrändlich kann sie der Netzabir auch wieder löschen. Deshalb sollte man sich eine permanente virtuelle (P-eilt V i Circuit, PVC)am besten als langlebigen VC vorstellen. 'Bei der zweiten Methode kann ein Host Nachrichten im Netz versenden, um diesen b d aumibaum Dies nennt man SigwEiskmmg, und die daraus resultiereden m U e n Leitungen sind ved@?lt.Das herausragende Merkma einer vermittehn &imtdlen Lei(Switchd Viaual CYcuit, SVCbiat, dass ein Host einen wichen %.C. dynamisch ohae E h g d des N ~ ~ r einrichten u m und löschen kann. i sbxa wate eigentlich eine b e k i b u n g für einen SVC als mvumit~ ~ weil s CS ,die Sgnahie-ruag (nicht die Vermittiung) ist, wodurch sich cin SVC ;pam h r n W C mtwheidet. Nehmen wir an, da M-tratoz möchte manuell eine vinueik Vera d t m g von Host,A zu Host B aufbauen. Dazu muss er zurrächst einen Weg h h :&s,Netz van A nach B i d m t h i e r e ~In ~ .dem B e i s p k h in Abb. 3.5 gibt -,nur .* miigkhe41 W&g,aber drw ist im b&aminen nichtder Fd.Der Adrninmator -.arWntm VCI-Wem au9, die momentan für keime der Leitungen der b W m .=YkrbWunjgenbenutzt werden. Für unser Beispiel nehmenwir aa,dasrcr da VCI-Wert & 8 & d i e b & u n g v ~ A Switdi w 1und 11futdieLeitusgvonSwitch1 auSwiteh 3 gewählt wurde. in diesem F d braucht der Switch 1 einen EWrag in seiner VCQhkilewie in Tab, 3,2 (r)ckwptelIt. h
L
E~aehmen~an,&~dieVCI-W~7"rdieLeitungvoaSwl~2zu %tch 3 uad 4 für die Leitung zu Hosr B gedldt wenkn. In diesem Fall muss jeder
Switch mit den VC-Tabelleneinträgen aus Tabelle 3.2 konfiguriert werden. Man beachte, dass der Ausgangs-VCI an einem Switch der Eigangs-VCI am nächsten Switch ist.
(a) VC-Tabelle in Switch I Elngangs-Interface
Eingangs-VCI
Ausgangs-Interface
Ausgangs-VCI
(b) VC-Tabelle in Switch 2 Eingangs-Interface
I
Eingangs-VCI
(C) VC-Tabelle in Switch 3
Rbdk3.2: VC-Tabdleneinträge für drei Switche
Nachdem die VGTabellen eingerichtet wurden, kann man zur Datentransferpha~ übergehen (Abb. 3.6). Für jedes Paket, das A an Host B mnden möchte, setzt er den VCI-Wert im Paket-Header auf 5 und sendet es an Switch 1. Switch 1empalle: diese Pakete an Interface 2 und benutzt die Kombination aus Interface und VCI im Paket-Header, um den entsprechenden VC-Tabelleneintrag zu finden. Wir sehen in Tabelie 3.2, dass der Tabelleneintrag in diesem Fall Switch 1anweist, das Paket auf Interface 1 weiterzuleiten und dafür den VCI-Wert 11 zu verwenden, Das Pak& kommt also bei Switch 2 an Interface 3 an und trägt den VCI-Wert 11, Switch 2 fiada Interface 3 und VCI-Wert 11in seiner VC-Tabelle (wie in Tab. 3.2 g e i g t ) md sendet das Paket weiter an Switch 3, nachdein er den VCI-Wert im Paket-Wdct korrekt aktualisiert hat (Abb. 3.7). Dieser Vorgang setzt sich fort, bis es bgi'Host !l mit einem VCI-Wert vari 4 ankommt. Aus Sicht von Host B weist si+'das Paket damit als von Host A kommend aus. In realen Netzwerken mit entsprechender Größe wäre der rekte Konfiguration von VC-Tabellen bei einer g r d e n schell sehr hoch. Deshalb wird last immer die eine oder
0
Abb. 3.6: Ein Paket wird in ein VC-Netzwerk gesenda
Switch 3 1
.LL
-
--,-*-
APD. a . ~ cin i Paket
findet seinen V durch das VC-Netzwerk.
mgmandt, aneh wem,man rpemnencea VCs einrichtet. Im FaU von PVG gt die !%gn&derung d d den Netzadmhhtracos, während SVGs normalere mit Hjlfe der Signaiisimg durch einen der Hose eingerichtet werden. W w M t e n nun, wie man den soeben beschriebenen VC mittels Signalisierung vom aw O ~ U O P kams I den Sigulisierun$sl~ozesseinzuleiten, speist Host Ai eulc AufbautmhiEht r$&mrerkein; in k m Fall an Switch 1, Die Nachricht mrtii~ltu.a. die ~01lsmp =ehdr= vofi Hmt B, Sie muss den gesamten Weg nr B zwücklegen, um den madigen VerbWgsl,ustand in jedem %tch auf dem Weg zu erzeqpn. Die w e r m a g der Aufbaunacbricht an B ist mit der k a g w g eines Datagramms a u-ichb 'in der Hirrsich&d a s die Switche wissen müwen, ü b welchen die Uacloficht zu senden ist, damit sie l d l i c h B erreicht. Vorläufig &men wir an, d a s die Switcbe -pug bibes die Netzmwktopologie wissen*una h r ~ u f i n hwia , die A&8u&a&t über die Switche 2 und 3 geleitet werdea und &f$ikh Host B erreichen kam. die ~ a b i n d u n g d a empfängt, ~e sendet er E;ie an Switch und rue Verbind* ehwn neuen Eintrag in seiner VC-Tabelie. ieser ag ist genau der gleiche wie vorher in Tabelie 3.2 gezeigt. Der entscheidende b g c h i e d besteht darin, dass nun die Aufgabe, dem Interface einen ungenutzten zuzuweisen, vom Switch übernommen wird. Bei unserem Beispiel wähit der Itdi den Wert 5. Die VC-TaMe emhidt jetzt folgende Informationen: wem mit &r;~icher5 m Port 2 aakommbn, d e sie vm Port 1ab.« Selbstver@&ichmuss der Switch Host A anweisen, in allen Paketen, die er an B senden wilt, VCI-wert auf 5 zu setzen. Wie er dies bewerlrsallig, w i d unten beschrieben. ,F
E2
Wenn Switch 2 die Aufbaunachricht empfängt, führt er einen Shnlichen Prozess durch. Bei diesem Beispiel wählt er den Wert 11 als Eingangs-VCI. Switch 3 wählt 7 als Wert fur seinen Eingangs-VCI. Jeder Switch kann eine beliebige Nimmer auswählen, salange diese Nummer noch nicht für eine andere Verbindung übet den gieichen Port benutzt wird. Wie bereits e r w h t , haben VCIs keine globale, sondern rn lokale Bedeutung. Schließlich kommt die Aufbaunachricht bei Host B an. Sofern B bereit und willens ist, eine Verbindung von Host A anzunehmen, weist er ebenfalls einen Eingangs-VCI-Wert zu in diesem Fail4. B kann diesen VCI-Wert benutzen, um alle von Host A kommenden Pakete zu identifizieren. Um die Verbindung fertigzustellen, muss jeder Komponente mitgeteilt werden, welchen VCI ihr jeweiliger Nachbar in Downstream-Richtung für diese Verbindung verwendet, Host B sendet eine BesWgmg über die Einrichtung der Verbind- $ ~ n Switch 3 und bindet darin den gewählten VCI (4) ein. Switth 3 kann nun den *Er%* Tabelleneintrag für diese Verbindung fertigstellen, weil er weiß, dass der AusgangsVCI 4 sein muss. Switch 3 seridet die Bestätigung an Switch 2 und gibt darin einen VCI von 7 an. Switch 2 sendet die Nachricht an Switch 1und gibt 11 als VC3 gm. Schließlich leitet Switch 1 die Bestätigung an Host A weiter und weist ihn an, f@ diese Verbindung VCI 5 m benutzen. An diewm Punkt verfügt jeder über alle notwendigen Informationen, damit der Verkehr von Host A nachHost B fließen kann. Jeder Swirch hat einen k~mplettenVG Tabdkneintrag für die Verbindung. Außerdem verfügt Host A über eine feste Zup sicherunk dass a l h über die Strecke bis zu Host B funktioniert. Irn Ergebnis sind di+ Tabelleneinuäge für die Verbindung in allen drei Switchen genau wie in d e n obige& administrativ konfigurierten Beispiel eingerichtet, der gesamte Prozess lief aber a w - J matisch als Reaktion auf die von A ausgesmdete Signa8sierungs~chrichtab. Nun k m die Datenrtansferphase be&nen; sie ist mit derjenigen im WC-Fall identish; Wem Host A keine Daten an Host B mehr senden möchte, baut er die Verbb. dimg dadurch ab, dass er eine Abbaunackcht an Switch 1sendet. Der Switch enp9 fernt den entsprechenden Eintrag aus seiner Tabelle und leitet die Nachricht an & übrigen Switche a d der Verbindung weiter, die dann ihrerseits die entsprechend&Tabeheintriige löschen. Möchte Host A jetzt ein Paket mit VCI 5 an Swit& 1s e ~ : den, wütde er abgewiesen werden, als hätte die Verbindung nie existkrc. Bei der vimrellen Leitungsvermittipng sind foigende Punkte wichtig:
-
Da Host A warten muss, bis die Verbindungsanfrage die Gegenseite erreicht ha? und von dort zurückkehrt, bevor er seinerstes Datenpaket senden kann, entsteht eine Verzögerung von mindestens einer R1T, bevor irgendwelche Daten gesen&t' -t werden.'
1. Dies trifft nur beschränkt zu;einige schlagen das optimistische* Übertragen eines Datenr: pakets unmittelbar nach dem Senden der Verbindungsanfrage vor. Bei den meisten heutigen Implementierungen wird aber mit dem I)bertragen von Daten gewartet, bis det Verbmmingsaidbau abgeschlossen ist.
hat. Leider ist dies
CaseSzenario reservieren. Wie so ~ fistt auch hier nichtalhsnur Schwarz oder Weiß. um Überlastzu vermeiden (wie kisn X.25-Mode10 oder last zu kümmern, wenn sie vorliegt (wie beim einfachen Da Einige dieser Design-Vorteilewerden in Kapitel 6 beschrieben.
I;m Vergleich &U verfugt ein mit Datagrafnmen arbeitendes Netzwerk über keine V e r ~ i d t q p aund ~ je&r ~ , Switch verarbeitet jedes Paket mbhangig. Wie ein auf Datagramm basiertes Netzwerk auf v e m M g e Weise Ressourcen mte* ist daher weniger offensichtlich. Sta#desen kankurriert jeda ankommende P a k mit allen übrigen Pakmn um Pufferplaa. Sind keine Puffer mehr frei, muss das ankommende Paket verworfen werden. Andererseits sendet auch bei einem Da&gram-basierten Netzwerk ein Queii:Host oft eine Folge von Paketen an den g h eben Ziel-Host. Jeder Switch kann die momentan in der Warteschlange stehenden Pakete anhand des QuellelZicl-Paars unterscheiden. Folgiich kann der Switch sicherstellen, dass die zu einem bestimmten QuelleZiel-Paar gehörenden Pakete einen gerechten Anteil an seinem Gesamtpuffer erhalten. Dieses Konzept wird ausfihkhet in Kapitd 6 behandelt.
da V
d & sehr belieh V& ii&ikmxhk-
dritte Veimittlungsinethode, bei der weder vimieiie Leitungen noch Daraist das so genannte Sowct.Routing. Die Bezeichnung ist , & ~ u f zurückzuführen, dass alle Informationen über die Netztopologie, die für die
~likmhthuip:eines Pakets durch das Netzwerk erforderlich sind. vom Quell-Host
Bei jedem an einem Eingang a n l r o d e n im Hea&r und befikdert das Paket zu dem auf dem W* zwigchen dem saxknden und dem Switch angesiedelt sind, muss enthalten, damit jeder Switch bescimist. Eine Möglichkeit ist es, eine
geordnete Liste mit Switch-Ports im Header zu speichern und diese +te qldisch w vawusebn, d a s s & n ä h S d auf der Strecke inmerani M a g , der L W d t . Al&. 3.9 stek dieses Koaznept ans&adi& .doii
Abb. 3.9: Source-Routingin einem vemitteken Netzwerk (Der Switch liest die Nummer ganz rechw,
Bei diesem Beispiel muss das Paket drei Switche durchlaufen, um von Host A zki? Host B zu gelangen. An Switch 1 muss es über Port 1,am n ä c k n über Port 0 und am dritten über Port 3 kufen. Wenn das Paket Host A verfässt, enthält es aiso d5c P o d t e (3,0, I),woki wir davon ausgeheh das$ j& S y o l t d jeweils das r e c k , Element in der Liste liest. U' s i d i e d e n , dass der nächste Switch die eng&-: chenden Informationen erhält, rotiert jeder Switch die Liste um einen Eintrag, nach dem er seinen eigenen Eintrag gelesen hat. Bei Verlassen von Switeh I auf dem Ws@: zu Switch 2 &ehr im Paket-Hader nun also (1,3,0). Swi& 2 fühtt ejne weitem Rotation durch und sendetein Paket mit (0,1,3) M Header ab. Switch 3 fiihrt dG noch eine fhia nicht dargestellte) Rotation durch, sodass der Header wieder in dregi Zustand versetzt wird, der bestand, als Host A ihn abgesendet hatte.
Jahres 2000 ausgesehen haben, als sei die optische ~ermittlungdie interessanteste Vermittlungsart überhaupt. Tatsächlich hat sich die optische Vermittlung Ende der neunziger Jahre auf Grund eines Zusammentreffens mehrerer Faktoren zu einer wichtigen Technologie entwickelt. Ein Faktor war die kommerzielle Verfügbarkeit von DWDM-Anlagen (Dense Wavelength Division Multiplexing), durch die es möglich wurde, haufenweiseInformationengleichzeitig über zahl-
„
1Welled~tplnsenden können, w&ei jede WeUentgiwe eine Wtenrae von sage h d xh<@be10GbW Wrrlern kam Ein +er ~aktorwar die h-ktcierMgbarkdt o p t k d k Verstärker* sche 5igmk werden gedämpft, währendsie sich durch die FarnMbewegen, uind nach drrer gdssen Strecke -4 40 rnUssen sie auf irgeMieine Arrraedtkt '(1 werden. Vor dem Aufkommen optisch Verstarker m u s m auf if dem so genannte Repeater installiert werden, um das optiidie Sind zu empfangen, es in I n dbitqles elektronischesSignal urnzuwancleinundesdannwieder inein @&es *F Signal ku konvertieren. Bevor men Daten ineinen Rweater einsseisen konnte, mus& man sie mit Hilf@ehes DWDM-Terminalsdemulti&xen. Fdglich war eine große Zahl von DWDM-Terminals erforderlich, nur um ein einzelnes Faserpaar Wr eine * broße Wernung zu unterstützen, Im GegenSatzzuRepeatem sind optischeVerstärker analoge Gerate, die jedes auf der Faser versendete Signal verstärken, auch wenn es auf hundert weiedenen Wellenlängen gesendet wird. Optische Verstärker machen die DWDM.Ausrilstung deshalb viel attraktiver, weil dadurch zwel DWDMTennimls rpitelnander kommuninerenklinnen, auch wenn sie Hunderte von Kfbmetem auseinanderliegen. Des Weiteren kann man seine DWDM-Ausrüstung sogar an , Wden Enden aufrüsten, ohne die mitten auf dem & liegendenuptischenVerstarker anrtihritnhmüssen, we/f d i e 100Wellediingen genauso gutvemtirkert wfe 50. *" Mit DWDM und optischen Verstärkern wurde es möglich, optische Netzwerke mit einer riesigen Kapazpazität zu konstruieren. Damit diese Netzwerke n ü w ~ hsind, brauchtes aber mindestens noch einen weiteren G e r i i m einen optischen Switch. Die meiIiten optischen Switchebewerkstelligen heute ihre eigentlicheVemittlungs- funktion elektronisch. Aus Sicht der Architektur ähneln sie also eher den leitungsvermitteiten Switchen des Telefonnetzes als den in diesem Kapitel beschriebenen pake8mmittelten Switchen. Ein typischer optischer Switch wrfltgt über vieJeInterfaces, die SONET-Framing und das Cross-Connect eines SONET-Kanals von einem ankommenden zu einem abgehenden Interface unterstützen. Mit einem optischen Switch wird es folglich mögfich,SONET-Kanäle von Punkt A zu Punkt B über Punkt C I.k; &reitzustellen, auch wenn es von A zu B keine direkte Faser gibt Es bedarf lediglich eines Pfads von A zu C, einen Switch auf C und einen Pfad vwi C zu B. In dieser Hinsicht ähneit ein optixher Switch in gewisser Weise den in Abbildung 3.5 darqestell- * „ ten Switches dahingehend, dass er die lllusion einer Verbindung zwischen zwei Punkten erzeugt, obwohl es zwischen ihnen keine direkte physisdie Verbindung " " gibt Allerdings bieten optische Switche keine virtuellen, sondern h t e u Leitungen $ B. einen SONET-Kanal), Einige neuere optische Switch-Typen uewendep,sogar~ . niikroskupikhe ~piegel,um das gesamte Licht von einem Switch-Port zu einem 7 anderen'abzulenken, sodass es von Punkt A zu Punk B einen ununterbrochenen - , optischen Kanal geben kann. F +e? wir &handeln' optische Vernelzung in diesem Buch aus Flatzgr#Jndennicht Klhrlich. Für viele praktische Zwecke k&inen Sie sich optische Netrwerke als feil der Infrastrukturvorstellen, die es Telefongesel%MET- oder andere Ateitungs&y&mbereitgptellen, und wann diese ben6Ugt werden. Man sd&qiIabe~ ,*i :beachiiwihsr vieie der s@t& h diesem Budi diskutierten Technologien, vde L B '$ -Rooting~mokolleum@Muitiprotokoll-Label-Switching, auch in der Welt der opti- - *
wi-
so
L
F
^
.„V
i
L
-
*
-
a s l < ?Xb e b*
4eiw&kh;..
2-
&eil
zg#g
VaO
I
B P a l w v ~ g
-
An dieser Methode lassen sich mehrere D@ feststellen: Er$basiert sie auf der Andune, &W Most A gdigend aber die WCtztopologk weg, iuneintn &odm Wden zu i h n e n , & alle richtigen Anwehqen für & auf dism Wi befindlichen Switche mWt, Das ist in.etwa veqlerrhbar mit dem A&ta da Wi&wtzi-Mim bei.^^ auf D a q r m m m bagicmm & m v d Ode dciet'Md- wohin ein Au&up&et in ehgn VC-Nm zu d e n ist. Zweiten8 W sich nick vorhersqp, * i gcd dw ~ e a d e sein r muss, weii er & & dem 'Weg zu d d - q u e S w i & ~ ~ ~ o n c t l - m~ f e Da n &?deutet, dass dass H a k t ehe e b l e Länge ohne abem Grenze haben müssen, wem tnan & m d l t W - d e r uaa den Paketen dw&querten S d t & ni&t mit hibsolurer GewiS$eit v o k r s q p kann. Drittem gibt ts diege Methode in mehi.erenVarianten. Start den Header ~ W s m h vertauschen, k 6 ~ t z.B. e jeder Switch nach Gebrauch e k b das erste ELemcnt entfernen. Die Roratiao weist gegenüber dieser Variute abez eh& Vorteil auf: Host B erhiilt &e K p l e des vghständigen Hmdem, was bei der WEdwg,wie er Most d kontakaieren k m &&eich ist. 3e&&er weiteren V& cjlrbält der EkadRL e h Zeiger aufden.akmdIqnEintsag des näcken Porte. Das laadtmtee, dass jeder Swiah ldgkh den w e r den Header aber sichr m&r.drdm muss. DieipE!Vmhntc.läwskh meist effizienter Uapleqtmtiereil. Die &V&m sind jzr Abb. 3.10 dwgamk.lnjedcm di- Falle m w der Switcb, B h h g A lestn und duc dichste Swizeh Ehmag 8.
.
beim Swkh an
,t,F,z,q ,qqiq
den Switch Headerwflm
, ~ ~ q qiöq,+, (a)
el
@)
(C)
Abb. 3.10: ürei Header-Varianten für das Soum-Routhg: (a) Zyklisches Vertauschen; (b) Entnahme; (c) Zeiger
Source-Routing kann sowohl in ~etzwerken,die auf Datagrammen basieren, als auch in VC-Netzwerken benutzt werden, Das auf Daragramm-basierte Internet-Protokoii beinhaitet beispielsweise eine Option, mit der ausgewiihlte Pakete mit Hilfe des Soura-Routing übertragen werden können, während die Mehrheit als herkömmliche Datalgamme vermittelt werden. Source-Routing wird auch in einigen VC-Netzwerken angewandt, um die anfängiiche Aufbauanfrage von der Quelle zum Ziel W befördern. Zum Abschluss halten wir noch fest, dass Source-Routing an einem Skalierungsproblem leidet. In einem v e r h ä l t n i d i g großen Netzwerk ist es für einen Host sehr schwierig, die vollständigen Pfadinformationen einzuholen, die er für die korrekte Zusammenstellung des Headers benötigt.
s
3.2 Bridges und lAFMwkhe
1
181
8.2 Bridges und LAN-Swihhe Wir haben einige grundlegende Vermittlungskonzepte behandeh und können uns nun auf spezifische Vermittlungstechnologien konzmttiwen. Wir beginnen mit der Betrachmng einer Switch-Klasse, die für die Weiterleim von Paketen in LANs mit gemeinsamen Medien, 2.B. Ethernet-Netzen, benutzt und deshalb meist als uLAN%t&e U bezeichnet werden. Ursprünglich wurden sie auch u Bridges genannt. ;' Angenommen, wir möchten zwei Ethernet-Netze verbinden. Eine mögliche 'Methode wäre, zwischen den beiden Netzwerken einen Repeater zu installieren, wie Ili Kapitel 2 beschrieben wurde. Dies wäre jedoch keine praktikable Lösung, falls &durch die physikalischen Beschränkungen des Ethernet überstiegen würden. b t l i c h können ja nicht mehr als zwei Repeater zwischen je zwei Hosts und &bt mehr als eine Reichweite von insgesamt 2.500 m realisiert werden.) Eine Alter~ltctivewäre, zwischen den beiden Ethernet-Netzwerken einen Knoten zu installie#%B, der die Prames mischen den beiden Netzwerken weiterleitet. ~ i e &Knoten h b d e im »Promiseu:uousModer arbeiten, also alle in dem einen Ethernet übertrageBen Frames annehmen und sie an das andere weiterleiten. Einen solchen Knoten nennt man Bridge (Brücke), und mehrere über eine oder m e h r e Bridges verbundene LANs werden als »erweitertes L A . * bezeichnet. In ihren einfachsten Varianten nehmen Bridges lediglich LAN-Frames an ihren Eingängen entgegen und leiten sie über alle Ausgänge weiter. Diese einfache Strategie wurde hden ersten Bridges umgesetzt, inzwischen aber verfeinert, sodass Bridges heute als effektiver Mechanismus für den Zusammenschluss mehrerer LANs gelten. Einige interessante Details werden im Rest dieses Abschnitts beschrieben. Eine Bjidge entspricht unserer Definition eines Switches aus dem vorherigen Abschnitt: ein Gerät mit mehreren Ein- und Ausgängen, das Pakete von einem Eingang an einen oder mehrere Ausgänge weiterleitet. Wie bereits erwähnt, bietet dies eine Möglichkeit, die Gesamtebandbreite eines Netzwerks zu erhöhen: Während ein e g e s Ethernet-Segment beispielsweise einen Gesamtverkehr von nur 10 MbitJs &fdrdern kann, erreicht eine Ethernet-Bridge 10n Mbirfs, wobei n die Anzahl ihrer P&s (Ein- und Ausgänge) ist.
'ss.1 Lernende Bridges
k
b erste Optimierung einer Bridge nutzen wir die Tatsache, dass sie nicht unbedingt Prames, die sie empfgngt, weiterleiten muss. Betrachten wir als Beispiel die &t*dge in Abb. 3.11. Wenn ein an Host B adressierter Frame von Host A an Port 1 '&onimt, besteht für die Bridge keine Notwendigkeit, ihn über Port 2 weiterzuleiC m.Die Frage lautet also, wie wir einer Bridge beibringen können, an welchen Port &e verschiedenen Hosts angeschlossen sind?
Abb. 3.1 1: Darstellung einer lernenden Bridge
I
-
Port 2
Bei einer möghchen Lösung lassen wir eine mit T a u e 3.3 vergleichbare Tabelle von einem Administrator auf die Bridge laden. Wann immer die Bridge dann an Port 1 einen an Host A adressierten Frame empfängt, würde sie diesen nicht über Port 2 weitergeben. Es bestünde keine Notwendigkeit da@ weil Host A den Frame bereits direkt von dem an Port 1 angeschlossenen LAN empfangen hätte. Sobald ein aai Hast A adressierter Frame an Port 2 empfangen wird, würde die Bridge ihn über Port 1 weiterreichen. Tabelle 33: Weiterieitungstabeileeiner Bridge
A
1
B
1
C
1
X
2
Y
2
z
2
Man beachte, dass eine Bridge, die eine solche Tabelle verwendet, das in Abschnitt 3.1.1 beschriebene Datagramm- oder verbindungslose Modell anwendet. Jeda Paket enthält eine globale Adresse. Die Bridge schlägt diese Adresse in ihrer Weiterleitungstabelle nach und entscheidet dementsprechend, an welchen Ausgang ein Paket zu senden ist. Die Pflege dieser Tabelle durch einen Administrator ist recht umständlich, insbesondere, wenn man bedenkt, dass ein einfacher Trick genügt, um es der Bridge zy ermaglichen, sich dieses Wissen selbst anzueignen. Die Idee besteht darin, dass jede Bridge die Quelladrebse in allen von ihr empfangenen Frames prüfen mussflean Host A also einen Frame an einen Host irgendwo an einem anderen Ende der Bridge sendet, empfängt die Bridge diesen Frame und merkt sich, dass er von Host A an Port 1 einging; Auf diese Weise kann die Bridge mit der Zeit eine ~ e i t e r l e i t u n ~ tabelle wie Tabeile 3.3 zusammenstellen. Beim Hochfahren der Bridge ist diese Tabelle leer; die Einträge werden erst im Lauf der Zeit erfasst. Für jeden Eintrag wird a d r d e m ein Timeout gesetzt, und die
diesen Eintrag ~ ~ d A e hh u f der einptel4ten Zeit. Dadurch werden
dem sich der Algorithmus für eine lernende Bridge implementieren
, : hdefioe
BRlffiE-TAB-SIZE
„ tdefine MM-TTL ,- typdef struct { ;;I
'
W
r destination; i n t f fnunber;
kp
bridgeMap
-
1024 120
/* maximale 6rtMe der Bridge-Tabelle */ /* Dauer (in Sekunden), bevor ein Eintrag entfernt /* MAC-Adresse eines Knotens */ /* Schnittstelle, über die er erreichbar /* Lebensdauer */ /* Binding i n der b p */
mapCreate(BR1DGE-TAB-SIZE,
ist
wird
*/
*/
si zeof (BridgeEntry) ) ;
D* Routine,welche.dieWeiterleitungstabelle bei Ankunft eines neuen Pakets aktua&&W, wird durch updateTi bereitgdk. Die übergebenen Argumente sind die - hhkct.eß&altene M A C - A d r ~ der Queiie und die Nwnmer des Interface, tiber &ses aakam. Eine weitere, hier nicht -Ure Routine wird in ~eg&nUigm &tänden aufgeden. Sie prüft d u Einträge der Weitarleitungtabelie, dehmm& das Feid Tn ( L e W m t )in jedem Eintrag und verwir& J3ntrapX in denen &e TiL 0 erreicht hat. Die iTL wird jedes Mal, wenn e h Paket ankommt, auf
einen vorhandenen T a b e U e h a g awfnrfriscben und das. Ziel erreichbar ist, auf das jeweils zuietzt empfan-
-
" . ~u#dateTablrr(HacAddp src,
int inlf)
f f [mapResolve(bridgeMap, b r c , (void
*.)U)E= FALSE )
/Y Diese Adresse ist nicht i f (numEntries
I
i n der Tabelle; versuche daher, sie einzufügen BRIDGE-TAB-SIZE)
*/
b = NEW(BridgeEntry); b->binding = mpBind( bridgdap, &src,b);
/X Verwende die Quelladresse des Pakets als Ziel adresse i n der Tabe1 le */ b->destination = src; nunEntri es++; 1 I el se
I
/* Diese Adresse passt jetzt nicht return;
i n die
Tabelle, also gib auf */ -
1 1
/* Setze TTL zurück
und
verwende das letzte Eingangs-Interface */
b->TTL = W-TTL; b->i fnumber = inif;
1 Man beachte, dass diese Implementierung eine einfache Strategie verwendet, falls die Bridge-Tabelle voll ist: sie schlägt einfach fehl bei dem Versuch, eine neue Adresse einzufügen. Wit wissen, dass Vollständigkeit der Bridge-Tabelle für die korrekte Weiterleitung nicht notwendig ist, sondern lediglich die Leistung verbessert. Befindet sich in der Tabelle ein momentan nicht benutzter Eintrag, läuft irgendwann sein Timeout ab, sodass er entfernt werden kann, um Platz für einen neuen Eintrag zu schaffen. Bei einer anderen Methode verwendet man einen Cache-Ersetzungsalgorithrnus, wem man feststellt, dass die Tabelle voll ist. Wir könnten beispielsweise den Eintrag mit der kleinsten TT'L suchen und entfernen, um einen neuen Eintrag unterzubringen.
Die oben beschriebene Strategie funktioniert so lange, wie das erweiterte LAN keiire Schleife enthält. Dann versagt sie kläglich: Frames können unter Umständen für immer im erweiterten LAN kreisen. Dies lässt sich leicht an dem Beispiel in Abb. 3.12 erkennen, bei dem die Bridges BI, B4 und B6 eine Schleife bilden. Wie kann in einem erweiterten LAN eine Schleife entstehen? Eine G m 4 ist, dass das Netzwerk von mehr als einem Administrator verwaltet wird, weil es sich beispielsweise über mehrere Abteilungen eines Unternehmens erstreckt. In einet solchen Umgebung ist es möglich, dass nie eine einzelne bestimmte Person die gesamte ihnfiguration des Netzwerks kennt. Das bedeutet, dass eine Bridge, die eine Schleik erzeugt, hinzugefügt wird, ohne dass jemand dies bemerkt. Ein weiterer; eher wahrscheinlicher Fall ist, dass die Schleife absichtlich in das Netzwerk eingefugt wird, um für den Fali von Störungen Redundanz bereitzustellen.
mitSc
auch immer: Bridges müssen in der b g e sein, Schleifen korrekt zu handhaben. bekannte Lösung dafüt ist, die Bridges einen verteilten Spadag-Tree-Algoritherweiterte LAN als Graphen vor, der
-_ '
5.13: (a) Beispieleines zykiixhen Graphen; (b) entsprechender Spanning-Tree
Der von Radia Perlman bei DEC entwickelte Spanning-Tree-Algorithmusist ein Protokoll, das einer Gruppe von Bridges angewandt wird, um sich über einen SpanningTree für ein bestimmtes erweitertes LAN zu einigen. (Die IEEE-Spezifikation 802.1 für LAN-Bridges basiert auf diesem Algorithmus.) In der Praxis bedeutet das, dass
186
1
3 PakmwmMhng
jede Bridge sich auf die Ports festlegt, über die sie Frames weiterleiten will. In gewissem Sinn wird dabei das erweiterte LAN durch Entfernen von Ports aus der Topologie auf einen zyklenfreien ~ a u m (Tree) ~ reduziert. Es ist sogar möglich, dass eine Bridge an der Weiterleitung von Frames überhaupt nicht teilnimmt. ~ i e mag s etwas seltsam erscheinen, wenn man bedenkt, dass man Schleifen in einem Netzwerk absichtlich bildet, um Redundanz bereitzustellen. Der Algorithmus ist aber dynamisch, was bedeutet, dass die Bridges stets darauf vorbereitet sind, sich wieder in einem neuen Spanning-Tree zu konfigurieren, f d s eine ausfällt. Als wichtigstes Konzept des Spanning-Tree sollen die Bridges die Ports auswählen, über die sie Frames weiterleiten. Der Algorithmus erledigt dies folgenderma&n: Jede Bridge hat einen eindeutigen bezeichne^ Wir verwenden für unsere Zwecke die Bezeichnungen BI, B2, B3 usw. Der Algorithmus wählt zuerst die Bridge mit der kleinsten Kennung als Wurzel (root) des Baums. Wie genau diese Auswahl abläuft, wird weiter unten beschrieben. Die Wurzel-Bridge leitet Frames immer über alle ihre Ports weiter. Als Nächstes berechnet jede Bridge den künesten Weg zur Wurzel und ' notiert sich denjenigen ihrer Ports, der auf diesem Weg liegt. Dieser Port wird auch als der bevorzugte Weg von der Bridge zur Wurzel gewählt. Schließlich wählen alle an ein bestimmtes LAN angeschlossene Bridges eine einzelne designierte Bridge, die für die Weiterleitung von Frames in Richtung Wurzel-Bridge zuständig sein wird, Die designierte Bridge jedes LAN ist diejenige, die der Wune1 am nächsten liegt. Befinden sich zwei oder mehr Bridges in gleichem Abstand zur Wurzel, gewinnt die' mit der kleinsten Kennung. Seibstverständlich ist jede Bridge an mehr als ein W angeschlossen, sodass jede an der Auswahl einer designierten Bridge für jedes LAEJ,' an das sie angeschlossen ist, teilnimmt. Das bedeutet, dass jede Bridge für jeden Port entscheidet, ob sie die designierte Bridge ist. Die Bridge leitet Frames über die Pom weiter, für die sie die designierte Bridge ist. Abb. 3.14 zeigt den Spanning-Tree, der dem erweiterten LAN in Abb. 3.12 ent- . spricht. Bei diesem Beispiel ist B1 die Wunel-Bridge, weil sie die kleinste Kennung hat. Man beachte, dass B3 und BS an LAN A angeschlossen sind, B5 aber die designierte Bridge ist, weil sie näher an der Wurzel liegt. B5 und B7 sind an LAN B angeschlossen, jedoch ist hier B5 die designierte Bridge, weil sie die kleinere Kennung hat; beide befinden sich in gleicher Entfernung von BI.
2. Die Darstellung eines erweiterten LAN als abstrakter Graph ist ein. wenig seltsam.
h
Grunde entsprechen die Bridges und LANs den Knoten und die Ports den Kanten des, Graphen. Der von wns fiir diesen Graphen berechnete Spanning-Tree muss aber nur die Knoten überspannen, die den Netzwerken entsprechen. Knoten, die Bridges entsprechen, könnten vom restlichen Graphen abgekoppelt werden. Bei dieser Situation werden alle Ports, über die eine Bridge mit verschiedenen Netzwerken verbunden ist, vom Algorith1 mus entfernt.
hbbh3.1& ' Sp~wihg-Tmmit einigen nl&t ausgewähltenPMts
~
h es für d einen Menschen moghch ist*dns in Abb. 3.12 dargcndte erweiterte zu betrachten-und daraus den 'Spanning-Tree wie in Abb. 3.14 entsprechend den obigen Regeln zu berechnen, ve-n die Bridges in einem erweiterten LAN &ht iiber die Fähigkeit, die T~pologiedes gesamten Nemerks sehen zu können, & ZU schweigen von einem Blick in andere Bridges, um deren Ktnnung zu sehen. @ttdmen müssen die Bridges Konfigurationsnachrichten untereinander austauwben und auf deren Basis dann entscheiden, ob sie die Wurzel oder ehe designierte &i@e sind.
W Ko&~&rationsnachtichtenenthaiten insbesondere drei Informationen: 1. Die Kennung der Bridge, welche die Nachricht sendet. 2. Die ~ e n k der n ~Bridge, welche die sendende Bridge für die Wurzel-Bridge hält.
3. Die Entfernung von der sendenden zur Wunel-Bridge in »Hopse.
Jede Bridge hält die momentan »beste« (wird unten definiert) der Konfigurationsn3)chrichten fest, die an einem ihrer Pom a-tauchen. Dies betr& Nachrichten, EtEe sie von anderen Bridges erhält, und Nachrichten, die sie selbst ührtragen hat. Anfangs häit sich jede Bridge für die Wuzel und sendet daher eine KonfigtzrationmaJincht aber alle Ports, At der sie sich unter Angabe einer Entferaung zur Wurzei V/ 0 als W d identifiziert, Bei Erhalt einer Konfigurationsnachr&Atüber einen bestimmten Port prüft die Bridge, ob diese neue Nachricht besser als die momentan für diesen Port aufgezeichete beste Konfgurationsnachrichtist. Die neue Konfiguratiomnachricht gilt ais %bessereals die momentan vorhandene, wenn
sie eine Wurzel mit einer kleineren Kennung identifiziert, oder i
eine Wurzel mit gleicher Kennung, jedoch kürzerer Entfernung identifiziert, oder Wunelkennung und Entfernung gleich sind, die sendende Bridge aber eine kleinere Kennung hat.
Ist die neue Nachricht besser als die momentan aufgezeichnete, verwirft die Bridge die alten Informationen und speichert die neuen. Sie addiert aber zuerst 1 auf das Entfernung-zur-Wurzel-Feld, weil sie selbst einen Hop weiter von der Wurzel entfernt ist als die Bridge, von der die Nachricht stammt. Empfängt eine Bridge eine Konfigurationsnachricht,in der angegeben wird, dass sie nicht die Wurzel-Bridge ist (d.h. die Nachricht stammt von einer Bridge mit eher kleineren Kennung), bricht sie das Erzeugen von Konfigurationsnachrichtenab und leitet stattdessen nur Konfigurationsnachrichten von anderen Bridges weiter, nachdem sie zuerst 1 auf das Entfernungsfeld addiert. Empfängt demgegenüber eine Bridge eine Konfigurationsnachricht, in der angegeben wird, dass sie nicht die designierte Bridge für diesen Port ist (d.h. die Nachricht stammt von einer Bridge, die entweder näher an der Wurzel liegt oder gleich weit von ihr entfernt ist, aber eine kleinere Kennung hat), hört die Bridge mit dem Senden von Konfigurationsnachrichten über diesen Port auf. Nachdem sich das System stabilisiert hat, erzeugt nur noch die Wurzel-Bridge Konfigurationsnachrichten, während die übrigen Bridges diese Nachrichten lediglich über die Ports, fiir die sie jeweils die designierte Bridge sind, weiterleiten. W u betrachten als konkretes Beispiel &als Abb. 3.14 in einer Situation, in der gerade die Stromversorgung im ~ebäkde,das dieses Netzwerk enthält, wiederhergestellt wurde. Alle Bridges bbten also gleichzeitig und mit dem Anspruch, sie seien die Wurzel. Wii bezeichnen eine Konfigurationsnachricht von Knoten X, mit der er beansprucht, seine Entfernung vom Wurzellmoten Y sei d, mit fi d, X). Konzentriert man sich auf die Aktivität an Knoten B3, erkennt man folgende Abfolge von Ereignissen: 1. B3 empfängt (B2,0, B2).
2. Da 2 < 3, wird B2 von B3 als Wurzel akzeptiert. 3. B3 addiert 1 zu der von i2angekündigten Entfernung (0)und sendet folglich (B2, 1, B3) in Richtung B5. 4. Inzwischen wird B1 von B2 als Wurzel akzeptiert, weil sie die kleinere Kennung hat; B2 sendet (BI, 1,B2) in Richtung B3. 5. B5 akzeptiert B1 als Wurzel und sendet (BI, 1, BS) in Richtung B3.
6. B3 akzeptiert B1 als Wurzel und stellt fest, dass B2 und B5 näher als sie selbst an der Wurzcl liegen. B3 bricht dataufhin die Weiterleitung von Nachrichten an ihren beiden Interfaces ab. In der Konsequenz sind bei B3 beide Ports nicht ausgewählt, wie Abb. 3.14 zeigt.
übaf j h &bea (smgawä#dten) Porx ab, mit Ausnahme des Pom, Frame empfanm wurde W&& d g e n m die deiche W e b ~ ~HicP ms&ddes n a b e r d i e M ~ ~ t ~ w 1 1Grsaauso l ~ n i ~ gen&eht. Mm b & t a abeq d a s m.eiatb ~ Lö- e
Die gerade beschriebene Multicast-Erweiterung wurde zwar bereits vorgeschlagen, in der Praxis jedoch noch nicht in nennenswertem Umfang übernommen. M&cast wird in den heutigen erweiterten LANs genauso wie Broadcast impkaentiert,
3.2.4 Beschränkungenvon Bridges Die oben beschriebene, auf Bridges basierte Lösung wird generell in einer relativ begrenzten Umgebung benutzt, d,h. zur Verbindung einer Handvoll gleichartiger W s . Die wesentlichen 33eschränkungen von Bridge werden augenscheinlich, wenn man sich mit Fragen wie Skalierung und Heterogenität befasst. Hinsichtlich Skalierung ist es nicht realistisch, mehr als ein paar LANs mit Bridges zu verbinden. In der Praxis bedeutet »ein paar« einige Zehn und mehc Das hat zum einen den Gru& dass der Spanning-Tree-Algorithmuslinear skaliert. Das hegt, es gibt M erweiterten LAN keine Mögiichkeit für den Aufbau einer Hierarchie, Ein weiterer Grund ist, dass Bridges alle Btoadcast-Frarnes weiterleiten. Während dies für alle Hosd in einer begrenzten Umgebwg (z.B. innerhalb einer Abteilung) angemessen erscheinen mag, ist es unwahrscheinlich, dass aile Hosts in einer grökren Umgebung (z.B. einer großen Firma oder Universität) alle Broadcast-Nachrichten erhalten möchten, die nicht an sie gerichtet sind. M t anderen Wortmc Broadcast skaliert nicht, sodass sich auch das erweiterte LAN nicht skalieren lässt. Ein Ansatz zur Erhöhung der Skalierbarkeit von erweiterten LANs ist das yirtarelle U N (VLAN).Hierdurch lässt sich ein einzelnes erweitertes LAN in mehrere scheinbar getrennte LANs aufteilen. Jedem virtuellen LAN wird ein Bezeichnet (den man auch Farbe (color)m t ) zugewiesen, und Pakete können von einem Segment ZU einem anderen fiießen, wenn bei& Segmente d m gleichen Bezeichner haben. Dies fuhrt nu Einschränkung der Anzahl von Segmenten in einem erweiterten LAN, die ein bestimmtes Bmadcast-Paket empfangen. Wir erloiutem die Funktionsweise eines VLAN anhand eines kispiels. Abb. 3.15 zeigt vier Hosts an vier verschiedenen LAN-Segmenten. Ohne VLAM würde ein Broadcast-Paket von einem Host alie übrigen Hosts erreichen. Wir definieren nun die Segmente, an die Hose W und X angeschlossenen sind, als ein W,das wir VLAN 100 nennen. Ferner definieren wir die Segmente, an die Hosts Y und Z angeschlwsui sind, als V U N 209. Hier& müssen wir einen Bezeichner ( W - D )aa jedem %tx der Bridges B1 und B2 konfigurieren. Die Verbindungsleimg zwischen B1 und B2 wird von beiden VLANs benutzt. Abb. als: Zwei vlrtudle LANs teilen sich ein Badcbone.
W I00gehört. Unter ke'airen zu Host Z v d c k t , auch wem es
Wem eh Ha&,oder atrf &Sc-&% Hm~utlter
#hiLa$az d
d die ph~Bai:&
eines ei&adhen TMmnet
h&~i%&t39,5d~b~,WbT& J& ddhd1e A T h f - N & -
:
eher wichen Umgebung eine Roiie spielen.
gering und vorhersagbat Als letztes Beispiel für die Konsequenz von Bridges
m&@ich(derdings unwahrscheinlich), das$ die R & h d d g evon Frsunes in r erweiteden LAN veriindeir wird, Demgegeniiber wird k Reihdolge in e e i n f a h Ethernet nie veriindert, Wir scWe13en daraus, Ass es nie s i c h ist, N M Z ~ sohmm unter der h a h m e zu entwickeln, dass sie nur in einem einvgen E r h c m Segment läuft. Es gibt eben auch Bridges. i.;
3.3 Zeilenvermittlung (ATM) Eine weitere Vermittiungstechnologie,die besondere Aufmerks Asydwonous T m J w Mode (ATM), ATM ~ ~ e lsich t ine den Anfang der neunziger Jahre W S verschiedenen Gdnden als nicht mletzt, weii sie von der Telefanindustrieübefnowurde,di . dw Z;rau~nkomm&tic>n weaiger aktiv waq a u i h ah Anbieter von leifungen, auf die a n k e ihre Nemexke adsetztm. ATM kam a b tdmaLogie mit hohen c k m h w i n ~ e i z e nweh gerade znm richtigen den Markt, als Protokolle wie E&eltriex; uad 802.5 mit ihren In gewisser Weit% b-ert ATM mit Edmmet-3&tching, die Anwend &eiche. dieser beiden Tedmolugien überlappen sich aber nur teilweise.
bete-
dass sie h e i l e l.ehngen auf ahnüelre W& h n w t , wie i 3A.2 beschrieben wurde. In der ATM-Terminologie wird die Phase dmgtiaufbaus als SiHierrsng: bezeichnet. Das wkbgste Signa& fül. ATM ia Q.2931. Abgesehen von der Bmittl- eher geeigneten ein ATM-Netzwerk ist 4.2931 auch die Zuweisung von Rms chcs endeng der Leitung zusWdig. Dies mil .sicbcps&?a, k die hesbmte IXemtgiite (Quaiity of SefvieeyQsSj adwzkt. TatsäEhPidx s Pihgkeiten vaa A m eine der grafsten Stärken dieser Technole. Dieses wird in Kapitel 6 au&h& behandelt. Wem eine visuelle V~rbinditngeingesichtet-wird, ist es a w e n &zubinden. In. ATM sind fiit adresse in die Si*m&icht mehrere F ~ r m a a~m&j&h.Die g e b i r i u d i c h ~sind B164 w d k v b A c e s PBirit). Die EineIheiten dieser Formate sind hier nicht wk&g;l kstzuhaitm bleibt n w dass sie sich von den in h m k g d i c b e n m n MAC-Adrm~mu n t d e i d e n . ATM e e i k sich in&esondere dadmh aus, dass die!in einem A T M - N d vemniamPakete eine h e Urige h b e m 53 Byte 5 Byte für den M d e r md 4% fgB dic Nwdatm, Diese recht interessante F~stlegmg uivird weiter unten aus&erklärt. Um diese Pakete mit fester Länge von den in Rechnemetzen üblicheren miovar9ler Länge zu bezeichnet man sie als Zellen Mithin kana ATM a4s Paradebeispiel der &iienvermidung betrachten.
-
6:
&&b i s b hehaadehea- P
%9€h~1*
nutzen Pakete mit variabler
aket a ~ ~ m reh mush n Dies & w~rwclse ein Header ohae e &weite-. Die d w e Grate, kann von x d e d m F b r e n Die maximale FDDb-Pakq& bestimmt z.B., wie hange jede Station bis
.
schiedenen Faktoren, die in den folgenden Absc-en
erkiäd
mct vwiabk l h g e weisen einige angeaebme Merkmale auf. Hat man nur zu i i b g b a 4z.B. um den &halt eisesPakets zu bmtiitigen), bildet-man ein mit midmder Gräße. Eine g x e e Datei man in kiiebig viek Pakete GE& aufteilen. Das W, man rnuse im ersten Fall keine extra Füilund im zweiten wird das Verhältnis zwischen Header- und D a n rgeschraubt d damit die Bandbreiteneienz erh~ht.Aukdem
-
pro ,Sekundesie vhrbeiten Mnneri,
gluch A*be &alle1 ad&en lusm, wobei jedes für die hird&hnmg ,riirrrAu$nbs@rwhWbrnueht.
'km i t c G m & nlw die Möglichkeit pa.PMeEtnt, v h c s ~ dk t SMi~barI:-.---
.12dit von Switch-Designs. Es wäre falsch zu sagen, dass schnelle, parallele Hardware-
'
Switche nur bei Verwendung von Zeiien mit fester Läng~gebaut werdea kO.)ilf~-. Mit Sicherheit Iässt sich aber sagen, dass Zelien die Entwicklung s o l c h Hardware vereinfachen und dass zu der Zeit, & die A T n 4 - S b e f s definiert warden, bemh dangrekhes Wissen darüber vdilgbar waq wie mche 2kW.en~Swkhe in HadL ware rdisiert d e n konnten. Ein weiteres günstiges Merkmal von Zellen hat mit dem Verhalten von Warteschlan$:enzu tun. Warteschiangen bilden sich in einem Switch, wenn Datemrkeht von mehreren Eingängefi für ein und denselben Ausgang vorgesehen ist. Nimmt nian. e h P a k t atw &er WarteSchlange, um es zu übertragen, mms man im Bdlgemeinen mla- fortfahren, bis das gesamte Paket übertragen ist es wäre nicht sinnvoll, & tsbemagung zu unterbrechen. Die längste Zeit3 die ein Warteschkngenausga&j b w t a =in kann, entspricht demnach der Zeit, 'bis ein Pake mit r n a W e r I;rik iibemagen ist. Zellen mit fester Lage bedeuten, dass ein Wartesdmgnaus~azqg nie länger als für die Daua der Obertragung einer Zeile besetzt ist. Dies ist mit so: & Sicherheit küner 4 s bei einem P b mit nmxider Grö%ein einem N e ~ e r k fürPakete mit variable Länge. Ist &o straffe Kontrolle der Latenz beim Durchgm$j von &lien dw& aine Wzrteschlaage wicht& bieten 2hika ein- gewissen Vortd. Selbtvnseändlich können trotzdem lange Wmeschhngen entstehen, und die T i sache, dass einige SeHcn warten rnibtm, h t sich nicht vermeiden. Was maai gnit Zdien erreicht, sind n i ~ h twesentlich b r e Wartedangen, sondern genawere Konrrolie über ihr VerWtcn. Wir erliiuern dieses Konzept d a n d eines Beiopiels. Gegeben sei ein Netzwwk mit Paketen variabler Lange; die maximale P & d h g e beträgt 4 KB, und & Gdwhdigkeit der Verbbdungsleitung ist 100 MbMs. Die übertragung eh& Pakets mit maximabr Gräße dauert 4096 X W108 = 32?,68 p.Eh Paket mit h h e r Pric&$t, das ankommt, kurz nachdem der Switch mit der O b g u n g eiaes 4-K& Pakets begonnen W,muss also 327,68 p in der WamscMange verharren rrtrd fb den Zu& auf cüc Verbindungsleitung Watten. Würde der Switch demgeg~niibez . 5 3 - B y t e - ~ eübem&teIn, ~ wäre die längste Wartezeit 53 x 8/100.= 444 ps, Diics mag auf den esmn B k k kein sehr gm&r Vorteil sein. Die Fähi&eit, V m ö 4 vor allem ihre zeidkh S c h w h g (jitter) zu kontroilieren, kann sich bei ein& g e A~wend&gen ~ &er als wichtig erweisen. Die Ww-gen sind bei Verwendung von &den auch aus folgendem Grund etwas bhmx als bei Pa&etcn: Kommt ein Piket bei eine leeren Wartdange a$, mws der Switch normalerweise warta~,bis das gesamte Paket empbgen W, bevor er mit dessen YV.&arleining über eine abgehende Verbindung b&en kam. Das bedeutetz&W.& V~bkdmqpleitungwährend der Ankunft e i n e s ' p t s uegenutzt ist. % d t man sich statt e h e s groBen Pakecs eine Reihe kleiner Zeilen vw, wird klar, k der M c h dle erste Zeile ü k a g e n kann, soMd sie in die Wimmer eingetreten ist. Was wilde irn sbigea Beispiel passieren, wem zwei,&KB-]Pakete bbk 3ekhzeitig in e h Warkddmge ankommen? Dii V e r W @ m g 327,68 ps lang ungenutzt, während diese beiden Pakete ankommen, und d Ablauf k r Zeit hätten wir 8 E;B ip der Wmmchhnge. Erst daqn ist das Abarbeiten dieser Daten aus der Warteschlange möglich. Würde man die gleichen beiden
-
dklbrmg~ngdsrtZelle;n4~4~m& V- 327&8 p W& die Verbinwleiknapp über 4 K B ~ a t &t Kll übrig. K k m e W m a n g e n bedeuten
g m m a n , & h e ~ $ I l t , H ~ P & ~ d t ~ ~ z u
der prozentuale Anid der Bandbreite da iese Situatiion &dt sic& wem mman Gerate bestimmten akimdm Z e l l d pro SEbrndc
Zellen, aun ~ l imfhr ) sinkt in &F&wu Zelh@ik die (3mmdmmate. Ein solches Gerät ist z.B. ein die U e n ni gnößR1.en .Eiab&cn,tk o r ,sie sie an Host weitergibt. Die Leistung ehes s o k h Geräts hängt unmitbelbar von d a W e n g t ö &ab. Lngt man W~ die M W e n zuB groB aus, wird hndbdte verweil die ü l m m a m Zehn auf eine v o m Zeiie aufgchillt werden Nimmt die Zeh ~ 1 3 Nutzdaten . im Umfang von 48 Byte auf, &end man 1 Byte senden will, muss man 47.FüU-Bytes iibcrcragui. Kommt dics ba-ufSgvor, *die Au&stung der VerWuWining sehr gering.
.
Dw 4&ByteK~rnpromiot
I
Die Erklärung, warum der Nulzdatentell einer ATM-Zelle 48 Byte beträgt, eine ausgezeichnete Fallstudie von Standardisierungsverfahren. Während der Ausarbeitung des ATM-5-ndards drilngten die US-Telefongeseflschaften auf eine fellengröße von 64 Byte, wahrend die euroHisclren CeseHxhaften für 32-ByteZeilen waren. Die Europäer bevorzugtendie kleinere Gr(Sße, weil viele der betreffenden Länder so klein sind, dass die jeweilige Telefongesellschafi keine Echokompensatoren instalieren musste, wenn sie in der Lage war, die durch die F$zwgung einer vollständigen kleinen Zelle eingeführte tatenz gering m halten. Filr diesen Zweck galten 32-Ifyte-Zellen ab angemessen. Im Gegensatz dazu mClssen Telefongesellxhaften in den USA große W i e abdqdcen, sodass sie ohnehin Echokompensatoreninstallieren mussten, Daher entsprach die höhere Zellengröße dem Wunsch, das Headermufzdaten-VerMltnis zu verbessern. Im Endeffekt wurde ein Kompramissgefunden: 4TByte ist der Durchschnitt von & und 32 Byte. Um nicht den falschen Eindruck zu erwecken, dass es sieh -- dabei wn einen Einzelfall handek weisen wir darauf hin, dass ~chichtigmCMbModelf e h Kompromiss zwischen sechs und gefunden wurde.
Die effiziente Auslastung von Verbindungsleitungen ist nicht der einzige F a k t o ~der die ZellengröSe beeinflusst. Die Zellengröik hat 2.B. eine besondere Wirkung auf Sprachübertragung,und da ATM aus dem Telefonbereich stammt, war eines der vorrangigen Ziele die effektive Ubertragung von Sprache. Die dem Standard-Digimlkodbrung von Sprache erfolgt in 64 Kbit/s (8-Bit-Signale, die in 8 kIlz abgetastet wer. den). Um maximale E"zienz zu erreichen, sdlte man Sprachdaten im Umfang einer voilen Zelle sammeln, bevor man diese übertragt. E i e Abtastrate von 8 kHz bedeutet, dass alle 125 p ein Byte an Daten anfällt. I% dauert also n x 125 ps, um e h tl-Byte-Zelle mit Sprachdaten zu füllen. Bei Zellen mit einer Länge von beispielsweise 1.000 Byte würde es also 125 ms dauern, um genügend Daten ftir eine volle Zeile zu sammeln, bevor man überhaupt mit der Obertragung an den Empfänger beght)~l kann. Eine derartige Latenz macht sich für einen menschlichen Zuhörer stark bemerkbar. D& auch wesentlich geringere Latenzen sind bei Sprachübertragung6n problematisch, insbesondere in der Form von Fxhoo. Echos lassen sich zwar mit Hiife von so genamten Echokompensatoren unterdrücken, was aber die Kosten in einem Telefonnetz erhöht und viele Netzbetreiber daher e h r vermeiden möchten. AUe oben genannten Faktoren führten zu lebhaften Debatren in den internationalen Standardisieningsgremien, als ATM standardisiert werden solke. Die Tat; sache, dass keine Länge für alle Fälle perfekt war, wurde von den ATM-Gegnern de Argument angefuhrt, um zu belgen, dass Zellen mit fester Länge ohnehin eine schlechte Idee seien, Wie so oft wurde auch bei diesem Standard im Endeffekt ein Komprods gefunden, der fast niemand gefiel: Man entschied sich für 48 Byte a b Länge für den Nutzdatateil der Am-Zeile. Das W-einlich aö&e hobiear dabei ist, dass diese Zahl keine Potenz von Zwei ist, was bedeutet, dass sie d e & mit fast allen Obplcten zwammenpsst, die Computer handhaben, wie beispieb weise Seiten und Cache-Zeilen, Demgageriüber weniger kon~ruverswurde deg Header auf 5 Byte festgesetzt. Abb. 3.16 zeigt das Foanat &r ATM-Zelle. In dieser Abbildung sind die Feldkngen in Bit a n g e - k .
GFC
VPI
Type
VCI
CLP HEC(CRX4)
AMbftlb: ATM-ZeilenfomMt am UNI
V
a
Die .ATh3-Zelle kam ~ p w i k b zwei ve~schiedeneFormate anndmm, je n a c w von m man &e N d lwmch!~.Ea Abb. 3.16 ist das fJNI- { U ~ ~ . P l f ~ m ] n Il.&&m#F-t Nte&we witd rn l?ktv~rk.-Nm8& fntmb@ b t z t und mirspt~heaa d~~ - k r ~ g kZeiCtrnetr g r Dag W wird medst- an d g ~ S c w f l e itwhhea Tefefw$eseiiircha* und Tenibnghmer ekgmazt, &W N M dem& gegenüber meist r x i b ,zwei Tebfonged-. h3üad&eh der Z c k & + rnaze liegt der e-e bedeutende Unterschied darin, dass das GFC-Feld b e b W: Format durch 4 zusiitzliche Bits für den WPI ersetzt wird. Um die ATM-Technologie
steh- muss man PM d e m POxd&&&
ia ATM verwendeten, hi-buE.Bsta-
nd vomganz Unh &M &2&& Idw abmm ii$(.stap.callrl), t die W-&Ne 4 $ii: ftir ehe .gam&he P i w s k o a ~ ~ l(Generic le Elow ni& b ~ h&- 5 sie ebd nur 4% eigea lokska 8FC;). Dime Bits
dem Konzept, eine M6glichkeit fiZr die Rtgelmg des Zqpiffa auf die am bkalm M o r t mehrere leM m ~ U e fnb den Fall, atinswaes Mecbua9 asr ATM angcldossa SM. Bit 6nWm einen 8 Bit groi3en VPI ( V i i a l P d Identifiez und 216 Bit grokn VCI ( V iCkuit Iden*). Der U n t W e d mvbchgn den i h e m witd später erkiäm. Vorlauf@ genügt eu wissen*dass lnan sie als hörigen 24-Bit--benutzt, um eine viinieik Verbindung (wie .2)w identifhiem. Weitwhh giba es ein 3-Bit-Feld $pe, das acht a n n e b e a kann, Vier davon wenn das erste Bit im Feld gesetzt ist sich auf Verwdtungsfunktionen. Ist dieses Bit nicht gesetzt, hegt das, Ue Nutzdaten enthält. In diesem Fail ist das zweite das EFCL- (Explicit Gong-n I n d i d o n ) und das dritte das wBenutzersilgialisierungsbit«. kann von einem überlasteten Switch gesetzt werden, um seinen Zustand ndknoten mitzuteilen. Dieses Bit hat seinen Ursprung in dem in Abschnitt l.'T beschriebenen DECbit. in ATM wird es für die Oberlastkontrolle in Verbinag mit dem in Abschnitt 6.5.4 beschriebenen ABR-Dienst (Available Bit Rate) &tzt. Das dritte Bit wird vorwiegend in Verbindung mit der ATM-Adapd d i t 5 benutzt, wn Frames abzugrenzen (siehe unten). .i?,'Das nächste Bit bezeichnet die Priori~tbei Zellenverlust (Cell Lots Priority, 8.Ein Benutzer oder Netzelemenr kann dieses Bit setzen, um Zellen zu kennacn, dii.bFalle.eher W t i a s t vorzug~weiscverworfen w e r k dollen. Fiür eine ~nwendurrgkann man,die= Bit z.B. EiZr Zellen seuen, dtucb deren Vemehn &die Qualität des V&os nicht erhebüch verdchtern W d e . Ein Metzdemnt & d0- Bit £ür Zellen setlen, die von einem Benutzer über die w r e i n b
-
&I
te Byte im Nw&r ist eine 8-Bit-CRC, hicr als i h d e r &rar Check (HEC) Es verwendet das in k h n i t t 2.4.3 beschriebene CRC-8-Pulyn.o~iund Darüber hinaus biae es die Fähigkeit, EUizelbirbehler zu en-Hader: Dez Schutz des ;Ee&n-Heaks ist VCI &ZU fuhrt, dass die Zeh einem faischen
.
2 Segmentierung und Reassemblierung
diesem Punk.t sind wir davon ausgegangen, dass ein Protokdl auf einer . Schicht das von einem höher angesiedelten Protokoll weitergereichte Rasch akzeptiert, seinen eigenen Header anhängt und es nach unten weitergeben Lrmn. Bei ATM ist dies nicht möglich, weil die von oben durchgereichten Pakete oft
6
größer als 48 Byte sind, sodass sie nicht in den Nutzdatenbereich einer ATM-Zelle passen. Dieses Problem wird durch Fragmentierung der Nachricht an der Quelle in Pakete für niedrigere Ebenen gelöst. Dann werden die Pakete über das Netzwerk übertragen und am Ziel wieder zu einer vollständigen Nachricht zusammengesetzt. Diese Technik wird als Fragmentimng und Reassemblhung bezeichnet, irn Zusammenhang mit ATM meist als Segment#'mngund Reassemblierung (Segmentation and Reassembly, SAR) . Segmentierung ist keine spezielles Problem der ATM-Technologie, aber es stellt sich hier stärker als bei einem Netzwerk mit einer maximalen Paketgröße, von 2.B. 1.500 Byte. Um dieses Problem zu lösen, wurde zwischen ATM und darauf aufsetzenden Protokollen mit Paketen variabler Länge, 2.B. P,eine Protokollschicht eingefügt. Das ist die so genannte sATM-Adaptionsschichta (ATM Adaptation Layer, AAL). Der AAL-Header enthält die vom Empfänger benötigten Informationen, um die einzelnen Zellen wieder in die Originalnachricht zusammenzusetzen. Die Beziehung zwischen AAL und ATM wird aus Abb. 3.17 ersichtlich. Abb. 3.1 7: Segmentierungund Reasmbiierungin ATM
Da ATM für die Unterstützung verschiedener Dienstarten, darunter Sprache, Video und Daten, ausgelegt wurde, war man der Ansicht, dass unterschiedliche Dienste verschiedene AAL-Bedürfnisse haben. Folglich wurden ursprünglich vier Anpassungsschichten definiert: 1und 2 diinen der Unterstützung von Anwendungen wie Sprache, die garantierte Bitraten erfordern, während 3 und 4 Paketdaten über ATM &terstiitzen.-~ern Konzept zufolge sollte AAL3 von verbindungsorientierten Paketdiensten (2.B. X.25) und AAL4 von verbindungslosen Diensten (2.B. IP) benutzt werden. Letztendlich erwiesen sich die Gründe für verschiedene AALs für diese beiden Dienearten aber als nicht ausreichend, sodass sie unter der Bezeichnung AAL31 4 verschmolzen wurden. Später führte die Feststellung einiger Unzulängiichkeiten in AAL314 zum Vorschlag einer fünften AAL mit der Bezeichnung AALS. Damit gibt es nun vier AALs: 1,2,314 und 5. Die beiden AALS für computergesgützte Kommunikationsdienste werden nachfolgend beschrieben.
C
Als wichtigste Funktion bietet die U 3 / 4 ausreichend Informationen, damit Pakete mit variabler Länge als Reihe von Zelien mit fester Länge im ATM-Netz transportiert werden können. Das heißt, diese AAL unterstützt Segmentierung und Reassem~
33-
(srm
I
I-
Protocol h t a U&, SPDU); diese T*
gekapselt, dann wird die resultierende CS-PDU in ATM-
. 16
F), das die Version des CS-PDU-Formats bezeichnet. m
.
i t ist nur Wut 0 defiwen. Das nächste B-Bit-F& Btag ( l k g i d q Tag) bezeichnet den Anfang und Etag @lad Tag) das Ende einer bestimmten PW. Dies schützt vor Fäüen, in deneq der l$gIwt der letzten Zelle einer PDU und der ersten Zelle der niichsten dazu führr, dass zwei PDUs versehentlich zusammengdtigt und an die nächste Protokollechiait nach oben weitergereicht m & n . Das Feld B A S b (Buffer Aiiocation Size) bezeichnet nicht unbedingt die Lange der PDU (die im Trailer steht). Es soll vielmehr Unen klinweis liefern, wie viel Pufferplatz für die Reassernblienmg zuzuweisen ist. dass die tatGchiiche Lange nicht enthalten ist, hat den Grund, dass der sendende Host mög&$wwek nicht d t c , yvie lang die CS-PDU ist, ah er den &a&r übertragen hat. Vm der Einfügung des CS-PDU-Trailers werden die Nutlidaten auf ein Byte weniger als ein M e h r f d von 4 Byte a~~ es werden also bis zu 3 Byte als Füil-Bytes eingefügt. Diese und das mit 0 gefiiilte Byte steilen sicheq dass der Traiier an eine 32-Bit-Grenze angepasst ist, was eine effizientere Verarbeitung ermbgiicht. Der CSSIIU-Trailer selbst enthält den Ebg-wert und die wirkiiche Länge der PDU (Len). Zusätzlich zum CS-PDUbHeader und -Trailer spezifiziert AAL314 einen Header und einen Traiieq die in jeder Zeile rnitgefik werden (siehe Abb. 3.19). Die CSp]DrU wird also eigeiidich in 44-Byte-Stücke segmentiert. In jede Zelle wird je ein AAL3f4Header und -Trailer eingeftigt, sodass man letztendlich 48 Byte erhält, die dann als Nutzdaten einer ATM-Zeile übertragen werden.
&I 3.19: &ANZdlenformat Mr W / 4
Die ersten beiden Bits des AAL3M-Headers enthalten das Feld Type, das bezeichnet, ob es sich um die erste oder letzte Zelle einer CS-PDU, eine Zelle in der Mitte einer CS-PDU oder der einzigen Zelle einer PDU (in diesem Fall also die erste und ktzte) handelt. Die offiziellen Bezeichnungen für diese vier Bedingungen und die entsprechenden Bitkodierungen sind in Tabelte 3.4 aufgeführt.
3
5 '4
. .
Als ~ ä h s t e blgt s eine 4-Bit-Seque-u-er (SEQ), die der ein@ Zeilmverluats oder eheer falschen Beibadalge der ZeUen.&ent, sodass dP& 3 R e a d b g ab@goclnen werden kam. S;elbi+tver+@h&h ilbmidd ! eine d a r m ~leine~!ieqwmummti h a~ a e d ne r bnciwea ~e1te*1~rs4 *.nn rn2 ~ h n Ti& d Wtcn vah~@ahen:i4meMk&ad Idg m i ' ~ & p f e X k i c j~ ~m B X ~ C P W s auf ciaY j (M&@I & & k W),d a b m u m V&b'mdm$ zu mdriplbcen. Das 6 Bz @&e P& h g t h beigt & ~ s a f a der t ih && Zelle'enthaltetwa ]B+. Es muss ber" 330% ruad COM-Zellen $ea W= 44 besitzt%& S&W& M&e 10 Bit'&hCR(S bbutzs;wn Rh2m in des-48 B p e &$NB* &tmdsder Z e h dcea,ni:n zw laizmm. kbb, 3,ZO @igt dei, g e s ~ t ; e nKapselung~-uad AMS4. fen Te@ mrdmJdieNntzdam ait b Dam wird & a-pwh M Byt~::gx%
~~~
I
I
.
CS-PDUHeader
ATM-Header
Nutzdaten
~ellnutidaten
Abb 3.20: Kapselung und Segmentierung für AAL314
CS-PDUTrailer
@Wh, wem die S P D U aichaggemu einem J+&Wachcn von 44 Byte- entv e s c W e . Mit .MDawn-Bps geg& e h - P Byte gr& Hader sich bmed& eine Bm~dIl;rrr.it~~a-g VOR 83% wreichen. Die 33f&kw ertit;Gnsnd der C§-PDU-Kapselung und der nur tei1"czßekAuiW1Yngder letzten
tatsächlich aber noch weit darunter liegen, wie aus Abb. 3.20 mkhiich wird,
Funktion der Segmentierungun2S Reassemblierung aus-Feststellung h a M viele andere h t e bei den Anfängen von ATM konkurrierende Vozschläge für eine AAL zur Kommunikation über ATM gemacht. Unter andeInitiative, die informell als wBack the Bitt
.
PDU identifizieren. Dann wird davon ausgegangen, dass die die erste der &cbsten -mW und die f~btndenZWen CQM-Zellen ehe weitere Selle ankonimtrin der das 3 e n d w M i e r u n g s b i t geTde von U 3 1 4 , die 5chutz-vsi:Veriust, VBifddamg d e r filscher Zellenmg M e n , eiirschiwsB1ieh des Verlusts einer &UM-Zeiie,werden von dem in 1'&hb. 3.21 dargestellten Pakedormat der CS-PDU g d W S bereirgestellt. e &er
;E
,
?$!!- cWKB
WWe&
16
16
3.21: AAU-Paketfomat C
d
j
$&g e i d AAL5 spedkierte &*DU
setzt sich schlicht aus dem Datenteil (der
!I. ''+k , Zdlt: muss &I Trailer gesetzt &erden, weil die Einlaeit, welche die Reassemblie-
:Wder CS-PDUdurchfiikt, andernfalls den Trailer nicht finden könnte. Die mten gp des Trdtss sind deneit reserPien und müssen 0 sein. Das Feld Len (Lnrige)
enthält die Anzahl der in der PDU enthaltenen Bytes, ohne Trailer und F ü l i - B p . Schlief3iich gibt es noch eine 32-Bit-CRC. Abb. 3.22 zeigt den Kapselungs- und Segmentierungsprozess für AALS. Genau wie bei AAL314 werden die Benutzerdaten gekapselt, um eine CS-PDU zu bilden (hier aber nur mit einem Trailer). Die resultierende PDU wird dann in 48-ByteStücke zerles die dickt im Innem der Nutzdaten von ATM-Zellen ohne weitere K a p s e l q übertragen werden. Aumillung
I
Nutrdatsn
Abb. 3.22: Kapselung und Segmentierung fOr ME
~ ~ t e i 7 ~ ebieret i s eAALS fast die gleiche F u a k t i d a t wie AAL314, ohae m d d h 4 Byte in jeder ZeUe w verwenden, CRC-32 ~tkenatzB. verlcmw d a falsch geordnete &Um sowie Bi&hlcr in den Daten. Eine Pnifsuame über die gesamtc PI)U at?tc auf da Grundlage oinzelna Zellen wrie in AAL314 bietet g d h e n Schutz3Beispklsweise besteht in AALS Schutz vor dem Verlust 16 a d i m lnder folgender Z&m- Dieses Ereignis würde von der-mitzck Sepuedurthgoflibrteg Prüfung in AAL314 n i c k erkannt , n m h , hm Vergleich zu CM . ' 10-Bit-CRC &t eine 32-Bit-CRC ilUgerdem vor längeren Burst-Fehle. Als wichtigstes fehlt in AALS die Fähigkeit, eint zusätziiche Muitipkxschicht für eine virtuelle Leitung mit Hilk des MID-Felds keitzusttilen. Ob es sich hier um eben grob Verlwt handelt, ist jedoch fraglich. Es ist auch in M L 5 möghh, dm$ Verwei~dungeines D e m d ü s w l s den Verkehr von vitlen .Aawtndqen'4 höheren Protokollen (siehe Abschitt.l.3.1) auf eine virtuelle Leitung zu nzuttiptca; xm. Es ist lediglich notwendig, paketweise statt zeilenweise zu multiplexen. Das Multiplexen des Verkehrs vieler verschiedener Anwendungen auf eine &zeine virtuelle LeihatVor- und Nachteile. Wud beispielsweise für jede h e l l e Leitung, die man über ein Netzwerk einrichtet, eiie GebiihP bmdmet, kann sich das MuItipleXen desV c r k b vieler verAnwenduagai auf eine Verbindung ab Voaeiil erweisen. Dick Vorgehen hat andererseits den Nachte4 b s s sich a d Anwendungen mit der jeweiis fiir die eine Vmbinduag gewahlten D i w (2.35. garmtierce V-rong und Bandbreite) zufriedengeben m.inar&tr.Das kann Wenttn, dass einige Anwendungen nicht den nötigen oder erwarmen Dienst a h a l r e ~ ~
allgemeinen wurde AALS von der Compyter-Kommunikauonsgemeindemit Mehrheit angenommen (zumindest von dcrn Ted, der überhaupt ATM akzep hat). So ist AALS 2.3. die von der IETF bevorzugte ATM-Ada~aonsschichtfür rnd&e G a w g von IP-Datagra-n über ATM. Ekzientere ~ ; t z u n der ~ @te - und einfaches Design sind die Hauptmerkmale, die AALS gegenüber A 314 - . Wkraktiver erscheinen lassen.
.-
&TM h 2 4 - W t ~ B e ~ ~f k k hviisnid%: ~ Lral#nlqraii. e b Zkr
fase gemm wk die in I(kbdmia$1.2 W
V i l Ciraiir Mentib-). Dadurch entsteht$el8aas-
enien 16-Bit-VCZ (
dhenbrstebada*&simickVerb'-&kimmf&k?avork-Nm~rk Interdabis dass es an einigen Sdm den i W tmes&idEBeher Gr6& p b kam, und gehen einfarrh davon 8-Bb-vmS benutzt werden,) ein-U Bat ZaiFei Standdie a h rin öfkatikhes den sind. J&r Swidort dcs lJmmrehm vd&t iih &NetzkTM-Srdiwhm. W m t e z w k h dcn beiden Standorten deWI d t
Nemwerk den VPI als einzligesFeld bonutm, um die ~
fur die Lei-.
h
~
~
Ihr 16-Bit-VCI iSt für diese Offeatlichen
der eine Vtrbidmg aim 8 Bit ( h r VPI)werden auf den tnffprech-
einen Switsrh geieit-et,
ein Bünde1 wtitciitr Leimigen dass die alle die gleichen El Bit in h e m
E:. -
.J.,
Offentllcnes Netzwerk
t. -Mzwerk A
kkb. 3 I
'
a Beispideines virtueilen Pfads
~
Informationen erforderlich sind.
Gedanken machen müssen. Dies erweist sich jedoch als falsch. Aus prqputisdm ATM-Zeilen gesendet werden soilen, Selbstversrhdlich trifft das auch auf andem Nezpzotokoile, wie 802.5 und Etheniet, zu. Wie diese Pratokolle kann auch ATM xnit vemehiedenen physikalischen Medien und Bitiibemagungsprotok01len b e r h k ben werden. Zu Beginn der Standardisierungvon ATM wurde angenommen, dass ATM auf dur SOm-Birührtragung$schieht (siehe Abschnitt 23.3) aufsetm würde. 8k ww&n ATM und SONET sogar verwechselt, weil sie iiber so lange Zeit hinweg BGhr eng gekoppelt waren. E$ wurden zwar Standards fkdie Obertragwig von ATM-Wlen in einem SOMT-Frame ddhiert, und ATM-übehSONET?Produkte wenden a d dem W k t angeboten, beide sind aber völlig unabhgig voneinander. Man kann . beispieisweise eine SONET-Leitung von einer Teiefongesernaft mieten und beiie* big Daten daniber versenden, darunter Pakete mit variabfer Länge. M a n kann au& AW-Zellen über vieie andere Bitiibertragungsschichten außer SONET übertragen, uad Standoir* wurden (bzw. werden) fiir diese Kapselwgsarten definiert. Ehe $eq ersten Bltüberaagungsschkhten für ATM war TAXI, die inFDaI benutzte Bitübcr.~ tr-cht ((Iikkhnitt2.7). Ferner werden auch drahtlose Bitiibertraschichten i3ir ATM definiert. Versandet Ifian ATM-Zellen über ein physikalisches Medium, lautet die wicht& ste Frag+ wie mui die Grenzen der ATM-Zeilen fi~des.Das ist das in Kapitel bedriebene Frame&zeugungsprobIem. Bei SONET hssen sich die Grenzen dx& zwei einfache &&Oden finden. Eines der Overhead-Bytes im SQNET-Frame k q ~ als Zeiger zum Anfang einer ATM-Zelle in den SQNET-Nutzbaten verwendet wemden Hat man den Anfang einer Zelle g e k e ~ i ~ ~ i e ist h nklai; q dass die nächste 240 53 Byte später in den SONET-Nutzdaten beginnt, u m Theoretisch braucht rnm k n Zeiger nur einmal zu losen. In der Praxis ist es jedoch sbvoil, ihn jede M d zu Imeh wenn der SONET-Overhead v o % W & t , sdass man Felder @kenneno@ . bei Bcdatf die Synchronisation \NiederhersteUenkann. Bei der zweiten Methode wird die Tatsache genutzt, dass jede Zeile im fünften Byte der Zeile eine CRC enthält. Fiihrt man also eine CRC-Berechnung auf die bten 5 empfangenen Byte durch und erhält man ein fahlerfreies Erjybnis, hat man &k '
'
'
4
'
, Worfirshehkhkgit. F+& ,ehja. 4TMaWor-gelesen.
Passim mehreiner Feig ~ x r n53-Byte--fffh man mit ziemlicher Sicherheit ' ausgehen, die Zellengreme gehuiden zu haben.
lichkeit iogie als rache, Video , von SPJ
-de
fur den
h & h e N e e füi.dic äber&eh,ATM -de$& abBr von
ÜbCr Leitungen mit Oeschwhdigkeiten von
bids und höher au&legt, ver$ichen mit den Geschwindigkeiten von dinglich $0 ~ b i d bei s &homet und 4 'der 16 Mbitis bToken Rins. ersten ATM-Sdt&e ad8m Mwkt kamen, boten sie W & & c h e V d e
dadezmeirs k m man MteUen, dass die Untwscheidmg zwischen vermittelen imrS solchea mit gemeinsamem Medium nicht so einden~gist. Eine
äte verfügen über zdriiche Ports und Ethernet über Tkisted-Pair der*
,-
.,* -
--SI..
'i
1 sNiliinlll*ll
-*
-
.
s*
L;-',
. .;s
mitehander verbunden werden konnten, wie aus Abb. 3.24 ersichtlich wird. H&.körnenebenfalls direkt an dcn Am-Switch a n g d o s s e n wer* wie Host H7 in diesem Beispiel
- .
~4
Abb.3.24: Einsatzvon ATM als LAN-Backbone
In jüngster Vergangenheit hat das Gigabit-Ebet für LAN-Backbones und Wer$&rbidungen ATM den Rang abgelaufen. Gigabit-Ethernet basiert auf dem gleichen Frame-Format wie konventioneiies E b n e t , nutzt aber vorwiegend Punk-zuPunkt-Glasfaserverbindungenund unterstützt relativ poge Reichweiten (bis zu " . g k h e n knsa& wird dic Gellchwiatdwmm Kilome&m). Mit dem gnindsatzlich digkeit niittkrw& auf 1043hids ausgedeht. Ein entscheidendes Problem mit ATM im LAN ist, dass.es nicht wie ein *herk u c h e s u W aussieht. Da die meisten LANs (d.h, Ethemet und Token-Rh@! auf der gemehmnma M w u basieren (d.h. jeder Knoted im W ist an cfia gleiche Verbinduqpkin~ngmgeschiossen), Iassen sich Broadcast (Senden an alle) d M d b s t f %endan an eine Grupp) leicht imphezitierm. _FOigli& hängen v k k der in LANs benutzten Protokolle (2.B. das in A W a 4.1.3 beschriebene M4Pr (MPbess ~e801& Piotaeol)) von der Fähigkeit d a LANs ab, Muiticmt tlnd B r a a u zu unwstützen. Aufgnind seiner v ~ d u n ~ t i e n und e nv d t & tea Natur owhälr sich ATM aber anders als ein LAN mit gemeinsamem M&& WE kann rmn in eiaem ATM-LAN beispielsweise e h e Nachricht an alle R;n-1 ryndsenden, wenn mannieht die ihre Adressen kennt, und wie richtet man vimeib Leinmgm an alle Cm? Für dieses Problem gibt es zwei in der Praxis erprobte Lösungen. Bei einer wird Qs Dtgign derjenigen Protokolle geändert, insoweit es auf Amdmen über W b basiert, die für ATM nacht niäl.effen. Folglich gibt es z.3. ein neues Protokoll, da^ A T W , & das Geg~egensatz zum herkömmlichen AR9 nicht von B r c a W abhängt. Wir werden & in Abdritt 4.1.5 besprechen. Bei der anderen Akmative wird dafüt gegcqt, dass s i c h ATM hinsichtlich der Unvon MdtiaW und B&t tn& wie cin LAN mit gerneinsamer M h t a z u n g vcrhiilt, oh& jedoch die h i m m g s d e Eines vermittelten Netzweb einzub-. Db Mahode wurde vom ATM-Forum als BLAN-Emulationu bzw. LANE speam' (man müsste es nch* aber rhulation für gemeinsame nm*
h&5-sich@Aetresmm&itl
lwzxwfknv-mm ~hwfrdrrr,V~ltan.~I*kW-
adfdlrva~voa~Bdresse.DETw
Abb.335: Protokollxhkhten in einer LAN-Emuhtkm
Für die Einrichtung eines emulierten LAN sind folgende Server erforderlich: 4
LAN Emulation Configuration Server (LECS)
H LAN Emulation Server (LES)
B Broadcast and Unknown Server (BUS) Diese Server können sich physisch in einem oder mehreren Geräten, möglicherweise in einem der Hosts, oder in anderen an das ATM-Netz angeschlossenen Geräten befinden. LECS und LES führen vorwiegend Konfigurationsfunktionen aus, W&rend der BUS eine zentrale Rolle dabei spielt, den Datentransfec in einem ATM-Ne& dem eines LAN mit gemeinsamer Mediennutzung ähneln zu lassen. Der LECS versorgt einen neu angeschlossenen oder hoehgefahreneq LAN Emulation Client (2.B. einen Host) mit einigen wichtigen Informationen. Zunächst muss der Client den LECS jedoch finden. Er kann dies durch Verwendung eines wohlbekannten vordefinierten VC, der immer aufgebaut bleibt. Alternativ benötigt der Client vorab Kenntnis der ATM-Adresse des LECS, damit er einen VC dorthin aufbauen kann. Steht die Verbindung zum LECS, übergibt der Client dem LECS sehe ATM-Adresse, und der LECS antwortet, indem er dem Client die emuiierte LAN-Bpt (Ethernet oder Token-Ring), die maximale Paketgröße und die ATM-Adresse des LES mitteilt. Ein einzelner LECS kann viele getrennte emulierte LANs unterstiitzeri. Dann signalisiert der Client dem LES, dessen ATM-Adresse er gerade erfahren hat, den Wunsch, eine Verbindung zu ihm aiifiubauen. Steht die Verbindung zum LES, registriert der Ciient seine MAC- und ATM-Adresse beim LES. Unter anderem liefert der LES dem Client die ATM-Adresse des BUS. Der BUS unterhält einen einzelnen Punkt-zu-Muitipunkt-VC, über den er n$ allen registrierten Clients verbunden ist. Damit wird augenscheinlich, dass der BW und dieser Multipunkt-VC für die LAN-Emulation entscheidend sind: Sie em+chen die Broadcast-Fähigkeit herkömmlicher LANs in einer VC-Umgebung. Veein LEC über die ATM-Adresse des BUS, haut er eine Verbindung zum BUS auf, %'I BUS fügt im Gegenzug den LEC zum Punkt-zu-Multipunkt-VC hinzu. Anschließend kann der LEC arn Datentransfer teilnehmen. Eine A n o r h n g , bei der zwei Hosts mit dem LES und dem BUS verbunden sind, und der BUS den Punkt-zu-MultipunktVC zu beiden aufgebaut hat, wird aus Abb. 3.26 ersichtlich. Der LECS ist nicht dard gestellt. I
;crmmini &mm$kirrsll
rnW&Wrntlo~&d &M W 4 b i . r l e d d
ATM&w
i%3dhkm
entspdht dlmr MAC-Adresse?.
BUS gpwnde um die Verztjgemqg ni mhhioi~xn,, weil es kann, bi(s e h e Aatwaa voai LES t l u n h m m t und ein VC
sa. Ein *Cache-Fekhlagn (d.h. die Ankunft eines Pakets, das an ein werden muss, & das keine &wehe Leitung vurhanden ist) wird gehandhabt, d'hs das Paket b*i den BUS gesendet wird.
3.4
Implementierungund Leistung
Bisher haben wir uns damit beschäftigt, was ein Switch tut, ohne auf das Wie einzugehen. Ein Switch lässt sich recht einfach aufbauen: Man kauft eine Workstation und stattet sie mit einer Reihe von Netzwerkkarten aus. Ein solches, mit der entsprechenden Software ausgestattetes Gerät kann Pakete über eines seiner Interfaces empfangen, die oben beschriebenen Vermittlungsfunktionen ausführen und Pakete über ein anderes Interfaces senden. Das ist tatsächlich eine beliebte Vorgehensweiw beim Aufbau experimenteller Switche, wenn man bestimmte Aufgaben wie die Entwicklung neuer Routing-Protokolle untersuchen will, weil sie hohe Flexibilität und eine vertraute Programmierumgebung bietet. Sie ist auch nicht allzu weit von der Architektur vieler einfacher Router entfernt (die, wie wir im nächsten Kapitel sehen werden, viele Gemeinsamkeiten mit Switchen haben.) Die in Abb. 3.27 dargestellte Workstation mit drei Netz-Interfaces dient als Switch. Aus der Abbildung wird der Pfad ersichtlich, den ein Paket ab Ankunft an Interface 1 bis zum Ausgang an Interface 2 einschlagen kann. Wir gehen hier davon aus, dass die Workstation über einen Mechanismus verfügt, um Daten direkt vbn einem Interface in den Arbeitsspeicher zu bewegen, ohne sie von der CPU kopieren zu lassen. Wir haben es hier also mit dem in Abschnitt 2.9 beschriebenen Direktspeicherzugriff (DMA)zu tun. Befindet sich das Paket einmal im Speicher, prüft die CPU den Header, um festzustellen, über welches Interface das Paket übermittelt werden soll. Dann wird das Paket mittels DMA an das entsprechende Interface befördert. In Abb. 3.27 ist das zur CPU fließende Paket nicht dargestellt, weil die CPU nur den Paket-Header prüft. Sie muss nicht jedes im Paket enthaltene Daten-Byte lesen.
Interface 1
Interface 2
Abb. 337: Verwendung einer Workstation als Paket-Switch
Problematisch bei der Verwendung einer Workstation als Switch ist vor allem ihre Performance, weil diese dadurch begrenzt wird, dass alle Pakete einen gemeinsamen *Flaschenhals*durchlaufen müssen. Im dargestellten Beispiel kreuzt jedes Paket den
. 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
1
3.4-2 Schaltnetzwerke Obwohl es eine Unmenge von Forschungsarbeiten zum Design von effizienten und skalierbaren Schaltnetzwerken gegeben hat, ist es für unsere Zwecke ausreichend, die Eigenschaften eines solches Schaltnetzwerksauf einem relativ abstrakten Niveasi zu verstehen. Ein Schaltnetzwerk soll dazu in der Lage sein, Pakete mit geringster Verzögerung ran Ehgaangs- zum Ausgarigs-Port zu befördern, sodass dabei die Dw&aWorderungen für den Switch erfüHt werden, Das bedeutet in der R e ~ 1 ; dass das Schaltnetzwerk einen bestimmten Grad an Parallelverarbeitung erm@&= chen muss. Ein Hochleistun$sslhal~werkmit n Ports ist meist iri der Lage, ein Paket von jedem seiner Ports gieichzeitig zum jeweiligen Ausgangs-Port zu schickenr Folgende Typen von Schdmmerken sind von Bedeutung. II
Gemeinsamer Bus: Dieser Typ von ~Schalme~zwerka findet sich in üblichatn Workstations, die als Switch verwendet werden (wie weirer oben be~chrieben)~ Da die Bandbreite des Busses den Durchsatz des Switehs bestimmt, besitze@ Hochleistungs-Switche in der Regel speziell entwickelte Busse und nicht die 6 Standard-PCs verwendeten.
II Gmfftsmm Speicher: In einem Switch mit gemeinsamem Speicher, werden ditg
Pakete durch den Eingangs-Port in einen Speicherbereich geschrieben und vom Ausgangs-Port dort wieder ausgelesen. Hierbei ist es die Speichergeschwindig- . keit, die den Durchsatz bestimmt. Man verwendet daher meist große und schnelle Speicherelementefür diesen Typ. Ein Switch mit gedmamem Speicher . ähnelt im Prinzip dem mit gemeinsamem Bus, nur dass er meist elncn spcxi& entwickelten, schnellen Speicherbus statt eines YO-Busses verwendet. Ii Crossbar: Ein Crossbar-Switch enthält eine Matrix von Verbindungen, die M geschaltet werden kann, dass jeder &ingang mit jedem Ausgang verbunden ia Abb. 3.30 zeigt eigen 4x4-Crossbar-Switch. Das Hauptproblem dabei ist, dws dieser in seiner einfachsten Form erfordert, dass jeder Ausgangs-Port dmkt von jedem Eingangs-Port Pakete empfangen kann und daher jeder Port eine Spei-
-
-
dierbndbrejte haben muss, die dem gesamten Durchsatz des Switchsentsp&hri In der Praxis werden daher komplexere Entwürfe verwendet. (Siehe 2.B. den Knockout-Switch oder den Ansatz mir vimeller hgaagspufferung von McKeown in den Literaturhinweisen am Ende dieses Kapitels.)
' I
Eigenvermittelnde Scbaltmtzwerke: W~ieoben beschrieben, basieren eigenvermittelte Schaltnetzwerke auf einigen Informationen im Paket-Header, um die Pakete zum richtigen Ausgang zu bringen. Üblicherweise wird im Eingangs-Port ein spezieller wEkenvermittlungs-Hadera dem eigentlichen Header vorangestellt, sobald einmal festgesteilt wurde, zu welchem Ausgang das Paket soll (Abb. 3.31). Dieser Zusatz-Header wird arn Ausgangs-Port wieder entfernt, bevor das Paket den Switch verlässt. Eigenvermittelnde Schaltneuwerke setzen sich oft aus einer Vieizahl von 2x2-Schaltelementen zusammen, die in bestimmten Mustern konfiguriert sind, wie etwa beim Banyan-Schaitnetzwerk (Abb. 3.32). Weitere Beispiele für eigenvermittelndeSchaltnetzwerke finden sich bei den Literaturhinweisen.
&$envermittelnde Schaltnetzwerke steilen eine der flexibelsten Architekturen für 'Wtnetzwerke dar. über die umfangreichen Forschungen hierzu finden sich Angaben bei den Literamhinweisen. Viele eigenvermittelnde Schaltnetzwerke ähneln 'h in Abb. 3.32 dargesteliren und setzen sich aus 2x2-Schaltelementen zusammen. 2x2-Wtelemente im Banyan-Netzwerk beispielsweise übernehmen eine e s &e Aufgabe: Sie betrachten nur ein Bit in jedem Paket-Header und leiten das Paket mm oberen Ausgang weiter, wenn das Bit nicht gesetzt ist, oder zum unteren Ausgang, wenn es gesetzt ist. Kommen zwei Pakete gleichzeitig an einem Banyan-Eleralent an und ist bei beiden dieses Bit auf den gleichen Wert gesetzt, müssen beide natürlich an den gleichen Ausgang weitergeleitet werden. In diesem Fail ergibt sich & Kollision. Ein wichtiger Aspekt im Design eines eigenvermittelnden Switch ist desfaalb die Frage, wie solche Kollisionen verhindert oder behoben werden können. Das Banyan-Netzwerk weist eine clevere Anordnung von 2x2-Schaltelementen auf, & aiie Pakete ohne Kollisionen an den richtigen Ausgang befördern, wenn die Pakete in aufsteigender Reihenfolge ankommen.
t
Paket-Header
A b h 3.3l:Un EigenvemittiungsHeaderwiddem Paket-iieader am Eingangvorangestellt,damit das Schaweiß, zu wddiem Ausgang das Paket d.Dort wlrd dieser Zusa~-kaderwie&r ' mtfmt (a) Das Paket Mnt beim EbrgangtPartein. (b)Der HngangIPortfügt den Eigemmhngic Header hhuu. (C) Der Eigenvermittlungs-Headerwird am AurgangiPortwkderentfwnt
Wie dies funktioniert, sehen wir an dem Beispiel in Abb. 3.32, wo der Eigenv&lungs-Header die Ausgangs-Port-Nummer in binärer Form end& Die Schslteb mente h e n das werthikhte Bit in der ersten Spalte der im Eigenvermittlungs-He& der angegebenen Auqpggs-port;~ummer und befördern die Pakete nach obeik, wenn das Bit auf 0 gesetzt ist, bzw. nach unten, wenn es auf 1gesetzt ist. Die Schal7 telemente in der zweiten Spalte lesen das zweite Bit und die in der letzten Spdte lesen das wertniedrigste Bit. Man erkennt bei diesem üeispiei, dass die Pakete ohne KoUisionen an den richtigen Ziel-Port befördert werden. Alle oberen Ausgänge der ersten
Weiterteiiung von Paketen in elnem Banyan-Netzwerk: Die 3BitZahten stelkn die Werte in den Eigenvemittlungs-lieadernder vier ankommenden Pakete dar.
ScM-rk
ist tbenfdis aus 2x2-Schal-
a die Pakete der Ikihenfok qwh, Wenn die
wurden,
als auch die Intwmt-Rou~die irn folgenden Kapitel b b -
, basieren auf Entwürfen wie sie in diesem Abschnitt dargestellt wurden.
hfmg dieses Kapitel wurden einige Fragen bezüglich der Entwicklung großer barer Netzwerke mit Hilfe von Switchen, zusätzlich zu den reinen
wenden Techniken wie das Erlernen von Quelladressen an, um eine effizientere Weiterleitung zu erreichen, und Spanning-Tree-Algorithmen, um Schleifen zu vermeiden. Diese Switche süid sehr verbreitet in Rechementrm, bei Universitäts- und Firmennetzwerken. Die am meisten verbreitete Anwendung der virtueiien Leitungsvermittlungfindet sich in Frame-Relay- und ATM-Switchen. ATM basiert auf der Verwendung von Zellen bzw. kurzen Paketen mit fester Länge. Die Verfügbarkeit von ATM-Switchen mit relativ hohem Durchsatz trug zur raschen Akzeptanz der Technologie bei, obwohl sie entgegen Erwartungen einiger Fachleute die vorhandenen Technologien nicht verdrängen konnte. Eines der Haupteinsatzgebiete von ATM heutzutage besteht in der Verbindung von weit auseinander liegenden Teilen von Firmennetzen. Switche müssen unabhängig von den spezifischen Einzelheiten der Vermittlungstechnologie Pakete von Eingängen mit hoher Geschwindiieit an Ausgänge weiterleiten. Unter bestimmten Umständen müssen Switche gut skalicrbar sein, um Hunderte oder Tausende von Ports zu unterstützen, Die Emwicklung von Switchen, die sowohl Skalierbarkeit als auch hohe Leistungsfähigkeitzu afinehmbaren Kosten bieten, wird durch das Problem des Konkurrenzbetriebs erschwert. Als Folge davon werden Switche oft mit spezieller Hardware ausgelegt, statt Universal-Workstations dafür zu verwenden. Abgesehen von den hier behandelten Fragen bezüglich Konkurrenzbetrieb hat sich im Verlauf dieses Kapitels das damit zusammenhängende Problem der Überlast angedeutet. Das Thema ~Überlaststeuemg*wird ausführlich in Kapitel 6 beschrieben, nachdem wir uns tiefer mit Nwrchitektur beschäftigt haben. Der Grund & die spätere Behandlung dieses Themas liegt daran, dass man Überlast (als Problem und dessen möghche Lösungen) erst richtig einschätzen kann, wenn man besser versteht, was im Innern des Netzwerks (das Thema dieses und des nächsten Kapitels) und an den Rändern dm Nerzwerks (Thema von Kapitel 5 ) passiert.
ATM wurde ursprünglich von seinen Erfindern als Grundstein für das so genannte ~BroadbandIntegrated Services Digital Networku Die Zukunft von ATM (Breitband-ISDN)erdacht. In einigen Fachkreisen hat man erwartet, Y dass ATM alle iibrigen Netzteehnologien ablösen würde. Diesen Erwartungen zufolge sollten Hosts mit ATM-Adaptern statt Ethernet-Ports ausgestattet werden, um wATM bis nun Desktop* zu ermöglichen. Telefongeseilschaftenüberall in der Welt sollten ATM als einzige Technologie einsetzen, die aile Medienaizen - Sprache, Video und Daten - unterstützen würde, d a s s keine anderen Netzwerkarten mehr benötigt würden.
d ATM beute keits ais *LRgacy*-Protokoll bezeichnet, so wie
d e die Akzeptaaz von ATU eh*&& ist der Erfolg des ist es erwiesen, Qw die Leute bereit sind, ftir einen Intemetman einen Dienst verkaufen kann, der Tp.. werden kann, um die Bereitstdmg d h
F-
"Die klassische Abhandlung über Bridges, insbesondere des Spanning-Tree-Algorith-
e dritte Arbeit beschreibt den Sunshine-Switch. Sie ist besonders interessie Einblicke in die wichtige Rolie der Verkehrsanalyse beim SwitchZellen an einem Switch nicht in einer völlig unkorrelierten Weise ankommen, und diese Korrelationen in ihr Design einbezogen. McKeowns Arbeit schließlich
beschreibt einen Ansatz für das Design eines Switch, der intern auf Zellen basiert, der aber kommerziell in Hochleistungs-Routern eingesetzt wurde, die Pakete unterschiedlicher Länge weiterleiten können.
S. 44-53, September 1985.
U
Turner, J.S. Design of an integ~tedservices packet network. Proc. of the Nix& data Communications Symposium, S. 124-132, Sept. 1985
U
GicopeIli, J. N. u.a.: Sunshine: A high-performance self-routing'broadband packet-switching architecture, IEEE Journal of SeIe-d Areas in Commwnäcutions (JSAC), 9 (8), S. 1289-1298, Oktober 1991.
iMcKeown, N. The iSLIF' schednling aigorithrn fot inputqueued switches. IEEE
TruflarlctionOB Nsturorking 7(2):188-201, April 1999
Eine gute allgemeine Übersicht über Bridges ist in einer anderen Arbeit von Perfman enthalten [PerOO]. Für eine ausführiiche Beschreibung vieler Aspekte von A W d Schwqnnkt auf dem Aufbau realer Netzwerke empfehlen wir das Brich von Ginsburg [ ~ P IAls J eines . der wichtigsten ATh4-Srandardisi-grernien produz* das ATM-Forum neue Spezifikationen für ATM; die Spifikation für das User Network b r f a c e (UNI) Version 4.1 ist die dierzeit aktuellste [siehe WWW-*He unten). über Switch-Architeknuen wurden buchstäblich Taaseade von Arbeiten veräff d & . In eher friihen Arbeit erklärt der Erfinder selbst seine Ihtcher-Netzwerke Bt683. Sortiernetze werden von Drysdale und Young pY7S], und der KnockoutSwiteh wird von Yeh u.a. [YHA87J beschrieben. Eine Untersuchung der Architeknxren von ATM-Switchen gibt Partridge [Par94], und R h [Rob93] liefert e i n e guten Oberblick über die Leistung verschiedener Sehalmawerke. Ein Beispiel e* modernen &h-ATM Sw* findet sich in Gopal and Guerin [G694]. O e >Nerze stellen ein eigenes weites Feld dat mit eigenen F a c h z e i t s c m und Konferenzen usw. Wir empfehlen als gute Einfühmng in dieses Thema das Buch von Ramaavami und Sivarajan Woll. Das Buch von IUeinrock [Kle7S], einem der Pioniere des ARp.NET, ist e& ausgezeichnete Pachlektüre für aile, die sich für die mathematische Analyse der Leistung von N d @ interessieren. Ober die Anwendung der Warteschlangenthe rie fiir die Pakmennittlung wurden zahlreiche Arbeiten verüffedicht. W i remgslen den Artikel von Baxson und Hopd pF94] als neueren Beitrag mit Schw& auf dem Meniet, und einen von Leland u.a. &l%'W94] ehe interessante Arbeit, die das wichtige Koazept *weit reichender Abhängigkette (Long-rangeDependence) und die schlecke Eignung vieler herkögdkhei: Usungea fik liie Verkeias&W nuig beschreibt. .< ScMeMich empfehlen wir folgende w.Bp"w-QueIIr
-
ihz$J~.atmrorum.ciom(laufende Aktivitäten cles ATM-Fom)
1. Verwenden Sie das Beispielnetzin Abb. 3.33 und arbeiten Sie die VC-Tabellen fiit alle Switche aus, nachdem jeweils die folgenden Verbindungen aufgebaut wwden. Gehen Sievon der Annahme aus, dass die Foige der Verbindungen kumulativ ist, d.h. die erste Verbindung ist noch aktiv,wenn die zweire aufgebaut wird, usw.
i:.
VCI j& W%mg &-T~WW~~-H~~~~A*HMII. 1 . & . ' ~ ~ b i a d & bon g H a t C ZU Haa G. +p L'Yetbisdaipgvon Hust E zu HW E. b
:
-
. -
d. Verbind-
von Host D at Hose B.
&. Verbindung von Hast P zu ;tiost J,
G Verbindung von Host H zu Host A. '. I :Pimmden Sie &s i k i s p i a b in Abb. 3.33 unel arkim Sie die VGTobden gIEe SPaitrht aus, fkacj c w d s die folgendm V a-ut , -mwdcn. Gehen S c von der Annahm aus, dass & Feige der V erimidauv ist, &h. & erste Verbindung ist noch aktiv, wem die zweite auf*ut wird, usw. Gehen Sie weiterhin davon aus, dass die VCI-Zuweimuig bmer den nitxkigaert unbeau&ten VCI jeder Leitung begmipend mit 0 aus'
*
'
. *.
, a. VuEi,*g
von Host D zu Host H.
'*{B.Verbindung .oon Host B zu G. . C. v + ~ m d H= ~ F ZU ~ o sAt?4. Verbindung w n Host H zu Hast C . HwD
Host F
P
Host I
e. Verbindung von Host I zu Host E.
f. Verbindung von Host H zu Host J. 3. Erstellen Sie für das Netzwerk in Abb. 3.34 die Datagramm-weiterleitungstabelle für jeden Knoten. Die Verbindungsleituagen sind gem& relativen Kosten beschriftet. Ihre Tabellen sollten jedes Paket über den kostengiimtigsten Weg w seinem Ziel befördern. Abh 3.34: Beispielnetz für Obung 3
4. Erstellen Sie Weiterleitungstabeilen für die Switche SI-S4 in Abb. 3.35. Jedw Switch sollte eben ~Standardeintrag*tür das Routing haben, der @wählt wirk um Pakete mit unbekannter Zieldresse in Richtung OUT zu senden. EverliniaII vom Standardehtrag bereits abgedeckte Tabeiienehträge mit spezifischem Zki' sollten dann elimiaiert werden.
5. Betrachten Sie dii VC-Switche in Abb. 3.36. In Tabelle 3.5 sind für jeden Switeh die verbundenen Paare, d.h. (oder &CI, Interface>), aufgeDk Verbindungen sind bidirektional Erstellen Sie eine Liste aller Ende-zu-Ende Verbindungen. A b b 3.36. Diagramm für Ubung 4
-
W P
1
2
3
1
1
2
3
2
1
8
2
'
1
'
.
1
1
1
2
d 3
2
'
Port
va
Port
V@
1
8
2
1
1
2
3
1
1
7k 3J: VCCTabeIIe zu Abb. 3.36
&-
& Bei dem Beispief aber 6tmm-Rin A W t 3.1,3 ist die wrn B e m p b C '&W A h nicht revhibel und MB nicht: fesawteli- wie er A e r r e i c h kam. schhgcn sie& X n ~ d c s ~ * s ~ 8 m w i 8 v o q.sodasser mersikl W, Cbr Mechanismus soilte nicht voraussetzen, dass alie Switche global eindeutige Namen erhalten. 7. tkhiqmi S e einen Mechanismus voq den VC-Switche benutzen kOmen, wenn oin Switch seinen Zustand hinakhrlich aller Vezbindwigen verlicrt, damit der % d e r von Paketen auf einem Pfad durch diesen Switch über dessen Ausfall . irufdertwird.
B. Schlagen Sie einen Mechanismus voq der von Datagrarnm-Mtchen benutzt werden kann, wenn ein Switch seine Weiterieimmbeiie ganz oder teilweise verliert, damit die S d r über den Ausfall informiert werden.
B, 0I inA i n t t 3.1.2 bedukbene VC-Mechanknus basiest auf der Annahme, !, dass jede Vezbindungsleiningeine Punkt-zu-hinkt-Leinmg ist. Erweitern Sie den WdeerIeihingsaigorithmus für die Verwendung von Verbindungsleitungen mit Nubung gemeinsamer Obeirtraguqpmedien, 2.B. Ethemet.
4% Angenommen, das Beispiel in Abb, 3.4 wird um eine neue Verbindungsleitung , i . emdtert9die Port I v m S w i d 3 (wo sich jetzt G befindet) mit Port 0 von Switch 1 (wo sich jetzt D befindet) verbunden wird. Keiner der Swikhe wird über diese Verbindungsieitung sinformiert*. Außerdem geht Switch 3 von der falschen Annahme aus, dass Host B über Port 1erreicht wird.
I
a. Was passiert, wenn Host A versucht, mittels Datagramm-Weiterlei~gan Host B zu senden? b- Was passiert, wem Host A versucht, sich mit des im Text beschriebenen VCArsfbaumechmismus mit Host B zu verbinden?
1. Geben Sie ein Beispiel einer funktionierenden virtuellen Leitung, deren Weg eine bestimmte Verbindungs1eitung zweimal überquert. Ober diesen Weg gesendete Daragramme sollten aber nicht unendlich kreisen.
12.In Abschnitt 3.1.2 wählt jder Switch &n VCI-Wert für die ankommencit biadqpieirurg. Zeig~eigeaSie die Mö&hkeit sauf, dass jeder S& den Wert für die abgeacarde Vwbindung&imng wWt, und dass die glehea. Werte von beiden Methode gewmt werden. Falls jeder Switch den a w VCI wähl& iss es troadem notwendie eine R'IT lang zu warten, bevor I gesendet werden? 13. Ermitteln Sie bei dem in Abb. 3.37 dargestellten erweiterten W,welche nicht vom Spanning-Tree-Algorithmusausgewählt werden. A
3 m .
Netzwerlr MK Obung 13 und
J 14. Gehen Sie von dem in Abb. 3.37 dargestellten erweiterten LAN aus und ne Sie an,dass die Bridge B1 ausfällt. Zeigen Sie, welche Ports nicln vom Spar Tree-Algorihus ausgewählt werden, wenn der Wiederher&-1 abgeschlossen ist und ein neuer Baum aufgebaut wurde, 15. kmchten Sie die Anordnung lernender Bridges in Abb. 3.38. Unte Annahme, dass aMe anfangs leer sind, ersteh Sie die Weiterleiauigswbeil jede der Bridges BI-B4 nach den folgenden &mragtmeea:
C sendet an A.
D sendet an C.
Führen Sie die Pom'auf, von denen ein eindeutiger Nachbar direkt er werden kam. Das die P~orlfbrB1 sind mit wA« und s B 2 besch ~
Abb.3NetzwerkMr Obung 15 und 16
Brpenderan C. AadetsnC.
a. Angenommen,
W
M
-
W
X
sendet ;an Z. Welche Brid~eslernen, wo X ist? Sieht das e von Y dieses Paket?
T m d e l w r e r n Sie, wie man ~ Iosen k2~1..
-
e
i
r
aUitre0em-k w ~ Bl&ewn
Abb.3Diagramm Mt Clbung 17
auf-
nbb.3.408 ErweitertesLW fXir Obung 18
Zwei lernende Bridges B1 und B2 bilden eine Schleife, wie in Abb. 3.41; sie . implementieren nicht den Spannung-Tve-Algorithmus. Jede Bridge verwaltet eine einzige Tabelle mit Paaren aus 4dresseSInterface>. a. Was passiertywenn M an L sendet? b. Angenommen, L antwortet M kurze Zeit später. Eühren Sie eine Folge Ereignissen auf, die dazu führen, dass 'einPaket von M und eines m n L die W e g e in entgegengesetzter Richtaq umkreisen. Abb. 3.41 : SchleifeN r die Obungen 19 und 20
Angenommen, M in Abb. 3.41 sendet an sich selbst (wasnormalerweise nie vorkommt). Erläutern Sie, w a s unter folgenden Annahmen passie~t:
:
a. Der Lernalgorithmus der Bridge muss den neuen Eintrag
b. Die neue Quekdresse wird instaiiiert, nachdem die Zieladresse geucht wird ,
Wachten Sie das erweiterte LAN in Abb. 3.12. Was passiert im Spanning-Tree . I Algorithmus, wenn Bridge B1 nicht teilnimmt und a, einfach alle Spanning-Tree-Al&rihus-~achrichtenweiterleitet?
b. alle Spanning-Tree-Nachrichtenverwirft? , Angenommen,
statt Bridges sind einige Repeater (Hub) in eher Schi&
verbunden. a. Was passiert, wenn jemand etwas überträgt? b. Warum wäre die Implementierung des Spanning-Tree-Mechanismus mit Repeatern schwierig oder ruimoghch?
C.
Schlagen Sie einen Adechtanismm v q - d w d Repeat- SchMb erImmen und einige Po- d M e n k & m ausn die W e i f e zu entfernen. F muss nicht ni jedem Zei@t fwnktionieren,
Aqpmmmen, eine B r i d ~ hat zwei ihrer Ports die Bridge dies erkennen und korrigieren?
gleichen Netzw&k. Wie kann
Welcher prozentuale Anteil an der Gesamtbandbreite einer ATM-Leitung wird von den Headern der ATM-Zellen verbraucht? Welcher prozentuale Anteil der gesamten Bandbreite wird von allen Overhead-Bits in AAL314 und A A L S verbraucht, wenn die Nutzdaten 512 Byte lang sind? Erklären Sie, warum AAL314 den Verlust von 16 aufeinander folgenden Zellen einer einzigen PDU nicht erkennt. Das P-Datagramm für eine ~ k ~ - ~ ~ ~ - ~ a ist c h40r iByte c h lang. t Es enthält einen TCP- und einen IP-Header irn Umfang von jeweils 20 Byte. Angenommen, dieses ACK überquert ein ATM-Netzwerk, das AALS benutzt, um IP-Pakete zu kapseln. Wie viele ATM-Pakete sind nötig, um das ACK zu befördern? Wie viele sind nötig, wenn stattdessen AAL314 benutzt wird? Die CS-PDU bei AALS enthalt bis zu 47 Füli-Bytes, während sie bei AAL314 nur maximal 3 Füll-Bytes enthält. Erklären Sie, warum die effektive Bandbreite von AALS immer gleich oder höher als die von AAL3N bei einer PDU mit einer bestimmten Größe ist. Vie zuverlässig mussfass eine ATM-Vefbindung sein, um eine Verlustrate von weniger als eins pro einer Million bei einer höherschichtigen PDU im Umfang von 20 Zellen zu wahren? Gehen Sie von AALS aus. Gehen Sie wieder von dem 20-Zellen-Paket und AALS aus der vorherigen Obung aus und nehmen Sie an, an das Ende der PDU wird eine weitere Zelle angehkngt, die das XOR d e r vorherigen &den der PDU ist. Dies ermöglicht die Wiederherstellung des Pakets nach dem Verlust einer ZeUe. *WelcheZellenverlustrate würde jetzt zu einer Nettoverlustrate von eins pro einer Million bei PDUs mit ]e 20 Datenzellen führen? Wir wissen, dass bei AAL314 am Ende jeder Zeile eine CRC-10-Prüfsummeund m m eWenn eine bei AALS am Ende der PDU eine einzelne ~ ~ ~ - 3 2 - ~ r ü f s usteht. PDU in 12 AAL3M-Zeilen befördert wird, widmet AAL314 gegeniihr AALS fast viermal so viele Bits der Fehlererkennung. a. Angenommen, Fehler träten in Bursrs auf, wobei jeder Burst auf eine einzige Zeile begrenzt sei. Ermitteln Sie die Wahrscheinlichkeit, dass A W 4 bei der
'
Fehiererkennung fehkhhgt, wenn genau zwei Zeilen davon betroffen sind. Fiihren Sie die deiche Aufgabe für drci Zdkn durch Ist AAL34 unter diesen Bedingwigen mehr oder weniger mverässig als AALS? Nehmen Sie an, eine N-Bit-CRC schlägt bei der Erkennung eines Fehlers mit Wahr*ichkeit lnN(wasgenau genommen nur zutrifft, wenn alle Fehler gleich wdmcheb lich sind) fehl.
bei der AAL.314 mit gcößetc0 b. K ö m Sie sich eine Fehlewerseiiungvorste~en, Wahrscheinlichkeit als AALS einen Fehler erkennt? Glauben Sie, dass soldie Umstände wahrscheinlich sind? 31. Zeiienvemiittlungsmethoden nutzen im Wesentlichen immer VC- statt Da* gramm-Routing. Erkiären Sie dies anhand eines konkreten Argtuuents. 32. Angenommen, eine Workstation habe eine YO-Busgeschwindigkeit von 800 Mbit/s und eine Speicherbandbreite von 2 Gbitls. Die Ein- und Ausgab erfolgen mittels Direktspeichenugrifl(DMA) auf den Arbeimpeichet Wie vieg Schnittstellen zu T3-Leitungen mit 45 Mbit/s kann ein Switch auf des Grundlage dieser Workstation unterstützen? J 33. Eine Workstation habe eine YO-Bus-Geschwindigkeit von 1Gbitls und eine Speicherbandbreite von 2 Gbit/s. Die Ein- und Ausgaben e r f o b niitt& Direktspeicherzugdf (BMA) auf den Arbeiipeicher. Wie vide Schnittsteilenzu' T3-Leitungen mit 45 Mbids kann ein Switch auf der Grundiage dieser Workstation unterstützen?
34. Angenommen. ein Workstation-basierter Switch k a m Pakete in einer Rate VOJI 100.000 pro Sekunde weiterleiten, ungeachtet der (innerhalbbestimmter G m zen liegenden) Gr6&. Die Watkstatiion basiert auf den in der vorherigen Aufgabe beschriebenen Parametern. Bei welcher PaketgröBe würde die Busbandbreite der begrenzende Faktor werden? 35. Ein Switch habe sowohl am Eingang als auch A q a n g FIFO-Met Wenn Pakete am Eingangs-Port ankommen, werden sie an das Ende des FIFO-Speichers gehängt. Der S w i a h versuciit nun, die Pakete vom Beginn jedes FIFO-Eingangsspeidiers zum Ende des richtigen Aqanp-FIFOs zu schicken. '
(a)ErklärenSie, wie es dazu kommen kann, dass ein Switch ein Paket verlie% daa für einen Ausgaap-Port mit leerem FE0 bestimmt ist. (b)Wie nennt man dieses Verhsilten? (C)
Bngenomn, der FIFO-Speicher kann frei aufgeteilt werden. Schlagen Sie eine Neuverteilung der Puffer vor, die obiges Problem vermeidet, und erklären Sie, wieso das so ist.
Ehe Phase eines ~ ~ B a a p a n
Pbsepm dgSE * ' t r i b dm Rdtetan skhtigm abgegehtiaV$.Lciten%ciaailA*&dirMoon~~~anab, &or&&& shd,um ein nxn-Banymi-Ntaaperk ao bauen. Vuifizieren Sie &eLosq&n=8.
~~
fddmkt. wcitdkde Uemtllr). l?dd&eh SC, clp Mt%-Netzwerkmit e&em I3anya.n-Netzwerk . wie . werden zw einem S w i d lKxdnmm kann.
Sie, wie cia Batder--
b.
deht das ~ e b n i au9, s 'we8n4&eiVerbindungen z u f w gewghlt werden? ,
Ern Hub {Rester)!$e&m !~-k&bifls-~t.her+wird durch einen 10-Mbit/+
Weh in &er ~&gbh&~e* in 'da& gesamte Vet'kehr zwischen e h a n ebzjgm Md&,sdi&SAr~t. h dClges&te Verkehr trotzdem durch d* V.ertiLaduqpleituhg z k d k Sem& uidSdtch B*&n muss, ergib sich nanimli keine .< . aa k&ibreife.
*,
er* <
2
"
1
L#*'"& s ~ kbr uAp&y$&e nem Wem& & d e m in&^soken-Riagb+in&?
b. Wie wkk'lbrr &ÖH -
8
.
Hyb &ht in ei-
lnternetworking
Es gibt mehr als ein Netzwerk Wi haben ia den biskrigm Kapiteln p&q wie mim mit Hilfe von Punkt-m-Punkt-Zeinmgeti* ibewagwqpnedigm und S w b h i eh cbzlnes Wetzweck bum h1 Das Frabieni ist, das viele Leute N-b mit v d h e a T a h b e gien gebaut haben, und d e miteinandeq &i: mit den
d
In diZ - w müssen mkhtige h b b . ~ g e h . werden: H e t q a g m S t UILfI W m *Bida& -W &tickt, h h n y& esl k Hete&&dmit ni dass die lkmItzer &W *erhp Every seeming mhPeregmijghal. I;Xm dXe S M o n weim equality conceals zu erschwerq 6 ~ & e r KsaeWitat t mia hierarchy. seh+ den Hosts zweier na-e$ia&& EJ-e&e m@Ech$ratehc' &G D ~ c & ~ u ~ - rang &&=er d&dd+& Nes- Mason Cool'ey .W* ts$ +@ i s 9ich'*dtr I upi . Typen kyhh l%aaG.'~b k h e nE t h w
*
d T+*WNw eite N-eik
l%&wtM*Um &&
VBI-
mtemA&&&er Art sein, die jew& ctia a n d b
das sich seit nummhr 20 Jabrba iedes Jahr vedoppek 79Qdwttm in Gram-g zwhqg um,ehe Rehe vm Heiamfarde-
rungen aufzugreifen, d a t ~ a t w& Wii kam man einem &zienten Pfad durch ein Netzwerk mit'Uillionen oder vielleicht MilIiarden,von b o t e n finden? Eng damit verbunden ist das Problem der Adressimng, d h , die Bereitstellung geeigneter Bewichner & alle diese Knoten. In diesem Kapitel werden verschiedene Ansätze für den Z u a a m m e n d w mehrerer Netzwerke und die dabei zu läsenden Probleme betrachte. Unter anderem beschreiben wir die Evolution des auf TCP/iP basierten lateraet, um die Probleme der Heterogenität und Skaliewg irn Detail zu verstehen, sowie grundlegende, dafür geeignete Techniken. Im ersten Abschnitt wird das Internet-Protokoll (P)und seine Verwendung h den Bau eines skalierbaren heterogenen,Internetworks beschrieben. AuBerdem wird das Dienstmodell und das hierarchische Adressiemngsschema des Internet beschrieben. Ein zentraler Aspekt bcim Aufbau großer heterogener Internetworks ist das Problem, effiziente, schleifenfreie Pfade durch die zu Grunde liegenden Netzwerke zu finden. Im zweiten Abschnitt werden die Grundlagen des Routing und Skalierungsprobleme von Rauting-Protokollen d a n d einiger Routing-Protokollen des Internet als Beispiele behandelt. Irn dritten Abschnitt werden mehrere Probleme pr wachst umsbeschwerden.) behandelt, die das Internet im Laufe der Jahre erfahren hat, und es werden verschiedene Techniken vorgestellt, die zur Lösung dieser Probleme angewandt wurP&n. Die aus der Verwendung dieser Techniken gewonnene Erfahrung führte zur Entwicklung von IP-Version 6 (IPv6). Irn Verlaufe dieser Diskussion wird die Bedeurung von Hierarchie beim Aufbau skalierbarer Neuwerke deutlich. Das Kapitel endet mit der Betrachtung zweier wichtiger Erweiterung der Internet-Fähigkeiten. Als erstes ist die übertragung von Multicast-Paketen eine Erweiterung der grundlegenden Dienste. Wir zeigen, wie Multicast - die Fähigkeit, Pakete effizient an mehrere Empfänger zu übertragen -in ein Intemetwork integriert werden kann, und wir beschreiben einige der Routing-Protokolle, die für die Unterstützung von Multicast entwickelt wurde, Die zweite Erweiterung, MPLS (Multptotocol Label Switching), verändert den Weiterleitungsmechanismus von IP-Netzwerken. Diese Erweiterung impliziert einige hderungen in der Art, wie IP-Routing umgesetzt wird, und bei den Diensten, die von IP-Netzwerken angeboten werden.
234
4.1
1
4
Einfaches lnternetworking (IP)
Im vorherigen Kapitel haben wir gesehen, dass mit Hilfe von Bridges und LANSwitchen verhältnismaig große LANs gebaut werden können, dass-diese Methoden aber hinsichtlich Skalierbarkeit und Heterogenität begrenzt sind. In diesem Kapitel werden einige Möglichkeiten beschrieben, die über die Beschränkungen der auf Bridges basierten Netzwerke hinausgehen und es ermöglichen, große heterogene Netzwerke mit relativ effizientem Routing zu bauen. Wir nennen solche Netzwerke Internetworks. In den folgenden Abschnitten gehen wir stetig zu einem immer gröi3eren Internetwork über. Wir beginnen mit der grundlegenden Funktionalität der derzeit eingesetzten Version des Internet-Protokolls (P). Dann werden verschiedene ~echnikenuntersucht, die entwickelt wurden, um die Skalierbarkeit des Internet (Abschnitt 4.3) zu verbessern. Dieses Thema wird abschließend mit einer Beschreibung der IP-Version 6 (IPv6), auch als das IP der »nächsten Generation« (IPnG) bekannt, abgeschlossen. Bevor wir uns mit den Einzelheiten eines Protokolls für Internetworks befassen, wollen wir die Bedeutung des Begriffs »Internetwork« sorgfältiger betrachten.
4.1.1 Was ist ein lnternetwork? Wir verwenden den Begriff »Internetwork«, um eine beliebigeeAazahl zusammen- . geschalteter Netzwerke, die Pakete zwischen Hosts übertragen können, zu bezeichnen. Ein Unternehmen mit zahlreichen Standorten kann beispielsweise ein privates Internetwork bilden, indem es die an den verschiedenen Standorten vorhandenen LANs über einige von der Telefongesellschaft gemietete Punkt-zu-Punkt-Leitungen miteinander verbindet. Wenn wir von dem globalen »Internet<<sprechen, an das heute ein hoher Prozentsatz von Netzwerken angeschlossen ist, geht dies aus dem Zusammenhang hervor. Wir betonen an didser Stelle erneut, dass der Schwerpunkt dieses Buchs die Vermittlung der Prinzipien von Internetworks ist, verwenden aber reale Beispiele aus dem globalen Internet. Als weitere klärungsbediirftige Terminologie ist der Unterschied zwischen Netzwerken, Subnetzen und Internetworks zu nenne3. Wir v d e n Subnetze (Subnetworks) vollständig bis Abschnitt 4.3. vorläufig meinen wir mit Netzwerk entweder . ein Direktverbindungs- oder ein vermitteltes Netzwerk der in den letzten beiden Kapiteln behandelten Art. Ein solches Netzwerk basiert auf einer Technologie wie 802.5, Ethernet oder ATM. Ein Internetwork besteht aus mehreren solchen Netzwerken, die miteinander verbunden sind, Um Zweideutigkeit zu vermeiden, bezeichnen wir die zu Grunde liegenden Netzwerke, die wir untereinander verbinden, auch als physikalische Netzwerke. Ein Internetwork ist ein logisches Netzwerk, das aus mehreren physikalischen Netzwerken besteht. In diesem Zusammenhang betrachten wir auch mehrere über Bridges oder Switche verbundene Ethernet-Netze nach wie vor als ein einzelnes Netzwerk. Abb. 4.1 zeigt ein Beispiel eines Internetworks. Ein Internetwork wird oft auch als »Netz von Netzenu bezeichnet, weil es sich aus vielen kleineren Netzwerken ,
/
lwzuwfk4
F m -
-
Abb. 4.1: Einfacheslntemetwo& Hn = Host,Rn = Router iIi
-' Iu Qießet Abbüdung d e n wir Ethernet-Naroe,einen FDBI-Ring -W*-. aie aiie sind aus ~ o l o g i o c h e Sicht r jeweih ehNetzwerke. Die Knot«i, die die eimekn Netzwerke miteimader man R W *Sie werden r ~ & n c hauch d aGattwap*genannt. Da
-
-'--.
BqpB aber mehrere Bedeutungen haben icann, beschränken wir uns hier auf W ~ ~ ~ ~ .IPist ]t &.heute o wichtigste k WaiBeq, o ~ um skaiimbare, Es wurde mp&qgW,nachr P läuft auf den knote^ (so ppg& auch Router) je& physdalkhen Netzwerks und Mett die Infradie es diesen Knotm und Netzwerken erhdx, wie e h einziges iogides zu funktionieren. Abb. 4.2 zeigt bekpichei*, .wie Ebts H1 uad 'liesgisch iiber das in Abb. 4.1 dargesteiite Immmwoi4k v e r b d n sind, eirib$lkh c k Protokollgraphen, der auf jedem Knoten läuft. M a n beachte, dass
höhere Protokolle, wie eB. TCP und UDP, normalerweise in Hosts auf IP aufsetw zen. Der GroiSteil dieses Kapitels behandelt verschiedene Aspekte von IP. Es ist s i c h lieh möglich, ein Internemork zu bauen, das nicht IP nutzt. Novell unterstützt z3. ein Protokoll namens IPX, das seinerseits auf dem von Xcrox entwickelten 204% Internetwork basiert. IP ist aber das interessanteste FaUbeis&13alleip schon w e m der Größe des Intemet. Anders ausgedriickt: Nur das auf IP b a s i a Interna 4 eine globale Skaiierung wirkiich erlebt. Folglich eignet es sic&am besten für die Untersuchung eines skalierbaren Internetwork-Protokolln
Ein guter Ausgangspunkt für den Bau eines Internetwork ist die Definition seines Diens~modelk,also der zwischen den angeschlaenen Hosts vom Internetwodt bereitzusollenden Dknste. Als wichtigste Frage bei der Definition eines Die-&s fiir e h h m e t w o r k ln.iyen wir klii;ren, dass wir ein- Host-zu-HatDienst nur bereitstellen können, we dieser Dienst irgendwie oberhalb jedes zu Grunde liegenden physikalischen Netzwe bereitgestellt werden kann. Die Engsdreidirng, dass unser I n e m r k - D i e n s m o d d gaantiwte Zusteliung j h Pakets in 1ms oder weniger bieten SOU, wäre z.B. sinnlos, wem die zu Grunde l b gmden Ne-logim Pakete beiiehig verzögern ktknen. Die bei dm Definitior~ des W-Dicn~trndeilsangewandte Philosophie lautet deshalb, e w aspru&slog V& möglich auszulegen, sodass nahezu jede Netatechnologie, die in einem InmrnemorkE auftauchen kann, den nötipn Dienst bereitstellen kann. D* P-Diensuncuhll etzt sich aus zwei Teilen zwammea; einem AdFessiemgsS k , aiie Hosts im In~rnetwodidentifiziert werden k ~ r r ~ sohbsna, mit b w n M uttd einem (verbkiuagslosen) Datqpamm-Modell für die Dbitenmtellung. Dirn Dienmadeil: w k l auch als »-Best' &rta bezeichnet, weil .sich 3P mar b e m w D~tagrarmneauszuliefern, jedoch ohne für die Zimsteliung zu garmricren. Wir stQLJen die Bchandimg des Adressicrung86chemas vorlänfig wrü& und b o l r a c h zuerst das D&~iibertra~gsmodoll.
\
~abgrarnm-Obertragung Das IP-Datagsamm ist grundlegender Bestandteil des Interk-~rotokolls.Wir wiswn aus A W t t 3.1.1, dass ein Datagramm eine Paketaa ist, die auf verbiaduqp lese W* %herein bktzwerk versendet wird. Jedes Datagaqm entbii1t am-d Inibr-m damit &,Netzwerk das Paka zlun richtigen I¿i% M6rdem.kagn, Es besteht keine N für e h M-mus, der das Metmveric ira, Voraus anwebt, was zu -'& ~ i r l l das l l -P& askommt. Man &E m einfach ab, und &s Netzwerk M6jades m nach dem BesE-on-wd %das gmdimchw Ziel. *Bat4iffort*. heb hier nicht, dass das EaetzwerIr wenn etwari.&d Iäuft d das Paket verlorengeh, velfäIscht oder falsch zugesteh wird oder aui a n k e Weise sein Ziel verfehlt. Es h i i h t sich, und h s ia auch schon des. &
tet, IP känne über ein Netzwerk laufen, das
nun aber nicht nui; dass Pakete vcrLom~&m A&udmul wmkn sie außer aeP Reihe oder auch doppelt ~ e s t e lDie i~ & M b vm IP fsiufmdm Protdrolie oder Amaadungm m & s a z k
des IP-D-oei&
. Dais W-Datqpmm
ist nat&-lich die Att der Prrkete, die bef6rdert besteht wie die meisren Pitlrete aus einem'
*a($i'ahin den vorherigen Kapitein. Der Grund hegtdarin, dass Paketfonnate auf
der
fa~emetwork-Schichtund darüber, auf die wir uns in den nikbren Kapitein konkm trieren, fast immer auf 32-Bit-Grenzen ausgerichtet h x h Pro~r~a~irne zu vereinfachen. Die ü b w e Art, weise ini den Intmne Rquests for Coaunentsj ist gen& 32-Bit-W&tmm zeichnen. Das obere Wwt ist idasjeaige, &g als esws wird, und das höchstwdge Byte jedes Worts ist dais & ü b e n wird M dieser i h m d h g h e n 'sich 1-t Fe& eAemies1, dk M e k von 8 Bir lang sind. Soli& in höchst &tx:cnen Rlka nicht mt~e&z@ läwt &da die k&ge dadureh bmrimnen, dass mask sich über dem ?aket.gek$~~~ zeichneten Bicpositionen ansieht. .('4 M t a dK &Inen.Felde des p - H e a h nahC*du; erkennt dass d a seinfache%Modeli d a Best-lHfont-a-gung vm Dr-m auch einige F e W e n adweht. Das Felg Version sgeziEiaierr die IP-Vimion, @@ akmciie P-krsion ist 4, die auch lp.tr4l v t d. Die Tmsache, das sish
-
P a i t a h ~ mitn spikmm Vepeiofaen neu.zu d & m . D durch ein Programm beginnt mit der Übergnzktag der daan, uni dm Das Fatid t.Ken $p@at, was mcijsa T m (Type Of Service) hatte im Laufe der Zeit bemits Ais grundlegende Funktion ermüglicht es abeq Pakete je na dangen unterschiedlich zu behandeln. Der TBSIWert kann 2.B. b ~ db && ~ Pakte in eine spgi&e Wwwschhge mit nidriga Vw-rufig g e s d t werda mQ Die Verwendung dieses M s (unter einem neuen Namen] wkd aa*1-,& W t t 6.33 behaiddt. -'M Dk a&&stm 16 Bit des Headets enrhalten die Iäage (L-) des eiMM des Headeas. Iaa Gegensatz zurnM d H h ,&Mtdas Feld Len Wtirter, sondern Bpe. Die msuamale Gtöf3e eines IP-Jhta&ramms Byte, Das p h y s Neawetk* ~ ~ aber das P kuft, mtwstützt m a k keine defm &gen Pakete. Aus diesem Grund erlsubt IP e mgs-und Red.ssemblieniiigsprozess.Das zweite Wort da Headers enthiiit tionien zur mwchen hgmentierung (siehe nächsa Abschnitt W und R e a s m b h g « ) . Beim dirmn Wort des Headers angekommen, ist das Rächste Byte das Feld (TimeTo Live). Diese lkzekhnung hat eher histohsFBC k&iemmg und liiw direkt auf die heutige Benutzug des Felds &&. Dieses FeM &M daaufdangea, die MRoatuig-Weifen kreisen, und sie zu vdcbten, statt sie W R e s s o vabrauctten ~ zu fabs-. Ursprün&& war& m auf e h e Anzahl von SekuniEen p e t z t + die der &h I d m m & m a p r i l e s Pakas
4
entlang der Strecke dekmmmhrc+n dkw Feld, bis es 0 arceichte. Da vorkam, dass ein Palrrt 1. fbhmdc lang-ineinem Rottter verweilte, und 'Router Zugriff awf oine wmehaae Uhr hatten, dekrdnentierteft die ter bei cks Vhiter1dtmag.b &&etg dan Tn-Wert um 1. D&b hat es in Fbp- als einem Z&$l&rmtwickett, was imrner noch eine sehr it ist, in sdeifea Pak* aimthqgm. Ehe Finesse birgt E i n s t h g dieses W s d d den &MEen Hast: Setm er es zu Bakete zu lange kreiaen, b$s sie abgefangen werden. Setlx er es zu werden sie mögltchemeise ihr Ziels EliCht erreichen. Der derzeitige San-
~~~
Id P r o t d ist ein D e m d M , der das höhere Protdrdl identifiziert, beeeffende IP-Paket weitergegeben werden soll. Es gibt definierte Werte für f@, UDP (17)und viele weitere Protok~ile~ die sich im Protokoligraphen d h k t rhalb von IP befinden können. die Berechnung dtt Priifsumme (Ch&aum) wird der gesamte IP-Hekder als -Wöaern betrachtet. Dann werden die Warter mittels E b s k m p i c addiert, uad das iserkomplement dieser Summe steilt die P&Das ist der in Abschnitt 2.4 beschriebene IP-P-nalgwirhaaus. wem ein Bit im Header bei der fsbertragung verfälscht wird, endriilt die e bei Ernpfang des Pakets nicht den richtigen Wert. Da ein verfälschter r einen Fehler in der Z k l a b enthalten kann und daher mi3glicherwek ausgeliefert wurde, ist es sinnvoll, Pakete mit falscher Prüfsumme zu verwerdiese Prnfsmme nicht so starke Fehlererkennungseigenat, sich aber einfacher ptogrlässt. iden 1-tem im &der erforderlichen Felder sind S o u m und üestineW,d.h. die Quell- und Zieladiesse des Pakets. Die Zieladresse ist der Schlüs9el die Datagramm-Ziustell Jedes Paket enthält die volle Adresse des Ziels, an +dem Raum Weiterleithgwntscheidungon getroffen werden, kbnen. Uadresse ist erforderlich, damit Empfänger entscheiden können, ob sie das antworten. P-Adressen werden au&ist vorläufig, dass IP unabhängig von den über die es läuft, seinen eigenen giobden Adressraum sehen, dass das eines der wichtigsten Merkmale für die 5
ntschiedene Optionen an& werden. Ob Header-Länge (Feld HLen) ermittelt. Optioeine komplette IP-Impiementierung muss sie
undh-m eines hheidichen Dieaamodds von Host
aber mehrere heterogene Netzwerke i s dass ~ jede Netztechnologie ihre eiget t l l q e n von der maximalen GM& eines Pakets hat. Ein Ethernet kann e i s e Pakete mit einer LaEnge von bis m 1.500 Byte annehmen, während
FDDI-Pakete 4.500 Byte lang sein können. Das stellt das IP-Diemtmodell vor zwei Alternativen: Sicherstellen, dass alle IP-Datagramme klein genug sind, um in ein Paket einer beliebigen Netztechnologie zu passen, oder eine MethodCt bereitzustellen, durch die Pakete fragmentiert und wieder zusammengesetzt werden körnen, wem sie zu groß sind, um über eine bestimmte Netztechnologie transportiert irru werden. Die zweite Alternative erweist sich als die bessere, insbesondere, wenn man sich überlegt, dass laufend neue Nentechnologien einge* werden, und IP über alle funktionieren muss. Dies würde es erschweren, eine für alle Technologen geeignete Grenze für die Datagramm-Größe auszuwählen. Das bedeutet auch, dass ein Host keine unnötig kleinen Pakete versendet, die Bandbreite vergeuden und Verarbeitungsressourcen verbrauchen, weil pro gesendetem Daten-Byte der Overhead durch Header steigt. Zwei an FDDI-Netze angeschlossene Hosts z.B., die über e h Punkt-zu-Punkt-Leitungmiteinander verbunden sind, müssten also keine kleineren Pakete senden, nur damit diese in ein Ethernet passen. Das zentrale Konzept ist hier, dass es bei jeder Netzart eine mximdle Obertragungseinheit (hlaximum Transmission Unit, MTU) gibt, die dem größten IP-Datagramm entspricht, das in einem Frame befördert werhn kann. Dimer Wert ist kleif ner als die grö%tePaketgröG M jeweiligen Netzwerk, weil das IP-Datagramm in den Nutzdztenbereich (Payload)des Frames auf der Sichexungsschicht passen muss, Insbesondere ist in ATM-Netzen der »Frame« die CS-PDU und nicht die ATMZelle. Für IP ist es transparent, dass CS-PDUs in Zellen segmentiert werden. Das heißt also, wenn ein Host ein IP-Datagrarnm senkt, kann er die von ihm bevorzugte GroSe wählen. Eine vernünftige Wahl ist die MTü des Netzwerks, an das der Host direkt angeschlossen ist. Dann ist Fragmentierung nur erforderiich, wenn der Weg zum Ziel ein Netzwerk mit einer kleineren M N umfasst. Sollte das Transportprotokoll, das auf IP aufsetzt, IP ein gröl3eres Paket als der lokalen MTv entspricht übergeben, muss es der Quell-Host fragmentieren. Die Fragmentierung erfolgt normalerweise in einem Router, wenn er ein Da&gramrn empfängt, das über ein Netzwerk weitergeleitet werden muss, dessen M W kleiner als das empfangene Datagramm ist. Damit diese Fragmente am empfangen. den Host wieder zusammengefügt werden können, tragen sie alle den gleichen Bezeichncr im Feld Wnt. Dieser Bezeichner wird vom sendenden Host gewählt und ist unter aUen Datagrammen, die von dieser Quelle im Verlauf einer angemessenen Dauer am Ziel ankommen, eindeutig. Da alle Fragmente des Original-Datagrammo diesen Bezeichner enthalten, ist der zusammenfügende Host in der Lage, die zusat~meagehorenden Fragmente zu erkennen, Sollten nicht alle Fragmente beim e m p h ~ genden H ~ sankammen, t gibt er den Reassemblierungsprozess auf und verwirft dse bereits angekommenen Fragmente. IP versucht nicht, den fehlende Fragmente wie? derzubeschaffen. Um dies alles richtig zu verstehen, betrachten wir den FaU, bei dem Host H1 &I Datagramm in dem Beispiel-Internetwork von Abb. 4.1 an Host H8 sendet. Urmr der Annahme, dass die MTU der beiden Ethernet-Netze 1.500 Byte, die des FnDINetzes 4.500 Byte und die des Punkt-zu-Punkt-Netzwerks532 Byte groß ist, SCW ein 1.420-Byte-Datagamm (20 B p für den IP-Header zuziiglich 1.400 Daten.
bb.4&
IP-Datagmme beim Durchqueren der In Abb. 4.1 dargestelltenNetzwerke
vqm /I sehen Weg dur& das erste Ethawt und das FDDI-Netz ohne FragW R w e r R2 muss es aber in drei Datagmmme hgmentiert weiden. pdmi Fragmente wetdem dgnn über dis &Ethemet von R o w R3 an den grknost gesendet, Diese Situation wird aus Abb. 4.4 ersichtlich. Diese Abbiidwng 6-h zwei wichtige Punkte hervor: E@
.
&des Fragment ist ein in sich a b g d o s m e s IP-Datagramm, das u n a b w
E!mnanderen Fragmenten über eine Reihe physikalischer Netzwerke übertragen wird. P-Daitlzgramm wird fiir jedes-durchquerte physikalische Netmverk erneut
icapsek. bei-
des Fragmentierungsprozesses werden anhand der in jedem DataHemier-Felder (siehe Abb. 4.5) diutlicki. Das oben daqeaelite W fsla~atiemPaket umfasst 1.400 Daten-Bytes und ein& 20 Byte langen Wem das.Paket bei Roqter R2 ankommt, der eine MTU von 532 .Byte rri t g &aepa&+rt kiidea. Bei e h n '532-~ytehATUbleiben nach dem qe k g e n ~p-'Hd'e>r512 Daten-Bytes übrib. sodass dgs erste Fra& $~yte8 d a @ t , W-qGGter ~ a tdas ' M-Bit im Feld Rap. ($i& 4,$j?.ys *U&, &dkre P r q p m w fcdga Der ~ mauf* 0, ~ia~mexit d a er(n Teil d a O r @ m l - Q a o ~ a m menthiilt, Dis im Fx~ginent( . g @ k ~ a t m&&mim ab dem 513. 'B* der Originalm*roder dsr O(W-Feld in daan Hader auf 64, also 512lO,gqe$zt.mu& m diese ~ivisiandurch 82 Weil die enmkkler von IP festgdegt haben, d b h k e t in 8i.~yk-~areneinhUten statdinden soll. nas Weutet, i iilrerOSlbst-l;eM %-~&rjatenebbiten satt einzelner $-&es &L W q al;db&i b pii a ~ f i n ndie; so fetgc1ie& wwmde,) at bede;i die ' i&&n $7tfd&en-~ymnutgenommen, und der 512 / 8 ='128: Dies, ist - &s?& Fragment, foEgiicb wird das . @.~thal6~=
Ii
*
F
L,
T
q] Bei der P-Fragmentierungb e n w Header-Feld& (a) nicht fragmentiertes Paket (b) fragmeaRierte Pakete
@I
1.400 Daten-Bytes
512 Daten-Bytes
ldenf = X Header-Rest
I
Header-Rest
I
Der Fragmentierungsprozess wird so ausgefiihrt, dass er wiederholt werden kann, falls ein Fragment bei einem weiteren Netzwerk mit eher noch kleineren M W ankommt. Dig Fragmentiemg erzeugt kleinere gäitige E-Datagtatn~e,die bei Empfang leicht wieder in das Original-Datwamm msammngemztr werden können, und zwar unabhängig von der Reihenfolge ihrer Ankunft. Die Rassembiienurg geschieht am empfangenden Host und nicht an einem Router. tmpl.rrient)arunai Wie schfießen die Beschreibung der P-Fragmentierung und -Reassembiierung mit einem Cadefqpent, welches die Reassembiiening durchfibt. Wir führen gerade diesen Code hier auf, weil er für einen grobTeil von Netzwerk-kbue repräsentativ ist. Er fiihrt kaum mehr als mühsame *Buch"hningu aus. Zuerst definieren wie die wichtige Datem(Fragi), die benutzt wird, um die einzeinen am Ziel ankomrnmden Fragmente aufzunehmen. Ankommende Fragmente werden in dieser Datensnukrur gespeichert, bis die Fragmente des 0&a1-
vorliegen. Z u diesem Zeitpmk wedm sie zu einem vollständigen : und arn eh : U bProtokoll iihergeben. M a n F m g U mtmcdet eiPi Fragment oder ein »Loch r entlef ine FRAGiOFFMASK "Idcfi ne FRAGOFFSET(f r a g f l ag) Idefine INFINITEOFFSET
E;,*
Oxlfff ( ( f r a g f l ag) & FRAGOFFMASK)
Oxffff
gtruktur zur Aufnahme der Felder, d i e Fragmente des gleichen IP-Dstagreindeutig i d e n t i f i z i e r e n */
as
prt!.
,typedef s t r u c t f i d { Ipiiost source; ?' . IpHost dest; 4 U-char prot; 't-
I:. !
Sypedef s t r u c t hole {, U-intfirst;
M e f i ne HOLE 1 t d e f i ne FRAG 2
I, Struktur zur Aufnahme eines Fragments oder Lochs */ typedef s t r u c t f r a g i f { U-char type; union { Hole hole; Msg frag; )U; s t r u c t f r a g i f *next, *prev; ) FragInfo;
/*
: F
F
Struktur zur Aufnahme a l l e r Fragmente und Locher eines bestirnten. zusamnenzusetzenden IP-Datagramns */
typedef s t r u c t FragList { nhol es; head; Binding binding;
1
bool gcMark; FragList;
/*
Header-Knoten
*/
Schalter fUr Garbage-Collection
*/
1
244
4 tnternetworklng
Die Reassemblierungsroutine ipfleassemble nimmt ein ankommendes Datagramm (dg) und den P-Header für dieses Datagramm (hdr) als Argumente entgegen. Das dritte Argument, fragMap, ist eine Map-Struktur (die mapBind-, mapRemove- und: mapResolve-Operationen unterstützt), die für die effiziente Abbildung des a n k m menden Datagramms auf die entsprechende FragList benutzt wird. (Die Gruppe der zusammenzusetzenden Fragmente wird eindeutig durch mehrere Felder im IP-Header identifiziert, wie durch die Struktur Fragld vorgegeben.) Die eigentliche, von ipReassemble durchgeführte Arbeit ist recht einfach. Wie bereits emiihnt, handelt es sich vorwiegend um Buchführung. Zuerst extrahiert die Routine die Felder aus dem IP-Headei; die das zusammenzuserzende Datagramm eindeutig identifuieren. Dann bildet sie aus diesen Feldern einen Schlüssel und schlägt diesen Schlüssel in fragMap nach, um die entsprechende FragList zu ermittela. Handelt es sich um das erste Fragment des Datagramms, mU6S eine neue Fragllst erstellt und initialisiert werden. Als Nächstes fügt die Routine das neue Fragment in diese FragList ein. Dieser Schritt umfasst den Vergleich der Summe aus Offset und Länge des Fragments mit dem Offset des nächsten Fragments in der Liste. Ein Teil dieser Arbeit erfolgt in der Subroutine hole-create, die unten aufgeführt wird. Schließlich prüft ipReassemble, ob aüe Löcher gefüllt sind. Sind alle Fragmente vorhanden, ruft sie die Routine msgReasgemble auf, um die Fragmente zu einem ganzen Datagramm zusammenzusetzen. Dann ruft sie deliver auf, um das Datagramm Protokollgraphen an ein höheres, durch HLP bezeichnetes Protokoll weiterzuge ipReassemb1e(Msg *dg, IpHdr *hdr. Map fragMap)
t FragId FragLi s t Frag I n f o Hole U-short
f r a g i d;
*I ist; *f i, *prev; *hole; o f f s e t , len;
/*
Extrahiere Fragmentierungsinfo aus dem Header (Off set und Fragment1änge) */ o f f s e t = FRAGOFFSET(hdr->frag)*8; l e n = hdr->dien GET-HLEN(hdr) * 4;
-
.
/*
Erzeuge eindeutige Kennung (IDJ filr dieses Fragment bzero( (char *)&frag1 d, sizeof (FragId) ) ; f r a g i d. source = hdr-ssource; f r a g i d.dest = hdr-adest; f r a g i d p r o t = hdr-*prot; f r a g i d .ident = hdr-rident;
*/
.
/*
Suche Reatsemblierungsliste fIir dleses Fragment; erzeuge neue, f a l l s n i c h t vorhanden */ i f (mapResolve( fragMap, &fragid, (void * * ) & l i s t ) == FALSE )
I
,
,
'
/*
Erstes Fragment des Datagrams 1i s t = NEW(FragLi st) ;
- benötige neue FragList */
Füge s i e i n Map-Struktur e i n */ 1is t - ~ b i n d i n g= mapBind( fragMap. &fragid. 1 i s t ) ;
/*
/*
I n i t i a l i s i e r e L i s t e m i t einem einzigen Loch. das sich über das gesamte Datagramn erstreckt */ list->nholes = 1; 1ist->head.next = f i = NEW(Frag1nfo) ; fi->next = 0; fi->type = HOLE; fi->u.hole.first 0; f i ->U. hol e.1 ast = INFINITEOFFSET;
1
/* Kenrize$dine aktuell e FragList als i n Fmge kmnend */ .
n i c h t TQrd i e Garbage-Co1 lecUon
1i s t - ~ M a r k= FASE;
J* burchsuche FragList nach dem rrichtfgen Loch f u r dieses Frag(nent *J pPer rn Blioe-shead; 9br ( fi+ prev-mext;
f'i I- 6; pmv
e
f l , f'i * fi-anext )
i if( fi->type -= { canti nue;
W 6)
1 hole &fi-%u.hnle; i f ( (offset * hole->last) M ((offset + len) > hale-*fY r s t ) )
/*
PrUfe, clb Fragment zuvor empfangene Fragniente Uberlappt i f ( o f f s e t * hole->ffrst )
I
/* Schneide Nacfirfcht von l i n k s ab */ msgStr+ptldr(dg, hol @-W r s t nfAet) r o f f s e t * hole-rff rst;
-
1 if ( {offset
f
* len)
> hol e-%last
/* Schneide Nacht-ieht von rechts ab */ mgfrwicatefdg, h o l g % l a s t offset)?. len = hole-SI mt oflge?;
-
3 /*
)
PrUfe j~tzt.ob 938
-
oder iRehrere Löcher
n ä t i g sind
*/
*/
i f ( ( ( o f f s e t + len) < hole->last) && (hdr->f rag & MOREFRAGMENTS) ) *
I
/*
Erzeuge neues Loch oberhalb */ hol e-create(prev, f i (of fset+l en) list->nholes++;
.
, hol e->l ast) ;
1 i f ( offset > hole->first )
I
/*
Erzeuge neues Loch unterhalb */ hole-create(fi fi->next. hole-*first. 1ist->nholes++;
.
(offset)) ;
/*
Ändere diese FragInfo-Struktur auf FRAG ab list-wholes--; fi->type = FRAG; msgSaveCopy ( & fi->U. f r a g , dg) ; break; ) /* Fa11s Loch vorgefunden */ ) /* for-Schleife */
*/
/*
Prüfe, ob w i r f e r t i g sind; f a l l s Ja. reiche D a t a g r m nach oben weite i f ( list->nholes == 0 )
I Msg fullMsg; J e t z t haben w i r e i n vollständiges Datagramn */ f o r ( f i = list->head.next; f i != 0; f i = fi-snext ) { msgReassemb1e(&ful lMsg, & fi->U. f rag & f u l 1Msg) ;
/*
1
.
/*' Entferne FragList und tugehsrigen Map-Eintrag mapRemove(f ragMap, 1ist->bi ndi ng) ; ipFreeFragList (1 i s t ) ; del iver(HLP, &fu l TMsg) ; msgDestroy (&f u l 1Msg) ;
*/
1 r e t u r n SUCCESS;
1 Die Subroutine hole-create erzeugt ein neues Loch in der Fragmentliste, das Offset first beginnt und am Offset last endet. Sie verwendet die Utiüty N W , die Instanz der gegebenen Struktur erzeugt.
*.
,,.
- J
reate(FraqInf6 * p w , Fra#&@ %mcl, y-jnt first, U-int last)
/* Erzeuge neues Loch von first bis last */ fi = NEW(Frag1nfo); fi->type = HOLE; fi->u.hole.first = first; fi-*u.hole.last = last; f i->next = next ;
ehe Situation zu
dksw Codes, dass die IP-ReassembIIenuig aiies andere
W i n b wird die F-Ftagmenriuung im M-einen
vermieden.
Ethernet-Adressen sind global eindeutig. Das allein reicht für ein Adressierungsfidtema in einem & r o hInternetwork aber nicht aus. Ethernet-Adressen sind flach, was bedeutet, dass sie keine Struktur haben und kaum Hinweise für Routing-Proto-
kolle2 bieten. Demgegenüber sind IP-Adressen hierarchisch, was bedeutet, dass sie sich aus mehreren Teilen zusammensetzen, die einer Hierarchie Im Internetwork entsprechen. Insbesondere bestehen IP-Adressen aus zwei Teilen, einem Netzwerk- und einem Host-Teil. Das ist eine relativ logische Struktur für ein Internetwork, das aus vielen untereinander verbundenen Netzwerken besteht. Der Netzwerkteil einer IPAdresse identifiziert das Netzwerk, an das der Host angeschiossen ist. Alle an das gleiche Netzwerk angeschlossenen Hosts haben in ihrer IP-Adresse also den gleichen Netzwerkteil. Der Host-Teil identifiziert dann jeden Host im jeweiligen Netzwerk eindeutig. Folglich haben die Adressen der Hosts in Netzwerk 1 in dem einfachen Internetwork von Abb. 4.1 2.B. alle den gleichen Netzwerk- und einen unterschiedlichen Host-Teil. Man beachte, dass die Router in Abb. 4.1 an zwei Netzwerke angeschlossen sind. Sie brauchen für jedes Netzwerk eine Adresse - eine für jede Schnittstelle. Router R1, der sich zwischen Netzwerk 2 und Netzwerk 3 befindet, hat beispielswek eine IP-Adresse an der Schnittstelle zu Netzwerk 2, die den gleichen Netzwerkted wie die Hosts an Netzwerk 2 hat, und eine IP-Adresse an der Schnittstelle zu werk 3, die den gleichen Netzwerkteil wie die Hosts an Netzwerk 3 hat. Wem sich also vor Augen hält, dass ein Router als Host mit zwei Netz-Interfaces imple mentiert werden kam, sollte man sich IP-Adressen dahingehend vorstellen, dass sk eher zu Interfaces als zu Hosts gehören. Wie sehen diese hierarchischen Adressen aus? Irn Gegensatz zu anderen Formen von hierarchischen Adressen sind die beiden Teile hier nicht bei aUen Adressea gleich groß. Stattdessen werden IP-Adressen in drei verschiedene Klassen unterteil$ wie aus Abb. 4.6 ersichtlich wird. Jede deaniert einen Netzwerk- und einen Hosp Ted mit einer unterschiedlichen Gröi3e. (Es gibt auch Adressen der Klasse D für Mt& ticast-Gruppen, die in Abschnitt 4.4 beschrieben werden, und Adressen der Klasse E, die derzeit nicht benutzt werden.) In allen Fällen ist die Adresse 32 Bit lang. Die Klasse einer IP-Adresse wird in den werthöchsten Bits identifiziert. Ist d a erste Bit 0, handelt es sich um eine Adresse der Klasse A. Ist das erste Bit 1und das Abb 4* 0
Netzwerk
1 0
Netrwerk
IP-Adres~en: (a) Masse A (b)Masse B (C) Wasse C
Ho&
Host
2. Wie bereits festgehalten wurde, haben Ethemet-Adressen eine Struktur für die Zitweiwq die ersten 24 Bit idemifkieren den Herstellet Dies iiefert aber keine nützlichen Info-tionen für Routing-Protokolle,weil diese Stniktur nichts mit der Netztopologie zu tun hat.
-
nur 126 Net&erke der hA geben k a m (dieW- Q utnd 127 sind .Jedes davon kann aber lsis m224- 2 (ca. 16 ItWioHbsts a h e h e n gibt W wieder zwei reservierte Werte). Die Adressen der Kiassc B ordnen 16 Bit fär den Host zu, was bedeutet, dass jedes Netz-
56 eindeutige H o ~ t - & z e i khaben, d.h. nur 254 angeschlossene s t - & z e i W 255 ist i& Brwdcast rewmiert und 0 ist keine gultige I). Das AdrebsKTutlgmhema unte~stütztalso Netzwerke der
EWANs; die zui Klasse A gehören), einer moderaten Anzahl
ist, dass sie in den Headern von @-Paketen befördert werden und die
Weiterleitung von Datagrammen in IP sind jetzt bereit, uns den grundlegenden Mechanismus anzusehen, durch den IPter Datagramme in einem Internetwork weiterleiten. Wir wissen aus Kapitel 3, Weiterleitung der Vorgang ist, bei dem ein Paket von einem Eingang angenomund über den entsprechenden Ausgang versendet wird, während Routing der
Jedes IP-Datagramm enthält die IP-Adresse des Ziel-Hosts, Der .Netzwerkteil« einer IP-Adresse identifiziert ein bestimmtes physika Netzwerk, das Teil ehes größeren htemetwwks ist, eindeutig.
i Jedes physikalische Netzwerk, das Teil des btemetworks iss, umfasst minde8twS
Routern in beiden Netzwerken austauschen. haben: Ein Datagramm wird von einem Quell- an einen Ziel-Host gesendet,.
Deiault-Router zu haben. Das bedeutet, dass alle Datagramme fllr Hosts, die durch den Default-Roukr versendet werden.
W sich wie folgt Bcschaib: ~ Q ~ ~ ~ M I o w K *
Tabelle 4.1 -ne &ktzw&
I) obn M8
1
252
4 Internetworking -
-
-
P
-
P
p
P
~
P-P--=---
-
Bridges, Switche und
.
L
#':
------
=
--
.--
- ----
-
P
-
P
-
P
-
-
-
~P
~P
---
-
P
~P
oute er
Leicht entsteht Verwirrung, wenn man versucht, zwischen Bridges, Switchen und Routern zu unterscheiden. Für diese Verwirrung besteht guter Grund, weil sie alle auf irgendeiner Ebene Nachrichten von einer Leitung an eine andere befördern. Manche unterscheiden sie auf der Grundlage von Schichten: Bridges sind Knoten auf der Sicherungsschicht (sie leiten Frames von einer Leitung an
Ein großer Unterschied zwischen einem aus Switchen gebauten ATM-Nett unddem aus Routern gebauten*fnterneti&tder, das$das Interner Heterogerriiat unterstützt, während ATM aus homogenen Leitungen besteht. Diese Unterstützung von Heterogen act ausbreiten kann.
stellen von Router R2 mit Intezhce 0 für die Pu&-zu-Punkt-Leitung 4) und Interface 1 für das Token-Ring (Netzwerk 3) beschriften. Dann über die in Tabelle 4.2 gezeigte Weiterleitungstabelle verfügen.
tabelh e n a h a h , erk anpchlossenen spiel bedeutet das, dass R2 die von ihm ben6ti~gmInfonnaim Netmverk (hegesamt acht) zu enreichn, in einer Tabelle w e m ;kn je&m physik*heu Netzweck mit diesen vier i&mägea aus. Da8 ist ein der letz&), wm Skakbarkeit zu erzieh.
xs414In#rmtworkkie besch5ftigen lassen, jeweils das richtigeNetzwerk w erreichen. Die die ein Routr benötigt, um ein Datagmmm an einen Kn tm N m & zri senden, wird duroh &en einPgen gesteat.
Routst. Implement'ierung h Abschnitt 3.4 haben wir eine Viiz Switch zu konstruieren, von einer AUzweek Anzahl von Netzwerk-Interfaces bis zu Im Allgemeinen ist die gleiche Palette an Optionen für die K o n s ~ o von n Ra tern verfügbar, von denen die meisten etwa wie in Abbiidung 4.7 aussehen. Kontroilprozessor ist für die Ausführung der Routisg-Protokolle (siehe Ab& 4.2) zmtibdig und fungiert genereil als zentraler Kontrollpnnkc des Routers. D@ Switching-Fabric (Vermidungseinheit) überträgt Pakete von einem Port zu d m m anderen, genauso wie in einem Switch, und die Ports steilen verschiedene Funktilitäocn bereit, die er dem Router erm6giichen, sich mit Leitungen untersch*dlid PTyps (z. B. Ethemet, SONET usw.) zu koppeln.
4 >
Abb. 4.7: Blockdiagrammeines Routers $3
Ari dieser Stelle lohnt es sich, ein paar Punkte über das Router-Design und wie & sich vom Switch-Design unterscheidet, zu betrachten. Erstens müssen Router &f Handhabung von Paketen mit variabler Länge ausgelegt werden. Diese -E kung trifft nicht auf ATM-Switche, wohl aber auf Etherriet- oder Frame-Rtlap Switch zu. EP hat sich gezeigt, dass viele HochleuMigs-Roum zellbasierteqkie ching-Fabrics nutzen. In solchen Fällen müssen die Ports in der Lage sein, Pakete aaik variabkr Länge in Zellen und wieder zurück zu konvertieren. Das ähnelt statlt dem Problem mit der Segmentierung und Re9ssgmblkrung ($AR) nach &q~ AZmStandard (siehe Abschnitt 3.3.2). Als weitere Konsequenz von IP-Datagrammen mit variabler Länge kann es 9n Vergleich zu einem Switch, der nur Zellen weiterleitet, schwieriger sein, die Leistung
-
-
bei mebener Leimqprate weiterleiten k m ;
risim wedm* ab @e entweder auf einem zentralen oder verteilten &ll basieren. Irn .zentraien Modell ist der in einem hiiheren
aber ehe pro Lei-@, wobei eine Leitwigskarie Pom bedienen kann. &eide Modeile haben Vor- und deichen Vmamwigen sollte ein verteiltes Weiterleitungsmodeii
2S6
I
4 IntrnMtworfdng
z. B. Instruktionen verwenden, die sich besonders gut zur Durchführung von Nk, Adresssuchen oder Berechnung von Priifsummon fiir IF-~atagrammeeipeii. Eine der interessanteren aktuellen Debatten über Netmerkprozessoren ist diq ob sie k s e r als die Alternativen sind. Können Nmmerkpmzesmren z. B. mit dcOb, hmiihrenden, beachtlichen Verbessemngen der Leistung konventionder Prozessw rm und der gigantischen Industrie, die hinter diesen VerLxmemqen steht, !kbW halten? Und kann ein Gerät, das Geaeralität anstrebt, so gut sein wie ein w entworfener Chip, der meinetwegen nichts aul3er P-Weiterleitung tut? Die auf Fragen wie diese hängt teilweise davon ab, was man mit *besser alsU... mestzo, . Beispielmveise müssen zwischen Hardware-Kosten, Marktgängigkeit, Leisatlkg d Flexibilität die Mögiichkeit, die von einem fertig konstruierten Routet unterst&& ten Featum zu ändeni immer Kompromisse gefunden werden. Wir werdavid weiteren Verlauf dieses Kapitels und in spätem Kapiteln noch sehen, wie schiedlii die Anforderungen an Router-Funktionalieift wirklieh sein können. Md kana mit einiger Sicherheit davon ausgehen, dass es in absehbarer Zukunfe M Router-Designs geben wird und dass Netzwerkprozessoren eine gewisse Rolle d a v spielen werden. J.
-
,
-
4.1.5 Adressübersetru~g (ARP)
Im vorherigen Abschnitt haben wir beschrieben, wie IP-Datagramme zum richtigeil physikaiischen Netzwerk gelangen, die Frage aber übergangen, wie ein D a t a g r d einem b&thmten Host oder Router in diesem Netzwerk übermittelt wird. Wwichtigste Punkt ist dabei, dass P-Datagrgramme IP-Adressen enthalten, während di4 p h p i k a e incerface-Hardware auf dem Host o b Routeq an den man das Dat4gramm senden will, nur das Adressierungsschema eires bestimmten Netzwerks vie% steht. Wir milssen also die IP-Adresse in eine A h der Sichenuigsschicht übemd , Zen, die dieses Netzwerk versteht (2.B. eine 48 Bit langt Ethemet-Adresse). Da& könmn wir das W-Datagramm in einen Frame kapwiu, der die Adresse der Si& nuigsdkht e n u t , und es entweder an das endgiihige Ziel oder an einen ~ o u d U senden, det verspricht, das Daagramm dem endgültigen Ziel zuzustelien. Eine einfache Methode zur Abbildung einer IP-Adresse in die Adresse eines p& sikalischen Netzwerks besteht darin, die physikaiische Adresse eines Rosts im Ha&: Teil seiner IP-Adresse zu kodieren. Einem Host mit der physikalischen Aduess& OOOlOOO100101001 (die den D e z b e r t 33 irn oberen und 81 im unteren B'pre litt@ kismite man 2.B. die P-Adresse 128.96.33.81 geben. Diese Lösung witd zwar in eiii6-2 gm Neuwerken angewandt, ist aber dahingehend begredzt, dass die physAdressen des Netzweh (wie bei diesem Beispiel) idcht li-inger als 16 Bit sein L& nen. in einem Netzwerk der,Klasse C können sie aber auch nur 8 Bit h g sein. funktioaiert natiirliich nicht mit 48 Bit iangen Ethemet-Adressen. Bei einer aIigemeinereh Usung kam ein Host eine Takiie mit Adresspaarcn V@ ' walten. Das heißt, die Tabeile würde IP-Adressen auf physitta1isch.e Adr6ssm a b b V den. Diese Tabelie könnte zentral von einem Sgstema$mMstrator verwalret W# dann ailf jeden iin Netzwerk angeschlossenen Host kopiert werden. Eine bes&
l
1
haben die gleiche W-N-nmmer),
Jeder H m e m p w dfe Adiage und sieht nach, ob es seine IPT ' dies zu, sendet der Host eine Antwortaachriiht, die seine Adresse
U).
.
ost
noch kein Eintrag vorhanden war. Der mit einiger Wabcheinfichkeit e& Narch-
Queue hikigt. Fir vermeidet dadurch, seine ARP-TabeUe mit sokhen enranni%igau$ub.
IP- in E h t -
Abb.4.8:
31
HardnnireTLpe=1
HLen = 48
Pro-
= On0000
PLen = 32 EiOu-
9 0 u m M W (Bytes H )~
#,'
ARP-Paketbrmat f k q die Abbildung voc) ,,f IP-Adressenauf Ethernet-Ad?esseri
Operation
-8
(8ytes 0-3) ~
.I%
d (8ytes 0-1) d
r
SaurceProtocdAddr(Bytes 2-3) TargdiardwareAddr (Bytes 0-1) TargetHarcAarareAddr (LNteg2-5) T d-dr
(W-
i das Feld HardwareType, das die Art des physikalischen Netzwerks (zB. ~ t h e m g
spezifiziert.
.
1
idas Feld ProtocoiType, das das höhere Protokoll (2.B. P)spezifiziert.
idie Felder HLen (xhardwareseitigeu Adresslänge) und PLen (xprotokollseit~~~
Adresslänge), die die Länge der Adresse der Sicherungsschicht bzw. des höhere$ Protokolls spezinzieren. i das Feld Operation, das spezifiziert, ob es sich um eine Anfrage oder
Antwcaw
handelt. i die der Quell- und Zieladressen der Hardware (Ethernet) und des Protokoh
5C
(E). '.I Man beachte, dass die Ergebnisse des ARP-Prozesses als zusätzliche Spalte in e h Weiterleitungssabelle wie die in Tabelle 4.1 eingefügt werden kann. Muss R2 brrt% spielsweise ein Paket an Netzwerk 2 weiterleiten, findet er nicht nur R1 als nächst& Hop, sondern auch die MAC-Adresse, die er dann in den Frame einfügt und ihm asi R1 sendet.
ATMARP Es soilte klar'sein: Wenn ein ATM-Netzwerk als Teil eines E-Internetwork e4setzt wird, muss es ebenfalls eine Form von ABP bereitstellen Die oben beschb bene Prozedur funktioniert dann aber natürlich nicht mit einem euifachen AT& Netzwerk, weil sie darauf beruht, dass ARP-Pakete an alle Hosts in einem Netzwerk rundgeaendet werden können. Eine möghhe Lösung besteht in der in A k h & 3.3.5 beschriebenen LAN-Emulation. Da diese hulatioasprozeduten wn Zhd haben, dass sich ein ATM-Netzwerk wie ein LAN mit gemeinsam genutzten Ofaein; tragungsmedien verhält, was die Unterstützung von Broadcilst beinhaltet, lässt stcb 3 ARP auf dieses zuvor gelaste Problem zurückführen. Andererseits gibt es Situationen, in denen es mögbcherweise nicht wündmm wert ist, ein ATM-Netzwerk als emuliertes LAN zu b e h d l n . Insbesondere W die LAN-Edation in einem grogen ATM-Netzwerk recht ineffizient sein. B e b t .
* ~ a n ~ B m & diese Rakete dann an d i e ,. Die-hgasiEhniEhtbullw g e w b a U ddeicht nütz& w b s w m für die Adressad6mng
A T M - N m in m e h m laieinae n Begriff nSuhetza in Abschnitt 4.3.5 verhalt sich ein Subnetz wie ein etimdms A k Kmtm Mgk&m Subnetz haben die &&e P-Nctzw&wie b c b ~ i c i s ~ s s ~ eIPnkud m n zwei Knoten (Hosts o c k Rwitu), die arrgeschios~sitrd, direkt äba das A'FiMMc~erkmitehw h n d zwei Knoten, die sich an mw-en Subet-
Abb.4.* LDgixhe 18-subneta
-Netzwerk anschliehn kann, ohne ihnen allen unbedingt Adressen aus vereinfachen, 2.B. in dem Fall, wenn nicht alle an das ATM-Netzwerk
angeschlossenen Knoten unter der Kontrolle der gleichen administrativen Insliegen. Die Aufteilung des ATM-Netzwereks in eine Reihe von LISs verbessert auob die Skalierbarkeit durch Fkgrenzung der Anzahl von Knoten, die von eine& einzelnen ARP-Semer unterstützt werden müssen. Als grundlegende Funktion ermöglicht ein ARP-Server den Knoten eines LIS, P 4 Adressen in ATM-Adressen aufzdösen, ohne Broadcasting anzuwenden. Jeder Km: ten im LIS muss mit der ATM-Adresse des ARP-Servers konfiguriert werden, soer beim Booten eine virtuelle Leitung (VC) zum Server aufbauen kann. Verfügt tr über eine virtuelle Leitung zum Server, sendet der Knoten eine Registrierungsnadw richt an den ARP-Server, die sowohl die P-als auch die ATM-Adresse des r-i& renden Knotens enthält. Auf diese Weise stellt der ARP-Server eine kompl& Datenbank aller Adresspaare (IP- und ATM-Adresse) zusammen. AnschIfefkd kann jeder Knoten, der ein Paket an eine IP-Adresse senden will, beim ARP-Smqs die entsprechende ATM-Adresse anfragen. Nach deren Erhalt kann der senden& Knoten mit Hilfe der ATM-Signalisierung eine virtuelle Leitung zu dieser ATMAdresse aufbauen und das Paket senden. Wie bei der konventionellen ARP-Methd kann ein Cache mit Abbildungen von IP-in ATM-Adressen gepflegt werden. A d h 6 dem kann der Knoten eine zu diesem ATM-Ziel aufgebaute virtuelle Leitung a 4 rechterhalten, solange ausreichend Verkehr darüber fließt, um dies zu rechtfertigmi Er vermeidet dadurch die Verzögerung, die durch einen erneuten Aufbau der vimmic ,s len Leimg für ein weiteres Paket entstehen würde. Das Modell »ClassicalIP over ATM* hat die interessante Konsequenz, dass m W im gleichen ATM-Netzwerk befindliche Knoten keine direkten virtuellen Leizwischen sich aufbauen können, wenn sie an unterschiedliche Subnetze angesc& Sen sind. Dies würde die Regel verletzten, dass die Kommunikation von einem S d netz zu einem anderen über einen Routet laufen muss. Die Hosts H1 und H2 &E Abb. 4.8 können z,B. im Rahmen des kiassischen Modells keine direkte virtuelle M tung aufbauen. Vielmehr benötigt jeder eine virtuelle Leitung zu Router R. Dies &ü& sich einfach dadurch erklären, dass P-Routing, in nicht-ATM-Netzwerbekanntermaßen gut funktioniert, wenn diese Regel beachtet wird. Inzwischen mden neue Techniken entwickelt, um diese Regel zu umgehen, sie führen aber zu beträchtlicherKomplexität und sind hinsichtlich Robustheit problematisch.
b Wir haben jetzt die von IP für die Behandlung von Heterogenität und s k a l i e 4 bereitgestellten grundlegenden Mechanismen kennengelernt. Hinsichtlich HG& rogenität beginnt IP mit der Definition eines Best-Effort-Dienstrsodds, d a minimaie Annahmen über die zu Grunde liegenden Netzwerke Qifft. Vor aUeq basiert dieses Dienstmodeii auf dem unzuverlässigen Datag~amm-Dienst.D m erweitert IP diesen Ausgangspunkt um zwei wichtige Merkmale: 1)ein gemeuisames Paketfonnat (Fragmentiem~eassembliemgist der Mechanismus, d d den dieses Format Uber Netzwerke mit unterschiedlichen MTUs fuaatia&qi und 2) eben globalen Adressraum für die IdentifGeruag da Hosfs (ARP ist Mechanismus, durch den dieser globaie Adressraum über Netzwerke mit myli schiedlichen physikaiischen ~&essierun~sschemata bktioniert). ~imich&$
den Umfailg an WOWB;zu reduzieren. Easund dam dem richtigen HrJst
2.6 hben wir festgestellt, dass Ethmet-Adressen vom Merstekt im konfiguriert werden. Dieser Prowird entspmhnd geregelt, uin B, dass alle AdEessen global +rn&udg sind. D& Bedingung seid~t sicherzustellen, dass die an ein einzelnes Ethemet (einsdieBiich L N mgeddomn eindeutige Adressen haben. A&rG Endautigkeit a b , waa wir ven Ethemet*A&e$sen vetl;iqen. h 4 e k s 9 e n müssen .dcmmxenüber in einem bestimmten I n m d nicht nur sondern auch die §tdmu des h t e y a m r k g widerspiegeln. Wie ,enthalr;sn sie einen Netzwerk- und einen Hast-Teil, Der Netzwerkeil Hwts im sei& Netzwerk &ich sein. Folgiiib kann eine P-Adresse der Fertigung im Hwt fest eingesteh werden, weil dies bedeuten würde, Herstek d, an m l c k Netzwerk wekhe Hosts f-diich angeEs w i h k auch bedeuten, dass ein einmal an ein Netzwerk angenie in eh a n k N m k verlegt werden könnte. Aus diesem
.
zu einer P-Adresse benarig ein Host weitere informatioaen, bevor er
einem Hogt beniswen W-Momtfenen
ist, weil man sicherstellen muss, it und niemais zwei Hosts die
sind automatische Konfigrvabekanntesten Mechode wird ein Protdoll Protocot (DHCP) angewandt, der für die Bereitist. Innerhalb einer ationsdaten fungieren. Man betrachh: z.B. das P m b h dec Verwaltung km Adressen im Internetwork eines Grofsuntemehmens. DHCP erspart es dem
Neteadnuniotratoq sidi mit eher Liste von Adressen und IirtdcimneinemNostzuman~~enundjdcn miiscn. S ~ ~ s können e n die ~ ~ t i o ~ Ai.r ojed ~
Adresse oims DHCP-Wers k o d i g w h ws&n m W c . Das etste Prab-hn, DHGP a h lern muq ist das Auffinden des (bt-Wmw).
stellt.
Hiue eine43 P r o t o W 8%@#ne *UDPI( (User hdb voa iP Ei&, UIlP aTvd aw&hr&& ist der sagt: ;Dirn ist ein EWCP-Paket.
e
n
Ein DHCP-Relaisagent empfängt eine DHcPMSCOvER-NachrKht durch Broadcastingvon einem Host und sendet dem DHCP-Server eine ebmsokhe Nachricht im Unicast-Verfahren.
MYW. h
DHCP-I
B ist eigentlich des NacMolger eines glteren ~r&tok*lls,das als BOOTP wird, und einige der Paketfelder sind daher fiir die Host-Konfiguration relevant. Bei dem Versuch* HCoRngurationsinformationen einzuhoseine Hardwareadrese (2.3.seine Ehemet-Adresse) in das Feld qtwortet' damit, dass er das Feld yWdr (ayour* [deine] ah dm *t zurücksendet. Weitere Informationen, =.B. &esein Ciient benutzte Dekult-Route2 k i b e n in das Feld opüons eingebun-
r,
[Bi MICP ~ o s t sdynamisch ' IP-A&-n zuteilt, bedeutet dies, dass sie ihre aicht ewig behdmi können. Dies würde irgcndwann den Adresspwl des
&,
~8 wghöph.
Andererseits kann man von einem Host nicht zuverlässig erwar-
fls Q seine Adresse zirwkgibt, wem er abgestürzt ist, vom Netzwerk abge;h d e r ausgeschaltet wurde. Deshalb ermögiicht DHCP das ~Mietenuvon
für ein bgreime ieitdaua Läufr die Mietdauer ab, steht es dem Server ,&Adresse seinem Pool wnichugeben. Ein Host mit einer gemieteten Adresse
muss seine Mietvereinbarung natiirlich periodisch verlängern, solange er noch an das Netzwerk angeschlossen ist und korrekt funktioniert. b DHCP verdeutlicht einen wichtigen Skalierungsaspekt: - Die Skalierung des Netzwerkmanagements. Während1 sich Diskussionen ü r SE konzentrieren, die Zustandsdaten in Netzwerkgeräten rht Sen zu lassen, sollte man unbedingt auch darauf achten, in welchem Umfang diq Kompiexität der Netzwerkadministration zunimmt. Dadurch, dass Netzwe~3c-r manager einen P-Adressbereich pro Netzwerk statt eine IP-Adresse pro HO& konfigurieren können, verbessert DHCP die Handhabbarkeit eines Netzwerks. ;
DHCP kann die Komplexität des Netzwerkmanagements in gewissemUrnfang ab& auch erhöhen, weil es ein dynamischeres Verhältnis zwischen physikalischen Hosq und IP-Adressen ermögiicht. Dies kann die Arbeit des Netzwerkmanagers erschw& ren, z.B. wenn es nötig ist, einen fehlerhaften Host zu finden.
.
a l
4.1.7 Fahlemddusig(KlW)
r;9
4
Die & c h a Fr- ha"t die An, wie das Jnternet Pabls behandelt 0bwobd-4 immer k e i t hfg Datain schwierigen Lagen ZU v&n, 2.B. wem Router nicht weg,wie er das Ratagcmm weimfeim so& d e r wenn ein Fra
4
d e r Host ein @-Da ddinbrt ICMP z.B, (n&g!kbrw& auf Rebb-sproze9s fehigwdhgen isr, die 'TTL 6 erreicht Bat odsr d a ~ ~ - & f & i i f k w - i m 3[P-He&r nicht Übe-E usw, ICMP dehxkrt a d eine R e h VCM S t e k m m t e n , die ein Router an €%dil QPe11-1Mat nitücai9enden kann. Ehe der ldhd&tm !&eUe&ehm *KtXiP-k-u b i c b n a . Sie t& dem Oueil-&t mit, dass W ehe bcaia
wir0
Itk sad R2, a qip* s'd. Der.Host b- k1 & seinen D Colite Rl & htagraimtg w m Wost empfmga, d selit er ia s e b z
er &W ICNZP-&--Na&ht an den Hast z d d c . i h n ä n , R 2 f u I ~ ~ ~ m ~ ~ $ e ~ 1
bion~,DaHatf8gd.n.dOnmRoa.in~h
I*
Virtuelle A)ortn#9ilka und 'Prinnel unsere Einfübnurg in IP I& der Betrachtung eines Themas, das man ise nicht e m a , daa, aber immer wichtiger wird. Bis hierher uns da& konzenes boten in unterschiedlichen Netzwerken zu en, miteinander uneingeschränkt zu kommuaiaieren. Dies ist normaiers Ziel im Inteniet. Jeder möc.hte an ieden E-Mail senden, und der Autor neuen Website möchte das gröBtmögliche Publikum erreichen. Anderemeb aber viele Situationen, in denen eine stärker kontrollierte Konnektivität erfofist. Ein wichtiges Beispiel einer solchen Situation ist das virtuelle private k ( V iPrivate Network, VPN). Begriff mVPN« wird mit recht unterschiedlichen Definitionen überladen. tiv können wir ein VPN dadurch definieren, dass wir iuis zueqt das Konzept s Unternehmen mit vielen Standorten richten aft privaten ~ & w e r k ansehen. te Netzwerke ein, indem sie von einer Telefongesellschaft Obertragwigsleitunten und über diese Leitungen ihre Standorte miteinander verbiiden. In einem Netzwerk ist die Kommunikation nur auf die Standorte des U n t e r n e b nzt, was aus Sicherheitsgriinden ja oft wünschenswert ist. Um ein privates erk virtuell zu machen, ersetzt man die gemieteten Ubcrtragungsleitungen, die inem anderen Unternehmen gleichzeitig benutzt werden, durch ein gemeintztes Netzwerk. Eine virtuelle Leitung (VL)ist eine sehr vernünftige Altereiner Mietleitung, weil sie nach wie vor eine logische Punkt-zu-Punkt-Verng zwischen den Standorten des Unternehmens bietet. Hat Firma X elsweise eine virtuelle Leitung von Standort A zu Standort B, können die beinder natiirlich P a k a z u s e n h Es besteht aber keine M'bgUkeit für ihre Pakete an Standort B zu senden, ohne zuerst ihrerseits eine virtuelle zu Standort B einz&chtcn. Der Aufbau einer solchen virtuellen Leitung verhindert werden, was bedeutet, dass unerwünschte Konnektia X und Finna Y unterbunden wird. 4.12(a) zeigt zwei private Netzwerke zweier getrennter Firmen. in (b) sind beide auf ein h e i l e s Leitwgsnetzwerk übergegangen. Die Komektivität eines echten privaten Netzwerks wird gewahrt, Da die priNetzwerke nun aber die gleichen übertragungseinrichtungen und Switche nsam nutzen, wurdc:n zwei virtuelle private Netzwerke erstellt. Abb. 4.12 wird ein Frame-Relay- oder Am-Netzwerk benutzt, um k o ~ Konnektivität zwi.sehen den angdossenen Standorten bereitzusti :dem ist es möglich, eine Sld c h e F d t i o n mit Hilfe eines IP-Netzwerks Intemetworks zu reaiisieren, um Konnektivität bereitzustellen. Wir können &r nicht einfach die verschiedenen Standorte der Firmen zu einem einzigen Interb o r k verbinden, weil dies Konnektivität Aschen Firma X und Firma Y ermögb e n würde, die wir vermeiden wollen. Um di- Problem zu lösen, müssen wir ein &wes Konzept einführen, das als IP-Tsrtrnel bezeichnet wird. P Ein IP-Tunnel ist eine virtuelle Punkt-zu-Pu&-Leitung zwischen zwei Knoten, & eigentlich durch eine beliebige Anzahl von Netzwerken voneinander getrennt &d. Die virtuelle Verbindungsleitungwird inne~halbdes Routers am Eingang zum &e&n
.
I
t
r
-412 i. Beispielvirtueller privater
NeQwedce:
Privates Netzwerk der Firma X
I
(a) zwei getrennte p r i w . Netrwuke J, (b) zwei virtuelle prIvatC , Netzwerke mit aemeinsamen Switchen
Privates Nebnuierkder FirmaY
(a)
Tunnel realisiert. Hierfür wird die IP-Adresse des Routers am fernen Ende des T* ncls bereitgestellt. Möchte der Router am Eingang des Tunnels ein Paka über M h e l l e Verbiriduqsleitung.senden, kapselt er das Paket in ein IP-Datolgramm. W Zieladresse im IP-Header ist die Adresse des R o u m am fernen Tunnelende, w W rend die Queiladresse die des kapseinden Routers ist. In der Weiterleitungstabelle des Routers am Eingang des Tunnels sieht diese virtuelle Leitung mehr oder weniger wie eine normale Verbindungskitung aus, bmachte 2.B. das Netzwerk in Abb. 4.13. Von R l zu R2 wurde ein Tuunel ko-
SchhdIm-
0 migewiesen. Die Weiterleitungstabeiie
alisehe Lzterfaceß. ~otdrfacc0 ist mit Netmwk 1 d Urtdace 1 Inttmetwork verbunden und damit die M - 5 t e & fiir den der mit keinen sptUfischeren h g a h in dcr Weiterkitungsta-
l21 verlassen hat, sieht es für den Rcst der Welt wie ein norR2 aus und wird entsprechendweitergele&et. AUe Router im
R2 das Paket a n p w stellt er fest, dass es seine Adresse entb"ält.
2 aqpschl-
die Find-
ist, leim eil das Paket an hNetzwerk beider Kapselung des Pakets auf seinem Weg durch
R2 wie ein Endpunkt des Tunneis verhäit, hindert iha natiirlich
368 ( 4 I m -
nicht verfügbar sind, wie beispielsweise Multicast-Routing. Durch Verbindung die. ser Router mit einem Tunnel können wir ein virtuelles Netzwerk aufbauen, in dem alle Router mit dieser Fähigkeit direkt miteinander verbunden zu sein scheinen. Genau auf diese Weise wurde der so geuannte MBcnie (Multicast-Baickbom}re&@ siert (siehe Abschnitt 4.4). Ein dritter Grund für die Realisierung von Tunneln i& Pakete von anderen Protokollen als IP über ein IP-Netzwerk befördern zu l a s s 4 Solange die Router an beiden Enden des Tunnels wissen, wie sie diese Protokoil~ behandeln müssen, sieht der IP-Tunnel für sie aus wie eine Punkt-zu-Punkt-Leitung; über die sie IP-fremde Pakete versenden können. Tunnel bieten auch einen M w k nismus, mit dem wir die Auslieferung von Paketen an ehen bestimmten Empfänger erzwingen können, auch wenn der Original-Header - derjenige, der im Tunnel-Headers eingekapselt ist - etwas anderes bestimmt. Eine Anwen Eigenschaft werden wir in Abschnitt 4.2.5 kennenlernen, in dem es um geht. Tunneling ist also eine leistungsstarke und relativ generelle Technik für die W richtung virtueller Verbindungsleihuigen über Intemerworks. Tunneling hat aber auch Nachteile. Es erhöht z.B. die Länge von Paketen, bei kurzen Paketen stark ins Gewicht fallen kann. Ferner kann es auch Auswirkudgen auf die Leistung der Router an beiden Tunnelenden geben, weil sie ja z u s ä a m Arbeit verrichten müssen, indem sie Tunnel-Header hinzufügen bzw. en$enid. khlieglich entstehen Verwaltungskosten für die administrative Einheit, die fiir d& Einrichtung der Tunnel zustiindig ist und sicherstellt, dass sie von den ~ o u t i n ~ - ~ r o ! tokollen korrekt gehandhabt werden.
4.2
Routing
In diesem und im vorherigen Kapitel gehen wir von der Annahme aus, dass Svoitche und Router ausreichend Kenntnis von der Netztspologie hab den richtigen Port wählen köben, an den ein Paket ausgegebea F d e virtueller Leitungen ist das Routing nur für das Paltet relevant, Verbindungsanfrage gesteilt wird. Alle nachfolgenden Pakete s~hiagenden W- wie die ein. In Datagramni-Netzwerken, ehschIief3lich IP-Netzwerk* ist Routing für jedes Paket relevant. In beiden Fäilen muss ein Switch oder R&& die Zieladresse im %er nachsehen und dann ermitteln können, welcher APort sich am besren eignet, um das Paket an diese Adresse zu kf6rdern. Wir dsi&% aus Abschnitt 3.1.1, dass der SvPirch diese Entscheidung anhand e W WeiterleitungstabelEe trifft. Das grundlegende Problem beim Routing ist; wie & Switche und Router die Information in ihren Weiterleitungstabellenerhalten.
b Wir betonen m s u t die wicbige$ o& vernad&ssigte Un W e r ' W u g d RROQ(#&~. Weiterleitung besteht da&, dass eines Pakets in einer Tabeiie nachgesehen wird. Daiui wird das Paket in die W? ning versend&, die von &er Tabelie vorgegeben w&d.\kru haben im vorh*. Abschnitt mehrere Beispiele hierzu betrachtet. Routing ist der Prozess, bei chp
'W a b eh4-: i%fk&*m&*a
tspezi&rHardware imp1;emEnerettwedw, w&dnd *1wl $mdaM. viard. Tabelle 4:4 mh@ mmwi. Bi diesem Eaii sag uns die Rh*en einen Eiop en&mta Remter ririt &@-GEDrese wiihewt die W*leim*bek die genaue Mama-
Beispieleinträgeaus (a) einer Rovting- und 0dner WeiterleitUngstabdle
Bevor wir uns mit den Einzelheiten des Routing befassen, müssen wir uns erneut die Kernfrage stellen, die wir uns bei der Entwickiuilg eines jeden Mechanismus für das Interna stellen müssen: ~Skaiiertdiese Liisung?« Die Antwort lautet bei den in diesem Abschnitt beschriebenen Algorithmen und Protokollen »Nein*. Sie sind für Netzwerke relativ bescheidener Größe ausgelegt, d.h. in der Praxis weniger als hundert Knoten. Die von uns beschriebenen Lösungen dienen abet als Baustein für e h , hierarchische Routing-Infrastruktur, die heute im internet benutzt wird. Die in d+, sem Ahdnitt beschriebenen Protokoiie werden insgesamt als In~adomain-Rou., ting- oder Zwar-Ga~ewq-Protokolk (IGPs) bezeichnet. Um diese BegrifEe zu -5 stehen, müssen wir eine Routing-Domain definieren: b gute Arbeirsdefinition isq ein htemecwork, bei dem sich alle Router unter der gleichen admiuistrativen Km&, trolle (2.B. ein einzelner Universitätscampus) befinden. Die Relevanz dieser D*, tion wird im nächsten Abschnitt deutlich, wenn wir uns mit lntdomab-Routhg-, Protokollen befassen. Vorläufig ist wichtig, dass wir das Problem.des Routing im Z u s a m m w kleiner bis mittierer Netzwerke, und nicht für ein Netzwerk von &,; Größe des Internet betrachten. /I
4.2.1 Netzwerkals Graph Routing ist im Wesentlichen ein graphentheoretisches Problem. Abb. 4.14 zeigt einen Graphen, der ein Netzwerk darstellt. Die mit A bis F beschrifteten Knoten des. Graphen können Hosts, Switche, Router oder Netzwerke sein. Für den Anfang k m b zentrieren wir uns auf den Fall, bei dem die Knoten Router sind. Die Kanten des, Graphen entsprechen den Netzverbindungen. Mit jeder Kante stehen Kosten in Ver4 bindung, die einen Hinweis darauf geben, ob es wünschenswert ist, Verkehr über diese Verbindungsleitung zu senden. In Abschnitt 4.2.4 wird beschrieben, wie die, jeweiligen Kantenkosten zugeordnet werdena3
g a a d q p n b Prublem nms manbtsiin Roqting d a Weg hbtibe-& m,aus denen sieh der W* a u a a m d t . W dem im Abb. 4.14 k-te man eiafich alle kiirwstui
~~
3. I*i den in diacm Qpid w.rmdchn &isFpiehtm (Graph) benutzen wir u t i d tete Kasten tlMi W* j& b t e Kosten zu. Das ist e&en& eine VerehhJsungg Gaauet wären gerichtete Kamm3was normaloi.lilreiscbedeutet, dass es zwischca jedenk Knom zwei Kanten gibt eint in jede ~üthtmgund jede mit 'bimeigenen Ikten. '
-
h ji?dm Knoten laden. Diese stati-
Km--
oder LimnpausU*.
nicht den Anschluss necar boten odcr Vdind-leitunaw.
meisten praktischen Netzwerken dadurch schm den Knoten ausführt. Diese Protog oder eines Knotems und h & m g von Kantenkosten. Man werteiltu im letzten Satz: Es ist schwierig, zentralisierte Lösungen machen, daher verwenden. aile guten Routing-Protokolle verteilte
von Routing-Algorithmen ist einer der Hauptgründe, warum derart reichhaltiges Gebiet für Forschung und En&w ist. Es gilt, vielen kwdorderungen zu begegenen, damit verteilte Algorithmen gut funktionieren.
bis die Diskrepanz zwischen den beiden Routern aufgelöst wird; dies geschehen. Das ist ein Beisgiiel für die Art von Prodie Routing-Protokolle berücksichtigen müssen. % beginnen unsere Andyse mit der Annahme, dass die Kantenkosten im NetzB bekannt sind. Wir ~riifendie beiden HaubtMassen der Rouh-Protokde: In Abschnitt 4.2.4kommea wir auf das Problem der und sinwoIlen Kantenkosten zurück. l&kdeife,
b auch so schell wie m@ch
Y L2.2 Distanzvektor-Routing(RIP)
k Distanzvektor-Algorithmusbasiert auf dem Konzept, dass jeder Knoten ein einknsionales Array (Vektor) bildet, das die jeweilige ~ ~ n t f e r n u n(Kosten) ~ u ~ zu übrigen Knoten enthält, und diesen Vektor zu seinen unmittelbaren Nachbarn b t . Distanmektor-Routing geht davon ans, dass jeder Knoten die Kosten der Wmdungsleitung zu jedem seiner diikt angeschlossenen Nachbarn kennt. Einer kdallenen Verbindunnsleitunn werden unendliche Kosten zugewiesen.
- -.i ' h & & A n
*distance*, daher die Bezeichnung; üblich ist auch die Bezeichnung *Bellman-Ford* nach den Erfindern des Algorithmus.
'
@wenWtt dp Dktanm&tor-Routing sendet jeder Knoten eine Naduichr
persöniichen Entfemungsliste an seine direkt angeschlossen& Nachbarn. p~E teilt Knoten A beispielsweise mit, dass er b o t e n G mit Kosten voii 1erreiien kann, Deshalb sumbeiden Kastenpostea, um die Kosten für die Erreichung von G über F E momentanen ummdliA zeichnet also.auf, dass er G mit Kosten von 2! über F erreichen kann. erfährt A von C, daes D von C aus mit Kosten von 1 erreicht wqden ,@ addiert dies zu den Kosten für die Erreichung von C (1)und entschiidt, B i h r C mit Kosten von 2 erreicht werden kann. was besser als die bisherieen Kosten ist. Gleichzeitig erfährt A von C, da* B aber C mit Kasten von ist. Er sdilusshlgm also, dass e B fikr C mit Kosm von 2 erreichen ipa dies schlschier als die momentanen Kosten für die von B (1) er diese nwe ~ o ~ t i ~ u . k-dksern Punkt kann A seine Rouring-Tabelle beziiglich Kosten und i L H C h alle Knoten in Netzwerk fortschreiben. Das Eraebnis ist in Tabelle 4.7 ent+W
.
Y
7&
C D
F'; fi!
E
1
B
1
C
2
C
1
E
I6 4.7: AktualisierteRouting-Tabelle in Knoten A
if
keine Tbp01-hdee r f o h miiswn nin einige wenige Informatio@dshen den Nachbarn ausgctau& wierdm, bis ein Knuten eine komplette hg-Tabelle zusammengesteilt hat. Das Vdreiren konsistenter Routing-Infor-
mationen über aile Knoten wird als Komergerrz bezeichna Tabelle 4.8 zeis aktualisierte Aufstellung der K m von jedem Knoten zu deii übrigen d Kotzvergez des Routing. Hier muss nochmal betont werden, dass kein e k w Knoten im Netzwerk über die Informationendieser TaWe y~dligt.V i e W k* jeder Knoten nur den Inhalt seiner e-en Routing-Tabelle. Ein verteilter Algoritk$ mus wie dieser hat den Vorteil, dass er es dlen Knoten emcjgiidit, eine kmis Sicht des Netzwerks ohne iegliche zentrale Autorität zu erwerben.
4
-4n:
injedem Knoten letztendlkh gespeicherte Entkmung (globale Skht)
C-4
Um unsere Erörterung des ~istam&dctor-~outin~ abzuschliehn, einige Einzelheiten untersucht werden. Zuerst bleibt ktzmtellen, unterschiedliche Anlässe gibt, bei denen ein bestimmter Knoten sich entschei nen Nachbarn eine Routing-Aktualisiening zu senden. E i e r dieser Masse periodische Akcualisiening. Dabei sendet jeder Kwten hin und wieder automatbh eine Aktualiskrungsnachricht, auch wenn sich nichts geändert hat. Dadurch den anderen Knoten mitgeteilt, dass der sendende Knoten noch läuft. Au13ar&qq wird sichergestellt, dass alle laufend die Informationen erhalten, die sie möglich& weise benötigen, wenn ihre aktueile~R o u m unbrauchbar werden. Die Häufig@-' dieser periodischen Aknialisierungen schwankt von einein Protokoll zum andere& Normalerweise liegt sie aber in der Gröfknordnung mehrerer Sekunden bis zu & reren Minuten. Der zweite Mechanismus, den man auch avcgestoßme (trigget4 Aktualisierung nennt, findet jedes Mai dann statt, wenn ein Knoten eine &tu& sierung von einem seiner Nachbarn empfängt, die zu einer Änderung einer Route L seiner Routing-Tabelle führt. Das hegt, sobald sich die Routing-Tabelle eines & tens ändert, sendet er eine Aktualisierung an seine Nachbarn, was zu eiper && rung ihrer Tabellen führen kann, sodass diese dann eine Akdisierung an Nachbarn senden. Nun betrachten wir, was passiert, wenn eine Verbindungsleitung od ausfällt, Die Knoten, die dies zuerst feststauen, senden ihren Nacbbarn ~~ungslisten. Anschließend stabilish sich das System normdemeise rec einem neuen Zustand. Was die Frage anbelangt, wie ein Knoten einen
4
9
~ d e r V ~ i n d ~ oErw~~ravaatingk& i ~ , Rouihg-hiisi'emg 8 k e h paaz A k m d b i e ~ z y k l e nhinweg
das Systam wieder stabilisiem d, k in einem gcriaafügig abweichendem Fa0 an der S e gehindert w e b , Nehman wir WgpidswerSe an, dass die VerbinduqdeiA nach E ausfäiit. In der nächsten A k d s h g s m d e gibt A eine unendm E an, wiihrmd B und C aber eine E n b w g von 2 zu E der genauen zeitlichen I3reignisabfolgc kann fotgenctcs passieren:
C schlussfolgert, dass er E in S Hops erreichen kann, um. Dieser Zyklus
zur Verbesemng der StabW-ir beim Routing wird riwn bezeichnet. Sendet ein Knoren hierbei eine Routing-Aktualisierung
ierung an A sendet, schiießt er die Route CE,2s also nicht in diese A h a -
~
~
276
1
4 Intemetworking
lisierung mit ein. In einer stärkeren Variante des Split-Horizon, die man als SplitHorizon with Poison Reverse bezeichnet, sendet B diese Route doch an A zuriick, belegt die Route aber mit negativen Informationen, um sicherzustellen, dass A nicht doch B benutzt, um zu E zu gelangen. B sendet 2.B. die Route <E, -> an A. Diese Beiden Techniken sind dahingehend problematisch, dass sie nur bei Routing-Schleifen genau zweier Knoten funktionieren. Bei grögeren Routing-Schleifen sind drastischere Magnahmen nötig. Angenommen, B und C in dem obigen Beispiel hätten eine Weile gewartet, nachdem sie über den Ausfall der Verbindungsleitung von A erfahren haben, bevor sie E Routen bekanntgaben. Sie hätten in diesem Fall festgestellt, dass keiner von ihnen eigentlich eine Route zu E-hat. Durch diesen Ansatz verzögert sich jedoch die Konvergenz des Protokolls. Schnelle Konvergenz ist einer der gröi3ten Vorteile seiner Konkurrenz, dem Link-State-Routing, das in Abschnitt 4.2.3 beschrieben wird.
.
,
Implementierung Der Code, mit dem dieser Algorithmus implementiert wird, ist relativ einfach. Wir führen hier nur einige der Grundlagen auf. Die Struktur Route definiert jeden Eintrag in der Routing-Tabelle. Die Konstante MAX-TTL spezifiziert, wie lange ein Eintrag in der Tabelle verbleibt; anschliegend wird er entfernt. I d e f i ne MAX-ROUTES Wdef ine MAX-TTL
128 120
typedef s t r u c t { NodeAddr Destination; NodeAddr NextHop; in t Cost ; U-short TTL; ) Route;
/* /*
Maximale Größe der Routi ng-Tabe1 1e */ Z e i t ( i n Sekunden), b i s d i e Route v e r f ä l l t
/* /* /* /*
Adresse des Z i e l s */ Adresse des nächsten Hops */ D i stanzinetri k */ Lebensdauer (Time To Live) */
*/
int numRoutes = 0; Route r o u t i ngTabl e[MAX-ROUTES] ;
Die Routine, mit der die Routing-Tabelle des lokalen Knotens basierend auf einer neuen Route aktuaiisiert wird, stellt mergeRoute bereit. Eine hier nicht dargestellte Tier-Funktion prüft periodisch die Routenliste in der Routing-Tabelle des Knotens, dekrementiert das Feld TTL (Lebensdauer) jeder Route und löscht Routen mit einer TTL von 0. Man beachte abeq dass das TTL-Feld jedes Mal auf MAX-iTL zurückgesetzt wird, wenn die Route durch eine Aknialisierungsnachrichtvon einem benachbarten Knoten bestätigt wird.
.
t
b u k (Route
far (4 = 0; i
*neu)
nunWutes;
if (W-*Destination
Mi)
-= r o u t l ngTab1efJ] .Destination)
if (new-+Cast +1 * rwtingTable[i] .Lost)
J* Habe eine bessere Route Befunden: */;
-
) el se 1f (new~NextHsp
r o d i ngTable[i] .NexUlopj
I
i f (i== numloutes)
Das i s t eine ganz neue Route; i s t Platz dafür vorhanden? */ i f (numRoutes C MAXROUTES)
/*
t+numRoutes ; IelseI . /* Gebe auf. weil diese Route nicht i n die Tabelle passt
routingTable[i] = *new; Setze TTL zurück */ r o u t i ngTabl e[i] .TTL = K T T L ; /* ~ e r ü c b i c h t i ~Hop e zum nächsten Knoten */ ++routi ngTable[i] .Cost;
/*
*/
voi d updateRoutingTable (Route *newRoute. i n t numNewRoutes)
I i n t i; for (i=O; i < numNewRoutes; ++)i { mergeRoute(&newRoute[i]) ;
1
1 Routing Information Plotocol (RIP) Eines der in IP-Netzwerken arn häufigsten verwendete Routing-Protokoll ist da Rostting Information Protocol (RIP). Seine weite Verbreitung ist gtiii3tentds deil Tatsache zuzuschreiben, dass es nisammen mit der beliebten Unix-Version d a Bnkeley Software Distribution (BSD),aus der viele kbmmerzieiie tJ&-~ariapty abgeleitet wurden, verteilt wurde. Es ist zudem sehr einfach. RIP ist das ParadeMp spiel eines auf dem oben beschriebenen Distanzvektor-Aigorithmus b e d Routing-Protokoiis. Die in ~n&rnetworksverwendeten Routing-Protokolle unterscheiden sich n z l ~ sehr geringfügig von dem eben dargestellten, idealisierten Graphen. In einem In=? n m r k d e n die Router lernen, wie sie Pakete an verschiedene Netzwerke weitaleiten sollen. Statt die Kosten für die Erreichung anderer Router bekanntzugeh teilen die Router die Kosten für die Erreichung von Netzwerken mit. In Abb. 4.115 würde Router C beispielsweise Router A die Tatsache bdmmtgeben, dass er dk Netzwerke 2 und 3 erreichen kann (an die er direkt angeschlossen ist). Die Kosten wären dabei 0, während er die Netzwerke S und 6 mit K o r n von 1und N t t m d 4 mit Kosten von 2 erreichen kann. Abb. 4.1 6: Beispiel eines Netzwerks unter Verwendung von RIP
Durch das RIB-Paketformat wird dies verdeutlicht (Abb. 4.17). Der ~rokteilde;l Pakets wird mit 4 i e t z w e r W m . Entfernung, -Paaren ausgefiilit. Die Prinzipien d e Routing-Algorithmw sind aber genau die giejchen. Erfährt 2.B. R o m A voll Router B, dass Netzwerk X über B mit geringeren Kosten als über den in der WQD ting-Tabelle existierenden nächsten Hop erreicht werden kann, s k d s i e r r A die
äbtr Kostea ustd a&bam Hop-für die Netmerknunvner mtspre-
DimnzpiNetzwerk2
Distanzvektor-Rortting. Rouitei; auf aile 30 Sekunden. Ein Router sendet ~ Aktuaiisiemg von jedes Mal eine Altualisie~rigsnachncht,w e eine an einer h & m g seiner Rating-TaMlc aeranlasst,. Ein ss RIP neben iP verschiene A d r e s s M c n 1~literstützt. Teil NetmerWAai.esse der Ankündigung wird als Paar dargeW. RIP weist in Version 2 (RIPV2)einige Merkmale bezüglich Skalierbarkeit auf, im nächsten Abschnitt behaqdeit werden. wir weiter mtea sehen werden, kann man eine Reihe verschiedener M&Kost-= für die Verbindwqpleinuigen in einem Routing-Protokoll wendet die eidkhste Methode an, bei der die Kosten jeder Verbinwie wie beiunserem obigen Beispiel. Folglich verentsprechea, Ues immeq die Raute mit den wenigsten Hops zu anden. Güitige Entfernungen 1bis 15, wobei 16 unendlich bedeum. Dadurch ist RIP auf verhälmismäB'i Netzwerke, d.h. solche*mitWegen von maximal 15 Hops, begrenzt.
rb. 3 k 317 "
Link-We-ibdng [OSPF)
zweite wichtige Kiasse von Intradomnin-Routing-Protokoflenist das Link-State-
Aouting. Die grundlegenden Annahmen sind beim Link-State-Routing mit denen des
Dkanmektor-Routing vergleichbat Jeder Knoten nimmt an, dass er den Zustand &z Verbindungsleitung zu seinen Nachbarn (intakt oder unterbrochen) und die kosten jeder Verbindungsleitung herausfinden kann. Auch hier möchten wir wieder &krn Knoten ausreichend Informationen bereitstellen, damit er den Weg der gering[
sten Kosten zu einem beiiebigen Ziel finden kann. Link-State-Protokolle basiefh&; auf einem recht einfachen Grundkonzept Jeder Knoten weiß, wie er seine 4 bundenen Nachbarn erreichen kann. Wenn wir auf3erdem sicherstellen, dass & Gesamtheit dieser Informationen an jeden Knoten propagiert wird, über ausreichend Kenntnisse über das Netzwerk, um sich eine desselben zu erstellen. Das ist ganz klar eine hinreichende (allerdings dige) Bedingung, um den kürzesten Weg zu einem beliebigen finden. Foiglich basieren Link-State-ProtokoUe auf zwei 'Mechadis Verbreitung von Link-State-Informationenund Berechnung von Routen Summe all dieser Daten. ZuverlBlariges Fluten ZuuerIässiges Fluten ist ein Prozess, der sichergesteiit, dass alle am koll teiinehmenden Knoten eine Kopie der Link-State-Uafdonen von gen erhalten. Wie der Begriff ~Flutenuvermuten lässt, sendet ein Knoten sem Grundkonzept seine Link-State-Monnationen über alle angeschlossenen Verbiidungsleitungen, und jeder Knoten, der diese Informti empfängt, leitet sie über aile sehe Verbindungsleitungenweim Diesis Prozess solange fortgesetzt, bis die Informationen alle Knoten im Netzwerk erreicht haben,_, Genauer gesagt, erzeugt jeder Knoten ein Aktualisiemngspaker, daSauch W Stare-Paket. (LSP)genannt wird und folgende Inforinationen enthälr:
%' ;-f. - .. :W
iDie Kennung (ID)des Knotens, der das LSP erzeugt hat.
iEine Liste der direkt mit diesem Knoten verbundenen Nachbarn, mit den KM& , 0.-
der Verbindmgs1eirung m jedem einzelnen. W Eine Sequemnummer iEine Lebensdauer fiir dieses Paket
+)G. 4 .¶
'
:L?
Die ersten beiden Elemente sind für die Routenberechnung notwendig. Durch die fetzten beiden wird das Fluten des Pakets an alle Knoten zuverlässig. beinhaltet auch die Sicherstellung, da& man ieweils 6ber die -ihgsteKopie der mationen verfügt, weil muhrere -&ersPriic&che LSPs von emem G e n im werk im Umlauf sein können. Das Fluten zuverlässig ausdegen, hat sich als schwierig erwiesen. ( E i frühe, im ARPAN-T benutzte Version des Link-S&$& IJd Routing verursachte 1981 beispielsweise den Ausfd dieses Ne'tzwerks.)' Fluten funktioniert wie folgt: Erstens wird die Oberrragung von UPS zwischen benachbarten Routem mit Hilfe von Bestätigwqp pund,Neuilbergagunge@ lässig gemacht, genau wie bei dem in Abschnitt 2.5 beschriebenen Protokoll dSichemngswhkht. Um ein LSP zuverlässig an aUe Knoten in einem Netzwerk fluid& ,.#, ff zu lassen, sind aber m e h r e weitere schritte erfokderie6. Man betrachte einen Knoten X, der eine Kopie eines LSP empfiingt, das ein an rer Knoten m e n s Y gesendet hat. Y kann ein anderer Router in der $eichen R ting-Domaia wie X sein. X vergewissert sich, ob er bereits eine Kopie eines ]ISP~&% Y gespeichert hat. Ist dies nitht der Fall,speichert er das LSP.V
3
Fr'
*
.'.
.,
I*,,.
'C.--
-
H& dsr nellc ISP Diar g r e e mznutmncl; vaawtet ,erj dswi es rnqiw*sein~mtw,spei& es und ersetzt Sols er würde h ak=rhdene
@!Kopie,vergieichr a die
Alctioa aadi atch wehe11.
wmp~eaeLSPdiis-,ddt~&~s~p~c!~s~w~&~eine &am, a d e r an den, von $em a dm W & g em-a hati Die T a t s a b LSP nicht an den Kaoten, von dem es enpfsxigeii wurde, d g a w n d e t mit für ein Ende des LSP-Flutens. Da X das LSP an alle seine Nachbanz
L
kitet, die ihrerseits das gleiche tun,erreicht je& die jüngste Kopk d p LSP 'chafle Kfitsen, .4,18 zeigt das Fluten eWLes'LSP in einem kleinen Netzwerk, Jeder schattiert hat,% speichert das new URIn Abb. 4.18.(a) kommt das LSP bei ICnoes in Abb. 4.18(bj an sehe Nachbarn A wnd C wmde A und C sendan sondern leiten es an B wcitec Da B zwei identische Kopien des an X P empfängt, akzeptiert er dasjenige, das als erstes ankommt, und ignoriert das als Duplikat. Dann leitet er das LSP an D weitet Er hat keine Nachbarn, an fluten könnte, also ist der Prozess a m o s s e n .
+ I,.-
(b)
Abb. 4.18: fluten von Link-State-Paketen: (a) Ein LSP kommt bei KnotenX an, (b) X flutet das LSPzu A und C (C)A und C fluten das LSP zu B (aber nicht zu X), (d) das Fluten ist abgeschlossen.
:Wie bei RIP erzeugt jeder Knoten LSPs unter zwei Bedingungen: Entweder bei Ablauf eines periodischen Timers oder auf Grund einer Änderung in der Topologie. ' k r einzige, auf der Topologie basierende Grund für einen Knoten, ein LSP zu erzeu.gp, ist allerdings, wenn eine seiner direkt angeschlossenen Verbindungsleitungen d e r einer seiner direkten Nachbarn ausgefallen ist. Der Ausfail einer Verbindungs'&tuna kann in manchen Fällen v ~ m Protokoll der Sicherungsschicht erkannt wert den. Der Ausfall eines Nachbarn oder der Verbindung zu diesem Nachbarn lässt sich durch periodische ~Helloa-Paketeerkennen. Jeder Knoten sendet solche Pakete an unmittelbaren Nachbarn in vorher festgelegten In~rvallen.Verstreicht eine bestimmte Zeit, ohne' dass ein »Helloa von einem Nachbarn ankommt, wird die
Verbindungsleitung zu diesem Nachbarn als ausgefallen deklariert, und ein neu@ ,s LSP wird zur Bekanntgabe dieser Tatsache erzeugt. Eines der wichtigsten Designziele beim Flutmechanismus eines Link-State-Pr&, kolls ist, dass die jeweils neuesre Information so sehne11 wie mogiich an aile Kngeflutet wird und dass die alte Information aus dem Netzerk entfernt werden m d und nicht zirkulieren darf. Außerdem ist es natürlich wünschenswert, die menge des Roueing-Verkehrs, der durch das Netzwerk gesendet wird, zu d rnieren. Schließlich ist dies aus Sicht derjenigen, die das Netzwerk für ihre ~n~ dungen nutzen, nur ~Overhead*. In den nächsten Absätzen we~den ein@& n Möglichkeiten beschrieben, um diese Ziele zu realisieren. Eine einfache Möghchkeit, Overhead zu reduzieren, besteht darin, die Erzeugm# von LSPs auf das unbedingt nötige Maß einzuschränken. Dies lässt sich durch & lange Timer - oft in der Größenordnung von Stunden für die periodische Wtlgung von LSPs erreichen. Unter der Annahme, dass das Flutprotokoil w W & zuverlässig arbeitet, wenn sich die Topologie ändert, kaan inan mit Sicherheit daausgehen, dass Nachrichten mit dem Hinweis, es habe *sich nichts geIin.dert*,dd& - ut sehr oft gesendet werden müssen. Um sicherzustellen, dass alte Informationen durch neuere ersetzt werden, t r a m UPS Sequenznummern. Jedes Mal, wenn ein Knoten ein neues LSB erzen'p;, i d d mentiert er die Sequenmummer um 1.Im Gegensatz zu den normalerweisi in P m kollen benutzten Seqummummern dürfen diese nicht Gberlaufen, sodass das Pd$ relativ groß sein muss (etwa 64 Bit). Kehrt ein Knoten nach einem Ausfd in den &ven Betriebszustand zurück, beginnt er mit einer Sequenznummer von 0. War d a Knoten lange a&r Betrieb, sind inzwischen aile alten LSPs für diesen Knoten (wie unten beschrieben) abgelaufen. Andernfalls empfängt dieser Knoten irgendwann ehe Kopie seines eigenen LSP rkt einer höheren Sequenznummer, die er dann inkrementieren und als seine neue Sequenznummer verwenden kann. Dies stellt sicher, dass seia neues LSP eventuell aus der Zeit vor seinem Ausfall noch übrige alte LSPs ersetzt. LSPs enthalten auch eine Lebensdauer (Time To Live, Tn).Damit wird sitz& gestellt, dass alte Link-State-Informationenletztendlich aus dem Netzwerk endwerden. Ein Knoten dekrementiert die ?TL eines neu empfangenen LSP bevor er es an.seine Nachbarn nutet, Außerdem Iässt er das LSP *aitem*, w i i k d es im Knoten gespeichert ist. Erreicht die 'TTL 0, flutet der Knoten das LSP e r n m mit einer TT'L von 0, was von allen Knoten im Netzwerk als Huiweis interpretiert wird,di&es LSP zu löschen. 8
-
J!
R-enberechnung V&@ ein bestimmter Knoten über eine Kopie der LSPs von allen anderen K m t 4 kann er eine vollständige Abbildung der Netztopologie berechnen. Mit Hilfe d i d Ahbiidung kann er die besde Route w jedem Ziel ermitteln. Die Frage lautet wie er das konkret tut. Die Lösung basiert auf einem aus der Graphentheorie gtd bekannten Algorithmus dem Algorithmus der kzest:en Pfade von Dijkstra, . Wir definieren den D i j k s t r a - A l g o ~ u szunächst in grapBentheoretieh& Begriffen. Gegeben sei ein Knoten, der aus allen empfangenen LSPs eine grafische Darsteliung des Netzwerks kons& bei der N die hGraphen vorhandene Knw
-
ist, €(i j ) die nicht nqpthm Kwtsn (Gewichtung) jeder Kante zwischen M bezeichnet, ura
$6 $ E
Besdireibw txmkka W$ mPo s M den K a o e der den Algopithmus um die b t W* rn ~ alleaihiga Knoten in N zu ermimin. A&r-
W(N*1W) = M v{~.sodri~(w)d&sMWrnirn~raiieiv aus(^-wist
@ - m ~l un( ~ - n < l rf. C(@=MrNCC(n).C(W+l(w,n))
funktioniert der Algorithmus wie folgt: Wir beginnen damit, dass M den und Kostmtsibeh~(dieC(n)s)zu anderen Knoten initialisiert. Hierzunächst die jeweiis bekannten Kosten zu direkt verbundenen Knoermitteln wir den Knoteti, der mit den izerinmten Kosten ( W ) erreichbar Z d e des Algorithmus wählen wir eine neue Route zu Knoten n über Knoten die Gesamtkosten für die Strecke von der Quelle zu W und dann nach n
als die alte ,Route zu n sind. Dieses Verfahren wird solange wiederholt, bis
Realisiemg des Dijkstra-Algorithmus. Konktet heißt das, dass jeder
die M g t e Liste mit emem Eintrag für mich selbst. Dieser Eintrag Nenne den im obigen Schritt in die bestätigte Liste eingefügten Knoten NBchster dddeseinLSP. -
G
Nachbarn (Nachbar) von NBchster die Kosten (Kosten), um diesen Nachbarn zu erreichen, als Summe der Kosten von mir selbst zu NBchster Iindvon N&&ster na Nachbar. a Falls Nachbar momentan weder in der bestätigten noch in der tentativen Liste steht, füge in die tentative Liste ein, wobei NachsterHop die Richtung ist, die ich auf dem Weg zu NBchster einschlage.
b Falls Nachbar momentan in der tentaäven Liste steht und
Kosten g
die für den Nachbarn m~m6ntanin der Liste stehenden Kosten den vorhandenen Eintrag durch
-!
4. Beende den Algorithmus, wenn die tentative Liste leer ist. Andernfalls ver den Einttag mit den geringsten Kosten von der tentativen in die bestätigte und kehre zu Schritt 2 nuiick.
Dieser Ablauf wird anhand eines Beispiels, dem Netzwerk in Abb. 4.19 verständlich. Irn Gegensatz zu unserem vorherigen Beispiel umtf. dieses eine Reihe unterschiedlicher Kantenkosten. Die Schritte fiit den Aufbau ting-Tabelie für k o t e n D sind in Tabelle 4.9 aufgeführt. Wir bezeichnen d Ausgänge von D mit den Namen der Knoten, an die sie angeschiosm sirr und C. Der Algorithmus läuft zunächst. scheinbar in d k fahhe. Richtung Weg mit den Kosten von 11 zu B, der als erstes in die tentative Liste wurde); zum Schluss liefert er aber die Wege mit den jeweils geriqpten Kosten @ alien anderen Knoten. .- ,.
$1
6i-l
I Schritt
1 Bestätigt I Tentativ
I
4
kblx 4.19:
I (D.O,-)
I Kommentare
I
I
I
I
I (B.5.C)
1
Obr B erreichen köftnen. Das Ist besser als anWe in Mden Listen, ako SB- es awf die tive Liste; das gleiche gilt für C.
I Die Kosten, um B Ober C zu erreichen, betragen 4
Tab.ih4,9: Schritte für die Zusammenstellung der Routing-Tabellefür Knoten D (Abb. 4.1 9)
..'I .I
m i f sind wir kitig.
C
State-Algorithmus W& viele angenehme Merkmale auf: Er stabilisiert weiskh schnell, erzeugt nicht viel Verkehr und reagied xasch auf Topolo-
r- und der Ldnk-State-Algorithmus unterscheid= sich & wie tanmektor-Algotitfimus kommuniziert jeder Knoten nur mit sei-
Protocol). Das Wort »Open. in der Bezeichnung bezieht sich darauf, dass um einen offenen, nicht: proprietären Standard handelt, der innerhalb der
.
känne j$en Host im Universum mit Kosten von 0 erreichen. Gibt der Host dies kkanng aktualisiert jeder Router in der näheren Umgebung seine WeiterleitungstabeQe, um auf diesen Host zu zeigen, und besagter Host empfängt eine Fülle von Daten, mit denen er überhaupt nichts anzufangen weiß. Er verwirft sie dann normalerweise alie und bringt damit das Netzwerk zum Stiiistand. Ein sol-
Dies ist keine ausreichend starke Authentifikationsform, um bai abzuwehren, erleichtert aber viele du& RhikonfiiguPation blemne. (Ehe ähnlich Form der AwhentUation wurde in RE-Version 2 bunden.) Starke Authentifikatiion auf der GM&@ von V-lung, die in Absfheitt 82.1 beschriebenen Methoden,wurde später fiinniQefÜgt. iZusätzliche Hierarchie: Hierarchien bilden eines der gnuidlegeoden W e r k um Systeme skaiierbarer auszuiegen. OSPF bietet eine weitere Schicht innerhalb des Routina dadurch. dass es ermöelicht. weiche (Areas)aufzuteilen. I%s bedeutk dass ~omainnicht anbedingt wissen muss, wie er jedes kam. Es genügt, we& weiß, wie er in den-richtigenBereich gelangt. Diad reduziert sich der Informationsdng, der itbertragen und in den i t bthmdeln Bereiche ausführlich in A gespeichert werden muss. W 4.3.4.
9 -_
-
I
i Lastau~gktch:OSPF ermögiicht es, mehreren Routen nun gleichen
g l e i c h Kosten zuzuweisen2und sorgt dafür, dass sich der Verkehr über diese Routen verteilt.
Er gibt mehrere Arten von OSPF-Nachrichten, die aber alle mit dem glevhn & &r beginnen (siehe Abb. 4.20). Das Feld Version ist derzeit auf 2 Besetz6 d Feld Type kann einen Wert mischen 1und 5 annehmen. Souidentifiziert d q W e r der Nachricht, und Areaid ist ein 32-Bit-Bezeichner des Bereichs, M d& sich der Knoten befindet. Das gesamte Paket, außer die Au&entifikatio~ten,ist dyr& eine 16-Bit-Pnifsumme geschützt; sie basiert auf dem gleichen Aigorithmus wie da IP-Header (siehe Abschnitt 2.4). Das Feld Autimtlcation type ist 0, wenn keim
Art verwendet wird. In den beiden letzten Fällen enthäit das Feld Auzhenäcaäon Passwort oder die kryptograpkische Ptükumme. 0
8
16
31
.I t
Abb.e
Format des MPF-Htaden
Von den fünf OSPF-Nachrichtentypen ist Typ 1die nHello«-Nachricht, die ein kau- .; ter an seine Partner sendet, um sie auf die oben beschriebene Art darad aufmerksam j
. h a g p n g m uiid BcPit.gtignngen w n L m k - S t a t e & l M m W-
.D# gndkgeade BILusteia ~
E-h '
in QSFF ist Li&Eann vkie W mtholt~. W= bedmi-
I I&k-S~N&&m B
Advetkmnt (LW.Ein& W*
~~
einige d a LU. k W ijedies ixt 3 n ~ o o r k bcninzre s Row-Protokoll muss OSPF I~~fomEio'b-~aihdikw b e i t s d e n , wie die ~ ~ o s s e n Netzwerke e a erreichbar k-~hlglich OSPF ein warig m e k informati~nenals das oben bese-iebene dhfmhe, a d dmen Graphen bmkmde Pmtokoii bieten. Ins-& W \tg&vR~meq der OSPF ausLink-Smte-Pak* eneugea, die Advertisemem fiir 1 4 i mder mehrere der direkt mit ihm verbundenen Netzwerke W a l t e n . Darüber mws ein Routei; der mit einem anderen direkt verbunden ist, die KoStm die fiir die Erreichung dieses b u w über die Verbindungsleiw anfalleti. beiden Arten wan Adv-nts sind erforderlich, damit die Routier m einer l@&mh die Xmten ermitteln könnea, die entmhm, um alle N w k e in dieser dkmdin und den entsprechenden &hsten Hop fiir jedes Nemverlt zu erreichen, i---Abb.4.21 zeigt das kkdormat fiir ein Link-State-Advenisement vom *Typ 1c. iBiwTyp-2-LSA kündigt die Kosten für V'bindianga &hea R o m an. Tw2~U werden S benutzt, um Netzwerke ammküadigen, an riie der anzeigende Router mgesehlossen ist, während andere Typen benutzt werden, um die im nächsten beschriebene imBtziiihe Hierarchie 'zuunterstützen. =els Felder eines ,E$ksind b i ~ aus s & i Absrrh?inen bekannt. Das Feld LS ~ g entspricht e eher ~~u~ (T&), ader &W es aufwärts Wa und das G A ablauft, wenn sein &er einen definierten H&hstwm erreicht. Das Feld Type gibt Ausicd't darüber; Bass M sich 'hier um e.in Typ-1-LSAhandelt. Abb. 4.21: Paketformat eines OSPF-LSA
Advertising router
Number of links
einem Typ-1-LSA sind die Felder Link state ID und Advertising router identisch. Beide enthalten einen 32-Bit-Bezeichner für den Router, der das LSA erzeugt hat. Während verschiedene Zuweisungsstrategien angewandt werden kennen, um diese ID zuzuweisen, muss immer darauf geachtet werden, dass sie innerhalb der RoutingDomain eindeutig ist und ein bestimmter Router durchgängig die gleiche Router-ID
E-Adressen 9us. (Man 4xhmem sich, cbasa eh Rom!& fiir je&%%seiner fm i i k e h e andere IPk&- vediqpn b.)
t*
Datenverkehr eignet, khnten wir ihr eine niedrige
4.2.4 Metriken
5. Beachten Sie, dass sich die Bedeutung des TOS-Feldes verändert hat, seit die OSPF-Spe fikation verfasst wurde. Dieser Punkt wird in Abschnitt 6.5.3 besprochen.
Mange)'.Fans k&
ACX
2m14Int.m-
setzr, zu der das Paket ernesrt r'ibmagenwurde. In diesem F d e&m Depa&"* ArnvaTTime die Z u v e r l ~ i der t Verbindungsleiitung. Jg übertragen werden müssen, um so weniger z u m ist die
Diese M& bot gegenüber dem u r s p r i b g k b M-us zwar bes9enrn& warf aber auch eine Mwnge Pxdeme auf. Umes @qer I s t niette sie relativ gut, weil die beiden Groheil der Kosten ausmachten. Unter
gesamte Verkehr diese Verbindtmgsiciw mied wnh sie Sie k i d i g t e daraufhin ihserseits niedrige K m an, zogbh wieder auf sich zurkk, und W mitec Diese h W a t hatte
de?n wurda SateItenfeitwgm ungebührlich 9,6 KEtis e d , o b d erstem &E b w m d u q p mit B e h v i e l b r e L e h m g bietenwürde.. . .
c ) ~ ' ~
stark beiastete Ve&iidungsbi-uag weist aie Katen von mehr & dem Dreii h r Koste4 jlR ungenutzten Zwtend auf.
hoher Gea~:hwidgkeit.ist attraktiver ais eine terrcstris~reasind eine Funktion der IleItungsauslatstnng, aber nur bei mitderen bis
9.6-kbitls satellitengmtützte
Verbindung 9.&kbiis Kabehrerbindung 56-kbiüs sateiiitengestützte Verbindung 56-Kbltls Kabehrerbindung
-------
voa alia gleichzeitig verlassen wird, weil sie selbst durch eine der Kosten zwar evmtdi für eJhigeWege uninteressant wird, wie vor abei die beste Wahl bleibt. Die Steigungen, Abstände und
Metrik 2nd- bedeutet es nicht, t sendet. In der Praxis werden einer Kantengewichnmg eine
4.2.5 Routingfür mobile Hosts
Bei einem Rückblick auf die vorherige Beschreibung der Funktionsweise voa, Adressierung und -Routing stellt man fest, dass eine implizite Annahme übet Mobilität von Hosts bzw. genauer: deren Immobilität .v&>. Die Adresse 6 Hosts setzt sich aus einer Ne@werknurnmer und einem Host-Teil z u s a m i a Netzwerknummer gibt Auskunft über das Netzwerk, an das der Host a n g e s c w ist. IP-Routing-Algorithmen sagen den Routern, wie Pakete an das richtige werk zu übermittein sind. Sie erweitern die Skalierbarkeft des Routing-Systems dadurch, dass sie Host-spezifische Informationen von den Routern fernhalten: , würde aber passieren, wenn ein Host von einem Netz abgekoppelt und an ein 9 res angeschlossen wird? Wenn wir die P-Adresse des Hosts nicht ändetn, i Host nicht mehr erreichbar. Alle an diesen Host adressierten Pakete würden Netzwerk gesendet werden, das zu der entsprechenden Netzwerknummer g 4 Wenn der bzw. die Router in diesem Netzwerk versuchen, das Paket an den 1ausdiefern, wäre dieser nicht da, um es in Empfang zu nehmen. Eine offensichtliche Lösun ses Problems besteht darin, den Host mit -l.-a peuen Adresse auszustatten, enn er an ein neues N e m a k angeschlossen r Mit Techniken wie DHCP (siehe Abschnitt 4.1.6) ist dies ielativ einfach. Inn& Situationen ist diese Lösung ausreichend, in anderen a b nicht. Nehmen an, dass die Benutzerin eines mit einem drahtlosen Nazada~teraustzesmtaa auf einem Ausflug aufs Land eine Anwendung ausfiihrr ~ e PC ; koppelt leicht Uge~ ndwann von einem Netzwerk ab und schliegt sich an ein andere anderen Frequenz an, was die Benutzerin nicht sonderlich stört. Sie erwart& mehq dass die Anwesdung, die sie ausführte, als der PC an Netzwerk A. schlossen war, ohne %terbrechung weiterläuft, wenn er sich mit Netzwerk $ bindet. h d e r t der PC einfach nur seine P-Adresse mitten in der AU& ds Anwendung, kann diese nicht weiterlaufen, weil das entfernte Ende nicht kann, dass es nun die Pakete an eine neue IP-Adresse senden muss. Im Idealfall m11 die Bewegung des PC füt die entfernte Anwendung tmmprent sein. Die ffiE Lüsung dieses 'Problems entwickeltenProzeduren w a k iasgesamt als .Wc (beaanntnach der XETF-Arbeitsgnippe, die sie d e h i q t hat) bezeidinet. ,Y
Y
1 ,
Überwachung des Routing-Verhaltens Angesichts der Komplexität des Routing von Paketen durch ein Netzwerk mit dem Ausmaß des lnternet müssen wir uns fragen, wie gut das System funktioniert. Wir wissen, dass es zeitweilig funktioniert, weil es uns gelingt, mit Sites überall in der Welt eine Verbindung herzustellen. Wir hegen aber den Verdacht, dass es nicht immer funktioniert, weil es uns manchmal nicht gelingt, mit bestimmten Sites eine Verbindung aufiubauen. Das wirkliche Problem ist her auuufinden, welcher Teil des Systems die Ursache dafür ist, wenn eine Verbindung fehlschlägt: hat eine Routing-Maschinerie versagt, ist der entfernte Server überlastet, ist eine Leitung ausgefallen oder ist der Host abgestürzt? -.
1
i
-"
Im Grunde handelt es sich dabei um eine Frage des Netzwerkmanagements, Syrteyadmigsfijltoreq ?$@I m g r mhiteiche T@E zyr Veragung, *um ihrese.. *I' , I eidrinenNe&*ke zu v~&&i&n, z.8. d&$%[email protected] SNMP;" das Problem kt für das lnt4rnet als ~ a & s aber ungelast. Obwohl das Jnternet , gröI3tenteils aus von ~enschengeschaffenen deterministischen Teilen besteht hat es ein derartig komplexes Wachstum erfahren, dass wir es fast als lebenden : Organismus oder Naturphänomen betrachten, das zu untersuchen sich lohnt. Das heißt, wir versuchen, das dynamische Verhalten des lnternet zu verstehen, I
'
FI
mcht mobüer Hosts oder der Mehrheit der Router im Internet ändern
die Mehrheit der Router wveräfkcfert bleibt, seizt dio Unterstützung
einem Netzwerk, an das sich der mobile Knoten auf seiner Reise fern von bei Benutzung eines Fremdagenten. Ein Beispiel eines Netzwerks mit Heimaie Fremdagent wird aus Abb. 4.23 ersichtlich. Sendender Host
1. Wie &qgr d& H~imatagentein Paket ab, das an den m b i k n Knoten
& F k i k m . l i b ~ g ~ d Prabnsb*mgtt&f
m,ader dass der Hehatageat & I P - A h d a e i g a m in die ARP-Nachrkhm~wifügt, Er hemmt
nten mit der 1 1 P 4 bdes mobilen Knotens zu
Pakete in diestm T d e l .
t w ist ~zu bdgea, dass sich Ftemdagept und mobiler Knoten
D W im fremden Namerk ehgmimt wird). iD b erweist s k h als piel einfache6 Der mobik Knoten setzt eindes festen Kaßbco~;lsi das Ziclkld seiner P-PAetemrd seine perAdresse in das t&dBW,-dh 0 1 iwer& die Pakete uaetr Eiasatz der
n Methoden an den festeri Ikmm wehqjekitet. Selbstversrändlichwerden
die oben beschriebenen Proozeduren in jeder Richtung benutzt*wenn beide niziermcfenKnoten mobil sind.
RoutQnoptimierungim mobih.lP
dender Knoten im gleichen Netzwerk befinden, dads Heimatnea: genten, der sie seinerseits im Tunnel durch das lneernet aurijckschl
bauen zu khnen, labt sich die Route optimieren. Andei~nhfis
benutzt die Quaiie dieses Binding4Jpdate, ianr einen Ehtrag in eine Cache&zu erstellen, der e h e Lhte mit Abbifidungw \nm mobilen Kn auf do-Adressen e n u l t . Bei der näthsten &rtragung eines Da~npakets ser Quelle an den gleichen mobilen Knoten h d e t sie da$ Bindins im Cache kann das Paket dire.kc zum Fremdagmtcn whicktmi, Diese M14drode weist ein otftm~ichdicheiProblem auf: Der Bind
298
1
4 Internetworking
W Abb. 4.24: Die Baumstruktur des lnternet 1990
Punkt-zu-Punkt-Leitungen (z.B. DS-3 oder OC-3) bestanden, die an Router angeschlossen waren. Des weiteren waren die einzelnen Endbenutzerstandorte in der Regel nicht an ein einziges Netzwerk angeschlossen, sondern bestanden aus mehreren physikalischen, über Router und Bridges verbundenen Netzwerken. Man beachte in Abb. 4.24, dass jeder Provider und Endbenutzer eine verwaltungstechnisch unabhängige Instanz war. Dies hat für das Routing einige wichtige Auswirkungen. Beispielsweise haben die verschiedenen Provider höchstwahrscheinlich unterschiedliche Vorstellungen vom besten Routing-Protokoll für ihre Netzwerke und von der Zuweisung von Metriken für Verbindungsleitungen. Aufgrund dieser Unabhängigkeit ist das Netzwerk jedes Providers gewöhnlich ein einzelnes autonomes System (AS). Dieser Begriff wird in Abschnitt 4.3.3 genau definiert. Vorläufig genügt es, sich ein AS als ein Netzwerk vorzustellen, das unabhängig von anderen AS verwaltet wird. Die Tatsache, dass das Internet eine erkennbare Struktur hat, lässt sich zu unserem Vorteil nutzen, wenn wir das Problem der Skalierbarkeit angehen. Tatsächlich müssen wir uns mit zwei zusammenhängenden Skalierungsfragen beschäftigen. Die erste ist die Skalierbarkeit des Routing. Wir müssen Möglichkeiten finden, um die Anzahl der Netzwerknummern, die in Routing-Protokollen versendet und in den Routing-Tabellen von Routern gespeichert werden, zu minimieren. Zweitens die Verwendung von Adressen: Wir müssen sicherstellen, dass der IP-Adressraum nicht zu schnell aufgebraucht wird. Im gesamten Verlauf dieses Abschnitts wird das Prinzip der Hierarchiebildung immer wieder aufgegriffen, um die Skalierbarkeit zu verbessern. Wir beginnen mit Subnetting, mit dem vorwiegend die Benutzung des Adressraums optimiert wird. Anschließend führen wir klassenloses Routing (oder auch Supernetting) ein, welches sowohl die Adressvenvendung als auch die Routing-Skalierbarkeit verbessert. Dann betrachten wir noch, wie Hierarchiebildung die Skalierbarkeit des Routing sowohl auf Internet-Domain- als auch Intra-Domain-Basis verbessert. Im letzten Unterabschnitt werden neue Standards für die IP-Version 6 betrachtet. Dabei handelt es sich um die künftige Version von IP, die größtenteils auf Grund offener Skalierbarkeitsfragen entstand.
4.3 Das globale Internet
1
299
4.3.1 Subnetting Mit IP-Adressen wurde ursprünglich beabsichtigt, durch den Netzwerkteil ein physikalisches Netzwerk eindeutig zu identifizieren. Es hat sich herausgestellt, dass dieser Ansatz eine Reihe von Nachteilen birgt. Man stelle sich einen großen Campus vor, der viele interne Netzwerke hat und sich entschließt, sich ans Internet anzuschließen. Ungeachtet der Größe würde der Standort für jedes Netzwerk mindestens eine Netzadresse der Klasse C benötigen. Schlimmer noch: für jedes Netzwerk mit mehr als 255 Hosts wäre eine Adresse der Klasse B nötig. Dies mag nicht als grof3es Problem erscheinen, und war es bei der Entstehung des Internet auch nicht. Die Netzwerknummern sind aber begrenzt und es gibt weit weniger Adressen der Klasse B als C. Adressen der Klasse B sind besonders gefragt, weil man oft nicht wissen kann, ob ein Netzwerk auf mehr als 255 Knoten anwächst. Deshalb ist es oft besser, gleich von Anfang an Adressen der Klasse B zu verwenden, als später, wenn die Adressen eines Netzwerks der Klasse C ausgehen, alle Hosts neu numerieren zu müssen. Wir stellen hier eine Ineffizienz der Adresszuweisung fest: Ein Netzwerk mit zwei Knoten benutzt die Adressen einer gesamten Klasse C und vergeudet dabei 253 Adressen. Ein Netzwerk der Klasse B mit knapp über 255 Hosts verschwendet über 64.000 Adressen. Bei der Vergabe einer Netzwerknummer pro physikalischem Netzwerk wird folglich der IP-Adressraum viel schneller als nötig aufgebraucht. Wir müssten über 4 Milliarden Hosts anschließen, um alle gültigen Adressen zu belegen, aber nur 214 (ca. 16.000) Netzwerke der Klasse B, um diesen Teil des Adressraums aufzubrauchen. Deshalb muss man eine Möglichkeit finden, die Netzwerknummern effizienter zu nutzen. Die Zuweisung vieler Netzwerknummern hat einen weiteren Nachteil, der sich offenbart, wenn man sich mit Routing befasst. Wir wissen, dass der Umfang der gespeicherten Zustände in einem Router, der an einem Routing-Protokoll teilnimmt, proportional zur Anzahl anderer Knoten ist, und dass Routing in einem Internetlxrork aus dem Aufbauen von Weiterleitungstabellen besteht, die einem Router mitilen, wie er verschiedene Netzwerke erreichen kann. Je mehr Netzwerknummern Gebrauch sind, um so größer werden natürlich die Weiterleitungstabellen. Große .Jeiterleitungstabellen erhöhen die Kosten von Routern. Sie sind im Vergleich zu kleineren Tabellen auch weniger effizient zu durchsuchen. Folglich sinkt auch die Leistung der Router. Dies ist ein weiterer Anlass für die sorgfältige Zuweisung von Netzwerknummern. Subnetting bietet eine elegante einfache Möglichkeit, die Gesamtzahl der zuzuweisenden Netzwerknummern zu reduzieren. Bei dem zu Grunde liegenden Konzept wird eine einzelne IP-Netzwerknummer verwendet. Die IP-Adressen mit dieser Netzwerknumrner werden mehreren physikalischen Netzwerken zugeteilt, die dann Subnetze (Subnets) genannt werden. Damit dies funktioniert, sind mehrere Faktoren zu beachten. Erstens sollten die Subnetze möglichst nahe beieinander liegen. Das liegt daran, dass sie an einem entfernten Punkt im Internet wie ein einziges Netzwerk aussehen, weil sie alle die gleiche Netzwerknummer haben. Dies bedeutet, dass ein Router alle diese Subnetze durch eine einzige Netzwerknummer repräsentiert. Deshalb
sollten sie vorzugsweise generell in der gleichen »Richtung* liegen. Eine perfekt& Anwendungsbereich für Subnetting ist ein grohr Campus oder ein Gral& unternehmen, das über viele physikalische Netzwerke verfügt. Von a d r h a l b Unternehmens muss man nur wissen, wo das Unternehmen an den Rest des h t e angeschlossen ist, um eines seiner Subnetze zu erreichen. Das ist oft ein einzeln& Punkt. Deshalb genügt ein Eintrag in der Weiterleitungstabelle. Doch auch wenn &{ Unternehmen über mehrere Punkte an das Internet angeschlossen ist, genügt es 0% U einen davon zu erreichen. Der Mechanismus, durch den eine einzige Netzwerknummer von mehreren Nm: werken gemeinsam benutzt werden kann, umfasst die Konfiguration aller ~noten.id jedem Subnetz mit einer Subnetmwke. Bei einfachen IP-Adressen müssen alle H 4 im gleichen Netzwerk die gleiche Netzwerknummer haben. Die Subnetzmas& ermöglicht es uns, eine Subnetzmmner eindühren. Alle Hosts im gleichen kalischen Netzwerk erhalten die gleiche Subnetznummeq was bedeutet, dass H+ aus verschiedenen physikalischen Netzwerken trotzdem die deiche Netzwerknuirii 4 mer haben können. Was die Subnetzmaske tatsächlich bewirkt, ist die Einführung einer weiterd Hierarchieebene in die IP-Adresse. Angenommen, wir möchten eine einzige Adred der Klasse B für mehrere physikalische Netzwerke verwenden. Wir könnten die S& n m s k e 255.255.25S.O verwenden. (Subn-asken werden im gieichen PO+ wie IP-Adrwn geschrieben. Diese Maske besteht daher aus Einsen in den o w 24 Bit und Nullen in den unteren 8 Bit.) Das bedeutet, dass die oberen 24 Bit Chi denen die Maske nur Einsen hat) jetzt als Netzwerknummer und die unteren 8 (in denen die Maske Nullen hat) als Host-Nummer defuiiert werden. Da die o h & 16 Bit das Nerzwerk'ds Klasse B identifizieren, besteht die Adresse nicht aus zwei; sondern drei Teilen: einem Netzwerk-, einem Subnetz- und einem Host-Teil. haben als6 den eigentlichen Host-Teil in einen Subnetz- und einen Host-Teil at@ gespalten (sieheAbb. 4.25). I
ld
1
Netmerknummer
W-Nummer
Abbau: Adressierung von Subnetzen
Subnetting bedeutet für einen Host, dass er mit einer IP-Adresse und einer Subnetzi maske für das Subnetz, an das er angeschlossen ist, konfiguriert wird. Hast H1 ipi Abb. 4.26 wurde =.B. mit .der Adresse 128.96.34.15 und der Subnetzma&
4.3 D.rglab8le lntaniet
( 301
&sts in einem bestimmten Subnetz werden mit gibt g e r n eine Subnemnaske pro Subnetz.) bitweise A N D dieser beidea Nummun definiert die Subnetmmmer dieses rmd Hosts im deichen C U ~ H L ~ ZIn. diFall ist 128.96.34.15 AND ;das ist die Subnetzn-er für das oberste
SubnetzmSubne-.
255255.255.128 128.9634.0
Abb. 4.26: Beispielder Unterteilung in Subnetxe
128.98.34.t
128.96.34.130
Subrwkm& 255265.2S6.128 Subnetznummer: 128.98.34.128
128-96.34.129
Subnetzrn255.255.255.0 Subnemummer: 128.W.33.0
timmte IP-Adresse d e n , führt er als erstes zwischen e i n e eigenen Subnetzmaske und der P-Adresse des das Ergebnis mit der Subnetznummer des sendenden Hocts in, weii3 dieser; dass der Ziel-Host am gleichen Subnetz angeschlossen ist und aket direkt über das Subnetz überwagen werden kann. Ist das Ergebnis nicht #eich, muss das Paket an einen Router gesendet werden, der es an ein anderes Sub:hetz weiterleitet. Uberträgt H1 beispielsweise an H2,fuhrt H1 ehi bitweises AND mischen seiner Sabnetzmaske (255.255.255.128) und der Adresse von H2 upd erhält 128.96.34.128. Dieses Ergebnis stimrtit nicht mit der hbnetznumer von H1 (128.96.34.0)überein. Folglich weiß H1,dass sich H2 p t einem anderen Subnetz befindet. Da H1 das Paket nicht direkt über das Subnetz er es an sehen Default-Router R1. der Änderung in der Adressstrukm größtenteils oder Router herausgefunden, welcher Knoten seioll, &er ARP aus, um die MAC-Adresse dieses
. Bei der Aufteilune in Subnetze ändert sich auch die Aufgabe eines Routers. Wir s dass ein ~ Router , Lieun ehfachea IF übef eine Weiterleitungstabelle verfügt, die
~
aus Einträgen im Format
die Unterstützung von Subnetting muss die Tabelle nun Einträge im Format <Subnetznummer, Subnetzmaske, NachSterHops enthalten. Um den richtigen Eintrag in der Tabelle zu finden, führt der Router cin AND zwischen der Ziehdresse des Pakets 4 der Subnetzmaske jedes Eintrags nachehander durch. Stimmt das Ergebnis mit der Subnetznummer eines Eintrags überein, ist dies der zu verwendende Eintrag, und er leitet das Paket an den dadurch bezeichneten Router weite$ Bei dem &ispiehepz ia Abb. 4.26 verfügr Router R1 über die in Tabelle 4.10 aufgeführren Einträge.
Rklk4.10: Weiterieitungstat)ellefür die Unterteilungin Subnetzevon Abb 4.26
Wenn wir mit dem Beispiel eines Datagramms von H1 an H2 fortfahren, würde R1 ein AND zwischen der Adresse von H2 (128.96.34.139) und der Subnetzmaske des ersten Eintrags (255.255.255.128) durchführen und das Ergebnis (128.96.34.128) mit der Netzwerknummer dieses Eintrags (128.96.34.0) vergleichen. Da die beiden Werte nicht übereinstimmen, fährt er mit dem nächsten Eintrag fort. Diesmal findet er einen Treffet. R1 sendet das Datagramm also über Interface 1an H2,weil es mit dem gleichen Netzwerk wie H2 verbunden ist. Wir können jetzt den Weiterleitungsalgorithmus für Datagramme wie folgt beschreiben: D = IP-Adresse des Ziels für jeden Eintrag <Subnetznummer, Subnetzmaske, NächsterHop> in der Plouting-Tabelle D1 = Subnetzmaske & D Fans D1 = Subnetznummer Falls NiichsterHop ist Interface sende Datagramm direkt ans Ziel
sonst sende Datagmmm an NNBchsterHop (ein Router)
In diesem Beispiel ist nicht dargestellt, dass normalerweise auch ein Default-Router in die TabeUe eingetragen und benutzt wird, wenn keine ObereinStimmungen vorgefunden werden. Nebenbei bemerkt, wäre die naive Implementierung dieses Algorithmus nicht sehr effizient, bei der man ständig die Zieladresse mittels AND mit eines Subnetzmaske vergleicht, die nicht unbedingt jedes Mal anders ist, uad eine linean Tabellensuche durchführt. Ein paar Feinheiten über Subnetting sind an dieser Stelle angebracht. Wir habes bei der obigen Beispielmaske von 255.255.255.128 (25 W e n , gefolgt von 7 Nd-
v d a t e t werden.
Classless Interdomain Routing (CIDR, sprich »Cider«; Englisch für *Apfel-
Adresraum in festen Anteilen dreier &u n t c e a k G d s m g eine EfWenz von U255 = 0,79% ergibt. Ein Ncawsrk mit 256 braucht eine Adresse der Klstsse B, was eine EfizIenz von nut 256/65.535 = ergibt. Subnea&q hifh uns zwarbei der siorgfHl.u;fgenZuweisung von Adwen, aber die Tatsache, dass jedes autanmne System mit mchr als 255 Ho- d e r das erwamngsgemäs künftig diesen Bedarf hat, e h &kesse der Klasse B b d
auch nicht abwenden.
Diese Lösung wirft a i e r w ein anderes, nicht minder kri@aL Pr ü M i g e r SpeK;hert>edarfin den Routsra Hat ein h i n e s AC z;B. 16
dann aber eine BfWmz von nw'16 X 25St65.536 3 6,2%.
Netzwerke erreicht werdM können. Aus der Bezeichnung Iasst sich
Vergabt von Adressen für 256 Knoiea und erhalten ein in den Weiterleitungstabeiien benutzt werdeii kann.
dasauf abzielt, mehrere Adressen, die man einem einzigen AS zuweisen der ursprüngiidien Bezeichnung für CIDR - Superne-rting.
.
.
erst der erste Schritt. Man stelle sich das Netzwerk ein& Interner-ServipProusse bereitzustelIen. Wiirde man den Unrernehmen Nerzwerknummern tm dass alle an das Provider-Netzwerk angeschiossenen Unternehmen ein ielen. Man betrachte das Beispiel in Abb. 4.27. Den beiden vom Providerbedienten Unternehmen wurden angrenzende 20-Bit-Netzpräfixe mge ide Unmehmen durch das gleiche Provider-Netzwerk areichbrrr
rk-Provider A&eaen aus diesem Raum seinen Kunden zuweisen.
4.2R
Aggregation von Routen mit CIDR
-2
m ' ltwkwdc bhorigen Behgnduag der E - W d m g sind wir davon
dass iich &
aI ein& Weftiei-W
m det W&erlei~gstaIbtUefür einen b-
*
wtshiap Ronrkr
mir Ziel 171.69.10.
43.3 lnterdomainflouting (BGP) Am Anfang dieses Abschnitts führten wir das Konzept ein, nach dem das Internet I autonomen Systemen organisiert ist, die sich jeweils unter der Kontrolle einer adm ~istrativenInstanz befinden. Das komplexe interne Netzwerk eines U n t e r n e M kann ein solches AS sein, ebenso wie das Netzwerk eines ~nternet-~ervice-~rovid Abb. 4.28 zeigt ein einfaches Netzwerk mit zwei autonomen Systemen. @ Ihrem Grundkonzept zufolge bieten autonome Systeme eine weitere M
t
4.3 D
l
s
I
307 ~
Abb.438: N d m i t zwei autonomen Systemen
Autonomes System
zwischen dem AS uad,denoljübrigan kernet befindet), kam ein Hast oder jm~ksrlh autmmm System recht eiafach herausfinden, wo% er d e n s d a , dre enn_ ein Zacl c t l d # k h & dieses AS gaidtnet sind: die Pakete
mk-P~ondefredolgea, wie: & Netzwerk seinec dhkt r%rei&t werden h e n , ntu$ s kam eine l 3 e W t - b
&ems W e i m p h d e r . Z u s t ä n w t teti Vplenhiwird &S B&s
einen WOWE emkben,
an ein
~
topologie auf, oder besser gesagt, es wurde entwickelt, als das Intemet eine Ba topologie aufwies (siehe Abb. 4.24). EGP ließ keine allgemeinere Topologie zu. einer solchen einfachen Baumstruktur gibt es nur einen Backbone, und auto Systeme sind nur als Eltern und Kinder, nicht aber als gleichwertige Partner ve den. Das EGP wurde durch das ~BorderGateway Protocol* (BGP) abgelöst, das eher komplexes Protokoll. Die wesentlichen Merkmale des BGP werden im Fol den beschrieben. BGP basiert vor allen Dingen auf der Annahme, dass das intemet ein vereinfachte Abbildung des heutigen Internet mit vielen Backbones in Abb. 4. zeigt. Abb.439:
Backbones
5. ~ ~ E a t e m o c a t ~ s x s r ~
1
AS, das nur eine VerbUdung 'zu einem anderen AS hat und nur k m ,Die kleine Firma in Abb. 4.29 ist ein Beispiel dieses AS-M.Ein AS, das 'Verbindungen zu mehr ab einem anderen AS hat, .weigert, Tradtvekehr m befordern. Die p E ( e Firma oben in ist ein W i e 1 dafür.
ohne Schleifenbildung zum b e a ~ i c ~ m v : . 2 izu r l finden. Das sich mehr mit lEr~khhrkeit ds mit Optimlemng. Die Ihnitrlung auch nur m ä h e r d optimal ist, kann als (4tof4e Leistung gelten. In mit der ausfthrlicherem Beschreibung des BGP wird der Grund
Wege zcu:pmisen. Dwrhalb ist es unaioglich, die Katen von here AS dwhlaukq auf sianw>iieWeise. zu bestimmen. Katen von #Ür
W- W a t e n , konneri fbeinen anderen aber auch ein unannehmbar der Edchbakeit ist ini Grunde eine Aussage, dass * m a n
.ai.&t bereit, bestimmte Informationen von Provider B zu ?hernehmen, aus
eneichenu, »Benutze den Weg, der
zu *gutem, wenn auch nicht Bei der Kcdgwation des einen Knoten aus, da als *BGP-Sp&era h. & SprtAm für d giert. Dieser JBGFSpr& baut: BGP-Skmngen za a~dtmmBGPAS auf. Diese Sitzungm werdm benutzt, um Infomaü kd i ~
*Ben
clen AS auszuta&.
0bMb-wZs
3
Tatsache s e h e m h ASi 2 m3tt~iIt.AS 2 höntzte
AS 3 for die
m n Routen zu P d b m vemeigprt PCYllb, die wann ~EEW&, wie diese zu arei&n wtikn.
312
1
4 IntmWwoMng
mittelt, deren Format aus Abb. 4.31 ersichtlich wird. (Man in dieser Abbildung irn Gegensatz zu anderen in diesem Kapitel beschriebenen Paketformate Mehrfache von 16 Bit sind.) 15
0
UnfeasiMe mutes lengih
Abb. 4.31: Format des W4Aktualisieningspakets
Widrawn routes (variable)
Totai path attribute length
Path attributes (J 'a-) Ne-laiyer
regdiability info (variabie)
Beachtenswert ist an B
192.4.16l20 g&chrieben. &.letzter ero9äBnenswerter hinkt L,dass BGP so definiert wurde, dass es a d Basis voai TCP M o n w d c k sieb ab zuwrKges T ~ q r t p r o t o k o U sen hat (Abschnitt5.2).Weil BGP-Sprecher sich auf TCP vetiiasson laOnnen, b j ~ ~ o r n S l ~ ~ o ~ . e i n e m h.Mange sich dsa nichts Zeit eine wBin-gnt--Nracbricht.a senden, die letzdich Mdzh bin
R o w - T a b abgd&et sind. Abgesehen von dem Ebwk, dass BGP-4 nurr W -:- & Erreich iaf011n8umer autcmmm Eyammm amgmw& WeffSiaEsolitem, wcdm
diesem Austausch ausreichend k i f o d o &chbatui lQszwerkon &U gröf3taitek den A5 seiht i i M .
um scbkihnfreie Routen m
.,
d q a d u komplex wären. Aus diesem G m d benutzen
314
I
4 Inmmmo&bg
die Router in einem Backbone-Netzwerk eine BGP-Variante, die als ~InteriorBGPr (IBGP) bezeichnet wird. Ober diescs Protokoll k ö ~ e sie n die Informationen, die sie von den BGP-Sprechern an den RBndesn des AS erfahren haben, m d e n iibdgm Routern im AS effektiv verteilen. IBGP emdgkht es jedem Router im AS, den besten Border-Router f2ir die fhennittiung cines Pakets an eine bestiiimte AdIesse ausfindig zu machen. Gleichzeitig verfolgt jeder Router im AS, wie er die ehzeinea brder-Router erreichen kann. Hierfür benutzt er ein konventionelles InttadordnProtokoll ohne injizierte Informationen. Durch Kombination dieser beiden UiEcmmtionsquellen kam jeder Router im AS den richtigen niichsten Hop für die Präfixe ermitteln.
,
4.3.4 Routing-Bereiche Als hätten wir noch nicht genug 'Hierarchieebenen, bieten einige Link-State-Protcikolle für das Intradomain-Routing die Moglichkeit zur Auftedung einer R O U ~ Domain in Bereiche (Areas). (Die Terminologie wechselt etwas zwischen den W kollen; hier verwenden wir die der OSPF.) Durch Hinzufügung dieser weiHierarchieebene können einzelne Domains wachsen, ohne die Intradomaui-Rot@ ting-Protokolle zu überlasten. Ein Bereich umfasst eine Reihe von Routern, die administrativ so ko werden, dass sie Li-State-Informationen untcreinandea austauschen. Es gibt Maaigi spezieilen Bereich - das ist der Badcbone-Bereich (oder auch *Bereich Orp Abb. 4.32 zeigt ein Beispiel einer in Bereiche aufgeteilten Routing-Domain. Router R1, R2 und R3 siad Mitgiieder des Baekbone-Be-$. Sie sind a&d& Mitglieder von min*tens einem weiteren Bereich. R1 ist Mitglied der Ikrei& I!. und 2. Ein Router, der Mitgiid des Backbone- und eines weiteren Bereichs isr, W8 w~rea-brderi~outers ( h genannt. ~ ) Diese Raurer unterscheiden sich von den* die sich am Rand eines AS f f i d e n . Zur besseren Unterscheidung werden 1etzW als WAS-Border-Ronter-bezeichnet. ubk4.3a
.
=
61
Das Routing innerhalb eines einzelnen Bereichs entspricht gmpv d a Beschreibung Abschnitt 4.2.3. Alle Router eines Bereichs senden einander ~ i n k - ~ t a t e - ~ d v e d ments und entwickeln auf diese Weise ein volistandiges, konsistentes Bild '
zum Bakborre--ich, dann überquert es dm Backbone zum Zielnetzwerk. Damit dies funktioniert, fassen die stellen sie in ihren Advertisements anderen Bereichen zur Verfü-
geben sie ihren Nicht-BaekbonoBcrreichenb e k m . Au£diese
ds auch R2 die Kosten zu den verschiedenen Netzdie Rater in Bereich 2 leicht die bessere Wahl treffen
k in Bereich 1besser als R 2 geeignet ist. Aufteilung einer Domsui in Weiche macht der Netzadministrator einen ss zwischen Skalierbarkeit und Optimierung des Routing. Durch die von Bereichen müssen alle Pakete von einem Bereich in einen anderen
O p t h i e n q d Skaiierbarkeit getroffen werden. Bei erar&+ werden Informationen vor ehigen Knot:w
Schlieglich bleibt anzumerken, dass Netzadrninistratoren durch einen Kniff fle entscheiden können, welche Router zu Bereich 0 gehören sollen. Dieser Bereich 0 angeschlossen ist, konfiguriert, um Backbone-Routing-Mormati einem Router auszutauschen, der mit Bereich 0 verbunden ist. Man könnte virtuelle Verbindungsleitung von R8 zu R1 konfigurieren, sodass R8 Teil des bones wird. R8 würde jetzt am Fluten von Link-State-Advertisements mit den ren Routern in Bereich 0 teilnehmen. Die Kosten für die virtuelle Verbindungs tung von R8 zu R1 werden durch den Austausch von Routing-Informationen Bereich 1 bestimmt. Durch diese Technik lässt sich das Routing optimieren.
4.3.5 lP-Version 6 (IPvb)
fn vielerlei Hinsicht entspricht die Motivation für eine neue IP-Versi die i n letzten Absdmirt beschriebenen T d e n : H - d h a h vcm blemen, die durch das massive Wachstum des I n t m und CII)R sind hilfreich, den Verbrauch c b hte-rnet Verbrauchs der Adressen) in Gtenzen zu Mtcn bzw. aber ein Punkt erreicht, an dem diese Tedudcea nicht mehr genügen. es praktisch unmöglsch, eine Effizienz der Adremuuwg von 190 sodass der Adressraum ermhiipft wh wird, h g e bvor d& v i e d a r d s t e
Zahl nicht au~reicht,beispnelsweise bei vergabe von IP-Adressen für Set-Top&q des Kabelfernsehens oder für Stroxdhler. AUes spricht daf& dass friiher oder r ein großerer A k a u m als der mit 32 Bit nösi8 sein wird. I
,
h
#
Historische Entwicklung Die ZETF begann 1991,4& mit dem Problem der Esureittxuag d a P-Adre zu befasse% usd es wurden mehrere Alternativen v o r g d h g e n . Da die IP im Heder jdes IP-Pakets enthalten ist, erfordert die Erhöhung der A Das ist natiirlich keine Kleinigkeit. Es handelt sich vielmehr utn eine bede Andenmg, die so&itig durchdacht werden muss. Die Arbeit an der DeAtiPtim einer neuen P-Version wurde zuerst w f p N m rationu bzw. niPn@*genannt. hn Verlauf der Arbeit wurd8Wne offizielle onsnrvnmet vergeben, sodass IPaG heute als uIPv6a: bezeichnet wird. Bisher sem Kapitel wurde nur' P-Vusitm 4 (IPV4) beschrieben. Die Liicke Numerierung ist &rauf ~ c k z ~ dass m Versimsnmer , 5 5 ein paaw rcn fiir ein ecxprimeriteiie~Protokoll vetwendet wurde. , C C
teLstüaung von Erchrzeitdiensten
Im ms&chen Teil dieses Absehnitss werden einige der ~ i ~ h t i Merkg~r~ nen fiir IPv6 bei der IETF bn Status des ~Proposed~ oder ~DraftStan-
IPve einm 128 Bit g r o k Adressraum, im GegenBit in Version 4. W;Itrrtfid Vemiotl4 also posenzieU4 Miii~rdenKnoten
g w s Merkmal b k w
318
1 4 lnternetworkina
IPv6 3,4 x 1 0 Knoten ~ ~ adressieren, wiederum unter der Annahme einer Effizienz von 100%. Wir haben aber bereits gesehen, dass eine Effizienz von 100% bei der Adresszuweisung kaum möglich ist. Analysen anderer Adressiermethoden, 2.B. derjenigen der französischen und US-amerikanischen Telefonnetze sowie der von IPv4, haben einige empirische Zahlen hinsichtlich der Effizienz der Adresszuweisung geliefert. Auf der Grundlage pessimistischster Schätzungen der Effizienz aus diesen Studien dürfte der IPv6-Adressraum pro Quadratmeter Erdoberfläche über 15.000 Adressen bereitstellen, was darauf hindeutet, dass es auch dann noch genügend sind, wenn Toaster auf der Venus über IP-Adressen verfügen sollten.
Zuteilung des Adressraums IPvdAdressen haben keine Klassen, der Adressraum wird aber dennoch auf der Grundlage der führenden Bits auf unterschiedliche Arten aufgeteilt. Statt verschiedene Adressklassen spezifizieren die führenden Bits einen unterschiedlichen Gebrauch der IPv6-Adresse. Die aktuelle Zuweisung von Präfixen ist in Tabelle 4.11 aufgeführt. Tabelle 4.1 1: Zuweisung von Präfixen für IPvdAdressen
1111 10 1111 110 1111 11100
nicht zugewiesen nicht zugewiesen nicht zugewiesen nicht zugewiesen
1111 1110 10
link-local-Adressen
1111 1110 11
site-local-Adressen
1111 1111
Multicast-Adressen
Diese Zuteilung des Adressraums ist viel übersichtlichei; als es auf den ersten Blick aussieht. Erstens ist die gesamte Funktionalität der drei wichtigsten Adressklassen von IPv4 (A, B und C) im Präfix 001 enthalten. Wie wir gleich sehen werden, ähneln aggregierbare globale Unicast-Adressen den klassenlosen IPv4-Adressen, sie sind nur viel
I 1
ta auch bei & neist
XWXXXXXX,
IP-Vdoa eine besondere Bkmioa. Die wobei *X* eine hexadezim& D a ~ ~ ~ 1 1 w
dtesvc K d O E r n n w für &C: R*
auf-aer benutzt werden, am Zweideutigkeit zu vmmiden.
320
1
4 Intemetworking
Da es zwei Arten von IPv6-Adressen gibt, die eine eingebettete IPveAdresse eab halten, haben sie eine eigene spezielle Notation, durch die sich die Extraktion dtati Ih.4-Adresse vereinfacht. Die mIPv4-auf-IPv6-Adresser eines Hosts, dessen 1pv.4.r; Adresse 128.96.33.81 ist, kann 2.B. wie folgt geschrieben werden: 1
: .i
::RFF:128.96.33.81
'
C
Man sieht, dass die letzten 32 Bit in der Pv4-Notation und nicht als Paar hexadd- !. maleq durch einen Doppelpunkt getrennter Zabkn geschrieben werden. Z W Doppelpunkte am Anfang bedeuten nicht dargestellte führende Nullen. L
-k
Heoder gekapselt wird, in dem sich die Adresse des Tunnel-Endpunkts befindet,
g
und am Endpunkt dann entkapwit wird. Beim Endpunkt kann es sich um einen Routerader i-b&Mdeln A Mden Fähn musser 1Wfähipsdn,icnsdas I&&>, , ~w~icaprie~ng v u i r a r zu ~ ~k ~ a n . * d e ? r ~ ~ t ~ t r eHM; mit einer auflßvrl abg&ik&?t& IPv6-Adresse8kann das Tunwling a-atish 'a erfolgen. Das he3& die IPvB-se yird aus der IWAdressei;eextr&qflU?&„ „,, -bnaxt& um den IPvWeader su blMlon. kn&alls 6 t r s s $82 man$& ' '' konfiguriert werden. Indiesem Fall muss der kapsein& Knoten die IWPJI-Admrere , "desarrdg?renTupnelen&se wissen, weit $e n W aus dem IWsad6r;entnomj , Omen werden kann. Aus Jhr&Skht sieht das andee Tun&%& wie 6 6 iiblkkr IPv6-l(noten aus, der nur einen Hop entfernt liegt während zwischen den Tunnd-Endpunkten tatsächlich viele H o p s mit IPvdlnfrastruktur liegen können. ;
I
$
~
g~kmm-Admsen Wichtigste, das fP96 bereitsdien muss, wenn es Aädiendeckend einden schnellen Anschluss neuer Hosts und skalierbares Routing entspreZunahme physikaikher Netzwerke ion interne untcrstütz~.in IPv6 hat
mterstiiint wird, müssen zuvor ehige neue Begriffe definiert werden.
vorstellen. Ferner können wir Provider in ein Transit-AS aL Pr& indirekte unterteilen. Die ersteren sind direkt mit den Teilnehmern und
ein beliebiger Zusammenschluss von AS ist. n
ZU
weist eine intrinsische Hie-
verwenden, die nicht funktionieren, wenn die Hierarchie nicht dem wird 2.B. zunehmend verwischt, wenn sieh ein amchlie3t oder ein direkter Provider mit vielen ande-
le, ihr* Provider nie zu wechseln. Daher wird an anderen Adresn geforscht, 2.B. an einer geografischen ogrAdres~ierung,~bei der die eines Standorts von seiner geografischen Lage und nicht vom Provider g effizient funktioniert.
Während die Zuweisung von IPv6-Adressen im Wesentlichen der Adress sung in IPv4 seit Einführung von CIDR ähnelt, weist lPv6 den bedeutaden auf, dass es keinen großen Bestand installiemr Adressen gibt, die berücksi werden müssen. +L Eine Frage lautet, ob es sinnvoll ist, hierarchische Aggregation auf anderen nen der Hierarchie anzuwenden. Sdten beispielsweise alle Provider ihre Adrwp* fixe aus einem Präfix ableiten, das dem Backbone zugeteilt wurde, an den s schlossen sind? Da die meisten Provider an mehrere Backbones a n g d o s s ist das wahrscheinlich nicht sinnvoll. Da es auf3erdem viel weniger Provi 1 Standorte gibt, ist eine Aggregation auf dieser Ebene weniger dringlich. lbr Sinnvoll könnte eine Aggregation auf nationaler oder kontinentaler Ebene Kontinentale Grenzen bilden natürliche Einheiten in der btemet-Topologie. d e , Adressen in Europa beispielsweise ein gemeiasarnes Pzafix, lieh sich umfassende Aggregation erzielen, sodass die meisten Router in anderen Kon nur einen Eintrag in der Routing-Tabelle für aik Netzwerke mit dem europ Präfix benötigen würden. Bei dieser Methode könnte eine IPv6-Adresse wrr;, Abß. 4.33 aussehen. ReglsttylD könnte dann eine Kennung sein, die einem emw, p&&n Adressen-Regisuy entspräche, wobei &en Kontinenten oder U n andere Kennungen zugewiesen würden. Die Präfixe kennten bei diese aber unterschiedlich lang scio. Ein Provider mit ein paar K u n b härte weise ein längeres Präfix (und folgtch insgesamt weniger Adressraum einer mit vielen Kunden.
.*
&
1
1
4
Abb. 4.33:
IPv6-Unkast-Adresseauf Provkler-Bash
Eim icdflige Situation könnte sich einsteUcn, wenn ein T w r & mehr@ einen Provider angacblosui i s Wklches.Pnfix ~ d t e der Tehehmer für Standost ben-3 Fiir dieses Brobiem gibt es keine jxdekte l&mng. Ist ein.T, nehmer eB. aa d Provider X und Y angescbssm*und verwende ei das Pd von X, muss Y ein Pr* bekam~eben,das in keiner Beziehung zu dem Teilnehmer steht und als Folge davun nicht aggregim wetdm k Teilnehmer e b Teil seines AS mit dem Pr* von X und einen Pnifix von Y,besteh das Risika, dass die Hälfte seines Standom wenn die Verbindzu efsem hvider ausfällt. Fine L B s q di nie% wenn X und 2 nde gemeinsame Twlnchmer hob& ia, drei W i zu wenden: eines nur ftb Teilnehmer von X, eines nur für T h h m e r von Y und fiir die Standorte, die T e i l n b r vom X und Y sind.
3 -
,.
4
wmat c der Tatsache, dass iPv6 in mehrfacher ~ i n s i c h t - ~ erweitert, ~A ist das Headerltat einfacher. Diese Einfachheit ist auf vereinte Bemühungen zurückzuführen. nen. ~ aErgebnis i h d aus Abb. 4.3 zum Vergleich mit
:&C
&te
H & bg&t aOe$ &eser I& dem Feld VBrsDon, das füt IPv6 auf 6 d Diesos Feld tdhxktsich bdiglkh des Header-Anfangs an der gleichen
kjarse bei IP94,sodass die verbl~beimdeSofrware s o f m ea-desr kann, mit dn Hdr-Format sie zu tuii hat, Die Felder TrefiicClatbls irnd F b h b d bezie$id & Mechnismen zur D i e ~ t e u a t e ~ m (siehe g Abschnitt 6.5). !& ,Feld PeyhdLm apqaifkiert die P i e t h g e ohne IPv6-Header in B* Das hktkmkw awtzt tauf dewue .Wsedie IP4ptbnm m d Qs Feld P m von &nd Optionen erforder-
wenden sie in einen oder mehrere qxUe:iIe Hader
ichnet. Werden keine speziellen Header benutzt, ist das Feld NextMeader der ü d , d n dos.PrOtokoll der nädisth6heten Schicht spnifiziert, &s auf IP (2.W TCP oder UDPJ.Es eifüllt also den $eichen Zweck wie dasFeld P r o t d $4. Außerdem wird in der neuea Version die Fragrnendurch einen optiohHeader gehandhabt. Das heiSt, dass die mit der Fragmentierung zusammen*den Felder von IPv4 im IPv6-Header nicht enthalten sind. Das Feld Hoplimit
d
324
I r
--
entspricht der TTL von IF'v4; es wurde ledighch umbenannt, um die eigentlichebrz U . Nutzung widerzuspiegeln.
kam, ob für ihn relevante Optionen dabei sind. in den meisten Fälien trifft das
Im folgenden wird beschrieben, wie einige der Optionen h u t z t werden. Jede OprCrm hat einen eigenen Typ von Erweiterungs-Header.
das Feld N e des IPv6-Headers ~ ~defi Fragmentietungs-Header baeichaet wird. Das Feld -N mgs-Haders selbst enthält einen Wert, der den nikhstea Hader keine weieren Erwdem-Header V& sein, was bedeuta, dass NexWeader den Wert 6 entbälq g e r n wie beim Fdd
Feld NextHeader des Fragmentierungs-Haders den Wert 51.
in W.6 hieratrfüd a+baut sind uad die Eulgiich körnen wir die Adgabe
.
g des korrekren Admwpriifkes für dieses hbnen.
Etheniet-Adresse. Sie l h t sich in euie gül9man dw entspredtendc Präfix aus Takle Nden, um sie auf 128 Bit a & m q hinzuoder Hosm in ehern kleinen Netzwerk ohne
A h w s i .&er Sichwmgmchicht mit einer Länge von bis zu 48 Bit Adtessf~mats.Die Länge uon 1, Bit glaubt nicht nur das Einbetten,
Ubersetzungvon Netzadressen (NAT) Während die Entwicklung von IPv6 durch die Besorgnis angeregt wurde, dass die steigende Nutzung von IP zur Erschöpfung des Adressraums führen kann, hat sich eine andere Technologie als Möglichkeitverbreitet, mit dem JP-Adressraum sparsam umzugehen. Diese Technologie ist die Übersetzung von Netzwerkadressen (Nework Address Translation, NAT), durch deren häufige Verwendung es durchaus möglich erscheint, dass sich die Notwendigkeit der ,Einführung von IPv6 erheblich verzögern kann. NAT wird von vielen aus Sicht der Architektur als ~unelegantubetrachtet, ist aber im Vernetzungsbereich so alltäglich geworden, dass es sich nicht mehr ignorierenIlsst, NAT basiert auf dem Grundkonzept, dass nicht alle Hosts, die miteinander über das lnternet kommunizieren wollen, eine global eindeutige Adresse brauchen. Stattdessen kann einem Host eine %privateAdresse@zugewiesen werden, die nicht unbedingt global eindeutig sein muss. Es genagt, dass sie innerhalb eines begrenzteren Bereichs eindeutig ist, beispielsweise in dem Unternehmensnetz, zu dem der Host gehört. Die Netzwerknummer 10 der Klasse A wird
Diese Adressen m
I
das M e ~ Protokoll e korrekt fuyktionieren kann. Deshalb geht die Komptexität I
&r NAT-Buxenweit Ober die relneÜbersetzungvon tP-Headernhinaus. ~ ' rmtise steigende Zahl von höheren Protokdlen verbei der Einf
~ e c n a t f f kb t s w b mi~ssen,wäre eine b&@&t,
die
Gmde identisch. Der
4.4 Multicast Wir haben in Kapitel 2 gesehen, dass MehrfachZugriffsnetze wie Ethwnet un4 Token-Ring M u l t i a t Hardware-terunt~stiham.In diesem Abschnitt wird beschrieben* wie Multicast durch Soifww-Usungn auf ein Intemtwork s o k k ~ M W e basiw auf eNetzwerk erweitert werdear kann. Ei h i besc:hnebne Impledes heute im Intcrqet benutzten Muiticsst (baderend auf I P V ~ M~lti~a6t wird auch ia der nächsten iP-Generation W)~temtütaz,w-obei sich &% wichtigsten Unterschiede auf das M m s f o ~ abescWRken. t Die Entwicklung von Multicast wurde dadurch motiviert, dass es Anwendungen gibt, die ein Paket an mehr als einen Ziel-Host seaden möchten. Stag den Qua& ~ o s zu t zwingen, das gleiche Paket jeweh getrennt an jeden Ziel-Host zu s e h q soli er in die Lage versetzt werden, ein einzelnes Paket an eine 1\ISulficasttAdresseq senden. Das Nametk - in diesem Faii ein Internetwark - soll eine Kopie d i q Pakets an jeden Host einer Gruppe ausliefern. Den Hosts steht es dann frei dieGruppe beizutreten ader sie zu verlasen, ohne sich mit anderen Mitgliedern % Gruppe synchronisierea oder Vereinbarungen treffen zu müssen. Ein Host k m auch gleichzeitig ia mehr ala einer Gruppe Mitglied sein. Im htfXnd kann Multicast für eine Reihe von Netzwerken, die Hardware-Mul-, ticast (odm Bruadcast) unterstützen, dadurch implementiert werden, dass die RQ* ting- und W e i t e r l e i ~ w o n e nerweitert werden, die von den an diese Ne@: werke angeschlossenen Routerq implementiert werdea. In diewm Abschnitt wadm drei solche Erweiterungen beschrieben: Die erste basiert auf dem Distehnevektae Roating (Abschnitt 42.21, die zweite auf dem M - S t a t e - R s u a (Abschritt4,2& und die dritte auf beliebigen zu Grunde liegenden Routing-Protokollen, weswegq, sie als ~ProtocolIndepedant'Multicast~(PM) b c h n e t wird. Bevor wir uns eines d i a r MuIticast-RQ-Prot~koiie genauer ansehen, miis-, sen wir einen Blick auf das Riemtm~dellfür P-Mdticast werfen. Wir ktinaten u i a ~ vorstellen, dass ein Host, der ein Pak& an einige Hosts irn Internetwoi-k senden möchte, alle ihre Adressen auflistet, Dies w h bei einer g~&n Zahl, von Ernpfihq gern aber bald nicht mehr skalierbar. Man denke z&. an die Benutzung des Internum einen Pay-per-view-Spielfilm auszustrahlen. Aus diesem Grund nutzt P-M&Cast das Konzept eher Multi--Gruppe, der Empfänger beliebig beitreten kb-@ J& Gruppe wird eine spezielle Adresse zugewiesen, und die an die Gnrppe sexildmT den H o ~ t sbenutzen ditw Adresse ais ~ieiadressefur ihre Pakete. In B 4 W&+ diese Adressen aus dem Acksraurn der Khsse D gewählt. .TPv6 enthält in s e i n 7 Adressraum ebenfalls einen &r Mdticast-Adresen reservierten Teil. Hosts k8mm e k Mdtkast-Gruppe unter Verwendung des so genamtm ~bternetGroup Management Protocoia (IGMP) beitreten. über dieses Promkslg benachrichtigen sie einen Router in k e m lokalen Netzwerk über den W m 9 eine bestimmte Multicast-Gruppe gesendete Pakete zu empfangen. Die isnbeq beschriebenen Protokolle regeln, avie Pak* an die entsprechenden Router v e d 4 werdea Die Auslieferung von Pqketen vom Router des .letzten Hopse zum H&$ wird durch die zu Grunde liegenden Multiast-Fähighit des Netzwerks abgwickeX;$ (sieheAbschnitt 2.6).
4
wie Sender und Empfänger von MuiLicast-iOIA d h m . se dur& Qntd-band-Mechanismen gehdhabt, und es gik
uter an, dass der Host die Gruppe verlassen hat. Kennmis darüber, welche Gruppen A4itgkd.a an w & k Verb-
k in Abb. 4.36, bi der die schattkmn Hostrc zu Gmppe G würden die Router zB. für die Quellen A, B und C die Multicast-Bäume Abb. 4.36: Beispiel eines Intemetworks; die Mitgliedervon Gruppe G sind schattiert.
der kürzesten Pfade van Abb. 4.37 berechnen. Die Router würden anhand dieser Bäume entscheiden, wie die an die Multicast-Gruppe G adxmcierten Pakete weiter zuleiten sind. Beispielsweise würde Router R3 ein Paket von Host A für Gruppe G an RB weiterleiten. Man beachte, dass jeder Router unter Umständen einen getrennten MulticastBaum für die kürzesten Pfade von jeder Quelle zu jeder Gruppe verwalten muss. Das Ab.4.3R Queiie
%&WelmitMuttbnWiumen far die k a m s m Pfsde
17 1
\
:--L
- - - - L-.
I
I
- - - - -1-1ir1-1
W. iwiuiricut
$31
rithmus um Multicast-Unterstützung ist ffliger, weil die Router nicht die gesamte lbplogie &$ b m w a r o r k s kenwir wissen, führt jeder Rouber vielmehr eine Tabelle aus Tupeln mit did, te mit ÜW, lcostem-Paaren mit seinen verbundenen Nachbarn aus. Die Erweiterung dieses Algorithmw wn Muitisen wir einen Broadcast--m rke des Intametworks weiterleiten so verfeinern, dass er Netz-werke von denen kein Host zur Multicast-Gruppe gehört.
h Broaidcast (WB) weg9dass der mamentan kürzeste Pfad zu einem bestimmten Ziel über n Hop führt. Wenn der Router also ein Multicast-Paket von Quelle S leitet er das Paket an alle abgehenden Verb'idungsleiturrgen (a&r dajeder das Paket angekommen ist) weite& falis das Paket auf der Verbin-
weist zwei entscheidendeNachkile auf. Erstens flutet sie wirklich hung von LANs, die keine der Muiticast-Gruppe haben. Wir greifen dieses Problem im n8chstea auf, Zweitens wird ein bestimmtes Paket.über ein W van jedem an angdossenen Router wehxge1eitet. Das ist auf die Weiterleitungsindungsleitungen flutet die, übex die das Paket angekommen ist, ungea&tet dessen, ob enden Baums der küneals ein Router an ein
14-
Diese Verfeinerung setzt voraus, dass jeder Router für jede Quelle ein Bit fiir je& seiner eigenen Verbindungsleitungen verwaltet, das anzeigt, ob er der Eltern-Rates für ein QuelleNerbindungsleinuig-Paarist. Man beachte, dass eine ~QirelleuW einem hternetwork ein Netzwerk und kein Host ist, weil ein Internetwork-Router nur daran interessiert ist, Pakete zwischen Netzwerke0 weiterzuleiten. Der sich &PT aus ergebende Mechanismus wird auch ,Reverse-Path Broadcast* (RPB)genannt.
7
RewrssPath Multkast (RPM) RPB implementiert Broadcast der kürzesten Pfade. Wir möchten nun die Anzahl d e ~ Netzwerke verringern, welche die an Gruppe G adressierten Pakete empfangen, alsa jene ausschiießen, deren Hosts nicht Mitgiieder von G sind. Dies lässt sich in zwei Stufen erreichen, Erstens müssen wir erkennen, ob ein Blattnetmuerk (Zeaf fietwork] keine Gruppenmitgiieder hat. Ob es sich bei einem Netzwerk um ein Blatt handelr; lässt sich leicht ermitteln: Falls der Eltern-Router -wie in RPB beschrieben - der e& ' zige Router im Netzwerk ist, ist das Netzwerk ein Blatt. Ob sich in dem Netzwo& Gruppenrnitglieder befinden; wird dadurch ermittelt, dass man jeden Host, der Mit; glied von Gruppe G ist, periodisch diese Tatsache über das Netzwerk melden l ä d wie in Zusarnnienhang mit dem Li-State-Multicast bereits beschrieben. Der R w . ter benutzt diese Information dann bei der Entscheidu'ng, ob er ein an G adressierm Multicast-Paket über dieses JAN weiterleitet. Bei der zweiten Stufe wird diese Information - nkeine Mitglieder von G hiera über den Baum der kürzesten Pfade nach oben propagiert. Dies geschieht dadurdij dass der Roum die Paare 44,Kosten>, 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 &
;EienE&ichtigt. Wem es beispielsweise e r f m a a t i@, einen Pfad von
rtuelle private Netzwerke und Tunnel
für Tunnel die Bereitstellung eines Netzwerkdienstes (z. B. Multicast) ist,
aben bereits gesehen, wie IP-Tunnel aufgebaut werden: Der Router am EinTmnels wickelt die durch den Tunnel zu schleusenden Daten in einen IPels enthält, und versendet die Daten wie jedes andere IP-Paket. Der emp-
ugenblick wieder zu.
a n k o m m ATM-Zellen
in den Tunnel gesehkki
-.-a
.,
m Sohwenzein
Abb. 4.4& Eine ATM-Leitung wird von einem Tunnel emulien.
dass Bcr BHeadera aus einem WLS-Header statt einem IP-Hader besteht, Wir w e r k Blick zuriick w unserem ersten Beispiel in A b b i i d q 4.41.' .Router R1 an jedes PaicetI das er in Riching Präfix 10.1.I se anhängt. Ein solches Paket wiucde da^ den Pfad Rl-W-R3 V; Routyer auf dem Pfad tlur das hrlPSLabe1 p W würde. Fowctr' b e h i , Anfatkung, dass R1 w~ @Pakete auf diesem Pfad sendet beliebige D-4 tea in d a W S H m d e r eingmkledt d e m , und diese würden den g&i&a verbtgm, weil did dazwhcbnliqmden Routet nie iik den,MF?i-Hea&ri . sehen. In dieser Hinsicht vezhiilt sich ein MPLS-Hader genau wic ein @-% H&&' Das e h i g e Preblern beim Versenden von IP-fremdem Verkehr dar& T d ,mit oder ohne WLS, ist fakndts: Was dangen wir mit D-fremdemJ wenn eh das Emde des T d erreicht?Die generelieLö\lrrnqg ist es, snit dai Ein MPLStTunnel ist nichts viel anderes als ein P - T d a&
-
Aqpnapinrcn, wir nqücheen ATM-Zehn übereinen Tmelvon eiwm einem d'cpen durch ein Netzwerk mit MPLSRoutern sgndpas 1i11 Abbüduq 443. Des weiteren nehmen wir uq dass es
D&
~ehwanx-~ou.m muss mit dun Auqpngspors dem A u s g ~ V C I VQ
.
7. Man beachte aber, dass ein WLS-Header irw 4 Bm lang ist, wikend ein 20.B- umfasst,was darauf hindeutet, dass sich mit W M BandMte e i r l 8 p d k i
die Roum mit diesen Informationen versorgt wurden, können wir sehen, &hdTM-ZeIicweitergeleitet werden würde. Abbildung 4.46 zeigt die Schritte.
5. Demux-Labeiwird awgen
16: Wterlekung von ATM-Zellen durch einenTunnel
kKM-Router
dain ein mites Labe! an, bei di%~es sie$ um das d&@tmqt, dass h Paket den Sdim-Rourer TbmeI-LaW hmcklt, Fmeht. D~WSbbeI wird hsh.Mdani921ien bckmnt gegeben, die den @I nsishmdem Kopf i i ~ d leim das nur onvt pLGdiIng des Tunnel-JlabJs weiee~ Lv S:~DWSchwlulz-buter h&&a~~4-hbol, &&z Dedtipk-h-
~und&kemt&e.eanuli~~ - . deii Am-mauf den korrdcten Wert (in Bor Schwanz-Router -" $ e m W1202) und versende ihn aber den richtigen Port. I
ui &-
Beispiei d&& ~bemschemAn das Paket d e n zwei Label Das ist ehes der imxessmt%nWkma3e von MPU - Zabti kbmm in &gm T & an ehern Paßnr- wgestapdtu w e d . Dies bietet einig nTttd-
a
; e w e s , h e ; i n -
wtanga c s i e w n b .
T i e n wie.bierlmdidehk 6 m a atqpvanckwerde~umvide chrtmmo Frame-Rahp-dEchrs;mesnMan ~ l izf.lfc ~ t vm@-Tm m l t !tg$ ' &atB p ~ i b a awh.I~~~~ vt%~Ik@L§k k d e r i&aere-M-.fioadtt &@L3 ' h u & t d i , d%bk$t-2-3)r'eii9ie chk& b e i ahntbieten, aurh % Unt&Miurrg mki 'sthkht-3-W.&~benutzt. Wu killen rans WJ !gbkbm
bal%s@mdrtP !khi&trZ, '
dimz Stdle nkht mit den Einzeihcimvon Sdudrt-3-VPNs Massen, die r& Isaai phaindDmht-*gnte~uaIlen**w-j Abschnitt *Weiterführende Literama am Ende dieses Kapioela. Wir mElm a& darauf hin&WS Schicht-3-VPNs heute eLne der M t P-Nemwmk zu achlmsea. Die k c t h Tunnel befiirderten Pakete sind all
Pakete - dsber d i e . u h n u n g ~Sdiicht-3-VPNsr.Xn ehern Mi&hS-vJ$!W einer bekbiien aaht von Eheinen wirtudien p die-. Das hat, jeder Kunde des P r 4 e m ver&@ iik e Standorten, und d a S t ~ P r M o ~ fw:jeden Kunden die Illusia keine weitKunden im N m k gibt.. Der Km& sidiz e h ][P bctiglich seine und keine anderen Standorte u d e d c r verbindet. dass jeder R a d e Kunden isoliert Kunde B sah i wq&ehrt,R @\Ichmn benutzt werden. Das grundlegendeKomqsist in Abbild- 4.47 darge8teXta ~ t - 2 ~ V P wird N s A4PLS b u a t , um Pakete von cllitm b d o r t zu eine& iign dwcb l h a d zu beiöfdetn. Die Kodguratiion der li1&cl61gt
,-f---L
uecmwh im P3cawerk von Kwade B.
.-< _.
dwch eine relativ ausgefeilte Verwendung von BGP, derm Darsteilum
in yidon beichcn nir h m g untei.&edlicher Vernetmngsproblemeangewird. Es kambinkm den L a b e 1 4 w a a p i n 8 - W i t e r l e ~ m e c W der ~, rweise mit virtwlien Leitungsnetzwerken in V w W w steht, mit den h u Konhtdprotuhllen von IP-Datagramm-N-en, um ehe Netzwerkzu erzeugen, die i q p d w o zwiscken den beidcn konvmtpot~llenExtremen Fähigkeiten von P-Netzwerken U. a. auf eine genauere RouUnterstützung einer Reihe von VPN-Diensten.
Eummmfaasung paham dieses Kapitels wurde beschrieb wie gro& M e t ; ~ n d eQweh schluss mehrerer kkherer entwickelt werden. WI~haben una h lazten Bridges befasst, bei d e m es sich aber um eine Technik handelt, die vorss einer kleinen bis mittleren k a h l gleichartiger Bridges eignen sich nicht gut für die Lösung zweier eng k . t y i i mA&au sehr großer Netzwerke: Hetetogenitiit
.
a. das es zwei bcliebimn L o t e n in einem Internetwork e r m ~ c h t sich . ,kann. Der ARP-Mechanimus wird benutzt, um globale IP-Adressen in
A&ess«~yzuü b c ~ ~ . ,eines Intammmrk ist die Jkmittlung e&%enter Routen zu n Z i e h . kzmet~Ro~-Alg5orithmen lösen dieses Problem auf ver-
-
d befassten wir uns mit einer Reihe von Skalieningoproblemen und &$ic:hiwiten, mit deneerP sie zu lken v&mu&t. Die wichtigsten Sksiliwmgs;d d die effiziente Vetwtndung des Adrewraums und das Anwachsen der tiq-T!bdlen mit m m k n d e r Gr6b des Interna. Das hierarchische IP&samt mit seinem Ne&t~e~krmd H O S P Tbietet ~ uns bereits eine HierwW, um Skaliemg zu ~~. $~bzxaingerm8giicht 143~8jedoch &e &@m Vexwendung von N m a k n w r n und biIft uns bei der Zusammenfasqg f .ooa Ronting-hbrmationea~ Es erweiten die Adresse um eine weitere J
R . o u t i a p P m b l e m , . ~Diese . MEch9n1sma e~~ sein b r b Wadmum. b m h& 'sinda k d e diese Mechanismen wohl W&des I a a : Schriwzu ~ h a b , smhw . e hnetm
dem
Mehr als zehn Jahre sind vergangen, seit die Knappheit des IPv4Adressraums so schwerwiegend . geworden, war, dass man Vorschläge fiir eine neue P-Version für nötig hielt. Die ursprungliche IM-Spdikation ist inzwischen mehr als sieben Jahre alt. IPv6-f )ge Host-Bettiebsspteme sind heute net bei Drucklegung noch nicht in nebnenswemzn Umfang begonnen.
von Anwendungen, die ohne NAT besser funktionieren -den
und d
iibmken A d r ~ i l ~ p o l i t Vorteiie ik ziehen würden, sind Muitiphyer-
and P-Telehie. a43er &halt von IPo4-Adtessbkkken wird schon seit Jahren immer schwierig^
eit steigt nat&I'ich der Anreiz fürr Prowider, ihnOn Kunden IPv6-Adrcm Gleicbitig bedeutet das Anbieten von ZlZv6 &ir b h e n d e Proder von iPv4 nicht einfach zusätzliche Kosten,weii sie & en kännen. wenn sie mit dun Angebot von IPs6 W e n . Ern bedeutet bei-
~~
G i b i t vollzieht sich die IPv6-InmhtLon fast amschlie3Iich in Po~~hungsnet. b e t ohne dagrcichere IPv6-Installation unendlich weiterwa&sen kann, es
aber auch wahrscheinlich, dass die ubemältigde Mehrheit von, Holsts und &&merken in nächster Zukunft weiterhin IPv4 nutzen werdtm
kt.
-fitihr+.
Literatur ,
sdbstvemihüich unzählige Arbeiten über verschiedene ssc. Wu empkiiien aus dieser Fülle zwei Arbeiten als Pflkhrlelrtürez.In Mormativen ObeEbIidc damber, wie das schnelle der u r ~ g l i c h e nArchitektur an h e n fiihrte, was ietztllch zum Next-Generation-@ gehat. Die on e n a t eine Untemuchmg, wie sich Router im Inwrnet verhalten. dafüt, wie Wissenschaftler heute das dynamische Die letzte Arbeit behandeit Multicast und streut ticast-Ansatz vol; der ursprüngiich in MBone benutzt wurde.
.
&rf, V. und Kahn, R.: A protocol for packet network iatercomrnunication, E E E Trbt~d'omon Communicutions, COM-22(5),S. 637448, Mai 1974.
kadner, S. und Mankin, A.: The recommendation for the next generation IP q m t ~ ~ : oRequest l, for Commmts, 1752, J m w 1995. behavior in the Intemet, SIGCOMM '96, S. 25-
wird das Feld Offet im IP-Header in 8-Byte-Einheiten gemessen? (Hinenken Sie daran, dass das Feld Offsat 13 Bit lang ist.)
e Bits in einem Paket ein&e%lich der Intemet-Prüfsumme wäien ben worden. Könnte ein Paket, das ausschließlich aus Nullen oder aus
und den Offset der Fragmente, die bei der Vermittlungsschicht arn Zielsgeliefert werden. Gehen Sie davon aus, dass alle IP-Header 20 Byte lang
ra IP-Paket wird in I 0 Fragniena mit einer (unabhgigen) Ver-
& A-he mim dcr 'kahme, dass die empfangenen Fragmente eichen f f k p g u o g gewesen sein m i k m die Aufgabe unter der AMahme, dass ein bestimmtes Fragment Td oder zweiten lhqrtrsgung gewesen ein kann.
Sie, wieman das Feld ldent hier benutzen könnte.
du Fr-tc
voa Abb. 4.5(b) durchlaufen e k m W'eit~eiiRou-
bei ~ n e l i g t aFragmente auf. 'Wie viele wem das Paket wpr2ingiiih für diese Mieft worden wäre?
Wie hoch ist die maximale Bandbreite, bei der ein W-Host innerhalb vm
obigen Bandbreite passieren?
anderem die Felder Ident, Offset und das M-Bit in Flags. Welches sind d sprechungen für jedes AAL314-Feld, falls zutreffend? Gibt es für j Felder? am Endpunkt und nicht im nächsten Router durchgeführt?Warum en überhaupt keine Fragmentierung mehr? Hinweis: Denken Sie an die schiede zwischen der Fragmentierung auf der IP-Schicht und auf der Siche schicht. Der Timeout von ARP-Tabelleneinträgen nach 10 bis 15 Minuten ist e such, einen angemessenen Kompromiss zu finden. Beschreiben Sie die cherw,eise auftretenden Probleme, wenn der Timeout-Wert'zu klein oder z ist. Zw Zeit werdea bei iP 3 2 - B i u b m ve&&.
wenn (<€th~met& *8ende PE SDMt
.
Qr D ist tm PIPIP-C&Sj
.
I
&Df welche W h kQnwc dksa Algorithmus m ~ t i Ressourcen g vmgtmdea, wem die PP-%hi&a einen 3-t m Paketen für D empfängt? erfen Sie eine verbesserte Vc
; ~ o m m e a wir , uerwerh P einfach, z a a h e h e &&qe xmmdet m d e , wenn die Cache-Suche f&ls&@+ Welches Yticha1~W&& sich dadurch ergeben? ARP-Implementie~11&enh a h dies angeblich so gcrhd-
i t .
4 3 und 4.81, wem
L.
K n o m nur die
b.b. jeder Kn-
m seinen unmimfbarpnNachbarn kennt.
die InfDrmation, iiber die er im vorherigen Schritt verfugte, M1. ! reen uirinttelbaren Nacbbatn gemeldet hat.
k,
Wrt b.
ein zweites h$al passiert die
Ersteilen Sie für das Netzwerk in Abb. 4.49 globale Distanzvektor-Tabellen (wie in den Tabellen 4.5 und 4.8), wenn
E- a* jeder Knoten nur die Entfernungen zu seinen unmittelbaren Nachbarn kennt,
5
b. jeder Knoten die Information, über die er im vorherigen Schritt verfügte, seinen unmittelbaren Nachbarn gemeldet hat,
?-'.C. Schritt b. ein zweites Mal passiert. Abb. 4.49: Netzwerk für die Übungen 16
17. B e d m i b Sie, wie der Link-Sta~Algoridimusbei dem in Abb. 4.48 , .Yt . stellten Netzwerk die Routing-TaWe für Ktmen D aufbaut. 18. Angenommen, wir verfiigen über die in Tabeile 4.12 a + W e n lei-W rür Knoten A und F in einan Nemm~k,bci dmi . I * ? dwlgsfekmgenKosten von 1 habem, btellen Sie ein Diagramm für dim H
a
T a k l k 4.12: WeiterleltungstabellenfUr Obung 18
U r J
J 19. Angenommen, wir verfügen über die in Tabelle 4.13 aufgeführten 'lei~gstabellenfür Knoten A und F in einem Netzwerk, bei dem alle V
4
1
Tabeü84.13: W m n g m b e l l e n fOr Obung 19
20. Angenommen, die Weiterleimngstabeilen f3r das Netzwerk in Abb. wie in &vig 15 a&g&wt worden und die GE-Verbindm&sltintng krbeiten Sie für diese Simsticm foigendes aus: a. Die Tabellen von A, B, D und F, nachdem C und E die Nachricht haben.
,
4 . ';.. 7 L
+
b. Die Tabellhi von A und D nach ihrem niichsten gegenseitigen ~ustatxs&$ C.
Die Tabeile von C nach dessen Austausch mit A.
timen gemäß dem Distaimektar-Raut& awtausdim. Alle V d m en haben Kosren von 1.L.ösm Sie folgendes unter der Azmahc, d a s Webindungsleitwig auefälk
b. Schätzen Sie die Wahrscheinlichkeit des Szenarios in a. unter der
C.
Schätzen Sie die Wahrschachkeit der Entstehung einer Schleife, wem k nerhalb von einer Sekunde.und B nach Feststellung des A-E-Au* aktuaiisimen Bericht rundsendet und B periodisch aUe 60 Sekunda Broadcast durchführt. Abb.
Einfaches NeaweikM?Obung 23
rangen fiihren, ignorieren.
Nun nehme man an, eine Menge von Routern benurzt die Split-Horizonnik. Wir betrachten hieq unter welchen Umständen sich ein Unterschied e wenn sie zusätzlich die Poison-Reverse-Technik anwenden.
t r o hH
m benutzen Split-Horizxni,
..
Verbindwgsld~wtQunden sind. Bei& erreichenX durch.einendrit-
,!maKnoten C und küadigtrz'sichgegenseitig ihre Routen gleichzeitig W.
Aw.4.51: ßkmuerkeFUr Obung 26
Distamektor-TmBnik zur Vermeidung von Schleifen ist Hold-
bricht z u s a m m ~ . m d B m e b t A d c t e d b a r danach seine Rmm (das ist die falsche Route über Af. Spdmiqren Sie die iten einer Hold-Down-Inmpre~tionund verwenden Sie &, urn das
der alternativen Route k RAID-N-rk
zu verzögern?
Netmerk für Übung 27
340
1
4 Infi;rrnaWerking
41 28. Fcihren Sie entsprechend Tabelle 4.9 die Schritte auf, die der ~ o r w a r d - h a b : Algorithmus voUzieht, wenn er die Routing-Datenbank für Knoten A in deni #E:! Abb. 4.53 dargestellten Netzwerk aufbaut. 4-' Abb. 4.53: NetzwerkfUr Obung 28
29. Fiihren Sie entsprechend Tabelle 4.9 die Schritte auf, die der Algorithmus vollzieht, wenn er die Routhg-Datenbank ftir Abb. 4 5 4 dargestellten Netzwerk aufbaut. Abb. 4 3 4 Netzwerk für Übung 29
30. Angenommen, die Knoten in dem Netzwerk von Abb. 4.55 nehmen am State-Routing teil und C empfängr widersprücwche LSPs: Von A kommt , an, in dem behauptet wird, die A-B-Veibindungsleitmgsei ausg von B eine6 ankommt, demzufolge die A-B-Verbindungsleitmg -X
a. Wie (kann das passieren?
+G!
b. Was könnte C unternehmen?Was kann C erwarten? Die LSPs enthalten keinen synchronisierten Zeitstempel. Abb. 455: Netzwerk ftir Übung 30
31. Bei dem Netzwerk in Abb. 4.56 stellen die horizonden Linien Transit-& und die numerierten vertikalen Linien Verbimdungsleitungen zwischen dar.
a. Wie viele Routen zu P könnten die BGP-Sprecher von Provider Q gen? b. Angenommen, Q und P arbeiten nach der Regelung, dass abgehender kehr an die dem Provider des Ziels am nächsten liegende Verbindungs1 geleitet wird, um so seine eigenen Kosten zu minimieren. Welche schlägt der Verkehr von Host A zu Host B und von Host B zu Host A ainEy
;
t;rdamit der.Verkehr von B nach A die nöhere Ver-
$. Was könnte Q unternehmen, damit der Verkehr von B nach A durch R flie&?
\ . 4 tkiten Sie ein Beispiel einer Abordnung von Routem aus, die derart in autoSystenkn gruppiert sind, dass der Pfad mit d a gedngam F b p b von I &mn Punkt A zu ehern anderen Punkt B das gleiche AS r9iteimai iibetquert. .: .. kiären Sie, was BGP mit dieser Situation anfangen würde. ..!A $ A die Anzahl der autonomen Systeme im k r n e t und D (Diameter) dir &male A$-Pfadlhp. J
'
-
2 ,NamenSie ein Yo&M&mdeii,
weiteres*bei dein D die Ordeumg
,
,
bei dem D die Ordnung log A und ein
JA hat.
,I :
~ e n o q c n jede , &Nummer ist 2 Byte d jede Netzwerhin . 4 Byxe lang, .W.tzenSie die D a t e n m e n ~+e ein $GF-Sprecher empfasgten muss, um den AS-Weg zu jedem Netzwerk zu pflegen. Ddkken SK IhIC Lösung in Bezug auf A, D und die Anzahl der Netzwerke N aus.
W+ an, dass IP-Rauter auf diesdbe W- über I P - N c d e und Sub4- &aha habes, wie lemeade Bridga in Exhemet iikH- lernen: Durch di~chserllneu m g m d d ~Hwts r und der herfaces+Gber die sie ankomP m . ~ 4 2 i c h e Sie n dks mit dem Lenien eines Distsmektor-Raums F- a. für einen Randstri.ridoa mit einem einzigen hschluss an das Internet, und fiir die inaPne V s ~ r i c h qeines Unternehmens, das nicht an das kernet
angeschlo*
T-
ist. Abb -7: Nermerk fCLr Obung 39
'
-=
Gsbm Sie davon aus, dass die Romer nur Meldungen über neue Netmb$@fl von anderen Routern und die sendenden Routet ihre P-NetzinfonnatimMI mittels Konfiguration erhalten.
P-Hosts, die keine Roum sind, müssen falsch an sie adressierte Pakete verwer-. fen, auch wenn sie in der Lage wären, sie korrekt weiterzuleiten. Was
wiir&a
Lesen Sie die man-Page oder eine andere Dokumentation über die ~nix/l@& dows-Utility netstat. Benutzen Sie netstat, um die aktuelle P-Routing-Ta@ &red Host anz&iBm. ErMären Sie den Z w d jedes Elnuags. Wie hoeh ist & prakascbe Mhdestzahl an Einträgen?
Internet (2.B. c s , p r i ~ . e d uoder www.cisco.com) liegen. Wie viele Roilter tib Dokumentation nach und erkiäten Sie, wie es implementiert wird. Was passiert, wenn man tramroute benutzt, um deln W+ zu einer nicht z u g d senen Adresse zu finden? Spidt es eine Rdle, ob der Netzwerheil oder nur da Host-Teil nicht zugewiesen ist? 1 Abb. 4.57 zeigt einen Standest; R1 und R2 sind Router. R2 verbindet mit da Außenwelt. k l n e ZaMs sind Ekqett-Netze. RB ist eh Bndge-Rmteq er tet den-an ihn adressierten Verkehr weiter und fungiert als Bridge f3k an* Verkah SübUefting wird inneihaIb des 'Standorts benrirzt. ARP wird fi5r Subnetz b n ~ n Leidet . wurde Host k f 1 l d bnfigurien und benutzt Subnem. Welchen der Hosts B, C und I? kann A erreichen? Ein Unterneben verfügt über ein Netzwerk 290-1.1der Klasse C und möc für vier Abteilungen Subnetze mit 'folgenden Hosw einri&en: A 72H-t~ B 35 Hosts
C 20 Hosts
D lt?Hasff Insgesamt sind also 145 Hosts geplant. a. Nennen Sie eine rnägliche Anordnung von Subnetzmasken, um diesen
k:.-b.Schlagen Sie vor, was das Unternehmen tun kann, wenn Abteilung D auf 34 Hosts anwiichst.
.
i' tiber ehe direkte Verbindung zu B (siehe Abb. 4.58) anschließen. Erklären Sie, '
E-
Ir
wie dies mit Subnetzen realisiert werden kann. Führen Sie ein Beispiel mit Subnetz-Zuweisungen auf. Gehen Sie davon aus, dass keine weitete Netzadresse verfügbar ist. Welche Wukung hat dies auf die Grö& des Ethernet-LAN?
1
r
&&i einer alternativen Methode für den Anschluss von Host C in Obung 41 wird l$roxy-ARP und Routing benutzt. B vereinbart, den Verkehr von und zu C - ,weiterzuleiten, und auch ARP-Magen für C, die über das Ethernet eingehen, ,. zu beantworten.
e' Nennen Sie alle gesendeten Pakete mit den physikaiischen Adressen, wenn A
E,
mit Hilfe von ARP C findet und dann ein Paket dorthin sendet.
b. r x b n Sie die ~ o u & ~ - ~ a b evon l l e B an. Welche Besonderheit muss sie ent-
I P
halten?
)
;. :
S;':&Sagen Sie einen plausiblen Adressierungsplan fiir IPv6 vor, dem die Bits aus:.@km. Erstellqa Sie ein mit dem in Abb. 4.33 vergieichbares Diagramm,
&yon ausgehen, dass die Felder an Byte-Grenzen ausgerichtet sind und die Inter64 Bit lang ist. Hinweis: Ziehen Sie Felder in 3etracht, die sich nur unter
-D
45. Tabeiie 4.16 ist eine Routhg-Tabelle imter Verwedung von CIDR Die A b: Bytes sind hexadezimal. Die Notation mIl2u in C4.5Q.0.0112 bezeichnet b, Netzwc~krnaskemit 12 führenden 1-Bits, d.h. FF.FO.O.0. Die letzten drei b m5ge decken jede Adresse ab und dienen somit an Sreiie einer Default-Bmu&&, N e w n Sie den jeweils n ä c h Woip5dem FolgEndes zugegtellt wird: a. C4.5E.13.87
b. C4.5E.22.09 C.
C3.41.80.02
d. 5E.43.91.12 e. C4.6D.31.2E
f. C4.6B.31.2E J 46. Tabelle 4.17 ist eine Routing-Tabelle unter Verwendung von CIDR.Die Bytes sind hexadezimal. Die Notation ~112*in C4.50.0.0112 bezeichnet Netzwerkmaske mit 12 führenden 1-Bits, d l . FF.FO.Q.0.Nennen Sie den je nächsten Hop, dem Folgendes zugesteut wird:
Rbeile 4.16: Routing-Tabelle für Übung 45
T a k h 4.1 7:
C4.5E.co.Wl9
64.5E.40.Wl8
3'
CA.460.Wl4
.
.
60.0.0.m
mit Zuteilung C1.BO.0.0112. mit Zuteilung C2.0k10.0/20 und
mit ~uteilun~'~2.0~.0.0/16. $, Erstellen Sie Routing-Tabellen für P, Q und R unter der Annahme, dass,jeder
r
F;.
Pmvider an die jeweils anderen beiden angeschlossen ist.
Nehmen Sie jetzt an, dass P an Q und Q an R angeschlossen sind, dass P und '.ii R aber nicht direkt miteinander verbunden sind. Erstellen Sie die Tabellen für '
$&&liirzlichzu den vorhandenen Verbindunpleitungen erwirbt Kunde PA eine didcte Verbindungsleitung zu Q und Kunde QA eine zu P. Erstellen Sie die Tabellen für P und Q, aber nicht für R.
Sie von der Annahme aus, der Grogteil des Internet würde eine Form der afischen Adtessierung anwenden, dass aber ein internationales GroSunteren eine einzige IP-Netzadresse hat und seinen internen Verkehr über seine engenen Verbindungsleitungen leitet.
a. Erki&en Sie die Rouh-Ineffizienz für den a n k o d Vwkkh7 U n m e h die sich durch S b d o n &bt.
b. Erklären Sie, wie das Unternehmen dieses Problem für akehcp4ea lösen könnte. C.
Was müsste passieren, damit Ihre obige Methode auch ftir mko Verkehr funktionieren würde?
d. Das Gro%untemehrnenmöchte jetzt seine Adressierung auf fische Adressen für jedes B&O abändern. Wie mibste seine gcJ.e& werden SOU?
Das Telefonsystem nutzt die geografische Adressierung. Warum wurde dies Standort A ist dahingehend multi-howd$dass ci: über zwei Internet-Va gen von zwei verschiedenen Providern P und Q verfügt. Die ProviderAdreSsierung von a u n g 39 wird angewandt, und A erhält seine ~ h ' wgewimm Q hat einen CIDR-Routing-E'itrag für b;
nicktut.
Ein ESP mit einer Qass-BA& m34chtt einer neuen F m W ~ e d einen Te3 des Admsraumes zur Vtdiigung s t e h . Die Firma benötigt
60% einen neuen Kunden hmqpvhwn, mit einer 20% einen wieder verlieren oder die deiche Anaabl von scbeiniic&eit von 20% behalten,
rernfür mimkstens 7 Jahre zu unterstützen, wenn das Marketing scine 16 Adressen verwendet und ansonsten das Wachstum wie geplant ver-
b* Wie lange wird diese Adresszuordnung r e i c h ? Wie können die Adressen den drei Bereichen zugeordnet werden, wenn der Abesraum verbraucht sein
für den 7-Jahres-Plan nicht zur Verfügung stünde: Welche Möglichkeiten hätte die Firma, um genügend A b n zu erhalren?
16.Falls CIDR
Umwerk N in einem grÖBeren Unternehmen A erwirbt seine eigene Direktbindwrg zu einem Interna-Service-Providw (ISP)zusätzlich zu der vorhande,mVerbindung zu A. Sei R1 der Routei; über den N an seinen eigenen Provider und R2 der Routei; über den N mit dem Rest von A angeschlossen ist.
Qu)
56. &mchten Sie d u Beispiel ehes Internetworks in Abb. 4.60, bei dan die len SI npd $2'P b an die Multicast-GruppeG Senden, deren Mitglieder & ~ g ~ l l r WWM sind.~Zeigen Sie die Muiticw-Baume der kiineaen Pfade für jedw
L Hat A tmxfet an siae Md-%-Gmpp. Bei-$m IltnpEgtagw handelt 'es & um Rlattknoten eines Baums mit Wurzel in A und einer Tife N,bei dem W t e n , cBez kois Bhtt L6t,k JCbder bat, E01glicb $k .es kN EFnp-ey.
mI
wtragmgen _sindnötig, wenn A Uhicast-
t~faneersendet?
-
A w d e t jetzt an alle Empf.nge aber einige Nachrichten gehen verloren und miissen erneut übertragen werden. Wie deie Unicasr-Neuiibertragungenentsprechen hinsichdich einzelner ~tnngsübertragmgeaeiner Multicaa-NeuQbamagung an alle bpfanger?
IM-Adressen korrekt sind: !7:7332
Ermitteln Sie, ob Uit Standort mit dem MBane verbunden ist. Trifft dia experimentieren Sie mit MBone-Tools wie sdr, vat d via.
MPLS wurde manchmal nachgesagt, a würde die Router-Leistung ver Erklken Sie, warum das wahr sein könnte,w m es esaber wohi in der nicht der F d ist. Nehmen Sb an, dass es-32 Bit erfordea, um ein MPLS-Label, das zu 4.42(b) benutzt vuird.
a. Wieviele z d c h e Bytes werden b a t i g t , um ein Wet mit den Techniken nach Abschnitt 4.5.3 zu m e i n ?
b. Wieviele nisätzliche Bytes werden mindestens benötigt, um ein Paket mit nem zusätzlichen IP-Header nach Abschnitt 4.1.8 zu tunneln? 'C.
Berechnen Sie die effektive Bandbreite bei beiden Ansätzen,wenn die P&e'$ir& 300 Byte beträgt. WieBGirholea Sie mit 64-3yte-~akttek. fektive Blmdbreire ist definiert a b ( k a h l der N F u z t m 1)f Gamntz-ahidei. übertragenen Bytes)
W C 791 beschreibt das Interne-Protokoll und beinhaltet zwei vemendet irn Vergleich nun e x p k i m Wouting mit IvBIS, {Wweis:
Wie Prozesse miteimder kammunixiertm In den letzten drei Kapidn wurden verschiedene Technologien beschrieben, die benutzt werden körnen, um mehrere Computer zu verbinden: Direktverbindungen ( k mLAN-Te-Chnologien wie Ethernet und Token-Ring), p&ervcfmittelte Netzwerke (darunter auf Zellen basierende Nerzwetke wie A m ) und h ~ e t w o r k sDa8 . nachste Problem ist nun, aus Rctory is ths diesem Host-zu-Horn-P&etühaayngsdiemt b&fd, k g h t einen Bmcss-zu-Pr~Komm~tiomtansl zu machen. Das ist die von der Ttwrs~ortcolw6d ftpsuef. s&icht der N c a w c r h c h i ~Pbsniommene Trmsport is the Rolle, die manchmal als Eh-w-Ende-Pr~owjt~5(twhjch koll bezeiebnet d d , weil, sie die K-Unikation zwischen den Ariwendtuqpprogramcddmer have men unterstützt. .zwei ~ r i ü mf-en das ~ n d t b1ossomed.1 zu-Ende-PraokolL Von oben steflesl die Pmzesse auf Anwendungsebene, die seine Dienste - Wtnston Churchill nutzen, bestimmte Anforderungen. Einige der üblichen Eigemchaftcn, die von einem Transportprotokoil erwarten werden, sind:
'
D Garantierte ifbertragung van Nachrichten D Qbe2pagmg von Nachrichten in der gleichen Reihenfoige, in
der sie gesendet wurden ib g u n g von mindestens einer Kopie jeder Nachsicht iUntersaümq beiieb'i gr& Nachrichten D Unterstiitzung von Sy~chronisationm k h q n Sender und Empfänger iMOgiichkeit des E m p f ' i r s , den Sendefiuss zu komroliieren iUnt-erstiitzung mehrerer Anwendungsprozesse auf jedem Host
pw: .Man bcrrehe, &t&Wdfa* M - b ~ aaderefg~drd l S i h h i t abdit k , weise von Praob1aeooberhalb der Trm-t &I
die n o d r - ,
, [email protected] her M a;.:. ~ n i m a o v e i n . ~ s m g r o i i d c & e ~ ~ e , ? ~ ~ i c ; l ~ d p i ~ r @=;,*,, &-J+*
hr .,
des M ~ w iPin~d zJ.: s iverweh von maichiiehm
;.
~mstt$h &r Rah&lge
V&
Nachkhtea
ii % t ~ r a ' ~ e ! i ~von Nichrichtien mit einer beliebig langen Ve@-
Diensnxarfolä&; umwandeln. WntkllW M vemchie&ene ~ Kboibbtiamn dieser Algmitbm werden in diwm Kapiwl in
dma asymkmm D m u i t i p h b~
z g
mmhhbn
eiaPetrv l h f r & A n ~ f ~ !- -bcschrithm. ~ ~ g&ro=P* - . &W Pd1 der h d t i p i k ~ m$ - -Strom-mcae vmwmdtm V& tFDP&a TCP~Pro~okol des Interne, um die Art der Elemi-Uwg diese ihmte in der Praxis ni beschreib. Im dritwir zuerst einige Algorithmen auf, mit denen cüe kzreri F& :
b&%gdhmotz-Dim (sowie weittw %a~ershBngends dakure] iaiplamdert werden, D m zeigen wiq wie sich P -: Algmithnm h m b k ~ lamm, a utn ein RPL:-Fxmw(bmoce -MH. mit l k m d w e Cd) zu implementieam, B i B Jhxheibw zwt&r hänfia b e n u ~~ -~h~& d e Sm& RPC und DGE-RPC. Itn h m Absdmb die&$Kamh b i m m g d ~ & (Perio-noe) t dcr vemhieslenen Transport.ymmkohbdmxlddt.
-
374
I
5 -le
5.1 Einfacher Demultiplexer (UDP)
'
koll eine Demultiplexebene hinzufügen muss, damit mehrere Anwendungsproze~e auf jedem Host das Netz gemeinsam nutzen können. Abgesehen von dieser Anforderung fugt das Transportprotokoll keine weitere Funktionalität zu dem vom rn grunde liegenden Netz gebotenen Best-Efforr-Dienst hinzu. Das User Datugram Pro. tocol (UDP) im intemet ist ein Beispiel eines solchen Transportprotokolls. Die einzige interessante Frage bei einem solchen Protokoll ist die Form der Adresse, die für die Identifizierung des Zielprozesses benutzt wird. Obwohl es Prozessen möglich ist, sich gegenseitig durch eine vom Betriebssystem zugewiesene Pro". zess-ID (PD) direkt zu identifizieren, ist ein solcher Ansatz nur in einem ~geschios" senenu verteilten System, bei dem auf d e n Hosts das gleiche Betriebssystem &I& und jedem Prozess eine eindeutige ID zugewiesen wird, praktisch umsetzbar. M einem üblicheren Ansatz, der auch von UDP angewandt wird, identifizieren sich & Prozesse gegenseitig d i r e k t mit Hilfe eines abstrakten Zugangspunkts, der meist Port oder Mailbox genannt wird. Dem zufolge sendet ein Quellprozess eine Nach.. richt an einen Port, und der Zielprozess empfängt die Nachricht von einem Port. .Der I-leader eines Ende-zu-Ende-Protokoiis, das diese Demultipledunktim implementiert, enthält normdemveise einen Bezeichner (Port) für den Sen* (Quelle) q d den Empfänger (Ziel) der Nachricht. Abb. 5.1 stellt den UDP-Header dar. Bei UDP ist das Port-Feld nur 16 Bit lang. Das bedeutet, dass es bis zu 64K in* liche Ports gibt, was natürlich nicht ausreicht, um alle Prozesse aller Hosts im internet zu identifizieren. Zum Glück werden Ports nicht quer durch das gesamte internet interpretiert, sondern nur auf einem e i g e n Host. Das h d t , ein Prozess 4 eigentlich durch einen Port auf einem bestimmten Host identifiziert, also durch ek Paar , Dieses Paar ist der Demuxschlüssel für das UDP-Protokoll. F m a t des UW-Neaders
Die nächste Frage lautet, wie ein Prozess etwas über den Port ehes anderen Pro=ses erfährt, an den er eine Nachricht senden möchte. Normalerweise initiiert ein Client mit einem Server Kontakt aufgenommen hat, kennt der Server den Port des Clients (er war im Nachrichten-Header enthalten) und kann darauf antworten. Daa
oder 112). Im hternet apfangt %B. der Domain-Name-Server (DNS) en am wohlbekannten Port 53 jedes Hmts7 der Mal-Semr horcht auf
würde es einfach machen, einen Port, der mit einem bestimmten Dienst ist, zu ändern, und ebenso könnte jeder Hast einem bestimmpn D i m t
irre Fiusskontrolie oder zutrerlässige/geo~dneteObertragung es a&r dem einfachen Dmdtiplexen von Nshtkhten für rozess dach ein wenig BI& Arbeit durch: Es stellt die Km&durch 'Verwendung eIn'er Prufsiimme s i c h (Die UDP-Prüfsehe P n i f s ~ u n uber e
den 'UDP-Header) den Inhalt der Nachricht
-
Pmtokohummer, TP-QueIla&em m d E-ZieladreJse sowie dem Ua, da UDP-LiingmMd i s in der PrÜisummeakechnung "CW~P.) UDF benutzt den glnehen M ~ m r n e n a l g a i h wwie IP (siehe 2). Mit dem Pseudo-Weder wird %epi.U.fr, sb die Nachricht z w i ~ h e n iden richtigen Endpunkten i!berrii&ft wurde. Hat sich beispielsweise die IP
Zidadresse geändert, während fd& mgesteiit werden würde), 4
5.2 Zuverlässiaer Byte-Strom (TCP) Im Gegensatz zu einem einfachen DemultiplexprotokoUwie UDP bietet ein feilteres Tfan$portpr~okoll einen zuverlässigen, verbbdungsorientiertea ~trom-~ieist. &I ~ o l c h D r i m t hat sich bei einer vie~fältip:e; Reihe von dungm als nützlich erwiesen, w d er die Anwendung davon befreit, sich u lende oder umgewdnete Daten kümmern zu müssen. Das Transmission ( Protocol (TCP)irn Internet ist das wahrscheinlich am häufigsten benutzte dieser Art, und auch das am sorgfdtigsten optimierte, Aus diesen beid wird TCP in diesem Abschnitt ausfiihilich behandelt. Am Ende des Ab den alternative Desipoptionen vorgestellt und erläutert. Hins@ht&chder J M m W von Traasportprotokolien, die am Anfang telo erwähnt sind, gewaIhrleistet TCP die zuverlassige, geordnete B p S m s . Es W t sich um ein VolMuplexprotokoll, was TCP-Verbindung zwei Byte-Suöme - einen in jede Richtung unters umfasst außerdem einen Flwkontr~ilmechdsmusfw jeden der beide StrOme, der es dem Empfänger ermbgiicht, die Datenmenge zu begrenzso, Sender zu einem bestimmten Zeitpunkt d e n kann. AuBerdem unterstiirst wie UDP einen Demult$1edanismus, der es mehreren Anwendmgspm men auf einem bestimmten Host ermogkbt, gkichxtig mit ihren Partnern zu
-
en. Zusätzlich zu diesen Merkmalen implementiert TCP auch einen hoehoptimierten Mechanismus zur .fJberlastkontrolle. Dieser Mechanismus die Geschwindigkeit, in der TCP Daten sendet, allerdings nicht, um den a.m Oberfluten des Empfängers, sondern am Überlasten des Netzwerks zu 6 hinausgeschoben, in dem in grögerem Zusammenhang beschrieben etzressourcen fair zugeteilt werden.
Uberlastkontrolle ofi mit Flusskontroile verwechselt wird, weisen wir hier e Daten in das Netzwerk eingespeist iind dadurch Vermittler oder Verbineitungen überlastet werden. Folglich ist Flusskontrolle ein Ende- zu- Ende-
Ende-zu-Enwcagen TC3 beflndet sieh der SlidinpW~~~hw-AlwRthmm. Dabei handelt es über das Intemet und xkht über eine Funkt-zu-P&-hioung
lad& beste-
ich, damit' jeder Host weg, dass er diesen Zustand wieder fieigben beiden gleichen Computer &inander verbindet, eine fiese RTF aufTCB-VerWdwgen normderweise sehr unterschiediiche Rn. Ehe Tausend Kdome~ervoneinander getrennt sind, kann ehe RTT von ben, während eine RTT zwischen zwei Hosts im seih Raum, die nur
wenige Meter veneinander entfernt sind, vielleicht nur 1 ms betriigr. Da TCP-Protokoii muss diese beiden Verbindungen unterstikwn können. Um noch zu v e r s c h e r n , kann die TCP-Verbindung z w i h den bei&n !hn Frartcisco und Boston eine RTT von 100 rns um 3 Uhr mosgens, jedoch 500 ms um 15 Uhr haben. R ~ - S c h w ~ sind e n sogar innerhalb einer e TCP-Verbindung m8glichydie nur ein paar Minuten dauert. Das bedeutet Punkt-zu-Punkt-Leitung ein einsteilbarer Parameter sein. Es ist aber nicht na dig, diesen Timer häufig anzupassen.) Dritter Unterschied: Pakete kennen auf dem Weg durch das Internet werden. Dies ist auf einer Punkt-zu-Punkt-Leitung, bei der das erste, am einen eingespeiste Paket arn anderen Ende als erstes &uchen muss, nicht Gaingfügig umgeordnete Pakete verursachen kein Problem, weil sie der einander gerät odeq anders ausgedrückts wie spät ein kann Im schlechtesten Fall kann sich ein Paket im Interne TL-Feld (Tme To Live, Lebensdauer) des IP abläuft. Zu Paket verworfen (sodass keine Wahr mehr besteht, dass es zu spät anko dmpW* dass IP Palcete nach Ablauf ihrer TTL verwirft, geht TCP davon iedes Paket eine maizimale Lebensdauer hat. Die Wahl der aenauen Lebe ist 120 Sekunden. Man bea&@ dass IP &n W& nicht direlalaermingt. sich lediglich um eine konservative Schätzung, die TCP darüber trifftywie im laternet leben kann. Die Wukuug ist aber bet&chtlj& TCP m vo~bereitet.,sein,d a s b e i . Empfänger plötzlich sehr alte Pakete auftau unter Umständen den Slicbg-Window-Algorithmusverwirren können. Vierter Unterschied: Die Gber eine Punkt-zu-Punkt-Leitungmiteinande denen Computer sind im a i i g e m k so eingerichtet, dass sie die Ver ning unterstützen; Witd 2.B. das Verzögerung-Bandbreite-Produktmit klt, bedeutet diesydass eine EepsmgröBe ausgewählt wird, die zu einem Zeitpunkt eine nicht bestätigte Damimenge von bis zu 8 KB.ermöglicht, derurrl dazu führt, dass die Computer an den beiden &den der Verbind f&g sein miiaen, bis zu 8 KB an Daten ~ n z u s p e i c h e r nEine . der R-WC~R ergibt, die einer bestimmten TCP-VcrbUidmg zur Verfügung werden. Dies tri& i n s h d e r e zu, wenn man W n k dass ~ je Hunderte von TCP-Verbindungen & W g unteraiiaxm kann. TCP einen Mechanismw beinhalten muss, den beide S e i benutzen, um zu dtji mnu, welche Ressourcen (2.B. wie viel Pufferplatz) die andere Seite für die Val&& dung bereitstellen kann. -*
Unterschied: Da die Gbertragende Sehe & DatverbaaduirgsLIi;~ung fleF des kam & es die h d h e i t e der Leitung aulidsst, und nur jeweils
en unme ,Diskusajan der %&-zu-We-Eraga mir einem Vergleich zur BaeitsteI1ung e i m Dienstes fwr die z u v e r b s i ~ r h mit d m Ansatz, der in XdS-Netzwerken angewandt wird. In TC3wird n, dass das wl gmn& kgendg, W-Netzwerk ~ n z u v e r b i gist uad adzes
-Ende-Grundlage, um ehe m7~e~läss~geordRcte h a g u n g ~u.Bieten~
nicht, dks sich Knoten B perfekt verhält. Netzknoten können
gew&rleisenBobwohl auch die niedrigeren Systemebrzen diese Funk-
sicherlich vorzuziehen.
5.22 .
,r'S q. m e k $ f o ~ 2
:
.
T C k W b @ b e i k , d're da Dienstbmdmibt, denTGPAnwea Bytes Bber das I a-. G k d B p s P m iseildeAk Pico2xs3,
z n e n ~genam~weil jedes sin m e ~ enMt t den in Abb, 5.4 Weden B k nur v o m . ~BieF~1d-e~ SmPmt und DstPoct idenrtifhken Bwn Q.e& bz~a. Ziel-beim Dbe beicb Mder sowie die I1P-A&essmvon Q a d e und ZW
m2".
-
1.4
10
16
31
Abb. SI:
TCP-Verbindung. Das 1.hegt, der 51
m.WPAddr, DstPort, DstlPAddm $&p. Da TCP-Verbindungen kommen und gehen, ist es möglich dass eine #ng zwischen einem bestimmen Port-Paar aufgebaut, Nr das'Ce,nden und T;
voa Daten benutzt, abgebaut und dann später fiir das deiihe Port-Paar
Mal aufgebaut wird. Es entstehen also zwei verschiedene b8ama~ionetr SequenceNum und AdvertIsedWindow betreffen den
TCPi Da T 8 ein byte-orientiertei Protokoll jsh hat iib-EIyte eine S e q u e n z l t m e ~ Das Feld GequenceNurn e n w l t die Sequenzersten, im beffenden Segment kfindllehen Bytes. Die Felder A c b w -
Nb
i'd ~dvertistsQWind~w fiihen Informationen über den Dateduas in die . Um unsere bbhaidiui)g hier zu vereinfach, ignorieren wir die in beide Richtun'gen fließen kisnnen. Wi konzentrieren uns auf &er bestimmten Seq--er (SequerioeNum], die in eine Richtung
L
4(WdWerte &r Acknowted.gmenf und ~dve&sed\lll[nduw,die in die enrgegengetu118 fheißen (Abb. 3.3. Die Verwendung dieser drei Felder wird in 5.2.4 ausführkher beschrieben.
k :J
W
--
Daten (SequenceNum)
b"-$,L I
'i.r'
+ -
Achdsdwindow
P$& Ftags wird bcnubx, um S &sm&en.
Abb. 5.5: Vereinfachte Darstellung (nur eine Richtung) des TCP-Pmzesses,bei dem Daten in die eine und Bestätigungen (ACK) in die andere Richtungfließen
t e r zwischen TCP*Partnem Zu den möglichen Fbgs zahlen SYN, FIN, RESFf, PUSH, URG und
im Segment enthaltenen nicht dringendes Daten beginnen. Dringtde Da-; den sich am Anfang des Segmentes bis e i m c f d i w zu einem Wert von UrgrParq Das Flan PUSH bedeutet, dass der Sender die Push-Owration aufaedai3 werden in Abschnitt 5.2.6 behandelt. Das Hag RESR lx&m& dass dar B q $ durcheinandergeraten ist, weil er beispidsweiw e h Segineirr d hat und aus diesem Grund die Verbindung abbrechen ni.$chte, -;, Das Ecld Checksum wird genauso wie in UDP benutzt. Es wird über d a T4 Headeq die TCP-Daten und den Pseudo-Header, der sich aus Quell- und Ziel sowie dem Längenfeld des IP-Headers z u s a m m e q berechnet. Die P&mm fb TCP sowohl in iPv4 als aueh in W.6 erforderlich. Da der TCPvariable Länge hat (nach den Pflichtfeldern können Optionen angehist ein HtirLewFeld enthalten, das die Header-L&ge in 32-Bit-W6rtern auch ah QfWt-TSeld bkannt, weil es den Offser: vom Pakaanfang bis eum. 8,.7 der Daten misst. 6
7a
5.2.3 Auf- und Abbau von Verbindungen Eine TCP-Verbindung beginnt damit, dass ein Client (der rufende Teilnehmer) % tausch von Nachrichten, um die7verbindungaufzubauen. (Wir wissen aus ~ a p i t d q dass ein h e h m e r , der eine Verbindung einieiten möchte, ein aktives Öffgq durchführt, während der für die Annahme einer Verbindung bereite Teilnehmer passives Öffnen durchführt.) Erst nach Beendigung dieser Verbindungsaufbaupb~ beginnen die beiden Seiten mit dem Senden von Daten. Sobald dann ein T e i l n e b Der Verbindungsaufbau ist eine asymmetrische Aktivität (eine Seite führt ein Pas&: ves und die andere ein aktives Öffnen durch), während die Verbindung symmetrisch abgebaut wird (jede Seite muss die Verbindung unabhängig schliei3en)'. Deshalb i$ es mögiich, dass eine Seite die Verbindung geschlossen hat bzw. keine Daten meG sendet, während die andere Seite die andere Hälfte der bidirektionalen v e r b i n d 4 offen halt und weiterhin Daten sendet.
aktives und die andere ein passives Öffnen durchführt.
d
Wege-Handshake
orithmus und erläutern dann, wie er in TCP umgesetzt wird. Beim Dreiandshake werden drei Nachrichten zwischen Client und Server ausge,wie der Zeitstrahl in Abb. 5.6 zeigt. PassiverTeilnehmer (Server)
Abb. 5.0: Zeitstrahl fUr den Algarithmus des Drei-WegcHandshakes
,$",
W
basiert &od, dass mvei Parteien sich auf eine Reihe von P@ö&eo einer TCP-Verbinslung sind das &@ anfänglichen Sequ-um-
angib (Flags = SYN, SwqwnceNurn = s).DEE
k~tädgt,die sim! Eins hdher als
d.h. 7~;ihrendimmer
noch die Möglichkeit besteht, dass ein Segment aus einer GnrhermIdcmwbm Verbidung e x W q und eine spätere Inkaroolam der Verbindiing sbört.
Z ~ ~ ~ ~ a n @ i a g n m m diagramm zu enblten. Dieses Diagramm ist in Abb. 5
beim Offnen (alles obethaib von ESTAB-) und ScUeßen (aües von ESTABLISHER)eher Verbindung vorkommenden Zustände. Alic Window-Alg~tithmus~ ist im Zustand ESTABLISm verborgen.
Das Zustmddbuqmgdiagrammvon T B ist tek& leicht verdWWIch. & V d i n d u q bewegt sic sich entsp~edmdden R e i i von e einem anderen. Jeder Pfeil ist mit eher BezeiEhnung in der F m
bind* In den Zustand S Y N _ R Wü k und führt in ctiesern Pali das Vemden einer htwm mit dem
Zwtandsübergang kann durch naei E r e i i e n ausgelöst werden: 1)Ein kommt vom Parmer an (z.B. das &ei& des Pfeils von LISTEN zu W)oder 2) der lokale Anwendungsprozess ruft eine TQ-Operation auf : Das Z u s t a M 1 s ü k ~ ~ a mvon m TCP definiert effektiv die
3.1). Die Sptm dieser beidzn W t t s e l l e a wird durch das ! k p a t Abb. 5.4) b. durch ein API (sieheBeispiel in Abschnh 1.4.1) vorge-
orreh. Das liegt daran, dass die Client-Seite sich bereits im Zustand befindet, sodass der loicaie Aawendungsprozess mit dem Senden
keine systemspezifkche Schnittstelle dem Anwendungsprowichtige Punkt sind die Pfeile, die nicht dargestellt sind. Konkret s, dass die meisten Zustande, die beim Senden eines Segments an die vorkommen, auch einen Timeobt setzen, der letztendlich das Segment neu
im Z\rstanclsübergangsdiagramm nicht dargesteUt. Wem n a h mehreren die urwapeeti! Antwort nicht eintrifft, gibt TCP a d und wech~eftin den Zwmd. Wft richten unsere Aufmerksamkeit nun auf den Abbau einer Verb
m a w g seine H&ifteder Verbindung &&mudsgi.
i Die eine Seite scidieist zuerst:
ESTABLISHED + FIN-WAIT-I+ CLOSED.
i
Die andere Seite schiieBt zuerst, i3TAIUSHED 4 CLOSE-WAIT
FIN-WAIT-2
+LAST-ACK
+TIMETIMEWNT + CLOSED.
Variante des Siiding-Widow-Aigorithmus zu diskun dien@Er gewahrleistct 1) die zuvesiässige U h a rtragung des Daten in der richtigen Reihenfolge, und 3) ender und Empfänger. Die V e w e h g des Siidingdie gleiche wie in Abschnitt 25.2, was die ersten belangt. TCP unterscheidet sich von dem vorher end, dass es FlusskontroUe integriert. Vor a b in SUng-Window fester G.röf3e verwendet, sondern dem Sender a d ~ ~ s e r[bekannt d gemacht). Dies geschieht durch Verwendung
uverlhsbe und geordnete Ubertragung ' tim in Abb, 5.8 zeigt, wie die sendende und die empfangende Seite von gieren, um eine zuverlässige und geordnete Obertragung zu implementie@M TCP a d der sendenden Seite vezwdtet eimn sende puffe^ Dieser Puffer
:.fieser Puffer nimmt die ad3er der Reihe ankommenden Daten sowie solche ieaicb zwar in der richtigen Reihenfolge befinden, die der Anwendungsprozess nicht gelesen hat.
ta)
I
Beziehungzwischen Sende- (a) und Empfangspuffer(b) bei K P
und folglich irgendwann überlaufen. Ad3edm l b t l ; t ~ ! r s c W wir raicIrt mvit einem w e r zu einem M e r , in dem ein bestimmtes Daten-3pe gespeichert &a der % q ~ u n u x i e xdieses Bytes. ' r r ~ .Auf der Sendeseite gibt es &ei Zefgei zum Senciepuffet: LastByteAckeci, M Sent und MyteWrWtsn fiir das zuletzt lrest4tigte, das zuletzt geendee ge&ebehe Byte. Selbstw~8thdfkhgiit ;-'.I "
~yWckeS d LmtBybSent,
1
* J.
weil der Empfängek kein Byte bestätigen kam, das n d nicht angekmmen k&$d
-.,A
weil TCP kein Byte senden kam, das der Anwendungsprozeed; ben hat. Aul3erdem ist fmtzustellen, dass keines der Bytes i i i van Puffer gespeichert werden inuss, d iie bereits beMtig"Y:wurden, Bytes rechts neben hstßytewritten im Puffer gespeichert wtwden muss, weil sl&ki 1314 nicht erzeugt wurden. W c h e Zeiger (Sequenmummem)werden auf der Empfangsseite g e W ! $0 ByteRead, NextByteExpected und LasteyteRN. Die Ungleichheiten sind h i q grund des Problems der ungeordneten Obertramg aller&& weniger intuhv,. f erste B&ehung . ,. 1 %
tri& zu, weil ein Byte von der AnWmdung erst gelesen werden kam, wem es'$
fangen d auch alle wthaigen W s empfangen wurden. ~axtByteExpad&% auf: das B p bnmittelliar nach dem 1empfangenen, uni dieses X n a ' . effiillen. Zweitens giit
.
si
weil NextüyieExpecM auf das Byte nach ia8ByteRcvd zeigt, wenn die Daten LI richti~enReihenfolge angekommen sind. Demgegenüber zeigt N@ eAnkunh von Daten auSer der R e h auf den Beginn der ersted Lücke in den wie aus Ahb. 5.8 ersichdich wird. Man beachte, dass Bytes ihks a&en iat@ta . nicht zwischenaesveichert werden müssen. weil sie bereits vom l o k a h A m dungsprozess gelegen warden, und Bytes d t s neben i&By@RmKd nicht M gespeichert werden müssen, weil sie nach nicht angek~mmer?e d ,
Fludmntrolle Der G~oBteiidor obgeh Diskussiori &ho1t der von Abschnitt 2.5.2. Ala W Untecgchied sind wir diemal niiher auf die Tatsache eingegangen, dass der sende und der empfangende Anwmduqsprozess k e n lokalen Puffer RUen bzw. Jq (In der früheren Diskussion wurde die Tatsache übergangen, dass Daten, die ; einem Upstream-Knoten ankommen, den Sendepuffer füllen, und die an & DoWnstream-Knoten übertragenen'D a m dem IEmphgspuffer e n t n o d V ?1 den.). '
1
em uns, dass die Fenstergröße bei einem Sliding-Wmdow-Protokoll die bestimmt, die gesendet werden kann, ohne auf eine Bestätigung vom n nr müssen. Folglich drosselt der Epfänger den Sender dadurch,
-
LastByteRcvd LastByteRead I MaxRcvBuffer
- -
-
rtised\l\lindow= MaxRcvBuffer ((NextByteExpected 1) LastBytdead)
gleichen Rate wie MtByteRcvd inkrementiert wid), bleibt das Adverr, weil er möglicherweise eine sehr aufwendige Operation auf jedem
halten. Das bedeutet, dass der Sender w jeder Zeit folgendes
-
~ a s t ~ ~ t e ~LastByteAcked ent IAdvertisedWindow
-
eWinduw = AdvcPrNsedWindow (LastByteSent - LastByteAcked)
d a Sender Ptifferphtz freimachen, aber keine weiteren Daten senden.
.
>,
1 . r .
d.h. also
-
LastByteWritten LastByteAcked 5 maxSendBuifer
Falls der sendende Prozess versucht, y Byte zu TCP zu schreiben, und wenn
-
(LastüyteWnttm LastByteAcked) + y MaxSendBuifer
gilt, b l d e r t TCP den s e n e n Prozess und lässt keine weitere Datenerze
mehr zu.
ten Daten erfolgreich bestätigt wurden. Die Tatsache, dass keim Daten
Femre~wiederöffnen, sodass TCP auf der M e s e i t e Da tragen h. Nachdem diese Daten bestätigt wurden, matim, der von diesen bestätigten Daten belegte hifferplatz freigegeben Sehdeprozess iortgesetzt. Es bkibt nur ein Detail übrig, das gelöst werden muss: Wie weg die dass das Advertkd Wibow nicht mehr auf 0 steht? Wie oben e m d h t ,
scheinlich nicht akzeptiert werden, versucht es aber trotzdem, weil j& löst eine dieser 1-Bp-Versuche eine Antwort aus, die eine Fen ungleich Null meidet.
5.2 Zuverlässiaer Bvte-Strom (TCP)
1
391
einer allgemein anerkannten (wenn auch nicht universell angewandten) Regel für Protokolldesigns, die man mangels einer besseren Bezeichnung smart sender/ dumb receiver rtrle (Regel des klugen Senders/dummen Empfängers) nennt. Wir haben zuvor ein Beispiel dieser Regel in Zusammenhang mit NAKs in Abschnitt 2.5.2 kennengelernt.
Schutz vor Überlauf (Wraparound) In diesem und im nächsten Abschnitt beschäftigen wir uns mit der Größe der Felder SequenceNum und AdvertisedWindow und den Auswirkungen ihrer GröRe auf Korrektheit und Leistung von TCP. Das Feld SequenceNum ist in TCP 32 Bit und das Feld AdvertisedWindow 16 Bit lang. TCP erfüllt folglich leicht die Anforderung des SlidingWindow-Algorithmus, dass der Sequenznummernraum doppelt so groß wie die FenstergröRe sein muss, da 232>> 2 x 216.Diese Anforderung ist aber nicht das Interessante an diesen beiden Feldern. Wir beschreiben die beiden Felder nacheinander. Relevant ist am 32 Bit langen Sequenznummernraum, dass die in einer bestimmten Verbindung benutzte Sequenznummer überlaufen kann. Das heißt, ein Byte mit Sequenznummer X wird zu einem bestimmten Zeitpunkt gesendet, und später dann ein zweites Byte mit der gleichen Sequenznummer. Auch hier gehen wir wieder davon aus, dass Pakete im Internet nicht über die empfohlene MSL hinaus leben können. Folglich müssen wir sicherstellen, dass die Sequenznummer nicht innerhalb einer 120-Sekunden-Dauer überläuft. O b dies tatsächlich passiert, hängt davon ab, wie schnell Daten im Internet übertragen werden können bzw. wie schnell der 32 Bit-Sequenznummernraum aufgebraucht wird. (Wir gehen dabei davon aus, den Sequenznummernraum so schnell wie möglich aufzubrauchen, was wir natürlich erreichen, indem wir unsere Aufgabe, den Übertragungskanal zu füllen, erledigen.) Tabelle 5.1 zeigt, wie lange es bei Netzwerken mit verschiedenen Bandbreiten dauert, bis die Sequenznummer überläuft. Bandbreite
Zeit bis zum Überlauf
Tabelle 5.1 : Zeit, bis der 32-Bit-Sequenznummernraum
T1 (1,5 Mbitls)
6,4 Stunden
überläuft
Ethernet (10 MbiWs)
57 Minuten
T3 (45 Mbiffs)
13 Minuten
FDDl (100 Mbitk)
6 Minuten
STS-3 (155 MbiVs)
4 Minuten
STS-12 (622 MbiWs)
55 Sekunden
STS-24 (1,2 GbiVs)
28 Sekunden
Wie man sieht, ist der 32-Bit-Sequenznummernraum für heutige Netzwerke angemessen. Angesichts der OC-48-Leitungen, die neuerdings im Internet-Backbone installiert werden, wird es aber nicht lange dauern, bis einzelne TCP-Verbindungen in den Geschwindigkeiten von 622 Mbitls oder höher laufen. Zum Glück hat die IETF bereits eine Erweiterung für TCP ausgearbeitet, die den Sequenznummern-
raum effektiv erweitert, um den Oberlauf von S e q u e ~ zu ~ vme h i d M Dise und damit zusmmenhiingende h e i t e r q e n werden in A b d m h J& beschrieben.
Den Ubertragungskanalgefallt halten Das 16-Bit-Feld A&eftisedVVlndow muss grof3 genug sein, damit der Sender & übertragungskanal gefüllt halten kann. Selbstwmtiindkh steht es dem ~ rn*a frei, das Fenster hicht auf die vom Feld AdvertiscJdWindow vorgegebene Grök ; ~ l& , nen. Wir sind an der Situation interessiert, in der' der Empfänger über au Pufferplatz verfügt, um Daten im Umfang des gröl3tmöglichen Ahrtised zu bewältigen. $ In diesem Fall wird die Gsöße des Feldes AdvettbdWindow nicht nur wm & Bandbreite des Negzwerks, sondem an& vom Verzögerung-3andbrei~Prvorgegeben. Das hs&, dars Fenster muss weit genug ge;riffnee werden, vollen Wenögeruq-Bandbreite-Produkt entsprecliende D a t e m n g e kihnen. Unter der Annahme einer R'IT von 100 ms (ein typische Leitung quer durch die USA), wird in Tabelie 5.2 das Verzögerung-BandbPei d&t für verschiedene Ne&techn010airn aufkefiüm, 3
Bandbreite
I
Venßgerung-BendbreiiProduM
Ethemet (10 MWs)
816-3(155 MbWs)
Tirbrlh53: Erforderliche Fenstergröße bei einer RTT von 100 ms
Wie man sieht, ist das TCP-Feld AdvertisedWindow in einer noch schlechteren als das SequenceNurn-Feld. Es ist nicht einmal groß genug, um eine T3-Verbui über den US-amerikanischen Kontinent zu bewältigen, weil wir mit grol3en Feld ein Fenster von nur 64 KB propagieren können. Die ber TCP-Erweiterung (siehe Abschnitt 5.2.8) bietet ebenfalls einen Mechanismo effektive Erhöhung der Größe des Advertised Window. 'T;, -:
i
5.2.5 Ubertragung anstoßen Als Nächstes betrachten wir einen überraschend subtilen Punkt: Wie ent friiherer Steile beschrieben, un Wie TCP, ein Segment zu d. h. iwendungsprograrnme schreiben TCP' eine Byte-Strom-
,:
t
einfad ignorieren, (dem.sie
des !&dem.Wem der Setrder volles Segmm. M e h n wir aber an, der t k d w B ~ e s das Fenster moaber gescbseii isr. N m nehmen ankommt, wodurch das Fenster 'ausreichindgeöffnet wUrd,
Abb. sjil? rras siiiy-
Window-Syndrom
""" r .
394
1
5 ~U-EndaPrOtolcoIk
die in eine Richtung wandern, und leeren Containern (ACKs), die in die UmkehrAchtung gehen, vorstellt, dann entsprechen Segmente in MSS-Gröfk großen Containern und 1-Byte-Segmente sehr kleinen Containern. Füllt der Sender aggressiv einen leeren Container, sobald dieser ankommt, verbleibt ein in das System ehgcdiihrkr kleiner Container für immer und ewig im System. Das heißt, er wird an jedem Ende s o f ~ r gefüilt t und geleert und verschmilzt nie mit benachbarten Containern, um groi3e Container zu bilden, Dieses Szenario wurde entdeckt, als friihe TCP-Implemntiemngen regeImäl3ig dabei ertappt wwden, dass sie das Netzwerk mit winzigen , Segmenten füllten. Man beachte, dass das Silly-Window-Syndrom nur ein Problem darstellt, wenn entweder der Sender ein kleines Segment überträgt oder cler Empfänger das Fenster nur wenig öffnet. Wenn weder das eine noch das andere eintritt, wird der k l e b Container nie in den Strom eingespeist. Es ist nicht möglich, das Senden kleiner !kg- mente gänzlich zu unterbinden. Beispielsweise könnte die Anwendung eine Pushe Operation ausführen, nachdem sie ein einziges Byte gesendet hat. Allerdings ist es mjglicb, dea Empfänger daran zu hindern, einen kleinen Container (d..h, ein Meines offenes Fenster) einzuführen. Die Regel lautet wie folgt: Nachdem ein Fenster mit G r S e Null bekannt gegeben wurde, muss der Empfänger solange warten, bis Platz im Umfang von einer MSS vorhanden ist, bevor er ein offenes Fenster bekannt gibt. Da wir die MBglichket, dass ein kleiner Container in den Strom eingespeist wird, nicht gänzlich ausräumen können, benötigen wir Mechanismen, um sie zu ver. schmelzen. Der Empfänger kann dies dadurch bewirken, dass er ACKs verzögert alao ein kombiniertes ACK statt vieler kleiner sendet. Dies ist aber nur eine Teillösung, weil der Empfänger keine Möglichkeit hat festzustellen, wie lange die VerzQge? rung sicher ist, wiihrend er entweder auf die Ankunft eines anderen Segments wart@ oder bis die Anwendung weitere Daten gelesen hat (und somit das Fenster öf4ne:t). Die letztendliche Lösung verbleibt beim Sender, was uns wieder zu unserem Aue gangspunkt~urückführt:Wann entscheidet der TCP-Sender, ein Segment zu über@%-gen?
-
Der Nagle-Algorithmus Wir wenden uns dem TCP-Sender zu und stellen uns folgende Frage: Wenn Dazur tibertragung anstehen, das Fenster aber weniger als MSS geöffnet ist, bcösns;ltar wir eine gewisse Zeit warten, bis W& die verfügbans Daten senden - doch wie lange? Wenn wir zu lange warten, beeinträchtigen wir interaktive Anwen wie z. B. Telnet, Warten wir demgegenüber nicht lange genug, riskieren W Haufen winziger Paluirte,gesendetwird und das Silly-Window-Syndromen Lösung liegt in der Einführung eines Timers und der tibertragung, wenn abläuft. Obwohl wir einen auf einer Uhr basierten Timer, z. B. einen, der alle 100 ntar abläuft, benutzen könnten, führte Nagle eine elegante selbsttaktende Lös Die zu grunde liegende Idee ist, dass der Sender irgendwann ein ACK em wird, solange TCP Daten unterwegs hat. Dieses ACK kann wie ein T i behandelt werden, wobei die Obertragung von mehr Daten angestogen wird.
5 3 a;uvurlaPoig.rWmSmmCtCB)
1
595
Ubermgen werden soll: . ..
Wenn die Anwendvng sendebereite Daten prgduziert, falls sowohl d ie veMgbaren Daten als auch das Fenster r MSS, sende ein volles Segment a n ~ ~ i 's falls untmMügte Daten anstehen p d k e die neuen Daten, bis ein ACKankommt andernfalls sende a b m n Daten jetzt s anis~dnickt:Es ist immer in Ordnung, ein volles Segment zu senden, wenn t. Es ist ebenfalls in Ordnung, eine kleine Datenmenge sofort w buie Segmente im Transit befinden. Befindet sich wird eine interaktive Anwendung wie Teine ihre Daten in einer Rate senden, diefeinemSegenthalten mögiicherweise ein einziges andere die Byte-Menge enthalten, die der Benutzer innerhaib einer tippen konnte. Da sich einige Anwendungen eine solche Verzögejede Scfueiboperationen in eine TCP-Verbindang nicht leisten können, es die Socket-Schnittstelleeiner Anwendungyden ~ a g l e - ~ l ~ o r i t h m durch us lten. Das Setzen dieser Option
Adaptive NeuQhrtmguns
'Wir besdp-eiben nun diesen Mechanismus und seine Weiterent-
der 2Ztywährend die Internet-Gemeinde mehr Erfahrungen mit
en mit einem einfachen Algorithmus für die Berechnung eines Timeoutschen zwei Hosts. Dieser Aigorithmus wurde in der ursprünglichen TCPtion definiert, und die folgende Beschreibung gründet auf dieser Definition.
Das Kmzept besteht darin, einen gleitendenDurch&tr "Wtteln und dann dennlneout als Funktion dieser R'IT zu berdmen. Jedes Mal, wenn TCP ein Datmsegment s e n k zeichnet es die Ac# für dieses Segment an, regkriert.TCP e m u t die Zeit und v e ~ ~ ~ e n& da r a u mischen diesen beidcn Zeiten JSampb#rT. TCP berechnet EsämtdiTT ais gewichteten Durchschnitt misebo &r vorhedgei W t w n g dem neuen Wert, also EstimatedRTT = a X EsthnatedRTT + (1
- a)X SampleFiTT
'
Der Parameter a wird gewählt, um EstimatedRTT ~u g P m . Bei ehern kle von a folgt sie Änderungen der RTT gut, wird aber unter U-den zu momentanen S c h w a h g m kwiflusst. Andererseits bedeutet ein großer W M a mehr S m W , km sich m&giieherweiseaber nicht schneU genug, an h d e m g e n anpassen. In der urspxxingiichen TCP-Spezifikation d e e h lmg fiar a zwischen 04 und 0.,9 empfohlen. TCP benutzt ~ r n a t ~ R T T ~ Timeout relativ kmenrativ w berechnen: TnneOut = 2 X EsfimatedRil
Kam/Pwtridg6Mg~us Nsch mehreren ~ a h @&&&g g mit dem l n m wurde ~ ein Sch s& einfachen Aigoritbus entdeckt. Das Problem hg darin, dass lichkeit keine nbertragmg, mndeni den Empfang von Datea bestätigt. Mit , Worten: W b ein Segment eme& übernagen wird und anachli&nd ein ACK Sender ankomm, läss~ichnicht feststellen, ob dieses ACK mit der ersten d e c zweiten übertragung des Segments in VerbJndung gebracht werden soil Sarn~teRTTzu bestimmen. Man muss iedoch tmwissen. zu weichm gnng e9 gehört, damit man eine genaue SampkRTT berechnen kam. Ausi wird ~lgpdlesdeutlich: Geht man davon aus, dass das ACK fth die WS Sender
Em~fänaer
(a)
Sender
Empfänger
(b)
Abb. 5.10: Zusammenhang des ACK mit (a) der ursprünglichen und (b)der Neuübertragung
t,&
gilt, während es zur zweiten ghiirt, ist die SampleFtiT zu g& (a). andererseits an, dass das ACK zur zweiten Bertragung gehurt, wähes die Messung der RTf aus. Es misst SampkRiT nur fiir Segmente, die
genannt. Die damit vorgeschlagene Korrektur beinhaltet auch eine hderung des Timeour-Mechanismus ixn TCP. jedes Mal, wenn TCP
bEstimatednTT. Das hei& Kam und Partridge schlugen - &dich wie irn die Verwendung des exponentiellen Backoff in TCF vor. Die Morivation
bekämpfen. Der Grdteil dieser Anderung wird in Kapitel 6 läufig konzentrieren wir uns auf den Aspekt dieses Vorschlags, der eht, wann der Timeout: ablaufen und ein Segment e m u t übertragen enhang mZWfschen Timeout-Mechanismus und Oberlast sollte inmvisein: Wenn der Timeout zu früh abläuft, wird ein Segment mog-
Bei dem neu* Ansatz misst der Sender eine neue SampleRTT; wie obea bezieht er .dieseneue Messung in der Tmmut-kechnu11gwie Mgtein:
-
DWIerence = SampleRTT EsämatedKiT
*
E i s ü M R T f = EStilmtgdRVT (6x rneIWce) Deviation = Deviation+ a(1OSfferencel- Deviation)
wobei 6 eine Zahl zwischen 0 und 1 ist. Das heißs yir berechnen sowohl die Eere RTT als auch die Schwankung dieses Mittelwerts. TCP berechnet den Tieont-Wm ds F u n k b v m EstimeWRlT uad (Abweichung) wie folgt: TimeOut =
X
EstlmatednTT + 0 X Dsviaöon
wobei p der Ekfahrmg nifolgc meist auf 1 iind0 auf 4 gesetzt. werden ,ren Scfiwlies TimeOut nahe &r EsthtedFllT; ehe WQ& bedeutet, dass der Term Deviation qlie Berechnung behemeht.
Implementierung
knwi~etr~ alsa Multiplikg~ionund Divisi dadurch eine bIiaforrnance erzielen.
dass EsämiWRTT ~d .Deviation in ihren s k & m J2umen g e während der Wert van Sampief;rTr am A d h g und JimeQut poi Ergebnisse wie bei den obigen Gleichungen ergeben. SampleRTi Est$mt&ii
-- (EstimatedRtT » 3); 45
if (Sm1eRTT
Saaipl eRTT
Smpl e R n
banipleRiT:
* 0) -Sm1eRii; @evii%tian = 3) ; P
Deviation += SampleRTT; TiinaOut = (EstlmabdUT
w
3) + (Deviation
>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 <& 4
Das Feld CID idenafiziert eindeutig dai logischen Kanal, zu dem die betr&nrfq Nachricht -gehört. Es ist ein 16-Bit-Feld, was bedeutet, dass CHAN bis zu 64& deichzeitige AnfrageJAntwort-Transaktionenzwischen zwei beliebigen Hosts mstiitla. Selbmmndlich kann ein bestimmter Host Kanäle zu vie4en anderen gldxceitig offen haben. Das MID-EeM identifiziert eindeutig jedes AnfragdAntwort-Paar. Die Antwo* nachricht hat die deiche MID wie diq Anfrage Da CHAN nur jeweils eine N M richtentransaktion atd einem bestimmten Kanal zulässt, mdchte inan glauben, ein 1Bit großes MID-Feld ausreicht wie bei dem in Abahitt 2.5.1 bschr StopdIud-Wait-Algwithmus.Wie bei BLAST müssen wir uns aber d d h c ken machen, dasg Nadukhtea über langere Zeit durch das Netzwerk wadea k W nm, dann plötzlich am Ziel aufta~ i&e P und CHA m. l e b wir fur CHAN a e hU oder weniger aus dem g$eiche wie I Aba e h 32 Bit großes MID-Feld. Das BID-Feld enthält die Boot-ZD für den Host. Die Boot-ID einer haaschine &$ eine Nummer,die bei jedem Start der Maschine inkrementiert wird. Diese N e wird bei der Startprozedur der Maschine von der Platte gelesen, inkrementiert 4 1 auf die Plame zuriickgescbtieba Dann wird sie in jede von diesem Host gesen&@
-
die alteNacbricht in dtesem F 4 nicht auf irgenkine Verzögerung im Metzsondern auf eine abgestürzte und neu gestartete Maschine zurückl:ufübren ist. die ~ e m d u n der g Boot-ID w verst&en, betrachte man foigenden pathoen Fd:Ei a e n t sendet eine Anfmgenach@chtmit MID * 0; s t h t ab, wird tutet und sendet dann eine new, andere Anfragyachricht, ebenfalls mit Der Server hat mijgiicherweise hiue Ahnung v m A b s w und Neustart des
.
'und aicht nur MID mit dem ~rwarteten'iibereinsdmmt.B1D ist ebenfalls ein t-Feld, Wenn wir also davon ausgehen, dass es mindestens 10 Minuten dauert, Maschine neu zu starten, erfolgt ein Oberlauf des Felds einmal alle 40 NilMinuten (ca. 80.000 Jahre). Tatsächlich bilden BID und MlD zusammen eine und bkt, . .
die höherwertigen 32 Bit werden bei jedem Neustart der Maschine
st drei verschiedene Timer: je einen REWSMIT-Timer Beim Client er und einen PROBE-Tirner beim Client, Der PROBE-Ther ist bw:die Pere nicht entscheidend und kam daher auf einen großen Wert - in der Grömuss CHAN ev~fituellunnötig lange warten, bis eine im Netzwerk icht erneut übertragen werden kann. Dies wirkt sich natürlich auf Wird d e RETRpNt$vlIT-Timer ~ andererseits auf einen zu kleinen Ster CHAN das Netzwerk mtJglicherweise mit unnötigem Verkehr. für die Ausführung ausschließlich in einem LAN oder auch in etterten Campus-LAN ausgelegt, kann RETIkANSMIT au4 einen feam t werden. Etwas jn der Gröhordnuqg von, 20 Millisekunden wäre
setzt,
.
Grü& überträgt.
Synchronegegenüber asynchronen Pmtdrx,llen
Operation bekannt, wenn die send-Operation zurückkehrt? Am asynchtonen Ende des Spektrums weiß die Anwendung absolut nichts' Gegenüber empfangen wurde, sie ist nicht einmal sicher, ob die N
über empfangen wurde,sondern auch, dass das Gegenüber eine Antwo geben hat. Folglich implementieren synchrone Protokolle die Anfra
Implementierung von CHAN Wir &liegen unsere Beschreibung von CHAN mit Fragmenten eines C-Co wenn man es sorgfitltig macht, kann k das Verständnis davon erleichtern,
zu verstehen, die in die Protokoll-implementierungeingehen, und wie menarbeiten: die Routine, die eine Ausgangsnachricht losschickt, die arbeitet. State. Die Felder in ChanHdr wurden bereits erklärt. Die Fenster
eine Kopie des CHAN-Headers ist. %ele Felder im CHAN-Header bleiben bei
I
5.3 b#note-mC.#(RPt)
417
über diesen Kanal gesendeten Nachrichten gleich. Diese Felder werden ausgehiit, wenn der Kanal erstellt wird (nicht dargestellt). Nur die sich ändernden Felder werden modifiziert, bevor eine bestimmte Nachricht übertragen wird. typedef s t r u c t { U-short Type; ushort CID;
typedef s t r u c t { U-char type; U-char status;
*request;
ChanHdr hdr-templ ate; B1astState blast;
/* /* /* /* /* /*
Nachrichtentyp: REQ, REP, ACK, PROBE Eindeutige Kanal-ID */ Eindeutige Nachrichten-ID */ Eindeutige Boot-ID */ Länge der ,Nachricht */ Numner des hgheren Protokolls */
/* /* /*
Sitzungsart: CLIENT oder SERVER */ Sitzungszustand: BUSY oder IDLE */ r S t e l l e zum Speichern eines Timeout-Erei gni sses */ Timeout-Wert */ Hiiufigkeit der Neuiibertragung */ S t e l l e zum Speichern des RUckgahweyts */ S t e l l e zum Speichern der Anfragenachricht */ S t e l l e zum Speichern der Antwortnachricht */ re, bei der der Client blockiert */ hten-ID f U r diesen Kanal */ Boot-ID dieses Kanals */ Header-Maske f U r diesen Kanal */ Zeiger auf das BLAST-Protokoll */
/* /* /* /* /* /* /* /*
*/
mkeit nun auf die die Routine, die Anfragenachrichhickt. Da CHAN Protokollen auf darüberliegenden Schichten eine synchrone blockiert bis eine Antwort zurückgegeben wer- wird die send-Routhe, die wir uns seit Kapitel 1vorgesteiit haben, nicht orueren. Wir führen daher eine neue Schnittsteiien-Operation ein, der wir den caii geben und die blockiert, bis eine Antworrnachricht zur Verese dann dem aufrufenden Prozess übergibt. Das erste Argument werden soll. Es umfasst aile Informationen, die das Senden der Nachricht an den richtigen Empfänger erforderlich sind. Das sich auf den abstrakten Datentyp (ADT)für bzw. ausgehenden Nachrichten dar. Wir ichtlichen Operationen unterstützt (2.B.
in t callCHA#(ChanState *state. Msg *msg, Msg * m g ) { ChanHdr *hdr; char hbuf [HLEN] ;
/*
Garantiere nur eine Transaktion pro Kanal i f ((state-~status l = IDLE)) return FAILURE; state-*status = BUSY;
*/ 1 i
/* Speichere eine Kopie der Anfragenachricht und zeige auf d i e Antwort- i nachricht */ ,j +.!! msgSaveCopy ((Lstate->request, msg) ; state->reply = msg; .,I <%&'
/*
Falle d i e Header-Felder aus hdr = state->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<{,
\
'+
m-4-
Hader-Format von SunRPC entliält die Anfraeenachricht die Felder Credentials ,änge.. Bei,de Vverden V 0 1n Client um sich sellbst eren, d.h. den Nachveis zu erbri dass er das Recht .Wie sich ein Client bei einem S authenitifizijea,, ist a allgemeine Frage, die von jedem Protokoll geklärt werden muss, das ein verrifeiges M& an Sicherheit bieten will. Dieses Thema wird ausführlicher in ~ i t e l 6behandelt. U
t
h
DCE Das Distnbuted Computing Environment (DCE) definiert ein weiteres V=
Standards und Software ftä. die Entwicklung d t t i r Sytaeme. Es
verteilter Systeme. DCE-RPC wurde für die Ausführung oberhalb von UDP ausgelegt. SunffPC dahingehend, d a s es ein zwekhich*a Adressieauigsschemii diesem Server angebotene Prazediir und Clients bernüken einen wEn
schliefEiich ?bei: mit SunRPC vergleichbaren Idempotent-Semantik; das verhdm i@ aber at-inost-once.)
ver antwortet miP einer Qua&-Nachricht (Abbruchbesdtignngf.Adlerdem Server auf eine Anfrage- mit einer ~ - N a ~ c (womit h t er den Aufn\ rurd auf eine Ping- mit einer Nocall-Nachricht antworten (womit der Server $ruck bringt, dass m nie vdm Aiifrufer gehOrt hat). Z~~s%miich zum N a c h i c h t ~ t g pEseinhalten &geiuld CHAN zu im@lementieren. Hiemu &den SemtBoot, AcW!yld, Seq FragmMum.
hnet bei jedem Start seine S t m i t in einer giabalen Varia-
'WLung zwischen Client und S e m über die eine Reihe von Aufrufen crfdgt.
&U SequemeNum untersqheidet dann mischen Aufden, die 4 s Teil der gieimerkt D&-RPC sich die letzte Scquenmurnmer; dia Z Teiner ~ m t e n Aktivitgt knutzt wurde, um die at-fl~ist-once-Semantik~icherwtdlen. b mwobl M a w - als auch Antwortmchrichten w&&r als die BaketgröSe des
DC'E-RPC eine eindeutige Fragmenatwmnez (2.B. O,1,2,3 ußur.) zage~ ~ m e c h a n i s ~der u wie s , folgt funktioniertfr(~irbeschreiben den Mechakalsr Szenatio, bei dem ein Client eine fragmnti- Adragenachricht an den &td t . Der gleiche M C ~ W ~ wird I ~ ~angewendet, U S wenn ein Server dem 8 e b Fragmenmnxlort sendet. )
Erstens enthält jedes Fragment, aus dem die Anfragenachricht besteht, sowohl eine eindeutige Fragmentnummer (FragmentNum)als auch ein Flag, das spezifiziert, ob dieses Paket ein Fragment (frag)oder das letzte Fragment (last-frag) eines Aufnxfs ist. Anfragenachrichten, die in ein einziges Paket passen, tragen das Flag no-frag. Der Server weiß, dass er die vollständige Anfragenachricht empfangen hat, wenn ihm das Paket last-frag vorliegt und die Fragmenmummem lückenlos sind. Zweitens sendet der Server in Beantwortung jedes ankommenden Fragments dem Client eine Fack-Nachricht (Fragmentbestätigung). Diese Bestätigung identifiziert die höchste Fragmentnummq die der Server erfolgreich empfangen hat. Die Bestätigung ist also wie in TCP kumulativ. Darüber hinaus bestätigt der Server aber selektiv eventuell a d e r der Reihe empfangene Fragmentnummem. Er bewerkstelhgt dies mit einem Bitvektor, der diese außer der Reihe angekommenen Fragmente in bezug zum höchsten in der richtigen Reihenfolge empfangenen Fragment identifiziert. Schließlich antwortet der Client durch NeuÜbertragung der fehlenden Fragmente. Wie dies alles abläuft, wird aus Abb. 5.22 ersichtlich. Angenommen, der Server hat Fragmente bis einschließlich der Nummer 20 sowie die Fragmente 23,25 und 26 erfolgreich empfangen. Er antwortet mit einem Fack, das Fragment 20 als in det richtigen Reihenfolge angekommenes Fragment mit der höchsten Nummer identifiziert, und mit einem Bitvektor (SelAck), in dem das drittek23 = 20 + 3), das fünfte (25 = 20 + 5 ) und das sechste (26 = 20 + 6) Bit eingeschaltet sind. Um einen (fast) beliebig langen Bitvektor zu unterstützen, wird die Größe des Vektors (gemessen in 32-Bit-Wörtern) im Feld SelAckLen angegeben. 4
Client
Server
hbb 5.22: Fragmentierung mit selektiven Bestätigungen
ist 16Bit bg, d a s s es also 64K-Fragmente untatüaen kann) kann nkh SI) &eil die Fpagmcnpe, aus dencn sich eiae N~chkr'efrtzysanibfördern, weil dies zu einem Oberlauf des Empfängers führen swi hphdcrtr DCE-RPC einen F l u s & m s ~ ~ r i t l v n w der , Iasbesoadere bestätigt jede Fa&-Nachricht niicht nur, m p b i n f d e t t den Sender auch, wie viele Fra+nte er jent Zwwk des Feldes Wtndowsize in Abb. 5.22,- wrnfeichbar &er dass es Fragmente statr Bytes zm t . Mechanismus zur Oberlastkontrolle, ver#M&bar mit dem in TCP, der in Kapitel 6 beschrieben wird.
.
V
.
Ir.
V-
,*BA Netzwerkleistung (Performance)
, .1
'hKapitel 1 wurden zwei quantitative Metriken vorgestellt, mit denep die Netz-
.*
,werkieistunn bewertet wird: Latenz und Durchsatz. Diese Metriken werden nicht durch die zu gmnde liegende Hardware (2.B. Ausbreitungsye~ögerungund! Lei:mgbandbreite), sondern auch von Software-Overheads beeinflusst. Da uns nun b&,ksrrP1mer, auf Software basierender Protokoiigraph zur Verfugungtsteht, der I-tive Transportprotokolle beinhahet, können wir uns damit befassen, wie , w e Leistung aussagefähig gemessen werden kann. Wichtig ist dass diese Messun)&@ die Performance aus Sicht der Anwendungspxogamme darstellen. ,Wie es sich für einen Bericht über experimentelle Ergebnisse gebührt, beginnen ;&mit einer Beschreibung unserer experimentellenMethode. Diese beinhaltet die in S b Experimenten benutzte Hardware. Wir haben unsere Experimente mit zwei ~33-hlHz-~entium-~echnern durchgeführt, die über ein dediziertes 100-Mbids,$&bernet verbunden sind. Die Länge des Netzes betrug nur wenige Meter, sodass )&e Ausbreitungsvenögenuig vernachlässigbar war. Es wurden also nur Prozessorj~mdSoftware-Performance gemessen. Als Betriebssystem war auf beiden Rechnern I i h u x (Kerne12.4) instailiert. Ein Testprogramrn, dass auf den Sockets der Rechner i-,e, reflektierte Nachrichten zwischen den beiden Maschinen. In Abb. 5.23 ist F& Roundtrip zwischen den beiden Testprogrammen skizziert. Jedes Experiment umfasste die Ausführung von drei identischen Instanzen des r&bichen Tests. In. jedem Test wurde eine Nachricht einer spezifischen Grö& zwi[&n zwei Maschinen 10.000 Mal hin und her gesendet. Die Systemuhr wurde am ?holang und Ende jedes Tests gelesen, und der Unterschied zwischen diesen beiden CZeItpunkten wurde durch 10.000 geteilt, um die Zeit fiir einen einzelnen Roundtrip $&xmitteln. Der h h s c h n i t f dieser drei Zeiten (der drei Testläufe) wird für jedes #xperiment unten angegeben. In jedem Experiment wurden Nachrichten unter[lch*dlicher Länge beuwhtet. Die Latenzwerte wurden für Nachrichtengroßen von ~ $ 1 )Byte,100 Byte, 200 Byte, 1.000 Byte gemessen. Die Durchsatzergebnisse wur!&in & NachrichtengröOen von 1KB, 2 KB,4 KB, 8 KB, 32 KB ermittelt. .- , ' t
)
...,
...,
Abb fUr Das gemesrciw!System: Zwei PrnPiu&WorksWons mit U W - m s y s t e m andn einem 100 MbWt-fah«na mrbunden. I., . , I
.
1
Die F;rge@sw des htemtests sind ip ~abelk5.3 aufpfiihrr. Den l ? m d zp;ifoigo;&ht sich die Latenz mit dw'N&aealhge!. W&g&&tet mim& M e , in d & a naan an der Latenz einer bestimmen, &.B,200 Byte pd& F4 deht hmes&rt isg sind die wWmgs1:en L~~re&w@beadse&'t NaciUic&e@t$ll e h r Mnge .von 1 ]Byte. Der &und 9 i q da&, ~ Ass &C l ~ B f ~ - F dden l bei &Q arbeining jeder NacMch~entsteheliden Qveihead darstkiit, dez lsicht viili'&r&-d & kkhtd und
hlmzgmm, die Faktoren wie husbrei-mögtsrtnig U
~
I
C
V
~&malt. ~ ~ R
Nachrichtengr6Be(Byte)
1
UDP
e
TCP
h e t > dass mviden~#ermit dGax m d vmwhie$enim Plmkolltn s a k dutchaus den E a w m p . c n t ~ d c h tweil , TCP mehr Funk-oiona@km*&.DieBrgebaisse des ~)urchs~a- sind in Abb. 5.24 daqmwlit. Hier zcigdn wir r &-&gabdsoo fiir UISB. tQu&&g iss an k.Q&, d a s sich der D w k s n 1~'kkwmbmmdes.&6&~ $M Na-k vcllbaaxt. Das ist awh lofpsc$, W& jedg &tick einen gewiggeg h ~ b a emugt, d was bedeutet, chm sich dieser MOKg mit mmchcn& .Bytehulenge pro Nachricht besger v d t . Die Dwh&cbei etwa 16 #B ab. An diesan Punkt wird d u Overhcd pro Nachricht Prn Vergleich zu dez p d e n Anzahl von Bytes, die der Protokdl-Stack 1
Abb 5.24: Gemessener Durchsatz bei Verwendung \rnm I I n D mit i,arrrkiaAanan VWI I W Y I 1111% V F I i I C I I V S U F I I G I I
Nachrichtengrößen
NachnGhteqp6h P]
lt auf, dass die Duichsatzkurve &an lb J Mbitk ihre erreicht und dann fast flach verläuft. Da der rstem. daran in voller Etheiner-Geschwindigkeitzu laufen, lässt sich aus die;@ Messunein
Biert,
S Zusammenfassung diesem Kapitel wurden drei sehr verschiedene Ende-zu-Ende-Protokolle und ihre weilige Leistung beschrieben. Beim ersten untersuchten Protokoll handelt es sich n einen einfachen Demuluplexer; UDP wurde als typisches Beispiel beschrieben. n solches Protokoll sendet lediglich Nachrichten anhand einer Port-Nummer an
Protokoii von Nutzen scin können. tokoll h n d von RPC beschrieben. In diesem Fall wurde der
und schlie%licheiner, der den Aufruf der korrekten entfernten Prozedur
Nach der kktüre dieses Kapitels sollte klar sein, dass das Design Offene Fragen von Transportprotokollen ein Anwendungsspe;tifische kniffliges Unterfangen ist. Wir haben gesehen, dass es schon Protokolle schwierig ist, ein Transportprotokoii von Grund auf richtig auszulegen. Wenn sich die äußeren Bedingungen ändern, wird dies noch müssen also Möglichkeiten gefunden werden, um Anpassungen für di zu finden.
aufzurüsten. Die Merkmale des zu grunde liegenden Netzwerks können sich ebenfails än Jahrelang waren die 32-Bit-Sequenuiumrner und das 16 Bit große Advertised
I
sis -2
1
I n h Z e i r d e k d t ~ n ~ k e m i t Szoher Bandbreite bedeuten a b q dass die S e q u e n z n nicht ~ groß genug ist, rn W m p o ~ f lnr d verhhdam, tmddas Adv& W * zu &in ht, um sichereikBsdass der Sender
-
lick aq£Abwärtsk0nipatib;lität treiben <
Die vielleicht arri schwierigsten umsetzbaren Andemgen siml die Anpassuqpn von Anwend~~.gpfqpum.nen ~fardertenDienste-Umfang. Unvermeidbar einige Anmalgewisse Abweichungs von den Standatddiwaten verEin+ A a a r e ~ d q mb%nMgm%B. vorwiegend RPC, möchten aber gelein der Lage sein, einen Strom von AaSragenaeW~enzu senden, ohne auf
verschiedener Anwendnngen zu etfüllen, ist schwierig. M6gklierder beispielhaft von den von uns für die ~ o p r o t o k o U e nrep~iimtiertwird Oder vergleichbaren Mechanismus geben, durch den es dem Anwendungszu programmieren, zu konfiguerer möglich ist, das ~ranspokprotoko~ anderweitig zu verändern. U,
5.6 Weiterführende Literatur
-J; /
I
Zweifellos ist TCP ein komplexes ProtokolI und weist F(tinheftem a d , die in Kapitel nicht durchleuchtetwurden. Deshalb beinhaltet die empfohlene Lhrat311.fth dieses Kapitel die TCP-Originatspezifikation.Unsere Motivation kür die Einb dieser Spezifikation ist nicht so scsehi; die fehlenden E i d e i t e n auszugleicheri, r&dern & h e b zu zeigen, wie eine wirkliche ProtukoUspezifikationaussieht. Die Itw& dm weiteren krbeiten in der empfohlenen Leseliste konzentrieren sich auf RPC. Die Arbeit von Birrell und Nelson ist der bdamencale Pkri~ragzum Thema, w ä h d die Arbeit von O'Mdey und Petermn die Deignphhophie #eine Funktion p m Protokollu atwführlicber beschreibt. . X
USC-ISI, Transmission Control Protocol, Reqscest for Commeuts, 793, ~ e ~ t e m : ber 1981. A. und Nelson, 8:Emplementing remore procedure calls, ACM Truw' 44 am'ons on Compater Systems, 2(1), 39-59, Februar 1984.
I Birrell,
5. und Peterson, L.: A Dynamic Network Architecture, ACM T actioms on Computer Sysba, 10(2), 110-143, Mai 1992.
I Q'Malley,
P
~
Abgesehen von 'der P r o t o k o l l s ~ a t i o nbieten [Ste94b] und [SW95] die & aendste Beschreibung von TCB, einschlidblich seiner ImpIemeatiemng in Unk.Del dritte. Band der TCPirIP-Buchreihe von Corner und Stemm beschreibt, wie Clkd Server-Anwendungenoberhalb von TCP und UDP mit Hilfe des P&-Socket-kte* fare [CSOO], mit dun Whdaws-Sscka-arUgrfbice[iCS9~ bzw. TLI-hterfac$.v+ .. 3 U& System V [CS941 entwickelt werden. Mehrere Arbeiten biewemn die Lebamg verschiebcner Trmpanprotokoik m b ausführlich. Beispielsweise misst der von Cl;wk n.a. [CJRS89] die ~erarbd ~ s - U v e & e a d s 4 r oTGP, n eine Arbeit von M&rger u,a. [WBO9f;l &r&t p51sB Grnzen der Prot&dvemrbei~gs-Qv~hm&ntid Thekkath und bWy -1 -wie Schrecler und Burrows [SB891 priifea die RPCLeisenng irn Detail. Die tmprhglicke I3ie~edinungdes TCP-Timeoug wurde in der TCP-Spdfikatim (siehe oben) beschrieben, Der KarnPartridge-Ngorithmuswurde in [KP91] uud b Jacohson/Kaieis-Algorithmusin &~288]vorgehtagen. Die TCF'-Erweiteruqp@ werden von Jambson u.a. P 9 2 1 'definiert, wahaeard O'Malley und M(PZW% [8P91] argumentieren, dass diese Ant der LFGP-Emererwi& nicht der ri&w Ansatz zur b u n g des P r o b h s sei. Schiießkh gibt es m e h r e verteilte Betriebssysteme, für die ein eigene9 W C Pratokoll d e f h k t wurde. Zu den bemerkenswerten Beispielen ziiiden das v d ~ C h i t o n uacl Zwamcpl [CZBS] beschriekne V-System, das von 0ustwh.out U.& [OCD+&.8]beschriebene Spite wid das won Mdender [Md901 bebdie& Amxba. Die eeuasee von. Srinivasan fSri95a3 definierte SunRPC-Version ist & ~ProposedStandards für das Internet.
5.7 obmgm
1
atagramm von Ho& A, Port P, an Wost B, Port Q gesackt, bei Prozess an Port Q abgehört, muss B eine ICMP-Nachricht mit Unreachablea (Po&nicht emichbarj an k nkiickschicken. nicht an Pott P von spiel.auf, wann eine Anwendung den Empfang solcher ICTNP-Nachrichten erwartet wiirde. eine '~w&dung unm dem W e h ~ y s t e mIhrer Waid Nachrichten zu empfangen.
keine gute Idee, solche Nachrichten direkt an
'-
I
b, Wagen Sie eine Andening des Protokolls vor, durch die diese Situation weniger wahrscheinlich wird.
Sie ein einfaches, auf UDP basiertes Protokoll für das Retrieval von
8, Das Duplizieren des ersten Pakets sollte a i c t die *Verbindung«duplizieren.
über lassen, ob der Transfer erfolgreich was
2. Ein von d.iher früherep Verbindmg spät angekommenes Paket sollte nicht als Teil eher laufenden Verbiiduhg interpretiert werden können. ;Indiesem Kapitel werden drei Sequenzen von Zustandsübergihgen wahtend des
Abba- einer TCP-Verbindung erldärc. b gibt eine vierte mögliche Sequenz, die einen -ztisätziichen (in Abb. 5.7 ni&t dargestellten) Pfeil von PIN-WAIT-1 zu U L M - W A I T mir der Ba&ihmg WN + ACWACU überquert. ErMären Sie die Umstände, die zu dieser vierten Abbilusequenz luhren.
Wanun ist der T i e o u t mit einer Lebenszeit vo einer TCP-Verbindung beim übergang von nötig?
wickeln, das ein Siiding-Wmdow (wie TCP) benutzt. Dieses Protokoll s ein 10Q-Mbit/s-Netzwerk laufen. Die RTT des Netzwerks beträgt 100 die e e . S e g m e n & W u e r 60 Sekunden.
a. Wie viele Bit würden Sie in die Felder AdvertisedWindow und Sequendiuni res Protokoll-Readers einbaiehen? b. Wie *den
Sie die obigen Zahlen ermittein und welche Werte wären
hen?
Angenommen, TCP läuft über eine 1-Gbit/s-Leitung. a. Wie lange würde es dauern, bis die TCP-Seque~zamernkomplett übe fen, wenn TCP ständig die voUe Bandbreite nutzen kännte?
%. hgenrtamen, ein hmge&&m 32-Bit-Feld fäs den- Zeimempel wird W&O d der von h e n o b -teilten Wmlaufteit 1.000 Mal tnkLcmmtiert. , +,Wielange würde es dabis der Zeitstempel~k1äuft?
ommen, TCP läuft uber eine STS-7f3J-Lei~ngmit: m b i t l s .
W"reIange +de es dauern, bis die TCP-Sequenznk o m p k überlaukm, wenn TCP ständig die volle Bandbreite nutzen könnte?
.
L &getp~mme~y,ein hinzugefügt& 3&Bit-FeM für den Zeitstempel wird wäh5 m d der von Ihnen Gkmi i e s ~ e s d~mlaufieit t~ 1.000 Mal idreff~ntiert. A über den gleichen Port zwei SYN-Pakeu: vom entfernten Host B
eine ~ 6 1 4 neue Verbindungsdmge handeln, faiis B a neu gestartet wurde,
V
Duplikat- Inw. neuen P&-
tüm ist
und der Möglichkeit, dass kein Prozess auf dem
en, zwischen Sackss A md B besteht eine ungaiutzte TCP-Verbindritte Partei hat sie beiauwht und k k t die Cequenmuaimeran bei-
t.
-Angenommen, die driree Partei 8eadet jedem Ende Mi salches Wlschtes PM-X$yte*Datenpalrjet,das vermeindich jeweiis vom anderen Ende kommt. Was passiert j e ? Was würde passieren, wenn A später 200 Daten-Bytes an
fortzufahren. Diagnoseprogramme sind allgemein vufÜgbaL; die z.B. von jeder dung zu einem bestimmten diost, Porn die ersten 109 Byte ob es Daten enthäi~die zu den ersten 100 Byte einer Verbinduerg mit'. HO=, Port POnT gehören. Gehen Sie davon aus, d a s der P-Headw P. mern (Initial Sequence Numbers, ISNs) zu erhalten, müssen Sie jedes Paket fea, bei dem das SYN-Bit gesetzt ist. Ignorieren Sie die Tatsache, dass Seq nummern letztendlich wiederverwendet werden.
Iinplementiernngea vere-ten dies irgendwann einmal auf die rung um 250.000 (bzw. 256.000) einmal pro Sekunde.
gie von Teil a ohne die vereinfachte TCP-Implementialle 4 PS) zu implementieren?
(N
Der in den meisten TCP-Impiementierungen eingebaute Nagle-% erfordert vom S e n k die Datenmenge eines partiellen Segments (a
531
von WfSH) mhgjc au~Wtm,bis entweder ein V& aussmheade ACK i & ~ l l ~ ~ t ,
0kng.ir
I
-9
Sqpent auf-
d a d e n kt oder das j
die & h $ m k nabcdefghi wikden'je einZeh pro Sekunde iiber dung mit einer RT?' von 4,l Sekm&gesendet. =chnen der aufzeigt, wann jedes Paket gesendet wird und was es obiges über eine Tehet-Verbin-
der ~uspOsit20nwürden über dic Verbindung gesendeE werden, Wie würde ein Benutzer die MausbeweEX& und ohne wenn pro R n mehrere Positionsände-
, ein Ciient C verbinde $ich über TCP wiederholt mit einem ort von Server S, uad das MeBen würde jedes W1von C eingegdiagen C hier pro Sekunde, bevor alle seine '.vq&gbaren Ports im Zustand TIME-WAlT'shd? Gehen Sie davon aus, dass Bereich von 1024 bis 5119 hegen und
ir. Wie viele Tm-VerbindI''
%-W kkiq raTcP-hptementbmmg~eriilubea mderweise erneute OEfnen eines im Zmtmd ~ - W A I T taefin&hen !hdcets, bevor TIME-WAlT abläuft, f a b die höchste von der alten Inkarnation der Verbindung b e n u t z t e S e q u e a z a ~ kleiner r & die von det w e n Uarnation I : b u t q t e BJ ist. Dies löst das Problem c8er Entgegenn%hmealtes Daten als k :! w e . T I M E - W . edWt a k auch den Zweck, zu spät anltomnea& k t e SI m s zu bebdein. W as müssteeine solche Imp1emm&nin$ nan, um dies zu g der TC=P-Aaforbeheben, gleichzeitig aber.die stPieae ~ h m i m n n n mit dening einzddkn, dass ein irgendwann vor oder während des TIME-WAIT wflrum TIMELWAIT etwa?probiematischer ist, wenn der Server var dem C&emeinleitet. Beschreiben Sie eine Situation, in der dies
d u r w t u i c h e Abweiss die RoundtripZeiten
einzelner Pakete einer statistischen Nordverteilufig folgen, bei der 4 schnittlich Abweichungen ~cStandardabweichungenentsprechen. Weiche scheinlichkeit besteht 2.33. bei Verwendung von Statistik-Tabellen, dass ein langer als TimeOut braucht, bis es ankommt? Angenommen, eine TCP-Verbindung mit Fenstergrö%e 1 verliert jedes Paket. Diejenigen, die ankommen, haben R'IT = 1Sekunde. Was passiert +ht mit TimeOut?Führen Sie die Aufgabe für zwei Fälle durch: a. Nachdem ein Paket letztendlich empfangen wir$, fahren wir fort, indem EstimatedRTi auf seinen Wert vor dem Tmcout und mit doppeltem Ti initialisieren.
b. Nachdem ein Paket letztendlich empfangen wird, fahren wir fort, indemt TimeOut auf den letzten exponentiellen Backoff-Wert initialisieren, der iRIiE. Timeout-Intewail benutzt wurde. Die folgenden drei Obungen umfassen einfache Berechnungen'mittels kalkulation. TCP davon aus, dass EstimatedRTTzu einem gewissen Zeitpunkt 4,O alle danach gemessenen RTTs 1,Qsind. Wie lange dauert es, bis der Antwort auf diese Wahl? Verwenden Sie 6 = 118.
wenden Sie 6 = 118.
Angenommen, TCP misst RlTs von 1,O Sekunde mit einer mittieren A
men bei jedem Algorithmus vor? Welcher ist der größte berechnete Verwenden Sie 6 = 118.
Wem ein TC3-%m& ala einmal psenckt wird, neben wir SampMTT als die Zeit zwischen d a 0-übern-g und dem ACK, wie in
1Wenn ein Ta-Segment mehr ds einmal gesendet wird, nehmen w k SampleRTT d s die Zeit zwischen der letzten und dem ACk, wie in Abb. S.lO(b).
~~
I
'
~ - dient W unter ~ anderem der Behandlung des Falls, wem ein ~ a t e n ~ a h t von einer etsten Inaaraation einer Verbindung sehr spät ankommt und als :h t a fiir die zweite Inkarnation angenommen wird. a. Erklären Sie, wanun die betroffenen Hosts mehrere Pakete in Folge nach dem Senden des uerzöp;erten Pakets, jedoch vor dessen Zustelluqg austauschen müssten, damit dies (in Abwesenheit von TIMETIMEWA,IT) eintritt,
&, kkh&n Sie ein Netzwerkszenario vos das eine solche .späte ZusteUung in
''W a c h t ziehen kann.
Sie wie TCP-heitenma; aos; durch die eine Sei@ einer Verbindung
e&m dritten Host ührgcbe&h, Das heiat, wem A mit B verbunW uorj A =seine Verbindung aa C wbt,wäre d
i e S e n d G ueid nicht A
TCP-ZustandsÜbergangscTia~mnötig sind, und eventuell neue Paktttypen, wdciien Zustand sollte A unmiatelk nach der Abgabe der Verbinvon TCP umerstützte gleicBzeiti6e Offnen wird sem i benutzt.
b. K6nnte TCP auf sinnvdc Art und Weise das gleichzeitige SchiieBeai lässig machen?
Seite 87 nachlesen.)
wird, die für die Anwendungsschichten sichtbar ist. Sockets auf der
b. Welche Form nimmt TfMEEWAIT nun an? Wle wiirde man Programmier-Interface sehen? Gehen Sie davon aus, dass ein jetzt beliebig oft erneut jpit einem bestimmten Server-Port verbunden kann. so#emdie nötigen Ressourcen vorhanden sind. C.
Sehq Sie sich das rshlrlogin-Protokoii an. Auf welche Weise würde W Obiges verletzt werden?
a. Beschreiben Sie, wie ein Client einen geeigneten Server unendlich im F I N ~ W ~ verweilen -2 lassen kann. Welches Merkmal des Protok Server-Seite ist hier für dieses Szenario erforderiich?
net-Clien~mit k m Sie eine Verbindung zu einem belieb'ien Port können. Bcnuaen Sie die Utiiity netstat, um zu d e n , ob si& der Zusrand FIN-WN-2 befindet. Der Request for Commsnts 1122 enthalt folgende Aussage (überTCF): tieren, sodass eine Anwendung, die CL0 sen von Daten über die Verbindung fort einen CLOSE-B&& aus, w&end im
TCP mit einem RST den Verlust von Daten anzeigen.
.
zu.CHAN kein BlDFeld dVie sihiitzt sich vor d e m ' ~ ~ e u s t a r r - ~ & d iauPgruid o, dessen eilb in CHAN &Gwurde?W~swn.wendet CHAN diese Strategie nicht an? .
'r ~ p - ~ & d hat e r im'&satz
N-ten statt des & c h s Blodcs ~ in Folge. Auf diese Weise bedeutet
C.
-ammcn,
die Semantik des Systernaufrufs d i r ist jetzt dergestait, dass dis bctf&nde Vedchnis bei Vorhandensein entfernt wird und andemfalls nichts geschieht. Wie k 6 ~ t C n,Sie e h b g r a m m für das Uwhm von Verzeichnissen schreibe& das zwikhen diesen beiden Fallen unterscheidet?
gesteiit werden.
sind hier hilfreich.
b. Angenommen, die Antwort des Servers M e u t e lediglich, dass
einer einzigen logischen AnfragelAntwort. Das BLAST- und das CHAN-Protokoll haben ein MIDFeld. a. Unter w e l c h Umstaaden können diese bei mehreren in Reihe
Felder eine Zufallszahl sein? Angenommen, BLAST wird über eine Leitung mit einer Ver1 pro Paket benutzt. Verluste sind-unabhängigeEreignisse. Die a n k a d Fragmenten wird aber nicht veagaudi.
~~~
aus gechs F-ten.
a. Welche Wahrscheinlichkeit besteht grob, dass LAST-F@AG abläuft? Sie davon ,aus,dass dieslnur passiert, t,wenn das k e F r a p m t
b. 'Welche W a M a & i t b h dass~das' I& Fragment d o dere abcr nicht, wodurch eine SRR ausgeIirst wird2
Betrachten Sie eirlen Clieut und Serveq die einen RPC-Mechanismus der CHAN beinhaltet. -
* L
Ekwheiben Sie ein Samuicq .beinen her-Neud o m t , bei dem eine --PEAnfrage zweimal vom CUat gesendet und zweimal vom Server ausgewird, jedoch mit nur einem ACK.
- 1. nehmen 9% dags ein SunRPC-Ciient eine Anfrage an einen Searer sendet. Wter welchen Umständen kann der Client sicher sein, dass seine Anfrage genau einmal ausgeführt wurde? , Angenommen, wir möchten SunRPC um die at-most-once-Semantik erweitern. Welche Anderungen müssten durchgeführt werden? Erklären Sie, warum das Hinzufügen eines oder mehrerer Felder in die vorhandenen Header nicht ausreichen würde.
benutzt. Eine TCP-Verbindung soll einen Strom aus Anfragen und Ant-
a. Wie viele Etherner-Pakete sind pro Nachricht erforderlich, faiis die EthernetPakete 1.500 Daten-Bytes aufnehmen können und IP-Header ohne Optionen sowie BLAST-Header benutzt werden? b;. Berechnen Sie .die Verzögerung durch die Übertragung einer 32K-Nachricht
über das Ethernet (ii) in Stücke wie in a. aufgeteilt, mit einer Brücke
J
446 .
- -I.
1
5
Ende-zu-EndeProtokolle
Ignorieren Sie Ausbreitungsverzögerungen, Header, Kollisionen G d zwischen einzelnen Paketen.
i
-
51. Schreiben Sie ein Testprogramm, welches das Socket-Interface benutzt, um Nachrichten zwischen zwei Unix-Workstations auszutauschen, die über ein LAN (z.B. Ethernet, ATM oder FDDI) verbunden sind. Benutzen Sie dieses TestProgramm, um folgende Experimente durchzuführen: a. Messen Sie die Roundtrip-Latenz von TCP und UDP für unterschiedliche Nachrichtengrößen (z.B. 1Byte, 100 Byte, 200 Byte, ..., 1.000 Byte). b. Messen Sie den Durchsatz von TCP und UDP 32-KB-Nachrichten. Zeichnen Sie den gemess der Nachrichtengröge auf. Messen Sie den Durchsatz von TCP dadurch, dass Sie Daten im Umfan 1MB von einem Host zu einem anderen senden. Führen Sie dies in Schleife durch, die eine Nachricht einer bestimmten Gröi3e sendet, 2.B. Iterationen einer Schleife, die 1-KB-Nachrichten sendet. Wiederholen S Experiment mit unterschiedlichen Nachrichte nisse auf.
C.
:'T
. : .'. . .*,.
. q
,
. ._... . _:
.
.
.
7
,I
,
:.
. i
. -
.. ..
b
I
L,,
-,.
,
. .. -
:
%
' ..
.-.
-
'
. '1
i.
I
<.:.
.>I
F
.
.
:I
'
'
4
6 Überlastkontrolle und Ressourcenzuteilung
Bis hierher haben wir genügend Schichten der Netzprotokolihieradie betrachtet, um zu verstehen, wie Daten verschiedener Prozesse über heterogene Netzwerke iibemggea worden k6nqe1.1. Wir wenden uns nun eiqem Problem zu,das sich über den gesamten Protokoli-Stack erstreckt: die dkktiye und faire Znteilungvon Ressourcen unter mehreren konkurrierenden Benutzern. Die gemeinsam zu nutzenden ~kourcetlbeinhalten die Bandbreite der h i w g e n und die Puffer in den Routen d e r Switchen* wo Pakete bis nir Obertragung in einer Warteschlaage abgestellt werden. Pakete bewerben The band that hath sich an einem Rowter für die Bequrnuig einer Leituns wobei jedes mitbewerbende Paket in made you fair hath eine Wartesehlange gesteiit wird und dort auf made you good. seine Obertragung wartet. Wenn sich zu vieie Pakete für die gieiche Leibewerben, lauft' - William Shakespeare & WW& über d Pakete müssen verworfen werden. Kommt dies 1Pa& vor; gilt das Netzwerk als l b e r l a J ~ Die . meisten um eine Netzwerke bieten einen Oberlastkon~tollmechanism~~, solch0 Situation zu handhaben. + Oberlashntro1Ie und Rew3ourcenzuteilungsind die beiden Seiten ein und b l & n Sacbe. Wenn das Neozwerk einealrtive Roile bei der Zuteilung von Ressourcen übernimmt, 2.B. das Schtduling, welcher VC ehe b t h m t e physikalische Leinutg innerhalb eines besthmm Zeitram h m e n darf, könnte Ifbtrlast vermieden werden, sodass überks&ontrolle unnötig wird. Die genaue Zuteilung von Netzwerkemurcen ist schwierig, ddie in Frage kommenden Ressourcen durch das gesamte Netzwerk verteilt s a das Scheduling muss mehrere Leitungen, mit denen mehrere Routet verbunden sind, berücksichtigen. Andererseits kann man Quellen W e r so viele Daten senden lassen, wie sie mwten, und dann eine eventuell eintretendeüberlast beheben. Das ist der ehhchere 8
I
kann, weil dm Netzwerk moglicherweise viele Pakete verwirft, bis die Uberlast kontrolliert werden h. Aufkrdan ist genau das der'Zeitpunkt, wenn das jSJetzwerk überlastet isg, d'h. die Rassbwcen im V e a l t nis zur Nachfrage also zu k a p p geworden sindIIan dem die Notwendigkeit einer Ressourcenzuteiiung unter igohrierenden &utzern am stärksten empfunden wird. Z w i k den beiden Extremen gibt es Lösungen, bei denen ungenaue ZutejlungsentScheidungen getroffen werden. Uberhst kann aber i b e r noch eintreten, sodass einige Mechanismen zu deren 3ehebung erforderliah sind. Ob m9n eine solche Mischlösung Oberlas&ontrolle oder Ressourcenz~teilungnennt, spielt im Grunde keine Rolle. In gewissem Sinn ist sie beides, Oberhstkontrolle und Ressouocenzuteilung betreffen sowoi$ Hose als auch Neaelemente wie .Routeii In Netzeiemnten könr nen verschiedene Queuing-Disziplinen benutzt werden, um die Reihenfolge zu steuern, in der Pakete übertrapn w d verworfen werden. Die Que-Disziplin kann auch Verkehr isolieren, was bedeutet, dass die Pakete eines Benutzers daran gehindert werden, sich nachteilig auf die e*s anderen auszuwirken. Auf Seiten der Hosts bestimmt der Oberlastkonuollmechanismu~,wie -schnell Quellen Pakete senden dürfen. Dies geschieht in dem Bemühen, überlast vor vorpherein zu vermeiden bzw. zu mildern, falis sie dennoch ehtritt. Dieses Kapitel iiqghnt mit einer Einfütirung in Oberlastkontrolle und Resourcenzu~eilung.AnscWBend werden verschied e Queuing.-Disziplinen ~ diskutiert, die in den Routern des Neuwerks implementiert werden k ~ m n Danach . wird der von TCP auf den Hosts bereitgeste40 ÜberlastkontroU-Algorithmus beschrieben. h vierten Abschnitt werden verschiedene Techniken für Router und Hose erläuterg die auf die Vermeidung von &erlast abzielen. Schließlich wird der breitgefächerte Bereich der Dienstgiite (Quality of Service, QoS) behandeit. Wir betrachten in diesem ~ u s a m a i e n h hdie ~ Anforderungen von Anwendungen hinsichtlich unterscbiedticher Ebenen der Ressourcenzuteiiung im Netzwerk und beschreiben mehrere Möglichkeiten, wie sie diese Ressourcen anfotdern können und wie das Netzwerk diese Anforderungen erfüllen kann, Ansatz, der allerdihgs zu Unterbrechwgm
4!W
' 3
<+,W
$.
I: .: , L
9
k.:
-.
.
6.1
1
6 Obei4astkontroHeundRessourcenzuteiiung
Ressourcenzuteilung
Ressourcemuteilung und Oberlastkontrolle sind komplexe Themen, die seit der Entwicklung des ersten Netzwerks Gegenstand umfangreicher Untersuchungen sind Diese Fragen sind vor allem deswegen komplex, weil sie nicht auf eine Ebene ein* Protokollhierarchie begrenzt sind. Die Zuteilung von Ressourcen wird teilweise in den Routern oder Switchen innerhalb des Netzwerks und teilweise in dem auf d a Hosts laufenderi Transportprotokoll implementiert. Endsysteme benutzen Signalisi rungsprorokolle, um ihren Ressourcenbedarf an Netzknoten zu übermitteln, di dann wiederum mit Informationen über die Verfügbarkeit von Ressourcen antworten. Eines der Hauptziele dieses Kapitels ist die Definition eines Rahmenwerks, in. dem diese Mechanismen verstanden werden können, und die Beschreibung der relevanten Details über eine repräsentative Auswahl von Mechanismen. Bevor wir fortfahren, müssen wir unsere Terminologie erklären. »Ressourcenzuteilung«ist der Prozess gemeint, durch den Netzelemente versuche die konkurrierenden Nachfragen von Anwendungen für Netzressourcen zu er dies sind vorrangig die hitungsbandbreite und der Pufferplatz in Routern Switchen. Selbstverständlich ist es oft nicht möglich, alle Nachfragen zu erfü Das bedeutet, dass einige Benutzer bzw. Anwendungen weniger Netzressou erhalten, als sie wünschen. Ein Teil des Problems der Ressourcenzuteilung ist Entscheidung, wann man wem »Nein« sagt. Wir benutzen den Begriff »Oberlastlcontrolle«für die Beschreibung der Be hungen von Netzknoten, Oberlastbedingungen zu verhindern oder zu bewäl Da Überlast im Allgemeinen für aile schlecht ist, muss sie vorrangig gemildert von vornherein verhindert werden. Dies lässt sich natürlich einfach dadurch err chen, dass irian einige wenige Hosts davon überzeugt, mit dem Senden aufzuhör sodass sichpe Lage für alle übrigen verbessert. Oblicher ist bei Mechanismen für Oberlastkontrolle allerdings, eine gewisse Fairness walren zu lassen. Das heißt, rn versucht, die *die schmerzlichen Einschnitte« auf alle Benutzer gleichmäßig teilen, statt einige wenige zu stark leiden zu lassen. Wir sehen also, dass viele nismen für die Oberlastkontrolle das eine oder andere Konzept vpn Ressourcenz teilung beinhalten. Aderdem ist es wichtig, den Uhterschied zwischen ~ate&lusskontrolle Oberlastkontrolle zu verstehen. Wie wir in Abschnitt 2.5 gesehen haben, hält flusskontrolle einen h e l l e n Sender vom überschwemmen eines langsamen fängers ab. Oberlastkontrolledient demgegenüber dazu, eine Reihe von Sende Grund knapper Ressourcen an irgendeinem Punkr davon abzuhalten, zu viele in h s Netzwerk einzuspeisen. Diese beiden Konzepte werden oft verwechselt. werden noch sehen, dass sie auch einige gemeinsame Mechanismen verwenden. L
-
-
--
Ir
J
ai
*,
v
n
p
I ai
klElNetqmrkmdd mit der D e t i o n drei besonders wichtiger M e r k d e der Netz&a ~ in ~ ~den vorntds handelt es sich dabei iim eine ~ u s a a u n e n f ' der ,dit für die h s ~ o y c e n z ~ t e relevant hg
.
&mdung im Internet entwickelt wurden und daher ursprüngkh für Rouw und b t Switche definiert wurden, verwenden wir d den aRmmr. L f i Q b ~ U nist bei einem Nazwerk oder einem iutemetwtxk iaiGrunde &&.
F*Q in der Mtte eines Netzwexics k6mm die Pakete &r in eine Lei--
&&emeise
auf
mit qiedriger Cbchyindigkeit. Dies steht im GeQ'ensaazu
ob sie ein P* sendet oder WKhaben die Aigonthmen, die für die rm 3andbceice m Netzwerken mit gerneZugriff benutzt werden, ben (Kapitel.2). Diese Zugdfssteuenrngsale;orithmensind in wwisAigoritbmen für die &erlas&o~tcollein einem vermittelten Netz-
Sfaa dies ZU verdeutIicfren, m#w% wit nur das dnfaclte, in Abb. 6.1 datgesteiite betraciyta Bei diesem ~ e i i p i emuss ~ der gesamte Vetkehr durch den B a ,& das Ziel ani dchm. Obwohi eS Wreinbeisviel
-.- .. mb.
452
1 6 ~berlastkontrolle und Ressourceruuteiluna
Router
10
0 0
Tl-Leitung (1,%Mbiis)
berlast in einem paketvermitteltenNetzwerk
Abh'j-'?
Verbindungslose DatenflQsse Bei unserer Diskussion nehmen wir meistens an, dass das Netzwerk im Wesentlichen verbindungslos ist und irgendein verbindungsorientierter Dienst in genau dem Transportprotokoll implementiert ist, das auf den Hosts läuft. (Wir erklären die Qualifizierung von »irn Wesentlichenu im nächsten Absatz.) Dies ist genau das Modell des Intemet, bei dem IP einen verbindungslosen Datagramm-Übertragungsdienst bereitstellt und TCP eine Abstraktion einer Ende-zu-Ende-Verbindung implementiert. Diese Annahme schliegt aber frühe Netzwerke wie X.25 aus, bei denen die Abstraktion einer virtuellen Leitung über eine Reihe von Routern aufrechterhalten wird (siehe Abschnitt 3.1.2). Bei solchen Netzwerken überquert eine Verbindungsaufbaunachricht das Netzwerk, wenn eine Verbindung aufgebaut wird. Diese Aufbaunachricht reserviert eine Reihe von Puffern für die Verbindung in jedem Router und stellt damit eine gewisse Form der Überlastkontrolle bereit. Das hegt, eine Verbindung wird nur aufgebaut, falls dafür ausreichend Puffer in jedem Router zugeteilt werden können. Der größte Nachteil dieser Methode ist, dass sie zu einer möglichen Unterauslastung von Ressourcen führt. Die für eine bestimmte Verbindung reservierten Puffer sind nicht für die Verwendung durch anderen Verkehr verfügbar, auch wenn sie momentan von der innehabenden Verbindung nicht benutzt werden. Das Hauptaugenmerk ist in diesem Kapitel auf Methoden für die Zuteilung von Ressourcen gerichtet, die auf ein Intemetwork anwendbar sind. Wir konzentrieren uns also hauptsächlich auf verbindungslose Netzwerke. Die einzige Ausnahme bildet die Diskussion der ATM-Dienstgütemechanismen in Abschnitt 6.5.4, bei denen es sich um eine interessante Alternative zum Intemet-Modell handelt. Wir müssen den Begriff »verbindungslosu modifizieren, weil unsere Klassifikation von Netzwerken in entweder verbindungslos oder verbindungsorientiert ein wenig zu restriktiv ist; dazwischen gibt es eine Grauzone. Insbesondere ist die Implikation, dass bei einem verbindungslosen Netzwerk alle Datagramme völlig unabhängig sind, übertrieben. Die Datagramme werden sicherlich unabhängig vermittelt, normalerweise fliegt aber ein Datagramm-Strom zwischen. zwei Hosts durch bestimmte Router. Dieses Konzept eines Datenfrusses - eine Folge von Paketen, die zwischen einem Quell- und Ziel-Host ausgetauscht werden und der gleichen Route durch das Netzwerk folgen - ist eine wichtige Abstraktion in Zusammenhang mit
der Ressourcenzuteilung, und es ist dkjenige., die in diesem Kapitel benutzt werden Sou.
Eine der Stärken des Dateduss-Konzeptes ist es, dass Datenfliisse mit verschiedenen Granularitäten definiert werden können. Z.B. kann ein D a t d u s s Host-zuHbst (d.h. mit derselben QuelldEmpfängmHost-Adresse)oder Prozess-zu-Prozess mttfinden (d.h. mit d e ~ l ~ eQueUdEmpfänger lb Host/Port-Paaren). h letzteren Faii ist ein Datenfluss im Wesentlichen das gleiche wie ein Kanal, dem bisher durchgängig in diesem Buch benutzten Begriff. Dass wir nun einen neuen Begriff einh n , ist darin begriiuidet, dass ein Datenfluss für die Router innerhalb des Netzwerks sichtbar ist, während ein Kanal eine Ende-zu-Ende-Abstraktion ist. Abb. 6.2 ~ i gmehrere t Datenflüsse, die verschiedene Router durchlaufen. Abb.6.Z Mehrere Datenflüsse durchlaufen einige Router
Da m e b e ztasmmenbängbde Pakete durch jeden Router fließen, ist es manchmal simd, gewisse Z u s t d i n m o n e n für jeden Datenfiuss zu speichern, d,h. Informationen, die für Entscheidungen hinsiehdich der Zuteilung von Ressourcen für die zu dem Datenfiuss gehörenden Pakete benutzt werden können. Diesen Zustand nennt man auch Soft-S~ßtt~, der sich vom »Hard-State*fiauptsächiich darin unterscheidet, dass er nicht immer ausdrücklich durch Signalisierung erzeugt und entfernt werden muss. Der Soft-State bildet einen Kompromiss zwischen einem rein verbindungslosen Netzwerk, das R h Zustand (State) in den Routern Mt, und einem rein verbindungsorientiertm Netzwerk,das einen Hard-State in den Routern hält.' Im allgemeinen hängt das korrekte Arbeiten des Netzwerks nicht von dem vorhandenen Soft-State ab (jedesPaket wird ungeachtet dieses Zustands korrekt weitergeleitet). Gehört ein Paket aber zu einem Datenfiuss, für den der Router momentan einen Soft-State hält, kann der Router das Paket besser weiterleiten. Man beachte, dass ein Datenfiuso enmeder implizit definiert oder explizit aufgebaut werden kann. Im ernten Fall hält jeder Router Ausschau nach Paketen, die zilfällig zwischen dem @eichenQueiielZiel-Paar fiefkn. Er bewerksteiiigt dies durch inspizieren der Adressen im Headw und .Wandelt Pakete, die zum gleichen Datenfluss gehören, hinsichtlich,der Uberlastkontrolle ais zusammengehörig. Im zweiten
AuBau eines Datedusees keine E~&-ZUeinfach für den Zweck der Zuteilung von Resmutccn, Wir.werdenin diesem noch Beispiele von impliwten und expliziten DPdüssen sehen.
Dianstnoddl
Netzwerk bestimmte Garantim für ihre Datenflüsse ni verlangen. für einen VideoStrom benötigten Bandbreite, ist Thema von A W t t 6. ehes Dienstmodell stelit mehrere Dienstgiiten (QoS) berek. WKwerden n dass es ein Spektrum von Möglichkeiten gibt,. das vom reinen Eest-Efb mode11 zu quantitativen QoS-Garantien für cbzehe Datmflüsse reicht. gräßten H e r a u s f o r d ~ ist n die Definition eines Diensmiadells, das die rungen direicher Anlvtndqen erfüllt und si& sogar fiir Anwend die erst künftig entwickelt werden.
-
6.1.2 ~ia$onomie
RwWr- oder Hoa-zentrisch
sowohl die Rauer iEn Irmern als auch -die Zuteilung von Resr#Nccn teilnehmen, ist di dtr Last übernimmt. Bei einem t o ~ u i s E h e Mi a übernimmt jeder Ro11te1 die
Netzbdingungen (2.3.wie vide ihrer Pakete u f o l p k h gm) uad passen itu Verhalten e m s p h d an. D i e trei
aus. Eh Netzwb~k,das kspieisweise die primäre Last fiir die von Oberlast den Rouew auferlegt,utffarta d e d von dea Hosts, an W -& haken, die wui den Routere gewndet WWICII, Route,.in Nem~~erken mit Ende-zu-~&rtastkon3to~enach wie auch auf noch sr, e i d s h e W e k entcheidaq welche Were verwarfen
tiimen fiir die Zuteilung von Ressourcen zu Massseren, 2kSpuda ehes Datvdmufbaus. jeder Router teilt dann austci-
Z d u n g von Resxwcen. Das liegt daran, das jder m e n m g angegeben bats suld die dass sie bei einer O b e r b des Rwtiers werden. 91nderemirs kann ein auf Feedback basi& System
in den meism Fa,llen zumindesr in bctdigt. Beim
sie ühethsset werden.
*~~ ..
impliziten Feedback
Femter anbietet. Dieses Fenster entspricht dem beim Empfänger p h und begrenzt die Patenmenge, die der Seader üBertragen
Wesentlichen in X.25, Es ist auch möglich, das Verhalten eines Senders mi&
Ratezu steum, d.&:
DatdagsEe ehgegangenen Verpfliehningen uaterstüm kann.
-
Tamsamie der R ~ u r c o ~ U uZusainmenfa~sung a ~ halb dreier Bereiche, wie wir das soeben getan haben, kann zu der &es, dass es acht eindeutige Strategien gibt..Währcnd diese ac Strategien vwkrschen. Diese k i d Strategien ~ sind mit &m zu Chnde Diemtmodeii des Netzwerks verknüpft..
2. Wir wedlen Ui AbsEbnift 6.5 n d sehen, dass R %die von Hosts msemkt wer& k&mes. .
v vom Netm
rm'.sfkwemw-rim I
'
$kiletzte Frage hat damit
~ aob, ein M -
f(ir & Zuteilw von R
w
lasst auf mindestens zwei grobe W s t ä b e schh$ea, mit dmen sich Methoden )$&last=
bewerten lassen. Diese bei&n hßssäbe werden in den beiden Unt~bschaistenhschrieben.
wenig verzögen&. ~ i den f ersten Biick mag man glaub&, dass die, Erhöhung
R&asrung aller Leitungen auf 100% steigt. Wir würden damit vermeiden, dass eine r in ung der Pakemmahl im Netzwerk auch die ~ ä n ~ e - d eWarteschlangen Router erhöht. Längere Warteschlangen bedeuten wiederum, dass Pakete länIm Netzwerk verzögert werden. diesen Zusammenhang zu bedqiben,' haben einige Ncpwerkdaigaer das mischen Durchsatz und VenögnVng & Meeik für die B e w m g der Ej-t einer Methode zur Ressourcenzuteilung vorgeschlagen. Dieses Verhältwird auch als lkistmgdes ~ e t z w e r k bezeichnet: s~ Leistung = DurerisaWerzögwwng
,beachte, dass Leistung nicht Wabe-
die richtige Mezrik sein muss, um die tivität der R t s w u ~ ~ t e i l u nzugbeurtd.cn. Zum eben beruht die der Lei-
und verwerfen mancbmal Pakets Zum anderen wird Lcisnuig norrnalmeise zu einer einzigen Verbindung (Datenfluss) definiert. Es ist nicht klar, wie
hd/Wl-Warteschlange ganz kurz. Die 1 bedeutet, d& das Netzwerk einen einzigen &rdie beiden M besagen, dass es sich hier bei der Paketankunft und den Dienstzeiten um eine Poisson- bzw, exponentielle Verteilung und somit um Markoff-ProEesse handelt.
#wi umfasst, und
sich dies bei mehreren konkurrierenden Verbindungen ~ d a t d l tTran. . dker mo&n Einsdiränkunp:enhat aber keine Alternative nennenswerte Ahe~tanz * s bistuq weite-hin PISMeaiL benutzt wird . -*Das : Ziel lieg in der Maxunierung dieses 'bJerh"l.enis9esy das eine Fu dem Netzwerk aufgebürdeten Last ist. Die Last wird ihrerseits durch den mus der ~ e s g ~ u r c e n z u t cfestgewtzt. il~ Bei der mpriisentativeni,&uqpk& Abb. 6.3 arbeitet der M W ~ ~ S X ~zur U SRessowrcemreilunp; ' idealcrwei Spitze dieser Kurve. Links neben der Spitze ist der Mcchsmisms zu k m d.h., er Iässt nichr geniigcnd Pakete zu, um die Leitungen aus der Spitze werden so viele Pakete in das N q e r k nigdissen, z;tigentngazeikn auf &und des Queuing alimiihiich gegenüber W i Dme w h e n Cibeqvie~n. AbA 63: Verhältnis mischen Durchsatz und als Funktion der Last
Lest
h r & a n t ist, dass diese ICYtmgskurve aussieht wie die ~ r n h biluklta9ki~g-Computersystems.Der Systemdmhsatz vert#ssen sich, je r d k in das System eingegeben werden, bis e h Punkt erreicht ist, an dem so vie fen, dass das System mit dem so gemnnteti h s h i n g beginnt (alsoseine damit verbbgt, Speicherseiten umzdgern), und der Durchsatz sinkt. W k sehen in spilteren Absrhimn dieses Kapitels, dags viele Methoden &rlastkonuoiie ltdigiidi in der Lage smd, Last auf seiu grobe Art zu sec heißt, es ist einfach nicht ?naglich, den .Hahn(( ein wenig aztfrntdrehen und n kicke Zahl zWtzkher fh e in das Netzwerk &denzu las9en.A~Fdge mbmn sich Netzwc~kdesignerdarnit befassen, was passiert, wem das S w e m hoher Last läuft, was dem Ende det Kurve ganz d t 8 au$en spricht. Im Idealfall möchte man die Situation vermeiden, in der a Thrashg im S y s m dm ~ ~ d wauf Null ~ sinkt. t zIm Netzwerk s c h wir une,dass eia S p e m sdrlbfl ist, was N e u = dass Pak*
Ein instabiler Medzanismus ignn zu einem ObsrkekoIJaps des N m r k s
~ '
a
Weüung von ibmmma kffektike Auslastung von Netzwerkressourcen ist nicht das einzige Kriterium für Bewertung einer Methode zur Ressourcenzutcilung. Wir müssen auch die Frage '&Fairness berücksichtigen. Bei der DeMcion, was gewu eine faire Zuteilung von ' h o a r c e n ist, geraten wir der* schneil in rrübe GewEine auf Reservieg basierende Methode der Re850urce&uteilung bietet beispielsweise eine expliW Art, kontroilierte Unfairness zu schaffen. Bei einer solchen Methode können wir i m g e n benutzen, um es einem Videostrom zu ermögiichen, 1M W s über &Bk ~ e i t m zu g empfangen, während ein ~awitransfer'über die gleiche Leitung nur b m ~ erhält: s lautende Informationen möchten wiq wenn mehrere ng gemeinsam benutzen, es jedem Datenfluss gesktten, Bandbreite zu erhalten. Bei dieser Definition wird davon C&sgaanp!en, dass ein fakw Anteil ein nleider Anteil an der Bandbreite bedeutet. auch ohne Reservierungen sind gleiche Anteile nicht unbedingt gieichbedeudairen Anteilen. Sollten wir auch'die Länge der zu vergleichenden Pfade in t ziehen? Was ist beispielsweise in Abb. 6.4 faiq wenn ein 4-Hop-Datenfluss ei 1-Hop-Flüssen konkurriert?
F)..
tkem
@AEin 4 - h p - i h t d u s s konkhert mit drei 1-Hopnürsen
der A a d m e , dass fair und $eich dieselbe Bedeutung haben und alle Pfade lang sind, hat Raj Jain eine Metrik 8ar&escaIagon, mit der sich die Fakness
Mechanismus & die Oberlastkontrolle q u m W e r c n lässt. Jains Fairnessist wie folgt definiert: Gegeben sei eine Menge VOQ Datenflussdurehsä~n(xl, ,xn) (gunessenin konsistenten Einheiten, 2.B. Bifikunde), dann weist folFunktion den D a e h - einen Fairnessindex zu:
Fahessindex ergibt immer eine Zahl zwischen 0 und 1, wobei 1 die höchste darskllt, Um die Logik hinter dieser Metrik zu verstehen, betrachte man bei dem aile n Datenflüsse einen Durchsatz von 1 Dateneinheit pro w u n d e erhalten. In diesem Fall ist der Fairnessindex wie folgt:
Wem wir nun annehmen, dass ein Datenfiuss eben Durchsatz von 1+ A erder Faimessindex ((n-1)+1+A)' n(n-l+(l $A)') - nZ+ 2 & + ~ ' n2+ M + &
6.2 Queuing-Disziplinen Ungeachtet dessen, wie einfach oder ausgeklügelt der Rest des Mechanismus für Zuteilung von Ressourcen ist, muss jeder Router die eine oder andere Art von Q ing-Disziplin implementieren, die regelt, wie Pakete zwischengespeic wäbsend sie auf ihre ubertragung warten. Der Queuing-Algorithmus Pufferplatz (welche Pakete abgewiesen werden). Er wirkt sich auch direkt auf
6.2.1 FIFO
bzw. Drop-Regel sind, werden sie manchmal als Bündel betrachtet: die so ge Vanilla-Queuing-Implementierung. Leider wird das Bündel oft einfach als »
Arikammende~ I;$ltet
=W
p
Wird als Ngchstes NFichsWr freier Puffer übertragen
\ \
\,
Abh 65: (a) FIFOQwuing; (b)Tail-Drop an einer FIFO-Warteschlange
,C
#-;
:'
8QFreie Puffer In der WarteSchlange stehende Pakete
$#I,:
" I;,: ~ Wird als Nächstes übertragen
&f
ißic.
-
«
bei&-
Wd -
ea gcnauer l*mFO mit Td-Drqp? gemma.wwdca
ireren Dt~p-Re~ei, dia kamvo~hdend*bcnwn eu ent.Dropbge1kann mit FE6 -w*D'epb beautztwk. .Ir da tdda&s~e d a r Qua-aoirrhnua rmdo W Wmmt bei d e m am Udigsta hwtzt, Diaw ein8
des Newiwerka. Fi&&A sieht die vor-
XatmmdeneitkheHilk varm-dm
aba d&t so ~ $ dass 4
@herer PFloritisgan defa A&wg der ScMmge zu s;~,ringa.
4
Problematisch ist beim Prioritäts-Queuing n a t ir w b die Warteschbgp~~ der höheren Ptiorität alie übrigen Wartosdangen ~awhtltigernekann. Das h so lange es mindestens ein Paket in der Warreschlange mit hoher Priorität gibt, W& den Wartedangen mit niedri~ererPrioritiit nicht bedient. Damit dies durchfiihrbar ist, müssen harte Grenzen dahingehend gesetzt werdea, W kebr mit hoher Priorität in die W d q e gwteiit wird, Selbstverstän dadurch klar, dass wir es Benutzern nicht gestatten könn unkontrollierte Weise mit hoher Priorität zu versehen. misa voilständig dzran hindern oder eine Form der O&nsi&clich lasst sich diesi über Gebuhtwi bewe~ Das für Pakete mit hoher Priorität mehr ais fiir die mit niedrigerer Priorität bcr Die Implementierung eines solchen Schemas in einer dezentrden UmgebungLsLs dem Internet stellt aber eine beträchtliche Herausforderung &. Prioritäts-Queuing wird im internet vomiegend zum W u t z der Pakete angewandt. Typischerweise sind das Rating-Ak-hrungen, sind, um die Routulg-Tabellen nach einer Topdogi&dclung anzugieichen gibt es dann eine spaielk Warteschlange für solche Pakete, die durch das im P-Header identifiziert werden können. Dies ist tatsächlich ein einikche des Konaepts ~Differentiated-Servicesa, die in Abschnitt 6.5.3 beschrieben
7
6.2.2 Faires Queuing . .
W
Das Hauptproblem beini FIFO-Queuing ist, dass es nicht zwischen versc Verkehrsquellen unterscheidet. in der im vorherigen Abschnitt eingef4ihrcen nologie würde das bedeuten, dass es Pakete nicht nach dem Datenfluss, zu dem 4$f~ gehören, trennt. Dieses Problem erstreckt sich auf zwei verschiedene Ebern. je4itd der einen Ebene ist es nicht klar, dass ein vollstiindig an der Queile i m p l e m a i t i ~ Algorithmus für die Oberlastkontrolle in der Lage sein wird, die Oberlast f ~ t Hilfe von dkn Routern angemessen zu bewältinen. Wir schieben unser Urteil bis zum nächsten Abschnitt auf, in dem wir TCP-Obcrlastkontrolle behandehcd einer anderen Ebene kann eine bösartige Quelle (Datenfluss) einen beliebig g Anteil der Netzkapazitiit in Beschlag nehmen, weil der gesamte Mechanismus Uberlastkontrolle an den Quellen implementiert wird und FIF07Queuing lwb@ n, sic Miiglichkeit der Regelung bereitstellt, die Quellen ~&hanismuszu halten-Betrachtet man wieder das& ,e& tth ist es für 'CM bestimmte Anwenelung sicherlich möglich, TCP nicht zu benutzen und als Ba@ davon dessen Ende-zu-Ende-Mechanismus zur tfberlaszkontrolle zu umg (Anwendungenwie Interna-Telefmie tun das heute.) Eine sokhe Anwendung der Lage, Interna-Router mit i h n eigenen Paketen ni fluten md dadurch m sachen, d a s Pakete d e r e r Anwendungen verworfen werden. Faires Queuing (FQ) ist ein Algorithmus, der vorgeschlagen wurde, um , Problem zu lösen. P Q basiert auf dem Konzept, eine getrennte Warteschhge jeden momentan vom Router behandelten Datenfluss einzurichten. Der R d bedient diese Warteschlangen dann im Round-Robin-Verfahren, wie aus Abb. 645
4
3
1
-
Abb*6& Faires Queuingan einem Router
ersichtlich wird. Sendet ein Datenfluss seine Pakete w schnell, füllt sich seine Warte8ehlange. Erreicht eine Warteschlange eine bestimmte Länge, w e r h weitere bei der Warteschlange dieses Flusses ankommende Pakete verworfen. Auf diese 'Weise kann eine bestimmte Quelle nichr beliebig ihren Anteil an der Kapazität des Netzwerks auf Kosten anderer Flüsse erhöhen. Man beachte, dass FQ weder von den Routern verlangt, sie sollen den Verkehrsqueilen etwas über den Zusrand des Routers mitreilen, noch in irgendeiner Weise begrenzt, wie schnell eine bestimmte Quelle Pakete sendet. Mit anderen Worten: FQ ist dafür ausgelegt, in Verbindung mit einem Ende-zu-En&-Mechanismus für die &rlastkontmlle benutzt zu werden. Es trennt den Verkehr einfach, sodass bödartige Verkehrsquellen nicht jene stören, die getreu dem Ende-zu-Ende-Algorithmus folgen. FQ erzeugt zudem Fairness zwischen m e h r e n Flüssen, die von einem wohlh h i e r t e n Algorithmus nir Uberlastkontrolle verwaltet werden, So einfach das Grundkonzept ist, gibt es dennoch einige Details, die man beachten muss. Die grö%teSchwierigkeit ist, dass die in einem Router verarbeiteten Pakete nicht unbedingt die gleiche Länge haben. Um die Bandbreite der Ausgangslei~g wirklich fair zuzuteilen, muss die Paketlänge mit in Betracht gezogen werden. Verwaltet ein Roaer 2.B. zwei Flüsse, einen mit 1.000- und einen mit 500-Byte-Paketen (mdglicherweise wegen Fragmentierung dieses Datenhsses bei einem UpstreamRoater), erhält der erste Datenfiuss zwei Drittel und der zweite nur ein Drittel der Iieitungsbandbreite durch eine einfache Round-Robin-Bedienung von Paketen aus &n beiden Warteschlangen. Was wir wirklkh wollen, ist ein bitweises Round-Robin-Verfahren. Das beigt, der Router übetträgt ein Bit von Datenfluss 1, dann eines von Datenfluss 2 usw. n unterschiedlichen Paketen nicht machbat Der FQ-Mechanismus simuliert deshalb dieses Verhalten dadurch, dass er zuerst &rmitdt, wann ein bestimmtes Paket mit der Obertragung fertig ist, falls es mittels bitweisem Round-Robin gesendet wird, und benutzt dann diese Beendigungszeit, tll~ldie Pakete für die Ubertragung in eine Reihenfolge zu bringen. : Um den Algorithmus für die Approximation des bitweisen Round-Robin zu verstisituen, betrachte man das Verhalten eines einzelnen Datenfiusses und stelle sich eine EThr vor, die jedes Mal tickt, wenn ein Bit von allen aktiven Datenflüssen übertragen
der Obertragung von Paket i - 1 von diesem Datenfiuss fertig ist. Kommt an, wird logischerweise das erste Bit von Paket i unmiifabar übertragen,
sodaw der Round-Robin-Mechanismuskeine Pakete aus diesem Daenflu;ss tragen konnm Bezeichne Ai dis Zeit, in der Pakt i b e b Rowcer ankommtb giir Si = max(F+l, Ai). Folglich berechnen wir
Fj = max(Fbl, Ai) + Pi
mn. Für jeden Datendugs berechnen wir mit W der obigen F~rmelP
d e n anderen fertig soin sollte.
ein Pak* aus ehern an& Da die O b g m W=, wdws erhalten kann. Genau
uns ins Auge gefaste biweise Rd-Robin-Schema Sicht exalrc s wir das Beispiel in Abb. 6.7. Teil (a) zeigt die Wartwhlangarz zweier DeL Algorithmus wählt beide Pakete von htenflm1 für die Ubemrqj Paket von D d u s s 2, das in der W a m d h g e steht. In (b)hit der Routa
Fluss 1
Fluss 2
ankommt. O h h i das von Qatenfiuss 1 anlcommmde
P h vor
in der Wartachhge sitzen und auf die übestragung warten
e Wartesehlange bedient, wodurch effektiv der prozentuale Anteil an der bandbreire, die der jeweiiige Datenfiuss erhält, kontrolliert wird. Das einfa-
dritte die Hälfte. WVhaben WFQ zwar nur in Bezug auf Datediiw beschrieben, es kang auch auf der Grundiage von mVerkehrskiassenu implementiert werden. Dabei d a Klassen auf andere fachen Flüssc ciefideh I P ~ h d e rbenutzen, um teschlange und eine Gewichtung auweiscn. G m m dieg
Medwhmus ds Black-Box, die Wien 'vieiscbichtigen Dienst m m sich nicbt danun), wie die B W - B o x @!e~lldert wird in
ephat. Ti behandein einige Strategien, die mit dem angewandt werden können, ia Abschnift 6.5.
6.3
Uberlastkontrollein TCP
Zn diesem Abschnitt wird das heute vorherrschende Beispiel der Ende-zu-Ende&r1astkontrolle beschrieben, das in TCP implementiert ist. Die wesentliche Strategie von TCP besteht darin, Pakete ohne Reservierung in das Netzwerk zu senden und dann auf beobachtete Ereignisse zu reagieren. TCP geht nur von FIFO-Queuing f den Routern des Netzwerks aus, arbeitet aber auch mit fairem Queuing. Die TCP-irberlastkpntrollewurde im Internet Ende der achtziger Jahre von Van Jacobson eingeführt. Das war etwa acht Jahre nach der Inbetriebnahme des TCP/IPProtokoll-Stacks. Unmittelbar vor dieser Zeit litt das Internet häufig an dem Phänomen des Oberlastkollapses. Hosts sendeten ihre Pakete so schnell in das Internet, wie e das Advertisement-Fenster zulieg, in einem Router trat eine überlast auf (d.h., Pakete wurden verworfen), und der T i e o u t der Hosts lief ab, sodass diese ihre Pakete erneut übertrugen, was zu noch mehr überlast führte. Einfach ausgedrückt, besteht die Idee der TCP-Überlastkontrolle da&, dass jede Quelle ermitteln muss, wie viel Kapazität im Netzwerk verfügbar ist, sodass sie h i S , wie viele Pakete sie problemlos gleichzeitig übertragen kann. Befindet sich d b e Paketanzahl von einer bestimmten Quelle im Netz, benutzt sie die Ankunft eines ACK als Signal, dass eines ihrer Pakete das Netzwerk verlassen hat und sie higlich ein weiteres Paket senden kann, ohne zur Oberlast beizutragen. burch Verm d u n g von ACKs für die Temporegelung der PaketüKertragung gilt TCP als dbsttaktend. Selbstverständlich ist die Feststellung der verfügbaren Kapazität hinächst keine leichte Aufgabe. Die Lage verschlimmert sich noch, wer& andere kb'idungen auf- und abgebaut werden, da sich die verfügbare Bandbreite dadurch kiiifend ändert. Das bedeutet wiederum, dass eine bestimmte Queile in der Lage sein buss, die Anzahl der von ihr übertragenen Pakete anzupassen. In diesem Abschnitt werden die vom TCP für die Lösung dieser und weiterer Probleme benutzten Algoirfbunen erläutert. ' Wir beschreiben diese Mechanismen nacheinander, sodass der Eindruck entsteht, -& ist von drei unabhängigen Mechanismen die Rede. TCP-überlastkontrolle lässt iich aber nur erreichen, wenn alle drei zusammen implementiert werden.
6.3.1 Additive lncrease 1 Multiplicative Decrease TCP verwaltet für jede Verbindung eine neue Zustandsvariable namens ~ ~ o n W i n d o(Oberlastfenster), w die von der Quelle benutzt wird, um die ihr für die Obertragung zugestandene Datenmenge zu begrenzen. Das irberlastfenster ist ibs Gegenstück in der Überlastkontrolle zum Advertisement-Fenster in der ~ a t e n Lusskontrolle. TCP wird so modifiziert, dass die maximal erlaubte Anzahl an Byte iiicht bestätigter Daten nun das Minimum des Oberlast- und des AdvertisementFensters darstellt. Unter Verwendung der in Abschnitt 5.2.4 definierten Variablen wird das effektive Fenster von TCP also wie folgt revidiert:
.W
Das hegt, MaxWindow ersetzt AdvertisedWimdow bei der Bershnuog von E f f e c W ~ ~ ~ da Folglich darf eine TCP-Quells nicht schneller senden, als die langsamste Koop. ponente das Netzwerk oder der Ziel-Host - verkraften kam. Das Problem ist hier, wie TCP einen angemessenen Wert für CongestionWii lernt. h Gegensatz zum AdvertisedWindow, .das von der Empfangsseite der V * d- gesendet wird, schickt hier keiner ein geeignetes ConaestionWindow an die T& Sendeaeite. Dies wird dadurch gelöst, dass die TCP-Quelle das überlas der Grundlage des ObedasninSangssetzt, den sie im Netzwerk wahrgenommen Dies umfasst die Senkung des Oberlastfengters, wenn der bzw. dessen Erhöhung, wenn der ü b e r l a d a n g sinkt. Di Additive lncrease /Multiplicative Demeae (AiMD) genannt. Der Grund füa umständliche Bezeichnung wird weiter unten klat Die Kernfrage lautet dann natürlich, wie die Quelle d t t e l t , dass das Ne überlastet ist und ob sie das Uberlastfenster senken sollte. Die Antwort der Beobachtung, dass der Hauptgrund dafiiq dass Pakete nicht übertragen und Timeouts entstehen, darin liegt, dass ein Paket auf Grund von übe fen wurde. Nw selten wird ein Paket wegen eines Fehlers während der verworfen. Deshalb interpretiert TCP T i u t s als Zeichen der überla ziert die Rate, mit der es überträgt. Jedes M d wenn ein Timeout edo Quelle ~ e s t i o n W i n c k 6auf die Häifte des vorherigen Werts. Diese ~beclastfenstersbei jedem Timeout entspricht dem Multiplicative-Decrease-Teil AIND. Obwohl CongestionWindow in Byte definiert wird, ist das Multiplicative , leichter verständlich, wenn wir in ganzen Paketen denken. Nehmen wir bebsp' weise an, d ~ sdas s Uberiastfenster momenian auf 16Pakete gesetzt ist. Wwd ein* lnst erkannt, wird es auf 8 gesenkt. (Normalerweisewird ein Verlust erkanm, ein Timeout eintritt. Wie wir im Folgenden aber noch sehen werden, verfügt T , über einen weiteren Mechanismus, um verworfene Pakete zu erkennen.) W* Verluste führen zu einer Reduzierung des übedastfensters auf 4, dann lich 1Paket. Es wird aber nicht zugelassen, dass CongestionWindow unter die eines einzelnen Pakets sinkt, was iii der TCP-Terminologie als grok (Maxhurn Segment Size, MSS) bezeichnet wird. Eine Strategie z u überlastkontrolle, die nur die Fenstergröße senkt, wäre lich zu k 0 ~ ~ a t iWw v . mü'ssen auch in der Lage sein, das Uberlasrfenster zu d hen, nm neu verfiagbare Kapazität im Netzwerk zu nutzen. Das ist der Adc Increase-Ted von AIMD, d a wie folgt funktioniert:Jedes Mal,wenn die ~ucllcf.; dem Oberlastfenster entsprechende Paketmenge erfolgreich gesendet hat (d.h, j d w&nd der letzten R'iT gesendete Paket wurde mit einem ACK bestärigt), die Entsprechung eines Pakets zum Obsilasdenster hinzu. Diese lineare E r h ö h q i in Abb. 6.8 dargestellt. In der Praxis wartetTCP nicht auf die einem ganzen F* entsprechende ACK-Menge, um ein Paket zum Oberlastfenster hinzuzufügen,
-
I
1 ,-h<
V
'
%i
h m a g u n g von fbkaen behn Additive Increase; pro Riiwiid ein Paket hinzugefügt
hkmmmtiert das b l a a f e m t e r ein wenig pm d o m c n d e n a ACK. Präziset das üIserhsrfenster bei jedem ankommenden ACK wie folgt inkrementiert: I n k m 1 :a.MSS X (MsSECong~Wlndow)
CmgWionW-4
= ln-nt
Senkung des Ulreclasdmsters wird
Zeit (Sekunden)
Abb. 6.P: Ty~ischesSäsezahnmuster in TCP
die konservative Eihöhuqg des Fensters ist, dass die Folgen eines zu grohn vkl schiimmer als die eines zu Meinen sind. bt das Fenster beispielsweise W& verworfene Pakete erneut übertragen, sodass sich die Oberlast noch va B e . Deshalb isr es wichtig, aus diesem 2-d rasch herauszukommen. , Da ein Timeout a d Oberlast hinweist, die ein Muitiplic8tive Decrea braucht T 8 einen möglichst genauen Timeout-Mechanismus. Dcr T h nismus von TCP wurde bereits in Abschnitt 5.2.6 beschrieben md wird mehr wiederholt. Zwei wichtige Dinge gilt es, sich über diesen Mechani merken: 1. Ttmeouts werden als Eunktion sowohl der duitchschni&& RW auch der Standardabweichung dieses Durchschnitts gesetzt-. 2. dufgnind des . wänds für die Messung jeder k a g u n g mit einer genauen Uhr nimmt TC2 Stichproben der Roundtrip-Zeit eimnal pro R n (statt einmal pro Paltet) mit einer pbgranuiaren Ukr ($00m ~ ) .
.J
4 -,#'
~ Ad&w-Inc&ase--ue n e ist der richtige AB w e m die h U e nahe der v e ~ f h g k e n &paW@t &W N m f b iyligiteie. %,@ ober zq bb bEs Voebiaduag Y& ge~3a;twerden kann, w m & ~tm bpmt TCP bietet dddbeinw zweicSet lkzeickn~sg.J ~rt Sm. wird h u m , um das ObcrWmstesre v ~ n e i m s n b t f ~m$ nifahtea S k w 4 r a ~ o!W.ht das k m r exgxmWd ntld nicht : Die ~ i t e l l ebeginnt damit* d a s sie das U p , e auf P&$ b5.mdas A g : Atr dra P&@ ~5 addrn TCP dm Wm 1 nmi Obcrbo&q und waBotdannzeeiFalrete. BeiBmpfaxtgj des m ~ A ~W a m m & n ~ ~ ~ ~ ~ o Zb- j eo 1 ~ p i lo ~a ~ ~- U~a m t i ~ d e ~. . ~ ~ P B i e vier Pakete. im k ~ ~ a ~ t i v d i e ~ & p m ~ P a t e vwdopp%10.Abb. 6.10 wigt du Wykwun da h d d Bbsm%gew -nd d & ~ l o w - ~ aVes&khen n Sb das.s@t d- Unurra Wchtsun dql! tive bxess& in Abb. 6.8, Wman einen expoaentiqca M m W s w rl~qpama(dow) es iig,richtigen imniich r-(5 bg&% aber erkken, w7;ean -2 bmachtet. W i r miben 8& Slow-Sraa &&E mit: dem Der soeben ~
i
e
Abb. 6.10: Übertragung von Paketen während des Slow-Start
9mus 'des vorherigen
Ab~chnittsvergleichen, sondern mit dem u~~rprüngli-
aae das Obedasrfmter durch 2.dividiert.
Sters auf einmal in das Netzwerk zu speisen. Die Quelle benutzt den Slow-Start ein weiteres Mal, verfügt jetzt aber über m k Informationen als zu Beginn der Verbindung. Insbesondere hat sie einen aktu&m (und nützlichen) Wert für das Oberlastfenster. Dies ist der Wert des CongestionWim' dow, der vor dem letzten Paketverlust galt, dividiert durch 2 auf Grund des V e r l w Man könnte das den »Sollwert* des Uberlastfensters nennen. Der Slow-Start wlit$, benutzt, um die Senderate bis zu diesem Wert schnell zu erhöhen. h r diesen P& hinaus wird dann Additive Increase benutzt. Man beachte, dass wir ein kleha Buchhaltungsproblem haben, um das wir uns kümmern müssen: W i r wollen i r g d . wie festhalten, dass sich das »Solle-Uberlasenster aus dem Multiplicative Deamw ergibt und das .Ist«-Oberlastfenster vom Slaw-Start benutzt wird. Als Problemlör sung führt TCP eine temporäre Variable ein, um das Sollfenster zu speichern. Das isr der so gena'nnte Oberlastgrenzwert (CongestionThreshold),der auf den gleichen Wert wie Cong&tion~indowgesetzt wird, der sich aus dem Multiplicative Decrease ergib$ Die Variable CongestionWindow wird danach auf ein Paket zurückgesetzt und um eiii Paket je empfangenes ACK inkrementiert, bis sie CongestionThreshold erreicht. ~6 diesem Punkt wird sie um ein Paket pro R n inkrementiert. Mit andkren Worten: TCP erhöht das Oberlastfenster wie im Folgenden Codefragment: U-i nt ir-int
cw = state-*Congesti onWi ndow; i n c r = state-waxseg;
i f (cw > state->CongestionThreshold) incr = i n c r * i n c r / CU; state->CongestionWindow = MIN(cw + incr, TCP-MAXWIN);
1
1,D
rk
2,O
3,O
4,O
5,O
6,O
7,O
8,O
9,O
8.
4.
Zeit (Sekunden)
-
@I 1; Verhalten der TCP-Uberl~ntroIhigepunktete Llnie = Wert von CoqpsUonWinduwim &der Zeh Bullets = Timeauts;felne Linien oben in der Grafik =Zeit der PaketPberfragung; Whte Linien =Zeit der errrmaligen Oberrragungeines letalich neu abertragenen Pakets
$> I.
wn @amg
der V~bppduag.Dies ent%p&& &W an&g-
M& etwa 0,4 Ekuneten der Verbindung v e r l o ~ b c - t nZ u k m Z e i t , &zht das 0 - a ~ bei mgdiihi 34 ab. (?Z&mnd h d & s $kmgi?p~kIe P&b m-en, VKiird lmtm *) W T L % a mdaaE U M ~ & S E C T
E
B &d.
~a€&&ch werden w&rmd &66gr? Zeit k m m m s ~Pakete g e w m k & im Gr&cn.&hn die ~ ~Linien). Ein r T i tnerf* &&h& &ihr 2 'SekQetitZu diesem Zicitpmk wird das U k r l a s & n e &eh 2 -4d.b.vofi uagdiih 34 auf 17 &CE3 ~ei'rh&prt)~ und C o ~ T h r e s h o M diesen Wm pmzt. D d den S i m - S m wird Congmdo~indoWauf eirY Zeiohnung eatMlt nicht audireichtfnd Daah9 um d e genaucrt ~ Ablauf zu pkmir~en~ als einige Pakete tun nach 2 Sekonden verimmgehen. M
b springptf
spricht dom Acldhim increaw. Bier mgpufähr 4 Sekutldea h& w i e h a d G d eines verlorenen Pakets ab. Nun treten bei ~ f 0 1 g ~ n d e ~ein: ~sse
EFn Timeout mrsadht die Division des herlastfensters durch 2, sodass es von mgefäht 22 KB auf 11 KB sinkt, CongesUionThreshold wird auf diesen Wert petzt. nWindMiv wird auf ein Paket au~%+tzt,
weil der % d e r in den
6bergeht ?,J
buch. den Slaw-Start w k b t ~ ~ n W t n d exponentiell, o w bis es Congestion," .,
tik
Das gleiche Muster wiederholt sich bei etwa 8 Sekunden, wenn ein weiterer stattfindet. Wir kehren ietzt zu der Fraee zurück. warum so viele Pakete adiängiichen Slow-Start-Phase verlorengehen. TCP versucht hier zu erlernen, $d viel Bandbreite im Netz verfügbar ist. Dies ist eine sehr schwierige die Quelle in dieser Phase nicht aggressiv ist, beispieiswise; wenn s fengter nur linear erhöht, dauert es lange, bis sie die vediigbai-e Bandbreite fe Dies kann sich auf den Durchsatz dieser Verbindung gravierend auswirken. Queile andererseits in dieser Phase aggressiv, wie TCP während des expo Wachstums, dann riskiert sie, dass das Netzwerk die hälfte der Fenstern Paketen verwirft, Um zu sehen, was während des exponentiellen Wachstums passieren betrachten wir die Situation, in der die Queile gerade in der'lage erfoigreich duch das Netzwerk zu senden, wodurch sich eine .Verdop Oberlastfensters auf 32 ergibt. Angenommen, das Netzwerk hat zufäliig reichend Kapazität, um 16 Paete von dieser Quelle m unterstützen. seheinliche Ergebnis ist, dass 16 der 32 im neuen Uberhstfemter gese vom Netzwerk verworfen werden. Dies ist problematisch, weil einige ehigen Routern zwischengespeichert wurden und Ressowcen vertrra Dieses Problem verstärkt sich mit zunehmender Erhöhung des Verzö breite-Produkts des Netzwerks. Ein Vcrz@rung/Bandbreite-Produkt weke 500 KB bedeutet, dass bei jeder Verbindung mögiicherweise a 500 KB an Daten verhiemehen. Selbstverstädiich basiert das auf der dass Que& und Ziel die Erweitefür wgto%eFefistera implementieren. Einige Netzwerkdesigner haben Alternativen zum Slow-Start vorgewhiagsn, denen die Queue versucht, die verfügbare Bandbreite auf cleverere Art zu SC indem Gruppen von P h n gesendet werden.und beobachtet wird, wie vi& M Weg schaffen. Eine Technik namenc Packet Pair ist repräsentativ für diese meine ~tradegie.Einfach ausgskückt, beruht diese Strategie auf dem K a n e p ~". Paketpaar direkt hintereinander zu senden Die Queiie kann dann messen, w i 4 die ACKs dieser beiden Pakete auseinanderliegen. Der Abstandmvischen den A,@ wird als Maß: der im Netzwerk vo&rtgchenden Oberlast herawzogen, imd damit zur Ermittlung, um wie pid das ifberlastfenster erhöht werden ka Effektivität solcher Ansätze wird .immer noch untersucht, die bisher gewo Ergebnisse sind aber viel versprechend.
J ?dl
6.33 Fast-Retmnsmitund Fast-Recovery Die bisher beschriebenen Mechanismen sind Teil des urspningiiciien ~orschhqy Erweiterung von TCP um überlastkontrdle. Es wurde allerdings bald dass die grobkörnige Implementierung von TCP-Timeouts zu langen Perioden fuhr in denen die Verbindung ungenutzt ist, während auf den Ablauf eines tet wird. Aus diesem Grund wurde TCP um einen neuen Mechan den man a b Fast-Retransmit bezeichnet. Fast-Retransmit ist
Er erweitert dieses W lediglich.
mnnt man Duplikat-ACK Sieht die Sendeseite e h Dupht-AC& weiB gndere Seite ein Paket au&r der Reihe erhdtea haben muss, was darauf von Dupbg-ACKs t ~ l d tDann . überträgt er das fehlcndt Paket enteiit.
Ziel .sendet ein Dupiikat~ACKfür Paket & wenn P h 4 ut, wem P a k 5 ankommt, usw. (Umdieses Beispiel p verein-
Abb. 6.11: Fast-Retfammitauf der Grundlage
von Duplikat-ACKs
Zeit (Sekunden) Abb. 6.1 k TCP mit Fast-Retransmit; gepunktete Linie = CongestionWindow;Bullet = Timeout; feine Linien oben in der Grafik = Zeit der Paketübertragung; senkrechte Linien = Zeit der erstmal Übertragungeines irgendwann neu übertragenen Pakets
Abh 6.13ze* dss Verhalten einer TCPwVresim mit dem E%ist&trdt
tegie nicht aik grobgrmulzren 'l'hnmuts ~rcmn&iet. Dae liegt an,
dass d e r Meinen Fen&q@& nicht genfiigend Pakete auf EtGm Weg fhmqpmg e m w h b Dupht-Aau~ulbax,Bei g?eniipxd h fusten, wi8 z.B. wdlbnd d s adäqgklaen !hw-Srom-Phaw, bi&axt der
i h zu vermeiden. Tatsächlich erhöht TCP wiederholt die Last, die es dem Netzwerk um die für eine Verbindung verfügbare Bandbreite zu finden. Bei einer attraktidie allerdings noch nicht in großem Umfang übernommen wurde, st vorhergesagt, um die Rate zu reduzieren, bevor damit begonnen Pakete zu verwerfen. Wir nennen eine solche Strategie Uberlastvmeidung stion Avoidance), im Unterschied zur Uberlastkontrolle (Congestion Con-
:iLn diesem Abschnitt werden drei verschiedene Mechanismen für die überlastverg beschrieben. Die ersten beiden beruhen auf einem ähnlichen Ansatz Sie
von den Routern eine geringe zusäniiche Furikaonalität, um die Endknoten Vorhersage einer überlast zu unterstützen. Der dritte Mechanismus untert sich stark von den ersten beiden: Er versucht. überlast rein von den Endbten vermeiden zu lassen. 6 -L
F@& Wmtätmglifr.& ~ r l a s t k o n t i r o ~ zwischen e Rammund Ikdbot J*r Rsukr Ühmwht: t:biet und bemachriehtigt explizit die E n h e n *
E
O b d a s i r h hemehc. M- lknaehriehpigungwird dadurch &rr, "*binäres~*k~ndcnddckn~mt~t%*M-~ &her der Name DWMt. Der Ziel-Host kopiert dieses f h x h b i t in dah ACIE; ra raa die Quelie ?arG&ssdet. W i i c h berichtigt die Quelle ihre Se&ate, '&E
b
r lwduieben. 'Wir beginnen mit dem Ablauf beim Rwtec PSJBet-He9h-+h.ejn &IZ&ICB h l a s t b i t e i n g w Ein Route setzt W-nge zu dem Z&L gleich P ist. Diese durehwhnittiltcse gcrnessa, da9 sich iEbCr den l a z m Z@U$ emiwlc5 zuziigiich des aktuck besetzten Zyklus.
ii: dGn
k k durch das Zeitinmll, um die d u r e M & Warteschlangenlange zu
Die Quelle zeichnet auf, wie viele ihrer Pakete in einem Router dani lastfwwr und beeba&etd welcher B dazll ge* hat, dass das Bit gesetzt
wert w m 50% wurde auf der Gnindlage einer Anal die8 dcr spitze der eL m*t. Die 0,875~wurdt definiert, weil der M-us durch A&YC Increase / tive DecPearre stabiler wird.
ähnelt dem DECbit-Schema insofern, als jeder Router für die Oberwach eigenen Warteschlangenlänge programmiert wird und bei Erkennen einer henden Überlast die Queile anweist, ihr Oberlastfenster zu berichtigen. Sally Floyd und Van Jacobson Anfang der neunziger Jahre entwickelte RED scheidet sich aber vom DECbit-Schema in zwei wesentlichen Punkten.
erraten haben: RED wurde füt die Bcnutmng in Verbindung mit TCP das .deaeit Obahst m i d s Theouts (dereiner anderes brt der ErkmPaketveriusteh z.$. Duplikat-ACKs-)erkennt, Bei RED verwirft das Gate &et lkiihor als u n b h g t Mtig, um die Quelle zu ~ ~ h t i g edass n sie ,
um &e C&
Uver*, hqpamer am senden*in dw Hoffnung, dass Pakete verworfen werden müssen. Man beachte, dass RED leicht für mit einem expliziten Few%ack+hema angepamt werden kam, indem ch ein P& kennzeichne^ (Matking),.stattes zn vawtwfm [ s a e Kasten).
Der zweite Unterschied zwischen RED und DECbit liegt in der Art, wie RED zelnen entscheidet, wann ein Paket zu verwerfen ist und wi w e l c h es sich handelt. Um das Grundkonzept zu verstehen, betrachte man eine einfache Wartesckge. Statt zu warten, bis die Warreschhange komplett voU. jedes ankommende Paket notgedrungen zu verwerfen (wie bei der Ta in Abschnitt 6.2.1), konnten wir uns entscheiden, jede a einer gewissen Drop-Wahrscbemlichkeit zu wen die knge über einen bestimmten Drap-Grmwert stt@. D i a s K ~ w p nt Emly Radom ~ r & .Der RED-Algori'tbmUS definiert die Einzelheiten, wie tdangenlänge überwacht und wann ein Paket vemoq+en wird. Zn den folgenden Abschnitten beschreiben wir den RED-Algorithm ursprünglich von Floyd und Jacobson entwickdt wurde. Seitdem w d e n Veränderungen durch andere Forscher vargedappk. dnf einige von ihnen wir im Abschnitt über weiterführende Literatur zuruck.An die w e d wiesie ia Folgenden vargestellr werden, halten sich aber aueh die meisten Implementierungen. Zwrst berechnet RED eine durchsduurtlichc W a r t e s c b l a e n l ~&' eines laufenden pvkhteten Durchschnitts, ursm1ichea Berechnung $es TCP-Tieai dwbhtilttli* Wartexxhiangenlänge) wird wie folgt bcrdmet: I
-
AvgLen = (1 Weight) x A w n + Weight.x Sempklgn
wubu 0 c ,Weight < 1 &d SmpIeLen die Länge der W a r x d ~ uim e Zcrq der C a c h p r o is~ t Bei ~ den meisten Sohtilr&&&ma ~ a m w h l & & ~ e jedes Mal gemesstm, wem ein neues Paket a g - 14
AM. 6.1 52
Warteschlangpnlänge
momentaner Wert
A
.
-
r
-
,.
W&um eine durchschnittliche statt der momentanen ~a~teschlange&än~e ve der wird, ist darauf zurückzuführen. dass sie das Wesen der Oberlast rrenauer Aufgrund der hochgradig bunt-artigen Charakteristik des Interna-Qrkehrs kw-d sich Warteschlangen sehr schnell füllen und wieder leeren. Ist eine Warreschlang 4
6.4
MadmhmnnirühhWmmWng (
-1
meiste Zeit leer, Qnn ist der R o m höchstwahrscheiniich nicht überlastet und die H& nicht zus Verlangeamiq anzuweisen. Durch Berechnung des glei-
daher versucht, landtbige Oberlast zu D ~ r c W f t wbd s m rechten Teil von Abb. 6.15 ersichdich wird Dies wird durch brausfiltern kurzzeitiger h-en der Warteschlane*ge erreicht. Man kann den gleitenden Durchschnin als Tidpassfilter vorstell^ wobei Weight (Cewich)&nag)die Zeitksnstante des Filters darstellt. Die Frage, wie wir diese Zeitkonstante ~.muchen,wird unten diskutiert. Zweitens hat RED zwei Grenzwerte fiir .die Warteschiangenlänge, die eine &te Aktivität auslösen: Mkilhreghold und Maxthreshoid. Wenn ein Paket am die aktuelle Avglen mit diesen beiden Grenzwenn AvgLen 5 MlnThreshdd + stelle Paket In die WarteSchlange wenn MnThreshold < AvgLen C ~axThreshold + berechne Wahmheintichkeit P
T' verwerfe das ankommende Paket mit Wahmcheinlichkeit P wenn MaxThreshdd 4 Avgien + verwerfe das ankommende Paket
als der untere Grenziche Warteschiangenlänge wird das Paket immer verworfen. Liegt die durchden beiden Grenzwerten, wird ein neu &hen Diese ~ihiationist in . Die ungefähre Beziehung zwischen P und AvgLen zeig Man beachte, dass die Wahrscheinlichkeit verworfener Pakete langsam - apsteigt, wenn AvgLen zwischen den beiden Grenzwerten liegt und W den oberen @enzwert darstellt, bevor die Verwerfungswahrscheinlichkeitauf 1 springt. Wenn AvgLen also den oberen Grenzwert erreicht und der sanfte Ansatz (ein paar Pakete verwerfen) nicht funktioniert, sind drastischere Maf3nahmen nötig, d.h., alle ankommenden Pakete werden verworfen. Einige Forschungsarbeiten lassen darauf schiie&,dass ein kontinuierlicher Obergang vom zufallsgesteuerten zum vollständigen Verwerfen besser geeignet sein kann als der hier dargestelite diskontinuierliche
.
.
MaxThfeshold
MtnThreshold
Abb. 6.16: RED-Grenzwerte bei einer FIFO-Warteschlange
Obwohl Abb. 6.17 die Wahmcheinkhkeit des V
e
m nur als
AvgLen d a r d t , ist die Situation etwas kompliziate~Tatsädich ist tim von A v g h und,der Zeit, die seit dem d e m verwob Paket ver
Dies wird wie folgt berechnet: .
-
-
TempP = MaxP X (AvgLen MinThreshokl)/(maxThmshoid MinThreshokl)
P = TempPI(1- cwnt X TempP) 25
wird. Die ble count verfolgt, wie viele neu ankommendePakete in die Wmeschlange (und nicht verwoden) wurden, während A v q b zwischen den beiden Cr liegt. P erhöht sich langsam, wenn sich wunt erhöht, wahrscheinlich wird, wenn sich die Zeit seit dem letzte verringert sich die Wahrscheinlichkeit verwarfeaer Pak* m engem Abstand9:rend die Wahrscheinüchkeit, dass Pakete mit gmkm Abstand ~ e ~ o r f %V$ ea eher zunimmt. Dieser zusätzliche Schritt in der Berechnung von P wurde VRED-Entwicklern eingeführt, nachdem sie beob.Chm hattim, dass das v e q ~ d von Paketen zeitlich nicht gut verteilt waq sondern vieimeht in Büpdeln auftrat,. Pakete auf einer bestimmten Verbindung wahrscheidich in Bursts a n k o m m 4 dieses gebündelte Verwerfen dazu, dass viele Pakete einer e worfen werden. Dies ist nicht wünschenswert, weil nur Roundaip-Zeit n@tigist, um eine Verbindung zu veranlassen, ihre Fenste reduzieren, w h n d mehrere pt.rworkne Pakete sie in den Slow-Start schicken keimten. . Als Beispiel nehmen wir an, dass W auf 0,02 gesetzt und munt nd3 initiabiert wird. Wenn die durchschnittliche W a r t e d d a n g e n l ~&a atd Strecke mrisdien den beiden Grenzwerten liegs ergben T.;bmpP und dcr wert von P die H ä b von MaxP bm. 0,Ol. Ein a n k m m d e s Paket hat eine Chande von 99 aus 100, an diesem Pwlkt in dEe IXkmchlange zu jedem na&olgcnden Paket, das nicht verworfen wird, d 6 h t sich P wem 50 Pakete ohne Verlust angekommen sind, hiittc sich Pauf 0,02 ver
TempP ist die Variable, die auf der y-Achse in Abb. 6.17@&net
f
MaxP Avgien
I
MinThregh
MaxThresh
uawrrhrscheidkhen FaU, dass 99 .Pakete ohne Verlust angektmmen sind, P 1,W& das nächste Paket mit Sicherheit verworfen wird. Wichtig an Teii des Algorithmus ist,dass er eine gkicbäßigere zeitliche V d u n g von
lusten sicherstellt. t.-iDa RED ein& kleinen Prozentsatz von Paketen verwirft, wenn Avglen den Wert [a. *UnRinshdd iihschreitet, waden hoffeadkh e h paar TCP-Verbindungen F veranlasst,.ihre Femteqpö$en ni reduzieren, was wiedemm W einer RoduWeRate führt, in & Pakete beim b t e r ankommen. Paus alles gut geht, wird gesenkt und O&;ei'kn vermieden, Die War~eschlangent'bgekann kurz gehalwährend der Durchsatz hoeh bhibt, weil nur ein paar Pakete verworfen 1
Da RED mit einer Hieit1'idi durch-ttliichtn Warteschiamdämte arbeitet.
*
unmittelbare W a d m d b - viel länger ais AvgLer~sein. Wem in dieein Paka d O m t und le& Platz da& vorhgndcn muss es wmrdcn Wenn dies passiert, arbeitet RED MTail-Drop-Modus. Eies der Ziele von -Ve~halten m ~ c h szu t vermeiden. akte-rvon vmleihtdem Algorithnius ein interessantes Me RED Pakete z u f ~ ~ v e m i r fist t , die W&rsch~chkeit,dass RED mer, eines oder mehrere Pakae eines bestimmten Datenfiusses zu verwerferi, in . aromrti.onal zu dem hndbreitenanttil, den dieser R a t d a s s momentan an r erhäk. Der Gnind iiegr darin, dass ein Datedusaq der eine relativ on Paketen sender, mehr Kandidaten füL* d l i g e a Vemerfen bereirist eine faire ~sourcenzuteilungin RED ansatzweise eingebaiit, sf& präwse ist. TWmbld, UaxlP und Weißhi, -den viele Andysen durchgefüfirt, um die W s n i n g g ~ o n(Durchgaallrer2ijg-ng-Vah'ältni.s zu optimieren. Die Lei[ m g d k w Pmameter wtxrde ebeddis durch Simulation bestiltigt, und der ~Mjprithmushat sich ab nicht ÜbermliiGg emgfindzich auf Parameterändmgen hesen, W ~chtigist die Tdcht, dass aiie diese Anaipgen und Wutationen .POB eher b e s t h m h C l ' l 9 1 w ~ i m dcr Netzwerklast abh'ängen. Der wirkiic&: Bdgta%von RED ist & M a s m u s , durch den die Rourer ihre Warte' w h i a q p h g e gesparter vmatten ki&iken. Die Definitbn dessen, was genau ehe @de ist, hangt vom Verkehrsmix ab und ist imxner .. soEh Thanr von Pa~schmgsarkitm, wobei immisdien informationen aus realeii RED-lnstailationen im Internet gesammelt weiden.
1
beachte die Einstehng der beiden Grenzwerte MinThreshdd und MaxThreshoM. Verkehr relativ bursty, soke MinThrsshoki ausreichend groß sein, um die , auf einem akzeptabel hohen Maß zu halten. Außerdem sollte die
. den
beiden Grenzwerten gr6&r als die typische Erhaung der &biu>.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-'
<
Quelle
RM-Zetlen +J-+
Virtuelles Virtuelle Ziel (VD) Quelle (VS)
6.27: ABR-VC mit segmentierten Kontrollschleiien unter Verwendung eher virtuellen Quelle
und eines virtuellen Ziels
Für die Art, wie ein Switch tatsächlich ABR implementiert, besteht viel Flexibilität. Im allgemeinen werden proprietäre Algorithmen benutzt, um die Raten in RM-Zellen auf ihrem Weg durch die Switche auf der Grundlage verschiedener Informationen, 2.B. der aktuellen Pufferbelegung und der gemessenen Ankunftsraten auf allen VCs sowie den zugeteilten Raten auf diesen VCs (die nicht unbedingt mit den gemessenen Raten übereinstimmen müssen), zu setzen. Genau wie die Algorithmen für die Uberlastkontrolle versuchen auch diese Algorithmen, den Durchsatz zu maximieren sowie Verzögerung und Verlust niedrig zu halten. Ein ungewisser Aspekt von ABR ist die Interaktion mit den Mechanismen für die Oberlastvermeidung'von TCP. Diese Mechanismen sind auf der Grundlage von Erfahrungen fein abgestimmt und funktionieren unter der Prämisse, dass im Netzwerk nichts Exotisches passiert. Wenn man Pakete zu schnell sendet, werden einige verworfen. Bei ABR kann man sich vorstellen, dass die VS möglicherweise Pakete verwerfen muss, während sie auf die Rückkehr einer RM-Zelle wartet, auch wenn im Netzwerk eigentlich keine Überlast vorliegt. Bei Drucklegung existierten die meisten Erfahrungen mit ABR nur unter Simulations- und Laborbedingungen, während praktische Erfahrungen noch sehr begrenzt vorlagen.
; '
j L ,
i
5 !i I
F
:'
Wir beenden unsere QoS-Diskussion, indem wir eine Kehrtwendung machen und zur TCP-Uberlastkontrolle zurückkehren, diesmal aber in Zusammenhang mit Echtzeitanwendungen. Wir e r i ~ e m uns, dass TCP das Uberlauffenster des Senders (und folghch die Rate, in der er übertragen kann) als Reaktion auf ACK- und TimeoutEreignisse anpasst. Eine der Stärken dieses ~nsatze;ist, dass er keine Zusammenarbeit von den Routem des Netzwerks erfordert; es handelt sich um eine rein hostbasierte Strategie. Eine solche Strategie ergänzt die hier betrachteten QoS-Mechanismen, weil (1)Anwendungen bereits heute hostbasierte Lösungen benutzen können, bevor QoS-Mechanismen weitläufig installiert werden, und (2) es auch bei voll installiertem DiffServ immer noch möglich ist, eine Router-Warteschlange zu überbuchen (oversubscribe) und Echtzeitanwendungen auf vernünftige Weise reagieren sollten, falls dies eintritt.
.
V
Obwohl wir den IJberlas&ontrollalgorithmus von TCP voll nutzen r n ö ~ net sich TCP selbst nicht für Echtzeitanwendungen. Ein Gnmd ist, dass TWi zuverlässiges Protokoll ist, während sich Echtzeitanwendungendie durch tragung eingeführten Verzögerungen oft nicht leisten können. Was würde deren, wenn wir die Oberlastkontrollmechanismusvon TCP abkoppe TCP-ähnliche &rlastkontrolle zu einem unniverlhsigen ProtuIroll wie fügen würden? Wir würden das Ergebnis UDP+CC für »UDPPlus Conges trol [Oberlastkontrolle]cc nennen. Könnten Echaeitanwesdungen UDP+CC Einerseits ist dies eine attraktive Idee, weil sie Echtzeitstriime d würde, fair mit TCP-Stlömen zu konkurrieren. Die (heute aktuelle) dass Videuanwendungen UDP ohne jegliche Form der Oberlastko und folglich von TCP-Flüssen Bandbreite stehlen. weil diese sich bei einem ührh reduziekn. Andererseits ist das SägeZahnverhalt& d a von TCP (siehe Abbildung 6.9) für Echtzeitanweadun dass die Rate, in der die Anwendung überträgt, ständig ab- und zunimmt. Im sau dazu funktionieren Echtzeiranwendungen am Besten, wenn sie Wie deic' n. Bige Obertragungsrate kber eine relativ lange Zeitdauer beibehalten können. : Ist es möglich, das Beste beider Welten zu erreichen: Kompatibilität mit Uberladkontrolle der Fairness halber und Wahrung einer gleichmäßigen gungsrate mgmsten der Anwendung? Neuere Arbeiten deuten darauf hin, Antwort »ja* lautet. Insbesondere wurden mehrere so genannte TCP-kund Oberla~tkontrollal~orithmen vorgeschlagen. Mit diesen Algorithmen werden 2 Hauptziele verfolgt. EUKs ist die langsame Anpassung des Oberlau&naters. geschieht &ch Anpassung über relativ längere Perioden (2. B. eine R n ) der Bas9 &zelner Pakete. Dadurch Iässt sich die lkrtragungsrate glitten. 3 zweite Ziel ist es, in &m S h e TCP-freundlich zu sein, dass konkurrierende TE Flüsse fair behandelt werden. Diese Eigenschaft wird 4B i t ddurch sichergc das Verhaltn des Flusses an eine Gleichung anpasst,, die das Verhalten modelliert. beshlb wird dieser Ansatz manchmal als gieichungsbasieae konuolle (Equation-based Congestion Lomrol) bezeichnet. Für unsere Zwecke ist die ~ e m w eGleichtum d e r in&mma.nt als ihre Farm:
~
W
W
Rate.=
1 RTT
Um dieser Form zufolge TCP-freundlich zu sein, muss die Obertragungsrate urga kehrt proportional zur Roundtrip-Zeit ( R n ) und die Quadratwurzel der 1 lustrate (p) sein. Den interessierten Leser verweisen wir auf den Abschnitt ,W&$ führende Literatur* am Ende dieses Kapiteh mit E i l h e i t e n übdr das vollstär+ Modell. Mit anderen Worten: Um aus dieser Beziehung einen Oberlastkontra chanismus bilden zu können, muss der Empfänger periodisch die beobachtete lustrate zurück zum Sender melden (2. B. könnte er melden, dass es ihm nicht g gen ist, 10% der letzten 100 Pakete zu empfangen). Der Sender muss da Senderate nach oben oder unten berichtigen, sodass diese Beziehung we
b
616 Z u s m m ~ n g ,I 517
greift. Selbstverständlichobliw M dwie vor der Anwendung, sich diesen h d e m g e n in der vediigbaren Rate anzupassen. Wie wir im nächsten Kapitel aber sehen werden, sind viele k h t z e i t a n w e n d ~ nrecht anpassungsfähig.
6.6 Zusamm8~fassring Wie wir gerade gesehen haben, ist die Ressourcenzuteilung nicht nur ein zentralesL sondern auch ein schwieriges Problem im Bereich der Rechnervernetzung. In diesem Kapitel wurden zwei Aspekte der Zuteilung &n Ressourcen untersucht: Erstens die Oberlastkontrolle, mit der eine globale Verschlechterung des Dienstes verhindert werden soll, wenn Hosts mehr Ressourcen anfordern, als im Netzwerk verfügbar sind. Zweitens die Bereitstellung unterschiedlicher Dienstgüte für Anwendungen, die mehr Zusicherungen brauchen, als vom Best-Effort-Modell bereitgestellt werden kam. Die meisten Mechanismen für die Uberlastkontrolle zielen auf das Best-EffortDienstmodell des heutigen hternet ab, wobei die primäre Zuständigkeit fiir die Uberlastkontrolle auf die Endknoten des Netzwerks fällt. Im typischen Fall nutzt die Quelle eine Form von Feedback - entweder implizit vom Verhalten des Netzwerks erlernt oder explizit von einem Router gesendet -,um die von ihr ausgkhende Last auf dem Netzwerk anzupassen. Genau dies bewirk der Mechanismus für die Uberlastkontrolle von TCF. Unabhängig von den Aktivitäten der einzelnen Endknoren implementieren die Router eine Queuhg-Disziplin, die regelt, welche Pakete übertragen und welche verwarfen werden. Manchmal ist dieser Queuing-Algorithmus entsprechend ausgefdt, um Verkehr differenziert zu behandeln (z.B. WFQ). In anderen Fällen versucht der Router, seine.Warteschlangediingezu überwachen und signalisiert dem Quell-Host, wenn eine Oberlast bevorsteht (z.B, RED-Gateways und DECbit). Neue, noch in der Entwicklung befindliche Methoden für die Bereitstellung von Dienstgüte zielen M Wesentiichen auf mehr als die reine Uberlastkontrolle ab. Sie sollen es Anwendungen mit breitgefächerten Anforderungen hinsichdich Verzögerung, Verlust und Durchsatz ermöglichen, durch neue Mechanismen im Innern des Netzwerks entsprechende Garantien zu erhalten. Der Ansatz der Integrated-Services erlaubt es einzelnen Anwendungsdatenflüssen, ihre Anforderungen an die Rauter mit Hilfe eines expliziten Signalisiemngsmechanismus (RSVP) zu spezifizieren. Demgegenüber werden Pakete beim Ansatz der Differentiated-Services in einige Klassen gruppiert, die in den Routern unterschiedlich behandelt werden. Während die von ATM angewandte Signalisierungsich stark vom RSVP unterscheidet, besteht Ähnlichkeit zwischen den ATM-Dienstklassen und den Integrated-Services. 1.
,
Aus globalerer Sicht muss man sich die Frage stellen, wie viel man vom Netzwerk erwarten kann und wie viel Verantwortung letztendlich auf die Hosts fällt. Die sich neu abzeichnenden, auf Reservierung basierenden Strategien weisen sicherlich den Vorteil auf, dass sie vielfältigere Formen von Dienstgiite bereitstellen als die
I
von Dienstgüte zu unterstützen, ist Roater des Netzwerks zu verlagern überiastkontrolle von Ende zu wahrscheinlich. TCP und die vielen Fällen benötigen sie unwahrscheinlich, dass aiie dem Intemet genau den gie implementieren. Und schließlich hat es den Anschein, dass die Endpunkte sich terhin vorwiegend um sich Letztendlich sollten wir n vergessen: Möglichst e gern auf die Ränder
auf Integrated-Services basierenden Netzwerk erforderlich ist. Die meisten Service-Provider haben sich bisher geweigert, ihren Kunden RSVP-Re
6.7 Weiterführende Literatur Die empfohlene Leseliste für dieses Kapitel ist lang. Sie spiegelt die Breite int
einer ausführlicheren Beschreibung dieser Mechanismen, einschließlich Analysen ihrer Effektivität und Fairness, gelten diese Arbeiten als P weil sie die nötigen Einblicke in das Zusammenspiel der verschiedenen Mech
,
n
s
.
s
~
i
s
~
~
~
~
~
.
~
o
r
d
~
d
e
r
e
r
1
c
~~15aerMIck&el~WW1ps~tlf~Qbw~d&WeaSs Bcieag be%gb& der E a W u o g von QoS-FiUiigkeitcn im In: anntsehen ist. t' : -1% M. und K iL:FIm cmtrol: A compamthe SUttrCJT, IEEe Tran-
.
h
CC3M-m4), S. S53-$73,'kpd 1980, Re~~A,Kashreo,¨~S~Anapslsand~ofa~~ &uri&& Proceedings of &e SIGCOMM '89 Symposium, S. 1-12, Stpter~a-
M -
OB t3mmtmi&w2
+
ber 19.89.
J n
ii Jmbson, V.:'Congestion avd-
& d Jain, R: 4 buisry feedback scheme for wngadgn avoinmvorh rW a immdaks m r k hyeq ACM T & sactiom wa C ~ t t ~ p wSystem, ty B@), S. 158-181, Mai 19%. ~dS. in;d J M ~ ~ V.S: O ~ cnr~gdewtioa ptwiap k r avoidance, IBEHACM Tramuacttrn on Nctwding, I(+, S. 397-4 1993.
I
'
:
md couatoi, hcmdiegs of&e iFIGCOAM
.
'88 SymgosIrrm, S. 314-329, August 1988.
,
=V&
,;
D., She* S. uid Zhaqg, L.: Sopponiig realipPktkms ia ui . integrated serviccs packet networks Architechtm and P&h@ t# tbe SIGCOMM '92 Symposkrn, S. 14-26, Augcist 1992. @er diese empfslifemn Arbeiten hinaas gibt es eint' FMeIweiteter wiehVorä.ffendlchm über Ramcc?nzuteilung. Zwei friihe Arbeiten von K l e i n r d We791 und JAUa£82] a e a a dm Grundstein für idie Verwendung ;von Leimwg als M& fiir die l?,Bekthit&t der ~ t k o n t r o l l ei.n Jain Ud911 werden v e d i b &.W Fragen bauzgwh l . e h m g s k danmbu ehe Beschrribuag m n fpiit. Ihirmsi-Indeq behandeit. Weitere E&tzeihriiten iibw TC2 V q p fuiden sich in B m h o Unri Petemon ,: fW891, &g&miglgendazu bri La ni1. [i.BWO2]. Die rrnchtdem, i~ A W t t ., 6.4 &g&hden Techniken zur ~ e z l m e i d w z i finQenQen g srch in Whg rzrü3 Crowmft [PPWZ, WC911 so& Uaig91, wobei die zuerst genannte ktbeit einen besoa- .i dem guten Uberblick über OberlastVermeidungauf der Gnmdlage eines allgemeinen Ykmdndnis& Wert, wie sich das Netzwerk bei ein& hdxmah* &W : &dm.~EinigeVors6Mäge zu h d m m p des RED-Algofinden sich W Ltn '3 und Mo(.F& RED" - PRED) sowie bei Rag a al. Emc.SS94] (aiu + selbst-konfipriernde Variante von RED). Die Pakeipar-Technik \ r ~ nAbs&itt < 6.3,2 wird ausfiihriicher In Keshv fKe6:91] be9chtieben. Die in Abschnitt 6.45 er~ä~.tertt! Technik des Parriai hcicet D'iscard wird von Rompaow und Floyd [RE941 4 behandelt. -% Der voltgdagme E C N - m d wurde von Ramkishmq Hoyd d absfa&m W 1 J. BezdIh~w äese An&tze zu wcdgeimintrn, ikdm-sidt' 1 bei h i c a et al. [SSZ9$],Low et al. -21 und b w b i et al. [KHR02]. - .. 3
iC&
; '
g
'
'T
4
Neuere Arbeiten über Pak-Schedding bben die oben genante über faires Queuhg erweitert. A u s g t m W W p i & ddik sinid a.a, S~oicaund Z h n g [SZgn, Bennett und Z hae [BZ96] sowie Goyal, V h und [GVC%]. Zahlreiche weitere Artikel wurden tiber die hchitektur der Integratedveröffentlicht. daruntcr ein überblick von Bra&n u.a iBCLI941 und cete bung von R& in Zhang u r . [ZDE+93]. Clark [ ~ l a 9ist i die irstf xbeit, Thema der Diffetentiated-Senk5 erstmals behandelte und den RI( Mecha sowie die allgemeine Architektur der Differentiated-Services eidhrte. Zn dinm Amchlllssarbeit präsentieren Clark und Fang [CF981 einige Simulationsetge [BBX=+98]definiert die Architektur der Differentiated-Services, während [ D C B W das EF-per-Hop-Verhalten beschreibt. SchlieSfich wurden mehrere TCP-freundliche Oberlastkonuoil-Algorithmenvwa geschlagen und auf Eehtzeitanwendungen hin optimiert. Hier sind ( Al801 von Floyd et ql. [FHPW~~], Sisalem und Schulminne [SS98], Rhee al. [R d Rtjaie et al, [RHEB9]zu nennen. Diese AIgoritlunen bauen auf dem friihma, ~ i c h ~ h4odeli ~ ~für einen e n TCP-Duirhsatz von Padhye et al. [ P a * auf. t A
1, DmdW Peihinm m d w d.Ho$t-zu-Wost- d e r
*w*,1
. Fuak@n von -für
sra 00s
I
'
die fo pimmm wmdris D i s LP.d f e ~eiige\ap@h&d# s
I
Anzahl v.09 Stationen (24)gern- w%Pden, die j e & zu einen besdmate~t Zeitpunkt zum Senden bereit sind. Dies impliziert, dass es dabei immer eine Station gibt, die zum Senden bereit ist (außef bei N = 0, was Sie ignorieren können). Gehen Sie davon aus, dass jede Station jeweils nur ein Paket ni senden hat. a. Ethgmt: Die ~&WCBIGiphd 2) S Zcl-
P
a
~ bmiigt ö ~(wie ia Obung 52 von
und wem N Stadmen.äbi&rttesen wollen, k i l g t
die durchschnittliche VenrSgwmg, bis eine Station erfolgreich ist, N/2 Zeit-
>
&U@.
b. Token-Ruig: TRT = 0. 4, Gegeben seien zwei Hosts A imd B, die über einen Router R vtrbunden sind, Die A4k-Leitung hat eine unendliche Bandbreite. Die R-B-Zeitung kann e h M e t von R ist unendlich. Die*Laszist als pro Sekunde senden. Die W-Mange Anzahl von Paketen pro Sekunde zu.messen, die von A nach B werden. ~ ~ Sie je ehm e Graphen n &Dwdsatz hVergleich zur Last .ynd Venöserung lim Vergleich zur Lass, bm. e r k I h Sie fiir den Fall, dass kein gezeichnet werden kann,warum dies so ist. W&e eine andere Methode zur Messung der Last besser geeignet?
.
I
5. Ist es für TCP Reno mbglich, einen Zustand zu erreichen, bei dem die M a s t fenstergröge viel grö%erals (z.B. doppelt so grog wie) RTT X Bandbreite ist? Ist dies wahrscheinlich? 6. Betrachten Sie die Anordnung von H- H und Rmtern R und R1 in Abb. 6.28. Alle Le'itungen sind Vollduplex und alle Router sind schnekr als ihre Leitungen. Zeigen Sie, &M W1 Wt 6 b e t 1werden ~ ~ +kannund chw & jeden beliebigen anderen Router R ein Verkehrsmuster gefunden werden kann, durch das nur dieser Router überiastet wird.
Abb. 6 a Diagramm fiir Obung 6
Methode zur Überlai3tkontrde führt zu einer Reihe konkurrierender Datenflüsse, die folgende Durchsatzraten erreichen: 100 KB/s, 60 KWs, 110 W s , 95 KWs und 150 KB/s.
7. bngenonimen, eine
.
-
a. Berechnen Sie den Faimessindex für diese Methode.
i
b. Addieren Sie nun einen Datenfiuss mit einer Durchsatzrate von 1000KBI, den obigen und berechnen Sie den Fairnessindex neu. "
8. Beim fairen Queuing wurde der Wert Si als Zcitstempel interpretiert, und mr@ ais die Zeit, wem das i-te Paket ~dt der Obemagnng fettig ist. Gelsen Sie eipOg Inteapretation von Pi für das gewichtete faire Queuing und eine Formel dafixt Bezug auf Si-*, Ankunftszeit Ai, Pabgröf3e Pi und eine dem D a t d m s zug@ wiesene Gewichtung W. 9. Fiihren Sie ein Beispiel da& auf, wie das nicht präemptive Vorgehen bei Emplememkrung des fairen Queuing zu wier anderen hihenfoige Pakerübenraguag als beim bitweisen Round-Robin fiihrt,
& dar 1
4
10. Irogenommen, ein Router hat drei EiqyngsdatonBusse und hAuagpi(g. empfbgt die in Tabelle 6.2 a&efikren Pakete etwa zur &5chen Zeit Bo! angegebenen Reihenfolge innerhalb eines Zeitraums, in dem der Atsgaqp-Bd besetzt ist, alle Warteschlangen aber leer sind. Fühten Sie die Reihenfolge auf, ia der die Pakete übertragen werden, und gehen Sie dabei von folgenden A d mtn aus:
cfB8F _)
<
a. Faires Queuing
b. Gewichtetes faires Queuing, wobei Datenfluss 2 die G e w i c h ~ g2 und anderen beiden Gewichtung 1haben.
& .'t
Paket
L*
k
:
J 11. Angenommen, ein b u t e r hat drei Eingangsdatenfiiisse und einen Ausgang.,m
empfängt aile in Tabelle 6.3 aufgefiihrtcn Pakete etwa zur gleichen Zeit in d# angegebenen Reihenfolge innerhalb eines Zeitraums, in dem der Au~gang--P& besetzt ist, alle W a r t d a n g e n aber leer sind. Führen Sie die Reihenfolge aufTh der die Pakete übertragen werde4, und gehen Sie dabei von folgenden Anailibe WD aus:
b. Gewichtetes faires Queuing, wobei Datenfluss 2 doppeltes Gewicht wie Fluss 1, Ftnss 3 1,s-md wviei M& wie F h 1 h b e n soll. BeaAm Sie, dass Zumnun-ge in der R e i k h 1 muss ~ 1,2,3 aufgeht werden miissen.
1Unihdl: Pakete für Obung 11
12. Angenommen, die Drop-Policy eines Routers ist dergestalt, dass das Paket mit den höchsten Kosten verworfen wird, wenn Warteschlangen voll sind, wobei er die .Kosten(( eines Pakets als das Produkt seiner Größe mal der vdbleibendan Zeit, die es in der Warteschbge verweilt, definiert. (Manbeachte, dass es bei der Berechnung der Kosten keine Roile spielt, ab die Summe der Gröi3en der fniheren Pakete an S d e der verbleibenden Zeit benutzt wird,) a. Welche Vor- und Nachteile können sich durch eine solche Policy im Vergleich zum Tail-Drop ergeben? b. Führen Sie ein Beispiel einer Sequenz von in der Warteschlange stehenden Paketen auf, bei dem sich das Verwerfen des Pakets mit den höchsten Kosten vom Verwerfen des grögten Pakets unterscheidet. C.
Geben Sie ein Beispiel an, bei dem zwei Pakete ihren jeweiligen Kostenrang im Verlauf der Zeit wechseln.
13. Zwei Benutzer, von denen einer TeInet verwendet und der andere Dateien mit FTP sendet, schicken ihien Verkehr über Router R ab. Die ausgehende Leitung von R ist langsam, sodass sich in der W a r t d a n g e von R immer Pakete von beiden Benutzern befinden. Erläutern Sie die je&eilige Leistung aus Sicht des Telnet-Benutzers, wenn R für diese beiden Flüsse folgende Queuing-Policy anwendet: a. Round-Robin-Dienst
b. Faires Queuing
1
8
C.
6 ~ ~ t r d k u Rossourcenzutdiung n d
-
Modifiziertes faires Queuing, wobei wir als Kosten nur die Daten-Bytes wd nicht IP- oder TCP-Header betrachten. Betrachten Sie nur abgehenden Verkehr unter der Annahme, dass Teinet-Pakete 1Daten-Byte, Fi'P-Pakete 512 Daten-Byte und alle Pakete Header von'. 40 Byte haben.
Gegeben sei ein Router, der drei Flüsse verwaltet, auf denen Pakete mit k o m ter Größe zu den folgenden Zeitpunkten ankommen: Datenfluss A: 1,2,4,6,7,9,10 Datenfluss B: 2,6,8,11,12,1S Dateduss C: 1,2,3,5,6,7,8 Alle drei Datenflüsse benutzen die gleiche abgehende Leitung, über die dw Router ein Paket pro Zeiteinheit übertragen kann. Gehen Sie davon aus, dasunendlicher Pufferplatz vorhanden ist. a. Der Router implementiert faires Queuing. Nennen Sie für jedes Paket dui' Zeitpunkt, wann es vom Router übertragen wird. Die Ankunftszeiten sind der Reihenfolge A, B, C zu lösen. Beachten Sie, dass der Zeitpunkt T = 2 d& FQ-Uhrzeit Ai = 1,s entspricht.
#
b. Der, Router implementiert WFQ, wobei die Datenflüsse A und B einen gleichen Anteil der Kapazität erhalten und Datenfluss C die doppelte Kapgzi&b von D a t e d u ~A erhält. Nennen Sie für jedes Paket den Zeitpunkt, wann ea übertragen wird. Gegebqn sei ein Route4 der drei Flüsse verwaltet, auf denen Pakete mit konstanter Größe zu den folgenden Zeitpunkten ankommen: Datenfluss A: 1,3,5,6,8,9,11 Datenfluss B: 1,4,7,8,9,13, 15 Datenfluss C: 1,2,4, 6, 7,12 Alle drei Datenflüsse benutzen die gleiche abgehende Leitung, über die q e ~ , Router ein Paket pro Zeiteinheit übertragen kann. Gehen Sie davon aus, dam unendlicher Pufferplatz vorhanden ist. a. Der Router implemefttiert faires Queuing. Nennen Sie für jedes Paket derer Zeitpunkt, zu dem es vom Router übertragen wird. Die Ankunftszeiten s i d ; in der Reihenfolge A, B, C zu li$sen. Beachten Sie, dass der Zeitpunke T = % der FQ-Uhrzeit Ai = 1,333 entspricht. b. Der Router implementiert WFQ, wobei die Datenflüsse A und C einen gleichen Anteil der Kapazität erhalten und Datenfluss ,B die doppelte Kapazitgt
von Detenftuss A e M t . N übertragen wird.
Sie für jedes Paket den Zeitpunkt, wann es
TCP i m p b h eMe,Emeimmg, die viel gra&rc Fenstergs& & 64 IEB zu&=. Gehm Sic davon aus, dass Sie diescs erweiterte TCP über eine 1-Gbids-Leimit einer Ikz@xmg 8on 100mi benutzen, um eine 10-MB-Datei zu Bbemagen, und dass das TtP-Empwfenstet 1 MB beträgt. mscn Cit high A*@ wenn TCP 1-KB-P&- setKkt (Mdkeine Obetlast und kein P M i ~ svorkommen): t
16. ~o~
a. Wie viele RTCs dauert es, bis der Slow-Start das Sendefenster auf 1 MB öffnet? b+Wie viele RlTs dauert es, um die Datei zu senden? C.
Welcher effektive Durchsatz ergibt sich für den Trvsfeq wenn die Sendezeit der Datei durch die Anzahl der erforderlichen m s , multipliziert mit der Leitungsven&emg, an~egebenwird? Welcher prozenmaie Anteil $n der Lei~ngsbandbreizewird genutzt? .*
17.&achten Sie einen einfachen Algorithmus zur Überlastkontrolk, der Additive increase / Mdtiplicative Decrease, jedoch keinen Slow-Start q d Paket- statt Byte-Einheiten benutzt, und der jede Verbindung mit einem Oberiastfenster beginat, das einem Paket entspricht. Beschreiben Sie diesen Algorithmus ausfühlich. Gehen Sie davon aus, dass die Verzägemng nur aus Latenz besteht und beim Senden einer Paketgnrppe nur ein einziges ACK zurückgegeben wird. Zeichnen Sie das @rlastfenster als Funktion von Roundtrip-Zeiten für den Fall, bei dem die folgenden Pakete verlorengehen: 9,25,30,38 und 50. Der Einfachheit halber gehen Sie von einem perfekten Tieout-Mechanismus aus, der ein verlorenes Paket genau 1R l T nach seiner &rtragung erkennt. 18.Berechnen Sie für die Situation von mung 15 den von dieser Verbindung erreichten effektiven Durchsatz. Gehen Sie davon aus, dass jedes Paket 1KB an Daten beinhaltet und dass die RTT = 100 ms beträgt. 19. Während des Additive Increase berechnet TCP ein Inkrement für das Uberlastfenster mit
. .
. Inkremtrnt = MSS X (~~!#Überlastlenster) PI
Erklären Sie, wanun die Berechnung dieses Inkrements jedes Mal, wenn ein ACK ankommt, nicht zum korrekten Inkrement fiihren kann. Geben Sie eine genauere Definitian für dieses Inkrement. (Hinweis: Ein bestimmtes ACK kann mehr oder weniges als die MSS-Datenmenge bestätigen.)
I
und
Unter welchen Umständen können grobgranulare Timeouts in TCP auch d m : noch erfolgen, wenn Fast-Retransmit benutzt wird? Angen
Zwischen A und B befiadet sich ein Router R. Die--Bandb6te ist 4& (d.h., Pakete .werden nicht verzögert), die &hrt abex W Bandbreitenvenögerung von 1 Paket pro Sekunde ein (d.h., 2 Pakete da-'I 2 Sekunden usw,). Bestäfigwgen von B nach R werden aber sofort gesendet, A. sendet Daten an B über eine TCP-Verbindung und benutzt dabei Siow-S-, allerdings mit einer beliebig großen Fenster@&. R hat eine lFate-. größe von eins, e u i i c h zu,dem Paket, das er sendet. In jeder Sekunde beim der Sender zuerst aokommende ACKs und reagiert Qnn auf Tim~~uh., a. Was wird bei oinu fest& Ti--Periode
von 2 Sekunden in T = 0.1,
Sekunden gesendet? ist die Leicung auf G m d vw T i t s jemab V
1
f
...,6 . ,
e
nutzt? b. Welche hdorun$en w b e n ri&,&&&t& ',i) ' . dengilt?
, ~ . j - p & o &m n 3
4-
Gegebeb seien A,'R und B aus der vorherigen Obung, außer dass die Wsdilade von R jcat eine Gr6& von drei Pakacn, zus&kh zu dem ge+& übertragenen hat. A beginrit b e Ve&dung mit HiUe des ~ l o w - ~ t a r t ' d einem unendlichen Ernpfagsfenster. Fasc-~err&unit erfolgt beim m+s Duplikat-ACK 4d.h. beim dritten A@ &m P-); das Timeou~-intqnv d ist h n W . ignorieren Sie Fas~R&v&. Bei VcRust &es P a k a 'ist die Fenstergrö& 1. Ersrellen Sie eine Tabeiie, die a g i l was A in den erstes 15 Sekunden empfängt, was A sendet, was R sendet, was sich in der W* schhnge von R befindet und was R veyirft. L
J
Angenommen, bei der R-B-Leitung in der vorherigen Obung ändert sich die Bandbreitenverzögermg in eine Ausbreiniagsverzögeruug, sodass die gung von zwei ~ a k d " & ~1 Sekunde dauert. Führen Sie auf, was in den mtd 8 S e k d e n gesendet und empfangen wird. Gehen Sie von folgend& aus: Statischer Timeout-Wert beträgt 2 Sekunden, Slaw&att wird bei e h T k u t benutzt, und die in etwa zur gleichen Zeit gesendeten ACKs werden kongidldiert. Beachten Sie, d a s die Warteschlangutgroße von R irrelevant ist (wam1.12). Angenommen, Host A erreicht Host B über die Router R1 und R2: A-Rl-R2-B. F a s t - R e t r d t wird nicht benutzt, und A berechnet T i u t ak 2 x kirnatedKlT. Gehen Sie davon aus, dass die A-R11 und R2-B-Leitungs ehe unendliche Bandbreite haben, während die R1-R2-Leitung eine Bandbrei-
ttnvmz6gerung mm 1Wcw& pm W e t bei Datenpahm (mcht aber AC&) e i d h t . Beschreiben alc: e h %emrio, bei .dem die Eil-R2-Leitung &ht zu lOOK genutzt wirb, obwohl A imrnorDaten nun Senden anstehen hat. Hinweis: W e n Sie deilvm W, dass sich dasOberlas&werwmA von Nauf N + 1 erhöht, wobei N die W a m s c h b g q ö B e von 81 ist.
Ihre Client-Hosts siad dir& Sie ehd ein Intcrac~~ScrviCcBrovider;-
an Ihre Rou-
tcr ongeschhmn. Sie wissen, dass einige Hats expimeadle TCPs bmben
und hegen den Verdacht, das euiige ein »gierige%#TCP ohne Oberlastkontrolle verwenden. Welche Messungen könnten sie an Ihrem Router durchführen, um fesriustellen, dass ein Client überhaupt keinen Slow-Start benutzt? Könnten Sie erkennen, ob ein Client zwar beim Start, nicht aber nach einem T i e o u t SlowStart b m ?
Um TCP-Staukontrollmechnism~'zu umgehen, bedarf es in der 'Regel einer expliziten Kooperation mit dem Sender. Stellen Sie sich aber die Empfangsseite einer umfangeichen Datevor, bei dem ein TCP verwendet wird, das bei den Paketen ACKs sendet, die noch nidit angekommen sind. Es könnte dies tun, weil entweder nicht aile Daten erforderlich sind oder weil die Daten spiiter leicht erneut übertragen w e r k können. Welchen Einfluss hat dieses Empfänger-Verhalten auf die F l u s s k o n t r n ~ s m e nder Verbindung? Können Sie einen Weg aufzeigen, bei dem TCP so modifiziert wird, dass die Sender keinen Vorteil aus diesem Verhalten ziehen können? Betrachten Sie die TCP-Zeichnung in Abb. 6.29. Identifizieren Sie Zeitintervalle, die Slow-Start beim Start, Slow-Start nach einem Timeout und Oberlastvermeidung d u & Additive baease darstek. Erklären Sie, was von T = 0,5 bis T = 1,9 passiert. Die TCP-Vebsian, die diese Zeichnung erzeugt hat, beinhaltet ein Merkmal, das im TCP in Abb, 6.11 fehlt. Um welches Merkmal handelt es sich? &i dieser Zeichnung und bei der in Abb. 6.13 fehlt ebenfalls ein Merkmal. Um welches handelt es sich hierbei?
Abb. 6.2e TCP-Zeichnungfür obung 28
29. Sie führen gerade einen Download einer großen Datei über e i n e . 3 - W s - T e b leitung durch. Ihre Software bietet einen Zähler für die durchschnittlichen Byte pro Sekunde an. Auf welche Weise fluktuiert dieser Zähler durch TCP-hrlastkontrolle und gelegentliche Paketverluste? Gehen Sie davon aus, dass nur eh Drittel der gesamten RTT in der Teief~nieitunganfällt.
30. Angenommen, TCP wird über eine verlustbehaftete Leitung benutzt, die ia Durchschnitt ein Segment 'van vier verliert. Die BandbreiteNerzOgmqp Fenstergröße ist wesentlich größer als vier Segmente. a. Was passiert, wenn wir eine Verbindung starten? Erreichen wir jemals d& Phase des Additive Increase der Oberlastvermeidung? b. Hätte TCP ohne Verwendung eines expliziten Feedback-Mechanismus m i m der Router eine Möglichkeit, solche Leitungsverluste von Oberlastverlus~~ä zu unterscheiden, zumindest kurzfristig? 1 C.
Angenommen, TCP-Sender erhalten zuverlässig explizite Oberlasthinweb von Routern, und die Leitungen sind wie oben. Wäre'es machbai; Feme$größen zu unterstützen, die viel größer als vier Segmente sind? Was m h m TCP unternehmen?
31.. Angenommen, zwei TCP-Verbindungen teilen sich einen Pfad durch einen Rou. ter R. Die ~artekhlan~engröße des Routers beträgt sechs Segmente. Jede Vn. bindung hat ein stabiles Oberlastfenster von drei Segmenten. Diese Verbindgen verwenden keine Oberlastkontrdle. Nun wird eine dritte ~ ~ ~ - ~ e r b i n d ~ n ebenfalls durch R, aufgebaut. Sie benutzt ebenfalls keine Oberlasrkon~olle. Beschreiben Sie ein Szenario, bei dem die dritte Verbindung zumindest für eine Weile nichts von der verfügbaren Bandbreite erhält, während die ersten bcidca mit jewyils SO%.fonfahren. Spielt es ehe Rolle, ob die dritte Verbindung Slow Start benutzt? Wie kann Oberlastvermeidmg auf Seiten der ersten beiden Ver bindungen heuen, dies zu lösen?
32. Angenommen, eine TCP-Verbindung hat eine Fenstergröge von acht Segrnentea und eine RTT von 800 ms. Der Sender übertragt Segmente in einer konstantem Rate von eins aile 100 ms, und der Empfänger sendet AcKs in der gleichkn Rate ohne Verzögerung zuriick. Ein Segment geht verloren, und der Verlust wPpel durch den Fast-Retransmit-Algorithmusbei Empfang des dritten D u p b . ACKs erkannt. Wieviel Gesarntzeit hat der Sender (im Vergleich zur verlustlos& Obertragung) an dem Punkt, wenn das ACK des neuübertragenen Segnest% schlieglich ankommt, verloren, wenn
a. der Sender auf das ACK von dem neuübertragenen verlorenen Paket wartet, bevor er das Fenster wieder vorwärts schiebt? b. der Sender die Ankunft jedes Duplikat-ACKs als Hinweis dafür benutzt, dasa er das Fenster um ein Segment vorwärts schieben kann?
33. In diesem Kapitel wird *kbtt@et, dass kdWve In-W ehe mmendige Bedingung'ist, uai einen smbien lthdmimus zut ObetIastkont~~lle %U cuerreichen. &schreiben Sie eine spedfiwht hotabilit3t, die entstehen kam, wenn alle Erhöhungen exponentiell sind, d$., wem TCP weiterhin nach der Erhahung des Uberlastfensters über deli Oberlastgrenzwert hinaus d m Slow-Start benutzt.
34. Diskutieren Sie dic rdi;rlven Vot- und Nachteile dcp M&e= eines P i e t s (wie beim DECbit-Mechanismus) im Vergieich zum Verwerfen eines P a k a (wie bei RED-Gateways). i
35. Bet~choenSie ein RED-C3atmay mit M a P = 0,02 und einer duEchschniurlichen Warteschlangenlänge genau zwischen den beiden Grenzwerten.
für count = 1 und wunt = 50. 'b. Berechnen ~ic*
*/
36. Betrachten Sie ein REDLCateway mit MaxP = p und einer durchschnittlichen Wmachlangenlä~gegenau zwischen den beiden Grenzwerten. a. Ermittein Sie .dieDrop-Wahrscheinlichkeit P-
für count = 1und count = 50,
b. Bestimmen Sie p derart, dass die ~ahrscheinlichkeitgleich a ist, dass keines der ersten n Pakete verworfen wird.
37. Erkken Sie die Idee hinter der Einsteiiung MaxThreshold = 2 X MinThrpehokl in RED-Gateways. k
38. Erklären Sie, warum in RED-Gateways MaxThreshoidin Wuklicbkeit g e ~ g eist r als die tatsächliche Gröf3e des verfügbaren Puffer-Pools. 39. Erklären Sie den f a n h t a l e n K o ~miriden t der Toleriemng von Burstiness und der Kontroile von Netzwerküberlast. 40. Warum erhöht sich Ihrer Meinung nach die Drop-Wahrscheinlichkeit P eines RED-Gateways nicht einfach linear von P = 0 bei MinThresh auf P = 1 bei MaxThresh?
41. In TCP Vegas wird ActualRate dadurch berechnet, dass man die in einem RITIntervall übertragene Datenmenge durch die Länge der R l T dividiert. a. Zeigen Sie, dass bei jeder TCP-Implementierung die in einem RlT-Intervall übertragene Datenmenge konstant ist, nachdem eine volle Fenstermenge gesendet wurde, falls die Fenstergröi3e konstant bleibt. Gehen Sie davon aus, dass der Sender jedes Segment sofort bei Empfang eines ACK überträgt, dass Pakete nicht verlorengehen und reihenfolgeerhaltend übertragen werden,
1
'
6 -mtdeund
Resseu~ilung
dass alle Segmente die deiche Grö%ehaben und die erste Leims auf deaa Pfad nicht die langsamste ist. b. Zeichnen Sie einen Zeitstrahl, der aufzeigt, dass die Datenmenge pro o b genannter RTT geringer als das Oberlastfenster sein kann. Angenommen, eine TCP-Vegas-Verbindung misst die RTT ihres ersten P a k a . und stellt BaseRTi danach ein. Dann fällt aber eine Netzwerkleitung aus und der gesamte nachfolgende Verkehr wird über einen alternativen Pfad mit der doppelten RTT umgeleitet. Wie reagiert TCP Vegas? Was passiert mit dem Wert , für das Oberlastfen~ter?Gehen Sie davon aus, dass E i n e Timeouts erfolgen d ß viel kleiner als die anfängliche ExpectedRateist. Betrachten Sie die folgenden beiden Ursachen einer Netzwerkverzögerung von . einer Sekunde (bei sofortiger:Rücksendung von ACKs):
-
-
Ein dazwischenliegender Router mit einer abgehenden Bandbreitenverzögerung von einer Sekunde pro Paket und keinem konkurrierenden Verkeht Ein dazwischenliegender Router mit einer abgehenden Bandbreitei1verzögenuig von 100 ms pro Paket und ständigem Auffüllen der Warteschlange mit 10 Paketen (von einer anderen Quelle).
.a. Wie könnte ein Transportprotokoll im Allgemeinen zwischen diesen beiden Fällen unterscheiden? b. Anginommen, TCP Vegas sendet über die obigen Verbindungen mit eh& anfänglichen tberlastfenster von 3 Paketen. Was passiert mit dem O b e r b fenster in jedem der beiden Fälle? Gehen Sie von EkeeRTT = 1Sekunde un8 ß = 1Paket pro Sekunde aus.
.
Führen Sie ein Argument an, warum das Problem der Oberlastkontrolle besm auf der Intemetwork- als alif der ATM-Ebene verwaltet werden kam, d i dest wenn nur ein Teil des I n t e r n m r k ein ATM ist. Wird Oberlast bei einem reinen IP-über-ATM-Netzwerk auf der Zellen- oder auf der TCP-Ebene bessea verwaltet? Warum? Zeichnen Sie auf, wie ein ATM-Switch PPD und EPD implementieren W e . Ist einer der beiden Mechanismen in nennenswertem Umfang einfacher? Betrachten Sie die Taxonomie von Abb. 6.23. a. Nennen Sie ein Beispiel einer Echtzeitanwenduag, die itrtolqant/ratetuldaptpv ist.
b. Erklären Sie, warum Sie von einet Anwendung, die Verluste toleriert, erwarten *den9 zumindest in gewissem Umfang ratenadaptiv zu sein.
. -A.
C.
,
L..
ea Qblm#m 1
331
Nennen Sie ungeachtet von Teil b ein Beispiel einer Anwendung, die als tolerant/nickt adaptiv betrachtet werden kann. Hinweis: Die Tolerierung sogar geringer Verluste qualifiziert eine Anwendung als verlusttolerant. Sie müssen ratenadaptiv als Fähigkeit interpretieren, sich an beträchtliche Bandbreitenänderungen anzupassen.
47. Der Obertragungszeitplan (Tabelle 6.4) für einen bestimmten Datenfluss listet für jede Sekunde die Anzahl der zwischen diesem Zeitpunkt und der folgenden Sekunde gesendeten Pakete auf. Der Datenfluss muss innerhalb der Grenzen eines Token-Bucket-Filters bleiben. Welche Bucket-Tiefe braucht der Datenfluss bei den folgenden Token-Raten? Gehen Sie davon aus, dass der Bucket anfangs a. 2 Pakete pro Sekunde b. 4 Pakete pro Sekunde TabeUa 6 4 Übertragungszeitplanfür Übung 47
J 48. Der Obertragungszeitplan (Tabelle 6.5) für einen bestimmten Datenfluss listet
für jede Sekunde die Anzahl der zwischen diesem Zeitpunkt und der folgenden Sekunde gesendeten Pakete auf. Der Datenfluss muss innerhalb der Grenzen eines Token-Bucket-Filters bleiben. Bestimmen Sie die notwendige Bucket-Tiefe D als Funktion der Token-Rate r, wobei eine positive Ganzzahl ist? Gehen Sie davon aus, dass der Bucket anfangs voll ist. Tabelle 6.5: Übertragungszeitplanfür Übung 48
-
49. Angenommen, ein Router hat Datenfliisse mit den in Tabelie 6.6 aufgekimen TSpms aqpt~ommen.Die Spedikationea beschreiben Token-Bucket-Filter mit
.'?
einer Token-Rate von r Paketen pro Sekunde und einer Bucket-Ti& von k keten. Alle Datenflüsse gehen in die gleiche Richtung. Der Router kar 0,l Sekunde ein Paket weiterleiten. a. Mit welcher maximalen Verzögerung muss ein Paket rechnen? b. Welche minimale Anzahl von Paketen des dritten Flusses würde der R< im Verlauf von 2 Sekunden senden, wenn der Datenfluss Pakete gleich in seiner maximalen Rate'sendet? nbdh6& TSwcs tür Obuna 49
50. Ein RSVP-Router verliert plötzlich seinen Reservierungszustand, bleibt abgesehen davon in Betrieb. a. Was passiert mit den vorhandenen reservierten Flüssen, wenn der Rc reservierte und nicht reservierte Flüsse über eine einzige FIFO-Warteschl abarbeitet? ,
b. Was könnte mit den vorhandenen reservierten Flüssen passieren, wem Router WFQ benutzen würde, um reservierten und nicht reservierten kehr zu trennen?
C.
Die E m p f i i diescr F b e weidm kgadyanfi f 0 t . b dass niak E b m k a n p mmem d. I F W SKI& Saeaaio a ~ &k i dem diesv frag? abgewiesen werden. I
51. BetMehten Sie den AWABR-VC in Abb. 6.27. Diest v h a d b Mntog wU SYEritch S2 in zwei S t e u d e n segmentiert.
a. Angenommen, die Resmurcenzu f&&tvo91 $%mchH 1 meidet dae hohe ~ & g hR+te. ~ Kun danach kommt bei S2 aber mf e h e W-Zelle an, die eine niedrige verhigba~g:Rate & die zweite Hälfe L e i i meidet.W'cheih Problem kam sidi $2 nun gegeziiibemhen?
b. Wenn S2 R.Mr van H1 e m p f a kann ez sie einfach zuiickhaiten, \aBE e r e r i n c e ~ l R h d 2 a a & ~ u J I d z w ü c k a 6 n d eW t. m W 2 ~ c k k wiSr8e S2 nun RMl zanibudw und damit seine R a ; a w p z S h i ~ n när falls reduzieren. Wgnrm kann eine solche 6 t r a t d e uncsvünsc$~:sein? weis: Denken Sie an den Zweck der s q p x m i m g in kleinere 4S-t
Was geschieht mit den Daten? Aus Sicht des Netzwerks senden Anwendungsprogramme einaninan der Nachrichten. Jede dieser Nachrichten ist ledigiich eine uninterpretierte Byte-Kette. Aus Sicht der Anwendung enthalten diese Nachrichten jedoch verschiedene Datesaxten - GanzzahlenArrays, Video-Frames, Texneilen, digitale Bilder u m . Mit anderen Worten: Diese Bytes haben eine Bedeutung. Wir betrachten nun das Problem, wie man die verschiedenen Datenarten, die Anwendungsprograrnrne austauschen möchten, am besten in ByteKetten kodiert. In vielerlei Hinsicht ist dies vergieichbar mit dem Problem der Kodierung von Byte-Ketten in elektromagnetische Sigriale, wie in Abschnitt 2.2 beschrieben wurde. In Kapitel 2.wurden im Wesentlichen zwei Probleme behan~ e idie delt: Erstem das Framing-Problem, dh., der ~ m ~ f ä nmuss deiche Nachricht aus dem vom Sender übertragenen Signal extrahiereh können. Zweitens SOU die Kodierung so effizient wie möglich sein. Beide Probleme sind zu lösen, um Anwendqdaten in Netzwerknachrichten zu kodieren. Damit Sender und Empfänger die gleichen Daten sehen, müssen sich die beiden Seiten auf ein Na&ichte&rmat einigen, Zt is a capital mistake das man DursdelJungsfm nennt. to theorize before Möchte der Sender dein Empfiinger beione has data. spielsweise ein Ganzzahlen-kay senden, m.iissse sich die beidett Seiten darauf eini- Sir Arthur Conan Doyle gen, wie jede G a d aussieht (wie gr08 sie ist und ob das höchstwertige Bi* zuerst oder zuletzt kommt) und wie viele Elemente sich im Array befinden. In Abschnitt 7.1 werden verschiedene Kodiermerhaden für traditiondle Conyduterdaten beschrie-
.
I
,.
ben, 2.B. Ganzzahlen, GleitkLei-, Armys und Strukturen. Daneben gibt es Formate für Multimedia-Daten, die sich dwchgewm haben: V i wird z.B. mist im -G-Fmmat (Moving Piehsre Expwts Group) und Smdbiider im JPEE (Joint Phmgrapbic Experts Gtoup) oder =-Format (Graphical Interchange Format) übertragen. Da diese Formate vorwiegend für die d a k i verwendeten Kompressionsalgorithmm von Bedeutung sind, werden sie in d k s e ~ mZusammenhang in Abschnitt 7.2 beschrieben. Als zweites wichtiges Problem wird in diesem Kapitel die Effizknz der Kodierung behandelt, die auf Shamons Pionieratbeit im Bereich der I n f o i m a t i o ~ r i ein den vierziger Jahren zwückreicht. Tatsächlich sind hier zwei entgegengesetzte Kr& Werk Einerseits wünscht inan sieh mögiichst viel Redulndana.in den Daten, damit der Empfänger die richtigen Daten extrahieren kann, auch wenn Fehlet ia die Nachricht eingeführt werden. Die in Abschnitt 2.4 behandelten Fehlererkennungs- und -korrekturcodes fügen genau zu diesem Zweck redundante Informationen in Nachrichten ein' Andererseits möchten wir möglichst viel Redundam aus den Daten entfernen, damit wir sie in so wenigen Bits wie möglich kodieren können. Das ist das Ziel der Datenkompression, die in Abschnitt 7.2 beschrieb wird. Kompression ist für NetzwerkenoRickler aus vielen Gründen wichtig und nicht nur, weii wir selten überall im Netzwerk massenweise Bandbreite vorfinden. Wie wir 2.B. einen Kompressiom algoribhmus auslegen, wirkt sich auf die Empfindlichkeit gegenüber verlorenen oder verzögerten Daten aus und kann damit das Design von R e s s o u r ~ t e i i u n ~ m und e n Ende-zu-Ende-Protokoilm beeinflussen. Ist demgegenüberdas zugrunde-liegende Netzm r k unfähig, für die Dauer einer Videokonfkrenz eine feste Bandbreite zu garantieren, enrscheiden wir uns möglicherweise für die Entwicklung von Kompsessionsalgorithmen,die sich an ändernde Netzwerk-gen anpassen können. Sowohl das Darstellungsformat als auch die Datenkompression erfordern, dass sendende und empfangende Hosts jedes Daten-Byte in der Nachricht verarbeiten. Aus diesem Grund werden Darsteliungsfonnat ursd Datenkompression auch als Funlaionen der Datenwztmipktiott betrachtet. Dies steht im Gegensatz zu den meisten bisher beschriebenen Protokoilen, die eine Nachricht verarbeiten, ohne jemals den Inhalt anzusehen. A+d der Notwendigkeit, jedes Daten-Byte einer Nachricht zu lesen, zu verarbeiten und zu schreiben, wirken sich Datenmanipulationen auf den Fmde-zu-Ende-Durchsatz über das Netzwerk aus, können also der begrenzende Faktor sein.
7.1 Darstellungsformatiening
Obertragung über ein Netzwerk bzw. umgekehrt eignet. Diese Transformation n setzt das sendende Programm die Daten, die es übertragen will, von der benutzten Darstellung in eine Nachricht, die über das Netzwerk übemagen wer kann. Das heißt, die Daten werden in eine Nachricht Seite übersetzt die Anwendung diese ankommende
Weise angeordnet, um eine für Netzwerke geeignete Nachricht zu bilden.
Daf3tdkingsfwm~mng Kodierung und Dekodiarung von Anwendungsdaten.
(2.B. 16 Bit, 32 Bit, 64 Bit). Um die Sache noch zu verschiimmern, werden G d len auf einigen Maschinen im Big-endian-Format (das höchstwertige Bit ist in dem Byte mit der höchsten Adresse) und auf anderen im- Little-endian-Format (daa höchstwertige Bit ist in dem Byte mit der nidrigsten Adresse) dargestellt. Die Moto. rola-680x0-Prozessoren sind ein Beispiel der Bigendian-Architektur und In&, 80x86-Prozessoren eines der Ljttle-endian-Architektur.Abb. 7.2 zeigt als Beispd die Big-endian- und Lide-endian-Darstellungender Ganzzahl 34.677.374.
(2)
(in
(34)
(126)
~7.2:
Big-endiin- und Littleendbn-Byte-Anordnung der Ganzzahl 34.677.374
Adresse
Adresse
Matshalling ist aus einem wehren Gnind schwierig, weil Anwendungsprogramme in verschiedenen Sprachen geschrieben werden; und auch wenn man eine einzige Sprache benutzt, gibt es mehr als einen Compiler. Beispielsweise verfugen Compiler iik e k gewissen Spielraum dahingehend, wie sie Strukturen (Datbätze) im Speicher auslegen, z.B. wie viele Füll-Bytes sie zwischen die Felder einfügen, aus denen sich die Struktur zusammensetzt. Folglich kann man nicht einfach eine Strukur von einer M a s c h e auf eine andere übertragen, auch wenn beide Maschinen die gleiche Architektur aufweisen und das Programm in der gleichen Sprache geschrieben wurde, weil der Compiler auf der Zielmaschine die Felder der Stniktur möglicherweise anders ausrichtet.
7.1.1 Taxonomie Argument-Marshaliing ist sicherlich keine hochwissenschaftliche Sache, birgt aber doch gewisse Tücken. Es gibt eine überraschende Anzahl von DeJignaltemativen, die behandelt werden müssen. Wir beginnen mit einer einfachen Taxonomie für Argument-Marshalling-Systeme.Sie ist keinesfalls die einzige denkbare Taxonomie, reicht aber aus, um die meisten interessanten Alternativen abzudecken.
oatentypen Die erste Frage lautet, welche Datentypea das System unterstützen soll.Im allgemeinen können wir die von einem Argument-Marshaiiiig-Mechanismus unterstürzten Typen auf drei Ebenen klassifizieren. Auf jeder Ebene wird die vom MarshallingSystem zu bewältigende Aufgabe kompliziertet Auf der niedrigsten Ebene arbeiret ein Marshding-System mit einer gewissen Menge von Basistypen. Normalerweise umfassen diese Basistypen Ganzzahlen, Gleitkommazahlen und Zeichen. Das System kann auch Aufzählungs- und boolesche Typen unterstützen. Wie oben beschrieben, impliziert die Menge an Basistypen, dass der Kodierungsprozess in der Lage sein muss, jeden Basistyp von einer Darstellung in eine andere, z.B. eine Ganzzahl von big-endian in little-endian, zu konvertieren. Auf der nächsten Ebene befinden sich flache Datentypen, d.h. Strukturen und Arrays. Zunächst scheint es, als ob flache Typen das Argument-Marshaliiig nicht erschweren, die Wirklichkeit sieht aber anders aus. Das Problem ist, dass die für die
Kompilierung von Anwendungsprogcammen benutzten Compiler manchmal FiillBytes zwischen die Felder einfügen, aus denen sich die Struktur zwammenseat, diese Felder auf Wortgrenzen auszurichten. Das Marshahg-System packt n o m lerweise Strukturen, sodass sie keine FüU-Bytes enthalten. Auf der höchsten Ebene muss sich das Marshalling-System m6glkhesweise laof komplexen Typen befassen; diese Typen verwenden Zeiger (Pointers). Die Da-stniktur, die ein Programm an ein anderes senden möchte, ist aho mbgiichemicis nicht in einer einzigen Struktur enthalten, sondern beinhaltet stattdessen Zeiger von einer Struktur auf eine andere. Ein Baum ist ein gutes Beispiel eines komplexen Ty~as, der Zeiger enthält. Selbstverständlich muss der Datenkodierer die Datenstruktur & die Übertragung im Netzwerk entsprechend v o r f i r n , weil Zeiger von Spe* adresgen implementiert werden. Und nw: weil eine Struktur an einer B e s h t e e ~ ~ Speicheradresse auf einer Maschine existiert, muss, sie nicht unbedingt auf &gg anderen Maschine an der gleichen Adresse residieren. Mit anderen Worten: Marshalling-System muss komplexe Ratemadcturen setralisimen (*&eh lci0phf.T:
b K m zusammengefasst h a t das: Je nachdem, wie kompüzikt das T''prnrPt& ist, umfasst die Aufgabe des Aqument-Marshalling w r m a l a n ~ s e Konvertierung der Basistypen, das Packen der Strukturen und die b e a r i s i 4 der komplexen Ratenstrukturen, um insgesamt eine zu6ammeohängende ~ a * Acht zu bilden, die im Netzwerk übertragen werden kann. Diese Aufgabe ist rn Abb. 7.3 daIgestellt. r.
' I
5 Argument-Marshalling
4
..Y
Konvertierungsstmtegie 4i Nachdem das T p y s t e m festgelegt wurde, lautet die nächste Frage, we& Konvertierungsstratqgie das Argument-MarshaUing verwenden soll. Hierfiir ste& zwei allgemeine Optionen zur Verfügung: die kanonische Zulischenform und R e d ver-makes-right. Beide Optionen werden im Folgenden nacheinander beschrieb. Beim Konzept der kanonischen Zwischenform einigt man sich auf eine extern Darstellung fur jeden Typ. Der sendende Host übersetzt vor der Ratenüberm-
7.1
'
1
hg&w U m d q m~endig. -. .der zweiten Opxioe mit .der Bezeichnung wReceimmdces-right* ü b @ %1
, der Sender Daten in seinem eigenen internen Format. Obwohl Qie Basistypan nicht
konvertiert werden, muss der Sender normalerweise komplexere Datenstrukturen packen und s e r * i b . Der Ernpfhgef ist dann fiir die Obersernung der Daten vom Format des h d e m in swieigenes lokales Format verantwortlich. Das Problem das eine N-mal-N-Lösung: Jede von N Maschinenarchitekturen muss in der Lage alle M &chit-ea zra u n t d Demgegenüber muss jeder Host in einem Spmn, das ehe kanonische Z&exiform anwendet, nur wissen, wie er mischen einer eigenen und einer einzigen aacbmder externen - Darstellung konvertieren
mnt.Uisgamt gibt es jedoch nicht so viele verschtedene Darstellungen für die vers i k d e n ~BasbsWam Anders ausgmhckt: AI ist oicht so so&. Aufhdem h u n i z i e r e n im häufigsten Faii zwei Maschinen des gleichen Typs miteinander, es unsin&% Daten von der Darstellung einer hchitektur Dmtiellung zu ~8~ nur um sie dann beim Empa m t e h g der-gkkhen Architektur z u r ü c k z u ü b h : ~ ,.die naJl unserem Wissen jedoch kein existierendes trenazt, wird Receiver-des-nght angewandt, wenn der Sender wei%,dass a h c i s t . &sitzen die heidea Maschinen aber unter-
Architektur des Empfängers erfahren? Et könnte einem Name-Server erfahren oder zuerst einen einfgehen Tesdaii anwenden, um zu sehen, ob er das entsprechende Ergebnis erhalt.
'
Rb dritte Frage lautet beim ArgmmmtAklarsh&~ wie der Empfänger weiß, welD d w in der von Um empfangcmn Nachricht enthhen ist. H & gibt es Daten mit odet ohne Tags. Der Ansatz mit Tags ist intuitiver, lb beschteiben wir ihn zuerst.
Ein Tag ist eine zusätzliche, in einer Nachricht enthaltene Information, die übd%
Gleitkommazahl oder etwas anderes ist. Ein weiteres Beispiel ist ein Länge-Tat; solches Tag wird benutzt, um die Anzahl von Elementen in einem Array o d d Größe einer Ganzzahl anzugeben. Ein drittes Beispiel ist ein Architektur-Tag, da^ Verbindung mit der Receiver-makes-right-Strategie benutzt werden kann, um Architektur zu bezeichnen, auf der die in der Nachricht enthaltenen Daten e wurden. Abb. 7.4 zeigt, wie eine einfache 32-Bit-Ganzzahl in einer mit Tags ve nen Nachricht kodiert werden kann. I
: 1
Typ= INT
Unge = 4
I
I
I
I
I
Wert = 41 7892
I
-74
IEodiMing@Bw32-8ttC in rnit~ags~P~IIMIM'~~ NwMdit
";3 i
J
uqd eine G l d c k o d l als Argumente verwender, besteht fiir die RemSuc kein Qmd, Tags dur&whcn, um zu w b s q was sie saeben SienUmmt,ernfacai,qn,,388 dn &kiwicht zwei c;aztzadim und eim dcnCnmf und dekodiert sk easp* F* i t n l k t i d , jisicxih vemagt, wenn Af
richt nur hemiotea,wem die Dam mit Tags V&
sind. ~Wanuk
w ~ P m ~ ~ i m ~ f ü t d e r e n ~ ~ Q r r ~ ~ a i c $ wudc. Beispiele iddahn N ~ ' & d d g awitrdm s den denmhg dieses+ sp1ynBen.
Stubs Ein W b ist das Stück den n e d der Stab A & a d d i & - &
die WGPs~tskdihxtmga Nadmkht b~eiaeiReihe von VariabEen z d &
& & [email protected]~
&@wen, um die Remote-Prozedur auhrufen. Stubs können entweder interpretiert kompiliert werden. k .Bei einem auf Kompilierung basierenden Ansatz hao jede Prozedur einen Bange« Ciient- und Server-Stub. Während es m&& ist, Stubs per Hand zu schreib werden sie in der Regel von eiaem Stub-Compiler auf der Grundlage einer &schibung der Schnittsteile der Prozedur erzeugt. Diese Situation ist in Abb. 7.5 ' ~ g m t d t . Stub ist kompilien und daher sehr ebfizient. Bei einem auf Interprebasierenden Ansatz stellt das System *generische« Client- und Server-Stubs deren Parameter durch eine Beschreibung der Prozedi1aschnmStelle gesetzt %?erden.Da sich diese Beschreibung leicht ändern lässt, weisen interpretie~eStubs 4m Vorteil auf, dass sie flexibel sind. Kompilierte Stubs sind in der Praxis üblichec
er
Abb.7b: Der ~tubCom~iier verwender die khnrttstellenbeschreibungals Eingabe und gibt Client- und Server-Stubs aus.
-5
I Speriakation I Argumente r---1 I Compiler r---1 *b
lhgumente
.r .-
1
I
Nachricht
1
7.1 3 Beispiek (XDR, ASN.1, NDR) beschreiben jetzt kurz drei weitverbreitete Darstellungen von Netzwerkdaten im &dunen dieser Taxonomie. Wir verwenden den ganzzahligen Basistyp, um die *weise der einzelnen Systeme zu verdeutlichen.
i "b
k e r n a l Data Representation (XDR)ist das mit SuntRPC verwendete Netzwerkformat. In der soeben eingeführten Taxonomie weist XDR folgende Merkmale auf: 1 Unterstützung des gesamten C-Typensystems, mit Ausnahme von Funktionszei-
ern 1 Definition einer kanonischen Zwischenform S Keine Verwendung von Tags ( a d e r für die Angabe von Array-Längen)
Verwendung kompilierter Stubs
Eine M)R-Goinzzahl ist ein 32-Bit-Datenelemm~&s eine C-Gsma wird in der Zweier-Komplement-Nosationdargestellt, wobei sich ab Byte dea C-GaM ersten Byte der XDR-GanraceaM und das Bcr DR--hl W d e . Das Byte d a C-Canzzahi il vierten bentrmt das Big-endian.Fonnat fiir & d e f i . W i e C XDR ~ ~ m& und ohne Vowkhen. acDR stellt Arrays mit variabltw Länge dadurch &q-&ss zuerst eine V lose Ganzzahl (4 W)spezmeh wird, weicht &B Anaahl der irn Am Elemente angibt, g d o l s von den Elememen des efitspr&cnden Tm.
.
~
~
N. Für Arrays und Struknwert vPwf die Gd& jedes Elements bnuv. jede nente in einem Mehrfachen von 4 Byte dargestelit. Kleinere Datentypen werden d@ Nullen auf 4 Byte aufgefüllt. ,DieAusnahme zu dieser ~4-ByteAuf@lregel«bild& 1 Zeichen, die je einzeln pra Byte kodiert werden. Das folgende W&agment ist ein Beispie1 einer CStruktas:(ifem)und der Routine, die diese Stnkkair kodiertldekodiert (xdr-item). Aus Abb 7.6 XDR-Darstellung dieser Struktur ersichtlich, wobei das Feld name sieb lang ist und das Array list drei Werte beinhaltet.
-Name0
H
U
N
S
O
Abk 7.& 6:spid der Kodierungeiner Svwktur in XDR
Bei diesem Beispiel sind xdr-may, xdr-int und xd
- . .".T 1
zu kodi'eren und zu tadieen,Das Argument &Tsr eine sKt der XDR verfolgt, es sieh in der grade Vz r a r b r Nac beinhaltet ein Flag, das andeutet, ob diese Routine zum Kodieren oder D der Nachricht benutzt wird. Das beigt, Routinen wie xdriitem werden vom und vom Seivex benutzt. Man backe9 dass der A M e e n d m g q m g c a ~ d ~ r ~ Routine xdt-itetm entweder manuell schreiben odet einen Stub--er rpcgen (nicht dargestellt)verwenden kann, um diese K~dieningsJDekodierungs1: T tine zu erzeugen. Im m i t e n Fall verwendet rpcgen die Remote-Prozedur, &e Datemtmktur item definiert, als Einehe und gibt den entsprechenden 'Stub aus: 1 r
welch
8
fdefine WAXNkME 256; Xdefine MAXLIST 100; struct itein { int count; char nanie[MAXNAME] ; i n t 1ist[HAXLISfl;
1; bool -t x d r - $ t e m ( ~ i *xdrs. struct item *ptr) return(xdr-int (xdrs, U t r - x o u n t ) && xdr string(xdrs, aptr-*name, WNAME) && xdr-array (xdrs. &ptr->l ist. &ptr->cwnt. MAXLIST. sizeof(int). xdr-int));
-
1
.. .. j
2.
Welchen Aufwand XDR bedeutet, hängt natürlich von der Datenkomplexität ab, Im einfachen Fall eines Ganzzahlen-Arrays, bei dem jede Ganzzahl von einer ByteAnordnung in eine andere konvertiert werden muss, sind im Durchschnitt ,3 Instruktionen für jedes Byte erforderlich. Das bedeutet, dass die Konvertierung des gesamten Arrays eine durch die Leistungsfähigkeit des Speichers bestimmte Operation ist. Auf einer typischen Maschine bedeutet das heutzutage eine obere Grenze in der Größenordnung von 100 MWs (800 Mbio's). Komplexere Konvertierungen, die mehr Instruktionen pro Byte voraussetzen, dauern natürlich länger.
ASN.l Abstract Syntax Notation One (ASN.1) ist ein ISO-Standard, der unter anderem eine Darstellung für Daten definiert, die über e+ Netzwerk zu senden sind. Der darstellungsspezifische Teil von ASN.l wird als Basic Encoding Rules (BER) bezeichnet. ASN.1 unterstützt das C-Typensystem ohne Funktionszeigei; definiert eine kanonische Zwischenform und benutzt Typ-Tags. Die Stubs können interpretiert oder kompiliert sein. Einer der Gründe für die Beliebtheit von ASN.l/BER liegt darin, dass es vom Internet-Standard SNMP (Simple Network Management ProtoGOI) benutzt wird. ASN.1 steilt jedes Datenelement mit einem Tripel in der Form dar: Tag ist normalerweise ein 8-Bit-Feld, obwohl ASN.1 die Definition von Multi-ByteTQS zulässt. Das Feld length spezifiziert, wie viele Byte value umfasst. Length wird weiter unten ausführlich beschrieben. Zusammengesetzte Datentypen, 2.B. Strukturen, können dadurch gebildet werden, dass man Basistypen verschachtelt (siehe Abb. 7.7).
type
I tength I type I length
value
I
type ienglh kaue
Abb. 7.7: Mittels Venchachtelung in ASN.1IBER erzeugtezusammengesewe Datentypen
Falls der Wert (value) 127 oder weniger Byte lang ist, wird die Länge (length) in einem einzigen Byte spezifiziert. Eine 3 2 - B i t - G d wird also ZB. mit einem Byte für type, mit einem Byte für b g i h und den für die Kodierung der Ganzzahl benu$z+ ten,vier Byte kodiert (siehe Abb. 7.8). Der Wert (value) selbst wird im Fall eimer Ganzzahl in der Zweier-Komplement-Notation und Gig-endian-Form dargemik, genau wie in XDR. Obwohl der Wert (Aue)der Ganzzahl in XDR und ASN1 gleich dargestellt wird, weist die XDR-Darsteiiung weder das type- noch das iengtb Tag in Verbindung mit dieser Ganzzahl auf. Diese beiden Tags belegen Platz in da Nachricht und bedeuten vor allem Veratbeitungsanfwand beim Marshlling und Unmarshalling. Das ist ein Grund, warum ASN.1 nicht so effizient wie XDR k Außerdem bedeutet die Tatsache, dass jedem Datenwert ein length-Feld v o r a n g 4 wird, dass der Datenwert höchstwahrscheinlich nicht auf eine natürliche B* Grenze fäilt (=.B. eine Ganzahl, die an einer Wortgreme begmnt). Dadurch der ~ o d i e & ~ - / ~ e k o & e r ~ 1 ~ ~ rebenfalls o z e s s komplizierter,
~$4
Abb. T.&
ASN.1IBER-Darstellung einer e ~ y t e ~ s, n. ; z ~ e f ~ ~ Falls der T h i t (vaiue)128 oder mehr Byte lang ist, werden mehrere Byte benutzt, kn length zu spezifizieren. An diesem Punkt mag man sich fragen, warum ein Byte Länge von bis zu 127 statt 256 Byte spezifhieren kann. Das liegt daran, dass ein des Felds {ength benutzt wird, um die Lange des Feldes anzugeben. Eine 0 im acrhl* Bit bedeu t ein ein Byte langes Feld. Um eine ggöQere LäIige zu spezifizieren, W&' das achte it auf 1gesetzt und die übrigen 7 Bi& geben an, a& wie vielen z w ä t z b chen Byte sich iength zusammen-. Abb. 7.9 zeigt ein 1-Byte- und ein ~ o h i b y d length-Feld.
7
3
21
Abb. 7.9:
&
ASN.l/BER-Darstellungder Länge (length): (a) 1 Byte (b) Multibyte
NDR .i4 . L ,?, Netwoik Data Representation (NDR) ist der im Distributed Computing Envwaih ment ( D a ) benutzte Datenkodierungsstandard. Im Gegensatz zu XDR und ASN.%
k a m E9DR dm Wec&er-naks--hate.
Dieser wird hier durch EWgen
~ Dieser Cams m c e hsbw keine Tags,MDR &zeugtSmbs mit .Hilfe eines ~ j $ kv e m ~ d e $ie t Besdxmibmg eiEfeg in &E Intmke Language (LDL) ea Pro@uei die a&igen Stuba ni eszeugen. IDL ähnelt C stark 'mdwrafmtikm &er: das GTypetlsystem. - J : W. 3.XQ ze& die 47Bpte-NWh des h c b i t e k ~ T das a ~ tun ~ Aafang jeder @%lR-k~diertenNac&fE&teing&@ d r d . Dias wsts Byte e n W t W& &Bit-Fdda AaU %rmat fiiF alle: G d e q die inder N d &wate Fdd IntegrFtw dtdcht enthalten sind Eine O in diesem Feld be8-t Big-ftndian- und,eine 1 Lided ~ - M e nDas . Feld ChdvRep bezeichnet das verwendete 2kiChenfomIak P e: MCLI (AmeridanStandard Code for Information hterchange) und 1 = EBCDIC #t&e ältere, von BA4 definierte Alternative zu ASCII). Als Nachstes definiert das FkmtRep-Byte, welche GMtkommadarsteUungbenutzt wird; 0 = IEEE754, J = V& 2 z Cray und 3 = IBM.Die beiden letztes Bytes sind für zuküdtige VeiWendung memiert. In einfachen FtilSen, z.B. Ganzzahlen-Arrays, erzeugt NDR den gleichen Arbeitsaufwand wie XDR. kam also die gleiche Leistuna erreichen.
-0:
Ras Architektur-Tag von NDR
,C.
das PmBleni,de~Datenpräsea~ation. aus Sicht von RPC bereits betrachwie kodiert man primitive Datentyperi and zuammewsetzEe Daten,sodass sie van einem Client4rogamm an ein Server-Programdi geendet 4 m b khnen tritt da* gleiche Gnindpr~blemauch in anderen Szenarien auf. r' ..@ kkeik I@ ;ein Wcbmwr beispielsweise eine Webpage.so, dass beliebig viele wissen, was am Bildschirm darzustellen ist? In diesem spee HyperText Markup Langmge (H'I'ML) die Antworr; sie Zei+enkdten in Fett oder Kursiv angezeigt werden sollen, -@Ben benutzt und WO Bilder positioiiiert werden sollen. nen viele der in Etapitei 9 beschriebenen Anwendungen über einen
-
von ~ e b & v e r nund -bro-cn ist es e h biss& miihsehg, HTML 4 s at zu betrachten, weil es mehr mit Texrformatierungssprachen R gemeinsam hat. Aiierdings gibt es eine Generalisierung von die man zu Recht als Standarddatenformatbetrachten kann: die Extensible L q u q e (XML).Im Gegensatz rn HTML, das beschreibt, wie Daten darn solien, beschtieibt XML einfach Daten, unabhängig davon, ob sie beitet oder an eine andere Einheit im Intemet geschickt werden sol-
.
XML ist textbasiert und ähnelt im Aussehen HTML. Das nachfolgende Ws@ ist eine Xh4L-Beschreibung eines Mitarbeierhtmmm (empbyee); es wind XML-Dokument bezeichnet und kam in einet Datei namem emp1~yee.dgapi chert werden. Die erste Zeile spezifiziert die benutm XML-Version und )diere@ chen Zeilen die vier Felder, aus denen sich cior Mitarkitecdatensar~: zmamc&& wobei das letzte (hiredate [Einstellungsdatum])drei Unterfelder ent&ölt.Mlr d ren Wortcm XML erlaubt es Benutzern, eine veieschachtelte Stniknxr aus TaPaaren zu spezifizieren. Dies a e l t der Fähigkeit von XDR, &M.¶ und zusammengesetzte T m n h a t e l l e n , jedoch in e k m Formtsdas sowohl von B mammen verarbeitet als auch von Menschen aeksen werden kam. ja
rn
Wa ist. Ganzzahl ist, welche Darsteliung wird dann benutzt? Der erste Teil der Antwort h tet, dass alies in XML texthiw ist. Da& A also eine X&&&rt+tur i n t m t parsen. Mit ren kam, die sie von B erhalten hat, braucht sie nur d ~ T 9 xzu Xh die e h m anderen abzuziehen?Und was ist mit 'IDs? (Wie ein soicher I)atetwtz mrJaa &erweise dargestellt wird, ist eine weircrre >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, :
, Die Zeilen arn Anfang des Dokuments enthalten Informationen über den Zusammenhang, in dem das Schema definiert ist. Für unsere Diskussion ist es nicht wi&tig, die Details zu verstehen. B besteht eine offensichtliche Beziehung zwischen dem Rest der Zeilen und dem oben definierten Dokument emp1oyee.d. Zum Beispiel bedeutet <xs:element name="titlen type="xs:stringU/>,
dass der Wert im Feld titie eine Zeichenkette ist. XML unterstützt mehrere integrierte Typen, darunter folgende: xs:string xs:decimal xs:integer xs: bool ean xs:date xs:time
Ein wichti8er Punkt ist, dass ein XML-Dokument #dasSchema referenzieren kann, &s d d i e r t , wie es interpretiert werden sollte. Dies könnte durch Austausch der &&ten Zeiie in unserem Beispieldokument einployee.xml durch folgenden Text bhehen: I
<employee mlns~~htp://nww.cs.prlnceton.edu/XMtSan xml ns:xsi="http://www.cs .pri nceton.edu/XMLSchema-i nstance" xsi :schemaLocation="http://www.cs. princeton .edu/schema/ .employee.xsdR>
Auch hier sind die Details unwichtig; die relevante inhmmion ist, dass das fiir dieses Dokument in der Datei empluyee.xsd vorhanden ist, die man im unter http: //www.cs .pri nceton .edu/schema/employee.xsd
findet. Was nicht überraschen dürfte, ist die Tatsache, dass XML weit reichhal Fähigkeiten bietet als dieses triviale Beispiel zeigt. Letztendlich ist Grunde liegende Idee aber sehr einfach: Es definiert eine Syntax für die von Daten, die Anwendungen im Internet gemeinsam nutzen können.
7.2 Datenkompression Zuweilen müssen Anwendungsprogramme mehr zeitkiitische Daten senden, a Bandbreite des Netzwerks untersEützt. Eine Videoanwendung möchte z.B, 10-Mbids-Videostrom übertragen.- während ihr nur ein 1-MWs-Netzwerk zur fügung steht. Wie jeder uiternet-Nutzer weiß, ist es selten, dass man Daten 27 zwei Punkten im ht~rtletauch nur annähernd in 1Mbids übertragen kann. .. dem häagt dm bssource&~teitungarnodelldes Iaternet derreit s&k von der sache ab, dass einzelne Anwendungen nicht mehr als h e n »fairen Anteils an1 Bandbreite einer überlasteten Leitung benutzen. Aus diesen Griinden ist cs oft tig, die Daten Beim Sender z u m m kmprimiwtnn,dann über dsrs Nermerk den und schiied3lich beim Empfänger wieder zu d e k ~ m ~ m i e r e n . In vielerlei Hinsicht ist die Kompression von der Datenkodierung u ~ r e Das hei&t,,wenn man,über die Kodierung von Daten in Bits oaehdenkt, kana M genauso gut darüber nachdenken, wie man die Daten in die kieimtm6gii.k 4 menge kodieren kann. Har man z.B, einen Datenblock, der sich aus den 26 S len A bis Z zusammensetzt, und haben alle Symbole die gleiche Chance, in dem ' kodierendq Datenblock vorzukommen, dann ist die Kodierung jedes Symbsks '1 5 Bit das bcsundgliche Vorgehen (da 2' = 32 die niedrigste Potenz von 2 von 26 ist). K o m t das Symbol R allerdings in SO% der FäUe voq wäre es für die Ksd'wung von R weniger Bits als für die übrigen Symbole zu allgemeinen giit: Wenn man die relative Wahrscheinlichkeit kennt, in bol in den Deten vorkommt, kam man jedem poremie4e.n Symbol eine s Bitanzqhl zuweisen, um die Anzahl van Bits*die fiir die_Kodieningeines Datenblocks erforderlich sind, zu minimieren, Pas ist das G s u n d k o q der mun-Kodkutzg, einer der wichtigsten ersten Entwicklungen im Bereich der Dg@* kompression. *9 Es gibt zwei Klassen von Kompressionsalgorihen. Bei der so genaiknd verEustlosm Kaomp&ssimwird Snchergesteiir, dass die aus dem Konipressiod Dekompressionsprozess gewonnenen ~ a t &mit dem Orighafdaten identisch si* Ein verlustloser Kompressionsalgorithmus wird benutzt, um Dateien, 2.3.audlihd baren Code, Texrdateien oder numerische Daten, zu komprimieren, weil M
7
,die d c k e D-
Fehler in den Da-n toleti-. Dem~pagcndiberverispsicht die VH~~YWQW K0pnp~sa:lo~ aichg, dass die em#mgena . Daten gemu ruh detr esendeteni d 6 s c b sind. Ihr G d ist darauf zwiickzu&hW, dass ein verlustbbter &&thmus Iabmarionea d m t , die U epiitet ' niboht mghr wie&rhr!r~tcilen kann. Dies g+t im der Hdfmmg, d a s der ; b p f b g e r die verlorenen h f o m t i m e d nicht vemimt, VerIust* &g&, abweden b e n w ~ um StandMiderJ Video und'Ade zu komprimkm. D a ist , demvoll, weil 5oWe B aten ob mehr Informatiea&Irm als das mnschliche , & p b.Ohr w&m&men b, DG6Balb köianen sie Fehler und Mäugel enthid' r n d i e das menschliche Gehirn aqleiehen k &. AYßerBem lasen sich mit.verIustM& Aigqrithnen ncwmalemise viel bessere Ksmpressimraten erzielen ak n$t den verlustlosen Algorithmen. Sie k w e n um mehere Gr6&nardnungen besser *-'keine
seh ,
Nun mag man glauben, d- die ICQmpressionvon. Daten vor der Ubertragmg immer vorteilhaft ist, weil das Netzwerk komprimierte Daten vermeuitli& schneller als d o m p iihrcrä@. ~ ~ Dies ist nicht untwhgt der Fall. Kornpmsiortd ~ e h o r n ~ & d & i d m e n beibihabn oft z , e i t e C E i g o B e r h m . M a n mws sich hier also die F w e s t e h , ob sich der fiir die K o r n p r e i p s m sbn der D a m erforderliche Zeitatihand gegeniiber F a h r e n WN Mmworgea$-& des Ho- und Bandbreite des Netzwerks lohnt. Wem wir davon ausgehen, daos B, die durch8chnitcl'icine Bandbtcim i* .in der Daten durch den l k m p w r u d Dekornprasar (in Serie) geschleust W& komm, B, & Bkmverkbmdbseit.e, (sUnscMeE4lich des Netzwerk-Vesarbeitungsa~ds) für mkomprimierte Daten sowie r die durchschnittliche K o m p s ~ i ~ aita t eund alle Daten vor der Ifbertragung komprimiert werden, dauert die Obertragung von x tonkomprimierten Daten-Bytes
x/Bn Dem steht die Zeit für die Kompression der Daten und das Obertragen der komprimierten Daten gegenüber: x/E, + x/(rB,J Folglich ist die Kompression vorteilhaft, wenn was gleichbedeutend mit
B, > r/(r - 1) X B,, .
ist. Für eine Kompressionsrate von 2 müsste B, 2.B. grö8er als 2 X B, sein, damit die Kompression sinnvoll ist.
Bei vielen Kompressionsalgorithmen muss man nicht die gesamten Daten kom; primieren, bevor man mit der Ubertragung beginnen kann (würde man das tun, wären Videokonferenzen 2.B. unmöglich). Vielmehr muss man zuerst nur eine gewisse Datenmenge sammeln (möglicherweise ein paar Frames eines Videos). Die
Datamenge, die in diesem Fali erforderlich ist, um die »Pipelrne zu füllen«, man als Wert von X in der obigen Gleichung benutzen.
7.2.1 Vdustiose Kompressionsalgorithmen
W k boginnen mit der Einfübning dreier verlustloser K o r n p ~ i o ~ a l g o r i beschreiben k Algorithmen nicht ausführlich, sondern erläutern l d g k Grunde hegende Koszept, da vor allem die. verlustbehafteten Algorithmen in gen N ~ r h g e von b &tem ~ Nutzen d d , i~m Bild- und Vide0darn.m komprimieren, W ir e r & m ab- wie gut diese verlustlosen A k g o r i h igp: Bereich der digitaien BiildbeaEbeitung funkdonken. Ehige der von diesen verlSen Technika benutztes Konzepte tauchen in sp-ihren Abschniaeil wie&r. wenn wir uns mit den verlu-aen Algorithmen Massen, die für die Kompcsh sion von Bildern verwendet werden.
Lamg(Mkodwnp
Dateien gut, weil sie oft viele wei& Flächen enthalten, die entfernt werden k ö w a Tatsächlich ht RLE der Mcbtigste Kmnpresaionsaigoiithmus bei der O b a I a g von Teldazten. Bei Bildern mit einer wenn auch nur geringen lokalen Variation k . sich die Byte-Gröfk e b Bilds durch Kompressiw sogar erhaben, weil 2 B p etfor* derlich sind, um ein ccisrzige-sSymbol darzusteilen, weari sich das Symbol nicht w i e
derholt.
. I
' -
Ein dwt c i i & c b veridmm
1 m&.a&e,'m ~ v o n ' ~ M ~ ~ S S n i d h S
'Wh& sich die
-I
Gy
&B
-
I, ~
Y
'I
kczee ver1ud(~s~ Kaqr&iitmmnz&a$l betmckn wir wÖ-Wute
~ u ~ ~ ~ e m r i l r i i ~ o m p i i a i a m , ~ c ~ W ~ L K- * ~ & & d 4 aunch 4 m t.egtt nr&,'~a das ~ ' . k t a p% ph?f2 A W W W r ' W W&& die lcO&mq deo hMkes mzs bedeutet, dass crie hi-etre »Kompression« mit
~~
15 statt 77 Bit wie im 7-Bit-ASCII dargestellt werden kann. Das ergibt eine K M pressiwsrsite v ~ 5:n11 i Natütkh stellt sich die Frage, woher die Wöm~bigcherkmmen. Eine M keit besteht Batin, ein stakbeg Wätserb-uai zu ckfiniietea, das vonmgwwbe a zu k.omprisPU-& Daten zupsclwi~te~f ist. Bei einer aligeas-en .Lösd& aurh in der &K~mprmbn angewandt *wird, Grundlage des Inhdts der zn kom~imierenden das während der Kompmsian gebildete W2kwr&uchalle* tragan werden, damit die Gegenseite des Algorithmus die deren b, Die EkeZbr:ien, wie ein adaptives wir$, kt h a usnfangceicher Forschtingsacbeiten. Am E&do den.wic)ntigeArbeiten in diesem Bereich a ~ ~ . 8 4 Eine Abwandlung des L Z A i g O n h wird b e w t , um digitale Bilder im @g7 phical ImercFonmt (GE) zu koqNnieren. GJF ~eduzbrtzuerst 8-Bit-Farbbildefi Dies &eht durch Ide&ienmg der im Bild vork ie dann F a r b , deren Anzahi w d e i w e i s e wesentlieh ldeiner als 256 E a ~ ausgeudihlb h die den im Bild v m k ~ m e n d e nF w b am Nchsten &$ men. D i e Fatben werden ip e i n .Tabelle gespeichert. Diese Tabelle h mit 8-Bit-Nummer inQizjert werden, und det W- jedes Pixeb wird dwch den entsm chenden Index e r w t . Das ist ein Beispiel der verlustbehafteten Kompression @* Bildes mit mehr ds 256 Farbe% G E fühtt anschlie&nd eine U-Vtariante auf dtw Ergebnis aus, wobei häufige Pisrekquemn als ZeicbeIllretfw behtmlelt wer* die Un Wkixmbtlda st&p. Mit IWe dieses Ansatzes kaan GIF von 10:l e.qeichen, allerdings nui+w~~in das Bild aus eher relativ k z e l m F a r b besteht. Bilder mit natiirlichetl Saenen, die oft ein nzs deres Farb-enthalten, können mit GW nicht in diesem \Ierhaltnb pn'miert mrden. Weiterhin ist interessant, dass wir bei Anwendung des W basierten Unix-Befehlsoompme auf den Quelkde fiir die M diesem BYch benen Protqkolle eine Kom~res9ionsratevon S:1 erzielten., ?
h e s i c h s der steigenden Vmmdung digitaler Bilder in aen letzten Jahren, nicht ruf H - k b M g k e i t m ~ , sondcm auf die Erfindung von schirmen ze-en ist, gewinnen Kompxessionsralgori~nfür digitale da& zugehend an Bedeutiud~.Als Raktioa aaf diesen Bedad b t die ISO & di@dm ~ildf& d&niortBdas i r ~Aniibung an die j ~ i n Qhotopapk t J%pe& Gmup*die es entwi&&t9 als JPEG be-z;eichnetwird, In diean Abschnitt wird d q K o m p r ~ ~ ~ s t ~ n s a 1TW g o ~ l i ~ beschrieben. h näcbstm Abp&nitt wir*! W E G ab v w g k c F~o ~ a afur t Vidcodaten erldä-t. B a w wir die JPEGKompression be&reibea, muss ein Punkt b:&vorg&& werden. JPEG, GIF, und W E G shd mehr als reine KompressionsaIgo_rithmen,Siiat definieren auch das F o m t füt Bild- b m Videodaten, vergkichbar damit, w i i XDR, NDR und ASN.l das Format für numeiische und Zeichenkettendaren definie-
I
tm,in diesem Abdu& k Q e e r e n wir iins aber nur auf die Kompdonsamekte dieser Standards. Die JPEEKo~~pmssion ddgt in drei Phasen ( d e Abb. 7.11). Auf der ~ o m s e i wird o das Bild M jeweils 8x8-Bitkka du& duesc drei PtLasim -M-. In $er ernten P b wird die DiscreteCos'me-Tran&dm (DCT) auf & Bloda anjpw8ndt. Wem man sich das Bild als Signal in det rpiumlichen Domiine 'mmeilt, wand& DCT dieses Signal in ein ene~@endcs Signal dct r~umtishen 24qrm-m um. Das ist ein verlustloser Vorgang, der fur den nkhsten verh&&fteten Mtt unabdingbar ist, In der zweiten Phase wird eine QuanWimng auf das sich ergebende Signal angewandt. Dabei gehen die n i h e r t i g e n Itifoamationen dieses S@ak verloren. In d u dir= Phase wird das Endergebnis kodiert. Dabei wird ein Element der verlustlosen Kompression m der in den ersten beida Phasen erreichten verlustbehafceten Kompression hinzugefligt. Qie Dekompression erfolgt in den gleichen drei Phasen?jedoch in umgekehrter ~eibFRol~e.
-
-
&;du &&enden D ' ~ h s ~ i wird o n jsde P)me au&h&&r
er&utuz.
h&kr' ziehen wir nur Grauwertbilder'inBetracht. Fdrbbflder werden am h d e diern A b d m i e behandelt. &Si Cs~pw~bildern *d jedes M d p d d&, eine31 4-Zlit-Wert beschrieben, der die i..eucht&&te des Pixels angibt, wobei 0 Weiß und Szhwar~ecntsp&ht.
4!#eWhase
e
ist eine e ~ l g der.Fast-hurier-Ttansformatirn IFiT) z u m m & d dwmdoa Sie wwoadeit P k d w a e in M* $?equenzkoeffizienten in d e r 8x8-Matrix aus, ~ u y c *-1Q4-vodas& mei rdumlidwu D W ~ s n c e p(sd y) &fi~M.DCTb~t&~Si~iti.Q4räsunlscbgFreqrt-ircnauf.~ tiaeff&-Eneqm&8iaaavoq~beiH*sicih
*~-inx+mm*mfltür&~*desM~bPWtcb hdat sich dieser Wert imgsaan mit swiggndcm s,hat &&&&$%f1wdkk Frqmw. b4xt wsibp &, hat &,4&tz r ä d k c q n z . Die niedrigen Frequenzen entsprechen also dcmi g r o b
*,S"Mga nin,r
'@&
und 40b?h. R q u e ;den ~ ~ feinen I?-. D- gr&d.ct &@ & See ~ t u n g ~ b ~ netweadigea , ~ i k b g r o b ~~e ~Utd 14
auf dem Ibnva8 den feivom A w kaumwahr-'
554
1
7 Enckzu-Ende-Datem
Zusammen mit ihrer Umkehr, die während der Dekompression erfolgt, wird DCT durch die folgenden Formeln definiert: W
1
D m ( i .j ) = -c ( i ) c ( j )
m 1
P~~O~(X =, Y ) C(x)=
1'
*'
N1
pirol(x, Y)COS HJ
C(i)C(j)DCT(i,j)cos
-wennx=O
JZ
1
wennx>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;
<
.! '
-,. --
7
h
'3
$
-'
..
Neue Versionen von MPEG werden zur Zeit entwickelt, allen voran WEWi Dabei handelt es sich um eine V e r m i a e von MPEG, die ia der & ' ..sowohl aatiirliche als auch synthasche ( C o m p u t e r - ~ ~ r tVe i)d d t e n zu v w w beitesi. Dies geschieht, indem j& Szene (jederr Frame) als eine Ansandung Objekten betrachtet wird, und nicht als aus quadratischen Mdcroblikken -z mengesetzt. MPEG-4 soll a&&m kleinere Uberrragungsräten unters6iizen um drahtlose Handheld-Geräte zu versorgen), im Gegensatz zu MPEG-2 (s.u.), das %: auf den High-End-Videobereich 'abzielt (2.B. in Form van ~ ~ T p r ) . bt jedoch der wichtigeste Aspekt von MF'EG-4, dass es ebwärtskampaiibel i& WEG-2 ist. Dies bedeutet, dass die meisten heute verfügbaren MPEG-4-Vicless noch & Bewegungsschätzung und die DCT-basierte Kompression nutzen9die o b besckkben wwden. Ilchiießlich sind wir damit nicht allzu weit endemt von Standards für die Kodk rung von Animationen, wie sie uns 2.B. häufrg auf Webseiten begegnen. Das b e b teste Beispiel scheint dabei Maaomedias FLASH-Format zu sein. Man kaan d& FLASH als ein Protokoll vorstellen, welches eine hsarnrnlung von Polygonen d Linien (die Grundbestandteile von Comp~er-generiertemVideo) zusammen mit einer Abfolge von Vektoren beschreibt, die besthmen, wie sich die Objekte in Zeit auf einer Bühne bewegen. irn eigendichen Sinne ist FLASM a b kein K si~nsdg~rithmris, sondern eher ein Kodiemngsstandard.
I.
7.2s Ubertragung von MPEG O
b das Netzwerk
Wie an früherer Stelle in k m Kapitel erwähnt, definiert MPEG nicht nur, wie Video komprimiert wird, sondern auch das Format e b mit W E G komprimiertm Videos. &dich definieren JPEG und G@ ein Format für Standbilder. K o m m man sich auf hrlPEG, gilt es ais erstes festdalten, dass der S t a 8as~ F ~u m ~ eines Video&romsdefiniert. Er spezifiziert aber nicht, wie dieser Strom in Netmmb p&ae auf%wdtwird. Folglich kann MPEG für auf Platte gespeicherre Videos.& fiir die Obertraguig von Videos über eine stromarkntierte Nmerbindung, wie sie beispielsweise von T 8 bereitgestellt wird, benutzt werden. Wehr unten bm&&f bnwir ausfühirlicher, wie ein MPEG-Strom in Pakete aufgeteilt wexden kann. ;. Das MPEGFormat ist eines der kompliziertestenaller in diesem Buch MluidelCp ten Frotokoile. Diese Komplexität aapmt von dem WMS& dem KdersilgUrritlib mus jeden nur erdenldicbm Freiraum dahingehend aikommefi zu lassen, wie eg einen bestimmten V i d m o m kodiert, Er e r k b sich außerdem durch die Entwich iung des Standards im Lauf der Zeit (4.h. MPEG-1 und MPEE2). Weiter w s a k b r e i h wir das so genannte Nanpprofileines Vdeostrams nach dem MPEG2d Standard. Sie k6Mtn sich ein WEGProfil wie eine ~Vemisn*vorstekn, a& dass das Profii nicht a*& in einem MPEGHmkr s p e d i i r t wird. h Empfänger muss das Profil aus der Kombinadon der Hadei~Feldetherleiten. Das J3auptprofd eines A4PEG-2-Strom hat ehe versehaehtelte $truktw (sieh Abb. 7.15, in der derdiogs viele verwirrende Demils weggebwn wurden), Auf & äu3ersten Ebene enthält das Video ehe Sequenz von B'idgtuppen (GOP), durch
73-1-
W
~~~
__-----
~WNPW
CeqEnäCode
.U.
---------_
------_
---L
Bild
-'--
SHoe
... Bild ----_---_---___ ---_----... Stice
-
-----_---_-----_---_ SikeHdr
Makrobio&
MakroMock
--
...
-----_
~a&ock
----------_________ ---_----_ I
W d r
üb&@)
W%
-1)
m ( 3 )
BloGk(4)
BlW6)
AMx 7.15s ' Forrnat eines mit MPEC komprimlem Videostroms
'
einen SeqHdr getrennt. Die Sequenz wird durch ein SeqEndCode (Oxb7)beerkdet. Der jeder GOP vorangehende SeqHdr spezifiziert unter anderem die Größe jedes Bilds (Frames)in der GOP (gemessen in Pixelil und Makroblöcken), die Interpicture-Periode (gemessen in ps) und zwei Quantisierungsmatrizen für die Makroblöcke dieser COP: einen für intra- (EB1öcke)~und einen für interkodierte Makroblöcke (& und PBlöcke). Da diese Monnationen für jede GOP und nicht insgesamt für den ganzen Videostrom angegeben werden, ist es natürlich möglich, die Qwntisierungstabelle und Frame-Rate an allen GOP-Grenzen des Videos zu ändern. Dies ermöglicht die Anpassung des Videostroms im Verlauf der Zeit, wie unten beschrieben wird. Jede GOP wird durch einen GOPHdr identifiziert, dem die in der COP enthalte-nen ~ i l d a ' f o & n Da . OqPHdr spezifkiert die Anzahl der Bilder sowie Synchronisationsinforrnationen für die GOP (d.h., wann die GOP in bezug zum Videoanfang abgespielt. werden sollte). Jedes Bild hat w i e d e r b einen PSmreHdr und die so genannten Slices, aus denen sich das Bild zusammensetzt. (Ein Slice ist ein Bildbereich, 2.B. eine horizontale Linie). Der PiotureHdr identifiziert den Bildtyp (I, B oder P) sowie eine bildspezifische Quantisierungstabelle. Der SliceHdr spezifiziert die vertikale Position des Slice und bietet eine weitere Möglichkeit, die Quantisierungstabelle zu ändern - hier durch einen konstanten Skalierungsfaktor statt der Angabe einer ganz neuen Tabelle, Dem SliceHdr folgt eine Reihe von Makroblöcken. Schließlich beinhaltet jeder Makroblock einen Header, der die Blockadresse innerhalb des sechs Blöcke des Makroblocks spezifiziert: einer für die
.
1I
W
.
U-, eincr für die V- und vier für die Y-Komponaoe. (Wie eben m ä h , Y-Komponente 16x16, während die U- und V-Kr>mponeaan8x8 sind.) . Einer der ar& Vorteile des WEG-Formats besteht darin.daOs W dena rei die h k n m g der Kodierung im Verlauf der Zeit ermögiicht. Ea.kann die Rate, die AdaSmg, die Mischupg von Frame-Teiner 6QP, die Qurungstabeile wrd die auf einzelne Makroblöcke angewandte Kodiemmg Daher Iösst sich die& anpassen, in d a ein Y i in euKm Netzwerk iib wird, d.h., es können Kompronipe zwischen Bildquditiit und Netzwerk getrslfen werden. Wie ein Nemrerkprotokoll diese h m p f a h i g k e i t im noa nutzen kann, ist derzeit noch Gegenstand intensiver ForduypmbeP
Raudkatui). Ein weiterer interessanter Aspekt an der Obertragung eines MPEGeinem Netzwerk ist die genaue Art and Weise, wie der Strom in Pakete wird. Bei der k a g u n g über eine TCP-Verbindung ist die Adteilung in kein Thema; TC2 bestimmt, wann es über ausreichend Bptes verfügt, um das ste IP-Datagramm zu senden. Bei der interaktiven V e d u a g wird ein Video C dings selten über TCP übertragen, weil durch die Ncuübertragung verlore mente die damit verbundene hohe Latenz idaepmbel wäre. ObertsGigt mas zB. mittels vDP, ist es suinvd&den Strom an mrgf3ltig a u q d t e n etwa an Makmblc&grenzen, aufzuteilen. Man d t das dedialh, weil Auswirkungen eines verlorenen P&cxs a d einen ehigen M& willystatt mehtere Makroblöcke durch einen einwgcn Vezlust zu ist ein Beispiel des so genannten ~ApplicationLevel Framing*, das in A tragmg &W mit W E G kamp-
W h in einem
Eft es mdgiich, einfach den vo*gen Frame cmeut s ~ ~ ~ s leide t h 1~Fmneaas a f t 30 ~ Der Vmhiat eines I-Erames hat k q ps c h w d & e Edgem K e h r der ni und P-Frma kann ohne ihn vermkitet. wden. EiPl verfiEli.enei.I-Ergeworf-
~
d
a
I-Frame zwar erneut iihma~ul,ctie daraus ~
~ V dm g e q &
wäre die h e n d m g der in AbscMt$6.S
Man k&me mit dPeJer T6chnik Pakete, die
r-8;d
~~~ca*r~iavm~nter~diardiebda.~&~&videg~(.j mehr ais n u ~ der ve&@mcm N ~ k ~ d b r e iabbäalgt. t e Sie! ,hängtauch non&& Ehwhi9akmm der An&hinsich&& Latenz ab. l h e von I-, P d BFrames in der COP. Man M t e z.h Mgeade COP:
IBBBBPBBBBI
.
Wese GOP ist fiir eine M
-
p d c m t i d , weil der Sen& emiu8gbkk& &FYoris aiichsaxl
aib der m aM+=** ltw.btiaodia!mn G m d kodieren viele W b - h w b n d V~ i d t JPEdaw s h pMgtian-JP8Gw gemimt whd. {M&-JPEG Ibt stwh das P&m eines VMWOTfieJriQPI l k & m m - B ~ m - weii alle F E S ~ Bunabbäogig sind,) klatr WB a b dem b-Kdie nur von uosisiurigta, nicht siba &paltwenFrame ~ k ~ P r o b l a n d a r s d i ~ E i n e G O P a u.,s IPPPPI w&de~d%. für eine m ~ ~ ~ a k t i o e
m
-
gut hnMonWtl.
m
n bereits fmgestetlt, dass Videokodierung mittels MPEG einen der verbrauchten Bandbreite und der Bildqualität
nt ist, sondern je nach Umfang
1 bis zu 3R Ws vorkommen. Wir kiinnten potentiell &eri
möglicherweise auf s zu einer Iangeren h te (und die Bikiqualität)
-
-- --
chnitt 6.5.5 beschrieben wurde. Wir könne e verfügbare Bandbreiteschwankt, sodass er san h Das würde bedeuten, dass er sich bei Überlast mehr (mit einer höheren Blldqualitiit) sendet, wen nicht Oberfastet ist. Das ist vergleichbar mit dem Verhaken von wkr bei einem Video tatsächlich die Gesamtmengeder gesen die Dauer der Übertragung einer festen Datenmehge W keineVerzögerung in eine Videoanwendung einführen möchten. Ein interessantes Problem entsteht, wenn wir einen Videostrom mittels Multicasting an viele Empfänger senden. Wie wählen wir angesichts der Tatsache, dass beijedem eine völlig andere Überlastsituationvorherrschen kann, die korrekte Rate für jeden Empfänger?Bei einer möglichen Lösung wird das übertragene Video in ,Schichten# aufgeteilt. Die erste Schicht würde die nötigen Basisdetailsumfassen, um ein brauchbares Bild auszugeben, während auf jeder nachfolgendenSchicht weitere Details, dh. höherfrequenteInformationen, hinzukommen. Jede Schicht kann dann an eine andere Adresse der MulticastGruppe gesendet werden, und jeder Empfänger kann bestimmen, wie viele Schichtener annehmen möchte. Liegt bei Empfänger A eine starke Überlast vor, hat er die Mögiichkdt, nur der Multicast-CNppe beizutreten, welche die Basisschicht Ubertrtigt, während Empfanger B vielleicht alle Schichten empfange1 will, Empfänger A konnte periodisch versuchen, an der nächsten Detailschichi 'teilzunehmen, um zu sehen, ob inzwischen mehr Bandbreite verftigbar geworden ist. DiesenAnsatz nennt man ~Receiverdriven LayeredMulticastcc (RLM). Ein interessdntes Forschungsproblem ist dabei, wie man die richtigen Anreize schafit, um einen Empfänger zu veranlassen, nur jeweils der entsprechenden Anzahl von Gruppen und nicht allen beizutreten, da die Teilnahme an zu vielen Gruppen zu unnötiger Netzwerküberlast führen würde.
MPEG definiert nicht nur, wie ein Video komprimiert wird, sondern auch eiag Standard für die Kompression von Audio. Dieser Standard kann benutzt wei.dq um den Audioanteil an einem Film .zu komprimieren (in dem Fall definiert d& WEG-Standard, wie das komprimierte Audio mit dem komprimierten V i d e ~J$ einem einzigen MPEGStrom zusammengemischt wird). Es k a m aber auch allein &$ die Kompression vcm Awdiomateriai (2.B. einer Audio-CD) benutzt werden. ~4 Um Audi~komprfs~on &Uverstehen, mjssen wir mit den Damr beginnen. A* in CD-Qualität, was dem De-faaestandard der digiwlen Darstellungvon Au& I hoher Quaiitrt entspricht, wird in einer Rate von 44,l KH. abgetastet (dh.,un& fähr aiie 23 ps wird ein *SampIeu entnommen). Jedes Sampk umfasst 16 Bit, bedeutet, dass ein 2-Kanal-Audiostr8m (Stereo) zu einer W a t e von
4
2 x44,I Hz X 1000 X 16 bit = 1,31 Mbit/s
f+ihrt. Im Vergleich dazu wird Sprache in Telefonqudität in einer Rate von 8 KHz mit 8-Bit-Samples abgtmm. Das e d b t eine Bitrate von 64 Kbit/s - dass dies der C&s&Mgkeit einer EDM-Leimg entspricht, ist h i n Zufall. Matürlioh ist eine g e w k Konkpmsion e~iforderldi,.um kudio in CD-Qualitiit %u ihrtragen, beispielsweise f i k eine kombinierte I S D N - D a ~ ~ d d e i t m mit g ki3ner Kapazitiit von 128 Kbids. Dies wird dadurch dass auf Grund von Qndi~onisations-und, Fehlerk6irek~ur-Overhead49 Bit benutzt werden müssen, aun jedes 16-BitSample zu kodieren, was eine tatsächliche Bitrate von L
~~
49/16 X 1,41 Mbitls = 4,32 Mbitls ergibt. MPEG erfüllt diese Anforderung durch Minkiaa Mer Wompregsionsebenen (siehe Tabelle 7.2). Davon ist Schicht III - besser bekannt unter der Bezeichnung W3 - die am hiiufigpms verwendete.
Um diese Kompressionsraten zu erreichen, nutzt W 3 Techniken, die denen von W E G füt die Videokompresskm ähnein. Zuerst wird der Audiowom in mehrere Friequenzteilbitnder aufgeteilt. Dies entspricht grob der getrennten Verarbeitung der Yt,U- imd V-Komponenten eines Vidm$roms in W E G . Zweitens wird jedes Teilb d in mehrere B k k e auweilt, was mit den MIPEGMalrroblöckea vergleichbar . J&, außer d a s sie hinsichtlich der Länge Aschen 64 und 1024 Samples variieren k h e n . (Der Kodierungsalgorithmus kann die Blockgröf3e variieren, je nach bestimmten Verzerrungsefkkten, deren Erläuterung jedoch über Zweck und Umfang dieses Buchs hinausgeht.) Drittens wird jeder Block genau wie beim MPEGVideo mit Hilfe eines modifizierten DCT-Algorithmus transformiert, quantisiert und Huffman-kodiert. Der Trick bei MP3 ist die Anzahl der verwendeten Teilbänder und die Anzahl der . --die ,jedem TeiEW z u g d t werden, weil der Standad versucht, die für die + hstm@&he AudioqmJlität zu erreichpn. Wie diese Zuteilung im Einwird &wdh pqcbo-h Modelle festgelegt, deren Erläuterung iik Zweck und U d m g k .Buchs hinausgehen. Um das Konzept nur U u m r e h : Es ist generell sinnmil, den Teilbändern niedriger Frequenzen Bits zumiteilen, wem eine W i c h e Stimme komprimiert wird, und den Teilbgndern hoher Frequenzen mehr Bits, wenn eine Frauenstimme komprimiert wird. I Wikend der praktischen Ausführung ändert MP3 dynamisch die für jedes Teilband k u t z r e n Quantisiernngstabellen, um die gewünschte Wirkung zu erzielen. Nach der Kompression werden die 'Feilbhder in Frames fester Grö%everpackt, ' und ein Header wird angehängt. Dieser Header beinhaltet Synchronisationsinforma,
timen sowie einen Hinweis auf die Bitzuteiiung, die & Dekodierer für di lung bencitigt, wie viele Bits fk die W e G g jedes Teiibands benutzt wur obea erwähnt, können diese Audio-Frai~icsdann mit M d e o - F z a zus iilder,. Zuan Schluss r "b-hmidt werden, uai einen kompletten WEG cin wichtiger Punkt erwähnk Während es m :Se 3aicha au& bei Urberlastsuig des Netzwerks n3 V&, hat uns ditr nrfa dass Audio-Frames nicht verworfen werden sdltea, weil Beautzer si Video toleranter reagieren als auf schlechtes Audio.
...
4
3
In diesem Kapitel wurde beschrieben, wie Daten in Netawabketen k A d den. Ixn Gegmatz zu dien in f&ren Kapiteln bachsiebenw Protokolb+, Nachdch~ v.subeiioug d n bei diesen TwWka ~ W~ sJr k i m . . Der erste h&.):.ist die Darstc~un~fomatit-g, bei dex cs sich um die F tientng der perschkdmen Daeeaiqpn v m A n w e ~ p r o ~ han ~ e n d i e n , G~eitkonmmdden,Zeichdetten, &ays und S e n . Diese umfasst die h t ; w n g der BpAn~rdnungvon b%c:hheund Netzwerk Litlearism v m DatensMilrm. Wir h a b den Gesml-ep1erEram DarstePu1~fozrmatie~ und drei spezifide Mschanrismen innerhalb hreicb bgsc&cbcn: XDR ASN.1 d NDR. Der zweite P a k t ist die ~ornpmsbn,M um die kduzknmg die Ubrmgmg Ratentypen hWgten Bandbreite i C m g m s i U g z > n b n kOmm va1,oder w t r l w w sein.
L.
h & a e & a t i ~ ~ n & h a wad W3 sind ]&eispklewrlusfbeha Video- bzw. Audiodatm.
. i
Wir haben MPEG so behandelt, als wäre es speziell fijr die Komprirnierung von Videodaten ausgelegt Computernetzwerke worden, damit diese über paketvermittelte Netzwerke übertragen und Unterhaltungselektronik werden können. Selbstverständlich trifft dies nicht zu. MPEG ist ein L! aligemeines Videoformat, das sich genauso gut für einen auf DVD gespeichertes, Spielfilm oder ein von D-1 übertragenes digitales HDTV-Signal eignet. Das alle läuft auf die Verschmelzung von Computern, Netzwerken md Unterhaitungseiektronik hinaus.
J
h nicht a l h fenser Zukuaft findicn wir in Privattiaushalren wahm&eidkh ein so genanntes M s d b - G ~ u (MG) y vor: Es h m t e auf dem Fmsehapparat %den und damit die heutige SntopBox dm Kabelfernsehens ablösen, Das MG wird mit einem Interne--Pmvidw.(W) verbunden, ~ h c m e i s über e den Un Haus vorhandenen Fernsehkabelanschluss. h s MG wird auch cuie R e h von Pom riritutstutzen, an die verschiedeneElektranikgeräte9z.B. ein dijjitak Catwordeq ein DVD-P&Berd e r ein Videospiel, ~~~1~~ werden k6men. Na& dem heutigen Stand sieht es so aits, dass Firmvire, eine von Apple entwickelte cperidte 400-EvfbitlsLeials gemeinsamer Anschluw für diese Gerate dienen wird, Verschiedene &ahdo6(!T h l o g i e n sind ehe,weitere.Mi&chkeit. Was wird vom MG verbgt- werden3 Mit Sicherheit wird es MdaiprediakStriSme mischen verschiedenen Gepäten weiterkiten, vergieichbai mit den heutigen P-Woumn, die Datenpkete mischen PP- befijrdem. Es lrouut M s p i o l W eid mitdem digitalen Camcorder erfasstes Video von den sul3en Enkeln übcr die ISP-Verbindung quer durch das L a d zu den sehnsüchtig wartenden Großeltern sended Zweitens ' mus es miiglicherweise znri%e'Bm dem im'htemet gesprochenen TCPm und einem von den Geräten untecstlitzten Format übersetzen. Natutlich ist es möglich, dass Camcorder eines Tages vollwertige hterpet-Knoten sind (d.h. ihre eigene P-Adresse bben). Medien-Gateways werden jeddaiis die Notwendigkeit, kllnfeig dh gut wie &es an das Internet amschli&n, 'vmahmiben. Die Aussicht der weitv&b~eitetenVetfugbarkeit Yon »Inmet-Geräten* wirft mehrere interessante Fragen auf, unter mderem die der Adressnurzung. IP Version 6 wurde mit dem Ziel entwickelt, den P-Adressraum ausreichend zu erweitern, sodass P-Adressen jedem nur er&nkIi&n Objekt (Toastern, Wassenähiern usw) .Zugewiesen wer&n kiimen, ohne dass sich die verfügbaren Adressen eirsch6pfen. Internet-Service-Provider stehen der InstallaGon von IPtr6 heute auch ablehnend gegenmit extremer Vassicht. Das birgt ein , iiber und vergeben IPu4-Adtesen i h n Pgwmial für große Probleme in d a Z&&. Eine weitere Frage ist die Einfachheit, mit der sich P-Geräte ko&ieren lassen. W3ihrend viele der heutigen Intern&-Benutzer mühelos IP-Adresse, Maske und Defadt-Gateway auf ihrem PC einrichten k h e n , dürfte es eher unwahrscheinlich sein, dass der Durchschnittsbenuuer von Elektronikgeräten wie Chmmrdcrn lernen möchte, wie man etwas konfiguriert, das über das Drücken der »Record«-Tastehinausgeht. rt Plug-and-Playa<-Kn-tion von IP-Geräten bleibt ein wichtiges Ziel. t
7.4 WeiterfLihrende Literatur
-
Unsere empfohlene LeseFiste f.iEr &eses Kapitel beinhaltet zwei Arbeiten, die einen überblick über die JPEG bzw. MPEGStandards bieten. Ihr vorrangiger Wert liegt in der Erkliining der verdiedenen Faktoren, die zu den Standards geführt und diese geformt haben. Wir empfehlen a&rdem eine Arbeit über Receiver-driven Layered Multicast (RLM) als hervorragendes Beispiel eines Systemansatzes, der Multicast, Ober1astkontrolle und Videokodieniag umfasst.
sm17-
H Wallace, G. K.: The JPEGstill picnirc compression standard, Ccrmml~flkdotw of tthe ACM, 34(1), S. 30-44, April 1991. Le G d , D.: MPEG: A video compression standard for multimedia applicati-i Communications of the ACM,34(1), S. 46-58, April 1991. H McCanne, S., Jacobson, V. und Vetterli, M.: Receiver-driven layered mufProceedings of the SIGCOMM '96 Spuposium, S. 117-130, September 19%,, .
Uns ist keine Arbeit bekannt,.die als einzeine Quelle das Thema D a r s t e l l e ~natierungumfassend behandelt. Abgesehen von den XDR-, ASN.l/BE&- aaid NDR-Spezifikationen (siehe W v a s a n [Sri9Sb], [CClTT'92a, CCXIT92bl und Open Sofnvare F o d a t i o n [OSF94]) wird Darstellungsformatierung noch von drei weiteren Arbeiten teilweise behan&h O'Mailey u.a. [OPM94], Lin [Li93] und Chen u.a. [CZPJL89]. In a k Arbeiten werden Ieistungsspezifische Fragen erOrtert. Zum Thema Kompression ist die Orighalarbeit ist [HufS2]. Der LZ und Lempel [ZL773 beschrieben, und eine von den gleichen Autoren findet man in [2278]. Natw Die Arbeit, die den LZ-Ansatz im praktischen Welch (Welt341 beschrieben. Für einen umfassenderen Ober empfiehlt sich Nelsons Artikel Wel921. Ober Kompression jüngst erschienenen Bücher über Multimedia zu lesen. Wir [WMB99] und Buford @uf94]. Mitchell w.a. 1 Beschreibung des MPEG-Standards. MP3 wird in Noli No197 erläutert. Schüdiich empfehlen wir folgende WWW-Queile:
H h#pJIbmnc.berk~iey.edu/proj~m~.Mmi Dies ist eine Sammlung von MPEG-spezifischen Programmen, von denen in den folgenden Ubungen benutzt werden.
7.5 Obungen 1. Wachten Sie die Definitionen folgender C-Stdmenr #def ine MAXSTR 100 struct date { char month[WSTIU; in t day ; int year;
1; struct employee { char name[MAXSTR];
; '
75
tnt struct int int
Iiksigrn 1
571
osn; date *hireday; salary-iti story[lO] ; ntm-rai Ses;
static struct date datd) = {JMY', 5, 19%); statlc struct date datcl = { , J M Y m , 7, 202); sta-tic struct eniployee eniployae0 = { , R 1 W w . 4376, Uatd), (14000. 55(r00, 47000, 0, static struet employee enployeel = ( . M Y 9 ,
4377, Matel, (90000. 150000, 0, 0, O), 1);
wobei nurn-raisgs + 1 der Anzahl der gültigen Einträge im Array dary-history -cht. Geben Sie die von XDR erzeugte Darstellung der Strukw,employee0
2. Ceben Sie die von XDR erzeugte Darstellung der Suuknu employeel aus Aufr!
3. Geben Sie fiu die Datenstrukturen aus der vorherigen ubung die &R-~outine an, die diese Strukturen kodiertldekodiert. Falls Ihnen XDR zur Verfüggng steht, führen Sie diese Routine aus und messen Sie, wie lange es dauert, um eine Beispielinstanz der Struktur employee zu kodieren und zu dekodieren. 4. Verwenden Sie Bibliotheksfunktionen wie htonl und bcopy unter Unix bzw. CopyMemory unter Windows und impledentieren Sie eine Routine, welche die gleiche der Strukturen wie mit XDR in Obung 1erzeugt. Falls möglich, vergleichen Sie die Leistung Ihres »manuellenu KodieredDekodierers mit den entsprechenden XDR-Routinen.
5. Verwenden Sie XDR und htonl, um ein aus 1.000 Elementen bestehendes Ganzzahl-Array zu kodieren. Messen und vergleichen Sie die Leistung dieser beiden Alternativen. Wie lassen sich diese mit einer einfachen Schleife, die das gleiche Array liest und schreibt, vergleichen? Führen Sie das Experiment sowohl auf einem Computer durch, dessen lokale Byte-Anordnung derjenigen des Netzwerks entspricht, als auch auf einem comput& dessen lokale Byte-Anordnung sich von derjenigen des Netzwerks unterscheidet. 6. Schreiben Sie Ihre eigene Implementierung von htonl. Unter Verwendung Ihrer eigenen htonl und (falls Little-endian-Hardware verfügbar ist) der Version aus der Standardbibliothek führen Sie entsprechende Experimente durch, um zu ermitteln, um wie viel länger das Byte-Swapping von Ganzzahlen gegenüber dem einfachen Kopieren derselben dauert.
-
-. L
7. Geben Sie die ASN.1-Kodierung für die folgenden drei Ganzzahlen an. Ekiachm Sie, dass ASN.1-Ganzzahlen 32 bit lang sind.
J
8. Geben Sie die ASN.1-Kodierung für die folgenden drei Ganzzahlen an. Beachten Sie, dass ASN.1-Ganzzahlen 32 bit lang sind.
9. Geben Sie die Big-endian- und Little-endian-Darstellungender Ganzzahlen O U ~ der Ubung 7 an. J 10. Geben Sie die Big-endian- und ~ittle-enkan-~arstellun~en der Ganzzahlen a& der Obung 8 an.
11. XDR wird benutzt, um den Header des in Abb. 5.20 dargestellten smRPd- Protokoiis zu kodieren und zu dekodieren. Die XDR-Version wird durch dw Feld RPCVersion vorgegeben. Welche potenzielle Schwierigkeit ergibt si& dadurch? Wäre es möglich, dass eine neue Version von XDR auf das Format fur Littledndian-Ganzzahlen wechselt?
12. Der Prozess der Darstellungsformatierung wird manchmal als autonamic Protokoiischicht - getrennt von der Anwendung Warum wäre die Einbindung der Datenkompression in diese ungeeignet?
-
.
'
13. Gehen Sie von einer Maschine mit einer Gr%e von 36-Bit-Speicherw6rtern aus, Zeiichenketten werden in Fünferblocken von je 7-Bit-Zeichen pro Speicherwoz~ dargestellt. Welche Darstellungsproblematik muss auf dieser Maschine gelöst werden, damit sie Ganzzahien- q d Zeichenkertendaten mit dem Rest der W& austauschen kann? 14. Benutzen Sie eine Programmiersprache Ihrer Wahl, die benutzerdefinie* automatische Typenkonuertierungen unterstützt. Definieren Sie eiaen Typ rrealn( und stellen Sie Konvertierungen bereit, die Zuweisungen und Vergieichsoperatw ren zwischen in& und nethits ermögiichen. Kann eine Generalisierung diem Ansatzes das Problem des Netzwerk-Argument-Marshallinglösen?
15. Versehiedune Arehrtekmren haben unterschiedliche Konventionean hinsichtlich der Bit- und Byte-Anordnung, dh., ob das niedecwmigtm Bit eines Bytes 2.B. Bit 0 oder Bit 7 ist. (Pos811 definiert (in Anhang B) die Standard-Bitanordnung für Netzwerk. Wanun ist die Bitanordnung dann für die Darsnliungsformatic rung nicht relevant?
16. Augmommen, p i 1 ist der Anteii von Bige&-Maschinen in ehern Netzw u h der restiiche Anteil von 1- p ist little-endian. Wir wählen zwei Mazi&inen zufällig aus und senden ein int von einer zur anderen. NC& Sie die durchschnittliche Anzahl d u Bpe-AnordnungskonverUefangen,die sowohl für die Big~endiadj%ij%iAnordnungdes Netzwerks als auch für den Receiver-makesrighg-Ansatz bei p = 0,1,p = 0,s und p E 0,9 erforderlich sind. Hinweis: Die Wahrscheinlichkeit, dass bei& Endpunkte big-gndian sind, ist $ . ' ~ i e Wahrscheinlichkeit, dass die beidm Endpunkte unterschiedliche Byte-Anordnungen benutzen, ist 2p(l- P). 17. Experimentieren Sie mit einem Kompressionsprogramm (2.B. -conprem, gzip oder pkzip). Welche Kompressionsraten können Sie erreichen? Versuchen Sie, ob Sie Dateien erzeugen können, für die Sie Kompressionsraten von 5:l oder 10:l erzielen können.
18. Angenommen, eine Datei enthäit die Buchstaben a, b, C und d. Noderweise benötigen wir 2 Bit pro Buchstabe, U& eimsolche Datei zu speichern. a. Gehen Sie davon aus, dass der kuchstabc a mit einer Häufigkeit von SO%, b von 30% und C und d jeweils von 10% vorkommen. Geben Sie für jeden Buchstaben eine Kodierung ah Bitkette an, die optimale Kompression bietet. Hinweis: Benutzen Sie für a ein einzelnes Bit. b. Welche prozentuale Kompression erreichen Sie damit? (Das ist der Durchschnitt der für jeden Buchstaben erreichten Kompressionsprozentsätze, gewichtet nach Häufigkeit des Buchstabens.) C.
k I , i
19. Gehen Sie von einer Kompressionsfunktion C aus, die eine Bitkette s in eine komprimierte Kette c(s) umwandelt. a. Zeigen Sie für jede Ganzzahi N,dass es eine Kette s mit Länge N geben muss, für die Länge(c(s))2 N gilt, dh., es erfolgt keine effektive Kompression.
b. Komprimieren Sie einige bereits komprimierte Dateien (versuchen Sie die Kompression mit der deichen Wty mehrmals nacheinander). Was passiert mit der Dateigröße? C.
I r
1
Wiederholen Sie dies unter der Annahme, dass a und b jeweils mit 40%, C mit 15% und d mit 5% vorkommen.
Unter der Annahme einer KompressionsfunktionC wie in Teilaufgabe a geben Sie eine Funktion C' an, sodass für alie Bitketten s
Länge(cl(s))S min(Länge (c(s)), Länge(s))+ 1 gilt. Im ungünstigsten Fall erc weitert sich also die Größe durch Kompression mit C' um nur 1Bit. 20. Nennen Sie einen Algorithmus für die Lauflängenkodierung, der nur ein einzelnes Byte erfordert, um nicht wiederkehrende Symbole darzustellen.
*
21. Schreiben Sie ein Programm, um ein Wörterbuch mit allen »Wörtern. aufzubauen, die für mehrere aufeinander folgende Nicht-Whitespace-Daten in einer bestimmten Textdatei definiert wurden. Anschließend können Sie die Datei komprimieren (und dabei den Verlust der Whitespace-Daten ignorieren), indem Sie jedes Wort als Index des Wörterbuchs darstellen, Besorgen Sie sich die Datei rfc791.txtydie [Pos811 enthält, und führen Sie Ihr Programm mit ihr aus. Geben Sie die Größe der komprimierten Datei an, wobei Sie zuerst davon ausgehen, dass jedes Wort mit 12 Bit kodiert wird (das sollte ausreichen), und dann, dass die 128 häufigsten Wörter mit 8 Bit und der Rest mit 13 Bit kodiert wird. Setzen Sie voraus, dass das Wörterbuch selbst mit Länge(Wort)+ 1 Byte pro Wort gespeichert werden kann. 22. Die eindimensionale Discrete-Cosine-Transformationähnelt der zweidimensionalen Transformation, außer dass die zweite Variable (joder y) und der zweite Kosinusfaktor wegfallen. Wir lassen außerdem von der Umkehr-DCT den führenden Koeffizienten 1/&i weg. Implementieren Sie dies und die Umkehr & . N = 8 (eine Tabellenkalkulation~genügt,obwohl sich Sprachen, die Matrizm unterstützen, besser eignen) und beantworten Sie folgende Fragen: a. Weldhe Da-Koeffizienten sind nahe 0, wenn die Eingabedaten (1,2,3,5,5, 3,Z, 1)sind? b. Wie viele DCT-Koeffizienten müssen wir behalten, damit alle Werte nach der . Umkehr-DCT innerhalb von 1%ikes Originalwerts liegen, wenn die Da(1, 2, 3, 4, 5, 6, 7, 8) sind? Gehen Sie davon aus, dass weggelassene DCTKoeffizienten durch Nullen ersetzt werden. C.
Angenommen, si für 15 i i 8 ist die ~ i n ~ a b e s e d daus i e einer 1in Position i und 0 in Position j, j # i, besteht. Wir wollen die DCT auf sj anwenden, setzen die letzten drei Koeffizienten auf N d und führen dann die Umkehq DCT aus. Welches i, 15 i i 8, führt zum kleinsten Fehler an der i-ten Stelle im Ergebnis, und welches zum größten Fehler?
23. Vergleichen Sie die Größe eines ganz weif3en Bilds im JPEGFormat mit einem wtypischen~Foto gleicher GröSe. In welcher bzw. welchen Phasen der JPEG Kompression wird das weiße Bild kleiner als das Foto?
Für die nächsten drei Obungen sind die Utilities cjpeg und djpeg nützlich; sie sind unter ftp.uu.net/graphics/ipeg erhältlich. Es können auch andere Utilities für die
7s ülmgm [
sJe
J P ~ ~ ~ ~ a 8 eh rm a i t. wenkill. e~ Für die manuelle Erstellung und Anzeige von Grafikdciteim wird das pombk Grauwwtformat pgm empfohlen; siehe die manPages ni pgm(j)/pprn(~). 24. b c l l e n Sie ein GrauwimM4 das aus e h m 8 x 8 - R i z ~ smit einer vertikalen schwarzen Linie in dir ersten Spalte besteht. Komprimieren Sie es in das JPEG Format und deklomprimieren Sie es a n s c M n d , Wie weit sind die resultierenden Bytes von der Standardqualitätseinstellq entfernt? Wie würden Sie die dadurch entstandenen, visuell wahrnehmbaren Ungenauigkeiten beichreiben? Welche Qmlitatseins't: 'qreicht aus, um die Datei originalgetreu wiedenugeben?
f
15. Erstellen Si ein $xS-Gratrwertbilii, has aus einer 64 Zeichen umfassenden
ASCII-Tedette, besteht. Benutzen Sie nur Kleinbuchstaben ohne %itespace und Satzzeichen. Komprimieren Sie es in das JPEGFormat und dekomprimieren Sie es. Wie gut ist das Ergebnis als Text erkennbar? Warum kann sich die Lage durch &weitem der Wtespaces verschlechtern? Wiire dies bei einer Qualitiits' einstelltzog von 100 eine piausible Art, Text zu komprimieren? i
t
26. Schreiben Sie ein Programm, das Vorwärts- unQRückwZirts-DCT mit Hilfe der Gleitkommaarithmetik implementiert. Führen Sie das Programm mit einem Grauwertbild aus. Da DCT verlustlos ist, sollte die Bildausgabe des Programms mit der Eingabe übereinstimmen. Nun ändern Sie Ihr Programm so ab, dass es einige der Komponenten höherer Frequenz auf Null setzt. Anschliegend prüfen Sie, welche Auswirkung dies auf ,das Ausgabebild hat. Welcher Unterschied ergibt sich gegenüber der Wirkung von JPEG? 27. Drücken Sie DCT(0,O) als Durchschnitt der pixel(x, y) aus. .
28. Oberlegen Sie, welche Funktionen vernünftigerweise von einem Videostandard erwartet werden können: Fast-Forward, Editierfähigkeiten, wahlfreier Zugriff usw. (Weitere Ideen finden Sie in der Arbeit von Le Gall, »MPEG: A video compression standard for ,multimedia applications,* in der Literaturliste dieses Kapitels.) Erklären Sie das MPBG-Design in Bezug auf diese Merkmale. 29. Angenommen, Sie mochten Fast-Forward und keverse für MPEG-Ströme implementieren. Welche Probleme eatstehen, wenn Sie Ihren Mechanismus auf die Anzeige von I-Frames begrenzen? Falls nicht, wie viele Frames der OriginalSequenz müssen Sie dekodieren, um einen bestimmten Frame in der Fast-Forward-Sequenz anzuzeigen?
38. Benutzen Sie mpeg-play, um ein mit W E G kodiertes Video abzuspielen. Experimentieren Sie mit Optionen, insbesondere nob und -nop, die benutzt werden, um die B- bzw. P-Frames des Stroms wegzulassen. Welche sichtbaren Effekte entstehen durch das WPeglassen dieser Frames?
'
.
31. Das Programm mptijg-stat kann benutzt werdan, um Saatisthn für Vi&m amwigen. Benutzen Sie es, uimi fiir mehrere Strsme fdgmdcs zu ermim& ;
a. Anzahl und Sequenz von I-, B- und P-Frames b. Durdischnittliehe Kompressionsrate für-das gesamte Video C.
Durchschnittliche Kompressionsrate für jeden Frame-T"yp
32. Angeno-n,
wir haben ein Video von zwei w e i h Punkten, die sich in stanter Rate vor einem schwarzem Hintergrwd aufeinander zu bewege@ kodieren es mittels W E G . In einem I-Frame liegen die beiden Punkte 190 auseinander. Im nächsten I-Frame s i ~ dsie zu einem verschmolzen. Der Punkt der Verschmelzung Liegt in dw Mitte eines 16x16-Mahobbcks.
a. Beschreiben Sie, wie man die Y-Komponente der damischenliegc B- (oder P-) Frames optimal kodieren k6nnte. b, Angenommen, die P & sind bunt und die Farbe wechselt langsam* rend sich die Punkte bewegen. BeschrCibwl Sie, wie dje Kodierung der U V-Werte aussehen könnte.
8 Sicherheit in Netzwerken
Computernemverke sind eine Ressource, die von vielen Anwenduqpa für viele versckdene Zwecke gemhsam genurzt w&d. Manchrslal sind die zwiwhen hwenduq$spro~estsen5brrragenan Daten vertraulich und soiiten von niemand anderem gelesen werd a . Bei Käden im World Wide Web werden 2.3. o#t Kredi@artennummern über das Netzwerk übertragen. Das ist ~efiihrlich, weil jemand leicht das Nebwerk anzapfen uad aiie durchflieBenden Pakete h n kann. Um dies zu verhindern, mächten viele Benutzer ihre Nachrichten werschl&seln. Das Konzept der VerschlWlung ist recht einfach: Der Sender wendet ehe Vers&IÜssel~gsfinktianauf die ursprüngliche Klartmp~chricbtan, woraus eine CbifF.etextnadricbt resultiert, die über das Metzurerk übertragen wird, Der 1t is tme beatness Empfänger wenda eine EntscAlüsseJ1c)oagsfunktim an, uni den wsmnglichen Klartext ro bhave in one tbe wieder herzusteUen. Der Ver-JEacschlÜwf"l* ' f a -imamd lungsprozess hängt im Allgemeinen von eitbe seercrity of a p d 4 nem geheimem Schlüssel ab, der nut dem hder und dem Empfänget bekannt ist, Wird -Seneine geeignete Kombination aus einem Schlüssel und einem VerschlÜsseluqgaigOnthmlls benutzt, ist es für einen Lauscher schwie& den Chiffretext zu knacken. Sender und Empfänger k;önnen lso davon ausgehen, dass h e Kommwnikatiun sicher ist. D i e s bekannte Verfahren mll Vertl:a:ulichIceit sichern, also den unautorishen Zugriff auf Informationen verhindern. Vertraulichkeit ist aber nicht der einzige von Krypmgaphie gebotene Dienst. Sie unterstützt weisere wichtige Dienste, darunter Aurkentifikartion (Feststellung der Identität des entfernten Teilnehmers) und Iak@dt (Sichmteilung, dass die Nachricht nicht verändert wurde).
P
Dieses Kapi1:ef gibt e&m ,inw p t ~ cdt.eipw Beschreibung der drei kaufis~tenhyptographischen Algoridmen: Data lbmypiw Stastkd (aEa), Evest, Sharniir und Adleman (RSA) UBd Mbj t(MD5). Amddkhnd wkd gern*, w k &ew &ri&mm ffw & keirskfiwng von h-etion und Integrität kmtzt werden kbma. A&&m wird das Prok m der sGhh~?4w-g erlau- &U3 wie h u die bmd~ tigm fid&i,wlezblbn. Das Kapitel mdet mit einer &schreibwg v e r ~ h i e d asicherer r Spamne und Protokolie, die fii-r dars fnternet entwickelt wurden. Bei der Lektüre dieses Kapitels muss man berücksi~htigen,dass die trerschideneq Algorithmen und Protokolle für V e r t ~ c h k e i t , ~ut;~&kahoa. w d Integritiit isoliert beschrieben werden. In der Praxis setzt die Zusiwrmendung eines sicheren Systems ehe komplizierte Rombinatlon aus Ptot&01lon und Algorithmen voraus. Das ist keine leichte Adpbe, weii jedm Pro~&ail unterschiedlichen Attxken ausgesetzt ist, ~ o n & r sschwierig ist die Feststeilq wann ein Sicherheitsprot&
8.1
Kryptographische Algorithmen
Man unterscheidet grob zwischen drei Typen kryptographischer Algorithmen: auf der Grundlage von geheimen Schlüsseln, öffentlichen Schlüsseln und Hashing. Algorithmen mit geheimen Schlüsseln sind in dem Sinn symmetrisch, als beide Teilnehmer' einer Kommunikation einen gemeinsamen Schlüssel benutzen. Abb. 8.1 zeigt die Verschlüsselung mit geheimes Schlüsseln, um Daten über einen andernfalls unsicheren Kanal zu übertragen. DES (Data Encryption Standard) und IDEA (International Data Encryption Algorithm) sind die bekanntesten Verschlüsselungsmethoden mit geheimen Schlüsseln. Klartext
Klartext
I
I
Wb. g.1: VerxhlUsselung mit gehefnien sctdassehi
mit geheimem Chiffretext
Im Gegensatz zu zwei Teilnehmern, die gemeinsam mit einem geheimen Schlüssel kommunizieren, hat jeder Teilnehmer bei der Verschlüsselung mit öffentlichen Schlüsseln einen privaten Schlüsyl, den niemand kennt, und einen öffentlichm Schlüssel, der allen bekanntgegeben wird. Um diesem Teilnehmer eine sichere Nachricht zu &den, wird die Nachricht mit dem allgemein bekannten öffentlichen Schlüssel verschlüsselt. Dann entschlüsselt der Teilnehmer die Nachricht mit seinem privaten Schlüssel. Dieses Szenario ist in Abb. 8.2 dargestellt. RSA - benannt nach seinen Erfindern Rivest, Shamir und Adleman ist der bekannteste Algorithmus für die Verschlüsselung mit öffentlichen Schlüsseln.
-
i
Klartext
Klartext
4
AMr 83: VerxhlOsselung mit
onrm*IhSchIClSsel
mit 6ffentUchem Chiiiretext
Die dritte Art kryptographischer Algorithmen nennt man Hashing oder MessageDigest. h Gegensatz zu den beiden obigen Arten ist as kryptographische Hashmg
J'
1. Wir verwenden den Begriff Teilnehmer für die an einer sicheren Kommunikation beteiligten Parteien, da wir diesen Begriff durchgehend im Buch benutzt haben, um die beiden Endpunkte eines Kanals zu identifizieren. Irn Sicherheitsbereich nennt man sie normalerweise Prinzipal.
~~
Gdwaiwt ~ c h ~ l s s e l schmssel (3.8.DES) (2.B. FISA)
R&mge-
ot!pa
Vertrauiichket
AuäHNiö-
Ngduiohten-
fikah
Integmt
(z.0. Mü5J
Abb. 83: Taxonomie von W c h e r h a
nicht mit der Anwendung von ~chlusseln~ verbunden. Das Konzept basiert vielmehr auf der Abbildung einer potenziell grob Nachricht auf eine klebe mit festet Länge, vergieichbar damit, wie eine g e w & W eHash-Funktion Wert&von einem gd3en Raum auf Werte ineinem ltieiwa Raum abbildet. Man kann &h eine @togtgpbri& W-Funktion am besten io v m f l e ~ dass sie eine k r y p ~ o g ~ @ h Prlifkb~ aus einer Nachricht kcxhnet. DasWt, U wie eine &ewWclEe Prüden Empfänger vor vemehmtüqhen Wadierwgen der Nachricht schü- schützt eine k r y p t ~ a p W Prüfsumm c den Empvar böwdhgen hdamgm der Naeiuw$t. Der G m d hg,tdarin, drsa alle ~ g r Hash-&aa ~ so&&g als Einwegfdai~neaaasgelwszden. M t einer kryptographhhm Pciibumme für eine Nachricht ist es gridabh twamb&& h a a d d e n , wd& Nachricht die P&mmne produziett hat. A a b amga-hkt,iet es V- Rcxhmadkand her nicht mögtich, zwei Nachrichten ni f b den, die zu $eichen hyptographsdya Prüfsumme führen. Dieses Merkmal ht w e Relevanz Wenn man eine P a fitr eine Nachricht ( z u s m m a mit der Nachricht) e~hiiltund für diese Nacoricht genau die deiche Prüfsumme berechnea kam, hat diese Na&khtt h ö a i s t w a h r W c h die P r ü f s m e weugt. Der bekannteste kryptogrophische Prüfsumnenalgori~usist Message Digest knsion 5 ( D S ) .Zu&&& zni den im vorherigen Absatz hervorgehobenen Merkd e n weist MD5 Bie wichtige Eigens&& auf, dass er sich viel effizienter bersainm als DES tlrZd RSA. Wie wichtig diese Tatsache ist, wird später in diesem Abschnitt beschrieben. .
1* Zusammenfassend s t e h wir fest, dass kryptographkebe Aigorithmen wie DES, ' RSA und MD5 lediglich Baustehe sind, aus d&en man ein sicheres System bildprr kann. Abb. 8.3 iiiustriert diesen Punkt anhand einer einfachen Tanonude. E Betrachtet man diese Dienste MB Bausteine, muss man sidi folgendes iiberlegen: Wie haben die Teilnehmer die versaiiedenen SchMssel ä b e h u p t erhaiten? Dies hlut nir Sebit%sel-lung, einem der zentralen Probleme h Sicherheits1 W&,wie in den nächsten Abschnitten bescluieben wird. * '
t
2. ObwohI Hashhg-Algorithmen keiaen Schiussel als P a m m m benutzen, so mthält doch die Mwhikht, auf die sie angewendet werden, häufig einem Schiüssei, was W verwirrenden Bezeichnungen wie verschlüsselts MDS-hktion führt.
IC
C
= I.
sidagwtkrurtzmrirn
- DES,RSA w d MD5 - funktionierea W u gcbea auch blicke d a ~ b e swurum sie f&tionieren. Diese k h s e i g i q g &t n begrenzt, weii die DES zu Grunde hegenden DesignpWpien nicht bckgnat sind. Im F& von RSA würde eine d - d e Erder F
sten Algorithmen
phischen Aigorithmus erwarten.
8.1 .I Anfosdtwungen
nacistea, die sich mit dean B d m von hypmpaphi8~*hd .Alg gtm, ihre Ezfolge aflseits bekamt. Es ist im Ulgemeinenl* ein pte8 maa ni&ts hört.) Dii ' E i g eines neuen -2UgorikusEsi a b nicht
das e h i g Notwendge, um die Verva-eit der Daten sichamwlief~, Wem janand einen Chifftext erhält, verfügt er viefleicb tionen ab nur den W e t e p selbst. Er kann 23. wiasRn, dass
en lässt, die er mit griSter Wahti dem Sender bestimmte Kriegszeiten passiert. deiniichkeit überträ8t; solche D Die besten hypgraphischm AIgori4tmien lismnen daher den Angreifer &ran hindern, den Schlüssel abnileim, auch wenn dieser sowc~hlden Klartext als auch den Chiffretelrt kennt. Bei dem in DES umgesetzten Ansatz wird der Algoridimus so kompliziert ausgeiegt, dass praktisch kein Teil der Klanextstrriktrn: im CMfmext ftbrigbleibt. Dadurch hat der Angreifer keine andere Wahl,als den gesamten Raum mbglichet Schlüssel zu d m h s u c h . Dies kann erschwett oder verhindert werden, wenn man einen ausreichend grob Sehlüssckaum wählt und die Prüfung eines Sclrlüssels entsprechend aufwändig gestaltet. Wie wir noch sehen Werden, schwindet die Sicherheit von DES zunehmend auf dieser Grundlage. Einigt andere kryptographische Algorithmen gewinnen ihre Stärke aus der Mathematik. RSA kam bei. spielsweise nur geknackt werden, wenn der Angreifer die Faktoren eiaer Zahl finder, die das Produkt zweier groSer Primzahlen ist - ein Problem, das bekanntermaßen sehr aufwändig ist (oder zumiridest dafür gehalten wird). Die Anforderuqeo. an einen Message-Digest-Algorithmus unterscheiden sich gerb&&. Diese Algorithmen sind Einwegfknktiotzen, was bedeutet, dass es mit einer Ausgabe der Funktion rechnerisch unmögiich ist, eine Eingabe zu,finden, die diese Ausgbbe produziert. Da diese Algorithmen eine Ausgabe produzieren, die im Allgemeinen kürzer als die Eingabenachricht isg gibt es viele verschiedene Eingabenachrichten, die die gleiche Ausgabe erzeugen. Es sollte vom Rechenaufwand. her jedoch unmögiich sein, zwei solche Nachrichten zu finden. Diese Merkmale sind erforderlich, damit keiner in der Lage ist, eine neue Nachricht ml* zu finden, die das gl&he Message-Digest produziert, wenn er in den Besitz einer Nachricht rn und des Message-Digest MD(m) kommt. Tollglich ist es nicht möglich, die Nachricht m zu modifizieren und mit der Message-Digest-Funktion die gleiche Ausgabe aus der modifizierten Nachricht zu produzieren. Damit eine Message-Digest-Funktion diese Anforderungen erfüllt, müssen ihre Ausgaben relativ zufällig verteilt sein. Ist ein Digest beispielsweise 128 Bit lang, gibt es 2128mögliche Ausgaben. Das bedeutet, dass man normalerweise die Digests von etwa 264 Nachrichten berechnen müsste, bis man zwei gleiche findet, wenn die Ausgaben zufällig verteik sind. (Diese Tatsache ist eine Version des »Geburtstapproblemse - siehe Obungen am Ende dieses Kapit:els). Sind die Auseben aber &t zdiiilig verteilt, d.h., sind einige Ausgaben, viel eher wahrscheinlich als iuide~,dann k-te man zwei Nachridten mit der gleichen Ausgabe viel leichter finden, was die Sicherheit des Algorithmus zunichte machen würde. jAls weitere Anfordeming müssen MessageD1gmts vurn Rrxhemaiharand her effi:' zient sein. Reduziert &e M m p D i g e s t - F d t i o n den Durchsatz einer Amwendwig um GrOßemordaagm, ist CS utwtdmxkdich, dass vieie Benutzer die Vomiriie der von ihr gebotenen IntegrSt und A u t h e n ~ t i o fiir n lohnenswert halten.
!m 1
8. SkSiamalthiNst;avimiun
a1.2 E S DES verschlüsselt einen 64 Bit grokn Klartextblock mit Hilfe sels. Der Schlüssel entbälr eigentlich nur 56 nutzbare Bit; das letzte Bit jedes da 8 Bytes im Schlüssel ist ein Paritätsbit fiir das jeweilige Byte. grö&re Nachrichten als 64 Bit mit DES verschlüsselt wird. Die Verschlüsselung mit DES umfasst drei Phasen (siehe Abb. 8.4):
1. Die 64 Bit des Blocks werden permutiert (gemischt). 2. Auf die resultierenden Daten und den Schlüssel wer