http - 数据包如何通过代理服务器到达目的地?

标签 http networking tcp proxy ip

我对来 self 机器的数据包如何通过代理服务器到达目的地感到困惑。我的机器有一个用于 Intranet 的私有(private) ip,我们有一个带有公共(public) ip 的代理服务器可以与世界对话。

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

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

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

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

不知道http是不是也有地址

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

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

编辑: 我的数据包是否应该包含我的代理服务器(本地私有(private)服务器)的地址才能到达它? 我可以通过配置我的浏览器来更改我的代理服务器。我的数据包离开我的机器后如何知道它会去哪个代理服务器?

最佳答案

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

关于http - 数据包如何通过代理服务器到达目的地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11922979/

相关文章:

node.js - 在 multer nodejs 中跟踪文件上传的进度

c++ - 文件 I/O 与 TCP 套接字,同一机器内数据传输哪个更快?

c++ - 无法使用 boost asio read() 获取所有数据

security - 使用 nonce 的电子邮件中激活/注册/密码重置链接的最佳做法是什么

c# - ASP.NET MVC 和 C# : HttpStatusCodeResult() vs HttpNotFound()

android - org.apache.http.client.methods

c++ - 如何在 C++ 中创建 RAW TCP/IP 数据包?

c - 套接字编程-setsockopt : Protocol not available?

VB.Net 仅使用 TCP 获取 1 个图像

linux - 无法使用 tc tbf 设置速度限制