1,IP地址简介
前面我们已经了解了TCP/IP协议的网络层的相关协议,并且已经在OSI参考模型中了解到每一个协议栈的网络层都有网络层地址,TCP/IP协议也不例外。本节重点介绍TCP/IP协议栈的网络层地址------IP地址。IP地址是进行复杂的子网规划的基础。
我们前面已经学习到,数据链路层有物理地址-----MAC地址,也知道,MAC地址是全球唯一的。当有数据发送时,源网络设备查询对端设备的MAC地址,然后将数据发送过去。然而,MAC地址通常存在于一个平面地址空间,没有清晰的地址层次,只适合于本网段主机的通信,另外,MAC地址固化在硬件中,灵活性较差。对于不同网络之间的互连通信,我们通常使用基于软件实现的网络层地址----IP地址来通信,提供更大的灵活性。
在我们学习IP地址前,假定您已经掌握了二进制、十进制、十六进制的相关知识。
IP地址,又称逻辑地址,和MAC地址一样,IP地址也是独一无二的。每一台网络设备用IP地址来唯一的标识。IP地址由32个二进制位组成,这些二进制数字被分为四个八位数组(octets),又称为四个字节。IP地址可以这样表示:
点分十进制形式:10.110.192.111
二进制形式:00001010.01101110.10000000.01101111
十六进制形式:0a.7e.80.7f
通常我们把IP地址表示为点分十进制形式,很少表示成十六进制形式。
由于IP地址有32个二进制位,理论上可以有232个IP地址可以使用,也就是43亿个IP地址。在互联网络上,如果每一台三层网络设备,例如路由器,为了彼此通信,储存每一个节点的IP地址,可以想象路由器会有多么大的路由表,这对路由器来说是不可能的。为了减少路由器的路由表数目,更加有效的进行路由,清晰的区分各个网段,决定对IP地址采用结构化的分层方案。
IP地址的结构化分层方案将IP地址分为网络部分和主机部分,区分网络部分和主机部分需要借助地址掩码(Mask)。网络部分位于IP地址掩码前面的连续二进制“1”位,主机部分是后面连续二进制“0”位。
IP地址的分层方案类似于我们常用的电话号码。电话号码也是全球唯一的。例如对于电话号码010-82882484,前面的字段010代表北京的区号,后面的字段82882484代表北京地区的一部电话。IP地址也是一样,前面的网络部分代表一个网段,后面的主机部分代表这个网段的一台设备。
IP地址采用分层设计,这样,每一台第三层网络设备就不必储存每一台主机的IP地址,而是储存每一个网段的网络地址(网络地址代表了该网段内的所有主机),大大减少了路由表条目,增加了路由的灵活性。
2,IP地址分类
IP地址的网络部分称为网络地址,网络地址用于唯一地标识一个网段,或者若干网段的聚合,同一网段中的网络设备有同样的网络地址。IP地址的主机部分称为主机地址,主机地址用于唯一的标识同一网段内的网络设备。例如,前面所述的A类IP地址:10.110.192.111,网络部分地址为10,主机部分地址为110.192.111。
那么如何区分IP地址的网络地址和主机地址呢?最初互联网络设计者根据网络规模大小规定了地址类,把IP地址分为A、B、C、D、E五类。
A类IP地址的网络地址为第一个八位数组(octet),第一个字节以“0”开始。因此,A类网络地址的有效位数为8-1=7位,A类地址的第一个字节为1~126之间(127留作它用)。例如10.1.1.1、126.2.4.78等为A类地址。A类地址的主机地址位数为后面的三个字节24位。A类地址的范围为1.0.0.0~126.255.255.255,每一个A类网络共有224个A类IP地址。
B类IP地址的网络地址为前两个八位数组(octet),第一个字节以“10”开始。因此,B类网络地址的有效位数为16-2=14位,B类地址的第一个字节为128~191之间。例如128.1.1.1、168.2.4.78等为B类地址。B类地址的主机地址位数为后面的二个字节16位。B类地址的范围为128.0.0.0~ 191.255.255.255,每一个B类网络共有216个B类IP地址。
C类IP地址的网络地址为前三个八位数组(octet),第一个字节以“110”开始。因此,C类网络地址的有效位数为24-3=21位,C类地址的第一个字节为192~223之间。例如192.1.1.1、220.2.4.78等为C类地址。C类地址的主机地址部分为后面的一个字节8位。C类地址的范围为192.0.0.0~ 223.255.255.255,每一个C类网络共有28=256个C类IP地址。
D类地址第一个8位数组以“1110”开头,因此,D类地址的第一个字节为224~239。D类地址通常作为组播地址。关于组播地址,在HCSE交换课程会有讨论。
E类地址第一个字节为240~255之间,保留用于科学研究。
我们经常用到的是A、B、C三类地址。IP地址由国际网络信息中心组织(International Network Information Center,InterNIC)根据公司大小进行分配。过去通常把A类地址保留给政府机构,B类地址分配给中等规模的公司,C类地址分配给小单位。然而,随着互联网络飞速发展,再加上IP地址的浪费,IP地址已经非常紧张。
现在进行IP地址规划时,我们通常在公司内部网络使用私有IP地址。私有IP地址是由InterNIC预留的由各个企业内部网自由支配的IP地址。使用私有IP地址不能直接访问Internet。原因很简单,私有IP地址不能在公网上使用,公网上没有针对私有地址的路由,会产生地址冲突问题。当访问Internet时,需要利用网络地址转换(NAT,Network Address Translation)技术,把私有IP地址转换为Internet可识别的公有IP地址。InterNIC预留了以下网段作为私有IP地址:A类地址10.0.0.0~10.255.255.255; B类地址172.16.0.0~ 172.31.255.255; C类地址192.168.0.0~192.168.255.255等。使用私有IP地址,不仅减少了企业用于购买公有IP地址的投资,而且节省了IP地址资源。但是这并不能完全解决IP地址短缺问题,目前已经正式提出了IPv6协议。IPv6地址有128个二进制位,共约2128个IP地址,完全可以解决IP地址紧张问题。
3,特殊IP地址
IP地址用于唯一的标识一台网络设备,但并不是每一个IP地址都是可用的,一些特殊的IP地址被用于各种各样的用途,不能用于标识网络设备。
对于主机部分全为“0”的IP地址,称为网络地址,网络地址用来标识一个网段。例如,A类地址1.0.0.0,私有地址10.0.0.0, 192.168.1.0等。
对于主机部分全为“1”的IP地址,称为网段广播地址,广播地址用于标识一个网络的所有主机。例如,10.255.255.255 , 192.168.1.255等,路由器可以在10.0.0.0或者192.168.1.0等网段转发广播包。广播地址用于向本网段的所有节点发送数据包。
对于网络部分为127的IP地址,例如127.0.0.1往往用于环路测试目的。
全“0”的IP地址0.0.0.0代表所有的主机,华为Quidway系列路由器用0.0.0.0地址指定默认路由。
全“1”的IP地址255.255.255.255,也是广播地址,但255.255.255.255代表所有主机,用于向网络的所有节点发送数据包。这样的广播不能被路由器转发。
如上所述,每一个网段会有一些IP地址不能用作主机IP地址。下面让我们来计算一下可用的IP地址。例如B类网段172.16.0.0, 有16个主机位,因此有216个IP地址,去掉一个网络地址172.16.0.0,一个广播地址172.16.255.255不能用作标识主机,那么共有216-2个可用地址。C类网段192.168.1.0,有8个主机位,共有28=256个IP地址,去掉一个网络地址192.168.1.0,一个广播地址192.168.1.255,共有254个可用主机地址。现在,我们可以这样计算每一个网段可用主机地址:假定这个网段的主机部分位数为n,那么可用的主机地址个数为2n-2个。
网络层设备(例如路由器等)使用网络地址来代表本网段内的主机,大大减少了路由器的路由表条目。
子网掩码
这是一个C类地址,前24bits是网络位,后8bits是主机位,这个很容易理解。
我们在前面学过了二进制和十进制之间的转换,那么上图的IP地址和子网掩码的二进制和十进制的对应关系应该很容易看懂。所以再看一下子网掩码比特数中是8+8+8+4=28,这个指的是子网掩码中连续1的个数,这里是28位1。那么最后是子网掩码的另外一种表示方法,/28=255.255.255.240。
如胶片中所示,IP地址和子网掩码都已经知道,那么网络地址就是IP地址的二进制和子网掩码的二进制进行“与”的计算。“与”的计算方法是1&1=1,1&0=0,0&0=0。那么胶片中IP地址和子网掩码的与计算为:
11000000,10101000,00000001,00000111 &
1111111 ,11111111, 11111111, 11110000
11000000,10101000,00000001,00000000
最后得到的就是网络地址。
主机数的计算是通过子网掩码来计算的,首先我们要看这个子网掩码中最后有多少位是0。如上图,假设最后有N位为0,那么总的主机数为2n个,可用主机的个数我们要减去全0的网络地址和全1的广播地址,既2n-2个。
这个例子非常明确的讲述了主机数的计算过程。
我们知道A类地址标准的子网掩码255.0.0.0,也就是说24bits的0(主机位)位;B类地址的标准子网掩码为255.255.0.0,也就是说16bits的0(主机位)位;C类地址的标准子网掩码255.255.255.0,也就是说8bits的0(主机位)位。
胶片中的例子是一个C类地址,标准子网掩码有8bits的0(主机位)位,那么计算子网总数的时候就为2的8-4次方,8指的是标准子网掩码的0(主机位)位个数,4为实际主机位个数,进行相减后,就得到了子网位数,既可表示为28-4那么就得到了子网总数A,B类IP地址以此类推。
子网规划举例
在这个例子中,网段地址是一个C类地址:201.222.5.0。假设需要20个子网,其中每个子网5个主机,就要把主机地址的最后一个八位组分成子网部分和主机部分。
子网部分的位数决定了子网的数目。在这个例子中,因为是C类地址,所以子网部分和主机部分总共是8位,因为24<20<25,所以子网部分占有5位,最大可提供30(25 -2)个子网。剩余3位为主机部分。一共有8个(23)值。主机部分全是0的IP地址,是子网网络地址;主机部分全是1的IP地址是本子网的广播地址。这样就剩余6个主机地址。可以满足需要。
每个网段分别为:
201.222.5.0~201.222.5.7
201.222.5.8~201.222.5.15
201.222.5.16~201.222.5.23
.......
201.222.5.232~201.222.5.239
201.222.5.240~201.222.5.247
201.222.5.248~201.222.5.255
固定IP
固定IP:固定IP地址是长期固定分配给一台计算机使用的IP地址,一般是特殊的服务器才拥有固定IP地址。
动态IP
动态IP:因为IP地址资源非常短缺,通过电话拨号上网或普通宽带上网用户一般不具备固定IP地址,而是由ISP动态分配暂时的一个IP地址。普通人一般不需要去了解动态IP地址,这些都是计算机系统自动完成的。
IP地址的分配机构
所有的IP地址都由国际组织NIC(Network Information Center)负责统一分配,目前全世界共有三个这样的网络信息中心。
InterNIC:负责美国及其他地区;
ENIC:负责欧洲地区;
APNIC:负责亚太地区。
我国申请IP地址要通过APNIC,APNIC的总部设在日本东京大学。申请时要考虑申请哪一类的IP地址,然后向国内的代理机构提出。
4,公有地址和私有地址
公有地址(Public address)由Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。
私有地址(Private address)属于非注册地址,专门为组织机构内部使用。
以下列出留用的内部私有地址
A类 10.0.0.0--10.255.255.255
B类 172.16.0.0--172.31.255.255
C类 192.168.0.0--192.168.255.255