目录
4.1 网络层概述
4.2 网络层提供的两种服务
面向连接的虚电路服务
无连接的数据报服务
4.3 IPv4地址
IPv4地址概述
分类编址的IPv4地址
划分子网的IPv4地址
无分类编制的IPv4地址
IPv4地址的应用规划
4.4 IP数据报的发送和转发过程
4.5 静态路由配置
默认路由和特定主机路由
路由环路问题
4.6.1 路由器选择协议
英特网所采用的路由选择协议又三个特点:
常见的路由协议:
路由器的基本结构
关于路由表
6.1.2 路由信息协议RIP的基本工作原理
RIP的三个要点
RIP的基本工作过程
4.6.3 开放最短路径OSPF的基本工作原理
基本介绍
实现原理
OSPF有以下五种分组类型
OSPF的工作过程
OSPF在多点接入网络路由器中邻居关系的建立
4.6.4 边界网关协议BGP的基本工作原理
基本介绍
BGP发言过程
4.7 IPv4数据报的首部格式
网际控制报文协议ICMP
4.9 虚拟专用网VPN和网络地址转换NAT
VPN
网络地址转换NAT
网络层的主要任务是实现网络互连,进而实现数据包在网络之间的传输
网络层三个主要问题:
1、网络层向运输层提供怎样的服务(可靠传输还是不可靠传输)
2、网络寻址问题
3、路由选择问题
网络层(网际层)除了 IP协议外,还有之前介绍过的地址解析协议ARP(详细请看第三章数据链路层),还有网际控制报文协议ICMP,网际组管理协议IGMP。
小结
点分十进制表示法
转换关系就是简单的十进制和二进制之间的转换
不难发现,以上几种分类之间是互斥的。
A类地址
B类地址
C类地址
为什么要有这个概念:
1、IP地址的利用率有时候很低
2、给每一个物理网络分配一个网络号会使得路由表变得太大因而使网络性能降低
3、两级的IP地址不够灵活
假设我们要将原来的网络划分成几个网络,按照原有的思路,我们只能申请新的网络号,申请新的网络号会带来弊端。
1、花费时间和费用
2、增加其他路由器中路由表记录的数量
3、浪费原网络中剩余的大量IP地址
例如:
某一个大型局域网需要连接到因特网:
如何解决这个问题?
举例:
子网掩码存在的目的是为了确定有几位主机号被网络号(子网号)借用
子网源码使用连续的比特1来对应网络层和子网层
原有的IPv4地址和子网掩码相与可以获得IPv4地址所在子网的网络地址
划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址(主机地址)空间太小没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
因此因特网工程任务组IETF又提出了无分址编址方式来解决地址紧张的问题
举例:
IPv4地址的应用规划考虑得是给定一个IPv4地址块,如何将其划分成几个更小的地址块(来满足多子网划分),并将这些地址块分配给互联网中不同网络,进而可以给各网络中的主机和路由器接口分配IPv4地址。
IPv4的应用规划有两种,定长的子网掩码划分FLSM、变长的子网掩码划分VLSM。
1、定长的子网掩码划分FLSM
举例:
2、 变长的子网掩码划分VLSM
每个子块的起点位置不能随意选取,只能选取块整数倍的地址作为起点,也就是比特位置上2^n的位置。最好是先给大的子块分配。(保证同一个网络具有相同的子网掩码)
这种方法可以尽可能减少IP地址的浪费
IP数据包的发送和转发包含两个部分
1、主机发送IP数据报
2、路由器转发IP数据报
例如:
A网络和C网络之间要进行数据报交互
我们知道,同一网络之间的数据报可以直接发送,这属于直接交付,不同网络之间发送数据报需要经过路由器转发,这属于间接交付。
源主机如何判断目的主机是否和自己处在同一个网络中呢?
假设主机A要给主机D发送IP数据报,步骤如下:
(1)主机A将自己的IP地址与子网掩码相与,可以得到自己所在的网络地址。
(2)主机A知道主机D的IP地址,将自己的子网掩码和主机D的IP地址相与,如果结果和自己的网络地址相同,就知道处于同一个网络地址。反之则不在同一个网络,将IP数据报交给交换机转发。
(3)主机A将数据报交给自己的默认网关(默认路由器接口),由默认网关转发。
间接交付的过程:
需要注意的是,路由器是隔离广播域的,也就是广播只能在自己的网络范围内传播,路由器不会转发广播。
举例:静态路由配置
假设路由器R2要向最左边的网络发送数据报,而自己的路由条目中没有相关信息,这时候可以通过管理员配置一条静态路由条目,实现该转发。
如R1最后一条所示,除了确定的条目,其他路由条目都会被默认路由处理(默认路由也是人工设置)
如R1倒数第二条所示,在需要考虑某种安全问题或者网络管理人员对网络的管理和测试,可以针对某台特定主机设定一个特定路由,在路由表中为该主机设置一个路由条目。
由于错误添加下一跳IP产生的
由于添加了不存在的网络产生的
解决方法:添加黑洞路由
如果某一条链路损坏,也可以暂时设置黑洞路由
注意,4.6的内容都是关于动态路由选择的
路由器的选择协议分为两种:静态路由选择、动态路由选择
静态路由选择
动态路由选择:
1、自适应:动态路由选择,能较好的适应网络状态的变化。
2、分布式:路由器之间交换路由信息
3、分层次:将整个因特网划分成许多较小的自治系统
因特网分层次的路由选择协议举例:
将若干网络和路由器划分到一个自治系统中
自治系统之间使用外部网关协议EGP,自治系统内使用的是内部网关协议IGP
(这里的网关就是路由器早期的说法,另外上面提到的EGP和IGP就是两个名称,不是两个具体的协议)
路由器:具有多个输入端口和输出端口的专用计算机,其任务是转发分组
路由器主要有两部分组成:
1、路由选择部分
核心构件是路由选择处理机,根据路由选择协议,周期性的和其他路由器进行路由信息交互,构建路由表。
2、分组转发部分
主要有:交换结构、一组输入端口、一组输出端口
路由器的工作过程:
(1)物理层接收比特流信号,送链路层
(2)数据链路层从比特流中识别出帧,去掉帧头和帧尾后送网络层
(3)网络层根据分组类型处理,两种情况
如果是普通分组类型
(4)根据分组首部的目的地址进行查表(转发表)转发,找不到就丢弃
(5)网络层更新数据分组首部中某些字段的值,例如将数据分组的生存时间减1,送交数据链路层封装
(6)数据链路层封装成帧,送交物理层处理
(7)物理层将帧转换成比特流转发出去
完!
如果分组是路由器之间交换路由信息的路由报文
(4)将分组送交路由选择处理机
(5)路由选择处理机根据分组内容更新自己的路由表
完!
1、路由表一般仅包含从目的网络到下一跳的映射
2、路由表需要对网络拓扑变化的计算最优化
3、转发表是由路由表得出的
4、转发表的结构应当使查找过程最优化
(为了方便分析有时候我们并不严格划分路由表和转发表,更多说成路由表)
几个要点
路由选择处理机会周期性的向其他路由器发送自己知道的路由信息
路由去的各个端口还应该有输入缓冲区(暂存新进入来不及处理的分组)和输出缓冲区(暂存处理完毕来不及发送的分组)
每个端口其实都具备输入和输出的功能
需要注意的时,使用该协议一条路径最多包含15个路由器
当到达同一网络有多条“距离相等”的路由时,可以进行等价负载均衡。
1、仅和相邻路由器交换信息
2、交换自己的路由表
3、周期性交换
举例:
根据RIP协议,工作流程如下:
RIP路由协议的路由条目更新规则
C将自己的路由信息更新报文发送给D,同时将距离加一,下一跳设置为C (表示经过C转发)
C的路由表和D的路由表进行逐一比对,D根据C的报文更新自身的路由表
更新规则:
(1)新网络,更新
(2)更短的路径,更新
(3)发现网络拓扑发生改变,更新
(4)负载均衡,添加网络
(5)路径较长,不更新
RIP存在“坏消息传播得慢”的问题
图示线路出现故障,会发生下面的问题
即使采用了这个措施,也不能完全消除这个问题。
关于代价的计算
这里有一个重点,代价是由网络管理人员自行设定的,这里就体现出了和RIP协议(使用跳数)的一个不同之处。
1、OSPF相邻路由器之间通过交互问候分组(Hello),建立和维护邻居关系
协议号89表明使用的是OSPF协议
上面的接口指的是邻居和自己的哪个接口相连接
2、使用OSPF的每个路由器都会产生链路状态通告LSA
收到状态更新分组的路由器将从自己其他接口转发该分组(洪泛转发),让所有路由器都知道。
要点:
·使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA
·最终各路由器的LSDB达到一致,可用于计算最短路径(DJ算法)
3、构建各自的路由表
各个路由器计算自己到其他路由器的最短路径(DJ算法),不对该算法解释(数据结构课有学)
(1)先打个招呼(问候分组)
(2)描述分组,拿来比一下,要是都一样,就确认就好
(3)请求分组,需要哪些就请求哪些
(4)更新分组,回应请求分组
(5)完成所有,确定说再见
最终链路状态数据库同步
没必要所有路由器都互为邻居,避免发送太多Hello分组。
为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域
主干区域负责与其他自治系统进行通信。这样就可以减少整个网络上的通信量。
BGP属于外部网关协议EGP的一类
目前使用最多的版本为BGP-4
对于边界网关协议BGP,只能力求寻找一条能够到达目的的网络,且比较好的一条路由路径(不出现网络环路),并不是要找寻最佳路径。
根据以上步骤来构建出某个自治系统连通图
BGP适用于多级结构的因特网
BGP-4的四种报文
BGP刚运行时,BGP的临站会交换BGP路由表,以后只需要在路由情况发生变化时更新有变化的部分。
这样有利于节省网络带宽和减少路由器的处理开销。
生存时间TTL :防止IP数据报在网络中永久兜圈
常见ICMP询问报告报文共有以下两种:
概述:
一个问题:内网主机与外网主机的通信,是否能由外网主机首先发起?
如果要实现,需要一些NAT穿越技术(这里不做赘述)
至此,网络层的内容结束。
参考资料:湖南科技大学——计算机网络微课堂