9. Transportprotokolle



Ähnliche Dokumente
15 Transportschicht (Schicht 4)

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

TCP. Transmission Control Protocol

Router 1 Router 2 Router 3

TCP/UDP. Transport Layer

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

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

Lehrveranstaltung Rechnernetze Einschub für das Labor

Transmission Control Protocol (TCP)

Einleitung Sniffing, Analyzing, Scanning Scanning. Netzwerke. Bierfert, Feresst, Günther, Schuster. 21. März 2006

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

Chapter 11 TCP. CCNA 1 version 3.0 Wolfgang Riggert,, FH Flensburg auf der Grundlage von

TCP/IP-Protokollfamilie

Internet und WWW Übungen

KN Das Internet

Transportschicht (Schicht 4) des Internet

Uni-Firewall. Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina)

Mobilkommunikationsnetze. - Transportschicht -

Einführung in die Netzwerktechnik

Anwendungsprotokolle: HTTP, POP, SMTP

Client/Server-Systeme

Vorlesung SS 2001: Sicherheit in offenen Netzen

11. Foliensatz Betriebssysteme und Rechnernetze

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells.

Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI - EDA. Implementierung eines UDP/IP-Stacks in Hardware.

11. Foliensatz Betriebssysteme und Rechnernetze

TCP-Verbindungen und Datenfluss

Anleitung zur Nutzung des SharePort Utility

Beispiel TCP-/IP-Datenübertragung

Transportprotokolle im TCP/IP- Referenzmodell

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Grundkurs Routing im Internet mit Übungen

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

Client-Server mit Socket und API von Berkeley

ICMP Internet Control Message Protocol. Michael Ziegler

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Grundlagen der Rechnernetze. Transportschicht

Verteilte Systeme - 1. Übung

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

KOMMUNIKATIONSNETZE UND - PROTOKOLLE 6. TRANSPORTSCHICHT. KNP: 6. Transport. 1 / v5. prof. dr. Werner Winzerling

Man liest sich: POP3/IMAP

IMAP und POP. Internet Protokolle WS 12/13 Niklas Teich Seite 1

Grundlagen TCP/IP. C3D2 Chaostreff Dresden. Sven Klemm

Kontrollfragen: Internet

Technische Grundlagen von Internetzugängen

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

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

Voraussetzungen für die Nutzung der Format Rechenzentrumslösung (Hosting)

7 TCP/IP-Dienste konfigurieren

DCCP Datagram Congestion Control Protocol

Die Transportprotokolle: Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Die Socket-Schnittstelle

TCP Teil 2. TCP Teil 2: Tilmann Kuhn Betreuer: Dr. Thomas Fuhrmann 1/18

UDP-, MTU- und IP- Fragmentierung

Domain Name Service (DNS)

Die Transportprotokolle UDP und TCP

Multiuser Client/Server Systeme

Internetprotokoll TCP / IP

Internetzugang Modul 129 Netzwerk Grundlagen

Da es sich in meinem Fall um einen USB-Scanner handelt, sollte dieser mittels

Installation Hardlockserver-Dongle

Collax PPTP-VPN. Howto

Anleitung zum Prüfen von WebDAV

Seminar: Konzepte von Betriebssytem- Komponenten

Internet Protokolle für Multimedia - Anwendungen

Netzwerk-Programmierung. Netzwerke.

Kommunikation. Sitzung /11. Dezember 2015

Session Management und Cookies

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

TCP SYN Flood - Attack. Beschreibung Auswirkungen Zuordnung zu Gefährdungskategorie und Attacken-Art Gegenmaßnahmen Quellen

Firewall-Versuch mit dem CCNA Standard Lab Bundle

Bernd Blümel. Verschlüsselung. Prof. Dr. Blümel

Reale Angriffsszenarien Typische Regellücken bei Firewalls,, Testtools

ECN. Explicit Congestion Notification ECN

Kontrollfragen Die nötigen Netzwerkgrundlagen

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Anleitung Grundsetup C3 Mail & SMS Gateway V

Universität Stuttgart. Musterlösung. Communication Networks I. 11. März Termin: IP-Adressierung und -Routing

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

Zehn SSH Tricks. Julius Plen z

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

CCNA Exploration Network Fundamentals. ARP Address Resolution Protocol

Methoden zur Filterung und Blockung von Mails:

Vorlesung SS 2001: Sicherheit in offenen Netzen

Grundlagen Messdatennutzung

Java RMI, CORBA und Firewalls

Voice over IP (VoIP) PING e.v. Weiterbildung Blitzvortrag. Dennis Heitmann

Transkript:

