计算机网络

# 计算机网络

[TOC]

# 一、计算机网络组成

# 1.1 资源子网

  • 计算机网络中面向用户的部分,负责全网络面向应用的数据处理工作。

# 1.2 通信子网

  • 计算机网络中负责数据通信的部分。

# 1.3 通信协议

  • 通信双方必须共同遵守的规则和约定。
  • 它的存在与否是计算机网络与一般计算机互连系统的根本区别。

# 二、IP地址与子网掩码

参考教程:IP地址与子网掩码划分的心得 (opens new window)

# 1.1 子网

# 1.1.1 子网的定义

  • 子网就是把一个大网划分为几个小网,每个小网的IP地址数目都是一样多的。这个小网就叫做这个大网的子网。

# 1.1.2 网络的总个数和可用个数

  • A类网络的个数有2的7次方个,即128个。根据网络规范的规定,应该再去除128个中的第一个和最后一个,那么可用的A类网络的个数是126个。
  • B类网络的个数有2的14次方个,即16384个。根据网络规范的规定,应该再去除16384个中的第一个和最后一个,那么可用的B类网络的个数是16382个。
  • C类网络的个数有2的21次方个,即2097152个。根据网络规范的规定,应该再去除16384个中的第一个和最后一个,那么可用的C类网络的个数是2097150个。

# 1.1.3 网络的总IP数和可用IP地址数

  • 每个A类大网(A类网络)中容纳2的24次方个IP地址,即16777216个IP地址;每个B类大网中容纳着2的16次方个IP地址,即65536个IP地址;每个C类大网中容纳着2的8次方个IP地址,即256个IP地址。可用的IP地址数是在总IP地址数的基础上减2得到。
  • 如果把一个B类大网划分为32个小网,那么每个小网的IP地址数目就是65536/32=2048;如果把C类大网划分为32个小网,那么每个小网的IP地址数目就是256/32=8。

# 1.2 掩码

# 1.2.1 掩码的意义

  • 掩码的作用就是用来告诉电脑把“大网”划分为多少个“小网”,即掩码是用来确定子网数目的依据。

  • 根据掩码来确定子网的数目做法

    1. 确认是对A类还是B类还是C类大网来划分子网。

      • 比方说202.117.12.36/30,我们先把/30这种另类的掩码表示法转换为我们习惯的表示法: 11111111.11111111.11111111.11111100,转为十进制是255.255.255.252。

      • 255.255.255.252这个掩码是在C类默认掩码的范围之内的,意味着我们将对C类网络进行子网划分,因为C类网络的默认掩码是255.255.255.0。

    2. 确认对应大网的IP地址。

      • 将C类默认掩码转换为二进制是11111111.11111111.11111111.00000000。

      • 这里的8个0表示可以用8位二进制数来表示IP地址,也就是说C类大网中可有2的8次方个IP地址,也就是256个IP地址。

    3. 确认对应大网的子网数目。

      • 此掩码的最后一节是252,转换为二进制是11111100,因为1表示网络号,所以111111就表示将C类大网划分为(111111)2进制个子网。将111111转换为十进制是64,所以就表示将C类大网划分为64个子网。
    4. 确认子网可分配的子网IP地址数目。

      • 每个子网的IP地址数目是256/64=4。
      • 去除子网中的第一个表示子网号的IP地址和最后一个表示广播地址的IP地址,子网中的可分配的IP地址数目就是子网中的总的IP地址数目再减去2,也就是4-2=2个。

# 1.2.2 十进制转二进制

  • 能够在心中将255以内的十进制数转换为对应的二进制数。

    下标 7 6 5 4 3 2 1 0
    二进制 1 1 1 1 1 1 1 1
    十进制 128 64 32 16 8 4 2 1
    • 将十进制的133转二进制,则128+4+1,即10000101。
    • 255=128+64+32+16+8+4+2+1,故对应的二进制为8个1,11111111。

# 1.2.3 各类网络的默认掩码

