计算机网络IP地址

Posted BkbK-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络IP地址相关的知识,希望对你有一定的参考价值。

IP地址

一、 IP地址概述

1.1 IP地址定义

IP地址是互联网中使用的网络层地址,用来标识一台主机。严格来说,IP地 址用来标识主机上的网络接口。
在TCP/IP体系结构中,IP地址是一个最基本的概念。连接到互联网的每台 设备至少具有一个IP地址。

1.2 IP地址的表示

点分十进制记法
把32位的IP地址分为4组,每组8位,然后将每组数字用十进制表示,并且 在这些数字之间加上一个点,就称为IP地址的点分十进制记法。

1.3 IP地址的组成

分层结构
IP地址采用了分层(hierarchical)结构,即IP地址由对应互联网某种层次结 构的几个部分构成。

网络部分和主机部分

  • 网络部分:
    IP地址的网络部分指明主机连接到哪个网络,所有连到同一网络上的主机, 其IP地址的网络部分相同。路由器可以仅根据IP地址的网络部分来转发分组, 而无需考虑IP地址的主机部分。
  • 主机部分:
    IP地址的主机部分唯一标识了特定网络中的一台主机。

二、编址方案

IP地址的编址方案经历了三个历史阶段:

  • 分类编址:将IP地址分为A、B、C、D、E五类,是最基本的编址方案,在1981年通 过的RFC790中就包含了A、B、C类地址的相关规定。
  • 子网划分:是在分类编址的基础上所作的改进,1985年通过的RFC950中包含了相关 的规定。
  • 无分类编址:基于无类域间路由(Classless Inter-Domain Routing,CIDR)的编址方案,是目前正在使用的编址方案。在1993年通过的RFC1519中提出后,很快就得到推广 应用。2006年,RFC1519被RFC4632替换

2.1 分类编址

2.1.1 分类的IP地址

在分类编址方案中,采用两级编址方案,每个单播IP地址都由两个字段组成:
IP地址 := {< 网络号 >, < 主机号 >}
由于不同网络中可能包含不同数量的主机,一种简单的划分方法是依据预计 的主机数量,分类编址方案中将不同大小的IP地址空间分配给不同的网络。

2.1.2 五类IP地址


IP地址空间被划分为五类,命名为A、B、 C、D和E。

  • A、B、C类地址空间用于单播地址
  • D类地址用于多播地址
  • E类地址为保留地址

2.1.3 A、B、C类地址

特殊地址
A类、B类和C类地址属于单播地址,由网络号和主机号两部分组成。在单播 地址空间中,有部分地址被用作特殊用途,不作为单播地址使用

网络号主机号作为源地址作为目的地址用途说明
00可以不可以本网络上的本主机
0host-number可以不可以本网络上的指定主机
全1全1不可以可以本网络上的广播
network-number全1不可以可以指定网络上的广播
127任意可以可以本地环回测试
  • 特殊地址中,主机号部分全为1的地址都称为广播地址
    • 网络号和主机号全1的地址用于本网络上的广播,也称为受限广播,其传播范围仅限发送方所属网络,路由器不转发受限广播。
    • 网络号为指定网络,主机号全1的地址用于向指定网络发送广播数据报,这种广播也称为定向广播
  • 最初互联网建议支持路由器转发定向广播,而且默认启用。但RFC2644变更了该策略,要求路由器默认禁止转发定向广播
  • 本地环回测试地址用于本主机的进程间通信使用,通常仅使用127.0.0.1

可指派地址
排除以上特殊地址后,剩余的地址属于A、B、C类网络的可指派地址。

地址空间可指派的网络数每个网络可指派的主机数
A类 2 31 2^{31} 231 2 7 − 2 = 126 2^7 -2 = 126 272=126 2 24 − 2 = 16777214 2^{24} -2 = 16777214 2242=16777214
B类 2 30 2^{30} 230 2 14 = 16384 2^{14} = 16384 214=16384 2 16 − 2 = 65534 2^{16} -2 = 65534 2162=65534
C类 2 29 2^{29} 229 2 21 = 2097152 2^{21} = 2097152 221=2097152 2 8 − 2 = 254 2^8 - 2 = 254 282=254

