五、重要协议 ( ARP | DHCP | ICMP | IGMP ) ★
1 . ARP 协议
ARP 协议 使用过程 :
① 检查 ARP 高速缓存 :
存在对应物理地址 : 如果有 目的 IP 地址对应的 MAC 地址 , 就直接写入该 MAC 地址 ;
不存在对应物理地址 : 如果没有 目的 IP 地址对应的 MAC 地址 , 则 使用 “FF-FF-FF-FF-FF-FF” 作为 MAC 地址 , 封装并广播 “ARP 请求分组” , 该局域网内所有的主机都能收到该请求 ;
② “ARP 请求分组” 处理 : 目的主机 收到 “ARP 请求分组” 后 , 向源主机 单播 “ARP 请求分组” , 源主机收到 该 “ARP 请求分组” 后 , 将 MAC 地址映射写入到 ARP 缓存中 ;
③ 更新周期 : 每隔 10 1010 ~ 20 2020 分钟 , 更新一次 ARP 高速缓存 ;
计算示例 :
源主机 发送 IP 数据报给目的主机 , 经过了 5 55 个路由器 , 期间使用了多少次 ARP 协议 ?
源主机 , 使用 ARP 协议 , 获取第 1 11 个路由器的 物理地址 ;
第 1 11 个路由器 , 使用 ARP 协议 , 获取第 2 22 个路由器的 物理地址 ;
第 2 22 个路由器 , 使用 ARP 协议 , 获取第 3 33 个路由器的 物理地址 ;
第 3 33 个路由器 , 使用 ARP 协议 , 获取第 4 44 个路由器的 物理地址 ;
第 4 44 个路由器 , 使用 ARP 协议 , 获取第 5 55 个路由器的 物理地址 ;
第 5 55 个路由器 , 使用 ARP 协议 , 获取 目的主机 的 物理地址 ;
总共使用了 6 66 次 ARP 协议 ;
参考博客 : 【计算机网络】网络层 : ARP 协议 ( 使用 ARP 协议查找 目的主机 / 路由器 物理地址 )★
2 . DHCP 协议
DHCP 协议 流程 :
① 主机 广播 DHCP 发现报文 ; 该主机是想要申请 IP 地址的主机 ;
② DHCP 服务器 广播 DHCP 提供报文 ;
③ 主机 广播 DHCP 请求报文 ;
④ DHCP 服务器 广播 DHCP 确认报文 ;
每个步骤都是广播 ;
广播的内容是 四种类型的报文 :
DHCP 发现报文
DHCP 提供报文
DHCP 请求报文
DHCP 确认报文
参考博客 : 【计算机网络】网络层 : DHCP 协议 ( DHCP 协议概念 | DHCP 协议特点 | DHCP 协议流程 )
3 . ICMP 协议
ICMP 协议 简介 :
① ICMP 协议 全称 : 网际控制报文协议 ;
② ICMP 协议 功能 :
差错报告 : 对应 发送 差错报文 ;
网络探寻 : 对应 发送 探寻报文 ;
③ ICMP 报文 在 IP 数据报中位置 : ICMP 报文 属于 IP 数据报 的 数据部分 ;
ICMP 报文内容 : 其中的类型是 差错报文 / 探询报文 ;
ICMP 五种差错报告报文 :
① 终点不可达报文 : 路由器 / 主机 不能交付数据报时 , 就会向源点 发送 终点不可达报文 ;
② 源点抑制报文 : 路由器 / 主机 拥塞 , 丢弃 IP 数据报 , 向源点发送源点抑制报文 , 让源点降低发送速率 ;
③ 时间超过报文 :
生存周期为 0 00 : 路由器 生存周期 TTL = 0 00 时 , 丢弃该报文 , 同时向源点发送 时间超过报文 ;
分组丢失 : 终点 在预定时间内 没有收到 数据报的全部数据分组时 , 就会将已收到的数据分组全部丢弃 , 向源点发送时间超过报文 ;
④ 参数问题报文 : 路由器 / 主机 收到的 数据报 首部 字段由错误值 , 丢弃该数据报 , 向源点发送 参数问题报文 ;
⑤ 改变路由报文 : 路由器 将 改变路由报文 发送给主机 , 让主机下次将数据报发送给另外的路由器 ; 又称为 “重定向报文” ;
ICMP 差错报文 不发送 情形 :
① ICMP 差错报文错误 : IP 数据报 中 , 如果 ICMP 差错报文部分出错 , 就不用再发送 ICMP 差错报告报文了 ;
② 后续数据报分片 : ICMP 差错报文只针对数据报的第一个分片 , 后续分片就不发送 ICMP 差错报告报文了 ;
③ 组播地址 : 如果 IP 数据报的地址是 组播地址 , 不发送 ICMP 差错报文 ;
④ 特殊地址 : 如果 IP 数据报的地址是 特殊地址 , 不发送 ICMP 差错报文 ; 如 : 默认路由地址 等 ;
ICMP 询问报文 :
① 回送请求 和 回答报文 : 主机 / 路由器 询问特定主机 , 目的主机收到该报文后 , 必须给源主机 发送 ICMP 回答报文 ; 目的是 测试该 目的主机是否可达 ;
② 时间戳请求 和 回答报文 : 请求 主机 / 路由器 当前的日期 和 时间 ; 用于进行时钟同步 和 时间测量 ;
参考博客 : 【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
4 . IGMP 协议
IGMP 协议 :
全称 : 网际组管理协议 ;
作用 : IGMP 协议 让 路由器 知道 本局域网 内的主机 , 是否 参加 / 退出 了 某个组播组 ; 如 : 小王 进入了 某主播直播间 , 那么小王的手机参加了组播组 ;
IGMP 协议在 TCP / IP 协议栈中的位置 : 处于 网络层 上层 , ICMP 与 IGMP 都使用 IP 数据报 传递报文 ;
IGMP 工作流程 :
① 第一阶段 : 加入组播组 ;
加入组播组 : 主机 向 组播组 的 组播地址 发送 IGMP 报文 , 声明自己成为该组的成员 ;
组播路由器更新数据 : 本地组播路由器 收到 IGMP 报文后 , 利用 组播路由选择协议 , 将组播组 成员关系发送给 因特网上的 其它组播路由器 ;
② 第二阶段 : 定期轮询组播组成员 ;
周期询问 : 本地组播路由器 每隔一段时间 , 询问 本地局域网的 组播组 1 11 的主机 A AA , 询问该 主机 A AA 是否是 组播组 1 11 成员 ;
如果 主机 A AA 是组播组 1 11 成员 : 如果有主机 A AA 对 组播组 1 11 相应 , 组播路由器 认为 该组播组 1 11 是 活跃的 ;
如果 主机 A AA 不是组播组 1 11 成员 : 如果没有主机响应 , 组播路由器 认为 本网络上没有 组播组 1 11 的成员 , 不再将本组的 A AA 主机当做组播组 1 11 的成员 发送给其它组播路由器 ;
参考博客 : 【计算机网络】网络层 : IP 组播 ( IP 数据报传输方式 | 组播 IP 地址 | 组播 MAC 地址 | IGMP 协议 | 组播路由选择协议 )
六、IPv6 协议
IPv6 地址表示 :
① 冒号十六进制记法 : 2 B 2 B : 0000 : 0000 : 0000 : 002 B : 2 B 2 B : 2 B 2 B : 2 B 2 B 2B2B:0000:0000:0000:002B:2B2B:2B2B:2B2B2B2B:0000:0000:0000:002B:2B2B:2B2B:2B2B , 使用 7 77 个 冒号 , 将 8 88 个 short 短整型数字 使用 十六进制数表示出来 ;
② 压缩形式 : 如果每个 short 短整型数字 前面若干位为 0 , 可以省略 , 如果四位全是 0 00 , 那么可以使用 一个 0 00 代替 ;
上述 IPv6 地址 使用压缩形式 可以表示成 2 B 2 B : 0 : 0 : 0 : 2 B : 2 B 2 B : 2 B 2 B : 2 B 2 B 2B2B:0:0:0:2B:2B2B:2B2B:2B2B2B2B:0:0:0:2B:2B2B:2B2B:2B2B ;
③ 零压缩 : 连续的 0 00 使用一对冒号表示 , 但是一个 IPv6 地址中只能使用一次 ;
零压缩表示上述 IPv6 地址 : 2 B 2 B : : 2 B : 2 B 2 B : 2 B 2 B : 2 B 2 B 2B2B::2B:2B2B:2B2B:2B2B2B2B::2B:2B2B:2B2B:2B2B
IPv4 向 IPv6 过渡策略 :
① 双栈协议 : 同一台设备上 同时启用 IPv4 和 IPv6 协议栈 , 该设备既能使用 IPv4 通信 , 又能与 IPv6 网络进行通信 ;
路由器 : 不同的接口 分别 配置 IPv4 地址 和 IPv6 地址 ;
计算机 : 计算机同时拥有 IPv4 地址 和 IPv6 地址 , 可同时处理两种协议 ;
② 隧道技术 : 隧道技术 是 使用 互联网 基础设施 , 在网络之间传递数据的方式 ; 使用 隧道 传递不同协议的数据 , 将其它协议的数据重新封装然后通过隧道传输 ;
参考博客 : 【计算机网络】网络层 : IPv6 协议 ( IPv6 数据包格式 | IPv6 地址表示 | IPv6 地址类型 | IPv4 与 IPv6 协议对比 | IPv4 -> IPv6 过渡策略 )