如何在Udp封装应用程序中实现Ip?

时间:2013-09-10 22:02:04

标签: c++ networking ipsec nat-traversal

我想开发测试应用程序(类似于IpSec,但很简单),它实现了在一些带有encription的“另一个数据包”中封装“PC”的所有IP数据包。这个“另一个数据包”被发送到另一台计算机(像“代理”一样),它解压缩原始IP数据包并将它们发送到它们的原始目的地。然后这个“代理”接收“PC”的数据包并将其打包,封装并发送到“PC”等。应用程序必须支持使用NAT。我知道带有NAT的IPSec只能使用NAT遍历,因此“另一个数据包”将是udp,即我将在UDP中封装Ip并带有一些编码。

我意识到winpcap并不是我开发此类应用所需要的。 我可以在没有特殊硬件的情况下开发这样的应用程序吗我应该使用什么样的工具(也许我需要编写自己的驱动程序)?

1 个答案:

答案 0 :(得分:0)

好的,如果你想将你的数据封装成ip数据包,那就是一回事。 在这里你说你要封装IP数据包

考虑OSI层:wiki

由于IP数据包是第2层 你不想重新实现第2层。 我认为这是你只能在司机中找到的东西,因此很难依赖。