1. 概述
IP地址的组成
为什么要使用逻辑地址(IP地址)来标识网络设备而不采用网卡设备本身就有的唯一标识物理地址(MAC地址)呢?IP地址的使用到底是基于什么考虑呢?
因为使用IP地址作为设备的唯一标识并不是它们的唯一理由,或者说这个理由并不充分,因为MAC地址已经可以标识设备唯一了,何必再来一个IP地址呢? IP地址可唯一标识IP网络中的每台设备的所在位置,这才是它真正存在的意义,而MAC地址顶多能标识它是哪个厂家生产的,并不能标识它所处于网络架构的网络位置。 每台主机(计算机、网络设备、外围设备)必须具有唯一的地址
IP地址由两部分组成
网络ID:(处于高位) 标识网络 每个网段分配一个网络ID
主机ID:(处于低位) 标识单个主机 由组织分配给各设备
高位和低位:
就是一个数字从左往右,右边的就是高位,左边的就是低位
IPv4地址格式:点分十进制记法
IP地址分类概念的引入
例如IP地址: 10.0.0.7 10.0.0.8 怎么样判断它们是不是属于同一个网段?
2者前面都相同,只有后面的7和8不同,我们知道IP地址就是一个32位的二进制数,我们转换成二进制以后如下:
10.0.0.7的二进制:00001010 00000000 00000000 00000111
10.0.0.8的二进制:00001010 00000000 00000000 00001000
这个时候,我们需要按照网络ID位来判断了,即
00001010 00000000 00000000 00000111
00001010 00000000 00000000 00001000
这2者是用哪几位来区分网络ID和主机ID的,于是就有了IP地址分类的概念
IP地址分类
相关公式
公式:
网段数=2^(可变网络ID位数)
主机数=2^(可变的主机位ID)-2
A类地址
网络ID是高8位,主机ID是后24位低位
0 000 0000 ~ 0 111 1111:其中高8位中,第一位0是固定不变的 换算成十进制就是:1~127之间 但是0和127都是特殊地址,最终就只有1~126能用
网络数:
126=2^7(可变网络ID位数)-2
每个网络中的主机数:
2^24-2
默认子网掩码:
255.0.0.0
私网地址:
10.0.0.0
B类地址
网络ID是高16位,主机ID是后16位低位
1000 0000 - 1011 1111 其中高8位中,第一位和第二位是固定不变的10 换成十进制:128~191
网络数:
2^14
每个网络中的主机数:
2^16-2
默认子网掩码:
255.255.0.0
私网地址:
172.16.0.0-172.31.0.0
C类地址
网络ID是高24位,主机ID是后8位低位
110 0 0000 - 110 1 1111 其中8位24中,第一位和第二位和第三位是固定不变的110 换算成十进制:192~223
网络数:
2^21
每个网络中的主机数:
2^8-2
默认子网掩码:
255.255.255.0
私网地址:
192.168.0.0-192.168.255.0
D类地址
D类地址为组播地址 1110 0000 - 1110 1111: 224-239
E类地址
实验室使用地址,即保留未使用,那么地址范围:"240.0.0.0"到"255.255.255.255"
2. 公有地址和私有地址
公有地址
私有地址
特殊地址
0.0.0.0
0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络
255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机
127.0.0.1~127.255.255.254
本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为"127.0.0.1"的数据包
224.0.0.0到239.255.255.255
组播地址
224.0.0.1 特指所有主机,
224.0.0.2 特指所有路由器
224.0.0.5 指OSPF路由器,地址多用于一些特定的程序以及多媒体程序
169.254.x.x
如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址
保留地址(网络ID和广播地址)
3. 子网掩码
CIDR:无类域间路由,目前的网络已不再按A,B,C类划分网段,可以任意指定网段的范围
CIDR 无类域间路由表示法:IP/网络ID位数,如:172.16.0.100/16
netmask子网掩码:32位或128位(IPv6)的数字,和IP成对使用,用来确认IP地址中的网络ID和主机
ID,对应网络ID的位为1,对应主机ID的位为0,范例:255.255.255.0 ,表现为连续的高位为1,连续的低位为0
判断是否在同一个网段
根据网络ID来判断是否在同一个网段
求网络ID的公式
IP地址和子网掩码进行与运算
网络ID = IP 与 子网掩码
任何数和0相与都是0
任何数和01相与都是原值
注意:
计算的时候,都是拿自己的ip与自己的子网掩码进行与运算,然后再拿对方的ip与自己的子网掩码进行与运算
为什么要拿自己的子网掩码进行运算
A: 192.168.1.100/24
B: 192.168.2.100/16
例如: A要判断B是否和自己是否在同一个网段,A肯定是知道自己的的IP和子网掩码的,但是A只能知道B的IP地址,它是知道B的子网掩码的
根据上面的方法,可以看到A和B算出来的结果是不一样的,这也说明了网络是有方向性的
小练习
一个主机:172.16.1.100/28
此主机所在的网段最多有多少主机?网络ID? 此网段的主机中最小ip和最大IP?
主机数: 2^(可变的主机位ID)-2 = 2^(32-28) -2 = 14
网络ID: ip地址 与 子网掩码
10101100.00010000.00000001.01100100
11111111.11111111.11111111.11110000
====================================
10101100.00010000.00000001.01100000
换算成10进制
172.168.1.96
此网段中的最小IP和最大IP
最小IP: 172.168.1.01100000 全为0的不能用172.168.1.01100001 换算成10进制 172.168.1.97
最大IP:172.168.1.01100000 全为1的不能用172.168.1.01101110 换算成10进制 172.168.1.110
标签:主机,网络层,网络,地址,IP地址,子网掩码,ID
From: https://www.cnblogs.com/yufenchi/p/16917837.html