P2P不是协议
他不是协议
我们现在使用的是
TCP/IP协议组
这个组里,负责传送的就两个
TCP和UDP
其中TCP是有链接的,也就是你说的握手
UDP无连接直接发的
除此以外还有历史上的IPX协议,就是你们玩红警要装的那个
相对于P2P,也称作『对等网络』与传统的『非对等网络』
最大的区别在于『非对等网络』存在着服务器
而『对等网络』使用UPnP也称即插即用 技术,让客户机对等的连接起来
这类的另外的答案已经说过不再废话
说一下这技术的问题吧
首先是延迟没有办法保障
比较常见的就是『主机延迟』比如csgo,或者战争框架这种,一台电脑作为主机,另外数台客户机,通常导致在主机网络环境不好的情况下所有玩家的延迟十分不可控
而如 其他玩家→A→B 这样传输的情况下B的延迟相当于A+A→B的双倍高延迟
同理推广丢包
其次,是网络环境的问题,如果玩过的游戏有『网络类型』比如ABC啊,或者OPEN啊这种,说的就是这个
最理想状况是拥有公网地址,也就是公共IP。最不理想状况是『内网』(长城宽带了解一下)
而玩家的网络环境多种多样,如果不考虑网络环境而采用P2P会导致内网用户无法进行游戏,或难以进行游戏。
而使用服务器则可以保证,只需要客户机找到服务器就可以游戏
同时,便于加速器加速(服务器机房位置与网络相对固定,而用户网络五花八门)
最后,最近P2P兴起的主要原因是穿透技术成熟、各种各样的新技术出现和网络状况普遍改善。
另外个人电脑处理能力提升,处理网络问题也更加轻易
而同时,网络协议本身的提升同样使得程序方面实现简单稳定
而这种方法从来不冷门,只是需要处理的东西过多而且过于难以保证
还包括各种外挂、数据丢失、存档
因此商业化程度高的『网络』游戏极少采用p2p(战争框架连接失败的朋友们你们好),以增加游戏整体可控性