论文部分内容阅读
对等网络技术(Peer-to-Peer,简称P2P)带给了我们诸多的好处,其中之一是加强和改进许多原有的应用。基于客户端/服务器(Client/Server,简称C/S)模型的互联网游戏由于有大量的数据需要游戏服务器处理,故要求游戏服务器拥有强大的计算能力;同时,大量数据需要游戏服务器转发,故对游戏服务器的网络带宽也要求甚高,这难免会引起过高的运营成本。基于P2P模型的互联网游戏将游戏逻辑放在游戏客户端执行,游戏服务器只帮助游戏客户端建立必要的P2P连接,本身很少处理游戏逻辑,这对于降低运营成本有重要的意义。本文给出一种基于P2P的互联网游戏架构实现,可以在该架构之上透明地建立基于P2P的游戏应用。使用该P2P互联网游戏架构,互联网游戏设计开发人员可以避免考虑底层的网络实现及可能的网络通信,安全和性能问题,可以专注于互联网游戏的上层逻辑设计开发,极大的缩短了项目开发的周期。基于P2P模式的互联网游戏开发中的两个常见问题为:穿透网络地址转换器(Network Address Translator,简称NAT)问题和实现互联网游戏高实时性问题。由于当前大多数Internet用户的接入方式都是通过局域网内部的NAT共享上网,所以需要解决P2P应用穿透NAT问题。互联网游戏的实时性要求很高,这种需求导致TCP不是一个很好的候选方案,所以需要实现一个类似TCP的应用层的协议,该协议至少需要满足三种不同级别的需求,即类似UDP的无保证,类似TCP的保证按顺序到达和介于两者之间的保证到达,尤其是第三种需求,对于实时性要求很高的网络游戏开发而言,非常重要。