计网笔记 网络层(中)

2023-05-16

前面的话

这篇文章继上一篇,是关于网络层的其他知识的梳理。

【目录】

1.划分子网
2.使用子网时分组的转发
3.无分类域间路由选择CIDR(构造超网)
4.网际控制报文协议ICMP

划分子网

前面讲到的两级IP地址,由网络号与主机号组成。两级IP地址的设计不合理:

● IP地空间利用率低
● 给每一个物理网络分配一个网络号会使路由表变得太大而是网络性能变坏
● 两级IP 地址不够灵活

为解决这些问题,后再IP地址中添加一个“子网号字段”,使两级IP地址变成三级IP地址,能较好的解决上述问题,并且使用灵活。---- 即划分子网

[划分子网的思路]
● 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网。划分子网纯属于单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,这个单位对外然表现为一个网络。

● 子网划分的方法:从网络的主机号借用若干为作为子网号。两级IP地址在本单位内部变为三级IP地址。 IP地址 ::= { <网络号> ,<子网号> ,<主机号>}

● 凡是从其他网络发送给本地单位某台主机的IP数据报,任然是根据IP数据报的目的地址找到连接在本单位的路由器。但此路由器在收到IP地址数据报之后,再按目的网络和子网号找到所在的子网,把IP数据报交付目的主机

注意: 子网划分只是把IP地址的主机号这部分进行再划分,而不改变IP地址原来的网络号。
在这里插入图片描述

[子网掩码]

子网掩码的作用:

假定有一个数据报(其目的地址 145.13.3.10)已经到达了路由器R1。那么这个路由器如何把它转发到子网 145.13.3.0呢。子网掩码的作用就是解决这个问题的。

下面看看以145.13.3.10为例

  1. 从原来的16位的主机号中拿出8位作为子网号
  2. 三级IP地址的网络号变为24位
  3. 三级IP地址的子网掩码如©所示
  4. 子网的网络地址 = 子网掩码 (AND)目的地址
    在这里插入图片描述
    从网络145.13.0.0外面 看,就是一个普通的B类网络,其子网掩码为16个1 后面跟16个0.但是 进入到这个网络后(即到达路由器R1),就看到了还有许多网络(即划分了子网后的许多网络)。
    使用子网掩码的好处:无论网络有没有进行子网划分,只要将子网掩码和IP地址进行逐位相“与”,就可以得到网络地址。

例如: 已知IP地址是141.14.72.24 ,子网掩码是255.255.192.0求网络地址
解: IP地址与子网掩码逐位相与 ,因为子网掩码的前两个字节全1 与 IP地址前两位相与还是141.14,子网掩码最后一个字节全0,与IP地址最后一个字节相与为0,
所以我们只需要看第三个字节:
子网掩码 192 —> 11000000
IP 地址 72 —> 01001000
相与得 —> 01000000
所以网络地址为 141.14.64.0

[当不划分子网时,为什么还要使用子网掩码]
这是为了便于路由器查找路由表。现在互联网的标准规定:所有的网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认的子网掩码

三类IP地址的默认子网掩码:

在这里插入图片描述
子网掩码是一个网络或一个子网的重要属性。路由器在和相邻的路由器交换路由信息时,必须把自己所在的网络(或子网)的子网掩码告诉相邻的路由器。在路由器的路由表中的每一个项目中,除了给出目的地址外,还必须同时给出该网络的子网掩码。

使用子网时分组的转发

使用子网划分后,路由表必须包含三项内容:** 目的网络地址、子网掩码、下一跳地址**。
在划分子网的情况下,路由器转发分组的算法如下:

  1. 从收到的数据报的首部提取目的IP地址D
  2. 先判断是否直接交付。对路由器直接相邻的网络逐个进行检查:用各网络的子网掩码和D逐位相“与”,看结果是否与相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把D转换为物理地址,把数据报封装成帧发送出去),转发任务结束。否则执行(3)。
  3. 若路由表中的目的地址为D的特定主句路由,则把数据报传送get路由表中所指明的下一跳路由器;否则执行(4)
  4. 对路由器中的每一行(地址,子网掩码,下一跳地址),用其中的子网掩码和D进行逐位相“与”,其结果为N。若N与该行的目的地址匹配则把数据报传送给该行指明的下一跳路由器;否则执行(5)
  5. 若路由器中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行(6)
  6. 报告转发分组出错

