Versuch 787. TCP/IP Internetworking



Ähnliche Dokumente
ICMP Internet Control Message Protocol. Michael Ziegler

Netzwerke 3 Praktikum

15 Transportschicht (Schicht 4)

Einführung in IP, ARP, Routing. Wap WS02/03 Ploner, Zaunbauer

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Netzwerk-Migration. Netzwerk-Migration IACBOX.COM. Version Deutsch

Guide DynDNS und Portforwarding

Grundlagen der Rechnernetze. Internetworking

4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen

DNÜ-Tutorium HS Niederrhein, WS 2014/2015. Probeklausur

Routing im Internet Wie findet ein IP Paket den Weg zum Zielrechner?

IAC-BOX Netzwerkintegration. IAC-BOX Netzwerkintegration IACBOX.COM. Version Deutsch

Grundkurs Routing im Internet mit Übungen

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung

Tutorial -

Ether S-Net Diagnostik

UDP-, MTU- und IP- Fragmentierung

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Konfiguration eines DNS-Servers

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)

Praktikum IT-Sicherheit

Vorlesung 11: Netze. Sommersemester Peter B. Ladkin

Anbindung des eibport an das Internet

CCNA Exploration Network Fundamentals. Chapter 6 Subnetze

KN Das Internet

TCP/UDP. Transport Layer

IP Adressen & Subnetzmasken

Stefan Dahler. 1. Remote ISDN Einwahl. 1.1 Einleitung

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Step by Step Webserver unter Windows Server von Christian Bartl

CCNA Exploration Network Fundamentals. ARP Address Resolution Protocol

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

How-to: Webserver NAT. Securepoint Security System Version 2007nx

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster.

TCP/IP-Protokollfamilie

Konfigurationsanleitung Network Address Translation (NAT) Funkwerk. Seite Copyright Stefan Dahler Oktober 2008 Version 1.

Seite Wireless Distribution System (Routing / Bridging) 3.1 Einleitung

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

Internetzugang Modul 129 Netzwerk Grundlagen

1. Der Router ist nicht erreichbar Lösungsansatz: IP Adresse des Routers überprüfen ( entweder irgendwo auf dem Gerät aufgeklebt oder im Handbuch )

Switching. Übung 7 Spanning Tree. 7.1 Szenario

Technical Note ewon über DSL & VPN mit einander verbinden

WLAN Konfiguration. Michael Bukreus Seite 1

Öffnen Sie den Internet-Browser Ihrer Wahl. Unabhängig von der eingestellten Startseite erscheint die folgende Seite in Ihrem Browserfenster:

Wie macht man einen Web- oder FTP-Server im lokalen Netzwerk für das Internet sichtbar?

Netzwerkeinstellungen unter Mac OS X

7. TCP-IP Modell als Rollenspiel

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Port-Weiterleitung einrichten

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

CSMA/CD: - keine Fehlerkorrektur, nur Fehlererkennung - Fehlererkennung durch CRC, (Jabber) Oversized/Undersized

Grundlagen TCP/IP. C3D2 Chaostreff Dresden. Sven Klemm

ICS-Addin. Benutzerhandbuch. Version: 1.0

FTP-Leitfaden RZ. Benutzerleitfaden

1.1 Wireshark Bedienung (Die neuste Wireshark-Version sieht leicht anders aus!) 1.2 Aufzeichnung starten. LAN-Komponenten in Betrieb nehmen Modul 129

Konfiguration von Exchange 2000 zum versenden und empfangen von Mails & Lösung des SEND after POP Problems

Im Folgenden wird die Konfiguration der DIME Tools erläutert. Dazu zählen die Dienste TFTP Server, Time Server, Syslog Daemon und BootP Server.

a.i.o. control AIO GATEWAY Einrichtung

Gefahren aus dem Internet 1 Grundwissen April 2010

Internet Routing am mit Lösungen

System-Update Addendum

Fragenkatalog zum Versuch IP-Networking und Wireless LAN Praktikum Kommunikations- und Netzwerktechnik (I5) Inhaltsverzeichnis

Routing und DHCP-Relayagent

-Versand an Galileo Kundenstamm. Galileo / Outlook

Netzwerk- Konfiguration. für Anfänger

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

Windows Server 2012 RC2 konfigurieren

Kommunikations-Management

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Übung zur Vorlesung Sicherheit in Netzen und verteilten Systemen Sommersemester Übungsleiter: Sebastian Ebers,

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

HBF IT-Systeme. BBU-NPA Übung 4 Stand:

Live Update (Auto Update)

ISA Server 2004 stellt verschiedene Netzwerkvorlagen zur Einrichtung einer sicheren Infrastruktur zur Verfügung:

Man unterscheidet zwischen LAN (Local Area Network) und WAN (Wide Area Network), auch Internet genannt.

Netzwerk. Um den Hostnamen angezeigt zu bekommen $ hostname $ hostname -f Um den Hostnamen zu ändern $ hostname <neuerhostname>

Windows 2008R2 Server im Datennetz der LUH

DNÜ-Tutorium HS Niederrhein, WS 2014/2015. Probeklausur

Inhalt. Erreichbarkeit von VPN-Gateways hinter einem Genexis FTTH-Abschlussrouter

Netzwerk einrichten unter Windows

Rechnernetze Praktikum Versuch 2: MySQL und VPN

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

(Hinweis: Dieses ist eine Beispielanleitung anhand vom T-Sinus 154 Komfort, T-Sinus 154 DSL/DSL Basic (SE) ist identisch)

Gemeinsam statt einsam - ein Internet-Zugang für mehrere Rechner Wie geht das? - Tricks und Verfahren einer Technik, die wirklich Geld spart.

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Stefan Dahler. 2. Wireless LAN Client zum Access Point mit WPA-TKIP. 2.1 Einleitung

1 von :04

2.3 Applikationen. Protokolle: TCP/IP. Telnet, FTP, Rlogin. Carsten Köhn

HostProfis ISP ADSL-Installation Windows XP 1

Kommunikations-Parameter

1. IPSec Verbindung zwischen 2 Gateways mit dynamischen IP Adressen

IP routing und traceroute

Transkript:

Interdisziplinäres Laborpraktikum Masterpraktikum ET Versuch 787 Technische Universität Hamburg-Harburg Institut für Kommunikationsnetze E-4

