Sunt la curent cu tabelul NAT. Vreau doar să știu ce se întâmplă dacă doi clienți dintr-o rețea locală privată doresc să descarce exact aceeași resursă pe același port? Cu alte cuvinte, când un pachet vine de la server, cum poate routerul să decidă ce client ar trebui să primească acest pachet?
Dacă nu greșesc, pachetul primit de la server are adresa IP de destinație a routerului, care este publică și este aceeași pentru ambele, precum și numărul portului de destinație care se întâmplă să fie același și în acest caz.
Există vreun mecanism în router sau server pentru a detecta acest lucru? sau acest comportament este chiar posibil în primul rând?
Am căutat întrebări de genul acest, ceea ce are sens ca eroarea să apară deoarece portul este ocupat, dar întreb despre două sisteme separate.
Actualizați : Din comentarii mi-am dat seama că nu am fost suficient de clar așa că permiteți-mi să o spun din nou cu un exemplu:
Îmi pasă doar de portul „sursă” al dispozitivelor. Să presupunem că am două laptopuri (192.168.2.10
și 192.168.2.11
), ambii descarcă același fișier de pe același server undeva pe internet. Fiecare dintre ele are un sistem de operare care generează un port aleator, astfel încât IP-ul sursă și portul sursă ar fi ceva de genul: 192.168.2.10:6321
și 192.168.2.11:7132
. M-am gândit că în NAT, routerul își va seta adresa IP (publică) împreună cu porturile de pe laptopuri, așa că dacă adresa IP publică a routerului de acasă este 65.82.23.32
, aceste două pachete vor primi aceste IP sursă și respectiv portul sursă: 65.82.23.32:6321
și 65.82.23.32:7132
.
Acum, când răspunsul revine, routerul își poate da seama ce pachet este pentru ce laptop din numerele de porturi, nu? Până acum, bine. Dar ce se întâmplă dacă accidental sau intenționat două laptopuri generează exact același port sursă? de exemplu : 192.168.2.10:6000
și 192.168.2.11:6000
. Acum routerul își va seta adresa IP publică ca adresă IP sursă la fel ca înainte, dar acum, dacă încearcă să folosească acele numere de port, acele pachete vor avea exact același IP sursă și număr de port sursă, cum ar fi: 65.82.23.32:6000
și 65.82.23.32:6000
.
Aici am fost confuz că, atunci când răspunsul revine, cum poate decide routerul ce pachet este pentru ce laptop?
După răspunsul lui @mfinni, am observat că nu așa funcționează PAT! Dispozitivul NAT (aici routerul) va atribui porturi unice fiecărui laptop individual (adresă IP privată), apoi pachetele trimise cu aceste porturi unice (de exemplu 7777
și 7778
). Deci, când răspunsul revine, este clar că pachetul este pentru ce laptop din porturi, apoi routerul le va converti 65.82.23.32:7777
, 65.82.23.32:7778
la --> 192.168.2.10:6000
, 192.168.2.11:6000
respectiv.