IP协议(Internet Protocol)是网络层最重要的协议。来自传输层和网络层本身的数据都会被放置到IP封包里。在IP封包的头中,最重要的字段是:来源地址(Source Address)和目的地址(Destination Address),我们称之为IP地址。可以将IP地址类比成现实世界中的“门牌号”。在现实世界中,“门牌号”用来定位建筑;而在网络世界中,IP地址用来定位节点。
IPv4封包的结构
IP协议有两个版本:IPv4和IPv6,相应地,IP地址也分为两大类:IPv4地址和IPv6地址。其中:
IPv4地址
IPv4地址是长度为32位的二进制数值
IPv4地址的表示方法是:
IPv6地址
IPv6地址是长度为128位的二进制数值
IPv6地址的表示方法是:
冒分十六进制表示法:将IPv6地址分成8块,每块16位,用4个十六进制数表示,各个块之间用":"隔开,每个块最前面的0可以省略,但是每个块必须至少有一个数字
0位压缩表示法:
内嵌IPv4地址表示法:前6个块用冒分十六进制表示,后2个块用点分十进制表示。比如,"::192.168.0.1"
为了实现IPv4 - IPv6互通,需要将IPv4地址转换成IPv6地址,转换方法是:
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的地址是网段的地址)。划分子网本质上就是设计子网掩码的过程。划分子网的原因如下:
InterNIC将IP地址分为五类,分别是:A类、B类、C类、D类、E类。其中:
IP地址分为两种:
IANA在A类、B类、C类IP地址范围内,各保留一段作为私有IP,即:
只有私有IP,没有公共IP的主机可以通过NAT或PAT技术连接到Internet。关于NAT,请参考:http://timd.cn/network/nat/
CIDR的全称是: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的路由器只需要有一个条目。