摘要:IP地址是怎么划分的呢?划分的依据是什么呢?本节小课将带你一起学习IP地址划分、子网划分、子网掩码、CIDR等网络基础概念,了解IP地址划分背后的那些故事。

首先,回忆一下,前面小课中我们有提到IP地址的分类,那么IP地址到底是怎么划分的呢?划分的依据是什么呢?这就不得不提到IP地址划分背后的那些故事了。

IP地址划分

最初32位的IP地址是由{<网络地址/网络号><主机地址/主机号>}组成,被划分为五大类,一般使用最多比较常见是A类、B类和C类。

IP地址编码规范中规定:网络地址和主机地址全0为本地地址,表示本地网络或主机;网络地址和主机地址为全1为广播地址,表示所有网站都可接收发出的信息,通常这两种IP地址不能作为互联网中的主机IP地址。因此,每类IP地址中除去这两个,可计算出ABC三类IP地址的网络地址数以及每个网络地址中所能容纳的主机数量:

  • A类IP地址:126(2^7-2)个网络地址,可容纳主机 16777214(2^24-2)台
  • B类IP地址:16382(2^14-2)个网络地址,可容纳主机 65534(2^16-2)台
  • C类IP地址:2097150(2^21-2)个网络地址,可容纳主机 254(2^8-2)台

上述的IP地址表示方式称为两级IP地址。不难发现,在实际应用中,分配一个B类网络地址太多,C类又太少,这样对IP地址空间的利用率会偏低,也不够灵活。于是,就出现了子网划分的概念。

子网划分

子网划分就是将原来的两级IP地址进一步划分为三级IP地址,即:{<网络地址/网络号>,<子网地址/子网号>,<主机地址/主机号>}。参考如下图,将C类的两级IP地址划分为三级IP地址。

其中子网地址就是从主机地址中借走几位,所以子网划分实际上就是减少了主机数,分配到不同的子网,每个子网包含一定的主机数。子网就可以理解为,把一个大的网络从内部分成几个小的子网。但对于该网络的外层来看,还是一个大的网络,只有该网络内部才可以看到其进行了子网划分。

比如说:某个高校被分配了一个大的网段,学校可以采用三级IP地址划分方式分给对应的学院使用。对于互联网来说,学校的网络地址依旧是那个网络地址,只有高校知道自己内部还进行了子网划分。

但是有个问题,互联网中的网络设备向学校内的主机发送数据时,在IP数据包到达学校网络时,路由器是如何机智的识别到这个数据应该发送给哪个子网呢?子网掩码在这里就发挥了很大的作用。

子网掩码

子网掩码将某个IP地址划分成网络地址和主机地址两部分,可以用来判断任意两台主机的IP地址是否属于同一子网络。具体来说就是两台计算机各自的IP地址与子网掩码进行“与”运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通信。

例如:192.168.1.1>11000000.10101000.00000001 00000001

子网掩码255.255.255.240 >11111111.11111111.11111111.11110000

相“与”得到:11000000 10101000 00000001 00000000

网络地址为:192.168.1.0

主机地址为:0.0.0.1

在实际应用中,我们会遇到这样的IP地址:

  • IP地址:192.168.1.1 子网掩码:255.255.255.0
  • IP地址:192.168.1.2 子网掩码:255.255.255.0

可以直接判断出,他们网络地址都为192.168.1.0,属于同一子网网段。

那么如果是下面这样的呢?

  • IP地址:192.168.1.1 子网掩码:255.255.255.0
  • IP地址:192.168.1.2 子网掩码:255.255.0.0

根据“与”运算,你发现,虽然长得比较像,但他们可不是“一家人”哦

第一个网络地址为192.168.1.0,而第二个网络地址为192.168.0.0,不在同一子网网段。

CIDR

子网的划分有效地减少了网络中浪费的IP地址,但是仍然存在一些问题。

