zoukankan      html  css  js  c++  java
  • 子网划分及子网掩码计算方法

    转自:https://blog.csdn.net/wuseyukui/article/details/24306645

     

    一、子网掩码的概述及作用

    1. 子网掩码是一个应用于TCP/IP网络的32位二进制值,每节8位,必须结合IP地址对应使用。 (常见的 255.255.255.0 等)

    2. 子网掩码32位都与IP地址32位对应,如果某位是网络地址,则子网掩码为1,否则为0。 (11111111.11111111.11111111.0)

    3. 子网掩码可以通过与IP地址 “与”计算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在局域网上,还是在广域网上。

    4. 子网掩码一般用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。

     

     

    二、为什么要使用子网掩码?

    子网掩码可以分离出IP地址中的网络地址和主机地址,那为什么要分离呢?

    因为两台计算机要通讯,首先要判断是否处于同一个广播域内,即网络地址是否相同。如果网络地址相同,表明接受方在本网络上,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。

    比如说我们本机ip与子网掩码计算出一个网络地址为 x.x.x.x

    另一个ip地址与子网掩码计算出一个网络地址为 y.y.y.y

    如果 x.x.x.x 与 y.y.y.y 相等,那么这两个主机可以ping通

     

    三、子网掩码的分类

    1)缺省子网掩码:

    (未划分子网)

    子网掩码32位与IP地址32位对应,如果某位是网络地址,则子网掩码为1,否则为0。例如A类IP地址,第一节为网络地址,其余三节为主机地址,故掩码为“11111111.00000000.00000000.00000000”

    A类网络缺省子网掩码:255.0.0.0 B类网络缺省子网掩码:255.255.0.0 C类网络缺省子网掩码:255.255.255.0

     

    2)自定义子网掩码:

    (用于划分子网)

    将一个网络划分为若干子网,希望每个子网拥有不同的网络地址或子网地址。因为IP是有限的,实际上我们是将主机地址分为两个部分:子网网络地址、子网主机地址。形式如下:

    未做子网划分的ip地址:网络地址+主机地址 做子网划分后的ip地址:网络地址+(子网网络地址+子网主机地址)

     

     

    四、子网掩码和ip地址的关系

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

    例如:设IP地址为192.168.10.2,子网掩码为255.255.255.240,那么子网掩码是怎样来区分网络地址和主机地址的呢。

    主机地址为:0.0.0.2(将掩码取反,然后与运算)

     

     

     

    五、为什么要要划分子网?

    例如:在A类IP地址中,每个A类网络可能有16,777,214台主机,它们处于同一广播域。在同一广播域中有这么多主机是不可能的,网络会因为广播通信而饱和。另一方面,IP地址资源越来越少。为实现更小的广播域,就需要进一步分成更小的网络。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。

     

     

    六、子网划分简述

    子网划分是通过借用IP地址中若干位主机地址来充当子网的网络地址,从而将原网络划分为若干子网。

    划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,但每个子网中的可用主机数逐渐减少。

    如C类地址,原有8位主机位,-2即254个主机地址,默认子网掩码255.255.255.0。(全0或全1不可用) 借用1位主机位,产生=2个子网,每个子网有2^7个主机地址; 借用2位主机位,产生=4个子网,每个子网有2^6个主机地址; …… 根据子网ID借用的主机位数,我们可以计算出划分的子网数、掩码、每个子网主机数,列表如下:

     

    C 类IP 地址子网划分

    借用位数子网掩码子网个数每个子网中主机数
    1 255.255.255.128 2^(8-1) - 2 = 126
    2 255.255.255.192 2^(8-2) - 2 = 62
    3 255.255.255.224 30
    4 255.255.255.240 14
    5 255.255.255.248 6
    6 255.255.255.252 2
    7 255.255.255.254 0

     

    B类IP 地址子网划分

    借用位数子网掩码子网个数每个子网中主机数
    1 255.255.128.0 2^(16-1) - 2 = 32768-2=32766
    2 255.255.192.0 2^(16-2) - 2 = 16382
    3 255.255.224.0 8190
    4 255.255.240.0 4094
    5 255.255.248.0 2046
    6 255.255.252.0 1022
    7 255.255.254.0 510
    8 255.255.254.0 254

     

     

    A类IP地址子网划分

    借用位数子网掩码子网个数每个子网中主机数
    2 255.192.0.0   4194302
    3 255.224.0.0   2097150
    4 255.240.0.0   1048574
    5 255.248.0.0   524286
    6 255.252.0.0   262142
    7 255.254.0.0   131070
    8 255.254.0.0   65534

     

     

    七、子网掩码计算

    1、利用子网数来计算

    在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。 1) 将子网数目转化为二进制来表示 2) 取得该二进制的位数,为 N 3) 取得该 IP地址的类子网掩码,将其主机地址部分的的前N位置 1 即得出该IP地址划分子网的子网掩码。

     

     

    1. 如欲将C类IP地址192.168.10.0划分成4个子网: 1) 4=100 2) 该二进制为三位数,N = 3 3) 将A类地址的子网掩码255.255.255.0的主机地址前3位置 1,得到子网掩码255.255.255.224。(具体见下图)

    img

     

    2、利用主机数来计算

    1. 1) 将主机数目转化为二进制来表示 2) 如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数。 3) 将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

    如欲将B类IP地址192.168.10.0划分成若干子网,每个子网内有主机25台: 1) 25=11001 2)该二进制为十位数,N = 5 3)将该B类地址的子网掩码 255.255.255.0的主机地址全部置 1,得到255.255.255.255,然后再从后向前将后5位置0,即为:11111111.11111111.11111111.11100000,即255.255.252.224。

    img

     

    步骤总结:

    1.子网数和主机数都可以计算子网掩码,2.取得子网/主机的二进制位数,3.网络地址置0主机地址置1,4.换成十进制

     

  • 相关阅读:
    [CF666E] Forensic Examination
    [BZOJ3739] DZY loves math VIII
    [BZOJ3561] DZY Loves Math VI
    VS中的类模板
    php中的this,self,parent
    js中的 Table 对象
    CEF中弹出窗口的处理
    VC禁止或允许拖拽改变窗口尺寸
    MFC系统自动生成的停靠窗格关掉后,如何重新显示?
    VS2010 如何自动生成UML图
  • 原文地址:https://www.cnblogs.com/kangxinxin/p/9917961.html
Copyright © 2011-2022 走看看