IP地址(IPv4地址)由32位正整数来表示。IP地址在计算机内部以二进制方式被处理。在人类社会中将32位的IP地址以每8位为一组,分为4组,每组以“.”隔开,再将每组数转换为十进制数。
2的32次方=4294967296,这意味着最多允许43亿台计算机连接到网络。
实际上,IP地址并非是根据主机台数来配置的,而是每一台主机上的每一块网卡(NIC)都得设置IP地址(Windows或Unix中设置IP地址的命令分别为ipconfig/all 和 ifconfig -a)。通常一块网卡只设置一个IP地址,其实一块网卡也可以配置多个IP地址。此外,一台路由器通常都会配置两个以上的网卡,因此可以设置两个以上的IP地址。
IP地址由“网络标识(网络地址)”和“主机标识(主机地址)”两部分组成。网络标识必须保证相互连接的每个段的地址不相重复。而相同段内相连的主机必须有相同的网络地址。IP地址的“主机标识”则不允许在同一个网段内重复出现。
最初网络和主机两者以分类进行区分。而现在基本以子网掩码(网络前缀)区分。
IP地址分为四个级别,分别为A类、B类、C类、D类(还有一个一直未使用的E类)。它根据IP地址中从第1位到第4位的比特列对其网络标识和主机标识进行区分。
A类IP地址是首位以“0”开头的地址。从第1位到第8位是它的网络标识。用十进制表示的话,0.0.0.0~127.0.0.0是A类的网络地址。后24位相当于主机标识。因此,一个网段内可容纳的主机地址上限为16777214个。
B类IP地址是前两位为“10”的地址,128.0.0.0~192.255.0.0是B类的网络地址。后16位相当于主机标识。因此,一个网段内可容纳的主机地址上限为65534个。
C类IP地址是前三位为“110”的地址,192.0.0.0~223.255.255.0是C类的网络地址。后8位相当于主机标识。因此,一个网段内可容纳的主机地址上限为254个。
D类IP地址是前四位为“1110”的地址,224.0.0.0~239.255.255.255是D类的网络地址。D类地址没有主机标识,常被用于多播。
在分配IP地址时关于主机标识有一点需要注意。即要用比特位表示主机地址时,不可以全部为0或全部为1。因为全部为只有0在表示对应的网络地址或IP地址不可获知的情况下才使用。而全部为1的主机地址通常作为广播地址。
广播地址用于在同一个链路中相互连接的主机之间发送数据包。
广播分为本地广播和直接广播两种。
在本地网络内的广播叫做本地广播。广播地址的IP包会被路由器屏蔽,所以不会到达其他链路上。
在不同网络之间的广播叫做直接广播。例如192.168.0.0/24的主机向192.168.1.255/24的目标地址发送IP包。收到这个包的路由器,将数据转发给192.168.1.0/24,从而使得所有192.168.1.1~192.168.1.254的主机都能收到这个包(由于直接广播有一定的安全问题,多数情况下会在路由器上设置为不转发)。
多播用于将包发送给特定组内的所有主机。
多播使用D类地址。IP地址剩下的28位可以成为多播的组编号。从224.0.0.0到224.0.0.255的范围不需要路由控制,在同一个链路内也能实现多播。而在这个范围之外设置多播地址会给全网所有组内成员发送多播的包(可以利用生存时间(TTL,Time To Live)限制包的到达范围)。
其中具有代表性的多播地址见下表:
地址 | 内容 |
---|---|
224.0.0.0 | (预定) |
224.0.0.1 | 子网内所有的系统 |
224.0.0.2 | 子网内所有的路由器 |
224.0.0.5 | OSPF路由器 |
224.0.0.6 | OSPF指定路由器 |
224.0.0.9 | RIP2路由器 |
224.0.0.10 | IGRP路由器 |
224.0.0.11 | Mobile-Agents |
224.0.0.12 | DHCP 服务器/中继器代理 |
224.0.0.14 | RSVP-ENCAPSULATION |
224.0.1.1 | NTP Network Time Protocol |
224.0.1.8 | SUN NIS+ Information Protocol |
224.0.1.22 | Service Location(SVRLOC) |
224.0.1.33 | RSVP-encap-1 |
224.0.1.34 | RSVP-encap-2 |
224.0.1.35 | Directory Agent Discovery(SVRLOC-DA) |
224.0.2.2 | SUN RPC PMAPPROC CALLIT |
前面说到不同类型的IP地址对应的网络标识分别是前8位、前16位和前24位。由此,可以用“1”表示IP网络地址的比特范围,用“0”表示IP主机地址范围。例如:
A类:11111111.00000000.00000000.00000000 = 255.0.0.0
B类:11111111.11111111.00000000.00000000 = 255.255.0.0
C类:11111111.11111111.11111111.00000000 = 255.255.255.0
网络标识相同的计算机必须同属一个链路。但是,这种网络结构实际上是不存在的。因此,直接使用A类或B类地址,确实有些浪费。
现在,一个IP地址的网络标识和主机标识已不再受限于该地址的类别,而是由一个叫做“子网掩码”的识别码通过子网网络地址细分出比A类、B类、C类更小粒度的网络。这种方式实际上就是将原来A类、B类C类等分类中的主机地址部分用作子网地址,可以将原网络分为多个物理网络的一种机制。
对于子网掩码,目前有两种表示方式。以172.20.100.52的前26位是网络地址的情况为例,以下是其中一种表示方法,它将IP地址与子网掩码的地址分别用两行来表示。
IP地址:172.20.100.52
子网掩码:255.255.255.192
网络地址:172.20.100.0
子网掩码:255.255.255.192
广播地址:172.20.100.63
子网掩码:255.255.255.192
另一种表示方式如下所示。它在每个IP地址后面追加网格地址的位数用“/”隔开。
IP地址:172.20.100.52/26
网络地址:172.20.100.0/26
广播地址:172.20.100.63
在第二种方式下记述网络地址时可以省略后面的“0”.例如172.20.0.0/16跟172.20/16其实是一个意思。
IP地址的分类导致IP地址的供需严重不足,于是,人们开始放弃IP地址的分类,采用任意长度分割IP地址的网络标识和主机标识。这种方式叫做CIDR(Classless Inter-Domain Routing),意为“无类型域间选路”。由于BGP(Border Gateway Protocol,边界网关协议)对应了CIDR,所以不受IP地址分类的限制自由分配。
在CIDR被应用到互联网的初期,网络内部采用固定长度的子网掩码机制。也就是说,当子网掩码的长度被设置到/25以后,域内所有的子网掩码都得使用同样的长度。这样就会导致难以架构一个高效的网络结构。
于是产生了一种可以随机修改组织内各个部门的子网掩码长度的机制——VLSM(Variable Length Subnet Mask,可变长子网掩码)。它可以通过域间路由协议转换为RIP2以及OSPF实现。根据VLSM可以将网络地址划分为主机数为500个时子网掩码长度为/23,主机数为50个时子网掩码为/26。从而在理论上可以将IP地址的利用率提高至50%。
有了CIDR和VLSM技术,确实相对缓解了全局IP地址不够用的问题。但是IP地址的绝对数本身有限的事实无法改变。
对于那些没有连接互联网的独立网络中的主机,主要保证在这个网络内地址唯一,可以不用考虑互联网即可配置相应的IP地址。不过,即使让每个独立的网络各自随意设置IP地址,也可能会有问题(例如因运维方案发生变化该网络需要连接到互联网时,或者不小心误被连接到了互联网时,再例如连接两个本来就各自独立的网络时,都容易发生地址冲突)。于是又出现了私有网络的IP地址。范围如下所示:
10.0.0.0~10.255.255.255(10/8) A类
172.16.0.0~172.31.255.255(172.16/12) B类
192.168.0.0~192.168.255.255(192.168/16) C类
包含在这个范围内的IP地址都属于私有IP,而在此之外的IP地址称为全局IP。
在世界范围内,全局IP由ICANN(Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)进行管理。每个国家又会有各自的组织进行全局IP的管理和下发。
在互联网被广泛商用之前,用户只有直接向相关机构申请全局IP地址才能接入互联网。然而,随着ISP的出现,人们在向ISP申请接入互联网的同时往往还会申请全局IP地址。在这种情况下,实际上是ISP代替用户向相关机构申请了一个全局IP地址。而连接某个区域网络时,一般不需要联系提供商,只要联系该区域网络的运营商即可。
对于FTTH和ADSL的服务,网络提供商直接给用户分配全局IP地址,并且用户每次重连该IP地址都可能发生变化。这时的IP地址由提供商维护,不需要用户亲自申请全局IP地址。
一般只有用户需要固定IP地址的情况下才会申请全局IP地址。
不过现在,普遍采用的一种方式是,在LAN中设置私有地址,通过少数设置全局IP地址的代理服务器结合NAT的设置进行互联网通信。这时IP地址个数就不限于LAN中主机个数而是由代理服务器和NAT的个数决定。
网络技术人员通过检查ICMP包、利用traceroute等命令定位发生异常的设备或线路最近的IP地址。一旦明确了IP地址,就可以跟管理这个IP地址的域管理员取得联系,提出问题并找到解决问题的突破口。
不过,这里也有一个问题。那就是即使知道了发生问题的IP地址,该如何了解该IP隶属于哪个域哪个机构?对此,又该如何定位呢?尤其在近来网络病毒的入侵愈加迅猛,受感染的主机很有可能在不知情的情况下又将非法的数据包继续转发出去。管理员在处理此类问题时,必须通过IP地址和主机名定位出具体管理人。
为了解决这个问题,互联网中从很早开始就可以通过网络信息查询机构和管理人联系方式。这种方法就叫做WHOIS。WHOIS提供查询IP地址、AS编号以及搜索域名分配登记和管理人信息的服务。