【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★(三)

简介: 【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★(三)

五、重要协议 ( 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 报文内容 : 其中的类型是 差错报文 / 探询报文 ;

image.png





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 过渡策略 )



目录
相关文章
|
13天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
10天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
15天前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
43 11
|
14天前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
36 3
|
20天前
|
机器学习/深度学习 算法 关系型数据库
基于PSO-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目展示了利用粒子群优化(PSO)算法优化支持向量机(SVM)参数的过程,提高了分类准确性和泛化能力。包括无水印的算法运行效果预览、Matlab2022a环境下的实现、核心代码及详细注释、操作视频,以及对PSO和SVM理论的概述。PSO-SVM结合了PSO的全局搜索能力和SVM的分类优势,特别适用于复杂数据集的分类任务,如乳腺癌诊断等。
|
21天前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
24天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
68 3
|
27天前
|
网络虚拟化
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性。本文介绍了这三种协议的原理、特点及区别,并提供了思科和华为设备的命令示例,帮助读者更好地理解和应用这些协议。
41 4
|
25天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
74 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络