我有一个简单的问题。只是为了理解。
ISP(Provider)的外部IP = 111.222.333.444;
IP = aaa.bbb.ccc.ddd上有Web服务器;
ISP有2个消费者(客户端),本地IP = 192.168.0.11,IP = 192.168.0.22。
这些客户端(大约)使用端口80向服务器发送不同的请求。
我可以想象,ISP有一些软件收集来自本地网络的所有请求,并从“自己的名字”将它们重定向到Web服务器,然后在客户端之间分散响应。
所以服务器得到2个请求:
request-a:from socket 111.222.333.444:80,
request-b:来自套接字111.222.333.444:80。
然后服务器将2个响应(resp.-a和resp.-b)发送到同一个套接字:111.222.333.444:80。
问题:ISP软件如何在客户端分发这些响应?它如何知道哪个客户响应?如何避免混合反应?
谢谢,并为这个天真的问题道歉。
也许只是链接,我可以很快阅读它?
答案 0 :(得分:1)
虽然NATting正在发生的地方(如果有的话)并不重要。如果您只是在同一台计算机上打开两个不同的浏览器选项卡,问题就是一样:每个选项卡如何知道哪些数据是针对它的,特别是如果您从同一台服务器打开页面?答案很简单:端口。
计算机上的传出端口与您要将数据发送到的服务器上的传入端口不同。您正在向端口80发送请求,但它会从计算机上的某个随机端口发送,如12345.您的计算机会将此端口记为属于某个应用程序(暂时,直到连接关闭)。服务器将使用发往您的IP地址和端口12345的数据包来回复您的请求.NAT和代理的工作方式完全相同。