计算机网络——网络层

299 阅读12分钟

4.1 网络层提供的两种服务

在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。

虚电路服务

面向连接的通信方式

建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源。

如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。

image.png

虚电路是逻辑连接

虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。

请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。

数据报服务

网络层向上只提供简单灵活的、无连接的、尽最大努力交付数据报服务

网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。

网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。

image.png

尽最大努力交付的好处

由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。

如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。

采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。

因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。

两者对比

image.png

4.2 网际协议IP

网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。

与 IP 协议配套使用的还有三个协议:

(1)地址解析协议 ARP (Address Resolution Protocol)

(2)网际控制报文协议 ICMP (Internet Control Message Protocol)

(3)网际组管理协议 IGMP (Internet Group Management Protocol)

4.2.1 虚拟互连网络

网络互相连接起来要使用一些中间设备

中间设备又称为中间系统或中继(relay)系统:

物理层中继系统:转发器(repeater)

数据链路层中继系统:网桥或桥接器(bridge)

网络层中继系统:路由器(router)

网桥和路由器的混合物:桥路器(brouter)

网络层以上的中继系统:网关(gateway)

网络互连使用路由器

当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。

互联网都是指用路由器进行互连的网络。

互连网络与虚拟互连网络

image.png

虚拟互连网络的意义

所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。

使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。

image.png

image.png

4.2.2 分类的 IP 地址

1. IP 地址及其表示方法

IP 地址的编址方法

分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。

子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。

构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。

分类 IP 地址

每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。

两级的 IP 地址可以记为:

image.png

image.png

点分十进制记法

image.png

2. 常用的三种类别的 IP 地址

IP 地址的使用范围:

image.png

4.2.3 IP 地址与硬件地址

image.png

4.2.4 地址解析协议 ARP

image.png

不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。

每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

ARP 高速缓存的作用

为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。

当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。

应当注意的问题

ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。

只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。

4.2.5 IP 数据报的格式

一个 IP 数据报由首部和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。

在首部的固定部分的后面是一些可选字段,其长度是可变的。

image.png

4.2.6 IP 层转发分组的流程

有四个 A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。

按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4个项目。这样就可使路由表大大简化。

image.png

默认路由(default route)

如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。

image.png

分组转发算法

image.png

4.3 划分子网和构造超网

4.3.1 划分子网

三级的 IP 地址

从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址

这种做法叫作划分子网(subnetting) 。划分子网已成为因特网的正式标准协议。

划分子网的基本思路

划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。

从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。

image.png

凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器

然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。

最后就将 IP 数据报直接交付目的主机。

image.png

image.png

划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id

子网掩码

从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。

使用子网掩码(subnet mask)可以找出IP 地址中的子网部分。

image.png

image.png

子网掩码是一个网络或一个子网的重要属性

路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。

路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。

若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

image.png

image.png

4.3.2 使用子网掩码的分组转发过程

在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。

但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。

因此分组转发的算法也必须做相应的改动。

在划分子网的情况下路由器转发分组的算法

image.png

4.3.3 无分类编址 CIDR

网络前缀

image.png

IP 编址问题的演进

image.png

CIDR 最主要的特点

CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。

CIDR使用各种长度的 “网络前缀” (network-prefix)来代替分类地址中的网络号和子网号。

IP 地址从三级编址(使用子网掩码)又回到了两级编址。

无分类的两级编址

image.png

CIDR 地址块

image.png

路由聚合(route aggregation)

image.png

构成超网

image.png

CIDR 地址块划分举例

image.png

image.png

最长前缀匹配

image.png

最长前缀匹配举例

image.png

image.png

image.png

使用二叉线索查找路由表

image.png

image.png

4.4 网际控制报文协议 ICMP

为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。

ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。

ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。

image.png

4.4.1 ICMP 报文的种类

image.png

4.5 因特网的路由选择协议

4.5.1 有关路由选择协议的几个基本概念

理想的路由算法

image.png

关于“最佳路由”

image.png

从路由算法的自适应性考虑

image.png

分层次的路由选择协议

image.png

自治系统 AS (Autonomous System)

image.png

因特网有两大类路由选择协议

image.png

自治系统和内部网关协议、外部网关协议

image.png

4.5.2 内部网关协议 RIP (Routing Information Protocol)

1. 工作原理

image.png

“距离”的定义

从一路由器到直接连接的网络的距离定义为 1。

从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。

RIP 协议中的 “距离” 也称为 “跳数” (hop count),因为每经过一个路由器,跳数就加 1。

这里的“距离”实际上指的是“最短距离”。

RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。

RIP 允许一条路径最多只能包含 15 个路由器。

“距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。

RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。

RIP 协议的三个要点

仅和相邻路由器交换信息。

交换的信息是当前本路由器所知道的全部信息,即自己的路由表。

按固定的时间间隔交换路由信息,例如,每隔 30 秒。

路由表的建立

image.png

2. 距离向量算法

image.png

3. RIP2 协议的报文格式

image.png

RIP 协议的优缺点

image.png

image.png

4.5.3 内部网关协议 OSPF

1. OSPF 协议的基本特点

image.png

三个要点

向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法

发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息

只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

链路状态数据库

image.png

OSPF 的区域

image.png

image.png

划分区域

image.png

OSPF 直接用 IP 数据报传送

image.png

2. OSPF 的五种分组类型

image.png

image.png

image.png

OSPF 的其他特点

由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时, OSPF 协议要比距离向量协议 RIP 好得多。

OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。

4.5.4 外部网关协议 BGP

BGP 是不同自治系统的路由器之间交换路由信息的协议。

边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。

BGP 发言人

image.png

BGP 交换路由信息

image.png

BGP 发言人和自治系统 AS 的关系

image.png

BGP-4 共使用四种报文

image.png

4.5.6 路由器在网际互连中的作用

1. 路由器的结构

image.png

典型的路由器的结构

image.png

“转发”和“路由选择”的区别

image.png