
(以下内容全部出自上述课程)
目录
- 网络层
-
- [1. 地位](#1. 地位)
- [2. 大纲](#2. 大纲)
- [3. 图例](#3. 图例)
- [4. 小结](#4. 小结)
- IPv4分组
-
- [1. 各协议之间的服务关系](#1. 各协议之间的服务关系)
- [2. IP数据报](#2. IP数据报)
-
- [2.1 格式(穿插)](#2.1 格式(穿插))
- [2.2 分片问题](#2.2 分片问题)
- [2.3 生存时间(TTL)](#2.3 生存时间(TTL))
- [3. 小结](#3. 小结)
- IP
-
- [1. 最初的IP地址分类方案](#1. 最初的IP地址分类方案)
- [2. IP分组转发(例子)](#2. IP分组转发(例子))
- [3. 特殊用途的IP地址](#3. 特殊用途的IP地址)
- 子网划分&子网掩码
-
- [1. 未使用子网划分](#1. 未使用子网划分)
- [2. 划分为两个子网](#2. 划分为两个子网)
- [3. 划分为四个子网](#3. 划分为四个子网)
- [4. 小结](#4. 小结)
- [5. 子网掩码的应用](#5. 子网掩码的应用)
- [5. 过程分析](#5. 过程分析)
- [6. 子网掩码的CIDR记法](#6. 子网掩码的CIDR记法)
- [7. 练习](#7. 练习)
- CIDR
-
- [1. 传统IP的缺陷](#1. 传统IP的缺陷)
- [2. 无分类编址CIDR](#2. 无分类编址CIDR)
- [3. 定/变长子网划分](#3. 定/变长子网划分)
- [4. 传统定长缺陷](#4. 传统定长缺陷)
- [5. 应用](#5. 应用)
- [6. 做题技巧及例题](#6. 做题技巧及例题)
- [7. 小结](#7. 小结)
- 路由聚合
-
- [1. 路由聚合](#1. 路由聚合)
- [2. 最长前缀匹配原则](#2. 最长前缀匹配原则)
- [3. 过程分析](#3. 过程分析)
- [4. 练习](#4. 练习)
网络层
1. 地位
- 网络层:IP数据报
- 数据链路层 :帧


2. 大纲

3. 图例

4. 小结
- 异构 :比如拓扑结构有星型、总线型,使用的连接设备都不同,所以剩下网络层之下的数据链路层和物理层也会不一样。
- 网关:路由器
- 路由器:转发表=精简版路由表
- 开环控制:提前告诉你到达一个地址,有哪几条路可以走,这个路堵了就规定走具体的另一条路,是按照计划有更换顺序的
- 闭环控制 :使用高德地图,实时查看拥堵,堵了就换另一条

IPv4分组
1. 各协议之间的服务关系
- A-->B:B协议支持A协议(下一个层级的协议支持上一个层级的协议)
- IP协议:核心
- ARP协议:IP+MAC
- ICMP协议:网络层的异常
- IGMP协议 :IP组播

2. IP数据报
2.1 格式(穿插)
- 版本:通常是版本四,就是一个数字4
- 首部长度:以X4B为单位,代表这个数字的四倍才是它的长度
- 区分服务:用不到
- 总长度:首部+数据部分
- 注意 :这里数据部分的长度是理论长度 ,不是实际长度

- 注意:这是一个十六进制的表 一个十六进制占4bit,一个十六进制数可以表示四位二进制数
- 4:4bit = 一个十六进制数,版本号,IPv4
- 5:4bit = 一个十六进制数,首部长度,但需要×4B
- 00:8bit = 两个十六进制数,区分服务,不重要
- 0030 :16bit = 四个十六进制数,总长度,换算成十进制数就是48,48×1B=48B

2.2 分片问题
以太网MAC帧具体内容可见:MAC层
- 分片:相当于你寄快递有限重,所以你就不能把所有的东西用一个快递发送,需要分成两个快递发送
- 最大传送单元 :限重的最大重量

- 链路1的MTU=4000>链路2的MTU,就是后边儿的限重,所以必须分成几个快递再发送
- IP首部就相当于快递单,包含了发送的地址和接收的地址及其他,所以就算分成了好几个快递,每个快递都需要有这个快递单
- MF:更多分片(后面会讲)
- DF :不分片(后面会讲)

就像上面讲的,大快递=好几个小快递,快递=快递单+货物,即IP数据报=IP首部+数据部分,无论大小都需要这个固定格式

- 分片发生地:类似快递,只可能卖家或者中转站帮忙分快递
- 目的主机重组:就是我们是买家,快递的送达方,我们就可以把快递(比如说机器零件)重新组装好
- 乱序到达:卖家或者中转站分开快递,那就随便儿发货咯,人那么忙,怎么可能还记着顺序
- 片偏移 :X8B=八的整数倍(具体下一张图会说)

- 标识:快递单号,商家发货时自动生成
- 标志:MF=1,表示后面还有分片,DF=1(不允许分片,超重就直接扔掉)
- 片偏移:表示分片被分之前,在全部的哪个位置
- 实际数据部分的长度:受下一个链路的限制
片偏移字段以8字节为单位的设计是由IP协议的结构和效率需求决定的。这种设计既能满足数据报的最大长度要求,又能优化字段的使用效率。


2.3 生存时间(TTL)
经过一个路由器,TTL的值就减1,到达B时还有值就传送成功,等于0就直接扔掉然后返回异常(ICMP)。

- 生存时间:TTL
- 协议:TCP=6,UDP=17
- 首部检验和 :全0就不用校验

- 协议 :网络层的IP数据报向传输层传输的时候可以选择TCP协议(6)或者是UDP协议(17)。

- 源地址:卖家地址
- 目的地址 :买家地址

3. 小结
- 4:首部长度单位:×4B
- 1:总长度单位:×1B
- 8 :片偏移单位:×8B

IP
1. 最初的IP地址分类方案
- 单播地址:相当于QQ号-->分给单个主机
- 多播地址:相当于QQ群号-->分给一个群组
因为之前的时代使用计算机的人很少,所以用这个方法分配的IP地址就很少。

-
A类:以0开头的地址
-
B类:以10开头的地址(其余同理)
-
结构:32bitIP地址=网络号+主机号,分成了8bit的十进制数字的组合,例如192(8bit).168(8bit).1(8bit).1(8bit)
-
注意:A以0开头,B以10开头,开头的数字也是网络号内的,比如A以0开头的8bit二进制数能表示的范围是1~126。
-
IP地址是唯一的
-
路由器连路由器的接口不需要IP地址(见下图的B0和C0),路由器连其他需要IP地址(见下图B2或C2)
-
同一网络的设备的网络号都相同(见下图的某学校路由器及六台主机)
-
新主机接入网络,需要分配IP地址,配置默认网关(就是你这个主机发送消息需要通过哪个路由器)

2. IP分组转发(例子)
地址段的分配:如上图,A-->B-->C,第一个8bit网络号的大小依次增加,网络号占的bit位也依次增加,所以B类地址固定的IP网络号就是前两个十进制数字:166.1.x.x,C类地址占的第一个十进制数更大,占的固定的bit位更多:200.1.1.x
- A类:网络号占8bit = 一个十进制数字
- B类:网络号占16bit = 两个十进制数字
- C类:网络号占24bit = 三个十进制数字
- 默认网关:就是路由器连接这个局域网的其他设备接口的IP地址。
- 转发表:简洁版的路由表,记录各个路由器的IP地址。
- ARP协议:同网络间的主机根据IP地址可以互查MAC地址(以后会学)
例子-H1-->H7:
- 配置默认网关后:H1知道默认网关的IP地址后,通过ARP协议查询这个默认网关的IP地址所对应的MAC地址(数据链路层),所以在H1将要传输的IP数据报封装成帧的时候,直接把这个帧的目的MAC地址直接写成B2接口所对应的MAC地址。
- H1结点把IP数据报发送给交换机,经过逐层转发(因为知道目的MAC地址了),就通过B2接口转发到了路由器
- 到达路由器就开始检查路由器转发表,目的网络号能和B0接口匹配上,因为从B0传输放到C0,所以需要把此时的MAC地址改为C0的MAC地址,也就把这个IP数据报重新封装成帧,把IP数据报从B0转发出去
- 到达C0,检查自己的网络号能和路由器转发表的C2接口对上,就需要从C2接口传输出去,但是此时也需要修改MAC地址,也是利用ARP协议查询目的地址所对应的MAC地址,修改为H7的MAC地址,重新封装成帧
- 从C2接口传出去到达交换机,交换机根据帧的目的地址从左端口转出去到达H7

例子-H1-->H6: - H1先将自己的IP地址和目的地址的网络号相对比(B类对比前16bit=两个十进制数),一样就说明处于同一个网络中,就不需要发送给默认网关了,然后ARP协议查询目的地址的MAC地址,直接封装成帧说明H6的MAC地址
- H1-->交换机-->交换机-->集线器
- 集线器收到帧直接无脑全部发,H5会收到MAC帧,不属于它直接扔到,H6会收到MAC帧,检查目的地址,属于就留下

3. 特殊用途的IP地址

如上图的重要结论,IP地址一共就占32bit,网络号占的bit多,主机号占的bit自然就少了,等级越低的网络可分配的主机也就越少。
-2是因为要减去主机号全为1和全为0的情况。

特殊用途第二行:H1-->200.1.1.255(二进制全1就是十进制255):H1给200.1.1的网络的全部设备都发送IP数据报

特殊用途第三行:H1-->H3:H1可以写为0.0.0.1,只可作为源地址使用

特殊用途第五行:H1-->全1目的:给本网络的全部设备发送数据报,包括网关

特殊用途四五行:全0源,全1目的:本主机给本网络的所有主机
全0源:常用于一台主机刚接入网络的时候,表示自己现在是无IP地址的状态,通过播报一个DHCP报文来让自获得一个IP地址

特殊用途第六行:自己给自己发送,环回自检地址

子网划分&子网掩码
此节涉及大量过程,建议查看原视频:【王道计算机考研 计算机网络-哔哩哔哩】
1. 未使用子网划分
未划分子网的IP=网络号+主机号

2. 划分为两个子网
划分了两个子网的IP=网络号+子网号+主机号
子网号=1bit --> 21=2

3. 划分为四个子网
划分了两个子网的IP=网络号+子网号+主机号
子网号=2bit --> 22=4

4. 小结
- 划分顺序 :网络号-->子网号-->主机号

5. 子网掩码的应用
- 子网掩码:网络号+子网号的比特位全部为1,主机位全部为0
- 使用方法 :目的IP地址与子网掩码逐位相与(就是屏蔽掉你的主机号,查看你的网络号和子网号,就能看出是否在同一个子网中)


5. 过程分析


6. 子网掩码的CIDR记法
/XX:就是前XX位都是1,其余位都是0.

7. 练习


CIDR

1. 传统IP的缺陷
传统IP分配方案不灵活,可用的IP地址太少。

2. 无分类编址CIDR
传统IP是先分配网络号再分配主机,无法把主机供给放在前面。
CIDR是先看主机需求量,根据主机需求量来改变网络前缀的长度,显然更加灵活。
- 网络前缀:由IP地址机构分配
- 主机号:由本单位自行分配
CIDR记法:128.12.32.0/21
- 按照IP地址:这里的21是网络前缀占了21bit
- 按照掩码:这里的21是前21bit是全1,剩余部分全0

3. 定/变长子网划分
定长:子网号长度固定
变长:子网号长度不固定

4. 传统定长缺陷
比如一个学校想划分4个子网,就需要2bit的子网号(22),也就是每个子网有2(16-2)个IP地址,但是有的子网不需要这么多的IP地址,因为是固定划分的,所以就可能导致IP地址的浪费。

5. 应用
根据所需分配的主机数量来 分配子网号,比如图中的北京和上海的人比较多,分配的子网号就只占了3bit对应可分配的主机就很多;
青海的人比较少,分配的子网号就占了5bit,大大减少了可分配的主机数量。


- 分给铁柱16个IP:主机号占位-->24=16,子网号=5-4=1bit
- 给旺财8个IP:主机号占位-->23=8,子网号=5-3=2bit
- 给狗剩4个IP:主机号占位-->22=4,子网号=5-2=3bit

为什么狗剩只有一个电脑但是要分给他4个IP呢?
因为他自己一个电脑需要一个IP,路由器连接电脑的接口也需要一个IP,并且主机号全为1和全为0的IP是不可以分配的,所以他自己就需要四个IP。

6. 做题技巧及例题
可以把CIDR变长子网划分看成一个哈夫曼树:


画得越深,子网可分配得IP地址数就越小。

7. 小结

路由聚合
1. 路由聚合
路由转发表中的转发接口相同 ,部分网络前缀也相同的IP地址可以聚合成一条线路。
- 减少路由表的大小,可以查询更快,因为不用查那么多条数据了。
- 无效地址:沿用CIDR的例子,最后有四个无效地址,它们和划分出去的子网的网络前缀都相同,所以还是可能会通过路由器转发过来,但是到了咸鱼电信一查没有这个ip地址,然后就只能通过0.0.0.0/0的F0接口转发出去,但是他和输入进来的接口相同,所以就可以直接把这个数据报丢弃,也没啥大影响。

2. 最长前缀匹配原则
比如铁柱网吧嫌咸鱼电信网慢,又从县里的电信直连了一条网络,他分配的也必须是之前的子网的网络前缀,但是如果还按照路由聚合,就可能传的数据报可能还是从咸鱼电信转了一次,效率不高,所以这次的子网前缀就必须采用最长前缀原则。
简单一句话:谁前缀重复的多,就从谁那儿走。


3. 过程分析


4. 练习