# 1.2.3.1 A类网络
  • 默认掩码是255.0.0.0,换算成二进制就是 11111111.00000000.00000000.00000000。
  • 默认掩码意味着没有将A类大网(A类网络)再划分为若干个小网。
  • 掩码中的1表示网络号,24个0表示在网络号确定的情况下(用二进制表示的IP地址的左边8位固定不变),用24位二进制数来表示IP地址的主机号部分。(IP地址是由网络号+主机号两部分构成
# 1.2.3.2 B类网络
  • 默认掩码是255.255.0.0,换算成二进制就是 11111111.11111111.00000000.00000000。
  • 默认掩码意味着没有将B类大网再划分为若干个小网。
  • 16个0表示在网络号确定的情况下(用二进制表示的IP地址的左边16位固定不变)可以用16位二进制数来表示IP地址的主机号部分。(可以把B类默认掩码理解为是将A类大网(A类网络)划分为2的8次方(即256)个小网)。
# 1.2.3.3 C类网络
  • 默认掩码是255.255.255.0,换算成二进制就是 11111111.11111111.11111111.00000000。
  • 默认掩码意味着没有将C类大网再划分为若干个小网。
  • 这里的8个0表示在网络号确定的情况下(用二进制表示的IP地址的左边24位固定不变),可以用8位二进制数来表示IP地址的主机部分。(可以把C类默认掩码理解为是将A类大网(A类网络)划分为2的16次方(即65536)个小网,是将B类大网划分为2的8次方(即256)个小网)。

# 1.2.4 正确有效的掩码

  • 把十进制掩码换算成二进制后,掩码的左边部分一定要是全为1且中间不能有0出现。
// 有效掩码
255.255.248.0 -> 11111111.11111111.11111000.00000000
  
// 无效掩码
254.255.248.0 -> 11111110.11111111.11111000.00000000
1
2
3
4
5

# 1.2.5 子网掩码的另类表示法

  • 子网掩码除了可以255.255.248.0这样表示,还可以以IP地址/数字的形式中的/数字表示。
    • 255.255.248.0转为二进制的形式是 11111111.11111111.11111000.00000000,可以看到左边是有21个1,所以可以将255.255.248.0这个掩码表示为/21。
    • 反过来,看到/21时,就把32位二进制的左边填上21个1,将这个32位二进制数每8位做为一节用句点隔开,再转换为十进制,就是255.255.248.0了。

# 1.2.6 网络中有两个IP地址不可用

  • 不管是A类还是B类还是C类网络,在不划分子网的情况下,有两个IP地址不可用:网络号和广播地址。比如在一个没有划分子网的C类大网中用202.203.34.0来表示网络号,用202.203.34.255来表示广播地址,因为C类大网的IP地址有256个,现在减去这两个IP地址,那么可用的IP地址就只剩下256-2=254个了。
  • 把一个C类大网划分为4个子网,会增加多少个不可用的IP地址?
    • 在C类大网不划分子网时,有两个IP地址不可用;现在将C类大网划分为4个子网,那么每个子网中都有2个IP地址不可用,所以4个子网中就有8个IP地址不可用
    • 用8个IP地址减去没划分子网时的那两个不可用的IP地址,得到结果为6个。

# 1.3 综合实例

已知172.31.128.255/18,试计算:子网数、网络号、主机号、广播地址、可分配IP的起止范围。

  • 子网数目:4
  • 网络号:将IP地址的二进制和子网掩码的二进制进行“与”(and)运算,“与运算”的规则是1和1得1,0和1得0,1和0得0。
十进制 二进制
IP地址 172.31.128.255 10101100.00011111.10000000.11111111
子网掩码 /18 11111111.11111111.11000000.00000000
网络号 172.31.128.0 10101100.00011111.10000000.00000000
  • 主机号

    • 用IP地址的二进制和(子网掩码的二进制的反码)进行“与”运算,反码就是将原本是0的变为1,原本是1的变为0。
    • 计算得00000000.00000000.00000000.11111111,转换为十进制是0.0.0.255,我们将左边的0去掉,只留右边的数字,所以我们说这个IP的主机号是255。主机号是表示网络号再加上255就是这个IP地址了。
  • 广播地址

    • 将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到的二进制数转换为十进制数就可以得到广播地址。
      • 因为本题中子网掩码是11111111.11111111.11000000.00000000,网络号占了18位,所以本题中表示IP地址的主机部分的二进制位是14位,我们将网络号172.31.128.0,转换为二进制是10101100.00011111.10000000.00000000,然后从右边数起,将14个0全部替换为1,即:10101100.00011111.10111111.11111111,这就是这个子网的广播地址的二进制表示法。
      • 将这个二进制广播地址转换为十进制就是172.31.191.255。
  • 可用IP地址范围

    • 因为网络号是172.31.128.0,广播地址是172.31.191.255,所以子网中可用的IP地址范围就是从网络号+1 到广播地址-1,所以子网中的可用IP地址范围就是从172.31.128.1-172.31.191.254。