• Keine Ergebnisse gefunden

Lösung: Classless‐Interdomain‐Routing (CIDR)

N/A
N/A
Protected

Academic year: 2022

Aktie "Lösung: Classless‐Interdomain‐Routing (CIDR)"

Copied!
28
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

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

(3)

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.

(4)

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

(5)

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.

(6)

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.

(7)

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?

(8)

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!

(9)

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

... ...

(10)

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 

(11)

Protokolle und Schichten

(12)

Host  1

Protokoll und Interface

Protokoll High‐Level Objekt

Host  2

Protokoll High‐Level Objekt

Peer‐to‐peer Interface Service

Interface

Service Interface

(13)

Message‐Sequence‐Chart (MSC)

H1 H2

(14)

Protokollzustandsautomat

Wait for connection

request

Wait for file request connection request/

connection response

close request

file request/

file response

(15)

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|

(16)

Host  1

Protokollgraph

Protokoll 1

Protokoll 3

Protokoll 2

Protokoll 4

Host  2

Protokoll 1

Protokoll 3

Protokoll 2

Protokoll 4

(17)

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

(18)

Host  1

Multiplexing und Demultiplexing

Protokoll 1

Protokoll 3

Protokoll 2

Protokoll 4

Host  2

Protokoll 1

Protokoll 3

Protokoll 2

Protokoll 4

(19)

OSI‐Modell

(20)

Internet‐Modell

Nothing stated by TCP/IP model

(21)

Internet‐Protokolle

(22)

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)

(23)

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

(24)

Performance

(25)

Bandbreite

1 s

1 Sekunde

0 1 1 0 0 1 1

Bandbreite b in obigem Beispiel:

(26)

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:

(27)

Zeit x zur Übertragung eines Bits bei Distanz d und Signalausbrei‐

tungsgeschwindigkeit l

Propagation‐Delay

H2 H1

d

(28)

Zeit x zur Übertragung von n Bits bei Distanz d Signalausbreitungs‐

geschwindigkeit l und Bandbreite b:

Delay einer Single‐Hop‐Übertragung

H2 H1

d

Referenzen

ÄHNLICHE DOKUMENTE

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

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

int accept(int socket, struct sockaddr *address, int *len) address : enthält IP-Adresse und Port.. backlog : Anzahl

int accept(int socket, struct sockaddr *address, int *len) address : enthält IP-Adresse und Port. backlog : Anzahl

int accept(int socket, struct sockaddr *address, int *len) address : enthält IP-Adresse und Port. backlog : Anzahl

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

➥ int sendto(int sockfd, char *msg, int len, int flags, struct sockaddr *addr, int addrlen);. ➥ msg: zu sendende Nachricht (L

Das Verfahren integrierte Planung im Dialog Die Vorgehensweise setzte auf ein integriertes, Ergebnis orientiertes Verfahren und knüpfte dabei an vorhandene Untersuchungen, Planungen