互联网如何能够如此快速地传输数据?


20

我不确定我是否来对地方,但我认为这里有人可以提供一个很好的答案。我想知道电流如何快速流动。例如,如今的视频游戏,您可以向世界各地的人射击,他们几乎立即死亡。电力如何做到这一点?我试图用谷歌搜索这个问题,但结果不佳,这就是为什么我在这里。


9
地球的周长约为40,000公里。电磁波以光速传播,光速为 m / s。这意味着绕地球旋转大约需要13毫秒的电子信号。您可以添加1.5左右的因数,因为光纤中的信号传输比空气中的信号慢,而又增加了一个因信号不是沿直线路由而增加。但最后,您可以看到主要的限制不是信号传输的速度如何,而是必须进行多少处理才能将这些信号放到电线上并再次断开。3109
Photon 2014年

12
您的计算偏离了十分之一,整圈约为130毫秒。
Turbo J

6
这不是您问题的直接答案,因为它更多地是关于显示器的,而是约翰·卡马克(John Carmack)放弃了关于为什么跨大西洋ping比将像素发送到屏幕更快的知识。superuser.com/q/419070/2940
Dhaust 2014年

1
另外,请注意,繁重的网络程序(尤其是视频游戏)实现了减少延迟感知的功能。一个简单的游戏示例是根据实体的移动位置推断其位置。
mikołak

1
@Bart,你是对的,那一天我一定在喝咖啡之前一直在评论。但是Turbo J已经在3年前指出了这一点。
Photon

Answers:


22

这不是一个人可以在单个帖子中回答的问题。但是,我希望这个答案能提供足够的信息和链接,对您有所帮助。

了解信号如何通过Internet传输非常重要。但是请注意,由于噪声和大量用户,需要对同一信号进行编码,解码,重发等,因此处理所需的时间比实际的电信号传输所需的时间高出多个数量级。还要记住,在一毫秒内,一台计算机的时间非常多;一的GeForce的Quadro K6000显卡可以执行那么多的时间5.000.000.000+浮点运算(GFLOPS 5196次1毫秒)。

导电电缆:

电子本身不会移动得那么快,因为它们会在导电电缆内部反弹。但是,电并不是基于电子相互碰撞而传播,而是电子通过电磁相互作用相互排斥:

