dns - does the echo reply do another DNS lookup?
问题描述
When I do ping www.google.com
the protocol ICMP
does a DNS
lookup and send a echo request
to the google IP. When google responds, another dns lookup happens?
And if I do ping -n www.google.com
do I save time but not performing the two dns lookups?
解决方案
ICMP 协议进行 DNS 查找
这是不正确的。ICMP,就像 IP 处理地址一样。当您使用名称时,应用程序(即ping
程序)将查询操作系统以将名称转换为 IP。
这种映射可能以不同的方式完成,DNS 只是其中之一。在 Unix 系统上,请参阅/etc/nsswitch.conf
指示应如何解决各种问题的文件,例如主机名。通常,它至少是/etc/hosts
文件内容和 DNS 查询的混合。
因此,一旦ping
程序(通常使用getaddringo
OS 类)将名称解析为 IP 地址,它就会开始使用 ICMP 协议处理该地址。
当 google 响应时,会发生另一个 dns 查找?
不,为什么要这样?同样,当 ICMP 发生时,我们已经并且现在完全处于地址的世界中,那里没有名字。
节省时间但不执行两个 dns 查找?
是的,可能,但只有一次(DNS 使用缓存)并且差异将是微不足道的,并且在许多其他事情中通常会丢失。
但有趣的问题是你为什么会有这个问题,我的意思是你试图这样做是什么?请注意ping
(因为它使用 ICMP)是一个糟糕的故障排除工具,因为 ICMP 流量在网络中的配置通常与 IP 流量非常不同。(并且您不应该将www.google.com
其用作测试的锚,例如,请查看 RIPE 锚,但这在很大程度上取决于您在这里真正的潜在问题是什么)。
推荐阅读
- shopify - Shopify Liquid Theme 高级自定义字段复选框 if-statement 无法将“true”理解为truthy
- mysql - 如何使用 3 个不同的表查询 SQL 数据库,其中包含有关演员、戏剧和所执行角色的信息?
- php - 有没有办法用 Lumen/Laravel PHP 创建一个 tsv 响应?
- python - 安装 Pytorch XLA 后出现“Numpy 不可用”
- java - 在应用程序未运行时检测 dataChange
- serialization - 在flink(scala)中使用kryo在某种类型上注册protobuf序列化程序时出现问题
- gis - “通过所有基础”标准如何在 SpatialFIlter 中工作。在FME?
- c# - 如何在运行时为嵌套属性构建类映射
- javascript - 如何使用嵌套循环 (.each) 在 Cypress 中迭代 HTML 表
- mysql - 在 Mysql 中,以前的用户在 droppng 并创建同名后可以访问数据库