【网络】- TCP/IP四层(五层)协议 - 网际层(网络层) - 划分子网、构造超网

news2025/1/17 4:36:48

目录

  • 一、概述
  • 二、分类IP地址不合理的地方
  • 三、划分子网
  • 四、无分类编址方法


在这里插入图片描述

一、概述

前面的文章介绍了网络层的网际协议IP,介绍了IP地址的定义,知道了IP地址分为网络标识(网络地址)、主机标识(主机地址)两部分,也清楚了最初IP地址是按照分类被划分为A、B、C、D、E 五类。但是这样的分类却存在不合理的地方,这篇文章的内容之一就是要谈谈这些不合理的地方,以及解决的办法。首先,我们要清楚IP地址编制方法经历的三个阶段,本文也是根据这几个阶段去展开的。

  • 分类的IP地址。最基本的编址方法,于 1981 年通过相应的标准协议。
  • 子网的划分。对分类的IP地址进行改进,其标准 RFC9501985 年通过。
  • 构造超网。比较新的无分类编址方法,1993 年提出后很快就得到推广应用。

在这里插入图片描述

二、分类IP地址不合理的地方

第一,IP地址空间利用率有时很低。
A类地址网络可连接的主机数超过1000万个( 2 24 2^{24} 224-2),而B类地址也有6万多个( 2 16 2^{16} 216-2),C类地址却只有250多个( 2 8 2^{8} 28-2)。有些公司申请了B类地址,但又用不到那么多个,但是又不愿意申请数量太少的C类地址。这一就会导致IP地址的浪费,也会使IP地址空间的资源过早地被用完。
在这里插入图片描述

第二,使路由表变得太大,降低网络性能
路由器都需要从它的路由表去查询怎样达到其他网络的下一跳路由器。因此,互联网中网络数越多,路由器的路由表的项目数就越多。这不仅增加了路由器的成本(需要更多存储空间),而且使查询路由表的时间延长,降低了网络性能。

第三,分类的IP地址不够灵活
分类的IP地址,在申请到一个新的IP之前,新增的网络是没法连接到互联网的。但现实中更多的情况是,一个单位能够随时灵活地增加本单位地网络,而不必事先到互联网管理机构去申请新的网络地址。

在这里插入图片描述

三、划分子网

1985年,在IP地址中增加了一个子网号字段,使二级地址变成了三级地址,能够很好解决分类地址不合理的问题,使用也更灵活。这种做法叫做划分子网(subnetting)[RFC 950],划分子网已经称为互联网的正式标准。其基本思路如下:

  • 划分子网纯属是单位内部的事情。一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网。单位对外表现仍然是一个网络,单位以外的网络不知道这个单位由多少个子网组成。
  • 划分子网的方法,是从IP地址的主机标识(主机地址)借用若干位作为子网号,借用后主机标识(主机地址)也减少同样位数,于是IP地址在本单位内部就变成三级IP地址:网络标识(网络地址)、子网号、主机标识(主机地址),也可以用以下记法来标识;
    在这里插入图片描述
  • 其他网络发给本单位某主机的IP数据报,仍然是根据IP数据报的目的网络地址找到连接在本网络上的路由器,路由器再根据目的网络地址和子网号找到目的子网,最后讲IP数据报交付到目的主机。

🌰举例子
假设现在某个单位申请到一个B类地址,它的网络标识(网络地址)是145.13.0.0,也就只要是目的地址为145.13.x.x的IP数据报都会被送到这个单位的路由器。现在这个单位想划分三个子网:

  • 假设从主机标识拿出8位来做子网号,子网号分别为3、7、21,则三个子网分别为:145.13.3.0145.13.7.0145.13.21.0
  • 划分后,网络对外的网络地址仍旧是145.13.0.0,但路由器收到IP数据报后,再按照IP数据报的目的地址转发到对应子网。
    在这里插入图片描述

子网掩码
上面的例子中,虽然内部划分了子网,但路由器并不知道内部划分了三个子网,怎么把IP数据报转发到对应子网的呢?
答案是使用 子网掩码,子网掩码用二进制方式表示的话, 也是一个32位的数字。虽然RFC文档中并没有规定必须使用连续的1,但还是极力推荐使用连续的 1 ,以免出现可能的差错。
子网掩码 与 收到的数据报的目的IP地址进行逐位的 与运算,就可能得出对应的子网。假设目的IP地址位145.13.3.10,路由器的子网掩码位255.255.255.0,将 目的IP子网掩码 逐个进行 与运算,可以得到子网的网络地址:145.13.3.0
在这里插入图片描述
默认子网掩码:网络没划分子网,则会提供一个默认的子网掩码,默认的子网掩码与IP地址的网络标识正好对应:

  • A类地址默认子网掩码:255.0.0.0
  • B类地址默认子网掩码:255.255.0.0
  • C类地址默认子网掩码:255.255.255.0

