【计算机网络】| 【04】网络层

一、网络层概述

主要是实现网络互连,进而实现数据包在网络之间的传输;
主要解决以下问题:
- 为运输层提供服务(可靠或不可靠);
- 网络寻址问题(网络编号与路由器接口)
-  路由选择问题; 

二、两种服务

1、面向连接的虚电路服务
- 可靠通信由网络来保证;
- 必须建立网络层连接(虚电路VC);
- 通信双方沿着已建立的虚电路发送分组;
- 目的驻地的地址仅在连接建立阶段使用,之后每个分组首部-只需要携带一条虚电路的编号即可;
- 若该通信方式使用可靠传输,故可使发送的分组最终正确到达接收方;
- 通信结束后,需要释放之前所建立的虚电路;

2、无连接的数据报服务
- 可靠通信应当由用户主机来保证;
- 不需要建立网络层连接;
- 每个分组可走不同的路径;
- 每个分组的首部必须携带目的主机的完整地址;
- 这种通信方式所传送的分组可能误码、丢失、重复和失序;
- 由于网络本身不提供端到端的可靠传输服务,这使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较);
- 因特网采用该设计,将复杂的网络处理功能置于因特网的边缘(用户主机和民内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心;

二、IPv4

1、概述

- IPv4地址是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符;
1.1 表示方法
采用点分十进制表示法;

在这里插入图片描述

2、历史演变

2.1 分类编址

A类地址
在这里插入图片描述

- 网络号最高位为0;
- 最小网络号为0,被保留,不能被指派;
- 最低可被指派的网络号为(00000001),主机号为0即1.0.0.0;
- 最后一个可被指派的网络号为126; 
- 最大网络号(01111111),作为本地环回测试地址,不指派;
- 最小的本地环回测试地址127.0.0.1;
- 最大本地环回测试地址127.255.255.254;
- 可被指派的网络数量为:126(128-最大、小网络号)
- 每个网络中可分配的IP地址数量:16777214(减去主机号全为0和全为1的地址)

B类地址
在这里插入图片描述

- 网络号最高两位固定为10;
- 最小网络号第一个可指派128.0,网络地址128.0.0.0;
- 最大网络号最后一个可指派191.255,网络地址191.255.0.0;
- 可指派的网络数量:16384;
-  每个网络中可分配的IP地址数量:65535(减去主机号全为0和全为1的地址)

C类地址
在这里插入图片描述

- 网络号最高三位固定为110;
- 最小网络号第一个可指派192.0.0,网络地址192.0.0.0;
- 最大网络号最后一个可指派223.255.255,网络地址223.255.255.0;
- 可指派的网络数量:2097152;
-  每个网络中可分配的IP地址数量:254(减去主机号全为0和全为1的地址)

如何区分A、B、C类地址

- 根据网络号:A类(<127)、B类(128~191)、C类(192~223);
- 不能指派给主机或路由器接口:
	- A类网络号0和127;
	- 主机号全为0,为网络地址;
	- 主机号全为1,为广播地址;

【注意】:
- 只有A类、B类和C类地址可分配给网络中的主机或路由器的各接口;
- 主机号为“全0”的地址是网络地址,不能分配给主机或路由器的各接口;
- 主机号为“全1”的地址是广播地址,不能分配给主机或路由器的各接口;

2.2 划分子网的IPv4地址
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号:
- 子网掩码使用`连续的比特1`来对应`网络号`和`子网号`;
- 子网掩码使用`连续的比特0`来对应主机号;
- IPv4所在子网的网络地址 = 划分子网的IPv4 & 相应的子网掩码
如:子网掩码为:255.255.255.1===>为c类故前3个字节为网络号,后一个字节10000000其中1为子网号,后面0为主机号
 故划出子网数量:2^1;
 每个子网分配的地址数量:2^(8-1)-2=126
2.3 无分类变值的IPv4地址
为了解决IPv4地址紧张耗尽的问题;
- CIDR(无分类域间路由选择)消除了传统的A类、B类和C类地址,以及划分子网的概念;
- CIDR可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前允许因特网的规模继续增长;

【斜线记法】:斜线后写上网络前缀所占的比特数量;
- CIDR是将网络前缀都相同的连续的IP地址组成一个CIDR地址块;
- 只要知道其地址块中任何一共地址即可知道:
	- 地址块的最小、大地址;
	- 地址块中的地址数量;
	- 地址块聚合某类网络的数量;
	- 地址掩码;

【如】:CIDR为128.14.35.7/20	==> 128.14.00100011.00000111  
- 可知网络前缀占用的比特数量为20(/后的数目)
- 主机编号占用的比特数量为32-20(32为总的比特位数)即主机号为(001100000111);
- 将主机号全部取0即可取到最小地址:128.14.32.0;
- 将主机号全部取1即可取到最大地址:128.14.47.255;
- 地址数量:2^(32-20);
- 地址掩码:20个连续比特1和12个连续比特0 ==> 255.255.240.0;

路由聚合(构造超网)

路由之间将路由信息传递给对方,将内部路由信息聚合成一条;找到共同前缀,记录共同前缀的比特数;
将除共同前缀后的比特全部取0,在写成点分十进制/共同前缀的比特数;
- 网络前缀越长,地址块越小,路由越具体;
- 若路由器查表转发分组时发现有多条路由可选,则选择网络前缀最长的那条;

如:172.1.4.0,172.1.4.128;公共前缀由172.1.4共24位 ==> 172.1.4.0/24
2.4 应用规划
给定一个IPv4地址块,将其划分成更小地址块,分配给互联网中的网络;

定长子网掩码FLSM

- 使用同一个子网掩码来划分子网;
- 每个子网所分配的IP地址数量相同,造成IP地址的浪费;

如下所示,每个子网都分配32个,但实际需要的却不要这么多,故造成不必要的浪费;

在这里插入图片描述

变长子网掩码VLSM

- 使用不同的子网掩码来划分子网;
- 每个子网所分配的IP地址数量可以不同,尽可能减少对IP地址的浪费;

在这里插入图片描述

三、IP数据报的发送和转发

- 主机发送IP数据报;
- 路由器转发IP数据报;
 
 - 相同网络中主机之间可直接通信,不同网络则通过路由器间接通信;
【源主机如何判断目的主机是否与自己在同一个网络中】
如主机A要给B发送IP数据报,A将自己的IP和子网掩码相与,即可得到自己所在的网络地址;在将B的地址与C的子网掩码相与查看是否在同一个网络地址;

【主机A如何知道要通过哪个路由器进行转发】
为了主机能在网络中通信,必须指定本网络中的一个路由器,由该路由器帮忙转发,所指定的路由器为被称为默认网关;
故在网络中的主机要与其他网络主机通信时,会将IP数据报传给默认网关,由默认网关帮主机将IP数据报转发出去;

【路由器在接收到IP数据报如何转发呢】
首先路由器会检查IP数据报的首部是否出错,若出错,则丢弃并通告源主机,若无错,则进行转发;
	- 路由器将目的地址与路由条目中的地址掩码相与得到目的网络地址,查看该目的网络是否匹配;
进而根据IP数据报的目的地址在路由表中查找匹配的条目,若找到,则转发到条目中指示的下一跳,若没有,则丢弃该IP数据报并通告源主机;


【主机在网络中的各设备发送一共广播IP数据报】
- 在IP数据报首部中的目的地址填写本网络广播地址,该网络内都能收到该数据报,但路由器收到后并不会转发该数据报;
- 路由器隔离广播域;

在这里插入图片描述

四、静态路由配置

静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表;
- 这种人工配置方式简单、开销小,但不能及时适应网络状态的变化;
- 一般只在小规模网络中采用;

【使用静态路由配置可能出现以下导致产生路由环路的错误】
- 配置错误;
- 聚合了不存在的网络;
- 网络故障;

【特殊的静态路由条目】
- 默认路由(目的网络0.0.0.0,地址掩码0.0.0.0);
- 特定主机路由(目的网络为特定主机的IP,地址掩码为255.255.255.255);
- 黑洞路由(下一跳为null0);

静态路由配置错误导致路由环路
在这里插入图片描述

五、路由选择协议

【因特网所采用的路由选择协议主要特点】:
- 自适应:动态路由选择,能较号地适应网络状态的变化;
- 路由器之间交换路由信息;
- 将整个因特网划分为许多较小的自治系统AS;

分层次的路由选择协议

自治系统内部使用的内部网关协议与外部的无关;

在这里插入图片描述

路由协议

【内部网关协议IGP】
	- 路由信息协议RIP:基于距离向量;
		- 因特网上最早使用,被EIGRP取代;
	- 内部网关路由协议IGRP:基于距离向量;
	- 增强型内部网关路由协议EIGRP:思科私有,取代IGRP,结合距离向量和链路状态;
	- 开放式最短路径优先OSPF:基于链路状态;
	- 中间系统到中间系统IS-IS:基于链路状态,最长常用的IGP协议;

【外部网关协议EGP】
	- 边界网关协议BGP;

路由器的基本结构

- 路由表一般仅包含从目的网络到下一跳的映射;
- 路由表需要对网络拓扑变化的计算最优化;
- 转发表是从路由表得出的;
- 转发表的结构应当使查找过程最优化;

在这里插入图片描述

5.1 路由选择信息协议RIP工作原理
RIP要求自治系统AS内的每一个路由器都要维护从他自己到AS内每一个网络的距离记录(距离向量D-V);
RIP使用跳数来衡量到达目的网络的距离;
	- 路由器到直连网络的距离定义为1;
	- 路由器到非直连网络的距离定义为所经过的路由数加1;
	- 允许一条路径最多只能包含15个路由器,只适用于小型互联网;

【工作原理】:
- RIP会选择通过路由器数量最少的路由;
- 当到达同一目的网络有多条距离相等的路由时,可以进行等价负载均衡;
- RIP三要点:
	- 和谁交换信息 - 仅和相邻路由器交换;
	- 交换什么信息 - 自己的路由表;
	- 何时交换信息 - 周期性交换;

【基本工作过程】:
- 路由器刚开始工作时,只知道自己到直连网络的距离为1;
- 每个路由器仅和相邻路由器周期性地交换并更新路由信息;
- 若干次交换和更新后,每个路由器都知道到达本AS内各网络的最短距离和下一跳地址,称为收敛;

【RIP路由更新规则】:
当有一个路由器C,将其路由表中要到达的目的网络的下一跳都记为问号, 若假设C的RIP更新报文发送周期到了,则C将自己路由表中的相关路由信息,封装到
RIP更新报文中发送给路由器D,D对C的路由表进行改造,将其要到达各目的网络的下一跳都该为C,且距离都加一;

在这里插入图片描述
在这里插入图片描述

5.2 开放最短路径优先OSPF工作原理
OSPF是为了解决RIP而开发出来的;
- 是基于链路状态的;
- 采用最短路径算法(SPF),保证不会产生路由环路;
- 链路状态时指本路由器都和哪里路由器相邻以及相应链路的代价(费用、距离、时延、带宽由管理员来设定);
- OSPF相邻路由器通过交互问候分组,建立和维护邻居关系(记录各邻居路由器的相关信息);
- 使用OSPF的每个路由器都会产生链路状态通告LSA;
	- 直连网络的链路状态信息;
	- 邻居路由器的链路状态信息;
- LSA被封装在链路状态更新分组LSU中,采用洪泛法发送;
- 使用OSPF的每个路由都有一个链路状态数据库LSDB,用于存储LSA;
- 通过个路由器洪泛发送封装自己LSA的LSU分组,各路由器的LSDB最终都将达到一致; 
- 使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各自到达其他各路由器的最短路径;
- OSPF在多点接入网络中路由器邻居关系的建立,邻居关系数量为(n(n-1)/2);
	- 为了减少发送分组的数量,选举指定路由器DR和备用指定路由器BDR;
	- 所有的非DR/BDR只与DR/BDR建立邻居关系,数量降低为2(n-2)+1;
	- 非DR/BDR之间通过DR/BDR交换信息;

【分组类型】:
- 问候分组:用来发现和维护邻居路由器的可达性;
- 数据库描述分组:向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息;
- 链路状态请求分组:向邻居路由器请求发送某些链路状态项目的详细信息;
- 链路状态更新分组:路由器使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态;
- 链路状态确认分组:对链路状态更新分组的确认分组;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

工作过程

在这里插入图片描述
区域

- 为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围(区域),一般不超过200各;
	- 每个区域都由一个32比特的区域标识符,可用点分十进制表示;
	- 为了减少交换信息量;

在这里插入图片描述

5.3 边界网关协议BGP的工作原理
- 在不同自治系统内,度量路由的“代价”(距离,带宽,费用等)可能不同;因此,对于自治系统之间的路由选择,使用“代价”作为度量来寻找最佳路由是不行的。
- 自治系统之间的路由选择必须考虑相关策略(政治,经济,安全等);
- BGP只能是力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由;

【4种报文】:
- OPEN报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化;
- UPDATE报文:用来通告某一路由的信息,以及列出要撤销的多条路由;
- KEEPALIVE报文:用来周期性地证实邻站的连通性;
- NOTIFICATION报文:用来发送检测到的差错;

六、IPv4数据报的首部格式

在这里插入图片描述

【版本】:占4比特,表示IP协议的版本;通信双方使用的IP协议版本必须一致(广泛使用本版本为4即IPv4);
【首部长度】:表示IP数据报首部的长度,字段取值以4字节为单位;
	最小十进制取值为5,表示IP数据报首部只有20字节固定部分;
	最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分;
【可选字段】:长度从1到40字节不等,用来支持排错、测量及安全等;  
	用来增加IP数据报的功能,但也增加了路由器处理IP数据报的开销,实际很少被使用;
【填充字段】:确保首部长度为4字节的整数倍,使用全0进行填充;
【区分服务】:占用8比特,用来获得更好的服务,该字段一般不使用;
【总长度】:占用16比特,表示IP数据报的总长度(首部+数据载荷)最大为65535;
【标识】:占16比特,属于同一个数据报的各分片数据报应该具有相同的标识,IP软件维持一个计数器,没产生一个数据报,计数器值加1,并将此值赋给标识字段;
【标志】:占3比特;
	DF位:1表示不允许分片,0标识允许;
	MF位:1表示后面还有分片,0表示最后一个分片;
	保留位:必须为0;
【片偏移】:占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位(以8字节为单位);
【生存时间】:占用8比特,以秒为单位,最大生存周期为255秒;路由器转发IP数据报时,将IP数据报首部中的该字段的值减去IP数据报在本路由器上所消耗的时间,若不为0就转发,否则就丢弃;
	确保IP数据报不会再路由环路中兜圈;
【协议】:占8比特,指明IPv4数据报的数据部分时何种协议数据单元;
	ICMP:字段值为1;
	IGMP:2;
	TCP:6;
	UDP:17;
	IPv6:41;
	OSPF:89;
【首部检验和】:占用16比特,用来检测首部再传输过程中是否出现差错;
【源IP地址】:占用32比特,发送端IP地址;
【目的IP地址】:占用32比特,接收端IP地址;

七、网际控制报文协议ICMP

ICMP:是提高转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议;
- 主机或路由器使用ICMP来发送差错报告报文和询问报文;
- ICMP报文被封装在IP数据报中发送;

【类别】:
- 终点不可达;
- 源点抑制;
- 时间超过;
- 参数问题;
- 改变路由(重定向);

【以下情况不应发送ICMP差错报文】:
- 对ICMP差错报告报文不再发送ICMP差错报告报文;
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文;
- 对具有多播地址的数据报都不发送ICMP差错报告报文;
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文;

【常用ICMP询问报文】:
- 【回送请求和回答】:
	- ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出询问;
	- 收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文;
	- 这种询问报文用来测试目的站是否可达及了解其有关状态;
- 【时间戳请求和回答】:
	- ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间;
	- 在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻共有多少秒;
	- 该询问报文用来进行时钟同步和测量时间;


终点不可达

当路由器或主机不能交付数据报时,就向源点发送终点不可达报文;
- 具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种错误;

在这里插入图片描述
源点抑制

当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢;

在这里插入图片描述
时间超过

当路由器收到一个目的IP地址不是自己的IP数据报,会将其生存时间TTL字段的值减1;
- 若结果不为0,则将该IP数据报转发出去;
- 若结果为0,除丢弃该IP数据报外还要向源点发送时间超过报文。

当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过报文;

参数问题

当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段发现首部在传输过程中出现了误码,就丢弃该数据报,并向源点发送参数问题报文;

在这里插入图片描述

改变路由

路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由);

