欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

计算机网络》第 4 章(网络层)

最编程 2024-04-29 10:14:44
...

计算机网络微课堂的笔记整理
笔记也放到了我的github我的gitee

4.1、网络层概述

简介

  • 网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输
image-20201017134630948

这些异构型网络N1~N7如果只是需要各自内部通信,他们只要实现各自的物理层和数据链路层即可

但是如果要将这些异构型网络互连起来,形成一个更大的互联网,就需要实现网络层设备路由器

有时为了简单起见,可以不用画出这些网络,图中N1~N7,而将他们看做是一条链路即可

  • 要实现网络层任务,需要解决一下主要问题:

    • 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)

    在数据链路层那课讲过的可靠传输,详情可以看那边的笔记:网络层对以下的分组丢失分组失序分组重复的传输错误采取措施,使得接收方能正确接受发送方发送的数据,就是可靠传输,反之,如果什么措施也不采取,则是不可靠传输

    • 网络层寻址问题
    image-20201017135644630
    • 路由选择问题
    image-20201017135710478

    路由器收到数据后,是依据什么来决定将数据包从自己的哪个接口转发出去?

    依据数据包的目的地址和路由器中的路由表

    image-20201017135914985

    但在实际当中,路由器是怎样知道这些路由记录?

    • 由用户或网络管理员进行人工配置,这种方法只适用于规模较小且网络拓扑不改变的小型互联网
    • 另一种是实现各种路由选择协议,由路由器执行路由选择协议中所规定的路由选择算法,而自动得出路由表中的路有记录,这种方法更适合规模较大且网络拓扑经常改变的大型互联网
image-20201017142545630

补充 网络层(网际层)除了 IP协议外,还有之前介绍过的地址解析协议ARP,还有网际控制报文协议ICMP网际组管理协议IGMP

总结

image-20201017140623851

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

  • 争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统

面向连接的虚电路服务

一种观点:让网络负责可靠交付

  • 这种观点认为,应借助于电信网的成功经验,让网络负责可靠交付,计算机网络应模仿电信网络,使用面向连接的通信方式。

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

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

image-20201017141425892

发送方 发送给 接收方 的所有分组都沿着同一条虚电路传送

  • 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
  • 请注意,电路交换的电话通信是先建立了一条真正的连接。
  • 因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样

无连接的数据报服务

另一种观点:网络提供数据报服务

  • 互联网的先驱者提出了一种崭新的网络设计思路。

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

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

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

image-20201017141851030

发送方 发送给 接收方 的分组可能沿着不同路径传送

尽最大努力交付

  • 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责可靠交付(包括差错处理、流量控制等)
  • 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
  • 互连网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。

虚电路服务与数据报服务的对比

对比的方面 虚电路服务 数据报服务
思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证
连接的建立 必须有 不需要
终点地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址
分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发
当结点出故障时 所有通过出故障的结点的虚电路均不能工作 出故障的结点可能会丢失分组,一些路由可能会发生变化
分组的顺序 总是按发送顺序到达终点 到达终点时不一定按发送顺序
端到端的差错处理和流量控制 可以由网络负责,也可以由用户主机负责 由用户主机负责

4.3、IPv4

概述

image-20201017143206060

分类编制的IPv4地址

简介

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

  • 主机号在它前面的网络号所指明的网络范围内必须是唯一的。

  • 由此可见,一个 IP 地址在整个互联网范围内是唯一的

A类地址

image-20201017145210533

B类地址

image-20201017145508001

C类地址

image-20201017150204774

练习

image-20201017150543386

总结

IP 地址的指派范围

image-20201017152911541

一般不使用的特殊的 IP 地址

image-20201017152959586

IP 地址的一些重要特点

(1) IP 地址是一种分等级的地址结构。分两个等级的好处是:

  • 第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。

  • 第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。

