互联网协议 第10章 ping命令使用的协议 互联网协议 第10章 ping命令使用的协议

1小时前

一、ICMP

ping 命令主要用于测试计算机与目标主机之间的网络连接状态,它使用的是 ICMP(Internet Control Message Protocol,互联网控制消息协议)。

ICMP 协议:ping 使用的是 ICMP 的回显请求(Echo Request)和回显应答(Echo Reply)消息。这些消息在 IP 层传递,不使用传输层的 TCP 或 UDP 协议。

二、DNS 是基于 TCP 还是 UDP?

DNS 查询通常使用 UDP 协议,端口号为 53。这是因为 UDP 协议具有较低的开销,适合快速查询。

DNS 的部分操作(如区域传输,zone transfer)使用 TCP 协议,因为这些操作涉及的数据量较大,TCP 能够提供可靠的数据传输。

三、ping 一个域名的全过程

当你在终端中执行 ping example.com 时,整个过程包括 DNS 解析、ICMP 消息的发送与接收、以及路由转发。

以下是具体的步骤:

①、DNS 解析:

查询缓存:操作系统首先检查本地的 DNS 缓存(或 Hosts 文件)中是否有 example.com 的 IP 地址。

递归查询:如果缓存中没有找到,系统会发出一个 DNS 查询请求,通常通过 UDP 协议发送到配置的 DNS 服务器(例如 ISP 的 DNS 服务器或自定义的 DNS 服务器,如 8.8.8.8)。

  • 根服务器查询:如果本地 DNS 服务器不知道 example.com 的 IP 地址,它会查询 DNS 根服务器,获取到 com 顶级域名服务器的地址。

  • 顶级域名服务器查询:接下来,DNS 服务器会查询 com 顶级域名服务器,获取 example.com 所在的权威 DNS 服务器地址。

  • 权威 DNS 服务器查询:最后,查询该权威 DNS 服务器,获取 example.com 的 IP 地址。

返回 IP 地址:一旦查询成功,DNS 服务器将 example.com 的 IP 地址返回给请求的主机。该地址通常是 IPv4 地址(如 93.184.216.34)。

②、发送 ICMP Echo Request:

在获取到 IP 地址后,ping 命令会向目标 IP 地址发送 ICMP Echo Request 消息。这是一个请求消息,用于检测目标主机是否在线。

③、路由转发:

当 ICMP 消息从源主机发送到目标主机时,数据包在网络中可能会经过多个路由器。每个路由器根据目标 IP 地址的路由表将数据包转发到下一跳路由器或最终目的地。

如果目标主机在远程网络中,则数据包可能需要穿越多个网络设备,经历多次路由转发过程。

④、ICMP Echo Reply:

目标主机在收到 ICMP Echo Request 后,会响应一个 ICMP Echo Reply 消息,返回给源主机。这表明目标主机在线并且可达。

该回复消息同样通过网络中的路由器,按照路径返回源主机。

⑤、显示结果:

一旦源主机收到 ICMP Echo Reply 消息,ping 命令就会显示目标主机的响应时间、TTL(生存时间)等信息。通常,ping 会发送多个请求并计算统计信息,如最短、最长和平均往返时间。

四、整体流程总结

①、ping 命令使用 ICMP 协议来发送和接收测试消息。

②、在 ping 一个域名时,首先进行 DNS 解析,通常通过 UDP 协议获取域名对应的 IP 地址。

③、获取 IP 地址后,发送 ICMP Echo Request 消息,通过路由转发到达目标主机。

④、目标主机响应 ICMP Echo Reply 消息,源主机接收并显示结果,包括往返时间和其他网络信息。

这个过程涉及 DNS 查询、ICMP 通信以及路由器在网络中的数据包转发。

阅读 4

互联网协议文章
带到手机上看