gpt4 book ai didi

c - 自己的简单VPN的数据包封装

转载 作者:行者123 更新时间:2023-11-30 17:12:04 25 4
gpt4 key购买 nike

我想在 Linux 上用 C 语言自己实现非常简单的 VPN。为此,我将捕获 IP 数据包、修改它们并转发。修改包括加密、身份验证和其他类似 IPSec 的内容。我的问题是我应该以某种方式处理数据包的大小还是会自动处理?我知道它的最大大小是 65535 - 20(对于 header ),但根据 MTU,它较小。我认为这是因为 NAT-T 的“封装到 UDP 中”的加密有效负载比 IP 数据包的“正常有效负载”大得多。

最佳答案

嗯,我发现实际上有两种方法可以解决这个问题:

1) 我们可以通过设置 DF 标志来发送大数据包,以告知我们想要分段数据包。但在这种情况下,数据包可能会丢失,因为并非所有设备/等都支持数据包分段

2)我们可以自动计算主机之间的最大MTU,分割它们并发送。另一方面,我们将所有这些数据包放在一起并恢复它们。这可以通过为此目的实现我们自己的“系统”来完成。

有关 IP 数据包分段和重组的更多信息,您可以阅读 here

关于c - 自己的简单VPN的数据包封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31835699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com