在IPv4地址(一)中提到过,IP地址可以分成两部分,前面一部分是网络号,而后面一部分是主机号。

这里网络可以通过主机数量规模不同而分为3类:大型网络中型网络小型网络

不同网络的特点

  • 大型网络——可以定义位包含大量主机的网络。大型网络的数量相对很少。
  • 小型网络——作为大型网络的对照,它仅仅包含很少量的主机,但是小型网络的数目很多。
  • 中型网络——相对于大型网络和小型网络,包含的主机数量中等,而且中型网络的数量也中等。

下图显示了3类IPv4地址的网络号和主机号是如何划分的。

图1 不同类型网络地址的格式及其区分

目前对于所描述的大型、中型和小型网络,是按照如下的方式映射到各类地址的:

  • A类地址——用于大型网络,第1个八位组是网络号,后3个八位组是主机号。8位的网络号最多可以表示256个网络,而每个网络地址的主机号可以提供的主机数量为2^24或1, 677, 216。
  • B类地址——用于中型网络。前2个八位组表示网络号,后2个八位组表示主机号。网络号和主机号的数量均为2^16或65535个。
  • C类地址——对应于A类IP地址。前3个八位组表示网络号,最后1个八位组表示主机号。

如何区分不同类型的地址

对于所有的IPv4地址,都是32位的二进制字符串,所以需要有某种方法来区分一个特定的地址到底属于哪一类地址。

如图1中所示的:

  • 对于A类地址,首个八位组的第1位,即32位字符串最左边的1位,总是被设置为0。所以对于前八位,可以很容易找到A类地址范围中的最小数和最大数,即0和127。但是例外的是:0被保留作为缺省地址部分,127被保留作为内部回送地址。剩下的十进制数则是1~126。其中最典型的127.0.0.1是给设备使用的环回地址,向自己给发送流量。发送到该地址的数据将会被直接送回给发送进程,而不会离开此设备。
  • B类地址总是把左边的第1位设置为1,第2位设置为0。再次通过设置首个八位组的剩余位为0或者为1,可以得到128到191之间的IP属于B类地址。
  • C类地址中,前2个均被设置为1,第3位被设置为0。这样设置之后,首个八位组在192~223之间。

图2 不同网络号的分布

事实上有很多地址都不会被分配,例如:

10.0.0.0~10.255.255.255

172.16.0.0.~172.31.255.255

192.168.0.0~192.168.255.255

这几个范围都是作为保留地址的,难怪路由器中老是192.168.xxx.xxx,原来是C类地址呀。

确定IP地址的网络号

有了以上的约定之后,可以通过首个八位组字节规则确定IP地址的网络类型,然后通过网络类型确定取前多少位,然后计算可得网络号,那么剩下的位数就是主机号咯。

比如:如果第1位是0,则需要读取前8位才能获取网络地址;如果前两位是01,那么需要读取16位。但是事情真的就是这么简单么???

IPv4地址(二)网络划分的更多相关文章

  1. IPv4编址及子网划分

    在讨论IP编址之前,我们需要讨论一下主机与路由器连入网络的方法.一台主机通常只有一条链路链接到网络:当主机中的IP想发送一个数据报时,它就在链路上发送,主机与物理链路之间的边界叫做接口(interfa ...

  2. IPv4地址分类及子网划分

    IPv4地址分为A,B,C,D,E类: A类:1.0.0.0~126.255.255.255,默认子网掩码/8,即255.0.0.0 (其中127.0.0.0~127.255.255.255为环回地址 ...

  3. 计算机网络之IPv4(IPv4分组、IPv4地址、NAT、子网划分与子网掩码、CIDR、ARP协议、DHCP、ICMP)

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105138313 学习课程:<2019王道考研计算机网络> 学习目的 ...

  4. 网络连接详细信息出现两个自动配置ipv4地址

    问题:网络连接详细信息出现两个自动配置ipv4地址,一个是有效地址,一个是无效地址. 解决办法:先将本地连接ip设置成自动获取,然后点击开始——>运行——>输入cmd,回车,进入命令行界面 ...

  5. 网络连接详细信息出现两个自动配置ipv4地址的解决办法

    问题描述:网络连接详细信息出现两个自动配置ipv4地址,一个是有效地址,一个是无效地址. 解决办法: 先将本地连接ip设置成自动获取 点击开始——>运行——>输入cmd,回车,进入命令行界 ...

  6. python网络编程——将IPv4地址转换成不同的格式

    1.将IPv4地址转换为32位二进制格式,用做底层网络函数. import socket from binascii import hexlify def convert_IPv4_address() ...

  7. IPv4地址学习总结

    一. IPv4地址格式 网络互连的一个重要前提条件是要有一个有效的地址结构,并且所有的互连网络用户都应遵守这个地址结构.因为只有这样所有的互连网络用户才能在统一的规定下相互之间通讯.这个地址结构可以有 ...

  8. ------- 当前全球最新的 IPv4 地址池使用报告 -------

    -------------------------------------------------------------- 对于互联网行业相关的从业人员而言,时刻关注 IPv4 地址池的状态此类&q ...

  9. IP地址和子网划分学习笔记之《IP地址详解》

    2018-05-03 18:47:37   在学习IP地址和子网划分前,必须对进制计数有一定了解,尤其是二进制和十进制之间的相互转换,对于我们掌握IP地址和子网的划分非常有帮助,可参看如下目录详文. ...

随机推荐

  1. Why Namespace?

    上一节我们讨论了 Neutron 将虚拟 router 放置到 namespace 中实现了不同 subnet 之间的路由.今天探讨为什么要用 namespace 封装 router? 回顾一下前面的 ...

  2. Scrapy学习-24-集成elasticsearch

    elasticsearch简单集成到scrapy中 使用elasticsearch的python接口处理数据  https://github.com/elastic/elasticsearch-dsl ...

  3. Ubuntu备份设置与恢复

    打开家目录,按CTRL+H,显示所有隐藏文件,把所有文件名前面带点的文件(比如 .config).目录备份即可下次有问题就覆盖它

  4. Day 30 process&thread_2

    进程和线程_2 1.继承类创建线程 import threading,time class Mythread(threading.Thread): #建立类,继承threading.Thread de ...

  5. Oracle 表分区partition(http://love-flying-snow.iteye.com/blog/573303)

    http://www.jb51.net/article/44959.htm Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库表中某一字段的值的范围来划 ...

  6. HDU 5242 Game(树上贪心)

    题目链接 Game 题目的意思很简单, 就是要找一棵树权值最大等等前K条链. 在本题中,走的次数等于min(叶子结点个数,k) tree[i].sum意为从i号结点出发走到某个叶子结点能得到的最大总价 ...

  7. [CentOS]怎样解决gcc版本号冲突?

    今天碰到一个比較坑爹的问题.在centos上用yum安装编译环境,执行: yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel o ...

  8. 简单便捷的纯PHP网盘程序 Veno File Manager 2.6.3(VFM2)

    体验过很多国外网盘程序,例如:Owncloud.Bedrive.YetiShare.XFilesharing.uCloud.Cloudshare 等等,诸如此类,VFM2与这些臃肿的商用或非商用来的程 ...

  9. sql语句中几个需要注意的点

    1.在写join语句的时候,一定要注意不要漏了on语句,例如: Select * from Student inner join Sc on Student.Sno=Sc.sno 2.having语句 ...

  10. 转: 低延迟系统的Java实践

    from:  http://blog.csdn.net/jacktan/article/details/41177779 在很久很久以前,如果有人让我用Java语言开发一个低延迟系统,我肯定会用迷茫的 ...