在这里插入图片描述

7.1 应用举例
 【分组网间探测PING】:
	- 用来测试主机或路由器间的连通性;
	- 应用层直接使用网际层的ICMP(没有通过运输层的TCP或UDP);
	- 使用ICMP回送请求和回答报文;

在这里插入图片描述

【跟踪路由】:
 - 用来测试IP数据报从源主机到达目的主机要经过哪些路由器;
 - Windows版本
	- tracert命令;
	- 应用层直接使用网际层ICMP;
	- 使用了ICMP回送请求和回答报文以及差错报告报文;
 - Unix版本
	- traceroute命令;
	- 在运输层使用UDP协议;
	- 仅使用ICMP差错报告报文;

在这里插入图片描述

八、虚拟专用网VPN与网络地址转换NAT

8.1 虚拟专用网VPN

是利用公用的因特网作为本机构各专用网之间的通信载体;
- 其中各主机分配的地址应该是本机构可自由分配的专用地址,不需要申请,是在因特网上使用的公有地址;

【私有地址】:只能用于一个机构的内部通信(本地地址);

内联网VPN:同一机构内不同部分的内部网络所构成的虚拟专用网;
外联网VPN:当一个机构的VPN需要有某些外部机构加入;
远程接入VPN:在外地需要访问机构内部发专用网络;

在这里插入图片描述

8.2 网络地址转换NAT

缓解了IPv4地址空间即将耗尽的问题,NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源;

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jxiepc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值