计算机网络--网络层

网络层

1. 概述

网络层提供两种服务:面向连接和无连接的传送服务

在互联网中,网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务,网络层不提供服务质量的承诺;

网络层的两个层面:

  1. 数据层面:路由器根据转发表,把收到分组从查到的对应接口转发出去
  2. 控制层面:根据路由选择协议所用的路由算法计算路由,创建路由表

路由器之间传送的信息有以下两大类:

  1. 转发源主机和目的主机之间所传送的数据
  2. 传送路由信息image-20220430093131485

2. 国际协议 IP

国际协议 IP(Internet Protocol)是 TCP/IP 体系中两个最主要的协议之一;与协议 IP 配套使用的还有三个协议:

  • 地址解析协议 ARP(Arrdress Resolution Protocol)
  • 网际控制报文协议 ICMP (Internet Control Message Protocol)
  • 网际组管理协议 IGMP(Internet Group Management Protocol)

image-20220430093446617

将网络互相连接起来需要使用一些中间设备,根据中间设备所在的层次,可以有以下四种不同的中间设备:

  1. 物理层:转发器(repeater)
  2. 数据链路层:网桥或桥接器(bridge)以及交换机(switch)
  3. 网络层:路由器(router)
  4. 网络层以上:网关(gateway),用网关连接两个不兼容的系统需要在高层进行协议的转换;
2.1. IP 地址分类

主要分为ABC三类:

  • A类:子网掩码:255.0.0.0,网络号全为 0 的 IP 地址为本网络,网络号最大(127)的 IP 地址用作本地软件环回测试本主机进程之间的通信使用;
  • B类:子网掩码:255.255.0.0
  • C类:子网掩码:255.255.255.0

image-20220430095937515

2.2. 无分类编址 CIDR

使用 CIDR 的好处就是可以更加有效地分配 IP 地址空间,根据客户地需求选择适当大小地 CIDR 地址块;

无分类域间路由选择 CIDR(Classless Inter-Domain Routing),要点如下:

  1. 将网络号改称为“网络前缀”,网络前缀位数 n 不固定,0~32 任意取值;使用斜线记法或称为“CIDR记法”,在 IP 地址后面加入斜线“/”,斜线后面是网络前缀所占的位数;可以看出网络前缀越短的地址块所包含的地址数就越多;

  2. 把网络前缀相同的所有连续的 IP 地址组成一个 “CIDR 地址块”,常使用地址块中的最小地址和网络前缀的位数指名一个地址块;

    已知 IP 地址 128.14.35.7/20 是某 CIDR 地址块中的一个地址,现在把它写成二进制表示,前 20 位是网络前缀:128.14.35.7/20 = 10000000 00001110 00100011 00000111

    这个地址块的 IP 地址共有 212 - 2个(去掉全1和全0),显然每次计算太麻烦,==常使用地址块中的最小地址和网络前缀的位数指名一个地址块;==即该地址块为:128.14.32.0/20

  3. 计算机使用 32 位的地址掩码来从 IP 地址迅速计算出网络地址;地址掩码(又称子网掩码)由一连串的 1 和一连串的 0 组成,1 的个数是网络前缀的长度,例如上例中地址掩码是:11111111 11111111 11110000 00000000 = 255.2555.240.0

    根据子网掩码定义可知,早期的分类 IP 地址的子网掩码都是固定的:

    • A 类:255.0.0.0
    • B 类:255.255.0.0
    • C 类:255.255.255.0

    把二进制 IP 地址和子网掩码进行按位与(&)运算,即可计算出网络地址:image-20220430202626996

CIDR 地址中还有三个特殊的地址块:

  1. 当前缀 n = 32,32 位 IP 地址都是前缀,没有主机号,这其实就是一个 IP 地址,这个特殊的 IP 地址用于主机路由

  2. 当前缀 n = 31,这个地址块中只有两个 IP 地址,主机号分别为 0 和 1,这个地址块用于 点对点链路

  3. 当前缀 n = 0,同时 IP 地址也是全 0,即 0.0.0.0/0,这用于默认路由

一个大的 CIDR 地址块中往往包含很多小的地址块,所以在路由器的转发表中就利用较大的一个 CIDR 地址块来顶替许多较小的地址块,这种方法称为路由聚合(route aggregation) image-20220430204236954

2.3. IP 地址的特点
  1. 由网络前缀和主机号组成,是一种分等级的地址结构;分等级的好处是:
    1. IP 地址管理机构只负责分配网络前缀(第一级),主机号(第二级)由申请单位自行分配,方便了 IP 地址的管理;
    2. 路由器根据目的主机所连接的网络前缀(即地址块)来转发分组(而不考虑主机号),可以减少转发表所占的存储空间,缩短查找转发表的时间;
  2. IP 地址是标志一台主机(或路由器)和一条链路的接口
  3. 用转发器或交换机连接起来的若干个局域网仍为一个网络,因为它们具有相同的网络前缀;具有不同网络前缀的局域网必须使用路由器进行互连;
  4. 互联网平等对待每一个 IP 地址;

两个路由器直接相连时,使用了 /31 地址块,专门为点对点链路的两端使用,这种特殊的“网络”一般被称为 无编号网络(unnumbered network)匿名网络(anonymous network)

