qq各种数据传输采用的是什么模型?该如何处理

qq各种数据传输采用的是什么模型?
qq的各种数据采用的是什么网络模型哦,比如:
1.普通聊天内容 IOCP数据转发?
2.文件传输 服务端转发 or 两客户端建立直连 ?
3.语音 服务端转发?
4.视频 服务端转发?
5.用户上下线 UDP 心跳?

求真相,谢谢各位啦!




------解决方案--------------------
这个你自己抓个包就行了啊
语音和视频应该不可能再经过服务端转发吧
应该直接用UDP吧
------解决方案--------------------
我只知道传文件是TCP打洞,两客户端直接p2p,不需要服务器转发,因为同一个内网间的好友传文件不耗流量,嘿嘿,服务器只是协助打洞,
------解决方案--------------------

------解决方案--------------------
大部分应该都是P2P,服务端主要进行一些两者建立通信的操作
此外像离线消息,离线文件等,应该是先送到服务端,然后服务端再跟另一个客户端通信
------解决方案--------------------
应该是UDP吧,传文件的话是P2P
------解决方案--------------------
UDP
------解决方案--------------------
qq的各种数据采用的是什么网络模型哦,比如:
1.普通聊天内容 IOCP数据转发?
2.文件传输 服务端转发 or 两客户端建立直连 ?
3.语音 服务端转发?
4.视频 服务端转发?
5.用户上下线 UDP 心跳?

 
你问的这些问题除非是QQ内部开发员工,不然谁也不清楚准确的答案哦,但通过效率网络因素等,猜测还是可以的。
1.IOCP如果你指的是完成端口的话,但这是windows下的概念,我觉得QQ的服务器应该是Unix/Linux的吧,毕竟这已经算是大型的分布式应用了。普通聊天内容是通过UDP发送,可能是P2P或者是服务器转发了,这应该是服务器判断是否可以UDP打洞,如果可以就直接P2P了。
2.文件传输,因为需要传输的准确率,应该是TCP(或者自己封装UDP形成类似的TCP可靠协议),至于是服务器转发还是直连,觉得服务器转发的概率大些,因为TCP打洞可靠性太差。如果是UDP封装的协议,采用直连P2P倒是有可能。
3.4.这些语言视频都不是要求传输的可靠,而且要尽量快速,所以应该采用UDP实现,是转发还是直连,应该也视服务器验证网络条件来决定吧。(服务器应该确定在一段时间内打洞是否成功,如果成功就直连P2P,如果失败可能就转发)
5.用户上下线就只能是通过服务器确定然后通知你了,应该是UDP心跳吧,如果是TCP浪费太大吧。但登陆时应该采用TCP。
以上就是个人的理解,毕竟又不是QQ的员工,猜测了,如有雷同,纯属巧合。
------解决方案--------------------
文本聊天应该是服务器转发的,否则,采用P2P的话,敏感词汇就难以检测过滤,国家可能也就无法监控网民的言论
------解决方案--------------------
先TCP 在 UDP 抓一包可 看一下端口
------解决方案--------------------
用抓包工具,看qq进程的的tcp协议
------解决方案--------------------
你把360网络流量监测的工具打开,就知道qq开了多少个TCP,又有多少个UDP
------解决方案--------------------
udp 而且是p2p的..

------解决方案--------------------
探讨

文本聊天应该是服务器转发的,否则,采用P2P的话,敏感词汇就难以检测过滤,国家可能也就无法监控网民的言论

------解决方案--------------------
怀疑封装了一套基于udp的可靠传输协议,这样又可以打洞.
------解决方案--------------------
完全同意

探讨

怀疑封装了一套基于udp的可靠传输协议,这样又可以打洞.