网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。
要实现网络层主要任务,需要解决以下主要问题:
因特网(Internet)是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈。
由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层。
综上所述,我们通过学习TCP/IP协议栈的网际层来学习网络层的理论知识和实践技术。
采用这种思想的好处:网络的造价大大降低、运行方式灵活、能够适应多种应用
由于TCP/IP体系结构的因特网的网际层提供的是简单灵活、无连接的、尽最大努力交付的数据服务,因此本博客主要围绕网际层如何传送IP数据报这个主题进行讨论。
32比特的IPv4地址不方便阅读、记录以及输入等,因此IPV4地址采用点分十进制表示方法以方便用户使用
8位网络号第一个固定为0
可指派的网络数量为-2=126 (减2的原因是除去最小网络号0和最大网络号127)
每个网络中可分配的IP地址数量为-2=16777214(减2的原因是除去主机号全0的网络地址和全1的广播地址)
16位网络号前两位固定为10
可指派的网络数量为=16384
每个网络中可分配的IP地址数量为-2=65534(减2的原因是除去主机号为全0的网络地址和全1的广播地址)
24位网络号前三位固定为110
可指派的网络数量为=2097152
每个网络中可分配的IP地址数量为-2=254(减2的原因是除去主机号为全0的网络地址和全1的广播地址)
首先我们先来说明以下为什么要将IPv4地址划分子网。
如图:某单位有一个大型的局域网需要连接到因特网。申请了一个B类的网络地址,因此分配IP地址的数量达到了65534个,给每台计算机和路由器的接口分配一个IP地址后,还有大量IP地址剩余,这些剩余的IP地址只能由该单位的同一个网络使用,而其他单位的网络不能使用。
随着发展需要将原来三个网络划分成三个独立的网络,需要将原来的网络划分成三个独立的网络假设子网1仍然使用原先申请到的B类网络地址,那么就需要为子网2和子网3个字申请一个网络地址。
为新增网络申请新的网络号会带来以下弊端:
为避免这种情况出现,可以从主机号部分借用一部分作为子网号,如图
【举例】已知某个网络的地址是 218.75.230.0,使用子网掩码255.255.255.128对其进行子网划分,请给出划分细节。
【解析】
由网络号可知是C类网络地址
子网掩码
所以划分出的子网数量=2
每个子网可分配的地址数量-2=126(减2是要去掉主机号为“全0”的网络地址和“全1”的广播地址)
【习题】已知某个网络的地址为218.75.230.0,使用子网掩码255.255.255.192对其进行子网划分,请给出划分细节。
【2019年 题39】某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0,如该主机向其所在子网发送广播分组,则目的地址可以是
默认的子网掩码是指在未划分子网的情况下使用的子网掩码。
划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
为此,因特网工程任务组IETF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPv6工作组负责研究新版本IP以彻底解决IP地址耗尽问题。
1993年,IETF发布了无分类域间路由选择CIDR的RFC文档
CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念;
CIDR可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前允许因特网的规模继续增长。
【举例】
【例1】请给出CIDR地址块128.14.35.7/20的全部细节(最小地址,最大地址,地址数量,聚合C类网数量,地址掩码)。
【解析】
【练习】请给出CIDR地址块206.0.64.8/18的全部细节(最小地址,最大地址,地址数量,聚合
C类网数量,地址掩码)。
【解析】
举例说明一下定长的子网掩码FLSM
我们先分析一下应用需求
应用需求:将C类网络218.75.230.0划分成5个子网,每个子网上可分配的IP地址不少于各自的需求
由于划分成5个子网,因此可以从主机号借用3个比特作为子网号
子网数量:=8
每个子网上的地址数量:=32
我们看一下划分子网的细节
通过本例可以看出,采用定长的子网掩码进行子网划分,只能划分出个子网,其中n是从主机号部分借用的用来作为子网号的比特数量。每个子网所分配的IP数量相同,例如图中的网络5只需要4个IP地址 ,但是我们给它分配了32个IP地址,这样就造成了IP地址的严重浪费。
示例:同样用上面的例子这次采用变长的子网掩码VLSM,首先我们分析每个子网的主机号位数、网络前缀位数、地址块、地址数量,如下:
得出应用需求:从地址块218.75.230.0/24中取出5个地址块(1个“/27”地址块,3个“/28”地址块,1个“/30”地址块),按需分配给下图所示5个网络
在该地址块中给下图所示的网络N1~N5分配子块,分配原则是“每个子块的起点位置不能随意选取,只能选取块大小整数倍的地址作为起点”。建议先给大的子块分配
每个子网块中最小地址位网络地址,最大地址位广播地址
用条件转移指令实现循环,需要4个部分构成:
loop Looptop等价于:
dec ecx
cmp ecx,0
jne Looptop
理论上,能用loop指令实现的功能一定能用条件转移指令实现,使用loop指令可能会使代码更加清晰简洁
补充:loopx指令--如loopnz,loopz
loopnz--当ecx!=0&&ZF==0时,继续循环
loopz--当ecx!=0&&ZF==1时,继续循环