P2P技术穿透NAT可行性讨论

前两天三个人由于一个项目需要用到P2P技术,而负责这个项目的宋X说以前就想研究该技术,使用访技术进行网络穿透,但一直没有找到合适的资料和教材,于是讨论起该技术的实现原理,是如何实现的。

讨论的过程可能比较复杂,我也记不太清了,今天整理一下,大概也只能记得个主要内容了。讨论到一定内容,陈X说P2P技术也需要一个具有公网IP的服务器,然后两台内网机器先与该服务器通讯,然后从服务器得到一些连接信息后才能建立P2P的连接,说到这里我想到一个思路。

既然这通过一个公网的服务器作为接头站点,那这个原理从理论上很容易实现。假设服务器S,两台机器A和B分别位于两个不同的内网,当A与B要建立P2P的连接时,A与B分别和S通讯,然后取得相关信息后A与B再建立P2P连接,下面说一下可能的思路。

既然S有公网IP,不妨假设S为WEB服务器,支持HTTP协议,那么A与B对S的访问是没有任何问题的。而HTTP是建立在TCP协议之上的,TCP协议的连接是需要握手的,以A为例。当A要访问S上的资源,首先要与A建立TCP连接,首先A向S发送连接请求,然后S向A返回握手信息,当A确认握手信息后,确定与S之间的连接,然后A才能向S发送有用的数据。这样S与A之间的通讯必然是双向的,不但A主动向S发送连接请求信息,而S也会向A发送连接确认信息,而B与S的通讯与A相同,那么只要A发送到B的数据包要进入B所在的网络之间,将数据包伪装成S向B发送的信息即可。而数据信息只需要修改TCP协议下一层的数据内容,制造假信息即可使数据顺利到达B点。

这只是理论的分析,与实现还有一定距离,而且这只是三个对P2P技术不熟悉者之间的讨论,可能现在已经有很详细的资料帮助我们快带实现我们所要求的功能,但对P2P技术的实现可能性分析,也使我们对网络原理有了更深的理解,如果现在所用的P2P如果与我们的思路不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值