Inhalt 1 Einleitung... 3 2 TCP/IP Grundlagen... 5 2.1 IP-Adressierung und Routing... 5 2.2 IP-Datagramm-Format... 7 2.3 TCP Header... 9 2.4 ICMP Nachrichten... 10 2.5 Address Resolution Protocol ARP... 11 2.6 Reverse Address Resolution Protocol RARP... 11 2.7 TCP/IP Flusskontrolle... 11 2.8 DNS - Domain Name System... 13 3 Fragen zur Vorbereitung des Praktikums... 14 4 Versuchsaufbau... 15 5 Versuchsdurchführung... 15 5.1 Nützliche Werkzeuge... 16 5.2 ARP und DNS... 17 5.3 Routing in lokalen Netzen... 18 5.4 Transport Layer Protokoll: TCP... 19 5.5 Anwendungen HTTP... 21 6 Literatur und Links... 22 Document - History Version Release Author(s) Notes 1.9 Unknown T. Müller et al. 2.0 April 2010 J. Eymann Updated external IP addresses, general revision 2.1 April/May 2011 T. Müller/J. Eymann Adapted and revised for new HW and OS 2.2 March 2013 J. Eymann Minor modifications and updates 2/21

1 Einleitung Die TCP/IP Protokoll-Suite ist heute der de facto Standard für die Kommunikation zwischen Computern. Die TCP/IP (Transmission Control Protocol / Internet Protocol) Protokoll-Suite treibt WWW und Internet und ist heute auf der ganzen Welt das Protokoll der Wahl. Ziel der Entwicklung von TCP/IP war es, eine Kopplung von verschiedenen Netzwerken zu einem gemeinsamen 'internetwork' oder 'Internet' zu schaffen, welches universelle Kommunikationsdienstleistungen über heterogene physikalische Netzwerkstrukturen ermöglicht. Wie andere Netzwerksoftware auch, wird TCP/IP durch ein Schichtenmodell repräsentiert (siehe 1). Abbildung 1: TCP/IP Schichtenmodell Die einzelnen Schichten kommunizieren über definierte Schnittstellen miteinander - jede Schicht bietet der darüber liegenden einen Service an bzw. nutzt den Service der darunter liegenden Schicht. Beschreibung der einzelnen Schichten des TCP/IP Protokoll-Stacks: Application Layer: Der Application Layer unterstützt die Programme, die TCP/IP zur Kommunikation (mit anderen Rechnern) nutzen. Die Schnittstelle zwischen dem 'Application Layer' und dem 'Transport Layer' wird über sog. Port- Nummern definiert. Transport Layer: Der Transport Layer unterstützt den Ende-zu-Ende Datentransfer, in dem Daten von einer Anwendung zu einer entfernten Partnerinstanz weitergereicht werden. Mehrere Anwendungen werden dabei gleichzeitig unterstützt. Das am häufigsten verwendete Transport Layer Protokoll ist dabei TCP, welches eine verbindungsorientierte, zuverlässige, Sequenz erhaltende Datenübertragung, eine Flusskontrolle sowie eine Überlastabwehr zur Verfügung stellt. 3/21

Das zweite Transport Layer Protokoll ist UDP (User Datagram Protocol). UDP wird durch einen verbindungslosen, unzuverlässigen Service charakterisiert. Das hat zur Folge, dass Anwendungen, welche UDP verwenden, entweder auf Flusskontrolle, Datenintegrität und Überlastabwehr verzichten, oder diese Merkmale selbst zur Verfügung stellen. UDP wird daher vorwiegend von Anwendungen genutzt, die auf einen schnellen Transportmechanismus angewiesen sind, dabei jedoch den Verlust kleinerer Datenmengen tolerieren können (z. B. Video-Übertragung). Internetwork Layer: Der Internetwork Layer (auch Internet Layer oder Network Layer) stellt das Bild eines virtuellen Netzwerks bereit und trennt die höheren Protokollschichten vom physikalischen Netzwerk. Das Internet Protokoll (IP) ist das wichtigste Protokoll innerhalb dieser Schicht. IP ist ein verbindungsloses Protokoll und erwartet keinerlei Verlässlichkeit von der darunter liegenden Schicht. IP selbst stellt keinerlei Verlässlichkeit, Flusskontrolle oder Fehlerkorrektur bereit diese Funktionen müssen von höheren Schichten bereit gestellt werden. IP liefert eine Routing-Funktionalität, die das Bestreben hat, übertragene 'Nachrichten' an die Zieladresse auszuliefern. Die Einheit einer solchen Nachricht in einem IP-Netz wird als 'IP-Datagramm' oder 'IP-Paket' bezeichnet. Weitere Protokolle im Internetwork Layer sind ICMP, ARP, RARP und IGMP. Network Interface Layer: Der Network Interface Layer, auch 'Link Layer' oder 'Data-Link Layer', ist die Schnittstelle zur realen Netzwerk-Hardware. An dieser Stelle wird von TCP/IP keinerlei Protokoll spezifiziert, es wird praktisch jedes verfügbare Netzwerk-Interface unterstützt (Ethernet, FDDI, X.25, Wireless, ATM...). Die Basis für diesen Praktikumsversuch ist das 'Ethernet' (IEEE 802.3). Das Grundkonzept der Norm IEEE 802.3 sieht vor, dass eine Station, sobald sie senden will, das Kabel abhört. Wenn das Kabel belegt ist (d. h. eine andere Station sendet gerade), wartet die Station, bis es frei ist, ansonsten sendet sie sofort. Wenn zwei oder mehr Stationen gleichzeitig auf ein freies Kabel zugreifen, erfolgt eine Kollision. Jede dieser Stationen unterbricht dann die Übertragung, wartet eine zufallsgesteuerte Zeitspanne und wiederholt den ganzen Vorgang. Ursprung dieser Normung war das zur Übertragung verwendete Koaxialkabel, bei dem jede Station über einen Abzweig (T-Verbindung) mit diesem Kabel verbunden war. Dieses ist heute kaum noch anzutreffen, es wird statt dessen vorwiegend das ebenfalls in 802.3 spezifizierte Kabel vom Typ 10Base-T ('twisted pair') benutzt. Hier gibt es kein gemeinsames Kabel mehr, die Stationen werden im Normalfall über einen sog. Hub miteinander verbunden. Dieser Hub besitzt eine Anzahl Steckverbindungen und erlaubt so den direkten Anschluss der Stationen, er bildet somit das klassische Koaxialkabel nach und stellt in der Praxis meist den Sternpunkt der Verkabelung dar. Je mehr Stationen an ein 802.3 LAN (Local Area Network) angeschlossen werden, um so stärker wird selbstverständlich der Verkehr und irgendwann ist die Kapazität des LAN erschöpft. Eine Möglichkeit aus diesem Engpass heraus ist die Umstellung auf eine höhere Geschwindigkeit, z.b.von 10 auf 100 Mbit/s ('Fast Ethernet'). Eine weitere Möglichkeit besteht darin, eine Vermittlung des Verkehrs vorzunehmen. Diese Vermittlungseinheit ('Switch') ist so gestaltet, dass der von einer Station kommende Verkehr nur an die Zielstation weitergeleitet wird (sofern sich an jedem Port der Vermittlung auch nur eine Station befindet). Für den Fall, dass eine Zielstation von zwei Quellen gleichzeitig angesprochen wird, werden die Daten zwischengespeichert, sodass keine Kollision bzw. kein Datenverlust auftritt. Hierbei ist jedoch zu berücksichtigen, dass die Größe des Pufferspeichers endlich ist. Verkapselung von Daten Beim Versand werden Daten von der Anwendung an den Transport Layer übergeben. Dieser fügt den Daten zusätzliche Steuerungsinformationen für das Transport Layer Protokoll hinzu (bei TCP z. B. den 'TCP Header') und übergibt die Daten an den Internetwork Layer. Der Internetwork Layer fügt seinerseits Steuerinformationen (bei IP den 'IP Header') hinzu und übergibt die Daten an den Network Interface Layer, der ebenfalls seine Steuerinformationen hinzufügt. Erst auf der untersten Schicht werden die Daten physikalisch übertragen. Auf der Empfängerseite durchlaufen die Daten die verschiedenen Schichten in 4/21

