计算机网络-Part4——网络层

[TOC]

网络层功能概述

网络层功能

image-20211221134208504

  • 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
    • 网络层传输单位是数据报
  • 功能:
    • 路由选择与分组转发(寻找最佳路径)
    • 异构网络互联
    • 拥塞控制
      • 开环控制(静态)
      • 闭环控制(动态)

IP 数据报格式

  • TCP/IP 协议栈
    • image-20211221135135704
  • IP 数据报格式
    • 版本:IPv4 / IPv6
    • 首部长度:单位是 4B,最小为 5.
    • 区分服务:指示期望获得哪种类型的服务。
    • 总长度:首部+数据,单位是1B。2^16^-1=65525B
    • 生存时间(TTL):IP 分组的保质期。经过一个路由器 -1,变成 0 则丢弃。
    • 协议:数据部分的协议。TCP=6,UDP=17。
    • 检验首部和:只检验首部
    • 源地址和目的地址:32 位。
    • 可选字段:0~40B,用来支持排错、测量以及安全等措施。
    • 填充:全 0,把首部补成 4B 的整数倍。
    • image-20211221140112405

IP 数据报分片

  • 最大传送单元 MTU
    • 链路层数据帧可封装数据的上限,超过则在 IP 分组中进行分片,否则无法往下传递。
    • 以太网的 MTU 是 1500 字节。
    • image-20211221141348483
  • IP 数据报格式
    • 标识:同一数据报的分片使用同一标识。
    • 标志:只有2位有意义
      • 中间位DF(Don’t Fragment):
        • DF=1,禁止分片
        • DF=0,允许分片
      • 最低位MF (More Fragment) :
        • MF=1,后面“还有分片”
        • MF=0,代表最后一片/没分片
    • 片偏移:指出较长分组分片后,某片在原分组中的相对位置。以 8B 为单位(所以片偏移的长度是 13bit)。
      • 除了最后一个分片,每个分片长度一定是 8B 的整数倍。
    • image-20211221140112405
  • IP 数据报分片例题
    • image-20211221142919264
  • 注意单位
    • 总长度单位是 1B
    • 片偏移单位是 8B
    • 首部长度单位是 4B
    • 口诀:一种八片首饰(1总8片首4)

IPv4(重要)

IPv4 地址

  • IP 编址的历史阶段

    • 分类的 IP 地址
    • 子网的划分
    • 构成超网(无分类编址方案)
  • IP地址:全世界唯一的 32位/4字节 标识符,标识路由器主机的接口。

    • IP地址::={<网络号>,<主机号>}
    • 点分十进制
  • 互联网中的 IP 地址

    • 同一个网络中,网络号相同
    • image-20211221144310762
  • IP 地址分类

    • 主要熟悉 A、B、C 类
    • image-20211221144405995
    • image-20211221150228337
  • 特殊 IP 地址

    • image-20211221145029209
  • 私有 IP 地址

    • 路由器对目的地址是私有IP地址的数据报一律不进行转发。
    • image-20211221145144605

网络地址转换 NAT

  • 网络地址转换 NAT(Network Address Translation):
    • 专用网连接到因特网的路由器上安装 NAT 软件(安装了 NAT 软件的路由器叫 NAT 路由器)
    • 它至少有一个有效的外部全球 IP 地址
  • image-20211221151054767

子网划分和子网掩码

  • 针对问题:(分类的 IP 地址)
    • IP 地址空间的利用率有时很低。
    • 两级 IP 地址不够灵活。
  • 子网划分
    • 子网号能否全 0 全 1 要看情况
      • 最初不可以
      • 后续 CIDR 广泛应用就可以了
    • 主机号不能全 0 全 1(0:本机;1:广播)
    • 某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
    • image-20211221151749123
    • image-20211221154628241
  • 子网掩码
    • image-20211221154854041
    • 熟记常用的二进制转换,会提高效率
      • image-20211221155236311
  • 路由表中:
    • 目的网络地址
    • 目的网络子网掩码
    • 下一跳地址
  • 路由器转发分组的算法:
    1. 提取目的 IP 地址
    2. 是否直接交付(目的地址和子网掩码相与,查看是否有对应的子网,否则为间接交付给下一个路由)
    3. 特定主机路由(路由表中特殊指定的 IP 地址)
    4. 检测路由表中有无路径(和路由表中所有的子网掩码相与,类似于第二条?)
    5. 默认路由 0.0.0.0
    6. 丢弃,报告转发分组出错

