1. 概述

  • 数据报和分组的关系:分组是一段比较长的数据,将它进行切割成一段段之后就得到数据报

    • 功能一:让数据在路由器之间走最佳的路径。
    • 功能二:让不同的设备(手机,电脑,平板等)都能正常连接。
    • 功能三:拥塞控制

      • 开环控制:在拥塞之前就提前设计解决。
      • 闭环控制:在拥塞时自动调整解决问题。


计算机网络笔记总结:Part4 网络层_子网

OSI参考模型

各层次的传输单元

应用层

报文

传输层

报文段

网络层

IP数据报,分组(如果IP数据报太大就切割成分组)

数据链路层

物理层

比特流

2. 数据交换方式(3种)

计算机网络笔记总结:Part4 网络层_子网_02

2.1 电路交换

计算机网络笔记总结:Part4 网络层_ip地址_03

2.2 报文交换

计算机网络笔记总结:Part4 网络层_ip地址_04

2.3 分组交换

计算机网络笔记总结:Part4 网络层_子网_05

2.4 分组交换和报文交换的具体计算对比


报文交换:一共三段,每段都需要10000bit/1000bps=10s,三段就是3x10=30s
分组交换:可以分为两段,一个是第一个数据开始发到最后一个数据从源发出,一段是最后一个数据到达目的地。第一段总时间是10000bit/1000bps=10s,第二段总时间是(10/1000)*2=0.02s,所以总时间是10.02s。
理解一下,这里就是报文交换的时候,由于报文没有分割,所以即使先到的数据也不能先发走,只能等到最后一段报文全部到了之后才能一起走,相对于分组交换明显拖慢了前面数据的速度,所以导致报文交换明显慢于分组交换
可以看到分组交换明显快于报文交换,所以我们通常使用分组交换.


计算机网络笔记总结:Part4 网络层_数据_06

三种方式对比:

计算机网络笔记总结:Part4 网络层_子网_07

2.4.1 分组传输的两种传输方式-数据报与虚电路

计算机网络笔记总结:Part4 网络层_ip地址_08

计算机网络笔记总结:Part4 网络层_ip地址_09

数据报

计算机网络笔记总结:Part4 网络层_数据_10

虚电路

计算机网络笔记总结:Part4 网络层_子网_11

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mjkvPp3K-1619260554696)(计算机网络Part4 网络层.assets/image-20210423200034150.png)]

3. 路由算法和路由协议概述

计算机网络笔记总结:Part4 网络层_子网_12

计算机网络笔记总结:Part4 网络层_数据_13

计算机网络笔记总结:Part4 网络层_数据_14

3.1 RIP协议和距离向量算法

3.1.1 RIP协议概述

通过交换信息构建路由表

计算机网络笔记总结:Part4 网络层_ip地址_15

3.1.2 如何建立路由表

计算机网络笔记总结:Part4 网络层_数据_16

3.1.3 RIP协议报文格式

计算机网络笔记总结:Part4 网络层_数据_17

3.1.4 RIP协议特点

就是来回更新路由表,错误信息被覆盖,导致直至达到距离上限强制错误时才可以得知出错

计算机网络笔记总结:Part4 网络层_数据_18

计算机网络笔记总结:Part4 网络层_子网_19

计算机网络笔记总结:Part4 网络层_ip地址_20

计算机网络笔记总结:Part4 网络层_ip地址_21

3.1.5 距离向量算法

计算机网络笔记总结:Part4 网络层_数据_22

计算机网络笔记总结:Part4 网络层_ip地址_23

计算机网络笔记总结:Part4 网络层_数据_24

3.2 OSPF协议和链路状态算法

3.2.1 OSPF协议概述

计算机网络笔记总结:Part4 网络层_数据_25

3.2.2 OSPF的其他特点

为什么OSPF收敛速度快?因为它只是刷新一下链路状态,得知其是否连通,不需要和RIP一样进行对照,而是直接通过Dijilstra算法来自己算出路径

计算机网络笔记总结:Part4 网络层_子网_26

3.2.3 链路状态路由算法

了解即可

计算机网络笔记总结:Part4 网络层_ip地址_27

3.2.4 OSPF区域

了解即可

计算机网络笔记总结:Part4 网络层_子网_28

3.2.5 OSPF分组(了解即可)

计算机网络笔记总结:Part4 网络层_数据_29

3.3 BGP协议

3.3.1 BGP协议简介

计算机网络笔记总结:Part4 网络层_数据_30

3.3.2 BGP协议交换信息的过程