2.1.4 路由器和主机的IP地址

  • 同一个网络上的主机,其IP地址中的网络号都相同;
  • 不同网络上的主机,其IP地址中的网络号不同。
  • 路由器总是具有多个IP地址,路由器的每 一个接口,其IP地址的网络号都不同。

2.2 子网划分

2.2.1 子网划分的概念

当一些较大的单位或组织内部组建了多个局域网,在IP地址的两级编址方案 下,为这些局域网分配IP地址有困难。
RFC950提出了子网划分,来解决这样的问题 。 子网划分将IP地址从两级编址方案扩展为三级编址方案,包括两种方式: 定长子网划分 、变长子网划分

2.2.2 子网掩码

划分子网后,网络内部的路由器必须能够区分发往不同子网的分组。
表示方法:

  • 0-1表示
    子网掩码中的1对应于IP地址中的网络号和子网号,而子网掩码中的0对应于于子网划分后的IP地址中的主机号
  • 点分十进制记法
    子网掩码可以采用点分十进制记法表示,也可以用掩码中1的位数表示,称 为前缀长度

将IP地址与其子网掩码做按位与操作(AND),即可得到相应的网络地址

2.2.3 定长子网划分

子网划分的方法是从IP地址的主机号部分借用若干位作为子网号,这样,两 级IP地址在本单位内部就变为三级IP地址。
IP地址 := {< 网络号 >, < 子网号 >, < 主机号 >}
互联网上的路由器仍然将网络号看作IP地址的网络部分; 单位的边界路由器和内部路由器将网络号+子网号记作网络地址,将网络地址看作IP地址的网络部分。 路由器根据IP地址的网络部分来转发分组

2.2.4 变长子网划分

如果将一个网络划分为多个大小不同的子网,以适应多个子网具有不同数量主机的需求。这种子网划分方式称为变长子网划分
在变长子网划分中,各子网的子网号部分长度不同,因此其子网掩码的前缀长度不同,这种子网掩码称为变长子网掩码VLSM

2.3 无分类编址

2.3.1 无分类编址网络前缀

IETF在VLSM的基础上,研究出了无分类编址方案,它的正式名字是无分类域间路由选择(Classless Inter-Domain Routing,CIDR)。
CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,可以更加有效地分配IPv4地址空间。
CIDR将IP地址从三级编址改回两级编址,但这已经是无分类的两级编址。

IP地址 := {< 网络前缀 >, < 主机号 >}
其中,网络部分是网络前缀;主机部分是主机号。
路由器根据IP地址的网络部分来转发分组。

2.3.2 CIDR地址块与掩码

CIDR地址块
网络前缀都相同的连续的IP地址组成一个CIDR地址块。通常用地址块中的最小地址和网络前缀的位数标识地址块。

CIDR采用斜线记法,也称为CIDR记法,即在IP地址后面加上斜线"/",然 后写上网络前缀所占的位数。网络前缀消除了一个IP地址中网络和主机号的预定义分隔,使更细粒度的IP 地址分配为可能。

CIDR掩码
在CIDR中,使用地址掩码从IP地址中获取网络前缀。地址掩码由一串1和一 串0组成,而1的个数就是网络前缀的长度。地址掩码也称为CIDR掩码,或 简称为掩码。

2.3.3 路由聚合

路由聚合的定义
路由聚合是指将相邻CIDR地址块的网络前缀合并成一个较短的网络前缀, 聚合后的一条路由信息可以覆盖更多地址空间。用来减少路由器中路 由表的项目数,改善路由器的性能。
由于有些聚合后的CIDR地址块包含了多个C类地址,路由聚合也被称为构成超网


