III Netzwerkprobleme
9. Grundlagen IP-Netzwerke
Ein paar Grundlagen benötige ich immer wieder, wenn ich die Vorgänge in einem IP-Netzwerk verstehen will.
Insbesondere halte ich bei der Fehlersuche die Kenntnis folgender Themen für wichtig:
- Das OSI-Referenzmodell, mit dessen Hilfe ich die Position eines Protokolls im Protokoll-Stack bestimmen und seine Bedeutung einschätzen kann.
- ARP, weil es die Lücke schließt zwischen dem Internet-Protokoll und der Netzzugangsschicht, wie zum Beispiel Ethernet.
- Die Bestimmung von IPv4-Netzmasken.
- Die Zustände von TCP-Verbindungen.
- Zwei wesentliche Algorithmen bei Routing-Protokollen: Distanz-Vektor und Link-State.
Auf diese Themen gehe ich in den folgenden Abschnitten ein, damit wir sie im positiven Sinne vergessen können.
10. Totalausfall des Netzwerks
Habe ich an einem Rechner überhaupt keine Verbindung zum Netz, oder kann ich ein ganzes Netzsegment nicht erreichen, spreche ich von einem Totalausfall.
Dabei unterscheide ich zwei Arten, je nachdem, von wo ich das Problem betrachte. Untersuche ich es von einem Rechner, der überhaupt keine Verbindung hat, dann sehe ich das Problem von innen, weil ich versuche, mit dem Rechner innerhalb eines Segments eine Verbindung zu bekommen. Kann ich ein ganzes Netzsegment nicht mehr erreichen, dann betrachte ich das Problem von außen, da ich mich in einem anderen Segment befinde und andere Rechner erreichen kann, nur dieses Netzsegment und die Rechner darin nicht.
Bei der Betrachtung von innen, überprüfe ich die Schichten des OSI-Modells von unten nach oben. Das heißt, ich fange bei der Kabelverbindung zum Switch an und arbeite mich zur IP-Konfiguration hoch, bis ich Kontakt zu mindestens einem anderen Rechner bekomme.
Bei der Betrachtung von außen muss ich die Topologie des Netzwerks kennen. Dann überprüfe ich den Weg zum nicht erreichbaren Segment und kontrolliere auf dem letzten erreichbaren Gateway dorthin die physikalische Verbindung und die Routen. Auf diese Weise arbeite ich mich bis zum ausgefallenen Netzsegment vor.
11. Partieller Ausfall des Netzes
Ich spreche von einem Teilausfall im Netz, wenn wenigstens die Grundfunktionen bis OSI-Schicht 4 funktionieren und ich alle Netzsegmente erreichen kann. In diesem Fall kann ich das Netz selbst zur Fehlersuche einsetzen und brauche mir nicht die Schuhsohlen ablaufen, um vor Ort nach dem Rechten zu sehen oder via Telefon zu debuggen.
Was also kennzeichnet einen Teilausfall im Netz?
Da ist zunächst der Ausfall essentieller Dienste im Netz, wie DHCP, DNS, NTP, Kerberos und weiterer. Der Ausfall einiger dieser Dienste kann Auswirkungen haben, die die Kunden als Totalausfall wahrnehmen. Das muss ich bereits bei der Aufnahme des Problems berücksichtigen. Für den Kunden macht es keinen Unterschied, ob er das Netz nicht nutzen kann, weil ein Kabel unterbrochen ist, oder weil sein Rechner keine IP-Adresse zugewiesen bekam. Für mich, der ich den Fehler beseitigen will, ist der Unterschied durchaus von Belang.
Weiterhin betrachte ich als Teilausfall, wenn ich einzelne Rechner oder einzelne Dienste auf bestimmten Rechnern nicht erreichen kann. Im Laufe der Untersuchung wird daraus vielleicht ein Total- oder Teilausfall des Rechners; dann behandle ich das, wie in Teil 2 dieses Buches beschrieben.
Als drittes zähle ich partielle Einschränkungen von funktionierenden Diensten dazu. Darunter verstehe ich zum Beispiel Mengenbeschränkungen beim Upload auf Webserver oder beim Versand von E-Mail, Zugriffsbeschränkungen für einzelne Netzsegmente und ähnliches. Diese lassen sich in vielen Fällen auf die Konfiguration des betreffenden Dienstes zurückführen.
Schließlich besteht die Möglichkeit, dass ein Dienst absichtlich gestört wird. Angriffe von Dritten und deren Abwehr sind jedoch nicht Thema dieses Buches und werden höchstens am Rande behandelt.
Bei der Behebung des Teilausfalls lasse ich mich wieder vom grundlegenden Entscheidungsbaum leiten. Das heißt, ich versuche zuerst festzustellen, ob überhaupt etwas funktioniert, also ob ich den Server, auf dem der Dienst läuft, erreichen kann. Eventuell muss ich hier noch einen Schritt zurück und sehen, ob ich andere Rechner im gleichen Netzsegment erreichen kann. Kann ich den Server erreichen, untersuche ich, ob alles funktioniert. Bekomme ich Kontakt zum Dienst, antwortet er korrekt laut Protokoll? Schließlich untersuche ich, ob der Dienst schnell genug antwortet.
12. Netzwerkperformance
Manchmal scheint alles in Ordnung zu sein und trotzdem sind die Kunden nicht zufrieden. Performance ist ein heikles Thema, weil jeder seine eigene Vorstellung davon hat, was ausreichende Performance ist. So heikel, dass mancher sein Heil in immer “dickeren” Leitungen mit immer höherer Datenübertragungsrate sucht, um sich nicht näher mit dem eigentlichen Problem beschäftigen zu müssen.
Was die Sache so schwierig macht, ist, dass ein Performance Problem sehr viele Aspekte haben kann.
Da gibt es mitunter eine Diskrepanz zwischen wahrgenommener Performance und realer Performance. Ein Kunde ruft an, weil “sein E-Mail-Programm nicht funktioniert”. Er schreibt die E-Mail, drückt auf Senden und dann friert das Programm ein. Bei genauer Betrachtung stellt sich heraus, dass da ein Anhang von mehreren MB an der E-Mail hängt und die Leitung beim Upload nur eine maximale Datenübertragungsrate von ein paar hundert kBit/s hat. Ein kurzes Nachrechnen von verfügbarer Datenübertragungsrate und zu sendenden Daten ergibt bereits eine Dauer von mehreren Minuten bei alleiniger Nutzung der Leitung durch diesen Upload.
Aber auch reale Performance-Probleme können vielfältige Ursachen haben, die es einzugrenzen gilt. Oft genug sind diese Probleme intermittierend, dass heißt, in einem Moment da und im nächsten weg. Darum ist die Fehlersuche bei Problemen mit der Performance fast immer mit dem Sammeln von Daten verbunden.
Wenn ich ein Performance-Problem untersuche, beginne ich zunächst die Charakteristiken des Problems so genau wie möglich zu bestimmen.
Dann versuche ich das Problem grob zu klassifizieren:
- Ist es ein normales Problem, weil zu viele Daten gesendet werden sollen?
- Ist es vielleicht ein DNS-Problem mit Verzögerung am Anfang?
- Gibt es Probleme mit dem Durchsatz bei längeren Downloads?
- Liegt das Problem eher an der Latenz bei interaktiven Programmen?
Auch die Art des verwendeten Protokolls kann Hinweise auf mögliche Probleme geben. So gehen bei datagrammorientierten Protokollen wie UDP Daten einfach verloren, während bei datenflussorientierten Protokollen wie TCP Zeit verloren geht, während das Protokoll die Daten nochmals sendet.
Bei der Klassifizierung hilft es mir, wenn ich bereits bei der Aufnahme des Problems nach Anzeichen für mögliche Ursachen Ausschau halte, um in der betreffenden Richtung detaillierter nachzufragen.
13. Werkzeuge zur Fehlersuche im Netzwerk
Verschiedene Werkzeuge eignen sich zur Fehlersuche im Netz. Einige verwende ich immer wieder bei den unterschiedlichsten Problemen, andere sind spezialisiert auf bestimmte Fragestellungen.
Hier stelle ich diejenigen, die ich am häufigsten einsetze, in alphabetischer Reihenfolge vor.
14. Literatur
Bücher
Csikszentmihalyi2014
Csikszentmihalyi, Mihaly; FLOW und Kreativität;
Klett-Cotta Verlag, Stuttgart 2014
ISBN: 978-3-608-94882-6
Bereits 1975 beschrieb M. Csikszentmihalyi das Konzept des Flow, das bei einigen Menschen auftritt, die offensichtlich Freude an bestimmten Tätigkeiten haben. In diesem Buch fasst er dieses Konzept mit Erkenntnissen aus Interviews kreativer Menschen und Hinweisen zur Förderung der persönlichen Kreativität zusammen.
CT2000
Christiansen, Tom and Torkington, Nathan;
Perl Kochbuch; O’Reilly, Köln, 2000;
ISBN: 3-89721-140-8
Neben dem Kamel-Buch ist dieses für mich das wichtigste Buch bei der Arbeit mit Perl. Der Vorteil dieses Buches ist die Darbietung als anwendungsbereite Rezepte, so dass ich mich auf das zu lösende Problem konzentrieren kann und nicht auf die subtilen Feinheiten der Programmiersprache umschalten muss.
Edwards2012
Edwards, Betty;
Das neue GARANTIERT ZEICHNEN LERNEN: Die Befreiung unserer schöpferischen
Gestaltungskräfte; Rowohlt, Reinbek bei Hamburg, 2012;
ISBN: 978-3-498-01669-2
Dieses Buch hat vordergründig nichts mit Fehlersuche zu tun. Betty Edwards gibt in diesem Buch einige Tipps zum Umschalten der verschiedenen Gehirn-Modi, konkret zwischen dem logisch-analytischen und dem bildlich-intuitiven Denken. Für die erfolgreiche Fehlersuche insbesondere bei schwierigen Problemen ist es vorteilhaft mit beiden Modi souverän umzugehen. Das zu lernen, kann dieses Buch helfen.
Foessmeier1991
Fößmeier, Reinhard;
Die Schnittstellen von UNIX-Programmen: Tips zur Programm-Organisation unter
UNIX; Springer, Berlin Heidelberg New York London Paris Tokyo Hong Kong
Barcelona, 1991;
ISBN: 3-540-53521-7
Eigentlich eher für Programmierer, die Software für UNIX schreiben, gedacht, war dieses Buch eine Offenbarung für mich um zu verstehen, wie Programme unter UNIX und Linux kommunizieren.
Kahneman2011
Kahneman, Daniel;
Thinking, fast and slow;
Anchor Canada, 2013;
ISBN: 978-0-385-67653-3
Noch ein Buch, das sich mit den Gegebenheiten und Wechselwirkungen der verschiedenen Gehirn-Modi befasst. Nicht direkt zum Thema Fehlersuche, aber sehr erhellend darüber, warum und wie man sich immer wieder selbst an der Nase herumführt.
Loukides1996
Loukides, Mike Kosta;
System Performance Tuning;
O’Reilly, Sebastopol, 1996;
ISBN 0-937175-60-9
Dieses Buch führt grundlegend in das Gebiet des Performance-Tuning von UNIX-Systemen ein. 2002 gab es eine zweite Auflage mit Gian-Paolo D. Musumeci als Koautor.
Malhotra2002
Malhotra, Ravi; IP Routing O’Reilly, Sebastopol, 2002 ISBN: 0-596-00275-0
Dieses Buch führt in die Grundlagen und Feinheiten des IP Routing ein, wie es in Cisco-Routern implementiert ist. Da es sich nicht auf die Konfiguration beschränkt, sondern auch die Mechanismen und die gesendeten Datagramme erläutert, ist es insbesondere zur Analyse von Routingprotokollen eine große Hilfe. Mit der Routingsoftware Quagga lassen sich die Konfigurationsbeispiele auch unter Linux nachvollziehen, da sich deren Benutzerschnittstelle stark an IOS von Cisco orientiert.
Polya2010
Pólya, George; Schule des Denkens: Vom Lösen mathematischer Probleme; Narr Francke Attempto Verlag, 2010; ISBN 978-3-7720-0608-1
Dieses Buch ist schon sehr alt, das merkt man beim Lesen am heute teilweise unüblichen Sprachgebrauch. Außerdem geht es um das Lösen mathematischer Probleme. Wer sich davon nicht abschrecken läßt, kann daraus wunderbare Inspirationen für das Lösen von Problemen ziehen. Pólya geht von vier Phasen der Problemlösung aus, die er in seinem Buch dann ausführlich erläutert. Die vier Phasen sind: 1. verstehe die Aufgabe, 2. mache einen Plan, 3. führe den Plan aus, 4. prüfe die erhaltene Lösung.
Roam2009
Roam, Dan;
Auf der Serviette erklärt, Mit ein paar Strichen schnell überzeugen statt
lange präsentieren;
Redline Verlag, 2009;
ISBN 978-3-86881-016-5
Der Autor beschreibt in diesem Buch, wie man mit wenig Aufwand Probleme visualisieren kann und damit seine eigenen Gedanken besser ordnen sowie das Problem anderen verständlich erklären kann. Obwohl das Buch, laut Klappentext, Hilfe für das Visualisieren von Geschäftsideen geben soll, sind die Prinzipien und Ideen bei der Fehlersuche mindestens ebenso hilfreich.
Sloan2001
Sloan, Joseph D.;
Network troubleshooting tools;
O’Reilly, Sebastopol, 2001;
ISBN 978-0-596-00186-5
Dieses Buch stellt etliche Werkzeuge für die Fehlersuche vor und zeigt wie man mit relativ einfachen Werkzeugen komplexe Fragen beantworten kann.
Taleb2012
Taleb, Nassim Nicholas; Antifragile, Things that Gain from Disorder Penguin, London, 2012; ISBN 978-0-141-03822-3
In diesem Buch geht es nicht um Fehlersuche, sondern um Systeme, die durch Störungen stärker werden. Es ist nicht für den Anfänger, der so schnell wie möglich einen Fehler beseitigen will, obwohl auch dieser davon profitieren könnte. Vielmehr geht es darum unter welchen Umständen Systeme von kleinen Störungen profitieren können und wie man den Zufall zu einem Verbündeten statt zu einem Gegner machen kann.
WCS1997
Larry Wall, Tom Christiansen and Randal L. Schwartz;
Programmieren mit Perl;
O’Reilly, Köln 1997;
ISBN 3-930673-48-7
Die Einführung in die Programmiersprache Perl. In dem Buch wird nicht nur die Sprache selbst kurzweilig vorgestellt, sondern auch ein Einblick in Hintergründe und die mit dieser Programmiersprache verbundene Kultur gegeben. Die zweite deutsche Auflage führt Jon Orwant statt Randal Schwartz als Autoren auf.
Weidner2012
Weidner, Mathias; Linux kopflos mit PC Engines ALIX;
Lulu Press, Raleigh, 2012;
ISBN 978-1-4717-2849-5
Ein Buch über kleine lüfterlose Rechner, auf denen man mit Linux verschiedene Projekte realisieren kann. Das Buch geht unter anderem auf verschiedene Probleme unter dem Aspekt begrenzter Ressourcen ein und beschreibt einige Protokolle und Mechanismen ausführlicher.
Artikel in Zeitschriften, Proceedings, …
acmqCM2010
Millsap, Cary; Thinking Clearly about Performance;
ACM Queue, Volume 8 Issue 9, September 2010,
http://queue.acm.org/detail.cfm?id=1854041
Der Autor geht in diesem Artikel auf die praktische Performanceanalyse von Programmen ein und erläutert den Zusammenhang von Antwortzeit, Durchsatz sowie den Einfluss der Auslastung bei der Nutzung paralleler Ressourcen.
acmqFM2005
Fall, Kevin, McCanne, Steve; You Don’t Know Jack About Network Performance;
ACM Queue, Volume 3 Issue 4, May 2005, Pages 54-59
http://queue.acm.org/detail.cfm?id=1066069
Die Autoren gehen in diesem Artikel vor allem auf die Performance von TCP ein, insbesondere auf den Einfluss von Bandbreite, Latenz und Window Size auf die Übertragungsgeschwindigkeit.
Bartsch2013
Bartsch, Michael; Service Level Agreements - rechtliche Aspekte;
Informatik-Spektrum, Volume 36, Ausgabe 5, Oktober 2013, S. 449ff;
DOI 10.1007/s00287-013-0712-1
In diesem Beitrag für Nichtjuristen geht der Autor in verständlicher Form auf die rechtlichen Aspekte von Service Level Agreements als Bestandteil von IT-Verträgen ein.
Bonwick1994
Bonwick, Jeff; The slab allocator: an object-caching kernel memory allocator; Proceedings of the USENIX Summer 1994 Technical Conference on USENIX Summer 1994 Technical Conference - Volume 1, S. 6
In diesem Artikel stellte der Autor ein effizientes Verfahren zur Speicherverwaltung für SunOS vor. Das Verfahren, Slab Allocator, gelangte 1999 in den Linux-Kernel.
ctDiedrich2012
Diedrich, Dr. Oliver; Zugriffschutz - Dateiüberwachung mit Fanotify; c’t Magazin für Computertechnik 2012 Heft 9, S. 174ff; ISSN 0724-8679
Der Autor stellt in diesem Artikel die Möglichkeiten der Fanotify Systemschnittstelle vor.
ctZivadinovic2012
Dušan Zivadinović; Blindflug mit Full Speed - Wie die TCP/IP-Flusskontrolle funktioniert; c’t Magazin für Computertechnik 2012 Heft 10, S. 188ff; ISSN 0724-8679
Der Autor erläutert in diesem Artikel leicht verständlich, wie die in TCP enthaltene Flusskontrolle dazu beiträgt, die Datenübertragungsrate einer Verbindung möglichst optimal auszunutzen.
ctHM2013
Hillier, Gernot, Mauerer, Dr. Wolfgang; Linux durchleuchtet - Perf als Universalschnittstelle für Performance-Analysen unter Linux; c’t Magazin für Computertechnik 2013, Heft 3, S. 166ff; ISSN 0724-8679
Dieser Artikel geht auf die Möglichkeiten der Performance-Analyse mit Hilfe
der Performance-Counter der CPU ein und stellt das Programm perf vor, dass
eine einheitliche Schnittstelle dafür unter Linux bereitstellt.
ctTZ2013a
Michael Tremer, Dušan Zivadinović; Kürzungsmaßnahme - Internet-Tuning: Puffercontrolle mit CoDel; c’t Magazin für Computertechnik 2013, Heft 13, S. 184ff; ISSN 0724-8679
In diesem Artikel erläutern die Autoren die Wirkungsweise des CoDel-Verfahrens zum Router-Queue-Management bei Bufferbloat.
ctTZ2013b
Michael Tremer, Dušan Zivadinović; Paketbeschleuniger - Internet-Tuning mit IPFire und CoDel; c’t Magazin für Computertechnik 2013, Heft 13, S. 188f; ISSN 0724-8679
Dieser Praxis-Artikel zeigt, wie man mit der Firewall-Appliance IPFire erste Erfahrungen mit dem CoDel-Verfahren zum Router-Queue-Management bei Bufferbloat machen kann.
Gregg2013
Gregg, Brendan; Thinking Methodically about Performance; CACM Vol. 56, No. 2, February 2013, pp 45 ff.; ISSN 0001-0782
Koenig2012
König, Harald; strace für Linux-Versteher; UpTimes - Mitgliederzeitschrift der German Unix User Group; Ausgabe 2012/1, S. 61ff
Harald König zeigt in seinem Artikel welche Informationen über ein Linux-Programm er mit strace gewinnen kann.
Shepard1991
Shepard, Timothy Jason; TCP Packet Trace Analysis; MIT/LCS/TR-494
Die Masterarbeit von Tim Shepard geht ausführlich auf die Analyse des
Verhaltens von TCP-Verbindungen ein.
Er zeigt darin die Vorzüge von Sequenz-Zeit-Diagrammen für die Analyse und
stellt das Programm xplot vor, welches die interaktive Analyse dieser
Diagramme erleichtert.
WSA2011
Weigend, Johannes and Siedersleben, Johannes and Adersberger, Josef;
Dynamische Analyse mit dem Software-EKG; Informatik-Spektrum, Volume 34,
Ausgabe 5, Oktober 2011, S. 484ff;
DOI 10.1007/s00287-011-0541-z
In diesem Papier zeigen die Autoren, wie man komplexe heterogene Systeme analysieren kann, wenn man mit einfachen Methoden nicht weiter kommt.
Online-Quellen
AppArmor
Die Seiten des AppArmor-Projekts.
http://apparmor.net/
Aufgerufen: 2014-05-21
Bei der Dokumentation finden sich Handbuchseiten, HowTos, Tutorials und eine Anleitung, wie man bestimmt, ob AppArmor ein Problem verursacht.
Bad block HOWTO for smartmontools
This article describes what actions might be taken when smartmontools detects
a bad block on a disk.
http://smartmontools.sourceforge.net/badblockhowto.html
Aufgerufen: 2014-06-02
Der Artikel erläutert, wie man eine Festplatte “reparieren” kann, für die die smartmontools fehlerhafte Blöcke gemeldet haben. Obwohl von 2007, ist der Artikel immer noch brauchbar, wenn man gezwungen ist, eine Festplatte mit fehlerhaften Blöcken weiter zu betreiben.
Bullet Journal
For the list-makers, the note-takers, the Post-It note pilots, the
track-keepers, and the dabbling doodlers.
http://bulletjournal.com/
Aufgerufen: 2014-05-04
Ich hatte schon jahrelang Laborbücher in A5-Kladden geführt. Mit diesem System habe ich es auf eine höhere Stufe gehoben.
IETF Tools
IETF-related tools, standalone or hosted on tools.ietf.org
http://tools.ietf.org/
Aufgerufen: 2014-05-03
Die Quelle für RFCs und Internet Standards von der Internet Engineering Task Force.
Leanpub
Leanpub - Publish Early, Publish Often
https://leanpub.com/
Aufgerufen: 2014-05-03
Autoren und Herausgeben können Leanpub nutzen, um fertige Bücher und Bücher in Bearbeitung zu veröffentlichen. Dieses Buch selbst ist bei und mit Leanpub entstanden.
Performance Analysis Methodology
Verschiedene Methoden zur Performanceanalyse
http://www.brendangregg.com/methodology.html
Aufgerufen: 2014-08-24
Brendan Gregg stellt hier verschiedene Methoden und Anti-Methoden für die Performanceanalyse vor. Neben diesen finden sich auf seiner Website ausführliche Vorstellungen einiger Visualisierungstechniken nebst ihrer Anwendung bei der Performanceanalyse. Für die Performanceanalyse von Linuxsystemen sind vor allem die Grundlagenartikel unter Linux Perf sowie die Checkliste für die USE-Methode bei Linux hilfreich.
Perf Wiki
Perf Wiki
https://perf.wiki.kernel.org/
Aufgerufen: 2014-05-22
In diesem Wiki finden sich viele nützliche Informationen für die
Performanceanalyse mittels CPU Performance Counter und perf.
POSIX.1-2008
IEEE and The Open Group; The Open Group Technical Standard Base
Specifications, Issue 7;
POSIX.1-2008 / IEEE Std. 1003.1™-2008
http://pubs.opengroup.org/onlinepubs/9699919799/
Aufgerufen: 2013-11-29
POSIX.1-2008 definiert eine Standardschnittstelle und -umgebung für Betriebssysteme, einschließlich eines Befehlsinterpreters (Shell) und allgemeiner Hilfsprogramme um die Portabilität von Anwendungen auf der Ebene des Quellcodes zu unterstützen.
POSIX.FileCap
Chris Friedhoff;
POSIX Capabilities & File POSIX Capabilities
http://www.friedhoff.org/posixfilecaps.html
Aufgerufen: 2013-12-20
Dieser Artikel, 2008 geschrieben, führt mit praktischen Beispielen in den Umgang mit POSIX Capabilities ein.
SELinux
Die Projektseite des SELinux-Projektes.
http://selinuxproject.org/
Aufgerufen: 2014-05-21
Von grundlegenden Konzepten bis anwendbaren Rezepten findet sich hier eine Menge Information zu SELinux
Wayback Machine
Internet Archive Wayback Machine
https://archive.org/web/
Aufgerufen: 2014-05-04
Eine der besten Erfindungen gegen die Flüchtigkeit des Internet. Mit der Wayback Machine lassen sich ältere Versionen von bestehenden und bereits vergangenen WWW-Seiten betrachten. Natürlich sind nicht alle Seiten und erst recht nicht alle Versionen der einzelnen Seiten enthalten. Trotzdem ist es den Versuch wert, wenn eine irgendwo beworbene URL nicht mehr erreichbar ist.
15. Kolophon
Dieses Buch ist im Markdown-Format mit Erweiterungen von Leanpub geschrieben. Anschließend wurden aus den Markdown-Quelldateien die PDF-, EPUB- and MOBI-Versionen erzeugt.
Den Entscheidungsbaum im ersten Kapitel habe ich mit yEd gezeichnet und für die Bucherstellung im PNG-Format exportiert.
Die TCP-Sequence-Diagramme im neunten Kapitel habe ich mit UMLet gezeichnet, in das SVG-Format exportiert und anschließend mit Inkscape in das PNG-Format für das Buch umgewandelt.
Der Router-Graph im neunten Kapitel ist mit dem Programm dot von der
GraphViz Software erzeugt.
Revision
Die Markdown-Quellen dieses Buches werden im verteilten Revisionsverwaltungssystem monotone gespeichert.
Diese Ausgabe basiert auf Revision
dae6dbf2676ca6fcb5e2b72c0ac1c1d509a3132a von 2014-10-24.