了解即可,只需要知道BGP交换协议里面交换的是一组路径向量

计算机网络笔记总结:Part4 网络层_ip地址_31

计算机网络笔记总结:Part4 网络层_数据_32

计算机网络笔记总结:Part4 网络层_数据_33

3.3.3 BGP协议报文格式(BGP是应用层协议)

计算机网络笔记总结:Part4 网络层_ip地址_34

3.3.4 BGP协议特点

计算机网络笔记总结:Part4 网络层_子网_35

3.3.5 BGP的四种报文

计算机网络笔记总结:Part4 网络层_数据_36

3.4 三种路由协议的比较

计算机网络笔记总结:Part4 网络层_ip地址_37

计算机网络笔记总结:Part4 网络层_ip地址_38

4. IP数据报

4.1 IP数据报格式

名称

注释

大小

版本 Version

ipv4或者ipv6

4位

首部长度 IHL

此处数值再乘以4才是真正大小,同时因为IP数据报固定长度为20字节,所以此处最小值为5,即二进制的0101

4位

区分服务 DSCP + ECN

希望获得哪种服务,用的比较少

8位

总长度 Total Length

首部+数据的长度,最大为2^16-1=65535

16位

标识 Identification

用来表示是哪一个数据报的分片,不同的分片标识各不相同

8位

标志 Flags

用来表示是否分片和分片是否结束

3位,但实际有用的只有后两位

片偏移 Fragment Offset

用来标记分片之后,该分片在原来的数据报的位置,以8字节为单位

13位

生存时间 Time To Live

即TTL,没经过一个路由器TTL-1,0时自动放弃,根据系统不同默认的TTL不同

8位

协议 Protocol

用来标记协议名的字段值,如TCP,UDP,ICMP等等

8位

首部检验和 Header Checksum

检验首部的字段是否出错,出错就丢弃此数据报

源地址 Source IP Address

发送方ip地址

32位

目的地址 Destination IP Address

接收方ip地址

32位

可选字段 Options

用来排错等安全检测

未知,可在0-40位之间

填充

将数据报对齐成4字节的整数倍,数值全部为0

未知,根据可选字段来定

计算机网络笔记总结:Part4 网络层_ip地址_39

计算机网络笔记总结:Part4 网络层_子网_40

计算偏移量时记住是以0开始的就行,以每一篇最开始的除以8得到的数值就是偏移量

MF和DF的定义见上图

计算机网络笔记总结:Part4 网络层_ip地址_41

5. IP

5.1 ipv4地址

全球唯一的表示某一个主机或者路由器接口的编码。

5.1.1 ip地址分类

计算机网络笔记总结:Part4 网络层_ip地址_42

5.1.2 特殊ip地址

计算机网络笔记总结:Part4 网络层_ip地址_43

5.1.3 私有ip地址

计算机网络笔记总结:Part4 网络层_ip地址_44


  • 为什么A类最大是​​126.xxx.xxx.xxx​​?
    • 因为网络号最开始第一位是0,一共八位,所以二进制表示位​​0xxxxxxx​​​,最大就是​​2^7-1=127​​​,但是因为​​127.xxx.xxx.xxx​​是特殊ip地址,所以将其去掉。
  • 为什么B类最大是​​191.255.xxx.xxx​​?
    • 因为网络号最开始第一位是10,一共八位,所以二进制表示位​​10xxxxxx​​​,最大就是​​10111111=191​​​,最小就是​​10000000=128​​,无特殊ip地址。
  • 为什么C类最大是​​223.255.xxx.xxx​​?
    • 因为网络号最开始第一位是110,一共八位,所以二进制表示位​​110xxxxx​​​,最大就是​​11011111=223​​​,最小就是​​10000000=192​​,无特殊ip地址。

计算机网络笔记总结:Part4 网络层_ip地址_45

5.2 网络地址转换NAT

注释:连接内网和外网,就是找个代理的用它的ip地址与外面收发数据

NAT需要构建NAT转换表,既要存广域网(WAN,外网)也要存局域网(LAN,内网)的ip地址和端口号

计算机网络笔记总结:Part4 网络层_数据_46

5.3 子网划分和子网掩码

5.3.1 为什么需要子网划分

由于ip地址不够用,所以需要额外子网扩展ip。

计算机网络笔记总结:Part4 网络层_子网_47


  • 为什么子网好能全0或者全1:因为CIDR编址(可见下一段)。
  • 为什么主机号不能全0或者全1:因为全0代表本网络,全1代表广播分组。

