• 计算机网络知识——IP地址和子网掩码


    一、IP地址                             

      IP地址由网络号和主机号组成。每台连在Internet网上的主机有唯一的IP地址。IP地址采用二进制形式,通常以"点分十进制表示法"表示(8个比特为一段,用十进制整数)。IP地址分为A、B、C、D、E五类,下图所示:(本文介绍的都是版本4的IP地址,称为IPv4.)

    A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;

    B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;

    C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255。

    D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);

    E类地址以11110开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。

    注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。

    1、网络地址

        网络地址是主机号全为0的IP地址,网络地址代表整个网段。

    2、广播地址

    直接广播地址

      广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网段内的所有主机都能收到该广播消息。广播地址通常称为直接广播地址,是为了区分受限广播地址。

    受限广播地址

      255.255.255.255该IP地址是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络。当用于主机配置过程中IP数据报的目的地址时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道,因此路由器不会转发以受限广播地址为目的地址的数据报;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。

    注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器 

    3、组播地址

    D类地址就是组播地址。

    4、回环地址

      A类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,叫做回送地址(loopback address)。无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。含网络号127的分组不能出现在任何网络上。

    5、A、B、C类私有地址

    私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。

    A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255

    B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255

    C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

    6、0.0.0.0地址

      常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个不知道知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组.

    二、子网掩码                                       

    1、什么是子网掩码

      子网掩码的作用是和IP地址与运算后得出网络地址,可以判断两个IP地址是否同属于一个子网的,也是32位二进制地址,其中1代表该位为网络位,0代表的位为主机位。它和IP地址一样也是使用点式十进制来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。

      在计算子网掩码时,我们要注意IP地址中的保留的两个地址(网络地址和广播地址),它们是指主机地址全为“ 0”或“ 1”时的IP地址,它们代表着本网络地址和广播地址,不能被计算在内。

    2、标准子网掩码

    A类的默认子网掩码 255.0.0.0    11111111.00000000.00000000.00000000    一个子网最多可以容纳1677万多台电脑

    B类的默认子网掩码 255.255.0.0     11111111.11111111.00000000.00000000    一个子网最多可以容纳6万台电脑

    C类的默认子网掩码 255.255.255.0    11111111.11111111.11111111.00000000   一个子网最多可以容纳254台电脑(256-2)

    3、 特殊的子网掩码

    标准子网掩码出现的都是255和0的组合,在实际的应用中还有下面的子网掩码

    255·128·0·0
    255·192·0·0
    。。。。。。
    255·255·192·0
    255·255·240·0
    。。。。。。
    255·255·255·248
    255·255·255·252

      这些子网掩码又是什么意思呢?这些子网掩码的出现是为了把一个网络划分成多个网段。
      如下所示:192·168·0·1和192·168·0·200如果是默认掩码255.255.255.0两个地址就是一个网络的,如果掩码变为255.255.255.192这样各地址就不属于一个网络了。下面的子网划分将作详细介绍。

    4、子网掩码的计算

      对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,如下计算示例:

     标准子掩码的计算

    1)有一个C类地址为: 192.9.200.13 其缺省的子网掩码为: 255.255.255.0 则它的网络号和主机号可按如下方法得到: 

    ①将IP地址192.9.200.13转换为二进制      11000000 00001001 11001000 00001101

    ②将子网掩码255.255.255.0转换为二进制  11111111 11111111 11111111 00000000 

    将两个二进制数逻辑与(&)运算后得出的结果即为网络部分

    11000000 00001001 11001000 00001101

    & 11111111 11111111 11111111 00000000 

    结果为:11000000 00001001 11001000 00000000        即192.9.200.0,   即网络号为192.9.200.0 

    ④子网掩码取反后与IP地址逻辑与(&)后得到的结果即为主机部分

    11000000 00001001 11001000 00001101 

    & 00000000 00000000 00000000 11111111 

    结果为:00000000 00000000 00000000 00001101       即0.0.0.13,       即主机号为13(0.0.0.13)

    2)计算IP地址为:202.99.160.50子网掩码是255.255.255.0的网络地址步骤如下: 

    ①将IP地址和子网掩码分别换算成二进制 
      202.99.160.50 换算成二进制为 11001010.01100011.10100000.00110010 
      255.255.255.0 换算成二进制为 11111111.11111111.11111111.00000000 
    ②将二者进行与运算        11001010.01100011.10100000.00000000 
    将运算结果换算成十进制,这就是网络地址。 即202.99.160.0

    通过计算IP地址的网络地址可以判断两个IP地址是否属于同一网段。

    如:1号机的IP地址:192. 168. 0. 1                11000000.10101000.00000000.00000001

      2号机的IP地址:192. 168. 0. 200            11111111.11111111.11111111.11001000

      子网掩码:255. 255. 255. 192                 11111111.11111111.11111111.11000000

    1号机的网络地址:192. 168. 0. 0

    2号机的网络地址:192. 168. 0. 192                   因此两台机不属于同一网段

    3)广播地址:网络地址中用于表示主机号的位(对应子网掩码中为0的位)全部变成1。

    4)地址范围:网络地址+1即为第一个主机地址

       广播地址-1即为最后一个主机地址,因此地址范围是: 网络地址+1  至  广播地址-1 (即除去主机号全为0和全为1的两个地址)

    5)主机数:n = 表示主机号的位数(子网掩码中为0的位数),主机数 = 2 ^ n - 2

          网络地址和广播地址不能作为主机的IP地址,所以减去2

    特殊子网掩码

      对于需要将一个网络划分多个子网的网络来说,其网络号需要利用高位主机位来实现划分子网(具体需要占用多少位需根据划分的子网段个数决定,剩下的位数依然用于表示主机号),其子网掩码就变得特殊。

    • 利用子网数来计算 

    在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。

    欲将B类IP地址168.195.0.0划分成27个子网,如何设置子网掩码?

    ① 将子网数目转化为二进制来表示:27=11011; 

    ② 取得该二进制的位数,为N;N = 5,(27需要5位二进制数才能表示) 

    该类IP地址的标准子网掩码,将其主机号部分的前N位置1,即得出该IP地址划分子网的子网掩码。 

    将B类地址的子网掩码255. 255. 0. 0的主机号前5位置 1,得到 255. 255. 248. 0

    • 利用主机数来计算

    欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台,计算子网掩码。

    ① 将主机数目转化为二进制来表示:700=1010111100;(2^10 > 700+2) 

    ② 如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位;该二进制为十位数,N=10;

    取该类IP地址的标准子网掩码,将其主机号位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

    将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255. 255. 255. 255,然后再从后向前将后 10位置0,即为:11111111.11111111.11111100.00000000,即255. 255. 252. 0。这就是该欲划分成主机为700台的B类IP地址 168. 195. 0. 0的子网掩码。

    • 还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按主机数来计算。

    1)一个子网有10台主机,如何那么对于这个子网需要的IP地址是:10+1+1+1=13

    注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。

    因为13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255. 255. 255. 240。

      如果一个子网有14台主机,不少人常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14+1+1+1=17,17大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。

    2)一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适?

    ① 2^10 >530+2,因此IP地址的后10位为主机号位,即32位子网掩码的后10位全部为0,即255. 255. 252. 0

    ②IP的分配,首先选一个B类IP,这里选172. 172. x. x,

    ③确定网络地址:

    IP地址:    172. 172. aaaaaakk. nnnnnnnn

    子网掩码:255. 255. 11111100. 00000000

    网络地址:172. 172. aaaaaakk.  00000000

    网络地址=IP地址 & 子网掩码,其中IP地址中a和1按位与必定为a,n和0按位与必定为0,是固定不变的,因此可以随便填0或1,此处填0,即a = 0;n是表示主机号的位,也可以随便填0或1,只需确保最终每个IP地址的主机号不同就可以,k同样也是如此。

    IP的最后一段8位就可以表示254台主机(1~254),530/254 = 3(采用进位后整数)。因此,kk处00,01,10,11,四选三即可。

    最后IP地址为:172.172.1.x , 172.172.2.x , 172.172.3.x

    说明:理论上说,我们确定了IP地址的前两段即可,后两段可以随便填写,因为16位足够用来表示530台主机的IP地址。甚至我们可以选取A类子网掩码255. 0. 0. 0,后24位能表示的主机号远远超过了530。正因为如此,无疑是大海捞针,如果同时局域网访问量过频繁、过大,会影响效率的,所以,最好设置符合自己的IP和子网掩码,尽量缩小表示主机号的范围。                                                     

  • 相关阅读:
    atoi (String to Integer) leetcode
    按层逆遍历一棵树,使用满二叉树存储
    unix网络编程-配置unp.h头文件
    ListView系列(七)——Adapter内的onItemClick监听器四个arg参数
    Windows系统下安装VirtualBox,系统找不到指定路径的做法
    Android Fragment完全解析,关于碎片你所需知道的一切
    【Android开源框架列表】
    fragment报错
    2013 年开源中国 10 大热门 Java 开源项目
    【移动开发】Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow)
  • 原文地址:https://www.cnblogs.com/love-lzb/p/6785351.html
Copyright © 2020-2023  润新知