Vorlesung „Rechnernetze“ Informationen zum Labor

Werbung
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
Herunterladen