早期QQ为何不用TCP协议?两个原因

1个回答

写回答

MINGM

2026-01-15 02:30

+ 关注

服务器
服务器

有两个原因。其一,早期服务器性能欠佳,服务器端难以承受TCP连接。在2010年以前进行大型游戏服务器端开发时,几乎无人会考虑TCP协议。别的暂且不提,光是内存就可能出现爆仓情况。这是因为每个TCP连接都会耗费大量的内存资源。其二,在中国有特殊情况,TCP打洞不但操作麻烦,而且成功率较低。QQ的一项重要功能是让两个客户端直接相互传输文件,在骨干网网速较慢的时候,只能采用两个客户端直接连接的方式。那时骨干网网速仅有4Mbps,而两个人很可能处于同一个办公内网,或者都在方正宽带这类二级运营商的内网之中,尤其这两人可能是同事或者同学关系。所以直接连接会带来极大的速度优势(哪怕只是发送信息),而这种情况只能通过UDP协议来打洞。至于TCP协议,当网速变快、服务器内存增大以及有立法要求之后,所有消息都必须经由腾讯服务器统一分发。在这种情况下,TCP协议其实更具优势。不过QQ已经发展成如今的模样,并且还有大量旧客户端无法及时淘汰。在这种情形下,基本上只能慢慢进行修补,想要大规模升级代码是不可能的了。因为一旦升级代码,开发过程绝非一两年就能完成,在这个过程中,漏洞会多不胜数,别的不说,光是营销机器人、诈骗机器人这些问题,就够开发团队头疼的了。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号