Wie funktioniert die Weiterleitung von Daten im Internet in Beziehung zu dem TCP/IP Model (hop-by-hop routing)?


13.12.2022, 21:14

Diese Grafik wurde eine Slide später noch vorgestellt. Ist es richtig, dass die Punkte 5-6 jeweils in R1 und R2 sich abspielen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Ich kommentiere die Beschreibung der Schritte besser nicht weiter.

Was ein Router machen muß:

Nach Empfang des Ethernetframe und dessen Prüfung, wird anhand der Protokoll-ID nach oben gereicht, für den Fall IP also an das IP-Layer.

Dieses muß noch schauen, ob das Packet local to host ist, also für den Host selbst, wenn nein, dann geht es an die Routinginstanz.

Die Routinginstanz macht ein Lookup in der Routingtabelle, wenn das Ziel lokal erreichbar ist, wird ein ARP Lookup auf die Ziel-IP gemacht, sonst auf die IP des ermittelten Nexthop. Das Paket wird nach unter gereicht, mit einem Ethernet-Header versehen, wobei die von ARP ermittelte Ziel-MAC verwendet wird. Nun wird das Paket auf der zugehörigen Schnittstelle rausgesendet.

Danke erstmal für deine Antwort. Bedeutet dies im Endeffekt, dass das Datagram ankommt am Router, entpackt wird und dann die IP-Adresse nach dem ARP Protokoll in eine MAC-Adresse umgewandelt wird, dann geguckt wird, ob die MAC-Adresse auf eine Netzwerkkarte innerhalb des aktuellen Netzwerks passt, falls ja ist der Endpunkt erreicht und das Datagram wird and den Endpunkt weitergereicht und falls nein in der Routingtabelle nach dem nächsten Hop-Router gesucht wird und das Datagram dahin weitergeleitet wird? Ich denke ich habe schon mehr verstanden durch deine Antwort, jedoch fehlt noch dieser Aha-Effekt, bei dem ich verstehe wie das Ziel erkannt wird und wann weitergeleitet wird und wie genau das ARP-Protokoll und die MAC-Adressen eine Rolle spielen

0
@fedie952
dass das Datagram ankommt am Router, entpackt wird

ja

dann die IP-Adresse nach dem ARP Protokoll in eine MAC-Adresse umgewandelt wird

ARP bestimmt die MAC zu einer IP, vorher muß erstmal geschaut werden, welches die richtige IP ist. Bei einem angeschlossenen Netz ist das die Ziel-IP des Paketes, sonst die des nächsten Routers.

dann geguckt wird, ob die MAC-Adresse auf eine Netzwerkkarte innerhalb des aktuellen Netzwerks passt

Das ist eh immer der Fall, sonst wäre die MAC nicht erreichbar - die IP ist das ausschlaggebende Kriterium.

ARP ist erst nach dem eigentlichen Routing dran.

0
@KarlRanseierIII

Aber ich habe doch nur eine Ziel IP-Adresse, woher weiß das Paket denn dann zu welchen Zwischenroutern es weitergeleitet werden muss?... könntest du eventuell netterweise nochmal genauer den Prozess ab dem Moment erklären, ab dem die IP-Header decapsulated wird im R1 (also quasi ab der Network layer im R1)?

0
@fedie952

Nachdem der L2-Header gestrippt wurde und ein reines IP-Paket vorliegt, wird zunächst geschaut, ob die Zieladresse mit einer lokalen Adresse übereinstimmt, das Paket also für den Router selbst ist.

Wenn nicht, dann wird ein Lookup in der Routingtabelle gemacht, das Ergebnis ist dann entweder, daß das Ziel im lokalen Netz ist, oder welches der folgende Router ist.

Wenn lokales Netz, wird ARP auf Ziel-IP gemacht, sonst wird ARP auf Nexthop gemacht.

1
@fedie952

Nochmal zur Kontrolle für mich, könnte ich den Process dann so für mich umschreiben?

Ex.: Send HTTP message M to host www.x.de

1. Perform DNS lookup for www.x.de

  - Returns IP address for x

2. Encapsulate M by adding TCP header

  - Source and destination TCP ports: Numbers that identify processes

3. Encapsulate TCP segment by adding IP header

  - Source and destination IP addresses

  - Demux key to indicate that TCP segment is contained

4. Encapsulate Ethernet-Header

5. Forward Ethernetframe to Next-Hop-Router

6. Decapsulate Ethernet-Header 

7. Is the Datagram dedicated for the Hop-Router? Yes: ARP lookup MAC adress for destination network card; forward to destination 

8. No: ARP lookup MAC adress for Next-Hop-Router 

Routers repeat steps (4) - (8) to forward M to final destination

0
@fedie952

4: Encapsulate IP packet by adding ethernet header

7 ist immernoch falsch, es gibt folgende Fälle:

a if Target IP is local to Host: Pass upwards in Stack.

b: else Lookup in Routingtable, is Target Network local (Nexthop=0)?

I) ARP on Target IP and Send via if from table

II) else ARP on Nexthop Routers IP. and send via if from table

Anstatt Nexthop=0 kann je nahc Implementierugn auch dei IP der Schnittstelle drin stehen, so kann man ja auch nachvollziehen, daß es direkt gesendet werden kann.

Schaue Dir einfach mal exemplarische Routingtabellen an.

0
@KarlRanseierIII

Du machst bei 7 also nochmal eine Fallunterscheidung:

  • wenn der Router selber das Ziel ist -> pass upwards in Stack
  • wenn der Router selber nicht das Ziel ist
  • a) ist Ziel in dem lokalen Netzwerk des Routers? ARP für Ziel + hinschicken
  • b) Ziel ist nicht in dem lokalen Netzwerk des Router -> Step 8.

Hoffentlich habe ich das richtig verstanden, danke für deine Zeit! Bin echt noch nicht so mega in diesem Network/ Routing/ Forwarding Kram drin...

0