路由聚合的条件
(1)两个地址块相邻且大小一致
(2)两个地址块的前n位相同
(3)聚合前后,CIDR地址块包含的IP地址相同

三、特殊用途的IP地址

特殊用途IP地址发布在IANA的网站上. 常见的特殊用途地址包括: • 专用网络地址 • 链路本地地址 • 运营商级NAT共享地址 • 用于文档的测试网络地址 • 环回测试地址 • 受限广播地址

(1)专用网络地址
专用网是指企业或机构内部专用的网络,也称为私有网络
专用网络内的IP地址不需要向ICANN申请,RFC1918和RFC6890规定了三 块IP地址空间作为专用网络地址,它们也称为专有地址,仅用于专用网络内 部的主机和路由器之间的通信。
10.0.0.0~10.255.255.255(10.0.0.0/8)
172.16.0.0~172.31.255.255(172.16.0.0/12)
192.168.0.0~192.168.255.255(192.168.0.0/16)

在专用网络内分配IP地址,只需要保证在专用网络内唯一即可。
当专用网络内的主机需要和互联网上的主机通信时,需要利用网络地址转换 NAT


(2)链路本地地址
链路本地地址仅用千同一个物理网络上的、都配置了链路本地地址的主机之 间的通信。

为主机配詈IP地址,可以采用手动方式或自动方式。 手动配詈的方式称为静态IP地址配置,自动配詈方式利用动态主机配置协议 DHCP进行配詈。在选择自动配詈IP地址后,如果主机获取IP地址失败,则操作系统会自动分 配一个链路本地地址(Link-Local address)给主机。


(3)运营商级NAT共享地址
为了满足新用户接入互联网的需求,RFC6598规定了一个/10地址块:100.64.0.0/10 ,用作运营商级NAT(Carrier-Grade NAT,CGN)共享地址,记作CGN地址。
CGN地址只能用千ISP的内部网络,每个ISP都可以使用CGN地址。

用户通过ISP访问互联网需要经过两次NAT:


(4)用于文档的测试网络地址

在各种技术规范或者技术文档中,经常需要使用某些网络示例。为了避免使 用已分配给他人的地址而引起冲突的可能,RFC5737保留了3个地址块,专 用于在文档中做测试网络地址。
TEST-NET-1:192.0.2.0~192.0.2.255(192.0.2.0/24)
TEST-NET-2:198.51.100.0~198.51.255(198.51.100.0/24)
TEST-NET-3:203.0.113.0~203.0.113.255(203.0.113.0/24)
用于文档的测试网络地址也不会出现在公共互联网中


(5)其它特殊用途地址
环回测试地址:127.0.0.0/8
受限网络广播地址 255.255.255.255/32
本网络上的主机地址: 0.0.0.0/8

四、IP地址的规划和分配

(1)确定需要的CIDR地址块的数量和大小

  • 综合考虑建筑物的分布位詈以及部门的数量,确定需要的CIDR地址块的数量
  • 根据建筑物内或部门中的信息点数量,确定每个CIDR地址块包括的IP地址数目
  • 每个CIDR地址块包括的IP地址数目是2的整数次幂,且其中的最小地址和最大地址不能分配给主机。


(2)确定掩码
根据CIDR地址块的大小,计算并确定掩码。


(3)CIDR地址块分配
进行CIDR地址块的分配,需要遐循以下规则:

  • 应先为较大的地址块分配网络前缀;
  • 在相同路径上的地址块应具有相同的前缀,便于进行路由聚合;
  • 应保留部分地址块,以备将来扩展使用

以上是关于计算机网络IP地址的主要内容,如果未能解决你的问题,请参考以下文章

为啥ip片段必须是8字节的倍数

超实用的php代码片段

如何使用 C 程序为计算机设置 IP 地址?

如何通过IP地址得到用户所在的城市名?怎样写代码?

网络示例 - IP 地址

查找本地网络中的所有 IP 地址