整个的互联网就是单一的、抽象的网络。IP地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位标识符。IP地址的结构使我们可以在互联网上很方便地进行寻址。
IP地址的编址方法共经过了三个历史阶段。
- 分类的IP地址
- 子网的划分
- 构成超网
1.1 分类IP地址表示
”分类的IP地址“就是将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成。
- 第一个字段是网络号,它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。
- 第二个字段是主机号,它标志该主机(或路由器)。一台主机号在它前面的网络号指明的网络范围必须是唯一的。
- A类、B类和C类地址的网络号字段分别为1个、2个和3个字节长,而在网络号字段的最前面有1-3位的固定类别位,其数值分别为0、10和110。
- D类地址(前四位是1110)用于多播(一对多通信)。
- E类地址(前四位是1111)保留为以后用。
- 当某单位申请到一个IP地址时,实际上是获得了具有同样网络号的一块地址。其中具体的各台主机号则由该单位自行分配,只要做到在该单位管辖的范围内无重复的主机号即可。
- 通常采用点分十进制表示IP地址,如用表示
1.2 IP地址的指派范围
- A类地址的网络号有8位,其中有1位固定,所以是27,由于网络号全零表示本网络,网络号127用于环路测试,所以减去2。
- 由于网络号 128.0 和 192.0.0 不指派,所以B类和C类地址的最大网络数都减去1。
- 由于主机号为全零和全1分别代表本主机和广播的特殊情况,所以主机数需要减去2。
1.3 特殊的IP地址
- 上面IP地址的指派范围中已经提过IP地址的一些特殊情况是不指派的,这是因为这些IP地址有特殊的功能。
- 下表展示了一般不使用的特殊IP地址及其代表的意思。
1.4 私有IP地址和NAT
私有IP地址
- 私有IP地址只适用于内部网络,比如公司和学校。
- 私有IP地址不能直接接入互联网,进行通信。
- 下表是分类IP编址中的私有IP地址。
NAT
- 由于路由器对目的地址是私有IP地址的数据报一律不进行转发,所以引入了NAT。
- 网络地址转换NAT(Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。
- 局域网端向广域网端发送数据报时,会将源IP地址 192.168.0.3: 30000 转换为新源IP地址 172.38.1.5: 40001
- 广域网端向局域网端发送数据报时,会将目的IP地址 172.38.1.5: 40001 转换为新目的IP地址 192.168.0.3: 30000
1.5 互联网中的IP地址
- 在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。
- 用网桥互连的网段仍然是一个局域网。
- 路由器总是具有两个或两个以上的IP地址。即路由器的每个接口都有一个不同网络号的IP地址。
- 当两个路由器直接相连时,在连线两端的接口处,可以分配也可以不分配IP地址。
3.1 分类IP地址的弱点
-
① IP地址空间的利用率有时很低。
- 比如某单位申请到了一个B类地址网络,但是其所连接的主机数并不多,这就造成了IP地址空间的浪费。
-
② 给每一个物理网络分配一个网络号会使路由表变得太大,因而使网络性能变坏。
-
③ 两级IP地址不够灵活。
- 比如某单位需要在新的地点开通一个新的网络,但是在申请到新的IP地址之前,新增加的网络是不可能连接到互联网工作的。
我们希望的是可以有一种方法,使一个单位能随时灵活地增加本单位的网络,而不必事先到互联网管理机构去申请新的网络号。
3.2 子网划分
- 一个拥有许多网络的单位,可将所属的物理网络划分为若干个子网。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
- 划分子网的方法是从网络的主机号借用若干位作为子网号,当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变为三级IP地址。
3.3 子网掩码
- 在划分子网后,凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器R1。此路由器在收到IP数据到后,再按目的网络号和子网号找到目的子网,把数据报交付目的主机。
- 那么就有一个问题,在数据报已经到达了路由器R1后,这个路由器如何把它转发到某个具体的子网呢?
- 我们知道,从IP数据报的首部无法看出源主机或目的主机所连接的网络是否进行了子网划分。因此必须另外想办法,这就是使用子网掩码。
- 两级IP地址的子网掩码为网络号取全1,主机号取全零。
- 三级IP地址的子网掩码为网络号和子网号取全1,主机号取全零。
- 因此,我们只需要将收到数据报的目的IP地址和三级IP地址的子网掩码逐位相与,就可以得到所需子网的网络地址。
小结:
不划分子网时:第一个字节就知道是ABC类地址,数据报的首部
划分子网时:网络地址取决于那个网络所采用各子网掩码,但数据报的首部并没有提供子网掩码信息,所以需要将IP和子网掩码相与,然后转发给相应的网络地址。
3.4 使用子网时的分组转发
上面已经讲解了为什么需要使用子网掩码,这里具体讲解使用子网时路由器的分组转发。
首先要知道路由表的结构:
下图中源主机H1要向目的主机H2交付数据
转发原理
4.1 无分类域间路由选择CIDR
-
CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而能更加有效地分配IPV4的地址空间。CIDR将IP分成两部分,前面部分是网络前缀,后面部分是主机号。因此CIDR使IP地址从3级编址又回到了两级编址。这已是无分类的两级编址。
-
其记法是:,CIDR还使用”斜线记法“,如128.14.35.7/20
-
CIDR把网络前缀都相同的连续的IP地址组成一个”CIDR地址块“。只要直到CIDR地址快中的任何一个地址,就可以直到这个地址块的起始地址和最大地址。
4.2 构成超网
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
方法:将网络前缀缩短。
那么为什么需要构成超网呢?请看下面的例子。
- 假设这里有两个位数相同的网络,网络前缀都是17位,它们的前16位是一样的,但是第17位不同。
- 如果R1要给网络1或网络2发送数据,它将查找转发表,那么转发表将存在两个网络(也就是网络1和网络2),其下一跳都是R2。如果R2连接着非常多的网络,那么这个转发表将很大,同时带来查找效率的降低。
- 所以既然R2连接的这些网络的网络前缀具有相同的部分,那么我们可以缩短网络前缀,提取出公共部分,把这些网络聚合成一个比较宽泛的网络,也就是构成超网。比如上图可以聚合成网络前缀为 206.1.0.0/16 ,再写入转发表。
- 这样做的好处是可以减少转发表的负担,提高查找效率。
4.3 最长网络前缀匹配
刚才说了构成超网,那么如果转发表中有多个网络前缀可以匹配得上,应该如何选择呢?
答案还是比较简单的,当我们使用CIDR时,查找路由表可能得到几个匹配结果,应该选择具有最长网络前缀的路由。