C 将UDP数据包标识为不同的连接
在我的下一个受虐业余项目中,我正在尝试使用UDP隧道实现一个基本的匿名协议,其他流量可以通过UDP隧道进行传输。我想使用UDP,因为它提供了高吞吐量,并防止了TCP over TCP可能出现的超时崩溃 匿名网络中的每个用户都成为一个节点,并成为其他用户通道的一部分。每个节点必须能够处理多个隧道,从而将传入和传出的数据包标识为属于特定隧道 不需要查看实际的数据包数据(如有可能,只需查看报头或连接),就可以确定数据包属于哪个隧道的最佳方法是什么?是否有面向连接的UDP版本? 我对UDP的理解是这样的——它是无连接的,数据包头只说明源/目的地地址和源是什么 我可以想出几种方法来利用这些信息:C 将UDP数据包标识为不同的连接,c,sockets,networking,udp,ip,C,Sockets,Networking,Udp,Ip,在我的下一个受虐业余项目中,我正在尝试使用UDP隧道实现一个基本的匿名协议,其他流量可以通过UDP隧道进行传输。我想使用UDP,因为它提供了高吞吐量,并防止了TCP over TCP可能出现的超时崩溃 匿名网络中的每个用户都成为一个节点,并成为其他用户通道的一部分。每个节点必须能够处理多个隧道,从而将传入和传出的数据包标识为属于特定隧道 不需要查看实际的数据包数据(如有可能,只需查看报头或连接),就可以确定数据包属于哪个隧道的最佳方法是什么?是否有面向连接的UDP版本? 我对UDP的理解是这样的
EDIT3:关于Xaxxon的回答,我计划将匿名网络公开给具有tun接口的用户空间程序。这将允许我在系统上运行我想要的任何通信—ssh、ftp等。我不希望弄乱与这些更高层协议对应的数据包头。数据包的源可用并且将保持一致因为它来自特定的计算机。如果您需要更多数据,只需将附加数据作为第7层标头的一部分。除了查看IP/UDP标头之外,查看数据包的前几个字节不会有额外的开销。如果您将其从内核空间中带出,您已经为此付出了代价。旁注:
每个用户in匿名网络成为一个节点并成为其他用户隧道的一部分
——这意味着网络不是匿名的,只有通信是匿名的。(也就是说,当有人在网络上时,很容易辨别,尽管你不知道他们在说什么)正确,只是通信量是加密的。DP不会“防止超时崩溃”。如果不小心使用,UDP会导致“超时崩溃”,这将是非常准确的。