Fakultät Informatik Institut Systemarchitektur Professur Rechnernetze WS 2014/2015 LV Rechnernetzpraxis 9. Transportprotokolle Dr. rer.nat. D. Gütter Mail: WWW: Dietbert.Guetter@tu-dresden.de http://www.guetter-web.de/education/rnp.htm 13.01.2015

Aufgaben der Transportschicht Entlastung der verarbeitungsorientierten Schichten von allen Übertragungsproblemen globale Adressierung von Applikationsprozessen zuverlässige Ende-zu-Ende Datenübertragung, auch bei unzuverlässiger Netzwerken evtl. Garantie von Dienstgüte-Eigenschaften (QoS) Applikationen Transportschicht Applikationen Transportschicht Netzwerk Netzwerk Netzwerk 2

Transportprotokolle ISO/OSI TP0 TP4 Internet 5 Transportprotokollklassen geringe Funktionalität, nur geignet für sehr gute Netzwerke Fehlerkontrolle, Flußsteuerung,, Applikationsmultiplexing geignet auch für unzuverlässige Netzwerke 2 Transportprotokolle UDP verbindungslos, geringe Dienstqualität (wie IP), Multiplexnutzung möglich TCP verbindungsorientiert, Fehlerkontrolle, Flußsteuerung,, Applikationsmultiplexing geignet auch für unzuverlässige Netzwerke Trend zu durchgängiger Nutzung von Internetprotokollen 3

Internet - Socketschnittstelle Socket Kommunikationsendpunkt für bidirektionalen Datenaustausch über T-Protokolle TCP, UDP sowie über IP (Raw Sockets) Adressierung über Port-Nr. und IP-Adresse Plattform 1981, Berkeley UNIX BSD, entwickelt für Programmiersprache C inzwischen auf allen Plattformen in vielen Sprachen verfügbar z.b. WinSock für Windows Schnittstelle angelehnt an UNIX-Filesystem, Client-/Server-Modell Server wartet Client initiativ eigene Socketadresse bekannt Partneradresse offen eigene Socketadresse bekannt Server-Socketadresse bekannt 4

Adressierung bei Internet-Transportprotokollen Socketadresse Rechner wird adressiert über IP-Adresse Prozeß wird adressiert über Ports Port := Nachrichtenübergabestelle auf einem Rechner dargestellt als 16-Bit-Zahl (TCP-Ports unabhängig von UDP-Ports) entspricht einer speziellen Mailbox zur Kommunikation zwischen Nutzer und Transportschicht Port a Port b Zuordnung zu Ports durch Transportschicht Ankommende/Abgehende IP-Pakete 5

Applikationen Zuordnung T-Protokoll und Port Client-/Server-Kommunikation Client ergreift Initiative Serverport muß bekannt sein Client-Port frei wählbar Bereich Nutzung Vergabe 0 reserviert Betriebssystem vergibt selbständig freien Port 1 1023 well known ports Nutzung nur durch Superuser (root) 1024 49151 registered ports Nutzung frei 49152 65535 ephemeral ports Nutzung frei Vergabe nach Antrag durch IANA Registrierte Ports (IANA) keine Registrierung 6

Applikationen Beispiele der Zuordnung http://www.iana.org/assignments/port-numbers Applikationsprotokoll Transportprotokoll Serverport FTP-Data UDP,TCP 20 FTP-Control UDP,TCP 21 Telnet TCP 23 SMTP TCP 25 DNS UDP,TCP 53 DHCP UDP 67 HTTP TCP 80 POP3 TCP/UDP 110 SNMP UDP,TCP 161, 162 BGP TCP 179 RIP UDP 520 MySQL TCP/UDP 3306 7

UDP (User Datagram Protocol) RFC 768 Transportprotokoll, verbindungslos, keine Fehlerkorrektur, keine Flußsteuerung geringer Overhead keine Verzögerung durch Verbindungsaufbau Betriebssystembelastung gering geringe Zuverlässigkeit UDP-Protokoll-Dateneinheiten werden als IP-Pakete versendet. IP-Header. UDP-Header 16 Bit 16 Bit 16 Bit 16 Bit Quellport Zielport Länge Prüfsequenz UDP-Daten. u.a. Quell-/Ziel-IP von Header+Daten 8

UDP Prüfsequenz interne Bildung eines Pseudoheaders, wird nicht (!) übertragen 32 Bit 32 Bit 8 Bit 8 Bit 16 Bit Quell-IP-Adresse Ziel-IP-Adresse 0x00 Protokoll Länge 0x11 von UDP-Datagramm UDP-Prüfsequenz wird berechnet über Pseudoheader UDP-Header (Prüfsequenzfeld mit 0x0000) UDP-Daten Ausnahmen: Prüfsequenz = 0 keine Prüfung erfolgt = 0xFFFF Berechnung ergab eigentlich 0x0000 Berechnung wie bei IP (Einerkomplement der Summe von 16-Bit-Worten) 9

