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 werden 16 Runden einer ich&, d e n Operation angewandt. 3. Auf das Ergebnis wird die Umkehr der ursprüngiichen ~ermutationangewaniocs; Abb. 8 A MS-AMwMiagramm
Anihngliche Pemutation
*
> =-BitSchlDssel
AtisßhliMede Permuiation
Teil der aw&Ei&en
Pernautation ,ist in Tabelle 8.1 e r x w w b ist die W e h r {ZAwkd Bit: 49 in Bitpasition 1 ~
b
h
~
P
e
n
n
u
t
~
~
B
i
e
erhähea, w e Sreberbiu&chleute ~ ~ eda n , die Berechnung länger dauert. Es ist aber ebenso gut d a ersten Hasdwareimplementienuig siad, 2.B. auf G m d einer gewissen schränkmg des Pin-Layouts. T
Uq
'
Tabelkt 8.1: Anfanglkhe (und abschließende)DES-Permutation
In jeder Runde wird der 64-Bit-Block in zwei 32-Bit-Hälften aufgeteilt, und jew& unterscmche 48 Bit mrden aus dem 56-Bit-Schlüssel ausgewW. Wenn wir die linke und rechte Hälfte des Blocks in Runde i als Li bzw. Ri und den 4%-Bit-Schliissel in Runde i als Ki bezeichnen, werden diese drei Teile in Runde i entsprechend der folgenden Regel kombiniert:
,I
:,
.<
J
wobei F eine weiter unten beschriebene Kombinationsfunktion und 8 der XOROperator (excIusive-OR) ist. Abb. 8.5 zeigt die Basisoperation jeck Rmde. Man beachte, dass L. und Ro der linken bzw. rechten Hälfte des 64-Bit-Biogks eaitsprechen, die sich beide aus der anfibglichen PeiIfiutation ergeben; L16 und R16werden wieder zusammen kombiniert, um den 64-Bit-Block zu bilden, auf den die abschiier k d e Umkehrpermutation angewandt wird.
4
7
1I
Amm Manipulation injeder W-Runde
4
b
Wir müssen jetzt Funktion F definieren und aufzeigen, wie jeder Ki aus dem 56-BitSchlüssel hergeleitet wird. Wir beginnen mit dem Wüssel. Anfangs wird der ,' 56-Bit-Schlüssel gemäf3 Tabelle 8.2 permutiert. Man beachte, dass jedes achte Bit ignoriert wird (d.h. Bit 64 aus 'der Tabelle fehlt); wodurch sich der Schlüssel von . . 64 auf 56 Bit reduziert. Dann werden für jede Runde die aktuellen 56 Bit in zwei 28-Bit-Hälften aufgeteilt. Jede Hälfte wird unabhängig entsprechend der Runde entweder um eine oder zwei Bitpositionen nach links rotiert. Der Umfang der R~tation m Bit für jede Runde geht aus Tabelle 8.3 hervor. Die 56 Bit, die sich aus d i i Ver'-5 Schiebung ergeben, w&den sowohl als Eingabe in die nächste Runde (d.h. die vorhergehende Verschiebung wird wiederholt) als auch für die Auswahl der 48 Bit -+j benutzt, aus denen sich der Schlüssel der aktuellen Runde zusammensetzt. Tabelle 8.4 zeigt die Auswahl von 48 der 56 Bir; sie werden gleichzeitig ausgewählt und permutiert. Das Bit in Position 9 wird beispielsweise nicht ausgewählt, weil es sich nicht in der Tabelle befindet. #-%.
Eingaaepositlon
L Ausgabeposition
Ausgabeposition n r~w
T.7
Eingabeposition Ausaabe~osition
A M . &L Emdterungsphasevon DES
-J
Flir die EwmiMrumr auf 8 EM süehlt die ~unktkn&~-*t~ddrtsgamlinke €MI rnlinkenRm. mchtw~ ~~.
Man beachte, daoe **in der turh+e~den lkschreibung nicht &en V=- d W b s e l u n g untemkiden. Eines der angenehmen ~ e r k d vem ,h :ist, dass beide Seiaa d a Alg~thmusgcmu &ich funktionieren: Der einzig&Ihmchid bemht dsinn, dass die SchlWl in der Reihenfolge angewandt wer+ 3 dien, &h- Exe KIS~*.-, Ki. Außerdenn ist IEU berücksichtigen, b s die obige Diskussion auf eulen eineigoin &&Bit-Dater~bIockb*grenzt ist. Um eine ljiagere Nachricht mit DES zu wtmhili,+ sein, w d eine als *her Block Cbaining (CBG bezekhte Tahnik m g e w d , Das Konzept von CBC ist einfach: Der CWfmcst für Hock i wird mittels XOR mit dern Hartekt für Block i + 1 verknüpfk9bevor er dem DFS unterzogen wird, Eh so m t e r Iniaialis-E&* [IV) an Stelle des nicht e&riotenden CMfme . für B L d 0 benua Dieser Vektor IV ist eine vom Sender erzeugte Z a d . d wird zusammen mir der Nachricht gesendet, sodass der erste B 1 d des rem wiede!q~~wonnmW& kam. Abb. 8.7 zeigt CBC siaf der V m schlüsselungsseite für eine a& 256 Bit (vier Blöcken) bestehende Na&kh. Die htt schlüsselung funktioniert entsprechend, weil XOR seine eigene Umkehr iss wobei der Prozess mit dem l d e n Block beginnt und sich in Richtung Nachrichtmadaq bewegt.
~~
'! 4
''
85: Beispieleiner S-Box (Bit 1 4 ) in DES
Anwendung das Gphx W& Chaining fCEIG) flit gr& Nachrichten
i'
nen PC ist es mtigiich, eine VemMüsdung iq 1,s p durchzuführen, dass das Knacken eines Schlüssels etwa 5,0 X 1016 ps (urige 1.500 6. Das mag zwar sehr lange erscheinen, man muss aber beachten, &WB D w M m eins Schiüssehaums ehe hoch parallele Aufgab ist. Das heiß&
8.13 Public Key Encription(RSA)
Sowohl p als aT l l t e n ungefähr 256 Bit lang sein. Als nächstes wählt man den
'
1
8.1
-
Chiffrierschlüssel e, sodass e und (p - 1)X (q 1)prim zueinander sind. (Zwei Zahlen sind prim zueinandu, wenn sie keinen gemeinsamen Faktor haben .der groBer als 1ist.) Schließlich berechnet man den Dechiffrierschlüssel d, so d
*
d = e ' mod ((p- l)x(q- 1))
46'
Der öffentliche Schlüssel wird aus dem Paar ce, n> und der private aus dem Paar cd, n> gebildet. Die ursprünglichen Primzahlen p und q werden nicht mehr benötigt. Sie können weggeworfen, dürfen aber nicht bekannt werden. Mit diesen beiden Schlüsseln wird die Verschlüsselung mit c=memodn und die Entschlüsselung mit
?=Pdn k k k r oif9 n aeh muss, also nicht'mkrds 1024 Bit Lan~sein kam. wird &&ich ais W e r k e ma m c h n 1024-Biz-Man
Ha&&
t d
~ m ~ n * ~ ~ e r e , b e t m ~ w ü b ~ ~ B $ p i % ~ * % I t i n c t W s r t i e & p u a d q , Atn g c n ~ * w ä h l e n p = 7 w d '
q = i l . L Z a s ~
n=7x11=77 (P-l)x(q-1)=60 Wir müssen also einen Wert für e wdhlen, der prim zu 60 ist. Wir wählen e = 7; a&r 1keinen gemeinsamen Faktor. Nun müssen wir d so berech-
d = T1mod ((7- 1)X (11- 1)) 7xd=lmod60 Es erweist sich, dass d = 43, weil 7 x 4 3 ~ 3 0 1. = 1mod 60
Nun haben wir also den öffentlichen Schlüssel Ce, n> = c7,77> und den privaten Schlüssel cd, n> = c43,77>. Man beachte, dass es bei diesem Beispiel sehr leicht wäre, p und q herauszufinden, sobald man n kennt, und folglich e aus d herleiten kann. Wenn n aber das Produkt von zwei Zahlen ist, die jeweils etwa 256 Bit lang sind, wäre es praktisch unmöglich, p und q zu berechnen. Damit dürfte klar sein, warum p und q nicht bekannt werden dürfen. Sobald sie bekannt sind, lässt sich der private aus dem öffentlichen Schlüssel leicht ermitteln.
N m betrachten wir eine einfache Ve~hlusselmgsoperation.Angornommen, && m6chten eine Nachricht verschiüsseln, die den Wert 9 e u W . Wir folgen k x t t i a 8 :
15
gen Verschlüsselruigsalgorithmus: C
=memQ
i: t:
'd
s 9'd77
Folglich ist 37 der Chiffretext, den wir senden wiirden. (Diese lkmchung &ss.&$& .. , leicht mit einem Taschenrechner überprüfen.) Bei Empfang der Nachricht würde msn den Chiffretext wie folgt m t s c h m ~ :
.,
m =8rnodn
= 374"mod
.'+,8 h
77
T
-
4
-
=9
,..
V*
fung dieser Betechung mit einem TascbenrAw ist etwas schwieriger. die ~ d ~ in S& ~ d u d f ioh e n undn Bacb jeder k e n , um Z d e n zu umgehen, die füt dea R e c k zag& sind)
. .3i$
Wean zwei Teilnehmer ihre untereinander awmtawhcnde~Daten -dang eines:Algot.ihu6 mit öffeWüssel wie RSA verschlw tm, ist ein iiffentlicher und ein piivam Schlibel erforderlich. M dem privaten khlussel verschl%& und die andere Seite mit khiüssel epschlüsseln lassem,wGi jeder Zugang zum Sffendichen Schlhsel h damit die N a c M t +ntsfhliiwdn ksnnte. Anders ausga8aü
q
4
von B und B benutzt seinen privaten Schiüssel, während B die an A zu sendenden Daten mit dem schlüswlt und A diese Nacluicht mit seinem privaten SchlUssel entschlüsselt. l&m beachte, dass A keine Nachricht entschlüsselnkann,die er an B gesendet hat. Nur 84. hat den n~tigenprivaten Schlüssel. Die RSA-Sicherheit beruht auf der Prämisse, dass die Zerlegung gro&r Zahlen ia Faktorea ein rechnerisch aufwändiges Unterfangen ist. W- sieh n üeße, k3m0c man p Gesch-eit, mit ~ziarkaoad& verf~gbaren~~&e~~hwin+eit und d a buaatztm FZ~O*
d.k, cSie DglPa s& nwkdmd n w m Sithddahchletltc im Exw5gmg ziehen, die über Jahtzehnte in
~~
L
*J
RSA ktrirclwn 3977 w u j e öffentlich dazu aufgefordert, eine 129 Ziiern (430 Bit) umfassende Flachricht zu knacken,'die mittels RSA verschlüsselt worden war. Man war der? ~nsicht,dass der Code aufbruchsicher sei und 40 Quadrillionen Jahre der 0ef:echnvngmit den damals bekanntenAlgorithmen für die Faktorisierung ßer Zahlen erfordern würde. Im April 1994, also nur 17 Jahre spgter, meldeten
Verschlüsselu~von Kreditkartennummep, die Ober das lnternet gesendet wurden, RSA benutzte. Das Problem Eag darin, dass das System eine höchst V&.-
8.1.4 Message-Digest 5 (MD5) Es gibt eine Reihe weitverbreiteter Message-Digest-Algorithmen, die als MDn für verschiedene Werte von n bezeichnet werden. MD5 wird derzeit am häufigsten
MDS-Algorithmus hier nur kurz. Der Algorithmus selbst scheint eine zufällige Sammlung von Transformationen zu sein, sodass es nicht überrascht, dass er geeignete Zufallsausgaben erzeugt.3 Die Basisoperationen von MD4, MD5 und SHA sind in Abb. 8.8 dargestellt. Diese Algorithmen verarbeiten eine Nachricht in jeweils 512 Bit. Deshalb muss eine Nachricht im ersten Schritt auf ein Mehrfaches von 512 Bit aufgefüllt werden. Hier-
für firgt m;in in die Nadiricht zwischen,1 und 512 FÜIlbits eia; das erste ist 1 za*cn sind M** D= gaimen b& d& goch uts@iaq$&n hFac&&dme In i3it mr8pqicht. eine befiebige Unge bis zu 2& Bit haben.
da .,
4
.! Anfanplioh-DW
[
-lau$eWtEt)
...
1
M
l51nBQJ
M=-!
*
Dk w i - m q beginnt Ic,-.
j, m QbmMa&j
Dieser ~'~
mit
dea
des lxg@t 12 Bit &P xhMd#t
&i-
b e i 6 k n . Wa köima uas den aktuellen Dbt-Wsrtt iiIso als vier 3 Die gpdqpndq in MD5 au&&kb Trysfo1:matbn lrtsst sich in vier g ä q e uritm&ies. Im ersten DurchM wird aus. dem. alte4 W& und den 26 EJ& .*htenwWorn in 16 Schiuon ein neu& W- des D i t produzleh Die unen
& .-,J1
3. Drar d nicht h&n, dass einC W* zufälügctr T r d o ~ h l a t b wiaurrer 9anipp,~rn~*,a2,&~&~6~M*Z*~~h
Dieser Prozess wird so lange fortgesetzt, bis alle 16 Wörter dem Digest unterzogen wurden. In jedem Schritt wird eines der Digest-W~mrneu geschrieben, wobei der neue Wert vom alten, den gkniellen Werten der übrigen drei Digest-Warter, und einem Wort der Nachricht, die dem Digest unteimga wird, abhängt. Die Funktwn F(a, 6,cf ist eine Kombination bitweiser Operarionen (OR, AND, NO*) auf ihre Argumente; Tisind Konstanten. Der Operator Jn rotiert den Operanden um n Bit nach links. Der zweite Durchgang sieht mehr oder weniger wie der erste aus; die wenigen Unterschiede sind wie f o l s 1 , II P wird durch eine etwas andere Funktion Qrsetzt.
Die Konstanten Tl bis T16 werden durch eine andere Menge (Tl7 bis Ti2) ersetzt.
L.4
. .
f
i Das Nachrichten-Byte in Stufe i ist m(3i+S)mad16q'
[.
Aufmerksame Leser würden wahrscheiniich einen vierten Durchgang VOdagen, der so sicher wie der tatsächlich benutzte wäre. Der Vollständigkeit halber führen wir die Merkmale eines solchen vierren Durchgangs auf:
,
Der Umfang der Rotation nach links ist in jedem Schritt {5,9,14,20,5,9,
...I.
Statt die Bytes der Nachricht in der*Reihenblgevon mo bis m l heranzuziehen, ~ ist das in Stufe i verwendet Nachrichten-Byte m ( ~ i + l ) m o d l ~ .
1 t
: i C
i r
1
Im dritten Durchgang wird folgendes ausgeführt: 8 G wird wieder durch eine andere Funktion H ersetzt, die lediglich das XOR ihrer Argumente ist.
* Es wird eine andete Menge von Konstanten (T33bis 'T4*)benutzt.
Als Umfang der Rotation nach l i s wird (4, 11, 16, 23, 4, 11, ...) in jedem Schritt verwendet.
i H wird durch die Funktion I ersetzt, die eine Kombination von bitweisen XOR,
r
B
C;..
OR und NOT auf ihren Argumente durchführt. Eine weitere Menge von Konstanten (T49 bis T64)wird benutzt.
Der Umfang der Rotation nach links beträgt in jedem Schritt {6,10,16, e;i, 10, ...I. B Das in Stufe i benutzte Nachrichten-Byte ist r n ( ~ i ) ~ ~ ~ .
Nach aii dieser Arbeit wurden die Originalwerte von (dg, di, dz, d3) auf eine durchgemischt, die zwar voiiständig von den Nachrichten-Bytes abhängt, aber algorithmische MMichkeit bietet, diese Na&&-Bytes m rekonf8dwchge!mischte Digest wird nun eu dem vor der h e l l e n Stufe vorhandenen addiert, was den neuen Digest-Wert ergibt. Der Algoridimus fährt d Digest der nächsten 16 Nachrichten-Bytea forr, bis nich~ ,mehrfiir das bleibt. Die Ausgabe der letzten Stufe ist das Message-Digest. MD5 ist zwar nicht ganz so effizient wie alme Digests,aber doeh noch gut. Men beachte, dass allc Operationen bitweise O,R, AND, NOT, XOR,
-
8.1.5 Implamentierungund Leistung
p r ~ s f h Verwendung e zur Verschiüsseimg von Datenna.chtichten noch zu l q sam. Stattdessen wird RSA normalerweise benutzt, um sehr kleine Datenmeagm-W t r d ü s s e h , z.B. .eiiuen geheimen Schhid. Sicheriseitsprotokolteveawex~den$arin diese RSA-geschützten Gcheimdaten in Verbindung mit DES und W S , m&&&er weise in Hardware implauentk, um Vertraulichkeit und Integrität der 1;)iltq sichwmtelien. Wie dies zu reaiisieren ist, wird im nächsten Abschnik beschriebbedk
8.2 Sicherh~itsmgcEhanlsmen KryptographischeAigorithmen sind nur ein Teil des Gesamtbildes beziigiich $ich& Mechanismen beschtieben, die für die Authenaakation von Teiinehmern benum
1
8- 3 S
SS
Li I
werden. A&rdem werden Tafür die SichersteUung der Integrität. von Nachrichten d einige Losungen für das Problem der Verteilung ÖhtLicher Schlüssel behandelt.
8.2.1 AuthentWikationsprotokolle
.., .., ..-
I 1
.
.$1 Bevor zwei Teilnehmer einen sicheren Kanal zwischen sich aufbauen können, d.h. einen Algorithmus wie DES zum Verschlüsseln der von ihnen ausgetauschten Nach- richten benutzen können, möchten Sie irn Allgemeinen zuerst feststellen, dass der jeweils andere Teilnehmer die Person ist, für die er sich ausgibt. Das ist das Probkm ' der Authentifikation. Stellt man sich Authentifikation in einer ~liend~erver-~&iehung vor, 2.B. bei einem entfernten Dateisystem, ist es verständlich, dass der Server die Identität des Clients feststellen möchte. Wird es dem Client z.B. gestattet, die Datei von Paul zu ändern oder zu löschen, muss der Server sicherstellen, dass der Client wirklich Paul ist. Es k a m t allerdings auch ofi vor, dass der,Cliqnt die Identität des Servers prüfen möchte. Schließlich möchte man keine sensitiven Daten an .; .' einen vermeintlichen Datei-Server schicken, um dann später festzustellen, dass es sich um einen betrügerischen Prozess handelte. In den nächsten drei Abschnitten werden drei übliche Protokolle J8,&e Implementierung von Authentifikation beschrieben. ~ i eersten ' beiden nu&aaI(ryptographie mit geheimem Schlüssel (2.B. DES), wä$end das dritte mit Kryptographie auf Grund öffentlicher Schlüssel (2.B. RSA) arbeitet. Häufig legen die beiden Teilnehmer gerade während der Authentifikation den Schlüssel fest, den sie in der Sitzung bcnuti Zen mikhten, um die in der anschließenden Kommunikation ausgetauschten Daten zu schützen. Im folgenden wird auch die Initialisierung dieses Prozesses bescMebw. ,
EinfachesD,mi-~6.Handshske ' Ein einfaches Authentifikationspr~tokollist möglich, wenn die beiden Teilnehme4 die sich gegenseitig autheiitifiziertn möchten - man s t d e sie sich als Client und Serves vor -,bereits über einen gemeinsamen geheimen Schlüssel verfügen. Diese Sjtuation entspricht einem Benutzer (Client), der ein Konto auf einem Comp~ter~y~tem (Server) hat, wobei sowohl der Client als auch der Server das' Passwort für dieses Konto kennen. Client und Server authentifizieren sich gegenseitig mit Wiife eines einfachen DreiWege-Handshake-ProtokoY1sYdas mit dem in Abschnitt 5.2.3 beschriebenen vergleichbar ist. Im folienden bezeichnen wir die Verschlüsselung einer Nachricht m mit Schlüssel k als E(m,k) und die Entschlüsselung der Nachricht m mit Schlüssel k als Wm,k)* Wie in Abb. 8.9 dargestellt, d h h der C l h t zuerst eine Zufdszahl X und verschtüsseit sie mit Hilfe seines geheimen Schlüssels, den wir als iCWK (Client-Handshake-Key) bezeichnen. Der Client sendet dann E(x,CHK) zusammen mit seinem Identifizierer ( ~ i m t i d an ) den Server. Der Server benutzt den Schlüssel, der seiner Meinung nach dem Ciient Ciien'tld entspricht (wir nennen ihn SHK füi: Server-I-fandshake-Key), um die Zufallszahl zu entschlüsseln. Der Server addiert 1zu der wieder-
596
1
8 Sichamaitin Netzwerken
Sewer
Client
pwonaaen
Abb. 8.9: AuthentifikationI mit dem Drei-Wege-Har Protokoll
und sendet das &g&ni$an den GCat
det Z'dseat & W9@ von ihm dbia,km0:r
&X@ &kh%&6,
E
ZdaQxzahl imMi Schlüssel besitzt. An diesem Punkt Ihr Ciieat acscbibwlt a w h dk
Im folgenden bezeichnen wir die heiden Teilnehmer; die tich a u ~ ~ i e r e n wollen, ds A und B und den vertrauenmiirdigen Autbentifikations-Serverhils S. Das Kaberos-Protokoll nimmt an, dess A und B mit S einen gemeinsamen geheimen Schlüssel verwenden. Wir bezeichnen diese beidea Schlüssel als KA und KB. Wie oben ist E(m,k) eine mit Wiissel k verschlüsselte Nachricht m. Wie in Abb, 8.10 dargestellt, sendet Teilnehmer A zuerst eine Nachricht an Server S, mit der er sich selbst und B identifiziert. Der Server erzeugt einen Zeitstempel T, eine Lebensdauer L und einen neuen SitzungsschlüsselK. Der Ztitftempel T dient dem gleichen Zweck wie die Zufallsnummer in dem oben beschriebenen einfachen bei-Wege-Handshake-Protokoll,Außeldem wird er in Verbidung mit L benutzt, um die Gültigkeitsdauer von Sitzungdüssel K zu begrenzen. Teilnehmer A und B miissen sich wieder an Server S wenden, um einen neuen Sitzungsschlüssel zu erhalten, wenn diese Zeit abläuft. Mit diesem Konzept soll die Verletzlichkeit eines Sitzungsschlüssels eingeschränkt werden. Authentifikation über eine dritte Partei in Kerberos
S andann A mit &W zwekdipn Wachrichn. Der erste T& trerddh&&$W~'T,LuadK~nm'uhI~~rmfürTeilaeh~~Br
'@&TU
,% desIr e
W W s , den der Swocr m d A ggmeinsam haften. Der xweite Teil ver& drd Wate X ' L und f zmixnmen m i g dem M m W e r twn Ttibh,den der Sem undd gewhsima &eskmti. er na&W den ersten Teil., ni&ti aber den mdtm Teil einfach an B mim msamwn T mit Hilfe da neuen S i m e M K. miiuig dee etstm Tds der von S ertraltemn kh e f i ~ s c h b l Bt den Teil der Nacbkb vm wqrde,und,kaM.damitT,KdA~& die M ~ l des aadcten q v mA v m m ct sieh%da& A und T in den bddm ~ e ckNa.chr3clrt k er mit einer Mac-, die T + 1 mit dem nmen SitzungsEren, um VemariIiehk:eit oichenustelien.
I
598
1
8 Sicherheit in Netzwerken
Authentifilurtion mit öffentlichemSchlüssel Das dritte Authentifikationsprotokoll nutzt Kryptographie mit öffentlichen SdiliSsf seln (2.B. RSA). Dies ist vorteilhaft, weil die beiden Seiten keinen gemeinsad geheimen Schlüssel benötigen. Sie müssen nur den öffentlichen Schlüssel der j m i d anderen Seite kennen. Wie in Abb. 8.1 1 dargestellt, verschlüsselt Teilnehmer A eikd Zufallszahl x mit Hilfe des öffentlichen Schlüssels von Teilnehmer B. B weist na&, dass er den entsprechenden privaten Schlüssel kennt, indem er die Nachricht er@ schlüsselt und x an A zurückschickt. A könnte sich seinerseits gegenüber gleiche Weise authentifizieren. .I, A
Abb. 8.1 1: Authentlfikation mit öffentlichemSchlüssel
Diffie-Hellman-Schlüsselaustatrseh In unsefer Darstellung wird zwischen kryptografischen Algorithmen (wie etwa RS# und Sicherhejtsprotokollen unterschieden, die kryptqrafisdie Algorithmen verwenden, um Authentizität und Integritat sicherzustellen (etwa die Digi-
Das Protokoll beinhaltet zwei Parameter, p und g, die beide öffentlich sind und von allen Nutzern in einem System verwendetwerden können. p ist eine Primzahl und g (meist Generator genannt) ist eine Gannahl kleiner als p, derart, dass für jede zahl n zwischen 1 und p-1 eine s
1
Nehmen wir an, Alice und Bob möchten sich auf einen gemeinsamen geheimen Schlüssel verständigen. Alice erzeugt einen zufälligen privaten Wert a und Bob ebenso einen privaten Wert b. Beide Werte werden aus einem Vorrat von Ganuahlen zwischen 1 und p 2 entnommen. Alice und Bob leiten ihre entsprechenden öffentlichen Schlüsselwiefolgt ab. Alice berechnet ga = mod p
und Bobs öffentlicher Wert ist gb = mod
Sie tauschen nun ihre öffentlichen Werte aus und berechnenjeweils den Wert
I
flb= (gb)'
mod p (Alice)
sowie gba = (galbmod p (Bob)
Da offensichtlich gba = gab = k gilt, sind nun Alice und Bob im Besitz eines aemeinzamen aeheimen Schlüscels.
1 k$idamw
d tmmrmhWende T e e = &$
.& kk.,
ob ki'eirlteIn beh-
'
~ & ~ & & & ~ & t a ennden körnte, die vem&a' &em d& M h T @ c h stammeni Die Teilneha mihhten. dso dta &I
kombtnleren, um eine effizientere T &.
..
u m z u m . Beim zweiten und
DigitrEa Signatur miWs RSA
nen, xnchiii86elt man sie mit dem eigenen privaten Sctrlhsei, und um sie prüfen, e n M b 1 t man sie mit dem 6ficntlichen khlbsei. des
seines privaten Schlüssels.
Das National Institute for Standards and Technology (NIST) hat einen he&&men StpnBinl für digiale W t u r w i vorg&gen, da dem beschriebenenh u ähnelt, auStr dass mazt RSA der W gemimte *El-Gatne rithrniu. +tzt wird.
K@
MDS
nr + MDS(rn + k) wobei MW(s) die Ausdes MDS-Algorithmus auf die &iizhe&&te s und a + 5 die V e r k m g deF ZRiche&ctteri a und b bezeichnet. I'
Der Empfhger der NachAcht MD5 auf & W des Nd&mpfes und &s geheimen Schik aus. Stimmt das Edgebnis mit der in der Nachricht enthaltenen Prüfsumm tibertdn, muss die Nachricht von deai Teilnehmer stammen, der diesen Schi-1 besitzt. Keyed MD5 selbst hängt nicht von der kryptograpl&&en Methode mit Offentlkhm Wiisseh ab, sondern kanrt damit kombiniert werden, um das hroblcm zu vmehfshen, wie Sender und Empfänger den gleichen Wert des SEhi~ls k erhalten. Der Senda wWt k zufäWig aus und d ü s s e l t ibn mit I S A und dem O.&dichen Schlüssel des Senders. Hierauf wendet er seinen eigenen privaten %Mise1an. Das Fqgebnis kann nun lhit der Or@ndnac und der MDS-Prüfsnxmme an den Empfänger übertragen werden. Die v o h _ 'ge, vom Sender übertragene Nachricht bsst sich wie folgt zusammenfgssem, ...
~~
3ie
m + MD5(m + k) + E(E(k, empffÖffentl), s a d ~ ~ i t r l l t )
Der Empfänger rekonstruiert den Znfallss'chfüsselmit dem öffentlichen RSA-Schlüssel des vermeintlichen Senders und seinem eigenen privaten Schlüssel und fährt mit der Ausflffirung von MD5 auf die Verkettung der empfangenen Nachricht imd k fort. Wem das Ergebnis mit dtr in der NacMcht gesendeten Prüfsumme tibercnstiaunt, worden sein, der den Zdallsschlüsmuss die ~achtichtvon dem Teilnehmer erzeuge hat. Dieser Ansatz löst das Problernder Obergab des geheimen Schiüssels eom Sender zum Empfbger, lässt aber das Problem der zuverlfissigcn Obergabe des Ohtiichen Schlüssels des Senders zum Empfänger ungelöst. Dieses Problem wird in Abschnitt $.2.3 diskutiert. 4
MD5 mit IUA-Signatur
iNe zweite Verwendung von MD5 für die Nachrichtenintegrität funktioniert in Kombihation mit RSA. Hierbei führt der Sender MD5 auf die zu schützende Origiddmchricht aus, was eine MDS-Prüfsumme ergibt. Dann.signiert er diese P d &mme mit seinem privaten RSA-SchlüsseL Das hegt, der Sender signiert nicht die &amte Nachricht, sondern nur die Prüfsumme. Die Originalnachricht, die MD5Pkiifsumme und die RSA-Signatur für die Prüfsumme werden anschließend übertra: gan. Mit der gleichen Notation wie oben übertriigt der Sender also m + E(MD5(m),pivnt)
Per Empfiinger überprüft die Nachricht wie folgt: . I
I Ausfühnuig des MDS-Algorithmus auf die empfangene Nachricht.
I EntschlfSsselung der signierten Prüfsumme mit dem öffentlichen Schlüssel des .
Senders. I
iVergieich der beiden Prüfsummen. V
Wenn alies übereinstimmt, wwde die Nachricht nicht modifiziert, seit der Sender die MDS-Prüfsumme berechnet und signiert hat.
8.2.3 Verteilung Wfentlicher Schiüssel (X.SQ9) Kryptographie mit öffentlichen Schlüssein ist eine sehr leistungsstarke setzt aber die Verteilung öffentlicher Schlüssel voraus. Das Problem, ist (dh., dass sie dem iewedigen r e c h W i e n Besitzer gehören),
ten, die Niichricht stamme von A. Kennen sich A und B per sich treffen, sodass A seinen öffentüchen Schlüssel B direkt
die Notwendigkeit, dass sich die beiden Teilnehmer für die Obergabe des sels treffen müssen. Die grundlegende Lösung dieses Problems basiert auf der Verwendung
welche Fragen in Verbindung mit ihrer Benutzung füt eine breitangelegte verteilung entstehen.
zekkate
-L
Schlüssels erzeugt und seit der Signatur nicht geändert wurden. Ein
weitere öffentliche Schlüssel von anderen Teilnehmern sammeln, falls B nehmer die von X ausgestellten Zertifikate erhalten können. 4. Eine CA wird auch als Zertt$katsteh bezeichnet.
Mit Zertifikaten wird b e a w g t , eine * U m a u d m * aufzubauen. BBtnn X mdkiert, bass e h bestimmter Ö f f m w e r SchlW Y gehört, und Y dann &' wies zertifiziert, dass ein anderer öffentlicher Sshlüssct Z gehbwisiteht eine Kette von ZerWaten von X zu Z, obwohl X und Z sich m w d nicht kennen. Möchte Z seinen öffendichen Scjdüssel A w VerfUgmg s d s a , kann er die kom1 pittl:e Z e d i h t k e t t e bereitsteilen, d.h. das 2 k d f h t fllr den von X ausgestellten 6 M c h e a Schiiisscl von Y und das von Y ailegcsteiite Zomtiakat h den Schl&sel eon 2.Verfügt A über den iiffentlichen Schlüssel von X, kam er die Legitimation , des iiffentlichen W ü s s d s von Z anhand der Kette überprüfen. Dwch den Aufbau von Vertrauenskemn wird die Verteilung öffentlicher ScMüs4lest handhabbat Solche Ketten werden häufig in einer baumfiimigni Hierar[. ghie angeordnet, wie Abb. 8.12 zeigt. Wenn jeder Teilnehmer über den öffentlichen Schlüssel der Wurzel-CA verfügt, so kann jeder einem anderen eine Zertifikatkette : bereitstellen, um eine Vertrauenskette für diesen Teilnehmer aufzubauen.'
A W . 8.12: Baumstrukturlerte CA-Hierarchieflir PEM (Privacy Enhanced Mail)
V
Bei der Aufstellung von Vertrauensketten sind aber noch weitere wichtige Fragen zu W k n . Auch wenn man den öffentiichen Schlüssel der Wurzel-CA hat, muss man sicher sein, dass jede CA von der Wurzel aus ihre Aufgabe richtig erfüllt. Ist eine CA wikns, Personen ohne überprüfung der Identität Zertifikate auszustellen, wird eine g~undsädchgültige Zertifikatkette bedeutungslos: Eine Methode zur Lösung dieses Problems, bei der die Vertrauenskette nicht in einer straffen Baumsznikniq sondern in beliebigen Verflechtungen gebildet wird, wird im Abschnitt 8.3.1 behandelt. Hinsichtlich Zertifikaten muss man sich die Frage steiien: »Was wird zertifiziert?* Da durch ein Zertifikat eine Verbindung zwischen einer Identität und einem offentlichen Schlüssel hergestellt wird, sollten wir uns eingehender damit beschäftigen, was mit »Identität«gemeint ist. Ein Zertifikat, das beispielsweise lautet, *Dieser öffentliche Schlüssel gehört Paul Meiers, niitzt nicht viel, wenn es sich nicht festd e n lässt, welcher aus Tausenden von Paul Meiers damit identifiziert wird. Folglich müssen Zertifikate einen wohldefinierten Namensraum für die zu zertifizie-
rendm IdenWten verwendem. 3eIspieisw~isewerden Ze-ate ofi für Adressen. ausgestellt. E i ~ ~k m z.B. a sagen: t *Dieser öffCnrli2:he geh& [email protected] (PauO M. MMt).« Z e d f i h t e h b e n selbstverstiindlich nicht nur für Privatpersonen, alle m@li;chen Inertonen auswtUt werden, scn auch h eine D o h W e Symm (DNS), was sehr ZWM:-~ sehmkaan. Boisp eh Z&Wat fih die Domain acrne.com vorteikah, damit Kunden b s h Webite ~ m sichergehen m k6na.cn, dass sie aiJi auf b richtigen m einer Schwindler-Site befinden, bgr01: sie Kreditkilrmdaten mndea. Details offen, spezifiziert aber eine B a s i d m . 'EhZ e a t muss folgerwb ponaten enthalten: Name der zu zertifizierenden Person bzw. htitution Öffentlicher Schlüssel der Person bzw. Institution I Name der CA iDigitak Signatur
X.599-Zertifikate können eine Reihe unterscMedlicher Algorithmen fwr Signaturen anwenden; deshalb muss der benutzte Algotithmua'irnZ e M i t ben werden. Eine weitere moghche Kompoaento ist eh Ablaufdatun fiit dasWichtig ist bei Zertifikaten, dass dck Besitz eines Zertifikats nichts aber die tirät aussagt. Zertifikate können frei kopiert und vertedt werden. Damit sie
Schlfissel entspricht. Dies ist das in Abschnitt 8.2.1 beschriebene Authentifikil problem. 4' Widerruf von Zertifikaten
Die grundlegende L
CM, ist eine digital unteneichnete LisEe mit widerrdmen Zertifikaten. Sie wird periodisch aktualisiert und ÖffenW ntr Vesfügwag gestellt. Da sie digital unterW- Teilnehzeichnet ist, kann sie in einem Bulietin-Board hmitgadt-den. nier A ein Zertifikat für B empfängt, das er überprib IDsieht er zumt die neueste, von der CA ausgestellte CRL d d . ( r o wdas Zertifikat nach nicht ariidemien wurde, ist es gäitig. F& aiie Zedifhte unbegrenzte Güitigkeit haben, w&de die CRL immer fanger d e n , da man aus Furcht, eine Kopie des widerrufenen Zertifikats zu benutzen, nie ein Zertifikat aus der CRL d n a e n könnte. Durch Verknüpfen eines Ablaufdan~nsmir einem Zer&kat zum Zeitpunkt der Ausstellung k m man die Dauu begrenzen, über die ein widerrufenes Zemfikat in einer CRL bleiben muss. Sobald das Ablaufdaturn überschritten ist, kann das Zertifikat aus der CRL entfernt werden.
8.3 Beispielsysteme Wir haben bisher in diesem Kapitel viele Komponenten vorgestellt, die erforderlich sind, um ein sicheres System zu bilden. Zu diesen Komponenten zählen,iqptographische Algorithmen, Ailthentifikatiomprotokolle und Schlüsselverteilpgsmechanhsmen. In diesem Abschnitt werden einige JComplettsysteme beschrieben, in denen diese Komponenten benutzt werden. Diese Systeme lassen sich grob nach der Protokollschicht kategorisieren, in'der sie eingesetzt werden. Die IPSEC-Protokolle (IP Security)arbeiten auf der IP-Schicht (Netzwerkschicht). Systeme, die, auf der Anwendungsschicht eingesetzt werden, umfassen PG9 (Pretty Good Privacy) für sichere Mail-Obertragung und Secure Shell (SSH) zur sicheren, entfernten Anmeldung an einem rechne^ Dazwischen liegen mehrere Protokolle, die auf der Transportschicht arbeiten, insbesondere das von der mTF standardisierte TLS (Transport Layer Security) und das ältere SSL (Secure Socket Layer), von dem TLS abgeleitet wurde. Im folgenden Abschnitt werden die besonderen Merkmale dieser Methoden beschrieben.
8.3.1 Pretty Good Privacy (PCP) Pretty Good Privacy (PGP) ist eine verbreitete Methode für die Bereitstellung von Verschlüsselungs- und Authentifikationsfähigkeiten für E-Mail. Der interessanteste Aspekt von PGP ist die Handhabung von Zertif&am. Erinnern Sie sich, dass das Grundproblem bei der Verteilung von öffentlichen Schlüsseln die Errichtung einer Vertrauenskerte ist. PGP geht davon aus, dass jeder Benutzer seine eigenen Kriterien hat, nach denen er anderen, zertifizierten Schlüsseln vertraut. Es steilt die Werkzeuge zur Verfügung, die benötigt werden, um den Grad an Vertrauenswürdigkeitder entsprechenden Zertifikate ai regeln. Um das Problem besser zu veranschaulichen, nehmen wir an, eine Ihnen bestens bekannte Person A, gibt Ihnen persönlich ihren öffentlichen Schlüssel. In diesem Fall sind Sie sehr sicher, dass es sich wirklich um deren öffentlichen Schlüssel handelt.
I
L
+
:
Obergibt Ihnen A jedoch ein von ihr signiertes ZemnlEat füt B, miissen Sie sich mogl*' k h e m b Gedanken d;ttCikr machen, bb A eia M e d ist, der vtielle3cht füt W ein Zedikat f&kdkhe&& &nie& b m ob er bei &r C J h e e g , dass es P&& w i r W um B uad nicht jemanden anderen handelt, &er ihin nm Sgniemng des tifikats gebeten hat, etwas,ztt wqgios brgegdngp ist Si9 vertrauen A vkiieidu W sichdich der Sipimmg von i!hd&am t h einige Leuw~(z-8, nicht aber für qndere (ZB. PoW-). Die Lage v f r m e r l : &h ,I ger die Vm-bm. Misstrawmkme wird. Statt eine stsaffe er^ a ~ wie oa. in ~ e e ~a rea E-Mail-Systemen wie P&wy E A d -(PEM) n S g W- & ~ b t @GB,lliT$, Wung von ~ i ~ n ~ ~ u alsnbeliebige g e Ve&ning. n AAuiser;dpn ttM$ iässt es jedem Benutzer die Entscheidung, in welchem er e k m bestimme Zertifikat vertrauen möchte. Nehmen wir beispielsweise an, Sie haben ein Z e H i für B von einer Person A erhalten. Sie kämen diesem Zertifikat ein gewisses M& a~ Vertrauenswürdigkeit zuordnen. Verfügen Sie aber übet W&%f!&Ware die Ihnen von C und D bereitgestellt wurden, die jeweils ebenfalls in &i@ Umfang vemrszumag sind, könnten Sie rne~~ich&&rsein, b d e r Ihnen & Vmdügung stehen& öffentkhe WW1für B $trltig ist. Kun: beriic&bw das Vivtrambilhg eine recht persöoliche &~eleg&eit ist, und steiit '& h m Mechanismen ntr V m g , auf deren tAvndk&psie ihre eigene seheidungen treffen können, statt davon auszugehen, das9 'shIlewilhs +d+ ehigen hiermcbischn CA-Stnikhie zu trauen. Um PM 2 b m m dm E e n ler van PGP zu zitieren: ,PCP ist fibLRutt gedacht, die es vo&n, &m*8& s c b ~Ebstaz whnnten. cr - BGP itk hzwischm in der Neewerkgexntiede d t beliebt. Das ge Signieren'von KP-SchliiJsan ist häufig bei Ern-Koofereazen zai beobaefr-%i@ diesen Y e r s d m g e n k a eim ~ Person 7 r 8
&'q
I
r
L,f;
ö -f, f ~ l-i c hScHüml e von anderen, deren Mentität ihr bekannt ist, k o r g e q -
,-I '
I ihren äffentlichen Schlüssel andieren anr Verfügung stellen;
,&T
.r~.
Iihnm 64fentlidien Schlüssel von
anderen signieren lassen und damit Zertifikate einholen, die für eine g r ö k e Anzahl von Ikxat& pcttmu&i%%rdilg sind;' ' Cr*$ .
iZdifikate von &reh
Personen eiUh01en, ham sie arrrih&d
vertxain,
h@i,y$ ZU sigakreh.
h Lauf-der Zek siumwlt ein Benmzr &o Zkr&ikte rnit ua krtrauensumfatig. PGP speichert diese Zereüikate h k Datei, (SchtWbwrd) bezR&et wird, Nehmen-witnunals kispid an, Benutas A I~?~&PQBkinuber B eiae s e a b uad B gegdiber ryaichweisen, sie ~virkücbvsn A stammt PGP
42
p!,
-,
,
1'
.
&&
übertragene Nachricht Abb. 8.1 3: PGP-Nachrichtenintegrität und -authentifizierung
Ses Problem auf die Weise an, wie sie in Abb. 8.13 dargestellt ist. Zuerst erzeugt A aus dem Nachrichtenrumpf (2.B. mit MDS) eine kryptographische Prüfsumme. Anschließend verschlüsselt er die Prüfsumme mit seinem privaten Schlüssel. (PGP unterstützt verschiedene kryptographische Algorithmen und spezihiert dann, welcher in einer Nachricht benutzt wurde.) Bei Empfang der Nachricht benutzt B zie Schlüsselmuiagemmt-Software von PGP, um seinen Key-Ring nach dem öffentlichen Schlüssel von A zu durchsuchen. Wird er nicht gefunden, kann B die Authentizität der Nachricht natürlich nicht überprüfen. Wird der Schlüssel kefunden, wird die Prüfsumme der empfangenen Nachricht berechnet, die empfangene verschlüsselte Prüfsumme wird mit dem öffentlichen Schlüssel von A entschlüsselt und die beiden Prüfsummen werden verglichen. Stimmen sie überein, weiß B, dass A die Nachricht gesendet hat und dass sie nach der Unterzeichnung von A nicht modifiziert wurde. Zusätzlich zur Bereitstellung des Ergebnisses der Signaturiiberprüfung teilt PGP B das Vertraumsmal3 mit, das B diesem öffentlichen Schlüssel zuvor zugeordnet hat, und zwar auf der Grundlage einer Reihe von Zertifikaten, die er für A hat, und der Vertrauenswürdigkeit der Personen, die die Zertifikate signiert haben. Die Verschliisselung einer Nachricht passiert ganz analog und ist in Abb. 8.14 zusammangefasst. A wählt einen zufäliigen Einmaischlüssel, mit dem die Nachricht mit Hilfe eines symmetrischen Algorithmus wie DES verschlüsselt wird. Der Einmalschlüssel wird mit dem öffentlichen Schlüssel des Empfängers verschlüsselt. PGP erhält diesen Schlüssel aus dem Key-Ring von A und benachrichtigt A über das diesem Schlüssel zugeordnete Vertrauensmaß. Die Nachricht wird in ASCII kodiert, um Schäden durch Mail-Gateways zu verhindern, und an B gesendet. Bei Empfang benutzt B seinen privaten Schlüssel, um den Einmalschlüssel zu entschlüsseln. Dann benutzt er den entsprechenden Algorithmus, um die Nachricht zu entschlüsseln. PGP ermöglicht die Benutzung vieler verschiedener kryptographischer Algorithmen für die unterschiedlichen Funktionen. Die tatsächlich in einer Nachricht benutzten Algorithmen werden in Header-Feldern spezifiziert. Das Konzept eines
Erzeuge einen zutältigen geheimen Sclilüsst4 k
Originalnachricht
4
Entsshlitsscle E(k) via KSA m .i~~rnern nriv2tt.n
%*hlii~crl-,
obertragene Nachricht Abb. 8.14: PCP-Nachrichtenverschlüsselung ,
.
protokoilunabhhgigm Sicherheitssystem ist sehr gut, weil man nie wissen c ia d ob der bevorzugte kryptographischeAlgorithmus sich für den beabsichtigen Zhl ds umweichend erweist. Es wäre angenehm, wenn man schneU auf einen d Algotithmus wechseln kannte, ohne die Protoko~lspezifikationoder -impiernCff rung hdirn zu müssen. Abgesehen von der ~ h b k d u n gdieser Information Wil-Nachricht errn~&chtPGP einem Benutze4 seine bevorzugten Algorid h ~üns s eein t ~ l tDas . k i t , dass jii der.Datei anzugeben, die seinen ~ ' f i e n t ü ~ ~ der diesen öffentlicha Schlüssel h a ~ n u nwes, welche Algdrithrnb sich2 Nachrichte? an diese Peqon benutzt werden kiSnnen. 2
8.33 S e a n S~.II-(SSH)
-3 lLd I
. J .Y
Secure khell (SSH) bietet einen entfernten Login-Dienst und ist als Ablöruog weniger sicberen Programme Telnet und rlogin gedacht, die in der Mbgszeit intern& benutzt wurden. (SSH kqm auch benuet werden, um entfernt Befchk z d ü l w usd ~ Dateien m Ubemagcn, wie die iJn*-I3ehhie rsh und rcp, wit trieren uns Ger ab& darauf. wie SSH Remote-LoiUn unterstützt.1 SSH wird am figsten b p ~um, eine ktaike clientlser~er-~uthentifikation b;reiaustelle~ der SSH-Client auf dem R-echner des Benuzers und der SSH-Srver auf ein fernten Rechner läuft, an dem sich der Benutzer anmelden möchte. SSH unterst; aber awjch IntegFiE3it und Vertradchkeit von Nachrichten. Telnet und riogiq:$i keine dieser Pähiieiteri al Um die Bedeutung von SSH im heutig& Intemet besser einschätzen zu kqz6 halte man sich vor A e , dass Tdear&ter noch vor wenigen Jahten WahIma benutzten, um ihre ~ & c ~ r n ~ u tmit e r der Arbeit (oder Schule) zu verbiden. bedeutet2dass ihre PasswMer nach der Anmeldung im Klartext aber eine Te! leimg und das LAN am Ar'beitsplatz gesendet -da. S&& die &ertragtiq'
F-
Passworts im Klartext über ein LAN ist keine besondem gaw Idee, allerdings nicht so riskant wie dessen Versenden im Internet. Heute haben die meisten Teleatbeiter ein Konto bei einem ISP, der Kabelmodem- oder DSL-Dienste mit hoher Datenrate anbietet, und sie erreichen ihren Arbeitsplatz über diese ISPs. Dies M u t e t , dass nach der Anmeldung ihre Passwörter und die gesamten Daten, die sie senden oder empfangen, potenziell zahliose nicht vertrauenswürdige Netzwerke durchlaufen. SSH bietet eine Mogiichkeit der Verschlüsselung der Daten, die äber diese Verbindungen gesendet werden, und der Vubesserung des Authentifikationsmechanismus, den sie bei der Anmeldung benutzen. Die nelieste Version von SSH, Version 2, besteht aus drei Protokollen: SSH-TRANS: ein Transportschichtprotokoll D SSH-AUTH: ein Authentifikationsprotokoll
D SSH-CONN: ein Verbindungsprotokoll
W u konzentrieren uns hier auf die ersten beiden Protokolle, die mit RemoG-Login zu tun haben. Am Ende dieses Abschnitts werden wir den Zweck von SSH-CONN kurz behandeln. SSH-TRANS bietet einen verschlüsselten Kanal zwischen dem ~ l i e n i und - dem Server-Rechner. Es setzt auf eine ~ ~ p - ~ e r b z auf. d u nWann ~ immer ein Benutzer SSH verwendet, um sich an einem entfernten Rechner anzumelden, besteht der erste Scfiritt in der Einrichtung eines SSH-MS-Kanals zwischen den beiden Rechnern. Die beiden Rechner bauen diesen sicheren Kanal dadurch auf, ddss sich der Client zwrst dem Server gegenüber mit h l f e von RSA authentifizieren muss. Nach der Authentifikation richten Client und Server einen Sitzungschlüssel ein, den sie im weiteren Verlauf benutzen werden, um die über den Kanal gesendeten Daten zu verschiiisseh. Wir übergehen in dieser Kurzbeschreibungmehrere Details, darunter die Tatsache, dass das SSH-TRANS-Protokoll eine Verhandlung des Verschlüsselungsalgorithmus zwischen den beiden Seiten beinhaltet. Häufig wird z. B. 3DES gewählt. Aderdem beinhaltet SSH-TRANS eine Nachrichten-integritätsprüfungaller Daten, die über den Kanal ausgetauscht werden. Einen Punkt*den wir allerdings nicht übergehen können, ist der, wie der Client in Besitz des öffentlichen Schlüssels des Servers kam, den er braucht, um sich beim Server zu authentifizieren. So seltsam es klingen mag, der Server teilt dem Client seinen öffentlichen Schlüssel zur Verbindungszeit mit. Wenn sich ein Client erstmals mit einem bestimmten Server verbindet, warnt SSH den Benutmr, dass er bisher nie mit diesem Rechner gesprochen hat, und fragt, ob der Benutzer fortfahren möchte. Obwohl es riskant ist, weil SSH tatsächlich den Server noch nicht authentifizieren konnte, beantworten Benutzer diese Frage oft mit *Ja*. SSH merkt sich dann den öffentlichen Schlüssel des Servers, und wenn sich der Benutzer das nächste Mal mit dem gleichen Rechner verbindet, vergleicht es diesen gespeicherten Schliissel mit demjenigen, mit dem der Server antwortet. Wenn es sich um die gleichen Schlüssel handelt, authentifiziert SSH den Server. Unterscheiden sich die Schlüssel aber, warnt SSH wiederum den Benutzer, dass etwas nicht stimmt, und der Benutzer erhält dann
Gelegenheit, die Verbindung abzubrechen. Alternativ kann der vorsichtige den ä&nuii.c:h des Servers durch einen separaten Mahanisnus e diesen auf dtm CHent-Rechner speichern und somit nie das Risiko des Mals. eingehen. Nach dem Aufbau des SSH-TRANS-Kanalsfolgt im nächsten Schritt di liche Anmeldung des Benutzers an dem R e c h q oder genauer gesagt, s e k fifizknulg aun Server. SSH bietet hier& drei vershiedenc Mechanismen. Da die den Rechner ilber einen sicheym Kanal b d e r e n , ist es erstens füI
stellunsnur den Server.
die:im Verlauf dicses Kapitels behandelt wurden. Was SSH manchmal d e r wenig'dwer verständlich macht, s& d die Schlüssel, die e h Benurza
werden auf der Ciient-Seite btnurzt). Scbfiei3kh hat sich SSH als derart nützliches System für sicheres
kehr durch eine SSH-Verbindung befördert. Der Mech-animus wird Port-Po
Most B
~ L I EYkmendung : von SSKPort-Fonvarding, um Sich&eitf(lr andere KP-lmsimra Anwendungenzu bieten P
d i g genannt, weil SSH zuerst den Inhalt entschlüsselt, wenn Nachrichten auf dem
wohlbekannten SSH-Port im Server ankommen, und dann die Daten an deq tatsächlichen Port, auf dem der Server lauscht, »weiterleitet.. C
8.3.3 Sicherheit auf der hansportschicht (TLS, SSL, HiTPS) Zum besseren Verständnis der Designziele und Anforderungen für den TLS-Standard (Transport Layer Security), des derzeit in der IETF entwickelt wird, betrachten wir eines der Hauptprobleme, zu dessen Lösung der Standard dienen soll. Als das World Wide Web populär wurde und kommerzielle Unternehmen ein Interesse daran fanden, wurde kiaq dass ein gewisses Maß an Sicherheit für Transaktionen im Web nötig ist. Das klassische Beispiel dafür sind Käufe mittels Kreditkarte. Beim Obertragen von Kreditkarteninformationenan einen Computer im Web gibt es mehrere kritische Punkte. Erstens macht man sich vielleicht Sorgen, ob die Informationen möglicherweise während der Obertragung abgefangen und anschließend für wnautorisierte Käufe benutzt werden. Man macht sich vielleicht auch Sorgen über m6gliche Änderungen der Details einer Transaktion, beispielsweise der Kaufsumme. Und man möchte sicher sein, dass der Computer, an den man seine Kreditkarteninformationen sendet, tatsächlich der fraglichen Firma gehört. Wir erkennen also auf den ersten Blick, wie notwendig Integrität und ~uthentifikationbei Web-Transaktionen sind. Die erste häufig benutzte Lösung hierzu wurde als Secure Socket Layer (SSL)bezeichnet; sie bildet die Grundlage für den TLS-Standard der IETF. Die Entwickler von SSL und TLS erkannten, dass diese Probleme nicht nur für Web-Transaktionen (d.h. jene, die H l T P anwenden) relevant sind, und entwickelten daher ein universelles Protokoll, das zwischen dem Anwendungsprotokoll @.B. H i l T ) und dem Transportprotokoll (2.B. TCP) angesiedelt ist. Die Bezeichnung »Transport Layer Security* kommt daher, dass diese Protokollschicht aus Sicht der Anwendung genau wie ein normales Transportprotokoll aussieht, a d e r dass es
Abb. 8.16 elargestellt. Anwendung (2.8 HTTP)
~ichere~sportsddc~ Subnetz
Abhbl6: Die sichere Transportxhicht ist zwischen Anwendu und KP-Schicht angesiedelt.
-
b
nen Zwecken im Client und im Serrtr gespeichert wird. Interessant ist dabei, dass das Handshake-Protokoll auch die Nutzung eines Kompressionsalgoridiaus aushandeln kann, nicht weil dies irgendwelche Sicherheitsvomile bittet, sondern weil es sich leicht umsetzen lässt, wenn man bereits dabei ist, aii die anderen Dinge auszuhandeln und sich dazu entschiossen hat, aufwiindige Operationen auf: d k ~ a t a r durdiz-en. Diese im Handshake benutzten Nachrichten sind in Abb. 8.17 dm gestellt. Die in den Klammern eingeschlossenen Nachrichten werden nur in bestimmten Situationen' gesendet. Man beachte, dass der Handshake mindestens zwei RlTs dauert und bis zu einem Dutzend Nachrichten erfordert. m
Cbnt
Server
Abb. 8.17: Handshake-Protokollfür den Aufbau einer NEUtning
h s I-kndshake-Protokoll ist erforderlichenfalls auch für den Austausdi von Zestih & t l mischen den T h h m e r n zuständig. Tätigt man z.B. einen Einkauf minels ICrditkarte, muss der %nt wissen, dass er mit dem richtigen Server sprkhe, er mws sich aber nicht unauthentifizieren. In diesem Fdl würde der Server dem Clignt ein Zertifikat oder bei Bedarf eine Zedikatkette als Teil dea an&+chm Handshake bereitsteiien und damit den Client mit einer mverlibigm Kopie seines öffentlichen Wüssels ausstattea. D u Server ist dann in der Lage, d o l geade Nachrichten dadurch zu authentifizieren, dass er sie mit seinem plrwten ~ ~ s ssigniert. e l Der Client kann anschließend Nachrichten mit dem o f f d o h e n ~ ü g s e des l Servers verschiüsseln. Als erstes verschlüsselt wd sendet er & 9~ genanntes »Pre-Master Secreta an den Server. Die später folgenden vetarauiichm hten, wie Simmgwchlüssel, hitialisierungsvektoren usw., werden aus diesem PreMaster Secret abgelt* Das Datensatzpmtokoil definiert eine Reihe von Formaten und Prozedm, durch die die Nachfichten, die von der Anwendungschicht weiteqereicht werden,
W fragmentiert oder in Blöcken zusammengefasst werden, die eine geeignete W
für die nächsten Schritte haben; wahlweise komprimiert werden;
W mit Hilfe einer Hash-Funktion wie MD5 integritätsgeschützt werden;
verschlüsselt und W
an die untere Schicht (2.B. TCP) zur Übertragung weitergegeben werden.
Die Fähigkeit, kryptographische Algorithmen zu vereinbaren, ist praktisch, aber eine Lücke für eine als »Man-in-the-~iddle«bezeichnete Attacke. Bei
könnte der Zwischenknoten den von den Teilnehmern gewählten Algorithmus mierte Anwendung konnte einfach den Akorithmus annehmen, den das TLS-P koll'auswählt, statt zu prüfen, ob er tatsächlich für die Bedürfnisse ausreicht. gut programmierte Anwendung würde die Transaktion abbrechen und die dadurch letztendiich in eine Denial-of-Service-Attacke umwandeln, was Das TLS-Protokoll weist ein weiteres interessantes, für Web-Transaktionen nuts* liches Merkmal auf: die Fähigkeit, eine Sitzung *wiederaufzunehmen.* Um die Grbde liegende Motivation zu verstehen, muss man wissen, wie sich die Version 1 TCP-Verbindungen zu nutzeinacht. (HTTP wird ausführlich in ~ b s c d 9.2.2 beschrieben.) Für jede HTTP-Operation, z.B. das Einlesen einer TextBildseite von einem Server, muss eine neue TCP-Verbindung geöffnet werden. Ei&
d
tragung b e h n e n kann. Ist die TCP-Verbindung für die Annahme von Daten muss der Client das TLS-Handshake-Protokoll starten, was wiederum mindes zv@ R'ITs $wen (und einige Verarbeitungsressowcen und Netzbandbreite braucht), bevor'die eigentlichen Anwendungsdaten gesendet werden können. TLS-Fähigkeit der Wiederaufnahme mildert diese@Problem.
einer früheren Sitzung in seine erste Handshake-Nachricht ein. Steilt der Server fasOoQ dass er für diese Sitzung noch über einen Zustand verfugt und wurde die W i e d e w nahmeoption beim erstmaligen Erstellen dieser Sitzung vereinbart, kann der S e 4 dem Client mit einem Erfolgshiaweis antworten, und die Datenübertragung mit den zuvor vereinbarten Algorithmen und Parametern beginnen. Stimmt die W zungskennung nicht mit einem beim Server gespeicherten Sitzungszustand über&
1
oder wurde die Wiederai$is)rsac fiW: die Siaung nicht vercinbaaI k e h der Senm m n ~ e n H a a ~ V ~ « i d c k , Im Gqynwz zu P 4 2 spaikiert TLS keine bedmmte W-asrrukm.
.Ia
Browseffi tmddm, md Firmen, die d h Websites Krediheihdizm Zezt&bw w m dii~carCk. Dies x ~ a c h die t brver-Au&mi&a&on und cmdghbt es dem Sem- when
/,
-
~~
bekam-. Wie oben e m i i b , benötigt ein Client..rni~ den 8SfeWüe 4des Scrvm um hgmdwelche & die V e m b l m g ym Daten von bzwi zum h e r erforderlichen Informationen auszuhandein.
Die .ehrgeizigste a l b Bemühungen für die Integration von Sicherheil im Interna wurde auf der niedrigmn - der P-Ebene entwickelt. Bei dieser als @SEC (IP Semrity) bezeichneten Architektur handett es sich eigen&& um ein Framework (im Gegensatz zu einem Einzelprotokoll- oder -system) für die Bereitstellung aller in diesem Kapitel behandelten Sicherheitsdienste. Als Architektur bietet IPSEC drei Freiheitsgrade. Emens ist sie sehr modulaq sodass Benutzer (oder eher systemadministratoren) verschiedene Verschlüsselungsalgo~thmenund spezielle Sicherheitspmtokolle wählen können. Zweitens ermögiicht IPSEC den Benutzern die Auswahl verschiedener Sicherheitsdienste, darunter Zugangskontrolle, Integrität, Authentifikation, Schutz vor Replay-Attacken und Vertraulichkeit. Drittens erlaubt IPSEC den Benutzern die Kontrolle darüber, wie detailliert die Sicherheitsdienste angewandt werden. So kann IPSEC 2.B. benutzt werden, um sowohl mhmale« Ströme (2.B. Pakete, die zu einer bestimmten TCP-Verbindung gehören und zwischen zwei Hosts gesendet werden) als auch nbreitea (2.B. alle Pakete, die zwischen iwei Gateways fliegen) zu schützen. Auf hoher Abstraktionsebene setzt sich IPSEC aus zwei Teilen zusammen. Der erste Teil besteht aus zwei Protokollen, welche die verfügbaren Sicherheitsdienste implementieren. Diese sind der Autbentifikations-Header (AH), der die Zugangskontrolle, verbindungslose Nachrichtenintegrität, Authentifikation und ReplaySchutz bereitstellt, und die Encapsulating Se-ty Payload (ESP), die die gleichen Dienste sowie Vertraulichkeit unterstützt. Diese beiden Protokolle können eigenständig oder zusammen verwendet werden, um die vom Benutzer gewünschte Kombination von Diensten zu implementieren. .Der zweitc Teil unterstützt Schlüsselmanagement, das unter ein Schirmprotokoll na&ns ISAKW (Intemet Security Association and Key Management Protocol) fällt. Die abstrakte Struktur, die diese beiden Teile zusammenfügt,ist die Sicberheitsassoziation (SA). Eine SA ist eine Simplex- bzw. Einwegverbindung, die durch einen oder mehrere der verfügbaren Sicherheitsdienste geschützt ist. Sicherheitsassoziationen können zwischen zwei Hosts, zwischen einem Host und einem Sicherheits-Gate-
.
.
je ehe iia je$@ R.i&t&~g, Xllis Sicht dm~L0We-aH0m enehält eine k h t n t e UaLk &E &
derti zw& Si&U-oziti--
k&owhtgn &qt von S c ~ l e r m ~ , t e c Yh&-1n ~ ua$, A ~ m ~ o f l s r afi.n &~& r~M 3. @im, ~ c h i ~ a w t a ~ 1 w h ~ ~ abes: ~ k ,Itemet ~ U , ~Kcq &~ *o
h @ $ w t war.
IPv6-Erweiterungs-Header, da gehe Lange aber m 32-Bit-Wörtern gemessen wird, die Nutzdadänge durch Subtraktion von 2'(32-Bit-Wörtern)berechnet.
reserviert; es wird vorläufig au;f0 gesetzr. Das Feid SPI ist ein beliebiger 32-Bit-Weri,
dm in Kombination mit der IP-Zieladresw die Sicherheitsassoziation für das Data-
'
'
.
gsamm eindeutig identifiziert. Das .Feld SeqNum enthält einen monoton steigenden Zähiw bzw. dne Sequenznumma. Diews Feld wird füL den Replay-Schutz benutzt, ist aber auch V&&;
wenn der Empfänger dresen Dienst für eine spezifische SA nicht verwendet. Da Zähler des Sendern und der des Empfängers werden beim Aufbau eine^ SA auf O initialisiert. Ist die Replay-Schutzoption aktiviert (Defauit-Einstellung), darf die übertragene Sequenznummer nie zyklisch umlaufen. FolglicB müssen die Zähler von Sender und Empfänger durch Aufbau einer neuen SA und damit eines neuen Schlüssels zurückgesetzt werden, bevor das 2"ste Paket einer bestimmten SA übertragen wird. Schließlich ist AuthenficationData ein Feld mit variabler Länge, das den Nachrichtenintegritätscode (MIC)für dieses Paket enthält. Die Feldlänge muss ein gamzahliges Mehrfaches von 32 Bit sein. AH schreibt keinen'spezifischen MessageDigest-Algorirhrnus vor; unter anderem können DES uid MD5 benutzt werden. Als einzige Anforderung muss der Algorithmus die Länge des MIC sowie die Vergleichs, regeln und Verarbeitungsschritte für die Validierung spezifizieren. , Encapsulating k u r i t y Payload (ESP) Der ESP-Header (Encapsulating k u r i t y Payload) wurde da& ausgelegt, eine Kombirration von Sicherheitsdiensten in Pv4 sowie IPv6 bereitzustellen. H P kann alleur oder in Verbindung mit AH benutzt werden. Der ESP-Header wird nach dem IP-Heades und vor dem Protokoli-Header der höheren Schicht (bei Verwendung m i s c h zwei Hosts) oder t.or einem gekapselren P-Header (im Fall eina T m e L zwischen zwei Sicherheits-Gteways}eingefügt. ,.ESP bietet Vertrauiiehkeit, Authentifikation des Datenursprungs, verbindunp lase intqgität und Replay-Schutz. Die bereitgestellten Dienste hängen voh den Optionen ab, die beim Aufbau der SA gewählt werden. Vertraulichkeit kann unabhängig von allen übrigen Diensten gewählt werden. Wahrscheinlich wird Vertraulichkeit jedoch in Verbindung mit Integrität/Authentifikation entweder in der ESP oder getrennt im AH unterstützt. Authentifikation des Datentusprungs und v e & b dungslose Integrität s k d zusammenhängende Dienste, die als Option in Verbindung mit (optionaler)Vertratrlichkeit angeboten werden. Replay-Schutz kann nty gmjt werden, wenn auch die Authentifikation des Datenur8prwgs ausgmahlt wird. Diese Wahl liegt auwhlie0lich Un k e s s e n des Empfängers. Man beachte, d a s Vertraulichkeit und Authentifikation zwar optional sind, jedoch mindestens einer der beiden Dienste gewählt werden muss. Wie der AH- ist d e ESP-Header ~ entweder ein IPv4-Header oclec ein IPvb-Wki+ terungs-Hader; Das Fotmat ist in Abb. 8.19 dargestellr. Das Feld @PIhat die glekhe Funktion wie beim AH:Es Kilt dem empfangenden Host bei der Identifiziemg der Sicherheitsassoziation,zu der das Paket gehört. Das Feld SeqNum schi3tm auch hier vor Replay-Attacken. Das Feld PayioadData des Pakets enthält die im Feld I J e M r beschriebenen Daten. Wurde Vertraulichkeit ausgewählt, werden die Daten mit dem
A d @ h der PayQaads nötig, z,B. weil der V d W d & h dass der Klartext ein Mehrfaches &er bestimmten BytarmM ist, oder um skiien, dass der dtierende Chifktext an einer 4-Bge-Grenze endet. D Padtength erfasst, iun wie viel die Datcn aufigefEtlt d e n . Das ?br&& enthält wie beim AH den MIC.Dieses Feld ist vorbanden, sell ausgelegt d, sodaw es zus&iich zur ~ e r r r a d c h k dauch htegrit&i A&tifhtisn unterSrum. a Abb. 8.19:
,t
j
Eine der beliebtesten Verwendungsarten für ESP ist der Aufbau eines BIPSEG nelsa zwischen zwei Routem. Ein Unternehmen, das 2.B. zwei Standorte über Inttmet verbinden möchte, könnte einen Tunnel von einem Router an einem o n zu einem Router an einem anderen konfigurieren, wie in Abschnitt 4.1.8 tien wurde: Dieser Tunnel kann auch für die Verwendung von ESP mit Vertra keit und Authentifikation konfiguriei maut(xisieirter -den, Daten, die über diese virtuelle Verbin fließ lindert wird un sicher~estellt wird. dass am anderen Ende des Tunnels keine gefälschten Daten e m d " fangen werden. W
8.4 Firewalls Wir schliefkn unsere Dkdcussion der Netzwerksicherheit mit der Beschreibung e a Mechanismus, den die meisten Sicherheitspuristen als wahres Gcewl b e t r a c h d FirewaIls. Eine Firewall ist ein speziell programmierter Router, der sich z w i w einem Standort und dem Rest des Netzwerks befindet. wie aus Abb. 8.20 ersiditiid wird. Es handelt sich in dem Sinn um einen Rout als er mit X wei oder kalischen Netzwerken verbunden ist und Pake von einem Netz,wei anderen weiterleitet, dabei aber diese Pakete filtert. Er kann beispielsweise . a U ankommenden Pakete, die an eine bestimmte IP-Adresse oder eine bestimmte TC34 Port-Nummer adressiert sind, verwerfen (statt sie weiterzuleiten). Das ist s i n n v q wenn man externe Benutzer daran hindern will, auf einen bestimmten Host o k Dienst innerhaib des Standorts zuzugreifen. Die Firewall kann auch Pakete auf ded
1' j
!@rwda@der E-Adresse dw Qucfle @tem. Dies ist n&dkhl wenn lrtan HQprts hmrhalb-des Standorts vor w&mhtea Pakdii5en wrn einem externen k%m &kzm will. Ehe solche M d u t nennt tnan auch DmLZ-~~Me-AftäCkc.
I
Fiall ,,-" .
---
Abb. 8.20: Brie Firewall filtert Pakte, die zwischen m.
einem Standort und dem Obrlgen lnternet fliekn.
Wem aile in diesem Kapitel beschriebenen Sicherheitsmechanismen überall im Einsatz wären, besründe kein Bedarf für Firewalls. Würde man versuchen, eine Verbhd m g zu einem Knoten z.B. mit Hilfe von IPSEC aufzubauen, müsste &n sich selbst als gdtigen Parmer authentifizieren. Deshalb stellt sich die Frage, warum Fizewalls
so häufig eingesetzt werden. Dafür gibt es zwei Gründe. Erstens werden die in diesun Kapitel beschriebenen Sicherheitsmechanismen nicht allgemein angewandt. Die korrekte Einrichtung von Sicherheitsalgorithmen und -protokollen &t eine sehr schwierige Aufgabe. Deshalb wurden Firewalls als Zwischenlösung entiyickelt, wähm d man auf IPSEC wartet. Doch auch langfristig ist es wahrscheinlich, dass wir weiterhin auf Firewalls verlassen, es sei denn, auf jedem einzelnen System wkd IPSEC oder ein ähnlicher Ende-zu-Ende-Sicherheitsmechanismusinstalliert. Der zweite, wesentliche Grund besteht darin, dass eine Firewall es dem Systems-strator ermöglicht, eine Sicherheitsstrategiean einer zentralen Stelle zu implementieren. Ende-zu-Ende-Sicherheitsmechanismenerfordern demgegenüber eine Wrteibng der Strategie, wobei potenziell auf jedem Knoten eine unterschiedliche S&zheitskonfiguration läuft. Fiewalls sind dem Entwurf nach sehr einfache Geräte, die in zwei grobe Kategorien klassifiziert werden kiinnen: filterbusiert und proxy-basiert. &ide Kategorien werden nachfolgend beschrieben, wobei wir uns auf Internet-Firewalls beschränken.
Filrerbasierte Firewalls sind der einfachste und am häufigsten eingesetzte Typ von Eirewalis. Sie werden mit einer Tabelle von Adressen konfiguriert, die die Pakete charakterisieren, die weitergeleitet werden oder nicht. Mit Adressen meinen wir mehr als nur die IP-Adresse des Ziels, obwohl dies eine Möglichkeit ist. Im ailgemeinen ist jeder Eintrag in der Tabelle ein 4-Tupel: Er enthält die IP-Adresse und die TCP- bzw. UDP-Port-Nummer der Quelle und des Ziels. Eine Firewall kann 2.B. für die Filterung (nicht Weiterleitung) aller Pakete konfiguriert werden, die mit folgender Beschreibung übereinstimmen:
Dieses Muster bestimmt, dass alle Pakete von Port 1234 auf Host 192.12.23.14a& an Port 80 auf Host 128.7.6.5 adressiert sind. =filtert werden. (Port 80 ist da& gemein bekannte TCP-Post fiir MTP,) In der Praxis ist es meist nicht mach jeden Quell-Host zu benennen, dessen Pakete gefiltert werden sollen, sodass die träge Wildcards enthalten können, z.B.: 44 <*, *, 128.7.6.5,8&
a*; 14
Bei diesem Beis~ielwerden alle an Port 80 auf 128.7.6.5 adressierten Pakete tert, unabhängig davon, welcher Queli-Host oder Port das Paket gesendet hat. A b j beachte, dass Adresseinträge wie diese voraussetzen, dass die Firewall WeitorM1 tungs-/Filterungsentscheidungenauf der Grundlage von Port-Nummern der 4 zysätzlich zu Host-Adressen der Schicht 3 treffen muss. Aus dießem Grund man Firewails manchmal auch LeYel-4-Switches. Von dem bisher präsentierten einfachen Konzept gibt es zwei wichtige nen. Zunächst muss geklärt werden, ob die Firewall alles weiterleitet, nicht spezifisch angewiesen wird, bestimmte Pakete zu filtern (das ist die ini vorhergehenden Beispiel), oder ob die Firewall alles filtert, falls sie drücklich zum Weiterleiten angewiesen wird. Da9 ist eine grundlegende De bei jedem sicheren System: Gibt man ausdrücklich an, was erlaubt oder wa ten ist? Statt den Zugang zu Port 80 auf Host 128.7.6.5 zu blockieren, kann Firewaii anweisen, nur Zugang zu Port 25 (den SMTP-Mail-Port) auf bestimmten Mail-Server zuzulassen, z.B.: C*,
*, 128.19.20.21,25>
-& T*
während mm den gesamten übrigen Verkehr blockiert. I '9s Zweite& ist zu klären, ob die Filter s~ezifiziertwerden müssen. wenn das S m t d hochgefahren wird, oder ob bei laufendem Firewall-Betrieb neue Filter ' werden können. Bei d e n bisherigen Beis~ielensind sie im voraus bekannt. Nmd Filter dynamisch zu installieren, ist dnotwendig, wenn man eine H ~ r 0 p - G Defaultu-Firtwail betreibt, bis zum letzten Moment aber nicht W&, welchen eine bestimmte güitige Verbindung benutzt. Dies passiert z.B. bei FIT, das eine ne* TCP-Verbindung für jede übertragene Datei aufbaut. Die an den beiden Enden e i d sind nicht:bekannt, bis der Tiransfer sta& soldlen l1 9 i n d i n ~benutzten sodass di!e zulässigen Einträge nisch1 und vorübergceharid auf diese Ports a tert werden miissen. Eim FkewaU, die diese Föhigkeit unterstützt, bietet eine d 4 mische Port-Ausurßhl. P3 1 4
8.4.2 Proxy-basierte Firewalls Ein Proxy ist eine allgemeine Netzwerktechnik, die in unterschiedlichen Situationen, darunter auch Firewalls, auftaucht. Allgemein ausgedrückt, handelt es sich bei einem Proxy um einen Prozess, der zwischen einem Client- und einem Server-Prozess angesiedelt ist. Für den Client scheint der Proxy der Server zu sein. In gewissem Sinn nimmt der Proxy die Stelle des Semers ein. Für den Server scheint der Proxy der Client zu sein.
J
Da ein Proxy sowohl den Client als auch den Ser~uimitierqmuss er n o e g e r weise über ~ e n n t n i s s e d ~ ~ w e n d u n ~ m a n r i k ' v ~ eanderem n~~ntc:~ tiert ein Proxy m 6 g b h m m b einen Cache. Dies en&&cht es dem Pmx)r3 Client-Anfrage zu an-ohne die Anfrage dem Server weitergeben zuEr leitet die Anfrage nw an den Server weitet, wem sich dta angeforderte Hemmt nicht in seinem Cache befindet. Ein Proxy bietet auch eide Md&chkeit, ehe Sicherheitsstrategie zu knplementiererl. Dies wird im Folgenden betrachtet. Um zu verstehen, wie eine proxp-basierte Firewall fua&&rt ~indwofür sb dienen kann, betrachten wir einen fimeneigenen Websewer. Die Firma mö&e den externen Benutzern einige auf dem Server befindliche Seite111 Verfiigung seilen, mächte bestimmte Seiten aber auf firmeninterne Benutzer an einem oder mehreren entfernten S a m ein-en. Es genügt hier also nicht, einfach die Fisewslli so zu p r w i e r e n , dass sie den gesamten externen Zugang auf dep bekannten PFfip-$!ort $ü blckkiert. Diese Simtiun ist in Abb. 8.21 dargestellt; Es besteht kleine Möglichkeit, &eke Strategie ais Filter auszudrücken, weil sie von der.in jeder HTI'P-enthaltenen URL abhängt? J
W@-
Server
Abb. 8.21: Elne Firewall schützt einen firmeneigenenWebmer vor externen Zugriffen.
'
,
Als Lösung wird ein H7T.P-Proxy in der Fuewall bereitgestellt. Entfernte Benutzer bauen eine H'ITP/rCP-Verbindung zum Proxy auf, der die in der Anfragenachricht enthaltene URL liest. Hat der Quell-Host Erlaubnis für die angeforderte Seite, baut der Proxy eine zweite H'ITP/rCP-Verbindmg zum Server auf und leitet die Anfrage an den Server weiter. Dann leitet der Proxy die Antwort in der umgekehrten Richtung zwischen den beiden TCP-Verbindungen weiter. Diese Situation ist in Abb. 8.22 dargestellt. Falls der Anfrage nicht stattgegeben werden kann, erzeugt der Proxy diese zweite Verbindung nicht, sondern gibt stattdessen eine Fehlermeldung an die Quelle zurück. In gewissem Sinn entscheidet die Fuewali dynamisch, welche Pakete weiterzuleiten und welche zu verwerfen sind, wobei die Strategie in dem anwendungsspezifisdienProxy eingebettet ist. 6. Wie das Web funktioniert, wird in Abschnitt 9.2.2 beschrieben.
semerq eine 'tiesthtite Anfrage weiterm&in
ist, v. U. iD deni
xies übfich.
Sehiieslich können proxy-basierte FVewalis als transparent oder Sender oder Empfänger nicht sichtbar. Er fängt einfach
n&a mobilen Code ans dem lokaitn ~
bk haben.
&rk
fernhalten, beb
'
k i s e Pmgramne,
I-enwdki& auf alle lokaim Horn
&
.. Mobiler Csrle ist'riichedeehige G w d n;if kge, Gd-mWmm z.B. oft Teile dw R h des Une-w abgmnmn. Dies kam notwendig sein, wenn das Untemdmen ehen mernm Patmr hat, $tt 8fy eiacm Pmj&t mitazbeitcr und damit Zugang zu beshmtcn M a d h m hae, den n>arti aber daran h i n d a rnochm Zugang zur gesamten Infrastruktur w erhalten. Als weiteres Beispiel machen es mobile Computer den Benutzern' recht einfach, ihre Maschinen anonym an einen beliebigen Punkt cines Netzwerks ammcldieh. Eine weitere Schwachmlie von Firewalls er@ vermehrt Aufmerksamkeit mit '
n den S t d o t t zu senden, weil et ab dass der Mitarbeiter ein &&tiaseg
was einen Nachbarn d e r &en auf der gcgenüberlicgenden S t r m t e pmk w h Mtbember des Unternehmens daran hindern kiinntq sich in dieses B&khmmerkc aasfmsldten d damit trotz Fllewall Zugang zum Unternehensnetz zu erhalten. h allgemeinen ist es mmqglich, dass existimdc F d s w k m , wer auf das N m e r k zugreift, U.,wer die Kennhat, sich auf andere Mmchiirten .iomNetzwerk a n f i u ~ e Edderlrch a ist hier die Verlagerung des Z u g M d t a t w voa $et Peripherie des Ne-nwerks nach innen näher zu den Hosts, die den Zugrii;E initiiem. Leatlich sind wtih&Wi& Sichuheitsmechanismen wie IPSEC esrfotderlicb, m einen solchen Sicherheitsdang zu unrersrürzen.
&W,
1
&S
Zusammenfassung
~ ü s s e l u n g s bilden a ~ das ~ Rückgrat von Notmerk~iohe~heit. Algorithmen mit öffentlichen %hiüsseln wie RSA werden oft in AutkdikadomproroM e n benutzt, um &e I d d d t m i e r kommunizierender Prozesse festzustellen. Mach der Authmtifhtion kamen die bei& Teilnehmer einen gemeinsamem Schliissel vereinbaren, der Eiti A l g o ~ i b e mit n $ebeImem ? k ~wie~DESl hone kid, um die zwischen dea Teihehmcrn ausgetauschtes Nachrichten zu wrsehb und d a d d Vemadi&eit wiihend i h m Komnmmikation sicheaust~Elea. :' At&eddan kann e h Metmg~-D@s-Algodthm~$ wie MD5 bennmwerben, um die , b~egritätvon Nachrichten zu schiitzen. Das gesamte System wird durch einm : Sddiz.aW-dm ~ w g e h r l t e nder , benutzt wird, äm zuem aten qon RSA benötigten ~fbentlichen Schiiissel einzuholen. '
Mehrere neuere Systeme benutzen diese Algorithmen und Protokolle, Sicherheitsdiensteim Internet aneubieten. Auf der Anwenduagsebene kann PGP.& gesetzt werden, um E-Mail-Nachrichten zu schützen, und SSH, um sich sichu d einem entfernten Rechner anzumelden. Auf der Trans~ortebenekann TLS ve Kommunikation zwischen Hosts oder Gatewavs im internet zu gewährleisreni W& zu schützen.
7 Ii
Systeme wie PSEC und TL5 könm dem Internet potenziell das Offene Fragen M& an Sicherheit verleihen, das Denial-of-Service-Attacken von atidcn newn geschäftlichen . ,117 Transsktknen und Anwendungen der öffentlichen Verwaltung benötigt wird. Der EHfolg dimer Systeme telba mit dem Esfolg des SdilÜBSChrerteilunjppro~zuO b enswi&digen Zugasig zu öffentlichen Sdüsseln b a t das gesamte Spsteim men. Die Shlüsdverteilurur ist aber nur eine der Herausf~~demmen in hang mit Sihrheit in &mputemetzwerkcn. Hin d i r w Bob MOgiichkebn zu finden, wn die an WeiwerkchmnangescUasmen ,I[
Vemuiichsteit k o m p r o m i & d Attacke, bei der ein Ein&* unberechtigten Zugang zu Infomatbnun zu k h f f e n , versucht ein der DTl-of-Service-Attacke, den rechtmd3igen Benutzer am Zugriff auf tioaen OdCi~Ressourcenzu hindern. Eine bekannte Denial-of-Service-Attackenennt man ~ S Y P l - A d e .nach Setup-Paket einer TCP-Verbindung. Bei einer SYN-Attacke flutet eia entfern@( Angfeifer einem Computer mit Sm-Paketen und renvsacha &durch, dass all0.W arbeitungsresdafür benutzt werden, fingerte TCP-Verbindungen bauen, Im Gegensatz zitm einfachen Fluten einer Mgschme mit g e f ä k h m pakaten erfordert bei dieser Attacke jedes SYN-Paket einen u m a fq p w VwatSia-hd, um festzustellen, ab das <Paktawh wirklich tirmvorfmM
p"ogrdr~ W &
l@nmm, um alle Pakete von einem bekannt
.
idresse in jedem SyN-.P&et &ugeben. Eine andere hedcaw DOS-Attackebesteht darin,eham Strom von baum-Paketen" an einen Router zu senden - Pakte, bei denen alle ,Lichteru ?aq& schaltet sind (d.h. bei denen alie bekannten .P-Optionen aktiviert sind). Der Rb-
1-
d r i n g t 'so vicl zeii damit, die divOptionen auszuführen, dass s es nicht ,WP-Up&tes dwc-n, weniger bekanntes Beispiel zeigt a& wie subtil eine Wal-06-Service-Attacke i & k m . Eie &igreiber flutete den Router eines 15Pmit IP-Paket&, d* &e sqiellc Sequenz von P-Adressen enthiektn. Die Sequenz lief3 den Routen-Cachedes Routers I i i k i a h n , was letztlich dazu führte, dass der Prozessor des Routers seine g a m Zeit dai3 aufbrachte, neue WeiterleihusgtaMe~ zu erstellen. DsrbGi vsrsäumte det Rou1 i 0d ~ die Routing-Anfragen s e h r Nachbarn zu antworten, was wiederum dam klrbtze, dass die Nachbam glaubten, der Router sei ausgefailq, Der Schutz vor D&-of-Service~Attacken erfolgt in drei Schritten, Ixn mten '' &hict werden alie von jedem Benutzer (oder Datenfluss) verbrauchten Ressourcen ' hfssst. tm zweiten schritt wird erkann%wann die von Wiem bestimmta Benutzer vwbraucbten Ressourcen den im Rajamen der Systemvorgaben erlaubten Umfang , dbrschreiten. W ird eine Attacke erkannt, werden die verbrauchten Ressourcen im %ittm kLir;ftzurückgefordea, wobei mögilchst wenig zusätzliche Ressourcen auf$rvmdcr werdm. Andernfalls entstünde eine neue Denial-af-Service-Attackedurch : @C überm* aufwändige Erkennung und Abwehr eines angreifenden Benutzers. ; Mdsr sind nur wenige Systeme- Hosts und Router - heute in der Lage, ijiber alle im Swem benutzten Ressowcen genau Buch zu führen, ganz zu schweigen von der . Ikdhidon, was eine Denial-of-Sennce-Attackedarstellt. ini Mgemeinen ist es jedoch schwierig zu erkennen, ob eine Resource missbaäu: lich verwendet wird, weil det Angreifer nicht unbedingt eine groBe Menge an hgriffspaketen aus der gleichen Quellen senden muss. Stattdessen könnte er Sie mit einer Vieizahi von unschuldig aussehenden Paketströmen von unterschiedlichen Quellen bombardieren. Dies bezeichnet man ds vemilte (distributed)Denid-of-Ser*-Attacke. (DPlaS). Diese setzt voraus, dass der Hacker zui4chst eine grökre Anzahl von Rechnern komprimitiert (Wgenannte Zombies), und d i a dann gleichzeitig dazu bringt, Sie anzugreikn. So wurden 2.8. sehr exponierte Websites wie CNN, Yahoo, eBay und Amawn durch DDoS-Angriffe im Februar 2000 I a b legt. letzdich sind DIZoS-Angriffe immer problematisch, weil es fast unnögiich ist, zwischen ihnen und einer legitimen, aber intensiven Nutzung durch viele Quelien zu uqterscheiden.
.
;
"
'
8.6 Weiterfahrende Literatur Die ernten beiden sicherheitsbeqenen Arbeiten bieten zusammengenommen einen guten Oberblick über das Thema, Der Artikel von Lampson La. e n W t eine formelle Behandlung von Sicherheit, während die Arbeit von Satyanarayanan eine gute Beschreiban8 dariiber liefert, wie ein sicheres System in der Praxis ausgelegt wird. W1 &irre Arbeit biete einen Ot>erbliUk über die IPSEC-Sicherkitsarchitekm und ist e h guter Aus&mgsp&, um den heutigen Zustand von Sichmheit ian Intemt zu
-.
5
P .' ,
,
,q
,$ -?
L
,
r Kent, S. und Atkitrson, R.:
kawitpi' a r c h i t m
Ratpest fot. Ckmmepx;Cs 2405, N
m
for tim
Inteniet
h 1998.
SSH.
Savixge et itl. [ m d O ] und Sfidren et al. ISBS+O~] faden. Die wachse
Giskiritiefi. Ein fruer Ansatz, um sich gegen dterartige'bgriffezu mrtekd ' ,der . Arbeit von Park und Lee P'LOl]datgesteiit. r ftp$haqdarg/pwb:Eine Sammivng sich~rheitsbe;eogenerh f ~ r m t i Gampqpr Emezg2:ncy Lespme Teans (CERT) b r o ~ i t g werden. d~
db .
8.7 oburigen
2. in Abschnitt 8.1.2 wird die DES-Vers~hlUssel~trdomation vo
auf 4 Bit red~ziert,indem die ersten und letgten Bits weggehen m&.
.
C
r
atOBungraIm
P
i
7
P*
sie aundt i * I
~~~-~-~tisseliuig-ciumh, in& Sie das ~rgshiis 4 4 Ri zn bßtimmgn; sei = ! . . W f0 Zaimt. Geben Sie Rh% mt;er der A n e h an, dosg wir eine vereinfachte S-Box verwenden, die jeden 6-Bit-Teil auf 4 Bi% ieduzieit, ia$ern & ersten und , lmten Bits weggeben werden. 4.
.i ,,der vo&erigen
v h m , um
5. N b e n wir erneut an, dass DES mit der v d a c 6 t t e n S-Box ~ 3 aw 1 3 , , benutzt wird und wir nur eine einzige Ver:achliis8elun~deausfihen. a. Ein Angreifer verfügt sowohl über den Klartext (Lo,Ro) ah auch den Chiffretext (L1,R1).Wieviel erfährt der Angreifer daraus über W-1 Klund wie vid übes K? (Damit soil keine Schwäche des echten DES angedeutet werden, ,
sondern viehehr eine Rechrferri~ungfür die von DES tatsächlich benutzte
,
S-Box.)
b. Die Wiedergewinnung des Sdilüsseis aus einem Klar- und chifketext wäre für jeden Verdüsselungsmechanismus schlimm genug. Erklären Sie, warum es für Kryptosysteme mit öffenrlichen Schlüsseln besonders fatal wäre. '?
6. W w sfellen uns voq dass Sie eine RSA-Verschlüsselungmit p = 101, Q = 113 und ' e = 3 ausführen.
a. Ermitteln Sie den Verschliisselungsexponenten d. (Hinweis: Obwohl es methodische Vorgehensweiseti gibt, ist die Try-and-Error-Methode & a = 3 efiient.) b. Verschlüsseln Sie die Nachricht rn = 9876. Beachten Sie, dass die Auswertung von m! mit 32-Bit-Arithmetik zu einem Oberlauf M rt.
"7, Wir stellen uns uar, dass Sie eine RSA-Verschlüsselung mit p = 13,q = 7 und e = 5 ausführen. a. Ermitteln Sie den Verschlüsselungsexponenten d. (Hinweis: Verwenden Sie den Euklidischen Teiiungsaigorithmus.)
b. V e ~ i s s e l Sie n die Nachricht m = 7. C.
Entschlüsseln Sie die verschlüsselte Nachricht C = 2,
8. Beweisen Sie, dass der RSA-En~hlussel~lgosithmus die Originalnachricht wieder8ewiant, dh. med 3 »r mod pq. Hinweis: Sie können davon ausguhe* dass es ausreicht, die Kongruenz mod p und mod q zu beweisen, weil p und q prim zueinander sind. 9. Wenn n eine Primzahl und b < n i% dann ist b** = 1 mod H. Es gibt ein paar zusammengesetzte Zahlen n (z.B 561),bei denen diese Kongruenz auch für alle b c n &. Mit einem gehgen zusätzlichen Berechnungsaufwand erwit den MiUer-Test, der folgendes besage Wenn n prim ist, ist es fur alle b < n erfolg-
reich, und wenn n zuman-
ist,
wir den Test mit einer zufällig gewiihltien große4 Zahl voa b < n biner davon felddann ist rr ~wahrs&eidi&u pritn.
a. Weisen Sie nach, dass die Berechnung von bW1mod n mit O(1og nj pbtionen durchgefiilm werden kann. Hin& b13 = b8b4b.
b. Weiseri Sie anhmd &eser Methode mch, dass n a 50.6211 zu ist. Vuwenden Sie b = 2. Sie benötigen keine *zusätzliche weisen Sie nur b"l F .I mod n nach.
Abb. 8.9 unsicher über die Identität des Ciients, bis er die dritte erhalt? Welcher Attacke könnte ein Server ausgesetzt sein, wenn er de des Clients vertraut, bevor er die dritte Nachricht empfängt? Angenommen, die im Drei-Wege-HandsEiake von Abb. 8.9 benutzten
den x und y einmal pro Sekunde oder pro Verbindung inkrementiert wer t
Sie nach, dass die in der P-Spoofing-Azkde von Übung 17 in tel'5 a n g ~ a n d t Technik e fehiddägt.
a. w&n
m r k Time Weisen Sie nach, wie ein Angreifer sich nun dem Server fizieren khnte, ohne CHK zu kennen (obwohl er SK rücksetzen kann, vielleicht unter Verwendung des N
U). Abb. 8.7 zeigt die CK-Vdüsselung. Erstellen Sie das entsprechende gtamm für die Entschiiisselmg.
15. Bei einem Mechanismus für die Abwehr von W Repiay U-Attackeninder PasswortAutheniifikation wtrden Einmal-Passwörter benu~ct:Eine Liste mit Pi3sg~Ö~ern wird vorbereitet, und nachdem P w o r t [ N ] akzeptiert wurde, dekrementiert der Server N und verlangt das Puswort[N-1] beim nächsten Mal. Bei N = 0 ist eine neue Liste edorderlich. Arbeiten Sie einen Mechanismus aus, mit dem der Benutzer und der Server sich nur ein Master-Passwort mp merken müssen und lokal eine Maglichkeit zur Verfügung haben, um Pmwort[N] = f (mp,M) zu b e d nen. Hinweis: Nehmen Sie an, dass g eine geeigneteEinweg-F&on (z.B; MDS) ist und Passwort[Ail = $I(mp) s g N Mal auf m p angewandt ist. Erklären Sie, warum die Kenntnis von P u s s w o r t [ ~nicht hilft, um PasswdN-I] aufzudecken.
16. Nehmen wir an, ein Benutzer verwendet Einmal-Passwörter wie oben (bzw. wiederverwendbare Passwörter), das Passwort wird aber *ausreichend langsam« übertragen. a. Zeigen Sie auf, dass ein heimiicher Lauscher mit relativ wenig Gteversuchen Zugang zu dem entfernten Server erhält. Hinweis: Der Lauscher beginnt mit dem Erraten, nachdem der echte Benutzer das ganze Passwort bis auf ein Zeichen eingegeben hat. b. Welchen weiteren Attacken könnte ein Benutzer von Einmal-Passwörtern ausgesetzt sein? 17. Das Diffie-Hellman-Schiüsselaustauschprotokoilist verletzlich gegen ,Man-inthe-Middleu-Angriffe.Erklären Sie, auf welche Weise es einem feindlichen Mithörer gelingt, die beiden Parteien dazu zu bringen zu glauben, sie hätten ein gemeinsames Geheimnis, während sie tatsächlich jeweils ein Geheimnis mit dem Mithörer haben. Skizzieren Sie, wie man Diffie-Hellman erweitern müsste, um diese Angriffsmöglichkeit auszuschlief3en. 18. Nehmen wir an, dass RSA benutzt wird, um eine Nachricht m an drei Empfänger zu senden, die über zueinander prime Verschiüsselungsmoduli nl, n2 bzw. n3 verfügen. Aile drei Empfänger benutzen den gleichen Verschlüsselungsexponenten c = 3, eine früher beliebte Wahl, weil sie eine sehr schnelie Verxhlblung ermöglicht. Weisen Sie nach, dass jede4 der alle drei verschlüsselten Nachrichten C I =m3rnod nl, cz = m3rnod n2 und c3 = m3rnod n~ abfängt, m effizient dechiffrieren kann. Hinweis: Das Chinese Remainder Theorem besagt, dass man effizient ein C finden kann, sodass C = c1 rnod nl, C = c2 rnod n2 und C = c3 rnod n ~ . Weisen Sie unter dieser Annahme nach, dass dies C = m3 rnod nln2n3 impliziert. Dann beachten Sie m3 < nln2n3. 19. Nehnen wir an, wir haben ein sehr kurzes geheimes r (eB.ein einzelnes Bit oder auch eine Sozialversicherungsnurnrner)und möchten jemandem eine Nachricht m senden, die s nicht enthüiit, die aber später benutzt werden kann, um zu über-
?
i
fi
prüfen, dass wir s kannten. Erklären Sie, warum m = MDS(s) oder m = Ef4 d der RSA-Verschlüsselung nicht sicher wären und schlagen Sie eine bessert W& vor. d 20. Zwei Leute möchten Poker über ein Netzwerk spielen. Um die Karten a ngebenu, benötigen sie einen ~ k h a n i s m u fur s die faire Amwah1 eine zahl x untereinander. Eine Partei wird verlieren, wenn die andere die von x auf d i r e Weise beeinflussen kann. Beschreiben Sie einen a Mechanismus. Hinweis Sie k6nnen davon ausgehen, dass EXCLUSN&QI x = x l Q x2 zufällig ist, wenn eine der zwei Bitketten xl und x2 zufaillig ist:
21. Schätzen Sie die Wahrscheinlichkeit des Herausfindens zweier Nachrichten nd der gleichen MDS-Prüfsumme, wenn die Gesamtzahlen von N 264und sind. Hinweis: Hier handelt es sich wieder um das t blern von Ubung 41 in Kapitel 2 und wieder ist die Wahrscheinlichkeit, d;;$ (k + 1).Nachricht eine unterschiedliche Prüfsumme als die vorhergehen& J besitzt, 1 ~ 2Die Annäherung ~ ~ im ~ dortigen ; Hinweis zur Vereinfachung $ Produkts versagt hier aber kläglich. Verwenden Sie also stattdessen den log je$ Seite und benutzen Sie die Näherung log (1 ~ 2 ' =~ ~ ) -4
-
-
22. Angenommen, wir möchten eine Telnet-Sitzung mit DES verschlüsseln. T e h ' sendet zahlreiche 1-Byte-Nachrichten, während DES in Blöcken von j e 8 Bygi verschlüsselt. Erklären Sie, wie DES bei dieser K o n d a t i o n sicher benutzt den k m . P*
23. Betrachten Sie das folgende einfache UDP-Protokoll (das lose auf TFl"F, R e q d forComments 1350, basiert) zum Download von Dateien:
-
Der.plient sendet eine Dateianfrage. Der Server antwortet mit dem ersten Datenpaket. ?
Der Climt sendet ein ACK, und die beiden fahren mittels Stop-and-Wait fa
Der Ciient und der S e m r besitzen jeweils Schlüssel Kc bzw. Ks;diese Sehliid sind beiden bekannt. 1
a. Erweitern Sie das Datei-Download-Protokoll mit Hilfe dieser Schlüss$l MDS, um Authentifikation des Senders und Integrität d u ~ a c h r i d e bereitzustellen. Ihr Protokoil sollte auch vor Replay-Attacken sicher se*, b. Wie schützt diese zusätzliche Information in Ihrem überarbeiteten Pm~lbkd vor der Ankunft verspäteter Pakete aus früheren Verbindungen und dem U;in! lauf der Sequenuiummem? Y
24, Benutzen Sie einen Bmvrrsler Ihrer Wahl und finden Sie heraus, wetcheti Ze&zierungsstellen fiir H'ITPS Ihr Browser in der Default-Konfiguration vmraut.
Vertrauen Sie diesen Autoritäten? Stellen Sie fest, was passiert, wenn Sie das Vertrauen einiger oder aller dieser Zertifizientngsstellenausschalten. 25. AngmoSk möchm Ihre filerbasierte Firewall so.konfi&wieren, dass sie alle ankommenden Telaee*Verbindungen blockiert, aPle abgehenden aber eriaubt. Ein möglicher Ansatz wäre die Blockierung aller ankommenden Pakete am designierten Telnet-Port (23).
a. Möglicherweise möchten wir ankommende Pakete auch an anderen Ports blockieren. Welche ankommenden TCB-Verbindungen müssen aber zugelassen werden, damit der abgehende Telnet-Verkehr nicht gestört wird?
b. Gehen Sie jetzt davon aus, dass Ihrer Firewall die Verwendung der Fiags-Bits aus dem TCP-Header Risänlich zu den Port-Nummern gestattet ist. Erklären Sie, wie Sie hier die gewünschte Teinet-Wirkung erreichen können, während gleichzeitig keine ankommenden TCP-Verbindungen zugelassen werden. 26. Angenommen, eine Firewall wird so konfiguriert, dass sie abgehende TCPVerbindungen generell, ankommende aber nur an spezifizierten P* zulässt. Das FTP-Protokoll stellt nun ein Problem dar: Wenn ein interner Client einen externen Server kontaktiert, kann die abgehende TCP-Kontsollverbindung normal geöffnet werden, die TCP-Datenverbindung ist traditionell aber ankommend. a. Informieren Sie sich über das FI'P-Protokoll, z.B. in Request for Comments 959. Finden Sie heraus, wie der POnT-Befehl funktioniert. Erläutern Sie, wie der Cüent geschrieben werden konnte, sodass die Anzahl von Ports, an denen die Firewd Eingangszugriff gewähren muss, begrenzt werden kann. Kann die Anzahl solcher Ports auf einen beschränkt werden?
b. Finden Sie heraus, wie der Fi'P-Befehl PASV benutzt werden kann, um dieses FirewaU-Problem zu lösen. 27. Filternde Router seien beispielsweise wie in Abb. 8.24 angeordnet. Die primäre Firewall ist R1. Erklären Sie, wie R1 und R2 konfiguriert werden sollen, damit Adenstehende über Teinet auf net 2, nicht aber auf die Hosts von net 1zugreifen können. Um ~Leapfroggingu-Einbrüche in net 1 zu vermeiden, verhindern Sie auch Telnet-Verbindungen von net 2 zu net 1.
net 1
net 2
Abb. 8.21 Diagramm für Übung 27
28. Wamm möchte ein Intemet-Service-Provider möglicherweise bestimmten abge henden Verkehr blockieren? 29. Vergleichen Sie eine filternde Firewall mit einer Proxy-Firewall hinsichtlich des Schutzes vor Spoofing-Attacken wie in Obung 17von Kapitel 5. Gehen Sie von einer Konfiguration wie in Abb. 8.21 aus, wobei der angegriffene intern Hdem Benutzer des entfernten Unternehmens vertraut.
30. Es wird behauptet, dass IPSEC unter Umständen nicht mit Network A h Translation (NAT - RFC 1631) funktioniert. Dies hängt jedoch davon ab, in welchem Modus von IPSEC und NAT wir arbeiten. Angeaommg wir verwenden echtes NAT, bei dem nur IP-Adressen, aber keine Ports übersetzt w e r k Wird IPSEC und NAT in den folgenden Fällen arbeiten? Erklären Sie, Wbzw. warum nicht.
(a)lPSECverwendet den AIf-Transportrnadus. (b)IPSECverwendet den AH-Tunnelmodus. (C) IPSEC v e ~ e n d eden t ESP-Transportmodus.
(d)IPSECverwendet den ESP-Tunnelmdus. (e)Was geschieht, wenn wir PAT (Port Adress Translation)bei NAT ve& das ebemio unter dem Namen Neowork A M o r t T d a t i o n ( N M )bek w t ist? Dabei werden zusätzlich zu den IP-Adressen Port-N-mn abersetzt, sodass man eine IP-Adresse von auBerhalb des privaten Neawerkes erreichen kann.
9 Anwendungen
Anwendungen brauchen ihre eigenen Protokolle Wir haben dieses Buch mit einer Diskussion über AnwendungsProgramme begonnen, die Benutzer über Computernetzwerke ausführen wollen, angefangen von Web-Browsern bis Videokonferenz-Tools. In den weiteren Kapiteln haben wir Schicht für Schicht die Netzwerkinfrasuuktur entwickelt, die für solche Anwendungen erforderlich ist. In diesem Kapitel befassen wir uns mit Netzwerkanwendungen und schliegen damit den Kreis. Diese Anwendungen sind Teil des Netzwerkprotokolls (in Now this is not the dem Sinn, als sie Nachrichten mit ihren Partnern auf anderen Rechnern austauschen) und end. It is not even Teil des traditionellen Anwendungsprogramms the beginnihg of (in dem Sinn, als sie mit dem Benutzer intera, the end. But it is, gieren). In diesem Kapitel werden einige der zur Zeit weitverbreitetsten Netzwerkanwenpdaps, the end of dungen und ihre Protokolle betrachtet. Dabei the beginning. wird rasch deutlich, dass ein Protokoll eben ein Protokoll ist, ungeachtet dessen, auf welcher - Winston Churchiii Schicht es läuft. Mit andereh Worten: Sie können sich am besten darauf vorbereiten, selbst Netzwerkanwendungen zu schreiben, wenn Sie zuerst verstehen, wie gute Netzwerkprotokolle entworfen werden. Als erstes Beispiel betrachten wir einen verteilten Namensauflösungsdienst, der auch als erste Anwendung in einem Netzwerk implementiert wird. Er qualifiziert sich aus technischer Sicht zwar als Netzwerkanwendung, ist in Wirklichkeit aber eine verteilte Datenbank, die auf die zu Grunde liegenden Transportprotokolle aufsetzt. Es handelt sich nicht um eine Anwendung, die Benutzer ausdrücklich aufrufen. Dennoch ist es eine Anwendung, von der alle anderen Anwendungen abhängen. Das ist darauf zurückzuführen, dass der Name-Server benutzt wird, um Host-Namen in
Host-Adressen zu übersetzen. Die Existenz einer solchen Anwendung erlaubt es den Benutzern anderer Anwendungen, auf entfernte Hosts mit Namen statt Adressen zuzugreifen. Ein NameServer wird also nicht von Menschen, sondern von anderen Anwendungen benutzt. Wir beschreiben eine Vieizahi bekannter und weniger bekannter Anwendungen. Sie reichen von E-Mail und Web-Browsen zur Verwatung von Netzelementen und modernen Audio- und Videoanwendungen wie vic und vat bis hin zu aufkommenden Peer-toPeer- und Inhalteverteilungs-Netzwerken.Diese Liste ist natürlich nicht erschöpfend, genügt aber, um einige Knilfe bei der Entwicklung von Pmokoiien der Anwendungsebene hervorzuheben, d.h. die Erweiterung der zu Grunde liegenden Traulsportdienste von TCP und UDP, um den von der jeweiligen Anwendung benötigten Kommunikationsdienst bereitstellen zu können.
9.1 Domain Name System (DNS)
I:
Bis zu diesem Punkt haben wir Adressen benutzt, um Hosts zu identiiizieren. Sen sind für die Verarbeitung in Routern gut geeignet, aber nicht gerade benutze& freundlich. Aus diesem Grund wird noimaerweise jedem Hast in einem Ne auch ein eindeutiger Name zugewiesen. In diesem Abschnitt wird beschrie ein Namensauflösungsdienst entwickelt w e r k kann, nm benutzerfre Namen auf routerfreundliche Adressen abnibüden. Ein solcher Diem ist oik & erste in einem Netzwerk implementierte Anwendungsprogramm, weil es an Anwendungen emi2igli&t, Hosts nach Name starc nach Adresse zu i d e n W o M Namensauflbsungsdienste werden auch Middlww gtnannt, weil sie zwi:sthen Anwendungen und dem zu Grunde iiegenden Netzwdk angesiedelt sind. Host-Namen unterscheiden sich von Hat-Adteam ui zwei wichtigen Pu&&,: Erstens h a b e sie normalerweise eine variable Länge und sind mnemonisch, da& Menschen sie sich besser merken können. (Im Gegens1tz dgal sind numerisrbrd Adressen mit fester Länge für Router leichter zu verarbeiten.) Zweitens e n M ~ Namen normaierweise keine Informationen. die dem Netzwerk helfen. einen Ha& zu finden (und Pakete dorthii zu leiten). Adressen können demgegenüber Rou* Informationen enthalten. Phche Adressen (d.h. Adressen, die nicht in Komponenm aufteilbiii sind) sind die Ausnahme. Bevor wir uns mit den Details befassen, wie Hosts in einem Netzwerk benam@ werden, führen wir zuerst einige grundlegenden Fachbegriffe ein. E i N w m w definiert die Menge moglicher Namen. Er kann entweder f i c h (die Namen sich nicht ip Komponenten aufteilen) oder hierarchisch (Unix+Dateinamensind dsrrv beste Beispiel) sein. Das N a m e n s a d ä s u n ~ t e mverwaltet eine Sammlung von Bind-s, die Namen mit Werten binden. Der W m kann etwas Beliebipes sein, dais vom $&ensa~ösungss ein Z U : ~ ~eben wenn e g wei:den unk vorgiesetzt wird. In vielen ist eine AdreW*Ein sungsr eine Prodiu; die bei Aufruf mit einem Namen deri entsprechenden Wert zur&&& gibt. Ein ~ a m e - s m eist r eine spezifische Implementierung eines Auflösungsmecha+ nismus, der in einem Netzwerk verfügbar ist und durch Senden einer Nachriah abgefragt werden kann. Aufgrund seines riesigen AusmaSes hat das Internet ein besonders gut entwickeites Namensauflösungssystem das Domain Name System (DNS). W u verwenden das DNS deshalb als Rahmenwerk für die Diskussion der Benennung von Ho-. Man beachte, dass das DNS nicht immer im Interne benutzt wurde. Früh in dor Geschichte des Inteniet, als nur ein paar hundert Hosts angeschlossen waren, V=waltete eine zentrale Behörde mit der Bezeichnung ~Networkinfonn~donCenter@ (NiC) eine %die Tabelle. mit NamenfAdre~sen-Bindings.Diese Tabelle ww& hosts.txi genannt. Wollte ein Standort einen neuen Host am internet ansdieschickte der Administrator eine E-Mai mit dem NamdAdresse-Paar an das NlC Diese Information wurde manuel in die Tabelle eirigepeben. Dann wurde die 4 fizierte Tabelle alie paar Tage an verschiedene Standorte gesendet und der Systemadministrator an jedem Standort installierte'dieTabelle auf jedem Host seines S d
-
I : I L ,
,
'
orts. Die Namensauflösilsig wurde heinfach durch eine Prozedur hpkmmtiert, die den Namen eines Hosts in d& lokalen Kopie d e Tabelle ~ heraussuchte und die egrsgrechende Adresse zurückgab. Man kann sich naturlich v~raellen,dass der Ansaa mit hosts-txt fiir die Benennung im Zuge der rasch steigenden Anzahl van Hmts im Iatemet ksiwm mehr funktionierte, Deshalb wurde Mitte der achtziger Jahre das Dom& Name System eingerichtet. DNS bwiert auf einem h i o i d d e n statt flachen Nanzensraum. Die ,Tabelle* mit Bindings, die diesen Namensraum implementiert, ist in separate Teile gegliedert und im gesamten Intemet verteilt. Diese Teiltabellen stehen auf Name-Servern zur Verfügung, die über das Netzwerk abgefragt werden können. In rier Praxis läuft dies so ab, dass ein Benutzer einen Host-Namen in einem Anwendungsprogramm (mcjgiicherweise in einem zusamrnengeserzten Namen wie eher E-Mail-Adresse oder einer URL eingebettet) eingibt, und dieses Programm den Namen vom Namensaufiösungssystem in eine Host-Adresse Üt>ersetzen,lässt. Dann &et die Anwendung eine Verbindung zu diesem Host, wobei sie einem Transportprotokoll (z.B. TCP) die IP-Adresse des Hosts übugibt. Dieser Ablauf ist in Abb. 9.1 (mit dem Versenden von E-Mail als Beispiel) dargestellt. Benutzer
cs.princeton.edu Server
; .
:
1
Abb. 9.1 : Namen werden in Adressen Ubersetzt, wobei die Zahlen 1-5 die Schritte des Prozesses bedeuten.
DNS implementiert einen hierarchischen Namenstaum für Intmet-Objekte. Im Gegensatz zu Unix-Datehamen, die von links nach rechts verarbeitet und deren Nalaensteile durch Schrägstriche getrennt sind, werden DNS-Namen von rechts nach links verarbeitet d mit Funkten getrennt. (Domain-Namen werden zwar von rechts nach links rvetarbeitet~,Menschen ~lesenusie aber von links nach rechts.) Beispid eines DQmiiig-Nameas für einen Host ist cicada.w.p&weton,edu, We ha$len gesagt, dass Domain-Namen für die Benennung VQZI hternet-~Objektenu begyat werden. Wir'rminen dass DNS nicht im s&kren Sinn daw benutzt wird, Host-Namen auf Host-Adressen abzubilden. Genau genommen, bildet DNS
P
We bei der thu#-D~teihiers~xlchii& kam
Wrs entsprhn. Abb* 92 r;;eigt ein M t e * d a s wir dem bjpiff d h n a b a
b E I l d l ~ ~ ~ , ~ e s ~ ~ & u m ~ K o N m n d e h i m werda kÖ94geg,
Abb. 9 2 Beispieleiner Domain-Hierarchie
~
~
t subventioniert. ~ s
9.1 R NameSewer
,
der Universitätszone), während andere, z.B. die Informatikfakuität, ihre eigene Zone auf Fakuitäwebene verwalten. Eine Zone entspricht der grundlegenden Implementierungseinheitin DNS - dem Name-Serve~Das hegt, die in jeder Zone enthaltenen Informationen werden in zwei oder mehr Nme-Servern hp1emenBert. Jeder Name-Suver ist seqmits ein Programm, auf das über das intemet zugegriffen werden kam.Cli$nts senden Anfragen an Name-Server, und Name-Server antworten mit den angefordertem Informationen. IMandimd enthält die Antwort die vobtändigc vom Client gewbschte Angabe und m a d d einen Zeiger auf einen weiteren Server, bei dem der Cüent als Nächstes anfragensoll. Aus Sicht der Implementierung ist es also korrektei; sich DNS als eine Hierarchie mit Name-Servern statt als Hierarchie mit Dmains vomsteUen, wie Abb. 9.4 zeigt. Abb. 9 A Hierarchie mit Name-Servern
Man beachte, dass jede Zone auf Grund von Redundanz in zwei oder mehr NameServern implementiert wird. Das heißt, dass die Informationen auf dem zweiten Name-Server verfügbar sind, wenn der erste ausfällt. Andererseits steht es einem bestimmten Name-Server frei, mehr als eine Zone zu implementieren.
640 I e M m m d l q p
Jeder Name-Server implemenrien die Zoneninformationen als eiae Sammlm von R a s s o r s t w x ~ d s MIm~ wesentlichen ist ein bsourcendatensatz ein N d Wm-Bin&& o d q genauer @qt,ein 5-Tupel,das folgende Fel&r enthält:
U MX:
d
Das Pdd Klus.wurde aufgenommen, damit auch Unstanzen a&r dCm NIC detliche Datenwwypen d&eren können. Bisher wird nur die vom htem1 benutzte IUasse häufig verwendet; sie wird Live) b e w b , wie lange der betreffende von Setlrern benutzt, die Eaesso~&t& von anderen speichern. L&& die TTL ab, muss da Server den Datensatz raus seinem Ca& ben. Um betser zu verstehen, wie Ressourcendatdtze Iaiiormationen aus ~omain-~erarchie darstellen, betrachten wir die folgend& Beispiele aus der Domain-Hierarchie von Abb. 9.2. Zur Vereinfachun6 der 3eisp&le ignorieren das ~ - P e l und d geben die relevanten Informaanui nur HU. einen* ~ a m e - ~ m & , . as, die jede Zone implementieren. Der Rdt-Name-Server enthält einen NS-Datensaa für jeden Server der z w e h i Ebene. Er beinhaltet auSerdem einen A-Datensatz, der chende IP-Adresse übersetzt. Zusammengenommen implementieren diese beida Datensätze einen Zeiger vom Root-Name-Server zu jedem Server auf der zweEbene. qrlncetott.edu, c i t.princeton.edu. NS. INS ~cit.prlnceton.du. 128.196.128.233, A. IN*
...
... ..*
Die Dom& princeton.edu umfasst einen Name-Serveq der auf Host cit.primton.edu verfiigbar ist, auf dem sich die wen-aufgeführten Datensätze befinden. Man beachte, dass einige dieser Datensätze die vollständige Angabe enthalten (z.B. die ~dresseftir den Host satum.physics.princebn.edu), während andere auf Name-Server der dritten Ebene zeigen.
gnat .cs.princeton .edu. NS. IN> *gnat.cs.princeton.edu, 129.12.69.5. A. IN> cee. princeton.edu. hel iOS .ee.princeton.edu. NS. IN> <jupi ter.physics.princeton.edu, 128.196.4.1, A. IN* <saturn.physics.princeton.edu. 128.196.4.2. A. IN> <mars.physics.princeton.edu. 128.196.4.3. A. IN>
'
Ein Name-Server auf der dritten Ebene, 2.B. der von der Domain cs.prhiceton.edu verwaltete, enthält A-Datensätze für alle seine Hosts. Er kann auch eine keihe von Aliasnamen (CNAME-Datensätze) für jeden dieser Hosts definieren. ~liaskamensind manchmal praktischere (2.B. kürzere) Namen für Maschinen, können aber auch benutzt werden, um ein gewisses Maß an Flexibilität zu wahren. ~eispielsweise'ist www.cs.princeton.edu ein Aliasname für Host cbda.cs.princeton.edu. Auf diese Weise kann der Webserver der Site auf eine andere Maschine verlegt werden, ohne die Erreichbarkeit für entfernte Benutzer zu verlieren. Sie benutzen weiterhin den Aliasnamen, ungeachtet dessen, auf welcher Maschine der Webserver der Domain momentan ausgeführt wird. Die Mail-Exchange-Datensätze (MX) dienen dem gleichen Zweck für die E-Mail-Anwendung. Sie erlauben es einem Administrator, den Host zu ändern, der die gesamte E-Mail für die Domain empfängt, ohne die E-MailAdresse aller betroffenen Benutzer ändern zu müssen.
.
<mrw.cs.princeton.edu, 192.12.69.35. A. IN, *ci cada. CS. pri nceton. edu, roach. CS. pri nceton. edu, CNAME.. IN>
Obwohl Ressourcendatensätzefür praktisch jeden Objekttyp definiert werden können, wird DNS normalerweise benutzt, um Hosts (einschließlich Server) und Standorte zu benennen. Es wird nicht verwendet, um Einzelpersonen oder weitere Objekte wie Dateien oder Verzeichnisse zu benennen. Für solche Objekte werden andere
Namensadosungssystesae benutzt. Beispielsweise ist Xi500 eln.lSO-N sungssysrem, das die Identifizierung von Personen vereinfacht. Es Beneeiner P w n durch @be einer Reihe vsn Attributen: Telefomummei; Postanschrik um. X.500 erwies sich als eu miham un gewissem Sinn von leistungsstarken Suchmaschinenverdrängt, die jetzt fügbar sind. Es hat sich l d c h aber zum LDAP (Lightweight Dke Protocol) weiterentwickelt. LDAP ist eine Untermenge von X3 als PC-Frontend für X.500 entwickelt wurde. Als System zum mationen über Benutzer steigt heute seine Beliebrheit vor a ebene.
Na~nenskonventienen
I
Unicire Beschreibung von DNS konzentriert sich Mechanismen, dh., wie die Hierarchie auf meh der Auflösungsprozess funktioniert. Daneben gi allerdings viel weniger technischen Aspekt d um die in dem Mechanismus benutzten Namen festzulegen. weise Konvention, dass alle US-Universitäten unter der Doma sind, währeqd britische Universitäten unter der Subdomin ac (a Domin uk ( U W d Kingdom) liegen. Schon all Britain) war bei DNS-Einführung Gegenstand tere BezeichnungNordirlandnicht beinhaltet Konventionenwerden manchmal eher willkürlich festgelegt Der Konvention xufolge verbirgt ein Standort zB. den genauen Host, über den sein Mail-Austausch läuft, hinter dem Datensatz M X Alternativ kannte man die Konvention) Obernehmen, dass Mai1 an u~r8iDmatl.cs.princeton.edugesendet wird, ebensa wie' w'ir. erwarten, das Ufkntllche FiP-Verzeichnis eines Standortes auf ftp.m.princeton.edu und seinen WWW-Server auf www.cs.princeton.edu zu fin-,, den. ' Konventionen gibt es auch auf lokaler Ebene, wo eine Organisation ihre Maschinen nach konsistenten Regeln benennt. i@iHast-Namen wie vefiwcJ% saturn und man, die tu den bekiebtesten im lnternet etahien, ist es nkht &,r schwer, sich eine gemeinsame Nmenskonventh vorzustellen. ~ t o ,' d Namenskanventionen ftir Hosts lassen allerdings auf viel vorsteltungskr& schliel3en. Ein Standort benannte seine Maschinen tß. mit up, down, cras'"h&;l rebooting usw., was zu verwirrenden Aussagen wie ~rebootinghas crashdi p downe führte. Selbstverständlich gibt es auch weniger phantas+& nd ~ u is volle Namen, zB. die Benennung von Hosts nach GannahSen. L I?
~
9.1 Domain N.moSyJt.AI(DNSj
1
613
9.1.3 NamensaufBsung Vor dem Hintergrund einer Hierarchie mit Name-Servern befassen wir uns jetzt mit der Frage, wie ein Client diese Server dazu bringt, einen Domain-Namen aufzulösen. Um das grundlegende Konzept darzulegen, nehmen wir an, der Client möchte den Namen cicada.cs.princet0n.edu für die im vorherigen Abschnitt aufgeführten Server auflösen. Der Client sendet zuerst eine Anfrage mit diesem Namen an den Root-Server. Der Soot-Server hat keinen passenden Eintrag für den gesamten Namen, gibt aber den für ihn besbnöghchen Treffer zurück: den NS-Datensatz für princeton.edu. Außerdem gibt er alle Datensätze zmück, die sich auf diesen Datensatz beziehen, in diesem FaU also den A-Datensau für cit.princeton.edu. Da der Client die von ihm gesuchte Antwort noch nicht vollständig erhalten hat, sendet er die gleiche Anfrage an den Name-Server von P-Host 128.196.128.233. Dieser Server k a m den gesamten Namen auch nicht auflösen rand gibt den NS- und die entsprechenden A-Datensätze für die Domain cs.princeton.edu zurück. Schließlich sendet der Client die gleichen Anfrage an den Server von P-Host 192.12.69.5; diesmal erhält er den A-Datensatz für [email protected]$.princeton.edu. Bei diesem Beispiel bleiben einige Fragen über den Auflösungsprozeq unbeantwortet. Die erste Frage lautet, wie der Client den Root-Server findet odet, anders ausgedrückt, wie löst man den Namen des Servers auf, der Namen auflösen kann? Dies ist das grundlegende Problem bei jedem Namensauflösungssystem. Die Antwort lautet, dass auf das System eine Art Bootstrapping ausgeführt werden muss. In diesem Fall ist die NamentAdressen-Abbildung für einen oder mehrere Root-Server bekannt, d.h. auf irgendeine Weise außerhalb des Namensauflösungssystems veröffentlicht. In der Praxis kennen aber nicht alle Clients den Root-Server. Vielmehr wird das auf jedem Internet-Host laufende Client-Programm mit der Adresse eines lokalen NameServers initialisiert. Allen Hosts in der Logistikfakultät an der Princeton-Universität ist z.B. der Server gnat.cs.ptinceton.edu bekamt. Dieser lokale Name-Server verfügt seinerseits über Ressourcendatensätoe für einen oder mehrere Rmt-Servet, z.B.:
-
c'root' , venera.isi .edu, NS, IN>
+
,
: ;
1'
I
Die Auflösung eines Namens umfasst also die Anfrage eines Clients an den lokalen Servet, der seinerseits als Client fungiert und Anfragen M Auftrag des urspriinglichen Clients an entfernte Server richtet. Dies ergibt die in Abb. 9.5 dargestellten Client/Server-Interaktionen. Dieses Modell hat u.a. den Vorteil, dass die H a im Internet nicht auf die jewelligen Root-Server fortgeschrieben werden müssen. Nur die Server müssen den Root-Server kennen. Ein zweiter Vorteil ist, dass der lokale !Server' die Antworten sieht, die auf die von allen lokalen Ciients gestellten Anfram mrückkommm. Der lokale Server speichert diese Antworten in seinem Cache und ist manchmal in der Lage, künftige Anfragen zu beantworten, ohne sich an einen anderen Server irgmdwo im Netzwerk zu wenden. Das von entfernten Servern zurückgegebene TTL-Feld in den Ressourcendatensätzen weist darauf hin, wie lange jeder Datensatz im Cache gespeichert wird.
1 ;clceda.caprinceton.edu
192.12.69.60 8
bkf~bf Name- ' )r+hnlw Server * cß,princdon.edu, 192.12.69.5 ~~r 5 -
'
(2s-
Nsmec
, I
I'
SMIler
7
Ahb.932'
Nammsaiblösung in der Pmls;die Zahlen 1-8 kennzeichnen die im ProzessabbufrndenSchrfWs.
.
Die' zweite Frage l a u ~ twie , das System funktioniert, &nn ein&nutzer nur ein&& N m m s r d (=.B. W d a ) sratr einem roiisrHndigen D d n - & h e n cet0n.d~)eingibr. Die Antwaft darauf i t i u ~ ,dass das Cliwh* lokalen D o m h konfiguriert wird, in der sich dcz Hot&befh~dere;f%.#~ c s . p r i ~ . ~Er) hängt . diese Kern an e M c h Namen an, bevor er cfne - ' versendet.
(+$i
8
d a l Z 6 s ~ ~ ~RQuttT n r d s&, ~ &? F m e s enthalsen diese phpsikdhchetl-
I
.
93 TraditionelleAnwandungen
9.2
I
645
Traditionelle Anwendungen
Das Domain Name System ist eine wichtige Internet-Anwendung, aber eine, mit der die Benutzer nur indirekt zu tun haben. Wir wenden uns nun jenen Anwendungen zu, mit denen die Benutzer direkt interagieren, und konzentrieren uns dabei auf die beiden populärsten: World Wide Web und E-Mail. AuSerdem betrachten wir ein Netzwerkmanagement, das dem Durchschnittsbenutzer zwar nicht vertraut ist, bei dem es sich aber um die bevorzugte Anwendung für Systemadministratorenhandelt. Wie DNS basieren alle drei Anwendungen auf dem AnfragdAntwort-Paradigma. Benutzer senden Anfragen an Serveq die entsprechend antworten. Wir nennen sie »traditionelle* Anwendungen, weil sie die Art von Anwendungen charakterisieren, die seit Anbeginn von Computernetzwerken existieren. Demgegenüber wird in den nächsten beide Abschnitten eine relativ neue Anwendungsklasse beschrieben: Streaming-Anwendungen (z.B. Multimedia-Anwendungen wie Audio und Video) und verschiedene Overlay-basierte Applikationen. Bevor wir diese Anwendungen näher betrachten, sind drei allgemeine Punkte hervorzuheben. Erstens ist es wichtig, zwischen Anwendungsprogrammen und Anwendungsprotokollen zu unterscheiden. H l T P (HyperText Transport Protocol) ist 2.B. ein Anwendungsprotoko41, das benutzt wird, um Web-Pages von entfernten Servern abzurufen. Es kann viele verschiedene Anwendungsprogrammegeben, d.h. W&Clients wie Internet Explorer, Mosaic und Netscape, die sich dem Benutzer jeweils anders darstellen, die aber alle das gleiche HTI'P-Protokoll benutzen, um mit Webservern im Internet zu kommunizieren. In diesem Abschnitt konzentrieren wir uns auf drei Anwendungsprotokolle: (Simple Mai1 Transfer Protocol) wird firr den Austausch von E-Mail benutzt.
i SMTP
.
HTIT (HyperText Transport Protocol) wird für die Kommunikation zwischen Web-Browsern und Webservern eingesetzt.
i: !
i
' : I
'
SNMP (Simple Network Management Protocol) wird für die Abfrage (und manchmal auch die Änderung) des Zustands entfernter Netzwerkknoten verwendet.
Wir kommen zum zweiten Punkt: Da alle in diesem Abschnitt beschriebenen Anwendungsprotokolle dem gleichen Anfragdhtwort-Kommunikationsmuster folgen, mag man erwarten, dass sie alle auf ein RPC-Transportprotokoll aufsetzen. Dies ist jedoch nicht der Fall; sie werden alle oberhalb von TCP oder UDP implementiert. Im Grunde .erfindet* jedes Protokoll einen einfachen, mit RPC vergleichbaren Mechanismus oberhalb eines der existierenden TransportprotokoHe. Wir sagen »einfach«,weil jedes Protokoll nicht für die Unterstützung beliebiger entfernter Prozeduraufrufe, sondern für das Versenden und Empfangen bestimmter Anfragenachrichten ausgelegt ist. So ist es nicht zufällig, dass in der Bezeichnung von zwei der drei behandelten Protokolle das Wort .Simple* (einfach)vorkommt.
Alle drei Protokolle haben ein Begieitprotokoll, welches &s Formt der a q tauschenden Daten spezifiziert. Das ist ein Grund,warum diese Protokolle relada einfach sind: Ein Gr~&eilder Komplexität wird in diesem Begleitprotokd tigt. SMTP ist beispielsweise ein Protokoll für den Austausch von E-Mail-* ten, während RFC 822 (diese Spezifikation hat keine andere Bezeichn& wgk$ (Mdtipurpose Internet Mail Exrensioas) das Format von E-Mad-Na ten definieren. H l T P ist ein Protokoll für das Abden von Web-Page HTML (HyperText Markup Language) eine Begieit~pedikationist, Form dieser Sciten definiut. SNMP ist ein Protokoll für die Abfcage des von Netzwerkknoten, währen MIB (Management Enforxnation Base) die genden Variablen definiert. I C. .L
9.2.1 Electronk Mail (SMTP, MIME) '37
E-Mail ist eine der ältesten Netzwerkanwendungen. Was wijre natürlicher ab &I Wunsch,dem Benutzer am anderen Ende einer Oberlandverbindun& die n r a r p ; d lich zum Laufen gebracht hat, eine Nachricht zu senden? Eigentlich ha& Pioniere des ARPANET bei der Entwicklung des Nemverks E-Mail &ht ais tigste Anwendung vorgestellt. Das wichtigste Designziel war der entfernte E-Mail erwies sich aber & überraschend erfo auf Redieme~~~urcen, Anwendung. Aus dieser Arbeit entstand das E-WSystem des Internet, Millionen @ich benutzen. 4's Wie bei allen in diesem Abschnitt beschriebenen Anwendungen ist unsat. gangspunkt für das Verständnis, wie E-Mail fudaio* die Unterscheidurig @ zwischen dkm User-Interface (d.h. dem Md-Reader) und dem zu Gr Message-$ransfer-~totokoll(id diesem Fall SMTP) und (2) mische ferprotokoll und einem Begleitprotokoll (RFC 822 und MIME),wekhes das Poder auszutauschenden Nachrichten definiert, Wir -en mit &r i b c h r e i w & Nachrichtenformats. a
C
4
Nschrkhdenfonnat b RFC 822 definiert Nachrichten in zwei Teilen: Headar und Rn& Beide Te den in ASCII-Tm dargestellt. Ursprüngiich wurde von einfachem Text a l ~ ausgegangen. Dies ist immer noch der Fall,obwohl RFC 812 wurde, um verschiedene Datmtypen im Nadiriehten~mpfe Daten werden nach wie vor ais ~ ~ - T edargestellt. x t Da sie sion anderer Daten, z.B. eines JPEGW,sein khnen, sind sie nicht unbedia@& den Benutzer lesbat W@behandeln MIME weiter unten. -.-.h Der Nacbiihi~ea-Headwbesteht:aus Zeilen, die mit
-
beispielsweise dki l h p f " ä der Nachricb und der Heaakr ~Header-den vam zu G d e liegende0 Md-Zusrellsuhjist: sparan ausgddh ~ S pIkbpiole i ~zu nainen:Dctte: an dan die Nachübmapnh&?,!~nmr: fAbsen$esder Nacbcht) na$ (jeder WServer, der & behtmde11 hat). S e l b s t v @bt ~ es viele weitete 13ea&&iilarj 822 rpcdkien Md. 822 m d e U93 awe%at (d 1996ernepth-], um vi$c v d e dene D in E - M - w t e n ni @cha A9dii3, video, Oafiken, Word-Dokwnent.usw, MIME setzt sich aus drei G d h- z Dez m m Td ist eine !hmdung von I-hck-Zeilen, welche die &~~1822-~&nitioa erweitern. D i Header-Zdea fxschibcn auf untexpEhi* Wise die im Nachrickempf zu übertragenden Daten. Sie beinhalten MIME-V* (die benutzte MiIWbVdon), Csntefit-Descripeon: (eine von ~ m ~ l m b aBesfihreir e busg dessen, was sieh in der Nachricht befindet, analog zur Zeile SUbject), ConwntW: (der in der Nachricht enthaltene Datentyp) und ConBnt-Transfer-Epadng {wie die im Nacbtichtennimpf mhltgnen Dsen kodiert a d ) . Beim zweiten Teil handelt os sich um W F i u n e n 6 eine Reihe von Inhaltstypen (und Subtypen). Beispielsweise d&ett MIME zwei verschiedene Typen für Standbilder mit der Bezeichnung hgdgif und bmge@eg, mic ~elbstegkzärender lkdeutung. Als weiteres Beispiel bezieht sith bxWpiabi auf einfachen T& im-822Nachtichtenstil, wäbrend text/neMext eine Nachricht Ireteickriet, die Fonnatiermgen (%..B. spezielle Schriftarten, korhehungen wie kursiv um.).end&. Als drittes Beispiel definiert MIME einen Anwendungstyp ( a p p i i i n ) , wobci die Subtypen det Ausgabe der jewdigen Anwenduqgprogramme erusprechen (z.B. appiioation/postscript uad apptidonl-). F m e r definiert MIME einen rnutQkrt-~~, der bestimmt, wie eine aus mehreren Datrwtypen bgstehende Nachricht strukturiert werden soll. Das ist vergleichbar mit einer Programmiersprache, die sowohl Basis(2.3. GanzMden iuid Gleirkomd n ) als auch z u s a m m m e T p n (2.B. Strukmen und Arrays) definiert. Eh möglicher m u ~ S u b t y pist mixed, der besagt, dass die Nachricht mehtere unabhiingige Datenelemente in der angegebenen Reihenfolge enthält. Jeda Element hat seine eigene Header-Zeile, die den Typ des jeweiligen Elements beschreibt. Das dritte Element ist eine Möglichkeit, die verschiedeneh Datenzu kodiem,d a s s sie in einer ASa-Na-ht versendet werden können. Das Problem ist, da@bei einigen da^^ &B. &ein JPEGW)*de@ Byte im Bild einen von 256 mi@i&ea Wetten &ten kann. Mur eine T b n g e dieser Werte sind gültige ~ - Z e i Es~ist .wichtig* dass E-Md-Nachrichten nur ASCH enthalten, weil sie dnreh mehrere damvkh&egeade Systeme (die weiter amten beschriebenen Gateways) nieSen könaen, fllr die jede E-Mail nur aus ASCII-Zeichen besteht und die Nachrichten verfalschen können, faRs sie ASUI-fremde Zeichen enthalten. Um diws Probkm ZU k, k u m MMJ2 eine diskte K-g von Binairdatenh Capri A S C I E - Z e i d Die Kdwird als baw3 bezeichnet. Diesem Konzept d d g e werden immer drei Byte dem binären Origid6aten auf vier A S C I I - W n abgebildet. Dies geschieht durch Gruppierung der Binidaren in LCBit-Einheiten
W e r
*
~~~
und Aufteilung jeder Einheit in vier 6-Bit-Stücke. Jedes 6-Bit-Stück entspricht einem aus 64 gultigen ASCII-Zeichen, beispielsweise 0 entspricht A, 1 entspricht B usw. Sieht man sich eine mit dem base64-Kodierschema kodierte Nachricht an, s t d t man nur die 52 G r d - und Kleinbuchstaben, die 10 Ziffern von 0 bis 9 und die Sonderzeichen + und / fest. Das sind die ersten 64 Werre des ASCII-Zeiehensatza. Eine Anmerkung am Rande: Damit Mai1 für alle, die unbedingt Nm-Text-MailReader benutzen wollen, lesbar ist, kann eine MIME-Nachricht, die nur regulären Text enrhält, in 7-Bit-ASCII kodiert werden. Airßerdem gibt es eine lesbare Kodienuig iEür fast alle ASCII-Daten. Als Zusammenfassung zeigt folgendes Beispiel einq Nachricht, die einfachen Text, ein JPEG-Bild und eine Postscript-Datei enthält:
14
j
I
1
MIME-Versi on: 1.0 Content-Type: multipart/mixed; ~ O U ~ ~ ~ ~ ~ = " - - - - - - - ~ ~ ~ C A ~ E ~ D E ~ A B C A F From: Al ice Smf t h
--------
417CA6E2DE4ABCAFBC5 Contenh-Type: t e x t / p l a i n; charset-us-asci i Cantent-Transfer-Encodi ng : 7bi t Bob, Here's w e jpeg image and d r a f t report I promised.
. unreadable encoding of o jpeg figure --------- 417CA6E2DE4ABCAFBC5 Content-Type: appl ication/postscript; nameaudraft.psn Content-Transfer-Encoding : 7bi t
. readable encoding of
a PostScript document
Bei diesem Beispiel besagt die Zeile Content-Type im ~achrichten-I-Jeader,dass die Nachricht verschiedene, jeweifs durch eine Zeichenkette identifizierte Elemente enthält, wobei diese Zeichenkette in den Daten selbst nicht erscheint. Für jedes Element gibt es je eine Zeile Content-Type und Content-Transfer-Encoding.
Mrkhtentmsfer Wir befassen uns jetzt mit SMTP, dem für die übertragung von Nachrichten von einem Host zu reinem anderen benutzten Protokoll. Um SMTi' im richtigen Zusammenhang zu betrachten, müssen wir die wichtigsten Mitspieler identifizieren. Benutzer interagieren mit einem Mail-Reader, wenn sie E-Mail erstellen, ablegen, suchen und lesen. Auf dem Markt sind umählige Mail-Reader verfiigbar, ebenso wie es viele Web-Browser gibt. Die meisten Web-Browser beinhalten heute einen Mail-Reader. Ferner gibt es einen Mail-Daernon (Prozess),der auf jedem Host läuh. Dieser Prozess spielt die Rolle eines Postamts: Mail-Reader übergeben dem Daemon Nachrichten, die sie an andere Benutzer senden möchten. Der Daemon benutzt das oberhalb von TCP laufende SMTP, um die Nachricht an den auf einer anderen Maschine laufenden Daemon zu übernagen, und der dorrige Daemon stellt ankommende Nachrichten in der Mailbox des Benutzers ab (wo sie der Mail-Reader des Benutzers später finden kann). Da SMTP ein Protokoll ist, das jeder implementieren k ~ n nkönnte , es theoretisch viele verschiedene Implementierungen des Mail-Daemons geben. Es zeigt sich allerdings, dass der auf den meisten Hosts laufende Mail-Daemon von dem urspriitiglich in Berkeley-Unk implementierten Programm sendmail abstammt. Während es sicherlich möglich ist, dass das sendmail-Programm auf der Maschine eines Senders eine SMTPiTCP-Verbindung zum sendmall-~robammauf der Maschine des Empfängers aufbaut, durchquert die Mai1 aber in vielen Fällen einen oder mehrere Mail-Gatauays auf seiner Route vom Sender zum EmpfängerHost. Wie die End-Hosts führen diese Gateways ebenfalls einen sendmil-Prozess aus. Nicht zufäihg werden diese Zwischenknoten »Gatewaysu genannt, denn ihre Aufgabe ist es, E-Mail-Nachrichten zu speichern und weiterzuleiten, ähnlich wie ein »IP-Gatewayu (daswir als ~Routerubezeichnen) IP-Datagramme speichert und weiterleitet. Der einzige Unterschied ist, dass ein Mail-Gateway normalerweise Nachrichten auf Platte zwischenspeichert und bereit ist, die erneute Obertragung an die nächste Maschine mehrere Tage lang zu versuchen, während ein IP-Router Datagramme im Speicher ablegt und die erneute Obertragung höchstens einen Bruchteil einer Sekunde versucht. Abb. 9.6 zeigt einen Zwei-Hop-Pfad vom Sender zum Empfänger.
I
SMTPKCiP
I I
smmp
1
Abb 9.6 Mall-fätewaysspeichern E-MaH-Nachrichten und leiten sie weitec.
W a n q fragt man sich da, sind Mail-Gateways Überhaupt notwendig?W a r n dm Scnder-Host die Nacbticht sieht einfach direkt an &U Empfhger-Hoot Ein G m d ist der, dass der Emphger cfen spezifischen Hosg aaf dem W E-Mail k t , in seine oder ihre Adresse einbeziehenmöchte. Beispielsweise wird dq dem Benutzer [email protected] zugestellte M d zuerst an ein Mil-Gsteway in, der I&rmatikfakdtät der Princleton-Universität gesendet (dh,an den H w cs.princston.edu) und dann über eine zweite SMTBKCP-Verbindung an dre sche Maschine weitergeleitet, an der Bob heute seke E-Maiiliest. Das weierleite& Gateway führt eine Datenbank, die Benutzer auf die Maschine abbiidet, an dm arjk momentan ihre Maiempfangen mochten. Der Sender muss van diesem spzifisck Namen nichts wissen. (Die Liste der Header-Zeilen Reaaived: in der Nachricht gibt h e n Aufschluss über die Mail-Gateways, die eine bestimmte Nachricht ü k q hat.) Ein weirerer G m d ist, dass die Maschine des Empfängers mögli&em@im nicht immer eingeschaltet ist. In diesem Pali bewahrt das Mil-Gateway die NacZzricht auf, bis sie ausgeiieh werden kann. Unabhängig davon, wie viele Mail-Gateways auf dem Pfad liegen, wird zwischen jedem Host eine unabhängige SMTP-Verbindung benum, um 4ie Nachricht n w , zum Empfänger zu befördern. Jede SMTP-Sitzung besteht aus einem Dialog awid e n den beiden Mail-Daemons; einer handek als Ctient und der andere als Seme& Mehrere Nachrichten k i 5 ~ e nin einer Sitzung zwischen den beiden Hosts übertragen. werden. Da RFC 822 ASCII als Basisdarstellung f& Nachrichten dürfqe es nicbt überraschen, dass SMTP ebenfalls auf ~ ~ ~ r i ~ b a sDas i e r bedeum t. &B es für eben M e d e n mit einer Tastatur W c h ist, sich als Srn-Clie~-P1iiogramm ausmgeben SMTP ist am leichtesten anhand eines kleinen Beispiels zu verstehen. Im folgenden handelt es sich um einen Austausch zwischen dem sendenden Host c s e n # m t ~ ~ g und d u dem empfangenden Host cisoo.com. In diesem Fall versucht der BeBob an der Prkkton-Universitäf den Benutzern Alice und Tom bei Cisco e b W ZU senden. Die von CS.priIICet~n.ed~ gesendeten Zeilen sind normal und die von cisa.com gesendeten sind kursiu dargestellt. Um den Dialog &ersichtlicher ZN gestalten, wurden zusätzliche Leerzeilen eingefügt. HEL0
CS.
pri nceton.edu
1. MAI L FROH:
RCPT TO:
RCPT TO:
DATA
B l a h blah blah ..L etc. etc. etc. C.GRLF>&CRLFa
...
Wir sehen, dass Sh4TP eine Sequenz zwischen Client und Server austauscht. Bei jedem Austausch schickt der Client einen Befehl (2.B. HELO, MAIL, RCPT, DATA, QUIT) und der Server antwortet mit einem Code (2.B. 250,550,354,221). Der Server gibt außerdem eine für Menschen lesbare Erklärung des Codes zurück (?.B.No such user here). Bei diesem Beispiel identifiziert der Client zuerst sich selbst beim Server mit dem Befehl HELO. Er gibt seinen Domain-Namen als Argument an. Der Server überprüft, ob dieser Name der von der TCP-Verbindung zu benutzenden IP-Adresse entspricht. Sie werdeh feststellen, dass der Server diese IP-Adresse dem Client wieder zurücksendet. Anschlihd fragt der Client den Serveq ob er bereit ist, fiii zwei verschiedene Benutzer Mai1 anzunehmen. Der Server antwortet für einen mit Ja« und für den anderen mit '~Nein*.Dann sendet der Client die Nachricht, die mit einer Zeile endet, die nur einen einzeinen Punkt (».U) enthält. Schließlich beendet der Client die Verbindung. Selbstverständlich gibt es viele weitere Befehle und Rückgabecodes. D u Server kann beispielsweise den RCPT-Befehl eines Clients mit einem 251-Code beantworten, was bedeutet, dass der Benutzer auf diesem Host keine Mailbox hat, dass der Server aber verspricht, die Nachricht an einen anderen Mail-Daemon weiterzuleiten. Mit anderen Worten: Der Host fungiert als Mail-Gateway. Als weiteres Beispiel kann der Client eine VRFY-Operation ausgeben, um die E-Mail-Adresse eines Benutzers zu überprüfen, ohne jedoch tatsächlich eine Nachricht an ihn zu senden. Das einzige, was uns noch interessiert, sind die Argumente für die Operationen MAlL und RCPT, 2.B. FROM: bzw. TO: . Sie ähneln 822-Header-Feldern und sind es in gewissem Sinn auch. Was geschieht nun tatsächlich? Der Mail-Daemon analysiert die Nachricht, um die für die Ausführung von S M T P benötigten Informationen zu extrahieren. Die herausgezogenen Informationen bilden einen Umschlag (Envelope) für die Nachricht. Der SMTP-Client benutzt diesen U m d a g , um seihen Austausch mit dem SMTP-Server zu parametrisieren. Hier ein historischer Hinweis: Die Beliebtheit von sendmail ist darauf zurückzuführen, dass keiner diese Nachrichten-Analysefunktion implementieren wollte. Wahrend die heutigen E-Mail-Adressen recht manierlich aussehen (2.B. [email protected]),war das früher allerdings nicht immer der Fall. Zu einer Zeit, als noch nicht jeder an das Internet angeschlossen war, waren E-Mail-Adressen in der Form user%host@site!ner~hbar nicht unüblich.
.
NLaU-Reader Der letzte Schritt besteht für den Benutzer darin, seine Nachrichten tatsächlich von der Mailbox zu holen, sie zu Iesen, sie zu beantworten, und möglicherweise ehe Kopie für künftige Zwecke zu speichern. Der Benutzer führt all diese Aktionen aus, indem er mit einem Mail-Reader interagiert. In vielen Fällen handeh es sich bei diesem Reader lediglich um ein Programm, das auf dem gleichen Rechner läuft, auf dem die Mailbox des Benutzers residiert. In diesem Fall liest er einfach aus der Datei und schreibt in die Datei, die die Mailbox implementiert. In anderen Fällen greift d u Benutzer auf seine Mailbox von einem entfernten Rechner aus zu, wobei er wieder ein anderes Protokoll, z. B. das Post Office Protocol (POP) oder das intemet M=sage Access Protocol (W), benutzt. Die Behandlung der Benutzerschnittstelle d a Mail-Readers geht über Zweck und Umfang dieses Buchs hinaus, es liegt aber mit Gewissheit in unserem Rahmen, über das Zugangsprotokoll zu sprechen. Wir betrachten insbesondere IMAP. IMAP ist auf vielerlei Art mit SMTP vergleichbar. Es ist ein Client/Server-Protokoll, das auf TCP aufsetzt, wobei der Cbent (der auf dem Desktop-Rechner des Benutzers läuft) Befehle in der Form von ASCII-Textzeilen, die mit
--
Beide Seiten beeuden Verbiodun (1)Verbindung ohne Vorauthentifizierung (OK-Begnißung) (2)Vorauthentifizierte Verbindung (PREAUTH-Wung) (3)Abgewiesene Verbindung (BYE-Beg&ung) (4) Erfolgreiches LOGIN- oder AUTHENITCATE-Kommando (5)Erfolgreiches SELECT-oder EXAMINE-Kommando (6) CLOSE-Kommando oder fehlgdagenes SELECT- oder EXAMNIE-Kommando
(7) LOGOUT-Kommando, Server-Shutdown oder Verbindung bandet
weiler. Dies bedeutet, &=.der Md-Server des Benutzers tatsäeblich das erste MauGateway ist, das auf dem Pfad vom Desktop-Rechner zur Mailbox des Eiq&@m überquert wird.
9.2.2 DasWarld Wlde Web (WTTP) Das World Wide Web ist so erfolgreich und hat derart vielen Menschen das Internet zugänghch gemacht, dass es m a n c h d als Synonym des Inteniet betrachtet wird. W e i c b ist, sich das Web d s Reihe kaoperierender Clients und Server vorznstellen, die a b die gleiche Sprache sprechen: HTlrP. Die meisten Leute interagieren mit dem Web über ein grafisches Client-Programm, den Webhrowser, wie beispielsweise
Netscape oder Internet Explore~Abb. 9.8 zeigt den Netscape-Browser mit einer Webseite eines Pojektes mit dem Namen PlanetLab.
Pa-,*-=
d===h-
PLANETLAB
Y/ Welcome to the PlanetLab web&
Je& (U-
W & B m m Bat eine WOQ die es dem bumcx ermögtieht, eine tJRL
R LoCptorJ zu Öfhca. W* art von ObjcrStUen Üin Web. Sje sehen wie hlgt aus:
@mcSeaW-
w*-.-nu0xm Aktiviert man biese üRL, 6ffnctder W+eii&e TCP-Vtrbia* tarn Web e Masche ~ namw www.w.v.edu;.& & Dsbei imdaMmi 3u6
'semet auf d
d z ~ s f e a n . ~ i c m e ~ ~ s t e i m i m W e b ~ ~ i t Q a r
a r a d e m Au&- oind . t V S& mthaiwa ferner LEUS, die aud weiterePattSen z c i p . Der Web-Brohebt di- URLs aufhstkmte Ärt hem sodass man sie erkennen und aktivieren kann. Diese eingebetteten URLs ne¿nnt man Hypetaext Links. Wenn S k Ihren Web-Bmww auffordern, eine dieer eingebetteten URLs zu tikhen (z.& r E d Zeipp und K15&6n auf etne URL mit d_er Maus), Uffne .ereine neuc Verbindung, ruft eine neue Datei ab und zeigt sie an. Auf diese Weise ist es sehr eiihch, von einer hila.sefilne a d eine andere hn Netzwerk mt s m g e n , d.h„ man navigiert durch die Links und 1- sich unterschiedliche kformationeai anzeigen. Wenn Sie eine Seite zur Anzeige a 4 e liest~ Ihr Browwr (der Climt) die Seite mittels HTI'P über TCP vom Server ein. Wie S m ist HTT? ein textorientiertes Promkofl. Jede HTTP-Nachricht hat generell die Form START-LINE
wobei &aniage-Return LineFeedu bedeutet. Die erste Zeile (S~ARTYNE) gibt an, ob es sich uai.ehe Adnqp oder htwortpachincht handelt. Sie identiaziea die a i 2 % m d e=e&2m&-Prdzedma tim Fall einer Anlragenachricht) oder dea »Jratm* der M a i e [hF d ein& Amwo~~achnchr). Die nächsten Zeilen s&ifizieren verschiedene Optionen und Parameter, weldne die Anfrage oder Antwort qdfkieren. Es gibt keine d e r mehrere dieser MESSAGE-HWER-Zeilea; sie werden durch eine Leeaeeile beendet, die jeweils wie eine Header-Zeile in einer E-h@iiNachricht aussieht. HTTP defiaiert viele mögliche Header-Types, von denen einige tu W a g e - , andore zu A x m m u c h t e n uad wider andere zu den im Nachriditeninimpf h&rdertem Daten gehören, W u führen hier aber nicht alle Hader-TF, m n h nur einige qrBmdpc Beispiele auf. Im Anschluss an die Leeirceile fuls der Inhalt der aegefoodemn WaGhnchr (MESSAGE-BODY). Dieser Teil der Nachricht ist bei Anfragenac-en normalerweise leer.
m w m d w I>ie erste Seile einer mAnfragenacbri&t
spedfhiert drei Dinge: die durchzufübzende Operation7die W&Bage, auf w e b die Operation a d e n ist, und die benutzte I-FITF-Version, Obwahl H2TP viele m ö g W Anfmgeopeitationen definiert, darunter »writea-Operationen, mit denen Web-Page auf einem Server beteitgesteflt werden können,sind die beiden häufigsten Operationen GET (hole die spezifizierte Web-Page) und HEAD (hole Statusinfonnationen uber die spezifizierte Web-Page). GET wird benutzt, wenn der Browser eine Web-Page abrufen und m i gen möchte. HEAD wird verwendet, um die Gültigkeit eines Hyprtext-Link ni prüfen odw nach.zuseh ab eine bestimmte Seite seit dem letztea Wesen in den Btowser geändert wurde. In Tabelle 9.1 sind alle verfügbaren Operationen aufgeführt.
-
Operation
I
-
OPTIQNS
I I
,l:n
Beschreibung Anfrage von Informationenü
Abnd des in der URL bazeichneten DokumEs
AbNf von Wtainformatbnen Liber das in d a URL bezeichnete Dokument POST
Ausgabe von Informationen(zB. Annotation) an einen Server
Pur
Speichern des Dokuments unter der spezifizierten URL
DELETE
Löschen der spezifizierten URL
TRACE
Schleife zur Anfragenachridit
CONNECT
Für die Verwendung durch Proxies
Beispielsweise besagt die START-LINE GET http://www.cs .princeton.edu/index.html
HTTP/l. 1
dass der Client vom Server auf Host www.cs.pr2nceto(dedu die Ausgabe der Sei%
namens index.htm1 anfordert. In diesem Beispiel wird eine ubsslarte Um b e n u ~ . Daneben ist auch eine relative mit der Spezifikation des Host-Namens in einer der MESSAGE-HEADER-Zeilen möglich, z.B.: GET index.htm1 HTTP/1.1 Host : wwh. CS. p r i nceton. edu
--,
Hier ist Host eines der möglichen MESSAGE-HEADER-Felder. Interessant ist vm allem If-Modilied-Since, weil es dem Client eine Möglichkeit bietet, eine bedingte Anfrage fiir eine Webseite zu stellen, Der Server gibt die Seite nur aus, wenn sie seit dem in diese Header-Zeile spezifhierten Datum geändert wurde. Antwortnachrichten Wie Anfrage- beginnen Antwortnachrichten mit einer einzigen START-LINE. In ifib sem F& spezifiziert die Zeile die benutzte H'ITF'-Version, einen aus drei Ziffm bestehenden Code, der anzeigt, ob die Anfrage erfolgreich war, und eine Texdwm, die den Grund für die Antwort angibt. Beispielsweise besagt folgende START-LlNE HTTP/l. 1 202 Accepted
dass der Server die Anfrage erfolgreich bedienen konnte, während HTTP/l. 1 404 Not Found
bedeutet, dass er die Seite nicht gefunden hat und folglich die Anfrage nicht beantworten konnte. Es gibt fünf allgemeine Typen von Antwortcodes; die erste Ziffef des Codes bezeichnet den Typ. Die fünf Codetypen sind in Tabelle 9.2 aufgeführt.
lxx
Informativ
Anfrage erhaken, Prozess wird foiZgeMhrt
a.
Ehig
Aküon &$greich srnpfqpn, wmbndm Lind akzeptiert
3>0(
RA-
Wehre Mion erforderlich, um die Anfrage voiiständkg zu beantworten
4xx
CUent-Fahier
Anfmge rrWd4tt fehierhaite Syntax d e r kann nicht etiül%
werden 5xx
SemY-Fehler
,
Server hat beim Ausführen einer scheinbar gllltigen Anfmge einen Fehlerve~rsaaht
WmIk 9.2: fünf Typen von HTTP-Ergebniscodes
Wie Anfrage- können auch Antwortnachrichten eine o d q mehrere MESSAGE-HEADER-Seilen enthalten. Diese Zeilen geben zusätzliche Informationen an den Client zurück. Die Header-Zeile Location spezifiziert beispielsweise, dass die angeforderte URL an einem anderen Standort verfügbar ist. Wurde z.B. die WebPage der Informatikfakultät an der Princeton-Universität von http:llwww.cs.prinoeton.eduAndex.htrnl nach http~/www.princeton.edu/cdindex.htmlverschoben, antwortet der Server an der ursprünglichen Adresse vielleicht wie folgt: Moved Permanent1y Lacati on: http://www.pri nceton .edu/cs/i ndex. html
HTTP/l. 1 301
Im Normalfall enthält die Antwortnachricht auch die angeforderte Seite. Dabei handelt es sich um ein HTML-Dokument, das aiierdings in MIME (siehe Abschnitt 9.2.1) kodiert ist, weil es außer Text andere Datentypen (2.B. ein GIF-Bild)enthalten kann. Bestimmte MESSAGEJEADER-Zeilen zeigen Attribute für den Seiteninhalt an, darunter Content-Length (Anzahl von Bytes im Malt), Expires (Datum, an dem der Inhalt als überholt gilt) und Last-Modified (Datum, an dem der Inhalt auf dem Server zuletzt geändert wurde). TCP-Verbindungen Bei der ersten Version von HTTP (1.0) wurde für jedes vom Server abgerufene Datenelement eine getrennte TCP-Verbindung aufgebaut. Man kann sich leicht vorstellen, dass es sich dabei um einen sehr ineffizienten Mechanismus handelte: Zwischen Client und Server mussten Nachrichten für den Verbindungsauf- und -abbau ausgetauscht werden, auch wenn der Client vielleicht nicht mehr wollte, als die Aktualität einer bestimmten Seite zu prüfen. Für den Abruf einer Seite, die Text und ein Dutzend Icons oder andere kleine Grafiken enthielt, mussten 13 getrennte TCPVerbindungen auf- und abgebaut werden. Die wichtigste Verbesserung in der letzten HTi'P-Version (1.1)ist die Unterstützung persistenter Vwbindungen.Das heißt, dass Client und Server mehrere Anfrageund Anrwortnachrichten über ein und dieselbe TCP-Verbindung austauschen können. Persistente Verbindungen weisen zwei entscheidende Vorteile auf. Erstens wird
633)PdMwduqm - .
b:@mhead beim Verbindungsmfbau red* WS, einersei&zu k m %mst uad l i i b m w k d d w r 'ftZ@*b dmelkrer A u q p b e ~ b ' B e n u t & raha.~ Z l w e ' 1 t ~ ' ~ o n i e r t
'
f%matlm*hw a i . -weil &il C h t 1R(Eh$iLlf'd An TcP-Vwhdq b, Das lief@d m d m ES Seite die Slow-Sart-Pha8e zu durchlaufen. PersistenteiKerbaab&ctnfades a b der Client noch der kmer nstwendigmeise we&, Verbindung d b g&alten werden muss. Daa,is@für tisch, weil er mögikherweise VwIwidmgcn ftir g&&et hat. Als Uisung muss beim k e r ein bin$m schließt, wem ü SM C h n t und Smgir müssen au sich da& enrsehieden hat, die Signal verwehden, dass sie a wissen aus einem früheren KaPi'lel,dass beide miisseii, damit sa vollstbdig b a d e t werden kann.)
Cadiing
V
Eina der aktivsten entinauiemQ&e teile. Aus Sicht des Clients rufen werden kiann, vieI schneller angezeigt, al . ab&h arerdm mtrss. Atis Sicht d a Semrs reduzle-ru si& die ,$elaahmg,wbt$ eine aus einan Cache bedient werdea kann. ' ' Cdin&kmn an viden am&Ecdaen Sklien hpiernenthxt wmden. Der km: sct 6ine Benutzers k ~beispie1weise . die Metzt'abgektifmen Seiten Ern Ca&$ abIe'gen und von dort wiedqr -igen, wenn dcr Benutzw die gleiche Sitie Oain~& & r d ~ 1Ws ~ weiteres BeiipieI hhn ein Sjtantkt e i h tinxi&n simükrgden& Ca& t h e s e i u a , Dadmch erhalten Benutzer einen %&, ~ msieiSeim fen, die zuvor von anderen Benu~ernherunterst1aden wurden. Näher aa dex ,M$* des btenid kann ein ISP Seiten in einem Lache aballen. Man bmehte, da@&Bi&=E der dite im zweit&-Falt höchsi-BckInoh when, a u F d e r A k j e b e & Si'ten!CI& Site in dt&m Cwhe awbgt d a i und k e n IBromr &tspmA-$ i t ~ n f i g w h mk h m , um $ich dr& mit dem Cahing-Hast n t t v m K i . Dieiei Km- W auch BQ* gerisnnt. hn Gegensatz &U .aris:n Ci Si- die sich B& &R fWwbhidm, wahpgc:h&ach nicht, dass & @P gitm h ehern Cache v ~ h & . B ga&deWfl~ekdi#l& &&a3 WlTPd&hgen, caie vm vddtiedefita 5 3 eh&~ hen, d& 'eiaieri -ten I S P - R O ~0ieBPtz. ~ ~ ~ IXWH R~22lBrkann &ie &genachdcht und die UlRL der angefo~dwtmM e antwliea. Bohdet sich &E Mte'irii Ca&$ gibt er sie von dort aus. An&dBleimt er' & m ' m k mwehr d h k h t e t die mn der arid- a;Ichtmg U f d - hmam. Kamm & Amwoii vbrki, &ehm der Rrßntereine K@ie in der H&nibn&, Baw er 6 m&$eherweise &r d e Aus&htuhg eh& kuinhigen Arnfsage'&radwh kam.
~nnag
.
,
.
Ungeachtet dessen, ob Webseiten iti einem Cache abgelegt werden, ist das Caching von Wheiten so wichtig, dass im H"iTP-Design bie Vereinfachung dieser Aufgabe berücksichtigt wu~de.Der Tfick ist, dass der Cache s i c h e l l e n muss, dass er aicht mit einer veralteten Version der Seite antworeet. Der Server weist jeder Seite, die er an den Client (oder einen mischen S e m uad Client liegenden Cache) zurücksendet, (im Header-Feld Expires) ein A b l a u f h zu. Der Cache merkt sich rhes h t u m und weg, dass er die Seite nicht d e s Mal, wenn sie angefordert wird, nachpriifen mws, bis dieses Ablaufdatum überschritten ist. Nach b m Datum (oda wenn dieses Header-Feld nicht gesetzt ist) kann der Cache die HEAD- oder die bedingte GET-Operation (Gm mit der Header-Zede If-hllodmed-Since) benutzen und prüfen, ob es sich um die neuKopie der Seite handelt. Aiigeneiner ausgedrückt, gibt es eine Reihe von *Cache-Richtlinien*, die von allen Caching-Mechanismen entlang der AnfragdAntwort-Kette beachtet werden müssen. Diese Richtlinien geben vor, ab und wie lange ein Dokument in einem Cache abgesteilt werden kann, wie neu das Dokument sein muss usw.
9.2.3 Netmerkmanagement(SNMP) Ein Netzwerk ist ein komplexes System, sowohl hinsichtlich du Anzahl a n g e d h -er Knoten ais auch der Protokoile, die auf jedem Knoten ausgeführt &rden können. Auch wenn man seine Besorgnis auf die Knoten einer einzelnen administrativen Domain, z.B. einen Campus, bedränkt, müssen mwcherweise Dutzende von Routern und Hunderte oder gar Tausende von Hosts verwaltet werde& Werui man an alle Zustände denkt, die auf diesen Knoten gepflegt und manipuliert werden, 2.B. Adressübersetzungstabellen, Routing-Tabellen, TCP-Verbindungszustand usw., kann man sich den dabei anfallenden riesigen Verwaltungsaufwand Ieicht vorstellen. Jk i ist natürlich wünschenswert, den Zustand der verschiedenen Protokolle auf umerschiedlichen Knoten zu kennen. So möchte man beispieisweise die Anzahi abgebrochener Reassemblimen von P-Datagrammen überwachen, um festzustellen, ob der Timeout, der teilweise assemblierte Datagramme beseitigt, berichtigt werden muss. Als weiteres Beispiel möchte man die Last auf verschiedenen Knoten verfolgen (2.B. die Anzahl der gesendeten oder empfangenen Pakete), um zu ermitteln, ob weitere Router oder Verbindungsleitungen an das Netzwerk angeschiossen werden müssen. Selbstverstaadlich muss man auch auf ausgefallene Hardware und fehlerhaftes Verhalten der Software achten. Was wir soeben beschrieben haben, ist das Problem des Netzwerkmanagements, eine Angelegenheit, die sich durch die gesamte Netzwerkarchiteknu zieht. Da die zu verwaltenden Knoten verteilt sind, können wir als einzige praktische Möglichkeit nur das Netzwerk verwenden, um das Netzwerk zu verwalten. Das bedeutet, dass wir ein Protokoll brauchen, um unterschiedliche Zustandsinformatianen mit den verschiedenen Netzwerkknoten auszutauschen. Das am häufigsten benutzte Protokoll 2Ür diesen Zweck ist das Simple Netsvork Management Protocol (SNMP). SNMP ist im Wesentlichen ein speiielles Anfragelhtwort-Protokoll, das zwei Arten von Anf-genacluichten unterstützt: GET und SET. Mit GET wird der Status
s
e
o
1
9
h
~
eines Knotens abgerufen und mit SET der Status eines k e n s gesp unterstützt noch eine dritte Operation GET-NM, die weiter mten der folgenden Diskussion konzentrieren wir uns auf die Gm-Operation, weil sie @ -, häufigsten verwendet wird. SNMP wird auf nahe liegende Weise benutzt. Ein System giert mit einem Ciient-Pragi.amm, das Informationen über das Netzwerk Dimes Client-Programm weist normalerweise mchr oder weniger die gleiche Rolle wie ein Webbestimmte Informationen aus, die er oder sie ansehen' Programm SNMP für die Anfrage dieser Informationen (SNMPwird oberhalb von UDP ausgeführt.) Ein S ten läuft, nimmt die Anfrage entgegen, sucht die angeforderten hbrmationen 4 gibt sie dem Client-Programm zurück, das sie für den Benutzer anzeigt. Bei diesem eigentlich einfachen Szenario gibt es nur eine Komplikation: Wie gib . der Ciient genau an, welche Informationen er abrufen möchte, und wie weii3 der Smvei; weiche Variable er irn Speicher lesen muss, um die Anfrage zu bedienen? Die * Antwort lautet, dass SNMP von einer Begleitspezifikatbn abhängt, die ais iihmzgfi ment Information Base (MIB)bezeichnet wird. MIB definiert die spezifischen Informationen die MIB-Variablen die man von eine Die derzeitige MIB-Version MIB-I1 organisiect Variablen in 10 u n t e r s c h i e a , Gmppen. Sie werden erkennen, dass fast alle Gruppen einem der in diesem Buch besthriebenen Protokolle entsprechen, sodass Ihnen fast aile pro Gruppe definierten Variablen bekannt vorkommen. Nachfolgend einige Beispiele:
.
-
-
Systemt '~ll~emeine Parameter des Systems (Knotens) als Ganzes und Angabe, wo sich der Knoten befindet, wie lange er schon läuft und Name des Systems. Interfaces: Informationen über aile Netzwerk-Interfaces (Adapter), die an diesen Knoten angeschlossen sind, 2.B. Hardwareadresse jedes Interface und wie viele Pakete über jedes Interface gesendet und empfangen wurden.
über ARP (Address Resolution Protocol), insbesondere über den Inhalt der Adressübersetzungstabelle.
iAdressübersetzung: Informationen
I IP: Variablen bezüglich IP, darunter Routing-Tabelle, Anzahl der erfolgreich weitergeleiteten D a m m e und Statistiken über die Datagramm-Ressemblierung; des Weiteren wird gezählt; wie oft IP ein Datagramm aus dem einen oder anderen Grund verwirft. iTCP:
Informationen über TCP-Verbindungen, z.B. Anzahl passiver und aktiver open-Oerationen, Reset-Anzahl. Tieout-Anzahl, Einstellungen des DefaultT i e o u t usw. Infarmationen über den Zustand vor einer Verbindung bleiben nur über die Dauer der aktiven Verbindung erhalten.
B
UDP: Informationen über UDP-Verk* und empfangenen UDP-Datagramme.
darunter Gesamtzahl der gesendeten
Darüber hinaus @bt es Gruppen für I W , EGP und SNMP selbst. Die 10. Gruppe wird von v d h Medien benutzt. Wir kehren zu der Frage nttndr, wie der Client angibt, welche Mormatisnen er vw einem Knoten abrufen möchte. Mit ciiier Liste der MIB-Variablen haben wir die M b e Sc3Jacbt schon gear~menEs . bleiben noch zwei ProMeme. Erstens bientirigen wir eine gefEaue Syntax, mit deren Hilfe dcr a e n t die a b d & n h9IB-Vdrtbien beschreibt. Zweitem brauchen wir eine genaue D d u n g fiir die vom Server zuräckgqebearen Werte; W e Probleme lösen wir durch Verwendung von ASN.1. W u beginnen mit dem zweiten Problem. Wie wir aus Kapitel 7 wissen, definiert MN,l/BEB eine bwsteliung fiir verschiedene D a t e w n , 2.B. Chmahlen. MI8 &m d a Typ j&r Wanabfen und benuat dann ASN.l/BER, um den in der Variabien enWert zu kodieren, wäluend sie im Netzwerk übertragen wird. Wg, das erste Problem anklangt, definiert ASN.l ebenfalls ein Objektidentifiziemqpdicma. Dieses y -Iestm wurde in Kapid 7 nicht bescfyneben. MD3 verwendet es, ma jeder MB-Variablen eben global eindeutigeni-Bezeichner ~w~ Vergleichbar mit ~omain-~'amen werden diese Bezeichner in .P&mtationw geschrieben. Beipielsweise ist 1.3.6.1.2.1.4.3 die eindeutige ASN.1BQeichng fiir die P - s p e z M e MIBVariabk IplnReceives. Diese Variable erfasst die anzail der W-Datagmmme, die vom betreffenden Knoten empfangen wurden. Bei diesem Beispiel identifiziert das Präfix 1.3.6.12.1 die MIB-Dateribank (maq erinnere sich, dass Objekt-IDa in ASN.1 für alle möglichen Objekte der Welt gelten), die Zahl 4 entspricht der IP-Cnippe und die letzte Zahl 3 bezeichnet die dritte Variable in dieser Gruppe. Netzwerkmanagemeat funktioniert also wie folgt: Der SNMP-Ciient stellt die ASN.l-Bezeichnung für die MIB-Variable in die Anfragenachricht und sendet die Nachricht an den Serve~Der Server bil&t diesen Bezeichnet auf eine lokale Variable ab (2.B. auf eine Speicherstelle, wo der wert dieser Variablen gespeichert ist), liest den in der Variablen enthaltenen aheUen Wert und benutzt anschlief3end ASN.1/ BE& iun den Wert zu kodieren, den er an den Client zurücksendet. Damit bleibt noch die Kläning eines letzten Details. Vi& MIB-Variablen sind entweder Tabellen d e r Stsdcturen. Solche zusammengesetzten Variablen erklären den Grund für die SNMP-Operation Gff-NEXT. Bei Anwendung auf eine bestimmte Variablen-ID gibt dKse Operation den Wert dieser Variablen sowie die ID der nfichsten Variablen zurück, beispielsweise das nächste Element in der Tabelle oder das nächste Feld in der Struktur. Dies unterstützt den Client beim ~Durchhufenuder Elemente einer Tabelle oder Struknit
9.3
Multimedia-Anwendungen
Genauso wie die traditionellen, im vorherigen Abschnitt beschriebenen Anwendungen benötigen Multimedia-Anwendungen wie Audio- und Videokonferenzen Protokolle auf der Anwendungsschicht. Ein Großteil der ersten Erfahrungen mit der Entwicklung von Protokollen für Multimedia-Anwendungen wurde aus den ~MBone-
ffwls~gewonnen. Anwendungen wie vat nnd vic, Q# fiir den h t z mit entwickelt wurden, nutzen IP-Multicast, um M e w W & e = n . ea esn@& c h . Anfangs hatte jede Anwcnd~gihr eigen- Prot~ksli(od*r ihre Pm&-. Bald wurde aber e r b t , dass viele Mdtimedig-Anwendungen gemeinsameAnkm deningen haben, Dies führte letztendiich zur ~ k l y n g ~ n ~n iev es ~ ~ t l i m - W k&
fijr
die Verwendung durch UiniW-Aaavendwn8en.
.
(4
Wir haben mit RSVP (sieheAbscbitt 6.52) bereits ein Ptotdw Waches nützlich für Multimedia-AnWtMtuagm irw. RSWP kam werden, bes-te Resoirrcen im Netzwerk anztzisodstss tine gewbdkihrd D
~
~
t (QoS) ä teiner Applikation zur VedQuug @t
werden
+
W
r
Zusätzlich zu &wem Q o S - S i p a k i e ~ n g s p d o I f ~ f ~v~i ge ehnM Anwendungen auch spezielle TtansgortprotakoUe, dii andem E i g e m w h b n d besitzen und mehr Fwhionalität bieten 4 s UDP. Das Protokdl, m l c k & Anfor-rn entwickelt wurde, nennt sich & h t m i t - T ~ ~ & 1 1r( time Zfgnsport Protoeol - RTP) und wud im Folgenden gcnnuer b c s c m
Eine dritte Klasse von Prordrolien, die von vielen MdtimEdia-ApptiLaa Wrigt wird, ist ein so genanntes Sitzrcngskwtroli-Protokoll [Seauon:C o n d B~CSCYI), N W I I Sie z.& an, Sie m ö & m IP-basi mt führen. Wir brauchen dann einen Mcch eingehenden Anruf Mformiert, etwa indem m e Geriit geschickt wird, die dieses dazu veranlasst zu khgela W w m6eken. & Eigenschaften wie Rufweiterhining, Dr&r-KonberePtz mC ert&&&cn,'Sk [W sion initiation Protocol)und Ii.323 sind Beispiele für Protokolie, die sich um die !3b nuigskontrolle kümmern. Sie werden in Abschnitt 9.32 besprochen.
9.3.1 Real-time Transport Pmtocol (RTP)
Man wundert sich vielieicht, warum ein Protokoli mit ~Transport*in der nung in einem Kapitel über Themen der An-&-hicht auftaucht, Det Gaqd &&r ist, dass RTP umfangreiche Funktionaiirät spenfigchfür Md--An* dun= &L. Aulkrdem lädt es normalerweise oberhalb eines &r in ~ a p i a i i h b d w k h ~ i e nPrototdie der Transporz&hicht, UDP, das einige a ~ w c n d ~ ~ t k hängige Funklionen bereitsteilt, die man normalerweise mit einem T m q e k d in Verbindung bringt. RTP wird dennoch als Tramsportprotdroll lmzeidwsr, weil e~ gemeinsame Ende-zu-EndeFdeiom fiir eine Reihe von hweaduqpa bereitsteh. (Die meisten Protokolle der Anwendmgsshi&t wie HTCP und SM%# werden spezifisch für eine bestimmte Anwendung benutzt.) Dies erklärt die Schwierigkeit, praktische Protokolle in einem srraffen Schichtenmodeli unterzubriagen, Bevor wir RTP im Detail bcscbteiheii, kr&htm wir ehige An7iiteildungenyW die es sich eignet. Multimedia-Anwendungen werdeiirmeist in zwei Klassen aufgeteilt: Kmfmcrnz- und S t m m i f i g - M u n g e n . .Ein be-~ Beispiel der e ~ s t m Klzme isk vat, das häufig in Netme&en mit IP-Mukicast hutztie AudiobT d . Das Coaml-Pancl e h r typhchm vat-Konfetenz ist in Abb. 9.9 dargcstdk.
9.3 Multimedia-Anwendungen
I
663
Eine weitere Konferenzanwendung ist vic, das in Kapitel 1 beschriebene Videokonferenz-Tool (siehe Abb. 1.1).
Ciirist~pherd Desktop Wife Ellery D. Coleinari Enefesdi Bho Geoge Ptiillil Gil Travish C] Hiroaki IKEDi Jay Dombmu Mich
1
Abb. 9.9: User-Interface einer vat-Audiokonferenz
I 1
Streaming-Anwendungen geben normalerweise Audio- oder Videoströme von einem Server auf einem Client aus; ein bekanntes kommerzielles Produkt dieser Art ist Real Audio. Aufgrund der fehlenden menschlichen Interaktion stellen solche Anwendungen schwierige Anforderungen an die zu Grunde liegenden Protokolle. Inzwischen dürfte klar sein, dass Entwickler eines Transportprotokolls für Multimedia-Anwendungen bei der Definition der Anforderungen eine große Herausforderung zu bewältigen haben, um das Protokoll ausreichend breitgefächert auszulegen, damit es die Bedürfnisse vieler verschiedener Anwendungen erfüllt. Sie müssen auch auf die Interaktionen zwischen verschiedenen Anwendungen achten, beispielsweise auf die Synchronisation von Audio- und Videoströmen. Welche Auswirkungen diese Überlegungen auf das RTP-Design hatten, wird später beschrieben. Ein Großteil von RTP stammt eigentlich aus dem Anwendungsprotokoll, das ursprünglich in vat integriert war. Neuere Versionen von vat (und viele andere Anwendungen) laufen über RTP. RTP kann auf viele Protokolle der unteren Schichten aufsetzen, läuft normalerweise aber über UDP. Dies führt zu dem in Abb. 9.10 dargestellten Protokoll-Stack.
Anwendung
kLsa9.18: R&okoii-SB&
AIr MultimedEacAnvmdung$mmit WTR
I I Z ~
Subneiz
Anfwderungen Gdditzlieh wird von einem wniverseiien Md-
nicht gut, sich auf eine einzige Protokd eine M6giichkeit ber kann, welche Kdienaethode Details verhandeln, bis sich die Motbode g W @ haben. Wie fiir Audio gibt es auch fur Video viele verschiedene Kodiedoden. W n
;
;
viel zu spät ankommt, um noch brauchbar zu sein. Folglich muss die Anwendung in der Lage sein, mit fehlenden Paketen fertigzuwerden, wobei der erste Schritt dazu die Feststellung ist, dass sie tatsächlich fehlen. Eine Videoanwendung, die MPEGKodierung verwendet, muss beispielsweise verschiedene Aktionen einleiten, wenn ein Paket verlorengeht, je nachdem, ob das Paket einen I-, B- oder P-Frame enthielt. Da Multimedia-Anwendungen im Allgemeinen nicht über TCP laufen, fehlen ihnen auch die ~ e r h n a l evon TCP zur Überlastvermeidung (die in Abschnitt 6.3 beschrieben wurden). Dennoch sind viele Multimedia-Anwendungen in der Lage, auf Oberlast zu reagieren, z.B. durch Änderung der Parameter des Kodieralgorithmus, um die verbrauchte Bandbreite zu reduzieren. Damit dies funktioniert, muss der Empfänger natürlich den Sender benachrichtigen, dass Verluste vorkommen, sodass der Sender seine Kodierparameter entsprechend berichtigen kann. Eine weitere übliche Funktion von Multimedia-Anwendungen ist das Konzept der Kennzeichnung von Frame-Grenzen. Ein Frame ist in diesem Zusammenhang anwendungsspezifisch. Beispielsweise kann es nützlich sein, eine Videwnwendung darauf hinzuweisen, dass eine bestimmte Reihe von Paketen einem einzelnen Frame .entsprechen. In einer Audioanwendung ist es hilfreich, den Anfang einer mSprechflute - eine Phase intensiver Töne oder gesprochener Wörteq gefolgt von einer stillen Phase - zu kennzeichnen. Der Empfänger kann dann die stillen Phasep zwischen den Sprechfluten identifizieren und sie dazu nutzen, sich an den Wiedqqpbepunkt zurückzubewegen. Dies gnindet auf der Beobachtung, dass eine geringe Verkürzung; oder Verlängerung der Räume zwischen Wörtern für Benutzer nicht wahrnehmbar sind, wahrend eine Verkürzung oder Verlängerung der Wörter selbst nicht nur wahrgenommen, sondern auch als sehr unangenehm empfunden werden. Eine letzte Funktion, mit der wir das Protokoll ausstatten könnten, ist eine gewisse Art der Identifizierung des Senders, die benutzerfreundlicher als eine IPAdresse ist. Tools wie vat und vic können Zeichenketten, 2.B. Joe User (user9domain.com). in ihrem Control-Pa1 anzeigen, sodass das Anwendungsprotokoll die Assoziation einer solchen Zeichenkette mit einem Datenstrom unterstützen sollte. Abgesehen von der Funktionalität, die von unserem Protokoll gefordert wird, stellen wir eine zusätzliche Anforderung fest: Es sollte möglichst effizienten Gebrauch von der Bandbreite machen. Anders ausgedriickt, wollen wir keine Menge zusätzlicher Bits einfühen,,die mit jedem Paket in Form eines langen Headers gesendet werden müssen. Der Grund dafur liegt darin, dass Audiopakete, die häufigste Art multimedialer Daten, eher klein sind, um die für das Ausfüllen mit Samples erforderliche Zeit zu reduzieren. Lange Audiopakete würden auf Grund der Paketerstellung zu einer hohen Latenz führen, was die wahrgenommene Qualität von Konversationen beeinträchtigt. (Wir erinnern uns, dass dies einer der Faktoren bei der Auswabl der Lange von ATM-Zellen war.) Da die Datenpakete selbst kurz sind, würde ein größerer Header bedeuten, dass ein relativ großer Anteil der Leitungsbandbreite von Headern benutzt werden würde, sodass sich die für Nutzdaten verfügbare Kapazität reduziert. In Zusammenhang mit dem RTP-Design werden mehrere Aspekte beschrieben, die durch die Notwendigkeit kurzer Header beeinflusst wurden.
666
1
9 Anwendungen
RTP im Detail Nachdem wir die eher lange Liste der Anforderungen für unser Protokoll für Multimedia auf der Anwendungsschicht betrachtet haben, befassen wir uns mit den Details des Protokolls, das für die Erfüllung dieser Anforderungen spezifiziert wurde. Dieses Protokoll - RTP - wurde von der IETF entwickelt und wird häufig benutzt. Der RTP-Standard definiert eigentlich zwei Protokolle: RTP und RTCP (Real-time Transport Control Protocol). RTP wird für den Austausch von Multimedia-Daten und RTCP für die periodische Übertragung von Steuerinformationen in Zusammenhang mit einem bestimmten Datenfluss benutzt. Bei der Ausführung oberhalb von UDP verwenden der RTP-Datenstrom und der damit zusammenhängende RTCP-Steuerstrom aufeinander folgende Ports der Transportschicht. Die RTP-Daten benutzen eine gerade und die RTCP-Steuerinformationen die nächst hohere (ungerade) Port-Nummer. Da RTP für die Unterstützung einer groRen Palette von Anwendungen aus! wurde, bietet es einen flexiblen Mechanismus, mit dem neue Anwendungen e ckelt werden können, ohne wiederholt das RTP-Protokoll selbst revidieren zu rnusSen. Für jede Anwendungsklasse (z.B. Audio) definiert RTP ein Profil und eines oder mehrere Formate. Das Profil bietet einen Inforrnationsbereich, der ein gemeinsames Verständnis der Felder im RTP-Header für die betreffende Anwendungsklasse sicherstellt (der Header wird weiter unten ausführlich beschrieben). Die Formatspezifikation erklärt, wie die nach dem RTP-Header folgenden Daten zu interpretieren sind. Beispielsweise kann dem RTP-Header einfach eine Sequenz von Bytes folgen, die jeweils ein einzelnes Audio-Sample darstellen, das nach einem definierten Intervall zum vorherigen erfasst wurde. Alternativ kann das Datenformat viel komplexer sein. Ein mit MPEG kodierter Videostrorn würde z.B. eine umfangreichere Struktur voraussetzen, um die verschiedenen Informationstypen darzustellen.
" Das RTP-Design beinhaltet ein Architckturprinzip, das als Application Lette1 Fraiizing (ALT;)hezeiclinet wird. Dieses Prinzip wurde 1990 von Clark und Tenneiihouse als neue Methode zum Entwurf von Protokollen für neu sich abzeichnende Multimedia-Anwendungen entwickelt. Sie erkannten, dass diese ncuen Anwendungen höchstwahrscheinlich mit den bestehende11 Protokollen wie TCI' niclit gut bedient werden können, dass sich andererseits aber auch kein *Allzweckprotokoll~fiir alle Anwendungen dieser Art eignen würde. Tm Kern dieses Prinirips findet sich die Überzeugung, dass eine Anwendung ihre Bedürfnisse am besten versteht. Beispielsweise weiR eine MPEG-Videoanwendung, was \ic bei Frame-Verlust an1 heitcn unternehmen kann, je nachdem, o b der Verluit einen I- oder B-Frame betrifft. Die gleiche Anwendung kann auch am besten beurteilen, wie die Daten für die Übertragung segmentiert werden müssen. Beispielsweise ist es besser, die Daten von verschiedenen Framcs in unterschiedlichen Datagrammen zu senden, damit ein verlorenes Paket nur einen einzelnen, nicht aber zwei Frarnes beeinträchtigt. Aus diesen1 Grund überlässt RTP derart viele Protokolldetails den anwendungsspezifischen Profil- und Formatdokumenten.
v = ~ ) P I X I C C I M IPT
I
Sequenmwnmer
=M
AbR 9.1 1:
Das nTP-Header-Format
S S R C - i * m r (Synohroniseitionsq~le~ C S R G l H z i e r e r (beitragendeQuellen)
Ewetterungs-Heer RTP-NuWaten (Payioad)
Wsader-Format Abb. 9.11 zeigt das in RTP benutzte Header-Format. Die ersten 12 Byte sind immer vorhanden, während die beitragenden Quellen-IDs nur unter bestimmten Ums&den benutzt werden. Nach diesem Header können opti~naleHeader-Erwejterungen folgen, von denen einige unten beschrieben werden. Schliei31ich f~lgendem Header die RTP-Nutzdaten (Payioad) mit dem von der Anwendung festgelegten Format. Dieser Header soll nur die Felder enthalten, die von mögiichst vielen verschiedenen Anwendungen benutzt werden, weil alles, was sich nur für eine spezifische Anwen-. dung eignet, in den ~uuran diese Anwendung gerichteten RTP-Nutzdaten effizienter befördert werden kann. Die ersten beiden Bia bilden die Versions-ID, die in der bei Drucklegung benutzten RTP-Version den Wert 2 enthält. Man mag sich vielleicht wundem, warum die Entwickler des Protokolls 2 Bit für ausreichend hielten, um alle künftigen Versionen von RTP zu berücksichtigen. Dabei ist zu bedenken, dass Bits im RTP-Header ein wertvolles Gut sind. Außerdem dürfte es auf Grund der Verwendung von Profilen i3ir verschiedene Asiwendungen weniger wahrscheinlich sein, dass viele Revisionen des grundlegenden RTP-Protokolls nötig sind. Sollte es sich erweisen, dass eine weitere Version von RTP nach Version 2 notwendig ist, körnte das Header-Format so geändert werden, da@mehr als eine künftige Version möglich wären. Beispielsweise k(innte einem neuen RTP-Meader mit dem Wert 3 im Versionsfeid ein *Subversionc
I
.b -
I
UDP-Hwhr /<rp-~.ader
I
irn UDP-Hieader bföfdarte Länge d-, RiP-Nutzdaten
I
kAbb. 9.1% Avffllllen eines W-Pakets
FOHer
1
r;I
F
FQlbW-
M
,--I #J-,{
Das Erweiterungsbit (X) wird benuttzt, um das Vorhandensein eines Erwei Headers anzuzeigen. Er wird fllr eine spezifische Anwendung dem Haupt-Header. Solche Header werden oelten benutzt, weil mögiich ist, einen nutzdatenspezifischen Header als Teil der Formatdefinition f '& NutzQten für eine bestimmte Anwendung zu definieren. Dem X-Bit foigt ein 4-Bit-Feld, das die Anzahl der *beitragenden QueW!ersw , erfasst, falls solche im Header einbezogen sind. Beitragende Quellen werden wej unten beschrieben. Wir haben oben erwähnt, wie oft eine Frame-Kennzeichnung notwendig W&, kann. Dies wird vom Markerbit (M) bereitjpstelit, das bei.spieLweise zu lBPtgbg einer Sprechfiut gesetzt werden kann. Anddiehnd fo& das 7 Bit groi3e ~ ~ l t z d a * typfeid. Es gibt A h f t über den Typ der itn Paket beförderten Ehe denkbare Verwendung dieses Felds wäre, e h r Anwendua von einer Kodiermethode auf eine andere zu ermöglichen, je &ch ~ o m i a t l a d , über die VerFÜgbarkeit von Ressourcen im Netzwerk oder Rücluneldung iibe~+&b Anwendungsqualität. Der genaue Gebrauch des Markerbits und wird im hwendungspfofl festgelegt. Man beachte, dass der Nutzdattntyp generell nicht als Demruschiüssel k m @ . wird, um Daten an verschiedene Anwendungen (oder an wmhiedene Ströme iand halb einer bestimmten Gnweoidwg$aB. iden Audi~-und V a d e o s m einer VideQr ko&reaz) zu ieiten. Das liegt daran, dass Demultiplexen normalerweise ard* niedrigeren Schicht (2.B. m n UDP,das in Abschnitt 5.1 beschrieben wurde) beseitgef stellt wird. Die beiden Medienstr&me,die RTP benutzen, verwenden n o T also untmdhiedliche ULTP-Pm-Nummern. Die Sequenznummer wird benutzt, damit der Empfinger eines RTP-Suoms & lende oder falsch angeordnete Pakete erkennen kann. Der Sender inkrernentiwt eid *. fach für jedes übertragene Paket den Wert um e h . Im Gegensatz zu Ta, da5 : sowohl Metvmfust {durchN e u ü h g w g ) korrigiert als auch auf einen Ob9rhsthinweis (eventuell durch Reduzierung seiner Fen&wö.Be) reagiert, unterrdm& RTP n i c h ~wenn , es den Verlust eines Pakets erkennt. Es aberlässt die Enwcheid* vrns Im Fall eines verlorenen Pakets u n t u a o m m werden m u q Vaeinueh h Anweadung, weil diese EaWcfmg höchstwahrsch~chanwmdungsabhqj@ ist. Wipidswek entscheidet eine Videoanwendmg bei einem Paketverlust ev&d el.11,den natetzt korrekt empfangenen Frame erneut abiuqiden. Einige hwm&gen bei einem P&etv&t mägi;cherweise k n Kodidaigorithmus, um d a Bandbrei~nbedarfzu reduzieren. Dies i ~aber t keine Funkaoa von RTP. Es wät.c& 3 RTP nidit s&voll, die Entscheidung zu mffm, dass die Senderate verringert M den muss, da die Anwendung dadurch vielleicht unbrauchbar wird.
1 -+I 1
1
Das Feld Timestamp (Zeitstempel)hat die Funktion, dem Empfänger die Mt&lichkeit einzuräumen, bestimmte Samples in den entsprechenden Intervallen abmspielen und verschiedene Medienströme zu synchronisieren. Da je uach Anwendung unterschiedliche Zeitabläufe eingehalten werden müssen, spezifiziert RTP selbst keine Einheiten für die Zeitmessung. Stattdessen fungiert der Zeitsrempel als ZWel; der *tickt«,wobei die Zeit zwischen den Zähleinheiren von der benutzen Kodierung abhkgt. Eine Audioanwendung, die alle 125 ps $ampies von den Daten erfasst, könnte diesen Wert als Taktadösung verwenden. Die Takteinsteilunggehört zu den Details, die im RTP-Profil oder im ~utzdatenformateiner bestimmten Anwendung spezifiziert werden. Der Zeitstempelwert im Paket ist eine Zahl, welche die Zeit darstellt, in der das erste Sample des Pakets erzeugt wurde. Der Zeitstempel zeigt nicht die Tageszeit an. Relevant sind nur die Unterschiede zwischen Zeitstempeln. Wenn das S q l i n g Intervall beispielsweise 125 p ist und das erste Sample im Paket n + 1 10 ms nach dem ersten Sarnple im Paket n eneugt wurde, dann ist die Anzahl der SamplrngInstanzen zwischen diesen beiden Samples Unter der Annahme, dass die Takteinstellung mit dem Sampling-latervall identigch ist, wäre der Zeitstempel in Paket n + 1um 80 größer als in Paket n. In Wirklichkeit wurden auf Grund bestimmter Kompressionstechniken, z.B, Erkennung von stillen Phasen, vielleicht weniger als 80 Samples gesendet. Dennoch erlaubt es der Zeitstempef dem Empfänger, die Samples in der richtigen zeitlichen Beziehungwiedenwgeben, Bei der SynchronisationsqueLle (Feld Synchronization Soum, SSRC) handelt ES sich um eine 32-Bit-Zahl, die eine einzelne Quelle eines RTP-Stroms eindeutig identifiziert. In einer bestimmten Multimedia-Konferenz sucht sich jeder Sender zufliHig eine SSRC aus und soll erwammgsgemaSKonflikte in dem unwahrscheinlichen Fall lhen, dass zwei Quellen den gleichen Wert wählen. Da sich die Quellen-D völlig von der Netzwerk- oder Transportadresse der Qudie unterscheidet, stellt RTP Unabhängigkeit von niederschichtigen Protokoilen'sicher. Außerdem ermoglicht es einem einzelnen Knoten mit mehreren Quellen (2.B. mehreren Kameras), diese QuelIm zu unterscheiden. Wenn ein einzelner Knoten verschiedene Medienströme eneugt @.B. Audio und Video), muss er nicht in jedem Strom die gleiche SSRC angeben, weil in RTCP Mechanismen (die weiter unten beschrieben werden) fiir die Synchronisation zwischen den Medien zur Verfügung stehen. Die beitragende Quelle (Feld Contributing Source, CSRC) wird nur benutzt, wenn mehrere RTP-Ströme durch einen »Mixern:laufen. Ein Mixer kann verwendet werden, um die für eine Konferenz erforderliche Bandbreite zu reduzieren, indem Daten von vielen Quellen empfangen und als einzelner Strom gesendet werden. Die Audioströme mehrerer gleichzeitig& Lautsprecher können LB. kodiert und als einzelner Audiostrom erneut kodiert werden. in diesem Fall listet sich der Mixer selbst als Synehrmisation~quelle~ zusätzlich aber auch die beivagenden Quellen, d.h. ctie SSRCdWerte der Lautsprecher, die m dem fraglichen Paket einen Beitrag geleistet haben.
6llO
1
9 hwadmpn
~protokoM RTCP stellt einen Steuerstrom bereit, der mit einem Anwendung in Verbindung steht. Dieser Steuerstrom bietet drei Haupthnktionm:'
1. R ä d u n e l h g über die Leistung der Anwenduxlg und des Netzwerks. 2. Eine Möglichkeit, verschiedene Medienströme zu korrelieren und zu synchroni'1. sieren, die vom gleichen Sender stammen.
3. Eine Möglichkeit, einen Sender für die Anzeige in einem User-Interface (2.B. deitp, vat-Interface in Abb. 9.9) zu identifizieren. Die erste Funktion kann für ratenadaptive Anwendungen benutzt werden, die auf Grund von Leistungsdaten darüber entscheiden Kompressionsmethode einsetzen sollen, um Oberlast zu verringern, oder ob sie M geringer Last im Netzwerk einen Strom in höherer Quaiität senden solleii. Sie k a d auch für.die Diagnose von Netzwerkproblernen hilfreich sein. Man könnte glauben, dass die zweite Funktioh bereits von der Synchronisations~ quellen-D von RTP bereitgesteiit wird; dies ist nicht der Fall. Wie bereits erw?ihm, haben mehrere Kameras eines einzelnen Knotens möglicherweise unterschiediiche SSRC-Werte. Aui3erdem ist es nicht erforderlich, dass ein Audio- und ein ~ i d e d Strom vom gleichen Knoten die gleiche SSRC benutzen. Da Kollisionen von SSRG Werten vorkommen können, muss der SSRC-Wert. eines Stroms eventuell geändeff werden. Um dieses Problem zu lösen, benutzt RTCP das Konzept eines mkadod: schen Nammu (CNAME), der einem Sender zugewiesen wird, wobei der Send& ; wiederum mit den verschiedenen SSRC-Werten in &zug gesetzt wird, die er vielleicht im Rahmen von RTCF-Mechansimen benutzt. Die einfache Korrelation zweier Ströme ist nur ein Teil des Problems bei dei S$duoMsation mehrerer Medien. Da' die verschiedenen Ströme vielleicht völlig unterschiedliche Zeitvorgaben haben (d.h. mit unterschiedlichen ~akteinsteflmge6 und Ungenauigkeiten bzw. Abweichungen arbei Snäme $enstumiteinahder zu synchronisieren. RTCP löst dieses Problem. RTCF definiert u.a. folgende Pakettypen: '
*
die es aktiven Sendern im Rahmen einer Sitzung e r r n o g k h ~ Senderber*, iobertragtqs- und Empfangsstatistiken zu melden. Esnpfängerberichte fiir den Gebrauch durch Empfängeq die keine Sender shd, um Empfangstatiden zu melden.
U Qwllm&&i,
die CNAMEs und weitere Senderuiformatiomn e n U - .
ten.
Anwendungsspezifische Sreuelrpakete
Diese vm -n RTCP4aketcprpen werden über das nieder-tige ProtokoS1,taamabwUse UDP gewndet, Mebere RTCP-Faltete konnea zu &er PDU des niederschichtigen Prozokolis zusammmgefasst werden. in einer niederschickiges
-
.
PnU miissen sich-, zwei R T C P B b h * : E h &.ein ket und des a n b ein Q u k W i b u n g s p a k e t . Je nadn k von schichtigeil Pr~tdep&mavferlqpn Grö86nbegrenzuqg k 6 e n weitere Pakete eingdmdenwerdea. . k o r wir uns eingehender mir dcm Wt ~ ~ Q CRTCP4Wmts S bleibt ein potenzielles Probkm festzuhalten, dar; mit jedem M t g k d einer Mdtiatsr-Gruppe besteht, das peri* Steuernerkehr sendet. Fa& wir nichrs iwaahmen, um * kann er möglishmise pid Bandbreite verdiesem Sreuerverkeht brauehen. Zn einer Au$iokciukm &beispielsw& meist nkb zueh als zwei d e r drei Sender g l M t i g Audi&n, weil es nicht sinnvoll ist, dass alle &ichzeitig sprechen. Eine solche saziale EinschFänkung b h t aber nicht b i jedem der Stewverkehr s e n k was sich bei einer Konferenz mit Tausenden von Teilnehmern Um dieseg Problem ZU lösen, verfügt RTCP als S& ptoblematiscb'erweistnh. iiba Mechanismen, durch die sich die Teilaehmer binsichdich ihrer BerichtsUufigkeit mit st+ender Anzahl van T e i l n b m eimekäden köaBeo. Diese Regein sind relativ komplex, daa gum&pde Ziel ist dabei aber wie f o l p Schränke den G e s a m d a n g des RTCF-Verkehrs auf einen kleinen Prcgeatsaa (norm&rw&se 5%)des RTP-Damverkehrs ein. Um dieses Ziel zu erreichen, SOUteo die Teilnehmer wissen, wie viel Datenbansbreite benutzt wird (2.3. die fiir die &rtragung dreier Audiostr6me beni5Menge)und die A m d der Teilnehmer kummi Sie erfahren 8en ersten Punkt durch IWsixiittd auBerbalb van RTP (durch ein so ~ ~ t~ Sei t zsu n g s m a n a ~das t ~ am , Ende dieses Abschnitts beschrieben wird) und den zweiten Punkt aus RTC=P-Berichten anderer Teilnehmer. Da RTCP-Berichte in einer sehr niedrigen Rate gesendet.werden können, ist es vielleicht nur mOgiich, eiw: u n g e h Schatmq der aJctudien Teilnehmzu erhalten, was in der Regel abes genug. Adkrdem ist es empfehlenswert, &vm Sendern mehr RTCP-kdbzeite zuzuteile03in der Annahme, dass die meisten Teilnvon ihnetl Berichte sehen möchten, e m um fwnzusteilen, wer sprih. Nachdem eh Te-er f e s t g d t hat, wie viel Bandbreite er mit RTCP-Verkehr verbrauchen kann, beginnter mit der Obergagung pcsiahher Bmicbe bi du en~pmchendenRate*Sender- und Fmpfänger,lxrichteumerscheiden sich nur datin, b s sich in den Sendeberichten zd&che Iriformationen über den Sender befindem. W e Berichenthloen MO-ü b die Daten, die von allen Quellen in.der letzten -Ode empfangenwurden. Bin Senderbericht d t folgende zusätzliche Itdo~matiorpen:
Ehen Zeitstempei mit der aktuellem Tageszeit, wann der Bericht erzeugt wurde. iDen RW-Zeitsmnpef eamprecbend der Zeit,
wann der Bericht erxmgt ww&,
Kumulative Zähiungen von Paketen und Bytes, die der Sender seit ZJeginn der Obemagnng gesendet hat. Die erst= heidai m b o nk6mm benutzt werden, um verschiescneAiladienströmc van des gieichen Qaek m syachrszrisieten, auch wenn diese Strome isi ihren R n -
Patensrrömen unterschifihe Takteinstellungen verwenden, weil sie die Basis B fern, um die Tageszeit in die RTP-Zeitstempel zu koavemeren, fa Sender- und Empfängerberichte end>altm einen Datenblock pro Quelle, dem lmten Bericht gehört wurde. Jeder Block beinhaltet folgende statistiken.& der entsprechenden Quelle: 1 &l.l/
9
r SSRC der Quelle
'0
&teil dei. Datenpakere von dieser Quelle, die seit Obertragung d a Berichts verlorengegangen sind (berechnet durch Vergitidr der h m & l d a fangenen mit der Anzabi der erwarteten Pakete; dieser letzte W m kann aus & RTP-Sequenznummern ermittelt werden) , -,!.J
Gesamtzahl der Pakete, die von dieser Quelle verlorengegangen sind, seit von ihr erstmals gehört hat
:I Die höchste von dieser Quelle empfangene Nummer (erweiterr auf 32 Biic, Jag ..3. das Umlaufen dei. Sequenvlufnmer zu berücksichtigen)
dad@ L ,
i Gachnmer Jitter zwischen einzelnen AnLünften fur die Quelle (berechnet
Vergieich des Abstands, in der empfangene Pakete angekommen sind, mii erwarteten Abstand zum Zeitpunkt der tbertragung) I: ifb r Letzter aktueller Zzeitstempd, der über RTCP für diese Queile empfangen 4 Verzögerung seit dem Empfang des leizten Senderberichts iiber RTCP Wr Quelle
dkf H,
,+
Wie man sich vorstellen kann, erfahren die E m p f i e r dieser Informationen & Menge über den Sitzungszustand. ~nsbesonherekosinen sie sehen, ob andere Erq fiinger von einem Smder eine viel bessere Qualität erbalten, was ein inw weis dpdz sein kann, dass eine Ressourcenreservierung gemacht werden muss, oder Netzwerk ein Problem vorliegt, um das man sich kümmern muss. Wem ein fe%steii~ dass viele Empfinger einen hahen Paketverlust erleiden, entscheidet W& m&g&hcrweise, seine S e n h t e zu reduzieren oder eine K o d i d o d e zu vemm dm. hi& behandelte Aspekt von RTCP ist das QueileDbeschreibungspa& Der 1Ein solches Paket enthält mindestens die SSRC und den CNAME des Sendkanonische Name wird so bergeleitet, dass alle Anwendungen, die Medieaa@&q erzeug- und untet U m d e n synchronisiert werden miissen (%B. ge* erzeugte Audio- und Videoströme vom deichen Benutzer), den gleichen c.NM wäbh, auch wem sie vielteidu uo&edli&e SRC-Werte s&hlen. Da-iU ein Empfänger die MOgiichkeit, den vom $eichen Sender stammenden Mediensm zu identifizieren. Das übliche CNM-Format ist user@host, wobei host der p qualifizierte Domain-Name der sendenden Maschine iss. Eine vom ~enutzer'jddj gestartete Anwendung, die auf der Ma&e ~.csgrinceton.edu18udr, W also die Zeichenkettej d o e ~ c i c a c l r t . c s . ~ ~ . eab d uCNAME benutzen, Die in + ser DiustelIung benutzte gr& variable Bpte-Anzahl würde sich für das i
einer SSRC nicht eignen, weil die SSRC mit jedem Datenpaket gesendet wird und in Echtzeit verarbeitet werden muss. Da CNAMEs mit SSRC-Werten in periodischen RTCP-Nachrichten gebunden werden können, ist ein kompaktes und effizientes Format für die SSRC möglich. In das Quellenbeschreibungspaketkönnen weitere Elemente einbezogen werden, 2.B. der echte Name und die E-Mail-Adresse des Benutzers. Diese Angaben werden für die Anzeige im User-Interface und zur Kontaktierung von Teilnehmern benutzt, sind für den Betrieb von RTP aber weniger wichtig als der CNAME.
9.3.2 Session Control und Call Control (SDP, SIP, H.323) Um einige Punkte über Session Control (Sitzungskontrolle) besser verstehen zu können, betrachten wir folgendes Problem. Sie möchten zu einem bestimmten Zeitpunkt eine Videokonferenz abhalten und einer groi3en Anzahl von Nutzern die Teilnahme ermöglichen. Möglicherweise haben Sie sich entschlossen, den Wdeostrom mit dem MPEG-2-Standard zu kodieren, für die Obertragung der Daten die Multicast-IPAdresse 224.1.1.1 zu verwenden und die Daten mittels RTP über UDP-Port-Nummer 4000 zu senden. Wie können Sie den zukünftigen Teilnehmern diese Informationen zukommen lassen? Eine Möglichkeit wäre es, sie per E-Mail zu versenden. Im Idealfall sollte es aber ein Standardformat und -protokoll für die Verteilung dieser Art von Informationen geben. E i e Arbeitsgruppe der IETF (die Multiparty Multimedia Session Control Group) hat allein für diesen Zweck Protokolle definiert. Im Einzelnen handelt es sich dabei um die Folgenden: D SDP (Session Description Protocol)
SAP (Session Announcement Protocol) D
SIP (Session Initiation Protocol)
D SCCP (Simple Conference Control Protocol)
Für eine angeblich einfache Aufgabe scheinen dies zwar viele Protokolle zu sein, das Problem hat aber viele Aspekte, und es müssen mehrere verschiedene Situationen bewältigt werden. Beispielsweise besteht ein Unterschied zwischen der Ankündigung der Tatsache, dass eine bestimmte Konferenzsitzung in MBone (unter Verwendung von SDP und SAP) zur Verfügung gestellt wird, und dem Versuch, ein Internet-Telefongespräch mit einem bestimmten Benurzer zu einem bestimmten Zeitpunkt (unter Verwendung von SDP und SIP) zu führen. im ersten Fall würde man die Aufgabe als erfüllt betrachten, nachdem man alle Sitzungsinformationen in einem Standardformat an eine bekannte Multicast-Adresse gesendet hat. Im zweiten Fall müsste man einen oder mehrere Benutzer finden, ihnen eine Nachricht mit Ankündigung des gewünschten Gesprächs (vergleichbar mit dem Klingeln ihrer Telefonapparate) senden und vielleicht zwischen allen Parteien eine geeignete Audiokodierung aushandeln. Wir betrachten zuerst SDP, das in vielen Anwendungen üblich ist, und anschließend SIP, das immer mehr für zahlreiche interaktive Anwendungen, wie z. B. Internet-Telefonie, eingesetzt wird.
Session üescdption Protocd (SDP) SDP ist ein eher allgemeines Protokoll, das in vielerlei Situationen benutzt werderi kann. Es liefert folgende Informationen: iName und
Zweck der Sitzung
i Anfangs- und
Endzeit der Sitzung
i Die in der Sitzung übermittelten Medientypen
(z. B. Audio, Video)
Ausführliche Informationen, die benötigt werden, um die Sitzung zu empfangen (z. B. die Multicast-Adresse, an die Daten gesendet werden, das zu benutzen& Transportprotokoll, die Port-Nummern, die Kodierschemas) SDP stelk diese Informationen im ASCII-Format unter Verwendung einer Textzeilenfolge - jeweils in der Form wtyp>..cwert>n - zur Verfugung, Ein Beispiel einer SDP-Nachricht verdeutlicht die wichtigsten Punkte: v 4 o=l arry 2890844526 2890842807 I N IP4 10 .O. 1.5 s=Netnorki ng 101 i=A class on Computer networking u=http://w.cs.princeton.edu/ e=1arrygcs .pri nceton.edu c=IN IP4 224.2.17.121127 t~28733974962873404696 msaudio 49170 RTP/AVP 0 m=video 51372 RTP/AVP 3 1 m=appl S c a t i on 32416 udp wb
Man beachte, dass SDP genau wie HTML für Menschen recht leicht zu lesen ist, jedoch strikte Formatierungsregeln hat, die es ermöglichen, dass Maschinen die Daten eindeutig interpretieren können. Die SDP-Spezifikation definiert beispklsweise die m0glichen »Informationstgpena, die erscheinen dürfen, die Reihenfolge5 in der sie erscheinen müssen, und das Format sowie reservierte Wbrter für je&& definierten Typ. . Der erste auffällige Aspekt ist, dass jeder ~Informationstyp«durch ein e i n z e h Zcirhen identifiziert wird. Die Zeile v=O sagt uns beispielsweise, dass .Version* d a Wert N d hat, d. h. diese Nachricht ist g e d SDP-Version Null formatiert. Die nächste Zeile liefen den mUrsprunga (Origin)der Sitzung mit ausreichend Mamationen, um die Sitzung eindeutig zu identifizieren. larry ist der bnutzername des Sitzungsaurors und 10.0.1.5 ist die P-Adresse seines Computers. Die Nummer nach lerry ist eine Sitzungsidentifizimmg, die so gewählt wurde, dass sie für diesen Csmputer eindeutig ist. Anschiiehnd folgt eine *Versionsnummera für die SDP-Ankkdigung (Announcemeat); falls die Sitzungsinformationen dutch eine spätere Na& richt aktualisiert werden, wird die Versionsnumrner erhöht. Die nächsten drei Zeilen (s, i und U) liefern den SimmgSQarnen, eine Sitzungsbeschreibung und eine Uniform Resource I d e n t i k (Um) d e Sitzung, ~ also Infor-
mationen, die für einen Benutzer bei der Entscheidung, ob er an &eser Simung teilnehmen soll, nützlich sind Solche Informationen könnte rnan auf der Benutzeroberfläche eines >~Sitzungsveneichnisc<-Tools anzeigen, das aktuelle und künftige Ereignisse auflistet, die mit Hilfe von SDP angekündigt (advertised) wurden. Die nächste Zeile (e=...) enthält die E-Md-Adresse einer Person, die in Zusammenhang mit der Sitzung kontaktiert werden kann. Abbildung 9.13 zeigt den B i l e m eines Sitzungsverzeichnis-Tools namens sdr zusammen mit den Beschreibungen meluet Sitzungen, die nun Zeitpunkt, als der Bildschirm fotografiert wurde, angekündigt worden waren.
Abb 9.1 3: Ein Sitzungsverzeichnis-Toolzeigt Informationenan, die aus SDP-Nachrichten extrahiert wurden.
: ,
j
L I
j
F I
j
.
Als Nächstes wenden wir uris den technischen Details zu, die es einem AnwendungsProgramm ermöghchen, an der Sitzung teilzunehmen. Die mit C=. . beginnende Zeile liefert die IP-Multicast-Adresse, an die Daten für diese Sitzung gesendet werden. Ein Benutzer müsste dieser Multicast-Gruppe beitreten, um die Sitzung zu empfangen. Danach sehen wir die Anfangs- und Endzeiten der Sitzung (als Ganzzahlen gernäg dem Network Time Protocol kodiert). Sdiliei3lich kommen wir zu den Morrnatiolten über die Medien für diese Sitzung. In dieser Sitzung sind drei Medientypen vetfügbar - Audio, Video und eine als wb bezeichnete gemeinsame WhiteboardAnwendung. Fiir jeden Medientyp gibt es eine wie folgt formatierte InformationsZeile:
.
m=cmedia, cport> ctransporb
Die Mediensind selbomklärend, und die Port-Nummern sind in jedem Fall UDP-Ports. Wenn wir uns das *Transportu-Feld ansehen, können wir erkennen,
676
1
9 knw#idung.n
dass die wb-Anwendung direkt auf UDP aufsetzt, während Audio und & Hilfe von mRTP/AVP« befördert werden. Dies bedeutet, dass sie auf RTP aufsetzrsir und das (in Abschnitt 9.3.1 definierte) als AVP bezeichnete ~ntuendun~sp@-benutzen. Dieses hwendungsprofil definiert eine Reihe verschiedener K o d i d e mas fib Audio und Video. Wir können in diesem Fall sehen, dass Audio die K& ning 0 benutzt (die eine Abtastrate von 8 kHz und 8 Bit pro Sample verwendat)+ w h e n d Video die Kodierung 31 benutzt, die das H.261-Kadie net. Diese »magischen Zahlen* für die Kodierxhemas sind in dem RFC d e f i r i q der auch das AVP-Profil definiert. Es ist auch möglich, nicht standardisierte K0efie.sschemas in SDP zu beschreiben. We13lich sehen *'eine Beschreibung tionen für diese Daten gelten spezifisch fiir die wb nur den Namen der Anwendung im .Formtu-Feld mit der Angabe applicationlwb in einer MIMENaaiticht. Da wir nun wissen, wie Sitzungen bes beschäftigen, wie man sie initiieren kann. B timedia-Konferenzen durch Versenden von SD ticast-Adresse anzukiindigen. Das in Abbildung 9.13 darge nis-Tool würde dieser Multicast-Gruppe beitreten und Informationen a m es aus empfangenen SDP-Nachrichten entnommen hat. SDP spielt auch in Verbindung mit dem Session initiation Protocol (SIP) ei3-e: wichtige Rolle. Mit zunehmender Bedeutung von B Unterstützung von telefonähnlichn Anwendungen über IP-Netzwerke) ha Aufmerksamkeit auf sich gelenkt und verfügt heure über seine eigine Atb bei der IETF. Obwohl SIP a d e r für IP-Telefonie noch für viele andere werden kam, ist dies wicherlich eine seiner attraktivsten Anwendungen.
Session lnitiatien P w c o l (SIP) SIP ist ein Protokoll der Anwendqsschicht, das J R i ' P in mancherlei Art ähnelt, wed es auf einem thnlichen AnfragdAntwort-Modell (Request/Response Mo&) basiert. Es wurde allerdings für ziemlich unterschiedliche Anwendungen aus&* und bietet somit im Vergieich zu HTI'P ganz andere Fähigkeiten. Diese lassen sicb jDh fünf Kategwiea gruppieren: iBenutzerstandort: Bestimmung des korrekten
Geräts, mit dem zu kommunbie- '. ren ist, um einen bestimmten Benutzer zu erreichen.
i Benutzerververfügbarkeit;Ermittlung, ob der Benutzer willens oder
in ehez be&mmten Kx>rm~:unikationssitzung teihehmen. i
hutzerfahigkeiten: Bestimmung von Elementen wie Medienauswahl und benutzendes Kodierschema.
B Sitzungseintichtung: Einrichtung von Sitzungsparametern, wie Komnvnikrttionsparteien zu benutzende Port:-Nummern.
z. B. von den
Eine Reihe von Funktionen, darunter Simmgstrmsk (z. B. um rCall-Forwarding« [Rufweiterleimg] zu implementieren) und Änderung von Sitzungsparametern.
i Sirzungsmanagement:
Die meisten dieser Funktionen sind recht leicht zu verstehen, doch die Frage des Standorts erfordert eine tiefgehendere Diskussion. Ein wichtiger Unterschied zwischen SIP und - sagen wir - HTlT ist der, dass SIP vorrangig für die Kommunikation zwischen Maschen benutzt wird. Folglich ist es wichtig, einzelne Benutwr und nicht nur Rechner finden zu können. Und im Gegensatz zu E-Mail reicht es nicht, einfach nur einen Server zu finden, den der Benutzer zu einem späteren Zeitpunkt abfragt, und die Nachricht dort zu hinterlegen. Wu müssen wissen, wo sich der Benutzer genau jetzt befindet, wenn wir mit ihm in Echtzeit kommunizieren wollen. Dieser Umstand wird durch die Tatsache noch komplizierter, dass sich ein Benutzer möglicherweise dazu entschliegt, mit Hilfe mehrerer ynterschiedlicher Geräte zu k o m m d e r e n , z. B. mit seinem Desktop-PC, wenn er sich an seinem Arbeitsplatz befindet, und einem portablen Gerät unterwegs. Des weiteren könnten mehrere Geräte gleichzeitig aktiv sein und dabei höchst unterschiedliche Fähigkeiten aufweisen (z. B. ein alphanumerischer Pager und ein PC-basiertes Video-#Telefona). Im Idealfall sollte es anderen Benutzern möglich sein, das entsprechende Gerät jederzeit aufzufinden und mit ihm zu kommunizieren. AuSerdem muss der Benutzer die Kontrolle darüber haben, wann, wo und von wem er Anrufe empfangen möchte. Um es einem Benutzer zu ermöglichen, über seine Anrufe das entsprechende Maf3 an Kontrolle auszuüben, führt SIP den Begriff eines Proxy ein. Einen SIP-Proxy kann man sich als einen Kontaktpunkt für einen Benutzer vorstellen, an den anfängliche Kommunikationsanfragen gesendet werden. Proxies fiihren auch Funktionen für den Anrufer aus. Anhand eines Beispiels kann man am Besten sehen, wie Proxies funktionieren. Man betrachte die beiden Benutzer in Abbildung 9.14. Als Erstes fällt uns auf, dass jeder Benutzer einen Namen im Format userOdomain hat, ähnlich einer E-MailAdresse. Wenn Benutzer Bruce eine Sitzung mit Larry einleiten möchte, sendet er seine a n f ' i c h e SIP-Nachricht an den lokalen Proxy für seine Domain, cisco.com.
Abb. 9.14: Aufbau einer Kommunikationdurch SIP-Proxies
Unter anderem enthält diese anfänghche Nachricht einen SIP-URI, also einen Uniform Resource Identifier, der wie folgt ausaiehk
In Abschnitt 9.2.2 sahen wir ein Beispiel eines anderen URI-Typs. W s (Uniform, Resource Locators), wie z. B. http:ll~~~.~~.princeton,edu, sind ein besonderer URIQp, der vollständige Standortinforrnationen für eine Ressource (z. B. eine Web page) enthält. Ein SE-URI liefert die vollständige Identifizierung eines Benutzers, jedoch nicht dessen Standort, weil dieser sich im Lauf der Zeit ändern kann, Wir werden in Kürze sehen, wie der Standort eines Benutzers fes~esteiitwerden kann. Unmittelbar nach dem Empfing der anfänglichen Nachricht von Bruce sieht sich der Proxy dsco.com den SIP-UR1an und folgert daraus, dass diese Nachricht an deri Proxy princeton.edu zu senden ist. Vorläufig nehmen wir an, dass der Proxy prim: tonedu Zugaag zu irgendeiner Datenbank hat, aus der er eine Abbildung (Mapping) des Namens 1arryOprin~n.eduauf die IP-Adresse eines oder mehrerer Gerä* erhält, auf denen Larry momentan Nachrichten zu empfangen wünscht. Der Proxy kann deshalb die Nachricht an das bzw. die v6n Larry gewähiten Geräte weiter& ten. Das Versenden der Nachricht an mehr als ein Gerät wird als Forking (Vergabeln) bezeichnet und kann entweder parallel oder seriell erfolgen (2.B. sende sie an sein Handy, wenn sein Telefon arn Arbeitsplatz nicht beantwortet wird). Die anfinghcbe Nachricht von Bruce an Lany ist höchstwaiuxheiniich eine SWNachricht vom Typ invite, die in etwa wie folgt aussieht: IWVITE sS p:[email protected] SIPI2.0 Via: SIP/2.0/UDP bsd-pc.ci sco.cm;branch-z9hG4bK433yte4 To: Larry <si p:l [email protected]> F m : Bruce <sip:brur&&isco.c~;tag-55123 Ca11-1D: xy745j [email protected] sco. c m CSeq: 271828 IWVITE Contact: csi p:[email protected] .CContent-Type: appl icationlsdp Content-Length: 142
Die erste Zeile i d e n e e r t die durchzuführendeFunktion (invite);die Ressource, auf der sie durchzuführen ist, d, h, (iea gerufenen TeenJfKhmer(sip:[email protected]), und die Protokollversion (2.0). Die anschliefkend fobdea Header-Zeilen sehen wahrscheinlich irgend& verttaut aus, weil sie den Header-Zeilen von E-MailNachrichten ähneln. SiP definiert zahlreiche Header-Felder, von denen hier nur einige bosdkaeben werden, Man beachte, dass der Headet Vi: in diesem Beispiel das Gerät i d d r i i e ~von , dem diese Nachricht stammt. Die Header Ctant-t-Type: m d Confen(-Length: beschreiben den Inhalt der nach dem Header fblgenden hechrichtJ genau wie in einer h4MEkodierten E-Md-Nachricht. In diesem F d handelt es sich bei dem Inbalt um eine W-Nachricht (Sessi~nbcription Protocol). Diese Nachricht würde Dinge wie Medientypen (Au* Video usw.) beschreiben, die BIuce mit Larry austauschen möchre, und weitere Eigenschaften der Sitzung, wie
z. B. die von ihm u n t e e n COBEC-Typen. Man beachre, dass das Fdd OonM-
MogWkeis W, für diesen Zweck jedes beliebige Protokoll zu benutzen, obwohl SDP das häufigste ist. Wir kehren zu unmern Beispiel zurück: Wcnn die imrite-Nachricht beim Proxy cisco.com ankomnt, leitet didie Nachricht nur in IWmng princetwi.edu
Type: in SJP die
weiter; s a n h antwortet auch dem h d e r der invbN~chncht.Gewu wie in HiTP verfügen alle Antworten über einen h t w o m d e , und die Oqanisation desCodes k l t derjenigen in HlTP, wie in Tabelle 9.2 ereichdich iss. In Abbilhtuig 9.15 können wir eine Folge v m SIP-Nachrichten und -Antworten sehen.
Abb. 9.1 5: Nachrichtenflussin einer einfachen SIP-Sitrung
Die erste Antwortnachricht in dieser Abbildung ist die varlaufige Antwort 100 tiying, was bedeutet, dass die Nachricht vom Proxy des Anrufers fehlerfrei empfangen wurde. Nachdem in* Larrys Td&n zugesteilt wurde, mobilisiert es Larry und antwortet mit einer Nachricht 180 ringing. Die Ankunft dieser Nachricht auf dem Computer von Bruce ist ein Zeichen, dass er einen roKlinge1tonu erzeugen kann, Unter der Annahme, dass Lmy dkns und in der Lage ist, mit Bruce zu kommunizieren, kann er seinen Telefonhiirer abnehmen, wsdiirch das Versenden der Nachricht 200 OK veranlasst wird. Der Computer von Bruco antwortet mit einem ALK, pnd ae diesenr Punkt können die Medb (z. B. ein in RTP verkapselter Audiostrom] beginnen, zwischen den beiden Teihdmern zu flie&n. Man beachte, daes die Teilnehmer an diesem Punlct gegenseitig ihre Adressen kennen, sodass das ACK direkt unter Umgehung der Proxies gesendet werden kann. Ab diesem Pankt sind die
Proxies nicht mehr an dem Gespräch beteiligt. Aus diesem Grund fließen die Medien normaierweise auf anderen Pfaden als die ursprünglichen SignalisienuigsnachricEi~ ten durch das Netzwerk. Aderdem gilt es zu beachten, dass das Gespräch ganz normal fortgesetzt werden könnte, auch wenn einer der beiden Proxies oder gar beide an diesem Punkt abstürzen würden. Und letztlich gilt, wenn ein Teilnehmer die Sitzung bmnden möchte, sender er eine BYE-Nachricht, die unter normalen Umstädm eine Antwort vom Typ 200 OK auslöst. Wir haben im obigen Beispiel ein paar Details a&r Acht gelassen. Ein Detail h die Aushandlung von Sitzungsmerkmaien. Vielleicht möchte Bruce in der Kornmdkation sowohl Audio als auch Video benutzen, während Larrys Telefon nur Audio unterstützt. In diesem Fall würde Larrys Telefon in seinem 200 OK eine SDP-Nachricht senden, die unter Berücksichtigung der im invite von Bruce vorgeschiagena Optionen die für Larry und das Gerät akzeptablen Eigenschaften beschreibt. Auf diese Weise werden akzeptable Sitzungsparameter ausgehandelt, bevor der Medienfluss beginnt. Ein weiteres wichtiges Detail, das oben übergangen wurde, ist das Auffinden des korrekten Geräts für Larq. Erstens musste der Computer von Bruce sein invite an den Proxy cisco.com senden. Dies könnte durch eine im Computer hinterlegte Information oder auf der Basis von DHCP geschehen. Dann musste der Proxy cisco.com den Proxy princeton.edu suchen. Dies könnte durch Verwendung einer speziellen DNS-Suche (Lookup) erfolgen, die die P-Adresse des SIP-Proxy für die Domain princeton.edu zurückgibt. Schließlich musste der Proxy princeton.edu ein Gerät finden, an dem Larry kontaktiert werden kann. Normalerweise hat ein Proxy-Server Zugang zu einer Standortdatenbank, die auf unterschiedliche Weise bestückt sein kann. Die manuelle Konfiguration ist eine Option; eine flexiblere Option ist jedach die Verwendung der Registrierungsmöglichkeitenvon SIP. Ein Benutzer kann sich bei einem Standortdienst registrieren, indem er eine SIPNachricht vom Typ register an den Registrar seiner Domain schickt. Diese Nachricht erzeugt ein Binding zwischen einer so genannten Address of Record und einer Contact Address. Eine Address of Record ist höchstwahrscheinlich ein SIP-URI, bei dem es sich um die »wohlbekannte« Adresse des Benutzers (2. B. sip:larryOprinceton.edu) handelt, und die Contact Address wird die Adresse sein,an der sich der Benutzer momentan befindet (z. B. sip:lanyOIlpph.cs.pru.iceton.edu). Dies ist genau das Bhding, das der Proxy princeton.edu in unserem Beispiel benötigte. Man beachte, dass sich ein Benutzer an mehreren Standorten und mehrere Benutzer an einem einzigen Gerät registrieren können. Beispielsweise kann man sich eine Gnippc von Leuten vorstellen, die einen Konferemraum betreten, der mit einem IPTelefon ausgestamt ist, und dass sich aile an diesem Telefon registrieren, d d t sie Anrufe darauf empfangen k~nnen. SIP ist ein sehr iimfmveiches und flexibles Protokoll, dass zahireiche komplexe Anrufszenarios sowie Anwendungen, die wenig oder nichts mit Telefonie zu tun haben, unterstützen kann. SIP unterstützt z. B. Operationen, mit denen ein Gespräch auf einen »Music-on-Holda- oder VohMail-Server vrngeschaltet werden kann. A&rdem kann man leicht erkennen, dass es fiir Anwendungen wie Instant
Messaging benutzt werda könnte. Bei Drucklegung definierte die Arbeitsgmppe SIMPLE bei der IETF Standards in diesem Bereich. H323 Die ITüwar auch auf dem Gebiet der Anrufkontrolle ( C d Cantrol) sehr aktiv, was angesichts der Bedeutung dieser Organisation Un Bereich der Telefonie als ihrem traditionellen Hoheitsgebiet nicht überrascht. Zum Glück gab es eine umfang&h Koordination zwischen IETF und ITü in diesem Bereich, sodass die verschiedenen Protokolle in gewissem Umfang zusammenarbeiten. Die wichtigste ITU-Empfehlung fiir Multimedia-Kommunikation über Paketnetzwerke ist H.323; sie umfasst viele weitere Empfehlungen, darunter den Call-Control-Standard H.245. Die H.323Emptehlunp umfassen msgesamt mehrere hundert Seiten, und das Protokoll ist für seine Komplexität bekannt, sodass wir uns hier auf eine kurze Obersicht k h r i i n ken. H.323 ist als Protokoll für Interne-Telefonie weit verbreitet, und wir wollen hiw diese Anwendung kurz betrachten. Ein Gerät, das Gespräche einleitet der beendq wird als H.323-Terminal bezeichnet. Es kann eine Workstation sein, auf &r eine Intemet-Telefonie-Anwendungläuft, oder ein speziell entwickeltes Gerät, z. B. ein mit dem Telefon vergleichbarer ,Apparats mit Netzwerksoftware und einem Ethefi net-Port. H.323-Terminals können direkt miteinander sprechen, die Gespräche werden aber häufig durch ein als Gatekeeper bezeichnetes Gerät vermittelt. Gatekeeper führen eine Reihe von Funktionen aus, z. B. die Übersetzung un~erschiedli&r Adressformate der Telefongespräche und die Steuerung, wie viele Gespräche zu einem bestimmten Zeitpunkt geführt werden können, um die von H.323-Ancvendungen benutzte Bandbreite zu begrenzen. H.323 beinhaltet auch das Konzept e i w Gateways, das das H.323-Netzwerk mit anderen Netzwerktypen verbindet. Ain häufigsten wird ein G m a y für die Verbindung eines H.323-Netzwerks mit dem öffentlichen vermittelten Telefonnetz benutzt (siehe Abbildung 9.16). Dies erm&licht es einem Benutzeq eine H.323-Anwendung auf einem Computer ausztifih-e~, um mit einer Person zu sprechen, die ein konventionelles Telefon am öffentlichen auch ein Terminal bei der S Telefonnetz benutzt. Der Gatekeeper - .unterstützt .,,.: ...,:. ?GW::. wc.>..: :-:.-,:t 1 4. . : . #I,-. . ;*:. -82-5 !(\..J.-,..
. .
Abbiidung 9.W Gerate in einem HS23-Netzwerk
J,?
. .
:.;
F.
I.
-P<
, ~ ; ; 4 , ' :
-
L.
.
,
eines Gateways, etwa durch Auswahl aus mehreren Möglichkeiten, um eines zu fins den, das relativ nahe am endgültigen Ziel des Gesprächs liegt. Das ist natürkh in einer Welt, in der konventionelle Telefone viel zahlreicher als PC-basierte Telefone sind, sehr praktisch. Baut ein H.323-Terminal ein Gespräch zu einem Endpunkt &' an dem sich ein konventionelles Telefon befindet, fungiert das Gateway als effekt* Endpunkt für das H.323-Gespräch. Es ist für die Durchführung der entsprechendem Ubersetzung der Signalisierungsinformationen und des Medienstroms zuständig, die über das Telefonnetz befördert werden müssen. Ein wichtiger Teil von H.323 ist das Call-Control-Protokoll H.245, das benutzt wird, wn die Merkmale des Gesprächs auszuhandeln, ähnlich der Verwendung des oben beschriebenen SDP. Eine H.245-Nachricht kann eine Reihe verschiedener, v m ihm unterstützter Audio-CODEC-Standards aufliaen, worauf die Gegenstelle mit einer Liste der von ihr unterstützten CODECs antwortet. Die beiden E n d p d c können dann einen fiir beide geeigneten Kodierstandard auswählen. H.245 kam auch benutzt werden, um die UDP-Port-Nummern zu signalisieren, die RTP und RTCP für den Medienstrom (bzw. Medienströme, wenn das Gespräch z. B. Au&e und Video enthält) in diesem Gespräch benutzen. AnschliePend wird das Gespräch geführt, wobei RTP für die Beförderung der Medienströme und RTCP für die Oberrnittlung der relevanten Steuerinformationen benutzt wird.
9.4
Overlay-Netzwerke
Das Interner hat von Adang an ein klares Modell kibemomen, dem zufolge die, Router irn Innern des Netzwerks filr die Weiterleitung von Paketen von der Q x d & zum Ziel zuständig sind, und Anwendu~ogramrrieauf Mosts laufen, die an dm Kasten des Nefzwerks angeschlossen sind, D-as Client/Set7~e~-Paradigm, das t kb den ersten beiden Abschnitten dieses Kapiteb behandeltem tlnwendungea a h t i m , entspricht s i c h diesem Modell. in d a ktzten p w Jahren ist die Untetscheidung zwischen P1~ketw;eitdeiwqg und Antyedungwarcarbeit#s~gallertdings weniger klar geworden. Neue Anwendu& gen werden im Internet verteilt, und in vielen F&llentreffen diese Anwendungen ihn eigene Weiterleitiuigsentschoidungen. Diese neuen hybriden Anwendungen können manchmal dadurch implementiert werden, dass die herkQmmlichen Rauter und Switche im gewissen Uafang anwendungsspezifischreVerarbeitung übernehmen. Die so genannten Lmd-7-S~itchessind z. B. Server-Clustern vorgelagert und leiHlTB-Anftagm auf det Grundlage der angeforderten URL an einen spes.ifi&n Server weiter. Demgegati,bw verbreiten sich O ~ m i u y - N & ~ ~rasch k e als k o p . zugter Mechanismus f& &Eh&hrung neuer ~unkzion&& 6kernet. Man kann sich ein W l a y 1 s il&sebeai Netzwerk: v ~ & t d h das , oberltalb eiagaa physikalischenNemaCrta implementiertwird Mewr Definition zufolge ut* lq& rzet selbst ein Ovarlay-Nwerk. ~bbikd&g9.17 zeigt ein Overlay, da& eines zu Grunde liegenderi Netzwerks implementiert d. Jeder Knom im 01Jw Ia'p-Netme~kexktierr auch in dem darunter liegenden N - E ~ 6s
Abb. 9.17: Ein Overlay-Netzwerk setzt auf einem physikalischen Netzwerk auf.
Pakete und leitet sie auf anwendungsspezifische Weise weiter. Die Verbindungen zwischen den Overlay-Knoten sind als Tunnel durch das darunter liegende Netzwerk implementiert. Es können auch mehrere Overlay-Netzwerke auf das gleiche zu Grunde liegende Netzwerk aufsetzen, wobei jedes sein eigenes anwendungsspezifisches Verhalten implementiert. Außerdem können Overlay-Netzwerke übereinander verschachtelt werden. Beispielsweise behandeln alle in diesem Abschnitt beschriebenen Overlay-Netzwerkbeispieledas heutige Internet als darunter liegendes Netzwerk. Wir haben bereits Tunnel-Beispiele gesehen, etwa zur Implementierung virtueller privater Netzwerke (VPNs).Als kurze Aufhnschung sei hier e d h n t , dass die Knoten an beiden Enden eines Tunnels den dazwischenliegenden Multihop-Pfad als einzelne logische Verbindung betrachten, wobei die im Tunnel *durchlaufenen* Knoten Pakete auf der Grundlage des äußeren Headers weiterleiten und sich zu keinem Zeitpunkt bewusst sind, dass die Endknoten einen inneren Header angefügt haben. Abbildung 9.18 zeigt z. B. drei Overlay-Knoten (A, B und C), die über ein Tunnelpaar verbunden sind. In diesem Beispiel kann Overlay-Knoten B eine Weiterleitungsentscheidung für Pakete von A zu C auf der Grundlage des inneren Headers (IHdr) treffen und dann einen äderen Header (OHdr) anhängen, der C als Ziel im darunter
Abb. 9.18: Tunnel zwischen Overlay-Knoten durch physikalische Knoten
liegenden Netzwerk identifiziert. Die Knoten A, B und C sind in der Lage, sowohl den inneren als auch den ä&ren Header zu interpretieren, während die damischediegenden Router nur den äußeren Header verstehen. E h o verfiigen A, B und C sowohl MOverhy-Netzwerkals auch ini zu Grunde liegenden Netzwerk über Adressen, die aber nicht unbedingt gleich sind. Zum Beispiel kann ihnen im Basisnttz eine 32 Bit lange IP-Adresse zugeordnet sein, während ihre Overlay-Adresse eine experimentelle 128-Bit-Adresseist. Tatsächlich muss das Overiay überhaupt keine konventionellen Adressen benutzen, sondernkann anhand von URLs, Domain-Namen, einer XML-Anfrage oder sogar des Paketinhalts weiterleiten.
Overlsys und dieVerknöcherung im lntemet Angesichts seiner Beliebtheit und weitläufigen Nutzung kann gessen, dass das lnternet einst ein L a b r filr Wissenschaftler war, u vermittelter Vernetlung zu experimentieren. Je mehr kommerziellen krtemet erlangte, um so weniger nWzlich wurde es alleklings als Plattformzum Spiglen mit neuen Ideen, Heute treiben kommerzielle Interessendie Welterentwicklung des Iriternet. Ein neuerer Bericht des National Research Council weist tatsächlich auf eine Verknöcherung des lnternet hin, sowohl intellektuell (Druck auf Grund von Kompatibilität mit deneitigen Standards behindert Innovation) als auch hin~ichttkh der Infrastruktur (ftir Wissenschaftler ist es fast unmöglich, d k Kerninfrastruktur zu beeinflussen). Der Bericht fährt mit der Beobachtung fort, dass gleichzeitig völlig neue Herausforderungen entstehen, die möglicheniveise eines frischen Ansatzes bedürfen. Dem Bericht zufolge ist das Dilemma folgendes:
.,. higreiche
I
U%# hlnldng/ich Cibernommene Technologien untet.iiie$eneher Wkndcherrng, cfie es erschwert, neue Fähigkeiten eimufuhren Ode6 4a#s die derzeitige Technologiean ihre Grenzen st6ßt, diese durch etwas Besseres abtu/& sßn, Dia heutigen 1nduJ;triePlayersind generell nicht niotiviert, disruptive rechmEogjen zu entwickelnodcrzu installieren..
.
Den tkhtfgen Weg zu fhden, um dismptive TechnobgSen einzufElhrrcni ist eine I~t~resshte A N a M . S o k k hnowtonen würden w&rschetnlich ei6nOgp Probleme sehr gut bewältigen, doch dafiir liegen sie in anderen wichtigen Bereichen Yrinter dem Stand der Techndogie. Um beispiel.yeise eine neire Routingder StratMe im lntemet einzuführen, müsste man einen ~oute&twi&dn, nkftt nut diese neue Strategie ~ntersNlXrt,m h irn Hinblick auf @+gung, ~~&rlbs9~keit, Managernent-Tods usw. auch nip etablierten A n E m b n kurrieren kann. Das ist ein extrem höher Anspruch. Dt?r tnnovator bert> also eine Möglichkeit, Benutzern die Vorteile der neuen M& zu bisten, ohne dass d@ Hunderttausende von Codezeilen geschrieben werden müssen, um nur
Dveriay-Nemmrkebieten genau diese Möglichkeit. ChmIay-Knoterik6nnen
so pragrammiert wGden, dass srie die neue F&higkeitbw*das neoe Feature untihsrmaen und sirh dann hihsichtlkh der Wnitst?cllfririg r%e-$:zu GGhdice Iiw gehden K~nnekt:ivitStauf konventionelle knoten 55tWm. 4&m sich die Im dverlay urngeW e g kn Lauf der Zeit als niltdictierwdst, k m eine wlrtschaftiiche Motivation bestehen, die Funktiunalitgt auf das Rasissystem ur pottieren, d. h. sie zu den Features kmmetzieller Router hinnndgen. Andererseits kann dk Furiktlonmt derart komplex sein, dass sie am Besten auf einer Overiay-Schichtbleiben sollte.
9.4.1 Routing-Overlays Die einfachste Art ist ein Overlay, das rein zur Unterstützung einer alternativen Routing-Strategie existiert, Ln den Qverlay-Knoten wird keine zusijtzliche A&be der Anwendungsschieht durchgeführt. Man kann ein virtuelles privates Netzwerk (siehe Abschnitt 4.1.8) als Beispiel eines Routing-Overhy betrachten, das allerdings weniger eine aiternative Strategie oder einen Algorithmus ais viehehr alternative Routing-Tabelleneinträge definiert, die vom IP-Standard-Wekerlei~salgorithmusverarbeitet werden. In diesem besonderen Fall sagen wir, dass das Oveilay »P-T'eia benutzt, und die Fähigkeit, diese WNs zu nueen, wird von den meisten kommerziellen Routern unterstützt. Nehmen wir aber an, wir wollen einen Routing-Algorithmus benutzen, den kornmenielle Router-Anbieter nicht in ihre Produkte einbinden mochten. Wie können wir dieses Problem lösen? Wir könnten unseren Algorithmus einfach auf einer Anzahl von Endhostg fahren und über einen Tunnel durch die Internet-Router schleusen. Diese %sts wüsden sich wie Router im Oveday-Netzwerk verhalten: Als Hosts sind sie höchstwahrscheinlich über eine einzige physikalische Verbindung an das Intemet angeschlossen, als Knoten im Overlay wären sie aber über Tunriel mit mehreren Nachbarn verbunden. Da Overlay-Netzwerke fast schon der Definition zufolge eine Möglichkeit darsreilen, neue Technologien unabhangig vom Standardisierungsprozess einzuführen, gibt es keine Standard-Overlays, auf die wir als Beispiele verweisen können, Stattdessen betrachten wir diq allgemeine Idee von Routing-Overlaysdurch Beschreibung mehrerer experimenteller Systeme, die in letzter Zeit von NetzwerkWissenschaftlern vorgeschlagen wurden. '
ExperimentelleIP-Versionen Overlay-Netzwerke sind ideal für die Installation experimenteller IP-Versionen, von denen man erhofft, dass sie irgendwann die Welt erobern. P-Multicast ist z, B. eine Erweiterung von IP, die Adressen der Klasse D (jenemit dem Präfix 1110) als Muhcast-Adressen interpretiert. P-Multicast wird in Verbindung mit einem MdticastRouting-Protokoll, z. B. DVMRP (siehe Abschnitt 4.4), benutzt.
M b n e (Multicast-hckbone)ist ein OverIay-Netzwerk, das IP-Muiticast impleEine der beliebtesten Anwendmgeq die auf.-= adwtma, iss: vk, ein Werkzeug, das V i d e o k a n f m mischen mehret- Tehehmern (MVWodermcing) mtemtützt. vic wird zur Ansstrah2.q (Broah-) von.W ' B usld K&mmzm im kautzt. Zum Behpiel IISTF-Kodemzen, dic in der Regel eine Wache dauern und Tausende v m T e&anzieh >mein über P-&>* getmdec. PPic WNs h m z t MBoae sowohl P-Twui-1 als auch P-Adressen. Im Gegensatz ZU WNs implementiert M b n e aber einen anderc-n W d ~ ~ ~ ~ o r i t b Es m u s : leitet Pakete an alle Downstream-Nachbarn im S h ~ ~ - P ~ ~ ~ M u i W&~ s t - B a ter. Ak Overlay müssen sich Multicast-kundige Router Eibcr leinen h e i durch Legacy-Router hindurch. arbeiten in der Hoffnung, cl-ass es eines Tages keine LegacyRouter mehr geben wird. 6-bne ist ein ähniiches Overlay, das für die inkrementelle Instailatioa von IPVG benutzt wird. Wie MBone nutzt auch 6-Ebne Tunnel zur Weitetleitung von Paket~a dwch IE"v4-Ranter. Im Gegensatz zu MBone bieten 6-be-Xhoten aber nicht Bur eine neue uiterpretation der 32-Bit-Adressen W)II f i 4 , sondern leiten Pakete auf .der Unmdlaggc des 138-Bit-Adressrainns von IPv6 weiter. Aderdem unterstützt 6-Bone genau wie I h 6 IWths.
> .-
E?dsysmwrnWt ObmM W o a e nach wie vor ein beliebtes Overlay ist, konnte IP-Mukicatst die Weit nicht im Sturm erobern. Ais Reaktion darauf wenden sich viele auf Multicaa bivsiem&h n d m g m , $vie Videokwkienzen, esher alternativen Strategie zu, die als E-ewt-Multi-t bezeichnet wird, Der zu G d e iiegendea Idee zufolge akzeptiert EndSystem-Multicast, dass IP-Multicast nie allgegenwärtig sein wird und Pberliim es g2attSaeSsen den Endh&, die an einer bestimmten Muldcast-Anwendung teiln~hmen~ i h eigenen ~ticast-Biiurnezu implemea-. (Als Eizjschub whe anzumerken, dass ts ehe geistige 'Richtung gik Bie behauptet; P-Muiticast habe keine Akzeptanz gefunden, weil es olnfach nidnr aaf die Netzwerkdicht geh&%& es F w h i o d t i i a der fKiheren Schichten, wie z. B, Fehler-, Fluss- und -la&troIle M-nianagement, mterstützen muss.} W e r wir bischreiben, wie Eadsystcm-Mulbst funktioniert, muss man uteii9t: vemehen, dass hisystem-MuIticas~im Cegewtz zu WNs und MBone davon 9ur. g& das nur I n ~ - H o s t (im s Ggensatz zu fntem&-W81xtern) am Owrlay b4I@ sW. M d m taw&en dfegc Hosts a o ~ e d s Nachtkhten e durch UM"Tunnel und aicht durch @-Tqe1 mit+& aus, was i*e fmplemenritmg als regubm Anwendwqyprogtamme vereinfacht. Dadurch kann man das zu Gnmde liegende Netzwerk & voU8tnndig verbundenen G r a p h b & t e n , weil jeder a6kt
imJ[ZiteFDa~d~~ist,ciaieN~~atijdm~crenH~tms & b s d t e rSicht 1- E n d i p t m n - W d m fdgeia&Problem: Ausgehend von eiEem vol4&bdig ve&mbm Gtaphen, d a das immer dareilt, ii* das darin, den ehgebetteten M u l t t c i z s t h zu finden, der sich ü k afle Gmppamhgiieder erstreckt.
Da wir von der vcrktäbidlgen Verbindun8 des m Grunde liegrriYPk=nintmet a w gehen, wkde eine naive L6sung darin bestehen, jede Quelle direh mit jadem Gpnmitgüed zu vdhden. W a n k e n Wuaen: Endsp~tem-M&st kIhinte dadurch impkmmiert . d n ,dass man jeden Knoten Ihiicasr-lkhcich~nan jedes Gmpp-cd atnden lisat, Um das dabei e~i58-& Problem ai Mhen, insbesondere im Vergieicb z - q lranpJemendcm V= Br-M* in R a m q betrachten wir die Beispielt~poiqgie inAbbildung 9.19. ABbiMmg 9*19{a)aklgr&e physikalische B&@ielropoiagk, i~ der R1 uIK1 R2 zwei u b e ehe aandcontinentab Leitung mit niedriger Bandbreite mrBwndene Router sind A, B, G und D s i d Encb; hcwq ~ L g i t u n g s v e m ö g z ~werden n a b Kanreagmkhte angqphn. Unter der Annahme, dass A eine Multicast-N&cht an die andemein &ei Hosts enden möchte, zeigt Abbilduag 9.19(b),wie naiv die ~nias~übem~gung ~d0~1ieten d e . Das ist natürlich w h w h t , weil eh und W b e Nochriebt die Leitung A-F1 dreimal übequeren muss und zwei Kopien der Nachricht R1-6L2durchqueren. Abbildmg 9.19(c) zeigt den von DVMRP gebildet- W-Multicast-Baum. Met ist ganz klar ersichtlich, dass dieser &atz redwhnte Nachrichten vameidet. Ohne Unterstützung durch die Roumr ist allerdings das Beste, was wir uns mit EnhystemMulticast erhoffen können, ein mit demjenigen in Abbildung 9,19(d) vergleichbarer [email protected]: AbbiIdunga 3, SO
*
P.. (a)
b
WWcatt-
(alphysika'1isdmT.opo'iog$e, nalvae UaicestObert~aguig,(c) auf der i+kzwe(durch Routtr),g&iideter MuIticm-Eaurh, td) auf der Anwendungsebene {durch Endhosts)gebildeter Multicast-Baum.
688
1
9 Anwendungen
Baum. Endsystem-Multicast definiert eine Architektur für die Konstruktion dieses Baum~.
Der allgemeine Ansatz ist die Unterstützung mehrerer Ebenen von Overlay-Netzwerken, von denen jedes einen Subgraphen aus dem darunter liegenden Overlay extrahiert, bis wir den Subgraphen gevrrählt haben, den die Anwendung erwartet. Insbesondere für Endsystem-Mjticaat geschieht dies in zwei Stufen: Zuerst bilha wir ein einfaches Mosch-Overlay, das auf das voMndig verbundene Intemet aufsetzt, dann wählen wir einen Multicast-Baum innerhalb dieses Maschennetzes. Die! Idee ist in Abbildung 9.20 dargestellt, wobei wieder v m den vier Endhasts A, B, C und D ausgegangen wird. Der erste Schritt ist der kritische: Nachdem wir ein geeignetes Maschen-Overhy gewählt haben, führen wir einfach einen standardisiertem Multicast-RQuting-Algorithmus (z. B. DVMRP) darauf aus, um den MulticrrstBaum zu bilden Wir können uns auch den Luxus leisten, die im Internet-wei@n Multieast inhärente Skalierbarkeitsfrirgezu ignorieren, weil das dazwische~egende Masthennetz so gewählt werden kam, dass es nur die Knoten beinhaltet, die wir in einex bestimmten Multicast-Gruppe teilnehmen lassen wollen.
Der Schlüssel für die Konstruktion des zwischenliegenden Maschen-Overlays liegt in der Auswahl einer Topologie, die grob der phydealischen Topologie des w G d e liegenden Internet entspricht. Wir müssen das aber erreichen, ohne dass uns irgendeiner sagt, wie das zu Grunde hegende Intmet tatsächfich aussieht, weil wir nur mit Endhosrs und nicht mit Routern arbeiten. Die aIlgemeine Strategie besagt, dass Eüe Endhosts die RoundtripLatenz zu anderen Knoten messen und ~u dann enmcbiden, das Maschennerz mit weiteren Leitungen auszuwelm, wenn ihnen das gefbillt, was sie sehen. Das funktioniertwie folgt: Unter der Annahme eines bereits bestehenden Maschennetzes tauscht jeder KMten zuer@die Liste aller anderen Knoten, die seiner Meinung nach am Maschennetz
F:'
beteiligt sind, mit seinen direkt angeschlossenenNachbarn aus. Empfängt ein Knoten eine solche Mitgliedschaftsk von einem Nachbarn, integriert er diese Mormationen in seine Mitglicdschaftsliste und leitet die resultierende Liste an seine Nachbarn weitet. Diese Informationen breiten sich l m & h durch das Maschennetz aus, ähnlich wie in einem Distanzvektor-Routing-Protokoil. Möchte ein Host dem Multicast-Overlay beitreten, muss er die IP-Adresse von mindestens einem anderen, bereits im Overlay befindlichen Knoten wissen. Dann sendet er eine Nachricht vom Typ *Join hieshu an diesen Knoten. Letzterer verbindet den neuen Knoten durch eine Kante zu dem bekannten Knoten mit dem Maschennetz. Im Allgemeinen kann der neue Knoten eine Join-Nachricht an mehrere aktuelle Knoten senden, wodurch er dem Maschenneiz über mehrere Verbindungen beitritt. Hat sich ein Knoten durch eine Reihe von Verbindungen auf das Maschemetz aufgeschaltet, sendet er periodisch »Keep alivee-Nachrichtenan seine Nachbarn, um diese wissen zu lassen, dass er noch in der Gruppe-bleiben will. Möchte ein Knoten die Gmppe verlassen, sendet er eine Nachricht vom Typ »Leave Meshu an seine direkt angeschlossenen Nachbarn. Diese Information wird über die oben beschriebene Mitgliedschaftsliste an die anderen Knoten irn Maschennetz verteilt. Alternativ kann ein Knoten ausfallen oder einfach stillschweigend die Gruppe verlassen, was seine Nachbarn dadurch erkennen, dass er keine »Keep &veu-Nachrichten mehr sendet. Der Abgang einiger Knoten hat kaum eine Auswirkung auf das Maschennetz. Sollte ein Knoten aber erkennen, dass sich das Maschennetz auf Grund eines verlassenden Knotens zersplittert, sendet er eine nJoin-MeshuNachricht an einen Knoten im abgetrennten Bereich des Maschennetzes und erzeugt so eine neue Kante zu diesem Knoten. Man beachte, dass mögiicherweise mehrere Nachbarn gleichzeitig eine Abtrennung im Maschennetz feststelen, was zur Hinzufügung mehrerer Kanten über die abgetrennten Bereiche des Maschennetzes führt. Der bisherigen Beschreibung zufolge erhalten wir schlieSiich ein Maschennetz, bei dem es sich um einen Subgraphen des ursprüngiichen, volistandig verbundenen Internet handelt, dessen Leistung aus folgenden Gründen aber ~ c h oprimal t sein kann: (1)Die anfängliche Nachbarnauswahl erweitert die Topologie wahilos tun zusätzliche Verbindungen; (2)durch die Behebung einer Abtrennung könnten Kanten hinzugefügt werden, die lediglich im Moment, nicht aber langfristig nützlich sind; (3)die Gruppcmnitgliedschaft kann sich auf Grund dynamischer Beitritte und Abgänge ändern; und (4) die zu Grunde liegenden Netzwerkbedingungen können sich ändern. Deshalb müssen wir darauf achten, dass das System die Nitzlichkeit jeder Kante auswertet, was dazu führt, dass im Lauf der Zeit neue Kanten zum hfaschennetz hinzugefügt und vorhandene entfernt werden. Um neue Kanten hinzuzufügen, sondiert jeder Knoten i periodisch ein zufälliges Mitglied j, das momentan nicht am Maschmetz angescbiossen ist, misst die RoundtripLatenz der Kante (i, j) und bewertet dann die Nützlichkeit der Hinzu&gung dieser Kante. Liegt die Nützlichkeit oberhalb eines bestimmten SchweilenWerts, wird Verbindung (i,j) zum Maschennetz hinzugefügt. Diese Bewertung kann
gWI
1
9 AAmmltiAgM
Evaluatdlti 1it y (j) utility = 0 for each neniber m not equal t o i CL current latency t o node m along route through mesh if (NL < CL) thenNl = new latency t o node m along mesh if edge (i ,j ) is added utSli t y += (CL NL)/CL return u t i l i t y E
-
Die Entscheidung für oder gegen die Entfernung einer Kante ist ähnlich, auSer dass jeder Knoten i die Kosten jeder Verbindung zum aktuellen Nachbarn j wie foigt berechnet:
,
,
Eva1uateCost U) Costlt = n w e r o f nienibers f o r which i uses j as next hap Costjc = numbcr af Rlenibers f o r which j uses i as next hop r e t u r n nax(Costu. Costjt)
Danach sucht er sich den Nachbarn mit den geringsten Kosten aus und entfernt ihn, wenn die Kosten unter einen bestimmten Schwellenwert fallen. Zum Schluss noch ein Purikt: Da das Maschennea unter Verwendung von etwas gepwird, das im Wesentfidten ein Distanzveictor-Protokollist, ist es ein Leichtes, DVLYLRP awmführen, um einen eatsprechenden Multicast-Baum im Madennetz zu finden. Obwohl war wuniigiich nachgewiesen werden kann, dass clas eben b e s c w k Protokoll zu einem optimaien Maschennetmerk führt, sodass DvMpp den bestomöglichen Mdticast-Baum auswählen kann, weisen Simulati~flen und uaifangreiche praktische Edakmgen darauf bin, dass es gute Arbeit leistet.
Res-e O w ~ ~ e ~ b webmxisait B e M & @ttwhuwmdesRouting-Oveday findet alternative Rauten füt.t t a W 1 1 e Urhst-bnwendu~igmSolche Overlay-Netzwerke machen sich die Tatwehe zunutze, dass die Dreiedsunglewit (Tzbgle h q d t y ) im Innernet nichr-$ydt.AbbMufig 921zeigt, wi@ wir damit meinem. Es ist nicht unüblich, dass im Intern drei l b n b n e nenrla wir sie A, B und C - SO liegen, dass die Latenz zwischen.A und B gröt3er als dieSumme der Latenzen von A zu C und von C zu B ist. Qaa h d t , manchmal wäre es besser, seine Pakete indirekt über einen m v k b bqpdem Knoten ab .direkt an das Ziel zu senden. Ws kam das s e93 Nun, BGP hat nie versprochen, dass es die kiirzeste Rmtq zwisehei1 zwei Standortenfindenwürde; es versucht kdighch*irgedeine Route finden. Um die Lage noch zu ve-m, gibt es d o s e Gelegenheiten, mit auf Menschen amg&&tetea Regeln (Pdicies), den N o d b e t n ~ bvon W P unmmoBen. Das passiejrc z. B. dtan PeeMg-Punkten zwischen g r o b Backboaa. I S k Kurz,dass die D p e i h d e i c h h e i t im lnternet nicht greift, soll* nicht über-
-
:
. ;
-
raschen. Wie nutzen wir diese Tatsache? Im ersten Schritt muss man erkennen, dass es grundsatzlich einen Kompromiss zwischen der Skalierbarkeit m d dem Optimum
.
Abb. 9.21: Die Dreiecksungleichheit greift nicht unbedingt in Netmerken.
eines Routing-Algorithmus gibt. Einerseits skaliert BGP auf sehr s o & Nettmerke, wählt aber oft nicht die bestmögliche Route und passt sich nur langsam an Netzwerkausfälle an. Andererseits - falls man nur am Finden der besten Route unter einer Handvoll von Standooten interessiert ist - könnte man durch Oberwachung der Qualität jedes potenziell benutzten Pfads viel mehr erreichen, indem man jederzeit die bestmögiiche Route auswählen kann. Ein experimentelles Overlay namens RON (für Resilient Overlay Network) bewirkt genau das. RON skaliert nur auf einige Dutzend Knoten, weil es eine N d Strategie anwendet und dabei drei Aspekte der Pfadqualität (über aktive Sonden) zwischen jedem Standoirpaar streng überwacht: Latenz, verfügbare Bandbreite und AusfallwahrscheinlicMreit. Dadurch kann es sowohl die optimale Route zwischen einem beliebigen Knotenpaar auswählen als auch Routen schnell wechseln, falb sich die Netzwerkbedingungen ändern. Bisherige Erfahrungen haben gezeigt, dass RON in der Lage ist, Anwendungen bescheidene Leistungsverbesseningen zu bieten. Noch wichtiger ist abeq dags es sich viel schneller von Netzwerkausfällen erholen kann. Zum Beispiel lief 2001 eine Version von BON über eine 64-Stunden-Periode auf 12 Knoten, erkannte dabei 32 Störungen, die mehr als 30 Minuten andauerten, und war in der Lage, im Durchschnitt in weniger als 20 Sekunden das Netz wieder herzustellen. Dieses Experiment deutete auch darauf hin, dass die Weiterleitung von Daten durch nur einen zwischenliegenden Knoten normalerweise ausreicht, um Störungen des Internet zu kompensieren. Da RON nicht skaiiert, kann es nicht benutzt werden, um irgendeinem Host A zu helfen, mit irgendeinem Host B zu kommunizieren. A und B müssen im Voraus wissen, dass sie demnächst kommunizieren wollen und dann dem gleichen RON
Alle oben dargestellten Overlay-Netzwerke weisen ein Konzept auf, das im ARgemeinen im Mittelpunkt von Rechnernetzen steht: Vi-tlg. Das heißt, dass es möglich ist, aus abstrakten (logischen) Ressourcen ein Wtuelles Netzwerk zu konstruieren, das auf ein physikalisches, aus physikalischen Ressomcea bestehendes Netzwerk aufsetzt, Außerdem ist es möglich, diese Mi.uueUen N e t ~
Netzwerke wertvoll sind. 9.4.2 Peer-Wee~Netnirerke
Qenkr man dariiber nach, köarpm I?Scgriff,cwie 4ese $e$ut:zr werden, uni das h
m ~.
zufoIge kwr echtes Peer-to-Peer-System ist, weii es von einem muaien DateienRegister abhängt, und Benutzer dieses Verzeichnis dwchsuchennii)ssen, um herausgdiiden, w e h Maschine eine bestimmte Datei vorhält. Lcdigteh de.r 1eSchritt dsia eigentliche H a t e r l a d e n der Datei - erfolgt zwischetl Computern, die zwei Benutzern geböten; das ist a k r kaum mehr als ehe herkömmliche CliendServer-
-
.
Transaktion. Der einzige Unterschied besteht darin, dass der Server einem anderen Benutzer und nicht &an Großunternehmen gehört. Das führt uns zur mspringhchen Frage zurück: Was ist so interessant an Peer-toPeer-Netzwerken? Eine Antwort ist, dass sowohl der Pmzess des Auffmdens eines interessierenden Objekts als auch der Prozess des Henuiterladens diew Objekts auf einen lokalen Computer s t a t c a n b ohne dass der Benutzer eine zentrale Autorität kontaktieren muss, urid dass das System gleichzeitig in der Lage ist, auf Millionen von Knoten zu skalieren. Ein Peer-to-Peer-System, das diese beiden Aufgaben dezentral bewältigen kann, erweist sich als Overlay-Netzwerk, wobei die Knoten die Hosts sind, die interessierende Objekte (z. B. Musik-oder andere Dateien) gemeinsam nutzen wollen, und die Leitungen (Tunnel), die diese Knoten verbinden, die Rechnersequenz darstellen, die man besuchen muss, um das gewünschte Objekt ausfindig zu machen. Diese Beschreibung wird später, nachdem wir uns zwei Beispiele angesehen haben, klarer. Gnutella Gnutella ist eines der ersten Peer-to-Peer-Netzwerke, mit dem versucht wurde, zwischen dem Austausch von Musik (was meist das Copyright eines Dritten verletzt) und der gemeinsamen Nutzung von Dateien (was gut sein muss, da man uns Teilen ab dem Alter von Zwei beigebracht hat) zu unterscheiden. interessant ist an Gnuteiia, dass es eines der ersten Systeme dieser Art war; die nicht von einem zentralen Objektregister abhängen. Stattdessen arrangieren sich Gnutella-Teilnehmer selbst in einem Overlay-Netzwerk, vergleichbar mit demjenigen in Abbildung 9.22. Das bedeutet, dass jeder Knoten, auf dem die Gnutella-Software läuft (d. h., der das Gnutella-Protokoll implementiert), eine Reihe von anderen Computern kennt, die ebenfalls die Gnurella-Software ausführen. Die Beziehung BA und B kennen einand e r ~entspricht den Kanten in diesem Graph. (Wir wenden uns gleich der Frage zu, wie dieser Graph gebildet wird.) Abk 931: Beispieltopologieeines Gnutella-Peer-to Netzwerks
'
:
Machte der Benutzet an einem bestimmten Knoten ein Objekt h d e a , sendet Gnuteiia eine QUERY-&&cht & & Objekt, z. B.,durch Angabe des Dateinamens, an seine Nachbarn irn Graph. V&@ einer der Nachbarn über das Objekt, antwor-
QM 10-
tet er dem Knoten; der die Anfrage gesendet brat, mit einer Q U E R Y - m m WacbrkBt~in der er angibt, von wo das Objekt h t e r p i a d m werden hna (z, Bi . e hE * Mxi TCP-km-Nu~L~~E). nierei:Kmtcn Ituiadeam GET- oder mJTr ~ ~ b e n u ~ 1 2 m a u f ~ O ~ ~ I E a m hftage sieht adösen, leim er die Q U E B Y - N M t an j& s e hN d k .
Mit d e r e n Wortes: Onatella &W das Chwlay* zu bh.Gnutelia setzt ehe TTZ auf jede Aufzage, nicht tlaendlicb lbmeaakann. -Z zur TTL und Anhgekeue enthält jede QUERYNaelmkht eine ein. deutige Agfrageib-g (QmryI c b d i q m), die jedoctr Qieht die iden&iit der unpriingiichen Nacbkhtanq~lffheathdt. S m a h hibtf jedar Kwm ein s-V d t Q U E R Y - N a * die M& MWuiea,in h & QlD und der Nachbar, der die QUERY gesendet hat, adgezeichn* w e h Diese Aufzeichnung wird auf zweierlei Art verwendet: Erstens leitet der boten eine QUERYNachricht nicht weite&falis er k r h eine QUEl[IY mit einer QJI) erhalten'hat, & mit einer kürz&& v&omgdenen iikrdnshm,Ds dient dem Zweck, Weite&~Weo~Uer~~eiiduialsdies~Bie'fl[Zbewit;kt.~d tens W& da &zoten, wmn er eint QUER.Y-RE5PONSE vdn einem D o m - Nachbarn erhalt, dasJ er die Antwort an den UpstreamNach~w e i t ~ muss, ~ n des die Q W K Y - M d & ump~ n d eh t Aufdiese.W@isebahnt sich d h Anmors ihem W% zaPücEr nun u r s p w B c t I l #irw 0 b n e . b dic4lamaWn~ l&izndea Knoten whm, wer das.b&de €&+da~kwi&aw gesdt hat. . W i r kehren an dm Frage mrW, wie der Graph m& Ein Knoten mmd er einem Gnu&grm-ch mindestens einm d e n #aoten kenne% h l a beitritt, ~ Da neue Knoteg ist:zuniaäkJr über diese Verbindmigan da Ovalay Pmach 1-t e h t.x%kmk~ Kasten aber d e r @Klmen , &* QtllrR'-mpaSE-Nachri&ten & Objekte, die ez oder £iju Anlwmten, die 5bn passieren. Einem Knoten steht die Entscheidung kei, welche Kamen, die ez auf d h e Weise ende&, er ajs N~chbarbehalrend i . Das CiiutefPahotokoll umfasst PING und Pd~EhJachri&ten,mit denea ein Knoten sondieren k m , ob ein bestimmterNachbar noch existiert bzw. mit dmm dieset Nachbar mthalt @&.
Ob*
.-
**
Worte%.
Es sollte klar seins dass Gnutella kein besonders cleveres Protokoll iss, und nah spätam Systeme wwde wcmucht, es zu aerhsern. Eine bimendm, tldder Veebessemaga mogüch skl, ist die Art der Veaiiuag voa Ruten weist das angenehm Merkmal auf, dass das gemimchte Objekt in so wenig Hops wie m6glieh ~ t i e rgehden t wird, es skaliea aber nicht gat. Anf7aen k ( S m plifallsges t a e s d e r $em& der q - e M c h k e i t auf der G&@e &%heresEgebn hweftergeieh werden. Eint zweite Ditnension ist &E proaktive Riplllrarion von d e m je mehr Kopien von einem hdmnsen Objtfn rwhanden sind, rua ss l e k h ~ mllte r eiiiiie Eol,ie bawm zu .£iadgn.win.Altamth köhmm i x t dlig
~
~
*
~
~
e
a
a
,
d
i
e
~
m
n
e
m
-
a
9.40~-
1
6SS
6
StrukturierteBverlays Während Systeme zur gemeinsamen Nutzung von Dateien darum kämpften, das von Napster hinterlassene Vakuum zu füllen, untersuchte die Forschergemeinschaft ein alternatives Design für Peer-to-Peer-Netzwerke. Wir bezeichnen diese Netzwerke als strukturiert, um sie von der im Wesentlichen zufälligen (unstrukturierten) Weise abzuheben, in der sich ein Gnutella-Netzwerk weiterentwickelt. Unstrukturierte Overlays wie Gnutella verwenden triviale Overlay-Konstruktions- und -Wartungsalgorithmen, aber das Beste, was sie zu bieten haben, ist eine unzuverlässige, nifallsgesteuerte Suche. Im Gegensatz dazu sind strukturierte Overlay-Netzwerke auf die Obereinstimmung mit einer bestimmten Graphenstruktur ausgelegt, die zuverlässige und effiziente Objektauffindung (mit auf Wahrscheinlichkeiten basierender Verzögerung) im Gegenzug zur zusätzlichen Komplexität während der Konstruktion und Aufrechterhaltung des Overlay-Netzwerks bietet. überlegt man sich auf abstrakter Ebene, was wir hier zu tun versuchen, gilt es, zwei Fragen zu beantworten: (1)Wie bilden wir Objekte auf Knoten ab, und (2)wie dirigieren wir Anfragen an den Knoten, der für ein bestimmtes Objekt zuständig ist? Wir beginnen mit der ersten Frage, für die es eine einfache Aussage gibt: Wie bilden wir ein Objekt mit dem Namen x auf die Adresse eines Knotens n ab, der diesem Objekt dienen kann? Während traditionelle Peer-to-Peer-Netzwerke keine Kontrolle darüber haben, welcher Knoten das Objekt x beherbergt, köiulten wir Objekte leichter wiederfinden, wenn wir kontrollieren könnten, wie diese Objekte über das Netzwerk verteilt werden. Eine bekannte Technik für die Abbildung von Namen auf Adressen verwendet eine Hash-Tabelle, so dass hash (X) + n bedeutet, dass Objekt x zuerst auf Knoten lz platziert wird und ein Client, der später versucht, x zu finden, lediglich den Hash-Wert von x ermitteln müsste, um festzustellen, dass es sich auf Knoten n befindet. Ein Hash-basierter Ansatz hat die angenehme Eigenschaft, dass er dazu neigt, die Objekte gleichmaig über eine bestimmte Anzahl von Knoten zu verteilen, jedoch leiden einfache Hash-Algorithmen an einer fatalen Schwäche: Wie viele mögliche Werte von n sollen wir zulassen? (In der HashTerminologie heißt das, wie viele Buckets (Eimer)sollte es geben?) Auf naive Weise könnten wir uns auf - sagen wir - 101 mögliche Hash-Werte einigen und eine Modulus-Hash-Funktionbenutzen; d. h. return xOh 101
Gibt es aber mehr als 101 Knoten, die willens sind, Objekte zu beherbergen, können wir sie leider nicht alle nutzen. Wählen wir andererseits eine gröf3ere Zahl als die größtmögliche Anzahl von Knoten, entstehen einige Werte von X , deren HashErgebnis auf die Adresse eines nicht existierenden Knotens fällt. Aderdem besteht der nicht ganz so triviale Aspekt der Obersetzung des Werts, den die Hash-Funktion zurückgibt, in eine tatsächliche IP-Adresse.
Um diese Frage zu lösen, verwenden Peer-to-Peer-Netzwerke einen als konsistm tes Hashing bezeichneten Algorithmus, der eine Menge von Objekten x gleichmägb
über einen groi3en ID-Raum hasht. Abbildung 9.23 zeigt einen 128 Bit grof3en IDRaum als Kreis, wobei wir den gleichen Algorithmus benutzen, um sowohl Objekt% also hash (object-nume) + objid, als auch Knoten, also hash (IP-addr) i, nodeid, auf diesem Kreis anzuordnen. Ein ID-Raum von 128 Bit ist enorm; deshalb ist es eher unwahrscheinlich, dass ein Objekt genau auf die gleiche ID wie die IP-Adresse eines Computers hasht. Um diese geringe Wahrscheinlichkeit zu berücksichtigen, wird jedes Objekt auf dem Knoten eingesteiit, dessen ID der Objekt-I' in diesem 128-Bit-Raum am nächsten liegt. Mit anderen Worten: Die Idee ist es, eine qualitativ hochwertige Hash-Funktion zu verwenden, um sowohl Knoten als auch Objekte auf den gleichen, großen und dünn besäten ID-Raum abzubilden. Dann werden Objekte durch die numerische Nähe ihrer jeweiligen Identifizierungenauf Knoten abgebildet. Wie beim gewöhnlichen Hashing werden Objekte dadurch relativ gleichmägig auf Knoten verteilt. Irn Gegensatz zum gewöhnlichen Hashing muss ab& nur eine kleine Objektmenge verschoben werden, wenn ein Knoten (Hash-Bucket) dazustöf3t oder ausscheidet. 2'28-1
0
Abb. 9.23: Sowohl Knoten als auch Objekte werden auf den IPRaum abgebildet (gehasht), wobel sich Objekte auf dem nkhsten Knoten In diesem Raum befinden.
BBir wenden uns jetzt der zweiten Etage zu: Wie W& ein Benutze4 der auf Objekt x zugreifen möchte, welcher Knoten am n9cbsty:n zu ID von X in &em Raum liegt? Eine mögiiche Antwort ist, dass jeder Knotui eine voiiständjge Tabeiit?mit Knoten-
IDs und den damit verbundenen IP-Adressen verwaltet; das wäre aber bei einem großen Netzwerk nicht praktikabel. Die Alternative - der in strukturierten Peer-toPeer-Netzwerken verwendete Ansatz, ist die Weiterleitung einer Nachricht sn diesen Knoten! Mit anderen Worten: Wenn wir das Overlay auf clevere Weise konstruieren, was gleichbedeutend mit der Aussage ist, dass wir Einträge für die Routing-Tabelle eines Knotens auf clevere Weise wählen müssen, dann finden wir einen Knoten einfach dadurch, dass wir in seine Richtung weiterleiten. Dieser Ansatz wird manchmal auch als Distributed Hash Tables (DHT) bezeichnet, weil die Hash-Tabelle konzeptionell über alle Knoten im Netzwerk verteilt ist. In Abbildung 9.24 sehen wir, was mit einem einfachen 128 Bit grof3en ID-Raum passiert. Um die Diskussion so konkret wie möglich zu halten, betrachten wir den von einem bestimmten Peer-to-Peer-Netzwerk namens Pastry benutzten Ansatz. Andere Systeme funktionieren auf ähniiche Weise. (Siehe Quellenhinweise unter .Weiterführende Literaturu zu Arbeiten mit zusätzlichen Beispielen.) Abb. 9.24: Durch Weiterleitung über das Peer-to-Peer-OverlayNetzwerk lassen sich Objekte finden.
Angenommen, Sie bdiqkn sich aa dem b a t e n mit der (hexadezimsilen) Wlfc. und vasuch.en, das Objeb,mitder D d46al o ni h d e ~,Sie . steilen fest, dass Ihm .a) nichts mir:derjenigen &Objekts gemeinsam hw, wLsm aber, dass ein Knom mindestens a d das 1~riifiz.dhat. ~ e a e r ' ~ n o t leieagt näher a h Se im 128 Bit p&a D-Raum; deshalb leiten Sie die Nachricht an diesen woim (Wir g0bm das F m t der m e i t e r p h e n E S w t nicht an, es entspricht abes in eawa falgemier Aussagp: .Finde Objekt d46alc«.),Un&rder b n n a k , dass h t m d13W einen wier a Knoten kenn4 bar eio s o noch ~ längeres PtäfUt mit &q Objekt ~ r n d a s a m hst, leiw er die Na&@ weiw Q k r Prozess der dlmä~&HEbenAmiihulwlg iqa D-Rauiq 4 so*' fkgemtzq bis man ehan 1010tee mdt, der k e h nabsrs~,I€~&tet3 kennt. Der P & ~ ~ +zIdI~ i g eist: dieser Knoten derjenige, der das- Objekt:
.0311
1
9 Amnmndungan
beherbergt. Man beachte, dass die Nachricht tsirsächlidi Knoten für Knoten dueh das ni Gnmde kegende lmmm weitergeleitet wird, w h d wir uns logisch da& den *D-Raume bewegen. Jeder Knoten verwaltet sowohl eine Routing-Tabeile (Näheres weite^ unm)iw3 die IP-Adressen einer kleinen Menge numerisch grü&rer und hinerer Knoten-ID9, Das wird als Blamenge (Leaf Set) des KnoEens bezeichnet. Die Relevanz der Bh* menge ist folgende: Nach der W e k e r l e i ~ gein@ Nachticht an einen.Knoten in d& gleichen Blattmenge wie der Knoten, auf dem sich das Objekt befllidct, kann diem Knoten die Nachricht direkt an das endgültige Ziel weiterleiten. Anders ausge-. dnickt, vereinfacht die Blattmenge die koaekte und effizierire Zustellung einer Nachricht an den numerisch nächstliegenden Knoten, auch wenn es m e h r e b o t e n mit der $eichen maximalen Präfixlänge wie die Objekt-ID gibt. A&rdem ma& die Nattmenge das Routing robusreq weil jeder in einer Blatmmge befindliche Knoten eine Nachricht ebenso gut an einen anderen Knoten in der g l e i c h Menge weiterleiten kann. Ist also ein Knoten nicht in der tage, durch Weiterleitung einer Nachrichr vorwärts zu kommen, könnte das einem seiner Nachbarn in der Blattmenge geiingen. Zusammenfassend wird die Routing-Prozedur wie folg definiea
'.
.
i f D i s within range of my leaf set fomard to nuinerically closest iseniber in Teaf set el se let Z = length of shared prefjx let d = value of lth digit in D's address i f RouteTabCZ ,di exists fomard to RouteTab[l ,dJ el se fomard to known node with at least as long a prefix and i s numerically closer than this node
E -
Die als RouteTab bezeichnete Routing-Tabeile ist ein zweidimensionales Array. Es hat eine Zeile für jede hexadezimale Ziffer in einer D (in einer 128-Bit-ID gibt es 32 solche Ziffem) und eine Spalte für jeden hexadezimaen Wert (wovon es 16 gibt). Jeder E i a g in Zeile i hat das gleiche Präfix mit Länge i wie dieser Knoten, und in dieser Zeile hat der Eintrag in Spalte j den hexadezimalen Wert j in Position i + 1. Abbildung 925 zeigt die eraen drei ZeiIen einer Routing-BeispielwbelEe für Knotw 6&lfenc, wobei x ein nicht spezifiziertes SuffUE bedeutet. Diese Abbildung zeigt das p a m d e D-Präfix zu jedem Tabelleneintrag. Sie zeigt nicht den tatsächlichen, im Ehtrag enthaltenen Wert - die IP-Adresse des nächsten Knotens, an den weitedeiten ist. Die Fmveitcrung des Overisry-Neäwerks um einen Knoten ist vergleichbar mit der Weiterleitung einer Nachricht von der Art *Objekt findenu an e h Objekt. Der neue Knoten muss mhdestens ein aktuelles Mitglied kennen. Er fordert dieses Mitglied auf, eine Nachricht vom Tjrp *Knoten~ ~ e an
'
Abb. 9.25: RoutingBeispieltabdledes Knotens mit ID 65alfcx
Row 0 Row 1 Row 2
Row 3
anderen Knoten mit dem gleichen Präfix und kann beginnen, seine Routing-Tabelle auszufüllen. Im Lauf der Zeit werden weitere Knoten zum Overlay hinzugefügt, und die vorhandenen Knoten haben die Möghchkeit, Informationen über die neuen Knoten in ihre Routing-Tabellen einzutragen. Sie tun das, wenn der neue Knoten ein längeres P r ä h als das längste momentan in der Tabelle stehende Präfix hat. Nachbarn in den Blattmengen tauschen auch Routing-Tabellen untereinander aus, was bedeutet, dass sich die Routing-Informationen mit der Zeit durch das Overlay ausbreiten.
Ab&
Erweiterung des Netzwerks um einen Knoten
Sie haben vielleicht festgestellt, dass strukturierte Overlay-Netzwerke zwar eine statistische Grenze für die Anzahl der Routing-Hops bieten; die ein b e s b t e n Objekt suchen müssen - die Anzahl von Hops in Pastry ist auf bgl& begrenzt, wobei N die Knotenzahl im Overlay ist -,dass jeder Hop aber eine beträchtliche Verzögerung bedeuten kann. Das liegt daran, dass sich jeder damischenliegende ,Knoten an einem zufälligen ~Gndortirgendwo M Internet befinden kann. (Im schlechtesten Fall liegt jeder Knoten auf einem anderen Kontinentl) Tatsächlich ist die erwartete Verzögerung jedes Hops in einem weltweiten Overlay-Netzwerk unter Verwendung des oben beschriebenen Algorithmus gleich der durchwhnittlkhe11Verzögerung aller Knotenpaare M Internet! Zum Glück können wir das in der Praxis viel besser bewerksteliigen. Die Idee dabei ist es, jeden Routing-Tabelleneintragso zu wählen, dass er sich auf einen nahegelegenen Knoten im zu Grunde liegenden physikalischen Netzwerk bezieht, unter Einbeziehung aller Knoten mit einem ID-Präfix, das dem Eintrag entspricht. Hierd&ch erreicht man Routing-Verzögerungen von Ende zu Ende, die sich nur um einen kleinen Faktor von der Veazögepmg zwischen dem Quell- und Zielknoten unerscheiden. Unsere bisherige Diskussion hat sich auf das &gemeine Problem des Auffhdem von Objekten in einem Peer-to-Peer-Netzwerk konzentriert. Auf der Grundlage einer solchen Routing-Infr~strukturist es mogiich, unte&&che Dienste einzurichten. Ein Dienst für die gemeinsame Nutzung von Dateien könnte z. B. Dateinamen als Objekmamen verwenden. Um eine Datei zu finden, hasht man zuerst ihren Namen auf eine entsprechende Objekt-ID und dirigiert dann eine Nachriche vom Typ »Objekt findena an diese ID. Das System k i i ~ t auch e jede Datei auf mehrere Knoten replizieren, um die Vedügbarkeit zu verbessern. Das Speichern mehrerer Kopien in der Blattmenge des Knotens, an den eine bestimmte Datei normalerweise weitergeleitet wird, wäre eine Mögkhkeit, das zu bewerkstelligen. Man beachte, dass diese Knoten wahrscheinlich physisch quer über das Internet verteilt sind, auch wenn sie im ID-Raum Nachbarn sind. Das heiOt also beispielsweise, wenn alle Repliken einer Datei in einem traditionellen Dateisystem durch Stromausfd in einer ganzen Stadt unzugänglich sind, würde höchstwahrscheinlich eine' oder- mehrere Repliken in einem Peer-to-PeerNetzwerk einen solchen Ausfaii überleben. Ober die gemeinsameDateinutzung hinausgehende Dienste können ebenfalls mit verteilten hsh-Tabellen eingerichtet werden. Man denke z. B. an Multicast-Anwendungen. Statt einen ~ d t i c a s t - ~ a u aus m einem Maschennetz zu. konstruieren, könnte man den Baum aus Kanten irn strukturiertenOrerlay bilden und &durch die Kosten der Ovwlay-Kowtdction und -wartung auf meiirere Anwendangen und Multicast-Gruppen verteilen. 9.43 Inhaltsverteilungsnetzwerke Wir haben bereits gesehen, dass die Ausführung von HTT'P über TCP es Webbrowsern ermöglicht, Seiten von Websemern zu holen. Allerdings weiß jeder; der schon eine Ewigkeit warten musste, bis eine Webpage angezeigt &rd, dass das System weit davon entfernt ist, perfekt zu sein. Bedenkt man, dass die Backbones des Internet
heute aus OC-192-Leitungen (10 Gbit/s) bestehen, ist nicht ganz klar, warum das passieren kanq. Allgemein besteht Einigkeit darüber, dass es beim Herunterladen von Web-Pages drei potenzielle Engpässe im System zu überwinden gilt: Die erste Meile: Auch wenn das lnternet über Leitungen mit großer Kapazität verfügt, wird eine Webpage nicht unbedingt schneller heruntergeladen, wenn der Benutzer über.ein 56-kbitfs-Modem angeschlossen ist. Die letzte Meile: Die Leitung zwischen dem Server und dem Internet sowie zum Server selbst kann durch zu viele Anfragen überlastet sein. ~eering-punkte:Die Handvoll von ISPs, die zusammen den Backbone des Internet implementieren, mögen intern Leitungen mit großer Bandbreite haben, sind aber kaum daran interessiert, sich gegenseitig Konnektivität mit großer Kapazität zur Verfügung stellen. Sind Sie an einen ISP A angeschlossen und der Server ist mit ISP B verbunden, kann die von Ihnen angeforderte Page genau an dem . Punkt hängen bleiben, an dem das Reich von A an dasjenige von B angrenzt. .
'
Abgesehen vom ersten Problem kann der Einzelne nicht viel tun. Man kann aber Replikation verwenden, um das zweite und dritte Problem anzugehen. Ein System, das sich dessen bedient, wird oft als Inhaltsverteilungsnetzwerk (Content Distribution Network, CDN) bezeichnet. Akamai und Digital Island sind die wahrscheinlich am besten bekannten CDNs. Einem CDN liegt die Idee zugrunde, eine Sammlung von Surrogat-Servern (oder Spiegel-Server) geografisch zu verteilen; auf diesen werden Seiten zwischengespeichert, die normalerweise in einer Reihe vonBackend-Servern verwaltet werden. Das heißt, statt Millionen Benutzer ewig warten zu lassen, bis sie www.cnn.com kontaktieren können (was man als Flash-Crowd bezeichnet), wenn eine Riesengeschichte Schlagzeilen macht, lässt sich diese Last auf viele Server verteilen. Statt mehrere ISPs zu durchqueren, um www.cnn.com zu erreichen, sollte es mit weitläufiger Verteilung dieser Surrogate-Server über alle Backbone-ISPs hinweg augerdem möglich sein, einen zu erreichen, ohne einen Peering-Punkt überqueren zu müssen. Natürlich ist die Pflege Tausender von Surrogate-Servern überall im Internet für einen einzelnen Standort, der bessere Zugriffszeiten auf seine Webpages bieten möchte, viel zu teuer. Kommerzielle CDNs bieten diesen Dienst für viele Sites, sodass sich die Kosten auf viele Kunden verteilen. Obwohl wir sie Surrogate-Server nennen, müsste man sie eigentlich als Caches betrachten. Verfügen sie nicht über die von einem Client angeforderte Page, wenden sie sich an den Backend-Server. In der Praxis replizieren die Backend-Server aber ihre Daten proaktiv auf die Spiegel-Server, statt zu warten, bis diese selbst anfragen. Dabei werden nur statische Seiten, im Gegensatz zu dynamischen Inhalten, auf die Surrogate-Server verteilt werden. Clients müssen sich dann an den Backend-Server wenden, um einen häufig aktualisierten Inhalt (z. B. Sportergebnisse und Aktienkurse) oder einen berechneten Inhalt (z. B. eine Datenbankanfrage) zu erhalten. Eine groge Anzahl geografisch verteilter Server löst das Problem aber nicht ganz. Um das Bild abzurunden, müssen CDNs auch eine Reihe von Redirectors bereitstel-
702
1
9 Anwendungen
len, die Client-Anfragen an den geeignetsten Server weiterleiten (siehe Abbildung 9.27). Mit Redirectors wird primär das Ziel verfolgt, für jede Anfrage den Server auszuwählen, der zur besten Antwortzeit (Response Time) für den Client führt. Ein zweites Ziel ist es, für das System als Ganzes so viele Anfragen pro Sekunde zu verarbeiten, wie die zu Grunde liegende Hardware (Netzwerkleitungen und Webserver) unterstützen kam. Die durchschnittliche Anzahl von Anfragen, die innerhalb einer bestimmten Zeit erfüllt werden kann, wird als Systemdurchsatz (System Throughput) bezeichnet. Das ist ein vorrangiger Faktor, wenn das System stark belastet ist, z. B. wenn eine Flash-Crowd auf eine kleine Anzahl von Seiten zugreift oder ein DDoS-Angreifer (DistributedDenial of Service)es auf eine bestimmte Site abgesehen hat, was mit CNN, Yahoo und mehreren anderen bestens bekannten Sites im Februar 2000 geschehen ist.
Geografisch verteilte Spiegel-Server
Redirectors --
Abb. 9.27: Die Komponenten eines lnhaitsverteilung~ne~we~ [CDN)
CDNs stiitzen sich bei der Entscheidungywie Cllent-Magen vdrteilt weiden sollen, auf m e h r e Faktoren. Um z. B. die htwart&t zu minimieren, wählt ein Redimtor vielkicht einen Server auf der Gnuidlage seiner Naht zuxr~Netzwerk. Um &Gegengatz ckm den S y m m d h e inqmmt zu p e r b r n , ist & wtmsch&swert, die Last glJchdf3Jg auf eine Server-Mengem verteilen; fowohl h r D h m t z als B U C ~ & ~ b k iwerden t mbesserr; wenn der Verreihme&*w die Lo&alit& fbcdicp). Mcksichtigr, d. h. einen ,Server W%&, 'in des= Cache sich die sage M@ Wge h&hs~ahrscheinli~'ii. bereits befinht. Die ,gimaiae K o m h ~ t i s nvon
j
'
;
Faktoren, die ein CDN berücksichtigen sollte, steht in der Diskussion. Im folgenden Abschnitt betrachten wir einige Mogiichkeiten.
Mechanismen Wie bisher beschrieben, ist ein R e d i m r ledigiich eine abstrakte Funktion, obwohl es sich wie etwas anhört, das ein Router ausführt, weil er eine Anfragenachricht logisch weiterleitet, ähniich wie ein Router Pakete weiterleitet. Tatsächlich gibt es mehrere Mechanismen, die man benutzen kann, um Redirectiori (Umadressierung) zu implementieren. Für den Z w d dieser Diskussion gehen wir davon aus, dass jeder Redirector die Adresse jedes verkgbaren Servers kennt. (Von hier ab lassen wir das näher bestimmende Wort .Surrogat. weg und sprechep einfach nur von einer Server-Menge.) In der Praxis erfolgt eine Art von Out-of-Band-Kommunikation, um diese Informationen im Zuge beitretender und ausscheidender Server auf dem neuesten Stand zu halten. Erstens lässt sich Reduection dadurch implementieren, dass man DNS erweitert, um Clients unterschiedliche Server-Adressen zurückzugeben. Fordert ein Ciient z. B. die Aufiösung des Namens www,cnn.com an, könnte der DNS-Server die IP-Adresse eines Servers qwückgeben, auf dem sich Webpages von CNN befinden und der gerade am wenigsten überlastet ist. Alternativ kann man einfach Adressen für eine bestimmte Server-Menge im Round-Robin-Verfahren zurückgeben lassen. Die Grantdarität einer auf DNS basierten Redirection ist normalerweise site-spezifisch (z. B. cnn.com) und nicht URL-spezifisch (z. B. httpJIwww.cnn.com/2002MIORLD/eu~W 2l/william.birthdayhndexXMml).Wird eine eingebettete Verknüpfung zurückgegeben, kann der Server die URL umschreiben und dadurch den Client auf den für das spezifische Objekt geeignetesten Server verweisen. Kommerzielle CDNs verwenden im Wesentlichen eine Kombination aus URLUmschreibung und DNS-basierter Redirection. Aus Gründen der Skakrbarkeit verweist der DNS-Server auf hoher Ebene zuerst auf einen DNS-Server der regionalen Ebene, der dann mit der tat$ichlichen Server-Adresse antwortet. Um rasch auf Anderungen reagieren zu können, drücken die DNS-Server die lTI. der von ihnen zurückgegebenen Ressourcendatensätzeauf ein sehr kurzes Intervall, z. B. 20 Sekunden. Das ist notwendig, damit Clients keine Ergebnisse zwischenspeichern und dadurch nicht mehr zum DNS-Server zurückkehren, um den jeweils neuesten URU Server-Verweis zu holen. Eine weitere Möglichkeit ist die Verwendung des Redirect-Feature von HTTP: Der Client sendet eine Anfragenachricht an einen Servei; der mit einem neuen (besseren) Server antwortet, den der Client für die Page kontaktieren soll. Leider führt die Server-basierte Redirection zu zusätzlicher Roundtrip-Zeit irn Internet und noch schlimmer - Server können an einer durch die Redirection-Aufgabe selbst überlastet werden. Befindet sich ein Knoten stattdessen in der Nähe des Client, z. B. ein lokaler Web-Proxy, der verfügbare Server kennt, dann kann er die Anfragenachricht abfangen und den Client anweisen, die Page von einem entsprechenden Server anzufordern. In diesem Fall müsste entweder der Redirector an einem zentralen Knotenpunkt (ChokePoint) sitzen, den alle von der Site abgehende Anfragen passie-
7a4 19AUilmRdting.n
ren, oder der Client müsste durch explizite Adrcssienuig des Proxy kooperieren (wie bei einem klassischen, im Gegensatz zu einem transparenten Proxy). An-diesemPunkt fragt sich der Leser vielleicht, was CDNs mit Overlay-Netzwerken zu tun haben. Während die Betrachmg eines CDN als Overlay ein M d i weit hergeholt zu sein scheint, weisen bei& doch ein seh wichtiges gemeinsames M e r h d auf. Wie eh Overiay-Knoten trifft ein Proxy-basierter Redireccor seine huthg-Entscheidung auf Anwendungsebene. Statt ein Paket anhamd einer Adresse und seine^ Kenntnis der N~tawerktopoiogiezu befördern, leitet er ElTTP-Anfrap anhand einer URL und seiner Kenntnis des Standorts und der Belastung von Servera weitem. Die heutige Intemet-Archimkm unterstützt keine direkte Reditecrion, w&i wir mit *direkte meinen, dass der Clim rdie HTTP-Anfrage an den Redirector sendet, der sie wiederum an das Ziel wei~er1eitet.Redirection wird im t y p i s c h Fall also indirekt implementiert, wobei der Rediremr die entsprechende Zieladrewe zurückgibt und der Client den Server selbst kontaktiert. Regeln (Pdicies) Wir berrachten jetzt einige Beispielregeln, & Redkeaors anwenden körnen, um Anfragen weiterzuleiten. Eigentlich haben wir eine einfache Regel Round-Robin bereits e d t . Ein ähnlich= Schema wäre die einfache, iddlsgesteuerte Auswahl der ve&gbarcn Server. Beide b ä t l i e sind recht gut in der gleichmäfsigen Verteilung der Last hn CDN, sind aber nicht so gut darin, &e vom Clienr wahrgenommene hmttsceit zu verringern. Ganz offensichtlich bedcksichtigt keiner dieser beiden Ansätze die Memworknähe; vor allem aber ignorieren sie die Lokalitiit. Das heiat, Anfragen nach der gleichen URL werden an unterschiedliche k m r weiwqpleitet, was die Wahrscheinlichkeit verringert, dass & Seite vom Cache des ausgewählten Servers ausgegeben wird. Dadurch ist der Server gezwungen, die Seite von s e h r Platte oder rnciglicbrweise sogar vom Backend-Server zu holen. Wie kann eine verteilte Menge von Redirectors verahssen, dass M a g e n nach der gleichen Seite ohne globale Koordination zum &khen Semr (oder eher kieinen Zahl von Servern) gehen? Die Antwort ht überraschend einfach: Alie Redkecmrs verwenden eine Ehehing-Fotm, um WRLs demmwiisti85:k auf einen kleinen Wetrebereich abzubilden. Dm primäre Vorteil dieses Ansatzes ist, dass keine Kommunikation mischen Re&ectom erfcwderiieh ist, um einen koordinierten Ablauf zu erreichen. Der Ha~hing-Prozessproduziert immer die gleiche Ausgabe, gleiehghitiig,welcher Redireciror die URL empfängt. Was macht alm eh gutes Hashhg-Schw aus? Das id~wiseheMottulusHaahing-Schema, d s jede URL modulo der A w d l von &mrnM t , ht &r diese Umgebung nicht geeignet-D98 ist darin be&bdet, das die Mtxhdtts-BerAimg W €&l@El V W & ~ ~ ~ X % %ttCkWd M &f t&t d M 3&?ht!8 sle ~ v e ~ - z u d ~führt, ebl fahsieh die SerPer-Anmhi äadett. Wir erwarten mrt keim h4ufigen hdemiagen der Server-Menge, jedoch ist die Tamch,.dass & H i n r s u w g neuer Server zur Menge eine massive ?$hauwehg eemsa&& nicht w b c b w e r t , Eine Alternative ist die Verwendung &$ ia;i&hm 80wistentm H&&pdlg&thmus, der in Abschnitt 9.4.2 behandelt wurde, Im Besonderen hasht jeder Redirector
-
-
,
.
%
zuerst jeden S e ~ e auf r den Einheitskais. Für jede ankommende URL hasht der Redireaar dann auch die URL auf einen Wert im Einheitskreis, und die URL wird dem Server zugewiesen, der seinem Hash-Wert im Kreis am nächsten liegt. Fällt bei diesem Schema ein Knoten aus, wird seine Last auf sehe Nachbarn (im Einheitskreis) verlagert, sodass die Hinzufügung oder Entfernung eines Servers. lediglich lokale Änderungen in den Anfragezuweisungjen nach sich zieht. Im Gegensatz zum Peer-to-Peer-Fall, in dem eine Nachricht von einem Knoten zu einem anderen weitergeleitet wird, um den Server m finden, dessen ID am nächsten zu den gewünschten Objekten liege, wissen alle Redirators, wie die k e r - M e n g e a d den Einbitskreis abgebildet wird, sodass sie unabhängig den jeweils .nächsten« auswählen k6men. Diese Strategie lässt sich leicht so erweitern, dass die Servw-iL;astberücksichtigt wird. Angenommen, der Redirector kennt die momentane Last jedes verfügbaren Servers. Diese Information mag nicht unbedingt aktuell sein, jedoch können wir uns vorsteilen, dass der Redirector einfach zählt, wie oft er in den letzten paar Sekunden eine Anfrage an jeden Server weitergeleitet hat, und diese Zahl dann als Schätzung der momentanen Last dieses Servers benutzt. Bei Empfang einer W hasht der Redirector die URL plus jeden der verfügbaren Server und sortiert die resultierenden Werte. Diese sortierte Liste definiert die Reihenfolge, in der die verfugbaren Server vom Redirector betrachtet werden. Dann durchschreitet der Redirector die Liste von oben nach unten, bis er einen Server findet, dessen Last unterhalb eines bestimmten Schwellenwerts liegt. Der Vorteil dieses Ansatzes ist im Vergleich zum einfachen konsistenten Hashing, dass sich die Server-Reihenfolge für jede URL unterscheidet. Fällt also ein Server aus, wird dessen Last gleichmäßig auf die übrigen Maschinen verteilt. Dieser Ansatz bildet die Grundlage für das Cache Array Routing Protocol (CARP)und ist im unten folgenden Pseudocode dargestellt. SelectServer(URL, $) for = each Server si in server set S weightr= hash(UßL, address(si)) soft weight for each server sj in decreasing order of weight, if = Load(sj) < threshold then retum sj return server with highest weight
Mit zunehmender Last ändert sich dieses Schema von der ausschließlichen Verwendung des ersten Servers in der sortierten Liste auf die Verbreitung der Anfragen auf mehrere Server. Einige, normalerweise von ,beschäftigten* Servern behandelte Seiten werden allmählich auch von weniger ausgelasteten gehandhabt. Da dieser Prozess auf der Gesamtlast ailer Server und nicht auf der Beliebtheit einzelner Seiten basiert, finden Server, auf denen sich einige beliebte Seiten befinden, eventuell weitere Server, mit denen sie ihre Last .teilen können, an Stelle von Servern, auf denen sich mehrheitlich unbeliebte Seiten befinden. Irn Verlauf des Prozesses werden einige
b
M
1
9 Anwmdungein
unpopuläre Seiten im System einfach dadurch repliziert, dass sie zufällig vorwiegend auf k h ä h i g t e n Servern liegen. Gleichzeitig ist vrorstellbar, dass alle Senm inn System mch und nach für die Bedienung von extrem b e l i e h Seiten zuständig sind. Schlieglich ist es möglich, Netzwerkniihe auf mindestens zweierlei Art in die Gleichung einzubeziehen. Dureh die erste Art schwindet die Unterscheidung h~ h e nServer-Last und Netzwerknähe, da überwacht wird, wie laage ein Servw braucht, um Anfragen zu beantworten. Der gemessene Wett wird dann im vorhergehenden Algorithmus ab ~Server-Laste-Parameterbenutzt, Dime Strategie neigt zur Bevorzugung nahegelegener / wenig belasteter Server gegenüber weit entkntea I stark belasteten Servern. In einem zweiten Ansatz wird die Nabe zu einem friiheren Zeitpunkt in die Entscheidung eingebunden, indem die vom obigen Ale;r,~tthmus(S) behksichtigten Server-Kandidaten aaf diejenigen begrenzt werden, die in der N i e iiegen. Das schwierigere Problem ist die Emscheidunp, welche der potenziell zahlteichai Server entsprechend nahe liegen. Ein Ansaitz.wäre e& nur die Server auszuwählen, die beim gleichen ISP wie der Client angesiedelt sind. Ein etwas anspruchsvollerer Ansatz wäre es, sich die vom BGP produzierte Abbildung autonomer Systerne anzusehen und wr die Server-Kandidaten zu wählen, die innerhalb einef bestimmten Anzahl von Hops vom Client entfernt sind. Die richtige Awgewogenheit A- . sehen .Netzwerknähe und Server-Cache-Lokalität ist Gegenstand aktueller Forshungen.
9.5 Zusammenfassung Wir haben in diesem Kapitel vier Client/Server-basierte Anwendungsprotokolle gesehen: das im Donain Name Systcm benutzte DNS-Protokoll, das füI den Austausch von E-Mail benutzte S m 9das im World Wlde Web benutzte EITTTP und das für die Abfrage von entfernten Knoten im Rahmen des Neozwerkmanagemems benntrre SNMP. AufSerdem haben wir einige Protokolle der Anwendungsebene, z. B. RTP und SIP, behandelt, die zur Kontrolle und Wiedergabe von M d W a - A n w e n dungen wie vic und vat benutzt werden, sowie den neu sieh abzeichnenden Voicewer-IP-Dienst. Schlief3lich haben wir neue Auwendungen betrachtet; darunter Overhy-, Peer-to-Peer- und Inhaltsverteilungsnetzwerke(CDNs), die auf einer innovativen Mischung zwischen Anwendungsverarbeitig und Psrketweiterleitungbasieren. Anwendungsprotokolle sind seltsame Gesellen, Auf vieieclei Art verhalten sich die mditionelien Ciient/Server-hwendungen wie &W weitete TransgortprotokollSchicht, a&r dass sie anweMimgsspezifisehe Kemtais haben. Aian könnte argumentieren, dass sie l e w c h spezialisierte Trgizsprtprqtdalie sind, wd dass T m prtprot&olle aufsjaander aufsetzen, um schlief!%& genau den von der Anwendung benötigten Dienst bereitzustellen. Auf W & e Weise kann man dre Overlay- und Peer-to-P-eer-BrotokoUe& einer alternativen RonuxlgI n f r a s d betrachten, allerdings wiedenunekq die auf die Anfurdaungen einer bestimmten Anwen&mg zugeschritten ist. Als einzige Ce&&eit e n t n k wir
~~~
dieser Beobachmng, dass sich das D* van A n w e & g ~ c ~ o k o l l e a i eigentlich ~ c hvom t Design von Kernnenwerkprotokollen unterscheidet, und das9 sich das Design der erstem verbessert9je besser man die letzteren versteht.
Es ist schwierig, mit dem Finger auf eine ganz bestimmte offene Offene Fragen Frage im Bereich der AnwendungsNeue Netzwerkarchitektur protokolle zu zeigen. Der gesamte Bereich ist offen, da täglich neue Anwendungen erfunden werden, und die Netzwerkbedurfnisse dieser Anwendungen ebenfalls anwendungabhängig sind. Als echte Herausforderung müssen Netzwerkentwicklet. erkennen, dass sich die Anforderungen der Anwendungen an das Netzwerk im Lauf der Zeit ändern, und dass diese Änderungen im Grunde vorgeben, wie wir die Transportprotokolle entwickeln und mit welcher Funktionalität wir Netzwerk-Router ausstatten. Die Entwicklung neuer Transportprotokolle ist ein relativ leicht handhabbares Problem. Möglicherweise gelingt es einem nicht, sein Transportprotokoll von der IETF als ebenbürtig mit TCP oder UDP absegnen zu lassen. Es gibt aber sicherlich nichts, was einen davon abhalten würde, die größte Multimedia-Anwendung der Welt zu entwickeln, gebündelt mit einem neuen Ende-zu-Ende-Protokoll, das ähnlich wie RTP auf UDP aufsetzt. Andererseits ist die Verlagerung von anwendungsspezifischem Wissen in die Mitte des Netzwerks, d. h. auf die Router, ein viel schwierigeres Problem. Das liegt daran, dass ein neueruNetzwerkdienst oder eine neue Funktionalität möglicherweise auf vielen, wenn nicht auf allen Routern im Internet installiert werden muss, um eine bestimmte Anwendung umzusetzen. Overlay-Netzwerke bieten eine Möghchkeit, neue Funktionalität ohne Zutun ailer (oder überhaupt keiner) Router in das Netzwerk einzuführen. Langfristig muss man aber dairon ausgehen, dass sich die zu Grunde liegende Netzwerkarchitektur ändern muss, um diese Overlay-Netzwerke unterzubringen. Wir haben das mit RON - wie die RON- und BGP-Wegewahl miteinander interagiert - erlebt und dürfen erwarten, dass das mit zunehmender Verbreitung von Overlay-Netzwerken die generelle Frage sein wird. Eine Möglichkeit ist, dass sich keine alternative feste Architektur entwickelt, sondern die nächste Netzwerkarchitektur sehr adaptiv sein wird. Im ädersten Fall könnte es die Netzwerkarchitektur Paketen erlauben, sowohl Daten als auch Code (oder möglicherweise Zeiger auf Code) zu befördern, der die Router anweist, wie sie das Paket verarbeiten sollen, statt eine Infrastruktur für die Beförderung von Datenpaketen zu definieren. Ein solches Netzwerk wirft eine Fülle von Fragen auf, nicht zuletzt diejenige, wie man in einer Welt, in der beliebige Anwendungen Router programmieren können, Sicherheit umsetzen soll.
0
9.5 Weiterführende Literatur Der fundamentale Beitrag über Protokolle der Anwendungsschicht ist der von Clark und Tennenhouse, den die Entwickler von RTP als ihre richtungsweisende Vision zitierten. Die Entwicklung von DNS wird von Mockapetris und Dunlap gut beschrieben. Obwohl Overlay- und Peer-to-Peer-Netze noch stark in der Entwicklung sind, geben die letzten sechs Arbeiten einen guten Einstieg in diesen Bereich.
D.: Architectural considerations for a new generation of protocols, Proceedings of the SIGCOMM '90 Symposium, S. 200-208, September 1990.
U Clark, D. und Tennenhouse,
Rose, M.: The Simple Book. An Introduction to Internet Management, Prentice Hall, Englewood Cliffs, NJ, 1994. Mockapetris, P. und Dunlap, K.: Development of the domain name system, Proceedings of the SIGCOMM '88 Symposium, S. 123-133, August 1988. Karger, D., E. Lehman, F. T. Leighton, R. Panigrahy,,M. Levine und D. Lewin. Consistent hashing and random trees: Distributed caching protocols for relieving hot spots on the World Wide Web. Proceedings o f the ACM Symposium on Theory o f ~ o m p u t i nS.~ ;654663,1997. Chu, Y., S. Rao und H. Zhang. A case for end system multicast. Proceedings of the ACM SIGMETRICS '00 Conference, S. 1-12, Juni 2000. I Andersen, D., H. Balakrishnan, F. Kaashoek und
R. Morris. Resilient overlay
networks. Proceedings of the 18th ACM Symposium on Operating Systems Principles (SOSP), S. 131-145, Oktober 2001. I Rowstron, A. und P. Druschel. Storage management and caching in PAST, a
large-scale persistent peer-to-peer Storage utility. Proceedings of the 18th ACM Symposium on Operating Systems Principles (SOSP), S. 188-201, Oktober 2001. U
Stoica, I., R. Morris, D. Karger, F. Kaashoek und H. Balakrishnan. Chord: A peer-to-peer lookup Service for Internet applications. Proceedings of the ACM SIGCOMM Conference, S. 149-160, August 2001.
I Ratnasamy, S., P. Francis, M. Handley, R. Karp und S. Shenker. A scalable con-
tent-addressabk network. Proceedings of ACM SIGCOMM '01, S. 161-172, August 200 1. Es gibt eine Fülle von Arbeiten über Namensauflosungssysteme sowie der damit zusammenhängenden Frage des Ressourcen-Discovery (Feststellung, welche Ressourcen von vornherein vorhanden sind). Allgemeine Untersuchungen von Namensauflösungssystemen befinden sich in Terry r]Ter86], Comer und Peterson [CP89], Birrell u.a. [BLNS82], Saltzer [Sa178], Shoch [Sho78] und Watson [Wat81]. Auf Attributen basierende (beschreibende) Namensauflösungssysteme werden in Peter-
son [Pet88] und Bowman u.a. [BPYSO] behandelt. Ressourcen-Discovery ist das Thema von Bowman u.a. [BDMS94]. , SMTP wurde wsprünghch im RFC 821 [Pos821 definiert, und RFC 822 ist natiirlich RFC 822 [Cro82]. MiME ist in einer Reih von RFCs definiert. Die ursptungliche Spezifikation war M RFC 1521 [BF93], und die neueste Version ist im RFC 2045 definiert [FB96]. Version 1.0 von HTTP ist M RFC 1945 [BLFF96] und die neueste Version (1.l) M RFC 2068 [FGMBL97] definiert. Es gibt eine Fülle von Arbeiten über Web-Leimungsaspekte, insbesondereWeb-Caching. Ein gutes Beispiel ist die Arbeit von Danzig [Dan981 über Web-Verkehr und seine Auswirkungen auf die Effektivität von Caching. Netzwerlunanagement ist ein weit reichendes und wichtiges Gebiet, sodass das IETF diesem Thema einen ganzen Bereich gewidmet hat. In insgesamt weit über 100 RFCs werden verschiedene Aspekte von SNMP und MIB beschrieben. Die beiden wichtigsten Referenzen sind Case u.a. [CMRW93] mit einer Definition von S m Version 2 (SNMPv2) und McCloghrie und Rose [MRSl] mit einer Definition der zweiten Version der 'zwingenden MIB-Variablen (MIB-11). In vielen weiteren RFCs über SNMPIMIB werden Erweiterungen zur Kernmenge der MIB-Variablen beschrieben, z.B. spezifische Variablen für eine bestimmte Netzwerktechnologie oder das Produkt eines bestimmten Herstellers. Perkins und McGinnis [PM971 geben eine gute Einführung in SNMP und MIB. RTP ist im RFC 1889 [SCFJ96] beschrieben, obwohl sich ein Grof3teil der interessanten Details in bisher noch nicht veröffentlichten Interne-Entwiirfen befindet. McCanne und Jacobson [MJ95] beschreiben vic, eine der Anwendungen,' die RTP nutzen. SIP ist M RFC 3261 [SCJ*02] definiert, der hilfreiche Erläuterungen zum Protokoll enthält sowie die detaillierten Spezifikationen dazu. Der Report des National Research Council über die Verknöcherung des Internet ist in [NRCOl] enthalten. Ein Konzept, wie man Overlay-Netze verwenden kann, um neue Technologien einzuführen, wurde von Pekrson et al. [PACR02] vorgestellt. Der ursprüngliche Vorschlag zum Oberlagern von BGP-Routen wurde von Savage et al. [SCH+99]gemacht. Die Idee, DNS für die Lastverteilung zwischen verschiedenen Servernm nutzen, ist in RFC 1784 dargestellt [BriSS]. Das so genannte Cash Array Routing Protocol (CARP)wird im Internet Draft [CPVR97] beschrieben. Eine ausführliche Darstellung des Themas Web-Caching versus repiizierende Server ist in dem Buch von Rabinovich und Spatscheck [RS02] enthalten. Wang und Kollegen [WPPOZ] haben den Entwurfsraum für Routing-Umleitung beschrieben. Schlief3lich empfehlen wir folgende Website:
I http://www.w3.org: Site des World Wide Web Consortium
1, ARP und DNS hängen bei& von Caches ab, Die h b e d a r e t von Esntr5gm im ARP-Cache beträgt nonderweise 10 Jblinuten und die j.m DNS-Cache n r e b UgeS. Tage. Namen Sie eine Rechtfertigung fiir diesen Unterdied, Wd& wünschten Konsequenzen können entstehen, wenn die Lehgdaaerv m Eimlili gen im DNS-Chhe zu Iange ist? 2.lIFv6vereinfacht ARP sehr stark dadurch, dass Hdwareadtessen T& van W6Adressen sein können. Auf m l ~ h eWeise wird deteiseits die Aufgabe 0.0ll DNS dadurch komplizierter? Wie wirkt sich dies auf das Problem aus, Ihirw lokalen DNS-Sem= zu finden? 3. DNS-Server ermiiglichen auch die Umkehrsuche (Reverse Lookup). Beispiel$weise wird die IP-Adresse 128.ll2.16-9.4 in die Tedette 4.169.112.it28; in-aaarpa umgewmdeit und mitzeh D N U W R - D . ~ ~ (die ~ ~ eine I I !HierstGhie aus Domsins bilden, die mit der Hiuarchile aus Adressen-Domains W* gleichbar ist) gesucht. Angenommen, Sie möchten den Sender eine Pakets 'i~d der Gnindage seines Hast-Nameas autheafifkkrtn 4 vertrauen daauf*dass die P-Adresseder Quelle &ist. EikEiren Sie die Umibrhert bei der K~nvertiening der Queiladresse in einen Namen, wie oben, und den a n s c W a : b m Vergieith dieses Namens mit einer bestimmten Liste vmtrmmswürdiger BOSS. &weis: W e m DNS-Servern Yvurden Sie trauen2 4. Welche Beziehung besteht mischen einem Domain-Namen (2.B. cg.pr9ncck ton.edu) und eher P-Subnetzmunmer (z,B.192.12.69.0)?Müssen d e Hwa im Subnetz vom gleichen Name-Scrver identifiziert werden? Wie vmUt es sich nut &m R&verse-Lookupvon übung 32
5. Wir nehmen an, ein Hosr entscheidet sich bezüglich der Adressaufliiamg fixt die Bemtzung eirles NmeServers, der sich nicht innerhalb seinen Chgtwistlda31 befindet. Wann würde dies im Vergieich ni eiaem kokalcn N m - S m aEtf G d von Anfragen, die in einem DNS-Cack nicht gefunden werden*w Ckwmmerkeh fihm? Wann konnte dim zu einer bestimm Trekxate & RMS-Cache und ~ h ~ iweaigu s eGewnmdehr führen? J* 6. Abb. 9.1 zeigt die Hierarchie von N~ms-Semem. *des Sie diese Wchie darstellen, wenn e b Name-Semer mehrere Zonm bedienen würde? Wdche Beziehung besteht bei diesem Szena~iozwischen der Ms_me-Servetta~d.dg Z~ne-~lfchEe? Wie behandeln Sie die 'Extswhe, dass jede Zaae mehr* Name--er haben kann?
7. Benutzen Sie die U&ty Mi,um herauszufinden, wer für Ihre $8 zuständig ist, zumindest was InterNIC anbelangt. Suchen S i e h Sire:sowohl nach DPaS-
Name ais auch nach IP-Neawerhwnmer. Für letztere müssen Si 6s m ~ h e r weise bei einem anderen wbbServer versuchen (2.B. whoie h whois.arin.net...). Versuchen Sie es audi mit pbceton.edu und d8co.oom. I I
I I
t
t
8. Viele kleinere F i e n stellen ihre Website bei einer Drhfirma ein und lassen sie n wh& benutzen, um kauszufuiden, ob dies von ihr verwalten. Wie k i i ~ e Sie der Fali ist, und wie würdest Sie die D r i a f h a herausfinden? 9. Die b h e n d e DNS-Himucbie .corn weist unter anderem das Merkmal auf, dass sie sehr breit* ist.
a. schligen Sie eine Umordnung der .wm-Hierarchie mit einer stärker gestaffelten Hierarchie vor. Auf welche Widersprüche würde Ihr Vorschlag erwart u n g s g e d stoßen? b. Welche möglichen Konsequenzen würden entstehen, wenn die meisten DNSDomain-Namen vier oder mehr Ebenen umfassen würden anstatt nur zwei Ebenen wie viele der bereits existierenden Namen ? 10. Wir gehen nun von der anderen Ricbtuug aus, lassen unaere Aasprüche bezüglich der DNS-Hierarchie auf sich beruhen und verschieben stattdessen einfaeh alle .oom-Einträge auf den Root-Name-Server. Aus w w w . ~ . c mwird dann www.cisco oder vielleicht auch nur &CO. Wie würde sich dies im Allgemeinen auf den Verkehr des Root-Name-Servers auswirken? Wie würde sich dies auf den Verkehr M speziellen Fall der Adösung eines N&ens wie cisco in eine Webserver-Adresse auswirken?
11. Welche DNS-Cache-Probleme entstehen bei der Anderung der IP-Adresse von beispielsweise dem Host-Namen eines Webservers? Wie konnten sie minimiert werden? 12. Verwenden Sie eine geeignete DNS-Lookup-Utility (2.B. ndodnip) und schalten Sie die Reverse-LookupFunkaon (2.B. mit aet norecurse) aus. Wenn dann Ihre Utility eine Anfrage an einen DNS-Server m&tund dieser Server die Anfrage nicht vollständig aus einen eigenen Datensäaen beantworten k a ~schickt , er sie an den nächsten DNS-Server weiter, und zwar in der Suchsequenz und nicht durch automa'iische Weiterleitung der Anfrage an diesen nächsten Server. Dann führen Sie manuell eine Namenssuche ähnlich wie die in Abb. 9.5 durch. Versuchen Sie es mit dem Host-Namen www.cs.princeton.edu. Notieren Sie sich jeden auf der Strecke kontaktierten Name-Server. Eventuell müssen Sie spezifizieren, dass die Anfragen für NS-Datensätze und nicht für die üblichen A-Datensäae gelten. 13. Erläutern Sie, wie Sie SMTP oder HTI'P so umschreiben könnten, dass ein hypothetisches univcrseiles Anfrage/Antwort-Protokoll (vielleicht ähnlich wie
CHAN RFC)benutzt wird. Könnte eine Entsprechung persismter Verbindunvon der Anwendiingsschicht auf ein sofies Transportprotokoll vtxkgert
. - gen
werden? Welche weiteren Amwendungs;iuEgabcri könnte man auf dieses Protokoll verlagern?
14. Die meisten Telnet-Clients können benutzt werden, um Part 25 (den SMTPPort) statt des Tehet-Ports zu verbiden. Verwenden Sie ein solches T 4 bauen Sie eine Verbindung zu einem SMTP-Server auf und senden Sie irgendeine gefälschte E-Mail an sich selbst (oder an jemanden, den Sie vorher um Erfaubnis gebeten haben). Oberprüfen Sie dann die Header auf Hinweise, dass die Nachricht nicht echt ist. 15. Welche vorhandenen (oder hinzugefügten) Merkmale von SMTP undIoder
einem Mail-Daemon wie sendmail können benutzt werden, um eine gewisse Ab& vcra EMail-Fälschungen, wie die in Obung 14, bereitmsteilbn? 16. SteUen Sie fest, wie SMTP-Hosts auf unbekannte Befehle von der anderen Seite reagieren und vor allem, wie dieser Machaniemus die Weiterentwicklung des F r o ~ o l l &s.B. auf #erweitertes SMTBa) emi6glicht. Sie kOnaen entweder den RFC lesen sdur wie m . b g 14 einen SMTP-%wer kontaktieren upd dessen btWortd6 auf nicht ehderende Befehle testen. 17. Wie im Textteii beschrieben, umfasst SMTP den Austausch mehrerer Meiner
Nachrichten. In den meisten Fällen wirken sich die Antworten des Servers nicht darauf aus, was der Client anschlieknd sendet. Der Client kann also BefehlsPipeJhi~gimplementieren, d.h. mehrere Befehle in einer einzigen Nachricht senden. a. Bei welchen SMTP-Befehlen muss der Client auf die Antworten des Servers achten? b. Wir nehmen an, dass der Server jede Client-Nachricht mit W&()oder hlichena liest, w o d d eine Kette bis zu einem etF> eingeic~enwird. Was müsste er W, utn auch nur zu trkenhen, dass ein Client Ws-Pi*ing benutzt hat? C.
Pipelining ist dafür bekamt, einige Server zum Absturz zu bringen, Finden verhq.nd$h kann. Sie heraus, vie ein Client iiber seine Bem-
18. Finden Sie heraus, welche weiteren Meskmale DNm-Datensätze zusätzlich zt$ Absnmen iiir W-Server bieten Salche Ali~mmenk6mten schiießlich aqch von ein& DNVCNAME-Datensatzbereisgestellt werden. MX-Daturnätze dienen der Unterstützung von E-Mail. Wäre ein vergleichbarer WEB-Datensatz & die Unterstützung von HiTP piiplich?
19. Eines der zentden Probleme, mit dem sich ein Pmtokoll wie lVlIME Wabscn muss, ist die go%eAn& der vafiigbaren Datenformate. Finden Sie im MIMERFC heraus, wie MIME neue oder systemapezifische Bild- und T e d r m a t e behandelt. 20. A4ME unterstützt mehrere DaisteUungen des gleichen Inhalts unter Verwen: dung der Syntax muEtipa#&emative. Tefi kännte z.B. als tewpialn, texbW&text und application/~~8tscript gesendet werden. W a r n gilt Ihrer Meinung nach plaintext (reiner ASCH-Text) als erstes Formar, obwohl es für manche Implementienrngen leichter sein mag, ihr natives Format ui der Reihenfolge vor piaintext zu stellen? 21. Finden Sie im MIME-RFC heraus, wie die basesri.-Kodierung Binadaten mit einer Länge, die nicht glatt durch drei Byte teilbar ist, handhabt. 22. In HTTP-Version 1.0 kennzeichnete ein Server das Ende eines Transfers durch Schließen der Verbindung. Erklären Sie, warum dies hinsichtlich der TCPSchicht für Server problematisch war. Finden Sie heraus, wie dies in HTTP-Version 1.1 vermieden wird. Auf welche Weise könnte ein universelles AnfrageIAntwort-Protokoll dieses Problem lösen? 23. Finden Sie heraus, wie ein HTTP-Server konfiguriert werden muss, um die Nachricht 404 not found zu vermeiden und stattdessen eine (hoffentlich freundlichere) Default-Nachricht auszugeben. Entscheiden sie, ob ein solches Merkmal Teil des Protokolls oder einer Implementierung sein soll oder technisch vom Protokoll aus überhaupt zulässig ist. (Dokumentation über den HTTP-Server apache finden Sie unter www.apache.org.) 24. Warum enthält der ITiTPIGET-Befehl GET http://wmr.
cs .pri nceton.edu/i ndex. html HTTP/l. 1
in Abschnitt 9.2.2.1 den Namen des zu kontaktierenden Servers? Kennt der Server den Namen nicht bereits? Benutzen Sie Telnet wie in Ubung 14, bauen Sie eine Verbindung zu Port 80 eines HTTP-Servers auf und finden Sie heraus, was passiert, wenn Sie den Namen weglassen.
1
1 I
I
L
!
25. Wenn ein HTTP-Server an seinem Ende einer Verbindung ein Glose() einleitet, muss er anschließend im TCP-Zustand FIN-WAIT-2 warten, bis der Client das andere Ende schließt. Welcher Mechanismus im TCP-Protokoll könnte einem HTTP-Server helfen, wenn unkooperative oder schlecht implementierte Clients ihr Ende nicht schließen? Falls möglich, finden Sie etwas über das ProgramrnierInterface dieses Mechanismus heraus und geben Sie einen Hinweis darauf, wie ihn ein H'ITP-Server anwenden könnte.
26. Das POP3-Protokoll e ~ h u bes t einem CXent nuq mit Hilfe eines Passworts f& die Au&entifiiation E-Mail a b z d n . Traditionell mür$re ein Client E-Mail einfach an seinen Servgr se& und erwarten, das$sie weiterberfördert wird.
a. Erklären Sie, w a r n E-Mail-Server oft eine solche Weiterbeförderung von beliebigen Clients nicht mek erlauben. b. Wagen Sie eine SMTP-Option für die Authentifikation entfernter Clients vor, C.
Finden Sie heraus, welche existierenden Methoden für die Lösung dieses Problem verfugbar sind.
29. Angenommea, eine sehr goge Website wünscht: einen A$echiinismw, durch dm Ckents aufctenjmigt??naus mehreren HTTP-hbd e i f e n.-k i . i ~ & der nach &endeinem geeigmen Ma3 P m nächsten~Iiegt. ai;
Erlgutern Sie einen k f ü r gaeigmten ~
b. Erläutern Sie e&
r herhsilli vain n HTTP.
~
hierfür geeign&mM~CII@S&USinmhdb v a i DW.
V e d h Sie die W n ksiibe. Gisst k h einer &von ohne B r o w s a - ~ grade reatisieren? '
Sie heraus, ob Ihnen ein W-Xeoten au: V &-ftsnen Aafrsgm beanwm; FaUs jq tksi{x.BAuccfemp) urrd vmachm Sie b b m k ~ . .
28- & d a
o: Holen Sie &C
gisamte s
.n snnipwl k no&name
i y ~ , h. - h p &dem
steht, der von Si0 ehige S N P ~ ~ .
Sie a w a falgende Eingabe bei"
7
.
C
publ iC systetn
,Führen Sie den gkichen Versuch mit 7 statt w e m durch.
b, Gehen Sie die qstm-Crnppe mit IIilfe mchrum S W B m N W T w a ( z . mqqatned ~~ oder gleichwertig) mmiuti$ durch und dk S b &r , laen~lliqddem Gdeseaab. ' ,
und U W e s wie inB-ury: 28 und holm S b die Gmppe top (~umerhcheGmppe 6) odet eine &e '&up*~ baa& &eh-
29.Vmmden sie das C=-Ger&
31. Stellen Sie Situationen fest, in denen eine RTP-Anwendung vernünftigerweise folgendes unternimmt:
-
Sie sendet mehrere Pakete, die verschiedene Zeitstempel benötigen, zu etwa der gleichen Zeit.
-
Sie sendet Pakete, die den gleichen Zeitstempel benötigen, zu unterschiedlichen Zeiten.
Erläutern Sie als Konsequenz, dass RTP-Zeitstempel zumindest in einigen Fällen (wenigstens indirekt) von der Anwendung bereitgestellt werden müssen. Hinweis: Stellen Sie sich Fälle vor, in denen die Sende- und die Wiedergaberate nicht übereinstimmen. 32. Die Verfiigbarkeit der Taktzählungszeit für Zeitstempel in Einheiten von einer Frame-Zeit oder einer Sprach-Sample-Zeit wäre die minimale Auflösung, um eine genaue Wiedergabe sicherzustellen. Die Zeiteinheit ist normalerweise aber wesentlich kleiner. Welcher Zweck wird damit verfolgt? 33. Angenommen, wir möchten RTCP-Berichte von Empfängern zurückgeben, die nicht mehr als 5% des abgehenden primären RTP-Stroms ausmachen. Wie oft erhalten einzelne Empfänger dem Bericht, wenn jeder Bericht 84 Byte und der RTP-Verkehr 20 W s umfassen und es 1.000 Empfänger gibt? Und wie oft, wenn es 10.000 Empfänger gibt? 34. RFC 1889 spezifiziert, dass das Zeitintervall zwischen RTCP-Empfängerberichten einen Zufallsfaktor beinhdtet, um zu vermeiden, dass aUe Empfänger zur gleichen Zeit senden. Wenn alle Empfänger im gleichen Intervall von 5% ihres fintwortzeitintervaiis senden würden, wäre der ankommende (Upstream) RTCP-Verkehr fast so umfangreich wie der RTP-Downstream-Verkehr. a. Von Videoempfaingernk a m man erwarten, dass sie mit dem Senden ihrer Berichte warten, bis die Aufgabe der Verarbeitung und Anzeige eines Frames mit höherer Priorität abgeschlossen ist. Dies kann bedeuten, dass ihre RTCPübertragungen an Frame-Grenzen synchronisiert wurden. Könnte dies ein Grund zur Besorgnis sein? b. Wie hoch ist bei 10 Empfängern die Wahrscheinlichkeit, dass sie innerhalb eines 5%-Intervalls alle gleichzeitig senden?
,
Wie hoch ist bei 10 Empfängern die Wahrscheinlichkeit, dass die Hälfte davon innerhalb eines bestimmten 5%-Intervalls sendet? Multiplizieren Sie dies mit 20, um die Wahrscheinlichkeit zu schätzen, dass die Hälfte von ihnen gleichzeitig innerhalb des gleichen 5%-Intervalls senden. Hinweis: Auf wie viele Arten können wir 5 aus 10 Empfängern auswählen?
I
35. Was kann ein Server tatsächlich mit Daten über Paketverlustrate und Jitter in Empfängerberichten anfangen?
C.
.
36. Vide~anwendungenverwenden übkherweise UDP statt TCP, weil sie V ' ruagen durch NeuÜbertragung nicht tolerieren können. Das bedeutet jedoeh, dass Videoanwendungen nicht durch die ObePbtkontroll-&orithm~ von TCP eingeschränkt werden. Welche Auswirkungen hat dies auf den TCP-Datenverkehr? Geben Sie die Folgen genau an. Zum Gliick verwenden diese Video-Anwenduagen M g RTP,die zu RTCPEmpfhgermitteilungenführen, die an die Quelle zurückgeschickr werden. Diese Mitteilungen wwden regehdiii (etwa jede S e b d e ) geschickt und beinhalten den Prozentsatz der erfolgreich zugestellten Pakete wahrend der vergangenen Ernpfangsperiode. >schreiben Sie, wie die Quelle diese Informationen dazu verwenden könnte, um ihre Senderate in einer TCP-kompatiblen Art anzupassen. 37. Nehmen Sie an, dass einige Empfänger im Rahmen einer großen Konferenz Daten in einer wesentlich höheren Baridbreite als andere empfangen können. Welche Dinge können implementiert werden, um dies aufzugreifen2 Hinweis: Betrachten Sie sowohl das Session Aanouncement PraacoL (SAP) ais auch die Möglichkeit, *Mixer* von Dritten zu verwenden.
38. Schlagen Sie einen Mechanismus für die Fmtscheidung V% wann ein RW-Paket als verloren gemeldet werden soll. Wie sch~eidetIhr Mechanismus im Vqkich zu dea in Abschnitt 52.6 beschriebenen adaptiven TCP-Neuübertrapungsmechanismen ab? 39. WE kthnen Sie Audio- oder Videodaten so in Pakete kodieren, d a s bei Verlust eines Pakets die Auflösung einfach auf das reduziert wird, was man mit der Hälfte der Bandbreite erwartet? l%lc&en Sie, w m dies viel schwieriger ist, wenn eine JPEG-Kodierung benutzt wird. 40. EtIäutern Sie den Zusammenhang zwischen URLs (unifarm resource locators) und URIs (uniform resource identifiers). Gebt$ Sie ein Beispiel für einen URI, der keine URL ist.
41. WeIche Probleme würde ein DNS-basierter Umleitungsmechanismus mit sich bringen, wenn er einen geeigneten Server auf der Basis von aktuellen Laminformatiotlm a~~afahkn mkkhte?
Glossar
4B/5B Eine in FDDI benutzte Bitkodierungsmethode, bei der jeweils 4 Datenbits als 5-Bit-Sequenz übertragen werden. 802.1 1 IEEE-Standard für drahtlose Netzwerke 802.3 IEEE-Standard für Ethernet 802.5 IEEE-Standard für Token-Ring 822 Bezieht sich auf RFC 822, der das Format von E-Mail-Nachrichten im Internet definiert; siehe SMTP.
AAL (ATM Adaptation Layer; ATM-Adaptionsschicht) Eine über ATM konfigurierte Protokollschicht. Für die Datenkommunikation sind die beiden AALS AAL314 und AALS definiert. Jede Protokollschicht stellt einen Mechanismus für die Segmentierung gro& Pakete in Zellen beim' Sender und die Reassemblierung der Zellen beim Empfänger bereit.
ABR (1)(Available Bit Rate; verfügbare ~ i k a t e Eine ) für den Einsatz in ATMNetzwerken entwickelte ratenbasierte Oberlastkontrollmethode. ABR soll es einer Quelle ermöglichen, die ihr zugeteilte Rate auf Grund von Feedback von Switchen im Netzwerk zu erhöhen oder zu senken. Steht im Gegensatz zu CBR, UBR und VBR. (2) (Area Border Router) Ein Router am Rande eines Bereichs in einem LinkState-Protokoll. ACK Abkürzung für Acknowledgement (Bestätigung). Ein ACK wird von einem Empfänger gesendet, um dem Sender mitzuteilen, dass die Datenübertragung erfolgreich wat. Additive Increase / Moltiplicative Decreaw (-)'~ine von TCP benutzte Oberlastfenster-Strategie. TCP öffnet das Oberlastfenster in einer linearen Rate, halbiert es aber, wenn Pakete auf G m d von Oberlast verlorengehen. Es hat sich erwiesen, dass diese Strategie für einen stabilen Oberlastkontrollmechanismus notwendig ist. AF (Assured Forwarding; zugesicherte Weiterleitung) Ein in Diflerentiated-Ser-
vices definiertes Per-Hop-Verhalten.
ALE (Application Level Fraxning; Frame-Erzeugung auf AnMwgsebene) Protokoll-Desi~ppNnzip,das besagt, dass Anwendungspr~grBmni~ iPrZz Karn~~&tionsbedÜrfnisse besser verstehen als allgemeine Transporrprotokolle. AlkfP?j (Advanced Mobile Phone System) Analoges mobiis Telefonsystem, das
derzeit durch das digitale PCS abgelöst wird. ANSI (American National Standards Institute) Privates US-Standardisierungsgremium, das am ISO-Standardisimverfahren teilnimmt; zustäsidig für SONET.
AP (Access Point; Anschlusspunkt) Heimathafen vagabundierender Knoten in drahdosen Netzen.
API (Application Programming Interface) Ein noderweise betriebssysternspezifisches Interface, das Anwendungen bei der Interaktion mit Protokollsoftware auf der Transpodicht benutzen. Ein Lxkamtes Beispiei ist das Socket-AR von Berkeley-Unix.
ARP (AddressResolution Protocol; ~dressaufiösun~~rotokofl der internet-Architektur) Definiert das Nachrichtenformat und die RegeIn für die Behandlung von ARP-Nachrichten. Zur AuQosung einer Adresse muss der anfragedde Rechner eine Anfrage an aile angdossenen Rechner senden, wahrend die Antwort nur vom angesprochenen Rechner an deq M a g a zurückgewnder wird Das ARPNacbrichteaformat ist allgemein gehalten, sodass es für beliebige ProtokoU- und Hardwareadressen benutzt werden kann. Es wird aber vorwiegend zur Aufiösung von E'-in Ethernet-Adressen verwendet. ARPA ( A d v d Research Projeas Agency) Eine Forschungs- und Entwicklungsorganhtion des US-Vertei ' . * teriums, welche die Entwicklung des GRBANET und späte; des=rdme. Auch unter der k i c h u n g DARPA (D für Defense) bekannt. ARPAN1Ecl: Von der Advanced Research Pmjects Agency (ARPA) für das US-Vertcidigungsministerium (Department of Defense) ERde des sechziger Jahre entwickeltes paketver<~ WAN; gilt als Vorläufer des globalen intemet. ARQ (Aummatic Repeat Request; automatische Wicderholungsanfrage) All*meine Strategie f&rdie zurwlässige Obertragung von Paketen über eine unzuverlässige Leitung. Erhält der Sender kein ACi< für ein Paket nach Ablauf einer bestimmten Zeit, geht er &von aus, dass das Paket nicht angekommen ist (oder mit BideBkrn t i h a g m aiplrde) und ü h i i g t es erneut. Stop-and-Wait und Sii&g~-Window sind Beispiele voa ARQ-Pmmko~en.Ehe gqgensiitzkhe Strategie ist YEC.
AS (Autonomes System) in der TCP/fP-Terminologie ist ein autsnames System ein Verband von Routern und Netzwerken, die einer e U l z i admhbtrativen htmt mterstehm.
ASN.1 (Abstract Syntax Notation One) Abstrakte Syntax der D a r s e e l l w a in Verbindung mit BER ist ASN.1 ein von der ISO als Teil der OSI-Architeam entwickelter Standard für die Darstellungsformauermg. ATM (Asynckonous Transfer Mode)Ein von der ITU & Weitverkehrsnetee mit hohen Bitraten entwickelter Standard, der auf dem khzip des qmhronen Zeimultiplexverfahrens basiert. D i e Tedinologie befördera kleine Dateneiaheiten mit fester Länge (53B*), die mitn Zellen nennt. Zwischen EnQQJrsmnen können virtuelle Verbjndungen permanent vorhanden sein oder bei Bedarf aufgebaut werden. ATMARP Für ATM-Netzwerke erweitertes Adressauflösungsprotokoll (Address Resolution Protocol). ATM-Fonim Inarnationak gemeinnützige Organisation, die mit dem Ziel gegründet wurde, den Einsatz von ATM-Produkten und -Diensten zu fördern. Ausbreitungsvenögerung (Propagation Delay) Die Zeit, die ein Signal benaigt, um von einem Punkt eines übertraguqskads zu einem anderen zu gelangen. Je nach &xtragungsmedium geschieht dies mit Lichtgeschwindiglreit (bei Satellitenübertragung) oder geringerer Geschwindigkeit (bei der Ubertragung in Kabeln). Sie ist im Wesentlichen von der dielektrischen Konstanten des Mediums bzw. (bei Lichtwellenleitem)von der Brechung abhängig. Authentifikation Sidierheitsprotokoll, durch das zwei sich misstrauende Parteien ihre Identität nachweisen. Autonomes System Siehe AS Bandbreite (Bandwidth)In der übemagungstechnik ist das der Frequenzbereich, in dem ein System ohne ÜbermäLZ'i Dämpfung übertragen kann. Im Zusammenhang mit Datennetzen bezieht sich Bandbreite meist auf die Gesamtkapazität des Netzwerks, die in Bit pro Sekunde (bids) ausgedrückt wird. Bandbreite-LängeProdukt (Bandwidth Length Product) Der entscheidende Parameter von Überuagungsmedien zur Bestimmung von Frequenz- und LängenreStriktionen. Generell kann dieser Wert für metallische und optische Ifbertragungsmedien ermittelt werden. Bellman-Ford Andere Bezeichnung für den Distanzvektor-Routing-Algorithmus nach dessen Erfindern.
BER (Basic Encoding R u h ) Regeln für die Kodierung von Datentypen, die im ASN. 1-Standard definiert sind. Bereich (Area) In Zusammenhang mit dem Link-State-Routhg eine Sammlung benachbarter Routeq die vollständige Routing-Informationen untereinander austauschen. Eine Routing-Domain wird in Bereiche aufgeteilt, um die Skalier-
F20
I Clarur
~ e s t - ~ f f ~ f c - h x m q p nDas g Diensmiodell dw heutigen Inte~-Architektur, W dem besmägkhc Übertragung angescr* a k nkht zugesichert wird, BGP (Border Gateway Protocol) Das BGP beschreibt, wie Rauter untereinander die V&barhit v m Verbindwgmegea mvische~ den M m t r k e n p m pagieren. Es ist wie das EGP ein Protokoll für das Routing mischen autonomen Systemen (AS). BGP unterstützt eine Metrik und kann intelligente Rouibg-EntScheidungen tdfea. Die W e s t e Version ist BGB-4.
.
-
Bink Binär oder zweiwertig bedeutet, dass ein System jeweils einen von zwei möglichen Zuständen annehmen kann, 2.B. jaInein, Stromlkein Strom, NulVEins, highilow. BISYNC (Binary Synchronous Communication) Byte-orientiertes Protokoll der Sichemgsschicht, das Ende der sechziger Jahre von IBM entwickelt W&. Bitstopfen (Bit Stuffing) Eine für die Unterscheidung von Steuer- und Datenquenzcn auf Bitebene im HDLG-Protokoll angewandte Technik. BLAST Ein Protokoll, das Fragmentierung und Reassembliemg gr&r Nachrichten durchführt und für die Entwicklung eines WC-Protokolls benutzt wird,
.
Block Ei Begriff in Zusammenhang mit Betriebssystemen, mit dem der Fali beschrieben wird, bei dem ein Prozess die Ausführung unterbricht und auf ein Ereignis wartet, 2.B. die Zustandsänderung einer Sempbore. Bridge (Brücke)Eine Bridge ist ein Hardwaregerät der Sicherungsschichtzur Weiterleitung von Frames von einem physikalischen Netzwerk zu einem anderen. Sie wird auch als LAN-Switch bezeichnet und unterscheidet sich von Repeiter und Rorrter, Bmdcast Eine Methode zur k a g u n g eines Pakets an alie Hosts eines bestimmten Netzwerks oder Intenietworkq die in Hardware (2.B. Ethernet) oder !hftwarc (2.15. IP) implementiert werden Irann. Burst Umcg&äßig auftretende Anhäufung von Daten (oder nicht gleichmäsig 15ber die Zeit verteilter Schwingungsst013). BUS (Broadcast and Unknown Server) Ein in der LAN-Emulation (LANE) benutztes Gerät.
CA (CertificationAuthority; Zertifizierungsstelle) Eine Institution, die Sicherheitsz d f i h t c signiert und dadurch zusichert, dass der im Zwtifikat enthaltene 6 & Wiksel-derim ZaMkat benannten Person bzw. IfmsItimtion geh&. CBR (Consmt Bit Rite) Eine ATM-Enstklasse, welche die 'Obaaagung von Daten in e h e konstanten Bittrite gewahilebta und'damit eine dedizierte lhxtragmgskinmg mdiert;steht im '.Gegensatz zu ABR, UBR und VBR. CCrrr (Corni& Consuitatif Iqternational de T616phonie et T e w p h i e ) Standardisierungsgrernium der Fernmeldebehörden, Betreiber von öffentlichen Netzen
.
,
.
aosrar
I nl
und anderer interessimer Körpersl:haften, das inzwischen in die International Telecommunication Unioa (ITU) integriert winrde und Nofmen fiir Telefonie und Datenkommuaikatiomsysteme(ITU-T) ausarbeitet. k CDN (Content Distribution Nwork) Unter einem W m d w n ~ e r versteht man eine Ansammlung von über das Inema ve~~eitpbn, stellvertretenden Webservern, die hq-Anfragen an Stelle des eigentliCh.Serven bearbeiten können. Das Ziel dabei ist es, die Anfragen mbgbchst durch einen Semr in der Nähe des Clients bedienen zu lönnen, sodass die Antwortzeiten reduziert werden.
CHAN Eh von den Aumren entwickeltes Protokoll, das AnfragelAntwoct-Kanäle (Request/Reply Channels) implementiert. Chipping-Code Zufällige Bitsequenz, die mittels XOR mit dem Datenstrom verknüpft wird, um die direkte Sequenztechnik von Spread-Specuwn zu implementieren. ClDR (ClasslessP Domain Routing) CIDR beschreibt ein Verfahren zur effektiveren Nutzung von PP-Adressen. Dabei werden IP-Adressen zusammengefasst, wobei ein Block von aufeinander folgenden P-Adressen der Klasse C als ein einzelnes Netzwerk behandelt wird. Cfient Die Seite in einem verteilten System, die Dienste anfragt. CLNP (ConnectionlessNetwork Protocol) Das ESO-Gegenstück zum P im Internet. Concment Logical Channels Multiplexen mehrerer logischer Stop-and-Wait-Kanäle auf einer einzigen Punkt-zu-Punkt-Leitung. Es wird keiae Reihenfolge der k a g u n g aufgezwungen. Dieser Mechanismus wurde im W-IMP-Protokoll des ARF'ANET benutzt. Context-S&t& Eine Operation, bei der ein Betriebssystem die Ausführung eines Prozesses unterbricht und mit einem anderen beginnt. Der Zustand des vorherigen Prozesses (2.B. die Inhalte aller Register) wird gespeichert, und der Zustand des nächsten Prozesses wird geladen. Controlled Load Eine in der Integrated-Semcm-Architekturdes hternet verfiigbare Dienstklasse. CRC (Cyciic Redundancy Check; zykiische Redundanzprüfimg) Eine durch Netzmrkhardware (2.E Ethemet-Adapter)u m g e s m Fehlererke~ungstt?chn&,bei der eine Sequenz von Steuerbits am sendenden Ende berechnet, dem zu übertragenden Block hinzugefügt und erneut am empfangenden Ende berechnet witd. Stimmen die empfangenen und berechneten Steuerfelder überein, ist der empfangene Block höcbstwahrscheiniich mit dem gesendeten identisch. Andernfails ist die Wahrscheinlichkeit groß, dass der Block während der Obertragung geändert wurde. Im allgemeinen werden die mit CRC-Fehlern empfangenen
Bl&ke verworfen. Der Wert des CRC-Felds ergibt sich aus einer mathematischen Teilung des übertragenen Blocks duch ein geeignetes Polynom. Crossbar-Switch Einfaches Swirch-Design, bei dem jeder Eingang direkt mit jedem Ausgang verbunden ist und die einzelnen Ausgangs-Ports für die Lösung möglicher ffberlastprobleme zuständig sind. C S W C D (Carrier Sense Multiple Access widi Collision Detection) Zugangs-
verfahren mit Leitungsabfrage und Koiiisionserkennung (Listen While Talking), das bei LANs in Bustopologie den Zugriff mehrerer Nemerkstationen auf das ffbertragungsmedium regelt. Unter den möglichen CSMA-Varianten legt der Standard das 1-persistent-Protokoll fest. Dieses regelt die Kanalzuteiiung wie folgt: Die sendewillige Station überwacht den Kanal (Catrier Sensing, Listen Before Taiking). Ist der Kanal frei, wird die Obertragung begonnen, jedoch frühestens 9,6 ps (Inter Frame Gap, IFG) nach Freiwerden des Mediums. Ist der Kanal belegt, wird der Kanal weiter überwacht, bis er nicht m& als belegt erkannt wird. Die Zustände (belegr / nicht belegt) werden anhand der Pegelwerte nach 0,7S bzw. 1,25 Bitzeiten ermittelt. Tritt nach diesen Zeitpunkten ein Pegeiwechsel auf, ist ein Trägersignd auf dem Kabel; in allen anderen Fällen gilt das Ubertragungsmedium als nicht belegr. Die bekannteste Technologie, in der C S W CD angewandt wird, ist Ethernet. Cut-through Eine Form der Vermittlung oder Weiterleitung, bei der ein Paket an einen Ausgang übertragen wird, bevor es im Vermittlungsknoten vollständig angekommen ist, sodass sich die Latenz durch den Knoten reduziert. Datqpamm In Zusammenhang mit Rechnemetzen wird damit eine Dateneinheit bezeichnet, die ohne vorherigen Verbindungsaufbau libertragen werden kann. Datagtamme beruhen auf dem verbindungslosen Prinzip, im Gegensatz zum verbmdungsorientierten Ansatz. Jedes Datagramm muss die voUe Adresse des Empfängersystems enthalten. IP und CLNP sind aB. Protokolle, die Datagramme aastauschen.
DCE (Dissributed Computing Environment) Eine von der OSF (Open Systwns Foundation) definierte RPC-basierte Protokollfamilie für die Unterstiit~ungverteilter Rechnenungebungen. DDCMP (Digital Data Communication Message Pratocol) Ein im DECNET der Digital Equipment Corporation angewandtes Byte-orientiertes Protokoll der Sicherungsschicht. DDoS (Distributed Dental af Service) Ein erweiterter DOS-Angriff, bei dem die Oberflutung von verschiendenen Knoten ausgeht, wobei j& einzelne Knoten nur einen geringen Eeiaag zur Belastung cles Zielmasdme betragen braucht, die Summe aiier Aktivitäten diese aber in die Knie zwingen kann (siehe auch Dd). DECbit Ifberlastkontrollschema, bei dem Routec die Endpunkte über eine bevorstehende Uberlast benachrichtigen, indem sie im Header der weitergeleiteten Pakere ein Bit setzen. Die Endpunkte senken daraufhin ihre Senderaten.
!
Demtiltiplexen Verwendung von informationen, die in einem Paket-Header enthalten sind, um das Paka M ProtoM-Stack nach obm weiterzuleiten. IP benutzt z.B. das Feld ProtNum M IP-Hader, um htzustekn, zu welchem höheren Protokoll (TCP, UDP) ein Paket gehört, wahrend TGP die Port-Nummer heranzieht, um ein TCP-Paket zum richtigen Anwendungsprozess zu demultiplexen; Gegenteil von Multiplexen.
1
a
D e m u d ü s s e l Feld in einem Paket-Header, welches das Demultiplexen ermoglicht (z.B. das PratNum-Feld in IP). Dense-Mode-Multicasting PM-Modus, der benutzt wird, wenn die meisten Router oder Hosts Mdticast-Pakete empfangen müssen.
a
'
DES (Data Encryption Standard) Algorithmus für die DatenverschlWlung auf der Grundlage eines geheimen 64-Bit-S~hlüssels. DHCP (Dynamic Host Configuration Protocol)Von Microsoft entwickeltes Piotokoll für die dynamische Vergabe von IP-Adressen. DHCP ist ein Protokoll für LA.-Anwendungen, bei dem der Bereich für die IP-Adressen vom Systemadministrator festgelegt wird und die angeschlossenen Cliats beim DHCP-Server eine IP-Adresse anfordern. DHT (DistributedHash Table) Eine verteilte Hash-Tabelle wird dazu benutzt, eine Nachricht an eine Maschine zu schicken, die ein bestimmtes Objekt unterstützt, basierend auf dem Namen dieses Objekts. Differentiated-Services (DiffServ)Eine neue hchitektur für die Bereitstellung von rnet, die ü k Best-Effort hinausgehen. Sie wurde als Alternative ?Esvorgeschlagen. Direct Sequence Eine Spread-Spectrum-Technik, bei weicher der Datenstrom mittels XOR mit einer als Chipping-Code bezeichneten Bitsequenz verknüpft wird. Distanzvektor-Routing Ein im Routing angewandter Algorithmus, der auf dem Pfad mit den geringsten Kosten basiert. Jeder Knoten gibt Erreichbarkeitsinformationen und die damit verbundenen Kosten seinen unmittdbaren Nachbarn bekannt. Er verwendet dann die eingegangenen Rückmeldungen, um seine Weiterleitungstabeile zu akniallisieren. RIP ist ein Routing-Protokoll, das diese Technik anwendet. Das Gegenteil ist das LinkStak-Routing.
;
DMA (Direct Memory Access; Direktspeicherzugriff)Technik zur Verbindung von . ' Hosts mit 110-Geriiten, bei der das Gerät Daten direkt vom Host-Speicher liest und in diesen schreib; siehe auch PIO. DNMDECNET (Digital Network Architecture) OSI-basierte Architektur, die ein .! verbindungsloses Netzwerkmodell und ein verbindungsorientiertes Transportprotokoll unterstützt. )
L '
-DNS (Domain Name System) Ein im Internet verfügbarer Mechanismus für die i Obersetzung des Namens eines Hosts in seine numerische IP-Adresse. Das DNS, -'
.
724
1
G ~ s #
Protokoll ersetzt durch eine sinnvolle DNS-Servern unte ten, um Firmen die Möglichkeit zu g e h , Maschinennamen und Adressen selbst . zu bestimmen. Domain Teil der baumstrukturierten Namenshierarchie im internet. Von der Syntax her besteht eine Domain-Adresse aus einer Sequenz von Namen, die durch Punkte voneinander getrennt sind. Ublicherweise wird der letzte Teil einer internet-Adresse nach dem letzten Punkt, 2.B. wm, als Domain bezeichnet. DOS (Denial of Service) Eine Situation, bei der ein angreifender Knoten eirien Zielknoten mit so viel Anfragen (bzw. Paketen) bombardiert, sodass legitime Nutzer faktisch nicht mehr zugreifen können, ihnen also der Service verweigert wird. Drei-Wege-Handshake (Three-way Handshake) TCP-Mechanismus, bei dem drei Nachrichten ausgetauscht werden, um sicherzustellen, dass Verbindungen zuverlässig aufgebaut und beendet werden.
t
1 I
'
DS3 Von Telefongesellschaftenangebotener Dienst auf 44,7-Mbitls-übertragungsleitungen; wird auch als T3 bezeichnet. DSL (Digital Subscriber Line) Eine Reihe von Standards für die Obertragung von Daten über ~elefonleitungen'(Twisted-Pair-Leitungen) in Geschwindigkeiten von mehreren Megabit pro Sekunde. Duplikat-ACK Wiederholt übertragene TCP-Bestätigung (ACK), in der keine neuen Daten bestätigt werden. Der Empfang mehrerer Duplikat-ACKs löst den Fast-Retransmit-Mechanismusin TCP aus. Durchsatz (Tbroughput) Die beobachtete Rate, in der Daten durch einen Kanal gesendet werden. Der Begriff wird oft gleichbedeutend mit Bandbreite verwendet. DVMRP (Distance Vector Multicast Routing Protocol) Das auf den meisten Routern in MBone benutzte Multicast-Routing-Protokoll. DWDM (Dense wavelength division multiplexing) Licht unterschiedlicher Wellenlängen (Farben)werden in eine einzige optische Faser multiplext. Die Technik ist dicht in dem Sinne, dass damit eine große Anzahl unterschiedlicher Wellenlängen unterstützt werden können.
ECN (Explicit Coagestion Notification) Bei dieser Methode werden End-Hosts über einen Datenstau informiert, indem in den Paketen, die weitergeleitet werden, bestimmte Flags gesetzt werden, Wird in Verbindung mit aktiven Staukontrollverfahren wie RED verwendet. EF (Expedited Forwarding) Eines der in Differentiated-Services definierte PerHop-Verhalten.
I
I
EGP (Exterios: Gateway Protocol) Eines der ersten Interdomain-IkouMg-Protakolle im Internet, das in Grcteways (Routern) autonomer Systeme (AS) benutzt wurde, um Routing-Infoamoztionen auszutauschen. löst.
wurde durch BGP abge-
Entdiisseluag (Decryption) Der umgekehrte Pmzem der Verdl&selung, bei dem die Daten einer verschlüsselten Nachricht wiedergewonnen werden&
4
Erweitertes LAN (Extended L W ) Bezeichnung für mehrere über Bridges verbimdene LANs. Ethernet Eine LAN-Technologie gemäi3 IEEE-Standard 802.2 bzw. 802.3 mit gemeinsamer Nutzung des Übertragungsmediums, die admgs in 10 Mbit/s mit Koaxialkabeln oder verdrillten Kabelpaaren (Twisted-Pair)mgewandt wurde. Die an Ethernet-Netze angeschlossenen Stationen verwenden die CSMA/CDMethode für die gemeinsame Nutzung eines physikalischen Obertragungsmedium. Eine schnelle Version läuft mit 100 Mbitk (Fast-Ethemet). Exponentielles Badzaff Eine Strategie für die NeuÜbertragung von Paketen, bei welcher sich der Timeout-Wert jedes Mal, wenn ein Paket erneut übertragen wird, verdoppelt. Fair-Queuing (FQ) Eine auf Round-Robin basierende Zuteilungstechnik, um Datenstaus in Gateways zu begegnen. Sie wird deshalb fair genannt, weil sie jedem Host einen gleichen Teil der Gateway-Bandbreite zuteilt. Fast-Rearansmit Ehe in TCP angewandte Strategie, bei der versucht d, Timeouts bei Vorhandensein von verlorenen Paketen zu vermeiden. TCP wiederholt die Obertragung eines Segments nach Empfang dreier aufeinander folgender Duplikat-ACKs. mlDI (Fiber Distributed Data Interface) Euie nach dem ANSI-Standard X3T9.J entwickelte LAN-Technologie. Sie basiert auf der gemeinsamen Nutzung eines übertragungsmediums, läuft mit 100 Mbids auf Lichtwelledeitern oder verdriilten Kabelpaaren und verwendet eine Token-Zupffsmethode.
FDM (Frequency Division Multiplexing; Frequenzmdtiplemdhn) E& in der Telekommunikation angewandte Technik zum Kombinieren mehrerer .Y&bindungen auf dem gleichen Medium. Grundlage bildet eine BreitBa*, wobei das zu übertragende Signal ein anderes Signal (Träger)d u & , das in einer viel höheren Frequenz gesendet wird. Der Mdtipiemargq wird dwch Zuweisen einer bestimmten Trägerfrequenz für jede Verbindung y m i & ~ FEC (Forward Error Correaion) Eine in der Datenübertraguhg angeh#& Te&d k zur Erkennung und Korrektur von Obertrag~n~sfehlern. M dieser Technik werden]zum Dateduss zusätzliche Steuerbits himugefigt, d e t a beim I Versenden und Empfangen aus dem Inhalt des Datenflusses beivkbet wird. Steht im Gegensatz zu ARQ.
-
F i k - C h e l Ein bidu:ekdonak-s Protokoll der S i c h e i u n g d t , das ha* benutzt wird, nm Computer (meist Supercemp1er) mit MphePieger3twt zu verbinden. Fiber-Chawel hat Wie Bandb~eitcvon 100 MB/a eh&Rieiohweite von 30 m. Wird ähnlich wie HiPPI benutzt.
W O (First In, First Out) Speicheramrdaun& bei der die zuerst
ebgegch
Datmeinheit auch als ersre wieder ausgelesen wird. Firma11 Ein Routeq der für die Filterung (nicht die Weiterleitung;) von Paketen von bestimmten Quellen konfiguriert wurde. Firewalls werden benutzt, run die Sicherheit unternehmenseigener Nerzwerke zu erhöhen.
PRTT (Fixed R o d ,Tiip Time) Summz aller fipsten und variablen Verzögemqyzeiten v m der Datenqude bh zur weite&^ .Datense&e und ow4ick.
Fiowspec Spezifikation der Anforderungen eines Datenflusses fW:Bandbreite und Ve&gerung, die an das N e b e r k gestellt werden, um eine Reservierung einzurichten; wird mit RSVP benutzt' J?iusskontrdle (Flow Control) Ein Mechanismus, bei dem der Empfänger von Daten die Obertragungsrate des Senders drosselt, sodass die Daten nicht !zu schnkll für die Verarbeitung ankommen. Steht irn Gegensatz zur i"fber11pstkontrolle. FragmmtieiringlReasseml,iieiyng ' (Fragmenmtion/Rea~sembly) Methode für die Ubertragung von Nachrichten, die größer als die Ml'U des Netzwerks sind. Die Nauhr'dten werden dabei vom Sm& in kleinere F h h e ifFa$mcntiett und vorn Empfänger wieder in die usptüngliche Nachricht a w a m m e n g e t .
Frame Eine andere Bezeichnung für Paket, die meist in Z u s w e n h a n g mit solchen Paketen verwendet wird, die nicht im gesamten Netzwerk, sondern über eine einzelne Lhmg libertlrgen werden. Hauptproblem beim Franring (M: menetzeugulrg) ist, dass der Empfiinger den M a g und das Ende eines Prames erkemen kannkann Frame-Relay Verbhdungsoriderte paketvermim1te Technologie, die Mitte der achtziger Jahre fiir WeitverkRhrmetze (WN.g) esitwickelt wurde ynd von Tele. fongeeellschaftdn angeboten wird. Fran#-I&faY basiert auf dem a s ~ o n e n %eitniuitipIcwerfahren. Obertragungsfehler ywden =kamt, aber nicht korrigiert. Z w i d e n den. kow+erenden Dateuendeinrkhtyngen werckn virtuelle Verbindwaaufgebaut. Frequeney-bpping Frequenzsptungverfahren, das in der Mobilkommuuikation t$qasetzt wird. Bei &scr Technik e d das Nutzsj-1 auf ein peqmanent die , Frequenz wechselndes Tritgemigd aufmoduiiert. Die Frequenzwechsel finden dabei in eins pseudo-ZuEigen oder vorbajnmten Reibfolge satt. Damit das Signal vom Empfänger erkamt werda kapn, mwj d m Empfänger .die Reihenfolge des Frequenzwechsels im Voraus bekamt sein. Diese Technik gilt als sehr sicher, jedoch miissen Sender und Empfänger genau aufeinander synchroni-
siert sein. Dies bedingt eine relativ komplexe elektronische Schaltung und folglich auch hohe Herstellungskosten. Frequency-Hopping wird in Funk-LANs eingesetzt und ist irn GSM-Netz konzeptionell vorgesehen. (File Transfer Protocol) Das auf TCP aufsetzende Standardprotokoll der Internet-Architekturfür die Übertragung von Dareien zwischen Hosts.
T;TP
GMPLS Verallgemeinertes MPLS, erlaubt IP direkt über optische vermittelte Netze. Gatekeeper Ein Gatekeeper ist ein zentrales Steuerelement für das Routen der Rufsignalisierung, die Auflösung der Telefonnummern und der IP-AdresSe bzw. deren Umwandlung. Er ist somit für Zugangsberechtigung und Sicherheit verantwortlich. Darüber hinaus erfasst der Gatekeeper die Gebühren, weist sie den Partnern in den Netzen und Diensten zu und sorgt für ein Bandbreitenmanagement im Rahmen der Dienstgüte (QoS). GSM (Global System for Mobile Communications) Arbeitsgruppe der CEPT (Confhrence Europeeme des Administrations des Postes et Telkommunications) und Standard für ein Funktelefonsystem zur Bereitstellung eines kompatiblen Mobilfunkdienstes. Die GSM-Technik basiert auf einer digitalen Ubertragung im Zeitmultiplexverfahren mit acht Kanälen je Funkträgersignal. In den USA und Kanada wurde statt GSM der PCS-Standard übernommen. Gopher Informationsdienst im Internet. H.323 H.323 ist ein internationaler ITU-Standard für die Sprach-, Daten- und Videokommunikation über paketorientierte Neue, der die spezifischen Fähigkeiten von Endgeräten im IP-Umfeld festlegt. Der Standard ist abgeleitet aus dem Multimedia-Standard H.320 für ISDN. Er hat definierte NetzÜbergänge zwischen ISDN und ATM und garantiert die Interoperabilität der Herstellerprodukte untereinandei; wobei vier Hauptgmppen definiert sind: Terminals, Gateways, Gatekeeper und Multi Control Units (MCU). Der H.323-Standard definiert die Multimedia-Kommunikation über LANs, die keine zugesicherte Dienstgüte zur Verfügung stellen. Handle In der Programmierung ein Bezeichner oder Zeige4 der für den Zugriff auf ein Objekt benutzt wird. Hardwareadresse Adresse auf der Sicherungsschicht, mit der ein Host-Adapter in einem lokalen Netzwerk identifiziert wird.
HDLC (High-Level Data Link Control Protocol) Ein von der ISO standardisiertes Protokoll fix die Sicherungsschicht, das Bitstopfen anwendet, um RahrnengrenZen zu definieren (Framing). Header Kopfteil eines zu Übertragenden Datenpakets. Er enthält keine Nuwlaten, sondern verschiedene Verwaltungs- und Steuerinformationen wie Adress- und Kennungsangaben, Pakemuinmer und Paketstatus.
P I
I'
L
,
.
Hidden Node Problem Eine Situation, die in einem drahtlosen Netzwerk eintritt, wenn zwei Knoten gleichzeitig an dasselbe Ziel senden, von ihrer gegenseitigen Existenz aber nichts wissen.
Hierarchisches Routing Schichtübergreifende Routing-Methode, bei der die hierarchische Struktur des Adressraums als Grundlage für Weiterleitungsentscheidungen herangezogen wird. HiPPI (High Performance Parallel Interface) Eine vom ANS1 standardisierte Netztechnologie, die Gbids-Ubertragungsraten unterstützt und meist für die Verbindung von Supercomputern mit Peripheriegeräten benutzt wird; vergleichbar mit Fiber-Channel.
-
Host Ein Computer, der an ein oder mehrere Netzwerke angeschlossen ist und auf Y . dem Anwendungsprogramme ausgeführt werden.
HTML (HyperText Markup Language) Eine für das Erstellen von Webseiten benutzte Sprache.
I4'ITP (HyperText Transfer Protocol) Ein im World Wide Web benutzter Standardmechanismus zum Austausch von Dokumenten zwischen Servern und Clients. H I P überträgt Daten über TCP-Verbindungen.
IIAB (Internet Activities Board) Gremium, das die Entwicklung und Standardisierung von Protokollen für die Internet-Architektur überwacht. Zu den Arbeitsgruppen des LAB zählen z.B. IRTF und IETE IBGP (Interior BGP) Das für den Austausch von Routing-Informationen zwischen Routern der gleichen Domain benutzte Protokoll. ICMP (Internet Control Message Protocol) Protokoll der IP-Familie zur Übertragung von Informations- und Fehlermeldungen zwischen IP-Netzknoten. ICMPMekfungen werden in Datagramme gekapseit und ak reguläre IP-Frarnes übertragen.
IEEE (Institute of Electrical and Electronic Engineers) Ein Institut, das Datenkommunikationsnormen ausarbeitet, 2.B. die 802-Serie der LAN-Standards.
IETF (Internet Engineering Task Force) Eine zur IAB gehörende technische Arbeitsgruppe, die sich mit der Standardisierung von Entwicklungsstrukturen für das Internet befasst. IGP (Interior Gateway Protocol) Eine Gattungsbezeichnung, die man auf jedes Protokoll anwenden kann, das Informationen über Wegwahl und Erreichbarkeit in einem autonomen System verbreitet. IGP ist ein IP-Protokoll nun Austausch von Routing-Informationen in autonomen Systemen (AS). Obwohl es keinen einzigen Standard für das IGP-Protokoll gibt, ist das RIP (Routir~gInformation Protocol) das populärste. Das IGP ist topologieunabhäagg..Da unterschiedliche Topologien und Netzwerke vorhanden sind, gibt es mehrere IGPs. Gateways können gleichzeitig verschiedene Routing-Protokolle benutzen, wenn sie die Verbindung zwischen autonomen Systemen und einem übergeordneten Backbone-Netzwerk bilden. Hierfür stehen neben dem erwähnten RIP- das Hello-, das IGRP- und das OSPF-ProtokoU (Open Shortest Path First) zur Verfugung.
Ih/LAP (Internet Message Access Protocol) Ein Protokoll auf der Anwendungsschicht, das es h w m d e m e d g l i c b t , auf ihre E-Mail auf dem Mail-Server zuzu~ifen.
IIMP-MP Ein Byte-orientiertes Protokoll der Sicherungsschicht, das im ARPANET benutzt wurde.
I 2
C:
0.
Integrated-Services (Wem) Begriff zur Bezeichnung eines paketvermittaten Netzwerks, das mwohl konventionelle Computerdaten als auch khtzeitaudio und -video unterstiitzen kann. AuLerdem wird damit ein für da9 hternet vorgeschlagenes Dienstmodell bezeichnet, das sich der& in Entwicklung befindet und das heutige Best-Effort-Dienstmodel1~ablö~n soll. InteMtät In Zusammenhang mit Netzwerksicherheit ein Dienst, der gewährleistet, dass eine empfangene Nachricht mit der gesendeten identisch ist. Interdöm&-Rouihg BGP.
Roiiring zwischen verschiedenen Routmg-Domains, wie z.B.
internet Der weltweit g r a t e Netzverbund auf Grundlage der TCP/IP-Architektur, der jedem Teilnehmer eine nahezu grenzenlose Informations- und Kommunikationsinfrastruktur zur Verfügung stellt. Internerwork Eine S d u n g von (möglicherweise heterogenen) paketvermittelten Netzwerken, die über Router miteinander verbunden sind. hterorperab'rtit5it Die Fähigkeit heterogener Hardware und Software unterschiedlicher Hersteller, durch den korrekten Austausch von Nachrichten zu kommunizieren. Interrupt Ein (mrmakrweise von der Hardware erzeugtes) Ereignis, welches das Betriebssystem auffordert, sehe momentane Aktivität einzustellen und eine bestimmte Aktion auszuführen, z.B. wenn ein Paket vom Netzwerk angekommen ist. Itltradumain-Roudng Austausch von Routing-Informationen innerhalb einer einzelnen Domain oder eines autonomen Systems (AS),2.B. in Protokollen wie RIP und OSPE
IP (Internet Protocol) Ein Protokoll, das einen verbindungslosen Best-EffortDienst fur die Obertra-g von Datagrammen im Interner bereitstellt. Die derzeitige Version wird als IPv4 bezeichnet.
IPG (Inter-Packet Gap) Der &male Abstand zwischen zwei aufeinander folgenden Datenpakeren. Diese Zeit beriicksichtigt das Abklingverhaltenvon passiven Obertragu"gskomponenten und stellt sicher, dass kein erkennbarer Pegel mehr auf dem Obertragungsmedium vorhanden ist.
- next generation) Die neue, als IPv6 bezeichnete Version, die gegenüber der heutigen Version einen gröi3eren hierarchischen Adressraum und verschiedene neue Merkmale bietet.
Png (Internet Protmol
IPSEC (PSecurity Protocol) IETF-Standardisim dir V~rMweaund PTot&& fiit einen kstderübe&enQen sicheren und g s c h u ~ e nDatrinausawseh mittels IP festlegt, Der Normenrahmen von IPSEC definiert die Vorgeheff~w& für Datenintegritiit, Vertraulichkeit der Inhalte und Verwaltung der Brr).PSo' graphischen Schlüssel. IPSEC schützt die Datenpakete des IP-Pr0tuko1Is vw m@chen Modifikationen u d Ausspähugea Es bee*dusst weder die Korn; m@katio~protokollenoch die A n w e n d ~ p r osodas& ~ ~ das ~ . .&mp~' w ~ r k i n g . ü b e r ~ o u t e r ~ n i c b t b e w i b ~ ~ ~ & -:-:-,i--,t.-\4.
1
IRTF (Interna Research Task Force) F h IAB-Arbeidqppp, die füt. besForschungs~und Entwicklungsprojekte für das Internet zuständig ist. ISDN (Integrated Services"~i~ita1 Netwprk) Diens@int@erendes digitale meldenetz, das die Jjereitspeiiung von'integdemm N d e n s t e n unterstützt. Die & T kombipiert Sprach- und digitale Dattn&nsted IISDM wurde WB der I'iVT stankdieiert und wird von Telefosqpekd&m angeboten. '
1s-B Ein mit OSPF vwgieichbares L i n k - S ~ R o u ~ P r ~ t 8 k a l l .
IJO (InternationalOrganizationfor S-bdon)
in &Genf ansässige internationaie Organisation, die i n d u s & axaf ~ zahlreichen Gebieten, n.a. Cxtmpuw- und .Netzte&&en, &b1t, dawnter das QQ-Raferwodell. ITU-T (Internationai Tel~mxnunicauionsUnion) Gremium der inter&tioizalen Orgasimtiun, die &andar& für analoge und e t d e Tdekommdaem entwickelt und überwacht, Qnuiw Statafüi Nateckiiok&m (zS. ATM).
JamSigd (Stömigd) Wenn beim CSWCD-Zuwverfahren 'ehe K
den Kaiaal pscU. Mch dessen A&en zeit, bew die U b a g m g neu versucht wird. auf
h
hlgt,eiae
Jittea Mt Jitter lpan Aba-w&w von bes-m Fa&m eines Digi&&s (2.B. der Zeiqniakl &W von Sgdmqditude auf eine andere) bei der Obertragung dwech ein Netz, also Schwankder Netzlauhit. Gro* Jimkann insbesondere Audio- und Viieoübe~&g beeinträchtigen.
JPEG (JointPhot~gtaphkExpem Group) kmkhmmgde-rA r h i e ~ p p g eund rtaP von ihr ausgearbeiteten S m fü die K o m p d a n vm Wtrjldern, . , b a l AUgmehez, in d @ s a B& vesymdete &griff & eine w eP r . zu-PrmewUerbinbung. !
(
Kapstlq (kapsdation) T&m& zum 'Kapkh Um Framz$-in ein. HI-Datajgmq.Das gesamte D a t a q m wiid in dai Nu-btM Fr-% ehgew.Die N ~ b&an&it cbun d F m~y& jeden tih4kkn Rqme. S e prüft wedu den uihatt dm hlu&mW& wxh hdm sk ih
Kerberos Ein TCPmJlbasiertee, a i ~ aMIT entwickeltes ~ e n t i f i z i e ~ s y s t e m , bei dem zwei Hosts sich über eine vertrauenswürdige dritte Partei gegenseitig authentifizieren. Knoten (Node) w e i n e r Begiff fiir einzelne Computer, aus denen sich e+ Netzwerk zusammensetzt, d.h. universelle Computg Switche uad Routsr, Koaxiaikabd (kurz Kaaxkabel) Eui Kupferkabel ,das mehr Schutz vor S t ö ~ g e n als das verdrillte Kabelpaar bietet. Es besteht aus 'einem einzigen Kabel, das mit einem stärkeren Meeallmantel umhüllt ist. Dieses Medium wird im konventioneiien Fernsehen und in Datennetzen eingesetzt. Kryptographie (Cryptography) Wissenschaft zur Erforschung und Realisierung von Verfahren zur Vep bzw. Entschliisselung von Daten, bei denen entweder das Verschlüsselungsverfahren oder (bei Anwendung einheitlicher Schlüsselverfahren) die verwendeten Schlüsselbegriffe geheimgehalten werden. Durch Ändern, Vertauschen oder Hinzufügen von Zeichen nach bestimmten Regeln wird ein Klartext h einen Chiffretext verwandelt und umgekehrt; anwendbar bei der Speicherung von Daten und der Datenübertragung. Wirksames Mittel des Datenschutzes, um Informationen, die in falsche Hände gelangt sind, wertlos zu machen. Neben der Vertraulichkeit durch die Verschlüsselung von Klartext kann mit den Methoden der Kryptographie auch die Authentizität einer Nachricht sowie die Integrität einer Datei sichergestellt werden, wobei unter letzterem die Gewißheit zu verstehen ist, eine Datei in unveränderter Form zu empfangen. Man unterscheidet bei den Verschlüsselungsverfahren ganz allgemein zwischen dem Public-Key- und dem Private-Key-Verfahren. Bekannte Verschlüsselungsalgorithmen sind: RSA, DES, IDEA, PGP und Kerberos.
LAN (Local Area Network) Lokales Netzwerk, das innerhalb eines Gebäudes oder eines Firmengelindes installiert wird und in dem private Obertragungsmedien und Vermirtlungsanlagen benutzt werden. Zu den MN-Technologien zählen ~the&et,Token-Ring und FDDI. Größere Entfernungen werden von MANs und WANs abgedeckt, LANE (Local Area Network Emulation) Technik für die Erweiterung von ATM, sodass es sich wie ein LAN mit gemeinsamer Mediennutzung (2.B. Ethernet) verhält. LAN-Switch Bezeichnung für eine Bridge mit vielen Ports. In einem Ethernet verwendet man auch den Begriff ~Ethernet-Switch*. Last Mile (Anschlussbereich, AsB) Der Bereich zwischen der Vermittlungsstelle arn Netz und der hausinternen Vermittlungsstelle. Im Falle des öffentlichen Fernsprechnetzes ist es der geographische Bereich zwischen der Ortsvermittlungsstelle und dem Vetmittlurigspunkt im Haus; das kann der Zugangspunkt oder auch die %lekommunikations-Anschiussdose sein. Bei anderen Netzkonf~gurationen kann der Netzvermittlungspunkt der Access-Knoten oder der Verteiler-
732
1
Glossar
kasten auf dem Bürgersteig sein. Im Anschlussbereich dominiert heute die Kupferverkabelung. Latenz (Latency) Irn allgemeinen handelt es sich um das Zeitintervall vom Ende eines Ereignisses bis zum Beginn der Reaktion auf dieses Ereignis. In Ringsystemen meint man mit der Latenzzeit die Zeit, die ein Datenpaket für die Umrundung eines Token-Rings benötigt, wenn dieser verkehrsfrei ist. Die Latenzzeit steigt dabei mit der Anzahl der angeschlossenen Stationen. Im Ethemet-Bereich handelt es sich um ein wichtiges Unterscheidungsmerkmal von Switchen. Die Latenzzeit beschreibt dabei den Zeitraum, der vergeht, bis ein an einem SwitchPort empfangenes Bit den Ziel-Port des Switch wieder verlässt. Dieser Zeitraum wird in Mikrosekunden angegeben und ist abhängig von dem benutzten Schaltverfahren: Cut-Through oder Store-and-Forward. Layering Das Schichtenmodell bildet eine funktionale Unterteilung der Kommunikationsaufgaben. Aufgabe einer Schicht ist es, Dienstleistungen für die nächsthöhere Schicht bereitzustellen, wobei sie sich der Dienste der darunter liegenden Schicht bedient. Die Dienste einer Schicht sind in Instanzen angeordnet. Allgemein gilt, dass ein6 Schicht N auf einem Rechner A nur mit der entsprechenden Schicht N auf einem Rechner B kommuniziert. Aus diesem Grund spricht man von Peer-to-peer-Protokollen (Peer = Partner). Die Komrnunikationsregeln sind in den Protokollen für Schicht N festgelegt. LDAP (LightweightDirectory Access Protocol) Teil des VerzeichnisdienstesX.500, ein in letzter Zeit beliebter Verzeichnisdienst für Informationen über Benutzer. LER (Label Edge Router) Eine Router am Rand einer MPLS-Wolke. Er prüft ankommenden IP-Pakete vollständig und heftet ihnen dann entsprechende Label an. ,
Leitungsvermittlung (Circuit Switching) Telek~mmunikationstechnik, bei der Punkt-zu-Punkt-Verbindungenzwischen kommunizierenden Parteien aufgebaut und Ressourcen für die Dauer der Verbindung bereitgestellt werden. Das öffentliche Telefonnetz und ISDN sind Beispiele von leitungsvermittelten Netzen. Das Gegenteil ist die Paketvermittlung. LES LAN-Emulationsserver; siehe LANE. Link-Layer-Protokoll Ein für die ifbertragung von Frames über ein direkt verbundenes Netzwerk (2.B. Ethernet, Token-Ring oder Punkt-zu-punkt-Leitung) verwendetes Protokoll. Link-State-Algorithmus (LSA) Dynamisches Routing-Verfahren, bei dem der Tabellenberechnung eine vollständige Topologiebasis zugrundegelegt wird: Die LSA-Datenbasis enthält sowohl Informationen über Entfernungen zu anderen Routern als auch Zusatzinformationen über die hierarchische Stniktui; in der Router untereinander verbunden sind. Typischerweise wird nach Area-Router (Hierarchieebene 1) und Backbone-Router (Hierarchieebene 2) unterschieden;
es sind also mindestens zwei Hierarchieebenen vorhanden. Bei Tabellenänderungen werden nur die Änderungen weitergegeben, und diese auch nur an die Nachbarn innerhalb der eigenen Hierarchieebene, nicht an alle Systeme. Zur Berechnung sind verschiedene Metriken möglich, nicht nur die Anzahl der Hops zwischen zwei Endsystemen. Der LSA, auch Shortest-Path-First-Algorithmus (SPF) genannt, neigt weniger dazu, Zyklen bei Topologieänderungen zu produzieren, und konvergiert schneller, findet also nach Veränderungen im Netzbetrieb die konstante optimale Route schneller. Zudem generiert er weniger Overhead: Router senden nicht ihre komplette Tabelle, sondern nur über ihre direkten aktiven Nachbarn. Aus dieser verteilten sich jeder Router die neuen Routen.
Local-Loop Leitungsstrecke zwischen Teilnehmer und ZentralvermittlungssteIle. LOS (Line of Sight) Sichtverbindung zwischen Sender und Empfänger in drahtlosen Netzen nach 802.11. LSR (Label-switchingRouter) Ein Router, der IP-Kontrollprotokoile verwendet, der aber den MPLS-Weiterleitungsalgorithmusverwendet.
MAC (Medium Access Control) Medienspezifisches Zugangsverfahren innerhalb der IEEE-802-Spezifikationen.Es beinhaltet Varianten für Token-Ring, TokenBus und CSMAICD. MAC ist die untere Teilschicht der Sicherungsschicht im LAN-Schichtenrnodeii. Das Medienzugangsverfahrenumfasst die Frame-Aufbereitung beim Senden (Kapselung) und Empfangen (Entkapselung),die FrameObergabe an das Zugangsmanagement (Senderseite), das Zugangsmanagement und die Fehlerkorrektu~Die Arbeitsweise der MAC-Schicht basiert auf der Kooperation unterschiedlicher Prozesse.
-
MACA (Multiple Access with Coiiision Avoidance) Verteilter Algorithmus für die Regelung des Zugriffs auf ein gemeinsam genutztes Medium.
MACAW (Multiple Access with Collision Avoidance for Wieless) Erweiterte Version des allgemeinen MACA-Algorithmus für die bessere Unterstützung von drahtlosen Netzwerken; IEEE-Spezifikation 802.11.
MAN (Metropolitan Area Network) Ein Netzwerk, das auf einer der neuen Netzwerktechnologien basiert, die in hohen Geschwindigkeiten (bis zu mehreren Gbitls) laufen, und von der Reichweite her ein Stadtgebiet abdeckt. Manchester-Kodierung E i e in Ethemet angewandte Bit-Kodierungsmethode, bei der das XOR (exclusive-OR)des Takts und die mit NRZ kodierten Daten übertragen werden. MBone (Multicast-Backbone) Ein logisches, auf das Internet aufsetzende Netzwerk, in dem multicastfähige Router Multicast-Datagramme mittels Tunneling im Internet weiterleiten.
734 ] aossar
MD5 (Message-Digest Version 5) Ein .effizktet k r y p t ~ ~ P eirü rfsmrnenalgorithmus, mit dem überprüft werden kann, ob der uihak einer Nachricht unverändert gebiieben iq.
MIB (Management Information Base) I k i n i e r t eine ~ & evon aetpmkbezogenen Variablen, die in einem Netzwerkknoten gelesen oder geschrieben werden können. MIB wird in Verbindung mit S N M P benutzt.
NIWiE (Muitipurpose Intemet Maii lhsemi-)
Ein Ieternct-Standard zur Unterstützung von Binärdaten, rB. Muithedia-Mail. i k r Standard definiert auch externe Referenzen zur impliziten Einbhdung von Medien.
Moslic Kostenlos erhältücher gr&ähiger Web-Browser, der am National Center for Supercomputing Applications (NCSA) an d a Uni~cmitäa:of Iliinois entwickdt wurde.
.
1
MP3 (MPEG Layer 3) Ein Audio-Kompressionsstmdard,der W E G verwendet.
WEG (Moving Picture Experts Group).]&ezeicluiungder Arbei~gruppeund des von ihr ausgearbeiteten Srandards für die Kompression von Video.
MPU (Mdtiprowol Label Switching) Eine Reihe von Techniken, die fur die effektive ImpIementierung von P-Routcrn o M b van Switchen da Ebene 2 (2.3.ATM)benutzt werden. MSAU (Multistation Access Unit) Eia Gerät, das in Token-Ring-Netzen benutzt wird, um mehrere Stationen ati dea Ring anzuschii&n und sie im Störungsfd vom Netz abzukoppeln.
MTü (Maximum Transmission Unit) Maximale Gra& von Paketen, die übet ein
.
physikalisches Netzwerk gesendet werden könaen. Mdticast Ubertragungsast von einem Sunkt zu eher Gruppe. Man spricht bCi Multicast auch von Mehrpunktverbindung. Der Vorteil von Mdticast liegt darin, dass gleichzeitig Naehrkhten aa mehrere Teilnehmer odet g ~ Tehehergruppen (Clased U m Groups).iilxmagen w d m . Multiplexen Ein allgemeines Konzept der Kombination unabhängiger Datenquellen @.B. Setrennte TCP- und UDPKanäle) in eine F O ~ die , in einem Kommunikatioqskand gesendet weiden kann. Das Umkehrverfidwen, das auf dem empfangenden Host ausgeführt wird, wird-als Dmultipkm bezeichaet. Nachricht Date~inheit~ die zwischen Anwendungen ausgetauscht wird.
Naffximsaufl~suag (Name Resoluti~n)Auflösschen leichter &bar sind) in ihre &?Q~SP~-B leichter lesbar sind); siehe auch DNS,
von I3cw-Namen (die für MenAdressen (die.fiir M a d e n
'
NAT (Network Address Tcansiation) Eine Technik für die Erweiterung d&s IPAdressraums, bei der zwischen global verstandenen IP-Adressen und lakden Adressen am Rande eines Netzwerks übersetzt wird, NDR (Nerwark Data Representation) Der in DCE (Distributed Cumputing Environment) benutzte Datenkodierungwtandard, der von der Open Software Foundation (OSF) definiert wurde. Im NDR wird die so genannte Receiver-MakesRight-Strategie angewandt, bei der an den Anfang jeder Nachricht ein Architektur-Tag eingefügt wUd. Netscape Weitverbreiteter gr&ähiger
Webbrowsec
Network-Layer-Protokoil Ein Protokoll, das in vermittelten Netzwerken direkt oberhalb der Sicherungsschichtläuft. Netzadapter (Netzkarte) Anpassungse1erneht zur Verbindung von Geräten mit nicht aufeinander abgestimmter Arbeitsweise. Adapter werden auch die Einsteckkarten (BoardJNIC) genannt, die in PCs oder anderen Rechnern für die ~ornmunikadonvom und zum Rechner sorgen, beispielsweise in Form von Ethernet-Adapterkarten, ISDN-Adaptern usw. NFS (Network File System) Ein weitverbreitetes verteiltes Dateisystem, das von Sun Micmsysrems entwickelt wurde und auf SunRPC, einem ebenfalls von Sun entwickelten RPC-Protokoll, basiert. NIST (National Institute for Standards and Technology) Das offizielle Standardisierungsgremium der USA. NRZ (Non-Return to Zero) Eine Bit-Kodierungsmethode, bei der eine 1als HighSignal und eine 0 als Low-Signal kodiert wird.
NRZI (Non-Return to Zero Inverted) Eine Bit-Kodierungsmethode, bei der ein Obergang vom aktuellen Signal erfolgt, um eine 1 zu kodieren, und auf dem aktuellen Level verharrt wird, um eine 0 zu kodieren. NSF (National Science Foundation)Eine US-Regierungsbehörde, die wissenschaftliche Forschungen in den USA fördert, 2.B. Forschungsarbeiten an Netzwerken und an der Internet-Infrastruktut
NV (Network Video) Eine Videokonferenzanwendung,die in MBone läuft. OC (Optical Carrier) Das Präfix für verschiedene Raten der optischen SONETübertragung, z,B. OC-1 gemäß SONET-Standard für übertragungen mit 51,84 Mbit/s über Glasfase~Ein OC-n-Signal unterscheidet sich von einem STS-n-Si'd nur darin, dass auf das OC-n-Signal für die optische Obertragung das Scrambling angewandt wird. Öffentlicher Schlüssel (Public Key) Einer der beiden Schlüssel, die in einem Verschiüsselungssystem (z.B, RSA) verwendet werden. Der öffentliche Schlüssel
PWI$koar
wird bthtgcgeben, um in VerbinWibm1~remmdetzu w d e i a .
mit einem cntqmxkdm pri-
ONC (OpenNe~vorkComputing) Eine Version von SwiRPC, die fiir das Intern& staadgt&* *d. . . . .
Optid Switch ,EinSwitch, der ankomcn&.Lichm&en vom Ihgangs- an dm Ausgangs-Port weiterleitet, ohne sie .zmkk&h in elekwcfie Impulss wrrzuwandeh.
CBF (Open Software Faundation) Ein Konsortium von Computwbelfern, die . Standafds für verteilte Rechenumgebungen, b t e i das ~ ~ ~ - ~ a r s t e l l w n g s f ~ mat, stadmdisiertkben. .
-
OS1 (Open Systems Interconnection) Das von der ISO entwickelte, aus sieben Schichten bestehende Netzwerk-M--, dss dan hs&n van W w d ITU-T-P1:5tok~h& zugmnde
.
koY1kurz-bis mitcelfnstig ablijlsen rithmus ist der ~~~-AIgori&us (Shortest P
wkcklung einer frishen Version dsa IS-IS-botdr9Us. Es 4asia-kauf einw Li&Sm&-AlgoritOUgus, bei dem jeder Knotm ehe To-pUe dm Interna auf~s& und ftir Weite~leitungsentscheiduagenverwendet.
.
Orerlay Ein vim& &gkhes) Netzwtfk, 401 auf einem barehadm physkaii* sehen NetL 1&&. Overhy-Iboten ko-uniziaen mi&der nicht über phgsi- . U s c h e V&-en, sondern dureh T d . Cheriays werden häufig daai vmvenldot, um neae Netzwerkdienste zu entwiekeh, weii b d diese Afk M&t in die b t e r liegende Nazi&-
P&*-
(Packet Switching) Eine T e i e k - w t i q e w auf dw: Gmdlage dw & i a n d t i p k e r f h s , bei der ~ i d k inekfeine DareneWwn au&a& aad n a & h & r - 4 s Pak:me, Rwaa dcln? Psrkem-lte Netze k-en verbindulfgd~wie XdS, Frame-Rdqy oda ATW seip [hr,G-$eateit_i*die L s i t z g - g s m w ~ ~ t t g ~ . (Protdca A B g h t Wrappd Se~itenoen w d m ) g m g von Tram-okn mit einem a & h d g d h
'
,
PA=
.
-
I
739 1;
E'CS (Personal Communication Services) Digitales mobiles Telefonsyseem, das in
E
den USA und Kanada im Einsatz ist; vergleichbar mit dem im Rest der Welt benutzten GSM. '
;
5:
. I
PDU (Protocol Data Unit) Andere Bezeichnung für Paket oder Frame. Peer (Parmer) Eine Gegenstelle auf einer anderen Masche, mit der eini Protokailmodul interagiert, um einen Kommunilcationsdienst zu implementieren. Peer-to-PeerNetzwerk Ein Oberbegriff für Anwendungen, die Anwendungslogiic (z.B. Dateiverwaitung) mit Routing verbinden. Bekannte Beispiele sind Nap~ter und Gnutella. Forschungsversionen basieren häufig auf verteilten Hash-Tabellen. PEM (Privacy Enhanced Mail) Erweiterungen für E-Mail im Internet, die Vemaulichkeit und Integrität der Daten unterstützen; siehe auch PGP.
PGP (Pretty Good Privacy) Public-Domain-Software, die Vertraulichkeit und
-V i.j
*Y
2 Z:.'
Authentifhtion unter RSA bietet und ein Vertrauensnetz für die Verteilung öffentlicher Schlüssel nutzt.
C,
U
PHB ( ~ e r i Behavior) ~ o ~ Verhalten einzelner Router (zB. AF und EF) in der Differentiated-Services-Architekrur. Physical-Layer-Protokoll Protokoll auf der Bitübertragungsschicht mit der hauptsächlichen Aufgabe, Bits in die Signale zu kodieren, die über die physikalischen übertragungsmedien verbreitet werden.
.
j.
, I
; \ '
,
1.
Piconet Drahtloses Netzwerk mit kurzer Reichweite (etwa 10 m) für die Verbin- ..; dung von Bürocompurem ohne Kabel. .L.
8
PIM (Protocol-Independent Multicast) E i Multicast-Routing-Protokoll, das oberhalb verschieden= Unicast-Routing-Protokolie implementiert werden kann. Ping Eine Unix-Utility, die zum k t e n der RTT zu verschiedenen Hosts im intemet benutzt wird. Ping sendet eine ICMP-Nachricht ECHO-REQUEST, und der entfernte Host sendet eine ECHO-RESPONSE-Nachricht zurück. PI0 (Prograrnmed Input(0utput) Technik zur Verbindung von H o s ~mit YOGeräten, bei der das Gerät Daten direkt vom Host-Speicher liest und in diesen schreibt; siehe auch DMA. Poison-Reverse Eine heuristische Technik, die in Verbindung mit Split-Horizon benutzt wird, um Routing-Schleifen in Distanzvektor-Routing-Protokollenzu vermeiden. Port Ein allgemeiner Begriff, mit dem der Punkt bezeichnet wird, an dem sich ein Netzwerknutzer an das Netzwerk aufichaltet. Bei einem Switch ist ein Port der Eingang, an dem Pakete empfangen bzw. der Ausgang, von dem Pakete gesendet werden.
'
POTS (Plain Qld Telephone Service] h t e r n a t l d e i . . w &r das k0n-d F
m
u
e
iTP (Point-ta-Point Protocol) Von det: JETF entwickelte Gruppe von Protokollen auf der Sichemqw&&t fiir W ä b l m b u i d v - . t
L
e m 1 Einer cter beiden !khhb& die in einem V e r s c t i S ü s s e l ~ ~ m @.B. v w w d e t werden. Fiir eine &dme M-dm d i dder w a t e Sch)Wel nur seinem Etzeuger bekannt =in. ,
WatetS
P r h a s - M o d e Eine MxieSart fiir-Nett, M dex ein AcSapter die iin Netmmk ihx&agenenE:ramesd a i c h t x m r die an i h n & i m tmpfhg.
Pretokoll (Protucol)Eine standardisierte Menge von Operationen, um den Batenmdis d unddete Netzaktivitiiterl mim mssmmm nicht onbedkigg kempsiblen Compurem 'zu regeln. & e g r i f f - W t . . a n &die Spezifh* ehm Wtrstefie zwischen Modulen, die riuf u n M e d l i c b e n Mst&ea laufen. Client rpiB Smm siw ond N e h Proay Eine Art Agent, k &Iren abfängr tui8 k Dienste anbietet. Z.B. kam &-Pmxy lltl SeeUe deie Smvcrs auf Client-Anfragen antworten, indem ,H Da- aus sein- Cache *& ohne den Server kontaicen m müssen.
Prozess Eine von ehern B e t n e k p e m &gc,itjgesteilte &b&rpktion,. damit ve&edene Operationen glei&tig'ausg&h d& Ittinnen. Jede Btqutzkrki&ndwg führt 23. intern ein& eigenen PI& aus, w@mmd-de?pe Websin anderen Prozessen ablaufen. syst-onen '
k f s m m e (ch&um)' Ein ~ e s s w e zur. n ob Dimi wiibnmd d a &rtrWg nesiindm wmden. Die eP wird ia einem Paket'mit den Ihren tSk&agw. Der b p f h g s 9ein&m11 &e Priihmme a n b d der emp4%nenenDaten und wgldeht s e b a W ett mit dem h ezhab~tbn Paket. Der Begriff ykd &W oft ds ailgmmihe k.z e k h q u n ~fUr : Fehl-kuui+odes vom&* . .. I
Pseudo-Header . Ehe Untermenge pomr~mIsoll= T 8 und uDP Quell- d &Ern*
.
& I him IP43eadeq die zu den aanS-
uad die
crkamtwird,
,
.-
-
.'
I
I
( Q d t y of Savicq Dieaagüte) Von einer ~ & c h i t + - $ t ~ Zwichemgen bei dtr P a k & h n & 4th zwmdmd& d Per&- ", D& -'W W. =Ce 29. &-&s~Mat;b ,.was bk?&wqdw.9 riie.t 2 b e m -van P i k tea nach Bhiiühm, jdwhi Gtw×&& .' ,
QoS
~~
3
*
D
RED (Radom Early D e t h o n ) Eine Queuing-Disziplin für Rsuteq bei der Pakete im Fall einer vorauszusehende überlast nach dem Zufalisprkip verworfen werden, um den Sender zu veranlassen, langsamer zu werden. Rendw-Punk Ein im P M (Protd-Independent M u l t b t ) benutzter Router, durch den Empfänger Informationen über Sender e r h a k t ~ i4ben.
'
:
Repeater Ein Hardwaregerät, das je zwei Kabelsegmente veabiak, ifla die Reichweite ehes LAN zu vergrökm. Quell- und Zieirechner rniismmkht wissen, ob sie am gleichen oder einem anderen Segment angeschlossen aid. Zwischen je zwei Hosts in einem Ethemet sind höchstens zwei Repeater rn&l&. Reipeater übertragen Signale, Bridges übertragen Frames, Router und Switcbe übertragen Pakete.
RFC (Request for Comments) Intemet-Berichte, die unter anderem S p d k a t i o nen für Protokolle wie TCP und IP enthalten. RIO (RED with In and Out) Eine Paket-Drop-Regel auf der Grundlage mm RED, jedoch mit zwei Drop-Kurven: eine für Pakete, die mit *in*, und eine &@&cte, die mit aout* gekennzeichnet wurden. Die Regel wird angewandt, um D i k e n tiated-Services zu implementieren.
RIP (Routing Information Protocol) RIP ist das am häufigsten verwendete PCSP. Protokoll, das sich als Standardrnodul von BSD-Unix 4.x stark etabliek'bt. Beim Routing arbeitet man mit Tabellen, die beim statischen Routing rnmd angelegt und beim dynamischen Routing von den Routern erlernt und datri& angelegt werden. Unter RIP baut jeder Router seine Weiterleitungstabelle dpnämisch auf der Grundlage eines Distanzvektor-Algorithmusauf. *
Router Ein an zwei oder mehr Netzwerke angeschlossener Netzwerkknoten, der Pakete von einem Netzwerk an ein anderes weiterleitet; siehe im Gegensatz d a 3 Bridge, Repeater und Suritch. Routing Ein Verfahren, bei dem Knoten Informationen über die Netztopologie austauschen, um ihre Weiterleitungstabellen richtig aufbauen zu können. Siehe hierzu Weiterleitungstabelle, Link-Stnte-Algorithmus und Distanzvektor-Routing. Routhg-Tabelle Siehe WeiterleitsdngstabeIle RPC (Remote Procedure Call) Synchrones AnfragdAntwort-Transportprotokoll, das in kelen Clientltkrver-Interaktionenbenutzt wird. RSA Ein VerschlUsselungsalgorithmus mit öffentlichen Schlüsseln, der nach seinen Erfindern (Rivest, Shamir und Adleman) benannt wurde.
RSVP (Resource Reservation Protocol) Ein Protokoll für die Reservierung von Ressourcen im Netzwerk, welches das Konzept des Soft-State in Routern
anwendet. Die Zuständigkeit für Reservierungen liegt bei den Empfängern und nicht bei den Sendern. RTCP (Real-time Control Protocol) RTCP ist wie RTP Bestandteil des Standards H.323. Das RTCP-Protokoll meldet den Netzwerkstatus, sodass Anwendungen darauf reagieren könpen. RTD (Round Trip Delay) Die maximale Zeit, die ein Datenpaket in einem LAN benötigt. Die Umiaufieit ergibt sich aus der übertragungsgeschwindigkeit des Netzes und der Zeit, die die Stationen zum Abhören bzw. Weiterleiten der Datenpakete benötigen.
.
RTP (Real-Time Protocol) RTP erkennt und korrigiert fehlende, doppelte oder in falscher Reihenfolge empfangene Datenpakete. Dies wird durch die Verwendung von Zwischenspeichern, Zeitstempeln und Folgenummern erreicht. Die Rückmeldung erfolgt über das RTCP-Protokoll. Das RTP-Prot~kollist Bestandteil von H.323, liegt auf der Anwendungsschicht und k a m netzwerkbasierte Videokommunikation abwickeln. RTT (Round Trip Time) Die Reaktionszeit eines kompletten Netzwerks, d.h. die Zeitspanne, die erforderlich ist, um ein Signal von einer Quelle über das Netzwerk zum Empfänger und dessen Antwort wiederum über das Netzwerk zurück zum Sender zu übertragen. SAN (System Area Network) Ein Netzwerk, das die Komponenten eines Computersystems (2.B. Monitor, Kamera, Platte) verbindet und Interfaces wie HiPPI und Fiber-Channel beinhaltet. Siehe im Gegensatz dazu LAN, MAN und WAN.
Schema Eine Spezifikation, die festlegt, wie ein XML-Datensatz strukturiert und interpretiert werden muss. Schliisselverteitung Ein Mechanismus, durch den Benutzer sich gegenseitig ihren öffentlichen Cdilüssel bekanntgeben. Sie tauschen hierfür digital signierte Zertifikate aus. Scrambling XOR-Verknüpfung eines Signals mit einem pseudozufälligen Bitstrom vor der Obertragung mit dem Ziel, für die Taktwiederherstellung ausreichend Signalübergänge zu ermöghchen. Scrambling wird in SONET angewandt. SDP (Session Description Protocol) Ein Protokoll der Anwendu~gsschicht,das dazu dient, die zur Verfügung stehenden Audio- oder Videoressourcen festzustellen. Es umfasst Namen, Zweck, Anfangs- und Endzeit sowie Medientypen (2.B. Audio, Video) einer Sitzung; außerdem die Parameter, die zuan Empfang der Sitzung erforderlich sind (2.B. Multicast-Adresse, Transportprotokoll und die verwendeten Port-Nummern). 4
Segment Bezeichnung für ein TCP-Paket. Ein Segment enthält einen Teil des ByteStroms, der mittels TCP übertragen wird.
I
Gkurr
I
74l
SELECT Ein synchrones Demultiplex-Protokoll, das bei der E n t w i c k i ~eines RPC-Protokolls verwendet wird. Semaphore Eine für die Unterstützung von Synchronisation zwischen Prozessen verwendete Variable. Nonderweise blockiert ein Prozess an einer Semaphore und war.& an dieser Stelle, bis ein anderer Prozess die Semaphore signalisiert. Server Die Seite in einem verteilten System, die Dienste bereitstellt. Signalisierung (Signaiiiig) Die ifbertragung eines Signals über ein physikalisches Medium auf der Bitübertragungsschicht. In ATM bezeichnet der Begriff den - 'W Aufbau einer virtuellen Verbindung. . . - . - ..*- :C 8 . '
Say-Window-Syndrom Ein Zustand, der in TCP eintteten kam, wenn der Sender jedes Mal, wenn der Empfänger sein Ernpfangsfenster ein Mein wenig öffnet, ein kleines Segment sendet, um das Fenster des Empfängers zu füllen. Daraus ergeben sich viele kleine Segmente und ineffiziente Nutzung der Bandbreite. SIP (SessionInitiation Protocol) Ein Protokoll auf der Anwendungsschicht, das für Mdtimedia-Anwendungen vetwendet wird. Es bestimmt das richtige Gerät für die Kommunikation mit einem bestimmten Nutzer, ob der Nutzer an einer bestimmten Kommunikationssitzungteilnehmen möchte oder kann, die Art der verwendeten Medien und Kodiemhemas und legt Sitzungs-Parameter (2.B. Port-Nummern)fest. Sliding-Window Ein Algorithmus, der es dem Sender erlaubt, mehrere Pakete (bis höchstens im Umfang der Fenstergröge) zu senden, bevor er ein ACK (Acknowledgement) erhält. Da mit ACKs die zuerst gesendeten, im Fenster befindlichen Pakete bestätigt werden, mverschiebtu sich das Fenster und es können weitere Pakete gesendet werden. Dieser Algorithmus verbindet zuverlässige Übertragung mit hohem Durchsatz (sieheARQ). Slow-Start Ein Algorithmus zur Überlastvermeidung für TCP, mit dem versucht wird, das Tempo abgehender Segmente zu bestimmen. Für jedes zuriickgesendete ACK werden zwei zusätzliche Pakete gesendet, sodass sich die Anzahl der ausstehenden Segmente exponentiell erhöht. SMDS (Switched Multimegabit Data Service) Ein Dienst, der LAN-zu-WAN-Konnektivität unterstützt und von einigen Telefongesellschaften angeboten wird. SMTP (Simple Mai1 Transfer Protocol) Das E-Mail-Protokoll des Intemet (siehe 822).
SNA (System Network Architecnire) Die Netzwerkarchitektur von IBM. SNMP (Simple Network Management Protocol) Ein Internet-Protokoll für die Überwachung von Hose, Netzwerken und Routem. Socket Softwarestruktur, die in einer Netzwerkeinrichtung wie ein Kommunikationsendpunkt arbeitet. Sie bezeichnet den logischen Endpunkt einer Verbin-
342
1 Ckuar dung miaeis T a , UDP und I ~ x .Ein S& setzt sich aus eher Netzwerk-, einer Rechner- und einer Port-Nummer zusammen. Das Sacket-Interface ist &e am meisten verbreitete W-Interface. Die bekamtesten Anwendungen, die ein Socket-Interface benutzen, sind Telnet, FIT und NSE
.
Soft-State Verbindungsbezogene Informationen, die über eine begrenzte Zeit im Cache eines Routers vorgehalten werden, sodass Verbindungen nicht expiizit auf- und abgebaut werden müssen
SONETT (Synchronous Optical Nawork) Ein Takt-basiertet Smndard für die digitale h r t r a g u n g über Lichtwellenleitei; der definiek, wie Telefongesell~ften Daten in optischen Netzwerken übertragen. Source-Ranting Routing auf der Grundlage von Emscheidungen, die vor der Obertragung eines Pakets an der Quelle getroffen werden. Die Route umfasst G o ten, die das Paket auf dem Weg zum Ziel überqueren sollte. Sparse-Mode Muiticast Eine irn PLM (Protocd-Independent Multicast) verwendete Betriebsatt, wem relativ wenig Hosts d g r R ~ u t eMulticast-Daten r füt eine bestimmte Gruppe empfangen müssen. Sjtoro-&-Fixward (Speichrvedurrg) Abschnittsweise D.atenfibeRni&ung mit Z&kpeichening vor der Weitergabe. Spiit-HorizUn Eine Merhode für die Auflösung von Routing-Schieifen in einem ~ i s t a & z v e ~ ~ o u t s n g - ~ l g u r i dWmn m m . ein I(notc* eine R o u a n a k ~ G i s rung an seine Nachbarn sendet, b e r t er jeweifs die Rauten aus, die er von jedem einzdnen Nachbarn e&hren hat, Die. Methode wird mit P o b a - R w s e angewandt. Spread-Sperrrum (Spreizspektrum)Eine Technik, bei der fhertragungen absichtlich über ein breites Frequenzband vertek werden. Das ist besonders im Militat&eich beliebt, weil IIbertm,uagien dadwch schwex aufau-en und nocb Pchwer zu s t ~ r e nsind,
SSE (Seewe SodEet Layer; wird auch als Transport Layer Security (TL&) bezeichüet)Eine Protokokhicht, die auf TCP aufsetzt und mit der AuthenMkation und V e r s c w i u i g m n Verbindungen be~eitgweutwird. S t d s t i s h Multiplexen Eine auf Nachfrage basierende Multiplemnetho8ea bei der mehrere Datmqden auf e i w g a w k a m m L d w g gexmultiph werden. Stop-and-Wait-Ptorokoll Protokoli, bei dein der Sender ein Paket schickt und dann auf eine ~ twarm9b ia er f m~ .
STS (SgachronousT'poa Sigaal) Das Mfix fiir verschiedene SOJNET-übatmgungsraten, z.B. STS-1 für 5l,84-~bids-&x%ragmgm pmaß SOBIET-Smedard
.
Subnetting Verwendung einer einzigen IP-Netzwerkadresse fih mehrere physhiische Netzwerke. Router innerhalb des Subnetzwerks verwenden eine S u b t z maske, um das physikalische Netzwerk zu ermitteln, an das ein Paket weiterzuleiten ist. Durch Subnetting lässt sich effektiv eine dritte Ebene in die aus zwei Ebenen bestehende hierarchische IP-Adresse einführen. SunRPC Das von Sun Microsystems entwickelte RPC-Protokoll (Remote Procedure Call), das für die Unterstützung von NFS benutzt wird (siehe auch ONC).
+
Switch (Vermittler)Ein Netzwerkknoten, der Pakete anhand der im Paket-Header enthaltenen Informationen von Ein- an Ausgänge weiterleitet. Er unterscheidet sich von einem Router im Wesentlichen dadurch, dass er normalerweise keine Netzwerke verbindet, die von unterschiedlichem Typ sind.
r
Switching-Element Schaltelement; Teil der Switching-Fabric.
r
k I
i r
I
F
Switching-Fabric (Schaltnetzwerk oder Vermittlungseinheit) Switching-Fabrics sind aus kleinen Schaltelementen (Switching-Elements) aufgebaut. Im Prinzip kann ein Schaltelement bereits als Switching-Fabric bezeichnet werden. Normalerweise ist die Anzahl der Eingangs- und Ausgangsports zu gering, um den Anforderungen an ATM-Schalteinheiten gerecht zu werden. Die Schaltelemente selbst bestehen aus Kleinstnetzwerken, in denen die Ubertragungswege für die ATM-Zellen zur Verfügung gestellt werden.
T1 Ein von Telefongesellschaften angebotener Standarddienst, der 24 ISDN-Leitungen bzw. 1,544 Mbit/s entspricht; wird auch als DS1 bezeichnet. T 3 Von Telefongesellschaften angebotener Dienst auf 44,7-~bitts-Obertragungsleitungen; wird auch als DS3 bezeichnet. Taktwiedergewinnung Ein Verfahren, bei dem ein gültiger Takt von einem seriell übertragenen digitalen Signal abgeleitet wird.
TCP (TransmissionControl Protwol) VerbindungsorientiertesTransportprotokoll der Internet-Architektur. TCP bietet einen zuverlässigen Byte-Strom-Obertragungsdienst.
TRM (Time Division M u l t i p l e m Zeitmultiplexverfahren) Eine Technik für Rechnemetze, um mehrere Verbindungen auf dem gleichen Obertragungsmedium zu bedienen, indem jeder Verbindung ein Zeitschlitz zugewiesen wird. Haben die Zeitschlitze eine feste Dauer und werden sie in regelmäi3igen Abständen zugewiesen, spricht man von »synchronem Zeitmultiplexverfahren*. Andernfalls findet das »asynchrone Zeitmultiplexverfahren« Anwendung. CSMAICD ist ein in Ethernet-Netzen angewandtes asynchrones TDM. Telnet Remote-Terminal-Protokoll der Internet-Architektur. Telnet ermöglidit die Interaktion des Benutzers mit einem entfernten System wie an einem direkt an dieses System angeschlossenen Terminal.
"&B*
Ein Zustand in virtuellen Speichersystemm, bei dem eine überhiike Datenkegung zwischen Prllnär- und Z f m l a ~ ~ s d a ~ n t r ä gstattfindet. ern
Drei-Wege-Handshake (Three-Way Handshake) TCP-Mechanismus, bei dem drei Nachrichten ausgetauscht werden, um sicherzustellen, dass Verbindungen zuverlässig aufgebaut und beendet werden. TLS (Transport Layer Security) Von SSL abgeleitete Skherheitsdienste, die auf ein Transportprotoicoli wie TCP aufsetzen. TLS wird oft in HiTP verwendet, um sichere Trmsaktionen Un Wmld Wide Web dwchfülpn ni können.
Token-Bucket Eine Möglichkeit der Charakterisierung oder Regelung der von einem Datenfluss benutzten Bandbreite. Bei diesem Verfahren sammeln Prozesse nach und nach Token. Um ein ~ a t e n - ~übertragen ~& zii können, mhsen sie ein Token abgeben und dann ihre Obrtragung einstellen, wenn sie keine Token mehr besitzen. insgesamt wird dadurch die Bandbreite eingeschränkt. Token-Ring Eine W-Technologie nach IEEENonn $02.5. Die Technik nubzt ein gemeinsames fSbertrngungsmedium und Puft mit 4 d e r 16 Mbitls auf verdrillten Kabeiparen, wobei das Tokm w d e t wird, urn den Zugriff auf das gemeinsam genutzte Obertragungsmediumzu regeln. . TP4 (OS1 Transport Protocol Class 4) Das leistungsstärkste OSI-Transportprotokoll, das mit TCP vergleichbar ist.
Trailer Der Trailer ist der Endteil eines Datenpakets. Es handelt sich dabei aun die Bitsequenz, die bei einem paketorientierten %rtra&gsverfahren an die eigentlichen Nu~dasenangehängt wird. Der Trailer beinhaltet hAilg-emeinen Informationen zum ~rkennenund Korrigieren van Obemagungsfehlern. Tra'is.spoapro~6koiI Ein Ende-aueEnde-Proto~,das P r o m aizf uiltbetschieQlichen Hosts die Kommunikation ermöglicht. TCP ist das kanonische Beispiel. TTC (Time To Live) Ein Mag fiir die AnzahI von Hops (Routerm), die ein P-htaga3nrn dwchiaufen h, bevor es verworfen wird.
TTRT (TargetToken Rotation Time; Token-Sollumladzeit)Teil des Token-ClaimPnrzems LR i?DDI. W m ein Ring a u im$diost: wbjd oder W& naie Stationen atn Ring aamelden, überprüft der Tm- jeden einzelnen Rahmen iuid b9von.ugs denjenigen mit t k kleiastea TTRT. Tw&ng Tunaeling nennt man den Prozess, bei dem zwei unierschiedliche Protokolle auf der gleichen Schicht miteinander Yerkapelt werden. D?&Daten des einen Protokolls werden 'in die Dnterrpakete des zweiten verpackt. Dieses Verfahren wird beim h g a n g von e i k Protokoll auf ein inderes angewende~ beispklsweiw bei IP l i h z ATM, •
. . Tyrnnet: Ein älteres Netzwerk, bei dem eine Abstraktion v i r ~ l l e Leiaagert r über eine Reihe von Routern realisiert wurde.
V
I \ r i l Cineuit I d e d h ) YunieUer Lei-der siab im H e a b ~-Phbafiadotun$&&~U~ bmmm whdbBei ATM wird eine ~ z u - E S d e % i n d ~von Y P I wd W3nxaammen i h t i f i ziert.
~ e r ~ + e i t t i ~(Physical Li&)
Physikalisches O b e r n m m e d i u m mit bcsrimmten FjgenmAaften Rlvischen zwei Knoten-eines ~ k e r k s M&khe . - Loplcmmierungcn sind llchtweiienleiter oder &4d& ~ e i . & d ~ e (%B. n über ~ipa~ütt)*: '
O S V -
\
(Comectioniess)Eine ,-N bei der keiae explizite Verbindung erforderlich ist, mdwnI d a t m d umdmIbar ~ ihrtrogen werden können. Das bedeutet, daw Frd e r Pakete ~ h n Verb*@au,übere tragen werden. Das ist der Fall bei den misten LANs und E '-oder SM)SWms. UDP ist 2.B. ein verbindungsioses Transportprotokoll. Das Gegenteil ist verbintlung~~entiert.
t
r&ll~.g*tiett (Comationsriented) JEine Neäzwbei det Frams d e r Mete nur über Verbindausgetauscht w d e n köiiiiaen, die dem Netz N m .~ V e r b w o r i bsbnnt &% Dtw istI. dcr Fall bei etiriertu dsatakmbka auch die Regein für zwei k o t n m d r e n d e hdsysteme
auf der Tr-At. TC? ist ein Beispiel &es-verbbdungsorientie~tea Ttaas-bHs, bei dem ein EndSystem nicht ohne vorherige Vereinbarung mit dem Empfanger in Form einer logkchen Verbindung Pakete t i k a g e n k m . Das G c g e d ist verbiru%mgsIos.
V=-elung ( b q p t i o n ) Eie Tachnik,bei der eine UxliwzndlungsW~on auf Ra- d e r g d t angewandt wird, dass nur der Empfiiqpr (4 Durchfühn h g der E n t s c h l ~ l r m gdie ) Daten ksen kann. W der Virschliisselung wird im Mgerninin ein geheimet ~chlüssel,cten nur der Sender und der @t;ui~& kenmn,'oder e h Kombination aus ijffentlichem und privatem & k lhutzt. V--8-Bandbreite-Produkf i(I>elay Baiidwidth Product) Bas Produkt der RTT und der Bandbreite eines Netzwerks, das einen Mesmivert &ir die Datens W q p & ~ d i e ~ i n ~ ~ « k h d vic U n i x - W i Videokonferenz-T001unter Rn.
Vunid U d Pin Diemmdeil, das es der Quelle eriaubt, durch eine ramibasipe Beschreibung ihiv ~ s s Ressourceq'auf c Rouliern(ni reseMiucn, Diesei Dienst ibtr den BestiEffort-~ienstdes heutigen &~ternet =. &haus. VPI ( V h a l P& Ide&&) Ein 8 bm. 12 Bit grob Fdd im ATM-Wgl: W1 kann benutzt um mehrere vimclie V e i b w n Q'ber ein N&& iaaee h C* -M ~ P h d zu s ~ xerbeqp und dadurch dm, Umfang an Idbmwionen über $pa Verb*-den die Switche verwalten müssen, zu verringern. !% ahd VCI. '
C
:~&t'erleimng(Fomarding) Ein von einem Room fiir jedes Paket durchgefükcs Verfahren: Der Router empfängt das Paket an einem Eingang, steflt den für die
fi
.6@r Entscheidungen iiber die Weiterleitung von Paketen vorwendet wird. Den
.-iVorgang
des A&au1s &er W e i t e r l e i ~ b e l l enenqt man Routins daher
wn&n Implen~ntierungensind Routing und Weiterleitungstabellen getrennte
(World Wade Web) Ein von der CERN in Genf eingeleitetes Projekt für das
~nommen und weiterentwickelt wurden.
5 PdCetVermittelte WAN-Technologie, die Anfang der siebziger Jahre standardisiert wurde. Sie erm6glicht den gfeichzkitigen Auftrau mehrerer virtueller Leitungenzwischen zwei Endsystemen (diein diesem Bereich ~Datenendeinrichnuigen* genannt werden). X25 gilt als erste Generation der öffentlichen
748
1 Glossar
Datenübertragungstechnik und wird heute noch von vielen Netzbetreibern unterstützt, insbesondere in Europa. X.400 Der von der ITU entwickelte E-Mail-Standard, im Gegensatz zu SMTP in der Internet-Architektur.
X.500 Der ITü-Standard für Verzeichnisdienste, der einen auf Attributen basierenden Namensdienst definiert. X.509 Ein ITU-Standard für digitale Zertifikate. XDR (Exchange Data Representation) XDR ist auf der Darstellungsschicht des OSI-Referenzmodells angesiedelt und stellt eine maschinen-, betriebssystemund netzunabhängige Datenstruktur im NFS zur Verfügung. Es wird eine Menge von primitiven Datentypen unterstützt, aus denen die komplexeren Datenstrukturen von XDR zusammengesetzt werden. XDR benutzt ein RPC-System. Siehe im Gegensatz dazu ASN. 1 und NDR. ?&L,
(extensible Markup Language) Legt die Syntax zur Beschreibung von Daten fest, die zwischen Internet-Anwendungen ausgetauscht werden können.
Zelle Ein 53 Byte großes ATM-Paket, in dem bis zu 48 Daten-Bytes übertragen werden können. Zertifikat Ein digital von einer Institution signiertes Dokument, das den Namen und den öffentlichen Schlüssel einer Person oder anderen Institution enthält. Es wird benutzt, um öffentliche Schlüssel zu verteilen. Siehe auch CA. Zone Ein Teil der Domain-Name-Hierarchie, der einer administrativen Autorität entspricht, die für diesen Teil der Hierarchie zuständig ist. Jede Zone muss mindestens zwei Nameserver für DNS-Anfragen der Zone umfassen. Zugangskontrolle (Admission Control) Die Funktion eines ATM-Netzwerks, die die Anforderung einer virtuellen Verbindung auf ihre Annehmbarkeit hin überprüft und das Routing für diese Verbindung durch das Netzwerk bestimmt. Zweidimensionale Parität Ein Paritätsschema, bei dem Bytes in einer Matrix abgelegt werden und die Parität jeweils für Zeilen und Spalten berechnet wird.
Lösungen zu ausgewählten obungen
Kapitel 1 6.
Wir betrachten den Transfer als vollständig, wenn das letzte Datenbit an seinem Ziel ankommt. a.
1,s MB = 12.582.912
Bit. Zwei anfändche RTTs (160 ms) + 12.582.91U 10.000.000 bitls (Obertragung)+ R n 1 2 (Ausbreitung)= 1,458 Sekunden.
b. Die Anzahl der benötigten Pakete = 1,s MB / 1KB = 1536. Zum obigen Ergebnis addieren wir die Zeit für 1535 RlTs ((dieAnzahl von RTTs zwischen der Ankunft von Paket 1und der Ankunft von Paket 1536)und erhalten insgesamt 1,46 s + 122,8 s = 124,26 s. C.
Das ist 74,s RlTs, zuzüglich der anfänglichen 2, für 6,12 Sekunden.
d. Gleich nach dem Handshaking senden wir ein Paket. Eine RTT nach dem Handshaking senden wir zwei Pakete. Bei n RlTs nach dem anfänglichem Handshaking haben wir 1 + 2 + 4 + -+2n= 2n+1- 1 Pakete gesendet. Bei n = 10 waren wir folglich in der Lage, alle 1000 Pakete zu senden; der letzte Schwung kommt 0,s RTT später an. Die Gesamtzeit beträgt 2 + 10,5 RTTs bzw. 1Sekunde.
-.
8.
Die Ausbreinuigsverzögerung beträgt 50 X lo3 rn / (2 X 108 mls) = 250 ps. 800 Bit 1250 ps entspricht 3 2 Mbitls. Für 512-Byte-Pakete steigt dieser Wert auf 16,4 Mbitls.
16. a. Die Ausbreinuigsverzögening auf der Verbindungsleitung beträgt (55 X lo9) /(3 x 108)= 184 Sekunden. Folglich beträgt die RTT 368 Sekunden.
b. Das Verzögerung-Bandbreite-Produkt für die Verbindungsleitung beträgt R'TT X Bandbreite = 184 s X 128 X 103 bit = 2,81 MB.
750
1
Lösungenzu ausgewählten Ubungen
übertragen werden und vollständig ankommen, bevor die Mission Control interpretieren kann. Die Übertragungsverzögening für 5 MB an Daten ber trägt 328 Sekunden. Folglich beträgt die erforderliche kamtzeit: Ü b e r t r a L 7 gungsverzögerung + Ausbreitungsverzögerung= 328 + 184 =512 Sekunden. 19. a. Auf jeder Verbindungsleitung dauert es 1 Gbitls 1 5 KB = 5 ps, um das Paket über die Leitung zu übertragen; danach dauert es weitere 10 ps, bis sich das letzte Bit über die Leitung ausgebreitet hat. Folglich beträgt bei einem LAN mit nur einem Switch, der erst nach dem Empfang des ganzen Pakets mit der Weiterleitung beginnt, die gesamte Transferverzögenuig zwei Übertr;lgungsverzögerungen + zwei Ausbreitungsverzögerungen = 30 ps.
F
:
b. Für drei vermittelte und somit vier Verbindungsleitungen beträgt die Gesamtrungen = 60 ps. + '
-'
Für das .Cut-Throughu muss ein Switch nur die ersten 128 Bit dekodieren, bevor er mit der Weiterleitung beginnt. Das dauert 128 ns. Diese Verzögerung ersetzt die Switch-fibertragungsverzögerungenin der vorherigen Antwort durch eine Gesamtverzögerung von: eine übertragungsverz~~erun~ + drei Cut-Through-Dekodierverzögerungen+ vier Ausbreitungsverzöge4' ,: rungen = 45,384 ps. ; 29. a. 1920 X 1080 X 24 X 30 = 1.492.992.000 1,5 Gbitis. C.
i
-
*j T
t
b. 8 X 8000 = 64 Kbitis. C.
260 X 50 = 13 Kbitis.
I
,I
d. 24 X 88.200 = 216.800 = 2,l Mbitis.
Kapitel 2 3.
Die 4BISB-Kodierung der gegebenen Bitfolge lautet wie folgt: 11011 11100 10110 11011 10111 11100 11100 11101
7. Es sei durch ,jede Position kennzeichnet, an der ein gestopftes O-Bit entfern wurde. Es gab einen Fehler, wobei die sieben aufeinander folgenden Einsen erkannt wurden (err).Am Ende der Bitfolge wurde das Ende des Rahmens erkannt (eofi-
19. a. W u nehmen die Nachricht 1011 0010 0100 1011, hängen acht Nullen an d n teilen das Ergebnis durch 1 0000 0111 ( x 8 + 2 + x1 + 1).Der Rest ist 1001 0011. W u übertragen die Originalnachricht mit dem angehängten Rest, womit wir Folgendes erhalten: F . . . . ' , , .
F
L
.*
:'=
I
b. Durch Invertieren des ersten Bits erhalten wir 0011 0010 0100 1011 1001 0011; Teilen durch 1 0000 0111 ( x 8 + 2 + x1 + 1 ) ergibt einen Rest von 1011 0110. !
t
.
r
25. Die Einweglatenz der Verbindungsleitung ist 100 ms. Die Bandbreite-R-dtrip-Verzögerung beträgt etwa 125 PaketdSekunde X 0,2 Sekunden bzw. 25 Fakete. SWS sollte so groß sein. a. Wenn RWS = 1, dann umfasst der notwendige Sequenznummernraum 26. Deshalb sind 5 Bit erforderlich. b. Wenn RWS = SWS, dann muss der Sequenznurnrner~aurndas zweifache SWS bzw. bis zu 50 abdecken. Deshalb sind 6 Bit erforderlich.
-
I.
g
32. Das folgende Bild zeigt den zeitlichen Ablauf für den ersten Fall. Der zweite Fall reduziert die gesamte Transaktionszeit um grob 1 R n .
-1 Rrr -
-1 Rrr -
E""
Kapitel 3 2. Die folgende Tabelle ist kumulativ; in jedem Teil bestehen die VCI-Tabellen aus den Einträgen aus diesem Teil und auch aus allen vorherigen Eintr3ge.n. --
-
P
14. Die folgende Liste zeigt die Abbildung zwischen LANs und ihren designierten Bridges: B1 A-Interface: A B2 BI-Interface: A B3 C-Interface: C B4 D-Interface: D B1 tot B2 A, B, D
B2-Interface: D (nicht C) B3-Interface: C B2-Interface: A, D B2-Interface: C (nicht A)
B4-Interface: D
B3 E, F, G, H B4 I B5 untätig B6 J B7 C 16. Alle Bridges sehen das Paket von D zu C. Nur B3, B2 und B4 sehen das Paket von C zu D. Nur BI, B2 und B3 sehen das Paket von A zu C.
Losungentu ausgewähltenUbungan
1
753
.
33. Da die Y0-Bus-Geschwindigkeit geringer als die Speicherbandbreiteist, stellt sie den Flaschenhals dar. Die effektive Bandbreite, die der YO-Bus bereitstellen kann, ist 1000 / 2 Mbids, weil jedes Paket den YO-Bus zweimal überquert. Deshalb beträgt die Anzahl der Interfaces LSOO/~SJ = 11.
Kapitel 4 5.
Der Definition zufolge beträgt die Pfad-MTU 512 Byte. Die maximale IP-Nutzdatengröge ist 512 - 20 = 492 Byte. Wir müssen in den IP-Nutzdaten 2048 + 20 = 2068 Byte übertragen. Das würde in 4 Fragmente mit einer Größe von je 492 Byte und 1Fragment mit einer Gröf3e von 100 Byte aufgeteilt werden. Insgesamt gibt es 5 Pakete, wenn wir die Pfad-MTU benutzen. Im vorhetigen Szenario benötigten wir 7 Pakete.
16. (a)
16. (b)
7-
1
Lakuv#i-übung.n
19. Nachfolgend ein Beispiel einer Netzwerktopologie:
22. Versuchen Sie es mit jeder Subnetzmaske, und wenn die entsprechende Subnetz-
nummer mit der Spalte SubnetNumber übereinstimmt, dann benutzen Sie den Eintrag unter NextHop. a. Wem wir Subnetzmaske 255.255.254.0 verwenden, erhalten wir 128.96.170.0. Benutzen Sie Interface 0 als nächsten Hop.
b. Wem wir Subnetzmaske 255.255.254.0 verwenden, erhalten wir 128.96.166.0 (der nächste Hop ist R2). Durch Verwendung von Subnetzmaske 255.255.252.0 erhalten wir 128.96.164.0 (der nächste Hop ist R3). Allerdings ist 255.255.254.0 ein langes Präfix. Benutzen Sie R2 als nächsten Hop. C.
Keiner der Subnetznummerneinträge passt; benutzen Sie deshalb den Default-Router R4.
d. Wenn wir Subnetzmaske 255.255254.0 verwenden, erhalten wir 128.96.168.0. Benutzen Sie Interface 1 als nächsten Hop. e. Wenn wir Subnetzmaske 255.255.252.0 verwenden, erhalten wir 128.96.164.0. Benutzen Sie R3 als nächsten Hop. Schritt 1
Bestatigt
Tentativ
(Aso,-)
2
(A,O,-)
(B,l ,B) (D,5,D)
3
(ASO,-)(B.1 .B)
(D,4,B) (G731
4
(&Os-)
,B) (DS4.B)
5
(ASO,-)(B.1 ,B) (Q4.B) (Cg5,B)
6
(ASO,-) (B,l ,B) (D,4,B) (C.5,B) (E,6,B)
(C.53) (E,73) iE‘6,B)
56. In der folgenden Abbildung sind die aktiven Ports gekennzeichnet.
Kapitel 5
B
10. Das angekündigte (advertised)Fenster sollte grof3 genug sein, um die Pipe voll zu halten; Die Verzögerung ( R n )X Bandbreite ist hier 140 ms X 1Gbitfs = 140 MB = 17,s MB an Daten. Dafür sind 25 Bit (22s = 33.554.432) für das Feld AdvertisedWindow erforderlich. Im Sequenznumtnernfeld ist kein Überlauf auf die maximale Segrnentlebensdauer zulässig. In 60 Sekunden können 7,s GB übertragen
werden. 33 Bit erlauben einen Sequenznummernraumvon 8,6 GB, sodass innerhalb von 60 Sekunden kein Uberlauf erfolgt. 13. a. 232Byte / (5 GB) = 859 ms. b. 1000 Ticks in 859 ms ist einmal alle 859 ps, was einen überlauf in 3,7 X 106 Sekunden bzw. ungefähr 43 Tagen bedeutet.
27. Bei Verwendung der anfängiichen Abweichung, also Deviation = 50, dauert es 20 Iterationen, bis TimeOut unter 300,O fällt.
Kapitel 6 11. a. Zuerst berechnen wir die Fertigstellungszeiten Fi.Wir brauchen uns hier über die Taktgeschwindigkeitkeine Gedanken zu machen, weil wir Ai = 0 für alle Pakete verwenden können. Fi ist dann einfach nur die kumulative Größes pro Fluss, d. h. Fi = Fgi + Pi.
7
4
- 21
I;!
+ a .
Anschliegend senden wir in aufsteigender Folge von F$ Paket 3, Paket 1, Paket 6, Paket 4, Paket 7, Paket 2, Paket 5, Paket 8. b. Um Fluss 1 eine Gewichtung von 2 zu geben, teilen wir jede seiner Fi durch 2, d. h. Fi = Fhl + P42. Um Fluss 2 eine Gewichtung von 4 zu geben, teilen wir jede seiner Fi durch 4, d, h. Fi = Fbl + Pi 14. Um Fluss 3 eine Gewichtung von 3 zu geben, teilen wir jede seiner Fi durch 3, d. h. Fi = Fkl + Pi 13. Auch hier nutzen wir wieder die Tatsache, dass es keine Wartezeit gibt.
Die Ubertragung in aufsteigender Folge von gewichtetenFi ist dann wie folgt: 1 ' Paket 3, Paket 4, Paka 6, Paket 1,Paket 5, Paket 7, Paket 8, Paket 2. 15. a. Für das i-& ankommende Paket eines bestimmten Flusses berechnen wir se geschgtzte Fertigstellungszeit Fi durch die Formel Ei = max{Ai,Fkl} + 1, wobei die zum Messen der Ankunftszeiten Ai benutzte Uhr um einen Faktor gleich der Anzahl aktiver Warteschlangen nachgeht. Die Uhrzeit Ai ist global; die Sequenz der wie oben berechneten F,-Werte ist f ' jeden Fluss lokal. '
Die folgende Tabelle listet alle Ereignisse nach Uhrzeit auf. Wir identifizieren Pakete nach ihrem Fluss und ihrer Ankunftszeit. Folgiich ist Paket A4 dasjenige, . das in Fluss A um Uhrzeit 4 ankommt, d. h. das dritte Paket. Die letzten drei . Spalten sind die Warteschlangen für jeden Fluss des nächstfolgenden Zeitinter- valls, einschließlich des momentan übertragenen Pakets. Die Anzahl solcher ak-
-. L -2
9
I
.- 7 , . ~ T
-ung.n~aurgmOMkn~-fm
tiver Warteschlangen bestimmt, um wie viel Ai in der nächsten Zeile erhöht wird. Mehrere Pakete erscheinen in der gleichen Zeile, wenn ihre Fi-Werte alle gleich sind. Die F#-Werte sind Kursiv, wenn Fi = Fgl + 1(im Gegensatz zu Fi = Ai + 1).
b. Bei dem gewichteten fairen Queuing (WFQ) gilt für Fluss B: Fi = maX{A, Fgl) + 0,s.
Für die Flüsse A und C ist Pi wie zuvor.Nachfolgend die Tabelle, die der obigen entspricht.
I
fI
Wir haben jetzt Pmt = TempP l ( 1 - count X TempP) = 1l ( X - countj, wobei X-(mnt+l) r Zp.Deshalb gilt l-pd=x-mnt Die Auswertung des Produkts ( 1 - Pi) x ... X (1 - Pm) ergibt '-2. .... e r-(n+l)=x-b+l), wobei x = Zp.
.
x
X-1 1-2
X-n
--
X-1
b. Aus dem Ergebnis der vorherigen Frage, Demzufolge gilt
X-1
P==.
.Deshalb gilt
X = -
I -a
~ 2 1 ~ .
48. Das Bucket-Volumen muss nicht in jeder Sekunde negativ sein. Für eine gegebene Bucket-Tiefe D und Token-Rate r können wir das Bucket-Volumen v(t)zum Zeitpunkt von t Sekunden berechnen und erzwingen, dass v ( t )nicht negativ ist.
...,f6(r)"e
Wir definieren die Funktionen f i(r),f2(r),
folgt:
f2(r)= 2(5 - r) = 2 fl(r) 2 fl(r) (für 1 S r S 5 ) f4(r) = 11 - 4r C f3(r) (für r 2 1) fs(r)= 17- Sr f6(r)= 6(3 - r) 5 f5(r)(fürr 2 1 ) Zuerst gilt r 2 5, fi(r) S 0 für alle i. Wenn die Token-Rate also scheuer als Ci Pakete pro Sekunde ist, genügt eine positive Bucket-Tiefe, d. h. D 2 0. Für 1 S r <, 5 brauchen wir nur f2(r)und f s(r)zu berücksichtigen, weil andere Funktionen Meiner als diese Funktionen sind. Sie können f2(r) - fs(r) = 3r - 7 leicht finden.Deshalb wird die Bucket-Tiefe D durch die folgende Formel erzwungen:
Lösungenzu ausgewähiten Obungen
1
761
Kapitel 7 2. ' 4 M A R Y 4 3 7 7 7 J A N U A R Y 7 2 0 0 2 2 9 0 0 0 0 1 5 0 0 0 0 1
8.
Kapitel 8 4.
Wir stellen zuerst fest, dass die gegebene S-Box impliziert, dass wir einfach die mittleren 4 Bit jedes 6-Bit-Happens von Ki+1durch XOR mit dem entsprechenden 4-Bit-Happen von Ri verknüpfen, um Rhl = F (Ri, Kkl) 8 Li zu erhalten. Ausgeschrieben in Bit lautet Ki+i (hexadezimal5af3107a3iff) 0101 1010 1111 0011 0001 0000 0111 1010 0011 1111 1111 1111
Oder wir verknüpften die mittleren vier Bit getrennt von jedem 6-Bit-Stück mit nur 4-Bit-Happen wie folgt:
Li = Ri-l ist deadbeef in hexadezimaler Darstellung. In Bits sieht die Darstellung wie folgt aus: Aus der vorherigen ffbung erhalten wir Ri wie folgt: 1001 0011 0001 0110 1011 1110 1110 1111
Jetzt können wir drei Stücke, Li, Ri und Ki+1, mit XOR verknüpfen. Das endgültige Ergebnis Rki ist wie folgt: 1111 1010 1101 0011 1111 0001 1111 1111
bzw. hexadezimal fad3 f 1ff.
I 7.
Lösungen zu ausgewählten Ubungen
-
P
P
a. Wir müssen ein d bestimmen, sodass Sd E 1 mod ( p - l ) ( q- 1). Das heißt Sd + 72k = 1 für irgendwelche k. Unter Verwendung des euklidischen Algorithmus finden wir d = 29 + 72r,wobei reine arbiträre Ganzzahl ist. Wir nehmen den geringsten positiven Wert d = 29. b. pq = 91, sodass mS mod pq = '7 mod 91 = 63 ist. C.
cd mod pq = 229 mod 91 = 32.
Literatur
Batcher, K.E. Sortingnetworks and their applications. Proceedings of the 1958 Spring AFIPS Joint Computer Conference 32, S. 307-314, 1968. Blake, S., D. Black, M. Carlson, E. Davies, Z. Wang und W. Weiss. An architecture for differentiated services. Request for Comments 2475, Dezember 1998. Braden, R., D. Clark und S. Shenket. Integrated services in the internet architecture: An overview. Request for Comments 1633, September 1994. Bowman, C. M., P. B. Danzig, U. Manber und M. F. Schwartz. Scal- ' abk internet resource discovery: Research problems and approaches. . Communications of the ACM 37(8):S. 98-107, August 1994. Bellovin, S. M. ICMP traceback messages. Work in progress, Internet draft draft-bellovin-itrace-OO.txt,MIin 2000. Borenstein, N. und N. Freed. MIME (multipurpose internet mail extensions) part one: Mechanisms for specifying and describing the format of internet message bodies. Request for Comments 1521, Sep- tember 1993. Bertsekas, D. und R. GaJlager. Data Networks. Prentice Hall, Englewood Cliffs, NJ, 2. Ad., 1992. Bjorkman, M. und P.Gunningberg. Loclung effects in multiprocessor implementations of protocols. Proceedings of the SIGCOMM '93 Symposium, S. 74-83, September 1993. Blahut, R. E. Prim'ples and Practice of Information Theory.AddisonWesley, Readmg, M$1987. Bemers-Lee, T., R. Fielding und H. Frystyk. Hypertext transfer protocol - HTI'Pl1.0. Request for Comments 1945, Mai 1996. Birrell, A., R. Levin, R. Needham und M. Schroeder. Grapevine: An exercise in distributed computing. Communications of the ACM 25 S. 250-273, April 1982. Bradneq S. und A. Mankin, Hrsg. IPng: Internet Protocol Next Gen eration. Addison-Wesley, Reading, MA, 1995. Boorsook, P. How anarchy works. Wired 3(10),S. 110-118, Oktober . 1995.
k
i
Brakmo, L. S. und L. L. Peterson. TCP Vegas: End-to-end congestion avoidance on a global internet. ZEEE ]oumal of Selected Areas in Communication PAC) 13(8), S. 1465-1480, Oktober 1995. Bowman, M., L. L. Peterson und A. Yeatts. Univers: An attribute based name server. Software--Practice and Experience 20(4), S. 403424, April 1990. Brisco, T. DNS support for load balancing. Request for Comments 1794, Rutgers University, New Brunswick, NJ, April 1995. Bic, L. und A. C. Shaw. The Logical Design of Operating Systems. Prentice Hall, Englewood Cliffs, NJ, 1988. Barrett, D. und R. Silverman. SSH: The Secure Shell.O'Reilly, Sebastopol, CA, 2001. Buford, John E K. Multimedia Systems. ACM PredAddison-Wesley, Reading, MA, 1994. Bennett, T. und H. Zhang. Hierarchical packet fair queueing algorithms. Proceedings of the SIGCOMM '96 Symposium, S. 143- 156, August 1996. Comit6 Consultif International de Telegraphique et Telephonique. Open systems interconnection: Specification of abstract syntax notation one (ASN.l). CCiT Recommendation X.208,1992. Comit6 Consultif International de Telegraphique et Telephonique. Open systems intercmectiion: Specification of basic encoding rules for abstract syntax notation one (ASN.1). CCIT Recommendation X.209, 1992. Clark, D. und W. Fang. Explicit allocation of best-effort packet delivery service. ZEEE/ACM Trattsaefions on Networking 6(4), S. 362373, August 1998. Cohen, D., G. F i i R. Felderman und A. DeSchon. ATOMIC: A lowcost, very-high-speed, local com.mani.cations architecture. Proceedings of the 1993 Conference on Para€klPfocessing, August 1993. Chapin, A. L. The billion node Internet. In D. C. Lynch und M. T. Rose, Hrsg., Intemd System Handbook, Kapittl 17, S. 707-716. Addison-Wesley, Readin& MA, 1993. Clark, D. D., V. Jacobson, J. R o d e p und H. Salwen. An analysis of TCP processing overhead. ZEEE Communications 27(6), S. 23-29, .Juni 1989. Clark, D. D. Modularity and efficiency in protocol implementation. Request for Cottnnent~817, Juli 3982. Clark, D. D. The sunrruring of systems using npcalls. Proceedings of the 20th ACM Symposium on Operating S y s t PrZttcipks, ~ S. 171180, Dezember 1985. Clark, D. Intann cost allocation and pricing. In L. Knight A d J. Bailey, Hrsg., Znternet Economics, S, 215-253. MIT Press, Cambridge, MA, 1997.
[CLNZ89] I
[CMRW93]
[ComOO]
[CSOO] [CV95] [CZ85]
Chen, S. K., E. D. Lazowska, D. Notkin und J. Zahorjan. Performance implications of design alternatives for remote procedure call stubs. Proceedings of the Ninth Intem~~ianal Conference on Diskibuted Computing Systems, S. 36-41, Juni 1989. Case, J., K. McCloghrie, M. Rose und S. Waldbusser. Structure of management information for version 2 of the Simple Network Management Protocol (SNMPv2). Request for Comments 1442, April 1993. Comer, D. E. Internetworking with TCPIIP. Volume I: Principles, Protocols, and Architecture. Prentice Hall, Upper Saddle River, NJ, 4. Aufl., 2000. Comer, D. E. und L. L. Peterson. Understanding naming in distributed systems. Distributed Computing 3(2), S. 51-60, Mai 1989. Cohen, J., N. Phadnis, V. Valloppillil und K. W. Ross. Cache array routing protocol v l .l. http://dsl.internic.net/internet-draftddraftvinodcarp-vl-Ol.txt, September 1997. Crocker, D. Standard for the format of ARPA Internet text message. Request for Comments 822, August 1982. Comer, D. E. und D. L. Stevens. Internetworking with TCPIIP. Volume ID:Client-Server Programming and Applications, AT&T TLI Version. Prentice Hall, Englewood Cliffs, NJ, 1994. Comer; D. E. und D. L. Stevens. Internetworking with TCPIIP. Volume IIk Client-Server Programming and Applications, Windows Sockets Version. Prentice Hall, Englewood Cliffs, NJ, 1997. Comer, D. E. und D. L. Stevens. Internetworking with TCPIIP. Volume III: Client-Semer Programming and Applications, LinuxlPosix Sockets Version.Prentice Hall, Upper Saddle River, NJ, 2000. Chandranmenon, G. P. und G. Varghese. Trading packet headers for packet processing. Proceedings of the SIGCOMM '95 Symposium, S. 162-173, Oktober 1995. Cheriton, D. R. und W. Zwaenepoel. Distributed process groups in the V kernel. ACM Transactions on Computer Systems 3(2), S. 77107, Mai 1985. Danzig, P. NetCache architecture and deployment. Third Interm tional WWW Caching Workshop,Juni 1998. Degermark, M., A. Brodnik, S. Carlsson und S. Pink. Small forwarding tables for fast routing lookups. Proceedings of the SIGCOMM '97 Symposium, S. 3-14, Oktober 1997. Davie, B., A. Charny, J. C. R. Bennett, K. Benson, J. Y. Le Boudec, W. Courtney, S. Davari, V. Firoiu und D. Stiliadis. An expedited forwarding phb (per-hop behavior). Request for Comments 3246, W z 2002.
166 ) Ut.rcltur
Deering, S., D. Estrin, D. Farinacci, V. Jacobson, C. Liu und L. Wei. The PIM architecture for wide-ma multicast zouting. ACMOEEE Transactio~on Networking 4(2), S. 153-162, April 1996. [DH98] Deering, S. und R Hinden. Internet Protocol, version 6 (IPV6) specification. Request for Corn2460, Dezember 1998. [DP93] D d e l , P. und L. L. Peterson. Fbufs: A high-bandwidth cross domain transfer facility. Proceedings of the 14th ACM Symposium on Operating Systems Principles, S. 189-202, Dezember 1993. [DPD94] Druschel, P., L. L. Peterson und B. S. Davie, Experience with a tugh speed network adaptor: A goharare perspective. Proceedings of the SZGCOMM '94 Symposium, S. 2-13, August 1994. [DRool . Davie, B. und Y. Rekhtez MPLS: Technologyand Applications. Morgan Kaufmann Publishers, San Francin, CA, 2000. ~ ~ 7 5 1 Dry-dale, R. L. und E H. Young. Improved divide/sort/merge sorting networks. SZAMJoumal on Computing 4(3), S. 264-270, September 1975. [EFH+98] Estrin, D., D. Farinadi, A. Helmy, D. Thaler, S. Deering, M. Handley, V. Jacobson, C. Liu, P. Sharma und L. Wei. Protocol independent multicast-sparse mode (pim-sm): Protocol specification. Request for Comments 2362, April 1998. [EWL+94] Edwards, A, G. Watson, J. Lumley, D. Banks, C. Calamvokis und C. Dalton. User-space protocols deliver high performance to applications on a low-cost GWs LAN,Procedings of the SIGCOMM '94 Symposium, S. 14-23, August 1994. Freed, N. und N. Borenstein. Multipurpose Internet mail extensions ~3961 (MIME)part one: Format of I n t e r n message bodies. Request fw Comments 2045, November 1996. [FGhdBL97] Fielding, R., J. G a y s , J. Mogul und T. Berners-Lee. HyperText Transfer Protocol - HlTP/l.l. Request for Commetlts 2068, Januar 1997. [FHPWOO] Floyd, S., M. Handley, J. Padhye und J. Widmec Equation-based congestion control for unicast applications, Proceedings of the SZG COMM '00 Symposium, S. 43-56, Stockholm, Sweden, 2000. [Fin881 Finkel, R. A. An Operating Systems Va& Mecum. Prentice HalI, Englewood Cliffs, NJ, 1988. [lFKSS99] Feng, W.-C., D. Kandlur, D. Saha wd K. Shin. A self-configuring RED gateway. IEEE WFOCOM, New York, S. 1320-1328, Mhz 1999. Fuller, V., T.Li, J. Yu und K. Vmdhan. Classless interdomain routing w 9 3 ] (CIDR):An address assignment and aggmgatiou~strategy.Request for Cornmntts 1519, September 1993. Garbeq L. Te+nology news: Denial-oi-service attacks rip the [Gar001 , Internet, Completer 33(4), s. 12-17, April 2000[GG94] Gopal, I. und R. Guerin. Network transparency: The plaNET approach. IEEEIACM Transactions on Networking 2(3), S. 226239, Juni 1994.
[Dm961
1
1
D. Giasbxug,ATM: Solutiom for Entetprise fntemetworking. Ad&son-Wesley, !Reading, MA, 2. Ad., 1999. Go& P, H. Vim Ua$ H. Chen. Start-timefair que*. A scheduling algorithm far integrared services packet swirchingnetworks. Proceedings oft& SIGCOMM '96 Syw~posimrt,S. 157468, August 1996. I-fazrison, A. Cyber assaults hit Buy.com, elJay, CNN and Amazon. Comgz&emorZd, Februar 2000. Harkins, D. m d D. Carrel. The Internet Key Exchange (IKE).Request for Cornmen& 24009, November 1998. Wedrick, C. Routing information protocol. Request for Commmts 1058, Juni 1988. Hutchinson, N.,S. Mishra, L. Peterson und V. Thomas. Tmls for implemeatingnetwork protocols. Sufhuar+Pru&ice and Experience 19(9),S. 895-916, September 1989. Hutchinson, N. und L. Peterson. The x-kernel: An architecture for implementing network protocols. IEEE Transactions on Sofhuare En@tzeming¶7(1), S. 64-76, Januar 1991. Holzmann, G. J. und B. Pehrson. The Early History of Data Networks. IEEE Computer Society Press, Los Alamitos, CAY1995. Hennessy, J. L. und D. A. Patterson. Computer Archit&ture: A QuuntitatSue Approach. Morgan Kaufmann, San Francisco, CA, 3. Aufl., 2002.. Huffman, D. A. A method for the construction of minimal redundancy codes. Proceedings of the IRE 40(9), S. 1098-1101, September 1952. Jacobson, V. Congestion avoidance and control. Proceedings of the SIGCOMM '88 Symposium, S. 314-329, August 1988. Jaffe, J. M. Flow control power is nondecentralizabie. IEEE Tronsactions on Comm~nicatbnsCOM-29(9), S. 1301-1306, September 1981. Jain, R. A delay-based approach for congestion avoidance in interconnected heterogeneous computer networks. ACM Computer Communicution Rm'ew 19(5), S. 56-71, Oktober 1989. Jain, R. The Art of Computer Systems P . t f m n c e Analysis: Techniques for i]Experhental Design, Measurement, Simulation, and Modeling. John Wiley & Sons, New York, 1991. Jain, R. FDDI Hmdbook: High-Speed Networking Using Fiber and Other Media. Addison-Wesley, Reading, MA, 1994. Jacobson, V., R. Braden und D. Borman. TCP extensions for high performance. Request for Comments 1323, Mai 1992. Kent, S. und R. Atkinson. 1P authentication header. Request for Comments 2402, November 1998. Kent, S. und R. Atkinson. IP encapsulating security payload (ESP). Request for Comments 2406, November 1998.
Kanakia, H. und D. R. Cheriton. The VMP network adaptor board (NAB): Hgh-performance network communication for multiprmsors. Proceedings of the SIGCOMM '88 Symposium, S. 135-187, August 1988. Keshav, S. A control-theoreticapproach to flow control. Proceedings of the SIGCOMM '91 Syrrrpdwn, S. 3-15, September 1991. Katabi, D., M. Handley und C. Rohrs. Congestion control for high bandwidth-delay product networks. Proceedings of the ACM SIGCOMM '02, S. 89-102, August 2002. Kleinrock, L. Queuing Systems. Volume 1: Theory. John Wiley & Sons, New York, 1975. Kleinrock, L. Power and deterministicrules of thumb for probabilistic problems in computer communications. Proceedings of the Intemational Conference on Communbtions, S. 43.1.1-43.1.10, Juni 1979. Kent, C. und J. Mogul. Fragmentation considered harmful. Proceedings of the SIGCOMM '87Symposium, $. 390-401, August 1987. Karn, P. und C. Partridge. Improving round-trip time estimates in reliable transport protocols. ACM Transactions on Computer Systems 9(4), S. 364-373, November 1991. Kauhan, C,, R. Perlman und M. Speciner. Nettuork Security: Private Commmication in a Public World. Prentice Hall, Englewood Cliffs, NJ, 2002. Labovitz, C., A. Ahuja, A. Abose und F. Jahmian. Delayed internet routing convergence. Proceedings of the SIGCOMM 2000 Symposium, Stockholm, Sweden, S. 293-306, August 2800. Lin, &-A. Estimation of the optimal performance of ASN.l/BER transfer syntax. Computer Commumeutim Review 23(3), S. 45-58, Juli 1993. Lin, D. und R. Morris. Dynamics of random early dectection. Proceedings of the SIGCOMM '97 Symposium, S. 127-136, Cannes, France, Oktober 1997. M e r , S. J., M. K. McKusick, M. J. Kirrels und J. S. Quarterman. The D e e a d Implernen~ionof the 4.3BSD UNlX Operating System. Addison-Westey, Reading, MA, 1989. Low, S,, L. Peterson und L.Wang. Understanding TCP Vegas: A dualiry model. Journal af the ACM 49(2), S, 207-235, Miin 2002. Low, S., F. Paganini, J. Wan& S. Adlakha und J, D~yle.Dynamics of TCP/RED and a scalable control, lEEE IWOCOM, S. 239-248, Juni 2002. Lakshman, T. V.und D, Sdiadis. High speed policy-based packet forwarding using efficient multi-dimensional range matching. Proceedings of the SIGCOMM '98 Symposium, S. 203-214, September 1998. Leland, W., M. Taqqu, W. Williager und D. Wilson. On the self-similar nature of Ethernet traffic. IEEE/ACM Transactions on Networking 2, S. 1-15, Februar 1994.
Malkin, G. RIP version 2 carrying additional information. Request for Comments 1388, Januar 1993. Mogul, J. und S. Deering. Path MTU discovery. Request for Comments 1191, November 1990. McKenney, P. E. und K. F. Dove. Efficient demultiplexing of incoming TCP packets. Proceedings of the SIGCOMM '92 Symposium, S. 249280, August 1993. Madson, C. und N. Doraswamy. The ESP DES-CBC cipher algorithm with explicit IV. Request for Comments 2405, November 1998. Madson, C. und R. Glenn. The use of HMAC-W5-96 within ESP and AH. Request f w Comments 2403, November 1998. Madson, C. und R. Glenn. The use of HMAC-SI-IA-1-96within ESP and AH. Request for Comments 2404, November 1998. Minoli, D. Enterprise Networking: Fractional TI to SONET, Frame Relay to BISDN. Artech House, Nomood, MA, 1993. McCanne, S. und V. Jacobson. vic: A flexible framework for packet video. ACM Multimedia '95, S. 511-522,1995. Morrison, D. Patricia. A practical algorithm to retrieve information coded in alphanumeric.Jouma1 of the ACM 15(4),S. 514-534, Oktober 1968. Moy, J. OSPF version 2. Request for Comments 2328, April 1998. Mogul, J. und J. Postel. Internet standard subnetting procedure. Request for Comments 950, August 1985. Mosberger, D., L, Peterson, P. Bridges und S. O'Malley. Analysis of techniques to improve protocol latency. Proceedings of the SIGCOMM '96 Symposium, S. 73-84, August 1996. Mitchell, J. L., W. B. Pennebaker, C. E. Fogg und D. J. LeGall. MPEG Video: Compression Standard. Chapman Hall, New York, 1996. McCloghrie, K. und M. Rose. Management information base for network management of TCPIIP-based internets: MIB-11. Request for Comments 1213, Marz 1991. Maughan, D., M. Schertler,M. Schneider und J. Turner. Internet security association and key management protocol (ISAKMP). Request for Comments 2408, November 1998. Muliender, 3. Amoeba: A distributed operating system for the 1990s. IEEE Computer 23(5), S. 44-53, Mai 1990. Moore, D., G. Voelker und S. Savage. Inferring Internet denial of service activity. Proceedings of 2001 USENIX Security Symposium, S. 9-22, August 2001. Nelson, M. The Data Compression Book. M&T Books, San Mateo, CA, 1992. No11, P. MPEG digital audio coding. IEEE Signal Processing Magazine, S. 59-81, September 1997.
National Research Council, Computer Science and Telecornrnunications Board. Realizing the Informatz.on Future: The Internet and Beyond. National Academy Press, Washington, DC, 1994. National Research Council. Looking Over the Fence at Networks. National Academy Press, Washington, DC, 2001. Nahum, E. M., D. J. Yates, J. F. Kurose und D. Towsley. Performance issues in parallelized network protocols. Proceedings of the First USENIX Symposium on Operating System Design and Implementation (OSDI),S. 125-137, November 1994. Ousterhout, J. K., A. R. Cherenson, F. Douglis, M. N. Nelson und B. B. Welch. The Sprite network operating system. IEEE Computer 21(2), S. 23-36, Februar 1988. O'Malley, S. und L. Peterson. TCP extensions considered harmful. Request for Comments 1263, Oktober 1991. OYMalley,S. W., T. A. Proebsting und A. B. Montz. Universal stub compiler. Proceedings of the SIGCOMM '94 Symposium, S. 295306, August 1994. Open Software Foundation. OSF DCE Applicution Environment Specification. Prentice Hall, Englewood Cliffs, NJ, 1994. Peterson, L., T. Anderson, D. Culler und T. Roscoe. A blueprint for introducing disruptive technology into the Internet. Proceedings of HotNets-I, Oktober 2002. Padlipsky, M. A. The Elements of Networking Style and Other Essays and Animadversions on the Art of Intercomputer Networking. Prentice Hall, Englewood Cliffs, NJ, 1985. Partridge, C. Gigabit Networking. Addison-Wesley, Reading, MA, 1994. Partridge, C., et al. A 50 Gb/s IP routec IEEEIACM Transactions on Networking 6(3),S. 237-247, Juni 1998. Peterson, W. W. und D. T. Brown. Cyclic codes for error detection. Proceedings of the IRE, 49, S. 228-235, Januar 1961. Perlman, R. Interconnections: Bridges, Routers, Switches and Internetworking Protocols. Addison-Wesley, Reading, MA, 2. Aufl., 2000. Peterson, L. L. The Profile naming service. ACM Transactions on Computer Systems 6(4), S. 341-364, November 1988. Paxson, V. und S. Floyd. Wide-area traffic: The failure of Poisson modeling. Proceedings of the SIGCOMM '94 Symposium, S. 257268, London, UK,August 1994 Padhye, J., V. Firoiu, D. Towsley und J. Kursoe. Modeling TCP throughput: A simple model and its empirical validation. ACM SIGCOMM '98 Conferenceon Applications, Technologies,Architectures and Protocols for Computer Communication, S. 303-314, Vancouver, Canada, 1998.
I
1
Pipe4 D. The Internet IP security domain of interpretation for ISAKMP. Request for Commmfs 2407, November 1998. Park, K. und H. Lee. On the effectiveness of route-based packet filtering for distributed FloS attack prevention in power-law internets. Proceedings of ACM SIGCOMM '01, S. 15-26, August 2001. Perkins, D. und E. McGinnis. Understanding SNMP MIBS. Prentice Hall, Upper Saddle Riveq NJ, 1997. Postel, J. Internet Protocol. Request for Comments 791, September 1981. Postel, J. Simple Mail Transfer Protocol. Request for Comments 821, August 1982. Qie, X., R. Pang und L. Peterson. Defensive programming: Using an annotation toolkit to build DoS-resistant software. Proceedings of OSDI '02, S. 45-60, Dezember 2002. Ramakrishnan, K. K. Performance considerations in designing network interfaces. IEEE Journal of Selected Areas in Communication WAC) 11(2),S. 203-219, Februar 1993. Rekhteq Y., B. Davie, E. Rosen, G. Swallow, D. Farinacci und D. Katz. Tag switching architecture overview. Proceeedings of the IEEE 82(12), S. 1973-1983, Dezember 1997. Rao, T. R. N. und E. Fujiwara. Ewor-Control Coding for Computer Systems. Prentice Hall, Englewood Cliffs, NJ, 1989. Romanow, A. und S. Floyd. Dynamics of TCP traffic over ATM networks. Proceedings of the SIGCOMM '94 Symposium, S. 79-88, Oktober 1994. Ramakrishnan, K., S. Floyd und D. Black. The addition of explicit congestion notification (ECN) to IP. Request for Comments 3168, September 2001. Rejaie, R., M. Haadley und D. Estrin. RAP: An end-to-end rate-based congestion control mechanism for realtime streams in the internet. INFOCOM (3), S. 1337-1345,1999. Ritchie, D.. A stream input-output system. AT&T Bell Laboratories Technical]ournal63(8), S. 3 11-324, Oktober 1984. Rekhteq Y. und T. Li. A Border Gateway Protocol 4 (BGP-4).Request for Comments 1771, Mgirz 1995. Robertazzi, T. G., editor. Performance Evaluation of High Speed Switching Fabrics and Networks: A T ' , Broadband ISDN, and MAN Technology. IEEE Press, Piscataway, NJ, 1993. Ross, F. E. FDDI - A tutorial. IEEE Communications24(5),S. 10-17, Mai 1986. Rhee, I., V. Ozdemir und Y. Yi. Tear: TCP emulation at receivers Flow control for multimedia streaming, NCSU technical report, April 2000.
772
1
Lbratur
W991 [RSOl] [RS02] [Sa178] [SB89] [SCFJ96] [SCH+99]
[Sch95] [SCJ+O2] [Sha48] [Sho78] [SHP91] [SKPGOl]
[SP99] [SP901] [SriSSa] [Sri95b]
Rosen, E. und Y. Rekhter. BGP/MPLS VPNs. Request for Comments 2547, Marz 1999. Rarnaswarni, R. und K. Sivarajan. OpticalNetworks: A Practical Perspective, Morgan Kaufmann Publishers, San Francisco, 2.Aufl., 2001. Rabinovich, M. und 0. Spatscheck. Web Caching and Replication. Addison-Wesley, Reading, MA, 2002. Saltzer, J. Naming and binding of objects. Lecture Notes on Computer Science 60, S. 99-208,1978. Schroeder, M. D. und M. Burrows. Performance of Firely RPC. Proceedings of the 12th ACM Symposium on Operating Systems Principles, S. 83-90, Dezember 1989. Schulwinne, H., S. Casner, R. Frederick und V. Jacobson. RTP: A transport protocol for real-time applications. Request for Comments 1889, Januar 1996. Savage, S., A. Collins, E. Hoffman, J. Snell und T. Anderson. The endto-end effects of Internet path selection. Proceedings of the ACM SIGCOMM Conference, Cambridge, MA, S. 289-300, September 1999. Schneier, B. Applied Cryptography: Protocols, Algorithms, and Source Code in C. John Wiley & Sons, New York, 1995. Schulwinne, H., G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley und E. Schooler. SIP: Session initiation protocol. Request for Comments 3261, Juni 2002. Shannon, C. A mathematical theory of communication. Bell Systems Technical Journal 27, S. 379423,623-656,1948. Shoch, J. Inter-network naming, addressing, and routing. Seventeenth IEEE Computer Society International Conference (COMPCON), S. 72-79, September 1978. Spragins, J., J. Hammond und K. Pawlikowski. Telecommunications: Protocols and Design. Addison-Wesley, Reading, MA, 1991. Spalink, T., S. Karlin, L. Peterson und Y. Gottlieb. Building a robust software-based router using network processors. Proceedings of the 18th ACM Symposium on Operating Systems Principles (SOSP), S. 216-229, Chateau Lake Louise, Banff, Alberta, Canada, Oktober 2001. Spatscheck, 0. und L. Peterson. Defending against denial of service attacks in Scout. Proceedings of OSDI '99, S. 59-72, Februar 1999. Snoeren, A. C., C. Partridge, L. A. Sanchez, C. E. Jones, F. Tchakountio, S. T. Kent und W. T. Strayer. Hash-based IP traceback. Proceedings of ACM SIGCOMM '01, S. 3-14, August 2001. Srinivasan, R. RPC: Remote procedure call protocol specificationversion. 2. Request for Comments 1831, August 1995. Srinivasan, R. XDR: External data representation standard. ~ e ~ u i s t for Comments 1832, August 1995.
4
1
I
1
i
I
?
[StaOOa] [StaOOb] [Ste94a] [Ste94b] [SVSW98]
Sisalem, D. und H. Schuhinne. The loss-delay based adjustmat algorithm: A TCP-friendly adaptation scheme. Proceedings of NOSSDAY Cambridge, UK, S. 215-226,1998. Stoica, I., S. Shenker und H. Zhang. Core-stateless fair queuing: A scalable architecture to approximate fair bandwidth allocations in high-speed networks. ACM SIGCOMM '98, S. 118-130, August 1998. Stallings, W. Data and Computer Communications. Prentice Hall, Upper Saddle River, NJ, 6. Aufl., 2000. Stallings, W. Local and Metropolitan Area Networks. Prentice Hall, Upper Saddle River, NJ, 6. Aufl., 2000. . Steenkiste, P. A. A systematic approach to host interface design for high speed networks. IEEE Computer 27(3), S. 47-57, Miirz 1994. Stevens, W. R. TCP/IP Illustrated. Volume 2 :The Protocols. AddisonWesley, Reading, MA, 1994. Srinivasan, V., G. Varghese, S. Suri und M. Waldvogel. Fast scalable level four switching. Proceedings of the SZGCOMM '98 Symposium, S. 191-202, September 1998. Stevens, W. R. und G. R. Wright. TCPIIP Illustrated. Volume 2: The Implementation. Addison-Wesley, Reading, MA, 1995. Savage, S., D. Wetherall, A. Karlin und T. Anderson. Practical network support for IP traceback. Proceedings of the 2000 ACM SIGCOMM Conference, S. 295-306, August 2000. Stoica, I. und H. Zhang. A hierarchical fair service curve algorithm for link-sharing and priority services. Proceedings of the SIGCOMM '97 Symposium, S. 249-262, Oktober 1997. Tanenbaum, A. S. Modern Operating Systems. Prentice Hall, Upper Saddle River, NJ, 2. Aufl., 2001. Tanenbaum, A. S. Computer Networks. Prentice Hall, Upper Saddle River, NJ, 4. Aufl., 2002. Terry, D. Structure-free name management for evolving distributed environments. Sixth International Conference on Distributed Computing Systems, S. 502-508, Mai 1986. Thekkath, C. A. und H. M. Levy. Limits to low-latency communication on high-speed networks. ACM Transactions on Computer Systems 11(2),S. 179-203, Mai 1993. Traw, C. B. S. und J. M. Smith. Hardwardsoftware organization of a high-performance ATM host interface. IEEE Journal of Selected Areas in Communications ('SAC) 11(2),S. 240-253, Februar 1993. Varghese, G. und T. Lauck. Hashed and hierarchical timing wheels: Data structures for the efficient implementation of a timer facility. Proceedings of the 22th ACM Symposium on Operating Systems Principles, S. 25-38, November 1987.
Watson, R. Identifiers (naming) in distributed systems. In B. Lampson, M.Paul und H. Sigert, Hrsg., Distributed System -Architecture and Implementation, S. 191-210. Springer-Verlag, New York, 1981. Wang, Z. und J. Crowcroft. A new congestion control scheme: Slow staa and search (Tri-S). ACM Computer Commrsnicution Review 21(1), S. 32-43, Januar 1991. Wang, Z. und J. Crowcroft. Eliminating periodic packet losses in 4.3TahoeBSD TCP congestioncontrol algorithm. A N Computer Communication R& 22(2), S. 9-16, April ,1992. Wekh, T. A technique for high-performance data compression. IEEE Computer 17(6), S. 8-19, Juni 1984. Watson, R W. und S. A. Mamrak. Gaining efficiency in transport services by appropriate design and implementation choices. ACM Transactions on Computer Systems 5(2),S. 97-120, Mai 1987. Witten, I. H., A. Moffat und T. C. Bell. Manuging Gigabytes: Compressing and Indexing Documetrts and Imsges. Morgan Kauhann Publishers, San Francisco, 1999. Wang, L., V. Pai und L. Peterson. The effectiveness of request redirection on CDN robustness. Proceedings of OSDI '02, S. 345- 360, Dezember 2002. Waldvogel, M., G. Varghese, J. Turner und B. Platmec Scalable high speed routing lookups. Proceedings of the SIGCOMM '97 Symposium, S. 25-36, Oktober 1997. Yeh, Y-S., M. B. HEuchyj und A. S. Acampora. The knockout switch: A simple, modular architeeme for hi&-performance packet switching. IEEE Journal of Selected Areas k Communication (JSAC) 5(8), S. 1274-1283, Oktober 1987. Zhang, L., S. Deering, D. Emin, S. Schenker und D, Zappala. RSVP: A new resource reservation protocol. IEEE Network 7(9), S. 8-18, September 1993. Ziv, J. und A. Lempel. A universal algorithm for sequential data compression. IEEE Transactions on Infomafm Theory:23(3), S. 337343, Mai 1977. Zv, J. und A. Lempd. Compression of individual sequences via variable-rate coding. IEEE Transactiolts on Infomation Theory 24(5), S. 530-536, September 1978.
Ziffern
A AD-Wandler 490 AAL 198 AALS-Pakete 482 Abbruchbestätigung 424 Abhängigkeitsbeziehung 22 Ablösung von Ethernet 205 ABR 314,510 ABR-Dienst 197 Abstract Syntax Notation One 541 Abstrakte Interfaces 23 Abstrakte Kanäle 16 Abstrakter Graph 186 Abstrakter Zugangspunkt 372 Abstraktionen von Rechnernetzen 20 Abstraktionsschichten20 Abtastintervall478 Abtastrate 196 ACK 97,289,383,393,394,411,465,466 Acknowledgments 97 AC-Koeffizienten 552 Adapter-Adressen 114 Adaptionsschicht 198 Adaptive Neuübertragung 393 Adaptives Wörterbuch 550 Additive Increase 466 Ad-hoc-Lösungen 538 Ad-hoc-Netzwerke 297
Adjacencies 341 Administrative Instanz 260 Adressauflösungsprotokoll257 Adresse 10, 168 Adressen, Vorübergehende 295 Adressen, Europäische 322 Adressen, Flache 247,634 Adressen, Hierarchische 248 Adressen, Numerische 634 Adressen, Routerfreundliche 634 Adressen, Zusammenhängende 304 Adressfamilien 279 Adressierungsschema 424 Adressierung, Hierarchische 253 Adressierung, Klassenbehaftete 249 Adressierung, Klassenlose 249 Adresspool263 Adressraum zuteilen 318 Adressraum, Flacher 419 Adressraum, Hierarchischer 419 Adressvergabe, Blockweise 304 Adressübersetzungstabellen 657 ADSL 72 Advanced Micro Devices 114 Advanced Microsystem Devices 138 Advanced Research Projects Agency 28 Advertised Window 387 Advertisement-Fenster 465,469 Advertisements 385 AF 507 Agenten-Advemsements 294 Aggregat-Header 140 Aggregation 70 Aggregation, Hierarchische 253 Aggregation von Routen 305 Aggregierbare Unicast-Adressen 318 AH 613,614 Aktiver Teilnehmer 381 Aktives Öffnen 33,380,383 Aktivität, Asymmetrische 380 Aktualisierung, Periodische 274
Aktualisierungszyklen275 Aktuelle Senderate 486 Akzeptanz 293 ALF 664 Algorithmen, Verteilte 269,271 Aliasnamen 638 Allzweckcomputer 30,66 Alizweckprotokoll 664 Aloha 110,116 Alpha-Workstation 142,427,541,586,592 Alternative Transportprotokoile 427 Amplitude 68 AMPS 74 Anfänglicher Slow-Start 472 AnfrageJAntwort-Algorithmus410,420 AnfragdAntwort-KanaI17,410 AnfrageIAntwort-Paradigma401,643 AnfragdAntwort-Protokolle 657 Anfrageoperationen 654 Angekündigte Entfernung 188 Angestoßene Aktualisierung 274 Angreifer 297,581 Ankunftsraten 513 Anpassungsschichten 198 Anrufkontrolle 679 Anschiussbereich 71 Anschlusspunkte 133 ANS1 84 Antwortcodes 654 Antwortnachrichten 654 Antwortzeit 700 Anwendungen 3 Anwendungen, Interaktive 490 Anwendungen, Verzögemgsadaptive 494 Anwendungsdaten kodieren 534 Anwendungsprofil666 Anwendungsprogramme48 Anwendungsprogrammierer 6 Anwendungsqualität 666 Anwendungsschicht 27,659 Anwendungstyp 645 Anycast-Adressen 327 Application Layer 27 Application Level Framing 562,664 APs 133 Arbeitsspeicher 66,210 Architektur-Tag 538,543 Area-Border-Router 314 Argument-Marshailiig 534 Arithmetische Kodierung 554 ARP 206,257,301,658
ARPA 28,636 ARPANET 28,109,170,289,644 ARP-Cache 257 ARP-Methode, Konventionelle 260 ARQ 97,136 Arrays 535,538,540,645 AS-Border-Router 314 ASCD 83,88,543,605, 644,645,648 ASCii-Zeichenfoigen 249 ASN.1541,659 Assured Forwardiag 507 Asymmetrische Aktivität 380 Asynchron 128 Asynchrone Protokolle 414 Asynchronous Transfer Mode (ATM) 177 ATM 177,191,192,495 ATM Adaptation Layer 198 ATMIAAL 404 ATM-Abkürzungen 197 ATM-Adapter 204 ATMARP 206,258 ATM-Formate 192 ATM-Gegner 196 ATM-LAN 207 ATM-Leitung, Virtuelle 512 ATM-Netz, Öffentliches 203 ATM-Netzwerke 509 At-Most-Once-Semantik 410 ATM-Signalisiemg 260 ATM-Switch 203,205,340,341,482 ATM-über-SONET 204 ATM-Zellen 346,512,663 ATM-Zelienformat 196 Attacken 580 Audio 547,676 Audioanwendung 490 Audio-CD 564 AudiokompreaFion 564 Audiokonferenz 502,661f Audiopakete 663 Audioquaiität 493,565 Aufbaunachricht 173 Aufbaupaket 180 Auffrischnachrichten 5Q1 Auffüllen von Zeilen 195 Aufgabentrennung 109 Auflösungsmechmkms 634 Aufruf-Semantik- 424 Ausbreitungsvenögerung44,427,428,563 * AusfaWassen 18 Ausgabematrix 552
Ausgangsleitungen 461 Ausgangs-Port 213 Ausgangszwischenspeicherung215 Auslastung der Leitung 196 Auslastung des Netzwerks 45 Ausnahmebedingungen 406 Authentifikation 285,593,609 AuthentifikationeHeader 325,613,614 Authentifikationsserver595 Autokonfiguration 325 Automatic Repeat Request 97 Automatische Konfigurationsmethoden261 Autonome Systeme 298,306 Available Bit Rate 197,510 *
B Backbone 190 Backbone-Netzwerke 32 1 Backbone-Provider 307 Backbone-Router 304 Backbones 698 Backup-Ring 127 Bandbreite 40 Bandbreitenanforderungen 498 Bandbreiteneffizienz 193 Bandbreitenmerkmale 497 Banyan-Netzwerke 217 BARR.NET 297 base64 645 Baseline-Wander 76 Basic Encoding Rules 541 Basisbandsystern 112 Basistypen 645 Batcher-Banyan-Switch 2 19 Baudrate 78 Baum, Zyklenfreier 186 Baumstruktur des Internet 297 Beacon-Frame 125 Begleitprotokolle 644 Begleitspezifikation 658 Beispiel-Internetwork 234 Beispielmaske 302 Beispiel-Switch 167 Beitragende Quellen 667 Belastung der Leitung 377 Bellcore 84 Benutzerfreundliche Namen 634 Benutzersignalisierungsbit 197 BER 541 Berechnungsaufwand 662 Berkeley-Unix 396,647
Berkeley-Unix-Distribution 31 Besetzter Router 475 Besetztzeichen 453 Best Effort 236 Bestätigunflimeout-Strategie 411 Bestätigung 97 Bestätigung, Negative 102 Bestätigung, Teilweise 405 Bestätigung, Implizite 411 Bestätigung, Selektive 102 Bestätiwngsmechanismus420 Bestätigungsmechanismus, Selektiver 425 Best-Effort-Dienst 505 Best-Effort-Dienstmodell454 Best-Effort-Übertragung 237 Best-Effort-Warteschlange 509 Bestmögliche tibertragung 237 Betriebssysteme 261 Betriebssystemroutinen 142 Bewegungsschätzung 558 Bewegungsvektoren 558 B-Frames 555 BGP 308 BGP-Aktualisierungspaket 312 BGP-Sprecher 310 Bibliotheksroutinen 37 BID 413,425 Bidirectional Predicted Picture 555 Big-endian 534 Bildbearbeitung, Digitale 548 Bildkompression 550 Bildpixel55 1 Bildqualität 562 Bildschirmarbeitsplätze 80 Binärdaten 68,645 Binding-Cache 296 Bindings 634 Binding-Update-Nachricht 296 Binding-Warning-Nachricht 296 BISYNC 80, 88 Bit Stuffing 83 Bitbreite 44 Bitebene, Fehler 18 Bitfehler 18 Bitkodierungen 200 Bitorieirtierte Protokolle 83 Bit-Pipeline 17 Bitstopfen 83 Bitströme kodieren 76 Bitübertragungsschicht 26 Bitweises Round-Robin 461
Black-Box 464 BLAST 404 BLAST-Header 407 Blattmenge 696 Blattnetzwerk 332 Blaupause 30 Blitzschlag 18 Blockweise Adressvergabe 304 Bluetooth 75 BOM 200 Boolesche Datentypen 535 Boot-ID 412 Bootstrapping 641 Border Gateway Protocol308 Border-Router 307 Bösartige Quelle 460 Bottleneck-Router 449,485 Bridge 181,409 Bridge-Implementierung 183 Bridge-Weiterleitungstabelle 182 Bridges, Designierte 186 Bridges, Lernende 181 Broadcast 10,206 Broadcast-Adressen 115 Broadcast-and-Unknown-Server259 Broadcast-Frames 190 Broadcasting 112 Broadcast-Pakete 331 Browser 653,656 Buchstabenkombinationen 580 Bucket-Tiefe 498 Buffet Descriptor Lists 140 Buk-Transfer 404 Burstfehler 18 Burstlänge 96 Bursts 480,482 BUS 208,259 Bus, Gemeinsamer 216 Bus-Interface 136 Busstruktur 113 Bypass 127 Byte-orientierte Protokolle 80 Byte-Stromdienste 374 Byte-Stromkanal, Zuverlässiger 28 Byte-Zählrncthode 81
C do-Adresse 294 CA 600 Cache Array Routing Protocol (CARP)703 Cache-Einträge 296
Cache-Ersetzungsalgorithmus 184 Cache-Fehlschlag 209 Cache-Richtiinien 657 Cache-Seiten 196 Caching 656 Caching-Algorithmus 209 call-Operation 419 Campus-LAN 413 Campusnetzwerke249 CATV 73 CBC 585,597 CBR 510 C-Code 414 CDN 699,701,702 CD-Qualität 564 Cell Loss Priority 197 Certificate Revocation List 602 CHAN 410 Character Stuffiig 81 Chat-Rooms 3 Chiffretext 580,587 Chiffrierschlüssel587 Chipping-Code 131 Chosen-Plaintext-Attacke580 Chrominanz 554 CID 412,425 CIDR 303,321 Cipher Block Chaining (CBC)585,597 Ciphertext-only-Attacke 580 Claim-Frame 124 Classical IP over ATM 259,260 Classless Interdornain Routing 303 Clear To Send 132 Client 16 iCliendServer-Beziehung 593 Client/Server-Interaktionen641 CliendServer-Programmbeispiel33 Client-Bezeichner 262 Client-Handshake-Key 593 Client-Programm 33,642 Client-Stub 402,539 close-Operation 384 CLP 197 C U 497,499,504 CNAME 668,670 Code, Mobiler 621 Codefragrnent 242,396,470,540 Coder/Decoder 71 Codetypen 654 COM 200 Compiler 535, 543
compress 549 Concurrent Logical Channek 109 Congestion Avoidance 475 Constant Bit Rate 510 Constrained Shortest Path F i (CSPF) 345 Constraints 345 Contes Switch 37 Controlled-Load 495,504 Control-Panel von vic 5 Control-Status-Register 137 CORBA 424 Count-to-infinity-Problem 275 CPI 199 C-Programmierer 1 CPU-Geschwindigkeit 67 CPU-Register 143 CPU-Zyklen 37 Cray 543 CRC 87,92,239 CRC-32 88 CRC-8-Polynom 197 CRC-Berechnung 204 Credentials 423 CRL 602 Crossbar 216 CSMAICD 110 CS-PDU 199,240 CS-PDU-Kapselung 201 CSPF 345 CSR 137 CSRC 667 C-Struktur 105 CTS 132 C-Typensystem 539,541,543 Cyclic Redundancy Check 87
C.
D Daemon 647 Darsteiiungsforrnatierung 534 Darstellungsschicht27 DAS 126 Data Link Layer 26 Datagramme 168,647 Datagrarnm-Kanal, Unzuverlässiger 28 Datagramm-Protokoll, Zuverlässiges 414 Datagramm-Weiterleitung249 Data-Link-Escape 81 Datekewer 115,419,593 Dateisystem, Verteiltes 404 Dateitransfer 457 Datenanwendungen 397,400
Datenbankaktualisierung 489 Dateduss 450 Datenflusskontrolle 448 Datenkodierer 536 Datenkodierung 546 Datenkodierungsstandard 542 Datenkomprimierung 546 Datensätze 535 Datensatzgrenzen 397,400 Datenstrom 11 Datenströme, Logische 11 Datenstruktur 242 Datentransferrate 136 Datentypen 535,645 Datentypen, Boolesche 535 Datentypen, Flache 535 Datentypen, Zusammengesetzte 541 DCE 424,542 DCE-RPC 424 DC-Koeffizient 552 DCT 551,558 DDCMP 80,82 DEC 110,185 DECbit 197,475,512 Dechiffrierschiüssel587 DECNET 80 Dedizierte Telefonleitung 375 De-facto-Standard 564 Default-Routen 307 Default-Router 250,261,264,302 Dekodierer 566 Dekodierung 556 Dekompression 547,551,553,557 deliver-Operation 38 deliver-Routine 417 Delta-Kodierung 549 Deltas 558 Demultiplexebene 372 Demultiplexen 11,25,666 Demultiplexmechanismus 374 Demultiplexprotokoll419 Demultiplexschlüssel379 Demuxschlüssel25,239,262,372,666 Denial-of-Service-Attacke 612,617 Dense-Mode 333 DES 578,582 Design, Fensterbasiertes453 Design, Ratenbasiertes 400,453 Design, Routenentrisches 452 Designentscheidungen 293 Designierte Bridges 186
780
1
Index
Designierter Router 334 Desktop-Workstation 66 DES-Schlüssels 584 Deviation 396 Dezimale Ganzzahlen 249 DHCP 261,292 DHCP-Relaisagent 262 Dienste DSlDS3 70 Fristenbasiert 130 ISDN 71 Sockets 31 zum Hausanschluss 71 Dienstgüte 14, 177,452,489,494 Dienstgüteanforderungen 216 Diensthterface 21 Dienstklassen 495 Dienstmodell236,452 Differential Pulse Code Modulation 549 Differentiated-Services 464, 494, SOS, 509, 562 Differentiated-Services Code Points 506 DiffServ 505 Digital Network Architecture 475 Digitale Bildbearbeitung 548 Digitale Funksysteme 74 Digitale Signatur 598,600 Digitale Sprachmuster 30 Digitale Zertifikate 600 Digitalisierte Sprache 71 Digitalisierung 489 Dijkstra-klgorithmus 282,329 Direct Memory Access 139 Direct-Sequence 131 Direkte Identifizierung 372 Direkte Verbindungen 7 Direktspeicherzugriff 2 10 Direktverbindungsnetz 234 Discovery-Nachrichten262 Discrete-Cosine-Transformation551 Dispatcher 419 Distanzvektor-Multicast 331 Distanzvektor-Routing 271 Distributed Computing Environment 424, 542 Distribution System 133 Divisor-Polynom 92 DMA 139,210 DNA 475 DNS 602,634 DNS-Hierarchie 636
Domain Name System 602,634 Domain Name System (DNS) 602,634 Domain-Hierarchie 636 Domain-Namen 635 Domain-Name-Server 373 DONE 405,407 Doppelanschlussstationen 126 Doppelring 126 Downstream-Rate 74 DPCM 549 DR 334 Drahtlose Kommunikation 621 Drahtlose Netze 130 Dreiecksungleichheit6 88 Dreifach-DES 586 Drei-Komponenten-Bilder 555 Drei-Wege-Handshake 381,383,593,612 Drop-by-Default-Firewall618 Drop-Grenzwert 478 Drop-Präferenz 509 Drop-Regel 458 Drop-Wahrscheinlichkeit 507,562 DSlßDS3-Leitungen 70 DSCP 506, 508 DSS 598 Dumme Endgeräte 17 Duplikat-ACK 473,476 Durchsatz 40,212,427,455,485 DurchsatzNerzögerung-Verhältnis481 Durchsatzkurve 429,456 Durchsatztests 429 Durchschnittliche Warteschlangenlänge 478 Durchschnittspaket 211 DVMRP 685,688 Dynamische Port-Auswahl 618
E / E.164 192 Early Packet Discard 483 EBCDIC 88,543 Echokompensatoren 196 Echos 196 Echtzeitanwendungen 489,492,662 Edge-Router 343 EF 506 EFCI 197 Effektive SprachÜbertragung196 Effektiver Durchsatz 48 Effektives Fenster 387 EGP 307,321,659 Eigenvermittelnd 214
Index
EigenvermittelndeSchaltnetzwerke 217 Ein-IAusgabegeräte 554 Eindeutige Bezeichner 168 Eindeutige Host-Bezeichner 249 Eindeutige Prozedurnummern 419 Eindimensionale Parität 89 Einerkomplement-Arithmetik 90 Eingangsbandbreiten 212 Eingangs-Ports 213 Eingangspuffer 1215 Einmalschlüssel605 Einwegfunktionen 58 1 Einweglatenz 44 Einwegverbindung 6 13 Einwegverzögerung 492 Einzelanschlussstationen 126 Einzelbitfehler 95, 197 Electronic Mai1 644 Elektrische Übertragung 70 Elektromagnetische Wellen 67 Elektromagnetisches Spektrum 68 Elektromechanisches Relais 120 El-Gamel-Algorithmus 598 Eltern-Router 331 E-Mail 3,490,644 E-Mail-Adresse 635 Empfängerberichte 668 Empfangspuffer 385 Encapsulating Security Payload 613,615 Ende-zu-Ende-Abstraktion451 Ende-zu-Ende-Argument 377 Ende-zu-Ende-Dienste 403 Ende-zu-Ende-Durchsatz47 Ende-zu-Ende-Gewährleistung 377 Ende-zu-Ende-Konnektivität 500 Ende-zu-Ende-Protokolle 372 Ende-zu-Ende-Semantik 452 Ende-zu-Ende-Sicherheitsmechanismus 617 Ende-zu-Ende-Überlastkontrolle465 Endpunkt-Abbildungsdienst 424 Endsysteme 9 Endsystem-Multicast 684 Entfernter Dateizugriff 16 Entfernung zur Wurzel 188 Entwicklungsstand 19 Envelope 649 EPD 483 Equation-based Congestion Control514 Ereignisarten 383 Erreichbarkeitsinformationen 321 Error-Correcting Code 94
1
781
Erweitertes Campus-LAN 413 Erweitertes LAN 181 Erweiterungs-Header 324,666 ESP 613,615 EstimatedRTT 394 Ethernet 29, 181, 192, 211, 239, 377, 420, 449 Ethernet-Adressen 114 Ethernet-Bridge 181 Ethernet-Geschwindigkeit 429 Ethernet-Header 191 Ethernet-Switch 205,212,214 Europäische Adressen 322 Expedited Forwarding 506 Experimente 427 Experimentelle Switche 210 Explicit Forward Congestion Indication 197 Explizites Feedback 453 Explizites Routing 337,343 Exponentialfunktion588 Exponentieller Mechanismus 468 Exponentielles Backoff 117,395 Exponierte Knoten 132 Exterior Gateway Protocol307 External Data Representation 539
F Fack-Nachricht 426 FAILURE 417 Faires Queuing 460 Fairness 457 Faktorisierungsalgorithmus588 Falsche Zellenanordnung 201 Farbbilder 551,554 Farbdichte 557 Farbe 190 Farbkomponenten 554 Farbspektrum 550 Farbsysteme 554 Farbtiefe 48 Farbton 554 Fast Reroute 344 Fast-Fourier-Transformation 551 Fast-Recovery 474 Fast-Retransmit 472,508 Faustregel 481 FDDI 28,29,125,204,211,235,239 FDDI-Paketgröße 193 FDM 11 Feedback 453 Feedback, Implizites 453
781
,
1
Index
Fehlende Fragmente 407 Fehlererkennung ARQ 97 ' BISYNC-Format 81 CRC 87,92 ECC 94 Internet-Prüfsummen 90 Reed/Solomon-Codes 87 Sliding-Window 100 Verwaiste Frames 124 Zweidimensionale Parität 89 Fehlerkorrekturcode 87,94 Fehlernachrichten 264 Fenster, Effektives 387 Fenster-Advertisement 399 Fensterbasiertes Design 453 Fenstergröge 387,466 Femsehbildauflösung 48 Femsehkabel67,lll Festpunktarithmetik 552 Festverdrahtete Netzstniktur 133 FFT 551 Fiber Distributed Data Interface 119 Fiber to the Curb 72 Fiber to the Home 72 Field-Programmable Gate Array (FPGA) 137 FIFO 14,458,463,478,504 FIFO-Speicher 137 Filterbasierte Firewalls 617 Fm-Segmente 384 Firewall 616 Firewall, Klassische 620 Firewaii, Filterbasierte 617 Firewall, Proxy-basierte 618 First-In-First-Out 14,458 Fisch-Netz 343 Flache Adressen 247, 634 Flache Datentypen 535 Flacher Adressraum 419 Flags 381 Flaschenhals 142,210 -FlowSpec 496,497 $lush-Mechanismus 209 FlusskontroUalgorithmus427 Flusskontrolle 109, 175,375,385,386 Flusskontrollmechanismus 373 Flussspezifikation 496 Fluten 280 Fluten, Zuverlässiges 280 Flutmechanismus 282 Foreign Agents 294
Forking 676 Format, CHAN-Header 412 Format, SunRPC-Header 423 Format, TCP-Header 378 Format, UDP-Header 372 Formatdefinition 666 Formatiemngen 645 Formatspezifikation 664 Forwarding 167 Forward-Search-Algorithmus 283 FPGA 137 Fragmentbestätigung 426 Fragment-ID 409 Fragmente, Fehlende 407 Fragmente, Identifizierung von 409 Fragmente, Verlorene 407 Fragmentierte Anfragenachricht 425 Fragmentierung 198,240,404,405,420 Fragmentierungs-Header 324 Fragmentliste 246 Frame 26 Frame-Fehler 82 Frame-Grenzen 663 Frame-Header 189 Frame-Kennzeichnung 666 Frame-Relay 177,265 Frames 802.1 1-Format 135 802.5-Format 125 AAL 201 ACK 97 ARP-Paketformat 258 ATM-Adressen 209 Begrenzer 125 BISYNGFormat 80 Bytezählrnethode 81 Claim 129 C T S 132 DDCMP-Format 82 DMA 139 Endemarkierung 84 Erzeugung 79 Erzeugungsproblem 204 Ethemet-Format 113 FDDI 129 FDDI-Format 130 Flusskontrolle 109 HDLC-Format 83 IP-Datagramrn 240 Kollidieren 116 MAC-Adressen 207
MPEG 555 Nummemumlauf 103 PPP-Format 81 Reihenfolge 108 RTS 132 Sentinel-Methode 80 Sliding-Window 100 SONET 204 Stop-and-Wait 97 STS-1 85 Taktbasierte Erzeugung 84 Timeout 97 Token 123 Verfälscht 124 Verkettung 86 Verwaiste 124 Videokompression 555 Freigabe, Verzögerte 124 Freiheitsgrade 613 Fremdagenten 294 Frequency Hopping 130 Frequenz 67 Frequenzdomäne 551 Frequenzkoeffizienten 551,552 Frequenzmultiplexen 11 Frequenzsprungverfahren 130 Frequenzteilbänder 565 Frühe Freigabe 124 FTP 16,27,28,490,493,618 FTP-Proxies 620 Füllbits 665 Füllbytes 195,199,201,535 Funkfrequenzen 74 Funktionszeiger 539 Funkwellen 68 Funksysteme, digitales 74
Gemeinsamer Baum 333 Gemeinsamer Bus 216 Gemeinsamer Speicher 216 Gemessene TRT 127 Generalisiertes MPLS (GMPLS)343 Generator-Polynom 96 Generische Fiusskontroiie 197 Gerätetreiber 26,66,142 Gesamtverzögerung 289 GET 653,658 Gewichtung 463,504,509 GIF 550,560 Gigabit-Ethernet 70,111 Gleichzeitige logische Kanäle 109 Gleitkommadarstellung543 Gleitkommazahlen 535 Gleitpunktarithrnetik 396 Globale Eindeutigkeit 168 Globales Adressierungsschema 247 Globalstar 74 GMS 74 Gnuteiia 691 Gnutella-Protokoll692 GOP 560,562 Grafikbildschirme550 Graph, Abstrakter 186 Graph, Zykiischer 185 Graphentheorie 282 Graphical Interchange Format 550 Gratuitous ARP 295 Grauwertbilder 551 Gröbie von Zellen 193 Grdrechner 80 GS 497,499,510 Guaranteed-Service495
G
H.261559 H.263 559 H.323 679 Halbduplexbetrieb 69 Hamming-Codes 87 Handshake 610 Handshake-Schlüssel594 Handys 296 Hard-State 451,500 Hardwareadresse 262 Hardware-Muiticast 328 Hardwareseitige Adrtmhge 258 Hardware-Switchc 193 Hash-Funktion 693
Gammastrahlen 68 Ganzzahlarithmetik 396,552 Ganzzahlen 535 Garantierte obertragmg 404 Garantierte Verzögerung 202 Gatekeeper 679 Gateway 235,477,645,647,679 Gathet-Write 140 Gebühren 460 Geburtstagsproblem 581 Geheime Schlüssel 578 Geheimnummer 592 Gemeinsame Ressourcen 10
H
784
1
Index
Hashing 578 Hashing-Algorithmus 702 Hash-Tabelle 693 Haupt-Hader 666 Hauptschleife 35 Hausanschluss 71 Header 24 Header Error Check 197 Header-Format, RTP 665 Header-Typen 653 Header-Varianten 180 Header-Verarbeitung428 Head-of-Line-Blocking 215 HEC 197 Heimatadresse 293 Heimatagent 293 Heimnetzwerk 621 Hello-Pakete 281 Hersteiler-Adressen 261 Hertz 67 Heterogene Internetworks 235 Heterogenität 191 Heuristiken 499,558 Hewlett-Packard 424 HHP 22 Hierarchiebildung 298 Hierarchische Adressen 248 Hierarchische Adressierung 253 Hierarchische Aggregation 253 Hierarchische Routing-Infrastruktur 270 Hierarchischer Adressraum 419 Hierarchischer Namensraum 635 High/'ow-Ubergänge77 High-level Data Link Control 83 HIPERLAN 74 HLP 104 Hochgeschwindigkeitsleitungen449 Hochgeschwindigkeitsnetze 46,398,550 Hochleistungsnetze 44 Home Agent 293 Hopby-Hop-Flusskontrolle 175 Hop-zu-HopGarantien 377 Host 9 Host-Adressen 114, 634 Host-Bezeichner 249 Host-Konfigurationsdaten 26 1 Host-Namen 634 Host-Namenstabelie 635 Host-spezifische Informationen 292 Host-zentrisches Design 452 Host-zu-Host-Konnektivität 17,20
Host-zu-Host-Protokoll22 H-Serie 559 HTML 644 HTTP 29,609,618,643,651 HTTP-Port 80 619 HTTP-Proxy 619 IiTi'PS 610 HTTP-Version 1 612 Hub 113 Huckepackverfahren 97 Huffman-Code 554 Huffman-Kodierung 546 HyperText Markup Language (HTML)644 HyperText Transfer Protocol (HlTP)4,643 Hypertext-Lis 653 Hypothetisches Schichtensystem 22
I IJO-Bus 66, 136,211 IBGP 314 IBM 80,83,119,424,543 ICMP 264,659 ICMP-Redirect 264 ICO 74 D E A 578 Idempotente Prozeduren 410 Identifizierung von Fragmenten 409 Identifizierung, Direkte 372 Identifizierung, Indirekte 372 Identität 601 IDL 543 IEEE 802 207 IEEE 802.1 185 IEEE 802.11 74,130 IEEE 802.14 74 IEEE 802.3 110 IEEE 802.5 119 IEEE-754 534 IETF 23,203,285,292,316,389,421,494, 495,497,506,510,603,604,609,664 I-Frames 555 IKE 614 IMAP 650 Implizite Bestätigungen 411 Implizites Feedback 453 Indirekte Identifizierung 372 Infrarotfrequenzen 74 Infrarotlicht 68 Infrarotsignale 131 Inhaltstypen 645 s Inhaltsverteilungsnetzwerk (CDN)698f
1 1
I:
<
i
!
I
i
a
Initialisierungsvektor585 Inkarnationen 379,399 Instabilität 290 Instruktionen pro Meile 44 htegrated-Services 494,495,504,505,509 Integrität 597,609 ' Intel 110 Intel80x86 534 Interaktive Anwendungen 490 Interaktive Videoanwendungen 399 Interface Definition Language 543 Interface, Abstraktes 23 Interface-Hardware 256 Interframe-Kodierung563 Interframe-Kompression 559 Interior BGP 314 Intenor-Gateway-Protokolle270 Interleaving 86,461 International Standards Organization 23 International Telecommunications Union (ITu)26 Interne Zwischenspeicherung 215 Internet 234,297,372,378,384,394 Angeschlossene Computer 30 Architektur 28 Best-Effort-Dienst 452 Browser 29 Caching 656 Datenkonvertierung 537 E-Mail-System 644 Ende-zu-Ende-Protokoiie 28 ESP 616 IP 28 IP-SEC 613 NIC 634 Prüfsummen 89 RED 481 Ressourcenzuteilung 449,546 Roundtrip-Zeiten 482 Tail-Drop 459 TCP 28 Telefonie 460 UDP 28 Verkehrsrnix 481 Verzögerungen 492 Internet Control Message Protocol (IcMP) 264 Internet Engineering Task Force (IETF) 23 Internet Explorer 29,643 Internet Key Exchange 614 Internet Message Access Protocol (W) 650
Internet Security Association and Key Management Protocol (ISAKMP)613 Internet-Backbone 308,389 Internet-Service-Provider 504,506 Intetnet-Standardprotokoii421 Internetwork 9,28,505,620 Intemetwork-Dienstmodell236 Internetworking 234 Interpacket-Gap 49 interpicture-Periode 561 Interrupt-Handler 139 Intrakodierung 558 Intrapicture 555 Intrinsische Hierarchie 321 IXlt!k~495 IP 234,235,236,376,377,420,475,504, 510,562 IP Next Generation 3 16 IP Security 603,613 IP-Adresse 649 IP-Adressen 248,636 IP-Adressen, konfigurierbare 261 IP-Adressstniktur 304 IP-Datagramme 241,657,659 IP-Dienstmodell236 IP-Fragmentierung 241 IP-Gateway 647 IP-Header 241 IP-Multicast 660,685 IPng Directorate 317 IP-Router 212 IPSEC 603,613 IPSEC-Tunnels 6 16 IP-Subnetz, logisches 259 IP-Tunnel 265,295,346,683 IPv4-Header 614 IPv4-Paket-Header 238 IPv6 350,380,504,684 IPv6-Adressen 351 IPv6-Erweiterungs-Header6 14 IPv6-Header 323 IPv6-Installation 350 IP-Version 6 316 IPX 236 Iridium 74 ISAKMP 613 ISDN 72,559,565 ISO 23 ISO-Namensauflösungssystem640 ISP 506,656 ITü26
J Jacobsonkrels-Algorithmus 395 Jains Fainessindex 457 Jitter 49, 194,662,670 Join-Nachrichten 333 Joint Photographic Experts Group 550 JPEG 550,560
K Kabelanschluss 73 Kabelbruch 126 Kabelfernsehen 73 Kabehodems 72 Kabeltypen 69 Kahn-Cetf-Protokoll235 Kaltstart 468 Kameras 667 Kanal, logischer 410 Kanal, abstrakter 16 Kanal, gleichzeitiger logischer 109 Kanal, logischer 15 Kanäle 15 Kanallatenz 45 Kanonische Zwischenform 536 Kantengewichtungen 291 Kantenkosten 270,284 Kanten-Router 508 Kapselung 24 Kapselung, AAL 314 200 Kapselung, AALS 202 KarnlPartridge-Algorithmus 395 Kategorie-5-Kabel 69 KaZaA 690 Keeping the pipe M199 Keil-Header 340 Kennzeichnung dringender Daten 397 Kerberos 595,598 Keyed MD5 598 Key-Ring 604 Klartext 580 Klartextnachricht 587 Klassenbehaftete Adressierung 249 Klassenbezeichner SO4 Klassenlose Adressierung 249 Klassenloses Routing 298,303 Klassifizierung von Paketen 504 Klassische Fiewall 620 Knoten 7,66
Knotenadressen, mobile 296 Knotenausfälle 285 Knotenebene, Fehler 19 Knotenmobilität 134 Known-Plaintext-Attacke580 Koaxialkabel 7,67,111,127 Kodierer 562 Kodierung 4B/5B 78 Anwendungsdaten 534 ASN.1542 base64 646 Baseiine-Wander 76 Darstellungsformate 535 Delta 549 Huffman 546 Interframe 563 JPEG 553 Manchester 77 Marshalling J34 Methodenübersicht 78 MIME 645 MP3 565 MPEG 557 NRZ 76 NRZI 77 RLE 548 Sialisieningskomponente 76 Standards 542 Tags 538 Taktwiederherstellung 77 Video 559 XDR 540 Kodierungsroutinen 540 Kollisionen 2 17 Koilisidornäne 113 Kommunikation, drahtlose 621 Kommunikationsbedürfnisse 16 Komm~tionsmodell213 Kompilierte Stubs 539 Komplexe Datentypen 536 Kompression, verlustbehaftete 547 Kompression, verlustlose 546 Kompressionsalgorithmen546,547,548, 550,611 Kompressionsebenen 565 Komprimiertes Video 48 Konferenzanwendung 661 Konfigurationsmethoden, automatische 261 Konfigurationsnachrichten 187 Konfigurierbare P-Adressen 261
*
Konkurrenzbetrieb 211,213 Konnektivität 7 Konnektivität, kontrollierte 265 Konsistente Netzwerksicht 274 Konstanter Overhead 212 Kontextvariable 540 Kontrollierte Konnektivität 265 Kontrollschleifen 512 Konventionelle ARP-Methode 260 Konvergenz 274 Konvergenzteilschicht 199 Konzentrator 127 Koordinatensystem554 Kopf 343 Kopf-Router 347 Kosten 270 Kostentabelle 283 Kreditkarteniuformationen 609 Kryptographie 578 Kryptographische Prüfsumme 579 Kumulative Zählungen 669 Kumulatives ACK 470,473 Kunden-AS 313 Kupferkabe.169 Kupferleitungen 72
L Label 337 Label Distribution Protocol337 Label Edge Router (LER)338,341 Label Switching Router (LSR) 340 Label-Swapping 349 LAF 101 LAN 329,331 LAN Emulation Client 208 LAN, erweitertes 181 LAN, virtuelles 190 LAN-Adresse 183 LAN-Backbones 206 LAN-Bridges 186 Lance Ethernet 138 Lance-Chip 138 LAN-Emulation 206 LAN-Frames 181 Länge-Tag 538 Langlebige Anwendungen 293 LAN-Switche 181 Laptop 133 LAR 100 Largest Acceptable Frame (LAF) 101 100 Last Acknowledgment Received (M)
Last Frame Received (LFR)101 Last Frame Sent (LFS) 100 Last Mile Link 71 LAST-FXAG 406,407 Lastausgleich 286 Latenz 40,191,427,663 Latenz, Definition 42 Latenztests 428 Lauflängenkodierung548,554 Lautsprecher 667 LDAP 640 Lebensdauer 183 LEC 207 LECS 208 Leere Warteschlange 194 Leerlaufzeiten vermeiden 13 Leistung 40,455 Leistung von Switchen 212 Leistungsaspekte 297 Leistungsengpässe 214 Leitung, vermittelte virtuelle 171 Leitung, virtuelIe 167,170,265 Leistungskurve 456,476 Leistungstests 427 Leitungsbezeichner, virtueller 170 Leitfaden für Netzwerke 19 Leitung, vermittelte virtuelle 171 Leitung, virtuelle 167, 170,265 Leitungsauslastung290,481 Leitungsbandbreite 70,427,448 Leitungsgeschwindigkeit44,212 Leitungs-Interface 136 Leitungsverrnitteltes Netzwerk 8 Leitungsverrnittlung, virtuelle 174 LempeCZiv-Kompressionsalgorithmus549 Lernende Bridges 181 LES 208 Leserichtung 143 Leuchtdichte 551,554 Level4-Switches 618 LFR 101 LFS 100 Lichtgeschwindigkeit 46,67 Lichtpegel75 Lichtwellenleiter 7,67 Lightweight Directory Access Protocol (LDAP) 640 Linearer Mechanismus 469 Linearisierung 536 LINK 104 Link Control Protocol (LCP)81
link-local-Adressen 3 19 Link-State Advertisement 287 Link-State-Algorithmus 285 Link-State-Multicast 329 Link-State-Routing 279 LIS 259 Little-endian 534 Local Loop 72 Logarithmische Skala 43 Logical IP Subnet 259 Login-Identifizierer 594 Logische Datenströme 11 Logische IP-Subnetze 259 Logische Kanäle 15 Logische Netzwerke 234 Logische Topologie 191 Logischer Kanal 410 Lokale Name-Server 641 Lokale Reichweite 337 Lokalität 700 LSA 287 LSP 280,282 Luminanz 554 Lynx 29 LZ 549
M MAC 113 MAC IEEE 802 207 MACA 132 MAC-Adresse 183,192 Mailbox 372,647,649,650 Mail-Daemon 647 Mail-Exchange-Datensätze639 Mail-Gateways 647 Mail-Reader 644,647,650 Mail-Server 618,638,645 Makroblöcke 557,562 Management Information Base 644,658 Manchester-Kodierung 77 Man-in-the-Middle-Attacke 6 12 Mapping-Tabelle 257 MapStruktur 183 Markerbit 666 Markierung von Datensätzen 397 Marking 477 Markup-Sprachen (XML) 543 Marshalling 534 Maschen-Overlay 686 Maschinenarchitekturen 537 Matching-Algorithmen 2 14
Maximale Puffergröße 387 Maximale Segmentgröße 466 Maximale Segmentlebensdauer 376 Maximale Ubertragungseinheit 240 Maximum Segment Size (MSS) 391 M-Bit 241 MBone 268,500,659,684 MD5 579,589,599 Mechanismustrennung 464 Media Access Conuol (MAC) 113 Medienströme 662,667 Medienzugriffsalgorithmus 120 Medienzugriffssteuerung113 Mehrdeutigkeit 288 Mehrfachzugriffsverbindung7 Mehrparteienkonferenzen 660 Mehrschichtiges System 21 Message Integrity Code 597 Message Stream Protocol22 Message-Digest 578,589 Message-Digest 5 (MDS) 589 Message-Transfer-Protokoll644 Messzyklen 290 Metriken 288,298,455 MiB 644,658 MIC 597,615 MID 200,202,408,411 Middleware 634 Mietadressen 263 Mietleitungen 70 Mikroprotokolle 403 Mikrowellenherde 18 Militäranwendungen 130 MIME 644,655 Mindestverzögerung 502 Misstrauenskette 604 MIT 594 Mobile IP 292 Mobile Knotenadressen 296 Mobiler Code 621 Mobilität 292 Mobiltelefone 74 Modulation 68 Modulo-2-Arithmetik 93 Modulo-Hashing-Schema 702 Monitorstation 121 Mosaic 29,643 Motion-JPEG 563 Motorola-680x0 534 Moving Piaute Experts Group (MPEG)555 MP3 565 8
MP3-dteien 690 MPEG 555,559,564,663,664 MPLS 337,341,344 MPLS-Header 346 MPLS-Tunnel346 MPLS-VPN 345 MSAU 120 MSL 376,389 MSP 22 MSS 391,466,467 MTU 240,409,420 Multibyte-Tags 541 Multicast 10, 189 Multicast, protokollunabhängiges 332 Multicast-Adressen 115, 328 Multicast-Adressraum 3 19 Multicast-Backbone 268 Multicast-Baum 329,501,502,688 Multicast-Datenflüsse500 Multicast-Erweiterung 189 Multicast-Gruppe 191,328,669 Multicast-Pakete 331 Multihome-AS 309 Multimedia-Anwendungen 489,643,659 Multimedia-Kommunikation 679 Multiple Access with Collision Avoidance (MACA) 132 Multiplexbezeichner 200 Multiplexen 11,25 AALS 202 SONET 86 STS-1-Frames 86 Videokodierung 559 Zellenweise 202 Multiplexschicht, zusätzliche 202 Multiplicative Decrease 466,488 Multiprotocol Label Switching (MPLS) 336 Multipurpose Internet Mai1 Extensions (MIME) 644 Multi-Station Access Unit 120 Multitasking-Computer 456 Musikaustausch 691
N Nachricht 8,13,27 Nachrichtenbezeichner408 Nachrichten-Header 644 Nachrichtenkapselung 24 Nachrichtervumpf 644 Nachrichtenstromdienst 400 Nachrichtenstromkanäle 17
Nachrichtentransaktion 401,424 Nachrichtenwarteschlange 373 Nagle-Algorithmus 392 NAK 102 NamenIAdressen-Abbildung 638 Namensauflösungsdienst 634 Namensraum 634 Namensraum, hierarchischer 635 Name-Server 419, 537,634,637 Napster 690 NAT 350 National Science Foundation (NSF)297 NDR 424,542 Nebenläufigkeit 419 Negative Bestätigung 102 Netscape 29,643,652 Network Address Translation (NAT) 350 Network Data Representation (NDR) 424,542 Network File System (NFS)421 Network Information Center (NIC) 634 Network Interface Controller 136 Network Layer 26 Network-Network Interface 196 Netzadapter 26, 66, 76, 79, 127, 136, 195, 292 Netzbetreiber 6 Netzkapazität 454 Netzressourcen 375,496 Netzschnittstellen 250 NetzÜberlastung 395 Netzverzögerungen 492 Netzwerk-API 31,38 Netzwerkarchitektur 19 Netzwerkbandbreite 562 Netzwerkdesigner 6 Netzwerke Broadcast 189 Drahtlose Verbindungen 74 Ethemet 110 Fehlererkennung 87 Logisches 234 Multicast 189 SONET 84 Physikalisches 234 Privates 265 Skalierbares 7, 167 Unternehmenseigenes 7 Verbindungsloses 169 Vermitteltes 8, 166 Virtuelles privates (VPN) 177,265,345 Zuverlässige Übertragung 97
Netzwerkgraph 270 Netzwerkknoten 643 Netzwerkmanagement 264,657 Netzwerkpuffer 39 Netzwerk-Service-Provider 508 Netzwerksicherheit 6 16 Neuübertragungen 376,384 Neuübertragung, adaptive 393 Next-Hop-Router 250,253 NFS 16,421 NIC 136,634 NIST 598 N-mal-N-Lösung 537 NNI 196,203 Nocall-Nachricht 424 Non-Return to Zero 76 Non-Return to Zero Inverted 77 Notation, P-Adressen 3 19 Notrufzentrale 373 Nove11236 NRZ 76 NRZI 77 NSAP 192 NSAP-Adressen 3 19 NSF 297 NSFNET-Backbone 297 Numerische Adressen 634 Nur-Text-Mail-Reader 646 Nutzdaten 24 Nutzdatenbereich 240 Nutzdatenformat 667
0 Objektgrößen 43 Objektidentifizierungsschema659 Objektorientierte verteilte Systeme 424 OC-48-Leitung 213,389, SOS OC-N-Leitungen 70 Off-Chip-Cache 144 Öffentliche Schlüssel 578 Öffentliches ATM-Netz 203 Öffnen, Aktives 33,380,383 Öffnen, Passives 32,380,383 Offset 241,244, 380 On-Chip-Cache 144 Open Shortest Path First Protocol (OSPFP) 285 Open Software Foundation (OSF) 424 Open Systems Interconnection (OSI) 26 optimale Leitungsauslastmg 99 Optischer Schalter 127
Optisches Signal 70 Orbit 74 OSF 424 OS1 26 OS1 HDLC 83 OSPF 279,285,340 OSPF-Header 286 Out-of-Band-Daten 397 Out-of-Band-Mechanismen 329 Out-of-Band-Nachrichten 400 Overhead 175,201,240,282,400,428, 429,565,656 Overhead, Konstanter 2 12 Overlay-Netzwerke 680,691,683 Overlay-Netzwerke, resiliente 688 Overlays, strukturierte 693
P Packet Pair 472 Packet per second 2 11 Paket 8, 13,26 Paket-Burst 469 Paketdurchsatz 211 Pakete pro Sekunde 193 Paketebene, Fehler 18 Paketflut 617 Paketformat, AALS 201 Paketformat, ARP 258 Paketformat, CS-PDU 199 Paketformat, DHCP 263 Paketformat, P 237 Paketformat, iPv6 323 Paketformat, OSPF-LSA 287 Paketformat, RIP 278 Paket-Header 177 Paketlänge, variable 194 Paketpaare 472 Paket-Scheduling 216,497,504 Paket-Switch 210 Paketverarbeitung 193,211 Paketverlust 662 PaketvermitteltesNetzwerk 8,449 Paketvermittlung 166 Parallelität 193 Parameterauswahl508 PARC 110 Parität, Eindimensionale 89 Parität, Zweidimensionale 88,89 Partial Packet Discard 482 . Partner-fnrerface 21 ,,I Passiver Teilnehmer 381,383
* Passives Öffnen 32,380,383 Passwort 593 Pastry 695 Path MTU Discovery 247 PATH-Nachricht 501 PATRICLA-Baum 306 Payload-Header 6 14 Pay-per-view-Spielfilme328 PC-Frontend 640 PCS 74 PDU 199 PDU-Kapselung 199 Peering-Point 308 Peer-to-Peer-Netzwerk 690,695,698 Peer-zu-Peer-Kommunikation 22 Perfekte Mischung 219 Per-Hop Behaviors 506 Periodische Aktualisierung 274 Periodischer Timer 28 1 Perlman, Radia 185 Permanente virtuelle 171 Permutationen 582 Persistente Speicher 271 Persistente Verbindungen 655 Pfad, virtueller 203 P-Frames 555 PGP 603,604 PHB 506,507 Physical Layer 26 Physikalische Netzwerke 234 Piconet 75 Piggyback 97 PIM 328,332 PIM-Operation 333 PM-SM 333 PIM-Sparse-Mode 333 Pig-Nachricht 424 PI0 139 Pipeline 44,203,389,474,510,548 Pixelsequenzen 550 Pixelwerte 548,549 Plug-and-Piay 325 Pointers 536 Point-to-Point-Protocol (PPP) 81 Policing 499,505 Policy 499,702 Policy-Control499 Polling 139 Polynom-Arithmetik 93 Polynomiale Division 94 POP 650
Port 373 Port, w o h i b t u 373 P o r e - A d , dynamische 618 Port-Mrppet 422; 4Z4 P o r t ~ M m422 ~i Pogt O h Bmtowl [POP) BSQ PostS&pt 646 PPD 482 p-Persistent-&qithmus 115 pps-&Ce 211,212 Präfixe w w & a 318 P r e d i d PBcture 535 Pre-Master Secret 611 Premium-Bit S M #
_
Pretty Good Privaq Primzahlen 581 J Prioritlita-Qwuhg4&9- . Prioritäts& 123 Private Netzwerke 263 Private Schliisa4578 Private U m 3$9 Privates Intern-k W PROBE-Tir 413,918 ' Produktioa81ietp 508 Profüzähler SO8 ProgrammedYO 11358 ; Pr0gtd-S .. . ' ProgrammW~>PIW&& 361 Programmi~.giR)' Promiscuous Mahe 3%&WM). Pruprkth
..'.
) 328
P r o t o k o l h m e ~ i239 t 4 Prot0k0lle 1-Persistent 11s ALF 664 . .. Anfrageh3ntwort 399
AaPANET 109 Aqnduon 414 Bitoriendert 83 Bpe-ohtieite 89
ph'
BLAST 404 Bymotientiexc80 CHAN 410 DCE 424 DHCP 261 D h t - w c e 21 Dhtamsektor 273 Drei-Wege-Hm&c
.
595
Einführung 21 Ethernet 28 FDDI 28 Fensterbasiert 400,454 FIT 27 Graphen 22 Handshake 610 HDLC 83 Header 24 HHP 22 HTTP 643 H'lTPS 610 ICMP 264 IGP 270 Implementierungsfragen36 Interdomain-Routing 270 Internet-Architektur 28 Interoperation 23 Intradomain-Routing270 IP 28 IPSEC 603 Ihr6 316 ISAKMP 613 Kahn-Cerf 235 Kapselung 24 Kerberos 595 LCP 81 Link-State 271,280 MAC in Token-Ring 121 MPEG 560 MSP 22 Nachrichtenorientiert 400 Netzwerkarchitektur 23 Neuentwickiung 29 Nutzdaten 24 OS1 26 OSPF 285 Partner-Interface 21 P M 333 PPP 81 PRC 402 Prozessmodell37 Prüfsummen 90 4.2931 192 Richtlinien 23 RiP 278 Routing 247 RF'C 403,643 RRP 22 RTP 660 SDLC 83
Sentinel-Methode 80 Sliding-Window 103 SNMP 541,657 Socket 32 Stromorientiert 399 SunRPC 421 Synchron 414 TCP 28,374 TLS 610 Trailer 24 UDP 28,372 Unzuverlässig 399 Zuverlässig 399 Protokollgraph 427 Protokolhummer 504 Protokollspezifikation 23 Protokoll-Stack 22,36,420,661 ProtokollunabhängigesMulticast 332 Provider-AS 313 Proxy 618,656,675 Proxy-ARP 294 Proxy-basierte Firewalls 618 Prozedumummern, eindeutige 419 Prozeduraufrufe 38,402 Prozess 37 Prozess/Nachricht-Modell38 Prozess/Protokoll-Modell37 Prozess-ID 372 Prozessmodeli 37 Prozessorgeschwindigkeit 67,547 Prozessorgeschwindigkeiten 586 ProzessübergreifendeKommunikation Prozess-zu-Prozess-Kanäle 17 Prüfsummen 88 Prüfsummenalgorithrnus 90 Prüfsummenberechnung 239 Prune-Nachrichten 333 Pseudo-Header 373,380 Pseudowire Emulation 345 Pseudozufaliszahien-Generator131 Psychoakustische Modelle 565 Public Key Encription (RSA)586 Pufkr 488 Pufferanforderungen 512 Pufferbelegung 483 Puffergröße, maximale 387 Pufferlisten 140 Puffer-Management 216 Pufferplatz 376,448 Pufferüberlauf 387 Punktnotation 659
unkt-24- unkt- erbi in dun^ 7 Push-Operation 380,397 PVC 171,177
Q QoS 177,192,452,489,494,509,513 Quack-Nachricht 424 Quality of Service (QoS) 14,177 Quantisierung 551,552,558,559 Quantisierungsgleichung 553 Quantisierungsmatrizen 561 Quantisierungstabelle 552 Quantitative Metriken 427 Quantum 552 Quelladresse 182,189,504 Quelle, Virtuelle 512 Quellenbeschreibungen668 Quellenbeschreibungspaket 670 Quellenspezifischer Baum 333 Quell-Frames 557 Quell-Port 504 Queuing-Algorithmus 458 Quit-Nachricht 424
R Random Early Detection (RED)476 Ratenadaptive Anwendungen 494 Ratenbasierte Transportprotokolle 454 Ratenbasiertes Design 400,453 Ratenbegrenzung 506 Räumliche Dimensionen 551 read-Prozedur 422 Reaktionszeit 43 Real Audio 661 Real-time Transport Control Protocol (RTCP) 664 Real-time Transport Protocol (RTP) 660 Reassemblierung 198,240,404,420,657 Reassemblierungsroutine 244 Receive Window Size (RWS) 101 receive-Operation 38,39 Receiver-makes-right 537,543 Rechnerabsturz 19 Rechnemetze Anwendungen 48 APIs 31 Architektur 19 ATM 192 Ausbreitungsverzögerung44 Client 33 Darstellung als Wolken 8
Demultiplexen 11 Direktverbundene 66 DNS 634 Drahtlos 130 Ende-zu-Ende-Daten 534 Ethernet-Installationen 118 FDDI 125 Firewalls 616 Frames 79 Gemeinsame Dienste 15 Gerätetreiber 142 Grundlagen 6 Hardware 66 Intemet-Architektur28 Intemetwork 9 Internetworking 234 Jitter 49 Kabel 69 Knoten 7 Kodierung 75 Kollisionsvermeidung 131 Konnektivität 7 Leistung 40,427,455 Leistungsanforderungen48 Leitungsvermittelt 8 Mietleitungen 70 Multicast 328 Multiplexen 11 Nachrichtenpuffer 39 OSI-Architektur 26 Paketvermittelt 8 Paketvermittlung 166 Pipeline 44 Protokolle 19 Ressourcennutzung 10 Ressourcenzuteilung448 Routing 10 Schichten 19 Server 35 Sicherheit 578 Skalierbarkeit 7 Sockets 31 Software implementieren 30 Speichervermittlung8 Switche 9 Token-Ring 119 tiberlastkontrolle 448 tiberlastung 14 Verbindungsleitung 7,67 Vermittelt 8 Virtuelle Pfade 203 Zuverlässigkeit 18
RED 476 RED with In and Out 507 Redirection 701 Redirector 702 Redundanz 184 Redundanzprüfung, Zyklische 92 Reed/Solomon-Codes 87 Referenz-Frames 555,563 Referenzmodell, OS1 26 Referenzpixel558 Registrierungsnachricht 260 Reichweite, lokale 337 Reichweite, Uneingeschränkte 205 Reject-Nachricht 424 Relaisagenten 262 Relative URL 654 Remote File Access 16 Remote Procedure Ca11 (RPC) 402 Remote-Prozedur 538 Rendezvouspunkt 333 Repeater 111 Replay-Attacke 613,615 Replay-Schutz 613 Repository 261 Request To Send 132 RequestReply Protocol22 Reservering 127 Reservierungen 453 Reservierungsanfrage 501 Reservierungsbits 123 ReservierungsprotokoII500 Resilient Overlay Network (RON) 689 Resource Reservation Protocol (RRP) 494,500 Resource Reservation Protocol (RSVP)344 Ressourcen 376 Ressourcendatensätze 638 Ressourcenreservierung 496 Ressourcenverbrauch 238 Ressourcenzuteilung448 Ressourcenzuteilungszellen 5 12 =V-Nachricht 501 RETRANSMIT-Timer 411,413,417 RETRY 406,407 Reverse-Path Broadcast 332 Reverse-Path Multicast 332 RFC 822 644 RGB 554 Ringlatenz 122,124 Ringtopologie 119 Ringtdaufzeit 127
RIO-Ansatz 507 RIO-Mechanismus 508 RiP 271,278 Rivest, Shamir, Adleman (RSA) 578 RLE 548,554 rlogin 606 RM 512 RM-Zellen 512 ROM 114 RON 689 Röntgenstrahlen 68 Root-Name-Server 638 Rotation 180 Round-Robin-Verfahren 460 Round-Robin, bitweises 461 Roundmp 427 Roundtrip-Verzögerung 117 Roundtripverzögeningen 484 Roundtrip-Zeit (R'IT) 42,99 Routen aggregieren 304 Routenberedinung 282 Routenliste 276 Routenoptimierung 296 Router 235,240,250,409,634 Router, designierter 334 Router, ungenutzter 475 Routerfreundliche Adressen 634 Router-Verhaltensweisen 506 Router-Warteschlangen 508 Routenenaisches Design 452 Routine für Internet-Prüfsumme 90 Routinen 540 Routing 10,169,268 Routing, Klassenloses 298,303 Routing Information Protocol278 Routing-Aktualisierungen460 Routing-Bereiche 3 14 Routing-Domain 270,280,306 Routing-Mormationen 634 Routing-Metrik 289 Routing-Nachrichten 285 Routing-Overlays 683 Routing-Schleifen 238,276 Routing-Tabelle 168,269, SOS, 696, RP 333 RPB 332 RPC 402,420,429,538 RPC-Mechanismus 402 RPC-Stack 420 RPC-TransportprotokoII 643 RPM 332
index
~ 2 2 ' RSA 578,586,589 RSA-Sicherheit 588 RSpec 497,501 RSVP 494,495,500,504 RTCP 664 RTP 660,664 RTS 132 RTT 42,375,390,393,398,401,413,468, 484,611 Ruckeleffekt 50 Rückgabecodes 649 Rückmeldung 666 Rückpfad 501 Rückwärtskodierung 558 Run Length Encoding (RLE) 548 Runt-Frame 116 RWS 101
S SA 613,615 Sägezahnmuster 467 Sample 564 SampleRTT 394,486 Sampling-Instanzen 667 SAR 198 SAS 126 Satelliten 74 Satzende-Marker 397 S-Boxfunktion 584 Scanning 134 Scatter-Read 140 Schalter, Optischer 127 Schaltnetzwerke 213 Scheduling 504 Scheduling-Algorithmus463 Scheduling-Disziplin458 Schema 544 Schicht-2,s-Protokoll 341 Schicht-2-VPN 348 Schicht-3-VPN 347 Schichten AAL 198 Anwendung 27 Bitübertragung 26 Bitübertragung für ATM 204 CS-PDU 199 Darstellung 27 Einfaches Internetwork 236 Multimedia-Anwendungen 659 RTP 660
I 793
Sicherung 26 Sitzung 27 Transport 27 Vermittlung 26 Schieberegister 96 SchVmprotokoll613 Schleifen 185 Schlüssel, geheime 578 Schlüssel, öffentlicher 586 Schlüssel, privater 586 Schlüsselbund 604 Schlüsselerzeugung614 Schlüsselfelder 424 Schlüsselinfrastruktur613 Schlüsselmanagement-Software605 Schlüsselraum 58 1,586 Schlüsselrotation583 Schlüsselverteilung579,600 Schnelle Konvergenz 276 Schnittstellenbeschreibung539 Schreibrichtung 143 Schriftarten 645 Schwanz 343 Schwanz-Router 347 Schwindler-Site 602 Scrambling 85 SDP 676 Secure HTTP 610 Secure Shell (SSH)606 Secure Socket Layer (SSL) 603,609 Secure-Hash-Algorithmus 589 Segmente 378 Segmentformat 3 83 Segmentgröße 391 Segmentgröge, Maximale 466 Segmentlebensdauer, Maximale 376 Sehvermögen 554 Seiteninhalt 655 Selbsttaktend 465 SELECT 419 Seleaive Retransmission Request 405 Selektive Bestätigungen 102 Selektiver Bestätigungsmechanismus425 Selektarfeld 419 Semantik 383 Semantische Lücke 19 Send Widow Size (SWS) 100 Senderate 484 Senderberichte 668 SenderspezifischerZustand 335 send-Operation 38,383,414
796 1 Index
Separation of Concerns 109 SEQ 200 Sequenznummer 100,381,386 Sequenznummemaum 389,399 Serialisierung 536 Server 16 Server-Discovery 262 Server-Handshake-Key 593 Server-Last 703,704 Serverprogramm 35 Server-Stub 539 Service-Provider-Netzwerke308 Session Description Protocol (SDP) 676 Session Initiation Protocol (SIP)674 Session Key 594 Session Layer 27 SET 658 Setup-Protokolle500 SHA 589 Sichere Transportschicht 610 Sicherheitsassoziation6 13 Sicherheits-Gateway 614f Sicherheitsloch 589 Sicherheitsparameterindex 614 Sicherheitsregelungen620 Sicherheitsrisiken 588 Sicherheitsvorteile 6 11 Sicherungsschicht 26 Sichtbares Licht 68 Sichtverbindung 74 Siebenschichtiges Modell 28 Signale 67 Signal, Optisches 70 Signalisierung 171,192,496 Signalisierungsbia 197 Signalisierungsinformationen680 Signalisierungskomponente76 Signalisierungsnachrichten510 Signalisierungsphase 511 Signatur, Digitale 598,600 Signatuniberprüfung 605 Siily-Widow-Syndrom 391 Simple Mai1 Transfer hotocol (SMTP) 643 Simple Network Management Protocol (SNMP)541,643,657 Simplexverbindung 613 SIP 674 SIPP 317 SIP-Proxy 675 SIP-URI 676 site-local-Adressen3 19
Sitzungen, BGP 310 Sitzungsmanagement 669 Sitzungsschicht 27 Sitzungsschlüssel594,611 Skalierbare Intemetworks 235 Skalierbare Netzwerke 7,167 Skalierbare Switche 193 Skalierbarkeit 7,285,292,298,504 Skalierungsfaktor 399 Skalierungsproblem 180 Slices 561 Slidiig-Window 100 Sliding-Window-Algorithmus375,376,379, 382,385,470,474 Sliding-Window-Protokoll377 Slow-Start 468,480,656 Slow-Start, anfänglicher 472 SMTP 28,643,644,647 SMTP-Mail-Port 618 SNMP 541,643,657,659 Socket-Interface 3 1,398 Soft-State 451,500 Softwareirnplementierungen 559 Software-Overhead427 Sollfenster 470 Sondeneichen 646 SONET 84,167,204 SONET-Overhead 204 Source-Routing 167, 177, 343 Spanning-Tree 186 Sparse-Mode 333 Speicher, gemeinsamer 216 Speicher, persistente 271 Speicheradressen 536 Speicherbandbreite 143 Speicherplatz 387 Speichervermittlung 8 SPI 614 Spiegel-Server 699 Spitzenbandbreite 143 Spitzenrate 5 11 Spitzentransferrate 137 SpleiSen 113 Split Horizon with Poison Reverse 276 Split-Horizon 275 Sprachanwendungen494 Sprachleitungen 70 Sprachmuster 196,490 SprachÜbertragung, effektive 196 a Sprachverkehr 196 Sprechflut 663,666
B
SRR 406 SSH 606,607 SSL 603,609 SSR 405 SSRC 667,670 Stack 403 Standard MP3 564 Standardabweichung 468 Standardisieningsgremien 23,196,512 Standards 802.11 74, 130 802.5 119 AALS 201 ASN.1541 ATM 194 CORBA 424 DES 578 DCS 598 Ethernet 802.3 110 FDDI 119 H-Serie 559 IDEA 578 IEEE 754 534 IEEE 802.14 74 IEEE 802.3 110 JPEG 550 MPEG 555 WEG1 560 MPEG-2 560 NDR 542 RPC 401 RTCP 664 RTP 664 SNMP 541 SONET 85 TLS 609 Videokodierung 559 X.509 602 Standard-TCP 484 Standbilder 547,555,560,645 Star Trek 46 Statisches Wörterbuch 550 Statistisches Multiplexen 13 STDM 11 Sterw 564 Stemkonfiguration 113 Stemtopologie 120,166 Steuerinformationen379,664 Steuemachrichten 264 Steuerstrom 668
Stichproben 468 Stillephasen 494,667 Stop-and-Wait-Algorithmus 97 Störungen im Ring 125 Strategie- und Mechanismustre~ung464 Streaming-Anwendungen 643,661 Streaming-Audio 3 Streuspektrum 130 Striktes Prioritätsschema 123 Stromausfall19 Stromstöfk 18 Stromversorgung 188 Smikturen 535,645 STS-12-Leitung 137 STS-NC86 STS-N-Leitungen 70 Stub-AS 309 Stub-Compiler 402,424,539,540 Stubs 538,543 Stubs, kompilierte 539 Subnetting 299 Subnetze 234,299 Subnetze adressieren 300 Subnetzmaske 300 Subnetznummer 300 Subnetztechnologie 503 Substitutionsbox 584 Suchmaschinen 640 SunRPC 421,539 SunRPC-Header 422 Surrogat-Server 699 SVC 171 Switch 9 Switch, überlasteter 197 Switch, experimenteller 210 Switch, skalierbarer 193 Switch-Durchsatz 212 Switched Virtual Circuit (SVC) 171 Switch-Implementierung 2 10 Switching 167 Switching Fabrics 213 Switch-Protokollgraph 167 Switch-Tabellen 172 SWP 104 SWS 100 Synchrone Protokolle 414 Synchrones Zeitmultiplexen 11 Synchronie 414 Synchronisation 410,661,662 Synchronisationsinformationen 561,566 Synchronisationsquelle 667
Synchronous Data Link Control83 Syntax 383 Syntax von APIs 31 Systemdurchsatz456, 700 Systemstabilisierung189 Systemuhr 398,427
T TlR3-Leitungen 70 Tl-Leitung 377 Tags 537 Tail-Drop 458,48 1 Taktadösung 667 Takteinstellungen 670 Taktwiederherstellung 77, 85 Taktzyklusgrenze 77 tak-Programm 373 Taschenrechner 588 TAXI 204 Taxonomie 399,452,535,579 TCP 28,236,239,323,374,378,381,385, 393, 395,429,450,459,460,465,468, 472,475; 512,560, 562, 609, 635, 643, 647,662 TCP Vegas 484 TCPAP 594 TCP/IP-Protokoll-Stack465 TCP-Default-Port 610 TCP-Erweiterungen 397,398 TCP-Header 397 TCP-Spezifikation381,393 TCP-Timeouts 472 TCP-Überlastfenster 486 TCP-Überlastkontrolle 465,513 Teilweise Bestätigung 405 Telearbeit 621 Teledesic 74 Telefaxe 548 Telefongesellschaften510 Telefon-Switche 193 Telefonverhalten 212 Telnet 28,398,490,606 Telnet-Proxies 620 Temporegelung465 TFTP 28 Thicknet 112 Thinnet 112 Thrashing 456 Thread 37 THT 122 Tiefpassfilter 479,482
Tirned-Token-Algorithmus 127 Timeout 97,383,393,395, 397, 398,413, 465,488,656,657 Timeout-Mechanismus 376 Timer 376,381,405,413 Timer, Periodischer 281 Timesharing-Computer 11 TLS 603,609 Token-Bucket 510 Token-Bucket-Filter 497 Token-Freigabe 124 Token-Haltezeit 122 Token-Istumlaufzeit 128 Token-Ring 206,449 Token-RingNetze 119 Token-Sollurnlaufzeit 127 Token-Umlaufzeit 122 Tolerante Echtzeitanwendungen 493 Topologie 686 Topologie, logische 191 Topologieänderung 273,285,460,502 Topologische Instanzen 327 TOS 238,288,459,460,464,506 Tote Stationen 125 Traditionelle Datenanwendungen 490 Traffic-Engineering 344 Trägersignal 131 Trailer 24 Transaktionsbezeichner422 Transceiver 111 Transfergröße 48 Transferprotokolle 644 Transferzeit 48 Transit-AS 309 Transitverkehr 309 Transkontinentales Netzwerk 42 Transmission Control Protocol (TCP) 4,28, 374 Transparente Firewall620 Transparenz 191 Transport Layer 27 Transport Layer Security 603,609 Transportähnliche Dienste 400 Transportprotokolle372,399,402 Transportprotokoll, ratenbasiertes 454 Transportschicht 27,660 Transportschicht, sichere 610 Treibersobare 136 Triangle-Routing-Problem 296 TRT 122,128 * TSpec 497,499,501
I
Tn 183,238,282,287,376,638 lTRT 127 Tunnel 345,615,681 Tunnel-Header 345 Tunneling 268,335 Twisted-Pair 112,127 Twisted-Pair Kat-5 69 Tyrnnet 26 Typische ffbergänge 383 Typ-Tag 538
U Oberbuchung von Ressomen 453 Obereinstimmungsalgorithmus340 überfluten des Empfängers 375 Uberland-RTT 396 überlast 395 überlastbenackichtigung 476 Oberlastbit 475 Oberlasteter Switch 197 Oberlasdenster 465 Oberlasthinweis 666 Überlastkollaps 456,465 Überlastkontrolle 197,375,448 ffberlastkontrolle, gleichungsbasierte 513 überlastkontrollmechankmus5 14 Oberlastsituationen 177 Überlastvermeid~n~ 475,483,487,513,663 Überlauf 389 Obertragung, garantierte 404 Übertragung, zuverlässige geordnete 374 Obertragungseinheit, maximale 240 Obertragungsfehler 81 ubertragungsrate 5 14 Obertragungszeit 47 UBR 510 UDP 28,236,239,262,323,397,424,429, 514,562,643,658,660,664 UDP-Header 372 UDP-Längenfeld 373 UDP-Nachrichtenwarteschiange373 UDP-Portnummer 617,666 UDP-Prüfsumme 373 UDP-Tunnel684 Umkehrpermutation 583 Umkehrung von Labeln 338 Umschlag 649 Uneingeschränkte Reichweite 205 Ungenutzter Route 475 Unicast 10, 189 Unicast-Adressen 115
Unicast-Adressiemmg 321 Unicast-Datedüsse 500 Unicast-Pakete 209 UniCast-Routuig 336 Unicast-Verfahren 262 Uniform Resource Locator (URL)4,652 unk 549 Unk-Dateinamen 635 Unk-Sockets 31 Unk-Utilities 33 UMMrshaIling 534 Unspeded Bit Rate 510 Unterauslastung 450 Unternehmenseigene Netzwerke 7 Untemehmensnetze, private 3 19 Unternehmensstandorte203 Unterteilung in Subnetze 301 Unzuverlässige Protokolle 399 Unzuverlässiger Datagramm-Kanal28 Unzuverlässiger Dienst 237 Upcall38 Upstream-Rate 74 Upstream-Router 461 URL 619,635,652 Ursprungsanwendung 25 User Datagram Protocol (UDP)28,372 US-Verteidigungsministerium 28,636
V Vakuum 67 Vanilla-Queuing-Implementiemg 458 Variabilität 492 Variable Bit Rate 510 Variable Paketlänge 194 vat 494,495,500,660 VAX 543 VBR-nrt 510 VBR-rt 510 VC 170,260 VCI 170,197,203,214 VC-Tabelleneinträge 172 VD 512 VDSL 72 Verarbeitungsressourcen 240,548,612 Verbindungen, direkte 7 Verbindungen, persistente 655 Verbindungen auf-/abbauen 380 Verbindungsanhage 175 Verbindungsaufbaunachricht450 Verbindungsleitung 7, 11,66 Verbindungslos 167,450
VerbindungsloseNetzwerke 169 Verbindungsorientiert 167,450 Verbindungsparameter 400 Verborgene Knoten 132 Verbundene Ethernet-Netze 234 Verfälschung von Zellen 201 Vergleichsregeln 615 Verhältnis BandbreitetLatenz 47 Verifier 423 Verkabelungsaufwand 77 Verkehrsklassen 464 Verkehrslasten 213 Verkehrsmix 481 Verkehrsmodelle 212 Verkehrsquellen 449 Verkettung 86 Verknöcherung irn Internet 682 Verlorene Fragmente 407 Verlustbehaftete Kompression 547 Verlustlose Kompression 546 Vermittelte virtuelle Leitung 171 Vermitteltes Netzwerk 8, 166 Vermittlungsschicht26,167 Verschachtelung 541 Verschlüsselung 578 Verschlüsselungsoperation 588 Versions-ID 665 Verteilsystem 133 Verteilte Algorithmen 269,271 Verteilte Dateisysteme 404 Vertrauenskette 601 Verwaiste Frames 124 Verwaltungsaufwand 657 Verwaltungsfunktionen 197 ~envaltun~skosten 268 Verwerfungswahrscheinlichkeit 479 Verzahnung 86 Verzerrungseffekte 565 Verzögerte Freigabe 124 Verzögerung 40,455 Verzögerung, garantierte 202 Verzögerung-Bandbreite-Pipelines 399 Verzögerung-Bandbreite-Produkt 44,99,376,390,472 VerzögerungsadaptiveAnwendungen 494 Verzögerungsbits 121 Verzögerungsgre~lze497 vic 5,500,660 Video 4,454,497,547,676 Videoanwendung 197,399,489 Video-Boards 559
Videoclips 653 Video-Durchsatzrate 48 Video-Frames 556 Videokodierungsaigorithmen494 Videokompression 565 Videokonferenz 4,547,659,661 Videokonferenz-Anwendung563 Video-on-Demand 4,557,559 Videoqualität 50 Videostrom 457 Virtual Circuit 170 Virtualisierung 690 Virtuelle ATM-Leitung 512 Virtuelle Leitung 167,170,265 Virtuelle Leitungsvermittlung 174 Virtuelle private Netzwerke (VPN) 177,265,345 Virtuelle Quelle 512 Virtueller Leitungsbezeichner 170 V i e l l e r Pfad 203 Virtuelles L A . 190 Virtuelles Ziel 512 VL 265 VLAN 190 VLSI-Speicherbausteine 592 Vollduplexbetrieb 69 Vollduplexprotokoll374,399 Vorübergehende Adresse 295 Vorwärtskodierung 558 Vorzeichen 540 VPI 196,197,203 VPN 265,345,681 VS 512
-Warteschlange, leere 194 Warteschlangenausgang 194 Warteschlangendisziplin 499 Warteschlangen-Management 464,504 Warteschlangen-Selektor 509 Wartung, Token 129 Wartung, Token-Ring 124 Wartungsaufgaben 85 Webbrowser 613,647,651 Webserver 29,620 Web-Transaktionen 612 Weighted Fair Queuing 463 Weighted RED 507,508 Weisungsnachrichten 453 Weiterleitung 167,249,268 Weiterleitungsalgorithmus 251, 302, 337, s 340
Index
1
1 t
a
Weiterleitungstabelle 168,269 Weitverkehrsnetze 249 Wellenlänge 68 WFQ 463,496,499,504,507 WFQ-Scheduler 509 Whiteboard-Anwendung 5 Wiedergabepuffer 491,662 Wiedergabepunkt 491 Wiedergabezeit 490 Wiederholungscode 91 Wildcards 333,618 Window-Advertisement 454 Withdrawn-Route 312 Wohlbekannte Sequenznummer 381 Wohlbekannter Port 373 Work-conserving 463 Working-Nachricht 424 Workstation 210 Workstation-Architektur 66 Worid Wide Web (WWW) 3 Worst-Case-Szenario 116 Wörterbuchbasierte Methoden 549 Wörterbuchindex 549 Wortgrenzen 409,536 Wraparound 389 WRED 508 write 653 Wurzel-Bridge 186 Wuml-CA 601 Wurzelkennung 188 WWW H'TTF' 651 Sicherheit 609 Traditionelle Anwendungen 643 Verkehrsmuster 213
X X.25 175,177,198,377,450,454 X.500 640 X.509 602 XDR 539 xDSL 72 Xerox 236 Xerox Pa10 Alto Research Center 110 XID 423,425 -XML 544 XOR-Gatter 96
z Zahlentheorie 580 Zeichen 535 Zeichemätze 80 Zeich~opf+n in Zeigen und K l i e n 653 Zeiget 536 Zeiger zum sa#.puäclr 386 Zeitkonstante des Filters 479 Zeitkontrolle 662 Zeitkritisch0 Daten 546 Zeitliche Schwankung 194 Zeitmdtiplexen, Synchrones 11 Zeitschlitz 116 Zeitsperre 97 Zeitstempel289, 398,462,463, 595, 662, 667,669 Zeitstrahl97,381 Zeitstrahl für BLAST 405 ZeiW für DCE-RPC 424 Zeitstrahl für RPC 401 Zeitvorgaben 668 Z e h 192 Zellenformat am UNI 196 Zellenformat, AAL314 200 Zellenverlust 197,200 Zellenvermittlung 192 Zentrale Datenbasis 261 Zero-Or-More-Semantik 410 Zedikate, Digitale 600 Zertifkierungshierarchie 604 Zertifizierungsstelle 600 Zickzackmuster 554 Zieladresse 504 Zielbasierte Weiterleitung 337 Zielbitrate 565 Ziel-Port 504 Zimmerman, Phi1 604 Zonen 636 Zufallsausgaben 589 Zuf~üssel599 Zugangskontrollalgorithmus 498 Zugmgskontroile 496,499 Zugangskontrollentscheidungen505 Zugangspunkt, Abstrakter 372 Zugdsregelung 197 Zusammengesetzte Datentypen 541 ZusammenhängendeAdressen 304 Zusätzliche Hierarchie 286 Zusätzliche Multiplexschicht 202 Zustandsinformationen 451,657
,
Zustandslose Autokonfiguration 325 Zustandsübergangsdiagtamm382 Zuteilung des Adressraums 3 18 Zuverlässige geordnete übertragung 374 Zuverlässige Protokolle 399 Zuverlässiger Byte-Stromkanal28 Zuverlässiges Datagramm-Protokoll414 Zuverlässiges Fluten 280 Zweidimensionale Parität 88, 89
Zweier-Komplement-Notation540 Zwei-HopPfad 647 Zwischenknoten 612,647 Zwischenspeicherung 215,495 Zyklenfreier Baum 186 Zyklische Redundanzprüfung 92 Zyklischer Graph 185 Zykiischer Nummemumlauf 103
I I1111111I IIIIIIIIIIIII11111 5
X.
d
hrry L Peterson Bruce 5. Davie
Cornputernetze In dieser sorgfältig überarbeiteten Neuauflage des Standardlehrbuchs vermitteln die Autoren eine aktuelle, systemorientierte Sicht auf Computernetze. Schwerpunkt der nach pädagogischen Gesichtspunktenstrukturierten Darstellungsind 18-basierte Netze. Die Autoren konzentrieren sich dabei auf das Warum beim Entwurf von Netzwerken und fördern ein praktischesVerständnis von Netzen und deren Kamponenten, indem sie zeigen, wie Schlüsseltechnologien und Protokolle in der Praxis eingesetzt werden, um bestimmte Probleme zu lösen. Wichtig ist ihnen, die grundlegenden Designprinzipien zu vermitteln und das Endezu-Ende-Verhaltenvon Netzwerkentransparent zu machen. Mit Code-Beispielenwird gezeigt, wie Protokolle und Algorithmen tatsächlich implementiert werden. Neue oder vertiefte Themen in di$ser Auflage sind MPLS,Switching und drahtlose Tecbnologien, Peer-to-Peer-SVerlay-und Inhaltsverteilungsnetzwerke, Optische Netze, VPNs, SSH sowie Multimedia-Kommunikation und IP-Telefonie (SIP, SDP).
»This third edition represents another major upgrade ...But it has not lost track of i t s larger goal, to tell you not only the fads but the why behind the facts ... Whatrhis book will teach you in today's networked world will give the insight needed to work in tomorrow's landscape.~ Aus dem Vorwort von David Clark, MIT
Thema Computrnetze InterMt
I
Die Autoren bringen insgesamt über 30 Jahre Erhhrung in der Forschung, Entwicklung und Ausbildung lm5ereich Netzwerkeein. Ihr ausgeprägt pädagogischer Ansatz umfasst . zahlreiche Übungen, die in dieser Ausgabe noch erweitert wurden. Außerdem wurden die Lösungen zu ausgewiihlten Aufgaben in das Buch aufgenommen. Dieses Buch wurde für Studenten des Crundstudiums und der ersten Semester des Wauptstudiums konzipiert. Es ist aber auch für Fachleute in der Praxis relevant, die an dem Hintergrund der Protokolle, mit denen sie täglich arbeiten, und an einem aktuellen Gesamtbild über Netzwerke interessiert sind.
Leser Studenten der Informatik iurd Ingeniaurwissen-
Schah WbweMxhMe
-'I€ 45,00 (D) 46,30 (A)
'1'1 7'iiii.1-,
lh8g864-q.2-9