一、网络层的几个重要概念
1、互联网设计思路
①问:网络层应该向运输层提供怎样的服务?面向连接还是无连接? ②问:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
- 网络层(核心部分)要尽量设计得简单,
向其上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
- 网络层==不提供服务质量的承诺==,不保证分组
2、虚电路与数据报服务
👉虚电路只是一条逻辑上的连接,并不是真正建立了一条物理连接
对比的方面 | 虚电路服务 | 数据报服务 |
思路 | 可靠通信应由网络来保证 | 可靠通信应由主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址,即IP地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
3、网络层的两个层面
[数据层面]
- 每一个路由器根据本路由器生成的【转发表】,把收到的分组,从查找到的对应接口转发出去
- 独立工作
- 采用硬件进行转发
[路由器]
,速度快
[控制层面]
- 根据路由选择协议所用的路由算法计算路由,创建出本路由器的路由表
- 许多路由器协同动作
- 采用软件计算,慢
二、网际协议 IP
1、配套协议
- ARP【地址解析协议】
- ICMP【网际控制报文协议】
- IGMP【网际组管理协议】
2、互连虚拟网络
问:实现异构网络的互连互通方法,哪种好?
- 答:若是使用相同的网络会使得没有一种单一的网络能够适应所有用户的需求。因此使用==中间设备==好,一是可以满足不同需求;二是实用
- 以下是各层的中间设备
互联网可以由多种异构网络互连组成
- IP网是虚拟的,因为从网络层上看,IP网就是一个统一的、抽象的网络(实际上是异构的)。IP层抽象的互联网屏蔽了下层网络很复杂的细节,使我们能够使用统一的、抽象的IP地址处理主机之间的通信问题
互联网上主机交互方式
- 直接交付(
不经过路由器
) - 间接交付(
至少经过一次路由器,但最后一次一定是直接交付
)
- 可以注意到,每一跳两端的两个节点都必定直接连接在同一个网络上
【IP网的意义】:如果在这种覆盖全球的IP网的上层使用TCP协议,那么就是现在的互联网(Internet)
3、IP地址
(1)IP 地址及其表示方法
- 首先是对于IP地址的表示方式
IP 地址 ::= { <网络号>, <主机号>}
==一个IP地址在整个互联网范围内是唯一的==
(2)分类的 IP 地址
地址类别 | 网络号(net - id) | 主机号(host - id) |
A类地址 | 8位 | 24位 |
B类地址 | 16位 | 16位 |
C类地址 | 24位 | 8位 |
D类地址 | 多播地址 | - |
E类地址 | 保留为今后使用 | - |
【IP地址】
- A类网络的IP地址范围为:1.0.0.1 ~ 127.255.255.254
- 因为A类网络的网络号为8位,第一个字节最高位固定为0,1~127差了
128-1
- 第一个字节展开后七位不超127,0 | 0000000 ~ 0 | xxxxxxx
- B类网络的IP地址范围为:128.1.0.1 ~ 191.255.255.254
- 因为B类网络的网络号为16位,第一个字节的最高位固定为1,128~191差了
64-1
- 第一个字节展开后六位不超63,10 | 000000 ~ 1 | xxxxxx
- C类网络的IP地址范围为:192.0.1.1 ~ 223.255.255.254
- 因为C类网络的网络号为24位,第一个字节的前两位固定为11,192~223差了
32-1
- 第一个字节展开后五位不超31,110 | 00000 ~ 11 | xxxxx
【例】:A类地址的网络号占位8位,即一个字节,已经固定死,只有余下七位可供使用;A类地址的主机号占24位,即三个字节
接下去说说特殊的网络号和主机号:
- 全0(00000000)的网络号表示
本网络
【A类】 - 网络号为127(01111111),保留作为本地软件
环回测试
【A类】
===========================================================
- 全0的主机号表示该IP地址是“本主机”所连接到的单个网络地址【0.0.0.0】
- 全1的主机号表示该网络上的所有主机【1.1.1.1】
分类IP地址的优点和缺点
- 优点:
管理简单、使用方便、转发分组迅速、划分子网,灵活地使用
- 缺点:
设计上不合理、大地址块,浪费地址资源、即使采用划分子网的方法,也无法解决 IP 地址枯竭的问题
(3)无分类编址 CIDR
- CIDR全名:无分类域间路由选择
- 更加有效地分配IPv4地址空间,无法解决IP地址枯竭的问题
CIDR 记法:斜线记法 (slash notation) a.b.c.d / n:二进制 IP 地址的前 n 位是网络前缀。 例如:128.14.35.7/20:前 20 位是网络前缀
- IP地址举例
【地址掩码】
- A类网络,地址掩码为255.0.0.0或255.0.0.0/8
(CIDR记法)
- B类网络,地址掩码为255.255.0.0或255.255.0.0/16
(CIDR记法)
- C类网络,地址掩码为255.255.255.0或255.255.255.0/32
(CIDR记法)
⭐⭐⭐ 网络地址 = (二进制的 IP 地址) AND (地址掩码)
- 下面是常用的CIDR地址
- 接下去是三个特殊的地址块,==重点记忆==
- 使用CIDR的一个好处就是可以更加有效地分配IP地址空间
- 【路由聚合】可以大大压缩转发表所占空间,减少了查找转发表所需的时间
- 从上图可以看出【==网络前缀越短的地址块所包含的地址数就越多==】
- 所以我们应该选择网络前缀最长的路由。前缀越长,地址块越小,路由更具体
(4)IP 地址的特点
- 每个 IP 地址都由网络前缀和主机号两部分组成
- IP 地址是一种分等级的地址结构
- 路由器根据目的主机所连接的网络前缀来转发分组,使得转发表中的项目大大减少,从而减少转发表所占的存储空间,缩短查找转发表的时间
- IP 地址是标志一台主机(或路由器)和一条链路的接口
- 多归属主机:主机就必须同时具有两个相应的 IP 地址,其网络号必须是不同的
- 转发器或交换机连接起来的若干个局域网仍为一个网络
- 转发器或交换机连接起来的若干个局域网都具有同样的网络号,它们仍为一个网络
- 具有不同网络号的局域网必须使用路由器进行互连
- 在 IP 地址中,所有分配到网络前缀的网络都是平等的
- 互联网同等对待每一个 IP 地址
【在同一个局域网上的主机或路由器的IP地址中的网络前缀必须是同样的】
4、IP地址与MAC地址
- MAC地址
- 是物理层和数据链路层使用的地址
- 硬件地址、物理地址
- 放在 MAC 帧的首部
- 固化在网卡上的 ROM 中
- IP地址
- 是网络层和以上各层使用的地址
- 虚拟地址、软件地址、逻辑地址
- 放在 IP 数据报的首部
从协议栈的层次上看 IP 地址和 MAC 地址
- 在IP层抽象的互联网上只能看见IP数据报; 在局域网的链路层,只能看见MAC地址
- 路由器只根据目的站的IP地址进行转发
- IP数据报不会发生变化,原地址和目的地址始终保持不变;MAC地址在IP数据报转发的过程中会发生不断的变化
- IP层抽象的互联网==屏蔽了下层很复杂的细节==。只要我们在网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机和主机或路由器之间的通信
5、地址解析协议ARP
⭐地址解析协议ARP把IP地址解析为MAC地址,它解决同一个局域网上的主机或路由器的IP地址和MAC地址的【映射问题】。ARP的==高速缓存==可以大大减少网络上的通信问题
(1)ARP高速缓存
在每台主机上都设有一个【ARP高速缓存】,里面存有本局域网上的各主机和路由器IP地址到MAC地址的映射表 :loop:下面举一个例子来说明讲解
在一个局域网中,主机A要向主机B发送IP数据报时,就会先在ARP告诉缓存中查看有无主机B的IP地址。如果有就根据ARP查出对应的MAC地址,然后将这个MAC地址写入MAC帧中;若是没找到主机A便会自动运行ARP,去寻找主机B的MAC地址,下面是寻找的过程👇
- ARP进程会在本局域网上广播发送一个ARP请求分组。在里面写入自己的IP地址和MAC地址以及要查找的IP地址【发出去后本局域网上的所有主机都会收到这个ARP请求分组】
- 当主机B看到有请求分组发来就会
对照自己的IP是否与此分组中的IP地址一致
,如果一致就会收下这个请求分组并向这个发送的IP方发出ARP响应分组,并且写入自己的MAC地址 - 然后当主机A在收到主机B发还回来的ARP响应分组后,就在起其RP高速缓存中写入主机B的IP地址到MAC地址的映射
- 可能之后主机A和主机B还会在进行数据报的发送,因此主机A和主机B就会把对方的地址映射==写入自己的ARP高速缓存中==,之后若是需要通信就可以直接在高速缓存中找到所需要的MAC地址就不需要再用广播的方式发送ARP请求分组了
通过上面这个案例,相信你对ARP高速缓存一定有了一个自己的理解
我们可以来总结一下ARP高速缓存的作用
- 存放最近获得的 IP 地址到 MAC 地址的绑定
- 减少 ARP 广播的通信量
- 为进一步减少 ARP 通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到 MAC 地址的映射写入 ARP 请求分组
- 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的 IP 地址及其对应的 MAC 地址映射写入主机 B 自己的 ARP 高速缓存中。不必在发送 ARP 请求
(2)疑难解析【✔】
问:2 台主机不在同一个局域网上怎么办?
- ARP用于解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射问题
- 从IP地址到MAC地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的
问:既然在网络链路上传送的帧最终是按照MAC地址找到目的主机的,那么为什么我们还要使用两种地址【IP地址】和【MAC地址】呢?
- 答:不同网络使用不同的 MAC 地址。MAC 地址之间的转换非常复杂。对以太网 MAC 地址进行寻址也是极其困难的。IP 编址把这个复杂问题解决了
- 连接到互联网的主机只需各自拥有一个唯一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,即使必须多次调用 ARP 来找到 MAC 地址,但这个过程都是由计算机软件自动进行的,对用户来说是看不见的。
- 因此,在虚拟的 IP 网络上用 IP 地址进行通信非常方便