Überblick. Daten- kommunikation

Ähnliche Dokumente
Rechnernetze Übung 11

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Kommunikationsnetze Prof. Dr. rer. nat. habil. Seitz. Sara Schaarschmidt Eric Hänsel

Themen. Dienste der Transportschicht. 3-Wege-Handshake. TCP-Protokoll-Header. Real-Time-Protocol

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

Grundkurs Datenkommunikation

Netzwerktechnologien 3 VO

Überblick. Daten- kommunikation

Internetanwendungstechnik. TCP/IP- und OSI-Referenzmodell. Gero Mühl

TCP. Transmission Control Protocol

Kommunikation von Prozessen und Threads

Betriebssysteme. Kommunikation von Prozessen und Threads. Sommersemester Prof. Dr. Peter Mandl. Seite 1. Prof. Dr. Peter Mandl.

Netzwerktechnologien 3 VO

Das ISO/OSI Referenzmodell Internet (TCP/IP) Referenzmodell. Standard Elemente Schichten im ISO/OSI Referenzmodell.

Fakultät Informatik Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur. Diplomverteidigung

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

TCP-Verbindungen und Datenfluss

2 Kommunikationssysteme. vs2 1

Netzwerk-Programmierung. Netzwerke.

Netzwerktechnologien 3 VO

Kommunikationsnetze 1. TCP/IP-Netze 1.2 TCP. University of Applied Sciences. Kommunikationsnetze. 1. TCP/IP-Netze 1.

TCP/UDP. Transport Layer

Lehrveranstaltung Rechnernetze Einschub für das Labor

Transportprotokolle im TCP/IP- Referenzmodell

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Das ISO / OSI -7 Schichten Modell

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

Die Transportprotokolle UDP und TCP

Transportschicht. Einleitung Transmission Control Protocol, RFC793. Transportschicht

Rechnernetze und Internettechnologien

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

OSI-Schichtenmodell. Martin Fechtner

Netzwerk-Programmierung in C

11. Foliensatz Betriebssysteme und Rechnernetze

Vortrag zur Diplomarbeit

TCP/IP-Protokollfamilie

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

2. Architektur von Kommunikationssystemen

Transportschicht (Schicht 4) des Internet

Client/Server-Systeme

9. Transportprotokolle

Modul 5: TCP-Flusskontrolle

Vorab: Überblick TCP. Grundeigenschaften Punkt-zu-Punkt-Verbindung Streaming-Schnittstelle

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

Transmission Control Protocol (TCP)

Vorlesung SS 2001: Sicherheit in offenen Netzen

Netzwerkprogrammierung unter Linux und UNIX

Virtuelle Kommunikation. Anwender. Physikalische Kommunikation. "Veredelung" des Dienstes

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

Internet Networking TCP Congestion Avoidance and Control

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

15 Transportschicht (Schicht 4)

Grundlagen der Rechnernetze. Transportschicht

KN Das Internet

Rechnernetze I. Rechnernetze I. 2 Protokolle und Protokollhierharchie SS 2014

Client/Server-Systeme

TCP/UDP PROF. DR. M. FÖLLER NORD INSTITUT EMBEDDED AND MOBILE COMPUTING

Vorlesung Rechnernetze 7. Transportschicht

Rechnerkommunikation II

ARP, ICMP, ping. Jörn Stuphorn Bielefeld, den 4. Mai Mai Universität Bielefeld Technische Fakultät

Verteilte Systeme - Java Networking (Sockets) -

Übungsblatt Warum brauchen Bridges und Layer-2-Switches keine physischen oder logischen

Vorlesung: Netzwerke (TK) WS 2009/10 Kapitel 5 Ende-zu-Ende-Protokolle Session 15

Mobilkommunikationsnetze - TCP/IP (und andere)-

Vermittlungsschicht ( network layer )

Damit zwischen den verschiedenen Rechnern überhaupt ein Austausch möglich ist, muss man sich über das was und wie verständigen.

Routing Tabelle ISP 1: /16 ISP /23 Netz (taucht dieser Eintrag nicht auf, kann das Netz nur über ISP 3 erreicht werden)

Client-Server - Grundlagen

Netzwerke und Ihre Protokolle

Netzwerkprogrammierung

Verteilte Systeme - 1. Übung

Router 1 Router 2 Router 3

Transportprotokolle im TCP/IP- Referenzmodell

Kurzeinführung in TCP/IP. Sebastian Drexler

Computernetze 1. Inhalt

