第四章 网络层

①网络层功能&对应协议(提供服务&对应设备)

网络层功能:解决数据报从起点到终点之间的传输。(找路:走哪些相邻节点能过去)

对应协议:网际协议IP、地址解析协议ARP、网际控制报文协议ICMP、网际组管理协议IGMP

提供的服务:虚电路服务和数据报服务。

对应设备:路由器

②虚电路&数据报的工作原理?优缺点?

虚电路服务的工作原理

(1)当两台计算机进行通信时,也应当先建立连接(但在分组交换中是建立一条虚电路VC)以预留双方通信所需的一切网络资源。

(2)然后双方就沿着已建立的虚电路发送分组。这样的分组的首部不需要填写完整的目的主机地址,而只需要填写这条虚电路的编号(一个不大的整数),因而减少了分组的开销。

这种通信方式如果再使用可靠传输的网络协议,就可以使所发送的分组无差错按序到达终点,当然也不丢失、不重复。在通信结束后要释放建立的虚电路。

数据报服务的工作原理

互联网采用的设计思路是这样的:网络层要设计得尽量简单,向其上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

(1)网络在发送分组时不需要先建立连接。

(2)每一个分组(也就是IP数据报)独立发送,与其前后的分组无关(不进行编号)。

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

虚电路的优缺点: 

优点:

1.连接建立后数据传输有序。

2.分组头开销较小。

3.虚电路在建立时会预留一定的网络资源(如带宽等),便于网络管理和流量控制。

缺点:

1/连接建立和拆除开销大。

2.缺乏灵活性。

3.在虚电路建立时,会为其预留一定的网络资源,如带宽等。但如果在数据传输过程中,实际使用的资源量小于预留量,就可能导致部分网络资源闲置浪费。

数据报的优缺点

优点:

1.无需建立连接,灵活性高

2.能更好地适应网络动态环境。

3.不存在连接的建立和拆除的开销。

缺点:

1.分组头开销大。

2.数据分组可能无序到达。

3.网络管理和流量控制难度大。

③IP地址的三个发展阶段,它们各解决什么问题 ?

第一阶段:分类的IP地址阶段

解决的问题:在互联网发展的早期阶段,网络规模相对较小,接入互联网的主机数量也比较有限。整个网络环境相对简单,主要需求是能够对不同的主机进行明确标识(IP地址划分为A、B、C、D、E五类),以便在网络中准确地找到它们并实现数据传输。

第二阶段:子网划分阶段

解决的问题:随着互联网的不断发展,接入网络的主机数量逐渐增多,网络的应用场景也变得更加复杂多样。原本的分类 IP 地址体系开始暴露出一些问题,如 IP 地址资源利用率不高、网络管理不够灵活(难以满足企业或组织内部不同部门有着不同网络需求的情况)以及网络安全性有待提升(在分类的 IP 地址阶段,网络划分较为粗放,缺乏对内部网络进行细分隔离的有效手段),需要一种新的方式来优化 IP 地址的使用和网络管理。

第三阶段:无分类编址阶段(CIDR)

解决的问题:路由表的规模迅速增长。路由器需要存储大量的路由信息来处理数据包的转发,随着网络的增多,路由表中的条目也越来越多,这导致路由器的负担加重,网络性能下降,需要一种新的方式来解决路由表膨胀的问题,同时进一步优化 IP 地址的分配和管理。

④路由器的功能:路由&转发(控制层面&数据层面)

在路由器之间传送的信息有以下两大类:
第一类是转发源主机和目的主机之间所传送的数据,把源主机所发送的分组,像接力赛跑那样从一个路由器转发到下一个路由器,最后把分组传送到目的主机。
第二类则是传送路由信息,是根据路由选择协议所使用的路由算法,彼此不断地交换路由信息分组,目的是为了在路由器中创建路由表,并由此导出为转发分组而用的转发表。这一类信息的传送是为第一类数据的传送服务的。

也就是把网络层抽象地划分为数据层面(或转发层面)控制层面

⑤RIP协议工作原理和特点

