View
0
Download
0
Category
Preview:
Citation preview
Zauberblätter– Rechnernetze I –
Prof. Dr. SchmidtFachbereich MNISS 2004(Entwickelt von J.-E. Thiede)
Abkürzungen
Rechnernetz: Mehrere Rechner die über Übertragungskanälen / Kommunukationsnetz miteinanderverbunden sind.Ziele:
• Nutzen gemeinsamer Ressources• Datenaustausch• Höhere Verfügbarkeit durch Redundanzen• Downsizing (mehrere kleine anstelle eines großen Rechners)
CIM: Computer-Integrated-Manufacturing
CNC: Computer Numerical Control
IEC-Bus:
SAN: System Area Network (Storage Area Network)
HiPPI: High Performance Parallel Interface
Host: Arbeitsrechner
LAN: Lokales Netz, Local Area Network, < 2km
MAN: Metropolitan Network, ~10-50 km
WAN: Wide Area Network, Interkontinental
DÜE: Datenübertragungseinrichtung
NIU: Network Interface Unit, Netzschnittstelleneinheit
NIC: Network Interface Kart, Netzwerkkarte
DMA: Direct Memory Access, Netzwerkkarte schreibt direkt in Speicher
PIO: Programmed I/O, CPU schreibt Daten von Netzwerkkarte in Speicher
Modem: Modulator / Demodulator
Protokoll: Definiert:• Format und Reihenfolge der Signale• Auszuführende Aktionen (Ablaufsteuerung)
NT Network Termination, Netzabschlusseinheit
ES: Endsystem
DEE / DTE: Datenendeinrichtung / Data Terminal Equippment, Endgeräte der Kommunikation
Best-Efford-Service: Der Dienst bietet keine gesichterten Standards (Übertragungszeit, Bandbreite, etc.)
ARQ: Automatic Repeat Request
VSt: Vermittlungsstelle, Switch / Router, je nach Ausführung
IS, IWU, Gateway: Vermittlungseinrichtung zwischen zwei Netzen mit u.U. unterschiedlicher Technik.
Server: Programm das einen Dienst anbietet, passiv
Client: Programm das einen Dienst von einem Server in Anspruch nimmt
ASK: Amplitude Shift Keying, Pulsamplitudenmodulation
FSK: Frequency Shift Keying, Pulsfrequenzmodulation
PSK: Phase Shift Keying, Pulsphasenmodulation
PCI: Protokoll Controll Information, Protokollsteuerungsinformation
Simplex: Übertragung in eine Richtung (Radio)
Halbduplex: Abwechselndes Senden in beide Richtungen möglich.
Vollduplex: Gleichzeitiges Senden und Empfangen möglich.
Verbindungstopologien:
N = Gesamtanzahl aller angeschlossenen DEEs.
• Unicast (1:1) : Telefon, Email• Multicast (1:n) : Chat, Börsenkurse• Broadcast (1:N) : Rundfunk• Concast (m:1) : Verteilte Systeme• Multipeer (m:n) : Mehrpunkt-Kommunikation, Konferenzschaltung
Netztopologien:
Stern: LANBaum: RundfunkverteilnetzMaschen: TelefonVollst. Graph: Cluster-ComputerRing: Token-Ring-LANBus: Ethernet-LAN
Durchschaltevermittlung / Leitungsvermittlung / Circuit Switching
Koppelnetze stellen eine physikalische Verbindung zwischen Sender und Empfänger her.
Teilstreckenvermittlung / Packetvermittlung
Die Daten werden als Datenpakete (Datagramme) von Knoten zu Knoten (Hop-by-Hop) gesendet.- Zellvermittlung (Cell Switching)- Paketvermittlung (Packet Switching)
Netzknoten enthalten Paketspeicher sowie Wegelenkungstabelle (Routing-Table).A) Verbindungsorientierte Paketvermittlung (Virtual-Circuit Packet Switching): Die Route wird einmal
festgelegt, alle weiteren Datenpakete nehmen den selben Pfad (virtuelle Verbindung / logischer Kanal)(X.25)
B) Jedes Datagramm enthält Empfängerinformationen und wird jeweils einzeln geroutet. Die Pfade derDatenpakete können unterschiedlich sein. (IP – Internetprotokoll)
Formelsammlung
Bitrate [v]: bit / s z.B.: ISDN-B-Kanal: 64 kbit / s
gof : Obere Grenzfrequenz, unterhalb dieser Frequenz kann ein Signal
verzerrungsarm übertragen werden.
guf : Untere Grenzfrequenz, oberhalb dieser Frequenz kann ein Signal
verzerrungsarm übertragen werden.
Bandbreite [B]: go guB f f= − z.B.: Telefon: fgu = 300Hz, B = 3100 Hz
Dämpfungsmaß [a]: 1
2
10lg Pa dBP
= mit 1 2,P P Leistung am Eingang bzw. Ausgang.
Signal- / Geräuschverhältnis: /S NP P mit ,S NP P Leistung der Signale, der Störsignale
Signal- / Geräuschabstand:(Bitfehlerhäufigkeit)
10 lg
3
SN
N
CN
Pa dBP
IaB
=
= ∗
Bitfehlerwahrscheinlichkeit: ( )1 1ldbitpd pg= − −
Alphabet: { }1 2, , , NX x x x= K
Wahrscheinlichkeitsfeld:1 2
1 2
N
N
x x xX
p p p
=
K
K wobei
11
N
ii
p=
=∑
Informationsgehalt Zeichen: ( ) 1i
i
H x ld bitp
= ( ) 3,322 log( )ld x x=
Informationsgehalt (Entropie)der Quelle:
( ) ( )1
1N
ii i
H x E H x p ld bitp=
= = ∗ ∑
Entscheidungsbedarf(mittlere Wortlänge):
1
n
i ii
E z p=
= ∗∑ // z = Länge (Bit) der Codeworte
Entscheidungsgehalt Quelle: 0H ld N bit= (Maximaler Informationsgehalt)
Redundanz: 0 ( )R H H x= −
Relative Redundanz:0 0
1R HrH H
= = −
Mittlere Sendezeit Zeichens:1
( )N
i ii
H xpv
τ τ=
= ∗ =∑
( )max 1 /I B ld S N= ∗ +
Informationsfluss:( ) ( )s
H xI v H xτ
= = ∗
Schrittgeschwindigkeit: 1/sv τ= [s-1, Baud]
Kanalkapazität [C]:
1
10 lg 13
S
N
S
N
PC B ld bitP
PBC bitP
= +
≈ +
Kanalauslastung:
( )1 %1 2
2
1:1 2
P
i
i
i p ak
pa
TaT
TpT T T
pdFehlerwahrscheinlichkeit pa
=+
=
=+ +
−=
+
Mittlere Übertragungsversuche:1
1N
pd=
−
Roll-Off-Faktor:2 1
2
Bu bitrv
Br ubit
∗ ∗= −
=
Bandbreitenausnutzung:v bit Hz
bit s ∗
Signallaufzeit:
( )
0 300000
PsT sv
kmv x c xs
=
= ∗ ∗
Übertragungsdauer Datenblock: Iix
lTv
=
Übertragungsdauer Bestätigung: aax
lTv
=
Segementlänge- / Laufzeit:
( )
max '
' '
aSa
dba s a db am
=
= ∗ = Minimale Paketlänge: minl T v= ∗
Optimale Kodierung
Man unterscheidet:- Codes fester Wortlänge (z.B.: ASCIIà 8-Bit)- Codes variabler Wortlänge mit einem Trennzeichen (z.B.: Morse-Code) Die häufigsten Zeichen haben die kürzeste Länge
Damit ein Code dekodierbar ist muss er der Farno-Bedingung genügen: "Kein Codewort darf Anfang einesanderen Codeworts sein".
Huffman-Codierung (D. Huffman, 1952)
Huffman-Code: - variable Länge- erfüllt die Farno-Bedingung- häufigste Zeichen haben kürzeste Länge (Code ist damit Textabhängig)
Konzept 1:
- Alle vorkommenden Zeichen werden nach ihrer Häufigkeit sortiert.- Entsprechend den Regeln für die optimale Mischreihenfolge von Tabellen wird ein binärer Baum
aufgebaut, dabei werden die seltensten Zeichen (geringste Häufigkeit) zuerst miteinander verbunden.- Die Äste des binären Baums werden mit 0 (links) bzw. 1 (rechts) nummeriert.- Der Huffman-Code für jedes Zeichen ergibt sich aus den Ästen die von der Wurzel aus durchlaufen
werden müssen.
Beispiel 1: "ABRAKADABRA ABRAKADABRA" (Text besteht aus Großbuchstaben und Leerzeichen)
- Mit ASCII-Code benötigen wir 23 * 8 Bit = 184 Bit- obiger Text enthält nur 6 verschiedene Zeichen. es würde ein 3-Bit-Code genügen: 23 * 3 Bit = 69 Bit
A B R K D blank10 4 4 2 2 1
Ersparnis: 17 Bit = 24,6 % ≈ 25 %
Der Code-Baum ist nicht eindeutig bestimmt, die Code-Tabelle muss mit dem kodierten Text mit gesendetwerden.
Abrakadabra in kodierter Form: 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0
A B R A K A D A B R A
03
13
8
5
23
00
00 1
1
1
1
1
A = 0 ⇒ 10 x 1 Bit = 10 BitB = 100 ⇒ 4 x 3 Bit = 12 BitR = 101 ⇒ 4 x 3 Bit = 12 BitK = 110 ⇒ 2 x 3 Bit = 6 BitD = 1110 ⇒ 2 x 4 Bit = 8 Bit_ = 1111 ⇒ 1 x 3 Bit = 4 Bit
= 52 Bit
Konzept 2:
- Alle vorkommenden Zeichen werden nach ihrer Häufigkeit sortiert.
- Für das seltenste Zeichen wird der Informationsgehalt ( ) 1i
i
H x ld bitp
= bestimmt (pi ist die
Auftrittswahrscheinlichkeit des Zeichens xi). Damit ist für das seltenste Zeichen die Anzahl der Bits (n)bekannt. Dieses Zeichen wird nun mit n 1en kodiert.
- Alle Zeichen die denselben Informationsgehalt (ebenfalls n Bit) haben, werden kodiert indem vomvorhergehenden Binärcode 1 abgezogen wird.
- Ein Zeichen mit geringerem Informationsgehalt (weniger Bit) wird kodiert, indem vom vorhergehendenBinärkode die letzte Binärstelle (ganz rechts) ignoriert wird, und vom Rest wiederum 1 abgezogen wird.
Beispiel 2:
Shannon-Fano-Kodierung
Konzept: Nach Claude Shannon und Robert Fano lautet der Berechnungsalgorithmus:
1. Ordne die Zeichen nach ihrer Häufigkeit.2. Teile die Menge so, dass die Summe der Häufigkeiten der beiden Teilmengen möglichst gleich ist.
(d.h. im ersten Schritt soll die summe möglichst 0.5, im zweiten 0.25, usw. sein)3. Nenne die Mengen 0 und 1 bzw. erweitere ihre Namen entsprechend.4. Wiederhole mit den Teilmengen die Schritte 3–5, bis sie nur noch ein Element enthalten.
Beispiel:
xi pi Hi
1/4 2 00 1/8
1/833
0101
01
1/161/161/161/16
4444
10101010
0011
0101
1/321/321/321/321/321/321/32
5555555
11111111111111
0000111
0011001
0101010
1/641/64
66
1111
11
11
11
01
xi pi ∑ (pi) 1. 2. 3. 4. 5. 6.
1/4 1à 1/4
03/4 01/8
1/8 5/8
à 1/20 à 1/4
1 11/2 0
7/16à 1/8
0 13/8 0
1/161/161/161/16 5/16
à 1/40 à 1/8
1 11/4 0
7/32à 1/16
0 13/16 05/32
à 1/80 à 1/16
1 11/8 0
3/32à 1/16
0 1
1/321/321/321/321/321/321/32 1/16
à 1/ 320
1/32 01/641/64 1/64
à 1/21
à 1/41
à 1/81 à 1/16
1 à 1/ 321 1
32
16
165
16
16
8
8
8
42
8
4
4
2
1
Leitungskodes
+ = High-Potential0 = Null-Potential- = Low-PotentialT = Pulsbreite (Rechtecksignal)τ = Schrittdauer (zur Übertragung von 0 oder 1, kürzeste Dauer eines Signalelementes)
NRZ = Non Return to Zero, innerhalb eines Bit-Signals (0 oder 1) wird nicht zum Null-Potential zurückgekehrtRZ = Return to Zero, innerhalb eines Bit-Signals (0 oder 1) wird zum Null-Potential zurückgekehrt
Gleichstromfreiheit:Bitfolgeunabhängig: Auch in beliebig langen "Nullfolgen" müssen genügend Taktinformationen enthalten sein.
a) Unipolar NRZ-Kode
Kodierung: '0' = 0 '1' = +
NRZ, T = τ
Gleichstromfreiheit: neinBitfolgeunabhängig: nein
Einfach bei jeder 1 ein + Impuls setzen.
b) AMI (Alternate Mark Inversion)
Kodierung: '0' = 0 '1' = +, - (jeweils abwechselnd)
NRZ, T = τ
Gleichstromfreiheit: jaBitfolgeunabhängig: nein
Einfach abwechselnd bei jeder 1 ein + bzw. - Impuls setzen.
c) HDBn (High Density Bipolar of Order n, hier n = 3)
Kodierung: wie bei AMI
NRZ, T = τ
Gleichstromfreiheit: jaBitfolgeunabhängig: ja
Für n kann eine beliebige Zahl eingesetzt werden, z.B. 3.Eine Folge von n+1 0en wird entweder durch einen '000V'- oder einen 'B00V'-Impuls ersetzt.
V = Violation-Impuls: im Gegensatz zu AMI ist der V-Impuls immer von derselben Polarität wie dervorhergehende Impuls. Die V-Impulse sind jedoch wiederum abwechseln + und -.
B-Impuls: wird wie alle AMI-Impulse immer in unterschiedlicher Polarität zumvorhergehenden Impuls gewählt. Der B-Impuls wird nur eingefügt um zuerreichen das die V-Impulse alternierend + bzw. – Polarität haben.
Beispiel: 1 0 0 0 0 1 1 0 0 0 0 1
VB V
+ -
d) CMI (Coded Mark Inversion)
Kodierung: '0' =
'1' =
RZ für 0, NRZ für 1
Gleichstromfreiheit: jaBitfolgeunabhängig: ja
e) Manchester
Kodierung: '0' =
'1' =
RZ für 1 und 0
Gleichstromfreiheit: jaBitfolgeunabhängig: ja
f) Differential Manchester
Kodierung: '0' / '1' =
'1': Es darf keine Pegeländerung am Anfang eines Schrittes erfolgen. '0': Es muss eine Pegeländerung am Anfang eines Schrittes erfolgen.
RZ für 1 und 0
Gleichstromfreiheit: jaBitfolgeunabhängig: ja
Beispiel:
+-
+-
+-
+-
+-
+-
1 0 0 0 0 1 1 0 0 0 0 1
Die 0 wird durch einen Polariätswechselinnerhalb eines τ kodiert.
Die 1 wird durch gleich bleibende Polarität(abwechselnd + und -) kodiert.
g) 4B3T (speziell: MMS43)
Kodierung:
Jeweils 4-Bit werden zu einem Block zusammengefasst (4B).Dieser Block wird mittels +, -, und 0-Potential ternär-kodiert (3T).Die Kodierung eines 4B-Blocks in einen 3T-Block wechselt zwischen 4 verschiedenen Zuständen, wobeijeweils der neue Zustand für den nächsten Block wechseln kann.Die Kodierung sowie die neuen Zustände folgen dem untenstehenden Schema.
3T-Block (S1 S4) und Folgestatus (FS)4B-Block S1 FS S2 FS S3 FS S4 FS0000 + 0 + 3 0 – 0 1 0 – 0 2 0 – 0 30001 0 – + 1 0 – + 2 0 – + 3 0 – + 40010 + – 0 1 + – 0 2 + – 0 3 + – 0 40011 0 0 + 2 0 0 + 3 0 0 + 4 – – 0 20100 – + 0 1 – + 0 2 – + 0 3 – + 0 40101 0 + + 3 – 0 0 1 – 0 0 2 – 0 0 30110 – + + 2 – + + 3 – – + 2 – – + 30111 – 0 + 1 – 0 + 2 – 0 + 3 – 0 + 41000 + 0 0 2 + 0 0 3 + 0 0 4 0 – – 21001 + – + 2 + – + 3 + – + 4 – – – 11010 + + – 2 + + – 3 + – – 2 + – – 31011 + 0 – 1 + 0 – 2 + 0 – 3 + 0 – 41100 + + + 4 – + – 1 – + – 2 – + – 31101 0 + 0 2 0 + 0 3 0 + 0 4 – 0 – 21110 0 + – 1 0 + – 2 0 + – 3 0 + – 41111 + + 0 3 0 0 – 1 0 0 – 2 0 0 – 3
Gleichstromfreiheit: jaBitfolgeunabhängig: ja
Beispiel: 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1, Anfangszustand: 1
1 0 0 0 à + 0 0, Folgezustand 20 1 1 0 à – + +, Folgezustand 30 0 0 1 à 0 – +, Folgezustand 30 1 1 0 à – – +, Folgezustand 20 1 1 1 à – 0 +, Folgezustand 2
Beispiele:
1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0
VB V
+ + + + + +- - - - -
+ 0 0 - + + 0 - + - - + - 0 +Z à 2 Z à 3 Z à 3 Z à 2 Z à 2
Unipolar:
AMI:
HDB3:
CMI:
Manchester:
DifferentialManchester:
4B3T
Fehlererkennung und –korrektur mittels CRC-Prüfsummen
Separierbare Blockkodes:
Kodewort (C) = X + R m Nachrichtenstellen (Nachrichtenwort X)k Kontrollstellen (R, FCS – Frame Check Sequence)
Der Koder berechnet mit R = f(X) die Kontrollstellen und hängt diese der Nachricht an.Der Dekoder berechnet Z = f(C). Wenn das Fehlersyndrom Z = 0, dann ist die Nachricht fehlerfrei, ansonstenwird eine Korrektur (FEC – Forward Error Correction) vorgenommen, oder eine erneute Übertragung angefordert(ARQ – Automatic Repeat Request).
Hammingabstand h: Eine größe zur Beurteilung der Leistungsfähigkeit eines Blockkodes, gibt den "minimalenAbstand" zwischen zwei Kodewörtern an. Umso größer, umso besser.
Anzahl der erkennbaren Fehler pro Kodewort: 1e h∗ = −
Anzahl der korrigierbaren Fehler pro Kodewort:( )( )
2 / 2,
1 / 2,
h h geradee
h h ungerade
−= −
Zyklische Blocksicherung, CRC Cyclic Redundancy Check (hier: Zyklischer Hamming-Kode)
h = 3, d.h. es können 2 Fehler pro Kodewort erkannt und 1 Fehler pro Kodewort korrigiert werden.Die Anzahl m der Nachrichtenstellen die mit k Kontrollstellen gesichert werden können ist:
2 1km k= − − .
1. Das Nachrichtenwort { }1 mX x x= L wird als Polynom X(u) interpretiert:
1 2 01 2( ) m m
mX X u x u x u x u− −→ = + + +L
2. Für die Berechnung von k Kontrollstellen wird ein Generatorpolynom vom Grad k benötigt:1 1 0
1 1 0( ) k kk kG u g u g u g u g u−
−= + + + +L(Die Generatorpolynome müssen die Eigenschaft der Primitivität besitzen)
3 1u u+ +8 2 1u u u+ + + ATM-Netzen
12 10 5 1u u u+ + + Fernschreiber16 15 5 1u u u+ + + HDLC16 15 2 1u u u+ + + Bitbus
32 25 23 22 16 12 11 10 8 7 5 4 2 1u u u u u u u u u u u u u u+ + + + + + + + + + + + + +0x04C11DB7,CRC-32, Lokale Netze
3. Berechnung der Kontrollstellen:
a) Ergänzen des Nachrichtenwortes X(u) mit k Nullen (d.h. ( ) ( ) kC u X u u= ∗ )
b) Dividiere C(u) durch G(u) mittels Modulo-2 Arithmetik: ( ) : ( ) ( ) ( ) / ( )C u G u Q u R u G u= +Modulo-2 Arithmetik, d.h. Addition und Subtraktion ohne Übertrag!
c) Die Koeffizienten des Restpolynoms ( )R u bilden die Kontrollstellen.
4. Subtrahiere den Divisionsrest R(u) (immer r oder weniger Bits) von dem C(u) entsprechendenBitstring (immer modulo 2), das Resultat C'(u) ist der zu übertragende Bitstring des Frames mitPrüfsumme.
Die Idee der CRC-Pruefsumme ist es also einen gegebenen Rahmen von Datenbits durch m Bits so zu ergänzen,dass das Polynom aus Datenbits und Prüfsumme durch das Generatorpolynom teilbar ist.
Der Empfänger kann nun überprüfen, ob der Frame korrekt übertragen wurde, in dem er C'(x) durch G(x)dividiert, das Ergebnis muss 0 sein.
Beispiel 1:
3 0
1001 . . : 4( )
X d h mX u u u= =
⇒ = +
Durch Probieren finden wir heraus wie viele Kontrollstellen (k) notwendig sind um m=4 Zeichensicher zu übertragen:
1
2
3
2 1 1 02 2 1 12 3 1 4 3
mmm k
= − − =
= − − =
= − − = ⇒ =
Wir benötigen also ein Generatorpolynom 3. Grades: 3( ) 1 1011G u u u= + + ⇒ .
Das Nachrichtenwort muss folglich um k=3 0en ergänzt werden: ( ) 1001000C u =
Es folgt die Polynomdivision C(u) : G(u) mit Modulo-2 Arithmetik:
6 5 4 3 2 1 0 3 2 1 0 3 2 1 0
( ) : ( ) ( )
1 0 0 1 0 0 0 : 1 0 1 1 1 0 1 01 0 1 1
0 1 0 00 0 0 0
1 0 0 01 0 1 1
0 1 1 00 0 0 0
1 1 0 ( )
C u G u Q uu u u u u u u u u u u u u u u
R u
=
=
=
Subtraktion:'( ) ( ) ( ) (mod)
1001000 1101001110
C u C u R u= −= −=
Der zu übertragende Bitstring des Frames mit Prüfsumme ist also: '( ) 1001110C u =
Beispiel 2:
9 8 6 4 3 1 0
1101011011 . . : 10( )
X d h mX u u u u u u u u= =
⇒ = + + + + + +
3
4
2 3 1 42 4 1 11 4
mm k
= − − =
= − − = ⇒ =
Wir benötigen also ein Generatorpolynom 4. Grades: 4( ) 1 10011G u u u= + + ⇒ .
Das Nachrichtenwort muss folglich um k=4 0en ergänzt werden: ( ) 11010110110000C u = .
Frame: 1101011011Generator: 10011Frame 0-Bits: 11010110110000
Es folgt die Polynomdivision C(u) : G(u) mit Modulo-2 Arithmetik:
1 1 0 1 0 1 1 0 1 1 0 0 0 0 / 1 0 0 1 1 = 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 ------------------------------------+ | | | --------- | | | 1 0 0 1 1 | | | 1 0 0 1 1 ------------------------------------+ | | --------- | | 0 0 0 0 1 | | 0 0 0 0 0 ------------------------------------+ . . . | --------- | 0 0 0 1 0 | 0 0 0 0 0 | --------- | 0 0 1 0 1 | 0 0 0 0 0 | --------- | 0 1 0 1 1 | 0 0 0 0 0 | --------- | 1 0 1 1 0 | 1 0 0 1 1 | --------- | 0 1 0 1 0 | 0 0 0 0 0 | --------- | 1 0 1 0 0 | 1 0 0 1 1 | --------- | 0 1 1 1 0 | 0 0 0 0 0 ------------------------------------+ --------- 1 1 1 0 = R(x)
Subtraktion:'( ) ( ) ( ) (mod)
11010110110000 111011010110111110
C u C u R u= −= −=
Der zu übertragende Bitstring des Frames mit Prüfsumme ist also: '( ) 11010110111110C u =
Realisierung mit Schieberegister:
In der Praxis lassen sich die CRC-Prüfsummen einfach mit Schiebe- und XOR-Operationen berechnen,man kann auch eine Tabelle zu Hilfe nehmen, die das Verfahren stark beschleunigt.
Register = startwert (meist 0x0000... oder 0xFFFF...)while(1 Bits im String){ if(Register.MSB == 1) Register = (Register << 1) XOR Polynom; else Register = (Register << 1); Register.LSB = nächstes Bit aus dem String;}Register ausgeben
Die praktische Realisierung erfolgt meist in Hardware mit Hilfe von rückgekoppelten Schieberegisternund Antivalenz-Gliedern (XOR). Das Generatorpolynom bestimmt dabei das Rückkopplungsmuster:
4( ) 1G u u u= + +
8 2( ) 1G u u u u= + + +
Fehlererkennung:
Das empfangene Codewort C'(u) wird durch G(u) dividiert, das Ergebnis ist das Fehlersyndrom Z(u).Wenn der Divisionsrest Z(u) = 0, dann war die Übertragung Fehlerfrei.Wenn der Divisionsrest Z(u) > 0, dann war die Übertragung fehlerhaft.
Bei einem Einzelfehler kann aus Z(u) auf die fehlerhafte Stelle geschlossen und diese korrigiert werden.
1 1 1 1 1 1 1 1 0 1 : 1 0 0 1 1 = 1 1 1 0 1 11 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 = Z(u) ⇒ kein Fehler
Xu8 u7 u6 u5 u4 u3 u2 u 1
1 0 0 0 0 0 1 1 1
Xu4 u3 u2 u 1
1 0 0 1 1
Wertigkeit
Rückkoppelmuster
Datenübertragung im Paketformat
Datenpaket (Packet) / Rahmen (Frame) = Paketvorspann (Header)+ Datencontainer (Data)+ Paketnachspann (Trailer)
Handshaking: Übergabe von Daten unter Verwendung eines Quittungssystems zwischen Sender undEmpfänger.
ARQ-Verfahren: Automatic Repeat Request, der Sender muss sämtliche Datenpakete bis zur Quittierungspeichern, um diese bei Bedarf erneut zu senden.
Negativ-ARQ: implizierte Wiederholung, es erfolgt positive Quittierung mittels ACK durch den Empfänger,bleibt diese aus wird automatisch ein (oder mehrere) Pakete erneut gesendet.
Positiv-ARQ: explizite Wiederholungsanforderung durch den Empfänger mittels NAK-Signal.
Stop-and-Wait-Protokoll (implizite Wiederholung)
Der Sender sendet ein Datenpaket und wartet auf eine Empfangsbestätigung (ACK, Acknowledgement) bevor erdas nächste sendet.Kann im Halbduplexbetrieb verwendet werden, ermöglicht Reihenfolgesicherung und Fehlerbehandlung.
Alle Zähler verwenden eine Modulo-2 Zählung, d.h. abwechseln 0 und 1:
Timeout: Laufzeit des TimersV(S): Sendefolgezähler, enthält die Nummer des nächsten zu sendenden Datenpaketes.V(R): Empfangsfolgezähler, enthält die Nummer des nächsten erwarteten Datenpaketes.N(S): Sendefolgenummer, jedes Datenpaket enthält eine Nummer.N(R): Empfangsfolgenummer, jede Empfangsbestätigung enthält die Nummer des nächsten
erwarteten Datenpakets (Die Bestätigung fordert das nächste Paket an)
1. Wenn die Übertragung eines Datenpakets beginnt wird ein Timer gestartet. Nach absenden des Datenpakets mit N(S) wird V(S) hoch gezählt (V(S) + 1 mod 2)
2. Erhält der Sender vor Ablauf des Timers eine Empfangsbestätigung mit N(R) = V(S) (d.h. die Bestätigungdes letzten Paketes enthält die Anforderung des nächsten Paketes), wird das nächste Paket mit N(S) =V(S) gesendet (weiter mit Schritt 1).
3. Erhält der Sender vor Ablauf des Timers keine Empfangsbestätigung wird das Paket N(S) noch malgesendet
0 1 1 0 0 1
0 1 1 0 0 1
Sender
Empfänger
V(S) = 0 1 0 1
V(R) = 0 1 0 1Feh
lerf
reie
r A
blau
f
Sendet Paket 0Erwartet Quittung 1
Erwartet Paket 0Sendet Quittung 1
Timer
1 1 0
1 0
Sender
Empfänger
V(S) = 1 0 1
V(R) = 1 0Feh
ler
bei
Dat
enpa
ket Sendet Paket 1
Erwartet Quittung 0Timer läuft abSendet Paket 1
Erwartet Paket 1Sendet keine Quittung 0Erwartet Paket 1Sendet Quittung 0
0 1 0 1
0 1 0 1
Sender
Empfänger
V(S) = 0 1 1
V(R) = 0 1 1Feh
ler
bei Q
uitt
un
g Sendet Paket 0Erwartet Quittung 1Timer läuft abSendet Paket 0
Erwartet Paket 0Sendet Quittung 1Erhält Paket 0, verwirftSendet Quittung 1
Achtung: Die Laufzeit des Timers (Timeout) muss unbedingt länger sein als die Zeit die zwischen dem Sendeneines Paketes und dem empfangen der Quittung verstreicht.Sonst wird dasselbe Paket immer wieder gesendet.
Kanalausnutzung:
Die Ausnutzung p des Kanals ist schlecht wenn die Signallaufzeit τ (Latency) gegenüber derÜbertragungsdauer T relativ groß ist. Es vergeht dann viel Zeit mit warten:
τ: Übertragungszeit / Signallaufzeit vom Sender zum EmpfängerTdt: Data Transmission Time, Übertragungsdauer für ein DatenpaketTdp: Data Processing Time, Bearbeitungszeit (Fehlererkennung) für ein DatenpaketTat: Acknowledgement Transmission Time, Übertragungsdauer für eine QuittungTap: Acknowledgement Processing Time, Bearbeitungszeit (Fehlererkennung) für eine Quittung.Tt: Transmission Time, Zeit die zwischen dem Senden zweier Datenpakete vergeht.
2dt dt
t dt at ap dp
T Tp
T T T T Tτ= =
+ + + +
In der Praxis ist die Länge der Datenpakete meist größer als die der Quittungen, und Tdt >> Tat, Tap, Tdp.1
1
1 ,22 1 2dt
dt dt
dt
Tp
Ta
a TT
τττ
= ≈ = =+ ++
Bei gestörtem Kanal:
pb: Bitfehlerwahrscheinlichkeit des Übertragungskanalsld: Länge eines Datenpakets (Anzahl der Bit)pd: Wahrscheinlichkeit für ein gestörtes Datenpaket:
/1 (1 ) 1dl bit d dd b b b
l lp p p für p
bit bit= − − ≈ ∗ ∗ <<
Die Wahrscheinlichkeit für gestörte Quittungen pa wird aufgrund deren geringen Länge la meist ignoriert.
Nr: Anzahl der nötigen Übertragungen eines Datenpaketes im Mittel:1
1r
d
Np
=−
Die Ausnutzung des gestörten Übertragungskanals ist daher:
( )11
1 2 1 2d
r
pp
N a a
−= ≈
+ +
Beispiel: Kupferkabel, ca. 1 km: v = 64 kbit/s, ld = 1024 ⇒ Tdt = 16 msτ = 5µs ⇒ a = τ / Tdt = 312,5 * 10-6
pb = 104
1 10, 999
1 2 1, 000625p
a= = =
+
4 1024
6
11 (1 10 ) 0, 0973 1,108
1 0, 0973
1 0, 0973 0,90270, 902
1 2 312, 5*10 1, 000625
d rp N
p
−
−
= − − = = =−
−= = =
+ ∗
Piggybacking: Bei Vollduplex-Betrieb, also wenn beide Stationen Datenpakete senden und empfangen könnendie Quittungen mit den Datenpaketen in Gegenrichtung gesendet werden (Huckepackverfahren).
DP ACKSender
EmpfängerDP ACK
Tdt τTdp Tat Tap
DP ACK
DP ACK
Tdt τTdp Tat Tap
Tt Tt
τ τ
Schiebefensterprotokolle (Sliding Window Protocol)
Der Sender überträgt eine Anzahl von Datenpaketen innerhalb eines "Sendefensters".Der Empfänger besitzt ein Empfangsfenster, das die Nummern der Datenpakete enthält die angenommen werdendürfen (Reihenfolge egal).Sendefenster und Empfangsfenster können unterschiedliche Größe haben.Bei Empfang der Quittung für das erste Paket im Empfangsfenster verschiebt sich das EmpfangsfensterBei Empfang der Quittung für das erste gesendete Paket im Sendefenster verschiebt sich das Sendefenster.
Es gibt Varianten mit Folgenummernsteuerung (Sequence Number Control) und Kreditsteuerung (Pacing).
Folgenummernsteuerung:
Alle Folgenummern werden Modulo-M gezählt, wobei M = 2n. Typische Werte für M sind 2, 8, 128.
Sender:
S: Sendefolgenummer (z.B.: 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,…)N(S): Jedes Datenpaket enthält eine SendefolgenummerV(A) à SU: Quittungszähler, enthält niedrigste Nummer der gesendeten, noch nicht quittierten DatenpaketeV(S) à S0: Sendefolgezähler, enthält Nummer des nächsten zu sendenden Datenpaketes.WS: Maximale Größe des Sendefensters: 1 1SW M≤ ≤ −
WSM: Momentane Größe des Sendefensters [ ]( ) ( ) modSM S
W V A W V S M= + −
N(R): Empfangsfolgenummer, quittiert alle Datenpakete bis zur Sendefolgenummer N(S) = N(R) - 1
• Nach Empfang einer Quittung mit Empfangsfolgenummer N(R), wird der Quittungszähler V(A) = N(R)• Nach senden eines Datenpaketes: ( ) ( ) 1 modV S V S M= +• Durch Aussetzen des Sendens von neuen Datenpaketen sorgt der Sender dafür das die Anzahl der nicht
quittierten Datenpakete = ( ) ( ) SV S V A W− ≤
Empfänger:
R: EmpfangsfolgenummerN(R): Jede Quittung enthält eine EmpfangsfolgenummerV(R) à RU: Empfangsfolgezähler, enthält niedrigste Sendefolgenummer die vom Empfänger Akzeptiert wird.R0: Erste Sendefolgenummer die nicht mehr Akzeptiert wirdWR: Größe des Empfangsfensters, wird durch Standard festgelegt. Es gilt: / 2RW M≤
if( RU ≤ N(S) < R0 ) // Sendenummer innerhalb der Empfangsfensters{if( N(S) > RU ) // Sendenummer außerhalb der Reihenfolge
{ Datenpaket zwischenspeichern; }else // Datenpaket innerhalb der Reihenfolge
{do
{ Paket N(S) = RU ist ok RU =(RU +1) mod M R0 =(R0 +1) mod M Lese N(S) des nächsten Datenpaketes in Zwischenspeicher }
while( N(S) = RU ) sende Quittung mit N(R) = RU }}else Datenpaket verwerfen; // Sendenummer außerhalb des Empfangsfensters
Sendefenster: Modulo: 8 WS: 7Empfangsfenster: WR: 3
Wartet auf Pakete 6, 7 oder 0 (Reihenfolge egal, Fenster wandert nur wenn Paket 6 eintrifft)
… 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 … RU RO
Hat Pakete 6, 7, 0, 1 gesendet, wartet auf Quittungen, könnte noch Pakete 2, 3, 4 senden
… 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 … SU SO
Hat Paket 6 erhalten und quittiert mit N(R) = 7, könnte noch Pakete 7, 0, 1 empfangen.
… 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 …
Hat Quittung N(R)=7 für Paket 6 erhalten, Die Quittungen für 7, 0 und 1 stehen noch aus (sind bereits gesendet)
… 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 … SU SO
Sendet die Pakete 2, 3, 4 (damit Fehlen jetzt die Quittungen 7 - 4):
… 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 … SU SO
Hat die Pakete 7, 0, 1 erhalten und Quittiert mit N(R) = 2
… 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 …
Hat Quittung mit N(R) = 2 für die Pakete 7, 0 und 1 erhalten.
… 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 … SU SO
Kanalausnutzung
1 22 1 2
1 1 2
dt
S dt SS
dt
S
aT
W T Wfür W a
T a
für W a
τ
τρ
=
∗= ≤ +
+ +=
> +
WSM
WS
WSM
WS
WSM
WS
WS
WSM
WR
Empfänger
Sender
WR
WR
ARQ-Verfahren "Go-Back-N" (explizite Wiederholungsanforderung)
Empfänger:• Die Größe des Empfangsfensters ist WR = 1, d.h. die Pakete werden nur in genau der richtigen
Reihenfolge akzeptiert.• Die Nummer des letzten korrekt empfangenen Pakets wird in einer Empfangsliste gespeichert.• Kommt eine Paket mit falscher Sendefolgenummer oder gestört an, wird eine NAK (Negative
Acknowledgement, negative Empfangsbestätigung) gesendet. Damit wird die Wiederholung aller Paketeab der NAK angefordert.
• Nach dem Senden der NAK ist der Empfänger im Wiederholungszustand (Retransmission State), d.h.:- Alle ankommenden Pakete die keine Wiederholungen sind werden verworfen.- Es wird ein Timer TNAK gestartet, wenn bis Ablauf des Timers kein Wiederholungspaket eintrifft wird
dasselbe NAK erneut gesendet.- Erst wenn das erste mittels NAK angeforderte Wiederholungspaket eintrifft wird der
Wiederholungszustand beendet und wieder ACKs gesendet.
Sender:• Alle gesendeten und noch nicht quittierten Datenpakete werden in einer Sendeliste verwaltet.• Nach Empfang eines NAK-Paketes ist der Sender auch im Widerholungszustand, d.h.:
- Alle Datenpakete ab dem durch NAK angeforderten werden in der richtigen Reihenfolge wiederholt.- Mit dem Aussenden des letzten angeforderten Wiederholungspaketes endet der
Wiederholungszustand.
Beispiel 1: fehlerhaft übertragenes Datenpaket
V(S) S S+1 S+2 S+3 S+4 S+5 S+5 …
SS+1
S
S+2S+1
S
S+3S+2S+1
S+4S+3S+2S+1
S+4S+3S+2S+1
S+4S+3S+2S+1
Sendeliste(noch nicht quittiert)
… S S+1 S+2 S+3 S+4 S+1 S+2 …
… S S+2 S+3 S+4 S+1 …
S-1 S S S S S S+1 Empfangsliste
Nr. Sender Empfänger
1 Sendet Paket SSendet Paket S+1
2 Empfängt Paket SQuittiert Paket S mit ACK
3 Empfängt ACKSendet Paket S+2Sendet Paket S+3
4Empfängt Paket S+2à Paket S+1 fehlt!à Sendet NAK(S+1)à Startet den Timerà verwirft Paket S+2
5 Sendet Paket S+4Empfängt NAK(S+1)
6 Empfängt Paket S+3à verwirft Paket S+3Empfängt Paket S+4à verwirft Paket S+4
7 Sendet Paket S+18 Empfängt Paket S+1
Quittiert Paket S+1 mit ACKEnde des Wiederholungszustands
Wie
derh
olun
gszu
stan
d
Empfängt ACK
Wie
derh
olun
gszu
stan
d
2
3
4
5
8
1
6
7
Timer
Beispiel 2: fehlerhaft übertragene Quittung (ACK)
V(S) S S+1 S+2 S+3 S+4 S+5 …
SS+1
S
S+2S+1
S
S+3S+2S+1
S
S+4S+3S+2S+1
SS+4S+3
Sendeliste(noch nicht quittiert)
… S S+1 S+2 S+3 S+4 …
… S S+1 S+2 S+3 S+4 …
S-1 S S+1 S+2 S+3 S+4 Empfangsliste
Nr. Sender Empfänger
1 Sendet Paket SSendet Paket S+1
2Empfängt Paket SQuittiert Paket S mit ACK(S)à (wird jedoch gestört)
3 Sendet Paket S+2
4 Kein
eQ
uitt
ung
Empfängt Paket S+1Quittiert Paket S+1 mit ACK(S+1)à (wird jedoch gestört)Empfängt Paket S+2Quittiert Paket S+2 mit ACK(S+2)
5Sendet Paket S+3Empfängt ACK(S+2)à Pakete bis S+2 sind quittiert
6 Empfängt Paket S+3Quittiert Paket S+3 mit ACK(S+3)
7 Empfängt ACK(S+3)Sendet Paket S+4
Kanalausnutzung
1 2
1 2
(1 )(1 2 ) (1 ( 1))
11 ( 1)
dt
S
S
S d
d S
d
d S
aT
für W a
für W a
W pa p W
pp W
τ
ρ
=
≤ +
=
> +
∗ − + ∗ + − − + −
ACK(S+1)ACK(S) ACK(S+2) ACK(S+3)
2
3
4
51
6
7
ARQ-Verfahren mit "Selective Repeat" / "Selective Reject" (explizite Wiederholungsanforderung)
Während bei dem Go-Back-N-Verfahren alle Pakete die nach einem fehlerhaften Paket eintreffen verworfenwerden (und daher alle nochmals gesendet werden müssen), werden bei Selective Repeat die empfangenenPakete behalten und nur das fehlerhafte Paket wird erneut gesendet. Die Reihenfolge beim Empfänger ist dannnatürlich falsch.
Anders als bei Go-Back-N kann das Empfangsfenster größer als 1 sein.Damit keine Sendenummern doppelt belegt werden muss gelten: / 2RW M≤
• Eine Empfangsbestätigung N(R) quittiert alle vorhergehenden Pakete bis N(R-1)• Ein fehlender oder fehlerhafter Datenblock wird durch ein NAK mit der entsprechenden N(R) angefordert• Erst nach dem eintreffen des angeforderten Paketes wird wieder mit ACK quittiert• Das Senden von Datenblöcken und NAKs wird mit Timern überwacht
Beispiel:
V(S) S S+1 S+2 S+3 S+4 S+5 S+5 S+6
SS+1
S
S+2S+1
S
S+3S+2S+1
S+4S+3S+2S+1
S+1S+4S+3S+2
S+5S+1S+4S+3S+2 S+5
Sendeliste(noch nicht
quittiert)
… S S+1 S+2 S+3 S+4 S+1 S+5 …
… S S+2 S+3 S+4 S+1 S+5
S S SS+2
SS+2S+3
SS+2S+3S+4
SS+2S+3S+4S+1
Empfangsliste
Nr. Sender Empfänger
1 Sendet Paket S2 Empfängt Packet S
Quittiert Packet S mit ACK(S)
3Sendet Packet S+1Empfängt ACK(S)Sendet Packet S+2
4 Empfängt Packet S+2à Paket S+1 fehlt!à Sendet NAK(S+1)à Startet den Timerà sendet kein ACK!
5 Sendet Packet S+3
6 Empfängt S+3à sendet kein ACK!
7 Empfängt NAK(S+1)Sendet Packet S+4
8 Empfängt S+4à sendet kein ACK!
9 Sendet Packet S+1
10 Empfängt S+1Sendet ACK(S+4)
11
Wie
derh
olun
gszu
stan
d
Empfängt ACK(S+4)
Wie
derh
olun
gszu
stan
d
NAK(S+1) ACK(S+4)ACK(S)
2
3
4
51
6
Timer
Kanalausnutzung
(1 )1 2
(1 2 ) 1 2
1 21 1 2
(1 2 )
dt
S S dS
R
d S
R
aT
W W pfür W a
N a a
ap für W a
N a
τ
ρ
=
∗ −= ≤ +
∗ + +=
+= − > +
∗ +
Die Ausnutzung ist um: 11 ( 1)d Sp W −+ −Besser als das Go-Back-N-Verfahren
7
8
9
10
HDLC-Protokoll
HDLC: High Level Data Link Control
• Rahmen-Protokoll für unterschiedliche Übertragungsprotokolle (HDLC-LAPF, HDLC-LAPM)• Vollduplex-Betrieb• Punkt-zu-Punkt / Punkt-zu-Mehrpunkt-Verbindungen• Multilink-Verbindungen• Rahmenprüfbits• Sequenzkontrolle durch Rahmennummern
Rahmenformat:
7 6 5 4 3 2 1 00 1 1 1 1 1 1 0
Adresse
Steuerinformation
Daten
(max. 132 Byte bei LAPB)
Rahmenprüfbits
0 1 1 1 1 1 1 0
Rahmenbegrenzungszeichen: 0 1 1 1 1 1 1 0 (Flag)Kennzeichnen Anfang und Ende eines FramesFalls außerhalb des Flag-Feldes irgendwo 5 Einsen hintereinander kommen wirdeine Null eingefügt (Bit Stuffing). Damit sind die 6 Einsen eindeutig.
Adressfeld: Bei Befehlen steht hier die Adresse des Empfängers,Bei Meldungen die Adresse des Senders
Steuerfeld: Es wird anhand der ersten 2 Bit zwischen 3 Rahmentypen unterschieden:- I-Rahmen, Datenrahmen
Das Steuerfeld enthält Sende- und Empfangsfolgenummern
7 6 5 4 3 2 1 0N(R) P/F N(S) 0
- S-Rahmen, KontrollblöckeSteueren den Datenaustausch als ACK-, NAK-PaketeZeigen die Bereitschaft zum Empfang weiterer Pakete
7 6 5 4 3 2 1 0N(R) P/F S S 0 1
- U-Rahmen, Kontrollblöcke ohne NummernDienen dem Auf- und Abbau von Verbindungsabschnitten
7 6 5 4 3 2 1 0M M M P/F M M 1 0
P/F-Bit dient zum "Sendeaufruf" bei Befehlen und "Endeanzeige" bei Meldungen.
Datenfeld: Enthält die Nutzdaten
Rahmenprüfbits: Frame-Check-SequencePrüfbist die mittels CRC-Verfahren gebildet wird.
Generatorpolynom ist nach ITU-T Empfehlung: 16 12 5 1u u u+ + +
7 6 5 4 3 2 1 0N(R) P/F N(S) 0
Offene Kommunikation
ISO-OSI-Referenzmodell (Open Systems Interconnection - Schichtenmodell)
Das Grundprinzip des Schichtenmodell ist die Problemaufteilung in Abstraktionsebenen (Schichten), von denenjede eine Zusammenfassung von zusammengehörigen Funktionen ist.Der Abstraktionsgrad steigt von unten nach oben.
- Ein von einer Schicht angebotener Dienst kann nur von der darüber liegenden Schicht in Anspruchgenommen werden.
- Untere Schicht ist Server, die obere Schicht ist Client.- Unterste Schicht ist nur Server, und bringt die Signale auf die Leitung- Oberste Schicht ist Server für Anwendungsprogramme.
Jeder Schicht ist ein Schichtprotokoll (Peer-to-Peer-Protocol) zugeordnet, z.B.:1. Schicht: X.212. Schicht: HDLC (LAP-B)3. Schicht: X.25 (Paketvermittlung)
Schicht Quell-Endystem Protokollstapel Ziel-Endsystem
7 Anwendung Anwendungsprotokoll Anwendung
6 Darstellung Darstellungsprotokoll Darstellung
5 Sitzung Sitzungsprotokoll Sitzung
4 Transport Transportprotokoll Transport
3 Vermittlung (Netzwerk) Vermittlungsprotokoll Vermittlung (Netzwerk)
2 Sicherung Sicherungsprotokoll Sicherung
Info
rmat
ions
über
trag
ung
1 Bitübertragung Bitübertragungsprotokoll Bitübertragung
Übertragungsmedium
Anwendungsschicht: Schnittstelle zwischen dem Anwendungsprozess und den OSI-Kommunikationsprozessen.Betshet wiederum aus Anwendungsdienselementen (ASE - Application ServiceElement) in anwendungsspezifischer und anwendungsunabhängiger Form.SASE (Specific Application Service Elements):- FTAM: File Transfer- MHS: Message Handling (email)- DS: Directory Service
CASE (Common Application Service Elements):- ACSE: Auf- und Abbau von Anwendungsverbindungen- RTSE: zuverlässiger Datentransfer- ROSE: interaktiver Datenaustausch nach Client-Server-Prinzip- CCRSE: Unterstützung von verteilten Anwendungen (Atomarität, Transaktionen)
Darstellungsschicht: Soll einen einheitlichen Transfersyntax für Informationen ermöglichen:Little-Endian / Big-EndianASCII / EBCDIC
Transportschicht: Stellt eine Transparente (Ende-zu-Ende) Verbindung zweier Prozesse her.Multiplexing / Splitting, Segmentierung / Reassambly von TSDUs (Transport ServiceData Units)
Vermittlungsschicht: Adressierung im Netzwerk, , Flusskontrolle, Überlastungs-, Reihenfolgesicherung
Sicherungsschicht: Rahmenbildung, Rahmenerkennung, Fehlererkennung, Übertragungssteuerung
Bitübertragungsschicht: Leitungskodes, Modulationsverfahren, Bitsynchronisierung, Paralell-/Seriell-Wandlung, Zustandüberwachung der Leitung
Internet Protokollarchitektur:
Bitübertragung (Schicht 1): LAN (Ethernet), ISDNSicherung (Schicht 2): LLC (Logical Link Control), PPP (Point-to-Point-Protocol)Vermittlung (Schicht 3): IP (Internet Protocol, incl. ARP/RARP und ICMP)Transport (Schicht 4): TCP (Transmission Control Protocol), UDP (User Datagram Protocol)Sitzung / … / Anwendung: FTP, SMTP, DNS, Telnet, BSD-Sockets, rsh, rlogin, rexec, rcp, NFS, …
Internetprotokoll (IP):- IP ist ein Vermittlungsprotokoll der 3. OSI-Schicht.- IP bildet Datenpakete (Datagramme, Netzwerk-Dienstdateneinheiten N-PDU)- Die Datagramme enthalten im Datenteil die TCP- bzw. UDP-Pakete- IP bietet der Transportschicht (4. OSI-Schicht) einen unzuverlässigen, verbindungslosen
Datenübermittlungsdienst.
- Aufteilen (Fragmentation) und Zusammensetzen (Reassambly) von Datagrammen in Fragmente, damitAnpassung an die Maximum Transmision Unit (MTU) der Sicherungsschicht.
- Routing, jeder Sender kennt die IP-Adresse eine Routers, diese verwalten Routing-Tabellen undermitteln die Wegelenkung zum Empfänger.
- Fehlermeldungen: Zielnetz / -rechner nicht erreichbar, Zugriff verweigert, etc.- Verwerfen von Datagrammen die über zu viele Netzknoten weitergeleitet wurden.
Transmission Control Protocol (TCP):- TCP ist ein Transportprotokoll der 4. OSI-Schicht.- TCP bildet aus einem Bytestrom (TCP-Sendepuffer) Datenpakete (Segmente, Transport-
Dienstdateneinheiten T-PDU) die an die 3. Schicht (IP) weitergegeben werden.- Verbindungsorientierte, vollduplex Punkt-zu-Punkt-Übertragung, jede TCP-Verbindung hat eine Quelle
und ein Ziel (Die Ports, die den Anwendungen zugeordnet sind).- Multiplexen/Demultiplexen, mehrere Anwendungen können die darunter liegende Schicht (IP)
verwenden.- Gesicherte Übertragung mit:
o Fehlererkennung (Prüfsumme),o selektive Wiederholung,o Reihenfolgesicherung mit 32-Bit Folgenummerno Flusskontrolle mit Schiebefenster (Größe des Sendefensters wird vom Empfänger adaptiv
gesteuert)o Überlastkontrolle
User Datagram Protocol (UDP):- UDP ist ein Transportprotokoll der 4. OSI-Schicht.- UDP bietet einen unsicheren verbindungslosen Transportdienst an- Fehlererkennung mittels Prüfsumme- Multiplex-/Demultiplexfunktion- Prozess-zu-Prozess-Kommunikation (Portnummern)- Einfacher und Schneller als TCP
Socket: Dienstzugangspunkt über die eine Anwendung mit TCP oder UDP kommuniziert.
Router: Rechner oder Hardwarekomponente der die Wegelenkung der IP-Datagramme übernimmtErmöglicht die Interoperabilität und Konnektivität zwischen LANs und WANs und denZusammenschluss von LANs mit unterschiedlichen Netzwerktopologien (wie z. B. Ethernet und TokenRing). Router vergleichen die im Paketheader enthaltenen Informationen mit einem LAN-Segmentund wählen dann den bestmöglichen Übertragungsweg für das Paket aus, wobei sie versuchen, dieNetzwerkleistung zu optimieren.- Netzwerkkarte für jedes angeschlossene Netz- Zwischenspeicher für Datagramme- Routingprogramm- Routingtabelle
Gateway: Ein Gerät, das mit mehreren physischen TCP/IP-Netzwerken verbunden ist, die untereinander IP-Pakete weiterleiten oder verteilen können. Ein Gateway übersetzt verschiedene Transportprotokolleoder Datenformate (beispielsweise IPX und IP) und wird zu Netzwerken in erster Linie aufgrunddieser Übersetzungsfunktion hinzugefügt.Gateways werden auch als IP-Router bezeichnet.
Adressierung im Internet mittels IPv4:
Jede IP Adresse hat 32-Bit in der Form nnn.nnn.nnn.nnn, wobai nnn eine Zahl zwischen 0 und 255 ist.
Bitposition
Kla
sse
Adressraum1 - 8 9 - 16 17 - 24 25 - 32
Netz-adressen
Rechner-adressen
A 0.0.0.0 – 127.255.255.255 0 netid hostid 27-1 224-1B 128.0.0.0 – 191.255.255.255 10 netid hostid 214-1 216-1C 192.0.0.0 – 223.255.255.255 110 netid hostid 221-1 28-1D 224.0.0.0 – 239.255.255.255 1110 Multicast-Adressen 228-1E 240.0.0.0 – 247.255.255.255 11110 Reserve 227-1
private IP-Adressen:
1 Klasse A-Netz: 10.0.0.0 – 10.255.255.25516 Klasse B-Netz: 172.16.0.0 – 172.31.255.255256 Klasse C-Netz: 192.168.0.0 – 192.168.255.255
reservierten IP-Adressen:
Adresse Bedeutung0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Dieser Rechner (0~This)0 0 0 0 0 … hostid Hostid in diesem Netz1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Rundsendung im eigenen Netznetid 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … Rundsendung im Netz netid (1~All)127. xxx.yyy.zzz Schleifentest (z.B.: 127.0.0.1)
Subnetting:
Der Adressraum für die lokale hostid kann in Subnetze aufgeteilt werden.Dies geschiht über eine Subnetzmaske, diese gibt durch logische UND-Verknüpfung an, welche Bits derbisherigen hostid als Subnetid verwendet werden sollen.
Netzanteil Lokaler Anteil1 0 netid subnetid hostid1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
netid subnetid hostidEmpfägeradresse:135.20.13.32 10000111 00010100 00001101 00100000Subnetzmaske:255.255.255.0 11111111 11111111 11111111 00000000
netid hostidRouter außerhalb deslokalen Netzes: 10000111 00010100 00001101 00100000
netid hostidRouter innerhalb deslokalen Netzes: 10000111 00010100 00001101 00100000
Adressebenen:
Symbolischer Name(User@SubDomain.Domain.TopLevelDomain) Hugo.Hacker@mni.fh-giessen.de
à Domain Name System (DNS)IP-Adresse 140.211.49.1à Adress Resolution Protocol (ARP)MAC Adresse 0800200466B7
Routing
• Direct-Route zu einem Netz: Die Netid des Datagramms gehört zu einem direkt angeschlossenenNetz.Zugehörige MAC-Adresse mittels ARP ermitteln und über die richtigeNetzwerkkarte versenden.
• Indirect Route zu einem Rechner: Die Hostid gehört zu einem Rechner in einem anderen Netz.Es existiert jedoch ein Routing-Eintrag für die Hostid.Zugehörige MAC-Adresse des nächsten Routers mittels ARP ermittelnund über die richtige Netzwerkkarte versenden.
• Indirect Route zu einem Netz: Die Hostid gehört zu einem Rechner in einem anderen Netz.Es existiert kein Routing-Eintrag für die Hostid.Es existiert jedoch ein Routing-Eintrag für die Netid.Zugehörige MAC-Adresse des nächsten Routers mittels ARP ermittelnund über die richtige Netzwerkkarte versenden.
• Indirect Route über Default Router: Die Hostid gehört zu einem Rechner in einem anderen Netz.Es existiert kein Routing-Eintrag für die Hostid.Es existiert kein Routing-Eintrag für die Netid.Zugehörige MAC-Adresse des default Routers mittels ARP ermittelnund über die richtige Netzwerkkarte versenden.
Jeder Router leitet die Datagramme gemäß folgendem Algorithmus weiter:
IF( netid = "direkt angeschlossenes Netz" ){ direct route}ELSE{
IF( hostid in Routingtabelle ) { indirect route zu einem Host }
ELSE {
IF( netid in Routingtabelle ) { indirect route zu einem Netz }
ELSE { indirect route über default Router } }}
Routingtabelle:
Empfängeradresse: - Rechneradresse (Hostid ≠ 0, Flag = H) à direct Route- Netzadresse (Hostid = 0)
Gateway-Adresse: - Router für nächsten Verbindungsabschnitt (Flag G)- Adresse des Interfaces für ein direkt angeschlossenes Netz (kein Flag)
Flags: - H = 1 à Empfängeradresse weist auf einen Rechner (direct route)- H = 0 à Empfänger ist ein Netz- G = 1 à Empfängeradresse weist auf einen Gateway-Router (indirect route)- G = 0 à Empfängeradresse weist auf ein direkt angeschlossenes Netz (direkt route)
Route zu einem Subnetz-Maske Empfänger-AdresseRechner 255.255.255.255 IP-Adresse der RechnersDefault Router 0.0.0.0 0.0.0.0Klasse-B-Subnetz 255.255.x.y IP-Adresse des SubnetzesKlasse-B-Netz 255.255.0.0 IP-Adresse des Netzes
Beispiel 1:
Routing-Tabelle für G0Nr. Empfänger Subnetz-Maske Gateway Flags Interface Notiz1 0.0.0.0 0.0.0.0 135.20.2.21 G Eth0 Default Router2 127.0.0.0 255.0.0.0 127.0.0.1 H Lo0 Loop-Back-Test3 135.20.2.0 255.255.255.0 135.20.2.56 Eth0 Hostid=0à Empfänger ist Subnetz14 135.20.16.0 255.255.255.0 135.20.16.78 Eth1 Hostid=0à Empfänger ist Subnetz25 135.20.1.2 255.255.255.255 135.20.2.19 G Eth0 Indirect Route, next-Hop-Router6 135.22.0.0 255.255.0.0 135.20.16.45 G Eth1 Gateway zu Klasse-B-Netz
Beispiel 2:
Routing-Tabelle für H2Nr. Empfänger Gateway Flags Notiz1 0.0.0.0 135.20.13.33 G Default Router2 127.0.0.1 127.0.0.1 H Loop-Back-Test3 135.20.13.65 135.20.13.35 H, G Host über Gateway erreichbar4 135.20.13.32 135.20.13.34 Empfänger ist Subnetz 25 135.20.1.0 135.20.13.33 Empfänger ist Subnetz 16 135.20.1.5 135.20.13.33 H, G
135.20.1.2
H
135.20.2.19
G2
135.20.2.21default
G3
G1
135.20.16.45
Netz: 135.22.0.0
Eth1135.20.16.78
G0135.20.2.56
Eth0
Subnetz 1: 135.20.16.0
Subnetz 2: 135.20.2.0
Internet
135.20.13.65
H
135.20.13.66G1
135.20.13.35
H2
135.20.13.34
135.20.21.1G3
135.20.1.4
Netz: 140.241.21.4
135.20.1.29G2
default135.20.13.33
Subnetz 1: 135.20.1.0
Subnetz 2: 135.20.13.32
H3135.20.1.5
Recommended