IPV4基本知识介绍

时间:2024-03-07 10:39:41

转自华为官网

1.1  介绍

 

定义

IPv4(Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OSI参考模型的网络层相对应。网络层提供了无连接数据传输服务,即网络在发送分组时不需要先建立连接,每一个分组(也就是IP数据报文)独立发送,与前后的分组无关。

 

目的

网络层的IPv4协议族为数据链路层和传输层实现互通提供了保障。IPv4协议族可以屏蔽各链路层的差异,为传输层提供统一的网络层传输标准。

 

1.2  原理描述

 

1.2.1  IPv4简介

 

IPv4协议族

IPv4协议族是TCP/IP协议族中最为核心的协议族。IPv4协议族主要包括地址解析协议ARP(Address Resolution Protocol)、逆地址解析协议RARP(Reverse Address Resolution Protocol)、互联网控制消息协议ICMP(Internet Control Message Protocol)、传输控制协议TCP(Transmission Contronl Protocol)和用户数据报协议UDP(User Datagram Protocol)等协议。

图1-1  IPv4协议族 

从图1-1可以看出来,ARP和RARP的功能是地址解析,介于数据链路层和网络层之间,所以常常被调用。ICMP协议的功能是为了更有效地转发IP数据报文和提高数据报文交付成功的机会,是介于网络层和传输层之间的协议。

 

ARP协议

ARP是用来将IP地址解析为MAC地址的协议,可以分为动态和静态两种类型。另外ARP还有扩展应用功能,包括Proxy ARP功能、免费ARP、ARP安全以及ARP-Ping。

 

RARP协议

RARP和ARP正好相反,是将主机的MAC地址解析为IP地址的协议。

 

ICMP协议

为了更有效地转发IP数据报文和提高数据报文交付成功的机会,在网络层使用ICMP协议。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文作为IP层数据报文的数据,加上数据报文的首部,组成IP数据报文发送出去。

 

1.2.2  IPv4地址

在IP网络上,如果用户要将一台计算机连接到Internet上,就需要向因特网服务提供方ISP(Internet Service Provider)申请一个IP地址。

IP地址是在计算机网络中被用来唯一标识一台设备的一组数字。IPv4地址由32位二进制数值组成,但为了便于用户识别和记忆,采用了“点分十进制表示法”。采用了这种表示法的IP地址由4个点分十进制整数来表示,每个十进制整数对应一个字节。例如,IPv4地址使用二进制的表示形式为00001010 00000001 00000001 00000010,采用点分十进制表示法表示为10.1.1.2。

IPv4地址由如下两部分组成:

  • 网络号码字段(Net-id)。IP地址的网络号码字段用来标识一个网络,网络号码字段的前几位用来区分IP地址的类型。

  • 主机号码字段(Host-id)。主机号码字段用来区分一个网络内的不同主机。对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一个网络中。

 

IPv4地址的特点

IPv4地址的主要特点有:

  • IP地址是一种非等级的地址结构,IP地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出主机属于哪个网络。

  • 当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号码Net-id是不同的,这种主机称为多地址主机(Multihomed Host)。主机上的每个接口都对应着一个IP地址,因此多接口主机会有多个IP地址。

  • 在IP地址中,所有分配到网络号码Net-id的网络都是平等的。

 

IPv4地址分类

为了方便IP地址的管理及组网,IP地址分成五类,如图1-2所示。

图1-2  五类IP地址 

目前大量使用的IP地址属于A、B、C三类IP地址中的一种。D类地址是组播地址,E类地址保留。A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。在IETF(Internet Engineering Task Force)发布的RFC1166 Internet Numbers中详细描述了各类IP地址。

在使用IP地址时要注意,一些IP地址是保留作为特殊用途的,一般的用户不能使用。表1-1列出各类IP地址的范围。

表1-1  IP地址分类及范围

网络类型

地址范围

说明

A

0.0.0.0~127.255.255.255

全0的主机号码表示该IP地址就是网络的地址,用于网络路由;全1的主机号码表示广播地址,即对该网络上所有的主机进行广播。

B

128.0.0.0~191.255.255.255

全0的主机号码表示该IP地址就是网络的地址,用于网络路由;全1的主机号码表示广播地址,即对该网络上所有的主机进行广播。

C

192.0.0.0~223.255.255.255

全0的主机号码表示该IP地址就是网络的地址,用于网络路由;全1的主机号码表示广播地址,即对该网络上所有的主机进行广播。

D

224.0.0.0~239.255.255.255

D类地址是一种组播地址。

E

240.0.0.0~255.255.255.255

保留。255.255.255.255用于局域网广播地址。

 

特殊IPv4地址

表1-2  特殊情况的IP地址

IP地址网络号

IP地址主机号

能否作为源端地址

能否作为目的端地址

描述

全0

全0

可以

不可以

用于本网络上的本主机

全0

主机号

可以

不可以

用于网络上的特定主机

127

非全0或全1的任何值

可以

可以

用于环回地址

全1

全1

不可以

可以

用于受限的广播(永远不被转发)

Net-id

全1

不可以

可以

用于向以Net-id为目的的网络广播

 说明:

Net-id表示不全为0和不全为1的对应字段。

 

私有IPv4地址

为了解决IP地址短缺的问题,提出了私有地址的概念。私有地址是指内部网络或主机地址,这些地址只能用于某个内部网络,不能用于公共网络。RFC1918描述了为私有网络预留的3个IP地址段。

表1-3  私有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

 

1.2.3  IPv4报文格式

IPv4报文格式如图1-3所示。
图1-3  IPv4报文格式 

一个IPv4数据报文由首部和数据两部分组成。首部的前一部分是固定长度,共20个字节,是所有IPv4数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

主要字段的解释如表1-4所示。

表1-4  IPv4报文各字段的含义

字段

长度

含义

版本

4比特

IP协议的版本号,分为IPv4和IPv6协议。

首部长度

4比特

IPv4的首部长度。

区分服务

8比特

用来获得更好的服务。只有在使用区分服务时,这个字段才起作用。

总长度

16比特

指首部和数据之和的长度。

标识

16比特

IPv4软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。

标志

3比特

目前只有两位有意义。最低位为1表示后面“还有分片”的数据报,为0表示这已经是最后一个数据片;中间一位为1表示“不能分片”,为0才允许分片。

片位移

13比特

指出较长的分组在分片后,该片在原分组中的相对位置。

生存时间

8比特

表示数据报在网络中的寿命,英文缩写是TTL(Time To Live),功能是“跳数限制”。

协议

8比特

指出此数据报携带的数据是使用何种协议。

首部检验和

16比特

数据报每经过一个路由器,路由器都要重新计算一下首部检验和,若首部未发生变化,则此结果必为0,于是就保留这个数据报。这个字段只检验数据报的首部,但不包括数据部分。

源地址

32比特

报文发送方的IPv4地址。

目的地址

32比特

报文接收方的IPv4地址。

选项字段(长度可变)

0~40字节

用来支持排错、测量以及安全等措施。在必要的时候插入值为0的填充字节。

数据部分

可变

用来填充报文。

 

1.2.4  子网划分

通过将IP地址的网络部分进一步划分为若干个子网,解决了IP地址空间利用率低和两级IP地址不够灵活的问题。

当一个单位的主机很多而且分布在很广的地理范围时,为了便于管理,可将单位内部的主机号码再进一步划分为多个子网。通过子网划分,整个网络地址可以划分成更多的小网络。

子网的划分是网络内部的行为,从外部看,这个单位只有一个网络号码。只有当外部的报文进入到本单位范围后,本单位的路由设备才根据子网号码再进行选路,找到目的主机。

如图1-4所示,为一个B类IP地址子网划分情况,其中子网掩码由一串连续的“1”和一串连续的“0”组成。“1”对应于网络号码和子网号码字段,而“0”对应于主机号码字段。
图1-4  IP地址子网划分 

图1-4中,把一个B类地址的Host-id的高位5bits用来划分子网,Subnet-id的范围是从00000~11111,总共可以划分25(32)个子网出来。对应的子网掩码也会相应的发生变化,比如Subnet-id为11111的子网掩码就是255.255.248.0。将IP地址与其相应掩码位执行与运算的结果就是网络地址。

多划分出一个子网号码字段是要付出代价的。举例来说,本来一个B类IP地址可以容纳65534个主机号码。但划分出5bits长的子网字段后,最多可有32个子网,每个子网有11bit的主机号码,即每个子网最多可有2046(211-2,去掉全1和全0的主机号码)个主机号码。因此主机号码的总数是(32 x 2046 = 65472)个,比不划分子网时要少62个。

子网划分与IP地址规划时,通常需要综合考虑以下原则,实现合理高效的网络规划。

 

层次性

实现网络的层次性划分,需要综合考虑地域和业务因素,采用自顶向下的方法划分,达到有效管理网络、简化路由表的目标。一般情况下:

  • 对于大骨干网络和大城域网络相结合的网络,采用层次性划分方式。
  • 对于行政区类型的网络,采用多级网络分配方式。

 

连续性

连续地址在层次结构的网络中易于进行路由聚合,大大缩减路由表数量,提高路由查找的效率。

  • 尽量为每个区域分配连续的IP地址空间。
  • 尽量为具有相同业务和功能的设备分配连续的IP地址。

 

扩展性

分配地址时,在每一层次上都要留有余量。当网络规模扩展时能保证地址分配的连续性,实现网络的长远规划。

骨干网络应有足够的连续地址组成独立的自治域,并为今后的扩展留有余地。

 

高效性

划分子网时,要保证充分利用地址资源,使子网的划分满足主机个数的要求。

  • 利用可变长子网掩码VLSM(Variable Length Subnet Mask)技术分配IP地址,充分合理地利用地址资源。
  • 与网络的路由机制设计相结合,合理使用已划分的地址空间,提高地址的利用率。

 

1.2.5  IP地址解析

一台路由设备用来连接多个网络,具有多个网络的IP地址。为保证用户使用IP地址进行正常通信,需要满足如下两点:

  • IP地址只是主机在网络层中的地址,若要将网络层中传送的数据报交给目的主机,必须知道该主机的物理地址,因此必须将IP地址解析为物理地址。

  • 用户平时不愿意使用难于记忆的IP地址,而更愿意使用易于记忆的主机名,因此也需要将主机名解析为IP地址。

在以太网上,主机的物理地址就是指MAC地址。将主机名解析为IP地址的操作是由DNS服务器来完成,而将IP地址解析为MAC地址的操作是由ARP来完成的,详细内容请参见DNS和ARP章节内容。

 

1.3  参考标准和协议

本特性的参考资料清单如下:

 

文档

描述

备注

RFC1166

Internet Numbers

-

RFC1918

Address Allocation for Private Internets

-