这个项目有点类似于家庭自动化项目,因此请牢记家庭自动化。
S
M
H
由于许多IP都是动态的,并且ISP要为静态IP收取额外费用,并且让客户端口转发我的应用程序的端口是不切实际的。
我听说过用于P2P的TCP Hole冲孔可能不可靠,但是使用S
作为所有请求的代理似乎是不切实际的,因为S
会有很大的负担。
将M
连接到H
,以便他们可以互相发出RESTful HTTP请求。
M
或H
无法通过TCP启动连接的情况? (使用UDP?)我一般都知道打孔是如何工作的,S
必须将两个客户端的端点分别给予彼此,以便他们都可以尝试启动连接。我也非常了解NAT的
对于极少数情况下TCP Hole Punching无效,S
可以作为代理
答案 0 :(得分:0)
- 我如何管理M或H都无法启动的情况 通过TCP连接? (使用UDP?)
醇>
是通过UDP。或者通过S使用TCP。
- 如果TCP Hole打孔在这种情况下不起作用,我可以发送UDP 包而不是? (UDP在交付方面不可靠,因此也是如此 发送多个重复的数据包保证交付?)
醇>
这取决于。您必须在接收方进行检查,以确定是否收到数据包,然后向发送方发送通知。因为您可能会发送10/20相同的数据包,但仍然可能无法到达接收方。但是如果你想要可靠的数据包传输以及UDP,那么就有一个名为RUDP的协议。
请注意无论您使用的是TCP还是UDP,都无法始终成功建立P2P连接。许多时候您必须通过S建立连接或者您无法连接。该场景是,其中一个端点具有对称NAT,而其他端点具有PRC / Symmetric NAT。现在,很多基于LTE的连接使用对称NAT。