TCP (Transmission Control Protocol) RFC 793 Transportprotokoll, verbindungsorientiert, Fehlerkorrektur, Flußsteuerung hoher Overhead hohe Zuverlässigkeit Protokoll-Dateneinheiten (TCP-Segmente) werden als IP-Pakete versendet. Segment-Header 16 Bit 16 Bit 32 Bit 32 Bit 4 Bit 6 Bit 6 Bit 16 Bit 16 Bit 16 Bit variabel Quellport Zielport Sequenz- Nr. Quittungs -Sequ.Nr. Header- Länge reserviert CTRL- Flags Empfangs- Fenster Prüfsequenz URGpointer Optionen dienen der Reihenfolgeerkennung Anzahl der 32-Bit-Blöcke Zähler für freie Speichereinheiten im Empfangspuffer berechnet wie bei UDP, aber im Pseudoheader Protokoll = 0x06 10

TCP Header Control Flags URG (urgent flag) aktuelles Byte (s. URG-Pointer) soll sofort vom Empfänger bearbeitet werden 6 Bit CTRL- Flags 16 Bit URGpointer ACK (acknowledgement flag) Quittungs-Nr. ist gültig (sonst ignorieren) PSH (push flag) Zwischenpufferung von Daten verhindern, sofort senden U R G A C K P S H R S T S Y N F I N RST (reset flag) Verbindung abbrechen SYN Verbindungsinitialisierung, Antwort mit SYS+ACK oder RST Synchronisation der Sequenznummern beim Verbindungsaufbau FIN (finish flag) Freigabe der Verbindung, es folgen keine Daten mehr 11

TCP Verbindungsaufbau Client kennt Server-Socketadresse (Standard) fordert freien Port vom Betriebssystem Client-Socketadresse Server vereinbart mit Betriebsystem die Nutzung des Serverports wartet auf Nachrichten Start-Sequenz-Nr. x wird zufällig gewählt Connection request SYN=1,SEQ=x Start-Sequenz-Nr. y wird zufällig gewählt SYN=1, ACK=1,SEQ=y,ASEQ=x+1 Connection response evtl. auch RST=1 Connection establish SYN=0, ACK=1,SEQ=x+1,ASEQ=y+1 12

TCP Verbindungsabbau Partner-1 Partner-2 Disconnection request FIN=1,SEQ=k Disconnection response ACK=1,ASEQ=K+1 FIN=1,SEQ=m ACK=1,ASEQ=m+1 Disconnection response Disconnection request beide (!) Seiten müssen Verbindung abbauen evtl. Zusammenfassung von ACK und FIN zu einer Nachricht bei Partner-2 (3-Wege-Handshake) 13

TCP Datenübertragung TCP behandelt Datenübertragungen ähnlich wie Ein-/Ausgaben bei Dateien bidirektionale Übertragung (Duplex) physische Blockung der Daten ist transparent TCP puffert die Daten so, daß der Durchsatz optimiert wird Flußsteuerung Vermeidung von Überlastsituationen gerechte, faire Ressourcennutzung nicht immer aus Anwendersicht günstig, z.b. bei Telnet-Kommandoeingaben (^C) bei interaktiver Arbeit bei Verarbeitung von Datensätzen fester Größe Ausnahmebehandlung möglich über PSH- und URG-Flag 14

TCP Flußsteuerung (Flow Control) Während Verbindungsaufbau erfolgt Vereinbarung einer maximalen Segmentgröße MSS (Maximum Segment Size) Empfangsfenster beschreibt Leerstand des Empfangspuffers. ursprünglich: Einheit 1 Byte Fenster max. 2 16 Bytes RFC 1323: Multiplikation mit Faktor Fenster max. 2 30 Bytes (TCP Window Scale Option) Schreiben von Bytesequenzen (Länge beliebig) Sender Lesen von Bytesequenzen (Länge beliebig) Empfänger Segmentierung Segmentgröße < MSS evtl. mehrere Segmente S Bytes < Empfangsfenster [Problem: sehr kleine Fenster (z.b. 2 Byte) kleines Segment oder warten?] Segmentübertragung Entsegmentierung } freier Puffer (Empfangsfenster) 15

TCP Beispiel zur Datenübertragung (Telnet) 16

