点击,快速进阶高级建筑师
网友:网上查到的资料都说QQ用的是UDP协议,但是电脑网络里各种信息都提到它的不可靠性。有人知道原因吗?求解答!
甲:QQ既有UDP也有TCP!.
无论UDP还是TCP,QQ登录成功后都会有一个TCP连接保持在线。这个TCP连接的远程端口通常是80。通过UDP登录时,端口为8000。
UDP协议是一种无连接协议,效率高,速度快,占用资源少。但其传输机制不可靠,必须依靠辅助算法来完成传输控制。QQ采用的通讯协议以UDP为主,TCP协议为辅。因为QQ服务器的设计容量是海量应用,一台服务器要同时容纳10万以上的并发连接,只有使用UDP协议与客户端通信,服务器才能保证这种超大规模的服务。
QQ客户端之间的消息传输也采用UDP模式,因为国内网络环境非常复杂,很多用户共用一条线通过代理服务器上网。在这些复杂的情况下,客户端之间能够建立TCP连接的概率很小,严重影响了信息传输的效率。UDP数据包可以穿透大多数代理服务器,因此QQ选择UDP作为客户之间的主要通信协议。
采用UDP协议,通过服务器传输方式。所以,现在的IP侦探,你只是互相发聊天消息,是无法获取IP的。众所周知,UDP是一种不可靠的协议。它只发送,不管对方有没有收到,但是它的传输效率很高。然而,作为一个聊天的软件,你怎么能以这样一种不可靠的方式传递信息呢?因此,腾讯采用了上层协议来保证可靠传输:如果客户端使用UDP协议发送消息,服务器收到包,则需要使用UDP协议发送回复包。以便确保消息能够被无遗漏地传送。客户端明明看到“消息发送失败”但是对方收到这条消息会发生的情况是,客户端发送的消息已经被服务器成功接收并转发,但是客户端由于网络原因没有收到服务器的响应包。
<
亿软阁微营销