RIP (Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议。

工作原理

RIP是一种分布式的基于距离向量的路由选择协议。

分布式,指网络中多个路由器各自独立运行该协议,通过相互交换路由信息来协同完成整个网络的路由选择,而非依赖集中式控制节点。

距离,从一路由器到直接连接的网络的距离定义为1。从一主机到非直接连接的网络的距离定义为所经过的路由器数加1。RIP允许一条路径最多只能包含15个网络。因此“距离”等于16时即相当于不可达。

*距离向量算法

特点

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

(2)路由器交换的信息是当前本路由器所知道的全部消息,即自己现在的路由表。

(3)按固定时间交换路由信息。

⑥ OSPF工作原理和特点

工作原理

这个协议的名字是开放最短路径优先OSPF

开放,表明OSPF协议不是受一家厂商控制,而是公开发表的。

最短路径优先,是因为使用了Dijkstra提出的最短路径算法SPF。

特点

(1)向本自治系统中所有路由器发送信息。

(2)发送的信息就是与本路由器相邻的所有路由器的链路状态。所谓“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”。

(3)当链路状态发生变化或每隔一段时间,路由器向所有路由器用洪泛法发送给链路状态。

由千各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库(link-state database),这个数据库实际上就是全网的拓扑结构图。这个拓扑结构图在全网范围内是一致的(这称为链路状态数据库的同步)。因此,每一个路由器都知道全网共有多少个路由器,以及哪些路由器是相连的,其代价是多少,等等。每一个路由器使用链路状态数据库中的数据,构造出自己的路由表(例如,使用Dijkstra的最短路径路由算法)。

⑦RIP协议和OSPF协议各自优缺点及适用场合

协议 优点 缺点 适用场合
RIP 协议 配置简单;易于理解;广泛支持 收敛速度慢(好消息传得快,坏消息传得慢);网络规模受限;容易产生路由环路 小型网络;对成本和技术要求低的网络
OSPF 协议 收敛速度快;适应大型网络;无路由环路;支持多种度量值 配置复杂;对路由器资源要求高;网络波动可能影响性能 大型网络;对网络性能和可靠性要求高的网络

⑧IP数据报格式(首部固定部分)

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

(1)版本,占4位(半个字节)。 

(2)首部长度,占4位,可表示的最大十进制数值是15。

(3)区分服务,占8位。

(4)总长度,占16位。总长度指首部和数据之和的长度,单位为字节。数据报最大长度2^16-1=65535字节。

(5)标识,占16位。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6)标志,占3位。但目前只有前两位有意义。

标志字段中的最低位记为MF (More Fragment)。MF = 1即表示后面还有分片的数据报。MF = 0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF (Don't Fragment),意思是“不能分片”。只有当DF=0时才允许分片。

(7)片偏移,占13位。片偏移以8个字节为偏移单位。这就是说,除最后一个数据片外,其他每个分片的长度一定是8字节(64位)的整数倍。数据长度除以8。

(8)生存时间,占8位。生存时间常用的一个英文缩写是TTL,表明这是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在互联网中兜圈子(例如从路由器R)转发到R2, 再转发到R3, 然后又转发到R1),因而白消耗网络资源。

(9)协议,占8位。协议字段指出此数据报携带的数据使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个协议进行处理。

(10)首部校验和,占16位。 此字段只检验数据报的首部,但不包括数据部分。不使用CRC检验。

(11)源地址,占32位。(很好理解,每八位构成四个数字中的一个)发送IP数据报的主机的IP地址。

(12)目的地址,占32位。接收IP数据报的主机的IP地址。

⑨IP数据报的分片(总长度、标识、MF、DF、片偏移)

*****⑩IP地址的分配(点分十进制记法)

分类的IP地址

分类的IP地址(a)及各类地址所占比例(b)

(1)A类地址的网络号字段占1个字节,只有7位可供使用(该字段的第一位已固定为0)。

A类地址的网络号范围为1.0.0.0到126.0.0.0

但要注意,第一,网络号为全0的IP地址有特殊的用途,它表示“本网络”;第二,网络号为127(即01111111)保留作为本地软件环回测试(loopback test)本主机的进程之间的通信之用。因此A类地址可指派的网络号是126个(即2^7-2)
A类地址的主机号占3个字节。但全0和全1的主机号一般不指派。全0的主机号表示该IP地址是“本主机”所连接到的单个网络地址(例如,若主机的IP地址为5.6.7.8,则该主机所在的网络的网络号是5,而该网络的网络地址就是5.0.0.0)。全1表示“所有的”,因此全1的主机号字段表示该网络上的所有主机。因此每一个A类网络中的最大主机数是2^24-2,即16777214。

(2)B类地址的网络号字段有2个字节。因此B类地址可指派的网络数为2^14,即16384。B类地址的每一个网络上的最大主机数是2^16-2,即65534。这里需要减2是因为要扣除全0和全1的主机号。

B类地址的网络号范围为128.0.0.0到191.0.0.0

