DCCP Datagram Congestion Control Protocol

Ähnliche Dokumente
TCP/UDP. Transport Layer

15 Transportschicht (Schicht 4)

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

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

ICMP Internet Control Message Protocol. Michael Ziegler

Mobile Anwendungen Google Cloud Messaging

CONVEMA DFÜ-Einrichtung unter Windows XP

dpa-infocom - Datenlieferung

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

Multicast Security Group Key Management Architecture (MSEC GKMArch)

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

Migration zu IPv6. Ronald Nitschke

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

Erstellen einer in OWA (Outlook Web App)

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

Algorithmische Kryptographie

MSXFORUM - Exchange Server 2003 > Konfiguration Sender ID (Absendererkennu...

Der beste Plan für Office 365 Archivierung.

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

DNS-325/-320 und FXP

Switching. Übung 7 Spanning Tree. 7.1 Szenario

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

Benachrichtigungsmöglichkeiten in SMC 2.6

12. Dokumente Speichern und Drucken

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

How to do? Projekte - Zeiterfassung

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung

Guide DynDNS und Portforwarding

Leitfaden zur Nutzung des Systems CryptShare /Sicheres Postfach

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

Modul 13: DHCP (Dynamic Host Configuration Protocol)

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

Telefonieren mit App's"! iphone mit Bria Informationen zur Nutzung von TeScript

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Adami CRM - Outlook Replikation User Dokumentation

Anytun - Secure Anycast Tunneling

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

SolarWinds Engineer s Toolset

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Tess TeSign nutzen mit App's"! iphone und Bria Informationen zur Nutzung

Standard-Kontaktformular

EchoLink und Windows XP SP2

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

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

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

Leitfaden Meine Daten ändern

Anleitung Grundsetup C3 Mail & SMS Gateway V

PRESENTEC C-TRACK FÜR BLACKBERRY 8800 & BLACKBERRY CURVE 8310 FUNKTIONSBESCHREIBUNG

E-Government Sondertransporte (SOTRA) Registrierung von Benutzerkennung

SMS-Versand in MACS Einrichtung des SMS-Versand Verwendung des SMS-Versandes Der SMS-Versand Empfängerfeld Empfänger-Rufnummer Inhalt der SMS

Systemanschluss Makler

EasyWk DAS Schwimmwettkampfprogramm

Horstbox VoIP. Stefan Dahler. 1. HorstBox Konfiguration. 1.1 Einleitung

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

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

Verwendung des IDS Backup Systems unter Windows 2000

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

Man liest sich: POP3/IMAP

Installation von NetBeans inkl. Glassfish Anwendungs-Server

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

Veranstaltungsbelegung in QIS/LSF -- Leitfaden für BW-Studierende --

OP-LOG

MODBUS/TCP und Beckhoff Steuerelemente

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

SAP Memory Tuning. Erfahrungsbericht Fritz Egger GmbH & Co OG. Datenbanken sind unsere Welt

Powermanager Server- Client- Installation

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Installation OMNIKEY 3121 USB

Anbindung LMS an Siemens S7. Information

Zusatzmodul Lagerverwaltung

FastViewer Remote Edition 2.X

Dokumentenkontrolle Matthias Wohlgemuth Telefon Erstellt am

Telefonmodem ISDN DSL VDSL. Telekom 1&1 Telefónica/O2. Vodafone Unitymedia HSE Medianet

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Nicht über uns ohne uns

Kommunikations-Management

Lastenheft. Poker iphone App

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Bedienungsanleitung für den SecureCourier

Facharbeit Informatik. Thema:

Mindestanforderungen an. Inland ECDIS Geräte im Informationsmodus und vergleichbare Kartenanzeigegeräte. zur Nutzung von Inland AIS Daten

Kurzanleitung OOVS. Reseller Interface. Allgemein

Cookies. Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel

Firewalls für Lexware Info Service konfigurieren

Firewalls für Lexware Info Service konfigurieren

Anleitung zum Online-Monitoring für Installateure

Grundkurs Routing im Internet mit Übungen

Übung - Konfigurieren einer Windows Vista-Firewall

Technical Note ewon über DSL & VPN mit einander verbinden

FULFILLMENT VON ALLYOUNEED

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Übung - Konfigurieren einer Windows 7-Firewall

Wenn Sie das T-Online WebBanking das erste Mal nutzen, müssen Sie sich zunächst für den Dienst Mobiles Banking frei schalten lassen.

FrontDoor/Monitor mehr sehen von FrontDoor

Transkript:

Lehrstuhl Netzarchitekturen und Netzdienste Institut für Informatik Technische Universität München DCCP Datagram Congestion Control Protocol Benjamin Peherstorfer betreut von Andreas Müller Blockseminar Future Internet WS 09/10

Inhalt Motivation und Einleitung Problembeschreibung DCCP Datagram Congestion Control Protocol Überblick Kernfunktionalitäten Staukontroll Mechanismen Eigenschaften und Einsatzzwecke Aktuelle Fragestellungen Ausblick und Zusammenfassung DCCP Datagram Congestion Control Protocol 2/20

Überblick Zwei dominierende Protokolle auf der Transportschicht TCP: verbindungsorientiert und zuverlässig UDP: verbindungslos und unzuverlässig Anwendungen wie z.b. VoIP verwenden oft UDP Mit UDP übertragene Datenmenge steigt stark an Eine Staukontrolle soll den Staukollaps verhindern Anwendungen und Staukontrolle verfolgen unterschiedliche Ziele Umstieg auf neues Protokoll soll einfach sein UDP Header (links) und TCP Header (rechts) DCCP Datagram Congestion Control Protocol 3/20

Einleitung Gründe warum Anwendungen UDP statt TCP verwenden früher (DNS, SNMP) Datenübertragung kann sofort beginnen (kein Startup Delay) Keine Angriffe wie SYN Flooding möglich (Zustandslosigkeit) heute (VoIP, Online Spiele) Daten (z.b. Video Frames) müssen innerhalb eines Zeitfensters beim Empfänger eintreffen, ansonsten sind sie nutzlos (timeliness) Erst beim Senden des Pakets ist Payload verfügbar Eigenschaften von UDP Datenflüssen heute Datenverlust spielt oft keine große Rolle Langlebiger Datenfluss, keine Request Response Verbindungen Große Mengen an Daten werden übertragen (z.b. Videostreaming) Konstante Übertragungsrate erwünscht Staukontrolle ist daher aus zwei Gründen nötig Staukollaps des Internets soll verhindert werden (vgl. TCP) Konstante Übertragungsrate kann nur aufrecht erhalten werden, wenn sich die Teilnehmer selbst beschränken DCCP Datagram Congestion Control Protocol 4/20

Anforderungen an die Staukontrolle Anwendung entscheidet beim Senden, welche Daten im Paket stehen char sendbuffer[100]; int status; do { f(sendbuffer); status = send(msockethandle, sendbuffer, 100, 0); } while((status<0)&&(errno == EAGAIN)); Wahlmöglichkeit zwischen verschiedenen Staukontroll Mechanismen Feature Negotiation um zuverlässig Parameter zu vereinbaren Unterstützung von Explicit Congestion Notification (ECN) Geringer Overhead DCCP Datagram Congestion Control Protocol 5/20

Wo Staukontrolle ansetzen Staukontrolle in der Anwendung Kann auf Anwendung abgestimmt werden Muss für jede Anwendung neu implementiert werden Unterstützung von ECN problematisch Staukontrolle unterhalb von UDP Man braucht einen Feedback Mechanismus Zwischen IP und UDP einen neuen Header einführen Probleme mit Socket API Staukontrolle auf der Transportschicht Anwendungen müssen wenig an ihrem Code ändern Unterhalb der Transportschicht muss nichts geändert werden DCCP Datagram Congestion Control Protocol 6/20

DCCP: Überblick Datagram Congestion Control Protocol (DCCP) im März 2006 in RFC 4340 vorgestellt Modularer Aufbau DCCP Kernfunktionalitäten werden in RFC 4340 beschrieben Staukontroll Mechanismen bauen auf Kernfunktionalitäten auf Datenübertragung mit DCCP Verbindung wird aufgebaut (Parameter ausgetauscht) Acknowledgement Framework informiert Sender über Status der gesendeten Pakete Staukontrolle überwacht mit diesen Informationen den Datentransfer DCCP Datagram Congestion Control Protocol 7/20

DCCP: Pakettypen und Verbindung DCCP unterscheidet 10 verschiedene Pakettypen Jeder Pakettype hat speziellen Header Overhead minimieren Eine Verbindung durchläuft drei Phasen DCCP Datagram Congestion Control Protocol 8/20

DCCP: Header Header eines DCCP Pakets besteht aus Generic und Packet Header Generic Header trägt jedes Paket (siehe Abb. unten) Packet Header ist für jeden Pakettyp unterschiedlich und erlaubt das Hinzufügen von zusätzlicher Information wie z.b. die Acknowledgement Nummer Generic Header DCCP Datagram Congestion Control Protocol 9/20

DCCP: Sequenznummern Sequenznummern zählen Datagramme (auch ACKs) Dadurch Aushandeln von Parametern während Verbindung möglich Verwendung von kurzen Sequenznummern möglich Statt 48 Bits werden nur 24 Bits gesendet Overhead minimieren Abwehr von Angriffen durch Sequence und Ack. Windows Während Verbindungsausfall gehen viele Pakete verloren DCCP weiß nicht mehr, ob neu ankommendes Paket gültig ist Synchronisation der Verbindung nötig DCCP Datagram Congestion Control Protocol 10/20

DCCP: Acknowledgement Framework Acknowledgement Nummer gibt die Sequenznummer des letzten angekommen Pakets an TCPs cumulative acknowledgements bei DCCP nicht sinnvoll Connection history kann nicht mehr anhand der Acknowledgement Nummer abgelesen werden Daher Acknowledgement Framework nötig Acknowledgement Framework Ack Ratio Feature NDP Count Option Data Dropped Option Ack Vector Option DCCP Datagram Congestion Control Protocol 11/20

DCCP: Ack Vector Option Gibt den Status der letzten Pakete an Received (00), Received ECN Marked (01), Not Yet Received (11) Aufbau der Ack Vector Option 0010011? Länge SSLLLLLL SSLLLLLL Die Information über ein Paket A wird solange in den Ack Vektoren mitgeschickt, bis ein Paket mit Ack Vektor, welcher Paket A behandelt, vom Gegenüber bestätigt wird Ack Vektor kann widersprüchliche Information beinhalten Bestätigen von Acknowledgements nötig (acks of acks) DCCP Datagram Congestion Control Protocol 12/20

DCCP: Feature Negotiation Mechanismus um Parameter zuverlässig auszuhandeln Hinzufügen neuer Parameter einfach Realisierung über vier neue Optionen Change L, Change R, Confirm L, Confirm R Reconciliation Rules Server Priority Liste von Möglichkeiten wird gesendet. Gegenüber wählt eine Möglichkeit davon aus Non Negotiable Es wird ein Wert vereinbart. Ist der Wert gültig, muss er akzeptiert werden. DCCP Datagram Congestion Control Protocol 13/20

Staukontroll Mechanismen DCCP ist lediglich ein Framework für verschiedenste Staukontroll Mechanismen Jeder Staukontroll Mechanismus erhält einen congestion control identifier (CCID) Zusammenwirken von DCCP Kernfunktionalitäten und Staukontroll Mechanismus wird über das Staukontroll Profil festgelegt Verfügbare Staukontroll Mechanismen TCP like Congestion Control (CCID 2) TCP friendly Rate Control (CCID 3) TCP friendly Rate Control for Small Packets (CCID 4) DCCP Datagram Congestion Control Protocol 14/20

TCP like Congestion Control Versucht TCP Staukontrolle möglichst genau nachzubilden Schnelle Anpassung an neue Bandbreite Abrupte Änderungen der Bandbreite Additive Increase/Multiplicative Decrease (AIMD) Geeignet für Anwendungen wo Pufferung möglich Grober Ablauf In Slow Start Phase wird das Staufenster für jedes eingehende ACK verdoppelt In der Congestion Avoidance Phase wird das Staufenster nur noch linear vergrößert Fast Retransmit und Fast Recovery um Algorithmus zu verbessern Mit der Ack Vector Option kann SACK nachgebildet werden DCCP Datagram Congestion Control Protocol 15/20

TCP friendly Rate Control (TFRC) Abrupte Schwankungen der Bandbreite vermeiden Trotzdem faire Aufteilung der Bandbreite (auch mit TCP) Entwickelt für Anwendungen ohne Pufferung (z.b. VoIP) Grundlage ist die TCP Durchsatzgleichung Grober Ablauf Der Empfänger sendet die Loss Event Rate an den Sender Loss Event Rate entspricht Anzahl der verlorenen Pakete durch die Anzahl der gesendeten Pakete in einem gewissen Intervall Dieser setzt diese Rate und weitere Parameter in die Gleichung ein Sender ändert sein Verhalten dem Ergebnis entsprechend DCCP Datagram Congestion Control Protocol 16/20

TCP friendly Rate Control for Small Packets Bei VoIP werden viele kleine Pakete verschickt Empfänger braucht immer aktuelle Daten. Sender kann nicht warten bis genug Daten für ein großes Paket vorliegen Codecs liefern für kurze Audioabschnitte nur wenige Bytes an Daten TCP fasst solche kleinen Pakete einfach zusammen Bei vorgegebener Paketverlust Rate erreicht eine TCP Verbindung mit kleinen Segmenten einen geringeren Durchsatz (in Bytes pro Sekunde) als eine Verbindung mit großen Segmenten. Bei DCCP ist die Paketgröße jedoch durch die Anwendung vorgegeben Paketgröße fließt in die TCP Durchsatzgleichung mit ein Daher Verhalten wie TCP Verbindung mit kleinen Segmenten DCCP Datagram Congestion Control Protocol 17/20

TCP friendly Rate Control for Small Packets Vergleich von TCP (1460 Byte Segmente), TFRC (14 Byte Segmente, Anwendung sendet max. 12 kbps) und TFRC SP bei vorgegebener Paketverlust Rate. TFRC SP verwendet daher eine andere Paketgröße in der TCP Durchsatzgleichung DCCP Datagram Congestion Control Protocol 18/20

Ausblick DCCP noch nicht weit verbreitet Erste Implementierungen für Linux, FreeBSD und NetBSD Firewalls und NAPTs verstehen DCCP noch nicht Anwendungen setzen noch auf eigene Mechanismen (z.b. Skype) Staukontroll Mechanismen haben noch Probleme TFRC SP hat Probleme wenn man Bytes statt Pakete verwirft Um konstante Qualität von Videostreaming zu erreichen, muss sich die Übertragungsrate anpassen Wie mit Datenströmen umgehen, wo sehr schnell zwischen einer Pause und einer (hohen) Datenübertragung gewechselt wird? Wie soll Staukontrolle durchgesetzt werden Router bestrafen unkontrollierten Datenfluss (penalty boxes) DCCP Datagram Congestion Control Protocol 19/20

Zusammenfassung Staukontrolle auch für unzuverlässigen Datentransport nötig Vorteile von UDP nicht verlieren (timeliness over reliability) Anwendungen haben unterschiedliche Anforderungen an die Staukontrolle DCCP ist modular aufgebaut Kernfunktionalitäten bieten allgemeinen Feedback Mechanismus Staukontroll Mechanismen bauen darauf auf Hinzufügen von neuen Optionen oder Features ohne große Änderungen möglich DCCP verbindet das Konzept timeliness over reliability mit einer umfangreichen Staukontrolle DCCP Datagram Congestion Control Protocol 20/20

Quellen Folie 3: http://goethe.ira.uka.de/seminare/rkt/tcp+udp/ Folie 9: [3] Folie 18: [3] DCCP Datagram Congestion Control Protocol 21/20