计算机网络 4 - 网络层


第4章 网络层:数据层面(Network Layer: Data Plane)

4.1 网络层概述

  • 网络层核心功能:
    • 转发:将 分组 从路由器的输入端口 转移到 合适的输出端口
    • 路由:确定 分组 从源 到 目的 经过的路径
  • 网络层连接 和 传输层连接 对比:
    • 网络层连接:两个主机之间(路径上的路由器等网络设备参与其中)
    • 传输层连接:两个应用进程之间(对中间网络设备透明)
  • 网络服务模型:
    • 无连接服务
      **数据包网络(datagram network)**提供无连接服务
      不事先为分组的传输确定传输路径,每个分组独立确定路径,不同分组可能传输路径不同
    • 连接服务
      虚电路网络(virtual-circuit network) 提供连接服务
      首先为分组传输确定 从源主机到目的主机的路径(建立连接)
      然后 沿该路径传输 系列分组
      系列分组传输路径相同
      传输结束后拆除连接
  • 网络层的设计思路
    ① 网络层向上只提供简单灵活的,无连接的、尽最大努力交付的数据报服务
    ② 网络在发送分组时不需要先建立连接
    ③ 每一个分组独立发送,与其前后的分组无关
    ④ 网络层不保证分组传送服务的质量,由主机中的传输层负责可靠的通信
  • 在查找转发表时,采用最长前缀匹配原则 (与分组目的地址匹配前缀最长的输出端口)

路由(router)

  • 路由器 主要工作:转发分组
    把从某个输入端口收到的分组,按照分组要去的目的地,从当前路由器的某个合适的输出端口转发给下一跳路由器
  • 转发路由选择 区别
    在这里插入图片描述
  • 路由器 输入端口
    在这里插入图片描述
  • 路由器 输出端口
    在这里插入图片描述
  • 常用的三种交换结构:
    • 通过存储器
      在这里插入图片描述
    • 通过总线
      在这里插入图片描述
    • 通过互联网络 / 纵横交换结构
      在这里插入图片描述
  • 输出端口队列
    排队时延 和 丢失 的原因:输出端口缓冲区溢出
  • 输入端口队列
    在这里插入图片描述

4.2 IP: Internet Protocol

  • 网络层功能
    在这里插入图片描述
  • 与 IP 协议配套使⽤的还有三个协议
    1. 地址解析协议 ARP (Address Resolution Protocol)
    2. 网际控制报⽂协议 ICMP (Internet Control Message Protocol)
    3. 网际组管理协议 IGMP (Internet Group Management Protocol)

分类 IP 地址

  • 分类
    在这里插入图片描述
    • 各类IP地址的 指派范围
      在这里插入图片描述
    • 一般不使用的特殊IP地址
      在这里插入图片描述
    • 私有 IP 地址
      在这里插入图片描述
    • 分类的 IP地址 的优缺点
      在这里插入图片描述

子网划分

参考资料:划分子网

  • 为什么要划分子网
    ① 节省IP资源,提高IP地址利用率
    ② 给每一个物理网络分配一个网络号会导致路由表变大,网络性能变差
    ③ 减少广播的负面影响
  • 划分思路:从主机号借⽤n位作为⼦⽹号 subnet-id
  • 子网划分方法:
    • 定长子网:固定长度子网,所划分的所有⼦⽹的⼦⽹掩码都是相同的
    • 变长子网:长度变化的子网
  • 示例
    在这里插入图片描述
    在这里插入图片描述
  • 子网掩码 (Subnet Mask / Netmask)
    • 32位地址,与IP地址结合使用的技术
      A类地址默认的子网掩码是 255.0.0.0
      B类地址默认的子网掩码是 255.255.0.0
      C类地址默认的子网掩码是 255.255.255.0
    • 作用:
      ① 屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上
      ② 将一个大的IP网络划分为若干小的子网络
    • 规则:
      将 32位的子网掩码 和 IP地址的二进制形式 进行“按位”操作,得到的是 网络地址
      在这里插入图片描述
    • 具体使用:
      ① 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器
      ② 路由器的路由表中的每一个项目,要同时给出 目的网络地址 和 该网络的子网掩码
      ③ 一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码
      ④ 不同的子网掩码可能得出相同的网络地址,但其意义不同(子网的划分方式不同)

