什么决定了操作系统中首次 ping 响应的时间?

什么决定了操作系统中首次 ping 响应的时间?

当服务器(例如 Windows、Linux)重新启动时,它将需要一些时间来响应 ping。

我假设软件防火墙必须先启动才能返回 ping,因为可能存在禁用 ping 响应的设置。

众所周知,Windows 和 Linux 具有完全不同的架构,所以让我们分别对待它们。

我正在寻找的答案是“XXX 运行后,将返回 ping”。知道这在启动顺序中的位置也会很有帮助。即在开始还是结束。

我之所以问这个问题,是因为有一位客户问我们为什么在创建虚拟机后需要这么长时间才能响应 ping。我确信这只是操作系统启动行为造成的。

答案1

防火墙不一定要响应 ICMP。

一旦 DHCP 启动(或网卡由静态 IP 启动),它就会监听 arp who-has 对其 IP 的请求。在 Linux 中,这是接口配置脚本运行后发生的,这些脚本的顺序因配置而异。在 Windows 中,这是网络相关服务启动时发生的。(目前想不出确切的服务名称)

如果 mac 地址不在任何 arp 缓存中,则响应第一次 ping 时会增加延迟,因为它必须学习到主机的最终以太网跳跃的 mac 地址。

由于某些虚拟机桥接以太网适配器的方式,它们的初始延迟甚至更长,主机必须在生成树延迟之后进行学习和转发,以防止出现环路。

在启动顺序中,操作系统将启动操作网络适配器所需的一切,然后先将网络适配器联机,然后再启动任何依赖于网络的服务。在我遇到的大多数机器上,这通常处于“中间”。

答案2

我只想补充一点,响应 ping 请求的不是防火墙。而是网卡。防火墙仅充当过滤器(例如阻止您这边响应 ICMP ECHO 请求)。

相关内容