一、 IP地址是由32比特二进制数组成,分为网络号和机器号。通常用圆点分成四组8个比特为一组,即一个字节。换算成十进制数就是0-255的数字。
TCP/IP将IP地址分为四类/五类:1、A类IP地址,网络号占用一个字节,机器码则占用3个字节, 网络号占8位第一位规定为0,即A网IP地址:001.xxx.xxx.xxx~126.xxx.xxx.xxx,127段留给网络软件测试或者本地机进程通信,如你 ping 127.0.0.1 始终都是通的。这样子A类IP地址可以有126个子网(2^7=128 全0舍弃,全1就是1111 111=127),
例如:IP地址 10.15.16.11
对应二进制:00001010 00001111 00010000 00001011
通常A类对应子网掩码:255.0.0.0 由于255=1111 1111 上述IP 可以写成:10.15.16.11 /8
2、B类IP地址,网络号占用2个字节,机器码占用2个字节,网络号最高位和次高位规定为10,B网IP地址:128.xxx.xxx.xxx~191.xxx.xxx.xxx(2^6 =64)
通常B类IP地址前2个字节是网络号,即对应子网掩码:255.255. 0.0 所以B网IP地址可以写成 191.115.20.5 /16
3、C类IP地址:网络号占3个字节,机器码占1个字节,网络最高位到第三位规定为110,C网IP地址:192.xxx.xxx.xxx~223.xxx.xxx.xxx(2^5=32)
通常C类IP地址对应子网掩码:255.255.255.0 所以C网IP地址可以写成 192.168.1.1 /24
4、D类IP地址,所有字节用来描述网络号,没有机器码,我们称D类地址为多目地址,最高位比特规定为1110 IP地址范围 224.000.000.000~239.255.255.255 (2^4=16)D类地址通常用作广播,将一个数据包传送给一个主机群。(因为没有多余比特来描述机器码,只能对应一个网络段)
5、E类IP地址留待以后扩展用,其最高5位比特为11110。
另外: TCP/IP规定,主机号全为“1”的IP地址用于广播。主机可向远端的一个网络内的所有主机发送直接广播包。如 180.1.255.255为B类网络180.1.0.0的所有主机。
“0”地址:TCP/IP规定,各位全为0的网络号被解释成本网络。若主机试图在本我内通信却不知本网网络号,可以利用“0”地址。
此外,主机号全为0的IP地址表示该网络,如128.1.0.0表示B类网128.1。
二、 为了满足以太网的发展需求,子网掩码应运而生,关于子网掩码的结构:
子网掩码将IP地址的主机部分分为两部分,第一部分标识为子网号,第二部分标识为网内主机号。
具体细则:
子网掩码标识主机的的比特全部设置为0,主机号总在主机部分的低位,标识子网号的比特全部设置为1,它包括IP地址的网络部分和主机部分的子网部分。例如:
255.255.224.0、
11111111 11111111 11100000 0000000 红色部分就是子网号,蓝色部分就是子网内机器号。
如果子网号是111 那么以为这他的子网号位数就是3位,组合有000 001 011 010 101 110 100 111 共8种组合,舍弃全0和全1(当然随着CIDR(无分类路由选择)的广泛应用 全0 全1 也可以使用了,要看路由器是否支持)所以255.255.224.0 一共有6个子网。下面列出一个子网:11111111 11111111 01100000 00000000 假如是011网段, 这是一个B类IP 举一个例子 比如:128.155.xxx.xxx 确定后面的2组数据 就涉及到了子网号和机器码的组合了,注意第三组字节,是子网号和机器号的混合,按照我们十进制的自然数习惯是看不出是否属于一个网段的,
128.155.xxx.xxx
10000000 10011011 01100000 00000001 起始IP 由于机器码不能全部是0 或者1 所以 从 1开始
128.155.96.1
10000000 10011011 01111111 11111110 终止IP 不能全为1 这也是为什么IP地址最后以为不能是255的原因。
128.155.127.254
所以 从128.155.96.1 /19~128.155.127.254 /19 是用一个网段。
同理如果子网掩码是 255.255.255.0 这个就很容易用十进制自然数看出是否同一个网段,因为子网号占8位与十进制自然数一一对应,不做多余解释。
三、路由器如何识别子网号呢? 有一个算法。。。
现在说明路由器如何辨别出子网号。路由器通过IP地址的最高几位可以知道该地址的IP地址类型,是A类、B类还是C类。然后将子网掩码与IP地址相“与”,除去主机部分。剩下的地址中除去网络号就是子网号。
例如:一个B类IP地址为129.3.96.3, 子网掩码为255.255.224.0
10000001.00000011.01100000.00000011
11111111.11111111.11100000.00000000
相“与”得:
10000001.00000011.01100000.00000000
由于是B类地址,故除去前两个字节,子网号为011,即3。