划分子网

从两级 IP 地址到三级 IP 地址

早期(ARPANET 早期)的IP地址设计存在的问题:
(1) IP 地址空间的利用率有时很低。
(2) 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
(3) 两级的 IP 地址不够灵活。

三级 IP 地址

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

划分子网的基本思路

  • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
  • 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。
  • 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器
  • 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。
  • 最后就将 IP 数据报直接交付目的主机。

实例

一个未划分子网的 B 类网络145.13.0.0

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

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

划分子网后变成了三级结构

  • 当没有划分子网时,IP 地址是两级结构。
  • 划分子网后 IP 地址就变成了三级结构。
  • 划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id。

    优点:
    1.减少了 IP 地址的浪费
    2.使网络的组织更加灵活
    3.更便于维护和管理

子网掩码

问题:假定一个数据报(目的地址是145.13.3.10)已经到达了路由器R1,那么路由器如何转发到子网145.13.3.0?(IP数据报是无法看出源主机或目的主机所连接的网络是否进行子网划分)

解决这个问题就要使用子网掩码,使用子网掩码 (subnet mask) 可以找出 IP 地址中的子网部分

规则:

  • 子网掩码长度 = 32 位
  • 子网掩码左边部分的一连串 1,对应于网络号和子网号
  • 子网掩码右边部分的一连串 0,对应于主机号


使用子网掩码的好处:
不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算,立即得出网络地址。这样路由器处理到来的分组时就可以采用同样的算法。

运算过程:

默认的子网掩码

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

子网划分方法

  • 固定长度子网变长子网两种子网划分方法。
  • 在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的
  • 虽然根据已成为互联网标准协议的 RFC 950 文档,子网号不能为全 1 或全 0,但随着无分类域间路由选择 CIDR 的广泛使用,现在全 1 和全 0 的子网号也可以使用了,但一定要谨慎使用,确认你的路由器所用的路由选择软件是否支持全 0 或全 1 的子网号这种较新的用法。
  • 划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数

B 类地址的子网划分选择(使用固定长度子网)

使用子网时分组的转发

  • 在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。
  • 但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。
  • 因此分组转发的算法也必须做相应的改动。

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

  1. 从收到的分组的首部提取目的 IP 地址 D。
  2. 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配若匹配,则将分组直接交付。否则就是间接交付,执行(3)。
  3. 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行 (4)。
  4. 对路由表中的每一行,将子网掩码和 D 逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行 (5)。
  5. 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行 (6)。
  6. 报告转发分组出错。

无分类编址CIDR(构成超网)

背景(产生的问题):

  • B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕!
  • 互联网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。
  • 整个 IPv4 的地址空间最终将全部耗尽。

解决方案:

  • 1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。
  • 使用变长子网掩码 VLSM (Variable Length Subnet Mask)可进一步提高 IP 地址资源的利用率。
  • 在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。

CIDR 最主要的特点

  • CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
  • CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
  • IP 地址从三级编址(使用子网掩码)又回到了两级编址。

无分类的两级编址

无分类的两级编址的记法:

CIDR 使用“斜线记法”(slash notation),它又称为 CIDR 记法,即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。例如: 220.78.168.0/24

CIDR 地址块

  • CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
  • 128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。
    • 这个地址块的起始地址是 128.14.32.0。
    • 在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。
    • 128.14.32.0/20 地址块的最小地址:128.14.32.0
    • 128.14.32.0/20 地址块的最大地址:128.14.47.255
    • 全 0 和全 1 的主机号地址一般不使用。

如:128.14.32.0/20 表示的地址(212 个地址)

路由聚合 (route aggregation)

  • 一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
  • 路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。
  • 路由聚合也称为构成超网 (supernetting)。
  • CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。
  • 对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。

CIDR 记法的其他形式

  • 10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略。
  • 10.0.0.0/10 隐含地指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0。此掩码可表示为:
  • 网络前缀的后面加一个星号 * 的表示方法,如 00001010 00*,在星号 * 之前是网络前缀,而星号 * 表示 IP 地址中的主机号,可以是任意值。

常用的 CIDR 地址块

构成超网

  • 前缀长度不超过 23 位的 CIDR 地址块都包含了多个 C 类地址。
  • 这些 C 类地址合起来就构成了超网。
  • CIDR 地址块中的地址数一定是 2 的整数次幂。
  • 网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀变长。
  • CIDR 的一个好处是:可以更加有效地分配 IPv4 的地址空间,可根据客户的需要分配适当大小的 CIDR 地址块。

CIDR 地址块划分举例

最长前缀匹配

  • 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
  • 应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching)。
  • 网络前缀越长,其地址块就越小,因而路由就越具体 (more specific) 。
  • 最长前缀匹配又称为最长匹配或最佳匹配。

举例:


使用二叉线索查找路由表

  • 当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。
  • 为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索 (binary trie)。
  • IP 地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。
  • 为了提高二叉线索的查找速度,广泛使用了各种压缩技术。

