文章目录
前言
- 在网络中传输的各式各样的信息,都是依靠一种基本的数制计算方法——二进制来表示的
- 我们可以这样形象的理解,在人类的世界里,通常采用十进制方法计数,而在网络世界里,计算机通常采用二进制方法计数,对于我们这些经常与计算机打交道的专业人士而言,需要学习数制转换
- 在日常生活中我们最常使用的是十进制,基数是10,因为人有10根手指,数完就要考虑进位了;南美的印第安人数完手指数脚趾,所以他们使用二十进制;北美是五进制手指计数法的起源地,至今都还有人使用;最早采用六十进制的是古巴比伦人,1小时等于60分钟,1分钟等于60秒,圆周角为360°,每度60分
- 当然了,世界上大多数地区还是采取十进制的,有0~9个数字符号,逢十进一
- 二进制与十进制类似,但是其技术是2,只有两个数字0和1,逢二进一
一、数制的概念
-
数制是计数的方法,指用一组固定的符号和统一的规则来表示数值的方法
-
既然有不同的进制,那么在给出一个数时,就需要指明它是什么数制里的数,对不同的数制,可以给数字加上括号,使用下标来表示该数字的数制(当没有下标时默认为十进制)
在数制中,还有一个规则,就是N进制必须是逢N进一:
- 十进制的特点是逢十进一,例如:
(1010)10=1×103+0×102+1×101+0×100=1010 - 二进制的特点是逢二进一,例如:
(1010)2=1×23+0×22+1×21+0×20=(10)10 - 十六进制的特点是逢十六进一,例如
(1010)16=1×163+0×162+1×161+0×160=(4112)10
二、数制转换
1.二和十进制的转换
这里推荐两种转换算法
- 除法(余数倒排)
125=1111101B
- 减法
将数值减去2的最高次方的数值,可以减去取1,不可以减去取0,以此类推一直到2^0^
常见的八位二进制数
上表记忆方法:从第一个128开始逐次加上64、32、16、8、4、2、1
2.二进制和八进制、十进制以及十六进制的转换
- 二、八、十、十六进制转换表:
三、二进制的优点
在数字计算机的发展历程中,一个重大的设计进步就是引用了二进制作为内部的数字系统
这种方式避免了那些基于其他数制的计算机中必须的的、复杂的进位机制,简化了算术功能和逻辑运算的设计实现
同时,采用二进制可以充分发挥电子器件的工作特点,使结构紧凑且更通用化
-
二进制容易实现:
计算机是由电子元器件构成的,而二进制在电子、电子元器件中最易实现
二进制只有两个数字,用两种稳定的物理状态即可表达,而且稳定可靠,如磁化和未磁化
若采用十进制,则需十种稳定的物理状态来表达十个数字,具有这种性能的元器件很难找到
即使有,其运算和控制的实现也很难 -
二进制的运算规则简单:
加法是最简单的运算,乘法是连加,减法是加法的逆运算,除法是乘法的逆运算
其他任何复杂的数值计算也都可以分解为基本算数运算来进行,为了提高运算效率,在计算机中除采用加法器外,也可以直接使用乘法器
十进制的加法和乘法运算规则口诀各有100条,用计算机的电路去实现这么多运算规则是很复杂的
相比之下,二进制的算法运算规则非常简单,加法、乘法各四条
0+0=0 0×0=0
0+1=1 0×1=1
1+0=1 1×0=0
1+1=0 1×1=1
根据交换率去掉重复项,实际各三条,用计算机的脉冲数字电路很容易实现
- 二进制容易实现逻辑运算:
计算机不仅要具备数值计算功能,还要具备逻辑运算功能,二进制的0和1分别可以代表假和真,很容易实现逻辑运算
二进制的主要缺点是表示同样大小的数值时,其位数比十进制或其他数制多很多,难写难记,因此在日常生活中和工作重视不便使用的
但这个缺点对于计算机而言不构成困难,在计算机中,每个存储记忆元件(由晶体管组成的触发器)可以代表一位数字,“记忆”是它们本身的属性,不存在“记不住”或者“忘记”的问题
至于位数多的问题只要对排列一些记忆元件就能解决,鉴于在集成电路芯片上元件的集成度极高,因此在体积上不存在问题
对于电子元器件,0和1两种状态的转换速度极快,因而运算速度很高
四、IP地址
1.IP地址的定义及分类
1.1 IP地址的格式
- 互联网上连接的网络设备和计算机都有唯一的地址,以此作为该主机在 Internet 上的唯一标识,称为 IP 地址
- 就如同我们写一封信,要标注信件的发信人地址和收信人地址,以便邮政人员通过该地址来投递新建一样,在计算机网络中,每个被传输的数据包也要包括一个源 IP 地址和目的 IP 地址
IP 地址由32位二进制数组成,如我的电脑连接在互联网上的IP地址如下:
11000000.10101000.01111110.00000001
很显然,这些数字不太容易记忆且可读性较差
因此,人们就将计算机 IP 地址的32位二进制分成四段,每段八位,中间用圆点隔开,然后再将每八位二进制数转换成一位十进制数,这种方式称之为点分十进制
这样,上述计算机的IP地址就会变成如下:
192.168.126.1
附:上述为ipv4,IPv6由128位组成,一般用冒号分隔,十六进制表示
1.2 IP地址的分类
IP 地址由两部分组成:网络部分(netID)和主机部分(hostID)
网络部分用于表示不同的网络,而主机部分用于表示一个网络中特定的主机
例:192.168.126.1
其中192.168.126为网络部分,即网段,1为主机部分
- IP地址的网络部分由 LANA(Internet 地址分配机构)统一分配,以保证 IP 地址的唯一性
- 为了便于分配和管理,LSNA 将 IP 地址分为 A、B、C、D、E 五类,根据 IP 地址二进制表示方法前几个比特位,就可以判断 IP 地址属于哪类
- 目前在 Internet 上使用最多的 IP 地址是 A、B、C 这三类,IANA 根据机构或组织的具体需求为其分配 A、B、C 类网络地址
- 具体主机的 IP 地址由得到某一网络地址的机构或组织自行决定如何分配
1.2.1 A类地址
A类地址范围: (0xxxxxxx), 1.0.0.1-126.255.255.254
A类地址=网络部分+主机部分+主机部分+主机部分
(有类边界)默认子网掩码为/8,即255.0.0.0
1.2.2 B类地址
B类地址范围: (10xxxxxx), 128.0.0.1~191.255.255.254
B类地址=网络部分+网络部分+主机部分+主机部分
(有类边界)默认子网掩码为/16,即255.255.0.0
1.2.3 C类地址
c类地址范围: (110xxxxx), 192.0.0.1~223.255. 255.254
c类地址=网络部分+网络部分+网络部分+主机部分
(有类边界)默认子网掩码为/24,即255.255.255.0
1.2.4 D类地址与E类地址
使用较少
D类地址范围: (1110xxxx), 224.0.0.1~239.255.255.254
用于组播通信的地址
E类地址范围: (11110xxx), 240.0.0.1~255.255.255.254
用于科学研究的保留地址
1.2.5 本机地址
- 以127开头的IP地址都代表本机(广播地址127.255.255.255除外) , 127.0.0.1为本机回环地址
- 169.254.0.0~169.254.255.255为DHCP服务失效时分配的地址
- DHCP服务可以理解为自动获取IP服务
1.3 Internet上的合法IP地址
- 目前在 Internet 上只使用 A、B、C 这三类地址,而且为了满足企业用户在 Internet 上的使用需求,从 A、B、C 三类地址中分别划分出一部分地址供企业内部网络使用,这部分地址称之为私有地址
- 且不再 Internet 上再被分配的
A类私有地址: 10.0.0.0~ 10.255.255.255
A类子网掩码为/8
B类私有地址: 172.16.0.0~172.31.255.255
B类子网掩码为/12
c类私有地址: 192.168.0.0~192.168.255.255
C类子网掩码为/16
2.子网掩码
2.1 概述
在网络中,不同主机之间的通信情况可以分为两种:
同一网段中两台主机之间相互通信
不同网段中两台主机之间相互通信
注意:具有相同网络地址的IP地址称为同一网段的IP地址
网段的组成:网络组成,可用IP,广播地址
例:192.168.126.100/24
网络号:192.168.126.0
可用IP:192.168.126.1~192.168.126.254
广播地址:192.168.126.255
- 如果是同一网段内两台主机通信,则主机将数据直接发送给另一台主机;但如果不是同一网段内,则主机将数据发送给网关,再由网关进行转发
- 为了区分这种情况,进行通信的计算机需要获取远程主机 IP 地址的网络部分以做出判断
- 如果源主机的网络地址 = 目的主机的网络地址,则为相同网段主机之间的通信
- 反之亦然
- 因此对于一台计算机而言,关键问题就是如何获取远程主机 IP 地址的网络地址信息,这就需要借助子网掩码(Netmask)
2.2 子网掩码的组成
- 与IP地址一样,子网掩码也是由32个二进制位组成,对应 IP 地址的网络部分用1来表示,对应IP地址的主机部分用0表示,通常也是由四个点分开的十进制数表示
- 当为 IP 网络中的节点分配 IP 地址时,也要一并给出每个节点所使用的子网掩码
- 对于 A、B、C三类地址而言,通常情况下都使用默认子网掩码:
2.3 子网划分及运算
- 子网划分也可称之为借位或租位,主机位借给网络位的位数决定了网络可以被分成几份,而借走之后剩余的主机位数决定了划分之后网络的规模
- 子网个数及主机数的换算公式
子网数=2^n,其中n为子网部分位数,例: /26, n=26-24
主机数(可用IP) =2^N - 2,其中N为主机部分位数: N=32-26
192.168.1.0 /24 /25 /26 /27 /28 /29 /30 /31 /32
子网掩码 0 128 192 224 240 248 252 254 255
子网个数 1 2 4 8 16 32 64 128 256
IP数量 256 128 64 32 16 8 4 2 1
可用IP 254 126 62 30 14 6 2 1 1
192.168.1.100/32 表示为一一个固定IP
- 有了子网掩码后,只要把 IP 地址和子网掩码“与”运算,得出的结果就是 IP 地址的网络地址
- 即0和任何数相与都等于0,1和任何数相与都等于任何数本身
- 也可以简单理解为相乘的概念,即IP地址乘以子网掩码得到网络地址
示例:
192.168.1.189/26
11000000.10101000.00000001.10 111101 ##IP地址
11111111.11111111.11111111.11 000000 ##子网掩码
与
11000000.10101000.00000001.10 000000 ##网络地址
192.168.1.128
将主机部分位全部置 1 得到广播地址
11000000.10101000.00000001.10 111111 ##广播地址
192.168.1.191
注:将主机部分位全部置1得到广播地址
/24 255.255.255.0 11111111.11111111.11111111.00000000
/12 255.240.0.0 11111111.11110000.00000000.00000000