注:前言、目录见 https://blog.csdn.net/qq_44220418/article/details/108428971
一、网络层提供的两种服务
{ 面 向 连 接 虚 电 路 服 务 无 连 接 数 据 报 服 务 \begin{cases} 面向连接 & 虚电路服务 \\ 无连接 & 数据报服务 \end{cases} {面向连接无连接虚电路服务数据报服务
因特网提供的服务只有无连接的服务
1、虚电路服务
主机H1发送给主机H2的所有分组都沿着同一条虚电路传送
这只是逻辑上的连接,连接后其他主机也可以使用这条虚电路的一部分
2、数据报服务
主机H1发送给主机H2的分组可能沿着不同路径传送
3、虚电路服务与数据报服务的对比
对比的方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应该由用户主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 不一定按发送顺序到达终点 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
4、互联网采用的设计思路
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
二、网际协议IP
1、异构网的问题
-
如果要在全世界范围内把数以百万计的网络都互联起来,并且能够互相通信,其中会遇到许多问题需要解决
- 不同的寻址方案
- 不同的最大分组长度
- 不同的网络接入机制
- 不同的超时控制
- 不同的差错恢复报告
- 不同的状态报告方法
- 不同的路由选择技术
- 不同的用户接入控制
- 不同的服务(面向连接服务和无连接服务)
- ……
2、虚拟互连网络
网络互相连接起来要使用一些中间设备,中间设备又称中间系统或中继器
- 物理层中继系统:转发器(转发器和集线器是不同的)
- 链路层中继系统:网桥或桥接器(网桥包含了交换机)
- 网络层中继系统:路由器
- 网络层以上的中继系统:网关
利用IP协议,可以把各种异构的网络连接在一起,在网络层看起来好像是一个统一的网络
3、IP地址与硬件地址
(1).IP地址
IP地址就是给每个连接在因特网上的主机分配的一个32位地址
-
每一类地址都由两个固定长度的字段组成,其中
- 一个字段是 网络号,它标志主机(或路由器)所连接到的网络
- 一个字段是 主机号,它标志该主机(或路由器)
- IP地址 : : = { < 网 络 号 > , < 主 机 号 > } ( “ : : = ” 代 表 “ 定 义 为 ” ) \text{IP地址}::=\{<网络号>, <主机号>\}(“::=”代表“定义为”) IP地址::={<网络号>,<主机号>}(“::=”代表“定义为”) IP地址的编址方法
- 分类的IP地址
- 子网的划分
- 构成超网
网络数 | 主机数 | 第一个可用网络号 | 最后一个可用网络号 | |
---|---|---|---|---|
A类 | 2 7 − 2 2^7 - 2 27−2 | 2 24 − 2 2^{24} - 2 224−2 | 1 1 1 | 126 126 126 |
B类 | 2 14 2^{14} 214 | 2 16 − 2 2^{16} - 2 216−2 | 128.0 128.0 128.0 | 191.255 191.255 191.255 |
C类 | 2 21 2^{21} 221 | 2 8 − 2 2^8 - 2 28−2 | 192.0.0 192.0.0 192.0.0 | 223.255.255 223.255.255 223.255.255 |
{ 主 机 号 全 0 主 机 地 址 主 机 号 全 1 广 播 地 址 \begin{cases} 主机号全0 & 主机地址 \\ 主机号全1 & 广播地址 \end{cases} {主机号全0主机号全1主机地址广播地址
-
IP地址的一些特点
- ① IP地址是一种 分类别的地址结构
- ② IP地址实际上是标志一个主机(或路由器)和一条链路的接口
- ③ 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都 具有同样的网络号
- ④ 所有分配到网络号的网络都是平等的 注意点
- 在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的
- 路由器总是具有两个或两个以上的IP 地址,路由器的每一个接口都有一个不同网络号的IP地址
(2).IP 地址与硬件地址
网络层及以上使用IP地址,链路层及以下使用硬件地址
-
在通信过程中
- 路由器只根据目的站的IP地址的网络号进行路由选择
- 在具体的物理网络的链路层只能看见MAC帧而看不见IP数据报
- IP层抽象的互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象IP地址研究主机和主机或主机和路由器之间的通信
4、地址解析协议ARP和逆地址解析协议RARP
(1).地址解析协议ARP
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址
每一个主机都设有一个ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址
-
ARP高速缓存的作用
- 为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组。
- 当主机B收到A的ARP请求分组时,就 将主机A的这一地址映射写入主机B自己的ARP高速缓存中, 这对主机B以后向A发送数据报时就更方便了 注意
- ① ARP是解决 同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
- ② 如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于 本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把 分组转发给下一个网络,剩下的工作就由下一个网络来做
- ③ 从IP地址到硬件地址的解析是自动进行的,这种解析过程对用户透明
- ④ 只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址 使用ARP的四种典型情况
-
① 发送方是主机,要把IP数据报发送到本网络上的另一个主机
这时用 ARP 找到目的主机的硬件地址 -
② 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机
这时用 ARP 找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成 -
③ 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机
这时用 ARP 找到目的主机的硬件地址 -
④ 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机
这时用 ARP 找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成
(2).IP数据报的格式
-
IP数据报格式
- 一个IP数据报由首部和数据两部分组成
- 首部的前一部分是固定长度,共20字节;首部的固定部分的后面是一些可选字段,其长度是可变的
- 版本——占 4 位,指IP协议的版本,目前的IP协议版本号为4(IPv4)
- 首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为4字节),因此 IP的首部长度的最大值是 60 字节
- 区分服务——占 8 位,只有在使用区分服务时,这个字段才起作用,在一般的情况下都不使用这个字段
- 总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节, 总长度必须不超过最大传送单元 MTU
- 标识——占 16 位,它是一个计数器,用来产生数据报的标识
- 标志——占 3 位,目前只有前两位有意义 { 标 志 字 段 的 最 低 位 是 MF { MF = 1 表 示 后 面 还 有 分 片 MF = 0 表 示 最 后 一 个 分 片 标 志 字 段 的 最 低 位 是 DF — — 只 有 当 DF = 0 时 才 允 许 分 片 \begin{cases} 标志字段的最低位是\text{MF} \begin{cases} \text{MF}=1 & 表示后面还有分片 \\ \text{MF}=0 & 表示最后一个分片 \end{cases} \\ \\ 标志字段的最低位是\text{DF}——只有当\text{DF}=0时才允许分片 \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧标志字段的最低位是MF{MF=1MF=0表示后面还有分片表示最后一个分片标志字段的最低位是DF——只有当DF=0时才允许分片
-
片偏移——占 12 位,较长的分组在分片后某片在原分组中的相对位置,片偏移以 8 个字节为偏移单位
-
生存时间——占 8 位,记为TTL,数据报在网络中可通过的路由器数的最大值
任意一条路径上通过的路由器不能超过255
TTL初值设为255,每经过一个路由器值减1
TTL值为252可知,经过了3个路由器 -
协议——占 8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程
- 首部检验和——占16 位,只检验数据报的首部、不检验数据部分,这里不采用 CRC 检验码而采用简单的计算方法
- 源地址、目的地址——各占 4 字节
(3).IP层转发分组的过程
每个路由器的路由表应为以下格式:
目的主机所在的网络(网络号) | 下一跳地址 |
---|---|
-
查找路由表
- IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)
- 只有到达最后一个路由器时,才试图向目的主机进行直接交付 默认路由
- 路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间
- 如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的 注意
- IP数据报的首部中没有地方可以用来指明“下一跳路由器的IP地址”
- 当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是送交下层的网络接口软件
- 网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个 硬件地址找到下一跳路由器 分组转发算法
- ① 从数据报的首部提取目的主机的IP地址D, 得出目的网络地址为N
- ② 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行步骤③
- ③ 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行步骤④
- ④ 若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行步骤⑤
- ⑤ 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行步骤⑥
- ⑥ 报告转发分组出错
三、划分子网和构造超网
-
在 ARPANET 的早期,IP 地址的设计确实不够合理
- IP 地址空间的利用率有时很低
- 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏
- 两级的 IP 地址不够灵活
1、划分子网
(1).介绍
从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址
从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。
IP 地 址 : : = { < 网 络 号 > , < 子 网 号 > , < 主 机 号 > } {\color{blue}\text{IP}地址 ::= \{<网络号>, <子网号>, <主机号>\}} IP地址::={<网络号>,<子网号>,<主机号>}
这种做法叫作划分子网
划分子网已成为因特网的正式标准协议
(2).基本思路
划分子网纯属一个单位内部的事情,单位对外仍然表现为没有划分子网的网络
凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号,先找到连接在本单位网络上的路由器,然后此路由器在收到 IP 数据报后,再按目的网络号和子网号找到目的子网,最后就将 IP 数据报直接交付目的主机
(3).子网掩码
从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分
使用子网掩码可以找出 IP 地址中的子网部分
子网掩码由若干个连续的1和连续的0组成,将IP地址与子网掩码逐位相与,即可得到网络地址
不同的子网掩码可以得出相同的网络地址,但不同的掩码的效果是不同的
路由器的路由表中应该存放子网掩码
目的网络 | 子网掩码 | 下一跳 |
---|---|---|
(4).分组转发(使用子网)
-
分组转发算法
- ① 从数据报的首部提取目的主机的IP地址D
- ② 判断是否直接交付,对路由器直接相连的网络进行检查:先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付;否则就是间接交付,执行步骤③
- ③ 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行步骤④
- ④ 对路由表中的每一行的子网掩码和 D 逐位相“与”:若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行步骤⑤
- ⑤ 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行步骤⑥
- ⑥ 报告转发分组出错
2、无分类编址(CIDR)
1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码
使用变长子网掩码 VLSM可进一步提高 IP 地址资源的利用率。
在 VLSM 的基础上又进一步研究出无分类编址方法,即是无分类域间路由选择CIDR
(1).介绍
无分类的两级编址的记法是:
IP
地
址
:
:
=
{
<
网
络
前
缀
>
,
<
主
机
号
>
}
{\color{blue}\text{IP}地址 ::= \{<网络前缀>, <主机号>\}}
IP地址::={<网络前缀>,<主机号>}
CIDR 还使用“斜线记法”,它又称为CIDR记法,即在 IP 地址后面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)
例如:192.168.5.0 / 24
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”
(2).特点
-
CIDR有如下特点:
- ① CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间
- ② CIDR使用各种长度的“网络前缀”来代替分类地址中的网络号和子网号
- ③ IP 地址从三级编址(使用子网掩码)又回到了两级编址
(3).CIDR记法的其他形式
-
CIDR记法的其他形式
- 10.0.0.0/10 可简写为 10/10,也就是将点分十进制中低位连续的 0 省略
-
10.0.0.0/10 相当于指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0
即11111111 11000000 00000000 00000000 -
网络前缀的后面加一个星号*的表示方法
如 00001010 00*,在星号*之前是网络前缀,而星号*表示 IP 地址中的主机号,可以是任意值
(4).路由聚合(构成超网)
一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个原来传统分类地址的路由
路由聚合也称为构成超网
-
注意点:
- 前缀长度不超过 23 23 23 位的 CIDR 地址块都包含了多个 C 类地址, 前缀长度为 n n n 位的 CIDR地址块包含了 2 24 − n 2^{24-n} 224−n 个C类地址
- CIDR 地址块中的地址数一定是 2 的整数次幂 (如需要 100 100 100 个地址,将分配 128 128 128 个地址)
(5).最长前缀匹配
使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成,在查找路由表时可能会得到不止一个匹配结果,应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配
四、网际控制报文协议(ICMP)
1、ICMP协议
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告
ICMP 不是高层协议,而是 IP 层的协议
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去
2、ICMP报文
-
ICMP报文分类
- ICMP \text{ICMP} ICMP 报文 { ICMP 差 错 报 文 { 终 点 不 可 达 源 点 抑 制 时 间 超 过 参 数 问 题 改 变 路 由 ( 重 定 向 ) ICMP 询 问 报 文 { 回 送 请 求 和 回 答 报 文 时 间 戳 请 求 和 回 答 报 文 \begin{cases} \text{ICMP}差错报文 \begin{cases} 终点不可达 \\ 源点抑制 \\ 时间超过 \\ 参数问题 \\ 改变路由(重定向) \end{cases} \\ \\ \text{ICMP}询问报文 \begin{cases} 回送请求和回答报文 \\ 时间戳请求和回答报文 \end{cases} \\ \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧ICMP差错报文⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧终点不可达源点抑制时间超过参数问题改变路由(重定向)ICMP询问报文{回送请求和回答报文时间戳请求和回答报文 ICMP报文格式如下:
- ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关
-
-
ICMP差错报告报文格式如下:
3、ICMP的应用
(1).PING
PING 用来测试两个主机之间的连通性
PING 使用了 ICMP 回送请求与回送回答报文
PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP
(2).Traceroute
利用 ICMP 协议定位当前计算机和目标计算机之间的所有路由器
五、因特网的路由选择协议
1、路由选择协议
(1).最佳路由
-
关于“最佳路由”
- 不存在一种绝对的最佳路由算法
- 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已
- 实际的路由选择算法,应尽可能接近于理想的算法
-
路由选择是个非常复杂的问题
它是网络中的所有结点共同协调工作的结果
路由选择的环境往往是不断变化的,而这种变化有时无法事先知道
(2).路由选择策略
从路由算法的自适应性考虑 { 静 态 路 由 选 择 策 略 ( 非 自 适 应 路 由 选 择 ) { 优 点 简 单 和 开 销 较 小 缺 点 不 能 及 时 适 应 网 络 状 态 的 变 化 动 态 路 由 选 择 策 略 ( 自 适 应 路 由 选 择 ) { 优 点 能 较 好 地 适 应 网 络 状 态 的 变 化 缺 点 实 现 起 来 较 为 复 杂 , 开 销 也 比 较 大 \begin{cases} 静态路由选择策略(非自适应路由选择) & \begin{cases} 优点 & 简单和开销较小 \\ 缺点 & 不能及时适应网络状态的变化 \end{cases} \\ \\ 动态路由选择策略(自适应路由选择) & \begin{cases} 优点 & 能较好地适应网络状态的变化 \\ 缺点 & 实现起来较为复杂,开销也比较大 \end{cases}\\ \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧静态路由选择策略(非自适应路由选择)动态路由选择策略(自适应路由选择){优点缺点简单和开销较小不能及时适应网络状态的变化{优点缺点能较好地适应网络状态的变化实现起来较为复杂,开销也比较大
(3).分层次的路由选择协议
因特网采用分层次的路由选择协议
-
原因
- ① 因特网的规模非常大,如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间
- ② 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议
(4).自治系统AS
一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略
例如,很多高校都使用电信网络,那么电信网络就可以看成一个自治系统
(5).因特网的两大类路由选择协议
内部网关协议 IGP,即在一个自治系统内部使用的路由选择协议,如 RIP 和 OSPF 协议
外部网关协议EGP,若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中,这样的协议就是外部网关协议 EGP,如BGP-4协议
自治系统之间的路由选择叫做域间路由选择
自治系统内部的路由选择叫做域内路由选择
2、路由信息协议RIP
路由信息协议 RIP 是内部网关协议 IGP 中最先得到广泛使用的协议
RIP 是一种分布式的基于距离向量的路由选择协议
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录
-
关于“距离”
- 从一个路由器 到直接连接的网络的距离定义为 1 1 1
- 从一个路由器 到非直接连接的网络的距离定义为所经过的路由器数加 1 1 1
- RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1 1 1
- 这里的“距离”实际上指的是“最短距离”
- RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”
- RIP 允许一条路径最多只能包含 15 15 15 个路由器,“距离”的最大值为 16 16 16 时即相当于不可达,可见RIP只适用于小型互联网
- RIP不能在两个网络之间同时使用多条路由,RIP 选择一个具有最少路由器的路由 RIP 协议的三个要点
- ① 仅和相邻路由器交换信息
- ② 交换的信息是当前本路由器所知道的全部信息,即自己的路由表
- ③ 按固定的时间间隔交换路由信息,例如,每隔 30 秒 路由表的建立
- ① 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)
- ② 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息
- ③ 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址
- RIP 协议的收敛过程较快 距离向量算法
- 收到相邻路由器(其地址为 X)的一个 RIP 报文
- ① 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1
-
② 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
- ③ 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)
- ④ 返回 RIP 协议的缺点
- 坏消息传得慢:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器
- 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加 RIP 协议的优点
- 好消息传得快
- 实现简单,开销较小
3、开放式最短路径优先协议OSPF
“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的
“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”
OSPF 是分布式的链路状态协议
-
OSPF 协议的三个要点
- ① 向本自治系统中所有路由器发送信息,这里使用的方法是 洪泛法
-
② 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的
部分信息
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。 - ③ 只有当链路状态 发生变化时,路由器才用洪泛法向所有路由器发送此信息 链路状态数据库
- 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库
- 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)
- OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表,OSPF 的更新过程收敛得快是其重要优点 OSPF 协议的基本操作
- ① 发现邻居结点:发送HELLO分组,测试链路连通性
- ② 测试链路开销
- ③ 创建链路状态分组
- ④ 发送链路状态分组:给所有的路由器
- ⑤ 计算新的路由:采用最短路径算法 OSPF 的区域
- 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域
- 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)
- 区域也不能太大,在一个区域内的路由器最好不超过 200 个
-
OSPF 使用层次结构的区域划分。在上层的区域叫作
主干区域,主干区域的标识符规定为
0.0.0.0
,主干区域的作用是用来连通其他在下层的区域 -
-
划分区域优点
- 将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量
- 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况
OSPF报文
- OSPF 不用 UDP 而是直接用 IP 数据报传送
-
OSPF 构成的数据报很短,可减少路由信息的通信量
数据报很短的另一好处是可以不必将长的数据报分片传送
分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传
OSPF其他特点
- OSPF 对于 不同类型的业务可计算出不同的路由
- 多路径间的负载平衡:如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径
- 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能
- OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态 OSPF的五种分组类型
- 问候分组
- 数据库描述分组
- 链路状态请求分组
- 链路状态更新分组,用洪泛法对全网更新链路状态
- 链路状态确认分组
-
-
OSPF的基本操作
4、路由器的构成
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组
-
路由器处理
- 如果网络层处理的缓存已满,而又有新的分组进入,则新来的分组将会溢出(丢失)
- 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
六、虚拟专用网 VPN 和网络地址转换 NAT
1、虚拟专用网 VPN
(1).本地地址和全球地址
本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请
全球地址——全球唯一的IP地址,必须向因特网的管理机构申请
-
RFC 1918 指明的专用地址
-
10.0.0.0
到10.255.255.255
-
172.16.0.0
到172.31.255.255
-
192.168.0.0
到192.168.255.255
- 这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信
- 专用地址只能用作本地地址而不能用作全球地址,在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发 远程接入VPN
- 在外地工作的员工拨号接入因特网,而驻留在员工 PC 机中的 VPN 软件可在员工的 PC 机和公司的主机之间建立 VPN 隧道,因而外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络
2、网络地址转换 NAT
需要在专用网连接到因特网的路由器上安装 NAT 软件,装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址
IP
G
\text{IP}_\text{G}
IPG
所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成
IP
G
\text{IP}_\text{G}
IPG 才能和因特网连接