用户
 找回密码
 立即注册
搜索

[求助] 谁能介绍一下qq点对点功能的原理?

[复制链接]
tomcatjia 该用户已被删除
发表于 2007-2-3 11:59:00
提示: 作者被禁止或删除 内容自动屏蔽
使用道具 举报 回复
发表于 2007-2-3 12:27:00
内网出去时,路由器一般会自动影射端口。

QQ传输一般使用的是UDP协议(可能会导致数据丢失,但是当前的网络现状下,代价也不大),主要是不需要所谓的握手协议,TCP则需要三次握手协议(目前而言,实现比较困难,主要是数据如果没有返回信息的话,就会断开链接)。

QQ的p2p的关键就是QQ登录服务器之后,发送登录信息,一般会包含自己的开放端口,服务器返回验证并且在服务器上保存端口信息(也就是一般而言的NAT信息),而且客户端一般也会开放固定的端口进行监听,QQ用的好像是443端口。当一个客户端要连接另外一个客户端的时候,服务器检索端口连接是否正常,正常的,直接让客户端之间通过UDP建立通道,否则通过服务器中转数据。

其中的最重要的就是服务器上面保存的端口信息(而且服务器地址一定是公网地址)。
使用道具 举报 回复 支持 反对
发表于 2007-2-3 21:24:00
说的简单明了,似乎懂了一点了,谢谢阿!

既然这样,有没有这样一个软件,可以实现点对点互访?比如我在上面说到的想法(查看对方文件,桌面等)。

这样说,好像是个木马之类的了,不过的确有这样的需求阿...
使用道具 举报 回复 支持 反对
发表于 2007-2-3 23:06:00
楼主是想玩远程监控吧??
呵呵。。QQ里的远程协助
或者试试放飞的鸽子!
使用道具 举报 回复 支持 反对
发表于 2007-2-4 04:59:00
如2楼所讲,需要一个服务器来起一个桥梁的作用,在两个客户建立连接之前,由服务器通知客户端对方的IP地址,然后然后服务器通知被叫向发起方IP发送UDP来打洞,发起方就可以通过此洞来连接被叫方,同时在NAT上形成一个针对被叫方的洞,被叫方可以通过此洞来连接发起方。具体实现可能需要很复杂过程,但其实原理倒是很简单。
以上纯属个人理解,不见得正确,仅供参考。
使用道具 举报 回复 支持 反对
发表于 2007-2-4 13:59:00
谢谢大家阿!
虽然木马阿,鸽子阿好像让人挺反感,但是从技术上讲确实让人佩服,我对怎么控制别人不感兴趣,我关心的是那些技术....
不过现在最要紧的是如何实现我在家里怎么控制我单位的机器,至于灰鸽子,好像至少也需要一端有外网ip吧!
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则