无分类编址 CIDR(常考)

  • 针对问题:
    • B 类地址很快将分配完毕
    • 路由表中的项目急剧增长
  • 无分类域间路由选择 CIDR(Classless Inter-Domain Routing)
    • 消除了传统的 A、B、C 类地址以及划分子网的概念。
      • 将网络号和子网号合并成了网络前缀
      • CIDR 记法:IP 地址后加上“/”,并写上网络前缀的位数。
      • image-20211221161620670
    • 融合子网地址与子网掩码,方便子网划分。
      • CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR 地址块”。
      • image-20211221161800913
  • 构成超网(路由聚合)
    • 构成超网:将多个子网聚合成一个较大的子网。
    • 方法:将网络前缀缩短(所有网络地址取交集)。
    • 划分子网是少 -> 多
    • 构成超网是多 -> 少
  • 最长前缀匹配
    • 使用 CIDR 时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。
    • 前缀越长,地址块越小,路由越具体

ARP 协议

  • ARP 高速缓存:IP 地址与 MAC 地址的映射

  • 发送数据的过程

    • image-20211223135416993
    • 网关具备 MAC 地址,但交换机不具备。
    • 网关将解封装到网络层
      • 在不进行 NAT 的情况下,将更换数据的源 MAC 和目标 MAC。
      • 在进行 NAT 的情况下,还将更换数据的源 IP。
    • 主机与主机、主机与网关、网关与网关之间,通过带 IP 的广播,请求目标设备带 IP-MAC 映射的响应,以获得数据链路层所需要的封装信息(目标的物理 MAC 地址)。
  • ARP(Address Resolution Protocol)协议

  • 针对问题:在实际网络的链路上传送数据帧时,最终必须使用 MAC 地址。

  • ARP 协议:完成主机或路由器 IP 地址到 MAC 地址的映射。(解决下一跳走哪的问题)

  • 使用过程:

    • 检查 ARP 高速缓存,有对应表项则写入 MAC 帧。
      • 没有则用目的 MAC 地址为 FF-FF-FF-FF-FF-FF 的帧封装并广播 ARP 请求分组,同一局域网中所有主机都能收到该请求。
      • 目的主机收到请求后就会向源主机单播 ARP 响应分组,源主机收到后将此映射写入 ARP 缓存(10-20min 更新一次)。
  • ARP 协议 4 种典型情况:

    • 主机 A 发给本网络上的主机 B:用 ARP 找到主机B的硬件地址;

    • 主机 A 发给另一网络上的主机 B:用 ARP 找到本网络上一个路由器(网关)的硬件地址;

    • 路由器发给本网络的主机 A:用 ARP 找到主机 A 的硬件地址;

    • 路由器发给另一网络的主机 B:用 ARP 找到本网络上的一个路由器的硬件地址。

  • ARP 协议自动进行。

DHCP 协议

  • 获得 IP 地址
    • 静态配置
    • 动态配置
  • DHCP(Dynamic Host Configuration Protocol)协议
    • 动态主机配置协议 DHCP 是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于 UDP
    • DHCP 功能
      • 提供即插即用联网的机制;
      • 主机可以从服务器动态获取 IP 地址、子网掩码、默认网关、DNS 服务器名称与 IP 地址;
      • 允许地址重用(IP 地址池);
      • 支持移动用户加入网络
      • 支持在用地址续租(IP 地址租用期)。
    • 过程
      • 主机广播 DHCP 发现报文(试图找到网络中的服务器,服务器获得一个IP地址)
      • DHCP 服务器广播 DHCP 提供报文(服务器拟分配给主机一个 IP 地址及相关配置)
      • 主机广播 DHCP 请求报文(主机向服务器请求提供 IP 地址)
      • DHCP 服务器广播 DHCP 确认报文(正式将 IP 地址分配给主机)