Kontrollfragen zur Vorlesung Kommunikationsnetze für Medientechnologen

Tafelübung zu BS 4. Interprozesskommunikation

Mobilkommunikationsnetze. - Transportschicht -

SIEBEN-SCHICHTEN-MODELL

Netze. Topologien. Kriterien für Netzwerke. 8. Kapitel Über die Grenze: Rechner in Netzwerken

Überblick. Daten- kommunikation

Das Internet-Protocol. Aufteilung von Octets. IP-Adressformat. Class-A Netzwerke. Konventionen für Hostadressen

Rechnernetze 1 Vorlesung im SS 07

Domain Name Service (DNS)

Kapitel 3 Transportschicht

UDP User Datagramm Protokoll

Übungen zu Rechnerkommunikation

Der TCP/IP Protokollstapel

1. Netzwerkprogrammierung für mobile Geräte

Transkript:

Überblick Wintersemester 2014/2015 Prof. Dr. Peter Mandl Daten- kommunikation Aufbau von Kommunikationssystemen Funktionen und Protokolle der unteren Schichten Grundlagen der Transportschicht TCP-Grundlagen Fortgeschrittene TCP-Funktionen und UDP Grundlagen der Vermittlungsschicht Internet und Internet Protocol (IP) Routingverfahren und -protokolle Internet-Steuerprotokolle und IPv6 Anwendungsschicht, Fallstudien Mandl/Bakomenko/Weiß Seite 1

Überblick 1. Transportzugriff 2. Transportorientierte Dienste - Überblick - Verbindungsmanagement - Zuverlässiger Datentransfer - Quittierung - Übertragungswiederholung - Flusskontrolle - Staukontrolle Mandl/Bakomenko/Weiß Seite 2

Wiederholung: ISO/OSI-Referenzmodell Sender Empfänger 7 Verarbeitung Verarbeitungsprotokoll Verarbeitung 6 Darstellung Darstellungsprotokoll Darstellung 5 Sitzung Sitzungsprotokoll Sitzung 4 Transport Transportprotokoll Transport 3 Vermittlung Vermittlung Vermittlung Vermittlung 2 Sicherung Sicherung Sicherung Sicherung 1 Bitübertragung Bitübertragung Bitübertragung Bitübertragung Mandl/Bakomenko/Weiß Seite 3

Wiederholung: TCP/IP-Referenzmodell Sender Logische Kommunikation Empfänger Verarbeitungsschicht Verarbeitungsprotokoll: Telnet, ftp, SNMP, HTTP Verarbeitungsschicht leer leer leer Transportschicht Transportprotokoll: TCP und UDP leer Transportschicht Internet Hostanbindung ans Netz IP, ARP nicht festgelegt Internet Hostanbindung ans Netz IP, ARP nicht festgelegt Internet Hostanbindung ans Netz Host Router Host Mandl/Bakomenko/Weiß Seite 4

Transportzugriffsschnittstelle Transportzugriffsschnittstelle ermöglicht den Anwendungsprozessen eine Ende-zu-Ende- Kommunikation Rechnergrenze Prozess 1 Prozess 2 Transportsystem Transportzugriffsschnittstelle: z.b. Sockets, TLI, XTI Mandl/Bakomenko/Weiß Seite 5

Sockets: Systemeinbettung Sockets sind eine konkrete Implementierung einer Transportzugriffsschnittstelle Anwendungsprotokoll Client Server Socket Interface TCP/IP-Implementierung Betriebssystem Mandl/Bakomenko/Weiß Seite 6

Überblick über Sockets (1) Die Socket-Schnittstelle ist eine API, mit der man Kommunikationsanwendungen entwickeln kann Die Socket-Schnittstelle ist eine Transportzugriffsschnittstelle Sockets wurden in der Universität von Berkeley entwickelt (BSD-Version von UNIX), erste Version 4.1cBSD-System für die VAX aus dem Jahre 1982 Die Originalversion der Socket-Schnittstelle stammt von Mitarbeitern der Firma BBN (ARPA-Projekt, 1981) Sockets sind heute der De-facto-Standard Siehe auch POSIX Standard Mandl/Bakomenko/Weiß Seite 7

Überblick über Sockets (2) Die Socket API unterstützt vor allem Client-Server- Anwendungen, was aus dem Programmiermodell hervorgeht: - Aktiver Partner = Client - Passiver Partner = Server Sockets sind Kommunikationsendpunkte innerhalb der Applikationen, die in der Initialisierungsphase miteinander verbunden werden Dabei spielt es keine Rolle, auf welchen Rechnern die miteinander kommunizierenden Prozesse laufen Mandl/Bakomenko/Weiß Seite 8

