ip地址
1.IP地址
MAC地址用于同网段通信,当跨网段通信时,需要使用另一种地址:IP地址。和MAC地址不同,IP地址是逻辑地址,正因为是逻辑地址,所以一个网卡上可能有一个或多个IP地址(其中一个为主IP),甚至出故障的时候网卡上不会分配IP地址。
IP地址用于在网络上定位寻址,它是网络层的概念,需要工作在三层的网络设备(比如路由器、三层交换机)来帮忙识别并作出对应操作。所以数据包要到达非本网段内的对方主机,需要经过一次或多次路由,最终才能找到对方主机并将数据交给对方。
IP地址分为IPv4和IPv6,这里只介绍IPv4。
每个IP地址4个字节共三十二位,全都是0和1,每8位是IP地址的一部分,所以每一部分最小是0(二进制位全为0),最大是255(二进制位全为1)。
IP地址通常采用点分十进制的方式记录,即使用点将各部分连接起来,例如,192.168.100.10。它对应的二进制格式为1100 0000 1010 1000 0110 0100 0000 1010。
每个IP地址都分为网络部分和主机部分:
网络 ID:标识网络,每个网段分配一个网络ID,处于高位
主机 ID:标识单个主机,由组织分配给各设备,处于低位
2.IP地址分类
Internet委员会定义了5种IP地址类型,分别是A-E类,其中D和E类为特殊地址。
(1).网络地址最高位是0的地址为A类地址;
(2).网络地址最高位是10的地址为B类地址;
(3).网络地址最高位是110的地址为C类地址;
(4).网络地址最高位是1110的地址为D类地址;
(5).网络地址最高位是11110的地址为E类地址。
此外,按照分类标准,A类地址的网络位占用一个字节,B类地址的网络位占用两个字节,C类地址的网络位占用3个字节。如下图:
A类地址的网络部分最高位是0,所以IP的第一部分的格式是0xxx xxxx,那么它的范围是:
0000 0000=0,0111 1111=127
即A类地址第一部分的十进制范围是0到127,所以那么1.2.3.4和100.100.120.120都是A类地址。但注意,A类地址的第一部分范围实际上是1-126,,0和127都不是A类的有效地址,稍后将解释为什么。
B类地址的网络部分最高位是10,所以IP的第一部分的格式是10xx xxxx,那么它的范围是:
1000 0000=128,1011 1111=191
所以,B类网络地址的第一个字节取值为128-191.
C类地址的网络部分最高位是110,所以IP的第一部分的格式是110x xxxx,那么它的范围是:
1100 0000=192,1101 1111=223
所以,C类网络地址的第一个字节取值为192-223.
D类地址的第一个字节范围是224-239,D类地址被用于组播地址。
E类地址的第一个字节范围是240-255,用于科学研究。
虽然组播地址不专门讨论,但是每个IT人员都应该记住它的范围是224-239,因为有些服务器需要配置多播,而且有些软件或者病毒木马会发送广播或多播,记住这个范围能够很快地定位是什么问题。
根据第一个字节的范围,将IP地址分类:
1-126.x.x.x的是A类地址;
128-191.x.x.x的是B类地址;
191-223.x.x.x的是C类地址;
224-239.x.x.x的是D类地址;
239-255.x.x.x的是E类地址。
根据这个范围,就能很快知道某个地址是哪一类地址。比如172.16.100.3是B类地址,192.168.100.3是C类地址,10.10.10.10是A类地址。
3.共有和私有IP地址
私有IP地址:不直接用于互联网,通常在局域网中使用
公共IP地址:互联网上设备拥有的唯一地址
4.保留地址和特殊地址
有些IP地址被保留用于特殊目的,这类保留地址不能被分配某个主机或其他设备。
下面列出了一些保留地址以及保留它们的原因。
(1). 整个IP地址全为1即255.255.255.255
发送给当前网络所有节点的广播,也称1广播或受限广播
(2).整个IP地址全为0即0.0.0.0
不同场景意义不同:
在路由表中表示默认路由的目标地址;
在服务监听时,表示监听本机上任何有效地址;
在地址冲突时,也会显示0.0.0.0
(3).主机位全为1
表示当前网络中的所有节点,也是广播
(4).主机位全为0
表示当前网段
(5).127.0.0.1
回环地址,表示节点自身,数据只在主机自身流转,不会产生网络流量。可用于测试主机的TCP/IP协议栈是否正常工作
5.私有地址
每个公网地址都是独立拥有的,比如152.16..10.111地址只有某个人能使用,所以公网地址的数量是有限的。
为了节省IP地址,避免每台电脑都分配一个公网地址,还提供了私有地址。任何人都能用私有地址,它们只用于局域网内,不能用于公网。比如公司A能用172.16.100.11,公司B也能用172.16.100.11,因为它是私有地址,只要地址不冲突,可以随时使用。
在A类、B类、C类地址中,都保留一些范围的地址作为私有地址。
A类私有地址:10.0.0.0~10.255.255.255,共1个网段;
B类私有地址:172.16.0.0~172.16.255.255,共32个网段;
C类私有地址:192.168.0.0~192.168.255.255,共256个网段;
使用私有地址时,如果需要上网,需要结合NAT(网络地址转换)功能,在流量出去的时候,需要转换公网地址,只有公网地址,才能在网络上路由。
6.CIDR
子网掩码必须结合IP地址一起使用,通常会将它们写在一起。例如:192.168.100.23、255.255.255.0.
但也支持另一种更方便的方式,直接将子网掩码为1的位数写在IP地址的后面。例如,255.255.255.0这个子网掩码中有24个位是1,所以,IP地址和子网掩码结合的方式可以写成192.168.100.23/24,172.168.100.23/16等。这种写法称为CIDR。
7.子网掩码
子网掩码用来表示IP地址中的那些位是网络位,哪些位是主机位。所以,子网掩码是决定IP地址属于哪个网段的。子网掩码必须结合IP地址一起使用,否则它是是没有意义的。
子网掩码中全位1的部分是网络位,全为0的部分是主机位。0和1必须连续出现,子网掩码的二进制表示中不能出现类似101、10001这种1和0隔开的情况。
根据A、B、C这些IP地址的分类,其实能推断出各类的子网掩码。
每次通信时,首先根据自己的IP地址和子网掩码来判断出自己的网段,再用自己的子网掩码和对方IP地址计算目标所在的网段,如果在同一网段,那么在封装成帧的时候,封装的是目标主机的MAC地址,而如果不在同一个网段,则封装的是本地路由器的MAC地址作为目标MAC地址。
正因为子网掩码用于决定所属网段,所以它非常重要,子网掩码配置错误,一定会出现网络故障。
相关公式:
一个网络的最多的主机数=2^主机ID位数-2 网络(段)数=2^网络ID中可变的位数 网络ID=IP与netmask
判断对方主机是否在同一个网段:
用自已的子网掩码分别和自已的IP及对方的IP相与,比较结果,相同则同一网络,不同则不同网段
范例: netmask: 255.255.224.0,网络ID位:19 主机ID位:13,主机数=2^13-2=8190 范例:判断A和B是否在网一个网段? A: 192.168.1.100 netmask:255.255.255.0 B: 192.168.2.100 netmask:255.255.0.0 范例:一个主机:172.16.1.100/28 1、此主机所在的网段最多有多少主机?主机数=2^(32-28)-2=14 2、网络ID? IP和子网掩码相与,172.16.1.96 3、此网段的主机中最小的IP:172.16.1.97,最大的IP?172.16.1.110
8.划分子网
划分子网:将一个大的网络(主机数多)划分成多个小的网络(主机数少),主机ID位数变少,网络ID 位数变多,网络ID位向主机ID位借n位,将划分2^n个子网
可变长度子网掩码
范例:
中国移动10.0.0.0/8 给32个各省公司划分对应的子网 1)每个省公司的子网的netmask? 2^5>=32 借5位网络ID 8+5=13 255.248.0.0 2)每个省公司的子网的主机数有多少? 2^(32-13)-2=524286 3)河南省得到第10个子网,网络ID? 10.00000 000.0.0/13 10.01001 000.0.0/13 10.72.0.0/13 4)河南省得到第10个子网的最小IP和最大的IP? 10.01001 000.0.1 10.01001 111.11111111.11111110 10.72.0.1---10.79.255.254 5)所有子网中最大,最小的子网的netid? 10.00000 000.0.0/13 10.0.0.0/13 10.11111 000.0.0/13 10.248.0.0/13