(2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口

  • 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机 (multihomed host)。

  • 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址

(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。

(4) 所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。

划分子网的IPv4地址

为什么要划分子网

在 ARPANET 的早期,IP 地址的设计确实不够合理:

  • IP 地址空间的利用率有时很低。

  • 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。

  • 两级的 IP 地址不够灵活。

image-20201017154645198

如果想要将原来的网络划分成三个独立的网路

image-20201017154852896

所以是否可以从主机号部分借用一部分作为子网号

image-20201017155026814

但是如果未在图中标记子网号部分,那么我们和计算机又如何知道分类地址中主机号有多少比特被用作子网号了呢?

所以就有了划分子网的工具:子网掩码

  • 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址
  • 这种做法叫做划分子网 (subnetting) 。
  • 划分子网已成为互联网的正式标准协议。

如何划分子网

基本思路

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

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

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

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

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

划分为三个子网后对外仍是一个网络

image-20201017160116239
  • 优点
1.  减少了 IP 地址的浪费
    
    
2.  使网络的组织更加灵活
    
    
3.  更便于维护和管理
  • 划分子网纯属一个单位内部的事情,对外部网络透明,对外仍然表现为没有划分子网的一个网络。

子网掩码

image-20201017160252066

(IP 地址) AND (子网掩码) = 网络地址 重要,下面很多相关知识都会用到

举例

例子1

image-20201017161651058

例子2

image-20201017161719339

默认子网掩码

image-20201017162807076

总结

image-20201017162938612
  • 子网掩码是一个网络或一个子网的重要属性。
  • 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
  • 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
  • 若一个路由器连接在两个子网上,就拥有两个网络地址和两个子网掩码。

无分类编址的IPv4地址

为什么使用无分类编址

无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。

image-20201017164031532

CIDR 最主要的特点

  • CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
  • IP 地址从三级编址(使用子网掩码)又回到了两级编址

如何使用无分类编址

image-20201017165037268

举例

image-20201017165113442

路由聚合(构造超网)

image-20201017165615915

总结

image-20201020152711493

IPv4地址的应用规划

给定一个IPv4地址快,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中不同网络,进而可以给各网络中的主机和路由器接口分配IPv4地址

定长的子网掩码FLSM(Fixed Length Subnet Mask)

image-20201018143550103

划分子网的IPv4就是定长的子网掩码

举例

image-20201018140809079
image-20201018140916631
image-20201020152900871

通过上面步骤分析,就可以从子网1 ~ 8中任选5个分配给左图中的N1 ~ N5

采用定长的子网掩码划分,只能划分出2^n个子网,其中n是从主机号部分借用的用来作为子网号的比特数量,每个子网所分配的IP地址数量相同

但是也因为每个子网所分配的IP地址数量相同,不够灵活,容易造成IP地址的浪费

变长的子网掩码VLSM(Variable Length Subnet Mask)

image-20201018143632352

无分类编址的IPv4就是变长的子网掩码

举例

image-20201018142333145
image-20201018143344440

4.4、IP数据报的发送和转发过程
image-20201018144335297

举例

image-20201018151314019
image-20201018150151171

源主机如何知道目的主机是否与自己在同一个网络中,是直接交付,还是间接交付?

image-20201018150223497

可以通过目的地址IP源地址的子网掩码进行逻辑与运算得到目的网络地址

  • 如果目的网络地址源网络地址 相同,就是在同一个网络中,属于直接交付
  • 如果目的网络地址源网络地址 不相同,就不在同一个网络中,属于间接交付,传输给主机所在网络的默认网关(路由器——下图会讲解),由默认网关帮忙转发

主机C如何知道路由器R的存在?

image-20201018145501063

用户为了让本网络中的主机能和其他网络中的主机进行通信,就必须给其指定本网络的一个路由器的接口,由该路由器帮忙进行转发,所指定的路由器,也被称为默认网关

例如。路由器的接口0的IP地址192.168.0.128做为左边网络的默认网关

image-20201018150029179

主机A会将该IP数据报传输给自己的默认网关,也就是图中所示的路由器接口0

路由器收到IP数据报后如何转发?

  • 检查IP数据报首部是否出错:

    • 若出错,则直接丢弃该IP数据报并通告源主机

    • 若没有出错,则进行转发

  • 根据IP数据报的目的地址在路由表中查找匹配的条目:

    • 若找到匹配的条目,则转发给条目中指示的吓一跳

    • 若找不到,则丢弃该数据报并通告源主机

假设IP数据报首部没有出错,路由器取出IP数据报首部各地址字段的值

image-20201018151108989

接下来路由器对该IP数据报进行查表转发

image-20201018151528027

逐条检查路由条目,将目的地址与路由条目中的地址掩码进行逻辑与运算得到目的网络地址,然后与路由条目中的目的网络进行比较,如果相同,则这条路由条目就是匹配的路由条目,按照它的下一条指示,图中所示的也就是接口1转发该IP数据报

image-20201018151956275

路由器是隔离广播域的

image-20201018152040610

4.5、静态路由配置及其可能产生的路由环路问题

概念

image-20201018155702081

多种情况举例

静态路由配置

举例

image-20201018160349375

默认路由

举例

默认路由可以被所有网络匹配,但路由匹配有优先级,默认路由是优先级最低的

image-20201018160906284

特定主机路由

举例

有时候,我们可以给路由器添加针对某个主机的特定主机路由条目

一般用于网络管理人员对网络的管理和测试

image-20201018161440257

多条路由可选,匹配路由最具体的

静态路由配置错误导致路由环路

举例

image-20201018161542579

假设将R2的路由表中第三条目录配置错了下一跳

这导致R2和R3之间产生了路由环路

image-20201020153154773

聚合了不存在的网络而导致路由环路

举例

正常情况

image-20201018162333671
image-20201018162759562

错误情况

image-20201018163323343

解决方法

image-20201018163933715
image-20201018164453398

黑洞路由的下一跳为null0,这是路由器内部的虚拟接口,IP数据报进入它后就被丢弃

网络故障而导致路由环路

举例

image-20201018164811811
image-20201018164913684

解决方法

添加故障的网络为黑洞路由

image-20201018165122023
image-20201018165153517

假设。一段时间后故障网络恢复了

R1又自动地得出了其接口0的直连网络的路由条目

针对该网络的黑洞网络会自动失效

image-20201018165328319

如果又故障

则生效该网络的黑洞网络

image-20201018165521938

总结

image-20201018165709294

4.6、路由选择协议

概述

image-20201019134827343

因特网所采用的路由选择协议的主要特点

image-20201019134946971

因特网采用分层次的路由选择协议

  • 自治系统 AS:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
image-20201019135122326

自治系统之间的路由选择简称为域间路由选择,自治系统内部的路由选择简称为域内路由选择