数据包如何通过代理服务器到达Destination?

时间:2012-08-12 14:34:27

标签: http networking tcp proxy ip

我对来自我的机器的数据包如何通过代理服务器到达目的地感到困惑。我的机器有一个内部网的私人IP,我们有一个公共IP的代理服务器与世界交谈。

所以我们这里有三个地址。

1) my private ip address
2) proxy server address
3) destination address (google.com)

现在在我发送的tcp数据包中,我有源和目标端口,以区分我的机器和目的地上的各种程序(如mozilla,chrome,ie)。

在ip网络层我有源和目的地址。

我不知道http是否也有地址。

所以当我的数据包离开我的机器时,它将包含什么地址。以便它通过中间的网关到达我的代理服务器。 ?

一旦到达代理服务器,就可以使用NAT将其发送到目的地。 但我对它如何到达代理服务器感到困惑。

编辑: 我的数据包应该包含我的代理服务器(本地私有服务器)的地址吗? 我可以通过配置浏览器来更改我的代理服务器。一旦它离开我的机器,我的数据包怎么知道它会去哪个代理服务器?

2 个答案:

答案 0 :(得分:3)

数据包根本没有到达目标。其中的数据作为代理与服务器之间新连接的一部分到达目标,采用全新的数据包,其大小和数量可能与下游连接中的数据不同。从服务器TCP的角度来看,它连接到代理,而不是下游客户端。

答案 1 :(得分:0)

HTTP位于TCP / IP之上(以及FTP,SMTP等)

您在PC上配置代理服务器,因此所有请求都通过代理发送(除非它们被识别为本地地址)。

当您从“www.google.com:80”

请求网页时
  • 您的计算机在DNS服务器中查找主机名的IP地址
  • 您的计算机发现它不是本地IP(它与默认网关位于不同的子网上)
  • 然后它说“嘿,网关/代理,从谷歌获取页面”(传递谷歌的IP地址和端口.HTTP层将包含诸如“method = GET”的标题,带路径和参数的完整URL等)