(3)C类地址有3个字节的网络号字段。因此C类地址可指派的网络总数是2^21,即2097152。

C类地址的网络号范围为192.0.0.0到223.0.0.0

每一个C类地址的最大主机数是2^8-2,即254。
(4)D类地址的网络号范围为224.0.0.0到239.0.0.0,用于多播通信,不用于组织网络。

(5) E类地址的网络号范围为240.0.0.0到255.0.0.0,用于将来可能的使用。

无分类编址CIDR(无分类域间路由选择CIDR)
(1)网络前缀

CIDR把网络号改为“网络前缀”(或简称为“前缀”),用来指明网络,剩下的后面部分仍然是主机号,用来指明主机。CIDR的记法是:

CIDR与无分类IP的最大区别是网络前缀的位数n不是固定的数,而是可以在0~32之间选取任意的值。

CIDR使用“斜线记法”(slash notation),或称为CIDR记法,即在IP地址后面加上斜线“/”,斜线后面是网络前缀所占的位数。

例如,CIDR表示的一个IP地址128.14.35.7/20,二进制IP地址的前20位是网络前缀(相当于原来的网络号),剩下后面12位是主机号。 

(2)地址块

 地址块CIDR把网络前缀都相同的所有连续的IP地址组成一个“CIDR地址块”。一个CIDR地址块包含的IP地址数目,取决于网络前缀的位数。我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。

例如,已知IP地址128.14.35.7/20是某CIDR地址块中的一个地址,现在把它写成二进制表示形式,其中的前20位是网络前缀(用粗体和下划线表示出),而前缀后面的12位是主机号。

 这个地址块的IP地址共有2^12个,扣除主机号为全0和全1的地址(最小地址和最大地址)后,可指派的地址数是2^12-2个。

显然,上面导出的最小地址并不是该地址块128.14.32.0/20的网络地址。注意网络前缀数目不定,所以只有说明网络前缀才能确定网络地址。

(3)地址掩码

地址掩码(常简称为掩码)由一连串l和接着的一连串0组成,而1的个数就是网络前缀的长度。地址掩码又称为子网掩码。在CIDR表示法中,斜线后面的数字就是地址掩码中1的个数。

例如,/20地址块的地址掩码是:11111111111111111111000000000000(20个连续的1和接着的12个连续的0)。这个掩码用CIDR表示法表示就是255.255.240.0/20。

把二进制的IP地址和地址掩码进行按位AND运算,即可得出网络地址。下图说明了AND运算的过程。

AND运算就是逻辑乘法运算,其规则是:1AND1=1,1AND0=0,0AND0=0。

 要使用二进制地址来运算。在本例中把二进制IP地址的前20位保留不变,剩下的12位全写为0,即可得出网络地址。从上面的运算结果可以知道,IP地址128.14.35.7/20所在的网络地址128.14.32.0/20。

CIDR地址中还有三个特殊地址块,即:
(1) 前缀n=32,即32位IP地址都是前缀,没有主机号。这其实就是一个IP地址。这个特殊地址用于主机路由。
(2) 前缀n=31,这个地址块中只有两个IP地址,其主机号分别为0和1。这个地址块用于千点对点链路。
(3) 前缀n=0同时IP地址也是全0,即0.0.0.0/0。这用于默认路由。

划分子网(路由聚合)

一个大的CIDR地址块中往往包含很多小地址块,所以在路由器的转发表中就利用较大的一个CIDR地址块来代替许多较小的地址块。这种方法称为路由聚合(route aggregation)。

下图表示这个ISP共拥有64个C类网络。如果不采用CIDR技术,则在与该ISP的路由器交换路由信息的每一个路由器的转发表中,就需要有64行,每一行指出了到哪一个网络的下一跳。

但采用地址聚合后,在转发表中只需要用一行来指出到206.0.64.0/18地址块的下一跳。这个大学共有4个系。在ISP内的路由器的转发表中,也仅需要用206.0.68.0/22这一个项目,就能把外部发送到这个大学各系的所有分组都转发到大学的路由器。这个路由器好比是大学的收发室。凡寄给大学任何一个系的邮件,邮递员都不必送到大学的各个系,而是把这些邮件集中投递到大学的收发室,然后由大学的收发室再进行下一步的分发。这样就加快了邮递员的投递工作(相当于缩短了转发表的查找时间)。

如何划分子网?

(1)首先根据部门数,确定所需的子网数m,由2^n<=m确定n。

(2)对每个部门所需主机数进行排序,确定每个部分分配的主机数。 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