在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. POJ2478 Farey Sequence

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15023   Accepted: 5962 Description The ...

  2. 通过命令编译的项目 导入 到eclipse

    通过命令编译的项目 导入 到eclipse后,需要 1.设置 sdk和ndk 的路径 2.设置 AndroidManifest.xml 中的版本为当前版本:<uses-sdk android:m ...

  3. python的上下文管理

    说道上下文管理首先想到的就是这个: class MyResource: def __enter__(self): print("查询开始") return self def __e ...

  4. JdbcTemplate模板使用

    1.添加模板的配置文件 在spring的配置文件中加入如下代码 <bean class="org.springframework.jdbc.core.JdbcTemplate" ...

  5. java 基于tcp客户端服务端发送接收数据

    客户端: package demo03; import java.io.IOException; import java.io.InputStream; import java.io.OutputSt ...

  6. AC日记——青蛙的约会 poj 1061

    青蛙的约会 POJ - 1061   思路: 扩展欧几里得: 设青蛙们要跳k步,我们可以得出式子 m*k+a≡n*k+b(mod l) 式子变形得到 m*k+a-n*k-b=t*l (m-n)*k-t ...

  7. 记一个react拖动排序中的坑:key

    在做一个基于react的应用的时候遇到了对列表拖动排序的需求.当使用sortable对列表添加排序支持后发现一个问题:数据正确排序了,但是dom的顺序却乱了,找了一会儿原因后发现是因为在渲染数据的时候 ...

  8. 洛谷 P1328 生活大爆炸版石头剪刀布【模拟/环/周期】

    题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...

  9. MySQL备份工具收集

    说明:MySQL的备份不像SQL Server那么的简单,备份时需要分数据库引擎类型,现在主流的就两个:InnoDB和MyISAM,而这两种类型备份方式各不一样. MyISAM: mysqlhotco ...

  10. Flexible and Economical UTF-8 Decoder

    http://bjoern.hoehrmann.de/utf-8/decoder/dfa/