TCP Flußsteuerung (Flow Control) Alle TCP-Segmente werden quittiert Positive kumulative Quittungen ACK=1, ASEQ=anzahl Quittierung aller Bytes von Byte 0 bis Byte anzahl Empfänger kann Überflutung verhindern durch Steuerung der Größe des Empfangsfensters (Flußsteuerung) Quittungsempfang wird mit Time-out (Retransmission Timer) überwacht Timergröße problematisch (Auslösung nur im Fehlerfall, aber auch schnell) Messungen erforderlich für Umlaufzeit (RTT Round Trip Time) Empfehlung: Timer = 2 * EstimatedRTT Fehlerursachen Netzüberlastung, Stau in Routern,.. Reaktion im Fehlerfall Go-Back-N (mit Erweiterungen in Richtung Selective-Repeat) Sendeflußreduktion 17

TCP Stauverhinderung (Congestion Control) Time-Out für Quittungsempfang, evtl. Duplikate Stau, lange Verzögerungen Router-Überlastung (Pufferüberlauf, ) Netz wahrscheinlich überlastet, Reduktion Senderate sinnvoll Congestion Control Sender führt Sendefenster (Congestion Window) Byteanzahl unbestätigter Daten!< min { Sende-/Empfangsfenster } Probephase (Annäherung an maximale Senderate) Reduktion der Senderate bei aufgetretenem Stau Fairness bei Konkurrenz von Verbindungen Endzustand: jede Verbindung gleiche Senderate (problematisch, wenn eine Anwendung mehrere Verbindungen parallel betreibt) 18

TCP Slow Start und Congestion Avoidance größere Datenmengen werden in Segmenten der Größe MSS übertragen RTT N SF TR Round Trip Time Zeit zwischen Segmentsenden und Quittungsempfang Anzahl unbestätigt sendbarer Segmente (max. RTT/MSS) Sendefenster (gleich N * MSS) Schwellwert für N Algorithmenumschaltung N := 1; TR := unendlich solange Sendepuffer gefüllt ja /* Slow Start */ N Segmente senden N < TR? /* Congestion Avoidance */ N Segmente senden nein alle pos. quittiert? { N := 2N, max. TR} sonst { N :=1; TR := N/2 } alle pos. quittiert? { N := N + 1 } sonst { N:=1; TR := N/2 } 19

1988 TCP Tahoe Beispielablauf Sendesteuerung exponentieller Anstieg bei Slow Start linearer Anstieg bei Congestion Avoidance Unbestätigte Segmente 16 14 Timeout Timeout 12 10 8 6 CA CA 4 SS SS SS 2 0 0 1 2 3 4... Zeit / RTT 20

TCP Ablaufdiagramm Slow Start bei jedem Quittungsempfang wird Sendefenster um 1 Einheit erhöht innerhalb jeder RTT eine Sendefensterverdopplung N = 1 RTT ungenützte Zeit N = 2 N = 3 N = 4 N = 5 N = 6 N = 7 N = 8 im fehlerfreien Fall kann eine 100%-ige Kanalauslastung schnell erreicht werden 21

1990 TCP Reno Beispielablauf Sendesteuerung exponentieller Anstieg linearer Anstieg Fast Recovery (Slow Start) (Congestion Avoidance) (3x duplicate ACK) Unbestätigte Segmente 16 14 Timeout 3x duplicate ACK 12 10 8 CA FR CA 6 4 SS SS 2 0 Zeit / RTT 0 1 2 3 4... 22

TCP Weiterentwicklungen TCP Vegas reagiert nicht nur auf Stauprobleme, sondern betreibt auch vorausschauende Stausteuerung. Bei drohendem Paketverlust wird Senderate reduziert (erkennbar an Vergrößerung der Wartezeiten auf Quittungen). 23

UDP Nutzung (Socketprogrammierung) Funktion socket bind sendto recvfrom close Inhalt Anforderung Kommunikationsendpunkt Festlegen Portnummer Senden Empfangen Schließen Socket Client socket () Server socket () bind () sendto () recvfrom () recvfrom () close () sendto () 24

TCP Nutzung (Socketprogrammierung) Funktion socket bind listen accept connect send recv close Inhalt Anforderung Kommunikationsendpunkt Festlegen Portnummer Empfangspuffer und Warten auf Verbindungsaufnahme Annahme Verbindung Anforderung Verbindung Senden Empfangen Schließen Socket zusätzlich: select" zum Warten auf Nachrichten an mehreren Sockets 25

TCP Nutzung (Socketprogrammierung) Client socket () bind () Server socket () connect () listen () accept () send () recv () recv () send () close () close () 26