Konsequenz für Forwarding‐Tabellen
R1 H1
H2
Subnetznummer : 128. 96. 34. 0 Subnetzmaske : 255.255.255.128
128. 96. 34. 15
128. 96. 34. 1
128. 96. 34.130
128. 96. 34.128 255.255.255.128
128. 96. 34.139
Subnetznummer Subnetzmaske Nächster Hop
128.96.34.0 255.255.255.128 direkt (if 1) 128.96.34.128 255.255.255.128 direkt (if 2) 128.96.33.0 255.255.255.0 nach R2 (if 2)
Interface 1 Interface 2
R2
128. 96. 34.129
128. 96. 33. 1 128. 96. 33. 0 255.255.255. 0
Netznummer Nächster Hop
128.96 …
R3
Adressauflösung
H1 R1 H2
128.96.34.15 45:35:FE:36:42:55
128.96.34.1 128.96.34.16 57:FF:AA:36:AB:11 85:48:A4:28:AA:18
IP‐Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18
… …
IP‐Adresse Physikalische Adresse
128.96.34.15 ???
128.96.34.16 85:48:A4:28:AA:18
… …
Motivation für Super‐Netting
Betrachten wir als Beispiel die IT‐Abteilung eines Uni‐Campus, die
„autonom“ eine Menge von IP‐Adressen nutzt.
Mit Subnetting können wir gegebene Menge von IP‐Adressen effizient nutzen.
Aber, die IT‐Abteilung muss immer noch IP‐Adressmenge in den Granularitäten Class‐A‐, ‐B‐, oder ‐C‐Netz beantragen/verwalten.
Was ist wenn wir z.B. 257 Hosts im Netz haben?
1. Beantrage ein Class‐B‐Netz. Effizienz?
2. Beantrage zwei Class‐C‐Netze.
Lösung: Classless‐Interdomain‐Routing (CIDR)
Aggregiere Netz‐Adressen.
Beispiel: Annahme wir haben 16*256‐1 Hosts.
Verwenden Adressen von 16 Class‐C‐Netzen.
Aber Adressen nicht beliebig, sondern hintereinanderliegend, z.B.:
192.4.16 192.4.17 ...
192.4.31
Beobachtung: alle Adressen beginnen mit denselben 20 Bits:
11000000 00000100 0001
Lösung: Classless‐Interdomain‐Routing (CIDR)
Beobachtung: alle Adressen beginnen mit denselben 20 Bits:
11000000 00000100 0001
Im Beispiel also eine 20‐Bit Netzadresse
• Liegt zwischen Class‐C (24 Bit) und Class‐B (16 Bit)
• Erforderte Ausgabe von 2^4 = 16 Class‐C‐Adressen
Allgemein: i‐Bit‐Netzadresse erfordert wie viele Class‐C‐Netze?
Internet‐Router beachten nur noch die i‐Bit‐Netzadresse.
Lösung: Classless‐Interdomain‐Routing (CIDR)
Wir brauchen für das Schema noch eine passende Notation.
Notation am Beispiel:
192.4.16 192.4.17 ...
192.4.31
wird zusammengefasst dargestellt als:
192.4.16/20
Also, /20 bedeutet Netzadresse besteht aus ersten 20 Bit und
fasst die 2^4=16 aufeinander folgenden Class‐C‐Netze beginnend mit 192.4.16 zusammen.
Quiz
Wie fasst man die Class‐C‐Netze 192.4.0 bis 192.4.31 mittels /X‐
Notation zusammen?
Wie stellt man das einzelne Class‐C‐Netz 192.4.16 in /X‐Notation dar?
Lösung: Classless‐Interdomain‐Routing (CIDR)
Umgang mit aggregierten Adressen im Router:
• Adressen in den Routing Tabellen: <länge,wert>‐Paar
• Vergleichbar mit <mask,wert>‐Paar im Subnetting, wenn Mask aus aufeinanderfolgenden 1‐Bit‐Werten besteht CIDR erlaubt weitere Routenaggregation. Beispiel:
Internet‐Anbieter Advertise
128.112.128/21
128.112.128/24
128.112.135/24
…
Kunden‐Netze
Es müssen noch nicht mal alle 8 aufeinanderfolgenden Netze aktuell genutzt sein!
Lösung: Classless‐Interdomain‐Routing (CIDR)
CIDR und Routingtabelleneinträge? Prefixe dürfen überlappen.
Beispiel‐Routingtabelle:
Wohin mit der Nachricht an 171.69.10.5?
Wohin mit der Nachricht an 171.69.20.5?
Generell: Longest‐Prefix‐Match
(erfordert effiziente Algorithmen/Datenstrukturen zum Finden des längsten passenden Prefix.)
Network‐Address Next Hop
... ...
171.69/16 if1 171.69.10/24 if2
... ...
Subnetting versus CIDR
• Subnetting erlaubt das Aufteilen einer Netzadresse in Teilnetze
– Aufteilung annähernd beliebig; alles was mit der Subnetzmaske ausdrückbar ist
• CIDR dient dem Aggregieren von Netzadressen in einer einzigen Adresse
– Aggregation nicht beliebig; Netzadressen müssen aufeinanderfolgend sein; zusammengefasst werden immer nur 2^i viele Netze
– Gewisse Flexibilität, indem man „Dummy‐Netze“
verwendet
Protokolle und Schichten
Host 1
Protokoll und Interface
Protokoll High‐Level Objekt
Host 2
Protokoll High‐Level Objekt
Peer‐to‐peer Interface Service
Interface
Service Interface
Message‐Sequence‐Chart (MSC)
H1 H2
Protokollzustandsautomat
Wait for connection
request
Wait for file request connection request/
connection response
close request
file request/
file response
Beispiel
H N S
Service‐Primitiven:
Zustände:
Zeitvorgaben:
Nachrichtenformate:
File f GET_FILE(), void ABORT_FILE_RETRIVAL(), ...
CLIENT_IDLE, CLIENT_WAITS_FOR_FILE, ...
if client waits 1000ms then change to state CLIENT_ERROR
FILE_REQUEST_MESSAGE: |CLIENT_ADR|SERVER_ADR|FILE_NAME|
Host 1
Protokollgraph
Protokoll 1
Protokoll 3
Protokoll 2
Protokoll 4
Host 2
Protokoll 1
Protokoll 3
Protokoll 2
Protokoll 4
Nachrichtenkapselung
Host 1
Anwendung 1
Protokoll 1
Protokoll 2
Protokoll 3
Host 2
Daten
Daten H1
Daten H1
H2
Daten H1
H2 H3
Anwendung 1
Protokoll 1
Protokoll 2
Protokoll 3
Daten
Daten H1
Daten H1
H2
Host 1
Multiplexing und Demultiplexing
Protokoll 1
Protokoll 3
Protokoll 2
Protokoll 4
Host 2
Protokoll 1
Protokoll 3
Protokoll 2
Protokoll 4
OSI‐Modell
Internet‐Modell
Nothing stated by TCP/IP model
Internet‐Protokolle
Anwendungssicht auf TCP (oder UDP)
Erzeugen eines Sockets
int socket(int domain, int type, int protocol) domain : PF_INET, PF_UNIX, PF_PACKET, ...
type : SOCK_STREAM, SOCK_DGRAM, ...
protocol : UNSPEC, ...
Passive‐Open auf der Server‐Seite
int bind(int socket, struct sockaddr *address, int len) int listen(int socket, int backlog)
int accept(int socket, struct sockaddr *address, int *len) address : enthält IP-Adresse und Port
backlog : Anzahl erlaubter Pending-Connections
Active‐Open auf der Client‐Seite
int connect(int socket, struct sockaddr *address, int len)
Senden und Empfangen von Daten
int send(int socket, char *message, int len, int flags) int recv(int socket, char *buffer, int len, int flags)
Host 2 Host 1
Adressen im Internet‐Modell
TCP
IP IP
LINK LINK
physical
TCP UDP
UDP
physical
Application Application Application Application
Physikalische Adresse
IP‐Adresse Port
Demux‐Key
Performance
Bandbreite
1 s
1 Sekunde
0 1 1 0 0 1 1
…
Bandbreite b in obigem Beispiel:
Bps und bps
Kenngröße Größenordnung Wert
KBps 210 Byte/s 1.024
MBps 220 Byte/s 1.048.576
GBps 230 Byte/s 1.073.741.824
TBps 240 Byte/s 1.099.511.627.776
Kbps 103 Bits/s 1.000
Mbps 106 Bits/s 1.000.000
Gbps 109 Bits/s 1.000.000.000
Tbps 1012 Bits/s 1.000.000.000.000
Vereinfachung für Überschlagsrechnungen:
Zeit x zur Übertragung eines Bits bei Distanz d und Signalausbrei‐
tungsgeschwindigkeit l
Propagation‐Delay
H2 H1
d
Zeit x zur Übertragung von n Bits bei Distanz d Signalausbreitungs‐
geschwindigkeit l und Bandbreite b:
Delay einer Single‐Hop‐Übertragung
H2 H1
d