例如:
如图三个子网,两个路由器,以及路由器R1中的部分路由表。现在源主机H1向目的主机H2发送分组。试讨论R1 收到H1向H2发送的分组后查找路由表的过程。
在这里插入图片描述
解: 源主机H1 所在子网为 子网1 ,主机H2的IP地址128.30.33.138
源主机H1首先要进行的操作是判断:发送的这个分组,是在本子网进行直接交付还要通过本子网上的路由器进行间接交付?

  1. 源主机H1把本子网的“子网掩码255.255.255.128”与目的主机H2的IP地址“128.30.33.138”逐位相与,得出128.30.33.128与H1所在子网的网络地址128.30.33.0不匹配,即H2与H1不在一个子网不能进行直接交付,而必须交给子网上的路由器R1,由R1来转发
  2. 路由器R1在收到一个分组后,就在其路由器中逐行寻找有无匹配的网络。
    先看R1路由表的第一行。用着一行的子网掩码“255.255.255.128”与目的网络的IP地址“128.30.33.138”逐位相与,得到“128.30.33.128”与这一行给出的目的网络“128.30.33.0”不匹配。
    接着继续下一行。方法一样这一行的子网掩码与目的地址的IP地址相与得到“128.30.33.128”与这一行给出的目的网络地址相匹配。说明这个网络就是收到的分组所要寻找的网络。不用继续查找下去。R1直接将分组从接口1直接交付给主机H2(都在一个子网上)。

无分类域间路由选择(构造超网)

划分子网在一定程度上缓解了互联网在发展中遇到的困难。然而在1992年互联网任然面临三个必须尽快解决的问题:

  1. B类地址在1992年已经分配一半
  2. 互连网主干网上的路由表中的项目数急遽增长
  3. 整个IPv4的地址空间最终将全部耗尽
    当时预计的前两个问题很严重,IETF研究出采用无分类编址的方法解决前两个问题。后一个问题专门有IPv6工作组研究解决。

[网络前缀]

无分类编址的方法:无分类域间路由选择CIDR

CIDR最主要的特点:

  1. CIDR消除了传统的A类、B类和C类地址以及划分子网的概念。CIDR把32位的IP地址划分为前后两部分。前面部分是网络前缀,用来指明网络,后面部分用来指明主机。因此CIDR使IP地址从三级网络地址又回到两级编址,但这是无分类的两级编址 记法: IP地址 ::= {<网络前缀>,<主机号>}
    CIDR使用斜线记法:即在IP地址的后面加上斜线“/”,然后写上网络前缀所占的位数。
  2. CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。我们只要知道这个地址块的任何一个地址就可以知道这个地址块的起始地址与最大地址。
    例如:128.14.35.7/20 即20位网络号 :
    128.14.35.7/20 = 10000000 00001110 001100011 00000111
    最小地址: 128.14.32.0 10000000 00001110 00110000 000000000
    最大地址: 128.14.47.255 10000000 00001110 0011111 1111111111
    当然这里有两个特殊的主机号全0 全1。一般不使用,共有2^12个地址。

CIDR使用32位的地址掩码:
也可以成为子网掩码,例如/20地址块的地址掩吗为:20个连续1 ,12个连续0.
斜线后面的数字就是地址掩码中1的个数

[路由聚合]
由于一个CIDR地址块中有很多的地址,所以在路由表中就利用CIDR地址块来查询目的网络。这种地址的聚合称为 路由聚合(也称构造超网),它使得路由表中的每一项可以表示原来传统分类地址的分多个路由。
路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高整个互联网的性能。

使用CIDR的好处:
灵活分配地址。例如,某ISP已拥有地址块206.0.64.0/18 (相当于64个C类网络 ,一个C类网络有2^ 8个地址 64* 2^8 = 2^14 ),现某大学需要800个IP地址。ISP可以给该大学分配一个地址块206.0.68.0/22包括2^10个IP地址。

[最长前缀匹配]

在使用CIDR时,在查找路由表是可能会得到不止一个匹配结果。
解决方法: 应当从匹配结果中选择具有最长网络前缀的路由。

[使用二叉线索查找路由]

为方便有效的查找,通常将无分类编址的路由表放在一种层次的数据结构中,然后自上而下的按层次进行查找。最常用的是二叉线索:它是一种特殊的结构树。IP地址中从左到右的比特值决定了从根节点逐层向下延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。
为简化二叉线索的结构,用IP地址的唯一前缀来构造二叉线索。
在这里插入图片描述

网际控制报文协议ICMP

为了更有效的转发IP数据报和提高交付成功的机会,在网际层中使用网际控制报文协议ICMP它允许主机或路由器报告差错情况和提供有关异常的报告。
ICMP报文是装在IP数据报中,作为其中数据部分。
在这里插入图片描述
[ICMP报文种类]

  1. ICMP差错报告报文
    ICMP报文共有4种
    ● 终点不可达
    ● 时间超过
    ● 参数问题
    ● 改变路由
  2. ICMP询问报文
    ICMP询问报文有两种
    ● 回送请求
    ● 时间戳请求和回答

[ICMP的应用]

  1. 用ping测试主机的连通性
  2. 用tracert命令获得目的主机的路由信息
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计网笔记 网络层(中) 的相关文章

随机推荐