hole-punching相关内容

udp丢包和恢复

我正在开发基于 udp/tcp 的 P2P 文件和实时视频流应用程序.该应用程序将使用 c++ 为 Linux 和 Windows 平台开发. 我们正在使用 ICE(TCP/UDP 打孔)来实现 P2P.虽然 TCP 确保数据包丢失,但对于 UDP,我需要一种体面的方法来确保必须将数据包传递给其他对等方. 我想知道执行此操作的算法或技术. 是否有任何免费的第三方工具/库可供使用. ..
发布时间:2022-01-22 17:26:31 其他开发

c++ 打孔UDP(RTP)

我正在做一个客户端-服务器语音聊天程序(非托管 C++,win32),其中客户端使用 TCP 连接到服务器,文本聊天/聊天室功能在 TCP 中完成,而所有音频传输都通过单独的 UDP/RTP 套接字发送(使用 JRTPLIB 的 API). 所以从TCP连接知道IP,建立连接后就可以发送RTP套接字的端口号了. 问题在于,在 TCP 中,自从您建立连接以来,只有服务器需要进行端口转发才 ..
发布时间:2022-01-22 17:25:05 C/C++开发

UDP 打孔在 3G 上未通过

我正在尝试在软件中实现打孔功能.问题是,我正在使用一个已经制作好的 TCP 服务器与用户进行通信. 这是我目前所拥有的: “A"向 UDP 服务器“US"(端口 9333)发送消息 “US"将其连接的端口(端口 31000 - 本地端口 31005)发回给“A" “A"向 TCP 服务器“TS"发送一条消息,说他想连接到 B(并提供端口 31000) “TS"向“B"发送一条消息 ..
发布时间:2022-01-22 17:04:27 其他开发

UDP 打孔.让服务器与客户端对话

我阅读了很多关于如何实现 UDP 打孔的文章,但由于某种原因我无法使其工作. 对于不熟悉 udp 打孔的人,这里是我自己的定义: 目标是能够在两个客户端(客户端 A和客户端 B) 在服务器的帮助下.所以客户端 A 连接到服务器并发送它的信息.客户 B 也是如此.服务器具有必要的信息,以便客户端 A 能够向客户端 B 发送数据,反之亦然.因此,服务器将该信息提供给两个客户端.一旦两个客户 ..
发布时间:2022-01-22 16:45:50 C#/.NET

UDP打孔算法

谁能举一个UDP打孔的例子? 其实我想写一个聊天程序,大家知道对方IP的时候就可以聊天了.但是这两台机器都将位于防火墙路由器后面.所以,我需要打个洞才能沟通. 我想要一个这样的函数,在调用该函数时,会打出一个洞,未来的通信会很容易进行——如果这不是太多要求的话:) 解决方案 简短的回答:不能可靠地完成. 长答案: “打孔"是指触发路由器的自动 NAT 规则以允许入站 ..
发布时间:2022-01-22 16:43:54 其他开发

UDP打孔实现

我正在尝试完成 UDP 打孔.我的理论基于 这篇文章 和这篇 WIKI 页面,但我在 C# 编码方面遇到了一些问题.这是我的问题: 使用此处发布的代码 我现在能够连接到远程计算机并在同一端口上侦听传入连接(将 2 个 UDP 客户端绑定到同一端口). 由于某种原因,同一个端口的两个绑定会阻止对方接收任何数据.我有一个响应我的连接的 UDP 服务器,所以如果我在将任何其他客户端绑定到端口 ..
发布时间:2022-01-22 16:27:19 C#/.NET

如何模拟不同的 NAT 行为

我正在使用 UDP 和 UDT 进行打孔.对于最终测试,我需要在不同的 NAT 类型(对称、全锥、受限锥、端口受限 NAT)上测试应用程序. 有什么方法可以模拟这些吗?我在这里期望的是某种虚拟框设置.能不能把PC当成路由器,根据自己的需要进行配置? 一般来说,我们如何针对不同的网络条件测试应用程序? 解决方案 我想你已经回答了自己的问题,使用 VirtualBox(或 VMwa ..
发布时间:2022-01-19 16:40:41 其他开发

TCP 打孔

我正在尝试使用 mingw 工具链通过 Windows 套接字实现 TCP 打孔.我认为这个过程是正确的,但洞 似乎没有.我使用 this 作为参考. A 和 B 连接到服务器 S S 发送给 A、B 的路由器 IP + 用于连接S 的端口 S 对 B 做同样的事情A 启动 2 个线程: 一个线程尝试使用S 发送的信息连接到B的路由器当另一个线程连接到 S 时,另一个线程正在等待 ..
发布时间:2021-12-28 12:42:53 其他开发

UDP 打孔未通过 3G

我正在尝试在软件中实现打孔功能.问题是,我正在使用一个已经制作好的 TCP 服务器来实现这一点,以便与用户进行通信. 这是我目前所拥有的: “A"向 UDP 服务器“US"(端口 9333)发送消息 “US"将其连接的端口(端口 31000 - 本地端口 31005)发送回“A" “A"向 TCP 服务器“TS"发送一条消息,说他想连接到 B(并提供端口 31000) “TS"向 ..
发布时间:2021-09-12 19:25:16 其他开发

UDP 打孔算法

谁能举一个 UDP 打孔的例子? 实际上,我想写一个聊天程序,当人们知道彼此的IP时,可以用它聊天.但是这两台机器都将在防火墙路由器后面.所以,我需要打个洞才能交流. 我想要一个函数,在调用该函数时,会被打出一个洞,并且未来的通信将很容易进行——如果这不是太多要求的话:) 解决方案 简短回答:无法可靠地完成. 长答案: “打孔"是指触发路由器的自动 NAT 规则以允 ..
发布时间:2021-09-12 19:24:36 其他开发