假设您有3个电子成一直线(假设是一维空间)。首先移动一点。第一个到第二个的距离变小了。它们上的静电力会变大一点。根据库仑定律,它是: 其中:是力的大小,是库仑常数,和是两个粒子中每个粒子的电荷,最后是它们之间的距离。˚Fķëq1q2- [R2

F=ķËq1个q2[R2
FķËq1个q2[R2

当第一个粒子移向第二个粒子时,静电力几乎立即增加。这导致第二个粒子向第三个粒子移动一点。

“几乎立即”实际上是指“以光速 ”()。C=299792458/s

导线内的电子数量极高,物理原理稍微复杂一些,但要点是信号“几乎立即”穿过导体,但比慢。C

光纤:

光纤电缆通过光子而不是电子传输信号。但是,即使在这种情况下,光子也不会直线传播。但是,与对信号进行编码和解码以及数据包重传的处理时间相比,光子穿过线路传播所需的时间仍然非常短。

无线:

最后,通信卫星以及多种类型的无线链路被用来通过大量传输协议,调制和频率以无线方式传输信号。在这种情况下,使用电磁辐射传输信号。这是一个非常复杂的主题,我不可能涵盖全部。

将信息编码为电信号的智能方法:

电压脉冲到达电线的另一端是不够的。那里的电压可以传达一些信息。通过基于要传输的信息(承载,因此称为载波)修改载波信号来对信息进行编码的行为称为调制

共享相同渠道的明智方法:

所有这些通信通道都需要连接,并且信息需要以可靠的方式在庞大的网络中传播。最初,要使两个节点相互通信,它们将保留多条电缆,这些电缆形成从节点A到节点B的路径。其他节点将无法使用该相同的路径。这称为电路切换。使如此庞大的网络(例如Internet)成为可能的突破是众多节点共享一个特定通信通道的能力。通过数据包交换启用了此共享。不是仅为两个节点保留电路,而是每个节点仅检查总线是否空闲,然后传输包含数据和目标信息(以及其他内容)的数据包,然后释放通道。数据包需要找到其目的地,这称为数据包路由,这是另一个巨大的课题。与电磁波传播的速度相比,路由和对调制的需求是数据包“花很长时间”才能到达目的地的主要原因。对于所有这些用户来说,要在同一网络上共存,路由也是必需的。

互联网:

所有这些东西以及许多其他技术一起被用于形成Internet

滞后补偿:

在许多应用程序中,包括竞争性视频游戏,几毫秒的延迟是不可接受的,尤其是在服务器需要注册“命中”时。那就是滞后补偿的地方。使用的方法之一涉及服务器保留每个实体位置和动画状态的简短历史记录。然后根据每个实体的滞后,速度和动画状态以及世界几何图形,进行大量的测试和物理模拟,以查看玩家“发射”武器时是否会发生“碰撞”。


4
所以我想流过导电电缆的电流可以和牛顿的通讯座相提并论吗?因为能量通过所有球非常快地传递到另一侧。哦,非常感谢您的详细说明。
卡琼斯(Cam Jones)

2
@Skateguy,这不是在这个意义上,电磁坏的比喻能量沿着导体传播快于单独的电子做。
Alfred Centauri 2014年

4
如果您生活在大城市中,我所看到的最好的类比是,电力在交通拥堵中就像汽车之间的缝隙一样行驶,而电子在交通拥堵中就像汽车之间的空隙一样行驶。下次当您陷入交通拥堵时,请注意间隙如何沿着波纹沿着汽车行驶的相反方向顺着线顺着行进,比汽车行驶的速度快得多。
slebetman

好比喻。不过一件小事。c = 3e8m / s不是c = 3e8km / s
magu_14年

1
我注册了这个答案。干得好,喜欢阅读。
Gintas_ 2014年

32

也许将其作为注释会更好,但是它太长了。我想解决一个事实,即您的陈述表明您几乎可以瞬间感知到要传输的数据,但是您提出的所有观察结果都无法真正证明其传输速度很快。

您提到电子游戏。游戏开发人员非常清楚玩家之间存在很大的延迟这一事实,因此他们提出了一些技巧。其中之一就是让客户猜测尚未从服务器/其他播放器接收到的某些信息。例如,您的客户从50毫秒前就知道对手的位置和速度。因此它可以推断并说:“如果他的动作是这样的话,那么他可能现在就在这里”,您会看到这个预测的位置。在大多数情况下,它是非常准确的(可能是由于程序员付出的努力),并且实际上感觉没有延迟。在其他时候,这是不准确的,对您来说,玩家似乎被射击了,而实际上他所处的位置与您的控制台所预测的不同。

值得一提的是,大多数显示器的运行频率约为60Hz,有些显示器则执行双缓冲功能。我不会在这里进行详细介绍,但这会在处理器渲染帧与实际显示帧之间引入多达33ms的延迟。大多数人没有注意到这一点,因此我认为有理由建议,即使网络延迟等于33ms,即使没有任何编程技巧,您也可能认为它是即时的。

总之,互联网不一定是“快速”的。但是聪明的人会做一些聪明的事情,以使其看起来比实际速度更快。如果您想了解更多信息,可以考虑在gamedev.stackexchange.com上询问相关人员。


2
现在,这肯定可以帮助我以不同的方式思考它,谢谢,我想我正在一个问题中问两个问题。
卡琼斯(Cam Jones)

1
这才是真正的重点。这不是信息“立即”传播,而是只要该方案在所有连接的计算机上一致地播放,您就会将它们视为瞬时的。RTS游戏就是一个很好的例子-尽管用户输入根本不能快于连接的延迟(实际上,它甚至比连接的等待时间还慢),但玩家不会注意到,因为输入是在相同的相对时间进行的对于他们所有人。因此,如果输入导致我的计算机上的某个单元死亡,则输入也将在我朋友的计算机上以相同的方式显示。
a安

1
+1,因为有些人从事多个多人游戏开发项目,因此处理延迟问题(以便与您的对手的连接看起来是瞬时的)可能至少占连接代码工作量的70%。节奏游戏中也会发生类似的情况,以与您的控制器对抗延迟。简而言之:游戏开发人员会欺骗您,以带给您(通常)更好的体验。
Brian S

如果我可以选择2个答案,我会选择,但是看到这个答案没有提及其中的电气部分,我必须选择另一个。
凸轮琼斯

1
有些游戏还故意向您显示大约200毫秒前其他玩家的位置。您的客户可能只在50毫秒之前就知道了他们的位置,但是如果中断时间少于150毫秒,那么他们似乎仍会平稳移动。(尽管我不知道确切的延迟,但Source Engine游戏可以做到这一点)
user253751

5

我感到惊讶的是,人们仅提到调制(调制高能量“载波”的过程,该函数可以很长的距离轻易地辐射出信号),它是增加通信链路的附加因素,而不是关键因素。还记得互联网初期的那些54kbps调制解调器吗?当ADSL调制解调器启动时,数据速率立即增加了20倍以上,这主要是由于所使用的调制:对于QAM,比特率变得高于符号(时钟)速率(通过使用各种幅度和相位),就像装配了更多东西一样。找出一个更聪明的方式来安排它们,并以相同的速度以相同的速度行驶。而且我们还没有完成,许多其他已经存在或正在接受调查...

在此处输入图片说明 在此处输入图片说明

a)QAM调制的状态图,其中之一是RF调制 b)符号率如何与数据速率不同,例如QAM的组成部分之一(多级幅度调制)(另一个是相位,非常相位)与FM有关)。

