# 一篇全文让你彻底理清IP地址、子网掩码、网关

# IP地址的设计

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

公有地址(Public address)由Inter NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。

摘自 百度百科-IP地址 (opens new window)

# IP地址的种类

# ABC类地址的划分

划分只是为了较为规范化的管理,就像软件框架一样进行约定,负责的功能模块及条理也清晰了许多;但这类规范并不是强制性要求,只是有效合理的划分可以节省更多的ip资源,也可缓解IP地址紧缺(资源不够用)。

  • A类保留政府机构
  • B类分配给中等规模公司
  • C类分配给需要的任何人
  • D类地址用于网管专业配置地址
  • E类地址用于研发人员的科研实验

D、E类IP普及受众范围小,普众的实际使用率低,因此非重点述说。

私有地址属于非注册地址,专门为组织机构内部使用(局域网)。以下列出留用的内部私有地址:

  • A类 10.0.0.0--10.255.255.255
  • B类 172.16.0.0--172.31.255.255
  • C类 192.168.0.0--192.168.255.255

关于划分A、B、C类IP地址就涉及到下章节:子网掩码-ABC类IP地址最大网络范围与最大可用主机数

# 网络地址与广播地址

编改自 网络地址和广播地址的作用 (opens new window)

网络地址:

网络地址是识别网络ID用的 ,如192.168.1.0 ,说明该网段属于192.168.1的段 ,属于不可用IP;

广播地址:

用于进行广播的通用地址 ,如192.168.1.255。PC在询问网关时,把信息发往192.168.1.255,于是192.168.1.1-192.168.1.254的所有机器都可以接收到它发来的信息,信息会问谁是网关你的MAC地址是多少,如果有一台机器是网关他就会回应。

# 0.0.0.0与127.0.0.1

127.0.0.1:

127.0.0.1即为主机地址,它不能连接互联网或是局域网,只能自身独立使用;只要使用这个地址发送数据,则数据包不会出现在网络传输过程中,常用于屏蔽软件官网对正版的校验。

0.0.0.0:

摘自 segmentfault - ip地址0.0.0.0是什么意思 (opens new window)

Snipaste-2019-07-14-11-48-46.png

# 子网掩码

# 子网掩码的意义

它是一种用来指明一个IP地址的哪些位标识的是主机所在的网络地址以及哪些位标识的是主机地址的位掩码。 一个IP地址的网络部分被称为网络号或者网络地址,子网掩码根据逻辑与运算,得出的结果是相同的网络号,则说明这两台计算机是处于同一个子网络上的,可以进行直接与具有相同的网络号的设备通讯。

此部分查阅参考了 网络掩码 - wiki (opens new window)百度百科-主机地址 (opens new window)

# 子网掩码ABC类IP地址最大网络范围与最大可用主机数

IP地址分为两部分,左边部分用来标识主机所在的网络,被称为网络地址,右边被用来标识主机本身,称为主机地址;可左右部分各字节占总比的 ?/4 并不知道,也由此,地址的类别开始进行划分开来。

IP地址类型 地址表示范围 缺省(默认)子网掩码 网络位n与主机位h
A类地址 1.0.0.1-127.255.255.255 255.0.0.0 0nnnnnnn.hhhhhhhh.

hhhhhhhh.hhhhhhhh

B类地址 128.0.0.1-191.255.255.255 255.255.0.0 10nnnnnn.nnnnnnnn.

hhhhhhhh.hhhhhhhh

C类地址 192.0.0.1-223.255.255.255 255.255.255.0 110nnnnn.nnnnnnnn.

nnnnnnnn.hhhhhhhh

# 以A类地址说明为例

# A类地址最大网络范围:

从1算到127(包括1与127),总数的确是128;但IP地址最后结尾的部分的x.x.x.0为网络地址,最后结尾的部分以x.x.x.255则为广播地址,二者并不能作为ip使用。因此,需要减2,即A类网络可定义27-2=126(A类地址n的个数为7)。