计算机网络笔记总结:Part4 网络层_ip地址_48

计算机网络笔记总结:Part4 网络层_数据_49

5.3.2 子网掩码


  • 子网掩码就是用来和ip地址一起计算子网的地址的。
  • 方法就是讲子网掩码逐位写成二进制然后而原来ip地址进行与运算,就可以得到子网ip地址。因为255是11111111,所以如果写着255的话,ip地址和子网ip地址对应的地方的数值就相同。

计算机网络笔记总结:Part4 网络层_数据_50

计算机网络笔记总结:Part4 网络层_子网_51

这道题可以看出来,即使子网掩码不同,相同ip地址对应的子网ip地址也可能相同
但是子网掩码不同,划分的**子网数目不同**
为什么划分的子网数目不同?或者说怎么算划分的子网位数目?
以255.255.192.0为例,255是11111111即八个1,192是11000000即2个1,一共是8*2+2=18个1,一共有32位地址,所以剩余有32-18=14位
以255.255.224.0为例,255是11111111即八个1,224是11100000即3个1,一共是8*2+3=19个1,一共有32位地址,所以剩余有32-19=13位

计算机网络笔记总结:Part4 网络层_子网_52

这道题先将255.255.252.0计算出一共有8+8+6=22位网络号位
所以就有32-22=10位主机号位
将180.80.77.55解析,可以知道在77部分某部分开始会用来表示主机号位
77的二进制是0100 1101,因为一共有22位网络号位,所以010011 (此处分开) 01,从这个01开始是主机号位。
所以用来表示子网ip地址的应该是180.80.76(010011 00).xxx PS注意76括号内后两位二进制00
但是本体是发布广播地址,所以主机号全部都要是1
所以应该是180.80.79(010011 11).255(11111111)注意79括号内后两位二进制11

1.这里特定主机路由就是指找特定的处理这里这个ip地址的路由。

2.默认路由会将这个数据报发给另一个路由,直至找到对应的路由,或者TTL耗尽被丢弃。

计算机网络笔记总结:Part4 网络层_子网_53

5.4 无分类编制CIDR

计算机网络笔记总结:Part4 网络层_数据_54

使用CIDR可以聚合网络:

如图,通过缩短前缀,R1和R2就可以合并在​​206.1.0.0/16​​的子网下

但是这样转发表之中就会有多个匹配结果,所以我们使用最长前缀匹配

计算机网络笔记总结:Part4 网络层_数据_55

例题:

计算机网络笔记总结:Part4 网络层_子网_56

最长前缀匹配就是在计算后符合同一子网的时候,选前缀越长的

这道题选B

计算机网络笔记总结:Part4 网络层_ip地址_57

因为本网络是​​192.168.5.0/24​​​,就是​​192.168.5.(0000 0000)/24​​​,将248写成二进制是​​11111 000​​,有五个1,所以前五位都可以作为子网的编号,剩下的三位就是用来分配子网内剩余的地址了,因为不能全0或者全1,所以还要减2

5.5 ARP协议

计算机网络笔记总结:Part4 网络层_ip地址_58

计算机网络笔记总结:Part4 网络层_数据_59

5.6 DHCP协议

计算机网络笔记总结:Part4 网络层_数据_60

5.7 ICMP协议

5.7.1 ICMP协议概述

ICMP,IGMP处于网络层和传输层之间,就是为了更好地转发ip数据报和提高交互成功的几率。

计算机网络笔记总结:Part4 网络层_子网_61

5.7.2 ICMP差错报告报文

ICMP差错报告报文如何与IP数据报结合

计算机网络笔记总结:Part4 网络层_ip地址_62

五种ICMP差错报文

其中源点抑制已废弃不用。

计算机网络笔记总结:Part4 网络层_ip地址_63

四种不发送ICMP差错报文的情况

注释:组播是指由一点到多点,但不是无脑发到所有点,无脑发到所有点的是广播,组播有筛选条件。

计算机网络笔记总结:Part4 网络层_数据_64

5.7.3 ICMP询问报文

四种ICMP询问报文

后两种是掩码地址请求和回答报文,路由器询问和通告报文,这两个已经废弃不再使用

计算机网络笔记总结:Part4 网络层_子网_65

5.7.4 ICMP的应用

1.ping命令:测试两个主机之间连通性,使用了ICMP回送请求和回答报文

2.traceroute命令:跟踪一个分组从原点到终点的路径,使用了ICMP时间超过差错报告报文

​traceroute命令讲解​

6. IPV6

