IPv4基础知识详解
1、IPv4简介
IPv4(Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OSI参考模型的网络层相对应。
网络层提供了无连接数据传输服务,即网络在发送分组时不需要先建立连接,每一个分组(也就是IP数据报文)独立发送。
网络层的IPv4协议族为数据链路层和传输层实现互通提供了保障。IPv4协议族可以屏蔽各链路层的差异,为传输层提供统一的网络层传输标准。
2、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)。
图 IPv4协议族
从上图可以看出来,ARP和RARP的功能是地址解析,介于数据链路层和网络层之间。ICMP协议的功能是为了更有效地转发IP数据报文和提高IP数据报文交付成功的机会,是介于网络层和传输层之间的协议。
3、ARP协议
ARP是用来将IP地址解析为MAC地址的协议,可以分为动态和静态两种类型。另外ARP还有扩展应用功能,包括Proxy ARP功能、免费ARP、ARP安全以及ARP-Ping。
4、RARP协议
RARP和ARP正好相反,是将MAC地址解析为IP地址的协议。
5、ICMP协议
为了更有效地转发IP数据报文和提高数据报文交付成功的机会,在网络层使用ICMP协议。
ICMP允许主机或设备报告差错情况和提供有关异常情况的报告。ICMP报文作为IP报文的数据部分,再封装上IP报文首部,组成完整的IP报文发送出去。
6、IPv4地址
在IP网络上,如果用户要将一台计算机连接到Internet上,就需要向因特网服务提供方ISP(Internet Service Provider)申请一个IP地址。
IP地址是在计算机网络中被用来唯一标识一台设备的一组数字。
IPv4地址由32位二进制数值组成,但为了便于用户识别和记忆,采用了“点分十进制表示法”。采用了这种表示法的IPv4地址由4个点分十进制整数来表示,每个十进制整数对应一个字节。
例如,IPv4地址使用二进制的表示形式为00001010 00000001 00000001 00000010,采用点分十进制表示法表示为10.1.1.2。
IPv4地址由如下两部分组成:
1、网络号码字段(Net-id):
用来标识一个网络。
2、主机号码字段(Host-id):
用来区分一个网络内的不同主机。对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一个网络中。
7、IPv4地址的特点
IPv4地址的主要特点有:
1、IP地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出主机属于哪个网络。
2、当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号码Net-id是不同的,这种主机称为多地址主机(Multihomed Host)。
3、在IP地址中,所有分配到网络号码Net-id的网络都是平等的。
8、IPv4地址分类
图 五类IP地址
为了方便IP地址的管理及组网,IP地址分成五类,如上图所示。
目前大量使用的IP地址属于A、B、C三类IP地址中的一种。D类地址是组播地址,E类地址保留。
A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。RFC1166中详细描述了各类IP地址。
在使用IP地址时要注意,一些IP地址是保留作为特殊用途的,一般的用户不能使用。下表1列出各类IP地址的范围。
9、特殊IPv4地址
Net-id表示不全为0和不全为1的对应字段。
10、私有IPv4地址
为了解决IP地址短缺的问题,提出了私有地址的概念。
私有地址是指内部网络或主机地址,这些地址只能用于某个内部网络,不能用于公共网络。RFC1918描述了为私有网络预留的3个IP地址段。
11、IPv4报文格式
IPv4报文格式如上图所示。
一个IPv4数据报文由首部和数据两部分组成。首部的前一部分是固定长度,共20个字节,是所有IPv4数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
主要字段的解释如下表所示。
表 IPv4报文各字段的含义 |
||
字段 |
长度 |
含义 |
版本 |
4比特 |
IP协议的版本号,分为IPv4和IPv6协议。 |
首部长度 |
4比特 |
IPv4的首部长度。 |
区分服务 |
8比特 |
用来获得更好的服务。只有在使用区分服务时,这个字段才起作用。 |
总长度 |
16比特 |
指首部和数据之和的长度。 |
标识 |
16比特 |
IPv4软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。 |
标志 |
3比特 |
目前只有两位有意义。最低位为1表示后面“还有分片”的数据报,为0表示这已经是最后一个数据片;中间一位为1表示“不能分片”,为0才允许分片。 |
片位移 |
13比特 |
指出较长的分组在分片后,该片在原分组中的相对位置。 |
生存时间TTL(Time To Live) |
8比特 |
表示数据报在网络中的寿命,功能是“跳数限制”。 |
协议 |
8比特 |
指出此数据报携带的数据是使用何种协议。 |
首部检验和 |
16比特 |
数据报每经过一个设备,设备都要重新计算一下首部检验和,若首部未发生变化,则此结果必为0,于是就保留这个数据报。这个字段只检验数据报的首部,但不包括数据部分。 |
源地址 |
32比特 |
报文发送方的IPv4地址。 |
目的地址 |
32比特 |
报文接收方的IPv4地址。 |
选项字段 |
0~40字节(长度可变) |
用来支持排错、测量以及安全等措施。在必要的时候插入值为0的填充字节。 |
数据部分 |
可变 |
用来填充报文。 |
12、子网划分
通过将IP地址的网络部分进一步划分为若干个子网,解决了IP地址空间利用率低和两级IP地址不够灵活的问题。
当一个单位的主机很多时,为了便于管理,可将单位内部的主机号码再进一步划分为多个子网。通过子网划分,整个网络地址可以划分成更多的小网络。
子网的划分是网络内部的行为,从外部看,这个单位只有一个网络号码。只有当外部的报文进入到本单位范围后,本单位的路由设备才根据子网号码再进行选路,找到目的主机。
图 IP地址子网划分
如上图所示,为一个B类IP地址子网划分情况,其中子网掩码由一串连续的“1”和一串连续的“0”组成。“1”对应于网络号码和子网号码字段,而“0”对应于主机号码字段。
上图中,把一个B类地址的Host-id的高位5bits用来划分子网,Subnet-id的范围是从00000~11111,总共可以划分32(25)个子网。
子网对应的子网掩码也会相应的发生变化,比如Subnet-id为11111的子网掩码就是255.255.248.0。将IP地址与其相应掩码位执行与运算的结果就是网络地址。
多划分出一个子网号码字段是要付出代价的。
举例来说,本来一个B类IP地址可以容纳65534(216 − 2)个主机号码。但划分出5bits长的子网字段后,最多可有32个子网,每个子网有11bit的主机号码,即每个子网最多可有2046(211 - 2,去掉全1和全0的主机号码)个主机号码。
因此主机号码的总数是(32 x 2046 = 65472)个,比不划分子网时要少62个。
子网划分与IP地址规划时,通常需要综合考虑以下原则,实现合理高效的网络规划。
1、层次性:
实现网络的层次性划分,需要综合考虑地域和业务因素,采用自顶向下的方法划分,达到有效管理网络、简化路由表的目标。
一般情况下:
对于大骨干网络和大城域网络相结合的网络,采用层次性划分方式。
对于行政区类型的网络,采用多级网络分配方式。
2、连续性:
连续地址在层次结构的网络中易于进行路由聚合,大大缩减路由表数量,提高路由查找的效率。
尽量为每个区域分配连续的IP地址空间。
尽量为具有相同业务和功能的设备分配连续的IP地址。
3、扩展性:
分配地址时,在每一层次上都要留有余量。当网络规模扩展时能保证地址分配的连续性,实现网络的长远规划。
骨干网络应有足够的连续地址组成独立的自治域,并为今后的扩展留有余地。
4、高效性:
划分子网时,要保证充分利用地址资源,使子网的划分满足主机个数的要求。
利用可变长子网掩码VLSM(Variable Length Subnet Mask)技术分配IP地址,充分合理地利用地址资源。
与网络的路由机制设计相结合,合理使用已划分的地址空间,提高地址的利用率。
13、IP地址解析
为保证用户使用IP地址进行正常通信,需要满足如下两点:
IP地址只是主机在网络层中的地址,若要将网络层中传送的数据报交给目的主机,必须知道该主机的物理地址,因此必须将IP地址解析为物理地址。
用户平时不愿意使用难于记忆的IP地址,而更愿意使用易于记忆的主机名,因此也需要将主机名解析为IP地址。
在以太网上,主机的物理地址就是指MAC地址。将主机名解析为IP地址的操作是由DNS服务器来完成,而将IP地址解析为MAC地址的操作是由ARP来完成的。
发表评论