Document

Werbung
Symbole
-
R
Bitrate
D
Ausbreitungsverzögerung
RD
Kanalpuffergröße
L
Paketgröße
RD/L
Kanalpuffergröße in Paketen
𝐿
Durchsatz: 𝐿
( )+2𝐷
𝑅
S
Normierter Durchsatz: Durchsatz / R => S = 1/1+2a
Stichwörter
URL
Uniform Resource Locator
RTT
Round Trip Time (2RTT pro Verbindungsaufbau)
MSS
Maximum Segment Size (TCP, bytes pro segment ohne header). MSS + Header < MTU
MTU
Maximum Transmission Unit (bytes pro Protocol Data Unit)
HiddenTerminal: A,B,C. A<->B, B<->C, A<-!->C
Statechart:
Ereignis[Bedingung]/Aktion
Kommunikationsart
Unicast (Punkt-zu-Punkt): ein Sender, ein Empfänger
Multicast (Punkt-zu-Mehrpunkt, Gruppenruf): ein Sender, ein Gruppe von Empfängern
Broadcast (Rundruf): an alle Teilnehmer des Netzes
Anycast: ein Empfänger aus einer Gruppe möglicher Ziele
Multiplexverfahren: Verwendung eines physikalischen Mediums durch mehrere Geräte
FDMA / FDM: Frequenzmultiplex (Frequency Divsion Multiplex, Multiple Access): Geräteverwenden verschiedene
Teile des Frequenzspektrums (UKW-Radio): feste Kanalaufteilung
TDMA: Zeitmultiplex (Time Divsion Multiplex, Multiple Access): Geräte wechseln sichzeitlich ab (ISDN, DSL)
CDMA: Codemultiplex: Verschiedene Signalfolgen über eine Leitung. Erkennung im Empfänger an
unterschiedlicher Kodierung (UMTS)
Vermittlungsart
Leitungsvermittlung
o zwischen Sender und Empfänger wird mittels Signalisierung einKanal zur Übertragung aufgebaut (z.B.
durch Zeit- oder Frequenzmultiplex)
o die zur Verfügung stehende Bitrate muß fest auf die Kanäleaufgeteilt werden
o Standardverfahren in der Telefonie, bei schwankendenDatenaufkommen mit vielen Pausen ineffizient
Paketvermittlung
o Sender schickt Daten in Paketen, die einzeln zum Sendergelangen
o die Bitrate wird effizienter aufgeteilt
o kurzfristiges höheres Datenaufkommen kann über Puffer
o abgefangen werden
o dies kann zu Verzögerungen und Pufferüberläufen führen
ISO OSI (Open Systems Interconnection)
Bitübertragungsschicht (Physical Layer): mechanische, elektrische und prozedurale Eigenschaften zur Übertragung
von Bits: Zeitsynchronisation, Kodierung, Modulation, …
Sicherungs- oder Verbindungsschicht (Data Link Layer): Medienzugriff und gesicherte Übertragung von Rahmen
(Frames): Rahmensynchronisation, Fehler- und Flußkontrolle, …
Vermittlungsschicht (Network Layer): Übertragung von Paketen bzw. Datagrammen: Verbindungsaufbau,
Wegewahl, Vermittlung, Betriebsmittelverwaltung, …
Transportschicht (Transport Layer): zuverlässiger Ende-zu-Ende Transport von Segmenten
Sitzungsschicht (Session Layer): Kommunikation zwischen Anwendungen
Darstellungsschicht (Presentation Layer): Syntax und Semantik der ausgetauschten Informationen, z.B. mit
Abstract Syntax Number One (ASN.1) oder XML
Anwendungsschicht (Application Layer): Kommunikation der Anwendungsprozesse mit
anwendungsspezifischenInformationen
Schichten:
Schichten n+1 nutzen Dienste der Schicht n
Dienst wird zw. Schichten an SAPs (Service Access Points) angeboten, SDUs (Serivce Data Units) werden
übergeben
Instanzen der Schicht n auf versch. Hosts tauschen PDU (Protocol Data Units) aus. Jede PDU enthält Header.
Dienstgüte (Quality-of-Service, QoS)
Sammelbegriff für quantitative Aspekte von Rechnernetzen und ihren Protokollen, z.B.:
o Antwortzeit (z.B. auf die Reaktion eines Servers)
o Durchsatz (übertragene Daten pro Zeiteinheit, nicht gleich der Bruttobitrate)
o Verlust- und Fehlerrate (z.B. von Paketen in einem Netz bei drahtloser Übertragung)
o Verfügbarkeit (Zeitanteil, in dem ein System einsatzfähig ist,
wichtig zur Auswahl und Konfiguration von Netzwerkarchitekturen und Protokollen
HTTP
-
Ansätze: Messung, (stochastische) Analyse, Simulation
Unterstützung durch Werkzeuge
nicht-persistent: für jedes Objekt wird einzelne TCP-Verbindung geöffnet, Server beendet sie sofort nach dem
Senden eines Objekts. Entweder Basis-Seite und eingebettete Objekte sequentiell oder parallele einzelne
Verbindungen für die eingebetteten Objekte
persistent: Server läßt Verbindung bestehen, alle Objekte werden über eine TCP-Verbindung gesendet
o ohne Pipelining: nach jedem Objekt Anfrage für nächstes Objekt
o mit Pipelining: eine Anfrage für alle eingebetteten Objekte
Netzwerkmanagement
Überwachung und Verwaltung eines Netzwerks = komplexes HW/SWGebilde (zahlreiche Geräte, Leitungen,
Datenstrukturen, …)
nach ISO 5 Einsatzbereiche
o Leistung: Monitoring von Auslastung, Durchsatz, Antwortzeiten, Dokumentation (z.B. für die
Überwachung von Service Level Agreements), Reaktionsmaßnahmen
o Fehler: Monitoring, Dokumentation, Reaktionsmaßnahmen
o Konfiguration: Übersicht über Geräte und deren HW/SWKonfigurationen
o Zugang: Festlegung, Kontrolle, Dokumentation des Zugangs von Benutzern und Geräten
o Sicherheit: Monitoring und Kontrolle des Zugangs,Schlüsselverwaltung, z. B. Filterregeln für Firewalls,
Intrusion Detection
Simple Network Management Protocol (SNMP)
o Managing Entity: Prozess auf zentraler Management Station = Client
o Managed Device: Gerät im Netz
o Managed Object: HW/SW im Managed Device (Routing Tabelle)
o Management Agent: Prozess auf Managed Device, kann locale Aktionen ausführen = Server
o Protokoll zw Entity und Agent über UDP
DNS (Domain Name System)
Domain-Name -> Wert (IP-Adresse)
Verteilte Datenbank, viele Name-Server
Hierarchischer Namensraum
Root Name Server -> Top-Level Domain Server (com, org, de) -> ... -> autoritativer Name-Server (unterste Ebene)
Resource Records: Datensätze der Nameserver:
o TTL: Time to Live
o Typ A: Wert = IP-Adresse
o Typ NS: Domainname eines Hosts auf dem in Nameserver läuft der Nmane in der Domain auflösen kann
o Typ CNAME: kanonischer Name eines Hosts, ermöglicht Aliasnamen
o Typ MX: Domain-Name des Hosts auf dem Mailserver läuft
Anfragearten
o Iterativ: Anwort ist anderer Server, der Namen evtl auflösen kann. NS- und A-Datensatz, keine
Information gespeichert, gut für hochfrequentierte Server
o Rekursiv: Antwort: Auflösung des Namens die von anderen Servern geholt wird. A-Datensatz,
Information muss gespeichert werden
Content Distribution Networks (CDNs)
Ziel: Vermeiden längerer Wartezeiten beim Laden von Web-Seiten
3 Engpässe: erste Meile, letzte Meile,Peering-Punkte (Übergängezwischen ISPs)
Idee: sehr viele Spiegel-Server geografisch verteilen (wie Web-Caches, Inhalt wird proaktiv auf sie repliziert)
Verteilung der Anfragen
o Server-basierte HTTP Redirection: Server liefert aufgrund der IPAdresse des Clients einen geeigneten
anderen Server, erfordert zusätzliche RTT, Gefahr der Überlast für Server
o Client-nahe HTTP-Redirection: z.B. durch Web-Proxy, schwieriger zu verwirklichen
o DNS-basierte Redirection: DNS-Server bildet den Domain-Namen des Servers auf die IP-Adresse eines
geeigneten Servers ab
o URL-Rewriting: Server liefert Basisseite, die URLs der eingebetteten Objekte werden umgeschrieben,
mit dem Domain-Namen eines geeigneten anderen Servers
Socket-Schnittstelle
verbreitetes API für Transportdienste
Festlegung von TCP/UDP, IP-Adressen, Portnummern
Peer-to-Peer (P2P):
Overlay-Netz: logisches Netz aus Peers über physikalischem Netz
Unstrukturiert (1st/2nd Generation)
o Zentralisierte P2P Netze (Napster) Datenaustausch P2P, Verzeichnis aber zentral
o Reine P2P Netze (Gnutella 0.4) Keine Zentrale, vollständige Vermaschung der Peers (Skalierbarkeit?!)
o Hybride P2P Netze (Gnutella 0.6, JXTA) Inseln mit Serverstruktur, Vermaschung der Inseln
Strukturiert
o DHT (Distributed Hash Table) basiert, Z.B. Chord, CAN
-
o Keine zentralen Server, hochgradig skalierbar
Fluten: Anfrage an Nachbarn weiterschicken. Schlecht skalierbar.
DHT: ringförmiges Overlay Netz. Jeder Peer hat Bezeichner p <2^m-1. Jedes Datenelement hat Schlüssel k
o Nachfolger von k

- Datenelement mit Schlüssel k wird auf Nachfolger p von k gespeichert, p = succ(k)

- dies ist der Peer mit dem kleinstem Bezeichner p ≥ k (die ≤-Relation gilt bis auf Modulo 2m-1)

- Lookup für ein Datenelement mit Schlüssel k erfolgt auf Peer succ(k)
TRANSPORTSCHICHT
Aufgabe: Kommunikation zwischen Anwendungsprozessen
mögliche Dienstmerkmale
Fehlerkontrolle
Bewahrung der Reihenfolge
verbindungslos/verbindungsorientiert
Fluss-und Überlastkontrolle
Garantien für Dienstgüte (z.B. Bitrate, Verzögerung, Verlust)
User Datagram Protocol (UDP)
verbindungslos, keine Kontrollmechanismen, bewahrt nicht Reihenfolge
einfache Paketvermittlung mittels IP, Verantwortung für Kontrollmechanismen bei Anwendung
Header: Source Port (16bit), Dest Port (16bit), Length(des Segments) (16 bit), Checksum (16bit)
Pseudo-Header:
o Quell-/Ziel-IP, Protokollnummer (UDP=17), Segmentlänge
o Vorteil: Kontrolle der Prüfsumme erkennt auch Fehler in den IP-Adressen, z.B. fehlgeleitete Segmente
o Nachteil: Verletzung des Schichtenprinzips (aber nur auf Endsystem)
Transmission Control Protocol (TCP)
verbindungsorientiert, Fehler-, Fluss-, Überlastkontrolle, keine Dienstgütegarantien, Abstraktion eines Bytestroms
Header: Source Port (16), Dest Port (16), SQN (32), ACK Nr(32), ( HeadLen, URG(ent), ACK, PSH(push segment),
RST(reset), SYN(synchronisiere Verb.), FIN(beenden)), AdvertizeWindow: Fenstergröße für Flusssteuerung,
checksum
Pseudoheader: wie UDP, einschl. Prüfsummenberechnung
Verbindung eindeutig identifiziert durch Tupel (Quell-IP, Ziel-IP, Quell-Port, Ziel-Port)
Fehlerkontrolle:
o Verhalten des Senders

1.wenn Daten zum Senden und Platz im Fenster: erstelle Segment mit nextSQN und sende es
mit IP, erhöhe nextSQN um Länge der Daten; wenn es das erste Paket im Fenster ist, starte
Timer

2.wenn ein ACK mit ACK-Nr. im Fenster zurückkommt, schiebe das Fenster bis zu dieser ACKNr.; wenn das Fenster leer ist, stoppe den Timer, sonst starte den Timer neu

3.wenn der Timeout abläuft, sende das erste unbestätigte Paket des Fensters erneut, starte
den Timer erneut
o Verhalten des Empfängers (Segment kommt an):

SQN = Fensteranfang ist und alle vorherigen Segmente bereits bestätigt sind: schiebe
Fensteranfang bis zum nächsten erwarteten Byte und warte ein Timeout (500 ms), wenn bis
dahin kein neues Segment ankommt, schicke ein ACK mit dem Fensteranfang (delayed ACK)

SQN = Fensteranfang ist und ein vorheriges Segment noch nicht bestätigt wurde, schiebe
Fensteranfang bis zum nächsten erwarteten Byte und schicke sofort ein kumulatives ACK mit
dem Fensteranfang

SQN > Fensteranfang ist, puffere die Daten und schicke sofort ein kumulatives ACK mit dem
Fensteranfang

es eine Lücke teilweise oder ganz füllt, puffere die Daten, schiebe Fensteranfang bis zum
nächsten erwarteten Byte und schicke sofort ein kumulatives ACK mit dem Fensteranfang
Fehlerkontrolle
Stop-And-Wait
o Verhalten des Senders

1. sende Paket mit aktueller SQN und starte Timer

2. wenn ein ACK ohne Bitfehler und mit aktueller SQN vor Ablauf des Timeouts zurückkommt,
inkrementiere SQN und gehe zu 1

3. wenn der Timeout abläuft, sende das Paket erneut, starte den Timer erneut und gehe zu 2
o Verhalten des Empfängers

wenn Paket ohne Bitfehler und mit aktueller SQN ankommt, sende ACK mit aktueller SQN und
inkrementiere SQN, sonst sende das letzte ACK erneut
1−𝑝
o Leistungsanalyse: mit Fehler Durchsatz S =
, ohne Fehler:
1+2𝑎
-
𝑊
o Ohne Fehler: 𝑊 ≥ 1 + 2𝑎: 1 𝑠𝑜𝑛𝑠𝑡 𝑊 < 1 + 2𝑎:
1+2𝑎
Go-Back-N
o
-
Versus
-
Verhalten des Senders

1. wenn Daten zum Senden und Platz im Fenster: sende Paket mit nextSQN und inkrementiere
nextSQN; wenn es das erste Paket im Fenster ist, starte Timer

2. wenn ein ACK ohne Bitfehler und mit SQN im Fenster zurückkommt, schiebe das Fenster bis
zu dieser SQN; wenn das Fenster leer ist, stoppe den Timer, sonst starte den Timer neu

3. wenn der Timeout abläuft, sende alle unbestätigten Pakete des Fensters erneut, starte den
Timer erneut
o Verhalten des Empfängers

wenn Paket ohne Bitfehler und mit aktueller SQN ankommt, sende ACK mit aktueller SQN und
inkrementiere SQN, sonst sende das letzte ACK erneut (wie bei Stop-and-Wait)
o base: SQN des ältesten unbestätigten Pakets
o nextSQN: SQN des nächsten zu verschickenden Pakets
o W: Fenstergröße, Anzahl der Pakete, die Sender vor Erhalt eines ACKs senden darf
o [base, nextSQN-1]:versendete unbestätigte Pakete
o [nextSQN, base+W-1]: ungesendete Pakete, die vor Erhalt eines ACKs noch gesendet werden dürfen
Selective Repeat
o Verhalten des Senders

1. wenn Daten zum Senden und Platz im Fenster: sende Paket, starte Timer für dieses Paket
und inkrementiere nextSQN

2. wenn ein ACK ohne Bitfehler und mit SQN im Fenster zurückkommt, markiere das Paket mit
SQN als bestätigt, schiebe das Fenster bis zur nächsten Lücke

3. wenn der Timeout für das Paket mit SQN abläuft, sende dieses Paket erneut, starte den
Timer für dieses Paket erneut
o Verhalten des Empfängers

wenn Paket ohne Bitfehler und mit SQN im Fenster ankommt, sende ACK mit dieser SQN,
puffere das Paket und schiebe das Fenster bis zur nächsten Lücke

wenn Paket mit SQN aus vorigem Fenster ankommt, sende das ACK hierfür erneut
o hinreichende Bedingungen für SQN Raum

falls Empfangsfenstergröße = 1: W < m

falls Sendefenstergröße = Empfangsfenstergröße = W > 1:W < (m+1)/2
1−𝑝
𝑊 ≥ 1 + 2𝑎
1+2𝑎𝑝
o Leistung: 𝑆 = {
𝑊(1−𝑝)
𝑊 < 1 + 2𝑎
(1−𝑝+𝑊𝑝)(1+2𝑎)
Go-Back-N: kumulative ACKs gleichen ACK-Verluste und -Verspätungen schnell aus, ohne daß die Pakete erneut
gesendet werden müssen, der Sender benötigt nur einen Timer, der Empfänger benötigt keinen Puffer, Sender
und Empfänger können einfacher realisiert werden, weil keine Lücken in den Fenstern beachtet werden müssen
Vorteil Selective Repeat: weniger Wiederholungen von Sendungen, weil nur wirklich fehlerhafte oder
verlorengegangene Pakete erneut gesendet werden
Flusskontrolle, Überlastkontrolle
Flusskontrolle (Flow Control)
o Mechanismus, mit dem der Empfängerden Sender steuern kann, damit er ihn nicht überlastet aber auch
so schnell sendet wie möglich
o üblicherweise durch Benachrichtigung über Fenstergröße
Überlastkontrolle (Congestion Control)
o Mechanismus, mit dem der Sender davon abgehalten wird, das Netz(Bandbreiten und Puffer) zu
überlasten
o kann durch explizite Signaledes Netzes an den Sender erfolgen (z.B. bei ATM)
o in TCP gibt es klassischerweise keinen solchen expliziten Mechanismus, der Sender leitet sich aus den
zurückkommenden ACKsInformationen über den Netzzustand ab und reagiert entsprechend
o inzwischen gibt es auch Vorschläge für die Erweiterung von TCP und IP zur expliziten
Überlastbenachrichtigung: Explicit Congestion Notification (ECN)
Vermeidung des Silly Window Syndroms
o Segmente mit wenig Daten sind ineffizient
o wenn die Puffer voll sind und kleine Segmente gesendet werden, zirkulieren sie zwischen Sender und
Empfänger und bleiben im System
o MSS (Maximum Segment Size), Default sind 536 Bytes
o wenn der Empfänger ein AdvertizedWindow = 0 bekannt gibt, wartet er danach bis er ein
AdvertizedWindow ≥MSS bekannt geben kann
Überblick über die Überlastkontrolle
o der TCP-Sender versucht aus den zurückkommenden ACKs Informationen über die mögliche Senderate
zu erhalten
o hierzu gibt es das CongestionWindow, das zusammen mit der Flußkontrolle zur Ermittlung des
tatsächlichen Sendefensters verwendet wird:
o
o
o
o
o
-
-
MaxWindow = Min(CongestionWindow, AdvertizedWindow)
EffectiveWindow = MaxWindow -(LastByteSent-LastByteAcked)
die Bitrate ergibt sich ungefähr aus CongestionWindow/RTT
durch Vergrößerung des CongestionWindows vergrößert der Sender die Bitrate und versucht sich an die
mögliche Bitrate anzunähern
bei einem Verlust (durch 3 doppelte ACKs oder einen Timeout zu erkennen) wird das
CongestionWindows und damit die Bitrate wieder verkleinert
genauer:
o Slow Start

setze CongestionWindow = MSS

nach Erhalt eines ACKs: CongestionWindow += MSS(hierdurch wird ein exponentielles
Ansteigen realisiert)

bis Threshold erreicht ist, dann Additive Increase (am Anfang ist Threshold unendlich)
o nach 3 doppelten ACKs:

Multiplicative Decrease:Threshold = CongestionWindow/2; CongestionWindow /= 2

Additive Increase: bei Erhalt eines ACKsCongestionWindow += MSS x
(MSS/CongestionWindow)

hierdurch wird ein Wachstum um ca. ein MSS pro RTT realisiert

z.B.: MSS = 1.460 Bytes, CongestionWindow = 14.600 Bytes, jedes ACK vergrößert um ca. 1/10
MSS, 10 ACKs um ca. 1 MSS
o nach Timeout

Threshold = CongestionWindow/2; CongestionWindow = MSS
Festes Fenster: Fenster füllt den Kanal: WS/R > RTT + S/R ..... (S = MSS)
o Verzögerung = 2RTT + O/R
Festes Fenster: Fenster zu klein um Kanal zu füllen: WS/R < RTT + S/R
𝑂
-
o Verzögerung = 2RTT + O/R + (K-1)(S/R + RTT – WS/R), 𝐾 = ⌈ ⌉
𝑊𝑆
Slow Start
𝑂
𝑆
𝑆
o Verzögerung = 2𝑅𝑇𝑇 + + 𝑃 [𝑅𝑇𝑇 + ] − (2𝑃 − 1)
𝑅
o
-
𝑅
Anzahl Slow-Start Wartezeiten: 𝑃 = min(⌊log 2 (1 +
𝑅
𝑅𝑇𝑇
𝐿/𝑅
𝑂
)⌋ + 1, ⌈log 2 ( + 1)⌉ − 1)
𝐿
Web-Seite mit:
o 1 Basis-HTML-Seite (O Bits)
o M Bilder (auch jeweils O Bits)
o nicht-persistentes HTTP:

M+1 sequentielle TCP-Verbindungen

Antwortzeit = (M+1)O/R + (M+1)2RTT + Slow-Start-Wartezeiten
o persistentes HTTP:

2 RTT für Basis-Seite

1 RTT für M Bilder

Antwortzeit = (M+1)O/R + 3RTT + Slow-Start-Wartezeiten
o nicht-persistentes HTTP mit X parallelen Verbindungen

Annahme: M/X ist ganze Zahl

1 TCP-Verbindung für Basis-Seite

M/X Mengen von parallelen Verbindungen für Bilder

Antwortzeit = (M+1)O/R + (M/X+1)2RTT + Slow-Start-Wartezeiten
NETZWERKSCHICHT
Aufgaben:
Hosts senden und empfangen, Vermittlungseinheiten leiten weiter
Weiterleitung (Forwarding): Vermittlungseinheit empfängt Dateneinheiten auf einer Leitung und leitet sie auf
einer anderen (derrichtigen) weiter
Wegewahl (Routing): Verfahren, mit denen Vermittlungseinheiten entscheiden, über welchen Weg
Dateneinheiten gesendet werden sollen
Header:
Ver: 4 für Ipv4
Header Length: 4bits, Header Länge in 32Bit Worten
Type of Service: 2 bits für Unterscheidung bei Dienstgüte
Length: Gesamtlänge in bytes (16 bit)
Identifier, Flags, Offset: Für Fragmentierung
TTL: Time to live: Hoplimit, jeder Router dekrementiert (8bit)
Upper Layer: höheres Protokoll (8bit)
Internet Checksum (16 bit)
Source IP (32 bit), Destination IP (32 bit)
Options (if any) (32 bit). Data
=> ohne Options 20 Bytes
Besondere Adressen:
Alles 0: This host. 00000 Host: Host on this Network. Alles 1: Broadcast on local network.
Network 1111: Broadcast on distant network. 127 xxx: Loopback
Klassenbasierte Adressierung:
Vorteil der klassenbasierten Adressierung
o selbstidentifizierende Adressen: an den ersten Bits wird erkannt, um welche Klasse es sich handelt
o Weiterleitungstabelle benötigt nur Netzwerkteil der Adresse und kann klein gehalten werden
Nachteile der klassenbasierten Adressierung
o feste Zuordnung von Netzwerken, wenn ein Rechner in eine anderes Netzwerk zieht, muss seine IPAdresse angepasst werden
o C-Netze erlauben nur wenige Hosts (8 Bits), B-Netze erlauben sehr viele Hosts (16 Bits)
o Verschwendung: größere Organisationen bemühen sich um B-Netz und nutzen Adressen nur teilweise
o Anfang der 90er Jahre war absehbar, dass der Adressraum für weiteres Wachstum nicht ausreicht
CIDR (Classless Inter-Domain Routing)
Weiterleitung basiert nicht mehr auf klassenbasierten Netzwerkadressen sondern auf einer beliebigen Anzahl von
Bits in der Adresse, die durch die Maske gekennzeichnet werden
Adresse und Maske können als Einträge in die Weiterleitungstabelle geschrieben werden
die starre Zuordnung ist aufgelöst, aber größere Tabellen
heute verbreitet
die Router müssen ein Longest-Prefix-Match durchführen: sie vergleichen die Adresse mit Übereinstimmungen in
der Weiterleitungstabelle und wählen diejenige, bei denen die meisten Bits übereinstimmen
hierfür gibt es spezielle Datenstrukturen (Varianten von Binärbaumen), mit denen dieses effizient durchführbar ist
Fragmentierung
wenn Verbindungen unterwegs eine kleinere MTU (Maximum Transmission Unit) erfordern, wird das Datagramm
in Fragmente zerlegt und als kleinere Datagramme weitergeleitet
dies kann sich u.U. mehrmals wiederholen
IP-Header-Felder
o identifier: Kennzeichnung
o zusammengehöriger Fragmente
o flag: Fragment folgt
o offset: Position der Daten des Fragments bei offset*8
Reassemblierung: erst am Ziel wird wieder zusammengesetzt
NAT (Network Address Translation)
Umgehung der Adressknappheit
Netzwerk verwendet intern global ungültige Adressen, z.B. 10.0.0.0/24
Netzwerk besitzt eine global gültige IP-Adresse
Verbindungen zu internen Hosts werden auf Paare abgebildet, die aus dieser Adresse und einem Port bestehen
nächster Router muss die Abbildung ausführen, er besitzt Tabelle hierfür und überschreibt Adressen und Ports in
den IP-Datagrammen
Größe durch Anzahl von Portnummern begrenzt
Nachteil: Verletzung des Schichtenprinzips (Router beschäftigt sich mit Hosts) und Eingriff in die Ende-zu-EndeVerbindung
Vorteil: interne Änderungen ohne externe Auswirkung, bessere
Abschirmung
IPv6 (IP version 6)
ursprünglicher Name: IP – The next Generation (IPng)
IPv5 war experimentelles Protokoll
IETF-Standardisierungsbemühung initiiert wegen
Adressraumproblemen von IPv4, dabei gleich Lösung weitererProbleme
o Header mit fester Länge (für schnelles Weiterleiten)
o keine Fragmentierung (wird einfach verworfen falls > MTU)
o keine Prüfsumme (Fehlererkennung in höheren Schichten)
o zusätzliche Optionen außerhalb als nächster Header
o Autokonfiguration (inzwischen DHCP)
o Dienstgütemerkmale (inzwischen IntServ, DiffServ)
Probleme bei der Durchsetzung, inzwischen „kann“ IPv4 vieles auch
Kurzformen: 4BF5:0000:0000:0000:BA5F:039A:000A:2176
o Nullen kompakter: 4BF5:0:0:0:BA5F:39A:A:2176
o Nullen weglassen: 4BF5::BA5F:39A:A:2176
gemischte Notation: die letzten 32 Bits sind oft IPv4-Adresse, Darstellung durch ::FFFF:128.155.12.198
Header: Ver, Pro, Flow Label; Payload len, next Hdr, Hop Limit; Source IP; Dest IP; Data
Übergang von IPv4 zu IPv6
-
gleichzeitige Umstellung unmöglich
2 Ansätze, wenn IPv6-Datagramme zu einem IPv4-Router geschicktwerden müssen
Dual Stack: IPv6-Knoten haben auch IPv4-Implementierung und können Datagramme als IPv4 versenden,
zusätzliche IPv6-Information geht dabei verloren
Tunneling: das IPv6-Datagramm wird in ein IPv4-Datagramm eingepackt
ROUTER
Aufgaben: Weiterleitung, Ausführung von Routingprotokollen
Aufbau: Input Ports -> (Switching Fabric <-> Routing Processor) -> Output Port
Funktionen am Input Port: (Line Termination -> Data Link Processing -> Lookup, Forwarding, Queuing)
o Pufferung, fals Pakete schneller von der Leitung kommen als sie weitergegeben warden können.
Paketverlust bei Überlauf.
o Verteiltes Weiterleiten: Port besitzt Kopie der Weiterleitungstabelle
o Effiziente Datenstrukturen für schnelle Suche
Möglichkeiten für die Switching Fabric
o Speicher

CPU kopiert Paket von Eingangsport in Hauptspeicher, führt Weiterleitungsentscheidung
durch und kopiert Paket zum Ausgangsport

2 mal internen Bus benutzen, Begrenzung der Leistungsfähigkeit

frühe Router waren einfache Rechner, heute auch noch möglich
o Bus

ein Bus verbindet alle Ports, kann nur jeweils für einen Transfer benutzt werden, Wettbewerb

üblich für kleine bis mittlere Router
o Verbindungsnetzwerk

bekannt aus der Verbindung von Prozessoren in Parallelrechnern

z.B. Crossbar: jeder Port kann direkt mit jedem anderen verbunden werden (quadratischer
Schaltungsaufwand)

auch mehrstufige Anordnungen
Funktionen am Output Port (Queueing -> Data Link Processing -> Line Termination)
o Pufferung: wenn Switching Fabrik schneller liefert als gesendet werden kann
o Paketverlust bei Überlauf
o Active Queue Management: Entscheidung, welches Paket verworfen wird bei Überlauf
o Scheduling: Entscheidung welches gepufferte Paket zuerst weitergesendet wird.
Head-of-the-Line (HOL) Blocking
o -mehrere Eingangports wollen auf gleichen Ausgangsport
o -manche müssen warten, die dahinter werden blockiert, obwohl ihr Ausgangsport frei wäre
ROUTING
-
Routing: Verfahren, mit denen Router entscheiden, über welchen Weg Pakete gesendet werden sollen
Intradomain: innerhalb einer Routing-Domäne (= unter einer administrativen Instanz), hier können Verfahren
verwendet werden, die nicht für sehr große Netze skalieren, zwei Varianten
o Link-State: jeder Router besitzt vollständige Information über die gesamte Routing-Domäne, jeder
Router berechnet kürzeste Pfade von ihm zu allen anderen Routern z.B. mit dem DijkstraVerfahren, Beispiel: OSPF
o Distanzvektor: jeder Router kennt nur Kosten zu direkten Nachbarn und die von ihm erreichbaren
Ziele, die kürzesten Pfade werden verteilt mit Bellman-Ford-Verfahren berechnet, Beispiel: RIP
Interdomain: zwischen Routing-Domänen
o ausgetauschte Routing-Informationen enthalten ganzen Pfade,
o Auswahl durch Regeln, Beispiel: BGP
Unicast-Routing (Punkt-zu-Punkt)
o proaktiv: Information p oa t o at o über Netztopologie wird ausgetauscht, aktuell gehalten, mit Graphbasierten Verfahren werden Pfade zu allen Zielen bestimmt, bei Sendewunsch werden diese genutzt
o auf diesen Fall beschränken wir uns hier
Multicast-Routing (Punkt-zu-Mehrpunkt)
o Router sollen effizient genutzt werden
o Erweiterung von Unicast-Routing
o ebenfalls proaktiv
Ad-Hoc-Routing
o dynamische Netztopologie: Pfade veralten schnell
o Erweiterung von proaktiven Verfahren
o auch reaktive Verfahren: erst bei Sendewunsch wird Pfad bestimmt
Datenzentrische Verfahren
o adresslos, Nachrichten werden aufgrund ihres Inhalts weitergeleitet, z B Sensornetzen
Graphenbegriffe:
Pfad: Sequenz (v1,...vn) sodass alle Paare(v1,v2)..(vn-1,vn) element E
Zyklus: Pfad mit Anfang = Ende
Graph ist zusammenhängend wenn es Pfad zwischen jedem Knotenpaar gibt
Baum: zusammenhängender Graph ohne Zyklen
Link-State-Routing
alle Knoten besitzen vollständige Kenntnis der Netztopologie (durch Fluten erreicht)
jeder Knoten berechnet die kürzesten Pfade zu allen anderen Knoten (Dijkstra-Verfahren)
bei Änderungen in der Netztopologie (kann z.B. die Verbindungsschicht erkennen), erfolgt erneutes Fluten und
Neuberechnung der kürzesten Wege
Forward-Search:
Initialisierung
o bestätigteListe = <(u,0,-)>, vorläufigeListe = <>;
Wiederhole
o w = letzter in bestätigteListe eingetragener Knoten
o für alle Nachbarn v von w

falls v weder in bestätigteListe noch in vorläufigeListe

füge (v, D(w)+c(w,v), nexthop(w)) vorläufigeListe zu

falls v in vorläufigeListe und D(w)+c(w,v) < D(v)

ersetze in vorläufigeListe den Eintrag für v durch (v, D(w)+c(w,v), nexthop(w))
o verschiebe Eintrag mit geringsten Kosten von vorläufigeListe in bestätigte Liste
o bis vorläufigeListe leer
Fluten
Link-State-Advertisements (LSAs) mit
o Kennung des Knotens, der LSA erzeugt
o Kosten zu Nachbarn und dessen Kennung
o Sequenznummer
o Lebensdauer
jeder Knoten erzeugt LSAs mit den ihm bekannten Informationen über die Verbindungen zu den Nachbarn und
sendet sie an alle Nachbarn
neue von Nachbarn erhaltene LSAs werden an alle Nachbarn weitergeleitet, aber nicht an den Nachbarn, von dem
das LSA kam
zur Erzielung von Zuverlässigkeit auch Bestätigungen und Sendewiederholungen zwischen Nachbarn sowie
Sequenznummern und Lebensdauer
Distanzvektor
Verhalten bei Änderungen der Netztopologie
o der Algorithmus funktioniert auch bei Topologieänderungen und wenn die Informationen in
asynchroner Weise ausgetauscht werden (also nicht jeweils gleichzeitig)
o bei Verkleinerung der Verbindungskosten konvergiert das Verfahren schnell: good news travel fast
o bei Vergrößerung der Verbindungskosten können jedoch durch Zyklen in den Pfaden Probleme
entstehen: bad news travel slowly
Count-to-infinity-Problem
o veraltete Information in den verteilten Routing-Tabellen enthält zyklischen Pfad
o die langsame Iteration endet erst, wenn die Kosten des alternativen Pfads erreicht sind
o Abhilfe

größten Kostenwert beschränken (z.B. 16)

Poisoned Reverse: wenn der kürzeste Weg von u nach v über den nächsten Hop w führt,
sendet u an w die Kosten von unendlich für die Entfernung von u nach v

mit Poisoned Reverse können Zyklen der Länge 2 vermieden werden, nicht jedoch längere
Zyklen
RIP (Routing Information Protocol)
o frühes und verbreitetes Routing-Protokoll, Teil von BSD Unix
o Distanzvektor-Routing
o Router teilen in Advertisements über UDP den Nachbarn mit, welche Netzwerke sie mit welchen Kosten
erreichen können
o Advertisements werden periodisch (alle 30 s) und bei Änderungen gesendet
o Kostenmetrik: Anzahl von Hops, maximal 15 (16 für Poisoned Reverse)
Link-State vs Distanzvektor:
Link-State:
o Zentrales Verfahren
o Komplexität von Dijkstra: O(n^2)
o Effiziente Implementierung: O(nlogn)
o Beschränkt Skalierbarkeit)
Nachrichtenaustausch: O(ne) (e = Kanten)
o Robustheit: Router können nur fehlerhafte Verbindungsinformation weitergeben
Distanzvektor:
o Verteilter Algorithmus
-
o
o
o
o
Folgt:
o
Konvergenzproblem bei Zyklen
Beschränkt Skaliebarkeit
Robustheit: Router können fehlerhafte Pfade weitergeben, Fehlerfortpflanzung möglich
Fehlfunktion eines Router wirkt sich auf andere aus
Dynamische Metriken (die von aktueller Netzlast abhängen) führen zu instabilem Verhalten, nicht
bewährt
Interdomain-Routing
Routinghierarchie
o innerhalb einer Routingdomäne: Intradomain Routing, Interior Gateway Protokolle (IGP)
o zwischen Routingdomänen

Interdomain Routing, Exterior Gateway Protokoll (EGP), „das“ EGP ist BGP: Border Gateway
Protocol, RFC 1771

Routingdomänen: autonome Systeme (AS)
•
Stub AS: hat nur eine Verbindung zu anderen AS

Multihomed AS: hat mehrere Verbindungen zu anderen AS, befördert aber keinen
Durchgangsverkehr

Transit AS: hat mehrere Verbindungen zu anderen AS und befördert
Durchgangsverkehr

Transit AS gekennzeichnet durch zentral vergebene AS-Nummer (16 Bits)

ein Router eines AS ist Gateway und führt EGP aus
Pfadbasiertes Routing
o Austausch von ganzen Pfaden
o keine Berücksichtigung von Kosten (wegen Größe der beteiligten Netze und uneinheitlicher Metriken
nicht möglich)
o Router gibt nur die Pfade bekannt, die andere Router nutzen sollen
o Router sucht sich aus den bekannten Pfaden einen Pfad nach individuellen Regeln aus (z.B. Länge des
Pfads, AS im Pfad)
o Zyklen können erkannt werden (ein Router zweimal im Pfad)
o Pfade können auch annulliert werden
Funktion von BGP
o Gateways tauschen Advertisements in BGP-Sessions über TCP aus
o Advertisements enthalten Pfade, die Gateways zu Netzwerken kennen
o ein Pfad besteht aus

Liste von Netzwerken (Adresse+Präfix, CIDR) in einem erreichbaren AS

Sequenz von AS-Nummern zu diesem AS

IP-Adresse des sendenden Gateways
o beim Weiterleiten eines Pfades fügt ein Router sein AS am Anfang des Pfads an und setzt sich als den
nächsten Hop ein
o dadurch erlaubt er, dass Verkehr an die Liste von Netzwerken über ihn geleitet wird
o ein Pfad, in dem er selbst in der Sequenz auftaucht, wird verworfen
Multiprotocol label switching (MPLS)
Beispiel für virtuelle Leitungsvermittlung, Wurzeln in der ATM-Technologie
virtuelle Leitungen
o IP Pakete erhalten Label
o Weiterleitung durch die Label Switched Routers (LSRs) entlang des Label-Switched Path (LSP)
o jeder LSR erkennt Eingangsport und Label, sieht in Tabelle nach, welchesdas neue Label sein soll, und
auf welchem Ausgangsport das Paket weitergeleitet werden soll
o Label Swapping: das alte wird durch das neue Label ersetzt
o Weiterleitung an den Ausgangsport
o LSP muss vorab aufgebaut werden
Vorteile
o schnelles Weiterleiten (kein Longest Prefix Match)
o Planung von LSPs für die gezielte Verkehrsleitung
o Virtual Private Networks (VPNs): Tunnels zwischen Knoten
o Aggregation von LSPs durch Label Stacking
SICHERUNGSSCHICHT
Physikalische Adresse (MAC)
48 bit, 6 bytes, 12 Hex. In ROM. Verwaltet durch IEEE.
Global eindeutig != IP, keine Strukturierung
Address Resolution Protocol (ARP)
jeder Knoten besitzt ARP-Tabelle mit Zuordnungen (IP-Adresse, physikalischer Adresse, TTL)
Time To Live (TTL): Dauer der Gültigkeit des Eintrags, z.B. 20 Minuten
-
Knoten A möchte an B Rahmen schicken, kennt IP-Adresse, aber nicht physikalische Adresse von B
A sendet ARP-Anfrage als Broadcast (Adresse FF-FF-FF-FF-FF) mit seiner physikalischen Adresse und der IPAdresse von B
B erkennt sich als Ziel an IP-Adresse in der ARP-Anfrage und sendet in ARP-Antwort seine physikalische Adresse an
die physikalische Adresse von A
A speichert die Zuordnung der Adressen von B in seiner ARP-Tabelle
Autonomität, „Soft State“
Medienzugriff
Punkt-zu-Punkt-Verbindungen
o nur die zwei Endpunkte greifen auf das Medium zu, z.B. Point-to-Point Protocol (PPP) zwischen Host und
Router über Telefonverbindung
o Verbindung zweier Router über anderes Netz (z.B. Transportnetz)
o keine komplizierte Koordination notwendig
Medien mit Mehrfachzugriff
o gemeinsamer Bus: früher bei Ethernet, in Bussen für die Fahrzeugund Automatisierungstechnik (z.B.
CAN), Systembus (z.B. PCI), Peripheriebus (z.B. SCSI)
o gemeinsamer Funkkanal: WLAN 802.11, Bluetooth, ZigBee
o Internetzugang über Kabel
o benötigt verteilte Koordination des Medienzugriffs (Medium Access Control, MAC)
Möglichkeiten für den Mehrfachzugriff
feste Kanalaufteilung
o durch geeignetes Multiplexverfahren, wird das Medium in feste Kanäle für Knotenpaare aufgeteilt
o bekannt: Frequenz-, Zeit-, Codemultiplex
o für Sprachkommunikation verbreitet
o Nachteil für Datenkommunikation: Daten werden typischerweise sporadisch versendet, ineffiziente
Nutzung des Mediums
Zufallszugriffverfahren
o Stationen greifen zufällig auf Medium zu, eventuelle gleichzeitige Übertragungen (Kollisionen) müssen
beachtet werden
o Urform: ALOHA, abgeleitet: MAC bei Ethernet und WLAN
zyklische Zuteilung
o zentralisiert: Polling durch zentralen Knoten
o verteilt: Sendeerlaubnis durch rotierendes Bitmuster (Token), z.B. Token Ring, FDDI, USB, Profibus
ALOHA
in den 1970ern zur Vernetzung von Rechnern der Uni Hawaii
gemeinsamer Funkkanal für alle Knoten
Verfahren:
o wenn die MAC-Schicht eines Knotens von der Netzwerkschicht ein Datagramm erhält, wird der Rahmen
sofort gesendet
o wenn der Empfänger ihn fehlerlos erhält, sendet er eine positive Bestätigung (ACK) zurück
o wenn nach einem Timeout kein ACK zurückkommt, wartet der Sender eine zufällige Wartezeit (Backoff)
und wiederholt dann das Senden
Kollisionen werden wie Fehler bei der Fehlerkontrolle behandelt
das Protokoll ist einfach, verteilt, es gibt keine Absprachen zwischen den Knoten
Binärer exponentieller Backoff: m-te Kollision: gleichverteilte Auswahl von K aus {0,1,2,3,4,…, 2m-1}
o Backoffzeit an aktuelle Last anpassen
o niedrige Last: vermutlich sind nur wenige Knoten an der Kollision beteiligt, Auswahl von K aus wenigen
Möglichkeiten reicht
o höhere Last: mehr kollidierende Knoten, Auswahl von K aus mehr Möglichkeiten, größere mittlere
Backoffzeit
Carrier Sense Multiple Access (CSMA)
Knoten prüfen vor dem Senden, ob Medium belegt (listen before talking)
reduziert Kollisionen
Voraussetzung:
Ausbreitungsverzögerung < Rahmensendezeit (sonst sinnlos)
Kollisionen immer noch möglich: wenn anderer Knoten startet, bevor sich das Signal auf dem Medium zu ihm
ausgebreitet hat
CSMA-Varianten
o 1-persistent

wenn das Medium belegt ist, wartet der Knoten bis es frei ist und sendet dann sofort

geringe Wartezeit aber mögliche neue Kollision, wenn mehrere Knoten auf freies Medium
warten
o nicht-persistent

wenn das Medium belegt ist, geht der Knoten in Backoff

weniger Kollisionen aber längere Wartezeit
o
p-persistent

wenn das Medium belegt war und wieder frei ist, sendet der Knoten jeweils mit
Wahrscheinlichkeit p oder wartet noch einen Slot mit Wahrscheinlichkeit 1-p

-Kompromiss
Zyklische Zuteilung
Token Ring
o die Knoten sind ringförmig vernetzt
o Knotenadapter hat Eingang und Ausgang, 2 Modi:

Listen Mode: Bits vom Eingang werden mit Pufferung (typisch1 Bit) weitergereicht, Knoten
erhält Kopie

Transmit Mode: Bits vom Eingang werden an Knoten geleitet, Bits zum Ausgang kommen vom
Knoten
ein Bitmuster (Token) zirkuliert auf Ring, 2 Zustände (frei, belegt), z.B.: frei = 01111110, belegt = 01111111
wenn Knoten freies Token empfängt und Sendewunsch vorliegt, verändert er das Token durch Umsetzen des Bits
in belegt und sendet Daten
der Empfänger erhält die Daten
nach Ringumlauf entfernt der Sender das belegte Token und die Daten vom Ring und sendet das freie Token
weiter
Leitungskodierung

NRZ: Non-Return-To-Zero

NRZI: NRZ-Inverted

Bipolar

Manchester-Kodierung

Differentielle Manchester-Kodierung

4B/5B-Kodierung
SMTP
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
S:
C:
S:
220 smtp.example.com ESMTP Postfix
HELO relay.example.org
250 Hello relay.example.org, I am glad to meet you
MAIL FROM:<[email protected]>
250 Ok
RCPT TO:<[email protected]>
250 Ok
RCPT TO:<[email protected]>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: "Bob Example" <[email protected]>
To: "Alice Example" <[email protected]>
Cc: [email protected]
Date: Tue, 15 Jan 2008 16:02:43 -0500
Subject: Test message
Hello Alice.
This is a test message with 5 header fields and 4 lines in the message body.
Your friend,
Bob
.
250 Ok: queued as 12345
QUIT
221 Bye
Uniform Resource Locator (URL)
Hypertext Transfer Protocol (HTTP)
Domain Name System (DNS)
File Transfer Protocol (FTP)
Round Trip Time (RTT)
Common Gateway Interface (CGI)
Simple Mail Transfer Protocol (SMTP)
Simple Network Management Protocol (SNMP)
Service Access Points (SAP)
Service Data Units (SDU)
Protocol Data Units (PDU)
Management Information Base (MIB)
Structure of Management Information (SMI)
Abstract Syntax Notation One (ASN.1)
Bit Encoding Rules (BER)
Content Distribution Networks (CDNs)
Transmission Control Protocol (TCP)
User Datagram Protocol (UDP)
Dynamic Host Configuration Protocol (DHCP)
Distributed Hash Table (DHT)
Explicit Congestion Notification (ECN)
Maximum Segment Size (MSS)
Classless Inter-Domain Routing (CIDR)
Maximum Transmission Unit (MTU)
Internet Control Message Protocol (ICMP)
Network Address Translation (NAT)
Head-of-the-Line (HOL)
Multiprotocol Label Switching (MPLS)=Virt. Leitungsvermittlung (ATMs),schnelles Weiterleiten
Label Switched Routers (LSRs)
Label-Switched Path (LSP)
Interior Gateway Protokolle (IGP)
Exterior Gateway Protokoll (EGP)
Autonome Systeme (AS)
Border Gateway Protocol (BGP)
Routing Information Protocol (RIP)
Open Shortest Path First (OSPF)
Link-State-Advertisements (LSAs)
Session Description Protocol (SDP) = Aushandeln von Kodierungsverfahren bei SIP
Asynchronous Transfer Mode (ATM)
Media Access Control (MAC)
Address Resolution Protocol (ARP)
Time To Live (TTL)
Zeitmultiplex (Time Division Multiplex Access, TDMA)
Frequenzmultiplex (Frequency Division Multiplex Access, FDMA)
Carrier Sense Multiple Access (CSMA) /CD = Collision Detection (Ethernet) /CA = C. Avoidance
(WLAN)
Fiber Distributed Data Interface (FDDI, Multi-Token Ring)
Distribution Interframe Space (DIFS)
Short Interframe Space (SIFS)
Herunterladen