一.ARP地址解析协议
ARP 缓存表使用过程:
-
当主机要发送一个 IP 数据报的时候,会首先查询一下自己的 ARP 缓存表;
-
如果在 ARP 缓存表中找到对应的 MAC 地址,则将 IP 数据报封装为数据帧,把 MAC 地址放在帧首部,发送数据帧;
-
如果查询的 IP-MAC 值对不存在,那么主机就向网络中广播发送一个 ARP 请求数据帧,ARP 请求中包含待查询 IP 地址;
-
网络内所有收到 ARP 请求的主机查询自己的 IP 地址,如果发现自己符合条件,就回复一个 ARP 应答数据帧,其中包含自己的 MAC 地址;
-
收到 ARP 应答后,主机将其 IP - MAC 对应信息存入自己的 ARP 缓存,然后再据此封装 IP 数据报,再发送数据帧。
二.RARP逆地址解析协议
顾名思义,把MAC地址转换成IP地址, 一般以单播发送。
三.ICMP控制报文协议
ICMP 报文由 8 位错误类型、8 位条件代码和 16 位校验和组成,被封装在一个 IP 数据报中
ping
ping 程序是对两台主机之间连通性进行测试的基本工具,它只是利用 ICMP 回显请求和回显应答报文,而不用经过传输层(TCP/UDP)。
ping 程序使用方法为 ping IP 地址
,ping 命令还可以加上参数,实现更多的功能:
- -n 只输出数值。
- -q 不显示任何传送封包的信息,只显示最后的结果。
- -r 忽略普通的 Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
- -R 记录路由过程。
- -v 详细显示指令的执行过程。
- -c 数目:在发送指定数目的包后停止。
- -i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
- -t 存活数值:设置存活数值 TTL 的大小。
ping 命令会返回一个 TTL 值,我们可以使用它来判断目标的操作系统类型。 常见操作系统缺省 TTL 值如下:
- UNIX TTL: 255
- Linux TTL: 64
- WINDOWS 95/98 TTL: 32
- Windows NT 4.0/2000/XP/2003/7/8/10 TTL:128
traceroute
-
它发送一份 TTL 为 1 的 IP 数据报给目的主机,经过第一个路由器时,TTL 值被减为 0,则第一个路由器丢弃该数据报,并返回一份超时 ICMP 报文,于此得到了路径中第一个路由器的地址;
-
然后再发送一份 TTL 值为 2 的数据报,便可得到第二个路由器的地址;
-以此类推,一直到到达目的主机为止,这样便记录下了路径上所有的路由 IP。
四.IGMP组管理协议
IGMP 是用于管理多播组成员的一种协议,它的作用在于,让其他所有需要知道自己处于哪个多播组的主机和路由器知道自己的状态。只要某一个多播组还有一台主机,多播路由器就会把数据传输出去,这样,接受方就会通过网卡过滤功能来得到自己想要的数据。 为了知道多播组的信息,多播路由器需要定时的发送 IGMP 查询,各个多播组里面的主机要根据查询来回复自己的状态。路由器来决定有几个多播组,自己要对某一个多播组发送什么样的数据。