Skip to main content
  1. Posts/

Internet Protocol version 4 & Subnet Mask

208 words·1 min
Network
Table of Contents

进制
#

对照表

num - - - - - - - 单位
128 64 32 16 8 4 2 1 十进制
1 1 1 1 1 1 1 1 二进制

十进制

// 二进制当前位置全为1 255 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

=》 1 1 1 1 1 1 1 1

132 = 128 + 4

=》 1 0 0 0 0 1 0 0

举例为8位,IP4地址是由4组8位二进制组成,

二进制: XXXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX  (32位)
      0 ~ 255 . 0 ~ 255 . 0 ~ 255 . 0 ~ 255 

每组最大为8个1,即十进制 255

IP 地址用途
#

区分地址信息

IP地址组成: 网络号 + 主机号 (全0,全1地址不可分配)

范围 网络数 主机数
A 0.0.0.0 ~ 127.255.255.255 126 16777216
B 128.0.0.0 ~ 191.255.255.255 16384 65536
C 192.0.0.0 ~ 223.255.255.255 2097152 256

私有地址

# A类地址: 10.0.0.0~10.255.255.255 即10.0.0.0/8
# B类地址: 172.16.0.0~172.31.255.255即172.16.0.0/12
# C类地址: 192.168.0.0~192.168.255.255 即192.168.0.0/16

子网掩码作用
#

例如

195.10.10.X =》 256主机数 ,如果需要267个主机则需要再分配新的C类地址,理论上就会浪费255个地址。 新的C类地址也会分配256个地址。

195.10.20.X =》有256地址,如果只需要分配一个则浪费余下地址。

解决简单分类导致的IP分配不合理,就需要用到子网掩码

比如N1 分配一个C类地址192.168.0.X ,只需要4台主机,多了浪费少了得补。

保证如下IP地址同属一个网络,子网掩码划分网络号和主机号。

192.168.0.0  =》 11000000.10101000.00000000.00000000
192.168.0.1  =》 11000000.10101000.00000000.00000001
192.168.0.2  =》 11000000.10101000.00000000.00000010
192.168.0.3  =》 11000000.10101000.00000000.00000011

前三组不变,使用1对三组进行锁定(前24位)+ (后6位),用0表示不锁定
11000000.10101000.00000000.00000011
=11111111.11111111.11111111.11111100
转为十进制
# 255.255.255.252(128 + 64 + 32 + 16 + 8 + 4) 子网掩码

上述四个IP地址的子网掩码一致表示在同一网段。

可以使用CIDR的方式表示,有30个1 =》 192.168.0.0/30

192.168.0.3 =》 11000000.10101000.00000000.00000100 由于锁定位置不同不属于同一网段。

例子

IP: 192.168.50.10 
    XXXXXXXX.XXXXXXXX.00110010.XXXXXXXX
子网掩码: 255.255.192.0
		11111111.11111111.11000000.00000000
		
前18位相同,即192.168.0.0/18

192.168.0.0 0.1 0.3 都属于同一网段

如下就不属于同一个网段,子网掩码不同,网络号不同

  • ip地址:192.168.1.1 子网掩码:255.255.255.0
  • ip地址:192.168.1.2 子网掩码:255.255.0.0

Related

Rust Book Datastructure - Trait
998 words·5 mins
Rust
结构体泛型与函数泛型 # struct Point<T, U> { x: T, y: U, } impl<T, U> Point<T, U> { fn mixup<V, W>(self, other: Point<V, W>) -> Point<T, W> { Point { x: self.
Rust Book Datastructure - Micro
1076 words·6 mins
Rust
结构体 # struct Name{ name: String, } 初始化实例时,每个字段都需要进行初始化 初始化时的字段顺序不需要和结构体定义时的顺序一致 3.
Rust Book Datastructure - Datastructure
1485 words·7 mins
Rust
Rust DataStucture # // 类型推导与标注 let i = "42".
Supervisor Description
121 words·1 min
command
Supervisor管理 # 在linux服务器上部署了node项目,使用supervisor进行管理 要使更新的配置得以应用,需要重新启动supervisor服务。具体操作如下: 二、更新新的配置到supervisord 配置文件: /etc/supervisord.
Install Rust
477 words·3 mins
Rust
Macos # https://www.rust-lang.org/tools/install Centos 7 # Note: Before installing Rust, make sure that the system has installed C and C++ compilers, as well as other necessary dependencies.