2.4. Mac 地址与 IP 地址

二者的称呼区别:

  • Mac 地址固化在网卡上的 ROM 中,常称为 硬件地址物理地址
  • IP 地址常称为 虚拟地址软件地址逻辑地址

从层次的角度看:

  • Mac 地址是数据链路层使用的地址
  • IP 地址是网络层和以上各层使用的地址,是一种逻辑地址(IP 地址是由软件实现的)

image-20220430233449715

IP 地址放在 IP 数据报中,MAC 地址放在 MAC 帧的首部。

在发送数据时,数据从高层下到低层,然后才到通信链路上传输。使用 IP 地址的 IP 数据报一旦交给数据链路层,就被封装成为 MAC 帧。MAC 帧在传送时使用的源地址和目的地址都是 MAC 地址,这两个 MAC 地址都写在 MAC 帧的首部中(各占 6 个字节);

连接在通信链路上的站点收到 MAC 帧后,根据 MAC 帧首部中的 MAC 地址决定收下或丢弃;只有剥去 MAC 帧首部和尾部后把 MAC 层的数据上交给网络层后,网络层才能在 IP 数据报中找到源 IP 地址和目的 IP 地址;

image-20220430235712386

  • 在 IP 层抽象的互联网只能看到 IP 数据报
  • 路由器 R1、R2、R3 都有两个 MAC 地址,因为它同时连接着两个局域网
  • 路由器只根据目的站的 IP 地址进行转发,与源站 IP 地址无关
  • 在局域网的链路层,只能看见 MAC 帧

image-20220430235424269

2.5. 地址解析协议 ARP

ARP(Arrdress Resolution Protocol)地址解析协议适用于根据一个机器(主机或路由器)的 IP 地址解析出其相应的 MAC 地址;

IP 地址是 32 位数据,MAC 地址是 48 位数据,格式不同,且主机更换了网络适配器后 MAC 地址也会变化,IP 地址与 MAC 地址二者之间并不存在简单的映射关系;

每个主机都设有一个 ARP 高速缓存(APR Cache),其内存有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表(从 IP 地址到 MAC 地址的映射表),定时动态更新(新增或超时删除);

在本局域网内,若主机 A 要向主机 B 发送的 IP 数据报,其经过的过程如下:

  1. 查表:查找本机的 ARP 高速缓存看是否有主机 B 的 IP 地址
    • 若有,取出其 MAC 地址写入 MAC 帧通过局域网把该 MAC 帧发送至此 MAC 地址
    • 若无,则主机 A 自动运行 APR
  2. 广播:ARP 进程在本局域网上广播发送一个 APR 请求分组(大意是:“我的 IP 地址是 xxx.xxx.xxx.xxx,MAC 地址是 xx-xx-xx-xx-xx-xx,我想知道 IP 地址为 xxx.xxx.xxx.xxx 的MAC地址”)
  3. 回应:所有在本局域网上运行的主机收到了 ARP 请求分组(包括主机 B),主机 B 的 IP 与 ARP 请求分组中要查询的 IP 地址一致,收下该 ARP 分组,将其写入自己的 APR 缓存中,并向主机 A 发送 ARP 响应分组(大意是:“我的 IP 地址是 xxx.xxx.xxx.xxx,我的 MAC 地址是 xx-xx-xx-xx-xx-xx”);
  4. 更新:主机 A 收到 ARP 响应分组后,将其 IP 地址到 MAC 地址的映射写入 APR 高速缓存中;
  5. 重发:重新执行步骤 1

注意由于互联网上的主机可以随时加入和删除,同一主机的 MAC 地址也可能因为网卡的更换而改变,所以 ARP 高速缓存中的每一个映射地址项目都应该有一个生存时间(过期时间),超时则删除;

ARP 适用于解决同一局域网内主机或者路由器的 IP 地址和 MAC 地址的映射问题;

注意:这并不代表着 APR 协议只用于同一局域网内,从 IP 地址到 MAC 地址的解析是自动进行的主机的用户对这种地址解析过程是不知道的,ARP 协议使用的四种典型情况:

在许多情况下需要多次使用 ARP,重复下述的四种情况;

  1. 发送方是主机(如 H1),要把 IP 数据报发送到同一个网络上的另一台主机(如 H2)。具体执行过程如上述;
  2. 发送方是主机(如 H2),要把 IP 数据报发送到另一个网络上的一台主机(如 H3 或 H4)。具体执行过程拆分为两部:
    • H1 发送 ARP 请求分组(在网络 N1 上广播),找到 N1 上的一个路由器 R1 的 MAC 地址;
    • 剩余的工作由路由器 R1 完成,R1 要做的就是 步骤 3步骤 4
  3. 发送方是路由器(如 R1),要把 IP 数据报转发到与 R1 连接在同一个网络 N2 上的主机(如 H3)。
    • R1 发送 ARP 请求分组(在网络 N2 上广播)找到目的主机 H3 的 MAC 地址;
  4. 发送方是路由器(如 R1),要把 IP 数据报转发到网络 N3 上的一台主句(如 H4),H4 与 R1 不是连接在同一个网络上的。
    • R1 发送 ARP 请求分组(
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

睫毛进眼睛了!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值