• Linux 网络基础知识初步了解


    一、简介

          IP地址由四段组成,每个字段是一个字节,即4个字节、  每个字节有8位,最大值是255(=256:0~255)。

          全世界范围是唯一的 32 位(4个字节 * 8位)的标识符。

          IP地址由两部分组成,即网络地址和主机地址,二者是主从关系:

                              1. 网络号 net-id,它标志主机(或路由器)所连接到的网络,网络地址表示其属于互联网的哪一个网络

                              2.主机号 host-id,它标志该主机(或路由器),主机地址表示其属于该网络中的哪一台主机。

          两级的 IP 地址可以记为:   IP 地址 ::= { <网络号>, <主机号>}   

          简而言之就是:IP地址 = 网络号+主机号

    二、点分十进制记法:

           IPv4的地址长度为32位,共4个字节,但实际中我们用点分十进制记法。
    网络基础知识

    三、IP分类

           IP地址 = 网络号+主机号。 

          分为A、B、C三类及特殊地址D、E。   

           全0和全1的都保留不用。

    网络基础知识
     
    网络基础知识

      A类:
           地址范围:1.0.0.1-126.255.255.254 (0000 0001.00000000.00000000.00000000~01111110.111111111.11111111.11111110)

           地址范围:1.0.0.0-126.255.255.255 (这种写法是把全0全1都算进去了,其它几类类似)

           网络号范围: 1~126                        (0000 0001 ~ 0111 1110)

           默认子网掩码:255.0.0.0 或  0xFF000000(十六进制)

           私有号段:10.0.0.0-10.255.255.255

           前1个字节(8位)为网络号,后3个字节(24位)为主机号。

           A类第1位必须是0。

           最大网络数:      126个

           最大主机数:

           全0全1的地址不可分配,作为保留地址。 上面减2也是这个原因。

           一般用于大型网络。

      B类:
               地址范围:128.1.0.1-191.255.255.254 

              网络号范围:128.1 ~ 191.255

               默认子网掩码:255.255.0.0 或 0xFFFF0000(十六进制)

              私有号段:172.16.0.0-172.31.255.255

              前2个字节(16位)为网络号,后2个字节(16位)为主机号。

              前两位固定为10。

              最大网络数:

              最大主机数:

              一般用于中等规模网络。

      C类:
                地址范围:192.0.1.1-223.255.255.254

                网络号段范围:192.0.1 ~ 223.255.255

                子网掩码:255.255.255.0 或  0xFFFFFF00 (十六进制)

                 私有号段:192.168.0.0-192.168.255.255

                 前3个字节(24位)为网络号,后1个字节(8位)为主机号。

                 前3位固定为110。

                 最大网络数:

                 最大主机数:

                一般用于小型网络。

      D类:
             地址范围:224.0.0.1-239.255.255.254

             是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。

             一般用于多路广播用户 。

      E类:
             是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。

      回送地址:
              127.x.x.x        有的资料说,它属于A类。

              如127.0.0.1  等效于localhost或本机IP。  一般用于测试使用。

              例如:ping 127.0.0.1来测试本机TCP/IP是否正常。http://127.0.0.1:8080 等效 http://localhost:8080

      #### 特殊说明

            每一个字节都为0的地址(0.0.0.0)对应当前主机。

            IP地址中的每一个字节都为1的IP地址(255.255.255.255)是当前子网的广播地址。

            IP地址中凡是以11110开头的E类IP的地址,都保留用于将来和实验使用。

            网络号的第一个8位不能全为0。

            IP地址不能以127为开头,该类地址中数字127.0.0.1~127.255.255.254用于回路测试

    四、无类域间路由

    对于中小企业,假如有两千台机器,给他分个B类地址,6万多个,太浪费了,分个C类地址,一个C类地址254个,又不够,又得多申请几个,所以A,B,C类IP地址划分太过僵硬,很不灵活,因此又提出无类域间路(CIDR)由划分IP地址的方法。
    将常规的子网掩码转换为二进制,将发现子网掩格式为连续的二进制1跟连续0,其中子网掩码中为1的部份表示网络ID,子网掩中为0的表示主机ID。比如255.255.0.0转换为二进制为11111111 11111111 00000000 00000000。

    在前面所举的例子中为什么不用连续的1部份表示网络ID,连续的0部份表示主机ID呢?答案是肯定的,采用这种方案的IP寻址技术称之为无类域间路 由(CIDR)。CIDR技术用子网掩码中连续的1部份表示网络ID,连续的0部份表示主机ID。比如,网络中包含2000台计算机,只需要用11位表示 主机ID,用21位表网络ID,则子网掩码表示为11111111.11111111.11100000.00000000,转换为十进制则为 255.255.224.0。此时,该网络将包含2046台计算机,既不会造成IP地址的浪费,也不会利用路由器连接网络,增加额外的管理维护量。

    CIDR表示方法:IP地址/网络ID的位数,比如192.168.23.35/21,其中用21位表示网络ID。

    例1:192.168.23.35/21

        子网掩码:11111111 11111111 11111000 00000000则为255.255.248.0

    网络ID:192.168.00010111.0(其中第三个字节红色部分表示网络ID,其他表示主机ID,网络ID是表示网络ID部份保持不变主机ID全部变为0)则网络ID为192.168.16.0

    起始IP地址:192.168.16.1(主机ID不能全为0,全为0表示网络ID最后一位为1)

    结束IP地址:192.168.00010111.11111110(主机ID不能全为1,全为1表示本地广播)则结束IP地址为:192.168.23.254。

    例2:将163.135.0.0划分为16个子网,计算前两个子网的网络ID、子网掩码、起止IP地址。

    第1步:用CIDR表示163.135.0.0/20,则子网掩码为255.255.240(11110000).0。

    第2步:第一网络ID(子网掩码与IP地址与运算):163.135.0.0

        第一个IP地址:163.135.0.1 结束IP地址:163.135.15.254;

    第3步:第二网络ID:163.135.16.0

            第一个IP地址:163.135.16.1 结束IP地址:163.135.31.254。 

    五、子网掩码和网络ID的快速计算方法

    CIDR的子网掩码都是连续的1跟连接的0表示,则子网掩码有以下几种表示方法:

    0000 0000   0

    1000 0000   128

    1100 0000   128+64=192

    1110 0000   128+64+32=224

    1111 0000   255-15=240

    1111 1000   255-7=248

    1111 1100   255-3=252

    1111 1110   255-1=254

    1111 1111   255

    大家都知道11111111的十进制数为255,那么我们怎么来快速计算子网掩码呢?二进制的1=1,11=3,111=7,1111=15;那么 1111 1110=255-1,1111 1100=255-3,1111 1000=255-8,1111 0000=255-15这样是不是就很快呢?只要我们一旦确定子网掩码中有多少位表示网络ID,那么我们马上就可以写出子网掩码了。那么,对于1000 0000,1100 0000和1110 0000 我们又该怎么计算呢?27=8则1000 0000=128,1100 0000=128+64,1110 0000=128+64+32,所以我们不需要去记住每一个为多少,只需要做做简单的加减法就搞定子网掩码的计算。

    网络ID的结果大家都知道网络ID部份不变,主机ID部分全部变为0,那么在计算网络ID时,首先看子网掩码中有多少位用来表示网络,相应在将IP 地址转换为二进制时就只转换前面几位,比如192.168.176.15/19,网络ID一共19位,则网络ID前两个字节为192.168.X.0发生 变化的为第三个字节。那么怎样快速计算出这个变化的X的值呢?我们知道第三字节只有三位表示网络ID,转换时176>128,第1位为 1,176-128=48<64,第2位为0,48>32第3位为1,剩下的计算就没有意义了,全都要转换为0,则网络ID为10100000,则网络 ID为192.168.160.0,这样计算反而出错的可能性很小。

    六、 本地和远程网络概念

    网络ID相同的计算机称之为本地网络,本地网络中的计算机相互通信不需要路由器连接;网络ID不相同的计算机称之为远程网络,远程网络中的计算机要相互通信必须通过路由器连接。

    例1:192.168.10.14/28,192.168.10.15/28,192.168.10.16/28,192.168.10.31/28哪些是合法IP,哪些是非法IP地址?

    主机ID全为0和主机ID全为1的为非法IP地址:192.168.10.15/28、192.158.10.16/28、192.168.10.31/28都是非法IP地址。

    例2:192.168.10.14/28,192.168.10.15/28,192.168.10.16/28哪个不是同一网段?

    网络ID相同的就属于同一网段,则192.168.10.16/28不属于同一网段。

    七、子网数和主机数的计算方法

    例:172.168.34.56/20,一共划分为了多少个子网,各子网可以包含多少台主机。

    172.168.34.56是一个B类地址,B类地址用16位表示网络ID,题目中20位表示网络ID,则子网位数为4位,那么子网就有24次个(即从0000、0001到1111的16种变化)。

    由于IP地址是32位,用20位表示网络ID,则主机ID的位数为12位,则每个子网可以包含212-2个IP地址,即可以包含4096个IP地址。

    注意:为什么计算IP地址时要减2,而计算子网数目时不减2呢?IP地址减2的原因是主机ID不能全为0也不能全为1;子网就不存在这个问题。

    八、 公共IP和私有IP地址

    IP地址由IANA(Internet地址分配机构)管理和分配,任何一个IP地址要能够在Internet上使用就必须由IANA分配,IANA 分配的能够在Internet上正常使用的IP地址称之为公共IP地址;IANA保留了一部份IP地址没有分配给任何机构和个人,这部份IP地址不能在 Internet上使用,此类IP地址就称之为私有IP地址。为什么私有IP地址不能在Internet上使用呢?因为Internet上没有私有IP地 址的路由。私有IP地址范围包括:

    A类:10.0.0.0/8

    B类:172.16.0.0/12 即172.16.0.1-172.31.255.254共16个B类网络

    C类:192.168.0.0/16即192.168.0.1-192.168.255.254共256个C类网络

    九、超网

    划分超网:将多个小网合并一个大网,主机ID向网络ID借位

  • 相关阅读:
    [AngularJS] angular-schema-form -- 1
    [MODx] 10. Using Babel for Muti-languages support
    [AngularJS] Using AngularJS interceptors with $http
    [AngularJS] Best Practise
    [Node.js] Creating Demo APIs with json-server
    [HTML5] Input accepts only 6 number characters
    [Heroku] How to pull, push changes
    Runoob-Java-Maven:Maven 引入外部依赖
    Runoob-Java-Maven:Maven 构建 & 项目测试
    Runoob-Java-Maven:Maven 构建 Java 项目
  • 原文地址:https://www.cnblogs.com/yhq123/p/11203841.html
Copyright © 2020-2023  润新知