TCP + UDP 作为网游的网络架构是否合适 

2006-12-07 21:32 发布

引擎学习交流 /[各编程语言]
3234 0 0



从《大航海时代Online》公测的反映看,非常的不好,很多玩家在抱怨总是掉线,我也上去玩过了,大概在城市或者在海上,不到10分钟就要掉线一次,而且掉线方式和以前见过的游戏不一样。
当发现掉线时,周围的人都定住不动,但这时自己可以随便乱跑,在发生掉线后1分钟,游戏才提示错误,然后退出游戏状态。当我重新上线后,发现自己的位置不是在发生掉线情况时的位置,而是游戏提示掉线后所在位置。
通过抓包工具发现游戏向服务器发送数据时采用TCP,而接收采用UDP,当服务器负载过多时,UDP包无法按时(网络阻塞发送数据失败而延后发送或者丢包)发送给客户端,导致客户端在长时间内没有收到心跳包后提示错误发生掉线错误。

虽然说采用UDP在大部分时间内,数据包是可以准确的送到客户端,但是在网络异常繁忙的情况下,丢包的可能性更加大。我觉得光荣的TCP+UDP的方案不是太好,毕竟所有的数据都通过UDP传回来会存在丢包危险。如果能将一些重要的数据通过TCP回传,而人物的移动,人的衣服等不是很重要的信息通过UDP传输,即使丢包,问题也不大,而且这样看起来也更加稳定,不像现在这样老是掉线。

TA的作品 TA的主页
B Color Smilies

你可能喜欢

TCP + UDP 作为网游的网络架构是否合适 
联系
我们
快速回复 返回顶部 返回列表