目录
一、网络层的任务和服务
计算机网络的学习已经到网络层部分了,从物理层、数据链路层,逐渐接近五层协议结构的上层。
网络层是数据链路层的上一层,它的工作任务,也是核心功能,一共有两个:分组转发和路由选择。
1、分组转发
网络层的主要任务就是将分组从源主机传送到目的主机,最核心的设备无非就是路由器了。路由器维护了一个转发表,在转发分组时候,根据分组数据的首部标识在转发表中查询,然后转发到目标地址。
2、路由选择
当分组从发送方传送到接收方,网络层需要决定这些分组要走的路径,这就是路由选择(Routing)。路由选择的结果就是生成转发表。
路由选择的方式包括:集中式、分布式。分布式自动路由选择需要再路由器上运行路由选择协议,互相交换路由信息并计算路由。实际上,该过程直接生成的是路由表,再生成转发表。
在网络层,提供了面向连接和无连接的服务。
面向连接服务的网络成为虚电路网络;无连接服务的网络成为数据报网络。
- 虚电路网络的特点
- 可靠的通信由网络来保证;
- 终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号;
- 属于同一条虚电路的分组均按照同一个路由进行转发,按发送顺序到达终点;
- 所有通过故障结点的虚电路都不能工作;
- 容易实现,可以将通信资源提前分配给每一条虚电路。
- 数据报网络的特点
- 可靠通信由用户保证;
- 每个分组都有完整的终点地址,达到终点可能不按顺序;
- 每个分组独立选择路由进行转发;
- 出故障的结点可能丢失分组,路由可能发生变化;
- 很难实现。
二、ARP协议原理
网络层中重要的协议:IP协议,是TCP/IP体系中最重要的协议之一。
IP协议配套的4个协议是:地址解析协议(ARP)、逆地址解析协议(RARP)、网际控制报文协议(ICMP)、网际组管理协议(IGMP)。
ARP和RARP协议解决了已知目标IP地址,需要获得对应的物理地址;和反过程,已知目标物理地址,需要获得相应的IP地址。
RARP协议现在已经没有单独使用,DHCP协议中已经包含RARP协议的功能。
这里我主要记录一下ARP工作过程。
在支持广播的局域网中可以使用ARP协议解决IP地址和物理地址的动态映射关系问题。方法:每台主机都有ARP高速缓存,在其中存放了一个IP地址-物理地址的映射表,并且不断动态更新。
ARP工作过程,我的总结如下:
1、目标物理地址在ARP Cache中
当A主机要发送IP数据报给同一局域网的主机B,A主机查询自己的ARP Cache,发现存在B的IP地址和物理地址映射条目,因此就把MAC地址写入MAC帧通过局域网发送到B的物理地址。
2、目标物理地址不在ARP高速缓存中
(1)第一步,A主机的ARP进程在局域网内部发送一个广播ARP请求分组,该分组封装在数据链路层的广播帧中。主要内容是:我的IP地址是10.1.1.1,MAC地址00-00-25-AB-EE-9C,我想知道IP地址为10.1.1.2的MAC地址。
(2)第二步,局域网内部的所有主机上的ARP进程都会收到这个ARP请求分组。
(3)第三步,主机B发现ARP请求分组中的IP地址和自己的匹配,立即向A主机发送响应分组,写入自己的MAC地址,主要内容是:我的IP地址是10.1.1.2,MAC地址00-ED-00-AB-24-9C。此时的响应分组是数据链路层单播,因为只从源地址发送给目标地址A主机。
(4)最后,主机A收到主机B的ARP响应分组,就在自己的ARP高速缓存中写入B的IP地址-MAC地址映射。
在这个过程完成了主机A对主机B的MAC地址信息的获取,当然,主机B会把主机A的IP地址-MAC地址写入自己的Cache,方便之后可能的通信,不用发送ARP广播,减少网络的通信量。
看到这里,我们会发现前提是在同一局域网下主机之间的数据传送,在不用局域网中,主机A发送的广播不会被主机B接收到,因此,需要通过路由器对主机A的请求进行转发,再继续上面的ARP工作过程。
三、ARP的4种典型情况
- 发送方是主机,IP数据报要发送到本网络的另一个主机,这时用ARP找到目的物理地址。
- 发送方是主机,IP数据报要发送到另一局域网的一个主机,这是ARP先找到局域网中的一个路由器,剩下工作由路由器完成。
- 发送方是路由器,IP数据报要发送到本网络的另一个主机,这时用ARP找到目的物理地址。
- 发送方是路由器,IP数据报要发送到另一局域网的一个主机,这是ARP先找到局域网中的另一个路由器,剩下工作由这个路由器完成。
这样,通过多次使用ARP,实现全网的通信。
ARP的产生当然有它的优势所在,全世界存在大量不同的网络,它们使用不同形式的物理地址,这些异构网络要互相通信,统一的IP地址格式加上ARP地址解析协议解决了这个问题,ARP的实现过程是计算机软件自动进行的,用户并未感知到。
网络层的部分其实还有许多内容,IP数据报、ICMP协议等,为了保证博文合适的长度和质量,准备在接下来进行记录网络层的学习内容。
如果觉得不错欢迎“一键三连”哦,点赞收藏关注,有问题直接评论,交流学习!
一起加油进步!
我的CSDN博客:https://csdn-czh.blog.csdn.net/article/details/115676748