无分类域间路由 CIDR

  • CIDR (Classless Inter-Domain Routing):无分类域间路由选择,消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,可以更加有效地分配 IPv4 的地址空间,但是不能解决IP地址枯竭的问题
  • 网络前缀
    • 示例:128.14.35.7/20中,斜线后的20代表 IP地址的前20位是网络前缀
  • 地址块
    • 网络前缀都相同的所有连续的 IP 地址组成一个CIDR地址块
    • 示例:128.14.35.7/20 所在的地址块为 128.14.32.0/20
      128.14.35.7/24 所在的地址块为 128.14.35.0/24
  • 地址掩码 / 子网掩码
    • 网络前缀的数值 = 子网掩码中前面1的个数
    • 示例:128.14.35.7/20的地址掩码为255.255.240.0
  • 构造超网
    每个CIDR地址块中的地址数一定是2 的整数次幂,此在文献中有时称 CIDR 编址为“构造超网”。
  • 特殊的CIDR地址块
    在这里插入图片描述
  • 路由聚合
    在这里插入图片描述

IP 地址的特点

  • 每个 IP 地址都由网络前缀和主机号两部分组成
    IP 地址是一种分等级的地址结构
    方便了IP 地址的分配和管理
    实现路由聚合,减小了转发表所占的存储空间,以及查找转发表的时间
  • IP 地址是标志一台主机(或路由器)和一条链路的接口
    一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址其网络号必须是不同的。这种主机称为多归属主机
    一个路由器至少应当连接到两个网络,因此至少应当有两个不同的 IP 地址
  • 转发器或交换机连接起来的若干个局域网仍为一个网络
    一个网络(或子网)是指具有相同网络前缀的主机的集合
    转发器或交换机连接起来的若干个局域网都具有同样的网络号,它们仍为一个网络
    具有不同网络号的局域网必须使用路由器进行互连
  • 在 IP 地址中,所有分配到网络前缀的网络都是平等的
    互联网同等对待每一个IP地址,不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网

4.3 地址解析协议 ARP

  • 作用:从 IP地址 解析出 MAC地址

  • ARP 工作原理 - 同局域网
    在这里插入图片描述

    • ARP 查找IP地址对应MAC地址
      在本局域网中广播发送 ARP请求(路由器不转发ARP请求)
      ARP 请求[源MAC | 源IP | 目的MAC或0 | 目的IP] (目的MAC未知时 填0)
  • ARP 缓存
    存放 IP地址 到 MAC地址的 映射表,映射表动态更新 (新增或删除)

    • 作用:
      ① 存放最近获得的 IP 地址到 MAC 地址的绑定
      ② 减少 ARP 广播的通信量
      ③ 为进一步减少 ARP 通信量,主机A 在发送其ARP请求分组时,就将自己的 IP 地址到 MAC 地址的映射写入ARP请求分组
      ④ 当主机 B 收到 A 的 ARP 请求分组时,就将主机A的IP地址及其对应的 MAC 地址映射写入主机 B 自己的ARP 高速缓存中。不必在发送 ARP 请求
  • ARP 工作原理 - 跨局域网

    • 情景:
      在这里插入图片描述
    • 上图数据包传输流程:
      ① A主机 向本局域网广播发送 ARP请求,询问路由器 R1 的 MAC地址
      ② 路由器 R1 回复 A主机 R1的MAC地址
      ③ 主机A把 IP数据包 外层封上MAC(R1),将该帧发给 路由器R1
      ④ 路由器 R1 解包MAC帧,根据数据包的头部目的IP,向其他局域网广播发送 ARP请求,询问 B主机 的 MAC地址
      ⑤ B主机 回复R1 B主机的MAC地址
      ⑥ 路由器R1 把 IP数据包 外层封上MAC(B),将该帧发给 B主机

4.4 IP 数据包格式

在这里插入图片描述

  • IP数据包头部结构
    • 版本:4位,IP协议的版本,IPv4 对应 4
    • 首部长度:4位,首部长度的1表示1个单位4字节,即首部4位最大能表示的长度是15单位,首部最大60字节
    • 总长度:16位,首部和数据的总长度,单位字节
    • 标识 (identification):16位,通过计数器产生,可以唯一标识一个IP报文,同一IP报文的不同分片中标识相同
    • 标志 (flag):3位,与分片相关
      第1位是 MF,MF=1 后面还有分片,MF=0 最后一片
      第2位是 DF,DF=1 不允许分片,DF=0 允许分片
    • 片偏移:13位,当前分组的首单位在原数据包的位置,片偏移以8个字节为偏移单位
    • 生存时间 (TTL):8位,指示数据报在网络中可通过的路由器数的最大值
    • 协议:8位,表示数据包的数据使用什么协议(TCP / UDP / ICMP / IGMP / OSPF)
    • 首部校验和:16位,只检验数据包首部,不校验数据,每经过一个路由器就校验一次,错误则丢弃
    • 源地址 和 目的地址:32位