ICMP 协议

  • 网际控制报文协议 ICMP(Internet Control Message Protocol)是网络层协议
    • 差错(或异常)报告:ICMP 查错报文
    • 网络探询:ICMP 询问报文
  • ICMP 差错报告报文
    • 终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
    • 源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。(不再使用)
    • 时间超过
      • 当路由器收到生存时间 TTL=0 的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。
      • 当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
    • 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
    • 改变路由(重定向)路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
    • image-20211223150014117
  • 不应发送 ICMP 差错报文的情况
    • ICMP 差错报告报文不再发送 ICMP 差错报告报文。(IP 数据报不会检查数据部分,即 ICMP 差错报文有无出错)
    • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
    • 对具有组播地址(一对指定多,区别于广播为一对所有多)的数据报都不发送 ICMP 差错报告报文。
    • 对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
  • ICMP 询问报文
    • 回送请求和回答报文
      • 主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送 ICMP 回送回答报文。测试目的站是否可达以及了解其相关状态
    • 时间戳请求和回答报文
      • 请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间
    • 掩码地址请求和回答报文(不再使用)
    • 路由器询问和通告报文(不再使用)
  • ICMP 的应用
    • PING:测试两个主机之间的连通性,使用了 ICMP 回送请求和回答报文
    • Traceroute:跟踪一个分组从源点到终点的路径,使用了 ICMP 时间超过差错报告报文

IPv6

