Skąd router wie, do którego urządzenia wysyłać pakiety? [duplikować]

15

To pytanie ma już odpowiedź tutaj:

moje pytanie nie dotyczy tego, jak porusza się przez Internet, ale jak porusza się przez router do określonego urządzenia. Wszystkie urządzenia podłączone do routera w sieci domowej mają ten sam zewnętrzny adres IP. Powiedz, że urządzenie A ładuje stronę, a pakiety są wysyłane z zewnętrznego źródła do routera, ponieważ pakiety znają zewnętrzny adres IP urządzenia A i są w stanie dostać się do routera. Ale teraz, jak trafia do urządzenia A? Skąd router wie, że wysyła go do urządzenia A zamiast do urządzenia B?

Myślę, że dotyczy to NAT, ale szukam logicznego wyjaśnienia, co robi NAT, aby to osiągnąć.


źródło
Nie mogę udzielić ci konkretnej odpowiedzi, ale router śledzi, dokąd zmierza żądanie i kto go wysłał. Gdy źródło zewnętrzne odpowiada, router po prostu sprawdza, które urządzenie próbowało początkowo skontaktować się ze źródłem zewnętrznym, i przesyła odpowiedź do tego urządzenia. Jeśli potrzebujesz więcej informacji, zajrzyj do NAT.
abcd
To pytanie należy do Superuser.com
TimothyP

Odpowiedzi:

11

Podczas inicjowania połączenia z witryną zewnętrzną router za każdym razem używa innego numeru portu źródłowego ... następnie używa tego numeru portu źródłowego (do którego wracają dane) jako klucza do wyszukiwania, na którym komputerze Twoja sieć wewnętrzna, z której pochodzi żądanie. Nazywa się to translacją adresów PORT (w przeciwieństwie do translacji adresów sieciowych, która ma miejsce, gdy router ma wiele adresów sieciowych).

Michael Bray
źródło
1
to wyjaśniałoby takie rzeczy jak połączenia TCP, ale niektóre aplikacje są pozbawione połączeń. Co z pakietami UDP? Co się stanie, jeśli hostujesz serwer na 1 urządzeniu, nawet jeśli używa ono TCP do połączenia, nie będzie w stanie zainicjować połączenia bez routera wiedzącego, na którym urządzeniu jest serwer.
1
W przypadku połączeń UDP zwykle musisz wstępnie zdefiniować port w routerze, który może być używany do kierowania do określonego urządzenia. Jest to funkcja „przekierowywania portów” routerów i może być używana zarówno do przychodzących pakietów UDP (w odpowiedzi na wiadomość wychodzącą lub świeżego przychodzącego pakietu), jak i do przychodzących pakietów TCP (np. Tych inicjowanych przez klienta zdalnego zamiast tego własnego komputera.)
Michael Bray,
1

Zwykle wszystkie urządzenia z sieci domowej mają inny adres wewnętrzny (adres prywatny, zawsze 192.168.0.1 ~ 192.168.0.255).

Kiedy pakiet jest wysyłany z sieci domowej (powiedzmy urządzenie A: 192.168.0.123), kiedy przechodzi przez router, router tłumaczy prywatny adres na zewnętrzny adres routera (załóżmy, że to 140.191.2.5), a router również to rejestruje mapowanie w NAT.

Gdy odpowiedź wróci, router mapuje NAT i znajduje oryginalne źródło w urządzeniu A.

więc urządzenie A ostatecznie odbierze pakiet.

To tylko koncepcja, więcej szczegółów można znaleźć na wiki: NAT.

NCola.L
źródło