Twoje pytanie dotyka serca Internetu i samej definicji routingu. W twoim przykładzie router D wysyła dane do komputera A na podstawie dwóch przesłanek:
- Powiedziano mu, aby wysyłać dane do komputera A.
- To już przetworzone dane z komputera A.
Wydaje się, że twój scenariusz zakłada pierwszą opcję - router D chce wysłać do komputera A. Ale jak się tam dostanie? Odbywa się to za pomocą tabel routingu, które są udostępniane między routerami.
Router C regularnie wysyła aktualizacje do wszystkich routerów, w których wie - łącznie z routerem D - że „zna” sieć „192.168. *” (W rzeczywistości - tak się nie stanie, ponieważ ta sieć nie jest routowana - jest uważana za prywatną. zignoruj to.) Router D już wie, że router C zna tę sieć.
Kiedy dane są przeznaczone dla komputera A, adresowane są najpierw przez sieć. Router D pyta: „Muszę znaleźć sieć 192.168. *. Czy ja to wiem? Nie. Czy znam kogoś, kto to robi? Tak. Router C wie. Jak dostać się do routera C? Przez mój 2.2. Interfejs 2.2 ”.
Następnie router D wysyła dane do routera C. Router C pobiera je i mówi: „Och, mam dane z routera D, ale dotyczy to sieci 192.168. Czy znam tę sieć? Tak, przez moją sieć 192.168.1.1” przekazuje to.
Jest jeszcze trochę pracy do rozwiązania w kwestii adresowania IP i MAC, ale omawiam routing jako taki, a nie ARP i sieci lokalne.
Zauważysz swoje pierwsze założenie - router zdalny musi znać mechanizm routingu - tutaj nie wchodzi w grę. Router D nie dba o to, czy router C korzysta z EIGRP, RIP, RIPv2, OSPF lub cokolwiek innego. Wszystko zależy od tego, żeby dostał aktualizację. (Oczywiście sposób, w jaki otrzymano aktualizację, jest ważny, aby zapewnić synchronizację między nimi. Ale znowu, to inny problem.)
Drugie założenie - że numer portu jest czynnikiem wpływającym na routing - jest również nieprawidłowe. Routery (ogólnie) nie potrzebują informacji o porcie, aby podejmować decyzje dotyczące routingu. (To się nieznacznie zmieniło z powodu niektórych nowych technologii sieciowych i dotyczy głównie zapór ogniowych i serwerów proxy, ale nadal szersze założenie nadal dotyczy „prawdziwych” routerów.)
Kontynuując twój przykład, router C przekaże dane na porcie 1000 (zgodnie ze scenariuszem), ponieważ możliwe jest, że na komputerze A jest oczekiwana usługa na tym konkretnym porcie. Ale może to zrobić tylko dlatego, że router D wysłał go na port 1000. A router D wysyła go tylko na ten port, ponieważ twórca danych wysłał go do routera D na tym porcie.
Nie rozumiem, że uwzględnienie programów bittorrent lub P2P jest odzwierciedleniem zadanego pytania. Obowiązują te same wyjaśnienia. Routery można również skonfigurować z wyzwalaniem portów, które kojarzą dane urządzenie (lub adres IP) z określonym portem. Takie, że gdy ruch przychodzi przez port 1234, routery wiedzą, że wysyłają dane do urządzenia ABCD. Jest to zwykle związane z wychodzącym portem TCP. tzn. jeśli wyślę ruch na porcie 7890, router wie, że ruch przychodzący będzie na porcie 1234 i wyśle go do mnie.
Wyzwalanie portów nie jest jednak powiązane z (zdalnymi) decyzjami dotyczącymi routingu - zamiast tego odnosi się do wewnętrznej tabeli MAC / IP, której router używa dla sieci LAN.
Zaktualizuj / edytuj : aby udzielić dalszej odpowiedzi i rozwinąć swój komentarz. Router D zna komputer A tylko na podstawie adresu IP (192.168.2.2). Ale router C zna komputer A na podstawie adresu IP i adresu MAC. MAC (Media Access Control) to unikalny (zwykle ...) 48-bitowy identyfikator zdefiniowany przez międzynarodowy standard. Każde urządzenie podłączone do sieci LAN (przewodowej i bezprzewodowej) powinno mieć unikalny adres MAC.
Router (Router C) kojarzy adres IP i adres MAC razem w tabeli (tablica adresów MAC). Tak więc, gdy ruch przychodzi do routera C, a router realizuje dla niego swój „lokalny”, sprawdza tablicę adresów MAC. Router następnie dosłownie zmienia informacje o adresowaniu ramki.
Rekonstruuje (przepisuje) informacje o docelowej warstwie 2, aby mieć docelowy adres MAC komputera A, ale zachowuje takie same informacje o adresie IP (warstwa 3).
Jeśli trasa NIE zna adresu MAC. Lub nie ma w swojej tabeli relacji IP-MAC, robi coś, co nazywa się ARP (protokół rozpoznawania adresów), aby zapytać „HEJ, wszyscy w tej sieci. Czy masz ten adres MAC?” A czasem - „Wszyscy, jaki jest twój adres MAC?”). Odpowiednie urządzenie / urządzenia reaguje, a router buduje swoją tabelę IP-MAC.