TUN / TAP写回隧道

时间:2012-10-15 23:45:12

标签: tun

我的应用正在使用TUN说tun0。在设计中,我的应用程序将收到一个包含完整IP层的UDP,然后我将取出IP层,然后使用'文件写'将它们放入我自己的tun0设备中,据说在设计中,我应该可以读取从tun0再次输出数据包。

现在情况是我可以通过tcpdump看到包被写入隧道,但我无法读回来。

隧道设置或路线设置有问题吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

您的第二个tun0不是FIFO队列。在设计使用第二个tun0设备的方式和原因时,您可能会遇到问题。澄清您使用它的原因以及应该阅读的过程。正确的方法应该来自澄清。

如果您想阅读发送给您的数据,您有一些选择。

  • 打开时将tun0连接到TCP或UDP echo服务。然后,它会将您收到的数据包发回给您。
  • 打开第二个要连接的tun0的侦听器。然后连接到它并将数据包发送出该连接。从听众那里读取你的数据。
  • 打开包含两个文件描述符的管道。写入一个描述符并从另一个描述符读取。在分叉儿童时,管道通常用于IPC(进程间通信)。
  • 创建套接字并从中读取数据。打开插座的另一端进行写入。套接字通常用于允许其他进程与进程通信。当调用进程的生命周期与侦听进程的寿命不同时,这种方法很有效。
  • 在内存中创建缓冲区或队列以存储数据。