路由转发示例

  • 主机跨局域网转发
    在这里插入图片描述
  • 路由器转发
    在这里插入图片描述

路由器转发算法

在这里插入图片描述

使用二叉树查找转发表

  • 二叉树构造规则
    在这里插入图片描述
  • 二叉树使用规则
    ① 使用目的IP的网络地址 在二叉树中匹配
    • ② if 找到一个叶节点,将目的IP与该叶结点对应的子网掩码 按位AND计算,看网络前缀是否匹配
      ③ 若匹配,转发分组到吓一跳路由器;否则丢弃该分组
    • ② if 在二叉树中找不到匹配的叶节点,则 检查是否存在默认路由
      ③ 若存在则转发分组到指定默认路由器,否则丢弃分组

4.5 IP分配技术

DHCP

参考资料: DHCP相关报文 - CSDN

  • DHCP (Dynamic Host Configuration Protocol) 动态主机配置协议,基于UDP工作,DHCP Server Port = 67,DHCP Client Port = 68
  • 作用:允许主机在加入网络时从网络服务器动态获取自己的IP地址
    • 可以续租使用的IP地址上
    • 允许重用地址(只有保持地址时连接/“on”)
    • 支持移动用户谁想加入网络(更简短)
  • 向DHCP申请IP地址流程:
    〇 Host 广播 - DHCP discover (可选操作)
    〇 DHCP服务器 回复 - DHCP offer (可选操作)
    ① Host 请求IP地址 - DHCP request
    ② DHCP服务器 发送地址 - DHCP ack
    其中 DHCP返回 IP地址,第一跳路由器IP地址,DNS服务器名和IP地址,子网掩码
    在这里插入图片描述
  • 运行示例:
    ① 联网笔记本需要获取自己的IP地址,第一跳路由器地址和DNS服务器:采用DHCP协议
    ② 客户端 DHCP 请求被封装在UDP段中,封装在IP数据报中,封装在以太网的帧中
    ③ 以太网帧在局域网范围内广播 (dest: 255.255.255.255) ,被运行DHCP服务的路由器收

    ④ 在DHCP路由器处,以太网帧解封装成IP,IP解封装成UDP,解封装成DHCP
    ⑤ DHCP服务器生成DHCP ACK,包含客户端的IP地址,第一跳路由器的IP地址和DNS域名服务器的IP地址
    ⑥ DHCP服务器封装的报文所在的帧转发到客户端,在客户端逐层解封装成DHCP报文
    ⑦ 客户端知道它自己的IP地址,DNS服务器的名字和IP地址,第一跳路由器的IP地址

NAT 网络地址转换

  • NAT (Network Address Translation) 在专用网连接到互联网的路由器上安装NAT软件,NAT路由器至少有一个有效的外部全球 IP 地址,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接
  • 图示:
    在这里插入图片描述
  • NAT 特点:
    • 本地网络只有一个有效IP地址,不要从ISP分配一块地址(省钱)
    • 可以在局域网改变设备地址的情况下无需通知外界
    • 改变ISP分配的地址时,不需要改变内部设备地址
    • 局域网内部设备没有明确的地址,对外不可见(安全)
  • NAT 转换
    • 向外传输数据包时,替换<源IP地址, 端口号><NAT_IP, 新端口号>,目的IP地址和端口号不变
    • NAT路由器 在NAT转换表中 记录每个替换对
    • 向内传输数据包时,替换<目的IP, 端口> 采用存储在NAT表中的mapping表项<源IP, 端口>
      在这里插入图片描述
  • NAT穿越问题
    • 问题:客户段需要连接NAT路由器下的服务器,整网对外只要有一个地址
    • 方法1:静态配置NAT:转发进来的分组对服务器特定端口连接请求
    • 方法2:允许NAT下的主机可以获知网络的公共IP,列举存在的端口映射,在租期内增删端口映射
    • 方法3:在NAT外建立中继连接,外部客户端和NAT内部的服务器在中继处桥接

ICMP

  • ICMP (Internet Control Message Protocol) 网际控制报文协议:允许主机或路由器报告差错情况和提供有关异常情况的报告

  • ICMP报文种类(2种):差错报告报文,询问报文

  • ICMP询问报文:
    在这里插入图片描述

  • 不应发送ICMP差错报文的情况
    在这里插入图片描述

  • 应用举例:

    • ping 命令:用来测试两个主机之间的连通性
      使用 ICMP回送请求和回送回答报文
      应用层直接使用网络层ICMP,没有通过传输层

4.6 IPv6

  • IPv6:Internet Protocol version 6,用于解决 IPv4 地址枯竭问题
  • 主要变化:
    在这里插入图片描述
    在这里插入图片描述