Sockets: Protokollmechanismen Die TCP-Socket-Schnittstelle ist stream-orientiert: Es wird ein Datenstrom eingerichtet Die UDP-Socket-Schnittstelle ist nachrichtenorientiert Es ist verbindungsorientierte (TCP-basierte) und verbindungslose (UDP-basierte) Kommunikation möglich Die Adressierung der Kommunikationspartner erfolgt über die Kommunikationsendpunkte über das Tupel (IP-Adresse, Portnummer) Mandl/Bakomenko/Weiß Seite 9

Socket-Programmierung in C C-Socket-Schnittstelle wird in nahezu jedem Betriebssystem in einer Funktionsbibliothek bereitgestellt Mit der Funktionsbibliothek lässt sich relativ aufwändig programmieren Die meisten Socket-basierten Kommunikationsanwendungen sind heute in C programmiert Im Folgenden sind einige Ausschnitte aus einfachen Beispielanwendungen skizziert Mandl/Bakomenko/Weiß Seite 10

Sockets: Die wichtigsten C-Funktionen socket() - Initialisiert einen Socket bind() - Ordnet einem Socket eine lokale Adresse zu connect() - Baut eine Verbindung vom Client zum Server auf listen() - Setzt den Socket in einen passiven, d.h. auf ankommenden Verbindungswünsche wartenden Zustand accept() - Wird bei TCP-Verbindungen verwendet und gibt die nächste ankommende, aufgebaute Verbindung aus der Warteschlange zurück close() - Schließt eine Verbindung recv() - Liest Daten aus dem spezifizierten Socket und gibt die Anzahl der tatsächlich gelesenen Byte zurück send() - Sendet Daten über den spezifizierten Socket und gibt die Anzahl der tatsächlich gesendeten Byte zurück Mandl/Bakomenko/Weiß Seite 11

Sockets: Verbindungsorientiert über TCP Server socket() bind() Verbindungsorientierte Kommunikation listen() accept() Blockieren, bis Connect Request kommt Einrichten der Verbindung recv() Client socket() connect() send() send() recv() Mandl/Bakomenko/Weiß Seite 12

Sockets: Verbindungslos über UDP Server socket() bind() recvfrom() Blockieren, bis Daten vom Client empfangen werden sendto() Verbindungslose Kommunikation Daten (Request) Client socket() bind() sendto() recvfrom() Mandl/Bakomenko/Weiß Seite 13

Überblick 1. Transportzugriff 2. Transportorientierte Dienste - Überblick - Verbindungsmanagement - Zuverlässiger Datentransfer - Quittierung - Übertragungswiederholung - Flusskontrolle - Staukontrolle Mandl/Bakomenko/Weiß Seite 14

Dienste der Transportschicht Logischer Ende-zu-Ende-Transport verbindungsorientierte Transportdienste verbindungslose Transportdienste T-SDUs T-SDUs T-SAP T-SAP T-Instanz T-PDUs T-Instanz N-SDUs N-SDUs (meist) unvollkommener N-Dienst Mandl/Bakomenko/Weiß Seite 15

Pufferung von Nachrichten Puffer für ankommende Nachrichten werden in den Protokollinstanzen (meist im Betriebssystemkern) verwaltet Die Instanzen kopieren die Nachrichten in den Adressraum der empfangenden Anwendungsprozesse Pufferspeicher müssen verwaltet werden ( Overhead) Pufferspeicher benötigen Adressraum (Speicher) Pufferspeicher sind begrenzt ( evtl. Verwerfen von Nachrichten, wenn sie voll sind) Mandl/Bakomenko/Weiß Seite 16

Verbindungsorientierte Transportdienste Eine Verbindung wird etabliert Gemeinsamer Kontext wird aufgebaut Geprägt von traditionellen Kommunikationsdiensten wie Telefonieren Hohe Zuverlässigkeit Fehlerfreie und reihenfolgerichtige Auslieferung der Daten beim Empfänger Verbindungsorientierte Protokolle sind komplexer - Warum? Wann braucht man Verbindungen? Mandl/Bakomenko/Weiß Seite 17

Verbindungslose Transportdienste Verlust von Datenpaketen wird nicht bemerkt Verfälschung des Nutzdatenteils ist nicht unbedingt nachvollziehbar Reihenfolgezerstörung ist möglich Kein Zusammenhang bei aufeinanderfolgenden Dienstaufrufen T-PDUs enthalten die Adressinformation von Sender und Empfänger Mandl/Bakomenko/Weiß Seite 18