udp打孔后发送文件

我在 NAT 后面有 2 台计算机. 为了在它们之间建立连接,我使用了 UDP 打孔协议. 它有效. 现在我想通过这个隧道发送文件.我想我必须在这两台计算机之间建立一个 TCP 隧道. 两个防火墙都拒绝所有 TCP 流量. 有可能吗? 如果没有,还有其他解决方案吗?Skype 如何通过此 UDP 隧道发送文件? 解决方案 文件被打孔后,您可以使用 UDT ..
发布时间:2021-09-04 20:00:20 其他开发

TCP打孔问题

我尝试使用 这篇文章.但是,我无法连接任何东西.代码如下: #!/usr/bin/python3导入系统进口插座将 _thread 作为线程导入定义客户端():c = socket.socket()c.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)c.setsockopt(socket.SOL_SOCKET, socket.SO_REU ..
发布时间:2021-09-04 19:56:56 Python

UDP 打孔主机特定故障

我编写了一个程序来设置点对点链接.该程序可以在 http://basyl.co 找到.uk/code/punch/doc/files/Readme-txt.html,分为两部分:运行在公共主机上的服务器;以及由所需对等链接的每一端使用的客户端. 我可以访问两个公共服务器:'bonn' (home.contextshift.co.uk) 和 'entropy' (home2.contextsh ..
发布时间:2021-06-07 19:27:43 其他开发

使用Google App Engine将消息初始化到防火墙后面的设备

我想使用Google App Engine向位于防火墙/路由器/NAT之后的设备发起http流量.这些设备将从GAE接收命令.我可以让设备轮询GAE以查找新消息,但这会占用大量流量.或者,我可以尝试永久性地保持打开连接,但这非常昂贵而且很糟糕. 设备将没有静态IP地址.但是,他们将与Google App Engine定期进行通信,然后设备可以监听刚刚打开的端口以进行任何传入通信.如果我了解 ..
发布时间:2020-11-16 23:08:21 其他开发

UDP打孔Java示例

我想在具有静态IP的服务器的帮助下与两个客户端进行UDP打孔.服务器在端口7070和7071上等待两个客户端.此后,它将彼此发送IP地址和端口.这部分工作正常.但是我无法在两个客户端之间建立通信.我在不同的Wifi网络和3G移动网络中尝试了该代码.客户端程序将引发IO异常“没有通往主机的路由". 客户端代码用于两个客户端.使用端口7070执行一次,使用7071执行一次. 您认为我正确实现了U ..
发布时间:2020-07-12 03:44:46 Java开发

p2p打孔有什么难处?

我正在尝试一些p2p网络.经过研究后,我了解到的最大障碍之一是"如果客户端位于NAT/防火墙后面怎么办" ,后来我发现了打孔技术,但并不一定保证它能正常工作. 据我所知,我不理解为什么它可能会失败,这是我到目前为止所知道的: Alice 通过创建与目录服务器的连接来加入网络(1).发生这种情况时, Alice的 NAT会创建从其公共IP到其本地IP的映射. 目录服务器接收连接,并将 Al ..
发布时间:2020-05-23 19:12:11 其他开发

TCP打孔

我正在尝试使用mingw工具链使用Windows套接字实现TCP打孔.我认为这个过程是正确的,但是 hole 似乎没有必要.我使用了此作为参考. A 和 B 连接到服务器 S S 发送到 A , B 的路由器IP +用于连接到 S 的端口 S 对 B 执行相同的操作 A 开始2个线程: 一个线程尝试使用 S 发送的信息连接到 B 的路由器 当另一个线程连接到 S 时,另一个线程正 ..
发布时间:2020-05-17 18:53:32 其他开发

udp数据包丢失和恢复

我正在为文件和实时视频流应用程序同时开发基于udp/tcp的P2P.该应用程序将使用c ++为Linux和Windows平台开发. 我们正在使用ICE(TCP/UDP打孔)来实现P2P. 虽然TCP确保数据包丢失,但是对于UDP,我需要一种体面的方法来确保必须将数据包传递到另一个对等方. 我想知道执行此操作的算法或技术. 有没有免费的第三方聚会工具/库. 任何链接和建议都会受到 ..
发布时间:2020-05-17 18:41:36 其他开发