尤其是对于您的问题,除了试图预测玩家的行为之外,游戏通常是由您的机器渲染的;仅传输少量的重要信息,例如坐标,速度等。单个网页可能具有比该方法更多的信息,但是真正的问题是延迟(尤其是对于铁杆游戏玩家),并且它会随着信号集线器数量的增加而累积。都是由于传播延迟而引起的(距离也是一个问题,因为最大的可靠数据速率会随损耗而下降-随距离而增加)。


老实说,我没有理会它,因为我的答案只关注速度(如延迟),而不关注带宽。我知道,如今,尽管在技术上,它们是数据传输的两个维度,但两者却具有互换性(即速度和带宽)。由于延迟并不是真正的事情,作为最终用户,您无能为力,而作为服务提供商只能做到非常有限的扩展,因此,除了在线游戏玩家外,所有其他人都将忽略它,他们需要有关游戏玩法和游戏体验的“实时”反馈。需要毫秒级响应时间进行衍生品交易的金融机构。
RJR

是的,这就是我最后一段的意思,但是问题的作者在提供示例之前确实先问了一个一般性问题,我们不要过多地关注示例。
米斯特先生2014年

3

互联网是由相互连接的路由器组成的网络,它们之间通常使用路由协议(通常尝试采用最短/最快的路由)在它们之间转发互联网流量(数据包)。
如今,大多数路由器都是通过光纤连接的-尤其是当路由器之间的距离超过几十个或几米左右或路由器之间的速度很高(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的工具)玩得有点儿,您会发现路线并不总是相同的,即使在哪里,延迟也到处都是。
在线游戏公司将其服务器托管在与互联网连接良好的地方,并且可以与服务提供商进行交易,以使其数据包具有比其他数据包更高的优先级。此外,某些互联网服务提供商可能会这样做,并优先考虑游戏玩家(需要付费!)。这是可能的,因为如您所见,主要延迟是在路由器中,而不是在光纤中。对于流视频而言,这无关紧要,对于游戏而言,这至关重要。这样,服务提供商可以根据其内容对互联网数据包进行优先级排序-为视频提供更多的带宽,但是会有更大的延迟,而可以在路由器的队列中为游戏(不需要太多的带宽)分配优先级,以将延迟最小化。


Traceroute产生的RTT(往返时间)约为延迟的2倍。
generalnetworkerror 2014年

@generalnetworkerror好点,我已将其添加到答案中。
RJR 2014年

2

他们几乎立即死亡

C186000

要使数据包通过Internet基础结构传播到地球的另一侧,可能要花费数十毫秒左右的时间,但实际上,与瞬时相比,这是“永恒” 。

10-23s

换句话说,在世界各地“杀死”您的“敌人”所花费的时间比在大型强子对撞机上腐烂所需的时间多大约100,000,000,000,000,000,000。

几乎是瞬间?与一些基本粒子相互作用的时间尺度相比,它比宇宙中计算得出的年龄长得多,而地球上的这一年龄长于一年。