Protokollfunktionen in Transportprotokollen Verbindungsmanagement und Adressierung Zuverlässiger Datentransfer Flusskontrolle Staukontrolle Segmentierung Mandl/Bakomenko/Weiß Seite 19

Verbindungsmanagement und Adressierung Kommunizierende Anwendungsprozesse müssen sich kennen - Schicht 4: Transportadresse - T-SAP (Transport Service Access Point) Eine Transport-Instanz unterstützt in der Regel mehrere T-SAPs Transportadressen sind oft kryptisch, daher symbolische Adressen notwendig - Directory Service (Naming Service) Mandl/Bakomenko/Weiß Seite 20

Verbindungsmanagement und Adressierung T-SAP Host 1 Host 2 Anwendungs- Prozess 1 T-SAP N-SAP Transportschicht Anwendungs- Prozess 2 Vermittlungsschicht Sicherungsschicht Bitübertragungsschicht Transportverbindung beginnt hier Netzverbindung beginnt hier Vermittlungsschicht Transportschicht Sicherungsschicht Bitübertragungsschicht T-SAP = Transport Service Access Point N-SAP = Network Service Access Point Mandl/Bakomenko/Weiß Seite 21

Verbindungsaufbau Einrichten von Connection End Points (CEP) - Kontextaufbau auf beiden Seiten Zwei-Wege-Handshake-Protokolle Drei-Wege-Handshake-Protokolle Vorsicht Duplikate! - Diverse Fehlerszenarien möglich - Mechanismus der Folgenummern kombiniert mit einer maximalen Paketlebensdauer - Folgennummern sind einfache Zähler Mandl/Bakomenko/Weiß Seite 22

Verbindungsaufbau, Drei-Wege-Handshake Normaler Protokollverlauf Instanz A und B suchen eigene Folgenummern x und y (seq) aus T-Instanz A T-Instanz B Lokale Ermittlung der Folgenummer x Connect.Request (seq = x) Daten senden und Bestätigung von y (Huckepack) Connect.Response (seq = y, ACK = x) Data.Request (seq = x, ACK = y) Lokale Ermittlung der Folgenummer y... Seq = Folgenummer T-Instanz = Transportinstanz Nach Tanenbaum, A.: et al.: Computer Networks, 5. Auflage, Pearson Studium, 2011 Mandl/Bakomenko/Weiß Seite 23

Verbindungsaufbau, Drei-Wege-Handshake Altes CR-Duplikat taucht auf T-Instanz A T-Instanz B Altes Duplikat! Connect.Request (seq = x) Instanz B merkt nichts! Instanz A erkennt das Duplikat und verweigert Verbindungsaufbau Connect.Response (seq = y, ACK = x) Connect.Reject (seq = x, ACK = y) Ende! Seq = Folgenummer T-Instanz = Transportinstanz Nach Tanenbaum, A.: et al.: Computer Networks, 5. Auflage, Pearson Studium, 2011 Mandl/Bakomenko/Weiß Seite 24

Verbindungsaufbau, Drei-Wege-Handshake Duplikat von Connect-Request und Duplikat von ACK tauchen plötzlich auf T-Instanz A T-Instanz B Altes Duplikat! Instanz B merkt nichts! Instanz A erkennt das Duplikat und verweigert Verbindungsaufbau Altes ACK-Duplikat! Bestätigung falsch! Ende! Seq = Folgenummer T-Instanz = Transportinstanz Nach Tanenbaum, A.: et al.: Computer Networks, 5. Auflage, Pearson Studium, 2011 Mandl/Bakomenko/Weiß Seite 25

Verbindungsabbau Anforderung: - Beim Verbindungsabbau dürfen keine Nachrichten verloren gehen Datenverlust kann vorkommen, wenn - eine Seite einen Verbindungsabbau initiiert, - die andere aber vor Erhalt der Disconnect-Request-PDU noch eine Nachricht sendet - Diese Nachricht ist verloren (Datenverlust) Anspruchsvolles Verbindungsabbau-Protokoll notwendig: - Dreiwege-Handshake-Mechanismus wird auch hier genutzt - Beide Seiten bauen ihre Senderichtung ab Mandl/Bakomenko/Weiß Seite 26

