zoukankan      html  css  js  c++  java
  • 【数通学习】【三层交换】子网划分

    为何会有子网?

     这主要跟网络中的区域划分有关。

    假设有一个IP数据包准备从A发送到B。那么A把数据包投递给路由器之后,路由器怎么投递这个数据包呢?如果要路由器在他的路由表中直接匹配完整的IP地址,那就需要在路由器中存储B的IP地址,如果设备少还好说,如果设备成千上万,甚至上亿,那路由器就要在路由表中存储所有的网络节点的IP地址,这显然是不现实的。

    那么怎么办呢?其实就和把地球划分为一个个国家和地区,把一个国家划分为一个个省,省下面划分为市是一样的道理。

    如果有一个包裹要邮寄给你,快递员首先是看包裹的发送地址中的省是哪个,如果是湖北省,快递员就把包裹分拣之后发给湖北省的分拣中心,湖北省分拣中心的快递员继续看地址中是哪个市......这样逐级分发,处于传输核心处的快递员并不需要知道所有信息,大大减轻了分拣路由的压力。

    如下图:

    所以IP地址中,被分成了两部分,一部分被称为网络部分,或者叫网络号,一部分被称为主机部分。

    网络部分用来标识网络设备所处的网络区域,这样路由器进行数据包路由的时候,就可以可以根据网络部分来确认网络设备所处的大概位置,然后把这个数据包交给这个网络区域的路由器负责继续路由,而这个区域的路由器就可以根据主机部分直接找到对应的网络设备。

    即可以这么理解:

    网络部分标识设备所处的网络位置。

    主机部分标识设备在网络中具体的编号。

    IP地址分为网络部分和主机部分

    A类地址的网络号为前面八位。

    所以A类地址的网络号从0-127,一共128个,但是0、10、127留作他用,所以实际上公网上应该有128-3= 125个A类地址的网络号。

    一个A类地址网络号下面,可以有2^24个主机:16,777,216。

    所以A类地址具有一个子网下面,主机数量多的特点,如果一个网络中主机数量特别庞大,A类地址是很好的选择。不过A类地址大部分都被美国占用了。

    B类地址的网络号为前面16位。

    B类地址前16位位网络号,后16位为主机号。

    所以B类地址的网络号数量为:2^16 = 65,536个。

    同样B类地址的一个网络中的主机数量也是:2^16 = 65,536个。

    相对A类地址来说,一个B类地址的网络中的主机数大大减少了,不过B类地址的网络号很多,而且一个网络中的主机数量达到了6万多台,所以适合给大中型网络使用。

     

    C类地址的网络号位前面的24位。

    C类地址的网络号数量为:2^24 = 16,777,216.

    C类地址的一个网络下的主机号数量为:2^8 = 256.

    C类地址网络号数量庞大,一个网络下主机数量相对较少,比较适合构建一些小型的局域网络。

    D类和E类作为组播地址和保留地址,所以没有网络号。

    网络掩码

    网络掩码和IP地址的长度一样,也是32位。

    网络掩码前面是连续的1,后面是连续的0,如:

    11111111.11110000.00000000.00000000 -》 255.240.0.0

    网络掩码通过每一位的值取0还是1来区分网络为和主机位,如:

    可以查看自己电脑的IP地址,掩码和网关:

    你可以看到默认网关的网络号和你电脑的网络号是一样的。

    其实这个默认网关一般就是你连接到的路由器的IP地址。

     

    IP地址按功能划分类型,可以分为3类:

    网络地址:

    标识网络的IP地址,简单的理解,主机号为全为0的地址就是网络地址,如:

    一个A类地址10.0.0.0,就是一个网络地址,因为它的网络号是前八位,也就是10,剩下的位都是主机号,主机号全为0,所以这个IP地址是一个网络地址。

    广播地址:

    用于向整个网络广播的IP地址,简单的理解,主机号全为1的地址就是主机地址,如:

    一个B类地址160.133.255.255,这个就是一个B类广播地址,因为前面16位为网络号,后面16位为主机号,主机号全为1,所以这个IP地址是一个广播地址。

    主机地址:

    用于给网络终端设备使用的地址就是主机地址,主机地址的主机号的比特位全不为0且全不为1。

    比如一个C类地址192.168.10.10,这个就是一个C类主机地址,因为前面24为网络号,后面8为为主机号,主机号不是全为0,也不是全为1,所以是一个主机地址。

     

    注意:网络地址和广播地址都不能分配给终端设备使用。

    VLSM(Variable Length Subnet Mask):可变长子网掩码

    子网掩码除了可以用IP地址一样的点分十进制表示外,也可以用一个十进制数来表示,这个十进制数就是掩码中1的个数,如:

    为什么需要可变长子网掩码呢?

    因为如上面的C类地址,它的网络地址为:192.168.0.0,这个网络中可以容纳的主机位254台(除去主机号全位0的网络地址和全位1的广播地址)。

     但实际上我的网络中可能只有10台设备,那么分配完之后,剩下的244个主机IP地址就浪费掉了,别人也无法使用,因为如果别人要使用这个IP地址,就势必会和我处于同一个广播域中,到时候可能存在广播风暴,消息泄露,安全问题,管理问题等一系列问题。

    为了让剩余的IP地址能够被别人使用,又不至于把大家都放到一个广播网络中来,于是又了可变长子网掩码的概念。

    什么是可变长子网掩码?

    其实很简单,规定的A、B、C类地址的掩码长度是固定的。但如果让掩码长度不固定,掩码就可以向主机号增长:

     

    这样,子网占用两个字节,所以这个网络下面就有四个子网,分别位:00,01,10,11.

    这样我们就可以把子网子网00分给甲使用,它的主机个数就有:2^6 = 64台。

    同样可以把主机号01、10、11分别给不同的网络使用,这样就将广播域隔开了。

    至于为啥可以通过主机号隔开广播域,实际上需要配合路由器使用,路由器作为子网的网关,把整个网络地址划分了多个子网,多个子网之间通讯要经过路由器进行三层转发,这样就避免了全网广播风暴。

  • 相关阅读:
    oracle数据库常用指令
    MySql常用命令
    js动态添加和删除行
    Mybatis模糊查询
    laravel 成功跳转页面
    laravel 验证码
    git获取公钥和私钥以及常用的命令
    laravel css和js的引入
    git add -A 、git add -u 、 git add . 三种区别
    windows下github 出现Permission denied (publickey).解决方法
  • 原文地址:https://www.cnblogs.com/wuyizuokan/p/11013340.html
Copyright © 2011-2022 走看看