it-swarm.com.de

Woher weiß der Router, wo er das Paket weiterleiten soll?

Wenn mehrere Computer mit lokalen Adressen (192.168.0. #) An einen Router angeschlossen sind und jeder Computer einen Webbrowser öffnet und eine Seite über HTTP anfordert, wechselt der Router beim Senden dieser TCP: 80-Pakete die lokale Adresse mit statische IP des Routers (dh vom Provider angegebene IP), damit der Server auf die entsprechende Adresse antworten kann.

Aber woher weiß der Router, an welchen Computer die HTTP-Antwort weitergeleitet werden soll, da der Header TCP nicht die lokale IP-Adresse enthält (oder?) Und alle Computer Port 80 verwenden?

Hat dies etwas mit den MAC-Adressen zu tun?

Wie genau funktioniert das?

67
Kornelije Petak

Die meisten Heimrouter verwenden einen Sonderfall von NAT namens PAT.

Sie sehen es auch als NAPT oder IP-Masquerading bezeichnet. Alle drei letztgenannten Begriffe bedeuten im allgemeinen Sprachgebrauch dasselbe. (Die Akronyme - Network Address Translation/Port Address Translation/Network Address Port Translation)

Wenn das Paket von Ihrem internen Computer gesendet wird, wird die Quelladresse, wie Sie wissen, neu geschrieben. Die Quelle hafen wird ebenfalls geändert, normalerweise auf eine hohe Zahl, und der Router führt eine Adressübersetzungstabelle.

Angenommen, Sie haben einen Client-Computer, der zu www.google.com wechselt. Ihr Computer (z. B. 192.168.1.100) sucht diese Adresse und stellt von Ihrer internen IP-Adresse über einen zufälligen Quellport eine TCP Verbindung zu 72.14.204.147 auf Port 80 her.

Die Verbindung zu Ihrem Computer sieht folgendermaßen aus:

192.168.1.100:37641   <-->  72.14.204.147:80

Ihr Computer sendet das Paket an den Router, der einen neuen zufälligen High-Port auswählt und das Paket neu schreibt. Jede ausgehende Verbindung erhält einen eigenen Port am Router. Der Router leitet das Paket dann an Ihren ISP weiter, nachdem er es seiner Verbindungstabelle hinzugefügt hat:

PrivateIP        PrivatePort   PublicIP      PublicPort    Remote          RemotePort
-------------    ----------    -----------   -----------   ----------      -----------
192.168.1.100    37641         *10.6.23.5    59273         72.14.204.147   80

* Ich habe zum Beispiel eine Adresse verwendet, die mit 10 beginnt, die aber nicht öffentlich weitergeleitet werden kann. Die Tabelle ist auch etwas vereinfacht.

Für Google sieht die Verbindung folgendermaßen aus:

10.6.23.5:59273   <-->  72.14.204.147:80

Google sendet seine Antwort auf Port 59273 an 10.6.23.5. Ihr Router schlägt diese Informationen in der Tabelle nach und leitet das Paket an 192.168.1.100:37641 weiter.

77
Paul

Die Router zwischen dem lokalen Netzwerk und dem Rest des Internets verwenden eine Technik namens NAT.

Nur ein Auszug aus TCP/IP Illustrated Volume 1 über NAPT mit einem Wort über die Mängel seines einfachen Cousins ​​Basic NAT:

Basic NAT schreibt nur IP-Adressen um. Im Wesentlichen wird eine private Adresse in eine öffentliche Adresse umgeschrieben, häufig aus einem Pool oder einem Bereich von öffentlichen Adressen, die von einem ISP bereitgestellt werden. Diese Art von NAT ist nicht die beliebteste, da sie nicht dazu beiträgt, den Bedarf an IP-Adressen drastisch zu verringern. Die Anzahl der global routbaren Adressen muss mindestens der Anzahl der internen Hosts entsprechen, die auf das Internet zugreifen möchten gleichzeitig. NAPT ist ein weit verbreiteter Ansatz, bei dem mithilfe der Transportschicht-IDs (dh Ports für TCP und UDP, Abfrage-IDs für ICMP) unterschieden wird, welcher Host auf der privaten Seite von NAT ist einem bestimmten Paket zugeordnet (siehe Abbildung 7-4). Dies ermöglicht einer großen Anzahl interner Hosts (d. H. Mehreren Tausend), gleichzeitig auf das Internet zuzugreifen, und zwar unter Verwendung einer begrenzten Anzahl öffentlicher Adressen, häufig nur einer einzigen. Wir werden gewöhnlich den Ausdruck NAT verwenden, um sowohl traditionelles NAT als auch NAPT einzuschließen, es sei denn, die Unterscheidung ist in einem bestimmten Kontext wichtig.

1
CodyBugstein