互联网|屡次让腾讯上热搜的ping 发明人英年早逝:留下千行源码改变世界( 二 )
刚好Muuss在大学的时候学过不少声呐和雷达系统的建模,他很快写了一个程序,并将之命名为ping,在声呐中指代声音脉冲、也就是信号的意思 。
随后,Muuss只用了一晚上,就将ping的程序写了出来 。
虽然写出来的时候,他所在的实验室已经将网络问题解决了,但Muuss还是将它作为一个公有领域软件(public domain software,使用时无需许可证)发布了出去 。
很快加州大学伯克利分校的Erick Engelke发现了这份软件,将它改写了一版(遵循GPL开源协议),放入伯克利自己开发的Unix操作系统BSD4.3版本中 。
随后,计算机工程师Tim Crawford又基于MIT开源协议,写了一个ReactOS版本的ping代码 。
再之后,ping被各个计算机大牛写入各种操作系统如macOS、Linux和Windows中,又加入了更多的功能 。
如今我们看到的各个系统中自带的ping工具,早已经不是最初那个ping.shar程序了,其功能和用法都要丰富得多 。
那么,如今的ping放到计算机上来说,究竟是一个怎样的工具呢?
ping的基本原理
许多计算机发烧友可能会说,自己ping用得贼6 。
不过,大伙儿知道ping是如何工作的吗?
知其然,不妨也了解一下背后的所以然:
ping,是网络结构里应用层的一个网络管理命令,是判断两台主机或路由节点之间网络是否畅通的重要手段 。
简单来说:如果两台主机“ping”得通,说明它们之间可以建立连接 。
文章图片
一个小知识:公网(因特网)IP地址具有唯一性 。
这就像你在世界范围(公网)内的一栋楼(主机or路由节点等)里工作,这栋楼的地址(IP地址)相对世界来说是唯一的,不过楼里面的其他门牌号(内网IP地址)则不一定是唯一的 。
利用这一特性,我们就能用ping测试两台主机或路由节点中的网络连通性 。
具体来说,就是使用ping命令,先给目标IP地址发送一个遵循ICMP协议的数据包(echo request) 。
然后可以根据返回数据包的情况(丢包、速度等),检查主机或路由节点之间的网络状态 。
Emm…ICMP协议又是什么?
它的全称是:Internet Control Message Protocol,即因特网控制报文协议,ICMP报文封装在IP包里 。
所谓“控制”,即在IP主机、路由节点之间传递控制消息,来反映数据包是否成功到达目标端,以及反映网络状况等 。
在IP通信中,当IP包成功到达目标地址并返回时,会收到ping应答;而当IP包因为某原因,未能成功到达目标地址、或未能成功从目标地址返回时,ICMP返回的数据包中将含有具体原因,如:网络不可达、端口不可达等 。
怎样ping起来
下面介绍一下ping的基本操作 。
ping命令在各个常见的操作系统中通用,这里以macOS为例:
从Finder中找到“终端” 。
文章图片
输入ping+IP地址(网址或域名也可以),这里先以百度为例 。
然后,即可查看每个数据包,从本电脑对百度的网络服务器发送数据,到接收到服务器反馈数据的延迟时间 。
文章图片
由于macOS发送的每个IP数据包默认大小是64个字节,所以返回的数据包大小也是64个字节 。
而这里的延迟时间,就是ping值 。
除了输入百度等网址,想要测两台主机之间的ping值也没问题,在一台上输入另一台的IP地址即可:
文章图片
所以,在玩网络游戏的时候,如果ping值过高就会感觉操作延迟 。
这个延迟的后果还挺严重的——
例如,在打王者排位的关键时刻,如果网络连接(可能是自己的无线网,也可能是附近的服务器)卡顿,明明自己已经操作了,但由于敌方的操作反馈时间更快,所以只能眼睁睁得看着自己的英雄挂掉 。
说到这里,量子位急忙上号诊断了一下自己的网络 。
文章图片
还好,王者荣耀的延迟低于70ms算正常 。
推荐阅读
- 黄澜|《请叫我总监》大结局,办公室变恋爱基地,他的选择让人意外
- 菜鸟驿站|为什么越来越多的菜鸟驿站要转让?是不赚钱吗?背后有何猫腻?
- 如果让你种些花草美化你家的阳台或小院子,在我家的小院里,种着两种花-
- 生肖|男性、女性出轨率最高的五大职业!让人感到意外
- 原神|原神:有角色没专武,来让这些四星拯救你,合理搭配伤害拉满
- 怎样和老公相处,老公才会更爱你?怎样让老公对你越来越喜欢
- 张良复兴韩国的理想为什么没能实现?韩国张让与张良的关系_1
- 乌鱼的做法大全
- 理想汽车|“有本事就开除我啊?”是时候让00后来整顿职场了,老板瑟瑟发抖
- 怎么让狗狗熟悉自己的名字?如何给小狗起名字