比如某公司需要2000个地址,分配一个B类IP地址,那可就太浪费了,分配一个C类IP地址,又不够用。那这个问题要怎么解决呢?

这就产生了无分类域间路由选择(Classless Inter-Domain Routing,CIDR),也就是无分类编址。它消除了传统ABC类及子网划分的概念。使网段的划分更加灵活。采用CIDR记法(斜线记法)表示IP地址:{<网络前缀><主机地址/主机号>}/网络前缀占位数。

在上述公司案例中,需要8个C类地址,这8个C类地址可以构成一个地址块,分配这个CIDR地址块给该公司。只需要11位表示主机地址,21位表示网络前缀。则子网掩码表示为11111111.11111111.11111000.00000000

比如分配192.168开头的,8个C类的地址块:

11000000.10101000.11111xxx.xxxxxxxx

网络地址的后三位为变量,那么加上后八位主机地址,可以容纳(2^8)*(2^3)=2048个主机地址。

该网络前缀为11000000.10101000.11111(192.168.248),比如某主机号192.168.248.15,采用CIDR记法则为192.168.248.15/21。

课堂练习

讲了IP划分的由来及背后涉及的这些基础概念知识,不妨建立一个虚拟私有云试试吧~

虚拟私有云VPC,为云服务器、云容器、云数据库等资源构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云上资源的安全性,简化用户的网络部署。

您可以在VPC中定义IP地址段,每个虚拟私有云VPC都包含一个私网网段和至少一个子网。当您选定网段后,页面自动显示子网网段可用IP数,便于您的网络规划哦~

私网网段:在创建虚拟私有云VPC时,需要指定虚拟私有云VPC使用的私网网段。当前虚拟私有云VPC支持的网段有10.0.0.0/8~24、172.16.0.0/12~24和192.168.0.0/16~24。

子网:云资源(例如云服务器、云数据库等)必须部署在子网内。所以,虚拟私有云VPC创建完成后,您需要为虚拟私有云VPC划分一个或多个子网,子网网段必须在私网网段内。

了解更多虚拟私有云信息,戳这里

本文分享自华为云社区《IP地址划分的背后.....》,原文作者:云小萌 。

点击关注,第一时间了解华为云新鲜技术~