# A类地址最大可用主机数:

A类地址默认子网掩码是255.0.0.0,而这个0正好是未被遮罩h字节的部分(3*8=24),所以每个网络可以拥有最大可用的主机数为224-2=16777214

得出公式: 2^n-2 = x类型IP地址最大网络范围;2^h-2 = 最大**可用**主机数;B类地址、 C类地址类推同理。

# 子网划分的IP广播地址与最大可用主机数

例题2:PC1的ip为192.168.0.3/26,最大可用主机数与广播地址分别是什么?

/26 1111 1111 1111 1111 1111 1111 1100 0000

26-2 最多可用主机数:62 (子网掩码未遮罩的6个0为h,h为主机编号位

由例题1得出192.168.0.3/26网络地址为192.168.0.0

公式:网络地址 || (~子网掩码) = 广播地址

将子网掩码~ 取反 (opens new window)

/26 1111 1111 1111 1111 1111 1111 1100 0000
~ 0000 0000 0000 0000 0000 0000 0011 1111

取反的子网掩码与网络地址进行|| 短路与运算 (opens new window)

网络地址 1100 0000.1010 1000.0000 0000.0000 0000 192.168.0.0
~子网掩码 0000 0000.0000 0000.0000 0000.0011 1111 0.0.0.63
广播地址 1100 0000.1010 1000.0000 0000.0011 1111 192.168.0.63

广播地址结果为:192.168.0.63

快速运算:

子网掩码 /26,32-26=6(子网掩码未遮罩的6个0为h,h为主机编号位,26-2即最大可用主机数;也由此可推出广播地址为 x.x.x.最大可用主机数+1

# 子网掩码划分的IP网络地址

例题1:PC1的ip为192.168.0.3/26,PC2的IP为192.168.0.192/26,双方是否能互相通信?(/26即子网掩码有26个连续1)

子网掩码转为二进制 (opens new window)

子网掩码
/26 1111 1111.1111 1111.1111 1111.1100 0000
dec 255.255.255.192

IP地址与子网掩码进行&& 逻辑与运算 (opens new window)

PC1

注:(&&: 逻辑与运算、bin: 二进制、dec: 十进制)

&& bin dec
IP地址 1100 0000.1010 1000.0000 0000.0000 0011 192.168.0.3
子网掩码 1111 1111.1111 1111.1111 1111.1100 0000 255.255.255.192
结果 网络地址 1100 0000.1010 1000.0000 0000.0000 0000 192.168.0.0

PC2

&& bin dec
IP地址 1100 0000.1010 1000.0000 0000.1100 0000 192.168.0.192
子网掩码 1111 1111.1111 1111.1111 1111.1100 0000 255.255.255.192
结果 网络地址 1100 0000.1010 1000.0000 0000.1100 0000 192.168.0.192

将IP地址与子网掩码的二进制 (opens new window)进行&& 逻辑与运算 (opens new window)即可得出网络地址;得出网络地址 192.168.0.0(PC1) 与 192.168.0.192 (PC2)不同,所以无法连通。

当然,相同网段的ip,但不同子网掩码,也是可以连接的;但,这取决于被子网划分的最大可用主机数的多数主机中相比的最小值。不同网络地址的通信这就涉及到下章节:网关的意义

# 由例题反证子网掩码的设计

如果子网掩码不是由连续的1和0组成,而是有部分字节存在0101、 0011这种隔断组成的,要么192.168.0.2、192.168.0.3、192.168.0.4之间中的某一个不处于同一网络地址或全都不处于同一网络地址,这不符合常识。

# 网关的意义

# 简单理解网关和路由器

  • 可以这么理解,网关即是两个不同的网络地址设备进行通信的点十进制地址,也就是双方进行信息传递的介质
  • 所谓“路由”,是指把数据从一个地方传送到另一个地方的行为和动作,而路由器,正是执行这种行为动作的机器
  • 网关定义了边界路由,即ip地址的出口,可以理解成国家之间的交界往返地,中国 <-> 珠穆朗玛峰 <-> 尼泊尔
:: 路由器的作用简单文符示意图

:: ✗ 否定;<——> 连接;✓ 可行;⊃ 自带完全有;

:: A不能直接访问B
A ——> ✗ ——> B

:: A需要通过C才能与B进行互相通信传递信息,而这个C就是一个代理

A <——> C <——> B ✓

:: A只会汉语、B只会尼泊尔语,而C掌握二者的语言
::(这个语言可以理解成网关,而人也就可以理解成一台路由器),自然可以让双方进行信息传递

C ⊃ gateway

# 例题再现

例题1:PC1:192.168.1.3/26、PC2:192.168.1.70/26,两台PC是否能进行通信?

网络地址

公式:IP地址 && 子网掩码 = 网络地址

192.168.1.3 && 255.255.255.192 = 192.168.1.0

192.168.1.70 && 255.255.255.0 = 192.168.1.64

192.168.1.0 ≠ 192.168.1.64

根据计算PC1与PC2的网络地址不同,由此得出PC1与PC2不能进行通信,以下由 cisco Packet Tracer 进行结论验证支持

# 指定网关的设计

如何让PC1:192.168.1.3/26、PC2:192.168.1.70/26,两台不同网络地址的PC进行通信?

答:配置各自PC的网关,并向路由器添加各自的网关地址,即可使两台PC进行信息传递

一台电脑的默认网关是不可以随随便便指定的,必须正确指定,否则一台电脑就会将数据包发给不是网关的电脑,从而无法与其他网络的电脑通信。

正确指定的前提: 根据主机已有IP地址类型的当前具体的网段所容纳的可用最大主机数范围,进行的一个IP的设定。

  1. 算出当前主机网络最大可用容纳范围主机数

    公式:2^h-2 = 最大可用主机数

    2*(32-26)-2 = 62 (去掉网络地址 192.168.1.0和广播地址 192.168.1.63)

  2. 求出当前主机IP的所在子网划分范围

    当前IP地址的子网划分范围也就是当前网关设置的范围

网络地址 子网掩码 子网划分范围 广播地址
192.168.1.0 255.255.255.192 1~62 192.168.1.63
192.168.1.64 255.255.255.192 65~126 192.168.1.127
192.168.1.128 255.255.255.192 129~190 192.168.1.191
192.168.1.192 255.255.255.192 193~254 192.168.1.255

由上表可得出公式:

  • 子网划分从第二网段开始的网络地址=广播地址+1
  • 子网划分从第二网段开始的可容纳主机范围最小值=广播地址+2
  • num:子网划分可容纳主机范围最小值
    • num+(2^h-2)-1 = 子网划分可容纳主机数范围最大值
  • 广播地址 = 子网划分可容纳主机数范围最大值+1

最后配置各自PC的网关,并向路由器添加各自的网关地址

# 主机与路由器的网关配置作业

首先得启用特权模式,并接着进入全局配置模式才能完成修改接口配置等信息操作

//特权模式
Router> enable
//全局配置模式
Router#conf t
//连接网口 是interface fastEthernet 0/0 的简写式
Router(config)#int fa 0/0
//添加PC1的网关地址
Router(config-if)#ip add 192.168.1.60 255.255.255.192
//启用网口,生效配置
Router(config-if)#no shutdown

Router(config-if)#int fa 0/1	
//添加PC2的网关地址
Router(config-if)#ip add 192.168.1.126 255.255.255.192	
Router(config-if)#no shutdown

最后对于网络,桌维网管其实了解私有abc类IP,还有NAT可以转为外网IP地址其实已经够用了,划分vlan配置交换路由等其他命令都不需要。二进制可能也就考网工证时用得着,二进制本身就不符合我们算术习惯无需纠结,毕竟还有网络和IP地址计算器 (opens new window)