umgekehrter Reihenfolge, wobei jede Schicht ihre Steuerinformationen entfernt und nur den Datenteil an die nächste Schicht weiterreicht. Diese Verkapselung von Daten ist in 2 dargestellt. Bei der Datenverkapselung ist zu berücksichtigen, dass es nicht immer möglich ist, die Daten in der vorliegenden Form 'in einem Stück' zu verschicken. Daher besteht grundsätzlich die Möglichkeit der Fragmentierung, um die zu verschickende Datenmenge auf mehrere Pakete aufzuteilen. Im Verlauf des Praktikums werden wir das Verhalten der Nachrichten auf den Schichten TCP, IP und Ethernet betrachten. Die Adressierung erfolgt beim TCP auf der Grundlage von Ports, beim IP auf der Grundlage von IP- Adressen und beim Ethernet auf der Grundlage von MAC-Adressen (Media Access Control). Abbildung 2: Verkapselung von Daten 2 TCP/IP Grundlagen 2.1 IP-Adressierung und Routing IP-Adressen ermöglichen es, jedem Netzwerk bzw. jedem Endsystem ('Host') im Internet eine einmalige/eindeutige Adresse zuzuweisen. IP-Adressen haben grundsätzlich eine Länge von 32 Bit (IPv4), dargestellt werden diese Adressen als vier, jeweils durch einen Punkt getrennte und dezimal notierte Bytes. Der mögliche Adressbereich geht von 1.0.0.1 bis 223.255.255.255. IP-Adressen bestehen aus drei Teilen: Der erste Teil bestimmt das Netzwerk, der zweite Teil das sog. Subnetz und der dritte Teil identifiziert den Host. Eine IP-Adresse kann also entsprechend ein Netzwerk (die 'Host ID' der Adresse ist 0) oder einen 5/21

einzelnen Rechner adressieren. Eine Reihe von IP-Adressen sind reserviert bzw. mit festen Funktionen belegt. Eine Adresse der Form xxx.xxx.xxx.0 adressiert grundsätzlich ein Subnetz, die Adresse xxx.xxx.xxx.255 in diesem Subnetz repräsentiert den sog. 'Broadcast'. Auf jedem Host ist die Adresse 127.0.0.0 für das immer vorhandene, sog. 'local loopback interface' reserviert, die Adresse 0.0.0.0 beschreibt das 'Default Gateway'. Kommt ein IP-Paket in einem Router an, wird seine Zieladresse in der Routing- Tabelle nachgeschlagen. Ist das Paket für ein entferntes Netz bestimmt, wird es an den nächsten Router an der in der Tabelle aufgeführten Schnittstelle weitergegeben. Ist das Ziel ein lokaler Host (z. B. im LAN des betreffenden Routers), wird das Paket direkt dorthin übertragen. Ist das Netz nicht vorhanden, wird das Paket an einen Vorgabe-Router ('Default Gateway') geschickt, der ausführlichere Tabellen hat. Dieser Algorithmus bedeutet, dass jeder Router nur andere Netze und lokale Hosts, nicht aber Netz/Host-Paare verwalten muss, wodurch sich der Umfang der Routing-Tabelle reduziert. Beispiel für eine lokale Routing-Tabelle: torax{username}23: /sbin/route ne Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.8.8 192.168.8.1 255.255.255.255 UGH 40 0 0 eth1 10.10.10.0 0.0.0.0 255.25.255.0 U 40 0 0 eth0 192.168.8.0 0.0.0.0 255.255.255.0 U 40 0 0 eth1 192.168.20.0 192.168.8.5 255.255.255.0 UG 40 0 0 eth1 0.0.0.0 10.10.10.10 0.0.0.0 UG 40 0 0 eth0 Dargestellt ist die Routing-Tabelle eines mit zwei Netzwerkkarten ausgestatteten Routers eingestellt sind Default Gateway sowie Routen zu einem Host bzw. Netz. 6/21