网络知识一箩筐:IP地址划分的那些知识点的更多相关文章

  1. IP地址划分

    对于32位的IPV4地址来说,有5中IP地址类型 A类IP地址第一个字节是网络地址,后三个字节是主机地址,且最高位以0开头. 0000001  00000000   00000000 00000001 ...

  2. 网络编程概述和IP地址的获取方法

    java网络通信概述 一.网络通信步骤: 主机1 主机2 QQ-------QQ FEIQ-----FEIQ 1.找到对方IP. 2.找到对方端口号.数据要发送到对方的应用程序上.为了标识这些应用程序 ...

  3. CentOS 网络设置修改 指定IP地址 DNS 网关(转)

    CentOS 网络设置修改 指定IP地址 DNS 网关(实测 笔记)   环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 ...

  4. c/c++ 网络编程 UDP 改变IP地址

    网络编程 UDP 改变IP地址 在程序里动态改变主机的IP地址 1,改变ipv4的地址 #include <stdio.h> #include <string.h> #incl ...

  5. 【网络编程一】主机字节序与网络字节序以及ip地址转换函数

    在计算机设计之初,对内存中数据的处理也有不同的方式,(低位数据存储在低位地址处或者高位数据存储在低位地址处),然而,在通信的过程中(ISO/OSI模型和TCP/IP四层模型中),数据被一步步封装(然后 ...

  6. 回溯---IP 地址划分

    IP 地址划分 93. Restore IP Addresses(Medium) Given "25525511135", return ["255.255.11.135 ...

  7. 【转】网络管理员必知之:IP地址划分

    1.IP地址分类         IP地址有四个段,包括网络标识和主机标识两部分:netid+hostid.         IP地址应用分为A.B.C三类,D.E类是保留和专用的.         ...

  8. [svc]ip地址划分

    网络界有2个计算题,一个是子网掩码,另一个就是三次握手,四次回收序列号计算了. 学会如何划分等长子网 学会如何合并网段 学会ip是否能分配 理解特殊的ip地址 ip头部 ip地址分类 现在的IP网络使 ...

  9. 网络知识02:TCP/IP概述

    一  DOD模型 传输控制协议IRI特网协议(TCP/IP)组是由美国国防部(DOD)所创建的,主要用来确保数据的完整性及在毁灭性战争中保持通信 是由一组不同功能的协议组合在一起的协议簇 利用一组协议 ...

  10. 3、IP地址划分

    划分子网方法:1.你所选择的子网掩码将会产生多少个子网?:2 的x 次方(x 代表被借走的主机位数)2.每个子网能有多少主机?: 2 的y 次方-2(y 代表被借走之后剩余的主机位数)3.块大小:bl ...

随机推荐

  1. We Need More Bosses 题解

    We Need More Bosses 题目大意 给定一张图,找到两个点,使得这两个点之间的所有路径必须经过的边最多. 思路分析 我们先来思考一下如果已知两个点,怎么求两个点之间必须经过的边的数量. ...

  2. 虹科分享 | 一起聊聊Redis企业版数据库与【微服务误解】那些事儿!

    如今,关于微服务依然存在许多误解,企业盲目追求这种炫酷技术并不可取.同时,这种盲目行为对于希望用微服务来有效解决问题的公司很不利.不是说任何特定的技术都是缺乏实际价值的,如微服务.Kubernetes ...

  3. LCT(link cut tree) 详细图解与应用

    樱雪喵用时 3days 做了 ybtoj 的 3 道例题,真是太有效率了!!1 写死自己系列. 为了避免自己没学明白就瞎写东西误人子弟,这篇 Blog 拖到了现在. 图片基本沿用 OIwiki,原文跳 ...

  4. Chromium Canvas工作流

    blink 中实现了2种 canvas,分别是 blink::HTMLCanvasElement 和 blink::OffscreenCanvas ,前者对应 html/dom 中的 canvas,后 ...

  5. 【实践篇】一次Paas化热部署实践分享

    前言 本文是早些年,Paas化刚刚提出不久时,基于部门内第一次Paas化热部署落地经验所写,主要内容是如何构建一些热部署代码以及一些避雷经验. 一.设计-领域模型设计 1.首先,确定领域服务所属的领域 ...

  6. Java之引用传递

    引用传递分析 类本身就属于引用数据类型,既然是引用数据类型,就会牵扯到内存的引用传递. 引用传递的本质:同一块堆内存空间可以被不同的栈内存所指向,也可以变更指向. 引用传递案例 先看一个应用传递的例子 ...

  7. Numpy理解

    目录 什么是numpy numpy的安装 numpy数组 定义numpy数组 numpy数组的相关功能 基本操作 0数组和1数组 随机数组 二维数组 numpy的数组操作 我们再平常学习python和 ...

  8. 关于Delphi

    # 关于Delphi ··Delphi中使用的面向对象pascal编程语言. ··Pascal语言最初由瑞士苏黎士理工学院的尼古拉斯-沃斯(Niklaus Wirth)教授在1971年设计. ··19 ...

  9. Excel表格存在不同大小的合并单元格怎么排序?

    当Excel表格中存在不同大小的合并单元格时,进行排序可能会出现一些难题.因为合并单元格会影响数据的布局,导致排序结果不符合预期. 下面我将详细介绍如何在包含不同大小合并单元格的Excel表格中进行排 ...

  10. 文心一言 VS 讯飞星火 VS chatgpt (148)-- 算法导论12.2 3题

    三.用go语言,写出过程 TREE-PREDECESSOR 的伪代码. 文心一言: 以下是使用Go语言编写的TREE-PREDECESSOR函数的伪代码: func TREE-PREDECESSOR( ...