• 计算机网络 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地址, 端口号>,目的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

    在这里插入图片描述

  • 相关阅读:
    PMP考试如何退考?手把手教你
    DOM系列之事件对象
    Windows ffmpeg生成安卓全平台so
    电脑重装系统后内存占用高怎么解决?
    4 zookeeper集群和基本命令
    【uniapp+云函数调用】人脸识别,实人认证,适用于app,具体思路解析,已实现
    专题二:二叉树的深搜【递归、搜索、回溯】
    史上最全的字节跳动 Java 面试题集锦,高级 Java 工程师面试技术
    VisionPro学习笔记(6)——如何使用QuickBuild
    华为OD机试 - 等和子数组最小和 - 深度优先搜索(Java 2022 Q4 100分)
  • 原文地址:https://blog.csdn.net/qq_50918834/article/details/127794502