雪地奔驰吧 关注:12,765贴子:143,524
  • 5回复贴,共1

雪地奔驰联机问题

只看楼主收藏回复

一、如何稳定联机方法
1. 联机口诀:房主不开加速器,队友都不开加速器。房主开加速器,队友都开加速器。
2. 优先推荐:(都不开加速器方式联机)
3. 可能会遇到的情况:
(1) 进游戏提示”只能离线,无法使用多人联机”,这种情况先用加速器,等检查权限通过后,能进入合作模式,之后再关掉加速器,进行联机。
(2) 不管因为什么原因离开了房间,很大概率(99%)进不去了,只能让房主重新创建房间。
(3) 各种方式都尝试了,联机还是不行,所有人重启电脑再次尝试。
二、为什么雪地奔驰联机这么不稳定
1. 游戏技术查询网站:https://www.pcgamingwiki.com/wiki/SnowRunner
2. 通过查询可以知道雪地奔驰多人联机采用的P2P技术,P2P全称是 Peer to Peer ,翻译
成中文就是“地位对等的两个节点之间“。查询雪地奔驰多人联机技术的结果,如下图所示:
3. P2P简单原理演示
我发一条微信给你,这不是P2P。因为消息并不是直接从我手机发送到你的手机,而是从我手机先发送到微信的服务器,服务器再转发到你的手机上,如下图所示
P2P是这样,如下图所示:

4. P2P连接建立过程
P2P连接的建立首先需要一个拥有公网IP的中间服务器S,两个结点P1和P2。
(1) 结点P1和P2分别发送数据包给S,数据包在经过NAT时,Ip和port进行转换,Ip转换为公网Ip,port是否转换需要看NAT的具体实现。S拿到转换后的P1和P2的地址。
(2)S将P1的地址发给P2,将P2的地址发给P1。这里的地址都是NAT地址。
(3) P1收到P2地址后,尝试建立连接,首先发送消息包给P2(其实是P2的NAT),P2也同样这样做,在两个结点都收到对方的消息包之后,就可以进行通信了。这个过程也叫做打洞。
之所以需要有打洞这个过程,是因为,NAT会丢弃自己不认识的地址包,让NAT认识它的方法,就是发出一个到这个地址的数据包。比如让A认识B,那就让A发一个数据包给B,不然,B发给A的数据包就会被丢弃。所以打洞的过程不是为了收到对方的数据包,而是为了发送数据包给对方,从而认识对方。这样,之后的通信就可以正常进行了。
刚才之所以说只有锥型NAT才可以进行P2P,原因在第三步可以看出来。结点进行打洞的地址,是通过服务器拿到的,而这个地址在对称型NAT的情况下,并不是一定的,可能会随时发生变化。也就是说,P1与服务器通信使用的NAT地址和P2与P1通信使用的NAT地址是不同的(一般情况都是端口不同)。甚至P1与服务器通信使用的NAT地址都在不断的发生变化。这样让我们没办法拿到隐藏在NAT后边内网设备的NAT入口,也就没办法进行P2P通信了。
P2P也用到了一个服务器,跟微信一样。但是不同的是,P2P中的服务器只作为结点地址的中转站,而微信的服务器是数据的聚宝盆。P2P让我们的数据仅通过P2P连接发送,而不经过任何第三方的服务器。


IP属地:四川1楼2024-11-19 12:44回复
    专业


    IP属地:河南来自iPhone客户端2楼2024-11-19 17:06
    收起回复
      有点专业了群主


      IP属地:四川来自Android客户端3楼2024-11-22 17:55
      回复
        是,联个机太难了,两人还行,超过三个光进游戏就得2-3小时,玩一个小时


        IP属地:北京来自Android客户端4楼2024-12-05 12:35
        回复