在这里插入图片描述

四、无分类编址方法

划分子网在一定程度上缓解了互联网在发展中遇到地困难,但B类地址在1992年已经分配了一半了,眼看很快就要全部分配完毕,而且互联网主干网上地路由表中地项目数急剧增长(从几千个增长到几万个)。预计这两个问题在1994年将变得非常严重,因此,IETF很快就研究出 无分类编址 来解决这两个问题。

可变长子网掩码 VLSM(Variable Length Subnet Mask),早在1987年,RFC1009 就指明在一个划分子网的网络中可同时使用几个不同的子网掩码。使用VLSM可以进一步IP地址的资源利用率。在 VLSM 的基础又研究出 无分类编址 方法,正式名称是 无分类域间路由选择 CIDR(Classless Inter-Domain Routing,CIDR 的读音是sider)。
CIDR 的两个主要特点:

  • 消除了A类、B类、C类地址以及划分子网的概念,可以更有效地分配 IPv4 的地址空间。把32位的IP地址分为两部分,前面部分位 网络前缀,用来指明网络,后面部分指明主机。
    CIDR 还使用 斜线记法,或称为 CIDR记法,在IP地址后面加上斜线 / ,然后再写上网络前缀所占的位数,如:145.13.3.10/24
    在这里插入图片描述
  • CIDR 把网络前缀都相同的连续的IP地址组成一个 CIDR地址块,只要知道这个地址块中的任何一个地址,就可以知道整个地址块的起始地址、最大地址 以及 地址块的地址个数。主机号全0或全1的一般不使用。路由表中就利用 CIDR 地址块来查询目的网络。

参考资料:
《计算机网络》第7版 - 第四章 谢希仁 编著
《图解TCP/IP》第5版
在这里插入图片描述

如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/576490.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 迷宫问题

文章目录 题目描述输入描述输出描述示例1 答案:代码讲解: 题目描述 在一个给定大小的迷宫中,有一个起点和一个终点,中间夹杂着一些墙壁 如果能走到终点输出 YES 否则输出 NO 输入描述 迷宫的大小 nm,其中 n 表示行数…

[数据结构 -- C语言] 堆(Heap),你小子就是堆,看我如何透彻的将你拿捏

目录 1、堆的概念及结构 1.1 概念(概念总是重要的) 1.2 结构,分为两种 1.2.1 小堆/小根堆示例 1.2.2 大堆/大根堆示例 2、堆的接口 3、接口实现 3.1 堆的初始化 3.2 堆的销毁 3.3 堆的插入 功能分析: 功能实现&#x…

zabbix动作执行失败 No media defined for user.

问题 zabbix动作执行失败 No media defined for user. 详细问题 解决方案 1(导航栏)用户 → \rightarrow →报警媒介 → \rightarrow →添加 2 选择类型 → \rightarrow →收件人 → \rightarrow →添加 3 更新 解决原因 笔者由于未点击更新钮导…

【计算机网络】3、IO 多路复用:select、poll、epoll、reactor | 阻塞非阻塞、同步异步

文章目录 一、select()1.1 用法1.1 实战 二、poll()2.1 用法2.2 实战 三、阻塞、非阻塞3.1 非阻塞 IO3.1.1 read()3.1.2 write()3.1.3 accept()3.1.4 connect()3.1.5 非阻塞IO select() 多路复用实战 四、epoll()4.1 epoll_create()4.2 epoll_ctl()4.3 epoll_wait()4.4 实战4.…

GAN在图像转译领域的应用-CycleGANPix2Pix