Verbindungsabbau und das Zwei-Armeen-Problem Die Armee der Weißröcke lagert in einem Tal Auf beiden Anhöhen lagert ein Teil der Armee der Blauröcke Die Blauröcke können nur gemeinsam gewinnen und müssen ihren Angriff synchronisieren Unzuverlässiger Kommunikationskanal: Boten, die zu Fuß durch das Tal rennen müssen B Blaue Armee 1 B Blaue Armee 2 W Weiße Armee Nach Tanenbaum, A.: et al.: Computer Networks, 5. Auflage, Pearson Studium, 2011 Mandl/Bakomenko/Weiß Seite 27

Verbindungsabbau, Timerüberwachung Kein Protokoll ist absolut zuverlässig Es wird immer eine Seite geben, die unsicher ist, ob die letzte Nachricht angekommen ist Übertragen auf den Verbindungsabbau: - Beim Dreiwege-Handshake kann immer ein Disconnect- Request oder eine Bestätigung verloren gehen Praktische Lösung: Timerüberwachung mit begrenzter Anzahl an Nachrichtenwiederholungen Nicht unfehlbar, aber doch ganz zufriedenstellend Mandl/Bakomenko/Weiß Seite 28

Timerüberwachung beim Verbindungsabbau Szenario Normaler Ablauf T-Instanz A T-Instanz B Disconnect-Request senden und Timer starten Disconnect-Request bestätigen und Timer starten Verbindung abbauen, ACK senden Verbindung abbauen Timer würde hier ablaufen Timer würde hier ablaufen Nach Tanenbaum, A.: et al.: Computer Networks, 5. Auflage, Pearson Studium, 2011 Mandl/Bakomenko/Weiß Seite 29

Timerüberwachung beim Verbindungsabbau Szenario Timer läuft ab T-Instanz A T-Instanz B Disconnect-Request senden und Timer starten Disconnect-Request bestätigen und Timer starten Verbindung abbauen, ACK senden Timer würde hier ablaufen Timeout, Verbindung trennen Nach Tanenbaum, A.: et al.: Computer Networks, 5. Auflage, Pearson Studium, 2011 Mandl/Bakomenko/Weiß Seite 30

Timerüberwachung beim Verbindungsabbau Szenario Disconnect-Response geht verloren Disconnect-Request senden und Timer starten T-Instanz A Discon.Request T-Instanz B Geht im Netz verloren! Discon.Response Disconnect-Request bestätigen und Timer starten Timeout, erneut senden Discon.Request Discon.Response Verbindung trennen Discon.Response (ACK) Verbindung trennen Nach Tanenbaum, A.: et al.: Computer Networks, 5. Auflage, Pearson Studium, 2011 Mandl/Bakomenko/Weiß Seite 31

Timerüberwachung beim Verbindungsabbau Szenario Zwei Disconnect-PDUs gehen verloren Disconnect-Request senden und Timer starten T-Instanz A Discon.Request T-Instanz B Timeout, erneut senden Geht im Netz verloren! Discon.Request Discon.Response Geht im Netz verloren! Disconnect-Request bestätigen und Timer starten... Timeout, Verbindung trennen Timeout, Verbindung trennen Nach Tanenbaum, A.: et al.: Computer Networks, 5. Auflage, Pearson Studium, 2011 Mandl/Bakomenko/Weiß Seite 32

Zuverlässiger Datentransfer Was heißt hier zuverlässige Datenübertragung? - Garantierte Ausführung? Nein! - Transaktionssicherheit Nein! - Sicherstellen der Übertragung durch Quittierung und Übertragungswiederholung Ja! Quittierungsvarianten - Positiv selektiv - Positiv kumulativ - Negativ selektiv - Kombination der Verfahren möglich Varianten der Übertragungswiederholung - Selektiv - Go-back-N Mandl/Bakomenko/Weiß Seite 33

Zuverlässiger Datentransfer Quittierungsvarianten Positiv selektives Quittierungsverfahren Eine Quittung pro gesendeter Nachricht Hoher Zusatzverkehr (viele ACK-PDUs) Im Beispiel unten in Kombination mit Stop-and-Wait Daten-PDU senden Warten auf ACK!... Erst hier kann wieder gesendet werden T-Instanz A Data.Request (Data) Data.Response (ACK) Data.Request (Data) T-Instanz B Daten erhalten, bestätigen Daten erhalten, bestätigen Timer würde hier ablaufen Data.Response (ACK) Mandl/Bakomenko/Weiß Seite 34

