Lehrveranstaltung „Rechnernetze“ Einschub für das Labor Sommersemester 2010 Dr. Andreas Hanemann Einordnung der Transportschicht • Verbindungen bestehen zwischen zwei Endsystemen – Transitnetze bzw. Netzknoten für Transportprotokoll nicht sichtbar – Pfad unbekannt (bzw. irrelevant) • Virtuelle Verbindung Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 2 Beispieldarstellung Schichten Internet/Ethernet Anwendungsschicht User Program ( ) ( ) Ports Telnet Server FTP Server ( 23 ) ( 21 ) UDP Transportschicht 126.54.66.51 or IP broadcast TCP ( 17 ) (6) IP Netzwerkschicht Sicherungsschicht ( 06 ) ( 08-00 ) type Ethernet 08-90-54-66-01-02 or FF-FF-FF-FF-FF-FF 802.2 802.3 Physikalische Schicht (Kupferkabel, LWL) Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 3 Einordnung der UDP und TCP‐Protokolle • Netzschicht (Schicht 3) ermöglicht Vermittlung über Zwischensysteme – Ende‐zu‐Ende‐Kommunikation wird erreicht • Transport der Daten über das Netz soll für Anwendungen ermöglicht werden (Schicht 4) – Abstraktion von Eigenschaften des Netzes (Technologie, Design) – Benutzer‐zu‐Benutzer‐Verbindung – Globaler Adressraum für Teilnehmer – Wahlmöglichkeiten der Dienstgüte Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 4 User Datagram Protocol (UDP) • Sehr einfaches Transportprotokoll – Definiert in RFC 768, August 1980 – Geringer Overhead (quasi „IP auf der Transportebene“) • Multiplexen / Demultiplexen von Anwendungsprozessen über das Netzwerk • Einfache Fehlerkontrolle • Keine Verbindung, keine Zuverlässigkeit • Simplex • Protokoll verhält sich „unfair“, insbesondere im Verhältnis zu TCP – Nicht beim Senden keine Rücksicht auf anderen Datenverkehr Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 5 Eigenschaften von UDP • Keine Verbindungsaufbauphase – Verzögerung bis zum Aufbau einer Verbindung entfällt – Daten können sofort gesendet werden • Kein Verbindungszustand – Im Endsystem müssen keine verbindungsrelevanten Informationen gehalten werden • z.B. keine Flusskontrollfenster, Staukontrollfenster, Sequenznummern – Ein Server kann mittels UDP typischerweise mehr aktive Clients unterstützen als mit TCP • Geringer Overhead in der Dateneinheit – Lediglich Adressen sowie Längenfeld und Prüfsumme • Unreguliertes Senden – UDP kann Daten so schnell senden wie sie von der Anwendung geliefert werden und wie sie vom Netz abgenommen werden • Verluste möglich Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 6 Transmission Control Protocol (TCP) • TCP ermöglicht eine zuverlässige Übertragung eines Bytestroms zwischen zwei Anwendungen über einen unzuverlässigen Vermittlungsdienst – Definiert in RFC 793, September 1981 • • TCP wurde so entworfen, dass es sich dynamisch an die Eigenschaften des Internet (z.B. heterogene Topologien, schwankende Bandbreiten) anpasst Verbindungsverwaltung – Verbindungsaufbau zwischen zwei „Sockets“ • Verbindungsendpunkt innerhalb des Dienstzugangspunkts zur Transportschicht (TSAP) • Verwendung von Three‐Way‐Handshake (gegenseitige Bestätigungen) – Datentransfer über eine virtuelle Verbindung – Gesicherter Verbindungsabbau • Alle übertragenen Daten müssen quittiert sein • Multiplexen – Mehrere Verbindungen der Transportschicht können über eine Ende‐zu‐Ende‐ Verbindung laufen Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 7 Eigenschaften von TCP • Datenübertragung – Duplex – Fehlerkontrolle • Mittels Sequenznummern, Prüfsumme, Quittierung, Übertragungswiederholung im Fehlerfall – Reihenfolge, Flusskontrolle (durch Fenstermechanismus) und Staukontrolle – Unterstützung von Prioritäten (in Realität selten verwendet) – Zeitbehaftete Daten • Falls die Auslieferung in bestimmter Zeit nicht möglich ist, wird der Dienstbenutzer informiert • Fehleranzeige – Treten während der Verbindung Störungen auf, wird der Benutzer darüber in Kenntnis gesetzt Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 8 Einbettung von TCP/IP in Ethernet Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 9 Sockets bei TCP • • Ende‐zu‐Ende‐Verbindung an Dienst bzw. Applikation gebunden Socket: Endpunkt für Kommunikation – beschrieben durch Schicht‐3‐Adresse und Portnummer – wird erzeugt von und „gehört“ einem Prozess – bietet Schnittstelle für zuverlässige Byte‐Übertragung • Verbindung gegeben durch ein Socket‐Paar Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 10 Staukontrolle bei TCP (1) • • Ansatz: Einführung eines Überlastfensters (Congestion Window) Jede Seite unterhält Variablen: – MSS (Maximum Segment Size): max. Datenmenge pro Segment – CongWin (Überlastfenster): steuert Einspeisung ins Netz: LastByteSent − LastByteAcked <= min(CongWin, RcvWin) – Threshold: obere Schranke für schnelles Wachstum von CongWin • • • • Wichtig: Retransmission Timer (bzgl. nicht bestätigter Segmente) Effektives Fenster: Minimum aus Empfangsfenster und Überlastfenster Slow Start: Fenstergröße zu Anfang klein wählen Congestion Avoidance: Timerüberläufe führen zur Reduktion der Senderate Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 11 Staukontrolle bei TCP (2) • Slow‐Start Phase – Beginn: CongWin=MSS – Segment wird vor dessen Timerablauf bestätigt – ‐> Verdoppelung von CongWin, solange CongWin < Threshold – Threshold erreicht ‐> Ende Slow‐ Start‐Phase • Congestion Avoidance Phase – CongWin wächst alle RTD linear weiter, solange Quittung vor Timeout eintrifft • • Timeout erfordert Zurücksetzen von Threshold auf 0,5 CongWin und CongWin=1 MSS TCP‐Übertragungsrate (mittlerer Durchsatz): 0,75 ∙W ∙ MSS/RTD , wobei W max. Überlastfenster vor Verlustsituation TCP-Variante Tahoe Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 12 Socket Dienstprimitive bei TCP Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 13 Beispielcode (1) • Internet File Server: – Code für den Client bei Verwendung von Sockets Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 14 Beispielcode (2) • Internet File Server: – Code für den Server bei Verwendung von Sockets Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 15 Header von UDP und TCP Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 16 Felder im TCP Header (1) • Source Port/Destination Port (je 16 Bit) – Felder als Endpunkte einer virtuellen Verbindung, logische Kanalnummer innerhalb eines Host – Standard‐Portnummern für bekannte Dienste wie TELNET 23, FTP 21, SMTP 25, HTTP 80 • Sequence Number (32 Bit) – Sendezählernummer, Anzahl gesendeter Bytes • Acknowledgement Number (32 Bit) – Empfangszählernummer, Quittierung in Anzahl empfangener Bytes • Data Offset (4 Bit) – Länge des Kopfes in 32‐Bit‐Worten • Flags (12 Bit) – – – – – – Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 URG ACK PSH RST SYN FIN Urgent Pointer ist gültig Quittungsnummer ist gültig Daten sofort zur Anwendung geben Rücksetzen der Verbindung oder Antwort auf ungültiges Segment Verbindungsaufbau‐Wunsch, muss quittiert werden einseitiger Verbindungsabbau, muss quittiert werden Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 17 Felder im TCP Header (2) • Receive Window (16 Bit) – Fenstergröße, Anzahl Bytes, die der Empfänger in seinem Datenpuffer augenblicklich aufnehmen kann • Bei 0 würde der Sender die Übertragung anhalten. • Sliding Window‐Mechanismus: Flusskontrolle durch den Empfänger. Der Empfänger steuert den Sender • Checksum (16 Bit) – Prüfsumme für Protokollkopf, Daten und für Pseudo‐Protokollkopf (Auszug aus IP‐Kopf an TCP übergeben): Internet Source und Destination Address, Null, Transport Protocol, Länge des Paketes (dient zur Überwachung) • Urgent Data Pointer (16 Bit) – Sequenznummer und Zeiger weisen auf ein Datenbyte hin, auf das besonders wichtige Daten folgen • Options (variable Länge) – z.B. Maximum Segment Size, wird beim Verbindungsaufbau verwendet und dient zum Empfang von Segmenten größer als 536 Byte. Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 18 Eigenschaftenvergleich • Eigenschaft UDP TCP Segmentierung/Wiederzusammensetzung ‐ ja Einbettung ja ja Verbindungskontrolle ‐ ja Reihenfolgekontrolle bei Auslieferung ‐ ja Flusskontrolle ‐ ja Fehlerkontrolle Erkennung von Erkennung von Bitfehlern Bitfehlern und Paketverlusten Multiplexing/Demultiplexing ja ja Zusätzlich in TCP implementiert: Congestion Control (Staukontrolle) – passt Sendeleistung der auf dem Link verfügbaren Kapazität an – Ziel ist ein faire Nutzung von verfügbaren Ressourcen, d.h. über jede Verbindung soll gleich viel gesendet/empfangen werden können Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 19 Exponentialfunktion • Definition Zufallsvariable x genügt der Exponentialverteilung Exp(λ) mit positiven reellen Parameter λ, wenn sie die folgende Wahrscheinlichkeitsdichte besitzt • Verwendung – z.B. Halbwertszeit bei radioaktiven Elementen – Modellierung von Kommunikation (Anwendung im Labor Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 20 Visualisierung der Exponentialverteilung Dichte und Verteilungsfunktion der Exponentialverteilung Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 21 Erzeugung exponentialverteilter Zufallszahlen • Verwendung der sog. Inversionsmethode – Konvertierung von Standardzufallszahlen in exponentiell verteilte Zufallszahlen mit der Inversen der Verteilungsfunktion • xi: exponentiell verteilte Zufallszahlen • ui: Standardzufallszahlen aus Bereich [0;1] Dr. A. Hanemann: Lehrveranstaltung "Rechnernetze", SS 2010, Laborinformationen 22