image-20211223154240704

  • 针对问题:
    • 32 位 IPv4 地址空间已分配殆尽
    • CIDR、NAT 只能延缓
  • 改进方向:
    • IPv6 改进首部格式 -> 快速处理/转发数据报、支持 QoS
  • 数据报格式:
    • 版本:6
    • 优先级:区分数据报的类别和优先级
    • 流标签:互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。(区别于 IPv4 的标识位是标识同一组分片的数据报)
    • 有效载荷长度:标识有效载荷 [扩展首部+数据] 的长度(区别于 IPv4 的首部长度 [首部+扩展首部] +总长度 [首部+扩展首部+数据] )
    • 下一个首部:标识下一个扩展首部(扩展首部可能有多个,每一个扩展首部都会有该字段来标识下一个首部)或上层协议首部(即数据部分)。
    • 跳数限制:相当于 IPv4 的 TTL。
    • image-20211223152037845
  • IPv6 和 IPv4 的区别
    • IPv6 将地址从 32 位(4B)扩大到 128 位(16B),更大的地址空间。
    • IPv6 将 IPv4 的校验和字段彻底移除,以减少每跳的处理时间。
    • IPv6 将 IPv4 的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
    • IPv6 支持即插即用(即自动配置),不需要 DHCP 协议。
    • IPv6 首部长度必须是 8B 的整数倍,IPv4 首部是 4B 的整数倍。
    • IPv6 只能在主机处分片,IPv4 可以在路由器和主机处分片。
    • ICMPv6:附加报文类型“分组过大”。
    • IPv6 支持资源的预分配, 支持实时视像等要求,保证一定的带宽和时延的应用。
    • IPv6 取消了协议字段,改成下一个首部字段。
    • IPv6 取消了总长度字段,改用有效载荷长度字段。
    • IPv6 取消了服务类型字段。
  • IPv6 地址表示形式
    • 一般形式:
      • 冒号十六进制记法:
        • 4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
    • 压缩形式:
      • 连续的 0 压缩成一个 0:
        • 4BF5:0000:0000:0000:BA 5F:039A:000A:2176 -> 4BF5:0:0:0:BA5F:39A:A:2176
      • 零压缩:一连串连续的 0 可以被一对冒号取代(在一个地址中仅可出现一次
        • FF05:0:0:0:0:0:0:B3 -> FF05::B3
  • IPv6 基本地址类型
    • 单播:一对一通信,可做源地址+目的地址
    • 多播:一对多通信,可做目的地址
    • 任播:一对多中的一个通信,可做目的地址
  • IPv6 向 IPv4 过渡的策略
    • 双栈协议
      • 指在一台路由器或主机上同时启用 lPv4 和 IPv6 协议栈,则既能和 IPv4 网络通信,又能和 IPv6 网络通信。
    • 隧道技术
      • 通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。
      • 隧道协议将其它协议(IPv6)的数据帧或包重新封装(成 IPv4)然后通过隧道发送。

路由算法与路由协议

路由算法与路由协议概述

  • 最佳路由:“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
  • 路由表表项:
    • 目的网络 IP 地址
    • 子网掩码
    • 下一跳 IP 地址
    • 接口
  • 路由算法分类
    • 静态路由算法(非自适应路由算法):管理员手工配置路由信息。
      • 优点:简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。
      • 缺点:路由更新慢,不适用大型网络。
    • 动态路由算法(自适应路由算法):路由器间彼此交换信息,按照路由算法优化出路由表项。
      • 优点:路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。
      • 缺点:算法复杂,增加网络负担。
  • 动态路由算法
    • 全局性:链路状态路由算法(OSPF)
      • 所有路由器掌握完整的网络拓扑和链路费用信息。
    • 分散性:距离向量路由算法(RIP)
      • 路由器只掌握物理相连的邻居及链路费用。
  • 分层次的路由选择协议
    • 针对原因:1. 因特网规模很大,会导致路由表过于庞大;2. 许多单位不想让外界知道自己的路由选择协议,但还想连入因特网。
    • 自治系统AS:
      • 在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。
      • 一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
    • 路由选择协议:
      • 内部网关协议 IGP:一个 AS 内使用(如 RIP、OSPF)
      • 外部网关协议 EGP:AS 之间使用(如 BGP)
    • image-20211223162824830

RIP 协议与距离向量算法

image-20211223170633629

  • RIP(Routing Information Protocol)是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单

    • RIP 协议只适用于小互联网
  • RIP 协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。

    • 距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。
    • 特别的,从一路由器到直接连接的网络距离为 1。
    • RIP 允许一条路由最多只能包含 15 个路由器,因此距离为 16 表示网络不可达。
  • RIP 特点

    • RIP 协议和谁交换?
      • 仅和相邻路由器交换信息。
    • 多久交换一次?
      • 30秒 交换一次路由信息,然后路由器根据新信息更新路由表。若超过 180s 没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
    • 交换什么?
      • 路由器交换的信息是自己的路由表
    • 路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
    • 经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。
  • RIP 更新

    1. 修改相邻路由器发来的RIP报文中所有表项

      • 下一跳字段改为 X,并且距离字段 +1

      • image-20211223164554692

    2. 对修改后的 RIP 报文中的每一个项目,进行以下步骤:

      • R1 路由表中若没有 Net3,则把该项目填入 R1 路由表
      • R1 路由表中若有 Net3,则查看下一跳路由器地址:
        • 若下一跳是 X,则用收到的项目替换源路由表中的项目(即更新距离);
        • 若下一跳不是 X, 原记录距离比新记录距离远则更新,否则不作处理。
    3. 180s 还没收到相邻路由器X的更新路由表,则把 X 记为不可达的路由器,即把距离设置为 16。

  • RIP 协议的报文格式(了解)

    • image-20211223170035763
  • RIP 协议好消息传得快,坏消息传得慢

    • 真正的无法到达的消息总会被虚假的可达到消息覆盖,只有在双方一次次相互传递消息之后才缓慢收敛成无法到达。
    • image-20211223170432089

OSPF 协议与链路状态算法

  • OSPF(Open Shortest Path First)开放式最短路径优先
    • “开放”标明 OSPF 协议不是受某一家厂商控制,而是公开发表的;“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法 SPF。
    • OSPF 最主要的特征就是使用分布式的链路状态协议
  • OSPF 的特点:
    • 和谁交换:
      • 使用洪泛法向自治系统内所有路由器发送信息,即路由器向所有相邻的路由器发送信息(广播),而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。
      • 最终整个区域内所有路由器都得到了这个信息的一个副本。
    • 交换什么:
      • 发送的信息就是与本路由器相邻的所有路由器的链路状态(与本路由器相邻的路由器,以及对应链路的度量/代价——费用、距离、时延、带宽等)。
    • 多久交换:
      • 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。
    • 最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图
  • 链路状态路由算法
    • 构造网络拓扑
      1. 每个路由器发现它的邻居结点【问候分组】,并了解邻居节点的网络地址。
      2. 设置到它的每个邻居的成本度量 metric。
      3. 构造【DD 数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
      4. 如果 DD 分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR 链路状态请求分组】 请求自己没有的和比自己更新的信息。
      5. 收到邻站的 LSR 分组后,发送【LSU 链路状态更新分组】进行更新。
      6. 更新完毕后,邻站返回一个【LSAck 链路状态确认分组】进行确认。
    • 若一个路由器的链路状态发生变化:
      1. 向邻居泛洪发送【LSU 链路状态更新分组】进行更新。
      2. 更新完毕后,其他站返回一个【LSAck 链路状态确认分组】进行确认。
      3. 使用 Dijkstra 根据自己的链路状态数据库构造到其他节点间的最短路径。
  • OSPF 的区域(了解)
    • 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫做区域
    • 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
    • 区域也不能太大,在一个区域内的路由器最好不超过 200 个。
    • image-20211224104028583
  • OSPF 分组
    • OSPF 直接用 IP 数据报传送。(网络层协议
    • image-20211224104144658
  • OSPF 其他特点
    • 每隔 30min,要刷新一次数据库中的链路状态。
    • 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与网络的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
    • OSPF 不存在坏消息传的慢的问题,收敛速度很快

BGP 协议

  • BGP(Border Gateway Protocol)边界网关协议
    • 每个自治系统至少选择一位发言人,通常为边界路由器。
    • 两个 BGP 发言人通过一个网络连接在一起。
    • 自治系统连通图是一个树形结构
    • image-20211224104947913
  • 特点:
    • 和谁交换
      • 与其他 AS 的邻站 BGP 发言人交换信息。
    • 交换什么
      • 交换的网络可达性的信息,即要到达某个网络所要经过的一系列 AS路径向量)。
    • 多久交换
      • 发生变化时更新有变化的部分。
  • BGP 协议报文格式
    • 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息
      • 先建立 TCP 连接
      • 然后在此连接上交换 BGP 报文以建立 BGP 会话(session)
      • 利用 BGP 会话交换路由信息。
    • BGP是应用层协议,借助TCP传送。
    • image-20211224105743360
  • BGP 协议特点
    • BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列
    • BGP 启动时,邻站交换整个 BGP 路由表。但以后只需要在发生变化时更新有变化的部分
      • 由此,节省网络带宽、减少路由器的处理开销。
  • BGP-4 的四种报文
    • OPEN(打开)报文:用来与相邻的另一个 BGP 发言人建立关系,并认证发送方。
    • UPDATE(更新)报文:通告新路径或撤销原路径。
    • KEEPALIVE(保活)报文:在无 UPDATE 时,周期性证实邻站的连通性;也作为 OPEN 的确认。
    • NOTIFICATION(通知)报文:报告先前报文的差错;也被用于关闭连接。
  • 三种路由协议比较
    • RIP 是一种分布式的基于距离向量的内部网关路由选择协议,通过广播 UDP 报文来交换路由信息。
    • OSPF 是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如 UDP 或 TCP),而是直接采用 IP
    • BGP 是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用 TCP。
    • image-20211224110705488

