网络连通性测试工具及原理

最近有同学私信说自己去面试时,被面试官一个小问题给难住了,一个关于网络连通性的问题,面试官问这位同学:



日常中,如何测试两台主机之间的网络连通性,网络延迟,端口是否开放?并说一说原理”

这种问题在过完的面试中从没见过,毕竟太细小了,对于任何一个有工作经验的程序员来说,这都不算是问题,但你让我去说一说它们的原理,我也会一时语塞,并不是我太菜,而是面试官太无理取闹!

一、PING

Ping是一个非常常用的网络测试工具,经常用来测试网络中主机之间的连通性和网络延迟。无论是Windows还是Linux系统下都常用。



使用方式:ping ip 或者 ping 域名

我们可以在DOS窗口中键入“ping /?”打开指令帮助页面,帮我们更好的使用该命令。



现在,我们以百度为例,我们ping一下www.baidu.com的网址:



如上图就是我们本地ping百度域名的一个过程及反馈结果,可见网络连通性良好,响应时间18ms,如果时间过长,说明网络延迟较大,我们还可以通过-n 或者-i 以及-t 来测试网络承载能力。

2.2 PING的原理

ping命令检测网络连通性的原理主要是依赖于网络层ICMP(

互联网控制报文协议

)协议实现。主要形式是通过向目标主机发送ICMP请求报文和接受ICMP响应报文。如果请求的是域名,则会通过DNS域名系统解析为对应主机IP地址,再发送报文。

  • PING 命令会向目标主机发送 ICMP Echo Request。
  • 如果两个主机的连通性正常,目标主机会返回一个对应的 ICMP Echo Reply。

二、Telnet

telnet(

远程登录协议

),它是一个基于TCP协议的应用层协议,经常用于测试网络及端口占用情况。我们通过

telnet ip port

命令的方式去连接远程服务器,连接失败表示端口未占用。否则表示被占用。

Telnet 协议的最大缺点之一是所有数据(包括用户名和密码)均以明文形式发送,这有潜在的安全风险。这就是为什么如今很少使用 Telnet,而是使用一种称为 SSH 的非常安全的网络传输协议的主要原因。

未经允许不得转载:大白鲨游戏网 » 网络连通性测试工具及原理