用 5 个前缀构成的二叉线索
从二叉线索的根节点自顶向下的深度最多有 32 层,每一层对应于IP地址中的一位。一个IP地址存入二叉线索的规则很简单。先检查IP地址左边的第一位,如为 0,则第一层的节点就在根节点的左下方;如为 1,则在右下方。然后再检查地址的第二位,构造出第二层的节点。依此类推,直到唯一前缀的最后一位。

计算机网络 划分子网构造超网相关推荐

  1. ABC类网络的范围,IP子网划分、构造超网

    首先,A类.B类和C类的地址范围不同: A类地址:1.0.0.1-126.255.255.254 B类地址:128.1.0.1-191.255.255.254 C类地址:192.0.1.1-223.2 ...

  2. 网络基础 IP协议 子网划分 子网汇总 超网 无类间路由超详细介绍

    1.10数据封装/解封装过程 1.10.1封装 特点 从四层网上层封装 2.过程 1)在数据后面加FCS校验.data->FCS校验 2)对数据在四层进行封装,通过TCP/UDP.TCP/UDP ...

  3. 《计算机网络》第四章 网络层 ——分类的IP 划分子网 构成超网 路由选择协议 路由器构成

     

  4. 【知识分享】计算机网络(谢希仁)-解决IPv4网络匮乏的问题的解决方案(划分子网和构造超网)的知识要点总结

    知识提出 回到学校还是要不断学习的.回顾一下之前的基础知识,计算机网络.之前一直都有一个疑问不是说IPv4一直都要玩完了,那么在IPv4如此匮乏的情况下,聪明的科学家怎么解决这些问题呢? 本次文章积累 ...

  5. 划分子网和构造超网的学习

    1.划分子网 标准的划分方法的缺点: IP 地址空间的利用率有时很低. 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏. 两级的 IP 地址不够灵活 最终提出解决的办法:划分子网, ...

  6. IPv4下,划分子网,构造超网(CIDR)

    早期 IP 地址的设计不够合理: (1) IP 地址空间的利用率有时很低. (2) 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏. (3) 两级的 IP 地址不够灵活. 提出子网 ...

  7. 四、划分子网和构造超网

    文章目录 一.划分子网 1.从两级IP地址到三级IP地址 2.子网掩码 3. 使用子网时分组的转发 3. 无分类编址CIDR(构造超网) 1. 编制记法 2. CIDR地址块 3.路由聚合 一.划分子 ...

  8. TCP/IP--划分子网和构造超网

    本篇结构: 前言 划分子网 无分类编址CIDR(构造超网) 一.前言 接着上一篇,继续分享网际协议IP的内容–划分子网和构造超网. 那么,为什么要划分子网和构造超网? 我们知道,分类的IP地址主要有A ...

  9. IP协议详解之子网寻址、子网掩码、构造超网

     子网寻址 1. 从两级IP地址到三级IP地址 <1>. IP地址利用率有时很低. <2>. 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏. <3 ...

最新文章

  1. 习题4-11 兔子繁衍问题 (15 分)
  2. 计算机类期刊的影响因子
  3. 两个不同分支之间的代码合并
  4. linux重启后root密码错误,Linux技巧| 解决Debian Root密码忘记的问题
  5. 计算机主板知识,小白必看电脑主板知识扫盲,主板是什么?有什么用?
  6. 为应用程序池**提供服务的进程意外终止。进程ID是**。进程退出代码是'0x80'
  7. 为什么你应该用Yarn而不是Npm来管理你的项目依赖?
  8. iOS 中的正则匹配(工具类方法)
  9. 高通7227平台外接UBLOX的GPS模块数据接收不稳定问题
  10. 任玉刚【Android开发艺术探索】读后笔记三
  11. 2022CUDA夏季训练营Day5实践
  12. 液晶12864(KS0108主控)
  13. C4D动画如何提交云渲染农场快速渲染?
  14. 敏捷团队的病与药——阿里健康医药B2B团队敏捷转型手记
  15. Android开发-WebView中实现Android调用JS JS调用Android 【三】
  16. 苹果电脑重置登录密码
  17. Python中break语句和continue语句的用法
  18. 平面分割(直线、面、折线)
  19. tekton入门 - piplinerun
  20. golang $or $in $ge $gte 查询使用

热门文章

  1. android+打开apk文件怎么打开,安卓手机apk文件怎么打开
  2. Python爬虫初学一(爬虫基础)
  3. java计算机毕业设计政府人才机构在线考试系统2021源码+mysql数据库+系统+lw文档+部署
  4. android组件圆角,Android实现圆角控件
  5. error:LNK2005 已经在*.obj文件中定义的解决办法
  6. 【JMeter】压测工具的使用
  7. 15份PPT,透视网易云音乐/严选/新闻/游戏背后的AI实践(合集下载)
  8. Debug下正常运行,但调成Release时遇到三个问题及其完美解决!
  9. 最强GTD Omnifocus3 (mac)
  10. java pdf输出图片_Java PDF转换成图片并输出给前台展示