6.1 为什么会有IPV6

就是IPV4地址用完了,从根本上增加ip地址数目,之前讲的NAT和CIDR也只是在IPV4的基础上扩展了IPV4地址数目,治标不治本。

计算机网络笔记总结:Part4 网络层_子网_66

6.2 IPV6地址表示形式

计算机网络笔记总结:Part4 网络层_数据_67

6.3 IPV6数据报格式

名称

作用

位数

版本 Version

知名协议版本,此处因为是ipv6所以总是6

4位

优先级 Traffic Class

又来区分数据报的类型和优先级

8位

流标签 Flow Label

和ipv4标识某个数据报分片不同,这是对于一整个数据报流的标记

19位

有效载荷长度 Payload Length

指的是扩展首部+数据部分的大小,和ipv4的总长度和首部长度都不同,ipv6的首部长度是固定的40字节

16位

下一个首部 Next Header

基本首部的下一个首部指的是有效载荷里标记的的扩展首部,有效载荷里的扩展首部再指向有效载荷里标记的的扩展首部,直至最后指向数据

8位

跳数限制 Hop Limit

基本相当于ipv4当中的TTL,每到一个路由器-1.减到0时丢弃

7位

源地址 Source Address

发送方ipv6地址

128位

目标地址 Destination Address

接收方ipv6地址

128位

计算机网络笔记总结:Part4 网络层_ip地址_68

6.4 IPV4和IPV6的区别

计算机网络笔记总结:Part4 网络层_ip地址_69

6.5 IPV6基本地址类型

名称

作用

要求

单播

一对一通信

可做源地址,目的地址

多播

一对多通信,以前的广播地址当做覆盖所有主机的多播

可做目的地址

任播

一对多当中的一个通信,看似一对多,实则一对一

可做目的地址

6.6 IPV4和IPV6之间的过渡

如果是ipv6的数据报到了ipv4,就用ipv4重新封装,把ipv6数据报前面加上ipv4伪装成ipv4数据报继续传输,直至到了ipv6路由再解开ipv4伪装

计算机网络笔记总结:Part4 网络层_子网_70

7. IP组播(多播)

7.1 什么是组播

单播只能一对一,广播必须一对全部,组播就可以是一对全部中的一部分。

计算机网络笔记总结:Part4 网络层_子网_71

辅助理解:单播所占资源多。

计算机网络笔记总结:Part4 网络层_ip地址_72

组播明显减轻了压力。

计算机网络笔记总结:Part4 网络层_ip地址_73

7.2 IP组播地址

计算机网络笔记总结:Part4 网络层_ip地址_74

7.3 硬件组播

就像全F的mac地址代表广播一样,00-10-5E打头的MAC地址就代表组播。

7为什么最大是00-10-5E-7F-FF-FF?因为只有最后23位决定。

计算机网络笔记总结:Part4 网络层_数据_75

7.4 IGMP协议与组播路由选择协议

7.4.1 IGMP协议

注释:IGMP只能知道有没有组播组成员,对有几个组播组成员,成员在哪个地方都不知道。

计算机网络笔记总结:Part4 网络层_数据_76

计算机网络笔记总结:Part4 网络层_数据_77

7.4.2 组播路由选择协议

有了这个,成员可以自行找到转发组,自行决定参加哪个组播(就像电视机选台一样)。

计算机网络笔记总结:Part4 网络层_数据_78

计算机网络笔记总结:Part4 网络层_ip地址_79

8. 移动IP

移动IP不等于动态IP(DHCP获得的)。

移动IP的可以让用户因为地理原因等等,即使不在内网也可以访问内网的东西。

8.1 移动IP的相关术语

计算机网络笔记总结:Part4 网络层_数据_80

8.2 移动IP通信过程

计算机网络笔记总结:Part4 网络层_子网_81

计算机网络笔记总结:Part4 网络层_ip地址_82

9. 网络层设备

9.1 路由器

9.1.1 路由器的构造

计算机网络笔记总结:Part4 网络层_子网_83

9.1.2 路由器的输入输出端口构造

计算机网络笔记总结:Part4 网络层_子网_84

计算机网络笔记总结:Part4 网络层_数据_85

9.1.3 集线器,网桥,路由表几层设备比较

计算机网络笔记总结:Part4 网络层_ip地址_86

9.1.4 路由器的路由表和转发表

这里实际上就是对前面知识的复习了

计算机网络笔记总结:Part4 网络层_子网_87

10. 本章思维导图

计算机网络笔记总结:Part4 网络层_数据_88