目录IP地址划分子网IP地址的分类IP地址的种类CIDRIP地址IP协议(Internet Protocol)是网络层最重要的协议。来自传输层和网络层本身的数据都会被放置到IP封包里。在IP封包的头中,最重要的字段是:来源地址(Source Address)和目的地址(Destination Address),我们称之为IP地址。可以将IP地址类比成现实世界中的“门牌号”。在现实世界中,“门牌号”用来定位建筑;而在网络世界中,IP地址用来定位节点。
IPv4封包的结构
IP协议有两个版本:IPv4和IPv6,相应地,IP地址也分为两大类:IPv4地址和IPv6地址。其中:
IPv4地址
IPv4地址是长度为32位的二进制数值
IPv4地址的表示方法是:
点分十进制表示法:将IPv4地址分成4块,每块8位,用1个十进制数表示,各个块之间用"."隔开IPv6地址
IPv6地址是长度为128位的二进制数值
IPv6地址的表示方法是:
冒分十六进制表示法:将IPv6地址分成8块,每块16位,用4个十六进制数表示,各个块之间用":"隔开,每个块最前面的0可以省略,但是每个块必须至少有一个数字
0位压缩表示法:
全0块("0000"),可以化简为"0"连续的全0块,可以化简为"::"一个IPv6地址中只能出现一个"::",当出现多段连续的全0块时,"::"要化简最长的那段,如果没有最长的,则化简最左面的那段"::"可以出现在地址的开头或结尾内嵌IPv4地址表示法:前6个块用冒分十六进制表示,后2个块用点分十进制表示。比如,"::192.168.0.1"
为了实现IPv4 - IPv6互通,需要将IPv4地址转换成IPv6地址,转换方法是:
非标准转换:将IPv4地址作为最后2个块,并将前6个块补零,然后使用内嵌IPv4地址表示法。比如,"192.168.0.1"会被转换为"::192.168.0.1"标准转换:将IPv4地址转换成8个十六进制数,并将其当作最后2个块,然后将前6个块补零。比如,"192.168.0.1"会被转换成"::C0A8:1"划分子网IP地址由NetID(网段ID,关于IP网段,请参考:http://timd.cn/network/network/)和HostID(主机ID)两部分组成。子网掩码(也叫网络掩码、地址掩码、子网络遮罩)是用于指明IP地址中哪些位标识的是主机所在的网段,以及哪些位标识的是主机的位掩码。子网掩码是二进制的数值,其长度与IP地址的长度相同。子网掩码中对应于网段地址的所有位都被置为1,对应于主机地址的所有位都被置为0。因此,把IP地址和子网掩码做“按位与”操作,可以得到网段的地址(在IP网段中,HostID位全为1的地址是广播地址,关于广播地址,请参考:http://timd.cn/network/broadcast-address/;全为0的地址是网段的地址)。划分子网本质上就是设计子网掩码的过程。划分子网的原因如下:
一个网段内的所有节点都处在同一个广播域内,它们之间通过CSMA/CD的方式进行通信。随着网络规模的增大,网络内的广播(比如:DHCP广播、ARP广播)也会增多,进而会影响网络的效率,因此需要通过划分子网的方式,减小网络的规模各个子网之间不能直接通信,必须通过网关进行转发,因此划分子网也可以提升网络的安全IP地址的分类InterNIC将IP地址分为五类,分别是:A类、B类、C类、D类、E类。其中:
A类IP地址:NetID以0开头,自然子网掩码(nature netmask)是:255.0.0.0B类IP地址:NetID以10开头,自然子网掩码是:255.255.0.0C类IP地址:NetID以110开头,自然子网掩码是:255.255.255.0D类IP地址:NetID以1110开头,是多播地址,关于多播,请参考:http://timd.cn/network/multicast/E类IP地址:NetID以1111开头,是保留地址IP地址的种类IP地址分为两种:
Public IP:公共IP,由InterNIC统一分配,只有这种IP能连上InternetPrivate IP:私有IP或保留IP,主要用于局域网内的主机联机规划IANA在A类、B类、C类IP地址范围内,各保留一段作为私有IP,即:
Class A:10.0.0.0 - 10.255.255.255Class B:172.16.0.0 - 172.31.255.255Class C:192.168.0.0 - 192.168.255.255只有私有IP,没有公共IP的主机可以通过NAT或PAT技术连接到Internet。关于NAT,请参考:http://timd.cn/network/nat/
CIDRCIDR的全称是:Classless Inter-Domain Routing,即无类别域内路由。在CIDR中,使用Network/Netmask的形式表示网段。比如:192.168.1.0/255.255.255.0 或 192.168.1.0/24 ("/"后面的数字表示网络位的个数)。CIDR用于将多个小的网段合并成一个大的网段(CIDR与划分子网是相反的过程),以达到减少路由条目的目的。比如,Internet把IP地址按照块分配给ISP,ISP再分配给用户,假设一个ISP被分配了三个网段 192.168.1.0/24 、 192.168.2.0/24 、 192.168.3.0/24 ,那么Internet的路由器就需要有3个路由条目。如果使用CIDR的方式,将这三个较小的网段合并称一个较大的网段 192.168.0.0/22 ,那么Internet的路由器只需要有一个条目。