我以为您可能想在某个时候考虑一​​下。


1
根据我的眼睛和杀死饲料。我从来没有立即说过,我几乎是立即说了,所以是的,我已经有点意识到你在说什么。难道这不是相对的并且依赖于眼前的话题吗?我非常感谢您的回答。抱歉,我没有受过这一学科的教育,但是您介意解释C和时髦的等号代表什么。我在学校里学习,但是很久以来我就忘记了我查找他们只是想知道问自己不会有问题。
凸轮琼斯

11
我不理解关于语义的讨论如何解决这个问题。您刚刚确认,是的,“通过互联网”传输的数据包仅需10毫秒。OP问那是怎么回事。我认为这对数据包如何从电转换为光以及反之亦然,以及路由器如何高速转发数据包有一些解释。
RJR

8
关于他的“几乎立即”的定义,您以暗淡的精英主义语气给出了答案。那家伙来这里问有关电力的一个简单,清晰和诚实的问题。没有理由贬低他的理解,因为他认为几毫秒可以被描述为“几乎瞬间”。我总是惊讶于如何在示波器上剖析出一些痕迹,然后意识到我所观察到的交互是在非常短的时间内发生的。我很高兴其他人也能对此感到惊讶。
kjgregory 2014年

2
实际上,在这里解释谦卑很容易-无论是否存在,是否有意。我必须恰到好处,以便眯着眼睛没有看到这个帖子是关于OP的选词没用挑剔。甚至尝试了几次。
cHao 2014年

2
@Alfred:主要是让您知道帖子的措词使您容易误读您的意图。使用该信息,您将得到什么。但是当人们误解时,不要假装惊讶。
cHao 2014年

1

电基本上以光速行进。在互联网中,唯一会减慢速度的是网络硬件,该硬件在您的住所和对手的住所之间路由Internet通信,这些硬件包括路由器,交换机和可转换的东西。将电转化为光(纤维)并返回。这些都是基于速度非常快的技术(晶体管,硅芯片等),因此影响最小。因此,您所得到的是以光速转换的信息会稍有延迟。太阳光需要8分钟才能到达9300万英里才能到达地球,因此,以这种角度来看,来自游戏机的信息“几乎立即”就变得有意义


1

这主要与光速有关。

阿姆斯特丹纽约理论极限= 40毫秒阿姆斯特丹纽约理论极限
= 82毫秒

阿姆斯特丹阿德莱德的理论极限
= 130ms 阿姆斯特丹阿德莱德的理论极限= 320ms

从巴黎到纽约,一只小鸟飞翔,灯光大约需要20毫秒。因此理想的Ping时间为40毫秒。在光纤玻璃中,光慢了31%。此外,光纤中的光会像这样反弹,这会使路径更长。加上路由设备的时间。从巴黎到纽约的最快ping操作目前约为82毫秒。

阿姆斯特丹到阿德莱德的时间为320ms,在100年后,也许将接近物理定律允许的理论极限,即130ms,持续1550 km,它已经接近理论极限。

这是互联网速度的列表:https : //wondernetwork.com/pings

此外,带宽的概念。

您计算机,屏幕,外围设备,声音,键盘中设备的等待时间通常约为10毫秒。因此,对于任何数据传输,DirectX对PC发生的事件的最快响应时间始终小于20ms。


1

在线视频游戏具有如此快的响应时间的最终原因是因为一切都在计算机上完成。当您射击某人时,您的计算机会决定杀死您的对手,并立即向您显示相应的图片。它还会将此事件通知您的对手的计算机,但是您不会发现此事件是延迟发生的。通常,为了防止作弊,计算还会在中央服务器上第二次执行。如果服务器确定您实际上没有杀死对手,您将在半秒钟左右后看到他们复活。

远程位置之间的网络传递时间可能高达300毫秒以上,如果每次玩家的动作都会引起此类延迟,则快节奏的游戏将无法播放。


0

当我阅读这些陈述时,有两个(相关的)问题,并且具有相同的答案:1)互联网能够“快速”传输数据,因为它使用了各种形式的电磁(EM)能量传输,并且EM传播非常快(大约186,000英里/秒),2)电能够“快速流动”,因为它是电磁能,并且EM传播非常快。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.