2.2 IPv4-Datagramm-Format Der IPv4-Datagramm-Header hat eine Länge von mindestens 20 Oktetts (1 Oktett = 8 Bit). Der Aufbau ist in 3 dargestellt, Abbildung 3: IPv4-Datagramm wobei: VERS: IP-Protokoll-Version HLEN: Länge des IP-Headers in 32-Bit-Einheiten (ohne Datenfeld) DSCP: enthält die Angabe zum 'Quality of Service', der für dieses Datagramm gewünscht wird Total Length: Gesamtlänge des Datagramms (Header und Daten) ID: eine einmalige, vom Sender vergebene Zahl zur Unterstützung der Reassemblierung fragmentierter Datagramme jedes Fragment eines Datagramms besitzt die selbe ID FLG: enthält die Flags DF (don't fragment) und MF (more fragments) Fragment Offset: zur Unterstützung der Reassemblierung fragmentierter Datagramme TTL: Time-to-Live, spezifiziert die maximal erlaubte Laufzeit (in Sekunden) des Datagramms Protocol: Protokoll-Nr., dieses Feld bestimmt das Protokoll einer höheren Schicht, an welches die Daten dieses Datagramms geliefert werden sollen: - 0: Reserved - 1: ICMP - 2: IGMP - 3: Gateway-to-Gateway Protocol - 4: IP (IP encapsulation) - 5: Stream 7/21

- 6: TCP - 8: Exterior Gateway Protocol (EGP) - 9: Private Interiour Routing Protocol - 17: UDP - 41: IPv6-50: Encap Security Payload for Ipv6-51: Authentication Header for IPv6-89: Open Shortest Path First (OSPF) Header Checksum: Prüfsumme für die im Header enthaltenen Daten falls die Checksumme nicht zum Inhalt passt, wird das Datagramm verworfen Source IP Address: 32-Bit-IP-Adresse der Quelle Destination IP Address: 32-Bit-IP-Adresse des Ziels IP Options: optionales Feld variabler Länge für IP-Implementierungen, wird nicht zwangsweise benutzt Padding: wird das Options-Feld genutzt, wird das Datagramm bis zur nächsten 32-Bit-Grenze mit Nullen aufgefüllt Data: die im Datagramm enthaltenen Daten 8/21

2.3 TCP-Segment-Struktur Die im Transport Layer ausgetauschten Nachrichten werden auch als Segmente bezeichnet. 4 zeigt den Aufbau eines Segments bei TCP, Abbildung 4: TCP-Segment wobei das Feld 'Control Bits' folgende sechs 1-Bit-Flags enthält: URG wird auf 1 gesetzt, wenn Urgent Pointer benutzt wird. Urgent Pointer bezeichnet einen Byteversatz von der aktuellen Folgenummer (s. u.), an der dringende Daten vorgefunden werden; diese Funktion ersetzt Interrupt-Nachrichten ACK wird auf 1 gesetzt um anzugeben, dass die Bestätigungsnummer gültig ist. Ist ACK auf 0 gesetzt, enthält das Segment keine Bestätigung; in diesem Fall wird das Feld 'Acknowledgement Number' ignoriert PSH bezeichnet PUSH-Daten; der Empfänger wird damit aufgefordert, die Daten der Anwendung bei Ankunft bereitzustellen und sie erst zwischenzuspeichern, wenn ein voller Puffer eingegangen ist RST wird benutzt, um eine Verbindung zurückzusetzen, wenn ein Host abgestürzt ist oder eine ähnliche Störung vorliegt. Es wird auch benutzt, um ein ungültiges Segment oder einen Versuch, eine Verbindung zu öffnen, abzuweisen SYN wird benutzt, um Verbindungen aufzubauen FIN wird benutzt, um eine Verbindung abzubauen Die 'Sequence Number' wird in Bytes angegeben und bezeichnet die Folgenummer des ersten Datenbytes in diesem Segment. Die 'Acknowledgement Number' wird ebenfalls in Bytes angegeben und gibt den Wert der nächsten erwarteten Folgenummer an (sofern das ACK Control Bit gesetzt ist). Im Feld 'Options' ist unter anderem während des Verbindungsaufbaus die 'MSS' (Maximum Segment Size) zu finden. 9/21

2.4 Internet Control Message Protocol - ICMP Der Betrieb des Internets wird eng von den Routern überwacht. Passiert etwas unerwartetes, wird das Ereignis vom ICMP (Internet Control Message Protocol) berichtet, das im Internet auch für Testzwecke benutzt wird. Jeder ICMP-Nachrichtentyp wird in einem IP-Datagramm verkapselt. Im IP-Header ist in diesem Fall das Feld 'Protocol Number' auf 1, das Feld 'Service Type' auf 0 gesetzt. Das IP-Feld 'Data' enthält die ICMP-Nachricht wie in 5 dargestellt, Abbildung 5: ICMP-Nachrichtenaufbau wobei die einzelnen Felder folgende Bedeutung besitzen: Type: - 0: Echo reply (ping) - 3: Destination unreachable - 4: Source quench - 5: Redirect - 8: Echo request (ping) - 9: Router advertisement - 10: Router solicitation - 11: Time exceeded - 12: Parameter problem - 13: Timestamp request - 14: Timestamp reply - 15: Information request (obsolete) - 16: Information reply (obsolete) - 17: Address mask request - 18: Address mask reply - 30: Traceroute - 31: Datagram conversion error - 37: Domain name request - 38: Domain name reply Code: enthält den Fehlercode für das Datagramm, für welches diese ICMP-Nachricht generiert wurde; die Interpretation ist vom Typ der Nachricht abhängig Checksum: enthält die Prüfsumme für diese ICMP-Nachricht Data: enthält weitere Informationen zu dieser ICMP-Nachricht; typisch ist hier der Anteil der ursprünglichen IP-Nachricht enthalten, für den diese ICMP-Nachricht generiert wurde 10/21

2.5 Address Resolution Protocol ARP Will ein Rechner ein IP-Datenpaket verschicken, so wird dieses zunächst zum Data Link Layer weitergeleitet, dort in einen Rahmen (z. B. einen Ethernet-Rahmen) verkapselt und dann übertragen. Da der Data Link Layer eines LANs (wie z. B. Ethernet) mit 6-Byte-MAC-Adressen (Hardware-Adresse der Netzwerkkarte) arbeitet und keinerlei Kenntnis über IP-Adressen besitzt, ist an dieser Stelle eine Übersetzung dieser Adressen erforderlich. Diese Übersetzung wird vom ARP (Address Resolution Protocol) vorgenommen. Jeder Host in einem LAN unterhält eine ARP-Tabelle, die Einträge in der Form < IP Adresse, MAC Adresse > enthält. Mit dem Befehl arp a kann der Inhalt der lokalen ARP-Tabelle angezeigt werden. Ist die gewünschte Adresse nicht in der lokalen Tabelle enthalten, wird ein 'Broadcast' in Form eines sog. 'ARP request' auf das Netz geschickt. Sobald ein Rechner in diesem Netz seine eigene Adresse in einem solchen 'ARP request' erkennt, wird er mit einem 'ARP reply' dem anfragenden Rechner antworten. Diese Antwort enthält die physikalische Hardware-Adresse sowie evtl. Routing-Informationen. Diese Informationen werden dann wiederum in der lokalen ARP-Tabelle des anfragenden Rechners gespeichert. Alle folgenden, für diese Adresse bestimmten IP-Datagramme können nun mit der physikalischen Adresse versehen und direkt verschickt werden. 2.6 Reverse Address Resolution Protocol RARP Einige Rechner in einem Netzwerk, z. B. 'diskless' Workstations, kennen nach dem Bootvorgang möglicherweise ihre eigene IP-Adresse nicht. Um diese Adresse festzustellen, verwenden sie einen dem ARP entsprechenden Mechanismus, jedoch ist in diesem Fall die Hardware-Adresse der bekannte Parameter und die zugehörige IP-Adresse wird erfragt. Ein grundsätzlicher Unterschied zum ARP besteht beim RARP jedoch darin, dass ein entsprechender Server im Netzwerk mit einer vollständigen Tabelle der erforderlichen Adresspaare existieren muss. 2.7 TCP/IP Flusskontrolle Flusskontrolle auf Empfängerseite durch 'Sliding Window Flow Control' Die im TCP durchgeführte Flusskontrolle zur Vermeidung der Überlastung auf Empfängerseite erfolgt nach dem 'Sliding Window Flow Control'-Mechanismus. Entwickelt wurde dieses Verfahren aus den ursprünglichen 'Stop-and-Wait'-Protokollen, bei denen die Quelle erst dann ein neues Segment verschicken kann, wenn für das letzte gesendete Segment eine Bestätigung eingegangen ist. Dabei wird die Übertragung durch das 'ACK' (die Bestätigung) getaktet. Dieses Verfahren verliert jedoch an Effizienz, wenn der Pfad zwischen Sender und Empfänger länger, d. h. die Laufzeit der Segmente auf ihrem Weg größer wird die Übertragungsrate wird durch die längere 'Round Trip Time' verringert. Eine Lösung dieses Problems besteht darin, der Quelle die Möglichkeit zu geben, eine gewisse Anzahl von Segmenten zu senden, bevor die erste Bestätigung erwartet wird. Dieses kann einen annähernd kontinuierlichen Datenfluss ermöglichen. 'Sliding Window Flow Control' realisiert ein solches Verfahren, bei dem das Fenster (Window) die maximale Menge an Daten bestimmt, die ohne Bestätigung verschickt werden können. 1. verschicke Daten gemäß der aktuellen 'Window Size' 2. warte auf Bestätigungen (mehrere Segmente können im selben ACK-Segment bestätigt werden) 3. verschiebe das Fenster den empfangenen ACKs entsprechend und setze die aktuelle Fenstergröße auf 11/21

den in der Bestätigung angewiesenen Wert Ist nach Ablauf eines Timers für ein Segment noch kein ACK beim Sender angekommen, erfolgt eine Retransmission des Segments. Erreicht das entsprechende ACK den Sender, wird die Position des Fensters angepasst und die Datenübertragung fortgesetzt. Flusskontrolle auf Senderseite durch Überlastungsüberwachung ('Congestion Control') Wird ein Netz über seine Kapazität hinaus belastet, treten Überlastungen auf, die sich durch Paketverluste bemerkbar machen. Aufgrund der hohen Güte der heute verwendeten Übertragungsleitungen wird davon ausgegangen, dass Paketverluste durch Überlastung des Netzes verursacht werden eine Überlastung des Empfängers wird auf Grund des oben beschriebenen 'Sliding Window Flow Control' ausgeschlossen. Zur Überlastungsüberwachung pflegt der Sender neben dem oben genannten Sendefenster ein zweites Fenster, das sog. Überlastungsfenster ('Congestion Window'). Das effektive Sendefenster ist das Minimum dieser beiden Fenster. Beim Aufbau einer Verbindung initialisiert der Sender das Überlastungsfenster auf die Größe des maximalen Segments. Dann wird ein maximales Segment gesendet. Wird dieses bestätigt, bevor der Timer abläuft, wird die Größe eines Segments (in Bytes) dem Überlastungsfenster hinzugefügt, um daraus zwei Segmente maximaler Größe zu machen, und es werden zwei Segmente gesendet. Werden diese bestätigt, wird das Überlastungsfenster um zwei weitere Segmente der maximalen Größe erhöht. Jedes erfolgreich übertragene Sendefenster verdoppelt so die Größe des Überlastungsfensters, d. h. das Überlastungsfenster nimmt exponentiell zu, bis entweder ein Timer abläuft oder das Fenster des Empfängers erreicht ist. Dieses Verfahren wird als 'Slow Start' bezeichnet. Der dritte bei TCP zusätzlich zum Empfänger- und Überlastungsfenster benutzte Parameter zur Überlastungsüberwachung ist ein Schwellenwert, der anfangs 64 kb beträgt. Läuft ein Timer für eine erwartete Bestätigung ab, wird der Schwellenwert auf die Hälfte des aktuellen Überlastungsfensters gesetzt, und das Überlastungsfenster wird auf ein maximales Segment zurückgesetzt. Slow Start wird dann angewandt, um festzustellen, was das Netz bewältigen kann. Mit Erreichen des Schwellwertse steigern erfolgreiche Übertragungen das Überlastungsfenster linear. Dieses Verfahren ist in 6 dargestellt. Es wird auch als AIMD (Additive Increase - Multiplicative Decrease) bezeichnet und führt zu hoher Stabilität des Systems. Statt durch einen Timeout kann der Verlust eines Paketes auch durch das Beobachten von drei Bestätigungen diagnostiziert werden, die alle das selbe Paket bestätigen (nämlich das, das vor dem Verlust erfolgreich übertragen wurde). Dieser Mechanismus heißt 'Fast Retransmit': Es erfolgt eine Retransmission, bevor der Timer abgelaufen ist. 12/21

Abbildung 6: Entwicklung des Überlastungsfensters bei TCP 2.8 Domain Name System - DNS Programme greifen selten auf Hosts und andere Ressourcen mit deren binärer Netzadresse zu. Anstelle von Binärzahlen werden ASCII-Zeichenketten benutzt, z. B. www.tuhh.de. Dennoch versteht das Netz selbst nur binäre Adressen. Deshalb ist ein Mechanismus erforderlich, der ASCII-Zeichenketten in Netzadressen umwandelt. Dieser Mechanismus ist als Domain Name System (DNS) bekannt. Im Kern ist DNS die Einführung eines hierarchischen, auf Domänen basierten Benennungsschemas, und eines verteilten Datenbanksystems zur Implementierung dieses Benennungsschemas. Es wird vorwiegend zur Umwandlung von Hostnamen und des Host-Teils von E-Mail-Adressen in IP-Adressen benutzt. Um einen Namen in eine IP-Adresse umzuwandeln, ruft ein Anwendungsprogramm eine Bibliotheksprozedur namens 'Resolver' auf, an die es den Namen als Parameter übergibt. Der Resolver sendet ein UDP-Paket an einen lokalen DNS-Server, der den Namen sucht und dem Resolver die entsprechende IP-Adresse ausgibt, welcher sie dann an den Rufenden weitergibt. Mit der IP-Adresse ausgestattet, kann das Programm eine TCP-Verbindung zum Ziel aufbauen oder UDP-Pakete an dieses Ziel senden. 13/21

3 Fragen zur Vorbereitung des Praktikums Warum trennt man Netzwerkkomponenten in Schichten? Was ist ein Protokoll? Was ist Verkapselung, was ist Fragmentierung? Welche Adressierungsinformationen befinden sich in den IP- und TCP-Headern? Welche Komponente eines Systems bearbeitet die TCP/IP-Pakete (Anwendung, Betriebssystem, Netzwerkkarte)? Welches Protokoll wird von ping benutzt? Was ist eine MAC-Adresse? Was ist ein Broadcast? Warum werden ARP-Anfragen nicht als IP-Pakete übertragen? Was ist ein 'Default Gateway'? Wie funktioniert ein IP-Router? Wie unterscheiden sich ein Ethernet-Switch und ein -Hub, gibt es qualitative Unterschiede? Was ist ein Subnetz? Welche Subnetze sind in unserem Praktikumsversuch vorhanden? Wie unterscheiden sich verbindungsorientierte und verbindungslose Kommunikation? Was ist ICMP? Was ist DNS? 14/21

4 Versuchsaufbau Der Versuchsaufbau (siehe 7) besteht aus insgesamt vier Linux-PCs, auf denen Ubuntu 10.04 läuft. Zwei der PCs (tcplab1 und tcplab3) sind mit jeweils zwei Netzwerkkarten ausgerüstet und fungieren als Router. Der Rechner tcplab1 übernimmt außerdem die Funktion eines HTTP-Proxy, um den anderen am Praktikum beteiligten Rechnern einen WWW-Zugang zu ermöglichen. Abbildung 7: Versuchsaufbau Wie im Bild leicht zu erkennen ist, gliedert sich der Versuchsaufbau in zwei Subnetze, die über den Router tcplab3 miteinander verbunden sind. Innerhalb eines Subnetzes sind die einzelnen Rechner jeweils über einen Ethernet-Switch bzw. einen Ethernet-Hub mit einander verbunden. 5 Versuchsdurchführung Für die Versuchsdurchführung ist es erforderlich, sich als Benutzer tcplab mit dem Passwort praktikum auf den jeweiligen Rechnern einzuloggen. Es wird an dieser Stelle ausdrücklich darauf hingewiesen, dass alle Manipulationen an den Systemen, die über das zur Versuchsdurchführung erforderliche Maß hinausgehen, verboten sind. Zu Beginn des Praktikums sollten Sie sicherstellen, dass der Praktikumsaufbau dem in 7 entspricht. Überprüfen Sie daher zunächst die Verkabelung der einzelnen Rechner. Basis für die weitere Versuchsdurchführung sind die Programme tcpdump und wireshark. tcpdump ist ein textbasiertes Werkzeug zur Beobachtung, Erfassung und Analyse der Header von IP-Paketen nach vorgegebenen Filterkriterien und kann somit auch helfen, Netzprobleme aufzuzeigen und 15/21

Netzwerkaktivitäten zu überwachen. wireshark ist ein vollwertiger, mit einer grafischen Benutzeroberfläche versehener Netzwerk-Protokoll- Analysator und ermöglicht es, sowohl 'live' als auch mit aufgezeichneten Daten detaillierte Informationen zu einzelnen Paketen zu erhalten die Datenerfassung erfolgt auch hier nach vorgegebenen Filterkriterien. 5.1 Nützliche Werkzeuge Aufgabe 1.1: Der Befehl ifconfig (ohne Parameter) zeigt Ihnen neben dem immer vorhandenen 'local loopback interface' (lo) die im System konfigurierten Netzwerkkarten (eth0, eth1) an. Die Konfiguration einer Netzwerkkarte erfolgt nach dem Muster ifconfig <Interface> <IP Adresse> up. Benutzen Sie ifconfig (ohne Parameter), um die den jeweiligen Netzwerkkarten/Interfaces zugeordneten IP-Adressen zu überprüfen. Führen Sie gegebenenfalls notwendige Ergänzungen durch. Aufgabe 1.2: Verwenden Sie auf den einzelnen Rechnern den Befehl route ne, um sich jeweils die lokalen Routing-Tabellen sowie das Default Gateway anzeigen zu lassen. Betrachten Sie jetzt nur den 'linken', aus tcplab2 und tcplab3 bestehenden Teil des Praktikumsaufbaus (das Subnetz 192.168.10.0/24, siehe 8). Abbildung 8: Subnetz 192.168.10.0/24 des Versuchsaufbaus Aufgabe 1.3: Benutzen Sie die IP-Adresse IPNachbar Ihres Nachbarrechners für folgendes Kommando: sudo tcpdump host IPNachbar i <Interface> öffnen Sie ein neues Fenster und und führen Sie folgenden Befehl aus: ping IPNachbar beobachten Sie dabei die Ausgabe von tcpdump und zeichnen Sie diese auf. Das Programm tcpdump wird durch 'STRG + C' beendet. Aufgabe 1.4: Wiederholen Sie die obige Übung mit wireshark (starten mit sudo wireshark) verwenden Sie dabei auch die Einstellung 'Update list of packets in real time' und beachten Sie, welches Interface (eth0, eth1 oder das Pseudo-device für alle Interfaces) eingestellt ist. Bei der Verwendung von wireshark in diesem Praktikum gilt grundsätzlich, dass die Optionen 'Enable MAC name resolution', 'Enable network name resolution' und 'Enable transport name resolution' nicht aktiviert sind. An dieser Stelle ist es auch möglich, ein paar Überlegungen zur Sicherheit in IP-Netzen anzustellen und 16/21

exemplarisch die 'klassischen' Dienste der IP-Welt wie z.b. telnet unter dem Aspekt der Sicherheit zu betrachten. Vergessen Sie nicht, nach Beendigung der Aufgabe die mit telnet aufgebaute Verbindung wieder zu schließen, indem Sie sich auf dem Remote-Rechner wieder ausloggen. Die Rechner tcplab1, tcplab3 und tcplab4 sind zunächst über einen Hub (grau) mit einander verbunden. Aufgabe 1.5: Starten Sie in einem Terminal auf tcplab4 das Programm wireshark (sudo wireshark) und zeichnen Sie damit die Kommunikation zwischen tcplab3 und tcplab1 auf. Öffnen Sie ein Terminal auf tcplab3 und loggen Sie sich von dort mit telnet auf tcplab1 ein. Interpretieren Sie die mit wireshark erfassten Daten. Verwenden Sie die Option 'Follow TCP Stream' im Kontextmenü, um automatisch ein Filter für die Datenerfassung zu erzeugen. Wie kann man die Sicherheit für derartige Kommunikation erhöhen? Aufgabe 1.6: Vergleichen Sie auf tcplab4 die Datenerfassung mit aktiviertem bzw. deaktiviertem 'promiscuous mode' welche Funktionalität wird damit realisiert? Aufgabe 1.7: Generieren Sie mit sock auf tcplab3 einen UDP-Datenstrom mit dem Ziel tcplab2 und beobachten Sie mit xosview (./xosview.sh) den resultierenden Netzwerkverkehr. Wie hoch ist die erzielte Übertragungsrate? sock u i o n 50000 tcplab2 5000 5.2 ARP und DNS Aufgabe 2.1: Bestimmen Sie die MAC-Adresse von tcplab4 und notieren Sie diese. Aufgabe 2.2: Löschen Sie die Einträge der lokalen ARP-Tabelle (sudo arp d <rechnername>). Senden Sie anschließend ein einfaches ping an den Nachbarrechner IPNachbar. Verwenden Sie wireshark, um die dabei ablaufenden Aktionen zu protokollieren. Was fällt bei den ermittelten Zeitwerten auf? Lassen Sie sich anschließend erneut die Einträge der lokalen ARP-Tabelle anzeigen. Aufgabe 2.3: Was passiert, wenn man einen nicht existierenden Host innerhalb des Netzwerkes z. B. mit ping zu erreichen versucht? (z. B. ein Ping auf den Host mit der Nr. 200 im lokalen Subnetz) Aufgabe 2.4: Wie in Aufgabe 1.5 bereits beobachtet wurde, lässt sich der Verkehr zwischen tcplab1 und tcplab3 auf tcplab4 beobachten, solange die Rechner über einen Hub mit einander verbunden sind. Tauschen Sie jetzt bitte den Hub (grau) gegen einen Switch (schwarz) aus, indem Sie die zugehörigen Kabel schnell umstecken. Beenden Sie wireshark und starten Sie es anschließend erneut und wiederholen Sie den Vorgang aus Aufgabe 1.5. Was stellen Sie fest? Mit nslookup <name> lässt sich aus einem bekannten Rechnernamen die zugehörige IP-Adresse bzw. umgekehrt aus einer bekannten IP-Adresse der zugehörige Rechnername ermitteln. Aufgabe 2.5: Starten Sie auf tcplab1 in einem Terminal eine DNS-Anfrage in der Form 'nslookup www.heise.de'. Wie lautet die IP-Adresse von www.heise.de? Wie lautet die IP-Adresse des Nameservers? Wie lautet der Rechnername des Nameservers? 17/21

Aufgabe 2.6: Wiederholen Sie die obige DNS-Anfrage und beobachten Sie diese mit wireshark auf tcplab1. Welches Protokoll wird benutzt? Welche Ports werden benutzt? 5.3 Routing in lokalen Netzen Im nun folgenden Abschnitt wird der gesamte Praktikumsaufbau in Betrieb genommen. Bereits zu Beginn des Praktikums sollten Sie die Verkabelung sowie die den einzelnen Netzwerkkarten zugeordneten IP- Adressen überprüft haben. Wie aus dem Übersichtsbild ersichtlich ist, besteht der Gesamtaufbau aus zwei (bzw. drei) Segmenten/Subnetzen. Eine Kommunikation zwischen zwei Rechnern, die sich nicht im selben Subnetz befinden, ist nur dann möglich, wenn diese Subnetze über einen Router mit einander verbunden sind. Die Funktionalität des Routers wird in unserem Aufbau von einem mit zwei Netzwerkkarten ausgestatteten Linux-PC übernommen. Notwendige Eigenschaft dieses PCs ist dabei, dass das sog. 'IP- Forwarding' aktiviert ist diese Eigenschaft ist im Praktikumsaufbau bereits voreingestellt. Grundsätzlich unterscheidet man in IP-Netzen zwischen dynamischem und statischem Routing. Ziel der folgenden Aufgaben in diesem Abschnitt ist, alle Rechner so zu konfigurieren, dass von jedem Rechner alle Rechner mit einem Ping zu erreichen sind. Die Netzwerkkonfiguration soll dabei optimal sein, d. h. die Pfade sollen so kurz wie möglich sein. Aufgabe 3.1: Verwenden Sie den Befehl route, um zunächst auf den Rechnern tcplab2, tcplab3 und tcplab4 das Default Gateway einzustellen. Führt dieses Vorgehen zum gewünschten Ergebnis? sudo route add default gw <IP Addresse> ACHTUNG: Das Default Gateway von Rechner tcplab1 ist bereits korrekt konfiguriert, dieses darf nicht verändert werden. Um eine Route zu ergänzen, gibt es zwei Möglichkeiten es kann ein einzelner Host oder auch ein (Sub-) Netz hinzugefügt werden: sudo route add host <host address> gw <gw address> sudo route add net <network address> netmask 255.255.255.0 gw <gw addr> Aufgabe 3.2: Starten Sie auf tcplab2 ein ping mit dem Ziel tcplab1. Beobachten Sie dabei mit wireshark den Weg der 'echo request' bzw. 'echo reply' Pakete. An welchem Interface (eth0, eth1) lässt sich das 'echo reply' Paket beobachten? Aufgabe 3.3: Ergänzen Sie die fehlenden Routen. Aufgabe 3.4: Starten Sie auf tcplab1 bzw. tcplab2 jeweils ein ping auf die IP-Adresse 134.28.202.14 warum kann tcplab2 diese IP-Adresse nicht erreichen? Lässt sich das Problem durch Routing- Einstellungen auf unseren lokalen Rechnern lösen? 18/21

Eine auf Linux-Routern weit verbreitete Funktion ist das sog. 'IP-Masquerading', eine Form der 'Network Address Translation' (NAT). IP-Masquerading ermöglicht den Rechnern eines lokalen Netzes mit 'privaten' IP-Adressen (z. B. 192.168.x.x), über die öffentliche (vom Service-Provider vergebene) IP-Adresse des Routers Zugriff auf das Internet zu bekommen, d. h., für das (externe) Internet ist nur die öffentliche IP- Adresse des Routers sichtbar, unabhängig davon, welche Rechner des lokalen Netzes gerade auf das Internet zugreifen. Diese Funktionalität des NAT wird für dieses Praktikum auf tcplab1 mit dem Befehl 'ufw enable' aktiviert. Aufgabe 3.5: Starten Sie auf tcplab1 das IP-Masquerading: sudo ufw enable Führen Sie dann auf tcplab2, tcplab3 oder tcplab4 einen ping auf 134.28.85.240 aus und beobachten Sie diese Aktion mit wireshark auf tcplab1. Erklären Sie die mit wireshark protokollierte Kommunikation. 5.4 TCP TCP ist ein verbindungsorientiertes Protokoll, daher ist es erforderlich, dass der Empfänger einer Verbindung auch bereit ist, eine ankommende Verbindung anzunehmen. Ein TCP-Empfänger (auch als Server oder Dämon bezeichnet) ist typischerweise auf einen Port eingestellt und akzeptiert ankommende Verbindungsanfragen für diesen Port. Anmerkung: Ein Server generiert von sich aus keinen Verkehr, sondern reagiert auf Anfragen. Für die Generierung von TCP-Verkehr wird in den folgenden Untersuchungen sock benutzt. Aufgabe 4.1: Starten Sie auf tcplab1 einen sock Server auf dem Port 5000: sock v i F A s 5000 Aufgabe 4.2: Verwenden Sie sock als Client, um 1 Paket von tcplab2 nach tcplab1 zu verschicken: sock i n 1 tcplab1 5000 Identifizieren Sie mit Hilfe der mit wireshark (auf tcplab3) aufgezeichneten Daten den Verbindungsauf- und -abbau. Welche Flags (SYN, ACK, FIN) werden auf Pakete gesetzt, die für den Verbindungsaufbau verantwortlich sind? Welche Flags werden auf Pakete gesetzt, die für den Verbindungsabbau verantwortlich sind? Warum wird das beobachtete Verfahren als '3-Wege-Handshake' bezeichnet? Aufgabe 4.3: Eine TCP-Verbindung wird durch die vier Größen 'Source Address', 'Destination Address', 'Source Port' und 'Destination Port' gekennzeichnet. Wiederholen Sie den Vorgang aus Aufgabe 4.2 mehrmals (3 oder 4 mal). Warum wird für jede neue Verbindung ein neuer 'Source Port' gewählt, obwohl die vorherige Verbindung schon abgebaut ist? Ist ein Server auf einem Port aktiv, so bedeutet dies, dass ein Dienst diesen Port benutzt. Die Abbildung zwischen Ports (die sogenannten Well-known Port Numbers) und Standarddiensten ist in der Datei /etc/services festgelegt. Sie können den Inhalt der Datei beispielsweise mit 'less /etc/services' im Terminal betrachten (drücken Sie '/' für die Suchfunktion, 'q' um das Programm less wieder zu beenden). 19/21

Aufgabe 4.4: Finden Sie heraus, welche Port-Nummern den Diensten FTP, HTTP, HTTPS und dem Internet Printing Protocol (IPP) standardmäßig zugeordnet sind. Aufgabe 4.5: Verwenden Sie sock, um von tcplab2 zu tcplab4 eine Verbindung auf den Port 30000 (nicht reserviert) aufzubauen. Woran erkennt ein Rechner, ob ein Server auf einen Port eingestellt ist? Mit welchem Flag wird ein Paket gekennzeichnet, wenn ein Rechner dieses Paket nicht annehmen kann? Aufgabe 4.6: Versuchen Sie, wie in der vorherigen Aufgabe, mit sock eine Verbindung aufzubauen, jedoch zu tcplab1 (wieder auf Port 30000). Welchen Unterschied stellen Sie fest? Finden Sie heraus, was der Befehl sudo ufw enable aus Aufgabe 3.5 tatsächlich noch bewirkt, um das Verhalten zu erklären. Warum kann das beobachtete Verhalten wünschenswert sein? Bei der Verwendung von TCP kann man zeigen, dass die Bearbeitung ankommender Pakete auf zwei Ebenen stattfindet. Das Betriebssystem ist für die Absicherung der Verbindung verantwortlich und bereitet die Pakete für die übergeordnete Anwendung vor. Diese übernimmt die Pakete, sobald sie dazu in der Lage, d. h. nicht überlastet ist. Mit sock ist es möglich, eine solche Überlastung nachzubilden, indem man die Option ' p' (Pause) benutzt. Aufgabe 4.7: Starten Sie auf tcplab1 einen sock Server auf dem Port 5001, der grundsätzlich 500 ms wartet, bevor er ein Paket liest: sock i F A p 500 s 5001 Verschicken Sie von tcplab2 aus 200 Pakete an tcplab1. Woran erkennen Sie, dass tcplab1 nicht bereit ist, die Pakete zu bearbeiten? 5.5 Anwendungen HTTP Um allen Rechnern des Versuchsaufbaus einen alternativen Zugriff auf das Internet zu ermöglichen, ist auf tcplab1 ein HTTP-Proxy (squid) auf Port 3128 installiert. Aufgabe 5.1: Starten Sie auf tcplab2 einen Web-Browser und wählen Sie als Ziel eine beliebige Homepage, z. B. www.gnu.org. Beobachten Sie die Kommunikation auf tcplab4 mit Hilfe von wireshark. Wie wird die Zieladresse (URL) innerhalb einer HTTP-Anfrage kodiert? Woraus besteht eine HTTP-Antwort? Erläutern Sie das Feld 'Content Type'. Aufgabe 5.2: Beobachten Sie den gesamten Verkehr auf tcplab1 (in wireshark Schnittstelle 'Pseudodevice') und wiederholen Sie den obigen Vorgang. Worin besteht die Hauptfunktion eines Proxy? Welche beiden Verbindungen werden für diesen Vorgang aufgebaut? Wie unterscheiden sich die Quell- und Zieladressen der beiden Anfragen/Verbindungen? 20/21

6 Literatur und Links Ethernet/Networking Tutorial: http://www.lantronix.com/resources/networking.html TCP/IP Tutorial and Technical Overview IBM Redbooks http://www.redbooks.ibm.com/redbooks/pdfs/gg243376.pdf Online Man Pages unter http://www.freebsd.org/cgi/man.cgi oder für Ubuntu unter http://manpages.ubuntu.com/ A Quick Tour Around TCP: http://www.cs.utk.edu/~dunigan/tcptour/ Tanenbaum, Andrew S., Computer Networks, Prentice Hall Kurose, James F. and Ross, Keith W., Computer Networks, Pearson 21/21