IP地址之IPv4

一、概述

  IP地址有IPv4和IPv6两个版本,目前我们通常所说的IP地址是指IPv4。

  IP地址由32位的二进制数组合而成,为了方便人类记忆,将二进制转换成4个十进制的数值。

  在这32位数据中分为网络号与主机号两个部分。

二、IP的分级

  IP网段分为五个等级,其定义如下:

  A类:规定前面8位为网络地址,后面的24位为主机地址,并且网络地址必须以0开头。如下所示:

    二进制表示:0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

    十进制表示:0.xx.xx.xx – 127.xx.xx.xx

  B类:规定前面16位为网络地址,后面16位为主机地址,并且网络地址必须以10开对。如下所示:

    二进制表示:10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

    十进制表示:128.xx.xx.xx – 191.xx.xx.xx

  C类:规定前面24位为网络地址,后面8位为主机地址,并且网络地址必须以110开对。如下所示:

    二进制表示:110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

    十进制表示:192.xx.xx.xx – 223.xx.xx.xx

  D类:网络地址必须以1110开对。如下所示:

    二进制表示:1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

    十进制表示:224.xx.xx.xx – 239.xx.xx.xx

  E类:网络地址必须以1111开对。如下所示:

    二进制表示:1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

    十进制表示:240.xx.xx.xx – 255.xx.xx.xx

  常用的只有A、B、C三个等级,D类用于组播,E类是保留网段。

  另外,A类中127.0.0.0这个网段用于测试操作系统,称为环回地址。

三、私有IP

  为了满足企业内部IP地址使用的需求,IPv4规划了三段私有IP地址,这些IP地址不能在公网上使用,只能用于局域网内部。

  A类:10.0.0.0-10.255.255.255

  B类:172.16.0.0-172.31.255.255

  C类:192.168.0.0-192.168.255.255

四、子网掩码

  IP是有等级的,如果我们使用A类的网段,此网段可容纳的主机数量为2^24-2台主机,先不考虑企业是否有这么多台主机,假设真的将这么多台主机接入到一个局域网中,这个网络基本上没有办法正常工作了,因为会有大量的广播包会在网络中传输。

  我们可以将一个大的IP段划分为多个小的IP段还分隔广播域。可以从主机地址中借位来充当网络地址,从而划分出多个子网,这时就要借助于子网掩码了。

  子网掩码也是由32位二进制数组成,其中1代表网络位,0代表主机位。例如:C类地址192.168.0.255其二进制格式为:

  IP:    11000000.10101000.00000000.11111111

  子网掩码:11111111.11111111.11111111.00000000

  将其转换成十进制数为:255.255.255.0

  上例中的192.168.0.255这个IP地址的主机位全部为1,这种主机位全部为1的IP地址称做广播地址,与其对应的是主机为全部为0的IP址(192.168.0.0),称做网络地址。

  每个网络段中都有一个主机地址和一个网络地址,这两个地址是不可以使用的,所有每个网段可用IP是数量是2^n-2,n表示主机位数。

五、子网划分

  了解了子网掩码的概念后,就可以进行子网划分了。前面介绍了子网划分其实就是向主机位借位划分多个网络的过程。

  以192.168.0.0/255.255.255.0这个网段为例,将它划分成2个子网的方法如下:

  2个子网其含义是子网掩码要向主机位借的位数只需要有两种变化即可,即2^n=2,可以得到n=1,这个n就是借位的数量。由此可知,子网划分的数量都是能2的n次方计算的。

  192.168.0.0  => 11000000.10101000.00000000.00000000  

  255.255.255.0 => 11111111.11111111.11111111.00000000

  由上面的计算结果可知,需要向主机位借一位,借位顺序为由左至右,第一个子网为:

  11000000.10101000.00000000.00000000 => 192.168.0.0

  11111111.11111111.11111111.10000000 => 255.255.255.128

  第二个子网为:

  11000000.10101000.00000000.10000000 => 192.168.0.128

  11111111.11111111.11111111.10000000 => 255.255.255.128

  上面使用二进制的方法进行计算,其实还可以直接使用十进制方法进行计算。用十进制方法计算上面的例子:

  以256为标准进行计算,主机段分为两个子网就用256/2=128,这个128就是第二个子网的网络地址了。

  如果将192.168.0.0/255.255.255.0划分出4个子网也就是子网掩码有26位的情况,直接用256/4=64,得到每个子网有64个IP地址,那么这4个子网分别为:

  192.168.0.0/255.255.255.192

  192.168.0.64/255.255.255.192

  192.168.0.128/255.255.255.192

  192.168.0.192/255.255.255.192

六、无类别域间路由CIDR

  CIDR的目的是将一组子网信息合并为一条较大的网络段,其目的是减少路由的条目。

  以192.168.0.0/255.255.255.0为例,其CIDR的写法为:192.168.0.0/24

  在上面的划分子网的例子中,四个子网的CIDR写法为:

    192.168.0.0/26

    192.168.0.64/26

    192.168.0.128/26

    192.168.0.192/26

原创文章,作者:petmaster,如若转载,请注明出处:http://www.178linux.com/10948

(1)
petmasterpetmaster
上一篇 2016-02-14 10:01
下一篇 2016-02-14 10:03

相关推荐

  • CentOS下命令基础练习

    马哥教育网络班23期+第五周课堂作业 CentOS下命令基础练习 1、显示当前系统上root、fdeora或user1用户的默认shell 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello() 3、使用echo命令输出一个绝对路径 使用grep取出其基名 扩展:取出其路径名 (…

    Linux干货 2016-10-24
  • ArchLinux折腾记

    刚接触linux的时候, 听到前辈说到这样一个系统,  说是linux 技能纯熟才能驾驭的了ArchLinux , 最近正好有个半天闲, 于是抽空,  佐以官方文档,  来认认真真的折腾一下ArchLinux Contents ArchLinux简介  准备工作  分区设置  基本功能安装 &nbs…

    Linux干货 2016-09-29
  • LVS工作原理浅析

    一、什么是LVS         LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。         LVS集群采用IP负载均衡技术和基于内容…

    Linux干货 2016-11-29
  • 实现软RAID0的方法

    实验利用三个分区分别为10G组成一个RAID0 分区时要注意ID的转换 创建RAID的设备名称为md0 通过mdadm -D /dev/md0可以查看md0的信息 创建配置文件: mdadm -Ds > /etc/mdadm.conf(为了系统启动时自动加载) 给RIAD0创建文件系统: 创建挂载目录mkdir /mnt/raid0 挂载: 同步: m…

    2017-12-11
  • 个人思想的转变及对学习的态度

    了解linux已经一年多了,但实际上学习的次数并不多。我是在部队的时候通过网络了解到linux,刚开始接触的是乌班图系统,感觉这个系统美化比较漂亮,就安装在虚拟机里进行各种操作,但是对命令是一窍不通的,都是通过百度粘贴复制各种命令,在复制的是同时我也感觉到头大,这个系统的输入、输出怎么都是字母出现在屏幕上,顿时就感到兴趣失去了一大半,再加上自己英语也不好,就…

    Linux干货 2018-03-26
  • N28 第三周【2】:用户和组管理

    用户和组管理 前言 Linux用户管理非常关键且重要,Linux的所有进程都是以不同的身份拥有不同的权限来运行和调度资源的。但是我们不用费劲心思去管理,因为系统将用户划分成为了两部分:无所不能的root用户和普通用户。同时呢,又将普通用户分为系统用户和登录用户。对于Linux,他会用UID去快速识别用户身份,对于我们,可以用用户名去识别。 接下来介绍一下用户…

    Linux干货 2017-12-19