文章目录
计算机网络专题复习(网络层)
一,网络层概述
作者今年大三,正在准备明年的春招,文章中有写得不对的,希望大家及时指出文章中的错误的地方,欢迎互粉,大家一起努力!
网络层的主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,传输单位时数据报
网络层功能:
- 路由选择和分组转发
- 实现异构网络互连
- 拥塞控制
二,数据交换
数据交换方式
电路交换
电路交换的优点:
- 通信时延小
- 有序传输
- 没有冲突
- 实时性强
缺点:
- 建立连接时间长
- 灵活性差
- 线路独占,使用效率低
- 无差错控制能力
报文交换
什么是报文?
报文就是指源应用发送的信息整体
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 多目标服务
缺点:
-
有存储转发时延,存储转发是先将报文转发到交换设备,交换设备待有空闲线路在转发报文,所以相对电路交换存在一定的转发时延
-
报文大小不定,需要网络有较大的节点空间
分组交换
什么是分组?
分组是指把大的数据块分割成小的数据块
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 相对于报文交换,存储管理更容易
缺点:
- 有存储转发时延
- 需要传输额外的信息量
- 乱序到目的主机时,要对分组排序重组
数据报方式和虚电路方式
数据报方式:
- 数据报方式为网络层提供无连接服务
虚电路方式:
- 虚电路方式为网络层提供连接服务
连接服务和无连接服务
连接服务:
- 首先为分组的传输确定传输路径(即建立连接),然后沿着该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后断开该连接
无连接服务:
- 不事先为分组的传输建立连接,每个分组独立确定传输路径,不同分组传输路径可能不同
总结下:
- | 数据报服务 | 虚电路服务 |
---|---|---|
连接的建立 | 不需建立连接 | 需事先建立连接 |
目的地址 | 每个分组都携带完整的目的地址 | 仅仅在建立连接阶段使用,之后每个分组使用较短的虚电路号 |
路由选择 | 每个分组独立的进行路由选择和转发 | 属于同一条虚电路的分组按照统一路由转发 |
分组排序 | 不保证分组的按序到达 | 保证分组的按序到达 |
可靠性 | 不保证可靠通信,可靠性由主机保证 | 可靠性由网络保证 |
对网络故障的适应性 | 出故障的节点丢失分组,其他分组路径选择发生变化,可以正常传输 | 所有经过故障节点的虚电路均不能正常工作 |
差错处理和流量控制 | 用户主机进行流量控制,不保证数据报的可靠性 | 可由分组交换网负责,也可由用户主机负责 |
三,路由转发
上边我们提到分组的数据报方式是分组自己确定路径,其实,这是通过路由转发算法实现的
路由表:
每一个路由器都会维护一个路由表或者说是转发表
<目的网络 N,跳数,下一跳地址>
路由算法
路由算法分为静态路由算法(非自适应路由算法)和动态路由算法(自适应路由算法)
- 静态路由算法是管理员手工配置路由信息,简便,可靠,再负荷稳定,拓扑变化不大的网络中效果加好,广泛用于安全性高的军事网络和较小的商业网络,不适用于大型网络
- 动态路由算法是由路由器间彼此交换信息,按照路由算法优化出路由表的表项,路由更新快,适用于大型网络
两个经典的动态路由算法是:
-
距离向量路由算法
如下,有 B,C 两个路由器的路由表。B,C 为相邻路由器,现在 C 向 B 发送 RIP 报文,求 B 更新后的路由表
B 的路由表
C 的 RIP 报文中的路由表
解:-
将 RIP 报文的下一跳地址改为 C 且跳数增加 1
-
与原路由表(B 的路由表)比较并更新
a.因为 C 路由表中并无关于 N1,N6 和 N9 的信息,所以原路由表保存不变
b.对于 N2,目的网络一样,下一跳地址一样(同为 C),所以更新跳数为 16
c.对于 N3,因为原路由表中无该项,所以直接添加。N4 和 N7 同理添加
d.对于 N8,目的网络一样,但下一跳不一样,选择距离短(跳数少的添加),所以更新为 C 路由表的信息、
更新后的 B 路由表
-
-
链路状态路由算法
路由转发协议
分层次的路由转发协议
内部网关协议RIP:
在一个自治系统内部使用的路由选择协议,与互联网中的其他自治系统选用什么路由协议无关,不希望外界知道自己使用什么路由协议
一个经典的内部网关协议就是RIP协议
RIP协议(也叫路由信息协议),是基于距离向量算法的路由协议,在带宽,配置和管理方面要求较低,主要适用于较小规模的网络
和哪些路由器交换信息?
仅仅和相邻的路由器交换信息,如果两个路由器之间的通信不需要经过另一个路由器,那么这两个路由器就是相邻的,不相邻的路由器不能交换信息
交换什么信息?
交换的信息是路由器的路由表(该路由器到其自治系统中所有网络的最短距离,以及到每个网络应该经过的下一个路由器)
什么时候交换一次信息?
按照固定时间间隔交换路由信息
工作示意图:
内部网关协议OSPF
Open Shortest Path First, 开放最短路径优先协议,是一种开源的使用最短路径优先(SPF)算法的内部网关协议(IGP)。常用于路由器的动态选路。
和哪些路由器交换信息
向本自治系统所有的路由器发送信息,路由器通过所有输出端口向所有相邻的路由器发送信息,每一个相邻的路由器又再将此信息发送给所有相邻的路由器
交换什么信息?
交换的信息是该路由器相邻的所有的路由器的链路状态
什么时候交换?
只有链路状态发生变化时才交换信息
算法原理
Dijkstra最短路径算法
工作过程描述
当链路状态发生变化到链路状态信息交换完成后,每一个路由器都有整个区域网络的所有路由器的链路状态信息,此时在通过最短路径算法对这些信息进行处理,从而每个路由器都知道到达所有路由器的最短链路
四,IP协议
1.IP地址
IP地址(IPv4)由32位正整数来表示。通常每一个主机都被分配了一个这样的IP地址。作为该计算机在网络中的标识
2.表示方法
IP地址 ::= {<网络号>,<主机号>}
注意:
- 一个网络号在整个互联网范围内是必须唯一的
- 一个IP地址在整个互联网范围内是惟一的
3,分类
分类总结
-
A类地址从1到8位是网络标识,后28位是主机标识,以“0”开头,所以它的十进制表示范围是0.0.0.0~127.0.0.0。(十进制二进制的转换这个不用说吧)
-
B类地址从1到16位是网络标识,以“10”开头,所以它的十进制表示范围是128.0.0.1~191.255.0.0
-
C类地址从1到24位为它的网络标识,以“110”开头,它的十进制表示范围是192.168.0.0~239.255.255.0。
-
D类地址的32位都是网络标识,它没有主机标识,以“1110”开头,它常被用于多播。
4,IP层
1.ARP协议
已知自己IP地址和对方IP地址,解析出对方物理地址
ARP高速缓存
类似数据库和redis之间的关系,我们每一台主机上都设有一个ARP高速缓存,里面有本局域网上的个主机和路由器的IP地址和物理地址的映射表,在发送ARP请求时会先查缓存,缓存没有才发请求,请求结束得到响应后将新的IP地址和物理地址存入缓存
2,ICMP协议
更有效的转发IP数据报和提高数据报交付成功的机会,ICMP允许主机或者路由器报告差错情况和有关异常情况的报告
报文种类
- 差错报告报文
- 终点不可达
- 时间超过
- 参数问题
- 路由改变
- 询问报文
- 回送请求和回答
- 时间戳请求和回答
5,IP首部
- 版本:占4位字,现今主流的两种版本为IPv4与IPv6;
- 首部长度:占4位字,记录IP数据报文首部的大小,在数据报首部中一个32字等于4字节,通常IP数据报的首部并不需要增加额外的参数,所以此处一般为4*5=20字节
- 总长度:占16位字,记录该数据报(如数据报过大被分片则为每一段数据报的长度,而不是完整数据报的长度)的长度;
- 标识:占16位字,每生成一个数据报的分片,这个值都会加一,最后的值会复制给其他该报的分片,当数据报到达目的地址后就靠这个值来标识哪些部分原本是一个整体;
- 标志:占3位字,最高位是待扩展的,现在只能为0,中位DF为0时表明允许分片,为1时表明不能分片。最低位为1时表明后面还有分片,为1时表明这是最后一个分片了;
- 片偏移:占13位字,第一个分片的片偏移为0,从第二个分片开始片偏移为前一个分片的大小
- 生存时间:占4位字,路由器在转发数据报之前就把该值减一,如果在转发之前这个值为零,就会把它丢弃,不会转发。这是防止一些无用的数据报一直在网络中传递,浪费网络资源;
- 协议:占8位字,该值指出这个数据报携带的数据用的是什么协议,以使目的主机的IP层知道应该将数据部分上交给哪个处理过程。常见的TCP:6、UDP:17;
- 首部检验和:占16位字,每次路由的转发,数据报的首部都会改变,比如生存时间TTL每一次就要减一,所以每次路由器接收到数据报后就要检查首部检验和是否正确,具体检验计算方法为:发送方把首部检验和的值置0,然后把首部的数据按每16位字分段,然后把它们作反码相加,得到的值放到首部检验和中。接收方收到后一样把首部的数据按16位字分段,然后采取反码相加,如果结果为0,则这个数据报与发送时的数据一致;
- 源地址:占32位字,即发送数据主机的IP地址;
- 目的地址:占32位字,即要送达的目的主机的IP地址;
6,IPV-6
我们都知道IP地址是互联网中主机的唯一标识,IP也是互联网中的核心协议,但是现在使用IPV4是20世纪70年代末期设计的,到如今IPV4地址已经耗尽,也就是说不能再分配新的IP地址块,因此需要解决这个问题,才有了IPV6,我们老师说,地球上沙子的数量相当于IPV6地址的数量,可见,这数量之多,但是未来或许也会面临同样的危机,这就不在我们思考的范围内了
IPV6是具有更大空间地址的新版本IP
IPV6首部
IPV6和IPV4的区别
-
IPV6所引进的主要变化:
-
更大的地址空间,IPV4是32位,IPV6是128位
-
地址层次结构得到扩展,因为IPV6长度增大,所以可以划分更大的层次
-
灵活的首部格式,IPV6首部和IPV4首部不兼容,且IPV6定义了很多可选的扩展首部,不仅可以提供比IPV4更多的功能,还可以提高路由器的处理效率,路由器对扩展首部不处理
-
IPV6首部长度固定,选项放在有效负载中,IPV4则相反
-
IPV6可以允许协议扩展
-
IPV6取消了检验和字段,增加了路由器处理效率
-
TTL改为跳数限制
IPV6表示方法:
1.第一种是冒分16进制表示法
格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
这种表示法中,每个X的前导0是可以省略的,例如:
2001:0DB8:0000:0023:0008:0800:200C:417A
压缩:
2001:DB8:0:23:8:800:200C:417A
2,第二种是0位压缩法
在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
FF01:0:0:0:0:0:0:1101 → FF01::1101
0:0:0:0:0:0:0:1 → ::1
0:0:0:0:0:0:0:0 → ::