IP 组播

image-20211224130048760

  • IP 数据报的三种传输方式
    • 单播:单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。
    • 广播:广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。
    • 组播(多播):当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。
  • 组播地址
    • IP 组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组 IP 地址(一群共同需求主机的相同标识)。
    • 组播地址范围为 224.0.0.0~239.255.255.255(D 类地址),一个 D 类地址表示一个组播组。只能用作分组的目标地址,源地址总是为单播地址
    • 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于 UDP。
    • 对组播数据报不产生 ICMP 差错报文。
    • 并非所有 D 类地址都可以作为组播地址。
    • image-20211224132506030
  • 硬件组播
    • 同单播地址一样,组播 IP 地址也需要相应的组播 MAC 地址在本地网络中实际传送帧。
    • 组播 MAC 地址以十六进制值 01-00-5E 开头,余下的 6 个十六进制位是根据 IP 组播组地址的最后 23 位转换得到。
    • TCP/IP 协议使用的以太网多播地址的范围是:
      • 01-00-5E-00-00-0001-00-5E-7F-FF-FF
    • 收到多播数据报的主机,还要在 IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
    • image-20211224132654866
  • IGMP 协议与组播路由选择协议
    • 网际组管理协议 IGMP
      • IGMP 协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组
      • ICMP 和 IGMP 都使用 IP 数据报传递报文
      • image-20211224133147877
      • IGMP 工作的两个阶段
        • 某主机要加入组播组时,该主机向组播组的组播地址发送一个 IGMP 报文,声明自己要称为该组的成员。本地组播路由器收到 IGMP 报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
        • 本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。
        • 组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。
    • 组播路由选择协议
      • 组播路由选择协议目的是找出以源主机为根节点的组播转发树
      • 对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。
      • 组播路由选择协议常使用的三种算法:
        • 基于链路状态的路由选择
        • 基于距离-向量的路由选择
        • 协议无关的组播(稀疏/密集)