在之前的博客中向大家介绍了生成对抗网络GAN的相关概念以及条件GAN,DCGAN相关内容,需要的小伙伴可以点击以下链接了解~生成对抗网络GAN_生成对抗网络流程_春末的南方城市的博客-CSDN博客生成对抗网络Generative Adversarial Networks(GAN&…

使用Docker安装Guacamole远程网关并配置录像回放

一、参考 guacamole配置guacamole使用Docker安装guacamole在浏览器中播放录像guacamole插件下载 二、环境 操作系统:Anolis OS 8.6 QU1 docker版本:23.0.5 docker compose版本:v2.17.3 docker-image-guacamole:1.5.1 docker-image…

线段树C++详细讲解和个人见解

问题引入 假设有这样的问题&#xff1a;有n个数&#xff0c;m次操作&#xff0c;操作分为&#xff1a;修改某一个数或者查询一段区间的值 数据范围是&#xff08;1 < n, m<1e9)。 这种题大家一看就知道打暴力&#xff0c;但是一看数据范围就知道只能得部分。 我们之前…

STM32F407单片机HAL库CAN2不能接收数据解决方法

最近在使用stm32F407的片子调试can通信&#xff0c;直接在正点原子的代码上修改调试&#xff0c;调试can1的时候&#xff0c;基本没啥问题&#xff0c;收发都正常&#xff0c;使用查询模式和中断模式都可以。但是当修改到can2的时候&#xff0c;可以正常发送数据&#xff0c;但…

@Transactional注解作用,不生效的场景,事务回滚

目录 一、Transactional注解二、注解失效问题1、Transactional 应用在非 public 修饰的方法上2、Transactional 注解属性 rollbackFor 设置错误3、同一个类中方法调用&#xff0c;导致Transactional失效4、捕获异常 三、Transactional回滚1、Transactional2、Transactional(rol…

HUD(抬头显示)的方案介绍

目录 一、基于DLP3030-Q1的HUD电路设计 二、DLP3030-Q1的介绍 三、DLP3030-Q1工作原理 四、DLPC120-Q1DMD 显示控制器 五、TMS320F2802332 位 MCU 六、 HUD显示实例 HUD主板实例 七、HUD的软件环境 一、基于DLP3030-Q1的HUD电路设计 本设计采用了DLP3030-Q1 芯片组&…

H3C IPSec IKE野蛮模式

这里使用H3C模拟器。 H3C IPSec IKE野蛮模式&#xff0c;又称为IKE Main Mode&#xff0c;主要是在第一阶段&#xff08;Phase 1&#xff09;的过程中提供身份保护。它主要用于VPN隧道建立过程中的密钥交换。以下是配置步骤&#xff1a; 创建IKE提案&#xff1a; system-view…

vite源码分析之dev

最近研究socket, 所以就顺便看了一下vite源码, vite的热更新就是根据socket实现的, 所以正好记录一下. 前端任何脚手架的入口,肯定是在package.json文件中,当我们输入script命令时, 会经历什么样的步骤呢? 接下来我们一起来探索一下~~~ 入口-package.json 看下面就是一个普…

【C++】string介绍

String 前言为什么学习string类&#xff1f;string类的常用接口说明string类对象的常见构造析构函数赋值运算符重载[ ] 重载size和length迭代器字符串追加关于容量的函数insert和erasefindreplacec_strrfindfind_first_offind_first_not_offind_last_ofsubstrgetlineto_string …

linux+onenet可视化(图形化步骤)

文章目录 一、ONENET项目搭建1.1 ONENET注册1.2 创建产品与设备1.3 添加数据流 二、可视化配置 OneNET是由中国移动打造的PaaS物联网开放平台。平台能够帮助开发者轻松实现设备接入与设备连接&#xff0c;快速完成产品开发部署&#xff0c;为智能硬件、智能家居产品提供完善的物…

孤儿僵尸守护进程

孤儿僵尸守护进程 1. 孤儿进程&#xff1a;2. 僵尸进程&#xff1a;3. 守护进程&#xff1a;(重点) 1. 孤儿进程&#xff1a; 父进程退出,还没退出的子进程就变成了孤儿进程 不要怕,还有爷爷进程init: 孤儿进程将被init进程所收养&#xff0c;并由init进程对它们完成状态收集…

认识HTTP协议---2

hi,大家好,今天继续为大家带来HTTP协议相关的知识 认识请求报头 &#x1f440;1.header &#x1f440;2.Content-Type,Content-Length &#x1f440;3.User-Agent &#x1f440;4.Referer &#x1f440;5.Cookie机制 小复习 进入正题之前我们先回忆一下之前的知识 http报…

牛客小白月赛73

A&#xff1a;最小的数字 A-最小的数字_牛客小白月赛73 (nowcoder.com) #include<bits/stdc.h> #define endl \n #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define int long long using namespace std; int n, m, k, A, B, N, M, K; const int ma…

22种transforms数据预处理方法

来源&#xff1a;投稿 作者&#xff1a;阿克西 编辑&#xff1a;学姐 建议搭配视频学习↓ 视频链接&#xff1a;https://ai.deepshare.net/detail/p_5df0ad9a09d37_qYqVmt85/6 1.数据增强&#xff08;data augmentation&#xff09; 数据增强又称为数据增广&#xff0c;数据…

docker安装单机nacos、rocketmq、reids、xxl-job、minio、elasticsearch、kibana、gogs、nginx

目录在右侧中部 启动容器报错 直接删除那个name后边的就可以 安装nacos 首先需要拉取对应的镜像文件&#xff1a;docker pull nacos/nacos-server 挂载目录&#xff1a; mkdir -p /mydata/nacos/logs/ #新建logs目录mkdir -p /mydata/nacos/init.d/ …

最小二乘估计心得

基本思想 存在一组观察值 ( x i , y i ) (x_i, y_i) (xi​,yi​)&#xff0c;其中 y i y_i yi​和 x i x_i xi​之间满足一定的线性关系&#xff0c;如 y a 0 f 0 ( x ) a 1 f 1 ( x ) . . . a m − 1 f m − 1 ( x ) y a_0 f_0(x) a_1 f_1(x) ... a_{m-1} f_{m-1}(x…