Bert F schreef:Stel nu dat een tweede bericht ook naar Z verstuurd word dan gaat de nat opnieuw (en dit op moment het eerste antwoord nog niet ontvangen is) Z onthouden en het poort nummer gelijk maken aan 81 zodat op het moment dat hij een antwoord krijgt van Z hij weet dat, dat antwoord bestemd is voor B.
Maar, en dat is nu het probleem het tweede bericht werd op poort 81 verstuurd en dus zal de server toch ook naar die poort moeten luisteren?
Let op: als computer X iets stuurt naar server Z:80 (met "Z:80" bedoel ik naar port 80 op server Z), gebruikt X daar aan zijn eigen kant een heel ander port nr voor, bijvoorbeeld 1057. Je kunt dus zeggen dat er bijvoorbeeld data van X:1057 naar Z:80 gaat. Het antwoord van Z naar X gaat dan ook weer naar X:1057.
Stel, nu zitten A en B achter een NAT server. Als A en B allebei iets sturen naar Z:80, gaat de NAT server die requests vanaf verschillende ports sturen, en onthoudt welke lokale port bij welke achterliggende computer hoort. Bijvoorbeeld 1065 voor A en 1071 voor B. Merk op dat de NAT server deze porten zelf "verzint", en niet die van A en B overneemt, want die zouden mogelijk hetzelfde kunnen zijn (ik heb het alleen over lokale port nr's, de destination port (80) blijft natuurlijk onveranderd, dat is immers de enige port waar Z naar luistert).
Als er nou antwoord komt van Z voor port 1065 stuurt de NAT server dat door naar A, en alles voor 1071 stuurt hij door naar B.
In theory, there's no difference between theory and practice. In practice, there is.