Zuverlässiger Datentransfer Quittierungsvarianten Positiv kumulatives Quittierungsverfahren Eine Quittung für mehrere Nachrichten Reduzierung der Netzlast Nachteil: Verspätete Information an den Sender über Datenverlust Daten-PDU 1 senden T-Instanz A Data.Request (Data1) T-Instanz B Daten erhalten Daten-PDU 2 senden, Kein Warten auf ACK 1 Data.Request (Data2) Daten erhalten Data.Response (ACK 1+2) Daten 1 + 2 bestätigen... Mandl/Bakomenko/Weiß Seite 35

Zuverlässiger Datentransfer Quittierungsvarianten Negativ selektives Quittierungsverfahren Weitere Reduzierung der Netzlast Problem: Verlust von Quittungen und dessen Behandlung Daten-PDU 1 senden Daten-PDU 2 senden T-Instanz A Data.Request (Data1) Data.Request (Data2) T-Instanz B Daten erhalten Daten-PDU 3 senden Data.Request (Data3) Kommt nicht an! Daten-PDU 2 erneut senden... Data.Response (NAK 2) Nachricht 3 erhalten, Nachricht 2 wird angefordert Timerüberwachung notwendig! Mandl/Bakomenko/Weiß Seite 36

Zuverlässiger Datentransfer Übertragungswiederholung Generell: selektiv Sender muss Nachrichten über einen gewissen Zeitraum zur Übertragungswiederholung bereithalten Man nennt diese Art von Protokollen auch ARQ- Protokolle Automatic Repeat request, = Automatische Wiederholungsanfrage Nur die negativ quittierten Nachrichten werden wiederholt Empfänger puffert die nachfolgenden Nachrichten, bis die fehlende Nachricht da ist Reguläre Übertragung kann während der Wiederholung fortgesetzt werden Nachteil: Große Pufferkapazität beim Empfänger Mandl/Bakomenko/Weiß Seite 37

Zuverlässiger Datentransfer Übertragungswiederholung Go-Back-N Übertragungswiederholung der fehlerhaften Nachricht sowie aller nachfolgenden Die reguläre Übertragung wird unterbrochen Vorteil: Geringe Speicherkapazität beim Empfänger. Warum? T-Instanz A T-Instanz B Nachrichten senden Data.Request (Data1) Data.Request (Data2) Data.Request (Data3) Kommt nicht an! NAK (Data2) Nachricht 2 fehlt! Ab Data 2 alles noch mal senden Data.Request (Data2) Data.Request (Data3) Hier in Kombination mit negativ-selektiver Quittung (NAK) Mandl/Bakomenko/Weiß Seite 38

Flusskontrolle Steuerung des Datenflusses Vermeidet Überlastung des Empfängers Traditionelle Verfahren sind: - Stop-and-Go (Stop-and-Wait) Einfachstes Verfahren Kopplung von Fluss- und Fehlerkontrolle Nächste Nachricht wird erst nach der Quittierung gesendet - Fensterbasierte Flusskontrolle Empfänger vergibt sog. Sendekredit, also eine max. Menge an Nachrichten oder Bytes, die unquittiert an ihn gesendet werden dürfen Empfänger kann den Sendekredit durch positive Quittungen erhöhen Vorteil: Kontinuierlicher Datenfluss und höherer Durchsatz als bei Stop-and-Go möglich Mandl/Bakomenko/Weiß Seite 39

Flusskontrolle Sliding-Window-Protokoll: Vier Intervalle Bestätigung (ACK) führt zum Weiterrücken des Zeigers base und des Fensters base nextseqnum bereits bestätigt gesendet, aber noch nicht bestätigt verwendbar, noch nicht gesendet nicht verwendbar Quelle: Kurose Fenstergröße N Mandl/Bakomenko/Weiß Seite 40

Staukontrolle (Überlastkontrolle, Congestion Control) Nicht mit Flusskontrolle verwechseln Durch Staukontrolle sollen Verstopfungen bzw. Überlastungen im Netz vermieden werden Staukontrolle in der Transportschicht durch Endezu-Ende-Steuerung zwischen Endsystemen Staukontrolle ist ein Mechanismus mit netzglobalen Auswirkungen Beispiel später: Slow-Start-Verfahren bei TCP Mandl/Bakomenko/Weiß Seite 41

Rückblick 1. Transportzugriff 2. Transportorientierte Dienste - Überblick - Verbindungsmanagement - Zuverlässiger Datentransfer - Quittierung - Übertragungswiederholung - Flusskontrolle - Staukontrolle Mandl/Bakomenko/Weiß Seite 42