标签 Java面试题 下的文章

说下 ping 的原理?

ping,Packet Internet Groper,是一种因特网包探索器,用于测试网络连接量的程序。Ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议) 请求报文,测试目的站是否可达及了解其有关状态。

weixin-mianznxjsjwllsewswztwxxssc-5b7eade5-aa45-4c6f-93ea-2a0256424a7c.png

一般来说,ping 可以用来检测网络通不通。它是基于ICMP协议工作的。假设机器 A ping 机器 B,工作过程如下:

  1. ping 通知系统,新建一个固定格式的 ICMP 请求数据包
  2. ICMP 协议,将该数据包和目标机器 B 的 IP 地址打包,一起转交给 IP 协议层
  3. IP 层协议将本机 IP 地址为源地址,机器 B 的 IP 地址为目标地址,加上一些其他的控制信息,构建一个 IP 数据包
  4. 先获取目标机器 B 的 MAC 地址。
  5. 数据链路层构建一个数据帧,目的地址是 IP 层传过来的 MAC 地址,源地址是本机的 MAC 地址
  6. 机器 B 收到后,对比目标地址,和自己本机的 MAC 地址是否一致,符合就处理返回,不符合就丢弃。
  7. 根据目的主机返回的 ICMP 回送回答报文中的时间戳,从而计算出往返时间
  8. 最终显示结果有这几项:发送到目的主机的 IP 地址、发送 & 收到 & 丢失的分组数、往返时间的最小、最大 & 平均值

为什么既有 IP 地址,又有 MAC 地址?MAC 地址和 IP 地址都具有不同的作用:MAC 地址:MAC 地址是数据链路层和物理层使用的地址,是网络设备(如网卡)上固定的物理地址。每个网络设备都有唯一的 MAC 地址,用于在局域网中识别和定位设备。MAC 地址是由硬件制造商分配的,不可更改。它在直接相连的网络中扮演着重要的角色,用于在局域网中直接寻址和传递数据帧。

- 阅读剩余部分 -

DNS 为什么要用 UDP?DNS(Domain Name System)在实际应用中同时使用了 TCP 和 UDP 协议。在进行区域传送时,主域名服务器向辅助域名服务器传输变化的数据量较大,为了确保数据的准确性,使用了可靠连接的 TCP 协议。TCP 允许更长的报文长度,适合处理大量数据的传输。

- 阅读剩余部分 -