一、ARP(Address Resolution Protocol)地址解析协议
- 网络层包含IP协议 、ARP、ICMP、IGMP、RARP 等其它协议

ARP的功能:当主机通过数据链路发送数据的时候,IP 数据报会先被封装为一个 数据帧,而MAC 地址会被添加到数据帧的报头。*(MAC地址专注于数据链路层,将一个数据帧从一个节点传送到相同链路的另一个节点)*。ARP便是在这个过程中通过目标主机的 IP 地址,查询目标主机的 MAC 地址。
ARP的原理:在你的电脑和路由器中都有一个ARP 缓存表,其中保存的是近期(20 分钟)与自己有过通信的主机的 IP 地址与 MAC 地址的对应关系。ARP 缓存表使用过程:
- 当主机要发送一个 IP 数据报的时候,会首先查询一下自己的 ARP 缓存表;
- 如果在 ARP 缓存表中找到对应的 MAC 地址,则将 IP 数据报封装为数据帧,把 MAC 地址放在帧首部,发送数据帧;
- 如果查询的 IP-MAC 值对不存在,那么主机就向网络中广播发送一个 ARP 请求数据帧,ARP 请求中包含待查询 IP 地址;
- 网络内所有收到 ARP 请求的主机查询自己的 IP 地址,如果发现自己符合条件,就回复一个 ARP 应答数据帧,其中包含自己的 MAC 地址;
- 收到 ARP 应答后,主机将其 IP - MAC 对应信息存入自己的 ARP 缓存,然后再据此封装 IP 数据报,再发送数据帧。

1、主机A发送arp广播报文,请求主机B MAC地址。
2、PE1收到广播请求后,首先判断自己是不是目标MAC地址(发现不是,则查找到达目标MAC的路径)。
3、如果发现有到达目标MAC的路由,则查询是否开启ARP代理:如果发现开启了ARP代理,则将自己接口的MAC地址发送给主机A;如果发现没有开启,则丢弃该报文。
4、如果没有收到主机B的路由,则丢弃报文。
5、收到报文后,单播回应给主机A。

- ARP 欺骗:从 ARP 代理的原理可以看出来:IP - MAC 的对应信息很容易被伪造!黑客可以伪造 ARP 应答数据帧而欺骗 ARP 请求者,从而达到截获数据的目的。
二、RARP(Reverse Address Resolution Protocol)逆向地址解析协议
- RARP 与 ARP 是相反的关系,用于将 MAC 地址转换为 IP 地址。
- 对应于 ARP,RARP 请求以广播方式传送,而 RARP 应答一般是单播传送的。
三、ICMP(Internet Control Message Protocol)控制报文协议
- ICMP协议是一种面向无连接的协议,用于在主机与路由器之间传输出错报告控制信息。
- ICMP 报文由 8 位错误类型、8 位条件代码和 16 位校验和组成,被封装在一个 IP 数据报中:

四、ping 程序
- ping 程序是基于 ICMP 协议 的工具。
- ping 程序是对两台主机之间连通性进行测试的基本工具,它只是利用 ICMP 回显请求和回显应答报文,而不用经过传输层(TCP/UDP)。
- ping 程序通过在 ICMP 报文数据中存放发送请求的时间值来计算往返时间,当应答返回时,用当前时间减去存放在 ICMP 报文中的时间值,即是往返时间。
- TTL 是 IPv4 包头的一个 8 bit 字段,它的作用是限制 IP 数据包在计算机网络中的存在时间,即 IP 数据包在计算机网络中可以转发的最大条数。
- 用ping 127.0.0.1 查看自己的TTL值。
五、traceroute 程序
- traceroute 程序是基于 ICMP 协议 的工具。
- traceroute 程序是用来侦测主机到目的主机之间所经路由情况的重要工具。
- 带 -R 参数的 ping 命令也可以记录路由过程,但是因为 IP 数据报头的长度限制(最多能保存 9 个 IP 地址),ping 不能完全的记录下所经过的路由器,traceroute 正好就填补了这个缺憾。
- 用以下命令安装traceroute:
- sudo apt-get update
- sudo apt-get install traceroute
- 尝试追踪到 www.github.com 的路由:
六、IGMP(Internet Group Management Protocol)组管理协议
- IGMP 是用于管理多播组成员的一种协议,它的作用在于:让其它所有需要知道自己处于哪个多播组的主机和路由器知道自己的状态。
作业1:查看 ARP 缓存,并截图。

作业2:使用带选项的 ping 命令记录到github.com途径的路由,并与 traceroute 命令的结果做比较。截图。


由上图可知,ping因为 IP 数据报头的长度限制不能完全的记录下所经过的路由器,而traceroute可以完全的记录下所经过的路由器。