云霄qq群排名专家是一家提供QQ群优化排名的工作室,提供QQ群排名、QQ群排名优化、QQ群快速创建等服务,拥有数年QQ群优化经验!
QQ群排名技术中心
QQ群排名技术中心 当前位置: 主页 > QQ群排名技术 > 正文

QQ的文件传输是否采用了P2P技术?

来源:网络整理;     作者:admin; 日期:2018-07-19 09:34

  QQ的文件传输是否采用了P2P技术?虽然我一直很好奇QQ传输文件的方式,但是我个人没做过像题主这样的实验研究(惭愧),只是道听途说过一些说法。

P2P技术

  噢,以下说的NAT的映射方式以对称型NAT为例,因为大多数家庭路由的的NAT都是对称型的(没记错的话),而且对称型的NAT穿透应该也是最棘手的。

  首先,如果说使用UDP协议进行传输,NAT穿透的问题会好解决很多,因为UDP协议的特点之一是无连接性,所以当发送UDP协议包的时候,NAT打的“洞”会有一个生命周期,只要在这个生命周期内有数据包通过,这个洞就会一直刷新周期时间,从而保证这个“洞”的存在。

  换句话说,只要你内网的主机主动向外网主机发送UDP数据包,NAT设备就会给你打好洞,然后你只要用一个心跳包的方式维持这个“洞”,外网的主机就可以一直使用这个“洞”来访问你内网的主机。 所以理论上来说如果使用UDP协议来进行NAT穿透,是可以做到不同公网分别在不同NAT设备后的两台主机(题主的11、12实验)进行P2P通讯(需要公网主机帮助),事实上我也实现过这样的Demo。既然在不同NAT后面的两台主机都可以P2P通讯,那只有一方在NAT后的,或者是双方都在公网的主机P2P通讯更不成问题了。

  如果说QQ在这种情况下不是使用UDP协议来传输数据的,或许是考虑到场景的问题和UDP协议不确定性的问题。 毕竟我实现的只是一个Demo,很多场景可能考虑不到位(比如题主的3、4、9、10实验)。

  那说说使用TCP协议的P2P通讯吧。 TCP协议对NAT穿透来说的一个最大的问题就是它是连接型通讯协议,而且TCP协议的NAT打洞不会像UDP协议一样具有生命周期,一旦发送FIN标志要断开连接,NAT上的洞也会随之关闭。 所以TCP协议的NAT穿透相对UDP来说是很困难的,成功率也比较低,只有在某些特定的情况下才可以穿透,而像题主实验中的11、12实验这种拓扑模型的NAT穿透,虽然我尝试过,但是没能实现(记忆中主要的问题是无法获得自身NAT映射后的端口)。 但对于1、2实验的情况还是可以的,只要NAT后的设备主动跟公网的设备连接就可以了,相当于一个典型的C/S模型,但是如果公网设备想主动跟NAT后的设备进行通讯,那就要一台服务器进行帮助,通知NAT后的设备去主动跟公网中的设备进行连接,也是一种P2P通讯。

  关于TCP协议的NAT穿透之前下过几篇论文,但是一直搁那忘看了,如果有需要我再翻出来看看吧,到时候再更。
     
       以上就是关于QQ的文件传输是否采用了P2P技术这个问题的解答,希望对大家有多帮助。