移动 IP(不常考)

  • 移动 IP 相关概念

    • 移动 IP 技术是移动结点(计算机/服务器等)以固定的网络 IP 地址,实现跨越不同网段的漫游功能,并保证了基于网络 IP 的网络权限在漫游过程中不发生任何改变。
    • 移动结点:
      • 具有永久IP地址的移动设备。
    • 归属代理(本地代理):
      • 一个移动结点的永久“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。(路由器也可以作为归属代理)
    • 永久地址(归属地址/主地址):
      • 移动站点在归属网络中的原始地址。
    • 外部代理(外地代理):
      • 外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。(一个外部网络的路由器)
    • 转交地址(辅地址):
      • 可以是外部代理的地址或动态配置的一个地址
  • 工作流程:

    • A 刚进入外部网络:

      1. 获得外部代理的转交地址(外部代理广播报文)。
        • 主动获得:主机发布报文以获得转交地址
        • 被动获得:路由器广播转交地址
      2. 移动节点通过外部代理发送注册报文给归属代理(包含永久地址 & 转交地址)。
      3. 归属代理接收请求,并将移动节点的永久地址和转交地址绑定(以后到达该归属代理的数据报且要发往移动节点的数据报将被封装并以隧道方式发给转交地址),并返回一注册响应报文。
      4. 外部代理接收注册 A 响应,并转发给移动节点。
    • A 移动到了下一个网络:

      1. 在新外部代理登记注册一个转交地址。

      2. 新外部代理给本地代理发送新的转交地址(覆盖旧的)。

    • A 回到了归属网络:

      1. A 向本地代理注销转交地址。

      2. 按原始方式通信。

网络层设备

  • 路由器
    • 路由器,是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组
    • image-20211224113104910
  • 路由选择:
    • 根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表
  • 分组转发:
    • 交换结构:根据转发表(路由表得来)对分组进行转发
    • 若收到 RIP/OSPF 分组等,则把分组送往路由选择处理机;若收到数据分组,则查找转发表并输出。
  • 输入端口对线路上收到的分组的处理,将交换结构传送来的分组发送到线路
    • 输入端口中的查找和转发功能在路由器的交换功能中是最重要的。
    • 若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。
      • 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
    • image-20211224113631995
  • 三层设备的区别
    • 网络层设备(路由器):可以互联两个不同网络层协议的网段。
    • 链路层设备(网桥、交换机):可以互联两个物理层和链路层不同的网段。
    • 物理层设备(中继器、集线器):不能互联两个物理层不同的网段。
  • 路由表与路由转发
    • 路由表
      • 路由表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。
    • 转发表
      • 路由表得来,可以用软件实现,也可以用特殊的硬件来实现。
      • 转发表必须包含完成转发功能所必需的信息,即从要到达的目的网络到输出端口和某些 MAC 地址信息的映射。