没想到的是,在英雄联盟MSI话题下的热搜中讨论到了计算机术语ping无论是在微博还是在知乎,很多平相关话题的热度都已经超过了几千万甚至上亿
从话题下的讨论来看,很多网友甚至对平研究有一种热情:
说到这里,经常玩网游的朋友一定对ping很熟悉谁没感受过几次被ping值支配的恐惧
高平大侠无所畏惧。
ping值越高,玩游戏时的网络延迟就越高,也就是说低延迟的人可以比高延迟的人做出更快的各种动作。
注意这里的ping值并不代表你的网速。
这么说吧,如果你的包裹是快递,网速越高,货车吨位越大,ping值代表货车能跑多快,道路有多拥堵。
ping值越低,你的网络就越流畅,但与一次能承载多少数据无关。
但是你知道乒最初是怎么发明的吗事实上,这种现在在玩游戏,开会,测量延迟中无处不在的计算机技术,其实是当年顺手写出来的故事还得从上世纪80年代说起
1983年的数千行代码
这个叫平的工具最初是由一个叫米克尔·约翰·穆斯的哥哥制作的。
穆斯生于1958年约翰·霍普金斯大学毕业后,他在美国陆军一个名为阿伯丁试验场的武器测试中心做研究,主要与计算机网络和几何建模相关
比如80年代光线追踪开始流行的时候,Muuse哥就已经在研究相应的技术了在此期间,他取得了许多相关的成就,但他发明了ping,这已成为最著名的网络工具之一
ping的应用广泛到什么程度从最初的Unix系统到今天的Windows,macOS,Linux,ping已经广泛应用于各种操作系统,虽然经历了几个版本
现在,我们可以通过搜索GitHub找到很多ping的代码,但这些都不是原始版本。
穆斯在自己的主页上提供了ping的原始源代码。但是我们点进去的时候发现网页跳了好几次,最后好像下载不了了:
其实我们现在还能看到穆斯的主页,这本身就不一般——2000年,穆斯因车祸去世,刚过完42岁生日:
幸运的是,当时的网页保存在Web Archive上,我们能够看到ping的第一版源代码。
那么,ping是怎么诞生的,又是怎么普及的呢。
ping是如何流行起来的。
当我第一次写这个代码的时候,Muuss根本不知道后来会这么火毕竟,最初的ping只是一个测试工具,用于排除实验室中的网络异常
事情开始于1983年12月的一天,当时穆斯正在阿伯丁试验场的弹道研究实验室做实验,突然发现实验室的IP网络出现了异常情况。
这时,他回想起几个月前,他曾参加过DARPA在挪威举办的一个研讨会,会上一位名叫戴夫·米尔斯的医生提到了用互联网控制消息协议测试延迟的方法。
穆斯认为,这个工具的原理就像是发射声波,接收它的回声来计算往返时间。
穆斯刚刚在大学学到了很多关于声纳和雷达系统建模的知识他很快就写了一个程序,命名为ping,意思是声音脉冲,也就是声纳中的信号然后,穆斯只用了一个晚上就写出了ping程序
虽然他的实验室在编写时已经解决了网络问题,但穆斯还是把它作为公共领域软件发布了。
很快加州大学伯克利分校的Erick Engelke发现了这个软件,重新编写并将其放入BSD4.3,这是一个由伯克利自己开发的Unix操作系统。
然后,计算机工程师Tim Crawford基于MIT开源协议编写了一个ReactOS版本的ping代码然后,ping被各种电脑写入macOS,Linux,Windows等各种操作系统,增加了更多的功能
Linux系统上的Ping.c
现在每个系统自带的ping工具已经不是原来的ping.shar程序了,功能和用法都丰富了很多那么,ping现在放在电脑上是一个什么样的工具呢
乒的基本原理
很多电脑爱好者可能会说,他们用的是小偷ping但是,你知道ping是怎么工作的吗知道了这些,我们不妨知道背后的原因:ping是网络结构应用层的一个网络管理命令,是判断两台主机或路由节点之间网络是否畅通的重要手段
简单来说:如果两台主机能ping通,就能建立连接。
小知识:公网的IP地址是唯一的就好像你在一栋楼里工作在世界上这栋楼的地址是全球唯一的,但楼内其他门牌号不一定唯一
通过此功能,我们可以ping通两台主机或路由节点之间的网络连接具体来说,ping命令用于将遵循ICMP协议的数据包发送到目标IP地址然后可以根据返回数据包的情况检查主机或路由节点之间的网络状态
EMM什么是ICMP协议它的全称是:互联网控制消息协议,即互联网控制消息协议ICMP消息封装在IP数据包中所谓控制,就是在IP主机和路由节点之间传输一个控制消息,以反映数据包是否成功到达目的地以及网络状态
在IP通信中,当IP包成功到达目的地址并返回时,会收到ping响应,但是,当IP报文由于某种原因无法到达目的地址或者从目的地址返回时,ICMP返回的报文会包含特定的原因,比如网络不可达,端口不可达等。
如何ping通。
下面是ping的基本操作ping命令在所有常见的操作系统中都很常见,这里以macOS为例:从Finder中找到终端
输入ping+IP地址这里以百度为例然后,你可以查看每一个数据包,从这台电脑向百度的网络服务器发送数据到收到服务器反馈数据的延迟时间
由于macOS发送的每个IP数据包的默认大小是64字节,因此返回的数据包大小也是64字节。
所以玩网游的时候,如果ping值过高,会导致操作延迟这种延迟的后果是相当严重的——比如在打王者排名的关键时刻,如果联网卡顿,明明你已经操作了,却因为敌人的操作反馈时间更快,只能眼睁睁看着你的英雄死去
说到这里,量子位冲号诊断自己的网络。
好在王者荣耀延迟不到70ms是正常的对于LOL,玩家可以打开设置菜单,点击显示选项卡,然后点击切换FPS显示按钮,查看自己的ping值
至于如何实现锁平技术,目前拳头游戏官方给出了技术描述:
从描述来看,拳头的意思是增加了一个人工延迟工具,用来调整线下场地比赛时的ping值由于人工延迟工具的代码操作错误,导致离线ping值过高目前已经通过调整配置修复,但是游戏中显示的ping值会因为这次配置调整出现问题
具体的人工延时工具的技术代码目前还没有公开不过也有人在GitHub上做了人工延迟工具,比如下面这个笨拙的开源模拟器,可以模拟延迟,丢包等bug
还有一点
在他的主页上,穆塞还贴出了另一个与平有关的有趣故事早在1933年,美国儿童绘本作家马乔里·弗莱克(Marjorie Flack)就出版了一本绘本:《平的故事》
在这里,萍是故事主角小鸭的名字:小鸭萍和它的伙伴兼主人生活在同一条船上,每天最后一只回家的小鸭会被打屁股一天晚上,平是最后一个玩的人为了不被打,他没有回家,于是在长江开始了奇妙的冒险,最后安全回到了主人的船上
这看似是一本普通的儿童读物,但多年后有读者发现,小鸭萍的故事和电脑里的萍数据包很像!ping包就像一只鸭子它与其他数据包一起在主机(船)上花费一些时间
然后,这些数据包通过一个通道(桥)离开主机(船),进入互联网(长江)在另一台主机(另一艘船)上短暂停留后,数据包返回到原主机(船)你今天的乒怎么样
参考链接:
声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。