网络层概述
网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。
要实现网络层任务,需要解决以下主要问题:
-
网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)
-
网络层寻址问题
-
路由选择问题
因特网(Internet)是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈。
由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层。
综上所述,我们通过学习TCP/IP协议栈的网际层来学习网络层的理论知识和实践技术。
IPv4地址概述
在TCP/IP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚。
IPv4地址就是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符。
IP地址由因特网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Numbers)进行分配。
-
我国用户可向亚太网络信息中心APNIC(Asia Pacific Network Information Center)申请IP地址,需要缴费。
-
2011年2月3日,互联网号码分配管理局IANA(由ICANN行使职能)宣布,IPv4地址已经分配完毕。
-
我国在2014至2015年也逐步停止了向新用户和应用分配IPv4地址。同时全面开展商用部署
IPv4地址的编址方法经历了如下三个历史阶段:
-
1981年 分类编址
-
1985年 划分子网
-
1993年 无分类编址
32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用。
例题:请将以下这些32比特的IPv4地址转换为点分十进制形式。
(1) 00001010 11111110 00001111 11110000
(2)10101100 00010000 10111111 11110111
(3)11000000 10101000 10100101 00000111
答案:
(1)10.254.15.240 (2)172.16.191.247 (3)192.168.165.7
二进制与十进制的转换自己学,较简单
分类编址的IPv4地址
注意事项:
只有A类、B类和C类地址可分配给网络中的主机或路由器的各接口
主机号为“全0”的地址是网络地址,不能分配给主机或路由器的各接口
主机号为“全1”的地址是广播地址,不能分配给主机或路由器的各接口
A类地址
可指派的网络数量为2^(8-1) - 2 = 126(减2的原因是除去最小网络号0和最大网络号127)
每个网络中可分配的IP地址数量为2^24 -2= 16777214(减2的原因是除去主机号为全0的网络地址和全1的广播地址)
B类地址
可指派的网络数量为2^(16-2) =16384
每个网络中可分配的IP地址数量为2^16 - 2 = 65534(减2的原因是除去主机号为全0的网络地址和全1的广播地址)
注意:有些教材中指出128.0是保留网络号,B类第一个可指派的网络号为128.1。但根据2002年9月发表的RFC3330文档,128.0网络号已经可以分配了。
C类地址
可指派的网络数量为2^(24-3) = 2097152
每个网络中可分配的IP地址数量为2^8 - 2= 254 (减2的原因是除去主机号为全0的网络地址和全1的广播地址)
注意:有些教材中指出192.0.0是保留网络号,C类第一个可指派的网络号为192.0.1。但根据2002年9月发表的RFC 3330文档,192.0.0网络号已经可以分配了。只不过目前还没有分配出去。
例题:
解析:
1.根据地址左起第一个十进制数的值,可以判断出网络类别(小于127的为A类,128191的为B类,192223的为C类);
2.根据网络类别,就可找出地址中的网络号部分和主机号部分(A类地址网络号为左起第一个字节,B类地址网络号为左起前两个字节,C类地址网络号为左起前三个字节);
3.以下三种情况的地址不能指派给主机或路由器接口:
-
A类网络号0和127
-
主机号为“全0”,这是网络地址
-
主机号为“全1”,这是广播地址
例题:下列IP地址中,只能作为IP分组的源IP地址但不能作为目的IP地址的是
A.0.0.0.0 B.127.0.0.1 C.20.10.10.3 D.255.255.255.25
解析:
地址0.0.0.0是一个特殊的IPv4地址,只能作为源地址使用,表示“在本网络上的本主机”。封装有DHCPDiscovery报文的IP分组的源地址使用0.0.0.0;
以127开头且后面三个字节非“全O”或“全1”的IP地址是一类特殊的IPv4地址,既可以作为源地址使用,也可以作为目的地址使用,用于本地软件环回测试,例如常用的环回测试地址127.0.0.1;
地址255.255.255.255是一个特殊的IPv4地址,只能作为目的地址使用,表示“只在本网络上进行广播(各路由器均不转发)”。
例题:请根据本节课所学内容给出下图各网络的IPv4地址分配方案。请按照节约IP地址的原则进行分配。
解析:
路由器接口也需要一个ip地址
划分子网的的IPv4地址
将原有的网络地址划分成若干个更细的子网,避免重复申请新的网络地址,从而节约网络地址。
如某单位申请了一个b类地址145.16.0.0,将其分为3个子网,主机号为145.16向后借去子网号,如145.16.0,145.16.2,145.16.3
10010001.00010000.00000000.00000000 (145.16.0.0)
10010001.00010000.00000001.00000000 (145.16.1.0)
10010001.00010000.00000010.00000000 (145.16.2.0)
10010001.00010000.00000011.00000000 (145.16.3.0)
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
-
子网掩码使用连续的比特1来对应网络号和子网号
-
子网掩码使用连续的比特0来对应主机号
-
将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址
例题:已知某个网络的地址为218.75.230.0,使用子网掩码255.255.255.128对其进行子网划分,请给出划分细节。
对正常c类网进行分析
但是我们要分子网将主机号写成8个比特的二进制数
相当于分成2个子网。
例题:已知某个网络的地址为218.75.230.0,使用子网掩码255.255.255.192对其进行子网划分,请给出划分细节。
解析:
1.根据所给网络地址可知其为C类网络地址,网络号占3个字节,主机号占1个字节;
2.根据所给子网掩码可知从1字节主机号中借用2位作为子网号;
例题:某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0,如该主机向其所在子网发送广播分组,则目的地址可以是
A.180.80.76.0 B.180.80.76.255 C.180.80.77.255 D.180.80.79.255
解析:
默认的子网掩码是指在未划分子网的情况下使用的子网掩码。
无分类编址的IPv4地址
划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
为此,因特网工程任务组IETF又提出了采用无分类编址的方法来解决IP地址紧张的问题同时还专门成立IPv6工作组负责研究新版本IP以彻底解决IP地址耗尽问题。
1993年,IETF发布了无分类域间路由选择CIDR(Classless Inter-Domain Routing)的RFC文档:RFC 1517~1519和1520。
-
CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念;
-
CIDR可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前允许因特网的规模继续增长。
CIDR使用“斜线记法”,或称CIDR记法。即在IPv4地址后面加上斜线“/”,在斜线后面写上网络前缀所占的比特数量。
举例:128.14.35.7 / 20
网络前缀占用的比特数量:20 主机编号占用的比特数量: 32-20=12
CIDR实际上是将网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。
我们只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的全部细节:
-
地址块的最小地址
-
地址块的最大地址
-
地址块中的地址数量
-
地址块聚合某类网络(A类、B类或C类)的数量
-
地址掩码(也可继续称为子网掩码)
例题:请给出CIDR地址块128.14.35.7/20的全部细节(最小地址,最大地址,地址数量,聚合C类网数量,地址掩码)。
解析:
例题:请给出CIDR地址块206.0.64.8/18的全部细节(最小地址,最大地址,地址数量,聚合C类网数量,地址掩码)。
解析:
路由聚合(构造超网)
举例:
网络前缀越长,地址块越小,路由越具体;
若路由器查表转发分组时发现有多条路由可选,则选择网络前缀最长的那条,这称为最长前缀匹配,因为这样的路由更具体。
例题:在子网192.168.4.0 / 30中,能接收目的地址为192.168.4.3的IP分组的最大主机数是
A.0 B.1 C.2 D.4
解析:
选C
例题:某路由表中有转发接口相同的4条路由表项,其目的网络地址分别为35.230.32.0/21、35.230.40.0/21、35.230.48.0/21和35.230.56.0/21,将该4条路由聚合后的目的网络地址为
A.35.230.0.0/19 B.35.230.0.0/20 C.35.230.32.0/19 D.35.230.32.0/20
解析:
故选C
IPv4地址的应用规划
1.定长的子网掩码FLSM
-
使用同一个子网掩码来划分子网
-
每个子网所分配的IP地址数量相同,造成IP地址的浪费
2.变长的子网掩码VLSM
-
使用不同的子网掩码来划分子网
-
每个子网所分配的IP地址数量可以不同,尽可能减少对IP地址的浪费
FLSM举例
假设申请到的C类网络为218.75.230.0,请使用定长的子网掩码给下图所示的小型互联网中的各设备分配IP地址。
应用需求:将C类网络218.75.230.0划分成5个子网,每个子网上可分配的IP地址数量不得少于各自的需求。
任选5个
VLSM举例
假设申请到的C类网络为218.75.230.0/24,请使用定长的子网掩码给下图所示的小型互联网中的各设备分配IP地址。
应用需求:从地址块218.75.230.0/24中取出5个地址块
(1个“/27”地址块,3个“/28”地址块,1个“/30”(1个“/27”地址块,3个“/28”地址块,1个“/30”地址块),按需分配给上图所示的5个网络。
在该地址块中给左图所示的网络N1~N5分配子块,分配原则是“每个子块的起点位置不能随意选取,只能选取块大小整数倍的地址作为起点”。建议先给大的子块分配。