前言
ping是指数据从你的电脑传到游戏服务器再返回到你的电脑所用的时间,这段时间也被称为延迟,通常用毫秒(ms)来衡量。也就是说,延迟越低越好,即ping值越小越好。本篇文章将先介绍一些术语的含义,然后再围绕对ping值的一些疑问展开解答。本文中会涉及很多计算机网络的概念,读者不要害怕,我会尽可能地用通俗易懂的语言来进行一一解释,实在无法理解可以暂时跳过,不用刻意为难自己。
带宽(Bandwidth)
带宽在计算机网络中的定义是:用来表示通信线路所能传送数据的能力,即在单位时间内从网络中的某一点到另一点所能通过的最高数据率。(这里如果用香农公式来进行解释可能会更好,不过考虑到读者的接受能力,这里就不过度展开了)说人话就是把网络线路想象成水管,把数据包想象成水,那么水管的横截面积在一定程度上(并非完全)决定了单位时间内能通过水量的大小。
延时(delay或latency)
延迟也就相当于水管中水的流速,在另一方面决定了单位时间内能通过水量的大小。延迟受多种因素影响,包括:机器配置、网络稳定性、网络速度等。但是可以简单地抽象为四个方面的延迟:发送延时、传播延时、排队延时、处理延时
发送延时:顾名思义就是主机或路由器发送分组所消耗的时间,也就是从发送分组的第一个比特开始,到该分组的最后一个比特发送完毕为止所耗费的时间。
传播延时:即是电磁波在链路(传输介质)上传播一定的距离所耗费的时间。
排队延时:当分组进入路由器后,会在路由器的输入队列中排队缓存并等待处理。在路由器确定分组的转发接口后,分组会在输出队列中排队缓存并等待转发。分组在路由器的输入队列和输出队列中排队缓存所耗费的时间就是排队延时。
处理延时:路由器对分组进行一系列处理工作所耗费的时间
ping命令
原理
Ping命令通过发送ICMP(Internet Control Message Protocol,互联网控制消息协议)回显请求消息到目标主机,并等待相应的回复消息来判断主机是否可达。说人话就是得到一个从一台主机到另一台主机再到这个台主机的这个过程的时间,根据返回的结果可以初步判断通信链路的质量,和主机的可访问
性。
结果
以下是在命令行中使用ping命令的结果:
Ping请求的次数:表示发送了多少次Ping请求。
成功接收到的次数:表示成功接收到了多少次Ping回复。
丢失的次数:表示丢失了多少次Ping回复(即未收到回复的次数),后面的百分数即称为丢包率。
往返时间:表示每次Ping请求从发送到接收到回复所需的时间,通常以毫秒(ms)为单位。通过往返时间可以判断网络连接的延迟情况。如果往返时间较长,可能表示网络连接质量较差或存在网络拥塞等问题。
TTL值:表示数据包的生存时间(Time To Live)。通过TTL值可以推算数据包通过了多少个路由器。不同的操作系统和路由器可能会设置不同的TTL值初始值和递减规则。因此,TTL值也可以作为判断目标主机操作系统或路由器类型的一个参考依据。
也就是说,游戏中的ping值即可简单理解为网络延时。
延迟补偿(Lag Compensation)
这是一种在网络游戏中用来减轻高延迟对玩家体验影响的技术。其目的是尽可能地同步所有玩家的游戏体验,使他们感受到实时的交互,即使在网络状况不佳的情况下,也能保证游戏的公平性和流畅性。
原理
延迟补偿机制的工作原理主要基于服务器端对游戏状态的动态调整。具体来说,当玩家的动作(如射 击、移动等)通过网络传输到服务器时,服务器会考虑该玩家的网络延迟,将服务器状态回滚到该玩家动作执行前的时刻,再判断该动作是否有效(如子弹是否命中目标)。这样,即使玩家的客户端因为网络延迟而显示的是稍旧的游戏状态,服务器也能确保玩家看到的结果与服务器上的实际结果一致。
实现
服务器端回滚:服务器将游戏状态回滚到玩家动作执行前的时刻,再判断该动作的有效性。这种方式可以确保玩家在客户端看到的结果与服务器上的实际结果一致。
客户端预测:虽然这不是延迟补偿的直接实现方式,但它是与延迟补偿相辅相成的一种技术。客户端预测通过预先预测玩家动作影响下的游戏状态,从而减少因网络延迟带来的不一致性。然而,这种方式需要谨慎实现,以避免引入作弊的可能性。
插值运算:在客户端和服务器之间的数据传输过程中,插值运算可以用于平滑过渡客户端显示的游戏状态,以减少因网络延迟带来的视觉抖动。
游戏加速器是如何加速的?
首先我们要明确的概念就是,游戏数据包在传输过程中会经过很多的节点来进行转发。如果你感兴趣可以试试在你电脑上的cmd命令行窗口输入”tracert www.baidu.com“来查看你访问百度官网会经历哪些节点,如下图所示:
而游戏加速器的作用就是优化线路,减少中间需要经过的节点。这里可以想象成使用导航软件,有很多条线路,但是你选择了最短最快的线路。
有意思的是,有些加速器厂商会和各大网络运营商进行合作,进行专线传输。但是不幸的是,如果有过多的用户的数据包通过捷径传输,那么这条所谓的“捷径”上的数据包也会堵车,反而不如不用加速器。
不同延时的玩家如何一起游戏?
游戏客户端很聪明,会预先加载一些可能的画面,并绘制出来。在与服务器通信后,对绘制画面进行校正,这也就是为什么你ping值很高时会有“瞬移”的现象。顺带说一句,这种机制就是FPS外挂目前无法完整识别出来的原因。数据在客户端与服务器中的一来一回,导致了在游戏中,我们始终是在与服务器里 “投射”来的十几毫秒前的敌人战斗。但是由于中间消耗时间太短,大脑根本无法反应过来。
详细原理见上面提到的延迟补偿机制
结语
通过这篇文章相信读者对于ping有了一个深入的了解认识。读者不用过度纠结其中的过程,在脑海里有一个大致的印象即可。
更多游戏资讯请关注:电玩帮游戏资讯专区
电玩帮图文攻略 www.vgover.com