Computernetze 2: Zusammenfassung Christof Zellweger 5. August 2007 Inhaltsverzeichnis 1 ICMP - Internet Control Protocol 1.1 3 Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 IP - Internet Protocol 2.1 2.2 2.3 Lernziele . . . . . . . . . . . . . . . . IP Datagramm . . . . . . . . . . . . 2.2.1 Fragmentierung . . . . . . . . 2.2.2 Class based IP-Adressen . . . 2.2.3 NAT, PAT, IP Masquerading Fragen und Antworten . . . . . . . . 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lernziele . . . . . . . . . . . . . . . . . . Routing Basics . . . . . . . . . . . . . . Static Routing . . . . . . . . . . . . . . Default Routing . . . . . . . . . . . . . . Dynamic Routing . . . . . . . . . . . . . Distance Vector Protocols (RIP, IGRP) Link State Protocols . . . . . . . . . . . RIP - Routing Information Protocol . . OSPF - Open Shortest Path First . . . . 3.9.1 Fragen und Antworten zu OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . and Congestion Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Routing Technologies 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 Lernziele . . . . . . . . . . . . . . . . Basics . . . . . . . . . . . . . . . . . UDP - User Datagram Protocol . . . TCP - Transport Control Protocol . Retransmission: Szenarios . . . . . . Flow Control (Empfangsbestätigung) Fragen und Antworten . . . . . . . . 7 7 9 9 10 10 11 12 13 13 14 5 IP Multicast 5.1 5.2 5.3 5.4 4 5 5 6 7 7 7 4 Transport Layer 4.1 4.2 4.3 4.4 4.5 4.6 4.7 3 Address Overlap . . . . . . . . . . . . Reverse Path Forwarding . . . . . . . PIM - Protocol Independent Multicast Vor- und Nachteile von Multicast . . . 14 14 14 15 16 17 18 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 20 20 21 Zusammenfassung Computernetze 2 SS2007 6 Application Layer 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 21 Lernziele . . . . . . . . . . . . . . . . . . . . . . . TFTP - Trivial File Transfer Protocol . . . . . . 6.2.1 Lernziele . . . . . . . . . . . . . . . . . . 6.2.2 Transferbeispiel . . . . . . . . . . . . . . . 6.2.3 Fragen und Antworten . . . . . . . . . . . FTP . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Lernziele . . . . . . . . . . . . . . . . . . 6.3.2 Active und Passive Mode . . . . . . . . . 6.3.3 ASCII-Mode und Binary-Mode . . . . . . 6.3.4 FTP und NAT . . . . . . . . . . . . . . . 6.3.5 Zusammenfassung active vs. passive Mode HTTP . . . . . . . . . . . . . . . . . . . . . . . . 6.4.1 Lernziele . . . . . . . . . . . . . . . . . . 6.4.2 HTTP/1.0 und HTTP/1.1 . . . . . . . . . 6.4.3 Response Time . . . . . . . . . . . . . . . 6.4.4 Non-persistent und persistent HTTP . . . 6.4.5 HTTP Commands und Responses . . . . 6.4.6 HTTP Proxy . . . . . . . . . . . . . . . . 6.4.7 Cookies . . . . . . . . . . . . . . . . . . . 6.4.8 3rd Party Cookies . . . . . . . . . . . . . 6.4.9 Fragen und Antworten . . . . . . . . . . . DNS . . . . . . . . . . . . . . . . . . . . . . . . . 6.5.1 DNS Data (Resource Records RR) . . . . 6.5.2 Zonen . . . . . . . . . . . . . . . . . . . . 6.5.3 authoritativer vs. nicht-authoritativer NS 6.5.4 Resolver Process . . . . . . . . . . . . . . DHCP . . . . . . . . . . . . . . . . . . . . . . . . Content Distribution Network . . . . . . . . . . . Whois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Wide Area Networks 7.1 7.2 7.3 7.4 7.5 21 22 22 23 23 24 24 24 26 26 26 26 26 27 27 28 28 30 30 31 32 32 32 33 33 34 35 36 36 37 Lernziele . . . . . . . . . . . . . . . . . . . . . . . Serial Lines . . . . . . . . . . . . . . . . . . . . . Point to Point Protocol (PPP) . . . . . . . . . . Frame Relay . . . . . . . . . . . . . . . . . . . . . 7.4.1 Congestion Control & Traffic Managment MPLS und MPLS-VPN . . . . . . . . . . . . . . 37 37 38 39 40 41 8 IPv6 43 9 Anhang 45 9.1 Begriffserklärungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Seite 2 von 48 45 Zusammenfassung Computernetze 2 SS2007 1 ICMP - Internet Control Protocol 1.1 Lernziele • You understand ICMP basics • ICMP Packet structure, such as ICMP Type, ICMP Code • You can explain the details of: Ping-Commands, Traceroute-Commands • You know advanced ICMP functions • integraler Bestandteil von IP; ICMP Messages werden in IP-Paketen verschickt • Router oder destination Hosts setzen ICMP zur Fehlermeldung an Source Host ein, um anzuzeigen,dass während Verarbeitung Fehler aufgetreten sind • wird für Error Reporting benutzt, nicht um IP reliable zu machen • kennt dabei Fehler- und Statusmeldungen • kann mittels Ping auch zu Kontrollfunktionen gebraucht werdenm • Übermittlung von ICMP-Nachrichten erfolgt innerhalb von IP-Datagrammen Seite 3 von 48 Zusammenfassung Computernetze 2 SS2007 PING - Packet InterNet Groper • benutzt ICMP Echo-Request, Echo-Reply Pakete • jeder Host muss einen ICMP Echo Server (oder ähnliche Funktionalitäten) zur Verfügung stellen 2 IP - Internet Protocol 2.1 Lernziele • You understand the Internet Protocol – IP network structuring – IP addressing types and schemes – Fragmentation • You understand the Network Address Translation (NAT) and Port Address Translation (PAT) principles • You know how to use ping and tracert, i.e. you understand the Abbildung 1: Encapsulation von IP • unzuverlässiges, best-effort, verbindungsloses paketorientiertes Protokoll; • gehen Pakete verloren, kümmert sich IP nicht darum (wird von höheren Schichten übernommen) • Zuordnung von IP’s entweder statisch oder dynamisch Seite 4 von 48 Zusammenfassung Computernetze 2 SS2007 2.2 IP Datagramm • IHL: Internet Header Length (Längenangabe jeweils in 4 Bytes); minimaler Wert ist 5, also 20 Bytes; maximaler Wert ist 15, also 60 Bytes; ermöglicht dem Empfänger zu entscheiden, wo Payload beginnt • Identification: falls grösse des Pakets für Zwischenkomponente auf Weg zu Empfänger zu gross ist, wird Paket fragmentiert und dieses Feld zu Identifikation der Fragmente verwendet, mit welcher der Empfänger die korrekte Reihenfolge der Datenpakete ermittelt • Flags: enthält das Kontroll-Flag Don’t Fragment“ (DF), wenn keine weiteren Pakete ” folgen und More Fragment“ (MF) wenn weitere folgen. ” • TTL: definiert die Lebensdauer eines Datagramms im Netzwerk; fällt der Wert auf Null, wird das Datenpaket verworfen; Lebensdauer eines Datenpakets beträgt maximal 255 Sekunden oder den Übergang über 255 Router; Wert des Feldes wird bei jedem Durchgang durch einen Router um mindestens 1 herabgesetzt; verhindert Congestion 2.2.1 Fragmentierung • Fragmentierung kann ausgeschaltet werden oder an darunterliegende MTU (Ethernet 1500 Bytes) angepasst werden Seite 5 von 48 Zusammenfassung Computernetze 2 SS2007 • Fragmente werden unabhängig voneinander gesendet; geht eines verloren oder ist fehlerhaft, so ist gesamtes Paket nutzlos • pro Fragment kommen 20 Byte Header dazu Abbildung 2: Fehler im Bild: letztes Fragment hat nur noch eine Länger von 700Bytes • Fragment Offset: beschreibt, an welcher Stelle die Daten dieses Fragments in das IP Datagramm eingefügt werden müssen • Länge des IP Datagramm weiss man erst nach erhalt des letzten Fragements • Also 4440 + (700 - 20) = 5120 + dann noch Header von IP Datagramm = 5140 Bytes 2.2.2 Class based IP-Adressen • Anzahl mögliche Netzadressen: jeweils 2N oOf N etworkBits − 2 Seite 6 von 48 Zusammenfassung Computernetze 2 SS2007 • Hostteil alles 0-en: genau den Host • Netzteil alles 0-en: genau dieses Netz • Hostteil alles 1-en: alle Host im Netz 2.2.3 NAT, PAT, IP Masquerading • Mapping von internen zu externen, öffentlichen IP-Adressen • Ziele: – interne IP verwendbar machen – interne Netzstruktur verbergen – eingehende Verbindungen verhindern (Sicherheit) • Typen: – statisch: 1-zu-1 Mapping, Outside → Inside – dynamisch: 1-zu-m Mapping, womöglich mehr interne als externe Adressen, Inside → Outside 2.3 Fragen und Antworten • Q:Warum kann ein IP Datagramm höchstens 65’535 Bytes gross sein? A: das TOTAL LENGTH Feld im Header hat eine Länge von 16 Bits, daher 216 = 65535 • Q:Was könnte passieren, wenn das Don’t Fragment Bit nicht gesetzt ist? A: da IP kein ACK-Mechanismus einsetzt, könnten fragmentierte Folgepakete eines verloren gegangenen Paketes alle verworfen werden, was zu einer Performance-Einbusse führen würde • Q:Warum wird das Don’t fragment bit“ von ISP’s fast nicht mehr gesetzt? ” A: dadurch würden zwangsweise fast leere Pakete entstehen, was Bandbreite verschwenden würde und somit indirekt Geld 3 Routing Technologies 3.1 Lernziele • Sie können die Funktionen eines Routers verständlich erklären • Sie unterscheiden dabei zwischen statischem und dynamischen Routing – Sie können statische Routes für ein kleineres Netzwerk selbständig aufsetzen – Sie kennen Link-State und Distanz Vektor Routing Protokolle und können die Vorund Nachteile erläutern – Sie kennen die Hauptprobleme mit diesen Protokollen und kennen die dazugehörigen Lösungsansätze 3.2 Routing Basics • Routing: Routing kann als Prozess des Weiterleitens eines Item (hier natürlich Pakete) beschrieben werden Seite 7 von 48 Zusammenfassung Computernetze 2 SS2007 • Hosts nehmen an diesem Prozess also teil; sind ebenfalls für direkte Zustellung der Datagramme verantwortlich und für eine Auswahl der default Route als next Hop, sollte die Adresse dem Host nich selbst bekannt sein • Router haben 2 Hauptfunktionalitäten: – Pakete weiterleiten – Netzwerk-Topologie verwalten (entweder über Distance Vector oder Link State) Route Summarization (Route Aggregation) • Zusammenfassen mehrerer Netze in Routing Updates durch setzen einer anderen Subnetzmaske • dadurch wird Anzahl an Tabelleneinträgen in Routern drastisch reduziert, d.h. es wird weniger Speicher/RAM gebraucht • andernfalls würde Verwaltungsaufwand zu gross werden; Router Pakete nicht schnell genug weiterleiten, weil sie zu lang für das Finden des Eintrags in den riesigen Tabellen bräuchten Routing Tables • Speichert die Routen zu einem bestimmten Zielnetzwerk • wird zur Weiterleitung ankommender Pakete ständig gelesen • durch Routing-Protokolle (wie RIP/OSPF) wird die Tabelle ständig aktualisiert • Einträge werden in effizientem Search-Order abgelegt • in seiner einfachsten Form besteht die Tabelle aus 3 Einträgen: 1. Network-ID: Zielnetzwerk 2. Cost: Kosten für diesen Pfad 3. Next Hop: Adresse des nächsten Hops, um zu Network-ID zu gelangen • Wie werden Routingtabellen gebildet: – static Routes: von Netzwerkadmin eingegeben; wird bei Topologieveränderung nicht automatisch angepasst – default Routes: meistens zeigt diese Route ins Internet – dynamic Routes: durch Routing-Protokoll gelernte Route; wird automatisch angepasst, wenn sich Topologie ändert Seite 8 von 48 Zusammenfassung Computernetze 2 SS2007 3.3 Static Routing • wird von Netzwerkadmin manuell eingegeben • keine Kommunikation zwischen Routern über Routing-Protokolle • Nachteile: – Administrationsaufwand kann sehr gross werden – wird nicht automatisch auf Topologieänderungen eingegangen • Wann werden statische Routen dennoch eingesetzt? – manuelle Eingabe einer Default Route – um automatische Bekanntmachung einer Route durch Routing-Protokolle zu verhindern – aus Sicherheitsgründen: Admin kann die Kommunikationswege genauestens angeben und hat volle Kontrolle 3.4 Default Routing • normalerweise wird Traffic zu unbekannten Netzwerken von Router verworfen • mit einer default Route kann dieses Verhalten geändert werden • mit default Route: ist Ziel nicht bekannt, wird Traffic an default Route (default network) gesendet • default network hat die ID 0.0.0.0 Seite 9 von 48 Zusammenfassung Computernetze 2 SS2007 3.5 Dynamic Routing • es wird ein Routing Protokoll benötigt: Distance Vector oder Link State • dieses beschreibt folgende Punkte: – wie werden Updates versendet, d.h. welche Information ist darin enthalten – wann werden diese Updates versendet (periodisch, sofort, nach gewissen Ereignissen) – wie die Empfänger der Updates lokalisiert werden sollen • Autonomous Systems • Gruppe von Routern unter einheitlicher Administration • ein AS hat eine eindeutige Nummer, ASN genannt • zwischen Verschiedenen AS’ wird mit EGP (Exterior Gateway Protokoll) Erreichbarkeitsinformation ausgetauscht • ein EGP-Protokoll hat 3 Hauptaufgaben 1. Nachbarn festlegen: Zwei Router aus zwei verschiedenen AS verständigen sich miteinander, ob sie EGP-Partner werden wollen 2. Erreichbarkeit der Nachbarn: Innerhalb bestimmter Zeitintervalle wird überprüft, ob die EGP-Partner noch erreichbar sind 3. Erreichbarkeit von Netzwerken: Das ist die Hauptaufgabe von EGP. EGP-Partner erhalten auf Anfrage eine Liste von erreichbaren Netzwerken in den autonomen Systemen der Nachbarn • einzig eingesetztes EGP ist das BGP (Border Gateway Protocol): – ist ein Pfadvektorprotokoll“, ähnlich wie RIP ” – BGP-Router teilt beim Senden von Updates dem Kommunikationspartner nicht nur mit, dass er einen bestimmten Abschnitt des Internet erreichen kann, sondern auch die komplette Liste aller AS (AS PATH), die IP-Pakete bis zu diesem Abschnitt passieren müssen (sein eigenes AS steht dabei an erster Stelle, das Ziel-AS letzter) • eine AS-Route hat mehrere Eigenschaften: – beschreibt, über welche autonomen Systeme das angegebene Ziel (ein CIDR-Präfix) erreicht werden kann. Die autonomen Systeme werden hierbei über ihre AS-Nummer (ASN) identifiziert; im AS-Pfad darf zwar keine Schleife vorkommen; jedoch ist es erlaubt, dass sich ein AS mehrmals hintereinander einträgt und somit den AS-Pfad künstlich verlängert, um die Route zwar verfügbar, aber unattraktiv zu machen – IGP-Metrik beschreibt die Kosten durch das eigene Netzwerk, um den Austrittspunkt in das nächste AS auf dem AS-Pfad zu erreichen 3.6 Distance Vector Protocols (RIP, IGRP) • dynamischer Routing-Algorithmus, basierend auf Bellmann-Ford Algorithmus • Routen werden als Vektoren (Distanz, Richtung) weitergegeben, wobei als Distanz der Hop Count und als Richtung dder Next Hop Router herangezogen werden Seite 10 von 48 Zusammenfassung Computernetze 2 SS2007 • wird auch routing by rumours“ genannt, weil jeder Router die Routen nur über seine ” Nachbarn kennt • Nachteile: – hat relativ lange Konvergenzzeit – um Konvergenzzeit zu senken, werden maximale Hop Counts eingeführt; stellen per se eine Einschränkung dar – unnötiger Bandbreitenverschleiss, da Routing-Tabellen auch dann übertragen werden, wenn sich gar nichts verändert hat • somit weiss jeder Router nur, wie er seinem Nachbarrouter erkannt • gesamte Routingtabelle wird an alle direkt angrenzenden Nachbarn versendet • die Distanz-Tabelle ergibt schlussendlich die Routing-Tabelle Abbildung 3: Aus der Distance Table wird die Routing Table extrahiert. 3.7 Link State Protocols • Router kennen das gesamte Netzwerk, haben eine globale Sicht darauf; jeder Router kennt also alle anderen Router, Links und die damit verbundenen Costs; dies wird alles zusammen in der Topology-Database gespeichert • um die Netzwerktopologie zu erruieren, macht ein Router folgendes: – jeder Router identifiziert alle anderen Router an direkt angeschlossenen Netzwerken → Hello Protocol ; damit Router Neighbours werden, muss über folgende Parameter ein Konsens gefunden werden: ∗ Area ID: beide Router müssen zur gleichen Area gehören ∗ Authentication: falls Auth definiert ist, muss dasselbe PW verwendet werden ∗ Timer: beide Router müssen über die gleichen Timer für Hello- und Dead-Intervals verfügen – jeder Router gibt mittels LSA’s (Link State Advertisements) die direkt angeschlossenen Netzwerk-Links und die damit verbundenen Kosten an (Controlled Flooding) Seite 11 von 48 Zusammenfassung Computernetze 2 SS2007 Abbildung 4: LSA-Frame – diese LSA’s werden von allen Routern im Netz gesammelt und es wird eine TopologieDatabase kreiert; diese Datenbank ist bei allen Routern identisch – jeder Router errechnet jetzt den besten Weg zu jedem Router im Netz (SPF,Dijkstra); es ensteht für jeden Router einen unterschiedlichen Baum 3.8 RIP - Routing Information Protocol • ist ein Interior Gateway Protocol, benutzt Distance Vector Algorithm • 2 verschiedene Paketarten: – Request: liefert die Distance Vector Table (DVT) eines Nachbarrouters – Response: wird abegeschickt, um seine Informationen anderen Routern bekannt zu geben; wird alle 30sek automatisch, als Antwort auf ein Request-Paket oder wenn ein Triggered-Update eintraf, verschickt • RIP kennt 2 Betriebsmodi: – active: Bekanntgeben und Erhalten von DVT’s anderer Router – passive: es werden nur Routing Updates erhalten, selbst aber keine DVT’s verschickt • Einträge in der DVT enthalten: – das Zielnetzwerk – die tiefsten Kosten, um dieses Netzwerk zu erreichen; RIP kann also zwischen mehreren Pfaden den attraktivsten finden – IP von Next Hop, um dieses Netzwerk zu erreichen • jedes Routing-Update wird auf bessere Wege zu verschiedenen Netzwerken hin überprüft • berechnen der Distance Vectors: – wurde Router initialisiert, hat er in seiner DVT alle direkt angeschlossenen Netzwerke und deren Kosten – jeder Router überträgt Seite 12 von 48 Zusammenfassung Computernetze 2 SS2007 3.9 OSPF - Open Shortest Path First • ist ein Link State Protocol, benutzt das Hello Protocol und Dijkstra • unterstützt Classless Routing Updates (CIDR), sowie verschiedene Areas (Hierarchie in Netzwerkstruktur) • alle OSPF-Netzwerke enhalten minimal eine Area, nämlich Area 0 oder auch Backbone Area • neue Areas können nur an Area 0 angehängt werden • 2 Routing Typen werden unterschieden: – Inter-Area: gesamter Traffic/Routing Information muss Area 0 traversieren – Intra-Area: Routing Info wird nur an Router in selber Area geschickt • Area Border Routers: enthalten Datenbank für jede angeschlossene Area; Summarizing Routing Informationen in den Backbone Controlled/Reliable Flooding • kreiert oder ändern Router ein LSA, wird dies an alle angrenzenden OSPF-Router geschickt • erhält ein Router ein LSA und ist dieses neu (grösste LSA Sequence Number), wird es in Database von Router eingetragen • wird über alle Interfaces weitergeschickt, ausser jenes Interface, auf welchem das LSA ankam • aussendender Router des Floodings waretet auf Acks 3.9.1 Fragen und Antworten zu OSPF Q: Nennen sie einige Vorteile von OSPF? • Konzept der Areas für hierarchische Topologien und Reduzierung der CPU- und Speicherlast auf den Routern • unabhängig von IP-Subnetzklassen Seite 13 von 48 Zusammenfassung Computernetze 2 SS2007 • beliebige, dimensionslose Metrik • Load Balancing bei Pfaden mit gleichen Kosten • Authentifizierung Q: Welchen Vorteil bringt das Aufteilen eines OSPF-Netzwerkes in Areas? • dadurch, dass Router nur Routing-Informationen der eigenen Area verwalten, wird die Topologie-Datenbank kleiner • Areas reduzieren die CPU-Zeit zur Berechnung des SPF-Trees • Strukturierungsmöglichkeit des Netzes • schnellere Konvergenzzeit 4 Transport Layer 4.1 Lernziele • You are able to explain the transport layer basics. • You know the UDP protocol fields. • You know the TCP protocol fields. • You understand the TCP flow control and congestion control mechanisms. • You understand, why, which applications use UDP or TCP. 4.2 Basics • Aufgabe von TL-Protokollen: – – – – Transport Layer Protokolle unterteilen Messages in Segmente gibt Segmente an Netzwerk Layer weiter Segmente zu Messages zusammenfügen Messages an Transport Layer weiterreichen 4.3 UDP - User Datagram Protocol Abbildung 5: UDP-Header im Detail Seite 14 von 48 Zusammenfassung Computernetze 2 SS2007 • Source Port: Enthält die optionale Adresse des Sende-Ports. Bei Antworten auf Datenpakete kann durch die Portadresse der jeweilige Prozess unmittelbar wieder angesprochen werden. Wird vom Sender kein Sende-Port definiert, so wird dieses Feld mit dem Wert 0“ ” übertragen. • Destination Port: Enthält die Adresse des Empfänger-Ports. • unreliable, unordered Zustellung, Zustellung also nicht garantiert • ist best-effort, kein flow-control, no error-recovery, keine Congestion-Control • schneller als TCP, da kleinerer Overhead und kein Verbindungsauf- bzw. -abbau • UDP-Socket wird anhand von Destination IP und Destination Port identifiziert – Pakete mit selber dest. IP und dest. Port aber unterschiedlicher Source-IP bzw. Source-Port werden nicht unterschieden • ist einfache Extension für Applikationen um Messages zu versenden, minimaler Protokoll Mechanismus • wird gebraucht bei: – – – – – DNS: kein Verbindungsaufbau nötig TFTP: wegen Einfachheit SNMP: selbst von Netzwerk überlastet, funktionierts mit UDP vielleicht nocht RIP: senden der Routing Table Updates RTP: nur kurze Delays, Packet Loss ist tolerierbar 4.4 TCP - Transport Control Protocol • zuverlässig: nach bestimmter Zeit werden Daten nochmals gesendet, bis eine Bestätigung (ACK) von Gegenseite kommt • verbindungsorientiert: durch Handshake wird vor Datenübertragung logische Rechner-zuRechner-Verbindung hergestellt; • TCP-Socket wird anhand S IP, D IP, S Port, D Port identifiziert • in-order Zustellung • Verbindungsverwaltung, connection setup • Flow Control (Empfangsbestätigung) & Congestion Control Seite 15 von 48 Zusammenfassung Computernetze 2 SS2007 Abbildung 6: TCP-Header im Detail • Sequence Number: Nummer des ersten Oktetts der Daten in einem Segment; Empfänger benutzt SN für Rearranging der Segmente und um Duplikate zu erruieren; da TCP ein byte-stream ist, wird jedem Byte im Stream eine SN zugeorndet; • Acknowledgement Number: gibt die Nummer der nächsten erwarteten SN an • Window: maximale Nummer von (unacknowledged) Bytes, welcher der Sender von dieser window size bereit ist, entgegenzunehmen; • Data Offset: Gibt die Anzahl der 32-Bit-Worte im TCP-Header an; der Eintrag in diesem Feld ist für die Berechnung des Datenteils relevant 4.5 Retransmission: Szenarios Abbildung 7: lost ack (links) und premature timeout (rechts) Seite 16 von 48 Zusammenfassung Computernetze 2 SS2007 Abbildung 8: Duplicate Acknowledgment Szenario Abbildung 9: Cummulative Ack Szenario 4.6 Flow Control (Empfangsbestätigung) and Congestion Control Flow Control Flow Control in TCP wird vorallem über den Sliding Window Mechanismus realisiert. Ziel: kein Überlauf des Empfängerbuffers durch Sender, weil Sender zu viel in zu kurzer Zeit gesendet hat. • die Window Grösse richtet sich nach Empfangspuffer des Empfängers • in ACK wird Sender die höchste Sequence Number mitgeteilt, welche er senden darf, ohne dass bei Empfänger Probleme auftreten • Windowsize wählen: windowsize(bit) = Bandwidth(bit/s) ∗ RT T (s) Seite 17 von 48 Zusammenfassung Computernetze 2 SS2007 Abbildung 10: Sliding Window Mechanismus Congestion Control Damit keine Überläufe der Puffer in Zwischenkomponenten wie Router etc. entstehen, wird Congestion Control an den Enden der Verbindung (z.B. zwei Hosts) implementiert, es gibt also keine Unterstützung von Netzwerkseite her. Dies wird durch die 3 wichtigen Bestandteile des congestion-control-algorithm additive-increase, multiplicative-decrease und slow start erreicht. • zusätzliche Variable: CongWin (LastByteSent−LastByteAcked ≤ minCongW in, RcvW in) • rate(bytes/s) = CongW in RT T • Congestion Control läuft also über CongWin-Variable, da heruntersetzen dieser Variable zur Verminderung der sending rate führt • Definition von Loss Events“: timeout oder Erhalt von 3 duplicate ACK’s ” • multiplicative-decrease: bei Loss Event wird CongWin halbiert • additive-increase: nach Loss Event, erhöhe CongWin um 1 MSS für jedes erhaltene ACK • Slow Start: bei Beginn der Datenübertragung ist MSS = 1, d.h. ein ACK muss nach einem gesendeten Segment zurückkommen; jedes empfangene ACK wird die Größe des congestion window um eine MSS erhöht; da für jedes versandte Paket bei erfolgreicher Übertragung ein ACK geschickt wird, führt dies innerhalb einer Roundtrip-Zeit zu einer Verdopplung des Congestion Windows; wird weitergeführt, bis slowstart threshold erreicht (oder erster Loss-Event); danach nur noch 1 MSS Erhöhung pro Segment, d.h. 1 MSS pro RTT (diese Phase wird Congestion Avoidance genannt) 4.7 Fragen und Antworten • Q: Warum sollte der TCP Timeout länger als die RTT sein? A: ist dieser Wert zu kurz, finden unnötige Retransmissions statt; ist er hingegen zu lange, ist die Reaktion auf ein verlorenes ACK viel zu träge. • Q: Erklären sie den Zusammenhang zwischen RTT und Window Size? Szenario 1 : hohe Bandbreite, RTT ist lange, d.h. viele Segmente passen in Pipe rein → Windowsize muss gross sein Szenario 2 : falls Bandbreite klein ist, können grössere Werte für RTT’s toleriert werden, falls die gleichen Werte für die Windowsize gelten Seite 18 von 48 Zusammenfassung Computernetze 2 SS2007 5 IP Multicast • Datagramm wird an mehrere Empfänger mit nur einer Senden-Operation“ geschickt ” • läuft über UDP • 3 Typen von Multicast: – MC via Unicast: Sender sendet N mal ein Paket bei N MC-Teilnehmern – Application-Layer MC: End-Systeme kopieren Pakete wo nötig und schicken sie an beteiligte Stationen weiter – Network MC: Router nehmen aktiv an Verteilung von MC-Datagrammen teil, machen wo nötig selbst Kopien von Datagrammen • MC-Adressen sind immer Destination-Adressen, niemals Source-Adressen • um Daten von MC-Gruppe zu erhalten, muss man Mitglied dieser Gruppe sein, muss sie also joinen“ ” • gesamter MC-Address-Space von 224.0.0.0 - 239.255.255.255 (Class D) • Mulitcast Routing ist das Umgekehrte“ zu Unicast Routing: MC-Routing entscheidet ” aufgrund von woher habe ich dieses Paket erhalten“ und nicht wie bei Unicast-Routing ” wohin muss das Paket verschickt werden“ ” 5.1 Address Overlap Abbildung 11: 32 IP Adressen werden auf 1 MAC Adresse abgebildet • es gibt pro Multicast-Mac-Adresse jeweils 32 IP-Adressen, die auf diese MAC-Adresse abgebildet werden • da 1.Byte in MC-Adresse immer mit 1110 beginnt, stehen für eigentliche MAC-Adressen nur noch 28 Bits zur Verfügung • Abbildung von IP (32 Bits) zu MAC (48 Bits, beginnt mit 0x01-00-5e) hat zur Folge, dass 28 Bits von IP-Adresse aber nur 23 Bits von MAC-Adresse zur adressierung gebraucht werden können • daher sind pro MAC-Adresse also 25 = 32 IP-Adressen vorhanden Seite 19 von 48 Zusammenfassung Computernetze 2 SS2007 5.2 Reverse Path Forwarding • MC-Paket von einer bestimmten Source wird nur dann weitergeleitet, wenn es auf jenem Interface ankommt, welches in der Unicast Routing Table für das Erreichen des Netzes des Source ist • A router forwards a multicast datagram only if received on the up stream interface to the ” source (i.e. it follows the distribution tree).“ • es wird ein RTF-Tree für jeden Sender in der Gruppe erstellt 5.3 PIM - Protocol Independent Multicast • völlig unabhängig von zugrundeliegender Unicast Routing Algorithmus • gibt hier 2 verschiedene Distribution Szenarios: – dense mode, DM : Gruppenmitglieder sind nahe beieinander“; Bandbreite reichlich ” vorhanden; Push“-Model wird verwendet; es wird angenommen, dass alle Netzwerk” devices an MC-Paketen interessiert sind; Flood-and-Prune Verhalten (wiederholt sich alle 3 Minuten); Traffic wird zurückgewiesen (pruning), wo er nicht erwünscht ist; Reverse Path Forwarding wird verwendet; geeignet für Einsatz in Labs oder Testumgebungen – sparse mode, SM : Banbreite nur begrenzt vorhandne; Gruppenmitglieder weit von” einander“ entfernt; Pull“-Model wird verwendet; explizites Join-Verhalten; Rendezvous” Point (RP) wird eingesetzt Seite 20 von 48 Zusammenfassung Computernetze 2 SS2007 Abbildung 12: PIM-DM Flood and Prune 5.4 Vor- und Nachteile von Multicast • ⊕ erhöhte Effizienz • ⊕ optimierte Performance: Traffic-Redundanz wird vermieden • ⊕ ermöglicht multipoint Applikationen • keine Congestion-Avoidance: da nicht TCP mit windowing und slow start verwendet wird, kann es zu Congestion kommen • Out of order delivery • Best Effort Delivery: kann zu Paket-Verwurf kommen 6 Application Layer 6.1 Lernziele • You understand the ISO-OSI top-down approach – – – – layer and protocol concept frame, datagram, segment, message definition application, process, socket client-server model, peer-to-peer model • You understand NVT and telnet – know how to open arbitrary TCP connections Seite 21 von 48 Zusammenfassung Computernetze 2 SS2007 – explain telnet application details • Sockets werden für bidirektionale Kommunikation zwischen zwei Programmen über ein Netzwerk benötigt • allgemeine Definition eines Socket: Kombination von IP, Port und Protocol • Ein TCP Socket wird identifiziert über: S IP, D IP, S Port, D Port • Ein UDP Socket hingegen nur über: D IP, D Port • TCP garantiert zwar die Übertragung jedoch keine garantierte Datenrate oder minimale Verzögerung • TCP ist verbindungsorientiert, d.h. es ist ein Verbindungsaufbau nötig • TCP kennt Congestion Control, daher Anpassung der Datenrate bei Verkehrsstau • UDP ist verbindungslos (kein Verbindungsaufbau), unzuverlässig und kennt keine Congestion Control • unterschiedliche Daten (Daten, Audio, Video, GameInformationen) stellen unterschiedliche Anforderungen an QoS (Delay, Jitter, Bandrbreite..): Transportprotokolle regeln diese Eigenschaften nicht 6.2 TFTP - Trivial File Transfer Protocol 6.2.1 Lernziele • You understand the tftp and ftp applications • You can explain issues like – ASCII and binary mode ftp transmission – Passive and active mode ftp • You can explain potential problems with ftp – Using firewalls – Using network address translation devices • Zugriff auf entferntes Dateisystem, ohne Logon • keine User Authentifikation, ist somit unsicheres Protokoll • benutzt UDP auf Port 69, ist somit verbindungslos • unterstützt Basic Error Messages • etwas Sicherheit bringt eine Access Host Liste, in welcher definiert ist, welche Host’s auf den Server zugreifen können • öffentliche Verzeichnisse auf TFTP-Servern sind meist schreibgeschützt Seite 22 von 48 Zusammenfassung Computernetze 2 SS2007 Abbildung 13: Erster Read/Write Request von Sourceport z von Client auf Port 69 des Servers, wobei der Datentransfer über anderen Port (z), von Server gewählt, läuft. 6.2.2 Transferbeispiel 1. Client sendet RRQ (Read Request) auf Port 69 beim Server 2. Server Antwortet, falls File vorhanden, mit einem Paket von 512 Byte an Port X (Source Port des Requests) mit Source Port Z. 3. Client sendet ACK für Blocknummer 1 4. Server sendet weitere Daten mit Blocknummer 2 5. ... 6. Verbindungsende wird von Client erkannt bei einer Blockgrösse kleiner 512 Bytes. 6.2.3 Fragen und Antworten Q: Was passiert, falls zwischen Client und TFTP-Server NAT angewendet wird? A: Kommunikation findet nicht statt, sofern nicht spezielle Vorkehrungen getroffen wurden. Beispielsweise könnte NAT den Port 69 in der Tabelle noch nicht fix zur IP des TFTP-Servers eintragen (da dieser ja noch ändert). Antwortet der Server nun, erkennt NAT den momentan benutzten Port für die Verbindung und weist diesen der IP vom TFTP-Server zu. Q: Wie stellt TFTP sicher, dass keine Daten verloren gehen und dass die Daten korrekt & vollständig übertragen wurden? • Blocknummer und Ackknowledge für jeden übertragenen Block • Checksummen auf Layer 4, 3 und 2 zur Bitfehlerdetektion • Anzeige des File-Endes mit Block kleiner als 512 Bytes Seite 23 von 48 Zusammenfassung Computernetze 2 SS2007 6.3 FTP 6.3.1 Lernziele • You understand the tftp and ftp applications • You can explain issues like – ASCII and binary mode ftp transmission – Passive and active mode ftp • You can explain potential problems with ftp – Using firewalls – Using network address translation devices • standard Protocol um Verzeichnisse zu browsen, Files von/zu Server zu transferieren • basiert auf TCP, daher reliable Datentransfer • Autentifizierung mit Username und Passwort • unterhält zwei Verbindungen für die parallele Kommunikation von Daten und Commands: Port 21 für Commands, Port 20 für Daten • Daten: Port 20, Commands: Port 21 • ftp -d für Debug • Control-Connection bleibt für Dauer der Session offen, jedoch wird eine neue Data-Connection für jedes zu transferierende File gemacht 6.3.2 Active und Passive Mode Transferbeispiel: Active Mode Abbildung 14: FTP-Server verbindet sich mit von Client angegebenen Port. Kann bei Firewalls und NAT zu Problemen führen. Seite 24 von 48 Zusammenfassung Computernetze 2 SS2007 1. Client kontaktiert den Server von einem beliebigen lokalen Port (N) zu Port 21. 2. Client setzt ein Port-Command ab, damit in Active Mode geschaltet wird 3. PORT < i1.i2.i3.i4, pA, pB > ist dann: IP-Adresse < i1.i2.i3.i4 > und dazugehöriger Port: pA * 256 + pB (würde im oberen Fall also 4 ∗ 256 + 150 = 1174 ergeben) 4. Server bestätigt Port-Command über die Command - Verbindung (Port 21) 5. Server initiiert eine TCP-Verbindung von Source Port 20 auf den in PORT-Command angegebenen Port (N + 1) 6. Client sendet ein ACK zurück 7. Problem: • falls Client hinter Firewall steht oder NAT angewendet wird, müsste hierfür immer der entsprechende Port aufgemacht werden, da sich der Server mit dem Client verbindet, also von aussen auf den Client zugegriffen werden muss Transferbeispiel: Passive Mode Abbildung 15: In passive Mode gibt der Server einen Port bekannt, auf welchen der Client für den Datentransfer verbinden kann. • Client kontaktiert den Server von einem beliebigen lokalen Port (N) zu Port 21. • Client setzt das PASV-Command ab • Server schickt Antwort von Port 21 zu Port N, dass er jetzt im passiven Mode ist (mittels PORT ), gibt also an, auf welchem Port er Daten erwartet • Client startet TCP-Verbindungsaufbau zu eben diesem erhaltenen Port • Server sendet ACK auf den Daten-Port des Client zurück • Probleme: – Server muss Zugriff von aussen auf hohe Portnummern zulassen, kaum Einschränkungen möglich – einige FTP Clients unterstützen passive Mode nicht Seite 25 von 48 Zusammenfassung Computernetze 2 SS2007 6.3.3 ASCII-Mode und Binary-Mode • ASCII-Mode: translates specific character representations between dissimilar systems • Binary-Mode: Bits are transferred as they are • Problem mit ASCII-Mode: in Binary-Mode funktioniert die Übertragung immer, auch bei unterschiedlichen Systemem; in ASCII-Mode werden verschiedene Characters umgeschrieben (z.B. LF,CRLF oder CR), was auf Zielsystem zu unerwünschten Effekten führen kann (nicht lesbare Word oder JPEG Dateien beispielsweise) 6.3.4 FTP und NAT • Im Active Mode wird von aussen (von lokal her gesehen) eine Verbindungsanfrage auf einen Port, der zuvor dem Server übermittelt wurde, gestartet. Demzufolge ist in der PAT Tabelle noch keine globale IP mit diesem Port eingetragen → Verbindung nicht möglich • Damit dies trotzdem funktioniert, muss der PORT Command abgefragt und in der Tabelle ergänzt werden. 6.3.5 Zusammenfassung active vs. passive Mode • active: – Commands : client any port -¿ server port 21 – Data : client port as defined by the PORT command ¡- server port 20 • passive: – Data Transfer Connection wird von Client initialisiert – Commands: Client beliebiger Port -¿ Server Port 21 – Data : Client beliebiger Port -¿ Server Port wie angegeben von Server Response Entering Passive Mode (IP, Port)“ ” 6.4 HTTP 6.4.1 Lernziele Seite 26 von 48 Zusammenfassung Computernetze 2 SS2007 • What’s the difference between HTML and HTTP, HTTP/1.0 and HTTP/1.1? • What is persistent/non persistent HTTP? • How do Cookies work? • What is a conditional get? • What’s the difference between get, put and post? • What determines the Web-Server response time? • HTTP ist ein Protokoll, wird extensiv in Zusammenhang mit dem World Wide Web (WWW) verwendet • definiert, wie Messages definiert und übertragen werden, sowie welche Aktionen Webserver und Clients nach Erhalt dieser Messages ausführen • ist stateless: jedes Command, jede Message wird unabhängig von anderen, vorgängigen Messages abgearbeitet 6.4.2 HTTP/1.0 und HTTP/1.1 • Hauptunterschied ist die Handhabung der Verbindungen: HTTP/1.0 kennt nur non-persistent, HTTP/1.1 hingegen persistent with pipelining, wobei dies auch Standard ist • 1.0: keep-alives, um Verbindung zu erhalten • 1.1: effizienteres Caching • 1.1: virtual hosting, neue Methoden 6.4.3 Response Time • Round Trip Time (RTT): Zeit, die ein Paket benötigt, um vom Client zum Server und wieder zurück zu gelangen • hierfür wird mindestens eine Zeit von 2*RTT + File Transmit Time benötigt – 1 x RTT, um TCP zu initiieren – 1 x RTT für HTTP Request und die ersten Bytes der Antwort – zusätzlich noch die File Transmit Zeit Seite 27 von 48 Zusammenfassung Computernetze 2 SS2007 6.4.4 Non-persistent und persistent HTTP Non-persistent • separate TCP-Verbindung für jeden Request und für jedes Objekt • benötigt 2 RTT’s pro Objekt: 1 x TCP-Verbindungsaufbau, 1 x Request für Objekt • Beispiel: ein Client ruft eine Seite mit 3 Bildern auf (also 3 Objekte), benötigt demnach 4 x RTT, 1 x für TCP-Verbindungsaufbau und 3 x RTT für Objekte persistent • Server lässt Verbinung nach Senden der Antwort offen • weitere Anfragen vom Client sind auf selber Verbindung • mit pipelining, HTTP/1.1 default: Client sendet Anfrage sobald er ein referenziertes Objekt hat. Er erhält die Page, und merkt, er braucht noch 3 Bilder → 1 Request für alle Bilder (Objekte), somit also 1 RTT für alle referenzierten Objekte • ohne pipelining: Anfragen werden erst abgesendet, wenn Antwort von vorheriger Anfrage zurückgekommen ist → 1 RTT für jedes referenzierte Objekt 6.4.5 HTTP Commands und Responses GET • Um Informationen von einer bestimmten URI abzurufe oder auch Informationen zu einem bestimmten Programm auf dem Server zu übermitteln (Method part); auf 1024 characters limitiert • Requestline in drei weitere Teile gegliedert: Method field, URL field, HTTP version field • Methoden sind case sensitive • in Header Lines werden zusätzliche Informationen an Server übertragen • für GET Request ist der Entity Body leer, wird jedoch für POST gebraucht. Seite 28 von 48 Zusammenfassung Computernetze 2 SS2007 • Requests werden mit einem zusätzlichen CR/LF abeschlossen. (Kennzeichnet das Ende der Message) Abbildung 16: Get-Request conditional GET • Client-side Caching: schicke Daten nur an Client, falls Client nicht schon die neueste Version besitzt • Client macht Anfrage und setzt das if-modified-since: date“-Feld ” POST • Um Informationen an ein bestimmtes Programm auf dem Server zu übermitteln (z.B. cgi-Skript). (body-Part). • Vorteil gegenüber GET: keine Längenbeschränkung, keine Character codierung nötig OK Seite 29 von 48 Zusammenfassung Computernetze 2 SS2007 Abbildung 17: Response 6.4.6 HTTP Proxy • Dienstprogramm für Computernetze, das im Datenverkehr vermittelt • macht Datentransfer effizienter • transparenter Proxy“ ist von aussen kaum zu erkennen ” • kann mehrere Funktionen besitzen: – Cache: speichert gestellte Anfragen und deren Ergebnis; bei erneuter Anfrage antwortet Proxy-Server und nicht mehr der eigentliche Server – Filter: gewisse Websites oder Kategorien können gesperrt werden 6.4.7 Cookies • mit Cookies kann eine Art ’statefulness’ in HTTP eingebaut werden • werden clientseitig gespeichert • nur Server, der Cookie gesetzt hat, kann es auch wieder lesen; Server erkennt User anhand von Cookie wieder Abbildung 18: Cookie wird bei wiederholtem Zugriff auf Webpage von Client mitgeschickt • damit Cookies zum Einsatz kommen können, braucht es 4 Komponenten: – Cookie headerline in HTTP response Message (set cookie) Seite 30 von 48 Zusammenfassung Computernetze 2 SS2007 – Cookie headerline in HTTP request Message (cookie mitgeben) – Cookies lokal abspeichern und managen beim Absenden eines Request mit Cookie (Browser) – Back-end Database auf Serverseite Abbildung 19: Ablauf 6.4.8 3rd Party Cookies • Websites können Grafiken (Banner) von Advertising-Firmen enthalten • verbindet man sich nun auf eine Seite, beispielsweise www.abc.ch und diese Seite enthält ein Banner von www.ads123.ch, wird dieser Banner beim Laden der Seite ja ebenfalls heruntergeladen • zuerst wird ein Cookie auf die Seite www.abc.ch gesetzt • dann wird aber von www.ads123.ch auch ein Cookie gesetzt, weil das Bild nicht direkt von www.abc.ch, sondern eigentlich von www.ads123.ch geladen wird Seite 31 von 48 Zusammenfassung Computernetze 2 SS2007 • somit möchten Advertising-Firmen auf möglichst vielen Seiten ihre Banner einblenden, damit möglichst viele Internet-User Cookies von eben diesen Ad-Firmen auf dem lokalen Rechner abgespeichert haben • Advertising-Firmen benutzen dann diese Information, um dem Benutzer auf ihn zugeschnittene Werbung bereitzustellen 6.4.9 Fragen und Antworten Q: Warum könnte jemand offenen Proxy verwenden wollen? A: um Identität zu verschleiern; um IP-basierte Filterung zu umgehen Q: Warum stellt jemand einen Proxy zur Vefügung? A: aus Spass, um Informationen zu sammeln, um Banner einzublenden 6.5 DNS • You understand the Domain Name Service and the IP address assignment process • You understand the whois Service • You can explain the resolver processes • You understand Content Network Distribution (CDN) principles • wichtigste Aufgabe des Domain Name System (DNS) ist die Umsetzung von Domain Namen ( Internetadressen“) zu IP-Adressen ” • ist hierarchisch aufgebaut: zuoberst sind die TLD’s mit den 13 Root-Servern(Top Level Domain, beispielsweise .com, .edu), dann folgen die Second-Level-Domains (beispielsweise switch.ch, google.com); Second-Level-Domains kennen dann die Hosts bzw. die Namensserver für weitere Hierarchiestufen • Requests and Responses werden auf UDP Port 53 getätigt; Zonen-Transfers finden jedoch über TCP Port 53 statt • mit Punkt endende Domain wird fully qualified domain name (FQDN) genannt; endet Domain nicht mit Punkt, kann der DNS resolver die domain noch ergänzen (hierbei wird die DNS-Suffix Search List zur Hilfe genommen, kann unter Windows mit ipconfig /all“ ” zur Anzeige gebracht werden) • Domain Name System besteht aus: DNS Data, DNS Servers und DNS Protocol 6.5.1 DNS Data (Resource Records RR) • Resource Record Format: name, value, type, TTL • Type=A: Adress Record, listet die Adresse für einen Host • Type=NS: Record für einen Nameserver • Type=CNAME: ist ein Alias für einen kanonischen Namen (kanonischer Name ist der reale Name) Seite 32 von 48 Zusammenfassung Computernetze 2 SS2007 • Type=MX: Record für einen Mail-Server 6.5.2 Zonen • Zone: Teil des Domänenbaums, für die ein NS zuständig ist und deshalb die offiziellen Daten kennt, d.h. authoritative Antworten liefert • werden durch Primary Nameserver verwaltet; allerdings können sie mittels Zonentransfers auf Secondary NS gespiegelt werden • Unterschied zum Begriff Domain: Domäne umfasst gesamten untergeordneten DNS-Namensraum; eine Domäne kann aus mehreren Zonen bestehen; • Zonendatei : Informationen über die in der Zone enthaltenen Hosts und Server; darin steht auch der SOA-RR (Start of Authority), d.h. der Nameserver, welcher authoritativ für diese Zone ist Beispiel: • angenommen zur Domain hsr.ch bestehen also die zwei Subdomains fachrichtungen.hsr.ch und module.hsr.ch. Dann sind die beiden Nameserver ns1.hsr.ch und ns2.hsr.ch für alle Namensauflösungen zuständig, die unterhalb dieser Einstiegspunkte in den Baum liegen • Beispielsweise würde ns1.hsr.ch eine authoritative Antwort geben (sofern kein cachender DNS-Server dazwischen liegt), wenn man nslookup randomhost.randomsubnet.fachrichtungen.hsr.ch eingebene würde Einträge in der Zonendatei hsr.ch.db: Domain fachrichtungen.hsr.ch module.hsr.ch IN IN Type NS NS Nameserver ns1.hsr.ch ns2.hsr.ch 6.5.3 authoritativer vs. nicht-authoritativer NS • authoritativ : verantwortlich für eine Zone. Seine Informationen über diese Zone werden deshalb als gesichert angesehen. Für jede Zone existiert mindestens ein authoritativer Server, der Primary Nameserver. Dieser wird im SOA Resource Record einer Zonendatei aufgeführt. Aus Redundanz- und Lastverteilungsgründen werden authoritative Nameserver fast immer als Server-Cluster realisiert, wobei die Zonendaten identisch auf einem oder mehreren Secondary Nameservern liegen. Die Synchronisation zwischen Primary und Secondary Nameservern erfolgt per Zonentransfer • nicht-authoritativ : Nameserver bezieht seine Informationen über eine Zone von anderen Nameservern sozusagen aus zweiter oder dritter Hand. Seine Informationen werden als nicht gesichert angesehen. Da sich DNS-Daten normalerweise nur sehr selten ändern, speichern nicht-autoritative Nameserver die einmal von einem Resolver angefragten Informationen im lokalen RAM ab, damit diese bei einer erneuten Anfrage schneller vorliegen. Diese Technik wird als Caching bezeichnet. Jeder dieser Einträge besitzt ein eigenes Verfallsdatum (TTL time to live), nach dessen Ablauf der Eintrag aus dem Cache gelöscht wird. Die TTL wird dabei durch einen authoritativen Nameserver für diesen Eintrag festgelegt und wird nach der Änderungswahrscheinlichkeit des Eintrages bestimmt (sich häufig ändernde DNS-Daten erhalten eine niedrige TTL). Das kann unter Umständen aber auch bedeuten, dass der Nameserver in dieser Zeit falsche Informationen liefern kann, wenn sich die Daten zwischenzeitlich geändert haben Seite 33 von 48 Zusammenfassung Computernetze 2 SS2007 6.5.4 Resolver Process 1. Programm macht ein Request für eine Namensauflösung, beispielsweise mittels gethostbyname(); Resolver checkt als ersten Schritt die .hosts-Datei 2. wird in .hosts-Datei keinen passenden Eintrag gefunden, wird der lokale Cache geprüft 3. erst jetzt wird die Anfrage an den eingetragenen Nameserver weitergereicht und eine Query abgesetzt und eine Antwort (Response) erwartet Abbildung 20: Rekursive Abfrage für die Domain www.bank24.de • recursive query: Nameserver macht gesamte Auflösung und liefert Client die letzendliche IP-Adresse; • non-recursive query: Nameserver antwortet dem Client sinngemäss Ich kenne die Domain ” nicht aber stelle deine Query diesem Server“ (wobei normalerweise gerade einer der RootServer angegeben wird und der Client sich anschliessend von oben nach unten durch den Baum fragen muss) Seite 34 von 48 Zusammenfassung Computernetze 2 SS2007 6.6 DHCP 1. Alle Meldungen sind Broadcasts 2. DHCPDISCOVER ist ein Broadcast. PC hat noch keine IP → 0.0.0.0. Sucht DHCP Server auf Port 67 3. Alle DHCP Server, die Broadcast bekommen haben, senden ein DHCPOFFER an den Client. Dabei wird die MAC-Adresse des Clients, eine vorgeschlagene IP-Adresse, Subnetzmaske, Länge des Lease und die IP des DHCP-Servers mitgeteilt 4. Client antwortet mit einem DHCPREQUEST demjenigen Server, von welchem er als erstes einen DHCPOFFER erhalten hat; auch im DHCPREQUEST enhalten ist ein Broadcast an alle DHCP-Server, dass Client eine IP akzeptiert hat, damit Server die reservierten IP’s wieder verwenden können; wichtige Information ist die DHCP Server-Identifikation, von welchem er die Einstellungen erhalten hat. 5. DHCP broadcastet ein DHCPACK, wenn alles passt 6. DHCPNACK: Server to Client. Lease ist abgelaufen oder angefragte IP ist nicht korrekt 7. DHCPDECLINE: Client to Server. Angebotene Adresse ist schon in Gebrauch 8. DHCPRELEASE: Client to Server. Kündigung des erhalten eines neuen Lease 9. DHCPINFORM: Client to Server. Anfrage für weitere Informationen client’s hardware address, an offered IP address, a subnet mask, the length of the lease, and the IP address of the DHCP server Seite 35 von 48 Zusammenfassung Computernetze 2 SS2007 6.7 Content Distribution Network • CDN’s sind Netze, die aufgebaut werden, um Inhalte geografisch auf CDN Server zu verteilen, und somit schneller verfügbar zu machen • Kunden von CDN Firmen sind die Content Anbieter (beispielsweise Microsoft oder Cisco) • CDN Firmen installieren ihre Server im Internet bei ISP’s und nahe beim User; CDN leitet die User dann zum nächstgelegenen Content-Server weiter • vorallem für streaming audio/video, stored oder realtime • wird ein Load-Balancing durchgeführt Ablauf 1. Beim originalem Web-Server wird eine Anfrage für eine Web-Page gemacht, z.B. www.hsr.ch/page.html 2. Auf dieser Page hat es Links zu Rich Content, welcher auf CDN Servern verteilt ist, also mit entsprechendem Link zu diesen Dateien; Beispielsweise werden Bilder auf CDN-Servern verteilt, so würde also www.hsr.ch/header.gif auf www.cdnserver.com/www.hsr.ch/bilder/header.gi verweisen 3. Browser bekommt Page und macht eine DNS Anfrage zum Name Server der entsprechenden CDN Firma; in unserem Fall eine DNS-Abfrage für www.cdnserver.com 4. von diesem Server wird dann der nächst gelegene Content Server ermittelt und dessen IP zurückgeliefert 6.8 Whois • Herausfinden der email, Postadresse, Telefonnummer von dem, welcher die Domain registriert hat • Herausfinden der adressen der primären und sekundären Nameservern • Person, welche die Domain registriert hat, hält die Informationen in der Whois-DB aktuell • für die Domain muss ein Root Administrator eingetragen sein; ein Administrator der Domain muss identifiziert werden können • mindestens 2 Nameserver müssen pro Domain eingetragen sein • Vergabe von Domain Namen wird dort verwaltet, wo sich der Registrierte eingetragen hat; Beispiel: .ch → nic.switch.ch • IP-Adressen DB wird bei den RIR’s (Regional Internet Registries) verwaltet. Europa → RIPE • IP Adressen werden hierarchisch vergeben; IANA vergibt blöcke von IP-Adressen den Regionalen Internet Registries (RIR) welche die Vergabe wiederum an Lokale Internet Registries (LIR) weitergeben, welche dann die IP dem End-User vergeben Fragen und Antworten • Q: Wer ist für das Aktualisieren der whois-Datenbank verantwortlich? Seite 36 von 48 Zusammenfassung Computernetze 2 SS2007 • A: Eigentümer der Adresse / des Objekts ist für das Aktuellhalten der Daten verantwortlich. • Q: Wie kann man einen whois-Server erreichen? • A: TCP auf Port 43; special whois-Client; Web Interface • Q: Was versteht man unter aktiven und inaktiven Domains? – aktiv : es besteht eine IP-Adresse zu dieser Domain und damit auch mindestens 2 Namensserver – inaktiv : es gibt keine IP-Adresse zur registrierten Domain 7 Wide Area Networks 7.1 Lernziele • Sie kennen die besonderen Anforderungen an Weitverkehrsnetze. • Sie kennen verschiedene WAN Technologien und Public Carrier Services im Überblick: – Mietleitungen, Punkt zu Punkt Verbindungen – Frame Relay – MPLS und MPLS-VPN • Sie können basierend auf deren Vor- und Nachteile entscheiden, welche Technologie sich für ein bestimmtes Problem besonders gut eignet. 7.2 Serial Lines Abbildung 21: WAN Encpasulation on Layer 2 Seite 37 von 48 Zusammenfassung Computernetze 2 SS2007 Dedicated Leased Lines • synchrone Übertragung • Vielfaches von Telefonleitungsspeed (N x 64kBit/s) • wird für Sprachübertragung, teilweise Video, Core WAN & LAN to LAN Connectivity gebraucht 7.3 Point to Point Protocol (PPP) • besteht aus 3 Hauptkomponenten: – Fähigkeit IP-Datagramme auf einer seriellen Verbindung zu kapseln – Link Control Protocol (LCP) zum Aufbau, Konfigurieren und Testen einer Datenverbindung – Familie von Network Control Protocols (NCP) zur Unterstützung verschiedener Protokolle der Netzwerkschicht • connectionless, symmetrisches Punkt-zu-Punkt Protokoll • Übertragung verschiedenster Netzwerkprotokolle • für Dial-in und ISDN DialUp verwendet, ist heute Standard • für Encapsulation von Netzwerk-Layer Datagrammen • benutzt ein HDLC Frame für Encapsulation – Bitstuffing wird verwendet • Link Control Protocol (LCP): – macht Verbindungsauf und -abbau – testet Link auf Quality of Service – konfiguriert Link Seite 38 von 48 Zusammenfassung Computernetze 2 SS2007 Abbildung 22: PPP Frame Format: Das Adressfeld hat immer den Wert 0xFF. Dadurch wird die Zuweisung von Verbindungsadressen vermieden. PPP: Aufbau einer Verbindung in vier Phasen 1. Verbindungsaufbau und Konfigurationsaushandlung: Ein PPP-Ausgangsknoten sendet LCP-Rahmen zur Konfiguration und zum Aufbau der Datenverbindung. 2. Bestimmung der Verbindungsqualität: Verbindung wird getestet, um zu bestimmen, ob ihre Qualität für den Aufruf von Vermittlungsschichtprotokollen (OSI-Schicht) ausreicht. (optionale Phase) 3. Aushandlung der Konfiguration des Vermittlungsschichtprotokolls: PPP-Ausgangsknoten sendet NCP-Rahmen zur Auswahl und Konfiguration, die Protokolle wie IP, IPX und Appletalk werden konfiguriert, so dass Pakete von jedem Protokoll gesendet werden können. 4. Verbindungsbeendung: die Verbindung bleibt für die Kommunikation konfiguriert, bis LCP- oder NCP-Rahmen die Verbindung beenden oder ein externes Ereignis auftritt. (z. B. Inaktivität des Benutzers) Authentication: CHAP oder PAP • CHAP (Challenge Handshake Authentication Protocol): – es werden nur Hashvalues übers Netz geschickt, niemals Passwörter – Local Router oder externer Server hat Kontrolle über Versuche • PAP: – Passwörter werden im Klartext übertragen – Peer hat Kontrolle über Versuche 7.4 Frame Relay • in WAN-Bereich eingesetzt Seite 39 von 48 Zusammenfassung Computernetze 2 SS2007 • packet-switched • Layer 2 Protokoll • ist ein Overlay-Network • verbindungsorientiert: zwischen Geräten bestehen Verbindungen sowie muss der Verbinungsaufbau vor Datenübertragung gemacht werden • virtuelle Verbindungen werden durch DLCI ’s (Data Link Connection Identifier) identifiziert • Connection Types: – Permanent Virtual Circuit (PCV): ständig durchgeschaltet, gut für Lan-Interconnect, nur für kleine Netzwerke geeignet – Switched Virtual Circuit (SVC): temporäre Verbindung; Stati sind: Call setup, data transfer, idle und call termination; gut für grosse Netzwerke, da sehr flexibel Abbildung 23: DLCI’s bei Frame Relay 7.4.1 Congestion Control & Traffic Managment • wird nicht ein per-VC Flow Control gemacht, sonder über das DE-Bit (Discard Eligibility) die zu verwerfenden Pakete gekennzeichnet (werden z.B. mit Leaky-Bucket-Algorithmus ausgewählt) • ein Vertrag ist auf folgenden Parametern aufgebaut: – CIR, AR, EIR, Bc, Be, Tc Seite 40 von 48 Zusammenfassung Computernetze 2 SS2007 7.5 MPLS und MPLS-VPN • operiert zwischen Layer-2 und Layer-3, daher der Term Layer-2.5-Protocol • spezielle Router, sog. Label Switching Router (LSR) sind notwendig • kann ganz verschiedener Traffic versendet werden, also Unterstützung anderer Protokolle: IP, ATM, SONET oder Ethernet-Frames • innerhalb des Netzes werden nur noch Labels zur Weiterleitung verwendet, keine IPAdressen mehr; hierfür muss ein MPLS Header zwischen Linklayer- und NetworklayerHeader geschoben werden Seite 41 von 48 Zusammenfassung Computernetze 2 SS2007 • Connectivity auf Labelstufe wird mit Hilfe des Label Distribution Protcol (LDP) gemacht • Label Allocation findet wie folgt statt (in packet-mode) – traditionelle IP Routing Protokolle bilden Routing Tables – jeder LSR weist allen Destinations in der Routing Table ein Label zu, unabhängig von anderen LSR’s – LSR’s geben die zugewiesenen Label-Informationen an andere LSR weiter; wird mit Hilfe von LDP gemacht – jeder LSR bildet seine Label Information Base (LIB) anhand der erhaltenen Informationen Abbildung 24: Architektur von LSR’s bestehend aus den zwei Hauptteilen Control Pane und Data Plane. MPLS-VPN • VPN’s werden eindeutig mittels Label und VPN-ID identifiziert; kein Gebrauch von IP Adressierung mehr • Data Privacy über logisch getrennte Pfade, welche per Label geswitched sind • QoS kann implementiert werden, oft in Kombination mit MPLS-Traffic Engineering Seite 42 von 48 Zusammenfassung Computernetze 2 SS2007 • VPN’s per MPLS werden wie folg erzeugt: 1. Service Provider Netzwerk benutzt IGP (Interior Gateway Protocol), wie zum Beispiel OSPF oder RIP, um Erreichbarkeit innerhalb des Netzes zu gewährleisten 2. Customer Edge Router (CE) and Provider Edge Router (PE) tauschen untereinander Routing Informationen aus; auf Stufe IP 3. PE’s tauschen VPN Routing Informationen und Label Bindings aus, alles via mBGP (m für Multiprotocol) 4. LDP wird zur Bindung von Labels zu Routen in Core verwendet • PE Routers haben separate Routing Table pro VPN • es existiert aber eine globale Routing-Table für das SP Netzwerk 8 IPv6 Header Abbildung 25: Vereinfachter Header von IPv6: wirkt übersichtlicher gegenüber IPv4 • Class: gibt an, mit welcher Priorität die Daten auf dem Weg zum Ziel behandelt werden • Flow-Label: Kennzeichnet einen Datenstrom zwischen Sender und Empfänger. Hierzu tragen alle Pakete, die zu einem bestimmten Datenstrom gehören, in diesem Feld den gleichen Wert. • Next: Kennzeichnet den Typ des nächsten Header. Der Eintrag ”59”bedeutet, dass weder weitere Header noch Daten folgen. Seite 43 von 48 Zusammenfassung Computernetze 2 SS2007 • Überblick • 128 Bit lange IP-Adressen • Vereinfachte Struktur des Headers: auf absolutes Minimum reduziert; ermöglicht schnellere Verarbeitung • Verkettete Header für den Transport von Optionen: nicht mehr mit variablen Headerlängen wie bei IPv4, sondern durch Verkettung verschiedener Header; jeder Header hat bestimmte Funktion und nur bei Bedarf verwendet • Optionen für Verschlüsselung und Authentisierung auf IP-Ebene • Neue Klassifizierung von Datenströmen (Flows) für einen optimierten Transport von Audiound Video-Daten • Vereinfachung der manuellen Konfiguration • Verbesserung der Flusskontrolle und der Erkennung von Engpässen • Spezielle Mechanismen zur Entdeckung und Überwachung von Nachbarn beim Einsatz auf Routern Seite 44 von 48 Zusammenfassung Computernetze 2 SS2007 9 Anhang 9.1 Begriffserklärungen Peering: Abkommen zwischen zwei oder mehr ISP’s zum Routen von Traffic zwischen den Vertragspartnern, Datentransfer kostenneutral zwischen zwei Providern austauschen. IANA: definiert Portnummern, Protokoll-Typen etc, Mission: Preserve central coordinating ” function to of the global Internet for the public good.“ ARP: Zuordnung von Netzwerkadressen zu Hardwareadressen, RARP macht das umgekehrte DNS: Domain Name System, Umsetzung von DNS-Namen zu IP-Adressen; IP-Adresse von Server somit änderbar, Name bleibt gleich → Zugriff funktioniert immer noch; Namensraum in Zonen unterteil IP, Internet Protocol: unzuverlässig, best-effort, verbindungsloses paketorientiertes Protokoll; Ende-zu-Ende-Verbindungen: Weitervermittlung durch Zwischenstation genutzt, läuft auf höheren Netzwerkschichten (4-7 im OSI-Modell) ab; gehen Pakete verloren, kümmert sich IP nicht darum; Punkt-zu-Punkt-Verbindungen: Verbindungen ohne vermittelnde Zwischenstation, also Kommunikation in den unteren Netzwerkschichten (1-3 im OSI-Modell) DHCP: dynamische Zuweisung einer IP-Adresse und weiterer Konfigurationsparameter an Computern in einem Netzwerk; DHCP-Server liefert IP-Adressen, Subnet Mask, IP-Adresse des Standard-Gateways, IP von DNS-Servers Bridge: auf MAC-Layer; leiten Pakete aufgrund des netzwerkteils der IP-Adresse des Pakets weiter; leitet alle Pakete mit Broadcast-Adressen weiter MSS: definiert die maximale Anzahl von Oktetts, die als Nutzdaten in einem TCP-Segment versendet werden können; muss mind. 40 Bytes (20Bytes IP Header, 20Bytes TCP Header) kleiner sein als MTU, damit keine Fragmentierung stattfindet auf tieren Layern Encapsulation: Hinzufügen von Kontrollinformationen in Datenpaketen; specifies how IP datagrams must be inserted in a frame specific for the network to be used and how IP datagrams could be distinguished from other services available on this specific network Seite 45 von 48 Zusammenfassung Computernetze 2 SS2007 Overlay-Network: Computer Netzwerk über einem anderem Netzwerk; Nodes kommunizieren durch virtuelle Verbindungen miteinander, wobei jede dieser Verbindungen über einen Pfad und womöglich über mehrere physikalische Verbindungen im darunterliegenden Netz durchgeschaltet sind; Beispiel: peer-to-peer Netzwerke virtuelle Verbindungen (virtual Circuits): logische Kanäle, die in einem Nachrichtennetz durch die Aufteilung der Übertragungskapazität entstehen, die eine physikalische Nachrichtenverbindung bietet. Über jeden dieser logischen Kanäle kann jeweils ein eigener Bitstrom gesendet werden. Diese Aufteilung in logische Kanäle wird realisiert, indem auf der Sendeseite die einzelnen Bitströme segmentiert werden und dann in der Nutzlast von Paketen oder Zellen über das Nachrichtennetz transportiert werden. Auf der Empfängerseite wird die Nutzlast wieder ausgepackt und die einzelnen Bitströme werden wiederhergestellt. Die Pakete bzw. Zellen erhalten aber keine Quell- oder Zieladresse wie z. B. ein Datagramm, sondern eine Verbindungskennung, aus der hervorgeht, zu welcher virtuellen Verbindung sie gehören DLCI, Data Link Connection Identifier: Verbindungskennung bei Frame Relay; hat nur lokale Bedeutung; Grösse im Header ist 15Bit (32768 Verbindungen maximal) Committed Information Rate (CIR): beim Bitratenmnagement festgelegte Datenvolumen einzelner virtueller Verbindungen; rate (in bps) that the network agrees to support for a particular VC Committed Burst (Bc): zusätzliche Datenmenge, die in einem bestimmten Zeitintervall am FR-Anschluss zur Verfügung stehen soll; sie dient dazu, Spitzenlasten mit hohem Bandbreitenbedarf aufzufangen, ohne die CIR erhöhen zu müssen Excess Burst (Be): gibt an, um welche Datenmenge die Committed Burst Size (Bc) in einem bestimmten Zeitintervall überschritten werden kann, wenn im FR-Netz Überkapazitäten vorhanden sind; die maximale Übertragungsrate des FR-Anschlusses ergibt sich aus der Committed Burst Size und der Excess Burst Size. Extended Information Rate (EIR): allowance of burstable bandwidth known as the Extended Information Rate (EIR) Autonomous System (AS): Gruppe von Netzen unter gemeinsamer Administration, in der Regel einheitlichem IGP; ein solches AS kann in mehrere Bereiche, Areas genannt, unterteilt werden; ein autonomes System erhält eine 16 (in Zukunft 32) Bit große Identifikation, die durch die Internet Assigned Numbers Authority (IANA) vergeben wird. stub network: Netzwerk ohne Nachbarn Seite 46 von 48 Zusammenfassung Computernetze 2 SS2007 Broadcast-Netzwerk: diese Art Netzwerk hat die Fähigkeit, ein Paket simultan an alle Router zu schicken Rendezvous Point (RP): Punkt (Router), an welchem MC-Sender sich mit MC-Receivern verbinden Uniform Resource Identifier (URI): ist ein Identifikator und besteht aus einer Zeichenfolge, die zur Identifizierung einer abstrakten oder physischen Ressource dient; werden zur Bezeichnung von Ressourcen (wie Webseiten, sonstigen Dateien, Aufruf von Webservices, aber auch z. B. E-Mail-Empfängern) im Internet und dort vor allem im WWW eingesetzt. Uniform Resource Locator (URL): ist eine Unterform von URI’s; URLs identifizieren eine Ressource über das verwendete Netzwerkprotokoll (beispielsweise http oder ftp) und den Ort (engl. location) der Ressource in Computernetzwerken. Seite 47 von 48 Index ARP, 45 AS, Autonomous System, 46 Bc, 46 Be, 46 Bridge, 45 Broadcast-Netzwerk, 47 CIR, 46 DHCP, 45 DLCI, 46 DNS, 45 EIR, 46 Encapsulation, 45 Ende-zu-Ende-Verbindungen, 45 IANA, 45 IP, 45 MSS, 45 Overlay-Network, 46 Peering, 45 Punkt-zu-Punkt-Verbindungen, 45 RP, Rendezvous Point, 47 stub network, 46 URI, Uniform Resource Identifier, 47 URL, Uniform Resource Locator, 47 virtuelle Verbindungen,virtual Circuit, 46