网络层是 OSI 参考模型中的第三层,它的主要功能包括以下几个方面:
网络层的功能使得数据能够在复杂的网络环境中进行传输和交换,实现了全球范围内的互联网通信。这些功能对于确保网络的可靠性、高效性和安全性起着至关重要的作用。
图中给出了IPv4协议的研究与发展的过程示意图。
(1)在讨论IPv4协议的研究与发展过程时,首先应该肯定IPv4协议对Internet的发展 产生很重要的作用。早期设计的IP分组结构、IPv4地址、网络层服务质量QoS都不能够满 足Internet大规模发展的要求。今后除了计算机之外,各种智能手机以及移动数字终端都 要在IP网络环境中工作,因此IP协议必然要进行改进。
(2) IPv4协议发展的过程可以从不变和变化两个部分去认识。IPv4 协议中对于分组结构与分组头结构的规定是不变的;变化的部分可以从IP地址处理方法、分组交付 的路由算法与路由选择协议,以及如何提高协议的可靠性、服务质量与安全性等三个方面来认识。
(3)凡事都有一个限度。当Internet规模发展到- - 定程度时,修改和完善IPv4已显得 无济于事时,最终人们不得不期待着研究一种新的网络层协议,去解决IPv4协议面临的所有困难,这个新的协议就是IPv6协议。
2011年国际IP地址管理部门宣布:在2011年2月3日的美国迈阿密会议上,最后5 块IPv4地址被分配给全球5大区域Internet注册机构之后,IPv4地址全部分配完毕。现实 让人们深刻地认识到:IPv4向IPv6的过渡已经迫在眉睫。
●IP协议是一种无连接、不可靠的分组传送服务的协议。
●IP协议提供的是一种“尽力而为(best-effort) 的服 务。
●IP协议是针对源主机一路由器、路由器一路由器、路由器一目的主机之间的数据传输的点一点的网络层通信协议。
●IP协议屏蔽了互联的网络在数据链路层、物理层协议 与实现技术上的差异。
IP 数据报由报头和数据两部分构成。报头包含了有关数据报的重要信息,如源 IP 地址、目标 IP 地址、协议类型等,而数据部分则是实际要传输的用户数据。
IP 报头的长度是可变的,但通常为 20 字节到 60 字节之间。具体的报头长度取决于报头中包含的选项字段。然而,在大多数情况下,IP 报头的长度为 20 字节,因为这是基本的 IP 报头大小,不包含任何可选字段。
需要注意的是,IP 报头的长度可以通过选项字段进行扩展,以支持各种功能和需求。选项字段可以提供诸如路由记录、时间戳、安全等附加信息。但这些选项字段并不是必需的,因此在一般的 IP 数据报中并不常见。
IP 报头的各个域都有其特定的作用,以下是一些常见域的简要介绍:
这些域共同提供了关键的信息,用于 IP 协议的路由选择、数据包的传输和处理。它们在网络通信中起着重要的作用,确保数据的正确传输和交付。具体的域和功能可能会根据 IP 协议的不同版本和实现有所差异。如果你需要更详细的信息,可以参考相关的 IP 协议规范文档。
IP 数据报分片的主要原因是由于以下几个因素:
分片与 IP 报头中的以下几个域密切相关:
通过利用这些域,IP 协议能够在需要时对数据报进行分片,并在接收端进行重组,以确保数据的可靠传输。分片机制使得 IP 协议能够适应不同大小的链路和网络条件,但分片也可能增加网络开销和延迟。在实际应用中,需要根据具体情况权衡分片的使用。
(1)第一个阶段:标准分类的IP地址
第一阶段是指IPv4采用的是标准分类的IP地址。按照标准分类的IP地址,A类地址 的网络号长度为7位,实际允许分配A类地址的网络只能有125个。B类地址的网络号长 度为14位,允许分配B类地址的网络只能有16384个。
(2)第二个阶段:划分子网的三级地址结构
第二阶段是在标准分类的IP地址的基础上,增加子网号的三级地址结构。标准分类的 IP地址在使用过程中,暴露出的第-一个问题是地址有效利用率低。针对标准分类地址利用 率低的问题,1991年研究人员提出子网subnet和掩码mask的概念。构成子网就是将一个 大的网络,划分成几个较小的子网络,将传统的“网络号-主机号”的两级IP地址结构,变为 “网络号-子网号-主机号”的三级结构。
(3)第三个阶段:构成超网的无类别域间路由CIDR技术
第三个阶段是1993年提出的无类别域间路由(classless inter domain routing , CIDR) 技术(RFC1519)。由于CIDR不是按标准的地址分类规则,而是将剩余的IP地址按可变大 小的地址块来分配,同时CIDR地址涉及IP寻址与路由选择,正是因为有这两种重要的特 征,CIDR被称为无类别域间路由技术。
(4)第四个阶段:网络地址转换NAT技术
第四个阶段是1996年提出的网络地址转换NAT技术(RFC2993、RFC3022)。IP地址 短缺已是非常严重的问题,而整个Internet迁移到IPv6的进程很缓慢。人们需要有一个在 短时期内快速缓解地址短缺的方法,支持IP地址重用。网络地址转换(networkaddresstranslation,NAT)技术就是在这样的背景下产生的。
IP地址的分配可以分为以下三种情况。
①为每一个网络接口分配一个IP地址
通常,一台计算机通过Ethernet网卡连接到网络中,网络管理员需要为这个网络接口. 分配一个IP地址。IP地址与MAC地址一一对应,并且在Internet中是唯一的。
②为多归属主机的每一个网络接口分配相应的IP地址
如果一台路由器或计算机要通过多个Ethernet网卡分别连接到多个网络中,那么这几块网卡就是连接这台主机到多个网络的网络接口,这类具有多个接口的主机又称为“多归属 主机"或“多穴主机”。网络管理人员就必须为每一个网络接口分配一个相应的IP地址。这 也就意味着:多归属主机可以有多个IP地址。
③可以为一个网络接口分配多个IP地址
如果有一个小的公司开发了一个网站。初期他们只在公司局域网中安装了一台服务 器。这台服务器同时提供Web、FTP、E-mail与公司的DNA服务。随着公司业务的扩展, 他们将会给每一种网络服务安装一台服务器。在这种情况下,网络管理员有两种办法:一 种办法是,只给现有的这台服务器分配一个IP地址,等以后增加服务器时再分配新的IP地 址;另一种办法是为服务器分配4个IP地址,每一个IP地址对应未来一台新的服务器,网. 络管理员在DNS上建立IP地址与服务器类型对应关系的条目。这种为-一个网络接口分配 多个IP地址的过程称为多网化或二级地址管理。例如,用Cisco路由器的IOS配置命令就 可以为一个Ethernet接口分配多个IP地址:
那么,对应于Ethernet接口E0,就有4个IP地址。其中,201.2.2.51是主IP地址,其余的三个是次地址。 通过以上的讨论可以总结出:
(1)连接到Internet的每一个主机(计算机或路由器)至少有一个IP地址。
(2)IP地址是分配给网络接口的。
(3)多归属主机可以有多个IP地址。
(4)一个网络接口也可以分配多个IP地址。
(5)网桥、Ethernet交换机属于数据链路层设备,使用MAC地址,不属于网络层设备, 不分配IP地址。
(1) A类地址
A类地址网络号的第--位为0,其余的7位可以分配。因此A类地址共分为大小相同 的128(2'= 128)块,每一块的net ID不同。
但是,第一块和最后一块地址留做特殊用途,net ID=10的10.0.0.0~10.255. 255. 255用于专用的地址,其余的125块可指派给一些机构。因此能够得到A类地址的机构只 有125个。每个A类网络可以分配的主机号host ID可以是2*-2=16 777214个。主机 号为全0和全1的两个地址保留。
A类地址覆盖范围为: 1.0.0. 0~ 127.255. 255. 255。
(2)B类地址
B类地址的前两位为10,其余14位可以分配,可分配的网络号为2l=16 384。B类地 址的主机号长度为16位,因此每个B类网络可以有216=65 536个主机号。主机号为全0 和全1的两个地址保留。实际上,一个B类IP地址允许分配的主机号为65 534个。 B类地址覆盖范围为: 128. 0.0.0~191, 255.255.255。
(3)C类地址
C类IP地址前三位为110,其余的21位可以分配,可分配的C类网络号为221= 2097 152。 主机号长度为8位,因此每个C类网络的主机号最多为2*=256个。主机号为 全0和全1的两个地址保留。实际上,一个C类IP地址块允许分配的主机号为254个。 C类地址覆盖范围为: 192. 0. 0. 0~223.255. 255. 255.
(4) D类IP地址
D类IP地址不标识网络,地址覆盖范围为: 224. 0.0. 0~239.255.255.255。D类IP地 址用于其他特殊的用途,如多播(multicasting)地址。
(5) E类IP地址
E类IP地址暂时保留,地址覆盖范围为:240.0.0.0~247.255.255.255。E类地址用 于某些实验和将来使用。
特殊的IP地址:
(1)直接广播(directed broadcasting)地址
在A类、B类与C类IP地址中,如果主机号是全1(如191. 1. 255. 255),那么这个地址 为直接广播地址,路由器将这个分组以广播方式发送给特定网络(191.1.0.0)的所有主机。
(2)受限广播(limited broadcasting)地址
32位网络号与主机号为全1的IP地址(255.255. 255.255)为受限广播地址。它是用 来将一个分组以广播方式发送给本网络中的所有主机。路由器接到目的地址为全1的分组 时,不向外转发该分组,而是在网络内部以广播方式发送给全部主机。
(3)“这个网络上的特定主机”地址
在A类、B类与C类IP地址中,如果网络号是全0(如0.0. 0. 25),该地址是这个网络上 的特定主机地址。路由器接到这样的分组时,不向外转发该分组,而是直接交付给本网络中 主机号为25的主机。
(4)回送地址(lookback addres)
A类IP地址中127.0.0.0是回送地址,它是一个保留地址。回送地址用于网络软件测 试和本地进程间通信。TCP/IP规定:网络号为127的分组不能出现在任何网络中;主机和 路由器不能为该地址广播任何寻址信息。 Ping应用程序可以发送一个将回送地址作为目的地址的分组,以测试IP软件能否接 收或发送一一个分组。一个客户进程可以用回送地址发送一个分组给本机的另一个进程,用来测试本地进程之间的通信状况。
专用IP地址
RFC1918提出了在A、B、C三类IP地址中各保留一部分地址作为专用IP地址。专用地址用于不接人Internet的内部网络。内部网络的主机向Internet发送分组时,需要将专 用地址转换成全局IP地址。表中给出了保留的专用地址。
(1)如果IP分组使用了10.1.0.1.172.16.1.12或192. 168.0.2地址,那么路由器就 认为这是一个内部网络使用的IP地址,不会向Internet转发该分组。
(2)如果一个组织出于安全等原因,希望组建一个专用的内部网络,不准备连接到 Internet,或者在转发分组到Internet时希望使用网络地址转换(NAT)技术,那么该组织就可以使用专用IP地址。
子网的划分
标准的A类、B类与C类IP地址是包括网络号netID与主机号hostID两级的层次结 构。划分子网技术的要点如下。
(1)三级层次的IP地址是: net ID-subnet ID-host ID,增加了一级子网号subnet ID。
(2)同一个子网中所有的主机必须使用相同的网络号与子网号(net ID-subnet ID)。
(3)子网的概念可以用于A类、B类或C类IP地址。
(4)子网之间的距离必须很近。分配子网是一个组织和单位内部的事,它既不用向 ICANN申请,也不需要改变任何外部路由器的数据库。
要求“子网之间的距离必须很近”主要是从Internet路由器工作效率角度考虑。使用子 网最好是在一个大的校园或公司内,因为外部主机只要知道网络地址,就可以通过校园或公 司的路由器,方便地访问校园或公司内部的多个子网。
可变长度子网掩码( variable length subnet masking, VLSM)技术
在某种情况下,需要在子网划分时考虑不同的子网号长度。RFC1009 文档对变长子网 的划分做出了说明。
例如某个公司申请一个C类202. 60.31.0的IP地址。该公司有100 名员工在销售部 门工作,50名员工在财务部门工作,50名员工在设计部门工作。要求为销售部门、财务部门 与设计部门分别组建子网。
针对这种情况,可以通过VLSM技术,将一个C类IP地址分为三个部分,其中子网1 的地址空间是子网2与子网3的地址空间的两倍。
(1)使用子网掩码为255.255. 255. 128,将一个C类IP地址划分为两半。在二进制计 算中,运算过程如下。
(2)运算结果表明:可以将202.60. 31.1~202.60.31.126作为子网1的IP地址,而将. 余下的部分进一-步划分为两半。由于202. 60.31.127第4个字节是全1,被保留作为广播 地址,不能使用;子网1与子网2.子网3的地址空间交界点在202.60. 31.128;可以使用子 网掩码为255.255. 255.192。子网2与子网3的地址空间的计算过程如下。
平分后的两个较小的地址空间分配给子网2与子网3。对于子网2来说,第一个可用 地址是202.60. 31.129 ,最后的一个可用地址是202. 60.31.190。子网2的可用地址范围是 202.60. 31. 129~202.60. 31.190。
(3)下一个地址202. 60.31.191中191是全1的地址,需要留做广播地址。接下来的 地址是202. 60.31.192,它是子网3的第一个地址。子网3的可用地址范围是202. 60.31. 193~202.60.31.254。所以,采用变长子网划分的三个子网的IP地址分别如下。
其中,子网1使用的子网掩码为255. 255.255.128(/25),允许使用的主机号为126个;子 网2与子网3的子网掩码为255. 255. 255.192(/26),它们可以使用的主机号均为61个。该 方案可以满足公司的要求。
图中给出了可变长度子网划分的结构。变长子网划分的关键是找到合适的可变长度子网掩码。
a.无类别域间路由的基本概念
(1) CIDR将剩余的IP地址按可变大小的地址块来分配。与传统的标准分类IP地址 与子网地址划分的方式相比,CIDR是以任意的二进制倍数的大小来分配地址。
(2)由于CIDR不采用传统的标准IP地址分类方法,无法从地址本身来判定网络号的 长度,因此CIDR地址采用“斜线记法",即<网络前缀>/<主机号>。例如,用CIDR方法给出 一个地址块中的一个IP地址是200. 16. 23.1/20,那么它表示在这个IP地址的前20位是网 络前缀,后12位是主机号,其地址结构为:
这个地址中前20位(用粗体与下划线表示)的是网络号,剩下的后12位是主机号。
(3)CIDR将网络前缀相同的连续的IP地址组成一个“CIDR地址块”。200.16.23.1/ 20的网络前缀为20位,那么该地址块有的主机号可以达到212(4096)个。
(4)一个CIDR地址块由块起始地址与前缀来表示。地址块的起始地址是指地址块中 地址数值最小(即主机号为全0)的一个。例如,200.16. 23.1/20地址块中起始地址的主机 号应该为全0,那么这个地址块的最小地址的结构为:
这个地址块中最大地址是主机号为全1的地址,其结构为:
200.16.23.0/20所在的地址块由初始地址与前缀表示,即为200.16.16.0/20。
(5) 与标准分类IP地址一样,主机号为全0的网络地址,以及主机号为全1的广播地 址不分配给主机,因此这个CIDR地址块中可以分配的IP地址为:
b.无类别域间路由的应用
如果一个校园网管理中心获得200. 24. 16. 0/20的地址块,它希望将它划分为8个等长 的较小的地址块,网管人员可以采取前面介绍的方法,继续借用CIDR地址中12位是主机 号的前三位,以实现进一步划分地址块的目的。图中给出了一个划分CIDR地址块的例子。
讨论:
(1)从以上例子可以看出,对于计算机系来说,它被分配200. 24. 16. 0/23的地址块,网 络地址为23位11001000 00011000 0001000,地址块的最小起始地址是200. 24. 26. 0,可分 配的地址数为2^9个。对于自动化系来说,它被分配200.24.18.0/23的地址块,网络地址为 23位11001000000110000001001,地址块的最小起始地址是200.24.18.0,可分配的地址 数为2^9个。同样,8个系都获得同等大小的地址空间。
(2)分析计算机系与自动化系的网络地址
两个系分配的网络地址的前20位是相同的,并且8个地址块网络地址的前20位都是 相同的。这个结论说明CIDR地址的一个重要特点:地址聚合(address aggregation)和路 由聚合(router aggregation)的能力。
图中给出了划分CIDR地址块后的校园网结构。在这个结构中,连接到Internet的 主路由器向外部网络发送一个通告,说明它接收所有目的地址的前20位与200.24.16.0/ 20相符的分组。外部网络不需要知道在200.24.16.0/20地址块校园网的内部还有8个系 级的网络存在。
CIDR技术通常用在将多个C类IP地址归并到单一的网络中,并且在路由表中使用一 项来表示这些C类IP地址。表中给出了CIDR及对应的掩码。网络前缀越短,其地址块 所包含的地址数则越多。
从表中可以看出,子网掩码有两种表示方式。以190.25.100.52的前26位为网络 地址为例,它可以写为: IP地址为190. 25.100. 52,子网掩码为255. 255.255.192。另一种 写法为: 190. 25. 100. 52/26。
a.网络地址转换的基本概念
(1)研究网络地址转换技术的背景
研究网络地址转换(NAT)技术出于两个目的:是由于IPv4过渡到IPv6的进程很缓 慢,因此需要有一种短时间内有效缓解IP地址短缺的办法,那就是网络地址转换(NAT)技 术(RFC2663、2993、3022、3027、3235);二是出于网络安全的目的。例如,在某些企业内部、 政府部门专网等对Internet访问需要严格控制的内部网络系统中,NAT与代理服务器、防 火墙技术结合起来使用,采用一个内部专用IP地址与一个全局IP地址对一对应的静态 映射方式,达到隐藏内部网络地址的目的。
从缓解IP地址短缺的角度,NAT技术主要用于4类应用领域:ISP、ADSL、有线电视 与无线移动接入的动态IP地址分配。在使用专用IP地址设计的内部网络中,如果内部网 络的主机要访问Internet或外部网络服务器时,需要使用NAT技术。图中给出了ISP
使用NAT技术的结构示意图。
(2)动态NAT与静态NAT
为ADSL用户提供拨号服务的ISP使用NAT技术可以实现IP地址的重用,节约 IP地址。例如,ISP有1000个全局IP地址,但是它有5000个使用专网内部专用IP地址的 用户。ISP 在具有NAT功能的路由器中保持一个IP地址池,管理着多个全局IP地址。凡是需要访问外部Internet服务器的用户首先要向NAT路由器申请,由NAT以动态方式从 IP地址池中临时分配一个全局IP地址给用户;用户访问结束后,NAT路由器收回IP地 址,供其他用户使用。这种方式属于多对多的动态映射方式。
(3) NAT与NAPT
为了正确地实现NAT功能,NAT设备必须维护两个地址空间:内部专用IP地址与外 部全局IP地址在变换过程中的对应关系。实际应用中存在着两种可能:一是只完成专用 IP地址与全局IP地址变换,这种方法称为网络地址变换;另一种方法是在专用IP地址与 全局IP地址变换的同时,变换传输层的TCP或UDP的端口号,这种方法称为网络地址端 口变换(NAPT)。在很多文档中,这两种方法统称为NAT.
b.网络地址转换的工作原理
图中给出了NAT的基本工作原理示意图。图中NAT的工作过程可以分为以下 4步。
(1)如果内部IP地址为10.0.1.1的主机希望访问Internet.上地址为202.0.1.1的 Web服务器,它产生一个源地址S=10.0.1.1,端口号为3342;目的地址D=135.2.1.1,端口号为80的分组①。分组①在图中表示为“S=10.0. 1.1,3342 D= 135.2.1.1,80”。
(2)当分组①到达执行NAT功能的路由器时,它将分组①的源地址从内部专用IP地址 转换成全局IP地址。例如,转换结果构成的分组②为“S= 202.0.1.1,5001 D=135.2. 1.1, 80”。分组1的专用地址从10.0.1.1转换成202.0.1.1,同时传输层客户进程的端口号也需 要转换,本例中是从3342转换为5001。NAT使用全局IP地址202.0.1.1发送IP分组。
(3)目的主机地址为135.2.1.1、传输层端口号为80的Web服务器接收到分组②;返 回的分组③“S= 135.2.1.1,80 D=202.0.1.1,5001”,传送到NAT.
(4) NAT接收到分组③之后,根据转换表产生分组④“S=135.2.1.1,80 D=10.0.1.1, 3342"。内部网络专用IP地址为10.0. 1.1的主机接收分组④。
NAT在转换IP地址的同时转换传输层端口号的主要原因是:为了避免使用一个全局 IP地址复用多个TCP连接时难以识别,同时又能够将多个内部IP地址隐藏在一个全局 IP地址的后面。
c.对网络地址转换方法的评价
尽管NAT对于IP地址短缺问题是-种很实用的方法,但是业界对NAT技术有很多 的批评。这些意见主要可以归纳成以下三点。
(1) NAT违反了IP设计的初衷,使IP从无连接变成面向连接;在网络层IP地址转换 的同时转换传输层端口号,违反了网络体系结构设计中确定的不同层次之间相互独立的 原则。
(2)有些应用将IP地址插人在正文的内容中,例如标准的FTP与IPPhone的H.323协 议。如果NAT与这类协议一起工作,NAT协议需要根据不同协议做不同的调整。
(3)由于P2P的文件共享与语音共享是建立在IP的基础上的,NAT的存在,使得 P2P实现出现了困难。
RFC2993对NAT存在的问题进行了讨论。NAT的反对者认为这种临时性的缓解 IP地址短缺的方案只是推迟了IPv6迁移的进程,而并没有解决深层次的问题。