Internet Control Message Protocol(ICMP、 互联网控制信息协议)

ICMP 协议是一种面向无连接的协议,是 TCP/IP 协议簇的一个子协议,属于网络层协议。用来传递差错、控制、查询等消息

ICMP_w

ICMP

重定向

ICMP 重定向是路由器将路由信息传达给主机的机制。这种类型的报文通知主机更新它的路由信息(请求主机改变其路由)

重定向

响应请求

ICMP Echo Request 和 ICMP Echo Reply 用于查询和响应某些信息,进行差错检测

响应请求

报文类型

常见报文类型

类型 代码 描述
0 0 Echo Reply (响应)
3 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
5 0 重定向
8 0 Echo Request (请求)

电脑网络工具

Ping

用于测试数据包能否通过 IP 协议到达特定主机

运作原理:
向目标主机传出一个 ICMP 的请求回显数据包,并等待接收回显回应数据包。程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间

Traceroute

Linux 系统称为 tracepath,Windows 系统称为 tracert。用于显示数据包在 IP 网络经过的路由器的 IP 地址

工作过程:

  1. 首先发送一个 TTL 为 1 的 UDP 报文
  2. 到达第一跳时 TTL 超时,第一跳设备发回一个 ICMP 错误消息,指明此数据包不能被发送
  3. 发送主机将 TTL 加 1,重新发送此数据包
  4. 第二跳设备返回 TTL 超时报文

Address Resolution Protocol(ARP、 地址解析协议)

地址解析协议是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,通过网络地址来定位 MAC 地址

ARP_w

ARP

  • Hardware Type 硬件类型(16 bit): 表示ARP报文可以在哪种类型的网络上传输,值为 1 时表示为以太网地址

  • Protocol Type 协议类型(16 bit): 表示硬件地址要映射的协议地址类型,值为 0x0800 时表示 IP 地址

  • Hardware Address Length 硬件地址长度(8 bit): 指出硬件地址长度

  • Protocol Length 协议地址长度(8 bit): 指出协议长度

  • Operation 操作类型(16 bit): 表示这个报文的类型,ARP 请求为 1,ARP 响应为 2,RARP 请求为 3,RARP 响应为 4

  • Sender hardware address 发送方硬件地址(48 bit): 标识源硬件地址

  • Sender protocol address 发送方协议地址(32 bit): 标识源协议地址

  • Target hardware address 接收方硬件地址(48 bit): 标识目标硬件地址

  • Target protocol address 接收方协议地址(32 bit): 标识目标协议地址

ARP 工作原理

ARP工作原理

  1. 发送方检查本地主机 arp 缓存表是否含有目标地址的路由
  2. 若缓存表中没有目标地址路由,广播发送 arp 请求报文
  3. 其他主机收到 arp 请求后核对网络地址,并将发送方的物理地址和网络地址写入自己的缓存表中
  4. 目标主机收到请求后,单播发送 arp 响应报文
  5. 发送方收到 arp 响应报文将地址写入缓存表中

ARP 代理

当同一网段、不同物理网络上的计算机需要通信时,三层网络设备可以通过 ARP 代理实现相互通信。实现原理与 ARP欺骗相同

ARP代理

免费 ARP

用于探测 IP 地址是否冲突

免费ARP

当主机 IP 地址变更时,向新 IP 地址发送 ARP 请求:

  • 若收到 ARP 响应,代表该 IP 地址已被使用
  • 若没有收到 ARP 响应,则代表没有其他设备使用该 IP 地址

相关指令

系统视图

Ping 测试

# ping [参数] 目标地址
ping -a 127.0.0.1

Traceroute 测试

# tracert [参数] 目标地址
tracert www.google.com

开启 ARP 代理

arp-proxy enable

查看 MAC 地址表

display mac-address