我不确定我是否来对地方,但我认为这里有人可以提供一个很好的答案。我想知道电流如何快速流动。例如,如今的视频游戏,您可以向世界各地的人射击,他们几乎立即死亡。电力如何做到这一点?我试图用谷歌搜索这个问题,但结果不佳,这就是为什么我在这里。
我不确定我是否来对地方,但我认为这里有人可以提供一个很好的答案。我想知道电流如何快速流动。例如,如今的视频游戏,您可以向世界各地的人射击,他们几乎立即死亡。电力如何做到这一点?我试图用谷歌搜索这个问题,但结果不佳,这就是为什么我在这里。
Answers:
这不是一个人可以在单个帖子中回答的问题。但是,我希望这个答案能提供足够的信息和链接,对您有所帮助。
了解信号如何通过Internet传输非常重要。但是请注意,由于噪声和大量用户,需要对同一信号进行编码,解码,重发等,因此处理所需的时间比实际的电信号传输所需的时间高出多个数量级。还要记住,在一毫秒内,一台计算机的时间非常多;一的GeForce的Quadro K6000显卡可以执行那么多的时间5.000.000.000+浮点运算(GFLOPS 5196次1毫秒)。
导电电缆:
电子本身不会移动得那么快,因为它们会在导电电缆内部反弹。但是,电并不是基于电子相互碰撞而传播,而是电子通过电磁相互作用相互排斥:
假设您有3个电子成一直线(假设是一维空间)。首先移动一点。第一个到第二个的距离变小了。它们上的静电力会变大一点。根据库仑定律,它是: 其中:是力的大小,是库仑常数,和是两个粒子中每个粒子的电荷,最后是它们之间的距离。 ‖˚F‖ķëq1q2- [R2
当第一个粒子移向第二个粒子时,静电力几乎立即增加。这导致第二个粒子向第三个粒子移动一点。
“几乎立即”实际上是指“以光速 ”()。
导线内的电子数量极高,物理原理稍微复杂一些,但要点是信号“几乎立即”穿过导体,但比慢。
光纤:
光纤电缆通过光子而不是电子传输信号。但是,即使在这种情况下,光子也不会直线传播。但是,与对信号进行编码和解码以及数据包重传的处理时间相比,光子穿过线路传播所需的时间仍然非常短。
无线:
最后,通信卫星以及多种类型的无线链路被用来通过大量传输协议,调制和频率以无线方式传输信号。在这种情况下,使用电磁辐射传输信号。这是一个非常复杂的主题,我不可能涵盖全部。
将信息编码为电信号的智能方法:
电压脉冲到达电线的另一端是不够的。那里的电压可以传达一些信息。通过基于要传输的信息(承载,因此称为载波)修改载波信号来对信息进行编码的行为称为调制。
共享相同渠道的明智方法:
所有这些通信通道都需要连接,并且信息需要以可靠的方式在庞大的网络中传播。最初,要使两个节点相互通信,它们将保留多条电缆,这些电缆形成从节点A到节点B的路径。其他节点将无法使用该相同的路径。这称为电路切换。使如此庞大的网络(例如Internet)成为可能的突破是众多节点共享一个特定通信通道的能力。通过数据包交换启用了此共享。不是仅为两个节点保留电路,而是每个节点仅检查总线是否空闲,然后传输包含数据和目标信息(以及其他内容)的数据包,然后释放通道。数据包需要找到其目的地,这称为数据包路由,这是另一个巨大的课题。与电磁波传播的速度相比,路由和对调制的需求是数据包“花很长时间”才能到达目的地的主要原因。对于所有这些用户来说,要在同一网络上共存,路由也是必需的。
互联网:
所有这些东西以及许多其他技术一起被用于形成Internet。
滞后补偿:
在许多应用程序中,包括竞争性视频游戏,几毫秒的延迟是不可接受的,尤其是在服务器需要注册“命中”时。那就是滞后补偿的地方。使用的方法之一涉及服务器保留每个实体位置和动画状态的简短历史记录。然后根据每个实体的滞后,速度和动画状态以及世界几何图形,进行大量的测试和物理模拟,以查看玩家“发射”武器时是否会发生“碰撞”。
也许将其作为注释会更好,但是它太长了。我想解决一个事实,即您的陈述表明您几乎可以瞬间感知到要传输的数据,但是您提出的所有观察结果都无法真正证明其传输速度很快。
您提到电子游戏。游戏开发人员非常清楚玩家之间存在很大的延迟这一事实,因此他们提出了一些技巧。其中之一就是让客户猜测尚未从服务器/其他播放器接收到的某些信息。例如,您的客户从50毫秒前就知道对手的位置和速度。因此它可以推断并说:“如果他的动作是这样的话,那么他可能现在就在这里”,您会看到这个预测的位置。在大多数情况下,它是非常准确的(可能是由于程序员付出的努力),并且实际上感觉没有延迟。在其他时候,这是不准确的,对您来说,玩家似乎被射击了,而实际上他所处的位置与您的控制台所预测的不同。
值得一提的是,大多数显示器的运行频率约为60Hz,有些显示器则执行双缓冲功能。我不会在这里进行详细介绍,但这会在处理器渲染帧与实际显示帧之间引入多达33ms的延迟。大多数人没有注意到这一点,因此我认为有理由建议,即使网络延迟等于33ms,即使没有任何编程技巧,您也可能认为它是即时的。
总之,互联网不一定是“快速”的。但是聪明的人会做一些聪明的事情,以使其看起来比实际速度更快。如果您想了解更多信息,可以考虑在gamedev.stackexchange.com上询问相关人员。
我感到惊讶的是,人们仅提到调制(调制高能量“载波”的过程,该函数可以很长的距离轻易地辐射出信号),它是增加通信链路的附加因素,而不是关键因素。还记得互联网初期的那些54kbps调制解调器吗?当ADSL调制解调器启动时,数据速率立即增加了20倍以上,这主要是由于所使用的调制:对于QAM,比特率变得高于符号(时钟)速率(通过使用各种幅度和相位),就像装配了更多东西一样。找出一个更聪明的方式来安排它们,并以相同的速度以相同的速度行驶。而且我们还没有完成,许多其他已经存在或正在接受调查...
a)QAM调制的状态图,其中之一是RF调制 b)符号率如何与数据速率不同,例如QAM的组成部分之一(多级幅度调制)(另一个是相位,非常相位)与FM有关)。
尤其是对于您的问题,除了试图预测玩家的行为之外,游戏通常是由您的机器渲染的;仅传输少量的重要信息,例如坐标,速度等。单个网页可能具有比该方法更多的信息,但是真正的问题是延迟(尤其是对于铁杆游戏玩家),并且它会随着信号集线器数量的增加而累积。都是由于传播延迟而引起的(距离也是一个问题,因为最大的可靠数据速率会随损耗而下降-随距离而增加)。
互联网是由相互连接的路由器组成的网络,它们之间通常使用路由协议(通常尝试采用最短/最快的路由)在它们之间转发互联网流量(数据包)。
如今,大多数路由器都是通过光纤连接的-尤其是当路由器之间的距离超过几十个或几米左右或路由器之间的速度很高(1、10甚至40 Gb / s)时包括几乎所有属于互联网的路由器。值得注意的例外可能是您的家用路由器/调制解调器等。
不管哪种方式,信号通过光纤或电口的传播速度都接近光速。因此,从理论上讲,您可以在大约70毫秒内从澳大利亚墨尔本到亚速尔群岛的Angra de Heroismo(几乎是对立)获得一个数据包。现在,让我们看一个真实的例子。有一个名为“ traceroute”的实用程序,可在路由器之间跟踪数据包,并方便地输出每个“跳”之间的近似延迟。(请注意,im的时间是“往返”-因此,单向时间是理论上的一半):
7 127 ms 143 ms 139 ms i-0-1-0-0.sydp01.bi.telstraglobal.net [202.84.220.218]
8 111 ms 113 ms 64 ms i-0-5-0-2.sydp-core02.bi.telstraglobal.net [202.84.220.217]
9 167 ms 201 ms 210 ms i-0-3-0-6.paix-core01.bx.telstraglobal.net [202.84.140.194]
10 156 ms 158 ms 188 ms i-0-0-0-5.paix02.bi.telstraglobal.net [202.84.251.18]
11 204 ms 206 ms 175 ms 80.157.128.205
12 537 ms 512 ms 593 ms mad-sa3-i.MAD.ES.NET.DTAG.DE [217.5.95.173]
13 554 ms 552 ms 579 ms 80.157.129.10
14 544 ms 569 ms 545 ms 10.255.26.254
15 568 ms 568 ms 538 ms catvaweb.cabotva.net [81.20.240.40]
(我省去了通过公司内部网的跃点)。
您会发现延迟时间比仅从“光速”获得的延迟要长得多。这是路由器转发数据包所引起的延迟。有时速度很快,有时速度很慢,尤其是在负载下。
如您所见,大多数延迟是由于路由器转发引起的,而不是传播延迟。如果您使用traceroute工具(在网上可以找到很多基于Web的工具)玩得有点儿,您会发现路线并不总是相同的,即使在哪里,延迟也到处都是。
在线游戏公司将其服务器托管在与互联网连接良好的地方,并且可以与服务提供商进行交易,以使其数据包具有比其他数据包更高的优先级。此外,某些互联网服务提供商可能会这样做,并优先考虑游戏玩家(需要付费!)。这是可能的,因为如您所见,主要延迟是在路由器中,而不是在光纤中。对于流视频而言,这无关紧要,对于游戏而言,这至关重要。这样,服务提供商可以根据其内容对互联网数据包进行优先级排序-为视频提供更多的带宽,但是会有更大的延迟,而可以在路由器的队列中为游戏(不需要太多的带宽)分配优先级,以将延迟最小化。
他们几乎立即死亡
要使数据包通过Internet基础结构传播到地球的另一侧,可能要花费数十毫秒左右的时间,但实际上,与瞬时相比,这是“永恒” 。
换句话说,在世界各地“杀死”您的“敌人”所花费的时间比在大型强子对撞机上腐烂所需的时间多大约100,000,000,000,000,000,000。
几乎是瞬间?与一些基本粒子相互作用的时间尺度相比,它比宇宙中计算得出的年龄要长得多,而地球上的这一年龄要长于一年。
我以为您可能想在某个时候考虑一下。
这主要与光速有关。
阿姆斯特丹纽约理论极限= 40毫秒阿姆斯特丹纽约理论极限
= 82毫秒
阿姆斯特丹阿德莱德的理论极限
= 130ms 阿姆斯特丹阿德莱德的理论极限= 320ms
从巴黎到纽约,一只小鸟飞翔,灯光大约需要20毫秒。因此理想的Ping时间为40毫秒。在光纤玻璃中,光慢了31%。此外,光纤中的光会像这样反弹,这会使路径更长。加上路由设备的时间。从巴黎到纽约的最快ping操作目前约为82毫秒。
阿姆斯特丹到阿德莱德的时间为320ms,在100年后,也许将接近物理定律允许的理论极限,即130ms,持续1550 km,它已经接近理论极限。
这是互联网速度的列表:https : //wondernetwork.com/pings
此外,带宽的概念。
您计算机,屏幕,外围设备,声音,键盘中设备的等待时间通常约为10毫秒。因此,对于任何数据传输,DirectX对PC发生的事件的最快响应时间始终小于20ms。
在线视频游戏具有如此快的响应时间的最终原因是因为一切都在计算机上完成。当您射击某人时,您的计算机会决定杀死您的对手,并立即向您显示相应的图片。它还会将此事件通知您的对手的计算机,但是您不会发现此事件是延迟发生的。通常,为了防止作弊,计算还会在中央服务器上第二次执行。如果服务器确定您实际上没有杀死对手,您将在半秒钟左右后看到他们复活。
远程位置之间的网络传递时间可能高达300毫秒以上,如果每次玩家的动作都会引起此类延迟,则快节奏的游戏将无法播放。