总结
- 子网掩码是一个网络或一个子网的重要属性。
- 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
- 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
- 若一个路由器连接在两个子网上,就拥有两个网络地址和两个子网掩码。
无分类编址的IPv4地址
为什么使用无分类编址
无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。
CIDR 最主要的特点
- CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
- IP 地址从三级编址(使用子网掩码)又回到了两级编址。
如何使用无分类编址
举例
路由聚合(构造超网)
总结
IPv4地址的应用规划
给定一个IPv4地址快,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中不同网络,进而可以给各网络中的主机和路由器接口分配IPv4地址
定长的子网掩码FLSM(Fixed Length Subnet Mask)
划分子网的IPv4就是定长的子网掩码
举例
通过上面步骤分析,就可以从子网18中任选5个分配给左图中的N1N5
采用定长的子网掩码划分,只能划分出2^n个子网,其中n是从主机号部分借用的用来作为子网号的比特数量,每个子网所分配的IP地址数量相同
但是也因为每个子网所分配的IP地址数量相同,不够灵活,容易造成IP地址的浪费
变长的子网掩码VLSM(Variable Length Subnet Mask)
无分类编址的IPv4就是变长的子网掩码
举例
4.4、IP数据报的发送和转发过程
举例
源主机如何知道目的主机是否与自己在同一个网络中,是直接交付,还是间接交付?
可以通过目的地址IP和源地址的子网掩码进行逻辑与运算得到目的网络地址
- 如果目的网络地址和源网络地址 相同,就是在同一个网络中,属于直接交付
- 如果目的网络地址和源网络地址 不相同,就不在同一个网络中,属于间接交付,传输给主机所在网络的默认网关(路由器——下图会讲解),由默认网关帮忙转发
主机C如何知道路由器R的存在?
用户为了让本网络中的主机能和其他网络中的主机进行通信,就必须给其指定本网络的一个路由器的接口,由该路由器帮忙进行转发,所指定的路由器,也被称为默认网关
例如。路由器的接口0的IP地址192.168.0.128做为左边网络的默认网关
主机A会将该IP数据报传输给自己的默认网关,也就是图中所示的路由器接口0
路由器收到IP数据报后如何转发?
- 检查IP数据报首部是否出错:
- 若出错,则直接丢弃该IP数据报并通告源主机
- 若没有出错,则进行转发
- 根据IP数据报的目的地址在路由表中查找匹配的条目:
- 若找到匹配的条目,则转发给条目中指示的吓一跳
- 若找不到,则丢弃该数据报并通告源主机
假设IP数据报首部没有出错,路由器取出IP数据报首部各地址字段的值
接下来路由器对该IP数据报进行查表转发
逐条检查路由条目,将目的地址与路由条目中的地址掩码进行逻辑与运算得到目的网络地址,然后与路由条目中的目的网络进行比较,如果相同,则这条路由条目就是匹配的路由条目,按照它的下一条指示,图中所示的也就是接口1转发该IP数据报
路由器是隔离广播域的
4.5、静态路由配置及其可能产生的路由环路问题
概念
多种情况举例
静态路由配置
举例
默认路由
举例
默认路由可以被所有网络匹配,但路由匹配有优先级,默认路由是优先级最低的
特定主机路由
举例
有时候,我们可以给路由器添加针对某个主机的特定主机路由条目
一般用于网络管理人员对网络的管理和测试
多条路由可选,匹配路由最具体的
静态路由配置错误导致路由环路
举例
假设将R2的路由表中第三条目录配置错了下一跳
这导致R2和R3之间产生了路由环路
聚合了不存在的网络而导致路由环路
举例
正常情况
错误情况
解决方法
黑洞路由的下一跳为null0,这是路由器内部的虚拟接口,IP数据报进入它后就被丢弃
网络故障而导致路由环路
举例
解决方法
添加故障的网络为黑洞路由
假设。一段时间后故障网络恢复了
R1又自动地得出了其接口0的直连网络的路由条目
针对该网络的黑洞网络会自动失效
如果又故障
则生效该网络的黑洞网络
总结
4.6、路由选择协议
概述
因特网所采用的路由选择协议的主要特点
因特网采用分层次的路由选择协议
- 自治系统 AS:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
自治系统之间的路由选择简称为域间路由选择,自治系统内部的路由选择简称为域内路由选择
域间路由选择使用外部网关协议EGP这个类别的路由选择协议
域内路由选择使用内部网关协议IGP这个类别的路由选择协议
网关协议的名称可称为路由协议
常见的路由选择协议
路由器的基本结构
路由器是一种具有多个输入端口,和输出端口的专用计算机,其任务是转发分组
路由器结构可划分为两大部分:
1、分组转发部分
由三部分构成
- 交换结构
- 一组输入端口:
信号从某个输入端口进入路由器
物理层将信号转换成比特流,送交数据链路层处理
数据链路层识别从比特流中识别出帧,去掉帧头和帧尾后,送交网络层处理
如果送交网络层的分组是普通待转发的数据分组
则根据分组首部中的目的地址进行查表转发
若找不到匹配的转发条目,则丢弃该分组,否则,按照匹配条目中所指示的端口进行转发
- 一组输出端口
网络层更新数据分组首部中某些字段的值,例如将数据分组的生存时间减1,然后送交数据链路层进行封装
数据链路层将数据分组封装成帧,交给物理层处理
物理层将帧看成比特流将其变换成相应的电信号进行发送
路由器的各端口还会有输入缓冲区和输出缓冲区
- 输入缓冲区用来暂存新进入路由器但还来不及处理的分组
- 输出缓冲区用来暂存已经处理完毕但还来不及发送的分组
路由器的端口一般都具有输入和输出功能,这些实例分出了输入端口和输出端口是更好演示路由基本工作过程
2、路由选择部分
- 路由选择部分的核心构件是路由选择处理机,它的任务是根据所使用的路由选择协议。周期性地与其他路由器 进行路由信息的交互,来更新路由表
如果送交给输入端口的网络层的分组是路由器之间交换路由信息的路由报文,则把这种分组送交给路由选择处理机
路由选择处理机根据分组的内容来更新自己的路由表
路由选择处理机还会周期性地给其他路由器发送自己所知道的路由信息
路由信息协议RIP
RIP的基本工作过程
举例
RIP的路由条目的更新规则
举例1
路由器C的表到达各目的网络的下一条都记为问号,可以理解为路由器D并不需要关心路由器C的这些内容
假设路由器C的RIP更新报文发送周期到了,则路由器C将自己路由表中的相关路由信息封装到RIP更新报文中发送给路由器D
路由器C能到达这些网络,说明路由器C的相邻路由器也能到达,只是比路由器C的距离大1,于是根据距离的对比,路由器D更新自己的路由表
举例2
RIP存在“坏消息传播得慢”的问题
解决方法
但是,这些方法也不能完全解决“坏消息传播得慢”的问题,这是距离向量的本质决定
总结
RIP 协议的优缺点
优点:
- 实现简单,开销较小。
缺点:
- RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
- “坏消息传播得慢”,使更新过程的收敛时间过长。
开放最短路径优先OSPF
开放最短路径优先 OSPF (Open Shortest Path First)
注意:OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
概念
问候(Hello)分组
IP数据报首部中协议号字段的取值应为89,来表明IP数据报的数据载荷为OSPF分组
发送链路状态通告LSA
洪泛法有点类似于广播,就是从一个接口进来,从其他剩余所有接口出去
链路状态数据库同步
使用SPF算法计算出各自路由器到达其他路由器的最短路径
OSPF五种分组类型
OSPF的基本工作过程
OSPF在多点接入网络中路由器邻居关系建立
如果不采用其他机制,将会产生大量的多播分组
若DR出现问题,则由BDR顶替DR
为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域(Area)
- 在该自治系统内,所有路由器都使用OSPF协议,OSPF将该自治系统再划分成4个更小的区域
- 每个区域都有一个32比特的区域标识符
- 主干区域的区域标识符必须为0,主干区域用于连通其他区域
- 其他区域的区域标识符不能为0且不相同
- 每个区域一般不应包含路由器超过200个
- 划分区域的好处就是,利用洪泛法交换链路状态信息局限于每一个区域而不是自治系统,这样减少整个网络上的通信量
总结
边界网关协议BGP
BGP(Border Gateway Protocol) 是不同自治系统的路由器之间交换路由信息的协议
总结
直接封装RIP、OSPF和BGP报文的协议
4.7、IPv4数据报的首部格式
各字段的作用
- 一个 IP 数据报由首部和数据两部分组成。
- 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
- 在首部的固定部分的后面是一些可选字段,其长度是可变的。
图中的每一行都由32个比特(也就是4个字节)构成,每个小格子称为字段或者域,每个字段或某些字段的组合用来表达IP协议的相关功能
IP数据报的首部长度一定是4字节的整数倍
因为首部中的可选字段的长度从1个字节到40个字节不等,那么,当20字节的固定部分加上1到40个字节长度不等的可变部分,会造成首部长度不是4字节整数倍时,就用取值为全0的填充字段填充相应个字节,以确保IP数据报的首部长度是4字节的整数倍
对IPv4数据报进行分片
现在假定分片2的IP数据报经过某个网络时还需要进行分片
总结
4.8、网际控制报文协议ICMP
概念
架构IP网络时需要特别注意两点:
- 确认网络是否正常工作
- 遇到异常时进行问题诊断
而ICMP就是实现这些问题的协议
ICMP的主要功能包括:
- 确认IP包是否成功送达目标地址
- 通知在发送过程当中IP包被废弃的具体原因
- 改善网络设置等
有了这些功能以后,就可以获得网络是否正常,设置是否有误以及设备有何异常等信息,从而便于进行网络上的问题诊断
ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议
ICMP 报文的格式
ICMP差错报告报文
终点不可达
源点抑制
时间超过
参数问题
改变路由(重定向)
不应发送ICMP差错报告报文情况
ICMP应用举例
分组网间探测PING(Packet InterNet Groper)
跟踪路由(traceroute)
tracert命令的实现原理
总结
4.9、虚拟专用网VPN与网络地址转换NAT
虚拟专用网VPN(Virtual Private Network)
- 由于 IP 地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。
- 考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。
- 假定在一个机构内部的计算机通信也是采用 TCP/IP 协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址。
上图是因特网数字分配机构IANA官网查看IPv4地址空间中特殊地址的分配方案
用粉红色标出来的地址就是无需申请的、可自由分配的专用地址,或称私有地址
私有地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信
私有地址只能用作本地地址而不能用作全球地址
因特网中所有路由器对目的地址是私有地址的IP数据报一律不进行转发
本地地址与全球地址
- 本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。
- 全球地址——全球唯一的 IP 地址,必须向互联网的管理机构申请。
- 问题:在内部使用的本地地址就有可能和互联网中某个 IP 地址重合,这样就会出现地址的二义性问题。
所以部门A和部门B至少需要一个 路由器具有合法的全球IP地址,这样各自的专用网才能利用公用的因特网进行通信
部门A向部门B发送数据流程
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
制,建议将图片保存下来直接上传(img-79Kpe3qx-1638585948810)(计算机网络第4章(网络层).assets/image-20201020000618797.png)]](https://i-blog.csdnimg.cn/blog_migrate/6b783a7d6f566fae4b78adea8d32029a.png)
部门A向部门B发送数据流程
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-65eIssT3-1715799252807)]
[外链图片转存中…(img-XQRFr1ds-1715799252808)]
[外链图片转存中…(img-PFcMsuJA-1715799252809)]
[外链图片转存中…(img-jA47RqwM-1715799252809)]
[外链图片转存中…(img-YHv5tSXc-1715799252810)]
[外链图片转存中…(img-O4sk43rE-1715799252810)]
[外链图片转存中…(img-tpmSx3eI-1715799252811)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!