PPTP封装过程

网络工程 虚拟专用网 隧道 公私合营
2022-02-07 17:49:13

我现在正在学习网络和 vpn 技术,但我在理解整个 PPTP 封装过程时遇到了一些问题。因此,我将编写 PPTP 封装过程的步骤(据我了解),下面我将对此过程提出问题:

  1. 客户端和服务器建立隧道来管理连接。
  2. 客户端和服务器建立通过 TCP 进行消息传递的隧道,端口号 1723(此阶段接缝很清楚,但如果有错误请纠正我)
  3. 建立了隧道,客户端将发送一些数据,例如 HTTP 查询。我有红色(我不记得,在哪里),接下来有以下步骤(4-7):
  4. 客户端的软件将数据从OSI模型的上层传递到下层,从而形成PPP的信息部分。
  5. 然后软件进行逆向过程:从低层出发,用上层协议封装每一层 OSI 模型。
  6. 整个数据包被加密并封装到 PPP 标头中。
  7. PPP 标头使用 GRE 封装到 IP 标头,最终的数据包将发送到 PPTP 服务器,如下所示: [IP 标头][GRE 标头][PPP 标头][加密数据]

所以问题是:

  • 首先,如果我在PPTP连接建立和数据发送过程中有错误,请纠正我
  • 第 1 步:此管理隧道是否只是服务器/客户端软件中的一些注释,并且此隧道不适用于 TCP/UDP?
  • 第 5 步:为什么我们需要这部分?为什么我们不能在步骤 3.1 上进行封装?
  • 第 7 步:如果 PPP 标头中现在有关于 MAC 地址的信息,我们如何将这个数据包从客户端发送到他的路由器(例如)?

很抱歉提出非常愚蠢的问题,但我在谷歌上搜索了几天,但我还没有找到问题的答案,我悄悄地失去了理智......

1个回答

PPTP 类似于 PPP,但它不是直接的点对点连接,而是使用 TCP 套接字。PPP 是一个 L3 接口,因此它不使用 MAC 地址。

对于 OSI 层,PPTP 位于 L4 之上,并将其自身呈现为与其上层的 L3 接口。

在以太网上,通过隧道传输 UDP 数据包将如下所示:

UDP -> (inner)IP -> PPTP -> TCP -> (outer)IP -> Ethernet -> (outer)IP -> TCP -> PPTP -> (inner)IP -> UDP

路径中的(公共)路由器只看到外部 IP 数据包。内部 IP 数据包也有可能穿过(私有)路由器,然后被边界网关封装(如在 VPN 场景中)。请注意,PPTP 不支持加密,但您当然可以传递传输层加密数据,例如使用 TLS。

这并不能直接回答你的问题,但我希望事情变得更清楚。