IPv6数据报结构

  • 基本首部:固定 40字节

    • 版本:4位,IPv6对应6
    • 流标号:路由相同的数据报具有相同的流标号
    • 有效载荷长度:16位,拓展首部+数据部分的长度和,最大值为64KB
    • 跳数限制:8位,类似IPv4首部的TTL字段
    • 源地址 / 目的地址:128位
      在这里插入图片描述
  • 有效载荷:0-n个拓展首部 + 数据部分

    • 拓展首部类型:逐跳选项,路由选择,分片,鉴别,封装安全有效载荷,目的站选项
  • IPv6三种基本类型

    • 单播:一对一
    • 多播:一对多
    • 任播:交付目标为一组计算机中最近的一个(路由算法计算距离)
  • 新概念:节点、接口
    在这里插入图片描述

  • IPv6地址写法

    • 冒号十六进制 记法:16个十进制数→8个4位十六进制数
      在这里插入图片描述
    • 零压缩:一对冒号代表一串0,0:0:0:0...::,一个地址只能用一次
    • 点分十进制记法的后缀:斜线表示法
      在这里插入图片描述

IPv4 向 IPv6 过渡

  • 方法:逐步演进,向后兼容(IPv6 系统必须能够接收和转发IPv4分组,并且能够为IPv4 分组选择路由)
  • 两种过渡策略:
    • 双协议栈
      在这里插入图片描述

    • 隧道技术
      在这里插入图片描述

ICMPv6

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

END 练习

  • [子网掩码计算练习] 已知 IP 地址是 141.14.72.24,子网掩码是255.255.192.0。试求网络地址。
    在这里插入图片描述

第5章 网络层:控制层面(Network Layer: Control Plane)

5.1 路由选择算法

LS: link state 链路状态算法

  • 符号标记:
    在这里插入图片描述
  • LS算法
    在这里插入图片描述
    在这里插入图片描述

Flooding 洪泛算法

  • 基本思想:把收到的每一个包,向除了该包到来的线路外的所有输出线路发送
  • 缺点:产生大量重复包
  • 解决方案:每个包头部包含计数器,每经过一站计数器减1,减至0丢弃该包
    记录包经过的路径

DV: distance vector 算法

  • 基本思想:与相邻路由器交换路由表,更新自己的路由表
  • 示例:
    在这里插入图片描述
  • 保证路由表正确性的方法(6种)
    • 最大度量值:针对不同协议有不同的最大度量值;当路由表中的度量值达到最大度量值时,认为路由失效,并移除这条路由。
    • 水平分割:一个方向发来的路由信息,不能再放入该方向的路由更新包中 并且 又发回那个方向
    • 路由中毒:网络中出现故障时,通知邻居节点该网段不可用
    • 毒性反转 / 反向下毒:被通知该网段不可用的邻居节点也会通知原节点,自己也不能使用该网段
    • 保持时间:不可用信息还会再保持一定时间才会被删除
    • 触发更新:当路由器发现某个网段出现故障时,立刻发送路由更新包来通知邻居,而不用等到下一次发送路由更新包的时间
  • 6种方法联合应用示例:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

层次路由算法

5.2 内部网关协议 RIP

在这里插入图片描述

RIP 路由信息协议

OSPF 开放最短路径协议

  • 使用Dijkstra的最短路径算法,采用分布式的LS协议
  • 主要特点
    在这里插入图片描述
  • 高级特性:
    在这里插入图片描述

BGP 协议

  • 主要特点
    在这里插入图片描述
  • eBSP 和 iBGP连接
    在这里插入图片描述

END 练习

  • 考虑图中所示的网络。使用Dijkstra算法(LS Route)和一个类似于表5-1的表来说明你做的工作:
    在这里插入图片描述在这里插入图片描述
    a. 计算出从 t 到所有网络节点的最短路径
    b. 计算出从 u 到所有网络节点的最短路径
    c. 计算出从 v 到所有网络节点的最短路径
    d. 计算出从 w 到所有网络节点的最短路径
    e. 计算出从 y 到所有网络节点的最短路径
    f. 计算出从 z 到所有网络节点的最短路径

答:解a,N=tuvwxyz

步骤N’D(t),p(t)D(u),p(u)D(v),p(v)D(w),p(w)D(x),p(x)D(y),p(y)D(z),p(z)
1t2, t4, t7, t
2tu4, t5, u7, t
3tuv5, u7, v7, t
4tuvw7, v7, t
5tuvwy7, v19, y
6tuvwyx15, y
7tuvwyxz

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值